Las fórmulas de fecha se utilizan en multitud de sitios en Navision (para el cálculo de fechas de vencimiento en facturas, para el cálculo de fechas de caducidad y de garantía en productos, para el cálculo de fecha de entrega de productos según el plazo de entrega de los proveedores, para establecer la periodicidad de los diarios periódicos, etc.).
Por norma general utilizamos fórmulas de fecha simples (2D para indicar que el proveedor tiene un plazo de entrega de 2 días, 60D para calcular una fecha de vencimiento a 60 días, o 1M para indicar que la periodicidad de un diario periódico es de 1 mes). Las fórmulas de fecha, pero, pueden ser más complejas.
Empezaremos por enumerar las diferentes expresiones que se pueden utilizar en un campo de tipo Fórmula de Fecha. Posteriormente las combinaremos para obtener expresiones complejas y para acabar, daremos algunos ejemplos de cálculos de fecha que pueden ser de interés.
Accede al curso de Dynamics NAV
Sintaxis de la expresión de una Fórmula de Fecha
ExpresionDeFecha = < SubExpresión >
< SubExpresión > = [< Signo >]< Término >
dónde < SubExpresión > = +|-
< Término > se desglosa a continuación
< Término > = < Número >< UnidadTiempo >|< UnidadTiempo >< Número >|< Prefijo >
dónde < Número > = número entero positivo
< UnidadTiempo > = D|DS|S|M|T|A
(D = Día, DS = Día de la semana, S = Semana, M = Mes, T = Trimestre, A = Año)
< Prefijo > = P
(P = Presente)
Puede parecer complicado, pero no lo es en absoluto.
ExpresionDeFecha = < SubExpresión > significa que una Expresión de Fecha puede estar formada por ninguna o más subexpresiones.
Una SubExpresión puede o no tener Signo (+ o -) y tiene un Término.
Un Término puede ser un Número y una Unidad de Tiempo, una Unidad de Tiempo y un Número, o un Prefijo y una Unidad de Tiempo.
Por ejemplo, 30D (30 días) correspondería a un Número y una Unidad de Tiempo.
DS2 (día de la semana 2, martes) correspondería a una Unidad de Tiempo y un Número
PM (presente mes) correspondería a un Prefijo y una Unidad de Tiempo
Ejemplos
Las fórmulas de fecha se aplican a una Fecha de referencia, para obtener una fecha resultado
Fecha Referencia
|
Fórmula de Fecha
|
Descripción
|
Fecha resultado
|
Comentarios
|
21/12/2009
|
30D
|
30 días
|
20/01/2010
|
Suma 30 días a la fecha de referencia
|
21/12/2009
|
-30D
|
Menos 30 días
|
21/11/2009
|
Resta 30 días a la fecha de referencia
|
21/12/2009
|
1M
|
1 mes
|
21/01/2010
|
Suma un mes a la fecha de referencia
|
21/12/2009
|
1S
|
1 semana
|
28/12/2009
|
Suma una semana a la fecha de referencia
|
21/12/2009
|
1T
|
1 trimestre
|
21/03/2010
|
Suma un trimestre a la fecha de referencia
|
21/12/2009
|
1ª
|
1 año
|
21/12/2010
|
Suma un año a la fecha de referencia
|
21/12/2009
|
PS
|
Presente semana
|
27/12/2010
|
Último día de la presente semana
|
21/12/2009
|
PM
|
Presente mes
|
31/12/2009
|
Último día del presente mes
|
21/12/2009
|
-PM
|
Menos presente mes
|
01/12/2009
|
Primer día del presente mes
|
05/01/2010
|
PA
|
Presente año
|
31/12/2010
|
Último día del presente año
|
05/01/2010
|
-PA
|
Menos presente año
|
01/01/2010
|
Primer día del presente año
|
05/01/2010
|
PT
|
Presente trimestre
|
31/03/2010
|
Último día del presente trimestre
|
21/12/2009
|
DS1
|
Día de la semana 1 (lunes)
|
28/12/2209
|
Aunque 21/12/2009 es lunes, el cálculo busca el siguiente lunes desde una fecha dada
|
21/12/2009
|
DS2
|
Día de la semana 2 (martes)
|
22/12/2009
|
Siguiente martes
|
21/12/2009
|
-DS2
|
Menos día de la semana 2
|
14/12/2009
|
Anterior martes
|
21/12/2009
|
S1
|
Semana 1
|
04/01/2010
|
Primer día de la próxima semana 1
|
Estas fórmulas de fecha se pueden combinar obteniendo fórmulas con más de una subexpresión. Las subexpresiones se evalúan una a una, de izquierda a derecha. Cada vez que se calcula una subexpresión, se obtiene una nueva de fecha de referencia a la que se aplicará la siguiente subexpresión.
Fecha Referencia
|
Fórmula de Fecha
|
Descripción
|
Fecha resultado
|
Comentarios
|
21/12/2009
|
PM+45D
|
Presente mes + 45 días
|
14/02/2010
|
Última fecha del mes + 45 días
|
21/12/2009
|
2M-PM
|
2 meses menos presente mes
|
01/02/2010
|
Primer día de dentro de dos meses
|
Algunas fechas importantes siguen reglas que también podemos poner en una Fórmula de Fecha.
Por ejemplo, en mi ciudad, la Fiesta Mayor empieza el primer viernes del mes de Setiembre. Veamos cómo podemos calcular esta fecha.
Fecha Referencia
|
Fórmula de Fecha
|
Descripción
|
Fecha resultado
|
Comentarios
|
21/12/2009
|
M8+PM+DS5
|
Mes 8 más presente mes más día de la semana 5
|
03/09/2010
|
Mes 8 nos da la primera fecha del próximo mes de agosto, posteriormente le aplicamos la siguiente subexpresión (PM), para obtener la última fecha del mes de agosto, y posteriormente buscamos el siguiente viernes
|
13/06/2017
|
M8+PM+DS5
|
Mes 8 más presente mes más día de la semana 5
|
01/09/2017
|
Notad que en el 2017, el primer viernes del mes de setiembre es precisamente el día 1
|
21/12/2009
|
M9+DS5
|
Mes 9 más día de la semana 5
|
03/09/2010
|
Una fórmula de fecha más simple que la primera, buscamos el primer día del mes de setiembre y posteriormente buscamos el siguiente viernes
|
13/06/2017
|
M9+DS5
|
Mes 9 más día de la semana 5
|
08/09/2017
|
Pero que no funciona cuando casualmente el primer día del mes es el día que buscamos, puesto que desde el día 01/09 (que ya es viernes), calcula el siguiente viernes.
|
13/06/2017
|
M9-1D+DS5
|
Mes 9 menos un día más día de la semana 5
|
01/09/2017
|
Para que funcione, nos tenemos que situar primero en el día anterior (que es lo mismo que habíamos conseguido con M8+PM)
|
Si queréis probar vuestras propias fórmulas de fecha y el resultado obtenido con varias fechas de referencia, buscad en Navision una fórmula de fecha que posteriormente sepáis donde se utiliza y con qué fecha de referencia, y empezad a hacer pruebas.
Accede al curso de Dynamics NAV
Por ejemplo, cread un nuevo pedido de compra. Para el pedido, cread una línea de compra (de cualquier tipo, no es necesario informar de ningún campo, con tener la línea de compra es suficiente). En la línea de compra, visualizad y fijaos en los campos "Fecha Pedido" y "Fecha recepción esperada".
En la pestaña Recepción de la cabecera del pedido de compra, hay un campo llamado "Plazo entrega (días)", donde podéis poner vuestra fórmula de fecha (se informa con el valor del mismo campo en la ficha del proveedor, pero se puede cambiar en el pedido).
La fecha de referencia que se utilizará es la que aparece en el campo "Fecha Pedido" de la línea de compra.
La fecha que se calcula y por tanto en donde podréis ver el resultado, es "Fecha recepción esperada".
Id modificando el valor de "Plazo entrega (días)" y de "Fecha Pedido" para ver el resultado del cálculo de la nueva fecha.
Cuando hayáis acabado con las pruebas, recordad de eliminar el pedido de compra creado, o si habéis utilizado uno existente, recordad de dejarlo todo como estaba.
Cristina Nicolàs
Una batalla menos que tendré que ganar...
ResponderEliminarGracias por la aportación :P
Bueno y quizás lo más sencillo. Queremos pagar a 3 meses con días de pago 5 ó 20, se sobreentiende que si es el 01-01 tocaría el 05-04 y si es el día 10-01 el 20-04
ResponderEliminargracias
si necesita con urgencia un crédito Contacto conmigo aquí
ResponderEliminarmickaelducobet@gmail.com
Buenos dias,
ResponderEliminarNecesito poder poner presente quincena en NAV, pero no se como. ¿sabríais como?
Mi planteamiento es todas las facturas que registre entre la primera quincena la fecha vencimiento será 10 días más tarde de la quincena.
Muchas gracias de antemano.
Un saludo.