06 octubre 2011

Propiedad Editable de los campos mostrados en una página

El cliente RTC de Microsoft Dynamics NAV salió hace ya unos cuantos años. Seguramente muchos técnicos de Navision enseguida se pusieron a trabajar con él y dominan ya a la perfección cómo programar páginas, cómo cambian las páginas respecto a los formularios y todo este tipo de cosas.
Por desgracia, no es mi caso. Intento estar siempre al día, pero en el caso del RTC, no lo he estado demasiado. He mirado documentación, por supuesto, pero hasta ahora aún he trabajado para clientes que estaban en versiones anteriores de Microsoft Dynamics NAV. 
Ahora me pongo a programar para el RTC, que es un mundo completamente nuevo para mi, y empiezo a descubrir cómo hacerlo, los pequeños trucos, etc.
Estará desfasado, sí, pero voy a hacer unos cuantos posts explicando aquellos pequeños trucos y cosas varias que vaya encontrando.




Accede al curso de Dynamics NAV



Dicho esto, empiezo con el primer truco, el que da nombre al título de este post:

Propiedad Editable de los campos mostrados en una página

En un formulario, la propiedad Editable de un control (TextBox, CheckBox, etc.) mostrado en el formulario es un valor fijo que acepta los valores Sí y No.

La propiedad, pero, puede cambiarse en tiempo de ejecución asignando un nuevo valor a la propiedad con una sentencia como la siguiente:
CurrForm."Nombre del Control".EDITABLE(NuevoValorDeLaPropiedad);

En las páginas, este comportamiento es distinto. La propiedad Editable de los controles acepta una expresión booleana. Pero no existe una función para cambiar la propiedad en tiempo de ejecución, es decir, no se puede escribir una sentencia como la siguiente:

CurrPage."Nombre del control".EDITABLE(NuevoValorDeLaPropiedad);

Cómo podemos entonces reproducir el comportamiento de hacer un campo Editable/No Editable en tiempo de ejecución?

La herramienta de transformación de formularios a páginas hace lo siguiente:
* Declara una variable global, de tipo boolean, a la que llama NombreDelControlEditable
* Cambia la sentencia
CurrForm."Nombre del Control".EDITABLE(NuevoValorDeLaPropiedad);
   por
NombreDelControlEditable := NuevoValorDeLaPropiedad;
* Asigna la variable global creada a la propiedad Editable del control

Podéis ver un ejemplo de lo comentado en la ficha del cliente (Form 21 y Página 21). En la ficha del cliente, el estándar de Microsoft Dynamics NAV hace editable el campo Contacto en función de si hay o no un Nº contacto. 


Cristina Nicolàs

03 octubre 2011

Sesiones de formación sobre los costes de NAV

El pasado 27 de septiembre tuve la oportunidad de asistir a un evento organizado por Microsoft llamado "What's up in Dynamics NAV Inventory Costing". Se trata de una iniciativa de formación online, sesiones formativas a través de Live Meeting. La de la semana pasada fue la primera que trataba el área de costes de Navision. Cada 2 meses se celebrará una sesión parecida. La próxima ya tiene fecha: el 22 de noviembre. Allí estaré para escuchar lo que puedan explicar.


En la primera sesión explicaron algún bug conocido en el área de costes de Microsoft Dynamics NAV, explicaron cómo se asignan las fechas de registro cuando se ejecuta el proceso de valoración de stocks (haciendo un repaso histórico de cómo ha ido cambiando a lo largo de las diferentes versiones), también cómo se asignan las fechas de registro cuando se registran los costes en la contabilidad.
Todo muy interesante. Me ayudó a hacer un repaso de cosas que más o menos sabía, algunas que quizá tenía un poco olvidadas y sobre todo, a profundizar un poco en algunos detalles.




Accede al curso de Dynamics NAV




Pero lo más interesante, sin duda, fue descubrir que existe una herramienta llamada "Costing Error Detection Tool". No tenía ni idea que existiera una herramienta cómo esta. En cualquier caso, pero, la herramienta actual está más que desfasada (se hizo en 2003, para las versiones 3.xx). Pero, notícia importante, en unas 2 semanas debería estar disponible para descarga en la Partner Source la misma herramienta para Microsoft Dynamics NAV 2009 (servirá también para las versiones 5.xx, pues los costes no han cambiado).


La herramienta, así a grosso modo, incluye:
* Informe de detección de errores.
  El informe testeará las cantidades, liquidaciones, fechas de registro, costes esperados, etc.
  Debería recorrer toda la información sobre costes en una empresa y comprobar que todos los datos sean los esperados.
