Skip to content

Latest commit

 

History

History
97 lines (68 loc) · 2.86 KB

Yearly.md

File metadata and controls

97 lines (68 loc) · 2.86 KB

/*

Actualización anual sici:

Supuesto que se aplique a la anualidad 2018, el script mongodb a ejecutar desde su shell sería:

*/
anualidad = "a2018"; //cambiar este valor según la anualidad

periodoupdate = {};
periodoupdate[anualidad] = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];

db.periodo.update({}, {$set: periodoupdate});


var plantilla = db.plantillaanualidad.findOne();
delete plantilla._id;

/* aplicar plantilla anualidad a los procedimientos */

fieldname = "periodos." + anualidad;
restriction = {};
restriction[fieldname] = {$exists: false};
procedimientoupdate = {};
procedimientoupdate[fieldname] = plantilla;

db.procedimiento.update(restriction, {$set:procedimientoupdate}, {multi:true});

/*
Las siguientes actualizaciones no son del todo necesarias, pero hacerlas de una vez
ayuda a evitar algunas comprobaciones en cada interacción. Son recomenables.
*/

/* aplicar plantillas sobre los indicadores */

plantillavalores = [null, null, null, null, null, null, null, null, null, null, null, null, 0];

fieldname = "valores." + anualidad;
restrictionindicador = {};
restrictionindicador[fieldname] = {$exists: false};
indicadorupdate = {};
indicadorupdate[fieldname] = plantillavalores;

db.indicador.update(restrictionindicador, { $set: indicadorupdate}, {multi:true});

plantillaobservaciones = ["", "", "", "", "", "", "", "", "", "", "", "", ""];

fieldname = "observaciones." + anualidad;
restrictionindicador2 = {};
restrictionindicador2[fieldname] = {$exists: false};
indicadorupdate2 = {};
indicadorupdate2[fieldname] = plantillaobservaciones;

db.indicador.update(restrictionindicador2, {$set: indicadorupdate2}, {multi:true});

plantillavalores = [null, null, null, null, null, null, null, null, null, null, null, null, 0];

fieldname = "valoresacumulados." + anualidad;
restrictionindicador3 = {};
restrictionindicador3[fieldname] = {$exists: false};
indicadorupdate3 = {};
indicadorupdate3[fieldname] = plantillavalores;

db.indicador.update(restrictionindicador3, {$set: indicadorupdate3}, {multi:true});

plantillaactividad = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];

fieldname = "actividad." + anualidad;
restrictionindicador4 = {};
restrictionindicador4[fieldname] = {$exists: false};
indicadorupdate4 = {};
indicadorupdate4[fieldname] = plantillaactividad;

db.indicador.update(restrictionindicador4, {$set: indicadorupdate4}, {multi:true});


/* aplicar plantilla sobre objetivos */

tplValores = {"resultado" : null, "formula" : []};
valoresobjetivo = [];
for (var i = 0; i < 13; i++){
	valoresobjetivo.push(tplValores);
}

db.objetivo.find({}).forEach(function (doc){
	for(var i = 0, j = doc.formulas.length; i < j;i++){
		var obj = { '$set': {} };
		var fieldname = 'formulas.' + i + '.valores.' + anualidad;
		var restriction = {_id: doc._id};
		restriction[fieldname] = {$exists: false};

		obj.$set[fieldname] = valoresobjetivo;
		db.objetivo.update(restriction, obj);
	}
});