This repository has been archived on 2024-11-28. You can view files and clone it, but cannot push or open issues or pull requests.
Noviseda_FactuGES2/Source/Modulos/Contactos/Data/uDataModuleContactos.pas

186 lines
5.3 KiB
ObjectPascal
Raw Normal View History

unit uDataModuleContactos;
interface
uses
SysUtils, Classes, DB, DBClient,
uDADataTable, uDABINAdapter,
uDAScriptingProvider, uDACDSDataTable, uROWinInetHttpChannel,
uRORemoteService, uROClient, uROBinMessage,
uBizContactos, uBizContactosDatosBancarios,
uBizDireccionesContacto, uIDataModuleEtiquetasContactosReport,
uIDataModuleContactos, uDADesigntimeCall, uROTypes, uRODynamicRequest,
uDAInterfaces, uDADataStreamer, uDARemoteDataAdapter, uDABin2DataStreamer,
uDAMemDataTable, uDataModuleBase, uBizContactosPersonal,
uIntegerListUtils, uDADataAdapter;
type
TDataModuleContactos = class(TDataModuleBase, IDataModuleContactos, IDataModuleEtiquetasContactosReport)
RORemoteService: TRORemoteService;
rda_Contactos: TDARemoteDataAdapter;
Bin2DataStreamer: TDABin2DataStreamer;
tbl_Contactos: TDAMemDataTable;
ds_Contactos: TDADataSource;
tbl_DireccionesContacto: TDAMemDataTable;
ds_DireccionesContacto: TDADataSource;
tbl_DatosBancarios: TDAMemDataTable;
ds_DatosBancarios: TDADataSource;
tbl_PersonalContacto: TDAMemDataTable;
ds_PersonalContacto: TDADataSource;
procedure DAClientDataModuleCreate(Sender: TObject);
procedure DataModuleDestroy(Sender: TObject);
public
function _GetDatosBancarios : IBizContactosDatosBancarios;
function _GetDirecciones: IBizDireccionesContacto;
function _GetItems (IDCategoria : Integer): IBizContacto; virtual;
function _GetPersonal: IBizContactoPersonal;
function NewDireccion : IBizDireccionesContacto;
// Report
function GetReport(const ListaID: TIntegerList): Binary;
end;
implementation
{$R *.DFM}
uses
uDataTableUtils, uDataModuleConexion, cxControls,
FactuGES_Intf, schContactosClient_Intf, Dialogs;
{ TdmContactos }
procedure TDataModuleContactos.DAClientDataModuleCreate(Sender: TObject);
begin
RORemoteService.Channel := dmConexion.Channel;
RORemoteService.Message := dmConexion.Message;
end;
procedure TDataModuleContactos.DataModuleDestroy(Sender: TObject);
begin
//
end;
function TDataModuleContactos.GetReport(const ListaID: TIntegerList): Binary;
var
AParam : TIntegerArray;
begin
AParam := ListaID.ToIntegerArray;
try
Result := (RORemoteService as IsrvContactos).GenerarInformeEtiquetas(AParam);
finally
// FreeANDNIL(AParam);
end;
end;
function TDataModuleContactos.NewDireccion: IBizDireccionesContacto;
var
Condicion: TDAWhereExpression;
begin
ShowHourglassCursor;
try
Result := Self._GetDirecciones;
with Result.DataTable.DynamicWhere do
begin
// (ID = :ID)
Condicion := NewBinaryExpression(NewField('', fld_DireccionesContactoID), NewConstant(ID_NULO, datInteger), dboEqual);
if IsEmpty then
Expression := Condicion
else
Expression := NewBinaryExpression(Expression, Condicion, dboAnd);
end;
finally
HideHourglassCursor;
end;
end;
function TDataModuleContactos._GetDatosBancarios: IBizContactosDatosBancarios;
var
ADatosBancarios : TDAMemDataTable;
begin
ShowHourglassCursor;
try
ADatosBancarios := CloneDataTable(tbl_DatosBancarios);
with ADatosBancarios do
begin
BusinessRulesID := BIZ_CLIENT_CONTACTOS_DATOS_BANCARIOS;
DetailOptions := DetailOptions -
[dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates];
end;
Result := (ADatosBancarios as IBizContactosDatosBancarios);
finally
HideHourglassCursor;
end;
end;
function TDataModuleContactos._GetDirecciones: IBizDireccionesContacto;
var
ADirecciones : TDAMemDataTable;
begin
ShowHourglassCursor;
try
ADirecciones := CloneDataTable(tbl_DireccionesContacto);
with ADirecciones do
begin
BusinessRulesID := BIZ_CLIENT_DIRECCIONES_CONTACTO;
DetailOptions := DetailOptions -
[dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates];
end;
Result := (ADirecciones as IBizDireccionesContacto);
finally
HideHourglassCursor;
end;
end;
function TDataModuleContactos._GetItems(IDCategoria: Integer): IBizContacto;
var
AContacto : TDAMemDataTable;
begin
ShowHourglassCursor;
try
AContacto := CloneDataTable(tbl_Contactos);
with AContacto do
case IDCategoria of
CATEGORIA_CLIENTE : BusinessRulesID := BIZ_CLIENT_CLIENTE;
CATEGORIA_PROVEEDOR : BusinessRulesID := BIZ_CLIENT_PROVEEDOR;
CATEGORIA_EMPLEADO : BusinessRulesID := BIZ_CLIENT_EMPLEADO;
end;
with TBizContacto(AContacto.BusinessEventsObj) do
begin
DatosBancarios := _GetDatosBancarios;
Direcciones := _GetDirecciones;
Personal := _GetPersonal;
end;
Result := (AContacto as IBizContacto);
finally
HideHourglassCursor;
end;
end;
function TDataModuleContactos._GetPersonal: IBizContactoPersonal;
var
APersonal : TDAMemDataTable;
begin
ShowHourglassCursor;
try
APersonal := CloneDataTable(tbl_PersonalContacto);
with APersonal do
begin
BusinessRulesID := BIZ_CLIENT_CONTACTO_PERSONAL;
DetailOptions := DetailOptions -
[dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates];
end;
Result := (APersonal as IBizContactoPersonal);
finally
HideHourglassCursor;
end;
end;
end.