SE arregla la logica de asignar fechas de vencimiento a los recibos de la factura segun los dias de pago asignados al cliente (por ejemplo si se le asigna el dia 31 no debe fallar cuando el mes solo tenga 30 días , en tal caso hemos optado por no tener en cuenta los días de pago para establecer la fecha de vencimiento del recibo
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@308 c93665c3-c93d-084d-9b98-7d5f4a9c3376
This commit is contained in:
parent
d018b53431
commit
96c436f1d9
@ -1218,6 +1218,7 @@ var
|
||||
i: Integer;
|
||||
ADiaVencimiento: Integer;
|
||||
ADiasMas: Integer;
|
||||
BSemaforo: Boolean;
|
||||
|
||||
begin
|
||||
if not Assigned(AFactura) then
|
||||
@ -1253,6 +1254,7 @@ begin
|
||||
|
||||
AFechaVencimiento := AFactura.FECHA_FACTURA + AFormaPago.Plazos.NUM_DIAS;
|
||||
ADiasMas := 0;
|
||||
BSemaforo := False;
|
||||
if (AFactura.Cliente.VENCIMIENTO_FACTURAS_1 <> 0)
|
||||
or (AFactura.Cliente.VENCIMIENTO_FACTURAS_2 <> 0)
|
||||
or (AFactura.Cliente.VENCIMIENTO_FACTURAS_3 <> 0) then
|
||||
@ -1263,7 +1265,21 @@ begin
|
||||
and (ADiaVencimiento <> AFactura.Cliente.VENCIMIENTO_FACTURAS_3) do
|
||||
begin
|
||||
if ADiaVencimiento = DaysInMonth(AFechaVencimiento) then
|
||||
ADiaVencimiento := 1
|
||||
begin
|
||||
ADiaVencimiento := 1;
|
||||
|
||||
//Controlamos con una variable semaforo que no nos quedemos en un bucle infinito
|
||||
//intentando encontrar el dia de pago establecido para el cliente (es el caso de tener
|
||||
//asignado el dia de pago 30 y llegar febrero en el que no se encuentra dicho dia, o
|
||||
//tener como dia de pago los días 31 y en el caso de meses de 30 dias no encontrarlo.
|
||||
if BSemaforo then
|
||||
begin
|
||||
ADiasMas := 0;
|
||||
Break
|
||||
end
|
||||
else
|
||||
BSemaforo := True;
|
||||
end
|
||||
else
|
||||
Inc(ADiaVencimiento);
|
||||
Inc(ADiasMas);
|
||||
|
||||
@ -1222,6 +1222,7 @@ var
|
||||
i: Integer;
|
||||
ADiaVencimiento: Integer;
|
||||
ADiasMas: Integer;
|
||||
BSemaforo: Boolean;
|
||||
|
||||
begin
|
||||
|
||||
@ -1257,6 +1258,7 @@ begin
|
||||
|
||||
AFechaVencimiento := AFactura.FECHA_FACTURA + AFormaPago.Plazos.NUM_DIAS;
|
||||
ADiasMas := 0;
|
||||
BSemaforo := False;
|
||||
if (AFactura.Proveedor.VENCIMIENTO_FACTURAS_1 <> 0)
|
||||
or (AFactura.Proveedor.VENCIMIENTO_FACTURAS_2 <> 0)
|
||||
or (AFactura.Proveedor.VENCIMIENTO_FACTURAS_3 <> 0) then
|
||||
@ -1267,7 +1269,21 @@ begin
|
||||
and (ADiaVencimiento <> AFactura.Proveedor.VENCIMIENTO_FACTURAS_3) do
|
||||
begin
|
||||
if ADiaVencimiento = DaysInMonth(AFechaVencimiento) then
|
||||
ADiaVencimiento := 1
|
||||
begin
|
||||
ADiaVencimiento := 1;
|
||||
|
||||
//Controlamos con una variable semaforo que no nos quedemos en un bucle infinito
|
||||
//intentando encontrar el dia de pago establecido para el cliente (es el caso de tener
|
||||
//asignado el dia de pago 30 y llegar febrero en el que no se encuentra dicho dia, o
|
||||
//tener como dia de pago los días 31 y en el caso de meses de 30 dias no encontrarlo.
|
||||
if BSemaforo then
|
||||
begin
|
||||
ADiasMas := 0;
|
||||
Break
|
||||
end
|
||||
else
|
||||
BSemaforo := True;
|
||||
end
|
||||
else
|
||||
Inc(ADiaVencimiento);
|
||||
Inc(ADiasMas);
|
||||
|
||||
Reference in New Issue
Block a user