268 lines
7.6 KiB
ObjectPascal
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.
|