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

210 lines
5.9 KiB
ObjectPascal
Raw Permalink 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, uBizAgentesObjetivosAlbaranes,
uBizAgentesObjetivosFacturas;
type
TDataModuleAgentes = class(TDataModuleContactos, IDataModuleAgentes)
tbl_Agentes: TDAMemDataTable;
ds_Agentes: TDADataSource;
tbl_Agentes_Comisiones: TDAMemDataTable;
ds_Agentes_Comisiones: TDADataSource;
tbl_Agentes_Objetivos_albaranes: TDAMemDataTable;
ds_Agentes_Objetivos_albaranes: TDADataSource;
tbl_Agentes_Objetivos_facturas: TDAMemDataTable;
ds_Agentes_Objetivos_facturas: TDADataSource;
tbl_ListaAnosObjetivosFac: TDAMemDataTable;
ds_ListaAnosObjetivosFac: TDADataSource;
protected
function _GetComisiones: IBizAgentesComisiones;
function _GetObjetivosAlbaranes: IBizAgentesObjetivosAlbaranes;
function _GetObjetivosFacturas: IBizAgentesObjetivosFacturas;
public
function GetItem(const ID : Integer) : IBizAgente;
function NewItem : IBizAgente;
function GetItems : IBizAgente;
function GetAnosObjetivosAlbaranesItems(ID_AGENTE:Integer) : TStringList;
function GetAnosObjetivosFacturasItems(ID_AGENTE:Integer) : TStringList;
end;
implementation
{$R *.dfm}
uses
FactuGES_Intf, cxControls, schContactosClient_Intf, uDataTableUtils,
uStringsUtils;
{ TDataModuleVendedores }
function TDataModuleAgentes.GetAnosObjetivosAlbaranesItems(ID_AGENTE: Integer): TStringList;
var
AListaAnos: TStringList;
begin
AListaAnos := TStringList.Create;
ShowHourglassCursor;
try
with tbl_ListaAnosObjetivosAlb do
begin
ParamByName(fld_Agentes_Objetivos_albaranesID_AGENTE).AsInteger := ID_AGENTE;
Open;
First;
while not eof do
begin
AListaAnos.Add(Format('%s=%s', [Fields[0].AsString, Fields[0].AsString]));
Next;
end;
Close;
end;
Result := AListaAnos;
finally
HideHourglassCursor;
end;
end;
function TDataModuleAgentes.GetAnosObjetivosFacturasItems(ID_AGENTE: Integer): TStringList;
var
AListaAnos: TStringList;
begin
AListaAnos := TStringList.Create;
ShowHourglassCursor;
try
with tbl_ListaAnosObjetivosFac do
begin
ParamByName(fld_Agentes_Objetivos_facturasID_AGENTE).AsInteger := ID_AGENTE;
Open;
First;
while not eof do
begin
AListaAnos.Add(Format('%s=%s', [Fields[0].AsString, Fields[0].AsString]));
Next;
end;
Close;
end;
Result := AListaAnos;
finally
HideHourglassCursor;
end;
end;
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;
ObjetivosAlbaranes := _GetObjetivosAlbaranes;
ObjetivosFacturas := _GetObjetivosFacturas;
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;
function TDataModuleAgentes._GetObjetivosAlbaranes: IBizAgentesObjetivosAlbaranes;
var
AObjetivosAlbaranes : TDAMemDataTable;
begin
ShowHourglassCursor;
try
AObjetivosAlbaranes := CloneDataTable(tbl_Agentes_Objetivos_albaranes);
with AObjetivosAlbaranes do
begin
BusinessRulesID := BIZ_CLIENT_AGENTE_OBJETIVOS_ALB;
DetailOptions := DetailOptions -
[dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates];
end;
Result := (AObjetivosAlbaranes as IBizAgentesObjetivosAlbaranes);
finally
HideHourglassCursor;
end;
end;
function TDataModuleAgentes._GetObjetivosFacturas: IBizAgentesObjetivosFacturas;
var
AObjetivosFacturas : TDAMemDataTable;
begin
ShowHourglassCursor;
try
AObjetivosFacturas := CloneDataTable(tbl_Agentes_Objetivos_facturas);
with AObjetivosFacturas do
begin
BusinessRulesID := BIZ_CLIENT_AGENTE_OBJETIVOS_FAC;
DetailOptions := DetailOptions -
[dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates];
end;
Result := (AObjetivosFacturas as IBizAgentesObjetivosFacturas);
finally
HideHourglassCursor;
end;
end;
end.