3928-worker.time-control_sendMail #1129

Merged
joan merged 26 commits from 3928-worker.time-control_sendMail into dev 2022-11-11 07:30:09 +00:00
1 changed files with 43 additions and 37 deletions
Showing only changes of commit 1f2ea2c4d8 - Show all commits

View File

@ -100,10 +100,14 @@ module.exports = Self => {
updated: new Date(), state: 'SENDED' updated: new Date(), state: 'SENDED'
}, myOptions); }, myOptions);
stmt = new ParameterizedSQL(`CALL vn.timeControl_calculateAll(?, ?)`, [args.workerId, started, ended]); stmt = new ParameterizedSQL(
`CALL vn.timeControl_calculateByUser(?, ?, ?)
`, [args.workerId, started, ended]);
stmts.push(stmt); stmts.push(stmt);
stmt = new ParameterizedSQL(`CALL vn.timeBusiness_calculateAll(?, ?)`, [args.workerId, started, ended]); stmt = new ParameterizedSQL(
`CALL vn.timeBusiness_calculateByUser(?, ?, ?)
`, [args.workerId, started, ended]);
stmts.push(stmt); stmts.push(stmt);
} else { } else {
await models.WorkerTimeControl.destroyAll({ await models.WorkerTimeControl.destroyAll({
@ -132,41 +136,43 @@ module.exports = Self => {
stmts.push(`CREATE TEMPORARY TABLE tmp.timeBusinessCalculate1 stmts.push(`CREATE TEMPORARY TABLE tmp.timeBusinessCalculate1
SELECT * FROM tmp.timeBusinessCalculate`); SELECT * FROM tmp.timeBusinessCalculate`);
const index = stmts.push(` stmt = new ParameterizedSQL(`
SELECT CONCAT(u.name, '@verdnatura.es'), SELECT CONCAT(u.name, '@verdnatura.es'),
u.id workerFk, u.id workerFk,
tb.dated, tb.dated,
tb.timeWorkDecimal, tb.timeWorkDecimal,
tb.timeWorkSexagesimal timeWorkSexagesimal, tb.timeWorkSexagesimal timeWorkSexagesimal,
tb.timeTable, tb.timeTable,
tc.timeWorkDecimal timeWorkedDecimal, tc.timeWorkDecimal timeWorkedDecimal,
tc.timeWorkSexagesimal timeWorkedSexagesimal, tc.timeWorkSexagesimal timeWorkedSexagesimal,
tb.type, tb.type,
tb.businessFk, tb.businessFk,
tb.permissionRate, tb.permissionRate,
d.isTeleworking d.isTeleworking
FROM tmp.timeBusinessCalculate tb FROM tmp.timeBusinessCalculate tb
JOIN user u ON u.id = tb.userFk JOIN user u ON u.id = tb.userFk
JOIN department d ON d.id = tb.departmentFk JOIN department d ON d.id = tb.departmentFk
JOIN business b ON b.id = tb.businessFk JOIN business b ON b.id = tb.businessFk
LEFT JOIN tmp.timeControlCalculate tc ON tc.userFk = tb.userFk AND tc.dated = tb.dated LEFT JOIN tmp.timeControlCalculate tc ON tc.userFk = tb.userFk AND tc.dated = tb.dated
LEFT JOIN worker w ON w.id = u.id LEFT JOIN worker w ON w.id = u.id
LEFT JOIN user u2 ON u2.id = w.bossFk LEFT JOIN user u2 ON u2.id = w.bossFk
JOIN (SELECT tb.userFk, JOIN (SELECT tb.userFk,
SUM(IF(tb.type IS NULL, SUM(IF(tb.type IS NULL,
IF(tc.timeWorkDecimal > 0, FALSE, IF(tb.timeWorkDecimal > 0, TRUE, FALSE)), IF(tc.timeWorkDecimal > 0, FALSE, IF(tb.timeWorkDecimal > 0, TRUE, FALSE)),
TRUE))isTeleworkingWeek TRUE))isTeleworkingWeek
FROM tmp.timeBusinessCalculate1 tb FROM tmp.timeBusinessCalculate1 tb
LEFT JOIN tmp.timeControlCalculate1 tc ON tc.userFk = tb.userFk LEFT JOIN tmp.timeControlCalculate1 tc ON tc.userFk = tb.userFk
AND tc.dated = tb.dated AND tc.dated = tb.dated
GROUP BY tb.userFk GROUP BY tb.userFk
HAVING isTeleworkingWeek > 0 HAVING isTeleworkingWeek > 0
)sub ON sub.userFk = u.id )sub ON sub.userFk = u.id
WHERE d.hasToRefill WHERE d.hasToRefill
-- AND IFNULL(vWorkerFk, u.id) = u.id AND IFNULL(?, u.id) = u.id
AND b.companyCodeFk = 'VNL' AND b.companyCodeFk = 'VNL'
AND w.businessFk AND w.businessFk
ORDER BY u.id, tb.dated`) - 1; ORDER BY u.id, tb.dated
`, [args.workerId]);
const index = stmts.push(stmt) - 1;
const sql = ParameterizedSQL.join(stmts, ';'); const sql = ParameterizedSQL.join(stmts, ';');
const days = await conn.executeStmt(sql, myOptions); const days = await conn.executeStmt(sql, myOptions);