unit FactuGES_Intf;

{----------------------------------------------------------------------------}
{ This unit was automatically generated by the RemObjects SDK after reading  }
{ the RODL file associated with this project .                               }
{                                                                            }
{ Do not modify this unit manually, or your changes will be lost when this   }
{ unit is regenerated the next time you compile the project.                 }
{----------------------------------------------------------------------------}

{$I RemObjects.inc}

interface

uses
  {vcl:} Classes, TypInfo,
  {RemObjects:} uROXMLIntf, uROClasses, uROClient, uROTypes, uROClientIntf,
  {Used RODLs:} DataAbstract4_Intf;

const
  { Library ID }
  LibraryUID = '{99553DD5-13B5-40EB-B7E6-D2B9A7C1B4D6}';
  TargetNamespace = '';

  { Service Interface ID's }
  IsrvContactos_IID : TGUID = '{28CCDC07-A3A4-4917-89B4-64423DC70C9D}';
  IsrvLogin_IID : TGUID = '{399F9DB4-1B34-4140-AB6E-3BC10C0A7034}';
  IsrvInventario_IID : TGUID = '{36AF71D2-B19F-45DA-9C02-576B3A21158A}';
  IsrvHistoricoMovimientos_IID : TGUID = '{F1BE4D4C-017B-476D-A009-0D1B8D1A20CE}';
  IsrvEmpresas_IID : TGUID = '{590F06D1-26B4-435B-B636-50CB8FFE6353}';
  IsrvConfiguracion_IID : TGUID = '{0882B8A4-C8AA-424E-8FC1-C6226B670522}';
  IsrvFamilias_IID : TGUID = '{D351175C-CBFD-4328-BF2A-FDC0B05A6308}';
  IsrvFormasPago_IID : TGUID = '{38AA9F85-B454-4A87-B6E8-E9C8BB2A17D9}';
  IsrvTiposIVA_IID : TGUID = '{09B44AB5-6212-448A-8DF2-A503E3F2C9B1}';
  IsrvUsuarios_IID : TGUID = '{29388459-1A0B-46BE-AF9E-66A9E7AABB0B}';
  IsrvAlmacenes_IID : TGUID = '{F984D2A1-9922-4790-9B2D-A78ACFDAE82B}';
  IsrvArticulos_IID : TGUID = '{CFBE5841-DF0F-48AD-853E-A35FDA989E6E}';
  IsrvRecibosCliente_IID : TGUID = '{3B68252A-EE6A-4D37-B250-93F2DB940DDF}';
  IsrvRecibosProveedor_IID : TGUID = '{22580F16-8FFC-4FE0-BCDD-5533D5DB1F55}';
  IsrvRemesasCliente_IID : TGUID = '{33F414D0-0D0B-4384-96CB-D94BC97A0C39}';
  IsrvRemesasProveedor_IID : TGUID = '{6540A037-9847-4650-89BB-7B349C6004DF}';
  IsrvFacturasCliente_IID : TGUID = '{56B4FFF0-AB1B-46B2-BA16-ABD5360F6311}';
  IsrvFacturasProveedor_IID : TGUID = '{7655160C-7023-452E-BB0E-C97E29B915E7}';
  IsrvPresupuestosCliente_IID : TGUID = '{8A06D5A7-8461-4F6E-8A8B-EC49C84C45D1}';
  IsrvPedidosProveedor_IID : TGUID = '{3DCC03E4-E9CE-4798-99D4-7170C9CF815B}';
  IsrvAlbaranesCliente_IID : TGUID = '{6E910718-9AB0-47BB-9875-B0DE66A68D7A}';
  IsrvAlbaranesProveedor_IID : TGUID = '{66B71884-5CE4-4574-B825-60CDA956B628}';
  IsrvReferencias_IID : TGUID = '{B957528D-3BE1-412D-A35E-801C97CCD252}';
  IsrvUnidadesMedida_IID : TGUID = '{8B4C72F0-5ACE-46FF-9F00-D70C2B611652}';
  IsrvFabricantes_IID : TGUID = '{E26547E0-9E61-4BC8-B154-49ACC9339875}';
  IsrvObras_IID : TGUID = '{39277224-A0BD-4249-9ACA-39D238798B25}';
  IsrvProvinciasPoblaciones_IID : TGUID = '{551D8756-51AE-4929-B235-107CD7B05C38}';
  IsrvGestorDocumentos_IID : TGUID = '{2FFB4EEA-F314-442C-920A-E1D37F378929}';
  IsrvGestorInformes_IID : TGUID = '{9ACA4D42-EA9A-4D2C-B233-19CD299EAE91}';
  IsrvComisiones_IID : TGUID = '{461DBBE7-293D-497A-8CD1-840401883BCE}';
  IsrvPedidosCliente_IID : TGUID = '{9AAB5A2E-DCC0-455C-B22D-39186EA1E273}';
  IsrvImpresiones_IID : TGUID = '{CC4477C1-AA2C-464D-B485-AB0C31E282A7}';
  IsrvRegistroCorreos_IID : TGUID = '{E912B281-0A69-49F5-ABA7-8A66FF17DD98}';

  { Event ID's }

type
  { Forward declarations }
  IsrvContactos = interface;
  IsrvLogin = interface;
  IsrvInventario = interface;
  IsrvHistoricoMovimientos = interface;
  IsrvEmpresas = interface;
  IsrvConfiguracion = interface;
  IsrvFamilias = interface;
  IsrvFormasPago = interface;
  IsrvTiposIVA = interface;
  IsrvUsuarios = interface;
  IsrvAlmacenes = interface;
  IsrvArticulos = interface;
  IsrvRecibosCliente = interface;
  IsrvRecibosProveedor = interface;
  IsrvRemesasCliente = interface;
  IsrvRemesasProveedor = interface;
  IsrvFacturasCliente = interface;
  IsrvFacturasProveedor = interface;
  IsrvPresupuestosCliente = interface;
  IsrvPedidosProveedor = interface;
  IsrvAlbaranesCliente = interface;
  IsrvAlbaranesProveedor = interface;
  IsrvReferencias = interface;
  IsrvUnidadesMedida = interface;
  IsrvFabricantes = interface;
  IsrvObras = interface;
  IsrvProvinciasPoblaciones = interface;
  IsrvGestorDocumentos = interface;
  IsrvGestorInformes = interface;
  IsrvComisiones = interface;
  IsrvPedidosCliente = interface;
  IsrvImpresiones = interface;
  IsrvRegistroCorreos = interface;

  TRdxEmpresasArray = class;
  TIntegerArray = class;

  TRdxLoginInfo = class;



  { Enumerateds }
  TRdxAlmacenes = (TRdxAlmacenes_Presupuestos);

  { TRdxLoginInfo }
  TRdxLoginInfo = class(TROComplexType)
  private
    fUserID: Integer;
    fSessionID: AnsiString;
    fUsuario: AnsiString;
    fPerfiles: StringArray;
    fEmpresas: TRdxEmpresasArray;
    function GetPerfiles: StringArray;
    function GetEmpresas: TRdxEmpresasArray;
  public
    procedure Assign(iSource: TPersistent); override;
    procedure ReadComplex(ASerializer: TObject); override;
    procedure WriteComplex(ASerializer: TObject); override;
  published
    property UserID:Integer read fUserID write fUserID;
    property SessionID:AnsiString read fSessionID write fSessionID;
    property Usuario:AnsiString read fUsuario write fUsuario;
    property Perfiles:StringArray read GetPerfiles write fPerfiles;
    property Empresas:TRdxEmpresasArray read GetEmpresas write fEmpresas;
  end;

  { TRdxLoginInfoCollection }
  TRdxLoginInfoCollection = class(TROCollection)
  protected
    constructor Create(aItemClass: TCollectionItemClass); overload;
    function GetItems(aIndex: integer): TRdxLoginInfo;
    procedure SetItems(aIndex: integer; const Value: TRdxLoginInfo);
  public
    constructor Create; overload;
    function Add: TRdxLoginInfo; reintroduce;
    property Items[Index: integer]:TRdxLoginInfo read GetItems write SetItems; default;
  end;

  { TRdxEmpresasArray }
  TRdxEmpresasArray_Integer = array of Integer;
  TRdxEmpresasArray = class(TROArray)
  private
    fCount: Integer;
    fItems : TRdxEmpresasArray_Integer;
  protected
    procedure Grow; virtual;
    function GetItems(aIndex: integer): Integer;
    procedure SetItems(aIndex: integer; const Value: Integer);
    function GetCount: integer; override;
  public
    class function GetItemType: PTypeInfo; override;
    class function GetItemSize: integer; override;

    function GetItemRef(aIndex: integer): pointer; override;
    procedure Clear; override;
    procedure Delete(aIndex: integer); override;
    procedure Resize(ElementCount: integer); override;

    procedure Assign(iSource:TPersistent); override;
    procedure ReadComplex(ASerializer: TObject); override;
    procedure WriteComplex(ASerializer: TObject); override;
    function Add(const Value:Integer): integer;
    function GetIndex(const aPropertyName : string;
                      const aPropertyValue : Variant;
                      StartFrom : integer = 0;
                      Options : TROSearchOptions = [soIgnoreCase]) : integer; override;

    property Count : integer read GetCount;
    property Items[Index: integer]:Integer read GetItems write SetItems; default;
    property InnerArray: TRdxEmpresasArray_Integer read fItems;
  end;

  { TIntegerArray }
  TIntegerArray_Integer = array of Integer;
  TIntegerArray = class(TROArray)
  private
    fCount: Integer;
    fItems : TIntegerArray_Integer;
  protected
    procedure Grow; virtual;
    function GetItems(aIndex: integer): Integer;
    procedure SetItems(aIndex: integer; const Value: Integer);
    function GetCount: integer; override;
  public
    class function GetItemType: PTypeInfo; override;
    class function GetItemSize: integer; override;

    function GetItemRef(aIndex: integer): pointer; override;
    procedure Clear; override;
    procedure Delete(aIndex: integer); override;
    procedure Resize(ElementCount: integer); override;

    procedure Assign(iSource:TPersistent); override;
    procedure ReadComplex(ASerializer: TObject); override;
    procedure WriteComplex(ASerializer: TObject); override;
    function Add(const Value:Integer): integer;
    function GetIndex(const aPropertyName : string;
                      const aPropertyValue : Variant;
                      StartFrom : integer = 0;
                      Options : TROSearchOptions = [soIgnoreCase]) : integer; override;

    property Count : integer read GetCount;
    property Items[Index: integer]:Integer read GetItems write SetItems; default;
    property InnerArray: TIntegerArray_Integer read fItems;
  end;

  { IsrvContactos }
  IsrvContactos = interface(IDataAbstractService)
    ['{28CCDC07-A3A4-4917-89B4-64423DC70C9D}']
    function GenerarInformeFichaEmpleado(const ListaID: TIntegerArray): Binary;
    function GenerarInformeEtiquetas(const ListaID: TIntegerArray): Binary;
    function DarListaDescripcionesProveedores: AnsiString;
    function DarListaContratosEmpleados: AnsiString;
  end;

  { CosrvContactos }
  CosrvContactos = class
    class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvContactos;
  end;

  { TsrvContactos_Proxy }
  TsrvContactos_Proxy = class(TDataAbstractService_Proxy, IsrvContactos)
  protected
    function __GetInterfaceName:string; override;

    function GenerarInformeFichaEmpleado(const ListaID: TIntegerArray): Binary;
    function GenerarInformeEtiquetas(const ListaID: TIntegerArray): Binary;
    function DarListaDescripcionesProveedores: AnsiString;
    function DarListaContratosEmpleados: AnsiString;
  end;

  { IsrvLogin }
  IsrvLogin = interface(IDataAbstractService)
    ['{399F9DB4-1B34-4140-AB6E-3BC10C0A7034}']
    function Login(const User: AnsiString; const Password: AnsiString; out LoginInfo: TRdxLoginInfo): Boolean;
    procedure Logout;
    function Ping: Boolean;
  end;

  { CosrvLogin }
  CosrvLogin = class
    class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvLogin;
  end;

  { TsrvLogin_Proxy }
  TsrvLogin_Proxy = class(TDataAbstractService_Proxy, IsrvLogin)
  protected
    function __GetInterfaceName:string; override;

    function Login(const User: AnsiString; const Password: AnsiString; out LoginInfo: TRdxLoginInfo): Boolean;
    procedure Logout;
    function Ping: Boolean;
  end;

  { IsrvInventario }
  IsrvInventario = interface(IDataAbstractService)
    ['{36AF71D2-B19F-45DA-9C02-576B3A21158A}']
  end;

  { CosrvInventario }
  CosrvInventario = class
    class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvInventario;
  end;

  { TsrvInventario_Proxy }
  TsrvInventario_Proxy = class(TDataAbstractService_Proxy, IsrvInventario)
  protected
    function __GetInterfaceName:string; override;

  end;

  { IsrvHistoricoMovimientos }
  IsrvHistoricoMovimientos = interface(IDataAbstractService)
    ['{F1BE4D4C-017B-476D-A009-0D1B8D1A20CE}']
  end;

  { CosrvHistoricoMovimientos }
  CosrvHistoricoMovimientos = class
    class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvHistoricoMovimientos;
  end;

  { TsrvHistoricoMovimientos_Proxy }
  TsrvHistoricoMovimientos_Proxy = class(TDataAbstractService_Proxy, IsrvHistoricoMovimientos)
  protected
    function __GetInterfaceName:string; override;

  end;

  { IsrvEmpresas }
  IsrvEmpresas = interface(IDataAbstractService)
    ['{590F06D1-26B4-435B-B636-50CB8FFE6353}']
    function DarListaFormasPago: Binary;
    function DarListaTiposIVA: Binary;
    function DarListaAlmacenes(const ID_EMPRESA: Integer): Binary;
  end;

  { CosrvEmpresas }
  CosrvEmpresas = class
    class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvEmpresas;
  end;

  { TsrvEmpresas_Proxy }
  TsrvEmpresas_Proxy = class(TDataAbstractService_Proxy, IsrvEmpresas)
  protected
    function __GetInterfaceName:string; override;

    function DarListaFormasPago: Binary;
    function DarListaTiposIVA: Binary;
    function DarListaAlmacenes(const ID_EMPRESA: Integer): Binary;
  end;

  { IsrvConfiguracion }
  IsrvConfiguracion = interface(IDataAbstractService)
    ['{0882B8A4-C8AA-424E-8FC1-C6226B670522}']
    function darValor(const CODIGO: AnsiString; const ValorPorDefecto: AnsiString): AnsiString;
  end;

  { CosrvConfiguracion }
  CosrvConfiguracion = class
    class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvConfiguracion;
  end;

  { TsrvConfiguracion_Proxy }
  TsrvConfiguracion_Proxy = class(TDataAbstractService_Proxy, IsrvConfiguracion)
  protected
    function __GetInterfaceName:string; override;

    function darValor(const CODIGO: AnsiString; const ValorPorDefecto: AnsiString): AnsiString;
  end;

  { IsrvFamilias }
  IsrvFamilias = interface(IDataAbstractService)
    ['{D351175C-CBFD-4328-BF2A-FDC0B05A6308}']
  end;

  { CosrvFamilias }
  CosrvFamilias = class
    class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvFamilias;
  end;

  { TsrvFamilias_Proxy }
  TsrvFamilias_Proxy = class(TDataAbstractService_Proxy, IsrvFamilias)
  protected
    function __GetInterfaceName:string; override;

  end;

  { IsrvFormasPago }
  IsrvFormasPago = interface(IDataAbstractService)
    ['{38AA9F85-B454-4A87-B6E8-E9C8BB2A17D9}']
  end;

  { CosrvFormasPago }
  CosrvFormasPago = class
    class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvFormasPago;
  end;

  { TsrvFormasPago_Proxy }
  TsrvFormasPago_Proxy = class(TDataAbstractService_Proxy, IsrvFormasPago)
  protected
    function __GetInterfaceName:string; override;

  end;

  { IsrvTiposIVA }
  IsrvTiposIVA = interface(IDataAbstractService)
    ['{09B44AB5-6212-448A-8DF2-A503E3F2C9B1}']
  end;

  { CosrvTiposIVA }
  CosrvTiposIVA = class
    class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvTiposIVA;
  end;

  { TsrvTiposIVA_Proxy }
  TsrvTiposIVA_Proxy = class(TDataAbstractService_Proxy, IsrvTiposIVA)
  protected
    function __GetInterfaceName:string; override;

  end;

  { IsrvUsuarios }
  IsrvUsuarios = interface(IDataAbstractService)
    ['{29388459-1A0B-46BE-AF9E-66A9E7AABB0B}']
  end;

  { CosrvUsuarios }
  CosrvUsuarios = class
    class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvUsuarios;
  end;

  { TsrvUsuarios_Proxy }
  TsrvUsuarios_Proxy = class(TDataAbstractService_Proxy, IsrvUsuarios)
  protected
    function __GetInterfaceName:string; override;

  end;

  { IsrvAlmacenes }
  IsrvAlmacenes = interface(IDataAbstractService)
    ['{F984D2A1-9922-4790-9B2D-A78ACFDAE82B}']
    function DarListaAlmacenes(const IDEmpresa: Integer): Binary;
  end;

  { CosrvAlmacenes }
  CosrvAlmacenes = class
    class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvAlmacenes;
  end;

  { TsrvAlmacenes_Proxy }
  TsrvAlmacenes_Proxy = class(TDataAbstractService_Proxy, IsrvAlmacenes)
  protected
    function __GetInterfaceName:string; override;

    function DarListaAlmacenes(const IDEmpresa: Integer): Binary;
  end;

  { IsrvArticulos }
  IsrvArticulos = interface(IDataAbstractService)
    ['{CFBE5841-DF0F-48AD-853E-A35FDA989E6E}']
    function DarListaProveedoresConArticulos(const IDEmpresa: Integer): Binary;
  end;

  { CosrvArticulos }
  CosrvArticulos = class
    class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvArticulos;
  end;

  { TsrvArticulos_Proxy }
  TsrvArticulos_Proxy = class(TDataAbstractService_Proxy, IsrvArticulos)
  protected
    function __GetInterfaceName:string; override;

    function DarListaProveedoresConArticulos(const IDEmpresa: Integer): Binary;
  end;

  { IsrvRecibosCliente }
  IsrvRecibosCliente = interface(IDataAbstractService)
    ['{3B68252A-EE6A-4D37-B250-93F2DB940DDF}']
    function GenerarInforme(const ListaID: TIntegerArray): Binary;
  end;

  { CosrvRecibosCliente }
  CosrvRecibosCliente = class
    class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvRecibosCliente;
  end;

  { TsrvRecibosCliente_Proxy }
  TsrvRecibosCliente_Proxy = class(TDataAbstractService_Proxy, IsrvRecibosCliente)
  protected
    function __GetInterfaceName:string; override;

    function GenerarInforme(const ListaID: TIntegerArray): Binary;
  end;

  { IsrvRecibosProveedor }
  IsrvRecibosProveedor = interface(IDataAbstractService)
    ['{22580F16-8FFC-4FE0-BCDD-5533D5DB1F55}']
  end;

  { CosrvRecibosProveedor }
  CosrvRecibosProveedor = class
    class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvRecibosProveedor;
  end;

  { TsrvRecibosProveedor_Proxy }
  TsrvRecibosProveedor_Proxy = class(TDataAbstractService_Proxy, IsrvRecibosProveedor)
  protected
    function __GetInterfaceName:string; override;

  end;

  { IsrvRemesasCliente }
  IsrvRemesasCliente = interface(IDataAbstractService)
    ['{33F414D0-0D0B-4384-96CB-D94BC97A0C39}']
    function GenerateReport(const ListaID: TIntegerArray): Binary;
  end;

  { CosrvRemesasCliente }
  CosrvRemesasCliente = class
    class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvRemesasCliente;
  end;

  { TsrvRemesasCliente_Proxy }
  TsrvRemesasCliente_Proxy = class(TDataAbstractService_Proxy, IsrvRemesasCliente)
  protected
    function __GetInterfaceName:string; override;

    function GenerateReport(const ListaID: TIntegerArray): Binary;
  end;

  { IsrvRemesasProveedor }
  IsrvRemesasProveedor = interface(IDataAbstractService)
    ['{6540A037-9847-4650-89BB-7B349C6004DF}']
    function GenerateReport(const ListaID: TIntegerArray): Binary;
  end;

  { CosrvRemesasProveedor }
  CosrvRemesasProveedor = class
    class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvRemesasProveedor;
  end;

  { TsrvRemesasProveedor_Proxy }
  TsrvRemesasProveedor_Proxy = class(TDataAbstractService_Proxy, IsrvRemesasProveedor)
  protected
    function __GetInterfaceName:string; override;

    function GenerateReport(const ListaID: TIntegerArray): Binary;
  end;

  { IsrvFacturasCliente }
  IsrvFacturasCliente = interface(IDataAbstractService)
    ['{56B4FFF0-AB1B-46B2-BA16-ABD5360F6311}']
    function GenerarInforme(const ListaID: TIntegerArray; const VerSello: Boolean; const VerCopia: Boolean): Binary;
    function GenerarInformeEnWord(const ID: Integer; const VerSello: Boolean): Binary;
    function GenerarInformeEnPDF(const ListaID: TIntegerArray; const VerSello: Boolean): Binary;
  end;

  { CosrvFacturasCliente }
  CosrvFacturasCliente = class
    class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvFacturasCliente;
  end;

  { TsrvFacturasCliente_Proxy }
  TsrvFacturasCliente_Proxy = class(TDataAbstractService_Proxy, IsrvFacturasCliente)
  protected
    function __GetInterfaceName:string; override;

    function GenerarInforme(const ListaID: TIntegerArray; const VerSello: Boolean; const VerCopia: Boolean): Binary;
    function GenerarInformeEnWord(const ID: Integer; const VerSello: Boolean): Binary;
    function GenerarInformeEnPDF(const ListaID: TIntegerArray; const VerSello: Boolean): Binary;
  end;

  { IsrvFacturasProveedor }
  IsrvFacturasProveedor = interface(IDataAbstractService)
    ['{7655160C-7023-452E-BB0E-C97E29B915E7}']
    function GenerarInforme(const ListaID: TIntegerArray): Binary;
    function GenerarInformeEnPDF(const ListaID: TIntegerArray): Binary;
  end;

  { CosrvFacturasProveedor }
  CosrvFacturasProveedor = class
    class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvFacturasProveedor;
  end;

  { TsrvFacturasProveedor_Proxy }
  TsrvFacturasProveedor_Proxy = class(TDataAbstractService_Proxy, IsrvFacturasProveedor)
  protected
    function __GetInterfaceName:string; override;

    function GenerarInforme(const ListaID: TIntegerArray): Binary;
    function GenerarInformeEnPDF(const ListaID: TIntegerArray): Binary;
  end;

  { IsrvPresupuestosCliente }
  IsrvPresupuestosCliente = interface(IDataAbstractService)
    ['{8A06D5A7-8461-4F6E-8A8B-EC49C84C45D1}']
    function GenerarInforme(const ListaID: TIntegerArray; const VerSello: Integer): Binary;
    function GenerarInformeEnWord(const ID: Integer; const VerSello: Integer): Binary;
    function GenerarCertificadoTrabajosEnWord(const ID: Integer): Binary;
    function GenerarInformeEnPDF(const ListaID: TIntegerArray; const VerSello: Integer): Binary;
  end;

  { CosrvPresupuestosCliente }
  CosrvPresupuestosCliente = class
    class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvPresupuestosCliente;
  end;

  { TsrvPresupuestosCliente_Proxy }
  TsrvPresupuestosCliente_Proxy = class(TDataAbstractService_Proxy, IsrvPresupuestosCliente)
  protected
    function __GetInterfaceName:string; override;

    function GenerarInforme(const ListaID: TIntegerArray; const VerSello: Integer): Binary;
    function GenerarInformeEnWord(const ID: Integer; const VerSello: Integer): Binary;
    function GenerarCertificadoTrabajosEnWord(const ID: Integer): Binary;
    function GenerarInformeEnPDF(const ListaID: TIntegerArray; const VerSello: Integer): Binary;
  end;

  { IsrvPedidosProveedor }
  IsrvPedidosProveedor = interface(IDataAbstractService)
    ['{3DCC03E4-E9CE-4798-99D4-7170C9CF815B}']
    function GenerarInforme(const ListaID: TIntegerArray; const ImprimirPrecio: Boolean; const ImprimirRefProveedor: Boolean): Binary;
    function GenerarInformeEnWord(const ID: Integer; const ImprimirPrecio: Boolean; const ImprimirRefProveedor: Boolean): Binary;
    function GenerarInformeEnPDF(const ListaID: TIntegerArray; const ImprimirPrecio: Boolean; const ImprimirRefProveedor: Boolean): Binary;
  end;

  { CosrvPedidosProveedor }
  CosrvPedidosProveedor = class
    class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvPedidosProveedor;
  end;

  { TsrvPedidosProveedor_Proxy }
  TsrvPedidosProveedor_Proxy = class(TDataAbstractService_Proxy, IsrvPedidosProveedor)
  protected
    function __GetInterfaceName:string; override;

    function GenerarInforme(const ListaID: TIntegerArray; const ImprimirPrecio: Boolean; const ImprimirRefProveedor: Boolean): Binary;
    function GenerarInformeEnWord(const ID: Integer; const ImprimirPrecio: Boolean; const ImprimirRefProveedor: Boolean): Binary;
    function GenerarInformeEnPDF(const ListaID: TIntegerArray; const ImprimirPrecio: Boolean; const ImprimirRefProveedor: Boolean): Binary;
  end;

  { IsrvAlbaranesCliente }
  IsrvAlbaranesCliente = interface(IDataAbstractService)
    ['{6E910718-9AB0-47BB-9875-B0DE66A68D7A}']
    function GenerarInforme(const ListaID: TIntegerArray; const VerPrecios: Boolean; const VerRefProveedor: Boolean; const VerObservaciones: Boolean; 
                            const VerIncidencias: Boolean): Binary;
    function GenerarInformeEtiquetas(const ID: Integer; const withRefCliente: Boolean): Binary;
    function GenerarInformeEnWord(const ID: Integer): Binary;
    function GenerarInformeEnPDF(const ListaID: TIntegerArray; const VerPrecios: Boolean; const VerRefProveedor: Boolean; const VerObservaciones: Boolean; 
                                 const VerIncidencias: Boolean): Binary;
  end;

  { CosrvAlbaranesCliente }
  CosrvAlbaranesCliente = class
    class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvAlbaranesCliente;
  end;

  { TsrvAlbaranesCliente_Proxy }
  TsrvAlbaranesCliente_Proxy = class(TDataAbstractService_Proxy, IsrvAlbaranesCliente)
  protected
    function __GetInterfaceName:string; override;

    function GenerarInforme(const ListaID: TIntegerArray; const VerPrecios: Boolean; const VerRefProveedor: Boolean; const VerObservaciones: Boolean; 
                            const VerIncidencias: Boolean): Binary;
    function GenerarInformeEtiquetas(const ID: Integer; const withRefCliente: Boolean): Binary;
    function GenerarInformeEnWord(const ID: Integer): Binary;
    function GenerarInformeEnPDF(const ListaID: TIntegerArray; const VerPrecios: Boolean; const VerRefProveedor: Boolean; const VerObservaciones: Boolean; 
                                 const VerIncidencias: Boolean): Binary;
  end;

  { IsrvAlbaranesProveedor }
  IsrvAlbaranesProveedor = interface(IDataAbstractService)
    ['{66B71884-5CE4-4574-B825-60CDA956B628}']
    function GenerarInforme(const ListaID: TIntegerArray; const ImprimirPrecio: Boolean; const ImprimirRefProveedor: Boolean): Binary;
    function GenerarInformeEnWord(const ID: Integer; const ImprimirPrecio: Boolean; const ImprimirRefProveedor: Boolean): Binary;
    function GenerarInformeEnPDF(const ListaID: TIntegerArray; const ImprimirPrecio: Boolean; const ImprimirRefProveedor: Boolean): Binary;
  end;

  { CosrvAlbaranesProveedor }
  CosrvAlbaranesProveedor = class
    class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvAlbaranesProveedor;
  end;

  { TsrvAlbaranesProveedor_Proxy }
  TsrvAlbaranesProveedor_Proxy = class(TDataAbstractService_Proxy, IsrvAlbaranesProveedor)
  protected
    function __GetInterfaceName:string; override;

    function GenerarInforme(const ListaID: TIntegerArray; const ImprimirPrecio: Boolean; const ImprimirRefProveedor: Boolean): Binary;
    function GenerarInformeEnWord(const ID: Integer; const ImprimirPrecio: Boolean; const ImprimirRefProveedor: Boolean): Binary;
    function GenerarInformeEnPDF(const ListaID: TIntegerArray; const ImprimirPrecio: Boolean; const ImprimirRefProveedor: Boolean): Binary;
  end;

  { IsrvReferencias }

  { Description:
      Para uso interno del servidor. Para modulo de gestion de referencias del cliente }
  IsrvReferencias = interface(IDataAbstractService)
    ['{B957528D-3BE1-412D-A35E-801C97CCD252}']
    function DarNuevaReferencia(const NombreReferencia: AnsiString; const EmpresaID: Integer): AnsiString;
    function IncrementarValorReferencia(const NombreReferencia: AnsiString; const Valor: AnsiString; const EmpresaID: Integer): Boolean;
  end;

  { CosrvReferencias }
  CosrvReferencias = class
    class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvReferencias;
  end;

  { TsrvReferencias_Proxy }
  TsrvReferencias_Proxy = class(TDataAbstractService_Proxy, IsrvReferencias)
  protected
    function __GetInterfaceName:string; override;

    function DarNuevaReferencia(const NombreReferencia: AnsiString; const EmpresaID: Integer): AnsiString;
    function IncrementarValorReferencia(const NombreReferencia: AnsiString; const Valor: AnsiString; const EmpresaID: Integer): Boolean;
  end;

  { IsrvUnidadesMedida }
  IsrvUnidadesMedida = interface(IDataAbstractService)
    ['{8B4C72F0-5ACE-46FF-9F00-D70C2B611652}']
  end;

  { CosrvUnidadesMedida }
  CosrvUnidadesMedida = class
    class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvUnidadesMedida;
  end;

  { TsrvUnidadesMedida_Proxy }
  TsrvUnidadesMedida_Proxy = class(TDataAbstractService_Proxy, IsrvUnidadesMedida)
  protected
    function __GetInterfaceName:string; override;

  end;

  { IsrvFabricantes }
  IsrvFabricantes = interface(IDataAbstractService)
    ['{E26547E0-9E61-4BC8-B154-49ACC9339875}']
  end;

  { CosrvFabricantes }
  CosrvFabricantes = class
    class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvFabricantes;
  end;

  { TsrvFabricantes_Proxy }
  TsrvFabricantes_Proxy = class(TDataAbstractService_Proxy, IsrvFabricantes)
  protected
    function __GetInterfaceName:string; override;

  end;

  { IsrvObras }
  IsrvObras = interface(IDataAbstractService)
    ['{39277224-A0BD-4249-9ACA-39D238798B25}']
    function DarListaObras(const IDEmpresa: Integer): Binary;
  end;

  { CosrvObras }
  CosrvObras = class
    class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvObras;
  end;

  { TsrvObras_Proxy }
  TsrvObras_Proxy = class(TDataAbstractService_Proxy, IsrvObras)
  protected
    function __GetInterfaceName:string; override;

    function DarListaObras(const IDEmpresa: Integer): Binary;
  end;

  { IsrvProvinciasPoblaciones }
  IsrvProvinciasPoblaciones = interface
    ['{551D8756-51AE-4929-B235-107CD7B05C38}']
    function DarListaProvincias: Binary;
    function DarListaPoblaciones(const ID_Provincia: Integer): Binary;
  end;

  { CosrvProvinciasPoblaciones }
  CosrvProvinciasPoblaciones = class
    class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvProvinciasPoblaciones;
  end;

  { TsrvProvinciasPoblaciones_Proxy }
  TsrvProvinciasPoblaciones_Proxy = class(TROProxy, IsrvProvinciasPoblaciones)
  protected
    function __GetInterfaceName:string; override;

    function DarListaProvincias: Binary;
    function DarListaPoblaciones(const ID_Provincia: Integer): Binary;
  end;

  { IsrvGestorDocumentos }
  IsrvGestorDocumentos = interface(IDataAbstractService)
    ['{2FFB4EEA-F314-442C-920A-E1D37F378929}']
    function DarListaFicheros(const Almacen: TRdxAlmacenes; const ID: Integer): StringArray;
    function DescargarFichero(const Almacen: TRdxAlmacenes; const ID: Integer; const NombreFichero: AnsiString): Binary;
    function SubirFichero(const Almacen: TRdxAlmacenes; const ID: Integer; const NombreFichero: AnsiString; const Fichero: Binary): Boolean;
    function EliminarFichero(const Almacen: TRdxAlmacenes; const ID: Integer; const NombreFichero: AnsiString): Boolean;
    function EliminarID(const Almacen: TRdxAlmacenes; const ID: Integer): Boolean;
  end;

  { CosrvGestorDocumentos }
  CosrvGestorDocumentos = class
    class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvGestorDocumentos;
  end;

  { TsrvGestorDocumentos_Proxy }
  TsrvGestorDocumentos_Proxy = class(TDataAbstractService_Proxy, IsrvGestorDocumentos)
  protected
    function __GetInterfaceName:string; override;

    function DarListaFicheros(const Almacen: TRdxAlmacenes; const ID: Integer): StringArray;
    function DescargarFichero(const Almacen: TRdxAlmacenes; const ID: Integer; const NombreFichero: AnsiString): Binary;
    function SubirFichero(const Almacen: TRdxAlmacenes; const ID: Integer; const NombreFichero: AnsiString; const Fichero: Binary): Boolean;
    function EliminarFichero(const Almacen: TRdxAlmacenes; const ID: Integer; const NombreFichero: AnsiString): Boolean;
    function EliminarID(const Almacen: TRdxAlmacenes; const ID: Integer): Boolean;
  end;

  { IsrvGestorInformes }
  IsrvGestorInformes = interface(IDataAbstractService)
    ['{9ACA4D42-EA9A-4D2C-B233-19CD299EAE91}']
    function GenerarInformeIVAClientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDClientes: TIntegerArray; 
                                       const Desglosado: Boolean; const ImporteMinimo: Currency): Binary;
    function GenerarInformeIVAProveedores(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDProveedores: 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 ListadoIDClientes: 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 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;
    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;
    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 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 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 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 GenerarInformeListadoPresupuestos(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDClientes: TIntegerArray; 
                                               const Desglosado: Boolean; const ImporteMinimo: Currency): Binary;
    function GenerarInformeListadoPedidos(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDProveedores: TIntegerArray; 
                                          const Desglosado: Boolean; const ImporteMinimo: Currency): Binary;
  end;

  { CosrvGestorInformes }
  CosrvGestorInformes = class
    class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvGestorInformes;
  end;

  { TsrvGestorInformes_Proxy }
  TsrvGestorInformes_Proxy = class(TDataAbstractService_Proxy, IsrvGestorInformes)
  protected
    function __GetInterfaceName:string; override;

    function GenerarInformeIVAClientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDClientes: TIntegerArray; 
                                       const Desglosado: Boolean; const ImporteMinimo: Currency): Binary;
    function GenerarInformeIVAProveedores(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDProveedores: 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 ListadoIDClientes: 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 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;
    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;
    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 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 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 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 GenerarInformeListadoPresupuestos(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDClientes: TIntegerArray; 
                                               const Desglosado: Boolean; const ImporteMinimo: Currency): Binary;
    function GenerarInformeListadoPedidos(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDProveedores: TIntegerArray; 
                                          const Desglosado: Boolean; const ImporteMinimo: Currency): Binary;
  end;

  { IsrvComisiones }
  IsrvComisiones = interface(IDataAbstractService)
    ['{461DBBE7-293D-497A-8CD1-840401883BCE}']
    function GenerateReport(const AComisionID: Variant; const DesglosadoProv: Boolean; const FechaIni: AnsiString; const FechaFin: AnsiString; 
                            const AAgenteID: Variant): Binary;
  end;

  { CosrvComisiones }
  CosrvComisiones = class
    class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvComisiones;
  end;

  { TsrvComisiones_Proxy }
  TsrvComisiones_Proxy = class(TDataAbstractService_Proxy, IsrvComisiones)
  protected
    function __GetInterfaceName:string; override;

    function GenerateReport(const AComisionID: Variant; const DesglosadoProv: Boolean; const FechaIni: AnsiString; const FechaFin: AnsiString; 
                            const AAgenteID: Variant): Binary;
  end;

  { IsrvPedidosCliente }
  IsrvPedidosCliente = interface(IDataAbstractService)
    ['{9AAB5A2E-DCC0-455C-B22D-39186EA1E273}']
    function GenerarInforme(const ListaID: TIntegerArray; const ImprimirPrecio: Boolean; const ImprimirRefProveedor: Boolean): Binary;
    function GenerarInformeEnPDF(const ListaID: TIntegerArray; const ImprimirPrecio: Boolean; const ImprimirRefProveedor: Boolean): Binary;
  end;

  { CosrvPedidosCliente }
  CosrvPedidosCliente = class
    class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvPedidosCliente;
  end;

  { TsrvPedidosCliente_Proxy }
  TsrvPedidosCliente_Proxy = class(TDataAbstractService_Proxy, IsrvPedidosCliente)
  protected
    function __GetInterfaceName:string; override;

    function GenerarInforme(const ListaID: TIntegerArray; const ImprimirPrecio: Boolean; const ImprimirRefProveedor: Boolean): Binary;
    function GenerarInformeEnPDF(const ListaID: TIntegerArray; const ImprimirPrecio: Boolean; const ImprimirRefProveedor: Boolean): Binary;
  end;

  { IsrvImpresiones }
  IsrvImpresiones = interface(IDataAbstractService)
    ['{CC4477C1-AA2C-464D-B485-AB0C31E282A7}']
    function AnadirMarcaImpresion(const NombreTabla: AnsiString; const IdsTabla: AnsiString): Boolean;
  end;

  { CosrvImpresiones }
  CosrvImpresiones = class
    class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvImpresiones;
  end;

  { TsrvImpresiones_Proxy }
  TsrvImpresiones_Proxy = class(TDataAbstractService_Proxy, IsrvImpresiones)
  protected
    function __GetInterfaceName:string; override;

    function AnadirMarcaImpresion(const NombreTabla: AnsiString; const IdsTabla: AnsiString): Boolean;
  end;

  { IsrvRegistroCorreos }
  IsrvRegistroCorreos = interface(IDataAbstractService)
    ['{E912B281-0A69-49F5-ABA7-8A66FF17DD98}']
    function AnadirMarcaEnvio(const NombreTabla: AnsiString; const IdsTabla: TIntegerArray): Boolean;
  end;

  { CosrvRegistroCorreos }
  CosrvRegistroCorreos = class
    class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvRegistroCorreos;
  end;

  { TsrvRegistroCorreos_Proxy }
  TsrvRegistroCorreos_Proxy = class(TDataAbstractService_Proxy, IsrvRegistroCorreos)
  protected
    function __GetInterfaceName:string; override;

    function AnadirMarcaEnvio(const NombreTabla: AnsiString; const IdsTabla: TIntegerArray): Boolean;
  end;

implementation

uses
  {vcl:} SysUtils,
  {RemObjects:} uROEventRepository, uROSerializer, uRORes;

{ TRdxEmpresasArray }

procedure TRdxEmpresasArray.Assign(iSource: TPersistent);
var lSource:TRdxEmpresasArray;
    i:integer;
begin
  if (iSource is TRdxEmpresasArray) then begin
    lSource := TRdxEmpresasArray(iSource);
    Clear();
    Resize(lSource.Count);

    for i := 0 to Count-1 do begin
      Items[i] := lSource.Items[i];
    end;
  end
  else begin
    inherited Assign(iSource);
  end;
end;

class function TRdxEmpresasArray.GetItemType: PTypeInfo;
begin
  result := TypeInfo(Integer);
end;

class function TRdxEmpresasArray.GetItemSize: integer;
begin
  result := SizeOf(Integer);
end;

function TRdxEmpresasArray.GetItems(aIndex: integer): Integer;
begin
  if (aIndex < 0) or (aIndex >= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]);
  result := fItems[aIndex];
end;

function TRdxEmpresasArray.GetItemRef(aIndex: integer): pointer;
begin
  if (aIndex < 0) or (aIndex >= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]);
  result := @fItems[aIndex];
