From c62128bdedbbd9428a7ea5459b43771a71f4078e Mon Sep 17 00:00:00 2001 From: roberto Date: Wed, 18 Jun 2014 11:06:58 +0000 Subject: [PATCH] Se arregla pico de centimos en los recibos generados cuando el numero de plazos son muchos (SOLICITADO POR ANGELICA) git-svn-id: https://192.168.0.254/svn/Proyectos.AbetoDesign_FactuGES/trunk@100 93f398dd-4eb6-7a46-baf6-13f46f578da2 --- Source/Base/Utiles/uNumUtils.pas | 16 ++++ .../ContratosCliente_controller.RES | Bin 384 -> 4748 bytes .../Controller/uFacturasClienteController.pas | 19 +++- .../Model/uBizFacturasCliente.pas | 2 +- .../Views/PresupuestosCliente_view.RES | Bin 384 -> 4748 bytes .../Views/PresupuestosCliente_view.dproj | 86 +++++++++--------- ...ViewElegirArticulosPresupuestosCliente.dfm | 24 +++++ ...ViewElegirArticulosPresupuestosCliente.pas | 2 +- 8 files changed, 102 insertions(+), 47 deletions(-) diff --git a/Source/Base/Utiles/uNumUtils.pas b/Source/Base/Utiles/uNumUtils.pas index 39aafad..ff91cc7 100644 --- a/Source/Base/Utiles/uNumUtils.pas +++ b/Source/Base/Utiles/uNumUtils.pas @@ -28,12 +28,28 @@ interface Function IntToLetras(Numero:LongInt):String; Function xxIntToLetras(Valor:LongInt):String; Function CifraToLetras(Cifra: Double): String; +function RoundCurrency(const Value: Currency): Currency; + implementation uses SysUtils, Dialogs; // SysUtils, Windows, Dialogs, Messages, Classes, Graphics, Controls, Forms, StdCtrls; +function RoundCurrency(const Value: Currency): Currency; +var + V64: Int64 absolute Result; + Decimals: Integer; +begin + Result := Value; + Decimals := V64 mod 100; + Dec(V64, Decimals); + case Decimals of + -99 .. -50 : Dec(V64, 100); + 50 .. 99 : Inc(V64, 100); + end; +end; + Function xxIntToLetras(Valor:LongInt):String; const aUnitat : array[1..15] of String = ('UNO','DOS','TRES','CUATRO','CINCO','SEIS', diff --git a/Source/Modulos/Contratos de cliente/Controller/ContratosCliente_controller.RES b/Source/Modulos/Contratos de cliente/Controller/ContratosCliente_controller.RES index 8b251f312bcccec5485024f6fe8d80e1cdf25746..1641339fcc482e7e3492d1b45813a86619622c33 100644 GIT binary patch literal 4748 zcmbW5&ub)A5XUPdpe&2#;C*uNAUVhgd+&(4um@dnom`vXF9g}ZuHJ;se=<3UNdFJg zbCw+UD9j$byGIXV`~6hC>h4S?F|k9X-j90q{Z_qtZ<;nUJCO8!h?p${kR>3GhM`oH*q zk=UsjOCIgA_4!`B+Gb&`I84R)bT4dy-BQV<-SyFz?R8ILEQ(+JB$u{sEXE@j@B*7W zT;iZH#|OJ<&DO$RCkM6VbK3(B(k{nbdv1lpc;E$xz9as|v3uE1V{hw2w~g3eD0an7 z{BT%G%irdMe*|oDJmgvJaA2`9B<6Xi*?M~Q;)@Sbfwf3uf zVaWkbUjU=;sL{BlYemIZXv%qZ{SZw{-TCU+;!nH6KDDIJumU+9{E0zXW4>7T)y|>$DQlv zRJe?TjSp{c!DqeayAnSMTtZZT;>LN7J0Rls+5m@q)MbyB*eL%Eu@(+$Cw}Pd@q7N| z%Q0*AHpCP^b9v`@jx-l_FD>khpW2W8(OU2&V5TrnoAY-m_hlcV?zq3;7{2gF{J#Hc z6R+o~mVenX?>@W0@_DVzyOFs(5464CY{!q9ChoF#_*eXi@4gFuV8?vhl=_w5$iKL0 zEV0nMBcN08xtRmsgJrqjh@s#|{?*ssnsG)mH*wa6{efF0JFWHok@kA5%b661{B38= zCcgJ|*ZFTpV$8<-&+AWpa)Q8*`wL&hMeNQ^v6I7$HSdLZhZ^&+6<@Uw_Zsml9^v3W zVvPDBKHh;i=RU4J_ta3E;)Mn>Y+L zKLZ0UQ+*km9FO-b?U4gmn-62iwzH6&*duKGo~aUV)bYDla8wWZ9+^7p-F<8lP@i!m z@vhbD_${F}h>^T;C(?(b*OJDk?{dEXB?nuehoON3HAb!7Mr7-ls!84-5V-jJugbu<_$}mU=Yd9!?TOX;|B-#B)+0x#9q*yqJiqS!`49d=7ztk$O+9=1i;?K_|J<8T z?0b7=-`Z3A#vV$4XJ5(lQ~TOZHUFdA%oWvK5zg&_IKXIbughQBA8XAsd#=@|TFLXC zy(^m((;DnQmDQKatmw!@c`| G?EMQ&4NnpP delta 11 ScmeBCZD5|Duvteife`=|>;pCc diff --git a/Source/Modulos/Facturas de cliente/Controller/uFacturasClienteController.pas b/Source/Modulos/Facturas de cliente/Controller/uFacturasClienteController.pas index a06c0f4..e557185 100644 --- a/Source/Modulos/Facturas de cliente/Controller/uFacturasClienteController.pas +++ b/Source/Modulos/Facturas de cliente/Controller/uFacturasClienteController.pas @@ -1128,6 +1128,7 @@ end; function TFacturasClienteController.Guardar(AFactura: IBizFacturaCliente): Boolean; var IDNuevo : Integer; + begin Result := False; @@ -1143,7 +1144,6 @@ begin // Asegurarnos de que todos los importes están bien. RecalcularImportes(AFactura); - try AFactura.DataTable.ApplyUpdates; @@ -1270,6 +1270,7 @@ var ADiaVencimiento: Integer; ADiasMas: Integer; BSemaforo: Boolean; + AImporteAcumulado : Double; begin if not Assigned(AFactura) then @@ -1292,6 +1293,7 @@ begin With AFormaPago.Plazos.DataTable do begin i := 1; + AImporteAcumulado := 0; First; repeat //SOLO PARA ACANA (Leer comentario anterior @@ -1317,6 +1319,7 @@ begin begin ARecibos.FECHA_VENCIMIENTO := AFactura.FECHA_VENCIMIENTO; ARecibos.IMPORTE := AFactura.IMPORTE_TOTAL; + AImporteAcumulado := AImporteAcumulado + ARecibos.IMPORTE; end else begin @@ -1356,7 +1359,19 @@ begin AFechaVencimiento := IncDay(AFechaVencimiento, ADiasMas); ARecibos.FECHA_VENCIMIENTO := AFechaVencimiento; - ARecibos.IMPORTE := AFactura.IMPORTE_TOTAL * (AFormaPago.Plazos.PORCENTAJE / 100); + + + ARecibos.IMPORTE := RoundCurrency(RoundCurrency(AFactura.IMPORTE_TOTAL) * (AFormaPago.Plazos.PORCENTAJE / 100)); + AImporteAcumulado := AImporteAcumulado + ARecibos.IMPORTE; + + if (i = AFormaPago.Plazos.RecordCount) then + begin + if (AImporteAcumulado < RoundCurrency(AFactura.IMPORTE_TOTAL)) then + ARecibos.IMPORTE := ARecibos.IMPORTE + (RoundCurrency(AFactura.IMPORTE_TOTAL) - AImporteAcumulado) + else if (AImporteAcumulado > RoundCurrency(AFactura.IMPORTE_TOTAL)) then + ARecibos.IMPORTE := ARecibos.IMPORTE - (AImporteAcumulado - RoundCurrency(AFactura.IMPORTE_TOTAL)); + + end; end; ARecibos.DESCRIPCION := 'RECIBO ' + ARecibos.REFERENCIA + ' - ' + CifraToLetras(ARecibos.IMPORTE); diff --git a/Source/Modulos/Facturas de cliente/Model/uBizFacturasCliente.pas b/Source/Modulos/Facturas de cliente/Model/uBizFacturasCliente.pas index 87283bb..6cef47b 100644 --- a/Source/Modulos/Facturas de cliente/Model/uBizFacturasCliente.pas +++ b/Source/Modulos/Facturas de cliente/Model/uBizFacturasCliente.pas @@ -99,7 +99,7 @@ implementation {$INCLUDE ..\..\..\FactuGES.inc} uses - SysUtils, uDataTableUtils, DB, uDateUtils, DateUtils, uDataModuleUsuarios, + SysUtils, uDataTableUtils, DB, uDateUtils, DateUtils, uDataModuleUsuarios, Variants, cxDateUtils, uTiposIVAController, uBizTiposIVA, uFactuGES_App, uBizEmpresasTiendas; { TBizFacturaCliente } diff --git a/Source/Modulos/Presupuestos de cliente/Views/PresupuestosCliente_view.RES b/Source/Modulos/Presupuestos de cliente/Views/PresupuestosCliente_view.RES index 8b251f312bcccec5485024f6fe8d80e1cdf25746..1641339fcc482e7e3492d1b45813a86619622c33 100644 GIT binary patch literal 4748 zcmbW5&ub)A5XUPdpe&2#;C*uNAUVhgd+&(4um@dnom`vXF9g}ZuHJ;se=<3UNdFJg zbCw+UD9j$byGIXV`~6hC>h4S?F|k9X-j90q{Z_qtZ<;nUJCO8!h?p${kR>3GhM`oH*q zk=UsjOCIgA_4!`B+Gb&`I84R)bT4dy-BQV<-SyFz?R8ILEQ(+JB$u{sEXE@j@B*7W zT;iZH#|OJ<&DO$RCkM6VbK3(B(k{nbdv1lpc;E$xz9as|v3uE1V{hw2w~g3eD0an7 z{BT%G%irdMe*|oDJmgvJaA2`9B<6Xi*?M~Q;)@Sbfwf3uf zVaWkbUjU=;sL{BlYemIZXv%qZ{SZw{-TCU+;!nH6KDDIJumU+9{E0zXW4>7T)y|>$DQlv zRJe?TjSp{c!DqeayAnSMTtZZT;>LN7J0Rls+5m@q)MbyB*eL%Eu@(+$Cw}Pd@q7N| z%Q0*AHpCP^b9v`@jx-l_FD>khpW2W8(OU2&V5TrnoAY-m_hlcV?zq3;7{2gF{J#Hc z6R+o~mVenX?>@W0@_DVzyOFs(5464CY{!q9ChoF#_*eXi@4gFuV8?vhl=_w5$iKL0 zEV0nMBcN08xtRmsgJrqjh@s#|{?*ssnsG)mH*wa6{efF0JFWHok@kA5%b661{B38= zCcgJ|*ZFTpV$8<-&+AWpa)Q8*`wL&hMeNQ^v6I7$HSdLZhZ^&+6<@Uw_Zsml9^v3W zVvPDBKHh;i=RU4J_ta3E;)Mn>Y+L zKLZ0UQ+*km9FO-b?U4gmn-62iwzH6&*duKGo~aUV)bYDla8wWZ9+^7p-F<8lP@i!m z@vhbD_${F}h>^T;C(?(b*OJDk?{dEXB?nuehoON3HAb!7Mr7-ls!84-5V-jJugbu<_$}mU=Yd9!?TOX;|B-#B)+0x#9q*yqJiqS!`49d=7ztk$O+9=1i;?K_|J<8T z?0b7=-`Z3A#vV$4XJ5(lQ~TOZHUFdA%oWvK5zg&_IKXIbughQBA8XAsd#=@|TFLXC zy(^m((;DnQmDQKatmw!@c`| G?EMQ&4NnpP delta 11 ScmeBCZD5|Duvteife`=|>;pCc diff --git a/Source/Modulos/Presupuestos de cliente/Views/PresupuestosCliente_view.dproj b/Source/Modulos/Presupuestos de cliente/Views/PresupuestosCliente_view.dproj index 4725ccd..337540d 100644 --- a/Source/Modulos/Presupuestos de cliente/Views/PresupuestosCliente_view.dproj +++ b/Source/Modulos/Presupuestos de cliente/Views/PresupuestosCliente_view.dproj @@ -49,49 +49,49 @@ MainSource - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
frDialogOpcionesImpresionPresupuestosCliente
T diff --git a/Source/Modulos/Presupuestos de cliente/Views/uViewElegirArticulosPresupuestosCliente.dfm b/Source/Modulos/Presupuestos de cliente/Views/uViewElegirArticulosPresupuestosCliente.dfm index 860320a..2493827 100644 --- a/Source/Modulos/Presupuestos de cliente/Views/uViewElegirArticulosPresupuestosCliente.dfm +++ b/Source/Modulos/Presupuestos de cliente/Views/uViewElegirArticulosPresupuestosCliente.dfm @@ -1,4 +1,28 @@ inherited frViewElegirArticulosPresupuestosCliente: TfrViewElegirArticulosPresupuestosCliente + inherited frViewFiltroBase1: TfrViewFiltroBase + inherited TBXDockablePanel1: TTBXDockablePanel + inherited dxLayoutControl1: TdxLayoutControl + inherited txtFiltroTodo: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited edtFechaIniFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + inherited edtFechaFinFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + end + end + end + end inherited dxComponentPrinter: TdxComponentPrinter inherited dxComponentPrinterLink: TdxGridReportLink ReportDocument.CreationDate = 39297.755936412040000000 diff --git a/Source/Modulos/Presupuestos de cliente/Views/uViewElegirArticulosPresupuestosCliente.pas b/Source/Modulos/Presupuestos de cliente/Views/uViewElegirArticulosPresupuestosCliente.pas index 8c9f9de..109d2ba 100644 --- a/Source/Modulos/Presupuestos de cliente/Views/uViewElegirArticulosPresupuestosCliente.pas +++ b/Source/Modulos/Presupuestos de cliente/Views/uViewElegirArticulosPresupuestosCliente.pas @@ -12,7 +12,7 @@ uses uDADataTable, cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, dxPgsDlg, ActnList, TB2Item, TBX, TB2Toolbar, TBXDkPanels, TB2Dock, uViewFiltroBase, - uDAInterfaces; + uDAInterfaces, uCustomView, uViewBase; type IViewElegirArticulosPresupuestosCliente = interface(IViewArticulos)