- Projects: Shared / Personal

This commit is contained in:
Paolo Arena
2019-04-25 00:30:19 +02:00
parent f3964b0ff0
commit d44c0f3769
2 changed files with 49 additions and 15 deletions

View File

@@ -221,19 +221,45 @@ ProjectSchema.statics.getIdParentByIdProj = function (idProj) {
};
ProjectSchema.statics.creaProjMain = async function () {
const projmain = {
descr: process.env.PROJECT_DESCR_MAIN,
longdescr: process.env.PROJECT_DESCR_MAIN,
typeproj: 1,
id_main_project: null,
id_parent: null,
privacyread: server_constants.Privacy.all
};
return await new Project(projmain).save()
.then(ris => {
console.log('ris', ris);
if (!!ris)
return ris._doc;
else
return null;
});
};
ProjectSchema.statics.getAllProjects = async function (userId) {
var Project = this;
// console.log('getAllProjects');
let obj = [];
const projbase = await Project.findById(process.env.PROJECT_ID_MAIN)
const projbase = await Project.findOne( { descr: process.env.PROJECT_DESCR_MAIN })
.then(ris => {
if (!!ris) {
// console.log('ris', ris);
if (!!ris._doc)
return ris._doc;
else
return null;
}else {
return Project.creaProjMain();
}
});
obj.arrproj = await Project.findAllProjByUserId(userId);

View File

@@ -274,7 +274,7 @@ class CalcTodo {
addDataProj(datain) {
if (!!datain) {
if (datain.actualphase === this.mydata.phase) {
CalcTodo.addFields(this.mydata, datain);
CalcTodo.addFields(this.mydata, datain, true);
}
}
}
@@ -282,19 +282,20 @@ class CalcTodo {
addDataTodo(datain) {
if (!!datain) {
if (datain.phase === this.mydata.phase) {
CalcTodo.addFields(this.mydata, datain);
CalcTodo.addFields(this.mydata, datain, false);
}
}
}
static addFields(recout, recin) {
static addFields(recout, recin, isproj) {
// console.log('addFields', recin);
recout.hoursworked += recin.hoursworked;
recout.hoursplanned += recin.hoursplanned;
if (!!recin.progressCalc)
if (recin.progress === undefined) {
recout.progressCalc += recin.progressCalc;
else
} else {
recout.progressCalc += recin.progress;
}
recout.numitem++;
}
@@ -302,12 +303,17 @@ class CalcTodo {
static copyFields(recout, recin) {
recout.hoursworked = recin.hoursworked;
recout.hoursplanned = recin.hoursplanned;
if (recin.progress === undefined)
recout.progressCalc = recin.progressCalc;
else {
if (!!recin.progressCalc)
recout.progressCalc = recin.progressCalc;
else
recout.progressCalc = 0;
}
}
setValuesToRecord(objout) {
CalcTodo.copyFields(objout, this.mydata)
}
@@ -316,6 +322,7 @@ class CalcTodo {
if (this.mydata.numitem > 0) {
this.mydata.progressCalc = Math.round(this.mydata.progressCalc / this.mydata.numitem);
}
console.log('this.mydata.progressCalc', this.mydata.progressCalc)
}
getData() {
@@ -420,6 +427,7 @@ TodoSchema.statics.calculateTodoHoursAndProgress = async function (userId, idpro
objdata.endDataCalc();
return objdata.getData();
})
.catch(e => {