end;

procedure TRdxEmpresasArray.Clear;
begin
  SetLength(fItems, 0);
  FCount := 0;
end;

procedure TRdxEmpresasArray.Delete(aIndex: integer);
var i: integer;
begin
  if (aIndex>=Count) then RaiseError(err_InvalidIndex, [aIndex]);

  if (aIndex<Count-1) then
    for i := aIndex to Count-2 do fItems[i] := fItems[i+1];

  SetLength(fItems, Count-1);
  Dec(FCount);
end;

procedure TRdxEmpresasArray.SetItems(aIndex: integer; const Value: Integer);
begin
  if (aIndex < 0) or (aIndex >= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]);
  fItems[aIndex] := Value;
end;

procedure TRdxEmpresasArray.Resize(ElementCount: integer);
begin
  if fCount = ElementCount then Exit;
  SetLength(fItems, ElementCount);
  FCount := ElementCount;
end;

function TRdxEmpresasArray.GetCount: integer;
begin
  result := FCount;
end;

procedure TRdxEmpresasArray.Grow;
var
  Delta, Capacity: Integer;
begin
  Capacity := Length(fItems);
  if Capacity > 64 then
    Delta := Capacity div 4
  else
    if Capacity > 8 then
      Delta := 16
   else
      Delta := 4;
  SetLength(fItems, Capacity + Delta);
