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 | 4x 4x 2x 1x 1x 1x 1x 1x 1x | import CustomerProductDao from '../../database/dao/customerProduct'; import Sequelize from 'sequelize'; import { models } from '../../../config/database'; const Op = Sequelize.Op; const CustomerProductModel = models.CustomerProduct; async function getCustomerProduct(query, opts = {}) { return CustomerProductDao.findCustomerProduct( query, { // raw: true, attributes: [ 'id', 'productCode', 'customerCode', 'productCustomerCode', 'productCustomerName', 'unitMeasure', 'note', ], include:[{ required: true, model: models.Product, as: 'product', }, { required: false, model: models.Customer, as: 'customer', attributes: ['code', 'name'], }], ...opts } ); } async function getAllCustomerProducts(opts = {}) { const customerProductsQuery = {}; const customerProducts = await CustomerProductDao.findCustomerProducts( customerProductsQuery, { attributes: [ 'id', 'productCode', 'customerCode', 'productCustomerCode', 'productCustomerName', 'unitMeasure', 'note', ], include:[{ required: true, model: models.Product, as: 'product', }, { required: false, model: models.Customer, as: 'customer', attributes: ['code', 'name'], }], ...opts } ); return customerProducts; } async function getCustomerProductsList(page = 0, pageSize = 0, sorted = [], filtered = [], opts = {}) { const customerProductsQuery = { ...(filtered.length ? filtered.reduce((acum, it) => { try { acum[Op.and].push( Sequelize.where( Sequelize.cast(Sequelize.col(`${CustomerProductModel.name}.${CustomerProductModel.rawAttributes[it.id].field}`), 'char'), { [Op.like]: `%${it.value}%` } ) ); } catch (e) {} return acum; }, { [Op.and]: [] }) : {}), }; const customerProducts = await CustomerProductDao.findAndCountCustomerProducts( customerProductsQuery, { attributes: [ 'id', 'productCode', 'customerCode', 'productCustomerCode', 'productCustomerName', 'unitMeasure', 'note', ], include:[{ required: true, model: models.Product, as: 'product', }, { required: false, model: models.Customer, as: 'customer', attributes: ['code', 'name'], }], offset: page * pageSize, limit: pageSize, ...(sorted.length ? { order: sorted.map(it => ([it.id, it.desc ? 'DESC' : 'ASC'])) } : {}), ...opts } ); return customerProducts; } export default { getCustomerProduct, getAllCustomerProducts, getCustomerProductsList, } |