unit uDataModuleGestorInformes;

interface

uses
  SysUtils, Classes, DB, uDADataTable, uDABINAdapter,
  uDAScriptingProvider, uDACDSDataTable, uROWinInetHttpChannel, uROTypes,
  uRORemoteService, uROClient, uROBinMessage,

  uIDataModuleGestorInformes, uDADesigntimeCall, uDataModuleBase,
  uDAInterfaces, uDAMemDataTable, uDADataStreamer, uDABin2DataStreamer,
  uDARemoteDataAdapter, uIntegerListUtils, FactuGES_Intf;

type
  TDataModuleGestorInformes = class(TDataModuleBase, IDataModuleGestorInformes)
    RORemoteService: TRORemoteService;
    rda_GestorInformes: TDARemoteDataAdapter;
    Bin2DataStreamer: TDABin2DataStreamer;
    tbl_DirectoryData: TDAMemDataTable;
    ds_DirectoryData: TDADataSource;
    procedure DAClientDataModuleCreate(Sender: TObject);
  public
//    function GetItems : IBizFacturaCliente;

    //MODULO PRESUPUESTOS DE CLIENTE
    function GenerarInformeListadoPresupuestos(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary;

    //MODULO FACTURAS DE CLIENTE
    function GenerarInformeIVAClientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary;
    function GenerarInformeListadoFacturasCli(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary;
    function GenerarInformeListadoFacturasCliPendientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary;

    //MODULO RECIBOS DE CLIENTE
    function GenerarInformeListadoRecibosCliPendientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary;
    function GenerarInformeListadoRecibosCliente(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary;

    //MODULO PEDIDOS DE PROVEEDOR
    function GenerarInformeListadoPedidos(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary;

    //MODULO FACTURAS DE PROVEEDOR
    function GenerarInformeIVAProveedores(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary;
    function GenerarInformeListadoFacturasProv(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary;
    function GenerarInformeListadoFacturasProvPendientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary;

    //MODULO RECIBOS DE CLIENTE
    function GenerarInformeListadoRecibosProvPendientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary;
    function GenerarInformeListadoRecibosProveedor(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant; const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary;

    procedure getInforme;
  end;

implementation

{$R *.DFM}

uses
  uDataModuleConexion, uDataTableUtils, cxControls,
  Dialogs;

{ TdmPresupuestos }

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

function TDataModuleGestorInformes.GenerarInformeIVAClientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary;
begin
  try
    Result := (RORemoteService as IsrvGestorInformes).GenerarInformeIVAClientes(IdEmpresa, FechaInicio, FechaFin, ListaIdClientes, Desglosado, ImporteMinimo);
  finally
  end;
end;

function TDataModuleGestorInformes.GenerarInformeIVAProveedores(
  const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant;
  const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean;
  const ImporteMinimo: Currency): Binary;
begin
  try
    Result := (RORemoteService as IsrvGestorInformes).GenerarInformeIVAProveedores(IdEmpresa, FechaInicio, FechaFin, ListaIdProveedores, Desglosado, ImporteMinimo);
  finally
  end;
end;

function TDataModuleGestorInformes.GenerarInformeListadoFacturasCli(
  const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant;
  const FechaVenInicio, FechaVenFin: Variant;
  const ListaIDClientes: TIntegerArray; const Desglosado: Boolean;
  const ImporteMinimo: Currency): Binary;
begin
  try
    Result := (RORemoteService as IsrvGestorInformes).GenerarInformeListadoFacturasCli(IdEmpresa, FechaInicio, FechaFin, FechaVenInicio, FechaVenFin, ListaIdClientes, Desglosado, ImporteMinimo);
  finally
  end;
end;

function TDataModuleGestorInformes.GenerarInformeListadoFacturasCliPendientes(
  const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant;
  const FechaVenInicio, FechaVenFin: Variant;
  const ListaIDClientes: TIntegerArray; const Desglosado: Boolean;
  const ImporteMinimo: Currency): Binary;
begin
  try
    Result := (RORemoteService as IsrvGestorInformes).GenerarInformeListadoFacturasCliPendientes(IdEmpresa, FechaInicio, FechaFin, FechaVenInicio, FechaVenFin, ListaIdClientes, Desglosado, ImporteMinimo);
  finally
  end;
end;

function TDataModuleGestorInformes.GenerarInformeListadoFacturasProv(
  const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant;
  const FechaVenInicio: Variant; const FechaVenFin: Variant;
  const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean;
  const ImporteMinimo: Currency): Binary;
begin
  try
    Result := (RORemoteService as IsrvGestorInformes).GenerarInformeListadoFacturasProv(IdEmpresa, FechaInicio, FechaFin, FechaVenInicio, FechaVenFin, ListaIdProveedores, Desglosado, ImporteMinimo);
  finally
  end;
end;

function TDataModuleGestorInformes.GenerarInformeListadoFacturasProvPendientes(
  const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant;
  const FechaVenInicio: Variant; const FechaVenFin: Variant;
  const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean;
  const ImporteMinimo: Currency): Binary;
begin
  try
    Result := (RORemoteService as IsrvGestorInformes).GenerarInformeListadoFacturasProvPendientes(IdEmpresa, FechaInicio, FechaFin, FechaVenInicio, FechaVenFin, ListaIdProveedores, Desglosado, ImporteMinimo);
  finally
  end;
end;

function TDataModuleGestorInformes.GenerarInformeListadoPedidos(
  const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant;
  const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean;
  const ImporteMinimo: Currency): Binary;
begin
  try
    Result := (RORemoteService as IsrvGestorInformes).GenerarInformeListadoPedidos(IdEmpresa, FechaInicio, FechaFin, ListaIdProveedores, Desglosado, ImporteMinimo);
  finally
  end;
end;

function TDataModuleGestorInformes.GenerarInformeListadoPresupuestos(
  const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant;
  const ListaIDClientes: TIntegerArray; const Desglosado: Boolean;
  const ImporteMinimo: Currency): Binary;
begin
  try
    Result := (RORemoteService as IsrvGestorInformes).GenerarInformeListadoPresupuestos(IdEmpresa, FechaInicio, FechaFin, ListaIdClientes, Desglosado, ImporteMinimo);
  finally
  end;
end;

function TDataModuleGestorInformes.GenerarInformeListadoRecibosCliente(
  const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant;
  const FechaVenInicio: Variant; const FechaVenFin: Variant;
  const ListaIDClientes: TIntegerArray; const Desglosado: Boolean;
  const ImporteMinimo: Currency): Binary;
begin
  try
    Result := (RORemoteService as IsrvGestorInformes).GenerarInformeListadoRecibosCliente(IdEmpresa, FechaInicio, FechaFin, FechaVenInicio, FechaVenFin, ListaIdClientes, Desglosado, ImporteMinimo);
  finally
  end;
end;

function TDataModuleGestorInformes.GenerarInformeListadoRecibosCliPendientes(
  const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant;
  const FechaVenInicio: Variant; const FechaVenFin: Variant;
  const ListaIDClientes: TIntegerArray; const Desglosado: Boolean;
  const ImporteMinimo: Currency): Binary;
begin
  try
    Result := (RORemoteService as IsrvGestorInformes).GenerarInformeListadoRecibosCliPendientes(IdEmpresa, FechaInicio, FechaFin, FechaVenInicio, FechaVenFin, ListaIdClientes, Desglosado, ImporteMinimo);
  finally
  end;
end;

function TDataModuleGestorInformes.GenerarInformeListadoRecibosProveedor(
  const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant;
  const FechaVenInicio: Variant; const FechaVenFin: Variant;
  const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean;
  const ImporteMinimo: Currency): Binary;
begin
  try
    Result := (RORemoteService as IsrvGestorInformes).GenerarInformeListadoRecibosProveedor(IdEmpresa, FechaInicio, FechaFin, FechaVenInicio, FechaVenFin, ListaIdProveedores, Desglosado, ImporteMinimo);
  finally
  end;
end;

function TDataModuleGestorInformes.GenerarInformeListadoRecibosProvPendientes(
  const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant;
  const FechaVenInicio: Variant; const FechaVenFin: Variant;
  const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean;
  const ImporteMinimo: Currency): Binary;
begin
  try
    Result := (RORemoteService as IsrvGestorInformes).GenerarInformeListadoRecibosProvPendientes(IdEmpresa, FechaInicio, FechaFin, FechaVenInicio, FechaVenFin, ListaIdProveedores, Desglosado, ImporteMinimo);
  finally
  end;
end;

procedure TDataModuleGestorInformes.getInforme;
begin
  tbl_DirectoryData.close;
  tbl_DirectoryData.ParamByName('Directory').AsString := 'ddddd';
  tbl_DirectoryData.Open;
  showmessage(tbl_DirectoryData.FieldByName('filename').asstring)
end;
{
function TDataModuleGestorInformes.GetItems: IBizFacturaCliente;
var
  AFactura : TDAMemDataTable;
begin
  ShowHourglassCursor;
  try

    AFactura := CloneDataTable(tbl_FacturasCliente);

    // EL CAMPO REFERENCIA TIENE QUE SER AUTOREFRESH!!!!!
    AFactura.FieldByName(fld_FacturasClienteREFERENCIA).ServerAutoRefresh := TRUE;

    AFactura.BusinessRulesID := BIZ_CLIENT_FACTURA_CLIENTE;

    with TBizFacturaCliente(AFactura.BusinessEventsObj) do
    begin
      Detalles := _GetDetalles;
    end;

    Result := (AFactura as IBizFacturaCliente);

  finally
    HideHourglassCursor;
  end;
end;
}

end.
