Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 7x 1x 1x 1x 1x 1x 1x 7x 1x 7x 1x 1x 1x 1x 1x 1x 1x 1x 1x 7x 7x 7x 4x 1x 4x 4x 4x | import moment from 'moment-timezone'; import IndirectTasksDao from '../../database/dao/indirectTask'; import { models } from '../../../config/database'; import { mountWhereBasedFilter } from '../../helpers/reports/sequelize'; // Funcao criada para popular o array headers e rows enviados por parametro export default async function generateData( columns, filters, headers = [], rows = [], opts = {} ) { const userFilter = {}; Eif (filters) { Eif (filters.matricula) { userFilter.code = filters.matricula; delete filters.matricula; } Eif (filters.nameUser) { userFilter.name = filters.nameUser; delete filters.nameUser; } } const whereUsers = mountWhereBasedFilter(userFilter); const where = mountWhereBasedFilter(filters); let headersValue = columns.map((it) => it.value); remove(headersValue, 'user.code'); remove(headersValue, 'user.name'); remove(headersValue, 'user.createdAt'); remove(headersValue, 'user.updatedAt'); const dados = await IndirectTasksDao.findIndirectTasks(where, { attributes: headersValue, raw: true, include: [ { required: false, model: models.UserIndirectTask, as: 'userIndirectTasks', include: [ { required: false, model: models.User, as: 'user', where: whereUsers, attributes: ['id', 'name'], }, { required: false, model: models.User, as: 'userCreated', attributes: ['login'], }, { required: false, model: models.User, as: 'userUpdated', attributes: ['login'], }, ], }, { required: false, model: models.User, as: 'userCreated', attributes: ['login'], }, { required: false, model: models.User, as: 'userUpdated', attributes: ['login'], }, ], ...opts, }); headersValue = null; headersValue = columns.map((it) => it.value); columns.forEach((it) => { headers.push(it.label); }); dados.forEach((it) => { it.createdUser = it['userCreated.login']; it.updatedUser = it['userUpdated.login']; // Código - Usuário Vinculado it['user.code'] = it['userIndirectTasks.user.code']; // Nome - Usuário Vinculado it['user.name'] = it['userIndirectTasks.user.name']; // Data de Criação - Usuário Vinculado it['user.createdAt'] = it['userIndirectTasks.createdAt']; // Data de Atualização - Usuário Vinculado it['user.updatedAt'] = it['userIndirectTasks.updatedAt']; const row = []; for (let index = 0; index < headersValue.length; index++) { const column = headersValue[index]; row.push(it[column]); if ( (column === 'createdAt' || column === 'updatedAt' || column === 'user.createdAt' || column === 'user.updatedAt') && row[index] !== null ) { row[index] = moment(row[index]).isValid() ? moment(row[index]).format('l LTS') : ''; } } rows.push(row); }); } function remove(headersValue, value) { const index = headersValue.indexOf(value); Eif (index != -1) { headersValue.splice(index, 1); } } |