unit uDataModuleDevoluciones;

interface

uses {vcl:} SysUtils, Classes, DB, DBClient,
     {RemObjects:} uDAClientDataModule, uDADataTable, uDAScriptingProvider,
  uDACDSDataTable, uDABINAdapter, uDataModuleBase, uROClient,
  uROServiceComponent, uRORemoteService, uBizDevoluciones;

type
  TdmDevoluciones = class(TDAClientDataModule)
    RORemoteService: TRORemoteService;
    tbl_Devoluciones: TDACDSDataTable;
    ds_Devoluciones: TDADataSource;
    tbl_DevolucionesAprobadas: TDACDSDataTable;
    ds_DevolucionesAprobadas: TDADataSource;
    tbl_DevolucionesPendientes: TDACDSDataTable;
    ds_DevolucionesPendientes: TDADataSource;
    procedure DAClientDataModuleCreate(Sender: TObject);
  public
    function GetItems : IBizDevoluciones; overload;
    function GetItems(const AEstado : TInvDevolucionEstado) : IBizDevoluciones; overload;
  end;

var
  dmDevoluciones: TdmDevoluciones;

implementation

{$R *.DFM}

uses
  Forms, Windows, Controls, VARELA_Intf, uEditorPreview,
  uDataTableUtils, uROTypes, cxControls, uDAInterfaces;

procedure TdmDevoluciones.DAClientDataModuleCreate(Sender: TObject);
begin
  RORemoteService.Channel := dmBase.Channel;
  RORemoteService.Message := dmBase.Message;
end;

function TdmDevoluciones.GetItems: IBizDevoluciones;
var
  dtLista: TDACDSDataTable;
begin
  ShowHourglassCursor;
  try
    dtLista := TDACDSDataTable.Create(NIL);
    CloneDataTable(tbl_Devoluciones, dtLista);
    dtLista.BusinessRulesID := BIZ_DEVOLUCIONES;
    Result := (dtLista as IBizDevoluciones);
  finally
    HideHourglassCursor;
  end;
end;

function TdmDevoluciones.GetItems(
  const AEstado: TInvDevolucionEstado): IBizDevoluciones;
var
  dtLista: TDACDSDataTable;
  AStr : String;
begin
  ShowHourglassCursor;
  try
    dtLista := TDACDSDataTable.Create(NIL);

    case AEstado of
      tidPendiente : CloneDataTable(tbl_DevolucionesPendientes, dtLista);
      tidAprobado  : CloneDataTable(tbl_DevolucionesAprobadas, dtLista);
    end;

    dtLista.BusinessRulesID := BIZ_DEVOLUCIONES;
    Result := (dtLista as IBizDevoluciones);
  finally
    HideHourglassCursor;
  end;
end;

initialization
  dmDevoluciones := TdmDevoluciones.Create(nil);

finalization
  FreeAndNil(dmDevoluciones);

end.
