-
Notifications
You must be signed in to change notification settings - Fork 12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
IN - Eliminar ingresos duplicados #1991
base: master
Are you sure you want to change the base?
Conversation
A modo de comentario, en la BD tengo cargado un egreso duplicado con fecha del 06/11/2024 pero al momento de ejecutar dentro de mi terminar node jobs/manual.js scripts/IN-598.js 2024-11-01 2024-11-31 no me lo modifica. Si a nadie le sucede lo mismo entonces el PR se encontraría aprobado. |
8b442f6
to
8f0722a
Compare
602a515
to
4965c6a
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Compa, utilizando la BD de Demo, no encuentro la internación en la fecha que mencionas, en todo caso si me podés compartir el registro que utilizaste, quedo atento.
|
4965c6a
to
cdfa5d0
Compare
egresoDuplicado.txt |
Compa, gracias por la observación, tenias toda la razón, en este ejemplo en particular q enviaste, sucedía que no estaba contamplando el caso de egresos duplicados que además de la misma fecha, tengan el mismo horario. Además, me sirvio para agregar una modificación donde el script abarque todo el dia que ingresa en el parametro de "fecha fin". |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fabi, estan bien detectados los movimientos duplicados pero dejo un par de sugerencias en el código. Además recordar que el movimiento que debería prevalecer es el que tiene misma fecha que la prestación. Con respecto a esto ultimo..
- La prestación debería existir, de lo contrario hay un error.
- Si ninguno de los dos movimientos coincide con la prestación, modificar alguno para que coincida.
❗IMPORTANTE: Al recorrer los estados/movimientos buscando duplicados, tener en cuenta que pueden existir anulados (deletedAt: Date) que deben ser omitidos.
scripts/IN-598.ts
Outdated
moment(new Date(paramInicio).setHours(0, 0, 0, 0)).format('YYYY-MM-DD HH:mm:ss') : | ||
moment(new Date().setHours(0, 0, 0, 0)).subtract(1, 'day').format('YYYY-MM-DD HH:mm:ss'); | ||
const end = moment(paramFin, 'YYYY-MM-DD', true).isValid() | ||
? moment(paramFin).endOf('day').format('YYYY-MM-DD HH:mm:ss') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tanto para start como para end la inicialización la dejaría como moment(paramInicio).startOf('day').toDate()
y moment(paramFin).endOf('day').toDate()
respectivamente. Y para validar los parametros, previo a la instanciación de las fechas sugiero..
if(!moment(paramInicio, 'YYYY-MM-DD', true).isValid() || !moment(paramFin, 'YYYY-MM-DD', true).isValid()) {
done();
}
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
agregado
scripts/IN-598.ts
Outdated
if (fecha && idInternacion) { | ||
const existeEstadoIndex = estadoSinDuplicar.findIndex(e => { | ||
const fechaConvertida = moment(e.fecha).format('YYYY-MM-DD'); | ||
return (fechaConvertida === fecha && e.extras?.idInternacion?.toString() === idInternacion.toString() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Con respecto a la comparación entre fechas, sugiero usar las funciones de moment para hacer el codigo mas conciso:
const fecha = moment(estado.fecha);
.
.
.
const fechaConvertida = moment(e.fecha);
return (fechaConvertida.isSame(fecha) && ...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Agregado.
Requerimiento
https://proyectos.andes.gob.ar/browse/IN-598
Funcionalidad desarrollada
UserStories llegó a completarse
Requiere actualizaciones en la base de datos