end;

function TRdxEmpresasArray.Add(const Value: Integer): integer;
begin
  Result := Count;
  if Length(fItems) = Result then
    Grow;
  fItems[result] := Value;
  Inc(fCount);
end;

function TRdxEmpresasArray.GetIndex(const aPropertyName: string;
  const aPropertyValue: Variant; StartFrom: integer;
  Options: TROSearchOptions): integer;
begin
  result := -1;
end;

procedure TRdxEmpresasArray.ReadComplex(ASerializer: TObject);
var
  lval: Integer;
  i: integer;
begin
  for i := 0 to Count-1 do begin
    with TROSerializer(ASerializer) do
      ReadInteger(GetArrayElementName(GetItemType, GetItemRef(i)), otSLong, lval, i);
    Items[i] := lval;
  end;
end;

procedure TRdxEmpresasArray.WriteComplex(ASerializer: TObject);
var
  i: integer;
begin
  for i := 0 to Count-1 do
    with TROSerializer(ASerializer) do
      WriteInteger(GetArrayElementName(GetItemType, GetItemRef(i)), otSLong, fItems[i], i);
end;

{ TIntegerArray }

procedure TIntegerArray.Assign(iSource: TPersistent);
var lSource:TIntegerArray;
    i:integer;
begin
  if (iSource is TIntegerArray) then begin
    lSource := TIntegerArray(iSource);
    Clear();
    Resize(lSource.Count);

    for i := 0 to Count-1 do begin
      Items[i] := lSource.Items[i];
    end;
  end
  else begin
    inherited Assign(iSource);
  end;
