Tecsitel_FactuGES2/Source/Modulos/Contactos/Data/uDataModuleClientes.pas
2007-10-24 18:54:18 +00:00

138 lines
3.7 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, 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;
protected
function _GetDescuentos: IBizClienteDescuentos;
public
function GetItem(const ID : Integer) : IBizCliente;
function NewItem : IBizCliente;
function GetItems : IBizCliente;
function GetItemsTiendaWeb : IBizCliente;
function GetGruposCliente : IBizGrupoCliente;
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;
begin
ShowHourglassCursor;
try
Result := Self.GetItems;
with Result.DataTable.DynamicWhere do
begin
// (ID = :ID)
Expression := NewBinaryExpression(NewField('', fld_ContactosID),
NewConstant(ID, datInteger), dboEqual);
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;
Descuentos := _GetDescuentos;
end;
Result := (AContacto as IBizCliente);
finally
HideHourglassCursor;
end;
end;
function TDataModuleClientes.GetItemsTiendaWeb: IBizCliente;
begin
ShowHourglassCursor;
try
Result := Self.GetItems;
with Result.DataTable.DynamicWhere do
begin
Clear;
// (TIENDA_WEB = 1)
Expression := NewBinaryExpression(NewField('', fld_ClientesTIENDA_WEB),
NewConstant(1, datInteger), dboEqual);
end;
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;
end.