Estoy intentando simbolizar un mapa según el tiempo transcurrido desde una fecha del campo "DATE_ISSUE" hasta hoy (es decir, Today()), de modo que si el punto tiene menos de 6 meses, esté «activo»; si tiene más de un año, esté «vencido»; si tiene entre 6 meses y un año, esté «antiguo»; y si no se ha introducido ninguna fecha en "DATE_ISSUE", esté «pendiente».
Tengo un registro de prueba con 67 puntos. A 24 no se les ha asignado una fecha; 1 punto es del 8 de diciembre de 2016 (518 días de antigüedad), 1 es del 8 de septiembre de 2017 (244 días de antigüedad), 1 es del 12 de mayo de 2017 (363 días de antigüedad) y el resto son de enero de 2018 en adelante.
Hasta ahora tengo esto:
var pDate = Date(Today());
var rDate = Date($feature["DATE_ISSUE"]);
var age = DateDiff(pDate, rDate, 'days');
if (age < 182.5){
"ACTIVO"
}
else if(age >= 182.5 && age <355){
"ANTIGUO"
}
else if (age >= 365 && age < 10000){
"VENCIDO"
}
else if (age > 10000){
"PENDIENTE"
}
Esta última cláusula else if se debe a que, en un campo "DATE_ISSUE" en blanco, la función DateDiff calcula el valor como 17,661.33.
Esto me da 40 «Activos», 24 «Pendientes» y los tres elementos con más de 182.5 días de antigüedad simplemente desaparecen. Literalmente. Mi tabla de atributos muestra los 67. Las opciones de simbología muestran un total de 64 puntos y 0 en «otros». Al marcar «otros», aparecen los 3, aunque el recuento sea 0.
Al revisar la función DateDiff, no se generan valores superiores a 126 días, salvo el valor de 17,661.33 mencionado anteriormente.
Solo quiero destacar visualmente los puntos vencidos o antiguos para que el personal de la oficina no tenga que buscarlos.