Tecsitel_FactuGES2/Source/Modulos/Contactos/Data/uDataModuleClientes.pas

164 lines
4.2 KiB
ObjectPascal

unit uDataModuleClientes;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
DB, uDADataTable, uDAScriptingProvider,
uDACDSDataTable, uDABINAdapter, uROServiceComponent, uRORemoteService,
uROClient, uROBinMessage, uROWinInetHttpChannel, uBizClientesDescuentos,
uBizGruposCliente, uBizContactos, uDataModuleContactos,
uIDataModuleClientes, uDADesigntimeCall, uDARemoteDataAdapter,
uDADataStreamer, uRODynamicRequest, uDAInterfaces;
type
TDataModuleClientes = class(TDataModuleContactos, IDataModuleClientes)
tbl_Clientes: TDACDSDataTable;
ds_Clientes: TDADataSource;
tbl_ClientesDescuentos: TDACDSDataTable;
ds_ClientesDescuentos: TDADataSource;
tbl_GruposCliente: TDACDSDataTable;
ds_GruposCliente: TDADataSource;
rda_clientes: TDARemoteDataAdapter;
rda_clientesDescuentos: TDARemoteDataAdapter;
rda_GruposCliente: TDARemoteDataAdapter;
protected
function _GetDescuentos: IBizClienteDescuentos;
public
function GetItem(const ID : Integer) : IBizCliente;
function NewItem : IBizCliente;
function GetItems : IBizCliente;
function GetItemsTiendaWeb : IBizCliente;
function GetNextID(const DataSetName : String) : Integer; override;
function GetGruposCliente : IBizGrupoCliente;
end;
implementation
{$R *.dfm}
uses
FactuGES_Intf, uBizContactosDatosBancarios, cxControls, schContactosClient_Intf,
uDataTableUtils, Dialogs;
{ TdmClientes }
function TDataModuleClientes.GetGruposCliente: IBizGrupoCliente;
var
AGrupoCliente : TDACDSDataTable;
begin
ShowHourglassCursor;
try
AGrupoCliente := _CloneDataTable(tbl_GruposCliente);
AGrupoCliente.BusinessRulesID := BIZ_CLIENT_GRUPOSCLIENTE;
Result := (AGrupoCliente as IBizGrupoCliente);
finally
HideHourglassCursor;
end;
end;
function TDataModuleClientes.GetItem(const ID: Integer): IBizCliente;
begin
ShowHourglassCursor;
try
Result := Self.GetItems;
with Result.DataTable.Where do
begin
if NotEmpty then
AddOperator(opAND);
OpenBraket;
AddText(fld_ContactosID + ' = ' + IntToStr(ID));
CloseBraket;
end;
finally
HideHourglassCursor;
end;
end;
function TDataModuleClientes.GetItems: IBizCliente;
var
AContacto : TDACDSDataTable;
begin
ShowHourglassCursor;
try
AContacto := _CloneDataTable(tbl_Clientes);
AContacto.BusinessRulesID := BIZ_CLIENT_CLIENTE;
with TBizCliente(AContacto.BusinessEventsObj) do
begin
DatosBancarios := _GetDatosBancarios;
Direcciones := _GetDirecciones;
Descuentos := _GetDescuentos;
_Categorias := _GetCategorias;
end;
Result := (AContacto as IBizCliente);
finally
HideHourglassCursor;
end;
end;
function TDataModuleClientes.GetItemsTiendaWeb: IBizCliente;
begin
ShowHourglassCursor;
try
Result := Self.GetItems;
with Result.DataTable.Where do
begin
if NotEmpty then
AddOperator(opAND);
OpenBraket;
AddText(fld_ClientesTIENDA_WEB + ' = 1');
CloseBraket;
end;
finally
HideHourglassCursor;
end;
end;
function TDataModuleClientes.GetNextID(const DataSetName: String): Integer;
var
aDataSet : String;
aGeneratorName : String;
begin
aDataSet := DataSetName;
if aDataSet = nme_ClientesDescuentos then
begin
aGeneratorName := 'GEN_CLIENTES_DTOS_PROV_ID';
Result := _InternalGetNextID(aGeneratorName);
Exit;
end;
if aDataSet = nme_Clientes then
aDataSet := nme_Contactos;
Result := inherited GetNextID(aDataSet);
end;
function TDataModuleClientes.NewItem: IBizCliente;
begin
Result := GetItem(ID_NULO)
end;
function TDataModuleClientes._GetDescuentos: IBizClienteDescuentos;
var
ADescuentos : TDACDSDataTable;
begin
ShowHourglassCursor;
try
ADescuentos := _CloneDataTable(tbl_ClientesDescuentos);
with ADescuentos do
begin
BusinessRulesID := BIZ_CLIENT_CLIENTE_DESCUENTOS;
DetailOptions := DetailOptions -
[dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates];
end;
Result := (ADescuentos as IBizClienteDescuentos);
finally
HideHourglassCursor;
end;
end;
end.