Se arregla la logica al establecer la fecha de vencimiento de los recibos segun los dias de pago del cliente para que si se asigna el dia de pago 31 no falle en el caso de meses que tengan solo 30 dias
git-svn-id: https://192.168.0.254/svn/Proyectos.Acana_FactuGES2/trunk@387 f4e31baf-9722-1c47-927c-6f952f962d4b
This commit is contained in:
parent
4b77aae684
commit
9fcd4dba91
@ -1140,6 +1140,7 @@ var
|
||||
i: Integer;
|
||||
ADiaVencimiento: Integer;
|
||||
ADiasMas: Integer;
|
||||
BSemaforo: Boolean;
|
||||
|
||||
begin
|
||||
if not Assigned(AFactura) then
|
||||
@ -1195,6 +1196,7 @@ begin
|
||||
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
|
||||
@ -1205,7 +1207,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);
|
||||
|
||||
@ -1124,6 +1124,7 @@ var
|
||||
i: Integer;
|
||||
ADiaVencimiento: Integer;
|
||||
ADiasMas: Integer;
|
||||
BSemaforo: Boolean;
|
||||
|
||||
begin
|
||||
if not Assigned(AFactura) then
|
||||
@ -1172,6 +1173,7 @@ begin
|
||||
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
|
||||
@ -1182,7 +1184,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);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user