diff --git a/db/dump/fixtures.sql b/db/dump/fixtures.sql index 7f7305133..21413d329 100644 --- a/db/dump/fixtures.sql +++ b/db/dump/fixtures.sql @@ -558,9 +558,9 @@ INSERT INTO `vn`.`vehicle`(`id`, `numberPlate`, `tradeMark`, `model`, `companyFk (5, '4444-IMK', 'STARK INDUSTRIES', 'MARK-XLII', 442, 1, 'Iron-Man Heavy Armor MARK-XLII', 13, 1), (6, '5555-IMK', 'STARK INDUSTRIES', 'MARK-XLV', 442, 1, 'Iron-Man Heavy Armor MARK-XLV', 12, 0); -INSERT INTO `vn`.`config`(`id`, `mdbServer`, `fakeEmail`, `defaultersMaxAmount`) +INSERT INTO `vn`.`config`(`id`, `mdbServer`, `fakeEmail`, `defaultersMaxAmount`, `inventoried`) VALUES - (1, 'beta-server', 'nightmare@mydomain.com', '200'); + (1, 'beta-server', 'nightmare@mydomain.com', '200', DATE_ADD(CURDATE(),INTERVAL -1 MONTH)); INSERT INTO `vn`.`greugeType`(`id`, `name`) VALUES @@ -1117,10 +1117,6 @@ INSERT INTO `vn`.`buy`(`id`,`entryFk`,`itemFk`,`buyingValue`,`quantity`,`package (14, 7, 2, 5, 0, 3, 1, 2.000, 2.000, 0.000, 10, 10, 1, NULL, 0.00, 7.30, 7.00, 0.00, NULL, 0, 1, 0, CURDATE()), (15, 7, 4, 1.25, 0, 3, 1, 2.000, 2.000, 0.000, 10, 10, 1, NULL, 0.00, 1.75, 1.67, 0.00, NULL, 0, 1, 0, CURDATE()); -INSERT INTO `vn2008`.`tblContadores`(`id`,`FechaInventario`) - VALUES - (1,DATE_ADD(CURDATE(),INTERVAL -1 MONTH)); - INSERT INTO `vn`.`deliveryMethod`(`id`, `code`, `description`) VALUES (1, 'AGENCY', 'Agencia'), diff --git a/modules/worker/back/methods/worker/getWorkerInfo.js b/modules/worker/back/methods/worker/getWorkerInfo.js deleted file mode 100644 index c91f84078..000000000 --- a/modules/worker/back/methods/worker/getWorkerInfo.js +++ /dev/null @@ -1,98 +0,0 @@ -/* -Author : Enrique Blasco BLanquer -Date: 28 de mayo de 2019 -*/ -module.exports = Self => { - Self.remoteMethodCtx('getWorkerInfo', { - description: 'Get worker info (name, isWorking, total worked hours ...)', - accessType: 'WRITE', - returns: [{ - type: 'Object', - root: true - }], - http: { - path: `/getWorkerInfo`, - verb: 'GET' - } - }); - - Self.getWorkerInfo = async(ctx, data) => { - let prevHour = new Date(); // default value to start work - let diff = 0; // difference of value between two dates - let isOdd = true; // determine if timed is odd or not in db - const myUserId = ctx.req.accessToken.userId; // get user id - - - // 1 get name and photo for the user - let [user] = await Self.rawSql(`SELECT u.name, t.Foto FROM vn.user u INNER JOIN vn2008.Trabajadores t ON u.id = t.user_id WHERE id = ?;`, [myUserId]); - // 2 get all jornaly work time registered - let workedHours = await Self.rawSql(`SELECT * FROM vn.workerTimeControl WHERE userFk = ? AND DATE(timed) = CURDATE() ORDER BY timed ASC;`, [myUserId]); - let today = new Date(); - // 3 get the number of hours to work in one day - let date = today.getFullYear() + '-' + (today.getMonth() + 1) + '-' + today.getDate(); - let [hoursForDay] = await Self.rawSql(`SELECT cl.hours_week AS hoursWeek, - GROUP_CONCAT(DISTINCT LEFT(j.start,2) ORDER BY j.start ASC SEPARATOR '-') start , - GROUP_CONCAT(DISTINCT LEFT(j.end,2) ORDER BY j.end ASC SEPARATOR '-') end, - CAST(IFNULL((SUM(TIME_TO_SEC(j.end))-SUM(TIME_TO_SEC(j.start)))/3600,if(cl.hours_week=40 - AND DAYOFWEEK(t.dated) IN(2,3,4,5,6),8,0)) AS DECIMAL(10,2)) workingHours - FROM vn.time t - LEFT JOIN postgresql.business b ON t.dated BETWEEN b.date_start AND ifnull(b.date_end,? ) - LEFT JOIN postgresql.profile AS pr ON b.client_id = pr.profile_id - LEFT JOIN postgresql.person AS p ON pr.person_id = p.person_id - LEFT JOIN vn.worker AS w ON p.id_trabajador = w.id - LEFT JOIN postgresql.business_labour AS bl ON b.business_id = bl.business_id - LEFT JOIN postgresql.calendar_labour_type AS cl ON bl.calendar_labour_type_id = cl.calendar_labour_type_id - LEFT JOIN postgresql.journey AS j ON j.business_id = b.business_id and j.day_id=WEEKDAY(t.dated)+1 - WHERE t.dated BETWEEN ? AND ? AND userFk = ? - GROUP BY w.userFk,dated`, [date, date, date, myUserId]); - - // 4 Add all the hours and see the total worked - for (hour of workedHours) { - if (!isOdd) - diff += Math.abs((new Date(hour.timed)).getTime() - prevHour.getTime()); - else - prevHour = new Date(hour.timed); - - isOdd = !isOdd; - } - - // 5 calculate hours and minutes from a number value - let decimalTime = diff / 1000 / 3600; - decimalTime = decimalTime * 60 * 60; - let hours = Math.floor((decimalTime / (60 * 60))); - decimalTime = decimalTime - (hours * 60 * 60); - let minutes = Math.floor((decimalTime / 60)); - - // 6 default total hours - let totalHours = '7:40'; - let hoursWeek = 40; - - // 7 Get the hours you have to work today and the hours to work in a week - if (hoursForDay != null) { - // If it exceeds 5 hours we take 20 minutes of breakfast. - if (hoursForDay.workingHours > 5) - hoursForDay.workingHours -= 20 * 0.016666; - let decimalTime = parseFloat(hoursForDay.workingHours); - decimalTime = decimalTime * 60 * 60; - let hoursDay = Math.floor((decimalTime / (60 * 60))); - decimalTime = decimalTime - (hoursDay * 60 * 60); - let minutesDay = Math.floor((decimalTime / 60)); - totalHours = hoursDay + ':' + minutesDay; - } - - - // 8 return value - if (hoursForDay != null) - hoursWeek = hoursForDay.hoursWeek; - return { - 'name': user.name, - 'hours': hours, - 'minutes': minutes, - 'today': today, - 'isWorking': !isOdd, - 'lastDate': prevHour, - 'totalHours': totalHours, - 'hoursWeek': hoursWeek - }; - }; -}; diff --git a/modules/worker/back/models/worker.js b/modules/worker/back/models/worker.js index 9abdeb737..5abf65513 100644 --- a/modules/worker/back/models/worker.js +++ b/modules/worker/back/models/worker.js @@ -3,5 +3,4 @@ module.exports = Self => { require('../methods/worker/mySubordinates')(Self); require('../methods/worker/isSubordinate')(Self); require('../methods/worker/getWorkedHours')(Self); - require('../methods/worker/getWorkerInfo')(Self); };