end;

class function TIntegerArray.GetItemType: PTypeInfo;
begin
  result := TypeInfo(Integer);
end;

class function TIntegerArray.GetItemSize: integer;
begin
  result := SizeOf(Integer);
end;

function TIntegerArray.GetItems(aIndex: integer): Integer;
begin
  if (aIndex < 0) or (aIndex >= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]);
  result := fItems[aIndex];
end;

function TIntegerArray.GetItemRef(aIndex: integer): pointer;
begin
  if (aIndex < 0) or (aIndex >= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]);
  result := @fItems[aIndex];
end;

procedure TIntegerArray.Clear;
begin
  SetLength(fItems, 0);
  FCount := 0;
end;

procedure TIntegerArray.Delete(aIndex: integer);
var i: integer;
begin
  if (aIndex>=Count) then RaiseError(err_InvalidIndex, [aIndex]);

  if (aIndex<Count-1) then
    for i := aIndex to Count-2 do fItems[i] := fItems[i+1];

  SetLength(fItems, Count-1);
  Dec(FCount);
end;

procedure TIntegerArray.SetItems(aIndex: integer; const Value: Integer);
begin
  if (aIndex < 0) or (aIndex >= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]);
  fItems[aIndex] := Value;
end;

procedure TIntegerArray.Resize(ElementCount: integer);
begin
  if fCount = ElementCount then Exit;
  SetLength(fItems, ElementCount);
  FCount := ElementCount;
end;

function TIntegerArray.GetCount: integer;
begin
  result := FCount;
end;

procedure TIntegerArray.Grow;
var
  Delta, Capacity: Integer;
begin
  Capacity := Length(fItems);
  if Capacity > 64 then
    Delta := Capacity div 4
  else
    if Capacity > 8 then
      Delta := 16
   else
      Delta := 4;
  SetLength(fItems, Capacity + Delta);
end;

function TIntegerArray.Add(const Value: Integer): integer;
begin
  Result := Count;
  if Length(fItems) = Result then
    Grow;
  fItems[result] := Value;
  Inc(fCount);
end;

function TIntegerArray.GetIndex(const aPropertyName: string;
  const aPropertyValue: Variant; StartFrom: integer;
  Options: TROSearchOptions): integer;
begin
  result := -1;
end;

procedure TIntegerArray.ReadComplex(ASerializer: TObject);
var
  lval: Integer;
  i: integer;
begin
  for i := 0 to Count-1 do begin
    with TROSerializer(ASerializer) do
      ReadInteger(GetArrayElementName(GetItemType, GetItemRef(i)), otSLong, lval, i);
    Items[i] := lval;
  end;
end;

procedure TIntegerArray.WriteComplex(ASerializer: TObject);
var
  i: integer;
begin
  for i := 0 to Count-1 do
    with TROSerializer(ASerializer) do
      WriteInteger(GetArrayElementName(GetItemType, GetItemRef(i)), otSLong, fItems[i], i);
end;

{ TRdxLoginInfo }

procedure TRdxLoginInfo.Assign(iSource: TPersistent); 
var lSource: FactuGES_Intf.TRdxLoginInfo;
begin
  inherited Assign(iSource);
  if (iSource is FactuGES_Intf.TRdxLoginInfo) then begin
    lSource := FactuGES_Intf.TRdxLoginInfo(iSource);
    UserID := lSource.UserID;
    SessionID := lSource.SessionID;
    Usuario := lSource.Usuario;
    Perfiles.Assign(lSource.Perfiles);
    Empresas.Assign(lSource.Empresas);
  end;
end;

function TRdxLoginInfo.GetPerfiles: StringArray;
begin
  if (fPerfiles = nil) then fPerfiles := StringArray.Create();
  result := fPerfiles;
end;

function TRdxLoginInfo.GetEmpresas: TRdxEmpresasArray;
begin
  if (fEmpresas = nil) then fEmpresas := TRdxEmpresasArray.Create();
  result := fEmpresas;
end;

procedure TRdxLoginInfo.ReadComplex(ASerializer: TObject);
var
  l_Empresas: TRdxEmpresasArray;
  l_Perfiles: StringArray;
  l_SessionID: AnsiString;
  l_UserID: Integer;
  l_Usuario: AnsiString;
begin
  if TROSerializer(ASerializer).RecordStrictOrder then begin
    l_UserID := UserID;
    TROSerializer(ASerializer).ReadInteger('UserID', otSLong, l_UserID);
    UserID := l_UserID;
    l_SessionID := SessionID;
    TROSerializer(ASerializer).ReadAnsiString('SessionID', l_SessionID);
    SessionID := l_SessionID;
    l_Usuario := Usuario;
    TROSerializer(ASerializer).ReadAnsiString('Usuario', l_Usuario);
    Usuario := l_Usuario;
    l_Perfiles := Perfiles;
    TROSerializer(ASerializer).ReadArray('Perfiles', StringArray, l_Perfiles);
    if Perfiles <> l_Perfiles then Perfiles.Free;
    Perfiles := l_Perfiles;
    l_Empresas := Empresas;
    TROSerializer(ASerializer).ReadArray('Empresas', TRdxEmpresasArray, l_Empresas);
    if Empresas <> l_Empresas then Empresas.Free;
    Empresas := l_Empresas;
  end
  else begin
    l_Empresas := Empresas;
    TROSerializer(ASerializer).ReadArray('Empresas', TRdxEmpresasArray, l_Empresas);
    if Empresas <> l_Empresas then Empresas.Free;
    Empresas := l_Empresas;
    l_Perfiles := Perfiles;
    TROSerializer(ASerializer).ReadArray('Perfiles', StringArray, l_Perfiles);
    if Perfiles <> l_Perfiles then Perfiles.Free;
    Perfiles := l_Perfiles;
    l_SessionID := SessionID;
    TROSerializer(ASerializer).ReadAnsiString('SessionID', l_SessionID);
    SessionID := l_SessionID;
    l_UserID := UserID;
    TROSerializer(ASerializer).ReadInteger('UserID', otSLong, l_UserID);
    UserID := l_UserID;
    l_Usuario := Usuario;
    TROSerializer(ASerializer).ReadAnsiString('Usuario', l_Usuario);
    Usuario := l_Usuario;
  end;
end;

procedure TRdxLoginInfo.WriteComplex(ASerializer: TObject);
var
  l_Empresas: TRdxEmpresasArray;
  l_Perfiles: StringArray;
  l_SessionID: AnsiString;
  l_UserID: Integer;
  l_Usuario: AnsiString;
begin
  if TROSerializer(ASerializer).RecordStrictOrder then begin
    TROSerializer(ASerializer).ChangeClass(TRdxLoginInfo);
    l_UserID := UserID;
    TROSerializer(ASerializer).WriteInteger('UserID', otSLong, l_UserID);
    l_SessionID := SessionID;
    TROSerializer(ASerializer).WriteAnsiString('SessionID', l_SessionID);
    l_Usuario := Usuario;
    TROSerializer(ASerializer).WriteAnsiString('Usuario', l_Usuario);
    l_Perfiles := Perfiles;
    TROSerializer(ASerializer).WriteArray('Perfiles', l_Perfiles, StringArray);
    l_Empresas := Empresas;
    TROSerializer(ASerializer).WriteArray('Empresas', l_Empresas, TRdxEmpresasArray);
  end
  else begin
    l_Empresas := Empresas;
    TROSerializer(ASerializer).WriteArray('Empresas', l_Empresas, TRdxEmpresasArray);
    l_Perfiles := Perfiles;
    TROSerializer(ASerializer).WriteArray('Perfiles', l_Perfiles, StringArray);
    l_SessionID := SessionID;
    TROSerializer(ASerializer).WriteAnsiString('SessionID', l_SessionID);
    l_UserID := UserID;
    TROSerializer(ASerializer).WriteInteger('UserID', otSLong, l_UserID);
    l_Usuario := Usuario;
    TROSerializer(ASerializer).WriteAnsiString('Usuario', l_Usuario);
  end;
end;

{ TRdxLoginInfoCollection }
constructor TRdxLoginInfoCollection.Create;
begin
  inherited Create(TRdxLoginInfo);
end;

constructor TRdxLoginInfoCollection.Create(aItemClass: TCollectionItemClass);
begin
  inherited Create(aItemClass);
end;

function TRdxLoginInfoCollection.Add: TRdxLoginInfo;
begin
  result := TRdxLoginInfo(inherited Add);
end;

function TRdxLoginInfoCollection.GetItems(aIndex: integer): TRdxLoginInfo;
begin
  result := TRdxLoginInfo(inherited Items[aIndex]);
end;

procedure TRdxLoginInfoCollection.SetItems(aIndex: integer; const Value: TRdxLoginInfo);
begin
  TRdxLoginInfo(inherited Items[aIndex]).Assign(Value);
end;

{ CosrvContactos }

class function CosrvContactos.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvContactos;
begin
  result := TsrvContactos_Proxy.Create(aMessage, aTransportChannel);
end;

{ TsrvContactos_Proxy }

function TsrvContactos_Proxy.__GetInterfaceName:string;
begin
  result := 'srvContactos';
end;

function TsrvContactos_Proxy.GenerarInformeFichaEmpleado(const ListaID: TIntegerArray): Binary;
begin
  try
    result := nil;
    __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInformeFichaEmpleado');
    __Message.Write('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []);
    __Message.Finalize;

    __TransportChannel.Dispatch(__Message);

    __Message.Read('Result', TypeInfo(Binary), result, []);
  finally
    __Message.UnsetAttributes(__TransportChannel);
    __Message.FreeStream;
  end
end;

function TsrvContactos_Proxy.GenerarInformeEtiquetas(const ListaID: TIntegerArray): Binary;
begin
  try
    result := nil;
    __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInformeEtiquetas');
    __Message.Write('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []);
    __Message.Finalize;

    __TransportChannel.Dispatch(__Message);

    __Message.Read('Result', TypeInfo(Binary), result, []);
  finally
    __Message.UnsetAttributes(__TransportChannel);
    __Message.FreeStream;
  end
end;

function TsrvContactos_Proxy.DarListaDescripcionesProveedores: AnsiString;
begin
  try
    __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'DarListaDescripcionesProveedores');
    __Message.Finalize;

    __TransportChannel.Dispatch(__Message);

    __Message.Read('Result', TypeInfo(AnsiString), result, []);
  finally
    __Message.UnsetAttributes(__TransportChannel);
    __Message.FreeStream;
  end
end;

function TsrvContactos_Proxy.DarListaContratosEmpleados: AnsiString;
begin
  try
    __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'DarListaContratosEmpleados');
    __Message.Finalize;

    __TransportChannel.Dispatch(__Message);

    __Message.Read('Result', TypeInfo(AnsiString), result, []);
  finally
    __Message.UnsetAttributes(__TransportChannel);
    __Message.FreeStream;
  end
end;

{ CosrvLogin }

class function CosrvLogin.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvLogin;
begin
  result := TsrvLogin_Proxy.Create(aMessage, aTransportChannel);
end;

{ TsrvLogin_Proxy }

function TsrvLogin_Proxy.__GetInterfaceName:string;
begin
  result := 'srvLogin';
end;

function TsrvLogin_Proxy.Login(const User: AnsiString; const Password: AnsiString; out LoginInfo: TRdxLoginInfo): Boolean;
begin
  try
    LoginInfo := nil;
    __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'Login');
    __Message.Write('User', TypeInfo(AnsiString), User, []);
    __Message.Write('Password', TypeInfo(AnsiString), Password, []);
    __Message.Finalize;

    __TransportChannel.Dispatch(__Message);

    __Message.Read('Result', TypeInfo(Boolean), result, []);
    __Message.Read('LoginInfo', TypeInfo(FactuGES_Intf.TRdxLoginInfo), LoginInfo, []);
  finally
    __Message.UnsetAttributes(__TransportChannel);
    __Message.FreeStream;
  end
end;

procedure TsrvLogin_Proxy.Logout;
begin
  try
    __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'Logout');
    __Message.Finalize;

    __TransportChannel.Dispatch(__Message);

  finally
    __Message.FreeStream;
  end
end;

function TsrvLogin_Proxy.Ping: Boolean;
begin
  try
    __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'Ping');
    __Message.Finalize;

    __TransportChannel.Dispatch(__Message);

    __Message.Read('Result', TypeInfo(Boolean), result, []);
  finally
    __Message.UnsetAttributes(__TransportChannel);
    __Message.FreeStream;
  end
end;

{ CosrvInventario }

class function CosrvInventario.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvInventario;
begin
  result := TsrvInventario_Proxy.Create(aMessage, aTransportChannel);
end;

function TsrvInventario_Proxy.__GetInterfaceName:string;
begin
  result := 'srvInventario';
end;

{ CosrvHistoricoMovimientos }

class function CosrvHistoricoMovimientos.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvHistoricoMovimientos;
begin
  result := TsrvHistoricoMovimientos_Proxy.Create(aMessage, aTransportChannel);
end;

function TsrvHistoricoMovimientos_Proxy.__GetInterfaceName:string;
begin
  result := 'srvHistoricoMovimientos';
end;

{ CosrvEmpresas }

class function CosrvEmpresas.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvEmpresas;
begin
  result := TsrvEmpresas_Proxy.Create(aMessage, aTransportChannel);
end;

{ TsrvEmpresas_Proxy }

function TsrvEmpresas_Proxy.__GetInterfaceName:string;
begin
  result := 'srvEmpresas';
end;

function TsrvEmpresas_Proxy.DarListaFormasPago: Binary;
begin
  try
    result := nil;
    __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'DarListaFormasPago');
    __Message.Finalize;

    __TransportChannel.Dispatch(__Message);

    __Message.Read('Result', TypeInfo(Binary), result, []);
  finally
    __Message.UnsetAttributes(__TransportChannel);
    __Message.FreeStream;
  end
