Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- async list(meta, user, skip) {
- const asnClause = this.ctx(`${TABLE_NAME.ASNS} as A`)
- .select('A.purchase_orders_id')
- .max({ created_at: 'B.created_at'})
- .innerJoin(`${TABLE_NAME.ASN_HAS_PURCHASE_ORDER_ITEMS} as B`, 'A.id', 'B.asn_id')
- .groupBy('A.purchase_orders_id')
- .as('ASN');
- const podClause = this.ctx(`${TABLE_NAME.PROOF_OF_DELIVERIES} as A`)
- .select('A.purchase_orders_id', 'B.url')
- .max({ created_at: 'B.created_at'})
- .innerJoin(`${TABLE_NAME.PROOF_OF_DELIVERY_ATTACHMENTS} as B`, 'A.id', 'B.proof_of_deliveries_id')
- .groupBy('A.purchase_orders_id')
- .as('POD');
- const selectQuery = this.ctx(`${TABLE_NAME.PURCHASE_ORDER} as A`)
- .select(
- 'A.number',
- 'ASN.created_at as ASN_created_at',
- 'POD.url',
- 'POD.created_at as POD_created_at'
- )
- .max({revision: 'A.revision'})
- .where('vendor_organizations_id', 1)
- .groupBy('A.number')
- .leftJoin(asnClause, 'A.id', 'ASN.purchase_orders_id')
- .leftJoin(podClause, 'A.id', 'POD.purchase_orders_id')
- .offset(skip)
- .limit(meta.limit)
- return selectQuery;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement