Error en carga de licencia en algunos agentes

Buenos días,

Nos informan los usuarios de mapuche que tienen problemas al cargar la licencia ART. 97e a un agente especifico, al probar con otros agentes no aparece el mensaje de error.

Viendo los logs se ve que el agente ya pidió la misma licencia hace unos años atrás, y el sistema va sumando los días pedidos en años anteriores por eso muestra el resultado “= -20“ en la pantalla de error. En agentes que se agregan por primera vez la misma licencia no hay inconvenientes.

Comparto el log y la captura del error.

DEBUG][mapuche]
                                SELECT
                                        dh05.fec_desde,
                                        COALESCE(dh05.fec_hasta,'2999-12-31'::date) AS fec_hasta
                                FROM
                                        mapuche.dh05 dh05
                                WHERE
                                                dh05.nro_legaj = '*******'
                                        AND dh05.nrovarlicencia = '117'
                                        AND date_part('year', dh05.fec_desde) <= 2026
                                        AND (date_part('year', dh05.fec_desde) >= '2017' OR date_part('year', COALESCE(dh05.fec_hasta,'2999-12-31'::date)) = '2017')
                                        AND TRUE

[DEBUG][mapuche] SQL con perfil de datos:
                                SELECT
                                        dh05.fec_desde,
                                        COALESCE(dh05.fec_hasta,'2999-12-31'::date) AS fec_hasta
                                FROM
                                        mapuche.dh05 dh05
                                WHERE
                                                dh05.nro_legaj = '**********'
                                        AND dh05.nrovarlicencia = '117'
                                        AND date_part('year', dh05.fec_desde) <= 2026
                                        AND (date_part('year', dh05.fec_desde) >= '2017' OR date_part('year', COALESCE(dh05.fec_hasta,'2999-12-31'::date)) = '2017')
                                        AND TRUE

[DEBUG][mapuche] SELECT ABS(DATE '2022-07-22' - DATE '2022-07-18') as dias
[DEBUG][mapuche]
                                SELECT
                                        dh05.fec_desde,
                                        COALESCE(dh05.fec_hasta,'2999-12-31'::date) AS fec_hasta
                                FROM
                                        mapuche.dh05 dh05
                                WHERE
                                                dh05.nro_legaj = '**********'
                                        AND dh05.nrovarlicencia = '117'
                                        AND date_part('year', dh05.fec_desde) <= 2027
                                        AND (date_part('year', dh05.fec_desde) >= '2018' OR date_part('year', COALESCE(dh05.fec_hasta,'2999-12-31'::date)) = '2018')
                                        AND TRUE

[DEBUG][mapuche] SQL con perfil de datos:
                                SELECT
                                        dh05.fec_desde,
                                        COALESCE(dh05.fec_hasta,'2999-12-31'::date) AS fec_hasta
                                FROM
                                        mapuche.dh05 dh05
                                WHERE
                                                dh05.nro_legaj = '********'
                                        AND dh05.nrovarlicencia = '117'
                                        AND date_part('year', dh05.fec_desde) <= 2027
                                        AND (date_part('year', dh05.fec_desde) >= '2018' OR date_part('year', COALESCE(dh05.fec_hasta,'2999-12-31'::date)) = '2018')
                                        AND TRUE

[DEBUG][mapuche] SELECT ABS(DATE '2022-07-22' - DATE '2022-07-18') as dias
[DEBUG][mapuche]
                                SELECT
                                        dh05.fec_desde,
                                        COALESCE(dh05.fec_hasta,'2999-12-31'::date) AS fec_hasta
                                FROM
                                        mapuche.dh05 dh05
                                WHERE
                                                dh05.nro_legaj = '***********'
                                        AND dh05.nrovarlicencia = '117'
                                        AND date_part('year', dh05.fec_desde) <= 2028
                                        AND (date_part('year', dh05.fec_desde) >= '2019' OR date_part('year', COALESCE(dh05.fec_hasta,'2999-12-31'::date)) = '2019')
                                        AND TRUE

[DEBUG][mapuche] SQL con perfil de datos:
                                SELECT
                                        dh05.fec_desde,
                                        COALESCE(dh05.fec_hasta,'2999-12-31'::date) AS fec_hasta
                                FROM
                                        mapuche.dh05 dh05
                                WHERE
                                                dh05.nro_legaj = '***********'
                                        AND dh05.nrovarlicencia = '117'
                                        AND date_part('year', dh05.fec_desde) <= 2028
                                        AND (date_part('year', dh05.fec_desde) >= '2019' OR date_part('year', COALESCE(dh05.fec_hasta,'2999-12-31'::date)) = '2019')
                                        AND TRUE

[DEBUG][mapuche] SELECT ABS(DATE '2022-07-22' - DATE '2022-07-18') as dias


[DEBUG][mapuche]
                                SELECT
                                        dh05.fec_desde,
                                        COALESCE(dh05.fec_hasta,'2999-12-31'::date) AS fec_hasta
                                FROM
                                        mapuche.dh05 dh05
                                WHERE
                                                dh05.nro_legaj = '**********'
                                        AND dh05.nrovarlicencia = '117'
                                        AND date_part('year', dh05.fec_desde) <= 2029
                                        AND (date_part('year', dh05.fec_desde) >= '2020' OR date_part('year', COALESCE(dh05.fec_hasta,'2999-12-31'::date)) = '2020')
                                        AND TRUE