* Documentación
  - Explicación del diseño del área de costes: las diferentes tablas involucradas, cómo se tratan las transerencias, cómo se tratan las liquidaciones fijas, etc.
  - Explicación sobre la corrección de datos


Sin duda estaré pendiente cuando salga esta herramienta para analizarla y sacar mis propias conclusiones.


De momento, probaré con la herramienta actual. Para quien la quiera ver también, éste es el link para la descarga.
según dijeron, la herramienta salió para detectar errores que se habían producido en los costes (y liquidaciones de productos) al migrar de versiones anteriores a las versiones 3.xx. La herramienta es válida también para las versiones 4.xx de Navision (excepto para productos valorados a coste medio, y aún menos para productos valorados a coste medio con movimientos de transferencia).


Yo me acabo de descargar la herramienta actual. En cuanto la haya analizado os lo haré saber.


Cristina Nicolàs

NAVtechDays 2011

El 29 y 30 de septiembre se realizó en Bélgica una conferencia organizada por mibuso dirigida a técnicos que trabajan con Microsoft Dynamics NAV: NAVtechdays 2011
Tuve la gran suerte de poder asistir a tal evento, en el que se vieron nuevos aspectos de la próxima versión de Navision, pero también cosas de versiones que ya están en el mercado.
Fue realmente interesante, la verdad. En los próximos días escribiré sobre las impresiones recogidas en el evento.




Accede al curso de Dynamics NAV



También hubo tiempo para lo social. Me gustó poder conocer a gente con la que hemos coincidido mucho en tipsdbits, a JAJ y a kitik (aunque a kitik la tengo ya más que vista), pero también a otra gente cómo los compañeros canarios. Desde aquí un saludo para todos.

Y también tiempo para el turismo. Antwerpen es una ciudad preciosa. Y aprovechando el viaje, me quedé el fin de semana en Bélgica y visité también Gent y Brugge. Todas ellas ciudades encantadoras, de verdad, os las recomiendo.

Cristina Nicolàs

05 septiembre 2011

Ley contra la morosidad: Los informes


Con la funcionalidad liberada por Microsoft para adecuarse a la Ley contra la morosidad en España, venían 2 nuevos informes (hay que actualizar la licencia para poderlos usar): Cliente - pagos vencidos y Proveedor - pagos vencidos.

Tras analizarlos, mi indignación, expresada ya en el post anterior, no ha hecho más que crecer.
El informe Cliente - pagos vencidos mira las facturas de los clientes y su fecha de pago, y da un resumen estadístico del número de pagos realizados dentro y fuera del período de vencimiento de las facturas.

Parece correcto, pero, se excluyen de este informe todas aquellas facturas que han generado uno o varios efectos. La factura no se ha liquidado contra un pago sinó contra un efecto, y es el efecto el que se ha liquidado contra el pago. El informe no tiene en cuenta la factura (porque no se ha liquidado contra un pago y por tanto no se puede comparar la fecha de vencimiento contra la fecha de pago), ni tampoco el efecto (porque sólo mira facturas).





Accede al curso de Dynamics NAV


Y además, lo dicho, sólo tiene en cuenta facturas ya pagadas. Para que la estadística fuera un poco mejor podría también tener en cuenta facturas no pagadas aún, que podrían estar aún dentro del plazo o se podrían haber pasado ya...

Idem en el informe de proveedores.

Esperamos un año a que Microsoft haga cambios para adecuarse a la ley.
Y cuando por fin aparecen:

Las modificaciones que se realizan son mínimas y no tienen en cuenta algunos aspectos de la ley.
Las modificaciones no tienen en cuenta funcionalidades de la localización española de Microsoft Dynamics NAV.

Que alguien me lo cuente porqué no entiendo nada.

Cristina Nicolàs

Dynamica

Ley contra la morosidad: impresiones sobre la nueva funcionalidad


Tenemos ya disponibles los objetos para adecuar Microsoft Dynamics NAV a la Ley de Morosidad. En este otro post tenéis los links para la descarga.

Hace ya unos cuantos meses, cuando anuncié que Microsoft estaba trabajando en una funcionalidad para adecuarse a esta ley (podéis leer el post aquí), explicaba que lo que no controlaba Navision era el hecho que la fecha de vencimiento debería calcularse en base a la fecha de entrega (o recepción) de los bienes o prestación de los servicios. Tampoco controlaba el hecho que en una misma factura pueden juntarse varias entregas, siempre y cuando el período entre entregas no sea superior a los 15 días, caso en el qué la fecha de vencimiento debería calcularse en base a la fecha correspondiente a la mitad del período que se factura.

Comentaba que del modo cómo trabaja Navision respecto al cálculo de las fechas de vencimiento, nos bastaba con definir nuevos términos de pago y poner (manualmente) las fechas de emisión del documento adecuadas.




