fix(account.invoice): corrección definitiva al cálculo de la fecha de emisión
El cálculo de la fecha de emisión había sucitado algunos problemas ya que no consideraba correctamente el rango de tiempo que proporciona el SAT para realizar el timbrado de la factura.
Originalmente se había creado la función que calculaba la hora de timbrado sumando 5 minutos para que se pudiera timbrar en el pasado, esto ocasionaba que varias facturas no se pudieran timbrar de manera automática cuando se creaban porque la hora de generación quedaba fuera de rango.
Luego se modificó la función para que se restara un minuto a la hora actual. Esto permitía timbrar correctamente las facturas recién creadas pero volvía a introducir el problema con las facturas creadas en el pasado.
Adicionalmente había un problema con el guardado de la hora ya que no se convertía la fecha calculada en la zona horaria de UTC ocasionando que a la hora de timbrar se generara una conversión de zona horaria adicional que alteraba por completo la fecha de emisión de la factura llegando a haber casos en que se generaba la factura con una fecha de emisión de un periodo anterior. En especial cuando la emisión de la factura se hacía el primer día del periodo siguiente.
Para corregir esto lo que estamos haciendo ahora es considerar la fecha que se seleccionó para la emisión de la factura y comparándola contra la fecha actual. Si es una fecha en el pasado le aumentamos 1 minuto a la fecha calculada para estar en el rango de las 72 horas y si no le restamos 1 minuto para quedar en el rango de las 72 horas.
Adicionalmente agregamos la conversión de la zona horaria antes de guardar la fecha y con eso evitamos la doble conversión para asegurar que siempre se respeta la fecha seleccionada por el usuario.