AlonsoYSal_FactuGES2/Source/Modulos/Contabilidad/Data/uDataModuleContabilidad.pas
2019-11-18 10:36:42 +00:00

268 lines
7.6 KiB
ObjectPascal

unit uDataModuleContabilidad;
interface
uses
SysUtils, Classes, DB, uDADataTable, uDABINAdapter,
uDAScriptingProvider, uDACDSDataTable, uROWinInetHttpChannel, uROTypes,
uRORemoteService, uROClient, uROBinMessage, uDADesigntimeCall, uControllerBase,
uBizBalances, uBizCuentasEspeciales, uBizEpigrafes, uDARemoteDataAdapter,
uDADataStreamer, uDAInterfaces, uRODynamicRequest, uBizCuentas, uBizSubCuentas,
uBizAsientos, uDABin2DataStreamer, uDAMemDataTable, uIDataModuleContabilidad,
uDataModuleBase, uBizApuntes, uBizDiario;
type
TDataModuleContabilidad = class(TDataModuleBase, IDataModuleContabilidad)
RORemoteService: TRORemoteService;
Bin2DataStreamer: TDABin2DataStreamer;
rda_Contabilidad: TDARemoteDataAdapter;
tbl_Balances: TDAMemDataTable;
ds_Balances: TDADataSource;
tbl_CuentasEspeciales: TDAMemDataTable;
ds_CuentasEspeciales: TDADataSource;
tbl_Epigrafes: TDAMemDataTable;
ds_Epigrafes: TDADataSource;
tbl_Cuentas: TDAMemDataTable;
ds_Cuentas: TDADataSource;
tbl_SubCuentas: TDAMemDataTable;
ds_SubCuentas: TDADataSource;
tbl_Apuntes: TDAMemDataTable;
ds_Apuntes: TDADataSource;
tbl_Asientos: TDAMemDataTable;
ds_Asientos: TDADataSource;
tbl_Diario: TDAMemDataTable;
ds_Diario: TDADataSource;
procedure DAClientDataModuleCreate(Sender: TObject);
private
function _GetApuntes : IBizApunte;
public
function GetEpigrafeItems: IBizEpigrafe;
function GetCuentaItems: IBizCuenta;
function GetSubCuentaItems: IBizSubCuenta;
function GetSubCuentaItem(const ID: Integer): IBizSubCuenta;
function NewSubCuentaItem : IBizSubCuenta;
function GetAsientosDiarioItems: IBizDiario;
function GetExtractoMovimientosItems: IBizExtractoMovimiento;
function GetAsientoItem(const ID : Integer): IBizAsiento;
function GetCuentaEspecialItems: IBizCuentaEspecial;
function GetBalanceItems: IBizBalance;
procedure PuntearAsiento(IDAsiento: Integer);
procedure PuntearSubCuenta(IDSubcuenta: Integer);
end;
implementation
{$R *.DFM}
uses
FactuGES_Intf, uDataModuleConexion, uDataTableUtils, cxControls,
schContabilidadClient_Intf;
{ TdmAlmacens }
procedure TDataModuleContabilidad.DAClientDataModuleCreate(Sender: TObject);
begin
RORemoteService.Channel := dmConexion.Channel;
RORemoteService.Message := dmConexion.Message;
end;
function TDataModuleContabilidad.GetAsientoItem(const ID: Integer): IBizAsiento;
var
AAsiento : TDAMemDataTable;
Condicion: TDAWhereExpression;
begin
ShowHourglassCursor;
try
AAsiento := CloneDataTable(tbl_Asientos);
AAsiento.BusinessRulesID := BIZ_CLIENT_ASIENTO;
with TBizAsiento(AAsiento.BusinessEventsObj) do
begin
Apuntes := _GetApuntes;
end;
//Filtramos por el ID del asiento
with AAsiento.DynamicWhere do
begin
// (ID = :ID)
Condicion := NewBinaryExpression(NewField('', fld_AsientosID), NewConstant(ID, datInteger), dboEqual);
if IsEmpty then
Expression := Condicion
else
Expression := NewBinaryExpression(Expression, Condicion, dboAnd);
end;
Result := (AAsiento as IBizAsiento);
finally
HideHourglassCursor;
end;
end;
function TDataModuleContabilidad.GetAsientosDiarioItems: IBizDiario;
var
ADiario : TDAMemDataTable;
begin
ShowHourglassCursor;
try
ADiario := CloneDataTable(tbl_Diario);
ADiario.BusinessRulesID := BIZ_CLIENT_DIARIO;
Result := (ADiario as IBizDiario);
finally
HideHourglassCursor;
end;
end;
function TDataModuleContabilidad.GetBalanceItems: IBizBalance;
var
AContabilidadBalance : TDAMemDataTable;
begin
ShowHourglassCursor;
try
AContabilidadBalance := CloneDataTable(tbl_Balances);
AContabilidadBalance.BusinessRulesID := BIZ_CLIENT_Balance;
Result := (AContabilidadBalance as IBizBalance);
finally
HideHourglassCursor;
end;
end;
function TDataModuleContabilidad.GetCuentaEspecialItems: IBizCuentaEspecial;
var
AContabilidadCuentaEspecial : TDAMemDataTable;
begin
ShowHourglassCursor;
try
AContabilidadCuentaEspecial := CloneDataTable(tbl_CuentasEspeciales);
AContabilidadCuentaEspecial.BusinessRulesID := BIZ_CLIENT_CuentaEspecial;
Result := (AContabilidadCuentaEspecial as IBizCuentaEspecial);
finally
HideHourglassCursor;
end;
end;
function TDataModuleContabilidad.GetCuentaItems: IBizCuenta;
var
AContabilidadCuenta : TDAMemDataTable;
begin
ShowHourglassCursor;
try
AContabilidadCuenta := CloneDataTable(tbl_Cuentas);
AContabilidadCuenta.BusinessRulesID := BIZ_CLIENT_CUENTA;
Result := (AContabilidadCuenta as IBizCuenta);
finally
HideHourglassCursor;
end;
end;
function TDataModuleContabilidad.GetEpigrafeItems: IBizEpigrafe;
var
AContabilidadEpigrafe : TDAMemDataTable;
begin
ShowHourglassCursor;
try
AContabilidadEpigrafe := CloneDataTable(tbl_Epigrafes);
AContabilidadEpigrafe.BusinessRulesID := BIZ_CLIENT_Epigrafe;
Result := (AContabilidadEpigrafe as IBizEpigrafe);
finally
HideHourglassCursor;
end;
end;
function TDataModuleContabilidad.GetExtractoMovimientosItems: IBizExtractoMovimiento;
var
AExtractoMovimiento : TDAMemDataTable;
begin
ShowHourglassCursor;
try
AExtractoMovimiento := CloneDataTable(tbl_Diario);
AExtractoMovimiento.BusinessRulesID := BIZ_CLIENT_EXTRACTOMOVIMIENTO;
Result := (AExtractoMovimiento as IBizExtractoMovimiento);
finally
HideHourglassCursor;
end;
end;
function TDataModuleContabilidad.GetSubCuentaItem(const ID: Integer): IBizSubCuenta;
var
ASubCuenta : TDAMemDataTable;
Condicion: TDAWhereExpression;
begin
ShowHourglassCursor;
try
ASubCuenta := CloneDataTable(tbl_SubCuentas);
ASubCuenta.BusinessRulesID := BIZ_CLIENT_SUBCUENTA;
//Filtramos por el ID del asiento
with ASubCuenta.DynamicWhere do
begin
// (ID = :ID)
Condicion := NewBinaryExpression(NewField('', fld_SubCuentasID), NewConstant(ID, datInteger), dboEqual);
if IsEmpty then
Expression := Condicion
else
Expression := NewBinaryExpression(Expression, Condicion, dboAnd);
end;
Result := (ASubCuenta as IBizSubCuenta);
finally
HideHourglassCursor;
end;
end;
function TDataModuleContabilidad.GetSubCuentaItems: IBizSubCuenta;
var
AContabilidadSubCuenta : TDAMemDataTable;
begin
ShowHourglassCursor;
try
AContabilidadSubCuenta := CloneDataTable(tbl_SubCuentas);
AContabilidadSubCuenta.BusinessRulesID := BIZ_CLIENT_SUBCUENTA;
Result := (AContabilidadSubCuenta as IBizSubCuenta);
finally
HideHourglassCursor;
end;
end;
function TDataModuleContabilidad.NewSubCuentaItem: IBizSubCuenta;
begin
Result := GetSubCuentaItem(ID_NULO)
end;
procedure TDataModuleContabilidad.PuntearAsiento(IDAsiento: Integer);
begin
(RORemoteService as IsrvContabilidad).PuntearAsiento(IdAsiento);
end;
procedure TDataModuleContabilidad.PuntearSubCuenta(IDSubcuenta: Integer);
begin
(RORemoteService as IsrvContabilidad).PuntearSubCuenta(IdSubCuenta);
end;
function TDataModuleContabilidad._GetApuntes: IBizApunte;
var
AApuntes : TDAMemDataTable;
begin
ShowHourglassCursor;
try
AApuntes := CloneDataTable(tbl_Apuntes);
with AApuntes do
begin
BusinessRulesID := BIZ_CLIENT_APUNTE;
DetailOptions := DetailOptions - [dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates];
end;
Result := (AApuntes as IBizApunte);
finally
HideHourglassCursor;
end;
end;
end.