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.
LuisLeon_FactuGES2/Source/Modulos/Contactos/Data/uDataModuleAgentes.pas

110 lines
2.8 KiB
ObjectPascal
Raw Normal View History

unit uDataModuleAgentes;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uDataModuleContactos, DB, uDADataTable, uDAScriptingProvider,
uDACDSDataTable, uDABINAdapter, uRORemoteService,
uROClient, uROBinMessage, uROWinInetHttpChannel, uBizGruposEmpleado, uROTypes,
uIDataModuleAgentes, uBizContactos, uDADesigntimeCall,
uDAInterfaces, uDAMemDataTable, uDADataStreamer, uDABin2DataStreamer,
uDARemoteDataAdapter, uIntegerListUtils, uBizAgentesComisiones;
type
TDataModuleAgentes = class(TDataModuleContactos, IDataModuleAgentes)
tbl_Agentes: TDAMemDataTable;
ds_Agentes: TDADataSource;
tbl_Agentes_Comisiones: TDAMemDataTable;
ds_Agentes_Comisiones: TDADataSource;
protected
function _GetComisiones: IBizAgentesComisiones;
public
function GetItem(const ID : Integer) : IBizAgente;
function NewItem : IBizAgente;
function GetItems : IBizAgente;
end;
implementation
{$R *.dfm}
uses
FactuGES_Intf, cxControls, schContactosClient_Intf, uDataTableUtils,
uStringsUtils;
{ TDataModuleVendedores }
function TDataModuleAgentes.GetItem(const ID: Integer): IBizAgente;
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 TDataModuleAgentes.GetItems: IBizAgente;
var
AContacto : TDAMemDataTable;
begin
ShowHourglassCursor;
try
AContacto := CloneDataTable(tbl_Agentes);
AContacto.BusinessRulesID := BIZ_CLIENT_AGENTE;
with TBizAgente(AContacto.BusinessEventsObj) do
begin
DatosBancarios := _GetDatosBancarios;
Comisiones := _GetComisiones;
end;
Result := (AContacto as IBizAgente);
finally
HideHourglassCursor;
end;
end;
function TDataModuleAgentes.NewItem: IBizAgente;
begin
Result := GetItem(ID_NULO)
end;
function TDataModuleAgentes._GetComisiones: IBizAgentesComisiones;
var
AComisiones : TDAMemDataTable;
begin
ShowHourglassCursor;
try
AComisiones := CloneDataTable(tbl_Agentes_Comisiones);
with AComisiones do
begin
BusinessRulesID := BIZ_CLIENT_AGENTE_COMISIONES;
DetailOptions := DetailOptions -
[dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates];
end;
Result := (AComisiones as IBizAgentesComisiones);
finally
HideHourglassCursor;
end;
end;
end.