Accede al curso de Dynamics NAV


Las expectativas que tenía para la funcionalidad que Microsoft ha desarrollado, eran principalmente que de algún modo se tuvieran en cuenta las fechas de registro de los albaranes, para el cálculo de la fecha de vencimiento, y también para no permitir juntar albaranes cuya diferencia entre fechas de registro fuera superior a 15 días.

Dicho esto y tras haber analizado los cambios en la funcionalidad de cálculo de fechas de vencimiento que introduce esta herramienta, he de decir que me siento completamente decepcionada y que creo que la herramienta liberada por Microsoft es deficiente. Lo que cambia respecto a lo que venía siendo el estándar de Microsoft Dynamcics NAV es tan poco, y además se podía ya obtener casi el mismo resultado mediante la correcta configuración de los términos de pago, que, sinceramente, tras tantos meses de espera desde la modificación de la ley (que es de Julio de 2010), creo que es indignante lo que han hecho. Parece que han hecho algún pequeño cambio sólo para poder decir que no han pasado olímpicamente del tema.

¿Qué cambios introduce la nueva funcionalidad? 

Se introduce un nuevo campo en la configuración de los Términos de Pago, llamado "Nº máximo de días hasta la fecha de vencimiento". 
El cálculo de la fecha de vencimiento se sigue haciendo en base a la Fecha de Emisión del Documento. Si el cálculo del vencimiento según el término de pago se pasa del nº de días especificado en el mismo, entonces el límite especificado en este nuevo campo es el que queda como fecha de vencimiento.
Al tener en cuenta días de pago y períodos de no pago, Microsoft Dynamics NAV siempre acababa estableciendo fechas de vencimiento posteriores a la calculada inicialmente por el término de pago. Ahora es capaz también de ir hacía atrás en el cálculo del vencimiento, para cumplir con el máximo de días establecido.
Si encuentra cualquier tipo de incongruencia de fechas, nos deja la fecha de vencimiento en blanco y es el usuario quien debe introducirla de forma manual.

Para quien usa la casuística simple de cálculo de fechas de vencimiento (cálculo basado única y exclusivamente en Términos de Pago), la nueva funcionalidad liberada por Microsoft no aporta absolutamente nada. Si antes tenía términos de pago para cálculo a 30D, 60D, 90D, etc., y ahora el máximo número de días permito son 60... no necesito nada nuevo... dejo de utilizar todos aquellos términos de pago con un cálculo superior a estos 60 días, definiendo nuevos términos de pago si lo considero oportuno... y listos!

Cuando se combinan los términos de pago con días de pago y con períodos de no pago, entonces la funcionalidad parece que sí que sirve de algo. Sabéis que utilizando los días de pago y los períodos de no pago, la fecha de vencimiento final siempre es igual o superior al término de pago. Entonces no nos basta con definir los términos de pago para adecuarse a la ley y dejar de utilizar los que establecieran períodos más grandes. La nueva funcionalidad también prevee que la fecha final pueda ser inferior a lo calculado inicialmente por el término de pago.

Por ejemplo:

Utilizo un Término de Pago llamado 30D (que calcula el vencimiento a 30 días). Establecemos que el nº máximo de días son 45.
El día de pago para el cliente es el día 15.
El período de no pago es del 01/08/2012 hasta 31/08/2012

Fecha emisión documento: 27/01/2012

Fecha vencimiento antes de la nueva herramienta: 15/03/2012 (27/01 + 30D = 26/02/2012. Lo llevamos hasta el siguiente día 15 que es el 15/03/2012)
Fecha vencimiento: 15/02/2012 (Antes se calculaba 15/03, que es posterior a los 45 días máximos, de modo que lo lleva al anterior día 15, el 15/02)

Fecha emisión documento: 27/06/2012

Fecha vencimiento antes de la nueva herramienta: 15/09/2012 (por el término de pago debería ser 15/08/2012, pero como es un período de no pago, lo lleva hasta el siguiente día 15, el 15/09/2012)
Fecha vencimiento: 15/07/2012 (Antes se calculaba 15/09/2012, que no cumple con los 45 días máximos, de modo que lo lleva al anterior día 15, el 15/07)

Algo hemos avanzado con la nueva funcionalidad, no puedo negarlo. Pero a grosso modo funciona del mismo modo en cómo ya venía funcionando Microsoft Dynamics NAV.

Faltan muchas otras cosas: 
¿dónde se tiene en cuenta la fecha de entrega o recepción de los bienes? No hubiera sido tan difícil utilizar de algún modo las fechas de registro de los albaranes...
¿dónde se tiene en cuenta que no se puede juntar en una misma factura entregas realizadas con más de 15 días de diferencia?
¿hay algún control sobre los productos perecederos, de los que la ley habla específicamente para establecer condiciones diferentes?

