unit uDataModuleEjercicios;

interface

uses
  SysUtils, Classes, DB, uDADataTable, uDABINAdapter,
  uDAScriptingProvider, uDACDSDataTable, uROWinInetHttpChannel, uROTypes,
  uRORemoteService, uROClient, uROBinMessage,
  uDADesigntimeCall,           uControllerBase,
   uBizEjercicios,  uDARemoteDataAdapter, uDADataStreamer, uDAInterfaces, uRODynamicRequest,
  uDABin2DataStreamer, uDAMemDataTable, uIDataModuleEjercicios, uDataModuleBase;
type
  TDataModuleEjercicios = class(TDataModuleBase, IDataModuleEjercicios)
    RORemoteService: TRORemoteService;
    Bin2DataStreamer: TDABin2DataStreamer;
    rda_Ejercicios: TDARemoteDataAdapter;
    tbl_Ejercicios: TDAMemDataTable;
    ds_Ejercicios: TDADataSource;
    procedure DAClientDataModuleCreate(Sender: TObject);
  public
    function GetItems: IBizEjercicio;
    function GenerarPGC(const IdEjercicioCopia: Integer; const IdEjercicio: Integer): Boolean;
    function CerrarEjercicio(const IdEjercicioCierre: Integer; const IdEjercicioApertura: Integer): Boolean;
  end;

implementation

{$R *.DFM}

uses
  FactuGES_Intf, uDataModuleConexion, uDataTableUtils, cxControls,
  schEjerciciosClient_Intf;

{ TdmEjercicios }

function TDataModuleEjercicios.CerrarEjercicio(const IdEjercicioCierre, IdEjercicioApertura: Integer): Boolean;
begin
  Result := (RORemoteService as IsrvEjercicios).CerrarEjercicio(IdEjercicioCierre, IdEjercicioApertura);
end;

procedure TDataModuleEjercicios.DAClientDataModuleCreate(Sender: TObject);
begin
  RORemoteService.Channel := dmConexion.Channel;
  RORemoteService.Message := dmConexion.Message;
end;

function TDataModuleEjercicios.GenerarPGC(const IdEjercicioCopia, IdEjercicio: Integer): Boolean;
begin
  Result := (RORemoteService as IsrvEjercicios).GenerarPGC(IdEjercicioCopia, IdEjercicio);
end;

function TDataModuleEjercicios.GetItems: IBizEjercicio;
var
  AContabilidadEjercicio : TDAMemDataTable;
begin
  ShowHourglassCursor;
  try
    AContabilidadEjercicio := CloneDataTable(tbl_Ejercicios);
    AContabilidadEjercicio.BusinessRulesID := BIZ_CLIENT_EJERCICIO;
    Result := (AContabilidadEjercicio as IBizEjercicio);
  finally
    HideHourglassCursor;
  end;
end;

end.
