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

192 lines
5.2 KiB
ObjectPascal

unit uDataModuleClientes;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
DB, uDADataTable, uDAScriptingProvider,
uDACDSDataTable, uDABINAdapter, uRORemoteService,
uROClient, uROBinMessage, uROWinInetHttpChannel, uBizClientesDescuentos,
uBizGruposCliente, uBizProcedenciasCliente, uBizContactos, uBizSubCuentasContacto,
uDataModuleContactos, uIDataModuleClientes, uDADesigntimeCall, uDARemoteDataAdapter,
uDADataStreamer, uRODynamicRequest, uDAInterfaces, uDAMemDataTable,
uDABin2DataStreamer, uControllerBase, uBizContactosDatosBancarios,
uIDataModuleContactos;
type
TDataModuleClientes = class(TDataModuleContactos, IDataModuleClientes)
tbl_Clientes: TDAMemDataTable;
ds_Clientes: TDADataSource;
tbl_ClientesDescuentos: TDAMemDataTable;
ds_ClientesDescuentos: TDADataSource;
tbl_GruposCliente: TDAMemDataTable;
ds_GruposCliente: TDADataSource;
tbl_SubCuentasContacto: TDAMemDataTable;
ds_SubCuentasContacto: TDADataSource;
tbl_ProcedenciasCliente: TDAMemDataTable;
ds_ProcedenciasCliente: TDADataSource;
protected
function _GetDescuentos: IBizClienteDescuentos;
function _GetSubCuentas: IBizSubCuentasContacto;
public
function GetItem(const ID : Integer) : IBizCliente;
function NewItem : IBizCliente;
function GetItems : IBizCliente;
function GetItemsTiendaWeb : IBizCliente;
function GetGruposCliente : IBizGrupoCliente;
function GetProcedenciasCliente : IBizProcedenciaCliente;
end;
implementation
{$R *.dfm}
uses
FactuGES_Intf, cxControls, schContactosClient_Intf,
uDataTableUtils, Dialogs, DataAbstract4_Intf;
{ TdmClientes }
function TDataModuleClientes.GetGruposCliente: IBizGrupoCliente;
var
AGrupoCliente : TDAMemDataTable;
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;
var
Condicion: TDAWhereExpression;
begin
ShowHourglassCursor;
try
Result := Self.GetItems;
with Result.DataTable.DynamicWhere do
begin
// (ID = :ID)
Condicion := NewBinaryExpression(NewField('', fld_ContactosID), NewConstant(ID, datInteger), dboEqual);
if IsEmpty then
Expression := Condicion
else
Expression := NewBinaryExpression(Expression, Condicion, dboAnd);
end;
finally
HideHourglassCursor;
end;
end;
function TDataModuleClientes.GetItems: IBizCliente;
var
AContacto : TDAMemDataTable;
begin
ShowHourglassCursor;
try
AContacto := CloneDataTable(tbl_Clientes);
AContacto.BusinessRulesID := BIZ_CLIENT_CLIENTE;
with TBizCliente(AContacto.BusinessEventsObj) do
begin
DatosBancarios := _GetDatosBancarios;
Direcciones := _GetDirecciones;
Personal := _GetPersonal;
Descuentos := _GetDescuentos;
SubCuentas := _GetSubCuentas;
end;
Result := (AContacto as IBizCliente);
finally
HideHourglassCursor;
end;
end;
function TDataModuleClientes.GetItemsTiendaWeb: IBizCliente;
var
Condicion: TDAWhereExpression;
begin
ShowHourglassCursor;
try
Result := Self.GetItems;
with Result.DataTable.DynamicWhere do
begin
// (ID = :ID)
Condicion := NewBinaryExpression(NewField('', fld_ClientesTIENDA_WEB), NewConstant(1, datInteger), dboEqual);
Clear;
Expression := Condicion
end;
finally
HideHourglassCursor;
end;
end;
function TDataModuleClientes.GetProcedenciasCliente: IBizProcedenciaCliente;
var
AProcedenciaCliente : TDAMemDataTable;
begin
ShowHourglassCursor;
try
AProcedenciaCliente := CloneDataTable(tbl_ProcedenciasCliente);
AProcedenciaCliente.BusinessRulesID := BIZ_CLIENT_PROCEDENCIASCLIENTE;
Result := (AProcedenciaCliente as IBizProcedenciaCliente);
finally
HideHourglassCursor;
end;
end;
function TDataModuleClientes.NewItem: IBizCliente;
begin
Result := GetItem(ID_NULO)
end;
function TDataModuleClientes._GetDescuentos: IBizClienteDescuentos;
var
ADescuentos : TDAMemDataTable;
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;
function TDataModuleClientes._GetSubCuentas: IBizSubCuentasContacto;
var
ASubCuentas : TDAMemDataTable;
begin
ShowHourglassCursor;
try
ASubCuentas := CloneDataTable(tbl_SubCuentasContacto);
with ASubCuentas do
begin
BusinessRulesID := BIZ_CLIENT_SUBCUENTAS_CONTACTO;
DetailOptions := DetailOptions -
[dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates];
end;
Result := (ASubCuentas as IBizSubCuentasContacto);
finally
HideHourglassCursor;
end;
end;
end.