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 8b251f3..1641339 100644 Binary files a/Source/Modulos/Contratos de cliente/Controller/ContratosCliente_controller.RES and b/Source/Modulos/Contratos de cliente/Controller/ContratosCliente_controller.RES differ 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 8b251f3..1641339 100644 Binary files a/Source/Modulos/Presupuestos de cliente/Views/PresupuestosCliente_view.RES and b/Source/Modulos/Presupuestos de cliente/Views/PresupuestosCliente_view.RES differ 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)