diff --git a/db/routines/vn/procedures/item_getLack.sql b/db/routines/vn/procedures/item_getLack.sql index 17cff02469..bcb7d89585 100644 --- a/db/routines/vn/procedures/item_getLack.sql +++ b/db/routines/vn/procedures/item_getLack.sql @@ -3,11 +3,11 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`item_getLack`( vForce BOOLEAN, vDays INT, vId INT, - vLongname INT, + vLongname VARCHAR(255), vSupplierFk VARCHAR(255), vColor VARCHAR(255), vSize INT, - vOrigen VARCHAR(255), + vOrigen INT, vLack INT, vWarehouseFk INT ) @@ -59,11 +59,11 @@ BEGIN AND ic.display AND it.code != 'GEN' AND (vId IS NULL OR i.id = vId) - AND (vLongname IS NULL OR i.longName = vLongname) + AND (vLongname IS NULL OR i.name = vLongname) AND (vSupplierFk IS NULL OR p.`name` LIKE CONCAT('%', vSupplierFk, '%')) AND (vColor IS NULL OR vColor = i.inkFk) AND (vSize IS NULL OR vSize = i.`size`) - AND (vOrigen IS NULL OR vOrigen = w.name) + AND (vOrigen IS NULL OR vOrigen = w.id) AND (vLack IS NULL OR vLack = sub.amount) AND (vWarehouseFk IS NULL OR vWarehouseFk = w.id) GROUP BY i.id, w.id diff --git a/modules/ticket/back/methods/ticket/itemLack.js b/modules/ticket/back/methods/ticket/itemLack.js index 163addc048..278fd8537b 100644 --- a/modules/ticket/back/methods/ticket/itemLack.js +++ b/modules/ticket/back/methods/ticket/itemLack.js @@ -8,6 +8,12 @@ module.exports = Self => { type: 'object', http: {source: 'context'} }, + { + arg: 'filter', + type: 'object', + description: 'Filter defining where, order, offset, and limit - must be a JSON-encoded string', + http: {source: 'query'} + }, { arg: 'id', type: 'number', @@ -62,18 +68,25 @@ module.exports = Self => { } }); - Self.itemLack = async(ctx, options) => { + Self.itemLack = async(ctx, filter, options) => { const myOptions = {}; + if (typeof options == 'object') Object.assign(myOptions, options); + const filterKeyOrder = ['id', 'longname', 'supplier', 'colour', 'size', 'origen', 'lack', 'warehouse']; - delete ctx.args.ctx; - delete ctx.args.filter; + delete ctx?.args?.ctx; + + delete ctx?.args?.filter; + if (filter) + ctx.args = Object.assign(ctx.args ?? {}, filter); let procedureParams = [true, 2]; procedureParams.push(...filterKeyOrder.map(clave => ctx.args[clave] ?? null)); + const procedureArgs = Array(procedureParams.length).fill('?').join(', '); + let query = `CALL vn.item_getLack(${procedureArgs})`; const result = await Self.rawSql(query, procedureParams, myOptions); diff --git a/modules/ticket/back/methods/ticket/itemLackDetail.js b/modules/ticket/back/methods/ticket/itemLackDetail.js index 5e9796ee91..f18d5d34e5 100644 --- a/modules/ticket/back/methods/ticket/itemLackDetail.js +++ b/modules/ticket/back/methods/ticket/itemLackDetail.js @@ -6,7 +6,7 @@ module.exports = Self => { accessType: 'READ', accepts: [ { - arg: 'id', + arg: 'itemFk', type: 'number', description: 'The item id', }, @@ -19,7 +19,7 @@ module.exports = Self => { }, ], http: { - path: `/itemLack/:id/detail`, + path: `/itemLack/:itemFk/detail`, verb: 'GET', }, }); diff --git a/modules/ticket/back/methods/ticket/specs/itemLack.spec.js b/modules/ticket/back/methods/ticket/specs/itemLack.spec.js index ded595376d..4d654d8305 100644 --- a/modules/ticket/back/methods/ticket/specs/itemLack.spec.js +++ b/modules/ticket/back/methods/ticket/specs/itemLack.spec.js @@ -1,7 +1,7 @@ const models = require('vn-loopback/server/server').models; -describe('Item Lack', () => { - beforeAll(async() => { +fdescribe('Item Lack', () => { + beforeEach(async() => { ctx = { req: { accessToken: {}, @@ -85,7 +85,7 @@ describe('Item Lack', () => { const options = {transaction: tx}; const filter = { - color: 'BRW' + colour: 'BRW' }; try { const result = await models.Ticket.itemLack(ctx, filter, options); diff --git a/modules/ticket/back/methods/ticket/specs/itemLackDetail.spec.js b/modules/ticket/back/methods/ticket/specs/itemLackDetail.spec.js index 9d5a7c6f99..26424d7ce1 100644 --- a/modules/ticket/back/methods/ticket/specs/itemLackDetail.spec.js +++ b/modules/ticket/back/methods/ticket/specs/itemLackDetail.spec.js @@ -1,6 +1,6 @@ const models = require('vn-loopback/server/server').models; -describe('Item Lack Detail', () => { +fdescribe('Item Lack Detail', () => { it('should return false if id is null', async() => { const tx = await models.Ticket.beginTransaction({});