diff --git a/server/models/project.js b/server/models/project.js index a26c99f..5dd3ca4 100644 --- a/server/models/project.js +++ b/server/models/project.js @@ -81,6 +81,10 @@ var ProjectSchema = new mongoose.Schema({ type: Number, default: 0 }, + hoursleft: { + type: Number, + default: 0 + }, hoursworked: { type: Number, default: 0 diff --git a/server/models/todo.js b/server/models/todo.js index 9ca5352..d8ff21e 100644 --- a/server/models/todo.js +++ b/server/models/todo.js @@ -266,6 +266,7 @@ class CalcTodo { } clean() { + this.mydata.hoursleft = 0; this.mydata.hoursplanned = 0; this.mydata.hoursworked = 0; this.mydata.progressCalc = 0; @@ -291,6 +292,10 @@ class CalcTodo { // console.log('addFields', recin); recout.hoursworked += recin.hoursworked; recout.hoursplanned += recin.hoursplanned; + let hoursleft = (recin.hoursplanned - recin.hoursworked); + if (hoursleft < 0) + hoursleft = 0; + recout.hoursleft += hoursleft; if (recin.progress === undefined) { recout.progressCalc += recin.progressCalc; } else { @@ -303,6 +308,7 @@ class CalcTodo { static copyFields(recout, recin) { recout.hoursworked = recin.hoursworked; recout.hoursplanned = recin.hoursplanned; + recout.hoursleft = recin.hoursleft; if (recin.progress === undefined) recout.progressCalc = recin.progressCalc; else { diff --git a/server/router/projects_router.js b/server/router/projects_router.js index 162c704..c575f3e 100644 --- a/server/router/projects_router.js +++ b/server/router/projects_router.js @@ -113,9 +113,24 @@ router.patch('/:id', authenticate, (req, res) => { }); +router.get('/', (req, res) => { + tools.mylog('GET ALL PROJECTS: '); + + return Project.getAllProjects('').then((objprojects) => { + if (!!objprojects.arrproj) + tools.mylog('projects', objprojects.arrproj.length); + + return objprojects + }).then((objprojects) => { + res.send({ projects: objprojects.arrproj }); + }).catch((e) => { + console.log(e); + res.status(400).send(e); + }); +}); + router.get('/:userId', authenticate, (req, res) => { - var userId = req.params.userId; - // var category = req.params.category; + const userId = req.params.userId; tools.mylog('GET PROJECTS : ', req.params); @@ -129,25 +144,16 @@ router.get('/:userId', authenticate, (req, res) => { } // Extract all the projects of the userId only - // Project.findAllByUserIdAndCat(userId, category).then((projects) => { return Project.getAllProjects(userId).then((objprojects) => { if (!!objprojects.arrproj) tools.mylog('projects', objprojects.arrproj.length); - // console.log(objprojects.arrproj); - return objprojects }).then((objprojects) => { - // tools.mylog('objprojects', objprojects); - // if (tools.EXECUTE_CALCPROJ) { - // return calcProjects('', objprojects).then(objout => { - // res.send({ projects: objprojects.arrproj }); - // }); - // } else { res.send({ projects: objprojects.arrproj }); - // } + }).catch((e) => { console.log(e); res.status(400).send(e); @@ -155,6 +161,8 @@ router.get('/:userId', authenticate, (req, res) => { }); + + // USATO SOLO LE PRIME VOLTE! O A RICHIESTA! async function calcProjects(userId, obj) { diff --git a/server/tools/general.js b/server/tools/general.js index 1b31ccf..d6e2070 100644 --- a/server/tools/general.js +++ b/server/tools/general.js @@ -65,7 +65,7 @@ module.exports = { // #TODO Projects++ Add fields ... allfieldProject: function () { - return ['userId', 'pos', 'typeproj', 'id_main_project', 'id_parent', 'descr', 'longdescr', 'hoursplanned', 'hoursworked', 'priority', 'statusproj', 'created_at', 'modify_at', + return ['userId', 'pos', 'typeproj', 'id_main_project', 'id_parent', 'descr', 'longdescr', 'hoursplanned', 'hoursleft', 'hoursworked', 'priority', 'statusproj', 'created_at', 'modify_at', 'completed_at', 'expiring_at', 'enableExpiring', 'id_prev', 'progressCalc', 'modified', 'live_url', 'test_url', 'begin_development', 'begin_test', 'totalphases', 'actualphase', 'hoursweeky_plannedtowork', 'endwork_estimate' , 'privacyread', 'privacywrite'] },