diff --git a/Source/Modulos/Facturas de proveedor/Controller/uFacturasProveedorController.pas b/Source/Modulos/Facturas de proveedor/Controller/uFacturasProveedorController.pas index 79dfb90e..222605a8 100644 --- a/Source/Modulos/Facturas de proveedor/Controller/uFacturasProveedorController.pas +++ b/Source/Modulos/Facturas de proveedor/Controller/uFacturasProveedorController.pas @@ -1120,7 +1120,11 @@ var AFormaPago: IBizFormaPago; ARecibosProveedorController: IRecibosProveedorController; ARecibos: IBizRecibosProveedor; + AFechaVencimiento: TDateTime; i: Integer; + ADiaVencimiento: Integer; + ADiasMas: Integer; + begin if not Assigned(AFactura) then Exit; @@ -1166,7 +1170,27 @@ begin end else begin - ARecibos.FECHA_VENCIMIENTO := AFactura.FECHA_FACTURA + AFormaPago.Plazos.NUM_DIAS; + AFechaVencimiento := AFactura.FECHA_FACTURA + AFormaPago.Plazos.NUM_DIAS; + ADiasMas := 0; + if (AFactura.Proveedor.VENCIMIENTO_FACTURAS_1 <> 0) + or (AFactura.Proveedor.VENCIMIENTO_FACTURAS_2 <> 0) + or (AFactura.Proveedor.VENCIMIENTO_FACTURAS_3 <> 0) then + begin + ADiaVencimiento := DayOf(AFechaVencimiento); + while (ADiaVencimiento <> AFactura.Proveedor.VENCIMIENTO_FACTURAS_1) + and (ADiaVencimiento <> AFactura.Proveedor.VENCIMIENTO_FACTURAS_2) + and (ADiaVencimiento <> AFactura.Proveedor.VENCIMIENTO_FACTURAS_3) do + begin + if ADiaVencimiento = DaysInMonth(AFechaVencimiento) then + ADiaVencimiento := 1 + else + Inc(ADiaVencimiento); + Inc(ADiasMas); + end; + end; + + AFechaVencimiento := IncDay(AFechaVencimiento, ADiasMas); + ARecibos.FECHA_VENCIMIENTO := AFechaVencimiento; ARecibos.IMPORTE := AFactura.IMPORTE_TOTAL * (AFormaPago.Plazos.PORCENTAJE / 100); end;