1 changed files with 35 additions and 0 deletions
@ -0,0 +1,35 @@ |
|||
'use strict'; |
|||
|
|||
/* globals db */ |
|||
|
|||
const clients = db.clients.find(); |
|||
while (clients.hasNext()) { |
|||
let timeWorked = 0, billable = 0; |
|||
|
|||
const client = clients.next(); |
|||
const sessions = db.tasksessions.find({ client: client._id }); |
|||
while (sessions.hasNext()) { |
|||
const session = sessions.next(); |
|||
timeWorked += session.duration; |
|||
billable += session.hourlyRate * (session.duration / 3600); |
|||
} |
|||
|
|||
/* |
|||
* Fix some JavaScript goofiness with numbers (round correctly to 2nd decimal |
|||
* digit). |
|||
*/ |
|||
billable = Math.round((billable + Number.EPSILON) * 100) / 100; |
|||
|
|||
print(`client: ${client._id}:${client.name} time:${timeWorked} bill:${billable}`); |
|||
db.clients.updateOne( |
|||
{ _id: client._id }, |
|||
{ |
|||
$set: { |
|||
weeklyTotals: { |
|||
timeWorked, |
|||
billable, |
|||
}, |
|||
}, |
|||
}, |
|||
); |
|||
} |
Loading…
Reference in new issue