Nada, no hay nada. Lo tiene que controlar el usuario de forma manual.

Estoy de acuerdo que hay muchas leyes y dentro de estas, mucha variabilidad, y que un ERP no tiene porque recogerlo absolutamente todo. Al final realmente todo queda bajo responsabilidad del usuario. Qué sé yo, la administración establece por ejemplo las fechas en las que hay que presentar las declaraciones de IVA, por ejemplo, y el ERP no lo tiene en cuenta para nada, puedes calcular y registrar la declaración de IVA a posteriori si quieres, que no se va a quejar ni te va a advertir ni nada. Cierto, el ERP no tiene porque recoger absolutamente todo aquello que establecen las leyes...

De todos modos, esta herramienta se ha quedado tan, pero que tan corta, que no puedo más que sentirme decepcionada e indignada.

Cristina Nicolàs

Ley contra la morosidad: Objetos para Microsoft Dynamics NAV

Hace ya unos cuantos meses anuncié que Microsoft estaba desarrollando una funcionalidad para Microsoft Dynamics NAV que tuviera en cuenta la nueva ley contra la morosidad.

Hoy anuncio que los objetos de esta nueva funcionalidad están ya disponibles para ser descargados en la PartnerSource y también en la CustomerSource.

Aquí van los links:
Versión 5.0 SP1    Descarga en PartnerSource         Descarga en CustomerSource
Versión 2009 SP1  Descarga en PartnerSource         Descarga en CustomerSource


Cristina Nicolàs




Accede al curso de Dynamics NAV

25 abril 2011

Costes VI: Liq. por nº orden en producto valorado a Medio



En un post anterior, Costes V: Liq. por nº orden explicamos cómo alterar la liquidación de los movimientos de producto. Vimos que esa alteración en la liquidación alteraba también el coste de la salida realizada (de hecho, ese era el propósito del ejemplo que hicimos). El ejemplo con el que ilustramos el post era de un producto valorado con el método de valoración de existencias FIFO. Vimos que la última salida que registramos no tomaba el coste de la entrada que le hubiera tocado según el FIFO, sino que cogió el coste de la entrada que a nosotros nos interesó.
El método FIFO asigna a una salida el coste de una entrada, igual cómo lo hace también el LIFO, el Estándar o el Especial. Usando el campo adecuado, hicimos que en vez de coger el coste de la entrada que le tocaba, cogiera el de otra entrada distinta, pero aún así, poca cosa cambia respecto al concepto que estos métodos de valoración de existencias.




Accede al curso de Dynamics NAV



Pero con el Medio... ¿qué pasa con el Medio? ¿Qué ocurriría si realizáramos los mismos ejemplos con un producto valorado a Medio? Alteramos la liquidación. Vale, muy bien. Pero en teoría no deberíamos alterar los costes, puesto que en el método de valoración de existencias Medio, el coste que se le da a una salida no es el coste específico de una de las entradas. Se le da más bien el coste medio existente a la fecha de la salida, del modo explicado en el primer post de la serie de costes: Costes I: Métodos de Valoración de Existencias.

Veamos con un ejemplo qué efecto tiene el uso del campo "Liq. por nº orden" en un producto valorado según el método de valoración de existencias Medio.



Cómo se puede ver en la imagen, se han realizado 3 entradas, una con un coste unitario de 10, la segunda con un coste unitario de 10,5 y la última con un coste unitario de 11. El coste medio actual, tal y como se puede ver en la ficha del producto es 10,42.
Entonces, una salida liquidada contra la última de las compras, ¿qué coste tomará? ¿El coste medio actual del producto? ¿O el coste de la entrada seleccionada?

Hagamos la prueba y lo veremos:

El coste ha sido el de la entrada seleccionada. Además, si nos fijamos en el nuevo coste unitario en la ficha del producto, veremos que éste se ha actualizado, de modo que la parte de la entrada que ha salido liquidada de este modo no ha sido tenida en cuenta en el cálculo del coste unitario del producto.

Este comportamiento es adecuado para el supuesto planteado en el post anterior. Hacíamos una compra de urgencia más cara de lo habitual. Sabíamos que la venta posterior tomaba el stock de esta compra de urgencia, de modo que queríamos reflejar esa situación para que el beneficio en esa venta fuera el correcto.
Y en este caso, así es, la venta toma el coste de esta última entrada, de modo que el beneficio será el correcto, y además, esta compra de urgencia no nos ha alterado el coste medio del producto. Perfecto.

Cristina Nicolàs