end;

function TsrvEmpresas_Proxy.DarListaTiposIVA: Binary;
begin
  try
    result := nil;
    __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'DarListaTiposIVA');
    __Message.Finalize;

    __TransportChannel.Dispatch(__Message);

    __Message.Read('Result', TypeInfo(Binary), result, []);
  finally
    __Message.UnsetAttributes(__TransportChannel);
    __Message.FreeStream;
  end
end;

function TsrvEmpresas_Proxy.DarListaAlmacenes(const ID_EMPRESA: Integer): Binary;
begin
  try
    result := nil;
    __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'DarListaAlmacenes');
    __Message.Write('ID_EMPRESA', TypeInfo(Integer), ID_EMPRESA, []);
    __Message.Finalize;

    __TransportChannel.Dispatch(__Message);

    __Message.Read('Result', TypeInfo(Binary), result, []);
  finally
    __Message.UnsetAttributes(__TransportChannel);
    __Message.FreeStream;
  end
end;

{ CosrvConfiguracion }

class function CosrvConfiguracion.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvConfiguracion;
begin
  result := TsrvConfiguracion_Proxy.Create(aMessage, aTransportChannel);
end;

{ TsrvConfiguracion_Proxy }

function TsrvConfiguracion_Proxy.__GetInterfaceName:string;
begin
  result := 'srvConfiguracion';
end;

function TsrvConfiguracion_Proxy.darValor(const CODIGO: AnsiString; const ValorPorDefecto: AnsiString): AnsiString;
begin
  try
    __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'darValor');
    __Message.Write('CODIGO', TypeInfo(AnsiString), CODIGO, []);
    __Message.Write('ValorPorDefecto', TypeInfo(AnsiString), ValorPorDefecto, []);
    __Message.Finalize;

    __TransportChannel.Dispatch(__Message);

    __Message.Read('Result', TypeInfo(AnsiString), result, []);
  finally
    __Message.UnsetAttributes(__TransportChannel);
    __Message.FreeStream;
  end
end;

{ CosrvFamilias }

class function CosrvFamilias.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvFamilias;
begin
  result := TsrvFamilias_Proxy.Create(aMessage, aTransportChannel);
end;

function TsrvFamilias_Proxy.__GetInterfaceName:string;
begin
  result := 'srvFamilias';
end;

{ CosrvFormasPago }

class function CosrvFormasPago.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvFormasPago;
begin
  result := TsrvFormasPago_Proxy.Create(aMessage, aTransportChannel);
end;

function TsrvFormasPago_Proxy.__GetInterfaceName:string;
begin
  result := 'srvFormasPago';
end;

{ CosrvTiposIVA }

class function CosrvTiposIVA.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvTiposIVA;
begin
  result := TsrvTiposIVA_Proxy.Create(aMessage, aTransportChannel);
end;

function TsrvTiposIVA_Proxy.__GetInterfaceName:string;
begin
  result := 'srvTiposIVA';
end;

{ CosrvUsuarios }

class function CosrvUsuarios.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvUsuarios;
begin
  result := TsrvUsuarios_Proxy.Create(aMessage, aTransportChannel);
end;

function TsrvUsuarios_Proxy.__GetInterfaceName:string;
begin
  result := 'srvUsuarios';
end;

{ CosrvAlmacenes }

class function CosrvAlmacenes.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvAlmacenes;
begin
  result := TsrvAlmacenes_Proxy.Create(aMessage, aTransportChannel);
end;

{ TsrvAlmacenes_Proxy }

function TsrvAlmacenes_Proxy.__GetInterfaceName:string;
begin
  result := 'srvAlmacenes';
end;

function TsrvAlmacenes_Proxy.DarListaAlmacenes(const IDEmpresa: Integer): Binary;
begin
  try
    result := nil;
    __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'DarListaAlmacenes');
    __Message.Write('IDEmpresa', TypeInfo(Integer), IDEmpresa, []);
    __Message.Finalize;

    __TransportChannel.Dispatch(__Message);

    __Message.Read('Result', TypeInfo(Binary), result, []);
  finally
    __Message.UnsetAttributes(__TransportChannel);
    __Message.FreeStream;
  end
end;

{ CosrvArticulos }

class function CosrvArticulos.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvArticulos;
begin
  result := TsrvArticulos_Proxy.Create(aMessage, aTransportChannel);
end;

{ TsrvArticulos_Proxy }

function TsrvArticulos_Proxy.__GetInterfaceName:string;
begin
  result := 'srvArticulos';
end;

function TsrvArticulos_Proxy.DarListaProveedoresConArticulos(const IDEmpresa: Integer): Binary;
begin
  try
    result := nil;
    __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'DarListaProveedoresConArticulos');
    __Message.Write('IDEmpresa', TypeInfo(Integer), IDEmpresa, []);
    __Message.Finalize;

    __TransportChannel.Dispatch(__Message);

    __Message.Read('Result', TypeInfo(Binary), result, []);
  finally
    __Message.UnsetAttributes(__TransportChannel);
    __Message.FreeStream;
  end
end;

{ CosrvRecibosCliente }

class function CosrvRecibosCliente.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvRecibosCliente;
begin
  result := TsrvRecibosCliente_Proxy.Create(aMessage, aTransportChannel);
end;

{ TsrvRecibosCliente_Proxy }

function TsrvRecibosCliente_Proxy.__GetInterfaceName:string;
begin
  result := 'srvRecibosCliente';
end;