[DEBUG][mapuche] SQL con perfil de datos:
                                SELECT
                                        dh05.fec_desde,
                                        COALESCE(dh05.fec_hasta,'2999-12-31'::date) AS fec_hasta
                                FROM
                                        mapuche.dh05 dh05
                                WHERE
                                                dh05.nro_legaj = '**************'
                                        AND dh05.nrovarlicencia = '117'
                                        AND date_part('year', dh05.fec_desde) <= 2029
                                        AND (date_part('year', dh05.fec_desde) >= '2020' OR date_part('year', COALESCE(dh05.fec_hasta,'2999-12-31'::date)) = '2020')
                                        AND TRUE

[DEBUG][mapuche] SELECT ABS(DATE '2022-07-22' - DATE '2022-07-18') as dias
[DEBUG][mapuche]
                                SELECT
                                        dh05.fec_desde,
                                        COALESCE(dh05.fec_hasta,'2999-12-31'::date) AS fec_hasta
                                FROM
                                        mapuche.dh05 dh05
                                WHERE
                                                dh05.nro_legaj = '**********'
                                        AND dh05.nrovarlicencia = '117'
                                        AND date_part('year', dh05.fec_desde) <= 2030
                                        AND (date_part('year', dh05.fec_desde) >= '2021' OR date_part('year', COALESCE(dh05.fec_hasta,'2999-12-31'::date)) = '2021')
                                        AND TRUE

[DEBUG][mapuche] SQL con perfil de datos:
                                SELECT
                                        dh05.fec_desde,
                                        COALESCE(dh05.fec_hasta,'2999-12-31'::date) AS fec_hasta
                                FROM
                                        mapuche.dh05 dh05
                                WHERE
                                                dh05.nro_legaj = '********'
                                        AND dh05.nrovarlicencia = '117'
                                        AND date_part('year', dh05.fec_desde) <= 2030
                                        AND (date_part('year', dh05.fec_desde) >= '2021' OR date_part('year', COALESCE(dh05.fec_hasta,'2999-12-31'::date)) = '2021')
                                        AND TRUE

[DEBUG][mapuche] SELECT ABS(DATE '2022-07-22' - DATE '2022-07-18') as dias
[DEBUG][mapuche]
                                SELECT
                                        dh05.fec_desde,
                                        COALESCE(dh05.fec_hasta,'2999-12-31'::date) AS fec_hasta
                                FROM
                                        mapuche.dh05 dh05
                                WHERE
                                                dh05.nro_legaj = '**********'
                                        AND dh05.nrovarlicencia = '117'
                                        AND date_part('year', dh05.fec_desde) <= 2031
                                        AND (date_part('year', dh05.fec_desde) >= '2022' OR date_part('year', COALESCE(dh05.fec_hasta,'2999-12-31'::date)) = '2022')
                                        AND TRUE

[DEBUG][mapuche] SQL con perfil de datos:
                                SELECT
                                        dh05.fec_desde,
                                        COALESCE(dh05.fec_hasta,'2999-12-31'::date) AS fec_hasta
                                FROM
                                        mapuche.dh05 dh05
                                WHERE
                                                dh05.nro_legaj = '**********'
                                        AND dh05.nrovarlicencia = '117'
                                        AND date_part('year', dh05.fec_desde) <= 2031
                                        AND (date_part('year', dh05.fec_desde) >= '2022' OR date_part('year', COALESCE(dh05.fec_hasta,'2999-12-31'::date)) = '2022')
                                        AND TRUE

[DEBUG][mapuche] SELECT ABS(DATE '2022-07-22' - DATE '2022-07-18') as dias


[DEBUG][mapuche]
                                SELECT
                                        dh05.fec_desde,
                                        COALESCE(dh05.fec_hasta,'2999-12-31'::date) AS fec_hasta
                                FROM
                                        mapuche.dh05 dh05
                                WHERE
                                                dh05.nro_legaj = '*********'
                                        AND dh05.nrovarlicencia = '117'
                                        AND date_part('year', dh05.fec_desde) <= 2035
                                        AND (date_part('year', dh05.fec_desde) >= '2026' OR date_part('year', COALESCE(dh05.fec_hasta,'2999-12-31'::date)) = '2026')
                                        AND TRUE

[DEBUG][mapuche] SQL con perfil de datos:
                                SELECT
                                        dh05.fec_desde,
                                        COALESCE(dh05.fec_hasta,'2999-12-31'::date) AS fec_hasta
                                FROM
                                        mapuche.dh05 dh05
                                WHERE
                                                dh05.nro_legaj = '***********'
                                        AND dh05.nrovarlicencia = '117'
                                        AND date_part('year', dh05.fec_desde) <= 2035
                                        AND (date_part('year', dh05.fec_desde) >= '2026' OR date_part('year', COALESCE(dh05.fec_hasta,'2999-12-31'::date)) = '2026')
                                        AND TRUE

[DEBUG][mapuche] [Respuesta AJAX]  array (
  'fecha_sugerida' => NULL,
  'mensaje_error' => 'La cantidad de d�as remanentes, no alcanza para completar la M�NIMA duraci�n REQUERIDA por cada fragmento. Cantidad de D�as Remanentes = -20.',
)

El error aparece al momento de seleccionar la fecha desde.

Comparto la configuración de la misma.

Versión de Mapuche. 3.30.2 r2

Quedo al tanto de su respuesta, saludos.

Buenas, modificando la cantidad de periodicidad a 1 se soluciona el error.

La licencia se renueva anualmente.

Saludos.