46 lines
1.3 KiB
JavaScript
46 lines
1.3 KiB
JavaScript
module.exports = Self => {
|
|
Self.remoteMethod('getWithPackaging', {
|
|
description: 'Returns the list of suppliers with an entry of type packaging',
|
|
accessType: 'READ',
|
|
returns: {
|
|
type: 'object',
|
|
root: true
|
|
},
|
|
http: {
|
|
path: `/getWithPackaging`,
|
|
verb: 'GET'
|
|
},
|
|
nolimit: true
|
|
});
|
|
Self.getWithPackaging = async options => {
|
|
const models = Self.app.models;
|
|
const myOptions = {};
|
|
const oneYearAgo = Date.vnNew();
|
|
oneYearAgo.setFullYear(oneYearAgo.getFullYear() - 1);
|
|
|
|
if (typeof options == 'object')
|
|
Object.assign(myOptions, options);
|
|
|
|
const entries = await models.Entry.find({
|
|
where: {
|
|
typeFk: 'packaging',
|
|
created: {gte: oneYearAgo}
|
|
},
|
|
include: {
|
|
relation: 'supplier',
|
|
scope: {
|
|
fields: ['id', 'name']
|
|
}
|
|
},
|
|
fields: {supplierFk: true}
|
|
}, myOptions);
|
|
|
|
const result = entries.map(item => ({
|
|
id: item.supplier().id,
|
|
name: item.supplier().name
|
|
}));
|
|
return Array.from(new Map(result.map(entry => [entry.id, entry])).values());
|
|
};
|
|
};
|
|
|