diff --git a/Build/Build.fbl6 b/Build/Build.fbl6 index 1db88da..32e3ad2 100644 Binary files a/Build/Build.fbl6 and b/Build/Build.fbl6 differ diff --git a/Database/scripts/factuges.sql b/Database/scripts/factuges.sql index 800cf27..61c0b1a 100644 --- a/Database/scripts/factuges.sql +++ b/Database/scripts/factuges.sql @@ -2667,6 +2667,7 @@ CREATE VIEW V_FACTURAS_CLIENTE( IMPORTE_TOTAL, OBSERVACIONES, ID_CLIENTE, + REFERENCIA_CLIENTE, NOMBRE_CLIENTE, NOMBRE_COMERCIAL_CLIENTE, NIF_CIF, @@ -2716,6 +2717,7 @@ SELECT FACTURAS_CLIENTE.ID, FACTURAS_CLIENTE.IMPORTE_TOTAL, FACTURAS_CLIENTE.OBSERVACIONES, FACTURAS_CLIENTE.ID_CLIENTE, + CONTACTOS.REFERENCIA, CONTACTOS.NOMBRE, CLIENTES_DATOS.NOMBRE_COMERCIAL, FACTURAS_CLIENTE.NIF_CIF, @@ -2782,6 +2784,7 @@ CREATE VIEW V_FACTURAS_PROVEEDOR( IMPORTE_TOTAL, OBSERVACIONES, ID_PROVEEDOR, + REF_PROVEEDOR, NOMBRE_PROVEEDOR, NOMBRE_COMERCIAL_PROVEEDOR, NIF_CIF, @@ -2828,6 +2831,7 @@ SELECT FACTURAS_PROVEEDOR.ID, FACTURAS_PROVEEDOR.IMPORTE_TOTAL, FACTURAS_PROVEEDOR.OBSERVACIONES, FACTURAS_PROVEEDOR.ID_PROVEEDOR, + CONTACTOS.REFERENCIA, CONTACTOS.NOMBRE, PROVEEDORES_DATOS.NOMBRE_COMERCIAL, FACTURAS_PROVEEDOR.NIF_CIF, @@ -2864,8 +2868,7 @@ SELECT FACTURAS_PROVEEDOR.ID, LEFT JOIN EMPRESAS_TIENDAS ON (EMPRESAS_TIENDAS.ID = FACTURAS_PROVEEDOR.ID_TIENDA) LEFT JOIN V_CONT_FAC_PRO_COMPRAS ON (V_CONT_FAC_PRO_COMPRAS.ID_FACTURA = FACTURAS_PROVEEDOR.ID) -; - +; /* Create view: V_COMISIONES */ CREATE VIEW V_COMISIONES( diff --git a/Source/Base/Base.dproj b/Source/Base/Base.dproj index a0c3f23..057ca2e 100644 --- a/Source/Base/Base.dproj +++ b/Source/Base/Base.dproj @@ -44,13 +44,6 @@ Package FalseTrueFalseLibreria base de FactuGESFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0 - - - - - - - VCL for the Web Design Package for CodeGear RAD Studio CodeGear WebSnap Components CodeGear SOAP Components @@ -65,55 +58,55 @@ MainSource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
fConfigurarConexion
TForm diff --git a/Source/Cliente/FactuGES.dproj b/Source/Cliente/FactuGES.dproj index fb2c6b5..a3d883c 100644 --- a/Source/Cliente/FactuGES.dproj +++ b/Source/Cliente/FactuGES.dproj @@ -51,7 +51,7 @@ Delphi.Personality VCLApplication -FalseTrueFalseC:\Archivos de programa\Borland\Delphi7\Bin\TrueFalse2500FalseFalseFalseFalseFalse30821252Rodax Software S.L.2.5.0.0FactuGESFactuGES2.5.0.0 +FalseTrueFalseC:\Archivos de programa\Borland\Delphi7\Bin\TrueFalse2510FalseFalseFalseFalseFalse30821252Rodax Software S.L.2.5.1.0FactuGESFactuGES2.5.1.0 File C:\Documents and Settings\All Users\Documentos\RAD Studio\5.0\Bpl\dxPScxScheduler2LnkD11.bpl not found FactuGES.dprFalse diff --git a/Source/Cliente/FactuGES.res b/Source/Cliente/FactuGES.res index ed2b904..75d4651 100644 Binary files a/Source/Cliente/FactuGES.res and b/Source/Cliente/FactuGES.res differ diff --git a/Source/GUIBase/GUIBase.dproj b/Source/GUIBase/GUIBase.dproj index f44e3be..e95f8e8 100644 --- a/Source/GUIBase/GUIBase.dproj +++ b/Source/GUIBase/GUIBase.dproj @@ -58,34 +58,34 @@ MainSource - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + +
fDialogBase
diff --git a/Source/Informes/1/InfAlbaranCliente.fr3 b/Source/Informes/1/InfAlbaranCliente.fr3 index 66fe6ad..e165474 100644 --- a/Source/Informes/1/InfAlbaranCliente.fr3 +++ b/Source/Informes/1/InfAlbaranCliente.fr3 @@ -1,5 +1,5 @@ - + @@ -10,14 +10,14 @@ - + - + diff --git a/Source/Informes/1/InfFacturaCliente.fr3 b/Source/Informes/1/InfFacturaCliente.fr3 index 4d9413b..2041e53 100644 --- a/Source/Informes/1/InfFacturaCliente.fr3 +++ b/Source/Informes/1/InfFacturaCliente.fr3 @@ -1,5 +1,5 @@ - + @@ -10,19 +10,20 @@ - + - - - + + + - + + @@ -58,7 +59,7 @@ - + diff --git a/Source/Informes/1/InfReciboCliente.fr3 b/Source/Informes/1/InfReciboCliente.fr3 index 2182f73..ac32424 100644 --- a/Source/Informes/1/InfReciboCliente.fr3 +++ b/Source/Informes/1/InfReciboCliente.fr3 @@ -1,5 +1,5 @@ - + @@ -59,8 +59,8 @@ - - + + diff --git a/Source/Informes/2/InfAlbaranCliente.fr3 b/Source/Informes/2/InfAlbaranCliente.fr3 index 66fe6ad..523ff53 100644 --- a/Source/Informes/2/InfAlbaranCliente.fr3 +++ b/Source/Informes/2/InfAlbaranCliente.fr3 @@ -1,5 +1,5 @@ - + @@ -10,14 +10,14 @@ - + - + diff --git a/Source/Informes/2/InfFacturaCliente.fr3 b/Source/Informes/2/InfFacturaCliente.fr3 index 2a78fa8..1e0e954 100644 --- a/Source/Informes/2/InfFacturaCliente.fr3 +++ b/Source/Informes/2/InfFacturaCliente.fr3 @@ -1,5 +1,5 @@ - + @@ -10,14 +10,14 @@ - + - - - + + + - + @@ -27,6 +27,7 @@ + diff --git a/Source/Informes/2/InfReciboCliente.fr3 b/Source/Informes/2/InfReciboCliente.fr3 index 2182f73..9a18539 100644 --- a/Source/Informes/2/InfReciboCliente.fr3 +++ b/Source/Informes/2/InfReciboCliente.fr3 @@ -1,5 +1,5 @@ - + @@ -59,8 +59,8 @@ - - + + diff --git a/Source/Informes/3/InfFacturaCliente.fr3 b/Source/Informes/3/InfFacturaCliente.fr3 index e6092d5..fe18a78 100644 --- a/Source/Informes/3/InfFacturaCliente.fr3 +++ b/Source/Informes/3/InfFacturaCliente.fr3 @@ -1,5 +1,5 @@ - + @@ -12,9 +12,9 @@ - - - + + + @@ -23,6 +23,7 @@ + @@ -44,13 +45,13 @@ - - - - - - - + + + + + + + @@ -58,7 +59,7 @@ - + diff --git a/Source/Informes/4/InfFacturaCliente.fr3 b/Source/Informes/4/InfFacturaCliente.fr3 index e6092d5..920c8d9 100644 --- a/Source/Informes/4/InfFacturaCliente.fr3 +++ b/Source/Informes/4/InfFacturaCliente.fr3 @@ -1,5 +1,5 @@ - + @@ -12,9 +12,9 @@ - - - + + + @@ -23,6 +23,7 @@ + @@ -44,13 +45,13 @@ - - - - - - - + + + + + + + @@ -58,7 +59,7 @@ - + diff --git a/Source/Informes/InfContratoCliente.fr3 b/Source/Informes/InfContratoCliente.fr3 index d889d6f..af7ab64 100644 --- a/Source/Informes/InfContratoCliente.fr3 +++ b/Source/Informes/InfContratoCliente.fr3 @@ -1,21 +1,21 @@ - + - + - + - + @@ -57,12 +57,12 @@ + + - - diff --git a/Source/Informes/InfPresupuestoCliente.fr3 b/Source/Informes/InfPresupuestoCliente.fr3 index a045039..02613c5 100644 --- a/Source/Informes/InfPresupuestoCliente.fr3 +++ b/Source/Informes/InfPresupuestoCliente.fr3 @@ -1,21 +1,21 @@ - + - + - + - + diff --git a/Source/Informes/InformeIVAClientes.fr3 b/Source/Informes/InformeIVAClientes.fr3 index 6fb6fe6..62aadcf 100644 --- a/Source/Informes/InformeIVAClientes.fr3 +++ b/Source/Informes/InformeIVAClientes.fr3 @@ -1,5 +1,5 @@ - + @@ -15,22 +15,24 @@ - + + - + - + + diff --git a/Source/Informes/InformeIVAClientesDesglosado.fr3 b/Source/Informes/InformeIVAClientesDesglosado.fr3 index 540f183..ed491aa 100644 --- a/Source/Informes/InformeIVAClientesDesglosado.fr3 +++ b/Source/Informes/InformeIVAClientesDesglosado.fr3 @@ -1,5 +1,5 @@ - + @@ -16,21 +16,23 @@ - + + - + - + + diff --git a/Source/Informes/InformeIVAProveedores.fr3 b/Source/Informes/InformeIVAProveedores.fr3 index ad220a0..ac35cf7 100644 --- a/Source/Informes/InformeIVAProveedores.fr3 +++ b/Source/Informes/InformeIVAProveedores.fr3 @@ -1,5 +1,5 @@ - + @@ -13,23 +13,25 @@ - - + + + - - - + + + + diff --git a/Source/Informes/InformeIVAProveedoresDesglosado.fr3 b/Source/Informes/InformeIVAProveedoresDesglosado.fr3 index 1a78de7..89b86f1 100644 --- a/Source/Informes/InformeIVAProveedoresDesglosado.fr3 +++ b/Source/Informes/InformeIVAProveedoresDesglosado.fr3 @@ -1,5 +1,5 @@ - + @@ -14,22 +14,24 @@ - - + + + - - - + + + + diff --git a/Source/Informes/InformeListadoFacturasCliente.fr3 b/Source/Informes/InformeListadoFacturasCliente.fr3 index 52250d0..008a9db 100644 --- a/Source/Informes/InformeListadoFacturasCliente.fr3 +++ b/Source/Informes/InformeListadoFacturasCliente.fr3 @@ -1,5 +1,5 @@ - + @@ -15,22 +15,26 @@ - + + + - + - + + + diff --git a/Source/Informes/InformeListadoFacturasRecibosCliente.fr3 b/Source/Informes/InformeListadoFacturasRecibosCliente.fr3 new file mode 100644 index 0000000..61b53e5 --- /dev/null +++ b/Source/Informes/InformeListadoFacturasRecibosCliente.fr3 @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Modulos/Contactos/Views/Contactos_view.dpk b/Source/Modulos/Contactos/Views/Contactos_view.dpk index 4eb9981..4c2a8bb 100644 --- a/Source/Modulos/Contactos/Views/Contactos_view.dpk +++ b/Source/Modulos/Contactos/Views/Contactos_view.dpk @@ -58,7 +58,8 @@ requires GUISDK_D11R, designide, xmlrtl, - vclactnband; + vclactnband, + GestorInformes_controller; contains uContactosViewRegister in 'uContactosViewRegister.pas', diff --git a/Source/Modulos/Contactos/Views/Contactos_view.dproj b/Source/Modulos/Contactos/Views/Contactos_view.dproj index f84744f..1feddfa 100644 --- a/Source/Modulos/Contactos/Views/Contactos_view.dproj +++ b/Source/Modulos/Contactos/Views/Contactos_view.dproj @@ -47,40 +47,41 @@ MainSource - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
fEditorCliente
diff --git a/Source/Modulos/Contactos/Views/uEditorClientes.dfm b/Source/Modulos/Contactos/Views/uEditorClientes.dfm index 8aa729a..7ed4333 100644 --- a/Source/Modulos/Contactos/Views/uEditorClientes.dfm +++ b/Source/Modulos/Contactos/Views/uEditorClientes.dfm @@ -57,6 +57,17 @@ inherited fEditorClientes: TfEditorClientes inherited tbxMenu: TTBXToolbar ExplicitWidth = 786 end + inherited TBXTMain2: TTBXToolbar + Left = 275 + DockPos = 275 + Visible = True + ExplicitLeft = 275 + ExplicitWidth = 83 + object TBXItem38: TTBXItem + Action = actInformes + DisplayMode = nbdmImageAndText + end + end end inherited StatusBar: TJvStatusBar Top = 500 @@ -180,6 +191,12 @@ inherited fEditorClientes: TfEditorClientes ImageIndex = 23 OnExecute = actGruposClienteExecute end + object actInformes: TAction + Category = 'Informes' + Caption = 'Informes' + ImageIndex = 24 + OnExecute = actInformesExecute + end end inherited SmallImages: TPngImageList [5] PngImages = < @@ -723,6 +740,27 @@ inherited fEditorClientes: TfEditorClientes 00000049454E44AE426082} Name = 'PngImage23' Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001A24944415478DA + 63FC61C0F09F71F72C86FFAE690C307A76D176065C2037CE9311C6FEFFFF3F03 + E3CFD7B3FEFFEF5DC7C0D0B003883D18188B8318D84452E11AFE0115FDFDFB0F + 8CE7ACDACB306FE92686F33BA733C20D00B980E10403031BDB6F865FBF581918 + 2C1818D8CFFF47D1FC076AC082B5FB1974D455188AEAFAC086E07481FB5A3B0C + A7AF8F926358B2E12043B0A70DC3CD7B2FC0869CDB318D91115B18B09E45D8FA + F71F82BD7CF361B01760006C008C3379D1F6FF39B11E0C5316EF6020047C9CCC + 1882926B300DC88C766330F5CA6138B26102D04654FF835C02A237EE39C9E061 + 67C210965E8769405A840B83856F1E5EDB93A2FD189CAD0D19A2B31A310D480A + 7542B11542FF87DAFE1FC8FFCBF0E70F443C3EAF19D380B8400706FFA50F0986 + 419F2D374372511BA601D17E76105BFFC1FCFD1FC287DAFA1BC90519A51D9806 + 847BDB30ACDC7A84A00B8C74D419722ABB310D08F6B062F08EAD60583FAF151E + 06C8FE06D1A72E5E63D0D3546528A8E9C53420C0D582C12FA18A602CC0923386 + 01BECEE6509BFE426D4762435D014AFF2080D500E4644A0C00190000D63E5BF0 + 41A130430000000049454E44AE426082} + Name = 'PngImage24' + Background = clWindow end> Bitmap = {} end @@ -2480,4 +2518,310 @@ inherited fEditorClientes: TfEditorClientes Left = 328 Top = 144 end + object JSInformesDialog: TJSDialog + Content.Strings = ( + 'Seleccione el informe que desea realizar') + DialogOptions = [doCommandLinks, doModal] + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = 'Nuevo informe' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + CustomButtons = < + item + Caption = 'Listado facturas/cobros del cliente seleccionado' + Value = 400 + end> + ButtonBar.Buttons = [cbCancel] + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 450 + Left = 408 + Top = 80 + end end diff --git a/Source/Modulos/Contactos/Views/uEditorClientes.pas b/Source/Modulos/Contactos/Views/uEditorClientes.pas index 16d90ce..e26b394 100644 --- a/Source/Modulos/Contactos/Views/uEditorClientes.pas +++ b/Source/Modulos/Contactos/Views/uEditorClientes.pas @@ -21,7 +21,11 @@ type actGruposCliente: TAction; JsListaContactosNoEliminados: TJSDialog; frViewClientes1: TfrViewClientes; + actInformes: TAction; + TBXItem38: TTBXItem; + JSInformesDialog: TJSDialog; procedure actGruposClienteExecute(Sender: TObject); + procedure actInformesExecute(Sender: TObject); protected procedure ImprimirInterno; override; procedure PrevisualizarInterno; override; @@ -36,7 +40,7 @@ implementation uses uGridUtils, uDataModuleContactos, uDMBase, uEditorGridBase, uBizContactos, uDBSelectionListUtils, uDataModuleUsuarios, uDialogUtils, uFactuGES_App, - uGruposClienteController, uBizGruposCliente, uClientesController; + uGruposClienteController, uBizGruposCliente, uClientesController, uGestorInformesController; {$R *.dfm} @@ -59,6 +63,31 @@ begin end; end; +procedure TfEditorClientes.actInformesExecute(Sender: TObject); +var + Respuesta : Integer; + AGestorInformesController : IGestorInformesController; + +begin + AGestorInformesController := TGestorInformesController.Create; + try + + Respuesta := JsInformesDialog.Execute; + + if Respuesta <> IDCANCEL then + begin + case JsInformesDialog.CustomButtonResult of + 400 : begin // Listado de facturas de cliente + AGestorInformesController.VerInformeListadoFacturasRecibosCli(Contactos.ID); + end; + end; + end; + + finally + AGestorInformesController := NIL; + end; +end; + constructor TfEditorClientes.Create(AOwner: TComponent); begin inherited; diff --git a/Source/Modulos/Facturas de cliente/Controller/FacturasCliente_controller.dpk b/Source/Modulos/Facturas de cliente/Controller/FacturasCliente_controller.dpk index 83d5781..95e5acb 100644 Binary files a/Source/Modulos/Facturas de cliente/Controller/FacturasCliente_controller.dpk and b/Source/Modulos/Facturas de cliente/Controller/FacturasCliente_controller.dpk differ diff --git a/Source/Modulos/Facturas de cliente/Controller/FacturasCliente_controller.dproj b/Source/Modulos/Facturas de cliente/Controller/FacturasCliente_controller.dproj index cc9d93d..f309cba 100644 --- a/Source/Modulos/Facturas de cliente/Controller/FacturasCliente_controller.dproj +++ b/Source/Modulos/Facturas de cliente/Controller/FacturasCliente_controller.dproj @@ -1,4 +1,5 @@ - + + {7ed85635-c723-4c0b-bf1d-f719e0ea33ad} FacturasCliente_controller.dpk @@ -48,24 +49,25 @@ MainSource - - - - - - - - - + + + + + + + + + + diff --git a/Source/Modulos/Facturas de cliente/Controller/uFacturasClienteController.pas b/Source/Modulos/Facturas de cliente/Controller/uFacturasClienteController.pas index 6c6fa14..677d11e 100644 --- a/Source/Modulos/Facturas de cliente/Controller/uFacturasClienteController.pas +++ b/Source/Modulos/Facturas de cliente/Controller/uFacturasClienteController.pas @@ -842,7 +842,7 @@ begin if not Assigned(AFactura) then raise Exception.Create ('Factura no asignado: EsEliminable'); - +{ if (AFactura.SITUACION <> CTE_PENDIENTE) then begin Result := False; @@ -858,6 +858,7 @@ begin Result := False; AComentario := 'La factura tiene un asiento asociado en la parte contable y está punteado, por lo que no puede ser eliminada'; end; + } end; function TFacturasClienteController.EsModificable(AFactura: IBizFacturaCliente; var AComentario: Variant): Boolean; @@ -866,7 +867,7 @@ begin if not Assigned(AFactura) then raise Exception.Create ('Factura no asignado: EsModificable'); - +{ if (AFactura.SITUACION <> CTE_PENDIENTE) then begin Result := False; @@ -882,6 +883,7 @@ begin Result := False; AComentario := 'La factura tiene un asiento asociado en la parte contable y está punteado, por lo que no puede ser modificada'; end; +} end; procedure TFacturasClienteController.RecalcularImportes( @@ -1192,9 +1194,9 @@ begin AFormasPagoController := TFormasPagoController.Create; AFormaPago := AFormasPagoController.Buscar(AFactura.ID_FORMA_PAGO); AFormaPago.DataTable.Active := True; - if AFormaPago.DataTable.RecordCount <> 1 then - Exit; //No hay forma de pago en la factura y por lo tanto no se generan recibos - //raise Exception.Create('No existe la forma de pago de la factura'); + if AFormaPago.Plazos.RecordCount = 0 then + Exit; //No hay plazos en la forma de pago en la factura y por lo tanto no se generan recibos + ARecibosClienteController := TRecibosClienteController.Create; //Eliminamos todos los recibos que tuviera la factura porque sabemos que todos diff --git a/Source/Modulos/Facturas de cliente/Model/schFacturasClienteClient_Intf.pas b/Source/Modulos/Facturas de cliente/Model/schFacturasClienteClient_Intf.pas index 5e150b8..c3ce569 100644 --- a/Source/Modulos/Facturas de cliente/Model/schFacturasClienteClient_Intf.pas +++ b/Source/Modulos/Facturas de cliente/Model/schFacturasClienteClient_Intf.pas @@ -9,9 +9,9 @@ const { Data table rules ids Feel free to change them to something more human readable but make sure they are unique in the context of your application } - RID_ListaAnosFacturas = '{BB9857AE-8858-44B1-A10B-EEBF38D61518}'; - RID_FacturasCliente = '{1746D02E-7BE8-4F08-9C96-54B091D8A1CA}'; - RID_FacturasCliente_Detalles = '{9296DD27-5DC8-48DE-9830-53497C1AAF6B}'; + RID_ListaAnosFacturas = '{9504B0C5-CF6C-47DF-9BF1-D6EE693A246B}'; + RID_FacturasCliente = '{E530BBA1-8BD8-4003-B11A-79C99E13E981}'; + RID_FacturasCliente_Detalles = '{C963E80A-9A8F-4A71-82C8-4901A98FA7CC}'; { Data table names } nme_ListaAnosFacturas = 'ListaAnosFacturas'; @@ -159,7 +159,7 @@ const type { IListaAnosFacturas } IListaAnosFacturas = interface(IDAStronglyTypedDataTable) - ['{4732CF5C-9ADB-4DF9-850E-DD63D351047D}'] + ['{C9EB259F-ABF4-4646-BAE3-BDEED080DB84}'] { Property getters and setters } function GetANOValue: String; procedure SetANOValue(const aValue: String); @@ -194,7 +194,7 @@ type { IFacturasCliente } IFacturasCliente = interface(IDAStronglyTypedDataTable) - ['{4E6CAD4C-CB1B-475E-B8E2-A8689D3CD0FA}'] + ['{8A5FD641-EA95-4CD6-9EAC-618D177DF7C0}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -793,7 +793,7 @@ type { IFacturasCliente_Detalles } IFacturasCliente_Detalles = interface(IDAStronglyTypedDataTable) - ['{C870BB3F-2BC1-4D03-866D-AE1901D32B6F}'] + ['{51E6D6A2-EFC9-404B-B0EA-454ED0E4FBA4}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); diff --git a/Source/Modulos/Facturas de cliente/Model/schFacturasClienteServer_Intf.pas b/Source/Modulos/Facturas de cliente/Model/schFacturasClienteServer_Intf.pas index ba7c51d..6047301 100644 --- a/Source/Modulos/Facturas de cliente/Model/schFacturasClienteServer_Intf.pas +++ b/Source/Modulos/Facturas de cliente/Model/schFacturasClienteServer_Intf.pas @@ -9,14 +9,14 @@ const { Delta rules ids Feel free to change them to something more human readable but make sure they are unique in the context of your application } - RID_ListaAnosFacturasDelta = '{FEC79BF2-9523-44C6-8D31-052F8EB193E4}'; - RID_FacturasClienteDelta = '{02545CC3-5DF3-4C38-808E-85DE15E6A8DB}'; - RID_FacturasCliente_DetallesDelta = '{D1C6908F-F600-4774-BAB3-185998B8C0F7}'; + RID_ListaAnosFacturasDelta = '{21A2ECEC-6B0B-464C-8545-1F8D439F3DCA}'; + RID_FacturasClienteDelta = '{86F44C5A-7112-42F1-B15E-518660E2EAC2}'; + RID_FacturasCliente_DetallesDelta = '{4FF3AB78-99DC-4F0F-B163-1155D2698082}'; type { IListaAnosFacturasDelta } IListaAnosFacturasDelta = interface(IListaAnosFacturas) - ['{FEC79BF2-9523-44C6-8D31-052F8EB193E4}'] + ['{21A2ECEC-6B0B-464C-8545-1F8D439F3DCA}'] { Property getters and setters } function GetOldANOValue : String; @@ -50,7 +50,7 @@ type { IFacturasClienteDelta } IFacturasClienteDelta = interface(IFacturasCliente) - ['{02545CC3-5DF3-4C38-808E-85DE15E6A8DB}'] + ['{86F44C5A-7112-42F1-B15E-518660E2EAC2}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_EMPRESAValue : Integer; @@ -649,7 +649,7 @@ type { IFacturasCliente_DetallesDelta } IFacturasCliente_DetallesDelta = interface(IFacturasCliente_Detalles) - ['{D1C6908F-F600-4774-BAB3-185998B8C0F7}'] + ['{4FF3AB78-99DC-4F0F-B163-1155D2698082}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_FACTURAValue : Integer; diff --git a/Source/Modulos/Facturas de cliente/Model/uBizFacturasCliente.pas b/Source/Modulos/Facturas de cliente/Model/uBizFacturasCliente.pas index 0d66e56..374be23 100644 --- a/Source/Modulos/Facturas de cliente/Model/uBizFacturasCliente.pas +++ b/Source/Modulos/Facturas de cliente/Model/uBizFacturasCliente.pas @@ -255,6 +255,7 @@ begin USUARIO := AppFactuGES.UsuarioActivo.UserName; FECHA_FACTURA := DateOf(Now); TIPO := CTE_TIPO_FACTURA; + SITUACION := 'PENDIENTE'; ID_CLIENTE := ID_NULO; SIN_COMISION := 0; diff --git a/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.dfm b/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.dfm index 4d1fa9e..245fc59 100644 --- a/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.dfm +++ b/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.dfm @@ -103,6 +103,11 @@ object RptFacturasCliente: TRptFacturasCliente DataType = datInteger DictionaryEntry = 'FacturasCliente_ID_CLIENTE' end + item + Name = 'REFERENCIA_CLIENTE' + DataType = datString + Size = 255 + end item Name = 'NIF_CIF' DataType = datString @@ -478,9 +483,9 @@ object RptFacturasCliente: TRptFacturasCliente #39' || extract (year from fecha_factura)'#10'when extract (month from ' + 'fecha_factura) = 12 then '#39'DICIEMBRE - '#39' || extract (year from fe' + 'cha_factura)'#10'end as TITULO,'#10'REFERENCIA, ID_CLIENTE, NOMBRE, SIT' + - 'UACION, NIF_CIF, FECHA_FACTURA, BASE_IMPONIBLE, IMPORTE_IVA, IMP' + - 'ORTE_TOTAL'#10#10'from V_facturas_cliente'#10'where {where}'#10'order by ANO, ' + - 'MES, FECHA_FACTURA, NOMBRE'#10#10 + 'UACION, NIF_CIF, REFERENCIA_CLIENTE, FECHA_FACTURA, BASE_IMPONIB' + + 'LE, IMPORTE_IVA, IMPORTE_TOTAL'#10#10'from V_facturas_cliente'#10'where {w' + + 'here}'#10'order by ANO, MES, FECHA_FACTURA, NOMBRE'#10#10 StatementType = stSQL ColumnMappings = < item @@ -534,6 +539,10 @@ object RptFacturasCliente: TRptFacturasCliente item DatasetField = 'ANO' TableField = 'ANO' + end + item + DatasetField = 'REFERENCIA_CLIENTE' + TableField = 'REFERENCIA_CLIENTE' end> end> Name = 'ListadoFacturas' @@ -579,6 +588,11 @@ object RptFacturasCliente: TRptFacturasCliente DataType = datString Size = 15 end + item + Name = 'REFERENCIA_CLIENTE' + DataType = datString + Size = 255 + end item Name = 'FECHA_FACTURA' DataType = datDateTime @@ -618,23 +632,23 @@ object RptFacturasCliente: TRptFacturasCliente 'TE.RE, V_FACTURAS_CLIENTE.IMPORTE_RE,'#10' V_FACTURAS_CLIENTE.IMP' + 'ORTE_TOTAL,'#10' V_FACTURAS_CLIENTE.OBSERVACIONES, FORMAS_PAGO.DE' + 'SCRIPCION AS FORMA_PAGO, V_FACTURAS_CLIENTE.ID_CLIENTE,'#10' V_FA' + - 'CTURAS_CLIENTE.NIF_CIF, V_FACTURAS_CLIENTE.NOMBRE, V_FACTURAS_CL' + - 'IENTE.CALLE,'#10' V_FACTURAS_CLIENTE.PROVINCIA, V_FACTURAS_CLIENT' + - 'E.CODIGO_POSTAL, V_FACTURAS_CLIENTE.POBLACION,'#10' CONTACTOS_DAT' + - 'OS_BANCO.TITULAR,'#10' CONTACTOS_DATOS_BANCO.ENTIDAD,'#10' CONTACT' + - 'OS_DATOS_BANCO.SUCURSAL,'#10' CONTACTOS_DATOS_BANCO.DC,'#10' CONTA' + - 'CTOS_DATOS_BANCO.CUENTA,'#10' ID_EMPRESA, EMPRESAS.NIF_CIF as NIF' + - '_CIF_EMPRESA, EMPRESAS.RAZON_SOCIAL,'#10' EMPRESAS.CALLE as CALLE' + - '_EMPRESA, EMPRESAS.POBLACION as POBLACION_EMPRESA,'#10' EMPRESAS.' + - 'PROVINCIA as PROVINCIA_EMPRESA, EMPRESAS.CODIGO_POSTAL as CODIGO' + - '_POSTAL_EMPRESA,'#10' EMPRESAS.TELEFONO_1, EMPRESAS.FAX, EMPRESAS' + - '.MOVIL_1, EMPRESAS.EMAIL_1,'#10' EMPRESAS.PAGINA_WEB, EMPRESAS.RE' + - 'GISTRO_MERCANTIL, EMPRESAS.LOGOTIPO'#10'FROM V_FACTURAS_CLIENTE'#10'LEFT' + - ' JOIN EMPRESAS ON EMPRESAS.ID = ID_EMPRESA'#10'LEFT JOIN FORMAS_PAGO' + - ' ON (FORMAS_PAGO.ID = V_FACTURAS_CLIENTE.ID_FORMA_PAGO)'#10'LEFT JOI' + - 'N CONTACTOS_DATOS_BANCO ON (CONTACTOS_DATOS_BANCO.ID_CONTACTO = ' + - 'V_FACTURAS_CLIENTE.ID_CLIENTE)'#10'WHERE V_FACTURAS_CLIENTE.ID = :ID' + - #10 + 'CTURAS_CLIENTE.REFERENCIA_CLIENTE, V_FACTURAS_CLIENTE.NIF_CIF, V' + + '_FACTURAS_CLIENTE.NOMBRE, V_FACTURAS_CLIENTE.CALLE,'#10' V_FACTUR' + + 'AS_CLIENTE.PROVINCIA, V_FACTURAS_CLIENTE.CODIGO_POSTAL, V_FACTUR' + + 'AS_CLIENTE.POBLACION,'#10' CONTACTOS_DATOS_BANCO.TITULAR,'#10' CON' + + 'TACTOS_DATOS_BANCO.ENTIDAD,'#10' CONTACTOS_DATOS_BANCO.SUCURSAL,'#10 + + ' CONTACTOS_DATOS_BANCO.DC,'#10' CONTACTOS_DATOS_BANCO.CUENTA,'#10 + + ' ID_EMPRESA, EMPRESAS.NIF_CIF as NIF_CIF_EMPRESA, EMPRESAS.RA' + + 'ZON_SOCIAL,'#10' EMPRESAS.CALLE as CALLE_EMPRESA, EMPRESAS.POBLAC' + + 'ION as POBLACION_EMPRESA,'#10' EMPRESAS.PROVINCIA as PROVINCIA_EM' + + 'PRESA, EMPRESAS.CODIGO_POSTAL as CODIGO_POSTAL_EMPRESA,'#10' EMPR' + + 'ESAS.TELEFONO_1, EMPRESAS.FAX, EMPRESAS.MOVIL_1, EMPRESAS.EMAIL_' + + '1,'#10' EMPRESAS.PAGINA_WEB, EMPRESAS.REGISTRO_MERCANTIL, EMPRESA' + + 'S.LOGOTIPO'#10'FROM V_FACTURAS_CLIENTE'#10'LEFT JOIN EMPRESAS ON EMPRESA' + + 'S.ID = ID_EMPRESA'#10'LEFT JOIN FORMAS_PAGO ON (FORMAS_PAGO.ID = V_F' + + 'ACTURAS_CLIENTE.ID_FORMA_PAGO)'#10'LEFT JOIN CONTACTOS_DATOS_BANCO O' + + 'N (CONTACTOS_DATOS_BANCO.ID_CONTACTO = V_FACTURAS_CLIENTE.ID_CLI' + + 'ENTE)'#10'WHERE V_FACTURAS_CLIENTE.ID = :ID'#10 StatementType = stSQL ColumnMappings = < item @@ -824,6 +838,11 @@ object RptFacturasCliente: TRptFacturasCliente item DatasetField = 'ID_TIENDA' TableField = 'ID_TIENDA' + end + item + DatasetField = 'REFERENCIA_CLIENTE' + TableField = '' + SQLOrigin = 'REFERENCIA_CLIENTE' end> end> Name = 'InformeFacturasCliente' @@ -912,6 +931,11 @@ object RptFacturasCliente: TRptFacturasCliente DataType = datInteger DictionaryEntry = 'FacturasCliente_ID_CLIENTE' end + item + Name = 'REFERENCIA_CLIENTE' + DataType = datString + Size = 255 + end item Name = 'NIF_CIF' DataType = datString @@ -1203,6 +1227,100 @@ object RptFacturasCliente: TRptFacturasCliente Name = 'IMPORTE_TOTAL' DataType = datFloat end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + SQL = + 'select ID_EMPRESA,'#10'REFERENCIA, ID_CLIENTE, NOMBRE_CLIENTE, SITU' + + 'ACION, NIF_CIF, FECHA_EMISION, FECHA_VENCIMIENTO, IMPORTE_TOTAL'#10 + + #10'from V_RECIBOS_cliente'#10'where {where}'#10'order by FECHA_EMISION, NO' + + 'MBRE_CLIENTE'#10#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'ID_CLIENTE' + TableField = 'ID_CLIENTE' + end + item + DatasetField = 'SITUACION' + TableField = 'SITUACION' + end + item + DatasetField = 'NIF_CIF' + TableField = 'NIF_CIF' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'NOMBRE_CLIENTE' + TableField = 'NOMBRE_CLIENTE' + end + item + DatasetField = 'FECHA_EMISION' + TableField = 'FECHA_EMISION' + end + item + DatasetField = 'FECHA_VENCIMIENTO' + TableField = 'FECHA_VENCIMIENTO' + end> + end> + Name = 'ListadoRecibos' + Fields = < + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + end + item + Name = 'NOMBRE_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'SITUACION' + DataType = datString + Size = 9 + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + end + item + Name = 'FECHA_EMISION' + DataType = datDateTime + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end> end> JoinDataTables = <> UnionDataTables = <> @@ -1413,11 +1531,16 @@ object RptFacturasCliente: TRptFacturasCliente EngineOptions.DoublePass = True IniFile = '\Software\Fast Reports' PreviewOptions.Buttons = [pbPrint, pbLoad, pbSave, pbExport, pbZoom, pbFind, pbOutline, pbPageSetup, pbTools, pbEdit, pbNavigator, pbExportQuick] + PreviewOptions.OutlineWidth = 180 PreviewOptions.Zoom = 1.000000000000000000 - PrintOptions.Printer = 'Por defecto' + PrintOptions.Printer = 'Default' PrintOptions.PrintOnSheet = 0 - ReportOptions.CreateDate = 37800.807714351900000000 - ReportOptions.LastChange = 40871.744534236110000000 + ReportOptions.CreateDate = 37871.995398692100000000 + ReportOptions.LastChange = 40946.583372962960000000 + ReportOptions.VersionBuild = '1' + ReportOptions.VersionMajor = '12' + ReportOptions.VersionMinor = '13' + ReportOptions.VersionRelease = '1' ScriptLanguage = 'PascalScript' ShowProgress = False StoreInDFM = False @@ -1494,6 +1617,10 @@ object RptFacturasCliente: TRptFacturasCliente Name = 'ID_EMPRESA' DataType = datInteger end + item + Name = 'ANO' + DataType = datSmallInt + end item Name = 'MES' DataType = datSmallInt @@ -1527,6 +1654,11 @@ object RptFacturasCliente: TRptFacturasCliente DataType = datString Size = 15 end + item + Name = 'REFERENCIA_CLIENTE' + DataType = datString + Size = 255 + end item Name = 'FECHA_FACTURA' DataType = datDateTime @@ -1594,4 +1726,72 @@ object RptFacturasCliente: TRptFacturasCliente Left = 584 Top = 192 end + object frxDBInformeListadoRecibos: TfrxDBDataset + UserName = 'frxDBInformeListadoRecibos' + CloseDataSource = True + DataSource = DADSInformeListadoRecibos + BCDToCurrency = False + Left = 736 + Top = 16 + end + object DADSInformeListadoRecibos: TDADataSource + DataSet = tbl_InformeListadoRecibos.Dataset + DataTable = tbl_InformeListadoRecibos + Left = 736 + Top = 72 + end + object tbl_InformeListadoRecibos: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + end + item + Name = 'NOMBRE_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'SITUACION' + DataType = datString + Size = 9 + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + end + item + Name = 'FECHA_EMISION' + DataType = datDateTime + end + item + Name = 'FECHA_VENCIMIENTO' + DataType = datDateTime + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + end> + Params = <> + LogChanges = False + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteFetchEnabled = False + LocalSchema = schReport + LocalDataStreamer = Bin2DataStreamer + LogicalName = 'ListadoRecibos' + IndexDefs = <> + Left = 736 + Top = 128 + end end diff --git a/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.pas b/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.pas index f420e19..2a1f43b 100644 --- a/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.pas +++ b/Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.pas @@ -36,6 +36,9 @@ type tbl_InformeListadoFacturasResumen: TDAMemDataTable; DADSInformeListadoFacturasResumen: TDADataSource; frxDBInformeListadoFacturasResumen: TfrxDBDataset; + frxDBInformeListadoRecibos: TfrxDBDataset; + DADSInformeListadoRecibos: TDADataSource; + tbl_InformeListadoRecibos: TDAMemDataTable; schReport: TDASchema; procedure DataModuleCreate(Sender: TObject); procedure DataModuleDestroy(Sender: TObject); @@ -66,6 +69,7 @@ type function GenerarInformeIVA(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; function GenerarInformeListadoFacturas(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; function GenerarInformeListadoFacturasPendientes(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; + function GenerarInformeListadoFacturasRecibos(const IdEmpresa: Integer; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean): Binary; end; implementation @@ -85,6 +89,8 @@ const rptInformeListadoFacturasClienteDesglosado = 'InformeListadoFacturasClienteDesglosado.fr3'; rptInformeListadoFactuasClientePendiente = 'InformeListadoFacturasClientePendientes.fr3'; rptInformeListadoFactuasClientePendienteDesglosado = 'InformeListadoFacturasClientePendientesDesglosado.fr3'; + rptInformeListadoFacturasRecibosCliente = 'InformeListadoFacturasRecibosCliente.fr3'; + rptInformeListadoFacturasRecibosClienteDesglosado = 'InformeListadoFacturasRecibosClienteDesglosado.fr3'; ds_InformeListadoFacturasResumen = 'ListadoFacturasResumen'; @@ -323,6 +329,58 @@ begin end; end; +function TRptFacturasCliente.GenerarInformeListadoFacturasRecibos( + const IdEmpresa: Integer; const ListaIDClientes: TIntegerArray; + const Desglosado: Boolean): Binary; +var + ATipoInforme: String; + AStream: TMemoryStream; + dsMaster: IDADataset; + +begin + FConnection.BeginTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" + + AStream := TMemoryStream.Create; + try + //Inicializamos parametros + FIdEmpresa := IdEmpresa; + FFechaInicio := Null; + FFechaFin := Null; + + if Assigned(FListaIDClientes) then + FListaIDClientes.Free; + FListaIDClientes := ListaIDClientes; + + //Se prepara la tabla del listado general del informe + if tbl_InformeListadoFacturas.Active then + tbl_InformeListadoFacturas.Active := False; + PrepararTablaInforme(tbl_InformeListadoFacturas); + + //Se prepara la tabla del listado general del informe + if tbl_InformeListadoRecibos.Active then + tbl_InformeListadoRecibos.Active := False; + PrepararTablaInforme(tbl_InformeListadoRecibos); + + //DESGLOSADO POR CLIENTE EN ESTE INFORME NO SE DESGLOSARÁ POR CLIENTE + FDesglosado := Desglosado; + if FDesglosado then + ATipoInforme := rptInformeListadoFacturasRecibosClienteDesglosado + else + ATipoInforme := rptInformeListadoFacturasRecibosCliente; + + //Finalmente se abren las tablas del informe + tbl_InformeListadoFacturas.Active := True; + tbl_InformeListadoRecibos.Active := True; + + Result := _GenerarInforme(ATipoInforme); + + finally + AStream.Free; + dsMaster := Nil; + FConnection.RollbackTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" + end; +end; + procedure TRptFacturasCliente.IniciarParametrosInforme; var ATextos : TStringList; @@ -343,9 +401,9 @@ begin if (not VarIsNull(FFechaInicio)) and (not VarIsNull(FFechaFin)) then - ACadena := Format('Fechas de factura desde el %s hasta el %s', [VarToStr(FFechaInicio), VarToStr(FFechaFin)]) - else - ACadena := 'Sin rango de fechas'; + ACadena := Format('Fechas de factura desde el %s hasta el %s', [VarToStr(FFechaInicio), VarToStr(FFechaFin)]); +// else +// ACadena := 'Sin rango de fechas'; ATextos.Add(ACadena); ACadena := ''; @@ -403,7 +461,7 @@ begin end; // Filtrar el informe por fechas - if not VarIsNull(FFechaInicio) + if not VarIsNull(FFechaInicio) and not VarIsNull(FFechaFin) then begin with ATabla.DynamicWhere do diff --git a/Source/Modulos/Facturas de cliente/Servidor/srvFacturasCliente_Impl.dfm b/Source/Modulos/Facturas de cliente/Servidor/srvFacturasCliente_Impl.dfm index dd4a274..72c7254 100644 --- a/Source/Modulos/Facturas de cliente/Servidor/srvFacturasCliente_Impl.dfm +++ b/Source/Modulos/Facturas de cliente/Servidor/srvFacturasCliente_Impl.dfm @@ -1075,6 +1075,12 @@ object srvFacturasCliente: TsrvFacturasCliente Name = 'SIN_COMISION' DataType = datSmallInt Value = '' + end + item + Name = 'SITUACION' + DataType = datString + Size = 255 + Value = '' end> Statements = < item @@ -1091,16 +1097,17 @@ object srvFacturasCliente: TsrvFacturasCliente 'A_MODIFICACION,'#10' USUARIO,'#10' ID_FORMA_PAGO,'#10' RECARGO_EQUI' + 'VALENCIA,'#10' ID_TIPO_IVA,'#10' IMPORTE_NETO,'#10' IMPORTE_PORTE,'#10 + ' IGNORAR_CONTABILIDAD,'#10' ID_TIENDA,'#10' ID_CONTRATO,'#10' SI' + - 'N_COMISION)'#10' VALUES ('#10' :ID,'#10' :ID_EMPRESA,'#10' :REFERENCIA' + - ','#10' :FECHA_FACTURA,'#10' :FECHA_VENCIMIENTO,'#10' :BASE_IMPONIBL' + - 'E,'#10' :DESCUENTO,'#10' :IMPORTE_DESCUENTO,'#10' :IVA,'#10' :IMPORT' + - 'E_IVA,'#10' :RE,'#10' :IMPORTE_RE,'#10' :IMPORTE_TOTAL,'#10' :OBSERV' + - 'ACIONES,'#10' :ID_CLIENTE,'#10' :NIF_CIF,'#10' :NOMBRE,'#10' :CALLE,' + - #10' :POBLACION,'#10' :PROVINCIA,'#10' :CODIGO_POSTAL,'#10' :FECHA_' + - 'ALTA,'#10' :FECHA_MODIFICACION,'#10' :USUARIO,'#10' :ID_FORMA_PAGO,' + - #10' :RECARGO_EQUIVALENCIA,'#10' :ID_TIPO_IVA,'#10' :IMPORTE_NETO,' + - #10' :IMPORTE_PORTE,'#10' :IGNORAR_CONTABILIDAD,'#10' :ID_TIENDA,'#10 + - ' :ID_CONTRATO,'#10' :SIN_COMISION);'#10 + 'N_COMISION,'#10' SITUACION)'#10' VALUES ('#10' :ID,'#10' :ID_EMPRESA,'#10 + + ' :REFERENCIA,'#10' :FECHA_FACTURA,'#10' :FECHA_VENCIMIENTO,'#10' ' + + ' :BASE_IMPONIBLE,'#10' :DESCUENTO,'#10' :IMPORTE_DESCUENTO,'#10' :I' + + 'VA,'#10' :IMPORTE_IVA,'#10' :RE,'#10' :IMPORTE_RE,'#10' :IMPORTE_TOT' + + 'AL,'#10' :OBSERVACIONES,'#10' :ID_CLIENTE,'#10' :NIF_CIF,'#10' :NOMB' + + 'RE,'#10' :CALLE,'#10' :POBLACION,'#10' :PROVINCIA,'#10' :CODIGO_POST' + + 'AL,'#10' :FECHA_ALTA,'#10' :FECHA_MODIFICACION,'#10' :USUARIO,'#10' ' + + ':ID_FORMA_PAGO,'#10' :RECARGO_EQUIVALENCIA,'#10' :ID_TIPO_IVA,'#10' ' + + ' :IMPORTE_NETO,'#10' :IMPORTE_PORTE,'#10' :IGNORAR_CONTABILIDAD,'#10' ' + + ' :ID_TIENDA,'#10' :ID_CONTRATO,'#10' :SIN_COMISION,'#10' :SITUACI' + + 'ON);'#10 StatementType = stSQL ColumnMappings = <> end> @@ -1276,6 +1283,12 @@ object srvFacturasCliente: TsrvFacturasCliente DataType = datSmallInt Value = '' end + item + Name = 'SITUACION' + DataType = datString + Size = 255 + Value = '' + end item Name = 'OLD_ID' Value = '' @@ -1301,8 +1314,8 @@ object srvFacturasCliente: TsrvFacturasCliente 'A = :ID_TIPO_IVA,'#10' IMPORTE_NETO = :IMPORTE_NETO,'#10' IMPORTE_' + 'PORTE = :IMPORTE_PORTE,'#10' IGNORAR_CONTABILIDAD = :IGNORAR_CONT' + 'ABILIDAD,'#10' ID_TIENDA = :ID_TIENDA,'#10' ID_CONTRATO = :ID_CONT' + - 'RATO,'#10' SIN_COMISION = :SIN_COMISION'#10' WHERE'#10' (ID = :OLD_ID);' + - #10 + 'RATO,'#10' SIN_COMISION = :SIN_COMISION,'#10' SITUACION = :SITUACI' + + 'ON'#10' WHERE'#10' (ID = :OLD_ID);'#10 StatementType = stSQL ColumnMappings = <> end> diff --git a/Source/Modulos/Facturas de cliente/Views/FacturasCliente_view.dpk b/Source/Modulos/Facturas de cliente/Views/FacturasCliente_view.dpk index dbe1ac2..3d087ce 100644 Binary files a/Source/Modulos/Facturas de cliente/Views/FacturasCliente_view.dpk and b/Source/Modulos/Facturas de cliente/Views/FacturasCliente_view.dpk differ diff --git a/Source/Modulos/Facturas de cliente/Views/FacturasCliente_view.dproj b/Source/Modulos/Facturas de cliente/Views/FacturasCliente_view.dproj index 79c932f..d02f015 100644 --- a/Source/Modulos/Facturas de cliente/Views/FacturasCliente_view.dproj +++ b/Source/Modulos/Facturas de cliente/Views/FacturasCliente_view.dproj @@ -49,35 +49,48 @@ MainSource - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
fEditorElegirArticulosFacturaCliente
TForm diff --git a/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.dfm b/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.dfm index c038758..31ae7b6 100644 --- a/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.dfm +++ b/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.dfm @@ -3792,6 +3792,11 @@ inherited fEditorFacturasCliente: TfEditorFacturasCliente 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} Instruction.Icon = tdiCustom CustomButtons = < + item + Caption = 'Listado de facturas' + Value = 300 + Default = True + end item Caption = 'Listado de facturas pendientes.' Value = 100 @@ -3802,8 +3807,8 @@ inherited fEditorFacturasCliente: TfEditorFacturasCliente Value = 200 end item - Caption = 'Listado de facturas' - Value = 300 + Caption = 'Listado facturas/cobros del cliente seleccionado' + Value = 400 end> ButtonBar.Buttons = [cbCancel] MainIcon = tdiCustom diff --git a/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.pas b/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.pas index f7e9b23..9afbf7c 100644 --- a/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.pas +++ b/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.pas @@ -34,7 +34,7 @@ type JsListaFacturasNoEliminadas: TJSDialog; actInformes: TAction; JSInformesDialog: TJSDialog; - TBXItem40: TTBXItem; + TBXItem40: TTBXItem; procedure FormShow(Sender: TObject); procedure actEliminarUpdate(Sender: TObject); procedure actNuevaFacturaExecute(Sender: TObject); @@ -112,13 +112,15 @@ begin 300 : begin // Listado de facturas de cliente AGestorInformesController.VerInformeListadoFacturasCli; end; + 400 : begin // Listado de facturas de cliente + AGestorInformesController.VerInformeListadoFacturasRecibosCli(Facturas.ID_CLIENTE); + end; end; end; finally AGestorInformesController := NIL; end; - end; procedure TfEditorFacturasCliente.actNuevaFacturaExecute(Sender: TObject); diff --git a/Source/Modulos/Facturas de cliente/Views/uFacturasClienteViewRegister.pas b/Source/Modulos/Facturas de cliente/Views/uFacturasClienteViewRegister.pas index b936871..855bd17 100644 --- a/Source/Modulos/Facturas de cliente/Views/uFacturasClienteViewRegister.pas +++ b/Source/Modulos/Facturas de cliente/Views/uFacturasClienteViewRegister.pas @@ -26,7 +26,7 @@ begin EditorRegistry.UnRegisterClass(TfEditorFacturasCliente); EditorRegistry.UnRegisterClass(TfEditorFacturaCliente); EditorRegistry.UnRegisterClass(TfEditorElegirArticulosFacturaCliente); - EditorRegistry.UnRegisterClass(TfEditorElegirFacturasCliente); + EditorRegistry.UnRegisterClass(TfEditorElegirFacturasCliente); EditorRegistry.UnRegisterClass(TfEditorFacturasClientePreview); end; diff --git a/Source/Modulos/Facturas de cliente/Views/uViewFacturaCliente.dfm b/Source/Modulos/Facturas de cliente/Views/uViewFacturaCliente.dfm index 0578e87..38d9442 100644 --- a/Source/Modulos/Facturas de cliente/Views/uViewFacturaCliente.dfm +++ b/Source/Modulos/Facturas de cliente/Views/uViewFacturaCliente.dfm @@ -64,7 +64,7 @@ inherited frViewFacturaCliente: TfrViewFacturaCliente end object cbFormaPago: TcxDBLookupComboBox Left = 135 - Top = 108 + Top = 135 DataBinding.DataField = 'ID_FORMA_PAGO' DataBinding.DataSource = DADataSource Properties.DropDownListStyle = lsFixedList @@ -92,21 +92,21 @@ inherited frViewFacturaCliente: TfrViewFacturaCliente StyleFocused.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.Kind = lfStandard StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 2 + TabOrder = 3 Width = 78 end object bFormasPago: TButton Left = 241 - Top = 108 + Top = 135 Width = 132 Height = 23 Caption = 'Ver las formas de pago...' - TabOrder = 3 + TabOrder = 4 OnClick = bFormasPagoClick end inline frViewTienda1: TfrViewTienda Left = 22 - Top = 188 + Top = 215 Width = 351 Height = 48 Enabled = False @@ -116,10 +116,10 @@ inherited frViewFacturaCliente: TfrViewFacturaCliente Font.Name = 'Tahoma' Font.Style = [] ParentFont = False - TabOrder = 5 + TabOrder = 6 ReadOnly = False ExplicitLeft = 22 - ExplicitTop = 188 + ExplicitTop = 215 ExplicitWidth = 351 ExplicitHeight = 48 inherited dxLayoutControl1: TdxLayoutControl @@ -144,7 +144,7 @@ inherited frViewFacturaCliente: TfrViewFacturaCliente Font.Name = 'Tahoma' Font.Style = [] ParentFont = False - TabOrder = 7 + TabOrder = 8 ReadOnly = False ExplicitLeft = 401 ExplicitTop = 30 @@ -153,7 +153,7 @@ inherited frViewFacturaCliente: TfrViewFacturaCliente inherited dxLayoutControl1: TdxLayoutControl Width = 398 Height = 265 - ExplicitWidth = 101 + ExplicitWidth = 398 ExplicitHeight = 265 inherited edtlNombre: TcxDBTextEdit ExplicitWidth = 276 @@ -191,7 +191,7 @@ inherited frViewFacturaCliente: TfrViewFacturaCliente end object edtFechaVencimiento: TcxDBDateEdit Left = 135 - Top = 137 + Top = 164 Anchors = [akLeft, akTop, akRight] DataBinding.DataField = 'FECHA_VENCIMIENTO' DataBinding.DataSource = DADataSource @@ -208,12 +208,12 @@ inherited frViewFacturaCliente: TfrViewFacturaCliente StyleDisabled.LookAndFeel.NativeStyle = True StyleFocused.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 4 + TabOrder = 5 Width = 310 end inline frViewObservaciones1: TfrViewObservaciones Left = 22 - Top = 325 + Top = 344 Width = 521 Height = 228 Font.Charset = DEFAULT_CHARSET @@ -222,22 +222,21 @@ inherited frViewFacturaCliente: TfrViewFacturaCliente Font.Name = 'Tahoma' Font.Style = [] ParentFont = False - TabOrder = 8 + TabOrder = 9 ReadOnly = False ExplicitLeft = 22 - ExplicitTop = 325 + ExplicitTop = 344 ExplicitHeight = 228 inherited memObservaciones: TcxDBMemo DataBinding.DataField = 'OBSERVACIONES' DataBinding.DataSource = DADataSource - ExplicitWidth = 480 - ExplicitHeight = 20 + ExplicitHeight = 228 Height = 228 end end object cbRecargoEquivalencia: TcxDBCheckBox Left = 22 - Top = 266 + Top = 293 Caption = ' No acogida a comisiones' DataBinding.DataField = 'SIN_COMISION' DataBinding.DataSource = DADataSource @@ -263,9 +262,22 @@ inherited frViewFacturaCliente: TfrViewFacturaCliente StyleHot.LookAndFeel.Kind = lfStandard StyleHot.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.SkinName = '' - TabOrder = 6 + TabOrder = 7 Width = 158 end + object edtSituacion: TcxDBComboBox + Left = 135 + Top = 84 + DataBinding.DataField = 'SITUACION' + DataBinding.DataSource = DADataSource + Properties.DropDownListStyle = lsFixedList + Properties.ImmediatePost = True + Properties.Items.Strings = ( + 'PENDIENTE' + 'PAGADA') + TabOrder = 2 + Width = 121 + end object dxLayoutControl1Group_Root: TdxLayoutGroup ShowCaption = False Hidden = True @@ -295,6 +307,11 @@ inherited frViewFacturaCliente: TfrViewFacturaCliente Control = edtFecha ControlOptions.ShowBorder = False end + object dxLayoutControl1Item8: TdxLayoutItem + Caption = 'Situaci'#243'n:' + Control = edtSituacion + ControlOptions.ShowBorder = False + end end object dxLayoutControl1Group8: TdxLayoutGroup Caption = 'Forma de pago' diff --git a/Source/Modulos/Facturas de cliente/Views/uViewFacturaCliente.pas b/Source/Modulos/Facturas de cliente/Views/uViewFacturaCliente.pas index 27170ce..a3ac68e 100644 --- a/Source/Modulos/Facturas de cliente/Views/uViewFacturaCliente.pas +++ b/Source/Modulos/Facturas de cliente/Views/uViewFacturaCliente.pas @@ -58,6 +58,8 @@ type dxLayoutControl1Item7: TdxLayoutItem; cbRecargoEquivalencia: TcxDBCheckBox; dxLayoutControl1Group9: TdxLayoutGroup; + edtSituacion: TcxDBComboBox; + dxLayoutControl1Item8: TdxLayoutItem; procedure bFormasPagoClick(Sender: TObject); procedure CustomViewDestroy(Sender: TObject); procedure CustomViewCreate(Sender: TObject); diff --git a/Source/Modulos/Facturas de cliente/Views/uViewFacturasCliente.dfm b/Source/Modulos/Facturas de cliente/Views/uViewFacturasCliente.dfm index dc0188b..28502b3 100644 --- a/Source/Modulos/Facturas de cliente/Views/uViewFacturasCliente.dfm +++ b/Source/Modulos/Facturas de cliente/Views/uViewFacturasCliente.dfm @@ -164,9 +164,6 @@ inherited frViewFacturasCliente: TfrViewFacturasCliente object cxGridPendientes: TcxGridLevel Caption = 'Pendientes' end - object cxGridParcial: TcxGridLevel - Caption = 'Parcialmente pagadas' - end object cxGridPagadas: TcxGridLevel Caption = 'Pagadas' end diff --git a/Source/Modulos/Facturas de cliente/Views/uViewFacturasCliente.pas b/Source/Modulos/Facturas de cliente/Views/uViewFacturasCliente.pas index 3b18229..a082617 100644 --- a/Source/Modulos/Facturas de cliente/Views/uViewFacturasCliente.pas +++ b/Source/Modulos/Facturas de cliente/Views/uViewFacturasCliente.pas @@ -43,7 +43,6 @@ type cxGridViewPOBLACION: TcxGridDBColumn; cxStylePagada: TcxStyle; cxGridPendientes: TcxGridLevel; - cxGridParcial: TcxGridLevel; cxStyleAbono: TcxStyle; cxGridPagadas: TcxGridLevel; cxGridViewREFERENCIA_COMISION: TcxGridDBColumn; @@ -207,9 +206,7 @@ begin if (ASituacion = CTE_PAGADA) then AStyle := cxStylePagada else if (ASituacion = CTE_PENDIENTE) then - AStyle := cxStylePendientes - else if (ASituacion = CTE_PARCIAMENTE_PAGADA) then - AStyle := cxStyleParciales; + AStyle := cxStylePendientes; IndiceCol := cxGridViewIMPORTE_TOTAL.Index; if (Pos('-', ARecord.DisplayTexts[IndiceCol]) > 0) then diff --git a/Source/Modulos/Facturas de proveedor/Controller/uFacturasProveedorController.pas b/Source/Modulos/Facturas de proveedor/Controller/uFacturasProveedorController.pas index dce3c01..5037e8a 100644 --- a/Source/Modulos/Facturas de proveedor/Controller/uFacturasProveedorController.pas +++ b/Source/Modulos/Facturas de proveedor/Controller/uFacturasProveedorController.pas @@ -700,7 +700,7 @@ begin //De esta forma obligaremos siempre a tener un recibo asociado a la factura, //porque si la forma de pago no tiene plazos es obligatorio la fecha de vencimiento - with TFormasPagoController.Create do +{ with TFormasPagoController.Create do begin try AFormaPago := Buscar(AFactura.ID_FORMA_PAGO); @@ -713,7 +713,7 @@ begin Free; end; end; - +} //En caso de ser un Abono no podra tener un importe total positivo if (AFactura.TIPO = CTE_TIPO_ABONO) then if (AFactura.IMPORTE_TOTAL >= 0) then @@ -901,10 +901,10 @@ function TFacturasProveedorController.EsEliminable(AFactura: IBizFacturaProveedo begin Result := True; AComentario := Null; - + if not Assigned(AFactura) then raise Exception.Create ('Factura no asignado: EsEliminable'); - +{ if (AFactura.SITUACION <> CTE_PENDIENTE) then begin Result := False; @@ -920,6 +920,7 @@ begin Result := False; AComentario := 'La factura tiene un asiento asociado en la parte contable y está punteado, por lo que no puede ser eliminada'; end; + } end; function TFacturasProveedorController.EsModificable(AFactura: IBizFacturaProveedor; var AComentario: Variant): Boolean; @@ -929,7 +930,7 @@ begin if not Assigned(AFactura) then raise Exception.Create ('Factura no asignado: EsModificable'); - +{ if (AFactura.SITUACION <> CTE_PENDIENTE) then begin Result := False; @@ -945,6 +946,7 @@ begin Result := False; AComentario := 'La factura tiene un asiento asociado en la parte contable y está punteado, por lo que no puede ser modificada'; end; + } end; procedure TFacturasProveedorController.RecalcularImportes(FFactura: IBizFacturaProveedor); @@ -1258,6 +1260,8 @@ begin AFormasPagoController := TFormasPagoController.Create; AFormaPago := AFormasPagoController.Buscar(AFactura.ID_FORMA_PAGO); AFormaPago.DataTable.Active := True; + if AFormaPago.Plazos.RecordCount = 0 then + Exit; //No hay plazos en la forma de pago en la factura y por lo tanto no se generan recibos ARecibosProveedorController := TRecibosProveedorController.Create; //Eliminamos todos los recibos que tuviera la factura porque sabemos que todos diff --git a/Source/Modulos/Facturas de proveedor/Model/schFacturasProveedorClient_Intf.pas b/Source/Modulos/Facturas de proveedor/Model/schFacturasProveedorClient_Intf.pas index e52fc83..d71d1a2 100644 --- a/Source/Modulos/Facturas de proveedor/Model/schFacturasProveedorClient_Intf.pas +++ b/Source/Modulos/Facturas de proveedor/Model/schFacturasProveedorClient_Intf.pas @@ -9,11 +9,11 @@ const { Data table rules ids Feel free to change them to something more human readable but make sure they are unique in the context of your application } - RID_ListaAnosFacturas = '{7B9F91D4-906B-4935-A6E5-7E5E73CFB8F2}'; - RID_FacturasProveedor_Contratos = '{7E19810B-9DA8-42DE-826F-B33D7DBDCD51}'; - RID_TiposFacturaProveedor = '{E83ABFBC-6F47-4597-979C-3224CC00DBDC}'; - RID_FacturasProveedor = '{26602041-C101-4CAC-824C-C6B0A3705AE8}'; - RID_FacturasProveedor_Detalles = '{C7E32006-F921-4ADB-BB08-ED1080FBE6DB}'; + RID_ListaAnosFacturas = '{C7DA1898-B917-4186-82B9-EF7F3688C121}'; + RID_FacturasProveedor_Contratos = '{3BA8F2FD-0730-4766-B593-D8B413B5905B}'; + RID_TiposFacturaProveedor = '{99A70923-CC81-401B-A06C-3AEFA31F1956}'; + RID_FacturasProveedor = '{703B7E51-6194-4F69-B9BC-849C4821B81B}'; + RID_FacturasProveedor_Detalles = '{355A9F5B-B76A-4ED7-AD99-723ECC24197E}'; { Data table names } nme_ListaAnosFacturas = 'ListaAnosFacturas'; @@ -183,7 +183,7 @@ const type { IListaAnosFacturas } IListaAnosFacturas = interface(IDAStronglyTypedDataTable) - ['{E98FAB1D-C712-4BC4-AAE2-5E272B360182}'] + ['{39519A2A-11BC-4AFA-B812-3055340CAE84}'] { Property getters and setters } function GetANOValue: String; procedure SetANOValue(const aValue: String); @@ -218,7 +218,7 @@ type { IFacturasProveedor_Contratos } IFacturasProveedor_Contratos = interface(IDAStronglyTypedDataTable) - ['{0948BC64-862D-4801-9685-1E3C97546BDF}'] + ['{42B0326B-8965-4E74-AC91-64D82C5ABCAA}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -325,7 +325,7 @@ type { ITiposFacturaProveedor } ITiposFacturaProveedor = interface(IDAStronglyTypedDataTable) - ['{41EB9AC4-EFD3-4658-8A2C-0CE7201B01F6}'] + ['{940D609C-16AA-442E-84A1-6C0181D4F10D}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -372,7 +372,7 @@ type { IFacturasProveedor } IFacturasProveedor = interface(IDAStronglyTypedDataTable) - ['{53426A0C-9DB7-48CF-9BBF-67D257B9ED00}'] + ['{07C8CFF1-8C44-4C84-9171-83E0C9AF81FE}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -935,7 +935,7 @@ type { IFacturasProveedor_Detalles } IFacturasProveedor_Detalles = interface(IDAStronglyTypedDataTable) - ['{ECA81852-45B3-412C-A605-B45F1B613919}'] + ['{97EF127B-7478-45C9-B15F-832618C17F19}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); diff --git a/Source/Modulos/Facturas de proveedor/Model/schFacturasProveedorServer_Intf.pas b/Source/Modulos/Facturas de proveedor/Model/schFacturasProveedorServer_Intf.pas index 38ae1ec..51412b3 100644 --- a/Source/Modulos/Facturas de proveedor/Model/schFacturasProveedorServer_Intf.pas +++ b/Source/Modulos/Facturas de proveedor/Model/schFacturasProveedorServer_Intf.pas @@ -9,16 +9,16 @@ const { Delta rules ids Feel free to change them to something more human readable but make sure they are unique in the context of your application } - RID_ListaAnosFacturasDelta = '{79CD54D1-C44E-46EE-A1AF-51519F94D7DF}'; - RID_FacturasProveedor_ContratosDelta = '{32634786-2D30-4A75-8340-98AD18294F4B}'; - RID_TiposFacturaProveedorDelta = '{D717E826-757A-4ECC-B805-D23971441080}'; - RID_FacturasProveedorDelta = '{2B0FBE68-9C7D-495D-AF70-0C9328D36439}'; - RID_FacturasProveedor_DetallesDelta = '{40BDCDE5-A538-4805-BB46-239472F69265}'; + RID_ListaAnosFacturasDelta = '{B5BAE581-991C-4B73-9455-984D9A5AB62B}'; + RID_FacturasProveedor_ContratosDelta = '{F3AA3D9B-47DB-4B66-914C-ADF42111EAFB}'; + RID_TiposFacturaProveedorDelta = '{72320F2D-F96B-42D2-8046-226C5F0CFF90}'; + RID_FacturasProveedorDelta = '{56EEC02F-6B35-4538-A885-E3FD6408F13B}'; + RID_FacturasProveedor_DetallesDelta = '{918408EE-23B5-4145-B189-D7B8CC62E7F6}'; type { IListaAnosFacturasDelta } IListaAnosFacturasDelta = interface(IListaAnosFacturas) - ['{79CD54D1-C44E-46EE-A1AF-51519F94D7DF}'] + ['{B5BAE581-991C-4B73-9455-984D9A5AB62B}'] { Property getters and setters } function GetOldANOValue : String; @@ -52,7 +52,7 @@ type { IFacturasProveedor_ContratosDelta } IFacturasProveedor_ContratosDelta = interface(IFacturasProveedor_Contratos) - ['{32634786-2D30-4A75-8340-98AD18294F4B}'] + ['{F3AA3D9B-47DB-4B66-914C-ADF42111EAFB}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_FACTURAValue : Integer; @@ -158,7 +158,7 @@ type { ITiposFacturaProveedorDelta } ITiposFacturaProveedorDelta = interface(ITiposFacturaProveedor) - ['{D717E826-757A-4ECC-B805-D23971441080}'] + ['{72320F2D-F96B-42D2-8046-226C5F0CFF90}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldDESCRIPCIONValue : String; @@ -204,7 +204,7 @@ type { IFacturasProveedorDelta } IFacturasProveedorDelta = interface(IFacturasProveedor) - ['{2B0FBE68-9C7D-495D-AF70-0C9328D36439}'] + ['{56EEC02F-6B35-4538-A885-E3FD6408F13B}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_EMPRESAValue : Integer; @@ -767,7 +767,7 @@ type { IFacturasProveedor_DetallesDelta } IFacturasProveedor_DetallesDelta = interface(IFacturasProveedor_Detalles) - ['{40BDCDE5-A538-4805-BB46-239472F69265}'] + ['{918408EE-23B5-4145-B189-D7B8CC62E7F6}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_FACTURAValue : Integer; diff --git a/Source/Modulos/Facturas de proveedor/Model/uBizFacturasProveedor.pas b/Source/Modulos/Facturas de proveedor/Model/uBizFacturasProveedor.pas index c757d69..a7defa5 100644 --- a/Source/Modulos/Facturas de proveedor/Model/uBizFacturasProveedor.pas +++ b/Source/Modulos/Facturas de proveedor/Model/uBizFacturasProveedor.pas @@ -14,7 +14,6 @@ const CTE_TIPO_FACTURA = 'F'; CTE_PENDIENTE = 'PENDIENTE'; - CTE_PARCIAMENTE_PAGADA = 'PARCIALMENTE PAGADA'; CTE_PAGADA = 'PAGADA'; type diff --git a/Source/Modulos/Facturas de proveedor/Reports/uRptFacturasProveedor_Server.dfm b/Source/Modulos/Facturas de proveedor/Reports/uRptFacturasProveedor_Server.dfm index b2683e6..d052396 100644 --- a/Source/Modulos/Facturas de proveedor/Reports/uRptFacturasProveedor_Server.dfm +++ b/Source/Modulos/Facturas de proveedor/Reports/uRptFacturasProveedor_Server.dfm @@ -155,10 +155,10 @@ object RptFacturasProveedor: TRptFacturasProveedor #39' || extract (year from fecha_factura)'#10'when extract (month from ' + 'fecha_factura) = 12 then '#39'DICIEMBRE - '#39' || extract (year from fe' + 'cha_factura)'#10'end as TITULO,'#10'REFERENCIA, REFERENCIA_PROVEEDOR, ID' + - '_PROVEEDOR, NOMBRE, SITUACION, NIF_CIF,'#10'FECHA_FACTURA, FECHA_VEN' + - 'CIMIENTO, BASE_IMPONIBLE, IMPORTE_IVA, IMPORTE_TOTAL'#10#10'from V_fac' + - 'turas_proveedor'#10'where {where}'#10'order by ANO, MES, FECHA_FACTURA, ' + - 'NOMBRE'#10#10 + '_PROVEEDOR, REF_PROVEEDOR, NOMBRE, SITUACION, NIF_CIF,'#10'FECHA_FAC' + + 'TURA, FECHA_VENCIMIENTO, BASE_IMPONIBLE, IMPORTE_IVA, IMPORTE_TO' + + 'TAL'#10#10'from V_facturas_proveedor'#10'where {where}'#10'order by ANO, MES, ' + + 'FECHA_FACTURA, NOMBRE'#10#10 StatementType = stSQL ColumnMappings = < item @@ -223,6 +223,10 @@ object RptFacturasProveedor: TRptFacturasProveedor item DatasetField = 'REFERENCIA_PROVEEDOR' TableField = 'REFERENCIA_PROVEEDOR' + end + item + DatasetField = 'REF_PROVEEDOR' + TableField = 'REF_PROVEEDOR' end> end> Name = 'ListadoFacturasProveedor' @@ -258,6 +262,11 @@ object RptFacturasProveedor: TRptFacturasProveedor Name = 'ID_PROVEEDOR' DataType = datInteger end + item + Name = 'REF_PROVEEDOR' + DataType = datString + Size = 255 + end item Name = 'NOMBRE' DataType = datString @@ -507,7 +516,7 @@ object RptFacturasProveedor: TRptFacturasProveedor PrintOptions.Printer = 'Por defecto' PrintOptions.PrintOnSheet = 0 ReportOptions.CreateDate = 37800.807714351900000000 - ReportOptions.LastChange = 39884.811485821760000000 + ReportOptions.LastChange = 40945.691024224540000000 ScriptLanguage = 'PascalScript' ShowProgress = False StoreInDFM = False @@ -540,10 +549,20 @@ object RptFacturasProveedor: TRptFacturasProveedor DataType = datString Size = 255 end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + end item Name = 'ID_PROVEEDOR' DataType = datInteger end + item + Name = 'REF_PROVEEDOR' + DataType = datString + Size = 255 + end item Name = 'NOMBRE' DataType = datString @@ -560,11 +579,11 @@ object RptFacturasProveedor: TRptFacturasProveedor Size = 15 end item - Name = 'FECHA' + Name = 'FECHA_FACTURA' DataType = datDateTime end item - Name = 'FECHA_FACTURA' + Name = 'FECHA_VENCIMIENTO' DataType = datDateTime end item diff --git a/Source/Modulos/Facturas de proveedor/Servidor/srvFacturasProveedor_Impl.dfm b/Source/Modulos/Facturas de proveedor/Servidor/srvFacturasProveedor_Impl.dfm index 96d427a..4e9c0d9 100644 --- a/Source/Modulos/Facturas de proveedor/Servidor/srvFacturasProveedor_Impl.dfm +++ b/Source/Modulos/Facturas de proveedor/Servidor/srvFacturasProveedor_Impl.dfm @@ -1008,6 +1008,12 @@ object srvFacturasProveedor: TsrvFacturasProveedor Name = 'ID_TIPO_FACTURA' DataType = datInteger Value = '' + end + item + Name = 'SITUACION' + DataType = datString + Size = 255 + Value = '' end> Statements = < item @@ -1023,16 +1029,16 @@ object srvFacturasProveedor: TsrvFacturasProveedor ', PROVINCIA, CODIGO_POSTAL, '#10' FECHA_ALTA, FECHA_MODIFICACION' + ', USUARIO, ID_FORMA_PAGO, '#10' RECARGO_EQUIVALENCIA, ID_TIPO_IV' + 'A, IMPORTE_NETO, IMPORTE_PORTE, IGNORAR_CONTABILIDAD,'#10' ID_TI' + - 'ENDA, ID_TIPO_FACTURA)'#10' VALUES'#10' (:ID, :ID_EMPRESA, :REFERENC' + - 'IA, :REFERENCIA_PROVEEDOR,'#10' :FECHA_FACTURA, :FECHA_VENCIMIEN' + - 'TO, :BASE_IMPONIBLE, :DESCUENTO,'#10' :IMPORTE_DESCUENTO, :IVA, ' + - ':IMPORTE_IVA, :IRPF, :IMPORTE_IRPF,'#10' :RE, :IMPORTE_RE, :IMPO' + - 'RTE_TOTAL, :OBSERVACIONES, :ID_PROVEEDOR, :NIF_CIF,'#10' :NOMBRE' + - ', :CALLE, :POBLACION, :PROVINCIA, :CODIGO_POSTAL, '#10' :FECHA_A' + - 'LTA, :FECHA_MODIFICACION, :USUARIO, :ID_FORMA_PAGO, '#10' :RECAR' + - 'GO_EQUIVALENCIA, :ID_TIPO_IVA, :IMPORTE_NETO, '#10' :IMPORTE_POR' + - 'TE, :IGNORAR_CONTABILIDAD, :ID_TIENDA, :ID_TIPO_FACTURA)'#10' '#10' ' + - ' '#10#10 + 'ENDA, ID_TIPO_FACTURA, SITUACION)'#10' VALUES'#10' (:ID, :ID_EMPRESA' + + ', :REFERENCIA, :REFERENCIA_PROVEEDOR,'#10' :FECHA_FACTURA, :FECH' + + 'A_VENCIMIENTO, :BASE_IMPONIBLE, :DESCUENTO,'#10' :IMPORTE_DESCUE' + + 'NTO, :IVA, :IMPORTE_IVA, :IRPF, :IMPORTE_IRPF,'#10' :RE, :IMPORT' + + 'E_RE, :IMPORTE_TOTAL, :OBSERVACIONES, :ID_PROVEEDOR, :NIF_CIF,'#10' ' + + ' :NOMBRE, :CALLE, :POBLACION, :PROVINCIA, :CODIGO_POSTAL, '#10' ' + + ' :FECHA_ALTA, :FECHA_MODIFICACION, :USUARIO, :ID_FORMA_PAGO, '#10 + + ' :RECARGO_EQUIVALENCIA, :ID_TIPO_IVA, :IMPORTE_NETO, '#10' :' + + 'IMPORTE_PORTE, :IGNORAR_CONTABILIDAD, :ID_TIENDA, :ID_TIPO_FACTU' + + 'RA, :SITUACION)'#10' '#10' '#10#10 StatementType = stSQL ColumnMappings = <> end> @@ -1243,6 +1249,12 @@ object srvFacturasProveedor: TsrvFacturasProveedor DataType = datInteger Value = '' end + item + Name = 'SITUACION' + DataType = datString + Size = 255 + Value = '' + end item Name = 'OLD_ID' Value = '' @@ -1271,7 +1283,8 @@ object srvFacturasProveedor: TsrvFacturasProveedor ', '#10' ID_TIPO_IVA = :ID_TIPO_IVA, '#10' IMPORTE_NETO = :IMPORTE_' + 'NETO, '#10' IMPORTE_PORTE = :IMPORTE_PORTE,'#10' IGNORAR_CONTABILI' + 'DAD = :IGNORAR_CONTABILIDAD,'#10' ID_TIENDA = :ID_TIENDA,'#10' ID_' + - 'TIPO_FACTURA = :ID_TIPO_FACTURA'#10' WHERE'#10' (ID = :OLD_ID)'#10 + 'TIPO_FACTURA = :ID_TIPO_FACTURA,'#10' SITUACION = :SITUACION'#10' WH' + + 'ERE'#10' (ID = :OLD_ID)'#10 StatementType = stSQL ColumnMappings = <> end> diff --git a/Source/Modulos/Facturas de proveedor/Views/FacturasProveedor_view.dproj b/Source/Modulos/Facturas de proveedor/Views/FacturasProveedor_view.dproj index 79bf539..32c17e3 100644 --- a/Source/Modulos/Facturas de proveedor/Views/FacturasProveedor_view.dproj +++ b/Source/Modulos/Facturas de proveedor/Views/FacturasProveedor_view.dproj @@ -41,6 +41,9 @@ Package FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0 + + + RemObjects Pascal Script - RemObjects SDK 3.0 Integration FacturasProveedor_view.dpk @@ -49,37 +52,42 @@ MainSource - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
fEditorElegirArticulosFacturaProveedor
TfEditorElegirArticulosFacturaProveedor @@ -121,11 +129,6 @@
frViewProveedorFactura
TFrame
- - - - -