const ParameterizedSQL = require('loopback-connector').ParameterizedSQL; module.exports = Self => { Self.remoteMethod('listSaleTracking', { description: 'Returns all ticket sale trackings', accessType: 'READ', accepts: [{ arg: 'filter', type: 'object', description: 'Filter defining where and paginated data' }], returns: { type: ['object'], root: true }, http: { path: `/listSaleTracking`, verb: 'get' } }); Self.listSaleTracking = async(filter, options) => { const myOptions = {}; if (typeof options == 'object') Object.assign(myOptions, options); const stmt = new ParameterizedSQL(` SELECT st.id, s.ticketFk, s.quantity, s.concept, s.itemFk, st.originalQuantity, st.created, st.workerFk, u.name, ste.name AS state FROM saleTracking st JOIN sale s ON s.id = st.saleFk JOIN worker w ON w.id = st.workerFk JOIN account.user u ON u.id = w.id JOIN state ste ON ste.id = st.stateFk`); stmt.merge(Self.makeSuffix(filter)); const trackings = await Self.rawStmt(stmt, myOptions); return trackings; }; };