Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Estimados,
Buenas tardes, necesito de su ayuda para poder resolver un problema. Hace un tiempo integre una fórmula para obtener el flujo de caja "ideal", osea que el pago cayera justo en el mes que tienen los clientes para hacerlo(días de término de pago). Lo que ocurre es que estaba trabajando solamente con los comienzos de mes, osea con el primero y hay caso que los pago me caen en un mes antes porque tiene una condición de pago de 20 días.
Como ejemplo, el cliente X tiene una condición de pago de 20 días y la fecha de facturación de su pedido fue el 15/11/2019, lo que correspondería sería que el pago cayera en el mes de Diciembre (15/11/2019 + 20 días = Diciembre), pero como expliqué me está tomando el primer día del mes y caería en Noviembre porque estoy trabajando directamente con los meses. Lo que necesito es poder trabajar directamente con la fecha de facturación, que a eso se le vaya sumando la condición de pago.
Esta es la fórmula que estoy usando:
=date((If(Payment_terms>=0 and Payment_terms<30,[Date.autoCalendar.YearMonth],
if((Payment_terms>=30 and Payment_terms<60),(AddMonths([Date.autoCalendar.YearMonth],1)),
if((Payment_terms>=60 and Payment_terms<90),(AddMonths([Date.autoCalendar.YearMonth],2)),
if((Payment_terms>=90 and Payment_terms<120),(AddMonths([Date.autoCalendar.YearMonth],3)) ,
(AddMonths([Date.autoCalendar.YearMonth],4))))))),'MM/YYYY')
Cuando el término de pago está entre 0 y 30 es porque se supone que debería caer en el mismo mes, pero me dí cuenta que se debe trabajar con DD/MM/YYYY para que a la fecha se le sume los días que tienen como condición de pago cada cliente.
Espero me haya explicado bien y puedan ayudarme.
Agradecido desde ya,
Saludos.
Hola, para la cartera sería mejor usar fechas y nº de días concretos, ir añadiendo meses puede crear desviaciones importantes.
Para esto, si no tienes directamente la fecha de vencimiento, necesitas la fecha de facturación y el número de días de condición de pago de cada factura, con esto podrías calcular la fecha de vencimiento simplemente sumando ambos valores: Date(FechaFactura+DiasCondicion) as FechaVencimiento.
Normalmente la factura y/o el cliente/proveedor tiene un método de pago asociado, y de este método se podría obtener los días de condición de pago.
Con el campo payment_terms podría ser: Date(Invoice_date+Payment_terms) as Due_date
Saludos.
Hola.
Yo haría lo siguiente:
1.- calcular una nuevo campo en el script con la fecha de vencimiento de cada registro, sumando Date + Payment Terms
.... Date+Payment_terms AS "Fecha Pago"....
Con esto tendrías la fecha de pago exacta. Ten en cuenta que lo que tu haces es calcular la fecha a partir del AñoMes y sumando 1, 2, 3 ó 4 meses. cuando luego la conviertes a fecha de nuevo es cuando te toma el primer día del mes. Haz este cálculo en el momento de leer los datos del origen de datos, osea en el LOAD .... FROM....
2.- Añade esta nueva fecha en el autocalendar para que calcule el año, mes, día.... etc.
DERIVE FIELDS FROM FIELDS Date, [Fecha Pago]...
3.- Si usas el formato MM/YYYY te recomiendo que lo uses así: YYYYMM. el primer formato es un texto y lo ordena como tal, o sea, 01/2018, 01/2019, 02/2018, 02/2019.... mientras que el segundo es un nº y lo ordena correctamente: 201801,201802,201901,201902. No obstante si quieres visualizar el texto y ordenarlo numéricamente, modifica el script que genera el autocalendar y sustituye:
Dual(Year($1)&'-'&Month($1), monthstart($1)) AS [YearMonth]
por Dual(Month($1)&'/'&Year($1), monthstart($1)) AS [YearMonth]
Luego usa este campo en los gráficos y ordenalo numéricamente.
4.- Veo que tienes un campo llamado "Date" para la fecha. Te recomiendo que lo renombres a cualquier otra cosa. A mi en determinadas condiciones me ha dado problemas porque confunde el nombre del campo con el nombre de la función. Intenta no usar palabras reservadas en lo nombres de campos.
Espero que te solucione el problema.