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 | 2x 18x 18x 6x 6x 4x 2x 2x 2x 2x 2x 2x 18x 2x 2x 2x 2x 1x 2x 2x 2x 2x 2x 2x 2x 2x 2x 18x 18x 18x 4x 2x | import moment from 'moment-timezone'; import RangeDao from '../../database/dao/range'; import { models } from '../../../config/database'; import { mountWhereBasedFilter } from '../../helpers/reports/sequelize'; export default async function generateData( columns, filters, headers = [], rows = [], opts = {} ) { const where = mountWhereBasedFilter(filters); const headersValueDefault = columns.map((it) => it.value); const headersValue = columns.map((it) => it.value); function remove(columnValuesToFind, value) { const index = columnValuesToFind.indexOf(value); if (index !== -1) { columnValuesToFind.splice(index, 1); } } remove(headersValue, 'branchName'); remove(headersValue, 'usersRangesCode'); remove(headersValue, 'usersRangesName'); const dados = await RangeDao.findRanges(where, { attributes: headersValue, include: [ { required: true, model: models.Branch, as: 'branch', attributes: ['code', 'name'], }, { required: false, model: models.User, as: 'userCreated', attributes: ['login'], }, { required: false, model: models.User, as: 'userUpdated', attributes: ['login'], }, { separate: true, required: false, model: models.UsersRanges, as: 'usersRanges', attributes: ['rangeCode'], include: [ { required: true, model: models.User, as: 'user', attributes: ['login', 'name'], }, ], }, ], ...opts, }); const data = dados.map((value) => value.toJSON()); columns.forEach((it) => { headers.push(it.label); }); data.forEach((it) => { const usersRangesCodes = []; const usersRangesNames = []; if (it.usersRanges.length > 0) { it.usersRanges.forEach((userRange) => { usersRangesCodes.push(userRange.user.login); usersRangesNames.push(userRange.user.name); }); } it.createdUser = it.userCreated.login; it.updatedUser = it.userUpdated.login; it.branchCode = it.branch ? `${it.branch.code}-${it.branch.name}` : ''; it.usersRangesCode = usersRangesCodes.length > 0 ? usersRangesCodes.toLocaleString() : ''; it.usersRangesName = usersRangesNames.length > 0 ? usersRangesNames.toLocaleString() : ''; const row = []; for (let index = 0; index < headersValueDefault.length; index += 1) { const column = headersValueDefault[index]; row.push(it[column]); if (column === 'createdAt' || column === 'updatedAt') { row[index] = moment(row[index]).format('L LTS'); } } rows.push(row); }); } |