unit srvGestorInformes_Impl;

{----------------------------------------------------------------------------}
{ This unit was automatically generated by the RemObjects SDK after reading  }
{ the RODL file associated with this project .                               }
{                                                                            }
{ This is where you are supposed to code the implementation of your objects. }
{----------------------------------------------------------------------------}

interface

uses
  {vcl:} Classes, SysUtils,
  {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions,
  {Ancestor Implementation:} DataAbstractService_Impl,
  {Used RODLs:} DataAbstract4_Intf,
  {Generated:}  uDABusinessProcessor, uDABin2DataStreamer, uDADataStreamer,
  uDAScriptingProvider, uDAClasses,
  FactuGES_Intf, uDAInterfaces, uDADataTable, uDAMemDataTable, uDABinAdapter;


const
  { Dataset names for Schema }
  ds_Employees = 'Employees';
  ds_Customers = 'Customers';
  ds_Regions = 'Regions';

type
  { TGestorInformes }
  TsrvGestorInformes = class(TDataAbstractService, IsrvGestorInformes)
    Schema: TDASchema;
    Bin2DataStreamer: TDABin2DataStreamer;
  public
    //MODULO PRESUPUESTOS CLIENTE
    function GenerarInformeListadoPresupuestos(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary;

    //MODULO FACTURAS 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 CLIENTE
    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;
    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;

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

    //MODULO FACTURAS 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 PROVEEDOR
    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;
    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;
  end;

implementation

{$R *.dfm}
uses
  {Generated:} FactuGES_Invk, uDataModuleServer, uDatabaseUtils, Dialogs,
  uRptPresupuestosCliente_Server, uRptFacturasCliente_Server, uRptRecibosCliente_Server,
  uRptPedidosProveedor_Server, uRptFacturasProveedor_Server, uRptRecibosProveedor_Server;

procedure Create_srvGestorInformes(out anInstance: IUnknown);
begin
  anInstance := TsrvGestorInformes.Create(nil);
end;

function TsrvGestorInformes.GenerarInformeIVAClientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary;
var
  AReportGenerator : TRptFacturasCliente;
begin
  AReportGenerator := TRptFacturasCliente.Create(nil);
  try
    Result := AReportGenerator.GenerarInformeIVA(IdEmpresa, FechaInicio, FechaFin, ListaIDClientes, Desglosado, ImporteMinimo);
  finally
    FreeAndNIL(AReportGenerator);
  end;
end;

function TsrvGestorInformes.GenerarInformeIVAProveedores(const IdEmpresa: Integer;
  const FechaInicio, FechaFin: Variant; const ListaIDProveedores: TIntegerArray;
  const Desglosado: Boolean; const ImporteMinimo: Currency): Binary;
var
  AReportGenerator : TRptFacturasProveedor;
begin
  AReportGenerator := TRptFacturasProveedor.Create(nil);
  try
    Result := AReportGenerator.GenerarInformeIVA(IdEmpresa, FechaInicio, FechaFin, ListaIDProveedores, Desglosado, ImporteMinimo);
  finally
    FreeAndNIL(AReportGenerator);
  end;
end;

function TsrvGestorInformes.GenerarInformeListadoFacturasCli(const IdEmpresa: Integer;
  const FechaInicio, FechaFin: Variant; const FechaVenInicio: Variant; const FechaVenFin: Variant;
  const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary;
var
  AReportGenerator : TRptFacturasCliente;
begin
  AReportGenerator := TRptFacturasCliente.Create(nil);
  try
    Result := AReportGenerator.GenerarInformeListadoFacturas(IdEmpresa, FechaInicio, FechaFin, FechaVenInicio, FechaVenFin, ListaIDClientes, Desglosado, ImporteMinimo);
  finally
    FreeAndNIL(AReportGenerator);
  end;
end;

function TsrvGestorInformes.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;
var
  AReportGenerator : TRptFacturasCliente;
begin
  AReportGenerator := TRptFacturasCliente.Create(nil);
  try
    Result := AReportGenerator.GenerarInformeListadoFacturasPendientes(IdEmpresa, FechaInicio, FechaFin, FechaVenInicio, FechaVenFin, ListaIDClientes, Desglosado, ImporteMinimo);
  finally
    FreeAndNIL(AReportGenerator);
  end;
end;

function TsrvGestorInformes.GenerarInformeListadoFacturasProv(
  const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant;
  const FechaVenInicio, FechaVenFin: Variant;
  const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean;
  const ImporteMinimo: Currency): Binary;
var
  AReportGenerator : TRptFacturasProveedor;
begin
  AReportGenerator := TRptFacturasProveedor.Create(nil);
  try
    Result := AReportGenerator.GenerarInformeListadoFacturas(IdEmpresa, FechaInicio, FechaFin, FechaVenInicio, FechaVenFin, ListaIDProveedores, Desglosado, ImporteMinimo);
  finally
    FreeAndNIL(AReportGenerator);
  end;
end;

function TsrvGestorInformes.GenerarInformeListadoFacturasProvPendientes(
  const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant;
  const FechaVenInicio, FechaVenFin: Variant;
  const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean;
  const ImporteMinimo: Currency): Binary;
var
  AReportGenerator : TRptFacturasProveedor;
begin
  AReportGenerator := TRptFacturasProveedor.Create(nil);
  try
    Result := AReportGenerator.GenerarInformeListadoFacturasPendientes(IdEmpresa, FechaInicio, FechaFin, FechaVenInicio, FechaVenFin, ListaIDProveedores, Desglosado, ImporteMinimo);
  finally
    FreeAndNIL(AReportGenerator);
  end;
end;

function TsrvGestorInformes.GenerarInformeListadoPedidos(const IdEmpresa: Integer;
  const FechaInicio, FechaFin: Variant; const ListaIDProveedores: TIntegerArray;
  const Desglosado: Boolean; const ImporteMinimo: Currency): Binary;
var
  AReportGenerator : TRptPedidosProveedor;
begin
  AReportGenerator := TRptPedidosProveedor.Create(nil);
  try
    Result := AReportGenerator.GenerarInformeListadoPedidos(IdEmpresa, FechaInicio, FechaFin, ListaIDProveedores, Desglosado, ImporteMinimo);
  finally
    FreeAndNIL(AReportGenerator);
  end;
end;

function TsrvGestorInformes.GenerarInformeListadoPresupuestos(
  const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant;
  const ListaIDClientes: TIntegerArray; const Desglosado: Boolean;
  const ImporteMinimo: Currency): Binary;
var
  AReportGenerator : TRptPresupuestosCliente;
begin
  AReportGenerator := TRptPresupuestosCliente.Create(nil);
  try
    Result := AReportGenerator.GenerarInformeListadoPresupuestos(IdEmpresa, FechaInicio, FechaFin, ListaIDClientes, Desglosado, ImporteMinimo);
  finally
    FreeAndNIL(AReportGenerator);
  end;
end;

function TsrvGestorInformes.GenerarInformeListadoRecibosCliente(
  const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant;
  const FechaVenInicio: Variant; const FechaVenFin: Variant;
  const ListaIDClientes: TIntegerArray; const Desglosado: Boolean;
  const ImporteMinimo: Currency): Binary;
var
  AReportGenerator : TRptRecibosCliente;
begin
  AReportGenerator := TRptRecibosCliente.Create(nil);
  try
    Result := AReportGenerator.GenerarInformeListadoRecibos(IdEmpresa, FechaInicio, FechaFin, FechaVenInicio, FechaVenFin, ListaIDClientes, Desglosado, ImporteMinimo);
  finally
    FreeAndNIL(AReportGenerator);
  end;
end;

function TsrvGestorInformes.GenerarInformeListadoRecibosCliPendientes(
  const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant;
  const FechaVenInicio, FechaVenFin: Variant;
  const ListaIDClientes: TIntegerArray; const Desglosado: Boolean;
  const ImporteMinimo: Currency): Binary;
var
  AReportGenerator : TRptRecibosCliente;
begin
  AReportGenerator := TRptRecibosCliente.Create(nil);
  try
    Result := AReportGenerator.GenerarInformeListadoRecibosPendientes(IdEmpresa, FechaInicio, FechaFin, FechaVenInicio, FechaVenFin, ListaIDClientes, Desglosado, ImporteMinimo);
  finally
    FreeAndNIL(AReportGenerator);
  end;
end;

function TsrvGestorInformes.GenerarInformeListadoRecibosProveedor(
  const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant;
  const FechaVenInicio, FechaVenFin: Variant;
  const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean;
  const ImporteMinimo: Currency): Binary;
var
  AReportGenerator : TRptRecibosProveedor;
begin
  AReportGenerator := TRptRecibosProveedor.Create(nil);
  try
    Result := AReportGenerator.GenerarInformeListadoRecibos(IdEmpresa, FechaInicio, FechaFin, FechaVenInicio, FechaVenFin, ListaIDProveedores, Desglosado, ImporteMinimo);
  finally
    FreeAndNIL(AReportGenerator);
  end;
end;

function TsrvGestorInformes.GenerarInformeListadoRecibosProvPendientes(
  const IdEmpresa: Integer; const FechaInicio, FechaFin: Variant;
  const FechaVenInicio, FechaVenFin: Variant;
  const ListaIDProveedores: TIntegerArray; const Desglosado: Boolean;
  const ImporteMinimo: Currency): Binary;
var
  AReportGenerator : TRptRecibosProveedor;
begin
  AReportGenerator := TRptRecibosProveedor.Create(nil);
  try
    Result := AReportGenerator.GenerarInformeListadoRecibosPendientes(IdEmpresa, FechaInicio, FechaFin, FechaVenInicio, FechaVenFin, ListaIDProveedores, Desglosado, ImporteMinimo);
  finally
    FreeAndNIL(AReportGenerator);
  end;
end;

initialization
  TROClassFactory.Create('srvGestorInformes', Create_srvGestorInformes, TsrvGestorInformes_Invoker);

finalization

end.

