Consulta Facturas vencidas + 15 dias

Estimados buenas tardes , tengo una consulta que calcula los dias vencidos de la factura clientes, lo que necesito indicarle que tenga +15 dias del vencimiento, pero no ubico donde colocarle .

Adjunto consulta

SELECT Distinct 'TRUE'   
FROM OINV T0  WHERE T0.DocStatus = 'O' 
AND DateDiff(dd, T0.DocDueDate, CONVERT(DateTime, CONVERT(nvarchar(11),GetDate(),112),112)) >= 1
 AND T0.CardCOde = $[$4.0.0]

Agradezco sus comentarios
AND (Select balance from ocrd where cardcode=$[$4.0.0]) <>0

no entiendo…
¿Si en la condición de pago ya puedes establecer el vencimiento… porque calcularlo con una búsqueda formateada?

1 me gusta

Gracias estimado por tu observación , te comento lo que necesito hacer es que si la factura tiene vence el 17/04/2024 teniendo dias credito 30 dias, necesito darle 15 dias mas de crédito con esta busqueda , aca no logro determinar donde le puedo agregar.

SELECT Distinct ‘TRUE’
FROM OINV T0 WHERE T0.DocStatus = ‘O’
AND DateDiff(dd, T0.DocDueDate, CONVERT(DateTime, CONVERT(nvarchar(11),GetDate(),112),112)) >= 1
AND T0.CardCOde = $[$4.0.0]
AND (Select balance from ocrd where cardcode=$[$4.0.0]) <>0

El siguiente te muestra las facturas vencidas a 60 días., podrás ajustar el Query con base en el tiempo que requiera. Saludos

SELECT T0.“DocEntry”, T0.“DocNum”, T0.“DocDate”, T0.“DocDueDate”, T0.“CardCode”
, T0.“CardName”, T0.“NumAtCard”, T0.“DocTotal”, T0.“PaidToDate”
, DAYS_BETWEEN(T0.“DocDueDate”, NOW()) AS “Días Vencido”
FROM OPCH T0
WHERE DAYS_BETWEEN(T0.“DocDueDate”, NOW()) >= 60
AND T0.“PaidToDate” < T0.“DocTotal”
AND T0.“CANCELED” = ‘N’
ORDER BY T0.“DocDueDate”, T0.“CardName”, T0.“DocNum”

Gracias estimado por tu aporte, te comento que mi consulta funciona correctamente sin embargo me pidieron un cambio donde en el query debo dar 15 dias de gracias mas , del vencimiento de la factura , por ejemplo tengo una factura que vence el 30 de abril con respecto a los dias de credito, sin embargo necesito que la utorización considere +15 dias.

SELECT Distinct ‘TRUE’
FROM OINV T0 WHERE T0.DocStatus = ‘O’
AND DateDiff(dd, T0.DocDueDate, CONVERT(DateTime, CONVERT(nvarchar(11),GetDate(),112),112)) >= 1
AND T0.CardCOde = $[$4.0.0]
AND (Select balance from ocrd where cardcode=$[$4.0.0]) <>0

Hola como estas?
Tengo una consulta mas operativa…
Si se dan 15 días de crédito a esas facturas, es a todas las facturas nuevas? es a cierto cliente?

Si es a cierto cliente, porque no lo haces manual? entra en cada factura y suma esos 15 dias en el vencimiento…
Si es a todos los clientes, porque no cambias el vencimiento predeterminado de 30 a 45 dias?

Puedes hablar con tu jefe para preguntarle el porque de esa forma de ver las cosas…
Ahora bien, creo que te serviria mas pidiendo la antiguedad de clientes desde el reporte de finanzas, pero en la fecha del vencimiento del reporte, coloca la fecha dentro de 15 dias para que veas que todas las facturas te saldran con los dias vencidos por 15 dias…
no se si me expliqué?

image

1 me gusta

Para agregar 15 días de gracia al vencimiento de la factura en tu consulta, necesitas ajustar la lógica de comparación para tener en cuenta los 15 días adicionales. Esto se puede hacer modificando la cláusula WHERE para agregar esos días al campo DocDueDate.

Aquí tienes cómo ajustar tu consulta SQL:

Consulta Modificada

SELECT DISTINCT 'TRUE'
FROM OINV T0
WHERE T0.DocStatus = 'O'
AND DateDiff(dd, DATEADD(dd, 15, T0.DocDueDate), CONVERT(DateTime, CONVERT(nvarchar(11), GetDate(), 112), 112)) >= 1
AND T0.CardCode = $[$4.0.0]
AND (SELECT Balance FROM OCRD WHERE CardCode = $[$4.0.0]) <> 0

Explicación de los Cambios

  1. DATEADD: La función DATEADD se utiliza para agregar días a una fecha. En este caso, se están agregando 15 días al campo DocDueDate.

    DATEADD(dd, 15, T0.DocDueDate)
    
  2. DateDiff: La función DateDiff se utiliza para calcular la diferencia en días entre la nueva fecha (fecha de vencimiento más 15 días) y la fecha actual.

    DateDiff(dd, DATEADD(dd, 15, T0.DocDueDate), CONVERT(DateTime, CONVERT(nvarchar(11), GetDate(), 112), 112))
    

Proceso Paso a Paso

  1. Accede a la Herramienta de Consultas:

    • Abre SAP Business One y navega a Tools > Queries > Query Generator.
  2. Inserta la Consulta Modificada:

    • Copia y pega la consulta modificada en el generador de consultas.
  3. Ejecuta la Consulta:

    • Ejecuta la consulta para asegurarte de que funciona correctamente y devuelve los resultados esperados.

Ejemplo de la Consulta

Si tienes una factura que vence el 30 de abril, la consulta ahora considerará esta fecha más 15 días (es decir, el 15 de mayo) para determinar si debe aplicar la autorización.

Con esta consulta, puedes obtener las facturas vencidas considerando los 15 días adicionales de gracia.

Notas Adicionales

  • Validar Resultados: Asegúrate de validar los resultados para verificar que la lógica de los 15 días adicionales esté funcionando según lo esperado.
  • Performance: Dependiendo del tamaño de tu base de datos y del número de facturas, el uso de funciones de fecha puede tener un impacto en el rendimiento. Asegúrate de probar en un entorno de prueba antes de implementar en producción.

Si necesitas más ayuda o tienes alguna otra pregunta, no dudes en pedir más asistencia. ¡Estoy aquí para ayudarte!