AlonsoYSal_FactuGES2/Source/ApplicationBase/Empresas/Data/uDataModuleEmpresas.pas
2019-11-18 10:36:42 +00:00

184 lines
5.1 KiB
ObjectPascal

unit uDataModuleEmpresas;
interface
uses {vcl:} SysUtils, Classes, DB, DBClient,
{RemObjects:} uDADataTable, uDAScriptingProvider,
uDACDSDataTable, uDABINAdapter, uRORemoteService,
uROClient, uROBinMessage, uROWinInetHttpChannel, uDADesigntimeCall,
uIDataModuleEmpresas, uBizEmpresas, uBizEmpresasDatosBancarios,
uDARemoteDataAdapter, uDADataStreamer, uRODynamicRequest, uDAInterfaces,
uDAMemDataTable, uDABin2DataStreamer, uIntegerListUtils, uDataModuleBase,
uBizEmpresasTiendas;
type
TDataModuleEmpresas = class(TDataModuleBase, IDataModuleEmpresas)
RORemoteService: TRORemoteService;
rda_Empresas: TDARemoteDataAdapter;
Bin2DataStreamer: TDABin2DataStreamer;
tbl_Empresas: TDAMemDataTable;
ds_Empresas: TDADataSource;
tbl_EmpresasDatosBanco: TDAMemDataTable;
ds_EmpresasDatosBanco: TDADataSource;
tbl_EmpresasTiendas: TDAMemDataTable;
ds_EmpresasTiendas: TDADataSource;
procedure DAClientDataModuleCreate(Sender: TObject);
private
function _GetDatosBancarios : IBizEmpresasDatosBancarios;
public
function GetItem(const ID : Integer) : IBizEmpresa;
function NewItem : IBizEmpresa;
function GetItems : IBizEmpresa;
function DarTiendaUsuario(const ID_EMPRESA: Integer; const ID_USUARIO: Integer): Integer;
function NewTienda : IBizEmpresaTienda;
function GetTiendas : IBizEmpresaTienda;
function GetTienda(const ID : Integer) : IBizEmpresaTienda;
function DarListaFormasPago: TStringList;
function DarListaTiposIVA: TStringList;
end;
implementation
{$R *.DFM}
uses
uDataModuleConexion, uDataTableUtils, Dialogs, uROTypes,
FactuGES_Intf, schEmpresasClient_Intf, cxControls;
procedure TDataModuleEmpresas.DAClientDataModuleCreate(Sender: TObject);
begin
RORemoteService.Channel := dmConexion.Channel;
RORemoteService.Message := dmConexion.Message;
end;
function TDataModuleEmpresas.DarListaFormasPago: TStringList;
var
ABinary : Binary;
begin
ABinary := (RORemoteService as IsrvEmpresas).DarListaFormasPago;
Result := TStringList.Create;
Result.LoadFromStream(ABinary);
end;
function TDataModuleEmpresas.DarListaTiposIVA: TStringList;
var
ABinary : Binary;
begin
ABinary := (RORemoteService as IsrvEmpresas).DarListaTiposIVA;
Result := TStringList.Create;
Result.LoadFromStream(ABinary);
end;
function TDataModuleEmpresas.DarTiendaUsuario(const ID_EMPRESA,
ID_USUARIO: Integer): Integer;
begin
Result := (RORemoteService as IsrvEmpresas).DarTiendaUsuario(ID_EMPRESA, ID_USUARIO)
end;
function TDataModuleEmpresas.GetItem(const ID: Integer): IBizEmpresa;
begin
ShowHourglassCursor;
try
Result := Self.GetItems;
with Result.DataTable.DynamicWhere do
begin
Clear;
// (ID = :ID)
Expression := NewBinaryExpression(NewField('', fld_EmpresasID), NewConstant(ID, datInteger), dboEqual);
end;
finally
HideHourglassCursor;
end;
end;
function TDataModuleEmpresas.GetItems: IBizEmpresa;
var
AEmpresa : TDAMemDataTable;
begin
ShowHourglassCursor;
try
AEmpresa := CloneDataTable(tbl_Empresas);
AEmpresa.BusinessRulesID := BIZ_CLIENT_EMPRESA;
with TBizEmpresa(AEmpresa.BusinessEventsObj) do
begin
DatosBancarios := _GetDatosBancarios;
Tiendas := GetTiendas;
end;
Result := (AEmpresa as IBizEmpresa);
finally
HideHourglassCursor;
end;
end;
function TDataModuleEmpresas.NewItem: IBizEmpresa;
begin
Result := GetItem(ID_NULO)
end;
function TDataModuleEmpresas.NewTienda: IBizEmpresaTienda;
begin
Result := GetTienda(ID_NULO);
end;
function TDataModuleEmpresas._GetDatosBancarios: IBizEmpresasDatosBancarios;
var
ADatosBancarios : TDAMemDataTable;
begin
ShowHourglassCursor;
try
ADatosBancarios := CloneDataTable(tbl_EmpresasDatosBanco);
with ADatosBancarios do
begin
BusinessRulesID := BIZ_CLIENT_EMPRESAS_DATOS_BANCARIOS;
DetailOptions := DetailOptions -
[dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates];
end;
Result := (ADatosBancarios as IBizEmpresasDatosBancarios);
finally
HideHourglassCursor;
end;
end;
function TDataModuleEmpresas.GetTienda(const ID: Integer): IBizEmpresaTienda;
begin
ShowHourglassCursor;
try
Result := Self.GetTiendas;
with Result.DataTable.DynamicWhere do
begin
Clear;
// (ID = :ID)
Expression := NewBinaryExpression(NewField('', fld_EmpresasTiendasID), NewConstant(ID, datInteger), dboEqual);
end;
finally
HideHourglassCursor;
end;
end;
function TDataModuleEmpresas.GetTiendas: IBizEmpresaTienda;
var
ATiendas : TDAMemDataTable;
begin
ShowHourglassCursor;
try
ATiendas := CloneDataTable(tbl_EmpresasTiendas);
with ATiendas do
begin
BusinessRulesID := BIZ_CLIENT_EMPRESAS_TIENDAS;
DetailOptions := DetailOptions -
[dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates];
end;
Result := (ATiendas as IBizEmpresaTienda);
finally
HideHourglassCursor;
end;
end;
end.