194 lines
6.0 KiB
ObjectPascal
194 lines
6.0 KiB
ObjectPascal
unit uDataModuleContactos;
|
|
|
|
interface
|
|
|
|
uses
|
|
SysUtils, Classes, DB, DBClient,
|
|
uDAClientDataModule, uDADataTable, uDABINAdapter,
|
|
uDAScriptingProvider, uDACDSDataTable, uROWinInetHttpChannel,
|
|
uROServiceComponent, uRORemoteService, uROClient, uROBinMessage,
|
|
uBizContactos, uBizContactosDatosBancarios, uBizCategoriasContacto,
|
|
uBizDireccionesContacto, uIDataModuleEtiquetasContactosReport,
|
|
uIDataModuleContactos, uDADesigntimeCall, uROTypes, uRODynamicRequest,
|
|
uDAInterfaces, uDADataStreamer, uDARemoteDataAdapter;
|
|
|
|
type
|
|
TDataModuleContactos = class(TDAClientDataModule, IDataModuleContactos, IDataModuleEtiquetasContactosReport)
|
|
RORemoteService: TRORemoteService;
|
|
tbl_Contactos: TDACDSDataTable;
|
|
ds_Contactos: TDADataSource;
|
|
tbl_ContactosCategorias: TDACDSDataTable;
|
|
ds_ContactosCategorias: TDADataSource;
|
|
tbl_DatosBancarios: TDACDSDataTable;
|
|
ds_DatosBancarios: TDADataSource;
|
|
DADesigntimeCall1: TDADesigntimeCall;
|
|
LoginRemoteService: TRORemoteService;
|
|
ROWinInetHTTPChannel1: TROWinInetHTTPChannel;
|
|
ROBinMessage1: TROBinMessage;
|
|
tbl_DireccionesContacto: TDACDSDataTable;
|
|
ds_DireccionesContacto: TDADataSource;
|
|
DataStreamer: TDABinDataStreamer;
|
|
rda_Contactos: TDARemoteDataAdapter;
|
|
rda_ContactosCategorias: TDARemoteDataAdapter;
|
|
rda_DatosBancarios: TDARemoteDataAdapter;
|
|
rda_DireccionesContacto: TDARemoteDataAdapter;
|
|
procedure DAClientDataModuleCreate(Sender: TObject);
|
|
protected
|
|
function _InternalGetNextID(const AGeneratorName : String) : Integer;
|
|
public
|
|
function _CloneDataTable (const ADataTable : TDACDSDataTable): TDACDSDataTable; overload;
|
|
function _GetDatosBancarios : IBizContactosDatosBancarios;
|
|
function _GetDirecciones: IBizDireccionesContacto;
|
|
function _GetCategorias : IBizCategoriasContacto;
|
|
function _GetItems (IDCategoria : Integer): IBizContacto; virtual;
|
|
function GetNextID(const DataSetName : String) : Integer; virtual;
|
|
|
|
// Report
|
|
function GetReport(const AContactosID: String): Binary;
|
|
end;
|
|
|
|
implementation
|
|
|
|
{$R *.DFM}
|
|
|
|
uses
|
|
uDataTableUtils, uDataModuleConexion, cxControls,
|
|
FactuGES_Intf, uDataModuleUsuarios, schContactosClient_Intf, Dialogs;
|
|
|
|
{ TdmContactos }
|
|
|
|
procedure TDataModuleContactos.DAClientDataModuleCreate(Sender: TObject);
|
|
begin
|
|
RORemoteService.Channel := dmConexion.Channel;
|
|
RORemoteService.Message := dmConexion.Message;
|
|
end;
|
|
|
|
function TDataModuleContactos.GetNextID(const DataSetName: String): Integer;
|
|
var
|
|
aGeneratorName : String;
|
|
begin
|
|
if DataSetName = nme_Contactos then
|
|
aGeneratorName := 'GEN_CONTACTOS_ID';
|
|
|
|
if DataSetName = nme_DatosBancarios then
|
|
aGeneratorName := 'GEN_CONTACTOS_DATOS_BANCO_ID';
|
|
|
|
if DataSetName = nme_DireccionesContacto then
|
|
aGeneratorName := 'GEN_CONTACTOS_DIR_ID';
|
|
|
|
if DataSetName = nme_DireccionesContacto then
|
|
aGeneratorName := 'GEN_CONTACTOS_DIR_ID';
|
|
|
|
Result := _InternalGetNextID(aGeneratorName);
|
|
end;
|
|
|
|
function TDataModuleContactos.GetReport(const AContactosID: String): Binary;
|
|
begin
|
|
Result := (RORemoteService as IsrvContactos).GenerateEtiquetasReport(AContactosID);
|
|
end;
|
|
|
|
function TDataModuleContactos._CloneDataTable(
|
|
const ADataTable : TDACDSDataTable): TDACDSDataTable;
|
|
begin
|
|
Result := NIL;
|
|
|
|
if not Assigned(ADataTable) then
|
|
raise Exception.Create ('No se ha asignado la tabla de origen (CloneDataTable)');
|
|
|
|
Result := TDACDSDataTable.Create(NIL);
|
|
CloneDataTable(ADataTable, Result);
|
|
end;
|
|
|
|
function TDataModuleContactos._GetCategorias: IBizCategoriasContacto;
|
|
var
|
|
ACategorias : TDACDSDataTable;
|
|
begin
|
|
ShowHourglassCursor;
|
|
try
|
|
ACategorias := _CloneDataTable(tbl_ContactosCategorias);
|
|
with ACategorias do
|
|
begin
|
|
BusinessRulesID := BIZ_CLIENT_CATEGORIAS_CONTACTO;
|
|
DetailOptions := DetailOptions -
|
|
[dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates];
|
|
end;
|
|
Result := (ACategorias as IBizCategoriasContacto);
|
|
finally
|
|
HideHourglassCursor;
|
|
end;
|
|
end;
|
|
|
|
function TDataModuleContactos._GetDatosBancarios: IBizContactosDatosBancarios;
|
|
var
|
|
ADatosBancarios : TDACDSDataTable;
|
|
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 : TDACDSDataTable;
|
|
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 : TDACDSDataTable;
|
|
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;
|
|
_Categorias := _GetCategorias;
|
|
end;
|
|
|
|
Result := (AContacto as IBizContacto);
|
|
finally
|
|
HideHourglassCursor;
|
|
end;
|
|
end;
|
|
|
|
function TDataModuleContactos._InternalGetNextID(
|
|
const AGeneratorName: String): Integer;
|
|
begin
|
|
Result := (RORemoteService as IsrvContactos).GetNextAutoInc(AGeneratorName)
|
|
end;
|
|
|
|
end.
|