Skip to content

Commit bf2e478

Browse files
committed
(job): REC-202 Job para eliminar recetas con estado "eliminada"
1 parent a1b10c4 commit bf2e478

2 files changed

Lines changed: 34 additions & 0 deletions

File tree

jobs/eliminarRecetas.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import { eliminarRecetas } from './../modules/recetas/recetasController';
2+
3+
async function run(done) {
4+
await eliminarRecetas(done);
5+
}
6+
7+
export = run;

modules/recetas/recetasController.ts

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -829,3 +829,30 @@ export async function actualizarEstadosDispensa() {
829829
await informarLog.error('actualizarEstadosDispensa', {}, error);
830830
}
831831
}
832+
/**
833+
* Elimina recetas con estado "eliminada" y con fecha de cambio de estado mayor a 6 meses.
834+
* @param done
835+
*/
836+
export async function eliminarRecetas(done) {
837+
let totalRecetasAEliminar = 0;
838+
let totalRecetasEliminadas = 0;
839+
let query = {};
840+
try {
841+
const fechaEliminacion: any = await RecetasParametros.findOne({ key: 'fechaEliminacion' });
842+
const days = (fechaEliminacion && fechaEliminacion.value) ? Number(fechaEliminacion.value) : 180;
843+
const fechaLimite = moment().subtract(days, 'days').toDate();
844+
query = {
845+
'estadoActual.tipo': 'eliminada',
846+
'estadoActual.createdAt': { $lte: fechaLimite }
847+
};
848+
totalRecetasAEliminar = await Receta.countDocuments(query);
849+
const result = await Receta.deleteMany(query);
850+
totalRecetasEliminadas = result.deletedCount || 0;
851+
await jobsLog.info('eliminarRecetas', { totalRecetasAEliminar, totalRecetasEliminadas, query });
852+
} catch (err) {
853+
await jobsLog.error('eliminarRecetas', { totalRecetasEliminadas, totalRecetasAEliminar, query }, err);
854+
return (done(err));
855+
}
856+
done();
857+
}
858+

0 commit comments

Comments
 (0)