diff --git a/Source/Base/Utiles/uSistemaFunc.pas b/Source/Base/Utiles/uSistemaFunc.pas index 3b25bacc..b50be476 100644 --- a/Source/Base/Utiles/uSistemaFunc.pas +++ b/Source/Base/Utiles/uSistemaFunc.pas @@ -50,11 +50,13 @@ function PreguntarFicheroExcelExportar (var Fichero : String) : Boolean; function EscapeIllegalChars(AFileName: string): string; function FindFile(const filespec: TFileName; attributes: integer = faReadOnly Or faHidden Or faSysFile Or faArchive): TStringList; +function DarRutaFichero(const ARutaIni: String; const AFichero: String; const ADirectorio1: String = ''; const ADirectorio2: String = ''): Variant; + implementation uses - Windows, Dialogs, JclFileUtils, + Windows, Variants, Dialogs, JclFileUtils, Messages, Graphics, Controls, Forms, StdCtrls, SHFolder, cxShellBrowserDialog, cxLookAndFeels, uStringsUtils; @@ -435,4 +437,27 @@ begin Result := DarRutaTemporal + Cadena + '\'; end; -end. +function DarRutaFichero(const ARutaIni: String; const AFichero: String; const ADirectorio1: String = ''; const ADirectorio2: String = ''): Variant; +var + ARutaCompleta: String; +begin + Result := Null; + + ARutaCompleta := ARutaIni + '\' + ADirectorio1 + '\' + ADirectorio2 + '\' + AFichero; + if FileExists(ARutaCompleta) then + Result := ARutaCompleta + else + begin + ARutaCompleta := ARutaIni + '\' + ADirectorio1 + '\' + AFichero; + if FileExists(ARutaCompleta) then + Result := ARutaCompleta + else + begin + ARutaCompleta := ARutaIni + '\' + AFichero; + if FileExists(ARutaCompleta) then + Result := ARutaCompleta + end + end +end; + +end. diff --git a/Source/Informes/InfFacturaClienteAbeto.fr3 b/Source/Informes/1/3/InfFacturaCliente.fr3 similarity index 100% rename from Source/Informes/InfFacturaClienteAbeto.fr3 rename to Source/Informes/1/3/InfFacturaCliente.fr3 diff --git a/Source/Informes/InfAlbaranCliente.fr3 b/Source/Informes/1/InfAlbaranCliente.fr3 similarity index 100% rename from Source/Informes/InfAlbaranCliente.fr3 rename to Source/Informes/1/InfAlbaranCliente.fr3 diff --git a/Source/Informes/InfComision.fr3 b/Source/Informes/1/InfComision.fr3 similarity index 100% rename from Source/Informes/InfComision.fr3 rename to Source/Informes/1/InfComision.fr3 diff --git a/Source/Informes/InfFacturaCliente.fr3 b/Source/Informes/1/InfFacturaCliente.fr3 similarity index 100% rename from Source/Informes/InfFacturaCliente.fr3 rename to Source/Informes/1/InfFacturaCliente.fr3 diff --git a/Source/Informes/InfPresupuestoCliente.fr3 b/Source/Informes/1/InfPresupuestoCliente.fr3 similarity index 100% rename from Source/Informes/InfPresupuestoCliente.fr3 rename to Source/Informes/1/InfPresupuestoCliente.fr3 diff --git a/Source/Informes/InfReciboCliente.fr3 b/Source/Informes/1/InfReciboCliente.fr3 similarity index 100% rename from Source/Informes/InfReciboCliente.fr3 rename to Source/Informes/1/InfReciboCliente.fr3 diff --git a/Source/Informes/InfFichaEmpleado.fr3 b/Source/Informes/InfFichaEmpleado.fr3 deleted file mode 100644 index 75b3433b..00000000 --- a/Source/Informes/InfFichaEmpleado.fr3 +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Source/Informes/InfPresupuestoCliente_anterior.fr3 b/Source/Informes/InfPresupuestoCliente_anterior.fr3 deleted file mode 100644 index a3d4f298..00000000 --- a/Source/Informes/InfPresupuestoCliente_anterior.fr3 +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Source/Modulos/Albaranes de cliente/Reports/uRptAlbaranesCliente_Server.dfm b/Source/Modulos/Albaranes de cliente/Reports/uRptAlbaranesCliente_Server.dfm index 07419e02..d42d5655 100644 --- a/Source/Modulos/Albaranes de cliente/Reports/uRptAlbaranesCliente_Server.dfm +++ b/Source/Modulos/Albaranes de cliente/Reports/uRptAlbaranesCliente_Server.dfm @@ -26,12 +26,16 @@ object RptAlbaranesCliente: TRptAlbaranesCliente Name = 'ID_EMPRESA' DataType = datInteger end + item + Name = 'ID_TIENDA' + DataType = datInteger + end item Name = 'ID_CLIENTE' DataType = datInteger end item - Name = 'REFERENCIA' + Name = 'NOMBRE' DataType = datString Size = 255 end @@ -40,13 +44,19 @@ object RptAlbaranesCliente: TRptAlbaranesCliente DataType = datString Size = 255 end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + end item Name = 'FECHA_ALBARAN' DataType = datDateTime end item - Name = 'ID_PEDIDO' - DataType = datInteger + Name = 'REFERENCIA' + DataType = datString + Size = 255 end item Name = 'REFERENCIA_CLIENTE' @@ -54,29 +64,24 @@ object RptAlbaranesCliente: TRptAlbaranesCliente Size = 255 end item - Name = 'OBSERVACIONES' - DataType = datMemo + Name = 'ID_PEDIDO' + DataType = datInteger end item Name = 'REF_PEDIDO' DataType = datString Size = 255 end - item - Name = 'NOMBRE' - DataType = datString - Size = 255 - end - item - Name = 'CALLE' - DataType = datString - Size = 255 - end item Name = 'CODIGO_POSTAL' DataType = datString Size = 10 end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + end item Name = 'PROVINCIA' DataType = datString @@ -93,13 +98,17 @@ object RptAlbaranesCliente: TRptAlbaranesCliente Size = 25 end item - Name = 'POBLACION' + Name = 'CALLE' DataType = datString Size = 255 end + item + Name = 'OBSERVACIONES' + DataType = datMemo + end item Name = 'IMPORTE_TOTAL' - DataType = datFloat + DataType = datCurrency end item Name = 'FECHA_PREVISTA_ENVIO' @@ -303,27 +312,28 @@ object RptAlbaranesCliente: TRptAlbaranesCliente TargetTable = 'ALBARANES_CLIENTE' SQL = 'SELECT'#10' V_ALBARANES_CLIENTE.ID,'#10' V_ALBARANES_CLIENTE.ID_EMPRES' + - 'A,'#10' V_ALBARANES_CLIENTE.ID_CLIENTE,'#10' V_ALBARANES_CLIENTE.NOMBR' + - 'E,'#10' V_CLIENTES.NOMBRE_COMERCIAL,'#10' V_CLIENTES.NIF_CIF,'#10' V_ALBA' + - 'RANES_CLIENTE.FECHA_ALBARAN,'#10' V_ALBARANES_CLIENTE.REFERENCIA,'#10' ' + - ' V_ALBARANES_CLIENTE.REFERENCIA_CLIENTE,'#10' V_ALBARANES_CLIENTE.I' + - 'D_PEDIDO,'#10' V_ALBARANES_CLIENTE.REF_PEDIDO,'#10' V_ALBARANES_CLIENT' + - 'E.CODIGO_POSTAL,'#10' V_ALBARANES_CLIENTE.POBLACION,'#10' V_ALBARANES_' + - 'CLIENTE.PROVINCIA,'#10' V_ALBARANES_CLIENTE.PERSONA_CONTACTO,'#10' V_A' + - 'LBARANES_CLIENTE.TELEFONO,'#10' V_ALBARANES_CLIENTE.CALLE,'#10' V_ALBA' + - 'RANES_CLIENTE.OBSERVACIONES,'#10' V_ALBARANES_CLIENTE.IMPORTE_TOTAL' + - ','#10' V_ALBARANES_CLIENTE.FECHA_PREVISTA_ENVIO,'#10' EMPRESAS.NIF_CIF' + - ' AS NIF_CIF_EMPRESA,'#10' EMPRESAS.NOMBRE AS NOMBRE_EMPRESA,'#10' EMPR' + - 'ESAS.RAZON_SOCIAL AS RAZON_SOCIAL_EMPRESA,'#10' EMPRESAS.CALLE AS C' + - 'ALLE_EMPRESA,'#10' EMPRESAS.CODIGO_POSTAL AS CODIGO_POSTAL_EMPRESA,' + - #10' EMPRESAS.POBLACION AS POBLACION_EMPRESA,'#10' EMPRESAS.PROVINCIA' + - ' AS PROVINCIA_EMPRESA,'#10' EMPRESAS.TELEFONO_1 AS TELEFONO_1_EMPRE' + - 'SA,'#10' EMPRESAS.FAX AS FAX_EMPRESA,'#10' EMPRESAS.MOVIL_1 AS MOVIL_1' + - '_EMPRESA,'#10' EMPRESAS.EMAIL_1 AS EMAIL_1_EMPRESA,'#10' EMPRESAS.PAGI' + - 'NA_WEB AS PAGINA_WEB_EMPRESA'#10'FROM'#10' V_ALBARANES_CLIENTE'#10' LEFT' + - ' OUTER JOIN V_CLIENTES ON (V_CLIENTES.ID = V_ALBARANES_CLIENTE.I' + - 'D_CLIENTE)'#10' LEFT OUTER JOIN EMPRESAS ON (EMPRESAS.ID = V_ALBARA' + - 'NES_CLIENTE.ID_EMPRESA)'#10'WHERE V_ALBARANES_CLIENTE.ID = :ID'#10 + 'A,'#10' V_ALBARANES_CLIENTE.ID_TIENDA,'#10' V_ALBARANES_CLIENTE.ID_CLI' + + 'ENTE,'#10' V_ALBARANES_CLIENTE.NOMBRE,'#10' V_CLIENTES.NOMBRE_COMERCIA' + + 'L,'#10' V_CLIENTES.NIF_CIF,'#10' V_ALBARANES_CLIENTE.FECHA_ALBARAN,'#10' ' + + 'V_ALBARANES_CLIENTE.REFERENCIA,'#10' V_ALBARANES_CLIENTE.REFERENCIA' + + '_CLIENTE,'#10' V_ALBARANES_CLIENTE.ID_PEDIDO,'#10' V_ALBARANES_CLIENTE' + + '.REF_PEDIDO,'#10' V_ALBARANES_CLIENTE.CODIGO_POSTAL,'#10' V_ALBARANES_' + + 'CLIENTE.POBLACION,'#10' V_ALBARANES_CLIENTE.PROVINCIA,'#10' V_ALBARANE' + + 'S_CLIENTE.PERSONA_CONTACTO,'#10' V_ALBARANES_CLIENTE.TELEFONO,'#10' V_' + + 'ALBARANES_CLIENTE.CALLE,'#10' V_ALBARANES_CLIENTE.OBSERVACIONES,'#10' ' + + 'V_ALBARANES_CLIENTE.IMPORTE_TOTAL,'#10' V_ALBARANES_CLIENTE.FECHA_P' + + 'REVISTA_ENVIO,'#10' EMPRESAS.NIF_CIF AS NIF_CIF_EMPRESA,'#10' EMPRESAS' + + '.NOMBRE AS NOMBRE_EMPRESA,'#10' EMPRESAS.RAZON_SOCIAL AS RAZON_SOCI' + + 'AL_EMPRESA,'#10' EMPRESAS.CALLE AS CALLE_EMPRESA,'#10' EMPRESAS.CODIGO' + + '_POSTAL AS CODIGO_POSTAL_EMPRESA,'#10' EMPRESAS.POBLACION AS POBLAC' + + 'ION_EMPRESA,'#10' EMPRESAS.PROVINCIA AS PROVINCIA_EMPRESA,'#10' EMPRES' + + 'AS.TELEFONO_1 AS TELEFONO_1_EMPRESA,'#10' EMPRESAS.FAX AS FAX_EMPRE' + + 'SA,'#10' EMPRESAS.MOVIL_1 AS MOVIL_1_EMPRESA,'#10' EMPRESAS.EMAIL_1 AS' + + ' EMAIL_1_EMPRESA,'#10' EMPRESAS.PAGINA_WEB AS PAGINA_WEB_EMPRESA'#10'FR' + + 'OM'#10' V_ALBARANES_CLIENTE'#10' LEFT OUTER JOIN V_CLIENTES ON (V_CL' + + 'IENTES.ID = V_ALBARANES_CLIENTE.ID_CLIENTE)'#10' LEFT OUTER JOIN EM' + + 'PRESAS ON (EMPRESAS.ID = V_ALBARANES_CLIENTE.ID_EMPRESA)'#10'WHERE V' + + '_ALBARANES_CLIENTE.ID = :ID'#10 StatementType = stSQL ColumnMappings = < item @@ -454,6 +464,10 @@ object RptAlbaranesCliente: TRptAlbaranesCliente DatasetField = 'NIF_CIF' TableField = '' SQLOrigin = 'NIF_CIF' + end + item + DatasetField = 'ID_TIENDA' + TableField = 'ID_TIENDA' end> end> Name = 'Informe_Cabecera' @@ -466,6 +480,10 @@ object RptAlbaranesCliente: TRptAlbaranesCliente Name = 'ID_EMPRESA' DataType = datInteger end + item + Name = 'ID_TIENDA' + DataType = datInteger + end item Name = 'ID_CLIENTE' DataType = datInteger diff --git a/Source/Modulos/Albaranes de cliente/Reports/uRptAlbaranesCliente_Server.pas b/Source/Modulos/Albaranes de cliente/Reports/uRptAlbaranesCliente_Server.pas index 31e33f09..fbf4eb6c 100644 --- a/Source/Modulos/Albaranes de cliente/Reports/uRptAlbaranesCliente_Server.pas +++ b/Source/Modulos/Albaranes de cliente/Reports/uRptAlbaranesCliente_Server.pas @@ -30,9 +30,9 @@ type tbl_Etiquetas: TDAMemDataTable; DADataEtiquetas: TDADataSource; frxDBEtiquetas: TfrxDBDataset; + frxPDFExport1: TfrxPDFExport; schReport: TDASchema; DataDictionary: TDADataDictionary; - frxPDFExport1: TfrxPDFExport; procedure DataModuleCreate(Sender: TObject); private FConnection: IDAConnection; @@ -49,7 +49,7 @@ implementation {$R *.dfm} uses - uDataModuleServer, schAlbaranesClienteClient_Intf; + uSistemaFunc, uDataModuleServer, schAlbaranesClienteClient_Intf; const rptInfAlbaran = 'InfAlbaranCliente.fr3'; @@ -99,6 +99,9 @@ begin end; procedure TRptAlbaranesCliente._GenerarAlbaran(const ID: integer); +var + AInforme: Variant; + begin FConnection.BeginTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" try @@ -107,7 +110,11 @@ begin tbl_Cabecera.Active := True; tbl_Detalles.Active := True; - frxReport.LoadFromFile(DarRutaInformes + rptInfAlbaran, True); + AInforme := DarRutaFichero(DarRutaInformes, rptInfAlbaran, tbl_Cabecera.FieldByName('ID_EMPRESA').AsString, tbl_Cabecera.FieldByName('ID_TIENDA').AsString); + if VarIsNull(AInforme) then + raise Exception.Create (('Error Servidor: _GenerarAlbaran, no encuentra informe' + rptInfAlbaran)); + + frxReport.LoadFromFile(AInforme, True); frxReport.PrepareReport(False); finally FConnection.RollbackTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" @@ -115,10 +122,9 @@ begin end; function TRptAlbaranesCliente.GenerarEtiquetas(const AID: Integer; withRefCliente: Boolean): Binary; -{var - dsMaster: IDADataset; - dsDetail: IDADataset; - AStream: TMemoryStream;} +var + AInforme: Variant; + begin Result := Binary.Create; FConnection.BeginTransaction; @@ -127,7 +133,11 @@ begin tbl_Etiquetas.ParamByName('ID_ALBARAN').AsInteger := AID; tbl_Etiquetas.Active := True; - frxReport.LoadFromFile(DarRutaInformes + rptInfEtiquetas, True); + AInforme := DarRutaFichero(DarRutaInformes, rptInfEtiquetas); + if VarIsNull(AInforme) then + raise Exception.Create (('Error Servidor: GenerarEtiquetas, no encuentra informe' + rptInfEtiquetas)); + + frxReport.LoadFromFile(AInforme, True); if withRefCliente then frxReport.Variables.Variables['withRefCliente'] := 1 else @@ -138,35 +148,6 @@ begin finally FConnection.RollbackTransaction; end; - -{ - AStream := TMemoryStream.Create; - Result := Binary.Create; - FConnection.BeginTransaction; - try - dsMaster := schReport.NewDataset(FConnection, ds_InformeCabecera, ['ID'], [AID]); - dsDetail := schReport.NewDataset(FConnection, ds_InformeDetallesEtiquetas, ['ID_ALBARAN'], [AID], False); - - AStream.Clear; - DABINAdapter.WriteDataset(AStream, dsMaster, [woRows, woSchema], -1); - DABINAdapter.ReadDataset(AStream, tbl_Cabecera, TRUE, '', TRUE, TRUE); - - AStream.Clear; - DABINAdapter.WriteDataset(AStream, dsDetail, [woRows, woSchema], -1); - DABINAdapter.ReadDataset(AStream, tbl_Detalles, TRUE, '', TRUE, TRUE); - - frxReport.LoadFromFile(DarRutaInformes + rptInfEtiquetas, True); - if withRefCliente then - frxReport.Variables.Variables['withRefCliente'] := 1 - else - frxReport.Variables.Variables['withRefCliente'] := 0; - frxReport.PrepareReport(False); - frxReport.PreviewPages.SaveToStream(Result); - finally - AStream.Free; - FConnection.RollbackTransaction; - end; -} end; end. diff --git a/Source/Modulos/Comisiones/Reports/uRptComisiones_Server.pas b/Source/Modulos/Comisiones/Reports/uRptComisiones_Server.pas index a83c51e7..87482586 100644 --- a/Source/Modulos/Comisiones/Reports/uRptComisiones_Server.pas +++ b/Source/Modulos/Comisiones/Reports/uRptComisiones_Server.pas @@ -45,7 +45,7 @@ implementation {$R *.dfm} uses - uDataModuleServer; + uSistemaFunc, uDataModuleServer; const rptComision = 'InfComision.fr3'; @@ -60,6 +60,9 @@ begin end; procedure TRptComisiones.GenerarComision(const ID: integer); +var + AInforme: Variant; + begin FConnection.BeginTransaction; try @@ -70,7 +73,11 @@ begin tbl_Facturas.Active := True; tbl_Vendedores.Active := True; - frxReport.LoadFromFile(DarRutaInformes + rptComision, True); + AInforme := DarRutaFichero(DarRutaInformes, rptComision, tbl_Comisiones.FieldByName('ID_EMPRESA').AsString); + if VarIsNull(AInforme) then + raise Exception.Create (('Error Servidor: GenerarComision, no encuentra informe' + rptComision)); + + frxReport.LoadFromFile(AInforme, True); frxReport.PrepareReport(False); finally FConnection.RollbackTransaction; diff --git a/Source/Modulos/Contactos/Reports/uRptEtiquetasContacto_Server.pas b/Source/Modulos/Contactos/Reports/uRptEtiquetasContacto_Server.pas index 86668376..ddb08557 100644 --- a/Source/Modulos/Contactos/Reports/uRptEtiquetasContacto_Server.pas +++ b/Source/Modulos/Contactos/Reports/uRptEtiquetasContacto_Server.pas @@ -37,7 +37,7 @@ implementation {$R *.dfm} uses - uDataModuleServer, schContactosClient_Intf; + uSistemaFunc, uDataModuleServer, schContactosClient_Intf; const rptEtiquetasContacto = 'InfEtiquetasContacto.fr3'; @@ -57,6 +57,9 @@ begin end; function TRptEtiquetasContacto.GenerarInforme(const AID: String): Binary; +var + AInforme: Variant; + begin Result := Binary.Create; @@ -75,10 +78,12 @@ begin tbl_Contactos.Where.AddCondition(fld_ContactosID, cIn, '(' + AID + ')'); tbl_Contactos.Active := True; + AInforme := DarRutaFichero(DarRutaInformes, rptEtiquetasContacto); + if VarIsNull(AInforme) then + raise Exception.Create (('Error Servidor: GenerarInforme, no encuentra informe' + rptEtiquetasContacto)); - frxReport.LoadFromFile(DarRutaInformes + rptEtiquetasContacto, True); + frxReport.LoadFromFile(AInforme, True); frxReport.PrepareReport(True); - frxReport.PreviewPages.SaveToStream(Result); finally diff --git a/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.pas b/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.pas index 9c6ed7b8..a00fb9fb 100644 --- a/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.pas +++ b/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.pas @@ -52,11 +52,10 @@ implementation {$R *.dfm} uses - uDataModuleServer, schFacturasClienteClient_Intf; + uSistemaFunc, uDataModuleServer, schFacturasClienteClient_Intf; const rptFacturaCliente = 'InfFacturaCliente.fr3'; - rptFacturaClienteAbeto = 'InfFacturaClienteAbeto.fr3'; rptInformeIVA = 'InformeIVAClientes.fr3'; rptInformeIVADesglosado = 'InformeIVAClientesDesglosado.fr3'; @@ -158,6 +157,9 @@ begin end; procedure TRptFacturasCliente._GenerarFactura(const ID: integer); +var + AInforme: Variant; + begin FConnection.BeginTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" try @@ -173,12 +175,11 @@ begin tbl_Detalles.Active := True; tbl_Vencimientos.Active := True; -// frxReport.LoadFromFile(DarRutaInformes + tbl_Cabecera.FieldByName('ID_EMPRESA').AsString + '\' + rptFacturaCliente, True); - if (tbl_Cabecera.FieldByName('ID_TIENDA').AsInteger <> 3) then - frxReport.LoadFromFile(DarRutaInformes + rptFacturaCliente, True) - else - frxReport.LoadFromFile(DarRutaInformes + rptFacturaClienteAbeto, True); + AInforme := DarRutaFichero(DarRutaInformes, rptFacturaCliente, tbl_Cabecera.FieldByName('ID_EMPRESA').AsString, tbl_Cabecera.FieldByName('ID_TIENDA').AsString); + if VarIsNull(AInforme) then + raise Exception.Create (('Error Servidor: _GenerarFactura, no encuentra informe' + rptFacturaCliente)); + frxReport.LoadFromFile(AInforme, True); frxReport.PrepareReport(False); finally FConnection.RollbackTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" @@ -191,6 +192,7 @@ function TRptFacturasCliente._GenerarInforme(const TipoInforme: String; var Condicion: TDAWhereExpression; i: Integer; + AInforme: Variant; begin Result := Binary.Create; @@ -263,11 +265,13 @@ begin tbl_InformeListadoFacturas.Active := True; - frxReport.LoadFromFile(DarRutaInformes + TipoInforme, True); -// frxReport.LoadFromFile(DarRutaInformes + IntToStr(IdEmpresa) + '\' + TipoInforme, True); + AInforme := DarRutaFichero(DarRutaInformes, TipoInforme, tbl_InformeListadoFacturas.FieldByName('ID_EMPRESA').AsString); + if VarIsNull(AInforme) then + raise Exception.Create (('Error Servidor: _GenerarInforme, no encuentra informe' + TipoInforme)); + + frxReport.LoadFromFile(AInforme, True); frxReport.Variables.Variables['FechaInicio'] := FechaInicio; frxReport.Variables.Variables['FechaFin'] := FechaFin; - frxReport.PrepareReport(False); frxReport.PreviewPages.SaveToStream(Result); diff --git a/Source/Modulos/Facturas de proveedor/Reports/uRptFacturasProveedor_Server.pas b/Source/Modulos/Facturas de proveedor/Reports/uRptFacturasProveedor_Server.pas index 1ecb3230..4a9e9f32 100644 --- a/Source/Modulos/Facturas de proveedor/Reports/uRptFacturasProveedor_Server.pas +++ b/Source/Modulos/Facturas de proveedor/Reports/uRptFacturasProveedor_Server.pas @@ -42,7 +42,7 @@ implementation {$R *.dfm} uses - uDataModuleServer, schFacturasProveedorClient_Intf; + uSistemaFunc, uDataModuleServer, schFacturasProveedorClient_Intf; const rptFacturaProveedor = 'InfFacturaProveedor.fr3'; @@ -138,6 +138,7 @@ function TRptFacturasProveedor._GenerarInforme(const TipoInforme: String; var Condicion: TDAWhereExpression; i: Integer; + AInforme: Variant; begin Result := Binary.Create; @@ -209,8 +210,11 @@ begin tbl_InformeListadoFacturas.Active := True; - frxReport.LoadFromFile(DarRutaInformes + TipoInforme, True); -// frxReport.LoadFromFile(DarRutaInformes + IntToStr(IdEmpresa) + '\' + TipoInforme, True); + AInforme := DarRutaFichero(DarRutaInformes, TipoInforme, tbl_InformeListadoFacturas.FieldByName('ID_EMPRESA').AsString); + if VarIsNull(AInforme) then + raise Exception.Create (('Error Servidor: _GenerarInforme, no encuentra informe' + TipoInforme)); + + frxReport.LoadFromFile(AInforme, True); frxReport.Variables.Variables['FechaInicio'] := FechaInicio; frxReport.Variables.Variables['FechaFin'] := FechaFin; diff --git a/Source/Modulos/Presupuestos de cliente/Reports/uRptPresupuestosCliente_Server.dfm b/Source/Modulos/Presupuestos de cliente/Reports/uRptPresupuestosCliente_Server.dfm index 65573933..b1975146 100644 --- a/Source/Modulos/Presupuestos de cliente/Reports/uRptPresupuestosCliente_Server.dfm +++ b/Source/Modulos/Presupuestos de cliente/Reports/uRptPresupuestosCliente_Server.dfm @@ -200,14 +200,14 @@ object RptPresupuestosCliente: TRptPresupuestosCliente Connection = 'IBX' TargetTable = 'V_PRESUPUESTOS_CLIENTE' SQL = - 'SELECT '#10' ID, ID_EMPRESA, FECHA_PRESUPUESTO, FECHA_DECISION, '#10 + - ' REFERENCIA, SITUACION, ID_CLIENTE, NIF_CIF, NOMBRE, '#10' REF' + - 'ERENCIA_CLIENTE, CLIENTE_FINAL, PORTADA, MEMORIA, '#10' OBSERVACI' + - 'ONES, INCIDENCIAS, INCIDENCIAS_ACTIVAS, FECHA_ALTA, '#10' FECHA_M' + - 'ODIFICACION, USUARIO, IMPORTE_NETO, IMPORTE_PORTE, '#10' DESCUENT' + - 'O, IMPORTE_DESCUENTO, BASE_IMPONIBLE, IVA, '#10' IMPORTE_IVA, IMP' + - 'ORTE_TOTAL, ID_FORMA_PAGO'#10' FROM'#10' V_PRESUPUESTOS_CLIENTE'#10' WH' + - 'ERE V_PRESUPUESTOS_CLIENTE.ID = :ID'#10 + 'SELECT '#10' ID, ID_EMPRESA, ID_TIENDA, FECHA_PRESUPUESTO, FECHA_' + + 'DECISION,'#10' REFERENCIA, SITUACION, ID_CLIENTE, NIF_CIF, NOMBRE' + + ', '#10' REFERENCIA_CLIENTE, CLIENTE_FINAL, PORTADA, MEMORIA, '#10' ' + + ' OBSERVACIONES, INCIDENCIAS, INCIDENCIAS_ACTIVAS, FECHA_ALTA, '#10' ' + + ' FECHA_MODIFICACION, USUARIO, IMPORTE_NETO, IMPORTE_PORTE, '#10' ' + + ' DESCUENTO, IMPORTE_DESCUENTO, BASE_IMPONIBLE, IVA, '#10' IMPORT' + + 'E_IVA, IMPORTE_TOTAL, ID_FORMA_PAGO'#10' FROM'#10' V_PRESUPUESTOS_CL' + + 'IENTE'#10' WHERE V_PRESUPUESTOS_CLIENTE.ID = :ID'#10 StatementType = stSQL ColumnMappings = < item @@ -321,6 +321,10 @@ object RptPresupuestosCliente: TRptPresupuestosCliente item DatasetField = 'ID_FORMA_PAGO' TableField = 'ID_FORMA_PAGO' + end + item + DatasetField = 'ID_TIENDA' + TableField = 'ID_TIENDA' end> end> Name = 'Informe_Cabecera' @@ -335,6 +339,10 @@ object RptPresupuestosCliente: TRptPresupuestosCliente Name = 'ID_EMPRESA' DataType = datInteger end + item + Name = 'ID_TIENDA' + DataType = datInteger + end item Name = 'FECHA_PRESUPUESTO' DataType = datDateTime @@ -712,6 +720,10 @@ object RptPresupuestosCliente: TRptPresupuestosCliente Name = 'ID_EMPRESA' DataType = datInteger end + item + Name = 'ID_TIENDA' + DataType = datInteger + end item Name = 'FECHA_PRESUPUESTO' DataType = datDateTime diff --git a/Source/Modulos/Presupuestos de cliente/Reports/uRptPresupuestosCliente_Server.pas b/Source/Modulos/Presupuestos de cliente/Reports/uRptPresupuestosCliente_Server.pas index e2fa2459..34ae60f8 100644 --- a/Source/Modulos/Presupuestos de cliente/Reports/uRptPresupuestosCliente_Server.pas +++ b/Source/Modulos/Presupuestos de cliente/Reports/uRptPresupuestosCliente_Server.pas @@ -54,7 +54,7 @@ implementation {$R *.dfm} uses - uDataModuleServer, schPresupuestosClienteClient_Intf; + uSistemaFunc, uDataModuleServer, schPresupuestosClienteClient_Intf; const rptInforme = 'InfPresupuestoCliente.fr3'; @@ -132,6 +132,7 @@ function TRptPresupuestosCliente._GenerarInforme(const TipoInforme: String; var Condicion: TDAWhereExpression; i: Integer; + AInforme: Variant; begin Result := Binary.Create; @@ -204,8 +205,11 @@ begin tbl_InformeListadoPresupuestos.Active := True; - frxReport.LoadFromFile(DarRutaInformes + TipoInforme, True); -// frxReport.LoadFromFile(DarRutaInformes + IntToStr(IdEmpresa) + '\' + TipoInforme, True); + AInforme := DarRutaFichero(DarRutaInformes, TipoInforme, tbl_InformeListadoPresupuestos.FieldByName('ID_EMPRESA').AsString); + if VarIsNull(AInforme) then + raise Exception.Create (('Error Servidor: _GenerarInforme, no encuentra informe' + TipoInforme)); + + frxReport.LoadFromFile(AInforme, True); frxReport.Variables.Variables['FechaInicio'] := FechaInicio; frxReport.Variables.Variables['FechaFin'] := FechaFin; @@ -218,6 +222,9 @@ begin end; procedure TRptPresupuestosCliente._GenerarPresupuesto(const AID: Integer); +var + AInforme: Variant; + begin FConnection.BeginTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" try @@ -228,7 +235,11 @@ begin tbl_Cabecera.Active := True; tbl_Detalles.Active := True; - frxReport.LoadFromFile(DarRutaInformes + rptInforme, True); + AInforme := DarRutaFichero(DarRutaInformes, rptInforme, tbl_Cabecera.FieldByName('ID_EMPRESA').AsString, tbl_Cabecera.FieldByName('ID_TIENDA').AsString); + if VarIsNull(AInforme) then + raise Exception.Create (('Error Servidor: _GenerarPresupuesto, no encuentra informe' + rptInforme)); + + frxReport.LoadFromFile(AInforme, True); frxReport.PrepareReport(False); finally FConnection.RollbackTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" diff --git a/Source/Modulos/Recibos de cliente/Reports/uRptRecibosCliente_Server.pas b/Source/Modulos/Recibos de cliente/Reports/uRptRecibosCliente_Server.pas index 0cdadfca..70820e9a 100644 --- a/Source/Modulos/Recibos de cliente/Reports/uRptRecibosCliente_Server.pas +++ b/Source/Modulos/Recibos de cliente/Reports/uRptRecibosCliente_Server.pas @@ -48,7 +48,7 @@ implementation {$R *.dfm} uses - uDataModuleServer, schRecibosClienteClient_Intf; + uSistemaFunc, uDataModuleServer, schRecibosClienteClient_Intf; const rptInforme = 'InfReciboCliente.fr3'; @@ -138,6 +138,7 @@ function TRptRecibosCliente._GenerarInforme(const TipoInforme: String; var Condicion: TDAWhereExpression; i: Integer; + AInforme: Variant; begin Result := Binary.Create; @@ -209,8 +210,11 @@ begin tbl_InformeListadoRecibos.Active := True; - frxReport.LoadFromFile(DarRutaInformes + TipoInforme, True); -// frxReport.LoadFromFile(DarRutaInformes + IntToStr(IdEmpresa) + '\' + TipoInforme, True); + AInforme := DarRutaFichero(DarRutaInformes, TipoInforme, tbl_InformeListadoRecibos.FieldByName('ID_EMPRESA').AsString); + if VarIsNull(AInforme) then + raise Exception.Create (('Error Servidor: _GenerarInforme, no encuentra informe' + TipoInforme)); + + frxReport.LoadFromFile(AInforme, True); frxReport.Variables.Variables['FechaInicio'] := FechaInicio; frxReport.Variables.Variables['FechaFin'] := FechaFin; @@ -223,6 +227,9 @@ begin end; procedure TRptRecibosCliente._GenerarRecibo(const ID: Integer); +var + AInforme: Variant; + begin FConnection.BeginTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" try @@ -235,8 +242,11 @@ begin tbl_Cabecera.Active := True; tbl_Compensados.Active := True; - frxReport.LoadFromFile(DarRutaInformes + rptInforme, True); -// frxReport.LoadFromFile(DarRutaInformes + tbl_Cabecera.FieldByName('ID_EMPRESA').AsString + '\' + rptInforme, True); + AInforme := DarRutaFichero(DarRutaInformes, rptInforme, tbl_Cabecera.FieldByName('ID_EMPRESA').AsString, tbl_Cabecera.FieldByName('ID_TIENDA').AsString); + if VarIsNull(AInforme) then + raise Exception.Create (('Error Servidor: _GenerarRecibo, no encuentra informe' + rptInforme)); + + frxReport.LoadFromFile(AInforme, True); frxReport.PrepareReport(False); finally FConnection.RollbackTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" diff --git a/Source/Modulos/Recibos de proveedor/Reports/uRptRecibosProveedor_Server.pas b/Source/Modulos/Recibos de proveedor/Reports/uRptRecibosProveedor_Server.pas index 05e48f86..b5efee19 100644 --- a/Source/Modulos/Recibos de proveedor/Reports/uRptRecibosProveedor_Server.pas +++ b/Source/Modulos/Recibos de proveedor/Reports/uRptRecibosProveedor_Server.pas @@ -40,7 +40,7 @@ implementation {$R *.dfm} uses - uDataModuleServer, schRecibosProveedorClient_Intf; + uSistemaFunc, uDataModuleServer, schRecibosProveedorClient_Intf; const rptInformeListadoRecibosProveedorDesglosado = 'InformeListadoRecibosProveedorDesglosado.fr3'; @@ -117,6 +117,7 @@ function TRptRecibosProveedor._GenerarInforme(const TipoInforme: String; var Condicion: TDAWhereExpression; i: Integer; + AInforme: Variant; begin Result := Binary.Create; @@ -188,8 +189,11 @@ begin tbl_InformeListadoRecibos.Active := True; - frxReport.LoadFromFile(DarRutaInformes + TipoInforme, True); -// frxReport.LoadFromFile(DarRutaInformes + IntToStr(IdEmpresa) + '\' + TipoInforme, True); + AInforme := DarRutaFichero(DarRutaInformes, TipoInforme, tbl_InformeListadoRecibos.FieldByName('ID_EMPRESA').AsString); + if VarIsNull(AInforme) then + raise Exception.Create (('Error Servidor: _GenerarInforme, no encuentra informe' + TipoInforme)); + + frxReport.LoadFromFile(AInforme, True); frxReport.Variables.Variables['FechaInicio'] := FechaInicio; frxReport.Variables.Variables['FechaFin'] := FechaFin;