64 lines
2.6 KiB
JavaScript
64 lines
2.6 KiB
JavaScript
/* eslint max-len: ["error", { "code": 150 }]*/
|
|
const ParameterizedSQL = require('loopback-connector').ParameterizedSQL;
|
|
module.exports = Self => {
|
|
Self.remoteMethod('getEntries', {
|
|
description: 'Return the entries of a travel',
|
|
accessType: 'READ',
|
|
accepts: {
|
|
arg: 'id',
|
|
type: 'number',
|
|
required: true,
|
|
description: 'The travel id',
|
|
http: {source: 'path'}
|
|
},
|
|
returns: {
|
|
type: 'object',
|
|
root: true
|
|
},
|
|
http: {
|
|
path: `/:id/getEntries`,
|
|
verb: 'GET'
|
|
}
|
|
});
|
|
|
|
Self.getEntries = async id => {
|
|
let stmt;
|
|
|
|
stmt = new ParameterizedSQL(`
|
|
SELECT
|
|
e.travelFk,
|
|
e.id,
|
|
e.isConfirmed,
|
|
e.invoiceNumber,
|
|
e.reference,
|
|
e.evaNotes AS observation,
|
|
s.name AS supplierName,
|
|
CAST((SUM(IF(p.volume > 0,p.volume,p.width * p.depth * IF(p.height, p.height, i.size + pconfig.upperGap))
|
|
* b.stickers)/1000000)/((pcc.width*pcc.depth*pcc.height)/1000000) AS DECIMAL(10,2)) cc,
|
|
CAST((SUM(IF(p.volume > 0,p.volume,p.width * p.depth * IF(p.height, p.height, i.size + pconfig.upperGap))
|
|
* b.stickers)/1000000)/((ppallet.width*ppallet.depth*ppallet.height)/1000000) AS DECIMAL(10,2)) pallet,
|
|
CAST((SUM(IF(p.volume > 0,p.volume,p.width * p.depth * IF(p.height, p.height, i.size + pconfig.upperGap))
|
|
* b.stickers)/1000000) AS DECIMAL(10,2)) m3,
|
|
TRUNCATE(SUM(b.stickers)/(COUNT( b.id) / COUNT( DISTINCT b.id)),0) hb,
|
|
CAST(SUM(b.freightValue*b.quantity) AS DECIMAL(10,2)) freightValue,
|
|
CAST(SUM(b.packageValue*b.quantity) AS DECIMAL(10,2)) packageValue
|
|
FROM vn.travel t
|
|
LEFT JOIN vn.entry e ON t.id = e.travelFk
|
|
LEFT JOIN vn.buy b ON b.entryFk = e.id
|
|
LEFT JOIN vn.supplier s ON e.supplierFk = s.id
|
|
JOIN vn.item i ON i.id = b.itemFk
|
|
LEFT JOIN vn.packaging p ON p.id = b.packagingFk
|
|
JOIN vn.packaging pcc ON pcc.id = 'cc'
|
|
JOIN vn.packaging ppallet ON ppallet.id = 'pallet 100'
|
|
JOIN vn.packagingConfig pconfig
|
|
WHERE t.id = ?
|
|
GROUP BY e.id;`, [
|
|
id
|
|
]);
|
|
|
|
let result = await Self.rawStmt(stmt);
|
|
|
|
return result;
|
|
};
|
|
};
|