function TsrvRecibosCliente_Proxy.GenerarInforme(const ListaID: TIntegerArray): Binary;
begin
  try
    result := nil;
    __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInforme');
    __Message.Write('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []);
    __Message.Finalize;

    __TransportChannel.Dispatch(__Message);

    __Message.Read('Result', TypeInfo(Binary), result, []);
  finally
    __Message.UnsetAttributes(__TransportChannel);
    __Message.FreeStream;
  end
end;

{ CosrvRecibosProveedor }

class function CosrvRecibosProveedor.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvRecibosProveedor;
begin
  result := TsrvRecibosProveedor_Proxy.Create(aMessage, aTransportChannel);
end;

function TsrvRecibosProveedor_Proxy.__GetInterfaceName:string;
begin
  result := 'srvRecibosProveedor';
end;

{ CosrvRemesasCliente }

class function CosrvRemesasCliente.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvRemesasCliente;
begin
  result := TsrvRemesasCliente_Proxy.Create(aMessage, aTransportChannel);
end;

{ TsrvRemesasCliente_Proxy }

function TsrvRemesasCliente_Proxy.__GetInterfaceName:string;
begin
  result := 'srvRemesasCliente';
end;

function TsrvRemesasCliente_Proxy.GenerateReport(const ListaID: TIntegerArray): Binary;
begin
  try
    result := nil;
    __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerateReport');
    __Message.Write('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []);
    __Message.Finalize;

    __TransportChannel.Dispatch(__Message);

    __Message.Read('Result', TypeInfo(Binary), result, []);
  finally
    __Message.UnsetAttributes(__TransportChannel);
    __Message.FreeStream;
  end
end;

{ CosrvRemesasProveedor }

class function CosrvRemesasProveedor.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvRemesasProveedor;
begin
  result := TsrvRemesasProveedor_Proxy.Create(aMessage, aTransportChannel);
end;

{ TsrvRemesasProveedor_Proxy }

function TsrvRemesasProveedor_Proxy.__GetInterfaceName:string;
begin
  result := 'srvRemesasProveedor';
end;

function TsrvRemesasProveedor_Proxy.GenerateReport(const ListaID: TIntegerArray): Binary;
begin
  try
    result := nil;
    __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerateReport');
    __Message.Write('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []);
    __Message.Finalize;

    __TransportChannel.Dispatch(__Message);

    __Message.Read('Result', TypeInfo(Binary), result, []);
  finally
    __Message.UnsetAttributes(__TransportChannel);
    __Message.FreeStream;
  end
end;

{ CosrvFacturasCliente }

class function CosrvFacturasCliente.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvFacturasCliente;
begin
  result := TsrvFacturasCliente_Proxy.Create(aMessage, aTransportChannel);
end;

{ TsrvFacturasCliente_Proxy }

function TsrvFacturasCliente_Proxy.__GetInterfaceName:string;
begin
  result := 'srvFacturasCliente';
end;

function TsrvFacturasCliente_Proxy.GenerarInforme(const ListaID: TIntegerArray; const VerSello: Boolean; const VerCopia: Boolean): Binary;
begin
  try
    result := nil;
    __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInforme');
    __Message.Write('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []);
    __Message.Write('VerSello', TypeInfo(Boolean), VerSello, []);
    __Message.Write('VerCopia', TypeInfo(Boolean), VerCopia, []);
    __Message.Finalize;

    __TransportChannel.Dispatch(__Message);

    __Message.Read('Result', TypeInfo(Binary), result, []);
  finally
    __Message.UnsetAttributes(__TransportChannel);
    __Message.FreeStream;
  end
end;

function TsrvFacturasCliente_Proxy.GenerarInformeEnWord(const ID: Integer; const VerSello: Boolean): Binary;
begin
  try
    result := nil;
    __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInformeEnWord');
    __Message.Write('ID', TypeInfo(Integer), ID, []);
    __Message.Write('VerSello', TypeInfo(Boolean), VerSello, []);
    __Message.Finalize;

    __TransportChannel.Dispatch(__Message);

    __Message.Read('Result', TypeInfo(Binary), result, []);
  finally
    __Message.UnsetAttributes(__TransportChannel);
    __Message.FreeStream;
  end
end;

function TsrvFacturasCliente_Proxy.GenerarInformeEnPDF(const ListaID: TIntegerArray; const VerSello: Boolean): Binary;
begin
  try
    result := nil;
    __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInformeEnPDF');
    __Message.Write('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []);
    __Message.Write('VerSello', TypeInfo(Boolean), VerSello, []);
    __Message.Finalize;

    __TransportChannel.Dispatch(__Message);

    __Message.Read('Result', TypeInfo(Binary), result, []);
  finally
    __Message.UnsetAttributes(__TransportChannel);
    __Message.FreeStream;
  end
end;

{ CosrvFacturasProveedor }

class function CosrvFacturasProveedor.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvFacturasProveedor;
begin
  result := TsrvFacturasProveedor_Proxy.Create(aMessage, aTransportChannel);
end;

{ TsrvFacturasProveedor_Proxy }

function TsrvFacturasProveedor_Proxy.__GetInterfaceName:string;
begin
  result := 'srvFacturasProveedor';
end;

function TsrvFacturasProveedor_Proxy.GenerarInforme(const ListaID: TIntegerArray): Binary;
begin
  try
    result := nil;
    __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInforme');
    __Message.Write('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []);
    __Message.Finalize;

    __TransportChannel.Dispatch(__Message);

    __Message.Read('Result', TypeInfo(Binary), result, []);
  finally
    __Message.UnsetAttributes(__TransportChannel);
    __Message.FreeStream;
  end
end;

function TsrvFacturasProveedor_Proxy.GenerarInformeEnPDF(const ListaID: TIntegerArray): Binary;
begin
  try
    result := nil;
    __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInformeEnPDF');
    __Message.Write('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []);
    __Message.Finalize;

    __TransportChannel.Dispatch(__Message);

    __Message.Read('Result', TypeInfo(Binary), result, []);
  finally
    __Message.UnsetAttributes(__TransportChannel);
    __Message.FreeStream;
  end
end;

{ CosrvPresupuestosCliente }

class function CosrvPresupuestosCliente.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvPresupuestosCliente;
begin
  result := TsrvPresupuestosCliente_Proxy.Create(aMessage, aTransportChannel);
end;

{ TsrvPresupuestosCliente_Proxy }

function TsrvPresupuestosCliente_Proxy.__GetInterfaceName:string;
begin
  result := 'srvPresupuestosCliente';
end;

function TsrvPresupuestosCliente_Proxy.GenerarInforme(const ListaID: TIntegerArray; const VerSello: Integer): Binary;
begin
  try
    result := nil;
    __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInforme');
    __Message.Write('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []);
    __Message.Write('VerSello', TypeInfo(Integer), VerSello, []);
    __Message.Finalize;

    __TransportChannel.Dispatch(__Message);

    __Message.Read('Result', TypeInfo(Binary), result, []);
  finally
    __Message.UnsetAttributes(__TransportChannel);
    __Message.FreeStream;
  end
end;

function TsrvPresupuestosCliente_Proxy.GenerarInformeEnWord(const ID: Integer; const VerSello: Integer): Binary;
begin
  try
    result := nil;
    __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInformeEnWord');
    __Message.Write('ID', TypeInfo(Integer), ID, []);
    __Message.Write('VerSello', TypeInfo(Integer), VerSello, []);
    __Message.Finalize;

    __TransportChannel.Dispatch(__Message);

    __Message.Read('Result', TypeInfo(Binary), result, []);
  finally
    __Message.UnsetAttributes(__TransportChannel);
    __Message.FreeStream;
  end
end;

function TsrvPresupuestosCliente_Proxy.GenerarCertificadoTrabajosEnWord(const ID: Integer): Binary;
begin
  try
    result := nil;
    __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarCertificadoTrabajosEnWord');
    __Message.Write('ID', TypeInfo(Integer), ID, []);
    __Message.Finalize;

    __TransportChannel.Dispatch(__Message);

    __Message.Read('Result', TypeInfo(Binary), result, []);
  finally
    __Message.UnsetAttributes(__TransportChannel);
    __Message.FreeStream;
  end
end;

function TsrvPresupuestosCliente_Proxy.GenerarInformeEnPDF(const ListaID: TIntegerArray; const VerSello: Integer): Binary;
begin
  try
    result := nil;
    __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInformeEnPDF');
    __Message.Write('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []);
    __Message.Write('VerSello', TypeInfo(Integer), VerSello, []);
    __Message.Finalize;

    __TransportChannel.Dispatch(__Message);

    __Message.Read('Result', TypeInfo(Binary), result, []);
  finally
    __Message.UnsetAttributes(__TransportChannel);
    __Message.FreeStream;
  end
end;

{ CosrvPedidosProveedor }

class function CosrvPedidosProveedor.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvPedidosProveedor;
begin
  result := TsrvPedidosProveedor_Proxy.Create(aMessage, aTransportChannel);
end;

{ TsrvPedidosProveedor_Proxy }

function TsrvPedidosProveedor_Proxy.__GetInterfaceName:string;
begin
  result := 'srvPedidosProveedor';
end;

function TsrvPedidosProveedor_Proxy.GenerarInforme(const ListaID: TIntegerArray; const ImprimirPrecio: Boolean; const ImprimirRefProveedor: Boolean): Binary;
begin
  try
    result := nil;
    __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInforme');
    __Message.Write('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []);
    __Message.Write('ImprimirPrecio', TypeInfo(Boolean), ImprimirPrecio, []);
    __Message.Write('ImprimirRefProveedor', TypeInfo(Boolean), ImprimirRefProveedor, []);
    __Message.Finalize;

    __TransportChannel.Dispatch(__Message);

    __Message.Read('Result', TypeInfo(Binary), result, []);
  finally
    __Message.UnsetAttributes(__TransportChannel);
    __Message.FreeStream;
  end
end;

function TsrvPedidosProveedor_Proxy.GenerarInformeEnWord(const ID: Integer; const ImprimirPrecio: Boolean; const ImprimirRefProveedor: Boolean): Binary;
begin
  try
    result := nil;
    __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInformeEnWord');
    __Message.Write('ID', TypeInfo(Integer), ID, []);
    __Message.Write('ImprimirPrecio', TypeInfo(Boolean), ImprimirPrecio, []);
    __Message.Write('ImprimirRefProveedor', TypeInfo(Boolean), ImprimirRefProveedor, []);
    __Message.Finalize;

    __TransportChannel.Dispatch(__Message);

    __Message.Read('Result', TypeInfo(Binary), result, []);
  finally
    __Message.UnsetAttributes(__TransportChannel);
    __Message.FreeStream;
  end
end;

function TsrvPedidosProveedor_Proxy.GenerarInformeEnPDF(const ListaID: TIntegerArray; const ImprimirPrecio: Boolean; const ImprimirRefProveedor: Boolean): Binary;
begin
  try
    result := nil;
    __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInformeEnPDF');
    __Message.Write('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []);
    __Message.Write('ImprimirPrecio', TypeInfo(Boolean), ImprimirPrecio, []);
    __Message.Write('ImprimirRefProveedor', TypeInfo(Boolean), ImprimirRefProveedor, []);
    __Message.Finalize;

    __TransportChannel.Dispatch(__Message);

    __Message.Read('Result', TypeInfo(Binary), result, []);
  finally
    __Message.UnsetAttributes(__TransportChannel);
    __Message.FreeStream;
  end
end;

{ CosrvAlbaranesCliente }

class function CosrvAlbaranesCliente.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvAlbaranesCliente;
begin
  result := TsrvAlbaranesCliente_Proxy.Create(aMessage, aTransportChannel);
end;

{ TsrvAlbaranesCliente_Proxy }

function TsrvAlbaranesCliente_Proxy.__GetInterfaceName:string;
begin
  result := 'srvAlbaranesCliente';
end;

function TsrvAlbaranesCliente_Proxy.GenerarInforme(const ListaID: TIntegerArray; const VerPrecios: Boolean; const VerRefProveedor: Boolean; const VerObservaciones: Boolean; 
                                                   const VerIncidencias: Boolean): Binary;
begin
  try
    result := nil;
    __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInforme');
    __Message.Write('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []);
    __Message.Write('VerPrecios', TypeInfo(Boolean), VerPrecios, []);
    __Message.Write('VerRefProveedor', TypeInfo(Boolean), VerRefProveedor, []);
    __Message.Write('VerObservaciones', TypeInfo(Boolean), VerObservaciones, []);
    __Message.Write('VerIncidencias', TypeInfo(Boolean), VerIncidencias, []);
    __Message.Finalize;

    __TransportChannel.Dispatch(__Message);

    __Message.Read('Result', TypeInfo(Binary), result, []);
  finally
    __Message.UnsetAttributes(__TransportChannel);
    __Message.FreeStream;
  end
end;

function TsrvAlbaranesCliente_Proxy.GenerarInformeEtiquetas(const ID: Integer; const withRefCliente: Boolean): Binary;
begin
  try
    result := nil;
    __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInformeEtiquetas');
    __Message.Write('ID', TypeInfo(Integer), ID, []);
    __Message.Write('withRefCliente', TypeInfo(Boolean), withRefCliente, []);
    __Message.Finalize;

    __TransportChannel.Dispatch(__Message);

    __Message.Read('Result', TypeInfo(Binary), result, []);
  finally
    __Message.UnsetAttributes(__TransportChannel);
    __Message.FreeStream;
  end
end;

function TsrvAlbaranesCliente_Proxy.GenerarInformeEnWord(const ID: Integer): Binary;
begin
  try
    result := nil;
    __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInformeEnWord');
    __Message.Write('ID', TypeInfo(Integer), ID, []);
    __Message.Finalize;

    __TransportChannel.Dispatch(__Message);

    __Message.Read('Result', TypeInfo(Binary), result, []);
  finally
    __Message.UnsetAttributes(__TransportChannel);
    __Message.FreeStream;
  end
end;

function TsrvAlbaranesCliente_Proxy.GenerarInformeEnPDF(const ListaID: TIntegerArray; const VerPrecios: Boolean; const VerRefProveedor: Boolean; const VerObservaciones: Boolean; 
                                                        const VerIncidencias: Boolean): Binary;
begin
  try
    result := nil;
    __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInformeEnPDF');
    __Message.Write('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []);
    __Message.Write('VerPrecios', TypeInfo(Boolean), VerPrecios, []);
    __Message.Write('VerRefProveedor', TypeInfo(Boolean), VerRefProveedor, []);
    __Message.Write('VerObservaciones', TypeInfo(Boolean), VerObservaciones, []);
    __Message.Write('VerIncidencias', TypeInfo(Boolean), VerIncidencias, []);
    __Message.Finalize;

    __TransportChannel.Dispatch(__Message);

    __Message.Read('Result', TypeInfo(Binary), result, []);
  finally
    __Message.UnsetAttributes(__TransportChannel);
    __Message.FreeStream;
  end
end;

{ CosrvAlbaranesProveedor }

class function CosrvAlbaranesProveedor.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvAlbaranesProveedor;
begin
  result := TsrvAlbaranesProveedor_Proxy.Create(aMessage, aTransportChannel);
end;

{ TsrvAlbaranesProveedor_Proxy }

function TsrvAlbaranesProveedor_Proxy.__GetInterfaceName:string;
begin
  result := 'srvAlbaranesProveedor';
end;

function TsrvAlbaranesProveedor_Proxy.GenerarInforme(const ListaID: TIntegerArray; const ImprimirPrecio: Boolean; const ImprimirRefProveedor: Boolean): Binary;
begin
  try
    result := nil;
    __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInforme');
    __Message.Write('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []);
    __Message.Write('ImprimirPrecio', TypeInfo(Boolean), ImprimirPrecio, []);
    __Message.Write('ImprimirRefProveedor', TypeInfo(Boolean), ImprimirRefProveedor, []);
    __Message.Finalize;

    __TransportChannel.Dispatch(__Message);

    __Message.Read('Result', TypeInfo(Binary), result, []);
  finally
    __Message.UnsetAttributes(__TransportChannel);
    __Message.FreeStream;
  end
end;

function TsrvAlbaranesProveedor_Proxy.GenerarInformeEnWord(const ID: Integer; const ImprimirPrecio: Boolean; const ImprimirRefProveedor: Boolean): Binary;
begin
  try
    result := nil;
    __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInformeEnWord');
    __Message.Write('ID', TypeInfo(Integer), ID, []);
    __Message.Write('ImprimirPrecio', TypeInfo(Boolean), ImprimirPrecio, []);
    __Message.Write('ImprimirRefProveedor', TypeInfo(Boolean), ImprimirRefProveedor, []);
    __Message.Finalize;

    __TransportChannel.Dispatch(__Message);

    __Message.Read('Result', TypeInfo(Binary), result, []);
  finally
    __Message.UnsetAttributes(__TransportChannel);
    __Message.FreeStream;
  end
end;

function TsrvAlbaranesProveedor_Proxy.GenerarInformeEnPDF(const ListaID: TIntegerArray; const ImprimirPrecio: Boolean; const ImprimirRefProveedor: Boolean): Binary;
begin
  try
    result := nil;
    __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInformeEnPDF');
    __Message.Write('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []);
    __Message.Write('ImprimirPrecio', TypeInfo(Boolean), ImprimirPrecio, []);
    __Message.Write('ImprimirRefProveedor', TypeInfo(Boolean), ImprimirRefProveedor, []);
    __Message.Finalize;

    __TransportChannel.Dispatch(__Message);

    __Message.Read('Result', TypeInfo(Binary), result, []);
  finally
    __Message.UnsetAttributes(__TransportChannel);
    __Message.FreeStream;
  end
end;

{ CosrvReferencias }

class function CosrvReferencias.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvReferencias;
begin
  result := TsrvReferencias_Proxy.Create(aMessage, aTransportChannel);
end;

{ TsrvReferencias_Proxy }

function TsrvReferencias_Proxy.__GetInterfaceName:string;
begin
  result := 'srvReferencias';
end;

function TsrvReferencias_Proxy.DarNuevaReferencia(const NombreReferencia: AnsiString; const EmpresaID: Integer): AnsiString;
begin
  try
    __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'DarNuevaReferencia');
    __Message.Write('NombreReferencia', TypeInfo(AnsiString), NombreReferencia, []);
    __Message.Write('EmpresaID', TypeInfo(Integer), EmpresaID, []);
    __Message.Finalize;

    __TransportChannel.Dispatch(__Message);

    __Message.Read('Result', TypeInfo(AnsiString), result, []);
  finally
    __Message.UnsetAttributes(__TransportChannel);
    __Message.FreeStream;
  end
end;

function TsrvReferencias_Proxy.IncrementarValorReferencia(const NombreReferencia: AnsiString; const Valor: AnsiString; const EmpresaID: Integer): Boolean;
begin
  try
    __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'IncrementarValorReferencia');
    __Message.Write('NombreReferencia', TypeInfo(AnsiString), NombreReferencia, []);
    __Message.Write('Valor', TypeInfo(AnsiString), Valor, []);
    __Message.Write('EmpresaID', TypeInfo(Integer), EmpresaID, []);
    __Message.Finalize;

    __TransportChannel.Dispatch(__Message);

    __Message.Read('Result', TypeInfo(Boolean), result, []);
  finally
    __Message.UnsetAttributes(__TransportChannel);
    __Message.FreeStream;
  end
end;

{ CosrvUnidadesMedida }

class function CosrvUnidadesMedida.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvUnidadesMedida;
begin
  result := TsrvUnidadesMedida_Proxy.Create(aMessage, aTransportChannel);
end;

function TsrvUnidadesMedida_Proxy.__GetInterfaceName:string;
begin
  result := 'srvUnidadesMedida';
end;

{ CosrvFabricantes }

class function CosrvFabricantes.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvFabricantes;
begin
  result := TsrvFabricantes_Proxy.Create(aMessage, aTransportChannel);
end;

function TsrvFabricantes_Proxy.__GetInterfaceName:string;
begin
  result := 'srvFabricantes';
end;

{ CosrvObras }

class function CosrvObras.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvObras;
begin
  result := TsrvObras_Proxy.Create(aMessage, aTransportChannel);
end;

{ TsrvObras_Proxy }

function TsrvObras_Proxy.__GetInterfaceName:string;
begin
  result := 'srvObras';
end;

function TsrvObras_Proxy.DarListaObras(const IDEmpresa: Integer): Binary;
begin
  try
    result := nil;
    __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'DarListaObras');
    __Message.Write('IDEmpresa', TypeInfo(Integer), IDEmpresa, []);
    __Message.Finalize;

    __TransportChannel.Dispatch(__Message);

    __Message.Read('Result', TypeInfo(Binary), result, []);
  finally
    __Message.UnsetAttributes(__TransportChannel);
    __Message.FreeStream;
  end
end;

{ CosrvProvinciasPoblaciones }

class function CosrvProvinciasPoblaciones.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvProvinciasPoblaciones;
begin
  result := TsrvProvinciasPoblaciones_Proxy.Create(aMessage, aTransportChannel);
end;

{ TsrvProvinciasPoblaciones_Proxy }

function TsrvProvinciasPoblaciones_Proxy.__GetInterfaceName:string;
begin
  result := 'srvProvinciasPoblaciones';
end;

function TsrvProvinciasPoblaciones_Proxy.DarListaProvincias: Binary;
begin
  try
    result := nil;
    __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'DarListaProvincias');
    __Message.Finalize;

    __TransportChannel.Dispatch(__Message);

    __Message.Read('Result', TypeInfo(Binary), result, []);
  finally
    __Message.UnsetAttributes(__TransportChannel);
    __Message.FreeStream;
  end
end;

function TsrvProvinciasPoblaciones_Proxy.DarListaPoblaciones(const ID_Provincia: Integer): Binary;
begin
  try
    result := nil;
    __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'DarListaPoblaciones');
    __Message.Write('ID_Provincia', TypeInfo(Integer), ID_Provincia, []);
    __Message.Finalize;

    __TransportChannel.Dispatch(__Message);

    __Message.Read('Result', TypeInfo(Binary), result, []);
  finally
    __Message.UnsetAttributes(__TransportChannel);
    __Message.FreeStream;
  end
end;

{ CosrvGestorDocumentos }

class function CosrvGestorDocumentos.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvGestorDocumentos;
begin
  result := TsrvGestorDocumentos_Proxy.Create(aMessage, aTransportChannel);
end;

{ TsrvGestorDocumentos_Proxy }

function TsrvGestorDocumentos_Proxy.__GetInterfaceName:string;
begin
  result := 'srvGestorDocumentos';
end;

function TsrvGestorDocumentos_Proxy.DarListaFicheros(const Almacen: TRdxAlmacenes; const ID: Integer): StringArray;
begin
  try
    result := nil;
    __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'DarListaFicheros');
    __Message.Write('Almacen', TypeInfo(FactuGES_Intf.TRdxAlmacenes), Almacen, []);
    __Message.Write('ID', TypeInfo(Integer), ID, []);
    __Message.Finalize;

    __TransportChannel.Dispatch(__Message);

    __Message.Read('Result', TypeInfo(DataAbstract4_Intf.StringArray), result, []);
  finally
    __Message.UnsetAttributes(__TransportChannel);
    __Message.FreeStream;
  end
end;

function TsrvGestorDocumentos_Proxy.DescargarFichero(const Almacen: TRdxAlmacenes; const ID: Integer; const NombreFichero: AnsiString): Binary;
begin
  try
    result := nil;
    __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'DescargarFichero');
    __Message.Write('Almacen', TypeInfo(FactuGES_Intf.TRdxAlmacenes), Almacen, []);
    __Message.Write('ID', TypeInfo(Integer), ID, []);
    __Message.Write('NombreFichero', TypeInfo(AnsiString), NombreFichero, []);
    __Message.Finalize;

    __TransportChannel.Dispatch(__Message);

    __Message.Read('Result', TypeInfo(Binary), result, []);
  finally
    __Message.UnsetAttributes(__TransportChannel);
    __Message.FreeStream;
  end
end;

function TsrvGestorDocumentos_Proxy.SubirFichero(const Almacen: TRdxAlmacenes; const ID: Integer; const NombreFichero: AnsiString; const Fichero: Binary): Boolean;
begin
  try
    __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'SubirFichero');
    __Message.Write('Almacen', TypeInfo(FactuGES_Intf.TRdxAlmacenes), Almacen, []);
    __Message.Write('ID', TypeInfo(Integer), ID, []);
    __Message.Write('NombreFichero', TypeInfo(AnsiString), NombreFichero, []);
    __Message.Write('Fichero', TypeInfo(Binary), Fichero, []);
    __Message.Finalize;

    __TransportChannel.Dispatch(__Message);

    __Message.Read('Result', TypeInfo(Boolean), result, []);
  finally
    __Message.UnsetAttributes(__TransportChannel);
    __Message.FreeStream;
  end
end;

function TsrvGestorDocumentos_Proxy.EliminarFichero(const Almacen: TRdxAlmacenes; const ID: Integer; const NombreFichero: AnsiString): Boolean;
begin
  try
    __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'EliminarFichero');
    __Message.Write('Almacen', TypeInfo(FactuGES_Intf.TRdxAlmacenes), Almacen, []);
    __Message.Write('ID', TypeInfo(Integer), ID, []);
    __Message.Write('NombreFichero', TypeInfo(AnsiString), NombreFichero, []);
    __Message.Finalize;

    __TransportChannel.Dispatch(__Message);

    __Message.Read('Result', TypeInfo(Boolean), result, []);
  finally
    __Message.UnsetAttributes(__TransportChannel);
    __Message.FreeStream;
  end
end;

function TsrvGestorDocumentos_Proxy.EliminarID(const Almacen: TRdxAlmacenes; const ID: Integer): Boolean;
begin
  try
    __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'EliminarID');
    __Message.Write('Almacen', TypeInfo(FactuGES_Intf.TRdxAlmacenes), Almacen, []);
    __Message.Write('ID', TypeInfo(Integer), ID, []);
    __Message.Finalize;

    __TransportChannel.Dispatch(__Message);

    __Message.Read('Result', TypeInfo(Boolean), result, []);
  finally
    __Message.UnsetAttributes(__TransportChannel);
    __Message.FreeStream;
  end
end;

{ CosrvGestorInformes }

class function CosrvGestorInformes.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvGestorInformes;
begin
  result := TsrvGestorInformes_Proxy.Create(aMessage, aTransportChannel);
end;

{ TsrvGestorInformes_Proxy }

function TsrvGestorInformes_Proxy.__GetInterfaceName:string;
begin
  result := 'srvGestorInformes';
end;

function TsrvGestorInformes_Proxy.GenerarInformeIVAClientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDClientes: TIntegerArray; 
                                                            const Desglosado: Boolean; const ImporteMinimo: Currency): Binary;
begin
  try
    result := nil;
    __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInformeIVAClientes');
    __Message.Write('IdEmpresa', TypeInfo(Integer), IdEmpresa, []);
    __Message.Write('FechaInicio', TypeInfo(Variant), FechaInicio, []);
    __Message.Write('FechaFin', TypeInfo(Variant), FechaFin, []);
    __Message.Write('ListaIDClientes', TypeInfo(FactuGES_Intf.TIntegerArray), ListaIDClientes, []);
    __Message.Write('Desglosado', TypeInfo(Boolean), Desglosado, []);
    __Message.Write('ImporteMinimo', TypeInfo(Currency), ImporteMinimo, []);
    __Message.Finalize;

    __TransportChannel.Dispatch(__Message);

    __Message.Read('Result', TypeInfo(Binary), result, []);
  finally
    __Message.UnsetAttributes(__TransportChannel);
    __Message.FreeStream;
  end
end;

function TsrvGestorInformes_Proxy.GenerarInformeIVAProveedores(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDProveedores: TIntegerArray; 
                                                               const Desglosado: Boolean; const ImporteMinimo: Currency): Binary;
begin
  try
    result := nil;
    __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInformeIVAProveedores');
    __Message.Write('IdEmpresa', TypeInfo(Integer), IdEmpresa, []);
    __Message.Write('FechaInicio', TypeInfo(Variant), FechaInicio, []);
    __Message.Write('FechaFin', TypeInfo(Variant), FechaFin, []);
    __Message.Write('ListaIDProveedores', TypeInfo(FactuGES_Intf.TIntegerArray), ListaIDProveedores, []);
    __Message.Write('Desglosado', TypeInfo(Boolean), Desglosado, []);
    __Message.Write('ImporteMinimo', TypeInfo(Currency), ImporteMinimo, []);
    __Message.Finalize;

    __TransportChannel.Dispatch(__Message);

    __Message.Read('Result', TypeInfo(Binary), result, []);
  finally
    __Message.UnsetAttributes(__TransportChannel);
    __Message.FreeStream;
  end
end;

function TsrvGestorInformes_Proxy.GenerarInformeListadoFacturasCli(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const FechaVenInicio: Variant; 
                                                                   const FechaVenFin: Variant; const ListadoIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary;
begin
  try
    result := nil;
    __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInformeListadoFacturasCli');
    __Message.Write('IdEmpresa', TypeInfo(Integer), IdEmpresa, []);
    __Message.Write('FechaInicio', TypeInfo(Variant), FechaInicio, []);
    __Message.Write('FechaFin', TypeInfo(Variant), FechaFin, []);
    __Message.Write('FechaVenInicio', TypeInfo(Variant), FechaVenInicio, []);
    __Message.Write('FechaVenFin', TypeInfo(Variant), FechaVenFin, []);
    __Message.Write('ListadoIDClientes', TypeInfo(FactuGES_Intf.TIntegerArray), ListadoIDClientes, []);
    __Message.Write('Desglosado', TypeInfo(Boolean), Desglosado, []);
    __Message.Write('ImporteMinimo', TypeInfo(Currency), ImporteMinimo, []);
    __Message.Finalize;

    __TransportChannel.Dispatch(__Message);

    __Message.Read('Result', TypeInfo(Binary), result, []);
  finally
    __Message.UnsetAttributes(__TransportChannel);
    __Message.FreeStream;
  end
end;

function TsrvGestorInformes_Proxy.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;
begin
  try
    result := nil;
    __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInformeListadoFacturasProv');
    __Message.Write('IdEmpresa', TypeInfo(Integer), IdEmpresa, []);
    __Message.Write('FechaInicio', TypeInfo(Variant), FechaInicio, []);
    __Message.Write('FechaFin', TypeInfo(Variant), FechaFin, []);
    __Message.Write('FechaVenInicio', TypeInfo(Variant), FechaVenInicio, []);
    __Message.Write('FechaVenFin', TypeInfo(Variant), FechaVenFin, []);
    __Message.Write('ListaIDProveedores', TypeInfo(FactuGES_Intf.TIntegerArray), ListaIDProveedores, []);
    __Message.Write('Desglosado', TypeInfo(Boolean), Desglosado, []);
    __Message.Write('ImporteMinimo', TypeInfo(Currency), ImporteMinimo, []);
    __Message.Finalize;

    __TransportChannel.Dispatch(__Message);

    __Message.Read('Result', TypeInfo(Binary), result, []);
  finally
    __Message.UnsetAttributes(__TransportChannel);
    __Message.FreeStream;
  end
end;

function TsrvGestorInformes_Proxy.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;
begin
  try
    result := nil;
    __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInformeListadoFacturasCliPendientes');
    __Message.Write('IdEmpresa', TypeInfo(Integer), IdEmpresa, []);
    __Message.Write('FechaInicio', TypeInfo(Variant), FechaInicio, []);
    __Message.Write('FechaFin', TypeInfo(Variant), FechaFin, []);
    __Message.Write('FechaVenInicio', TypeInfo(Variant), FechaVenInicio, []);
    __Message.Write('FechaVenFin', TypeInfo(Variant), FechaVenFin, []);
    __Message.Write('ListaIDClientes', TypeInfo(FactuGES_Intf.TIntegerArray), ListaIDClientes, []);
    __Message.Write('Desglosado', TypeInfo(Boolean), Desglosado, []);
    __Message.Write('ImporteMinimo', TypeInfo(Currency), ImporteMinimo, []);
    __Message.Finalize;

    __TransportChannel.Dispatch(__Message);

    __Message.Read('Result', TypeInfo(Binary), result, []);
  finally
    __Message.UnsetAttributes(__TransportChannel);
    __Message.FreeStream;
  end
end;

function TsrvGestorInformes_Proxy.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;
begin
  try
    result := nil;
    __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInformeListadoFacturasProvPendientes');
    __Message.Write('IdEmpresa', TypeInfo(Integer), IdEmpresa, []);
    __Message.Write('FechaInicio', TypeInfo(Variant), FechaInicio, []);
    __Message.Write('FechaFin', TypeInfo(Variant), FechaFin, []);
    __Message.Write('FechaVenInicio', TypeInfo(Variant), FechaVenInicio, []);
    __Message.Write('FechaVenFin', TypeInfo(Variant), FechaVenFin, []);
    __Message.Write('ListaIDProveedores', TypeInfo(FactuGES_Intf.TIntegerArray), ListaIDProveedores, []);
    __Message.Write('Desglosado', TypeInfo(Boolean), Desglosado, []);
    __Message.Write('ImporteMinimo', TypeInfo(Currency), ImporteMinimo, []);
    __Message.Finalize;

    __TransportChannel.Dispatch(__Message);

    __Message.Read('Result', TypeInfo(Binary), result, []);
  finally
    __Message.UnsetAttributes(__TransportChannel);
    __Message.FreeStream;
  end
end;

function TsrvGestorInformes_Proxy.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;
begin
  try
    result := nil;
    __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInformeListadoRecibosCliente');
    __Message.Write('IdEmpresa', TypeInfo(Integer), IdEmpresa, []);
    __Message.Write('FechaInicio', TypeInfo(Variant), FechaInicio, []);
    __Message.Write('FechaFin', TypeInfo(Variant), FechaFin, []);
    __Message.Write('FechaVenInicio', TypeInfo(Variant), FechaVenInicio, []);
    __Message.Write('FechaVenFin', TypeInfo(Variant), FechaVenFin, []);
    __Message.Write('ListaIDClientes', TypeInfo(FactuGES_Intf.TIntegerArray), ListaIDClientes, []);
    __Message.Write('Desglosado', TypeInfo(Boolean), Desglosado, []);
    __Message.Write('ImporteMinimo', TypeInfo(Currency), ImporteMinimo, []);
    __Message.Finalize;

    __TransportChannel.Dispatch(__Message);

    __Message.Read('Result', TypeInfo(Binary), result, []);
  finally
    __Message.UnsetAttributes(__TransportChannel);
    __Message.FreeStream;
  end
end;

function TsrvGestorInformes_Proxy.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;
begin
  try
    result := nil;
    __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInformeListadoRecibosProveedor');
    __Message.Write('IdEmpresa', TypeInfo(Integer), IdEmpresa, []);
    __Message.Write('FechaInicio', TypeInfo(Variant), FechaInicio, []);
    __Message.Write('FechaFin', TypeInfo(Variant), FechaFin, []);
    __Message.Write('FechaVenInicio', TypeInfo(Variant), FechaVenInicio, []);
    __Message.Write('FechaVenFin', TypeInfo(Variant), FechaVenFin, []);
    __Message.Write('ListaIDProveedores', TypeInfo(FactuGES_Intf.TIntegerArray), ListaIDProveedores, []);
    __Message.Write('Desglosado', TypeInfo(Boolean), Desglosado, []);
    __Message.Write('ImporteMinimo', TypeInfo(Currency), ImporteMinimo, []);
    __Message.Finalize;

    __TransportChannel.Dispatch(__Message);

    __Message.Read('Result', TypeInfo(Binary), result, []);
  finally
    __Message.UnsetAttributes(__TransportChannel);
    __Message.FreeStream;
  end
end;

function TsrvGestorInformes_Proxy.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;
begin
  try
    result := nil;
    __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInformeListadoRecibosCliPendientes');
    __Message.Write('IdEmpresa', TypeInfo(Integer), IdEmpresa, []);
    __Message.Write('FechaInicio', TypeInfo(Variant), FechaInicio, []);
    __Message.Write('FechaFin', TypeInfo(Variant), FechaFin, []);
    __Message.Write('FechaVenInicio', TypeInfo(Variant), FechaVenInicio, []);
    __Message.Write('FechaVenFin', TypeInfo(Variant), FechaVenFin, []);
    __Message.Write('ListaIDClientes', TypeInfo(FactuGES_Intf.TIntegerArray), ListaIDClientes, []);
    __Message.Write('Desglosado', TypeInfo(Boolean), Desglosado, []);
    __Message.Write('ImporteMinimo', TypeInfo(Currency), ImporteMinimo, []);
    __Message.Finalize;

    __TransportChannel.Dispatch(__Message);

    __Message.Read('Result', TypeInfo(Binary), result, []);
  finally
    __Message.UnsetAttributes(__TransportChannel);
    __Message.FreeStream;
  end
end;

function TsrvGestorInformes_Proxy.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;
begin
  try
    result := nil;
    __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInformeListadoRecibosProvPendientes');
    __Message.Write('IdEmpresa', TypeInfo(Integer), IdEmpresa, []);
    __Message.Write('FechaInicio', TypeInfo(Variant), FechaInicio, []);
    __Message.Write('FechaFin', TypeInfo(Variant), FechaFin, []);
    __Message.Write('FechaVenInicio', TypeInfo(Variant), FechaVenInicio, []);
    __Message.Write('FechaVenFin', TypeInfo(Variant), FechaVenFin, []);
    __Message.Write('ListaIDProveedores', TypeInfo(FactuGES_Intf.TIntegerArray), ListaIDProveedores, []);
    __Message.Write('Desglosado', TypeInfo(Boolean), Desglosado, []);
    __Message.Write('ImporteMinimo', TypeInfo(Currency), ImporteMinimo, []);
    __Message.Finalize;

    __TransportChannel.Dispatch(__Message);

    __Message.Read('Result', TypeInfo(Binary), result, []);
  finally
    __Message.UnsetAttributes(__TransportChannel);
    __Message.FreeStream;
  end
end;

function TsrvGestorInformes_Proxy.GenerarInformeListadoPresupuestos(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDClientes: TIntegerArray; 
                                                                    const Desglosado: Boolean; const ImporteMinimo: Currency): Binary;
begin
  try
    result := nil;
    __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInformeListadoPresupuestos');
    __Message.Write('IdEmpresa', TypeInfo(Integer), IdEmpresa, []);
    __Message.Write('FechaInicio', TypeInfo(Variant), FechaInicio, []);
    __Message.Write('FechaFin', TypeInfo(Variant), FechaFin, []);
    __Message.Write('ListaIDClientes', TypeInfo(FactuGES_Intf.TIntegerArray), ListaIDClientes, []);
    __Message.Write('Desglosado', TypeInfo(Boolean), Desglosado, []);
    __Message.Write('ImporteMinimo', TypeInfo(Currency), ImporteMinimo, []);
    __Message.Finalize;

    __TransportChannel.Dispatch(__Message);

    __Message.Read('Result', TypeInfo(Binary), result, []);
  finally
    __Message.UnsetAttributes(__TransportChannel);
    __Message.FreeStream;
  end
end;

function TsrvGestorInformes_Proxy.GenerarInformeListadoPedidos(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDProveedores: TIntegerArray; 
                                                               const Desglosado: Boolean; const ImporteMinimo: Currency): Binary;
begin
  try
    result := nil;
    __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInformeListadoPedidos');
    __Message.Write('IdEmpresa', TypeInfo(Integer), IdEmpresa, []);
    __Message.Write('FechaInicio', TypeInfo(Variant), FechaInicio, []);
    __Message.Write('FechaFin', TypeInfo(Variant), FechaFin, []);
    __Message.Write('ListaIDProveedores', TypeInfo(FactuGES_Intf.TIntegerArray), ListaIDProveedores, []);
    __Message.Write('Desglosado', TypeInfo(Boolean), Desglosado, []);
    __Message.Write('ImporteMinimo', TypeInfo(Currency), ImporteMinimo, []);
    __Message.Finalize;

    __TransportChannel.Dispatch(__Message);

    __Message.Read('Result', TypeInfo(Binary), result, []);
  finally
    __Message.UnsetAttributes(__TransportChannel);
    __Message.FreeStream;
  end
end;

{ CosrvComisiones }

class function CosrvComisiones.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvComisiones;
begin
  result := TsrvComisiones_Proxy.Create(aMessage, aTransportChannel);
end;

{ TsrvComisiones_Proxy }

function TsrvComisiones_Proxy.__GetInterfaceName:string;
begin
  result := 'srvComisiones';
end;

function TsrvComisiones_Proxy.GenerateReport(const AComisionID: Variant; const DesglosadoProv: Boolean; const FechaIni: AnsiString; const FechaFin: AnsiString; 
                                             const AAgenteID: Variant): Binary;
begin
  try
    result := nil;
    __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerateReport');
    __Message.Write('AComisionID', TypeInfo(Variant), AComisionID, []);
    __Message.Write('DesglosadoProv', TypeInfo(Boolean), DesglosadoProv, []);
    __Message.Write('FechaIni', TypeInfo(AnsiString), FechaIni, []);
    __Message.Write('FechaFin', TypeInfo(AnsiString), FechaFin, []);
    __Message.Write('AAgenteID', TypeInfo(Variant), AAgenteID, []);
    __Message.Finalize;

    __TransportChannel.Dispatch(__Message);

    __Message.Read('Result', TypeInfo(Binary), result, []);
  finally
    __Message.UnsetAttributes(__TransportChannel);
    __Message.FreeStream;
  end
end;

{ CosrvPedidosCliente }

class function CosrvPedidosCliente.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvPedidosCliente;
begin
  result := TsrvPedidosCliente_Proxy.Create(aMessage, aTransportChannel);
end;

{ TsrvPedidosCliente_Proxy }

function TsrvPedidosCliente_Proxy.__GetInterfaceName:string;
begin
  result := 'srvPedidosCliente';
end;

function TsrvPedidosCliente_Proxy.GenerarInforme(const ListaID: TIntegerArray; const ImprimirPrecio: Boolean; const ImprimirRefProveedor: Boolean): Binary;
begin
  try
    result := nil;
    __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInforme');
    __Message.Write('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []);
    __Message.Write('ImprimirPrecio', TypeInfo(Boolean), ImprimirPrecio, []);
    __Message.Write('ImprimirRefProveedor', TypeInfo(Boolean), ImprimirRefProveedor, []);
    __Message.Finalize;

    __TransportChannel.Dispatch(__Message);

    __Message.Read('Result', TypeInfo(Binary), result, []);
  finally
    __Message.UnsetAttributes(__TransportChannel);
    __Message.FreeStream;
  end
end;

function TsrvPedidosCliente_Proxy.GenerarInformeEnPDF(const ListaID: TIntegerArray; const ImprimirPrecio: Boolean; const ImprimirRefProveedor: Boolean): Binary;
begin
  try
    result := nil;
    __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInformeEnPDF');
    __Message.Write('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []);
    __Message.Write('ImprimirPrecio', TypeInfo(Boolean), ImprimirPrecio, []);
    __Message.Write('ImprimirRefProveedor', TypeInfo(Boolean), ImprimirRefProveedor, []);
    __Message.Finalize;

    __TransportChannel.Dispatch(__Message);

    __Message.Read('Result', TypeInfo(Binary), result, []);
  finally
    __Message.UnsetAttributes(__TransportChannel);
    __Message.FreeStream;
  end
end;

{ CosrvImpresiones }

class function CosrvImpresiones.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvImpresiones;
begin
  result := TsrvImpresiones_Proxy.Create(aMessage, aTransportChannel);
end;

{ TsrvImpresiones_Proxy }

function TsrvImpresiones_Proxy.__GetInterfaceName:string;
begin
  result := 'srvImpresiones';
end;

function TsrvImpresiones_Proxy.AnadirMarcaImpresion(const NombreTabla: AnsiString; const IdsTabla: AnsiString): Boolean;
begin
  try
    __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'AnadirMarcaImpresion');
    __Message.Write('NombreTabla', TypeInfo(AnsiString), NombreTabla, []);
    __Message.Write('IdsTabla', TypeInfo(AnsiString), IdsTabla, []);
    __Message.Finalize;

    __TransportChannel.Dispatch(__Message);

    __Message.Read('Result', TypeInfo(Boolean), result, []);
  finally
    __Message.UnsetAttributes(__TransportChannel);
    __Message.FreeStream;
  end
end;

{ CosrvRegistroCorreos }

class function CosrvRegistroCorreos.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvRegistroCorreos;
begin
  result := TsrvRegistroCorreos_Proxy.Create(aMessage, aTransportChannel);
end;

{ TsrvRegistroCorreos_Proxy }

function TsrvRegistroCorreos_Proxy.__GetInterfaceName:string;
begin
  result := 'srvRegistroCorreos';
end;

function TsrvRegistroCorreos_Proxy.AnadirMarcaEnvio(const NombreTabla: AnsiString; const IdsTabla: TIntegerArray): Boolean;
begin
  try
    __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'AnadirMarcaEnvio');
    __Message.Write('NombreTabla', TypeInfo(AnsiString), NombreTabla, []);
    __Message.Write('IdsTabla', TypeInfo(FactuGES_Intf.TIntegerArray), IdsTabla, []);
    __Message.Finalize;

    __TransportChannel.Dispatch(__Message);

    __Message.Read('Result', TypeInfo(Boolean), result, []);
  finally
    __Message.UnsetAttributes(__TransportChannel);
    __Message.FreeStream;
  end
end;

initialization
  RegisterROClass(TRdxLoginInfo);
  RegisterROClass(TRdxEmpresasArray);
  RegisterROClass(TIntegerArray);
  RegisterProxyClass(IsrvContactos_IID, TsrvContactos_Proxy);
  RegisterProxyClass(IsrvLogin_IID, TsrvLogin_Proxy);
  RegisterProxyClass(IsrvInventario_IID, TsrvInventario_Proxy);
  RegisterProxyClass(IsrvHistoricoMovimientos_IID, TsrvHistoricoMovimientos_Proxy);
  RegisterProxyClass(IsrvEmpresas_IID, TsrvEmpresas_Proxy);
  RegisterProxyClass(IsrvConfiguracion_IID, TsrvConfiguracion_Proxy);
  RegisterProxyClass(IsrvFamilias_IID, TsrvFamilias_Proxy);
  RegisterProxyClass(IsrvFormasPago_IID, TsrvFormasPago_Proxy);
  RegisterProxyClass(IsrvTiposIVA_IID, TsrvTiposIVA_Proxy);
  RegisterProxyClass(IsrvUsuarios_IID, TsrvUsuarios_Proxy);
  RegisterProxyClass(IsrvAlmacenes_IID, TsrvAlmacenes_Proxy);
  RegisterProxyClass(IsrvArticulos_IID, TsrvArticulos_Proxy);
  RegisterProxyClass(IsrvRecibosCliente_IID, TsrvRecibosCliente_Proxy);
  RegisterProxyClass(IsrvRecibosProveedor_IID, TsrvRecibosProveedor_Proxy);
  RegisterProxyClass(IsrvRemesasCliente_IID, TsrvRemesasCliente_Proxy);
  RegisterProxyClass(IsrvRemesasProveedor_IID, TsrvRemesasProveedor_Proxy);
  RegisterProxyClass(IsrvFacturasCliente_IID, TsrvFacturasCliente_Proxy);
  RegisterProxyClass(IsrvFacturasProveedor_IID, TsrvFacturasProveedor_Proxy);
  RegisterProxyClass(IsrvPresupuestosCliente_IID, TsrvPresupuestosCliente_Proxy);
  RegisterProxyClass(IsrvPedidosProveedor_IID, TsrvPedidosProveedor_Proxy);
  RegisterProxyClass(IsrvAlbaranesCliente_IID, TsrvAlbaranesCliente_Proxy);
  RegisterProxyClass(IsrvAlbaranesProveedor_IID, TsrvAlbaranesProveedor_Proxy);
  RegisterProxyClass(IsrvReferencias_IID, TsrvReferencias_Proxy);
  RegisterProxyClass(IsrvUnidadesMedida_IID, TsrvUnidadesMedida_Proxy);
  RegisterProxyClass(IsrvFabricantes_IID, TsrvFabricantes_Proxy);
  RegisterProxyClass(IsrvObras_IID, TsrvObras_Proxy);
  RegisterProxyClass(IsrvProvinciasPoblaciones_IID, TsrvProvinciasPoblaciones_Proxy);
  RegisterProxyClass(IsrvGestorDocumentos_IID, TsrvGestorDocumentos_Proxy);
  RegisterProxyClass(IsrvGestorInformes_IID, TsrvGestorInformes_Proxy);
  RegisterProxyClass(IsrvComisiones_IID, TsrvComisiones_Proxy);
  RegisterProxyClass(IsrvPedidosCliente_IID, TsrvPedidosCliente_Proxy);
  RegisterProxyClass(IsrvImpresiones_IID, TsrvImpresiones_Proxy);
  RegisterProxyClass(IsrvRegistroCorreos_IID, TsrvRegistroCorreos_Proxy);


finalization
  UnregisterROClass(TRdxLoginInfo);
  UnregisterROClass(TRdxEmpresasArray);
  UnregisterROClass(TIntegerArray);
  UnregisterProxyClass(IsrvContactos_IID);
  UnregisterProxyClass(IsrvLogin_IID);
  UnregisterProxyClass(IsrvInventario_IID);
  UnregisterProxyClass(IsrvHistoricoMovimientos_IID);
  UnregisterProxyClass(IsrvEmpresas_IID);
  UnregisterProxyClass(IsrvConfiguracion_IID);
  UnregisterProxyClass(IsrvFamilias_IID);
  UnregisterProxyClass(IsrvFormasPago_IID);
  UnregisterProxyClass(IsrvTiposIVA_IID);
  UnregisterProxyClass(IsrvUsuarios_IID);
  UnregisterProxyClass(IsrvAlmacenes_IID);
  UnregisterProxyClass(IsrvArticulos_IID);
  UnregisterProxyClass(IsrvRecibosCliente_IID);
  UnregisterProxyClass(IsrvRecibosProveedor_IID);
  UnregisterProxyClass(IsrvRemesasCliente_IID);
  UnregisterProxyClass(IsrvRemesasProveedor_IID);
  UnregisterProxyClass(IsrvFacturasCliente_IID);
  UnregisterProxyClass(IsrvFacturasProveedor_IID);
  UnregisterProxyClass(IsrvPresupuestosCliente_IID);
  UnregisterProxyClass(IsrvPedidosProveedor_IID);
  UnregisterProxyClass(IsrvAlbaranesCliente_IID);
  UnregisterProxyClass(IsrvAlbaranesProveedor_IID);
  UnregisterProxyClass(IsrvReferencias_IID);
  UnregisterProxyClass(IsrvUnidadesMedida_IID);
  UnregisterProxyClass(IsrvFabricantes_IID);
  UnregisterProxyClass(IsrvObras_IID);
  UnregisterProxyClass(IsrvProvinciasPoblaciones_IID);
  UnregisterProxyClass(IsrvGestorDocumentos_IID);
  UnregisterProxyClass(IsrvGestorInformes_IID);
  UnregisterProxyClass(IsrvComisiones_IID);
  UnregisterProxyClass(IsrvPedidosCliente_IID);
  UnregisterProxyClass(IsrvImpresiones_IID);
  UnregisterProxyClass(IsrvRegistroCorreos_IID);

end.
