diff --git a/modules/ticket/back/methods/ticket-tracking/changeState.js b/modules/ticket/back/methods/ticket-tracking/changeState.js index fae9af218a..e28413b24c 100644 --- a/modules/ticket/back/methods/ticket-tracking/changeState.js +++ b/modules/ticket/back/methods/ticket-tracking/changeState.js @@ -14,7 +14,7 @@ module.exports = Self => { } ], returns: { - type: 'string', + type: 'Object', root: true }, http: { diff --git a/modules/ticket/back/methods/ticket-tracking/setDelivered.js b/modules/ticket/back/methods/ticket-tracking/setDelivered.js index 62e5a7717d..94cbad7a22 100644 --- a/modules/ticket/back/methods/ticket-tracking/setDelivered.js +++ b/modules/ticket/back/methods/ticket-tracking/setDelivered.js @@ -6,13 +6,13 @@ module.exports = Self => { { arg: 'ticketIds', description: 'the array of ticket ids to set as delivered', - type: [], + type: ['Number'], required: true, http: {source: 'body'} } ], returns: { - type: 'string', + type: 'Object', root: true }, http: { @@ -25,7 +25,12 @@ module.exports = Self => { let userId = ctx.req.accessToken.userId; let models = Self.app.models; - let state = await models.State.findOne({where: {code: 'delivered'}, fields: ['id']}); + let state = await models.State.findOne({ + where: { + code: 'delivered' + }, + fields: ['id', 'name', 'alertLevel', 'code'] + }); let worker = await models.Worker.findOne({where: {userFk: userId}}); @@ -38,7 +43,8 @@ module.exports = Self => { }); promises.push(promise); } + await Promise.all(promises); - return Promise.all(promises); + return state; }; }; diff --git a/modules/ticket/back/methods/ticket-tracking/specs/setDelivered.spec.js b/modules/ticket/back/methods/ticket-tracking/specs/setDelivered.spec.js index 8a59634749..520ccfb037 100644 --- a/modules/ticket/back/methods/ticket-tracking/specs/setDelivered.spec.js +++ b/modules/ticket/back/methods/ticket-tracking/specs/setDelivered.spec.js @@ -23,18 +23,14 @@ describe('ticket setDelivered()', () => { done(); }); - it('should return an array of the tickets states changed to delivered', async() => { + it('should return the state which has been applied to the given tickets', async() => { let ctx = {req: {accessToken: {userId: 49}}}; let delivered = await app.models.State.findOne({where: {code: 'delivered'}, fields: ['id']}); let params = [ticketOne.id, ticketTwo.id]; - let res = await app.models.TicketTracking.setDelivered(ctx, params); + let state = await app.models.TicketTracking.setDelivered(ctx, params); - expect(res[0].ticketFk).toEqual(ticketOne.id); - expect(res[0].stateFk).toEqual(delivered.id); - - expect(res[1].ticketFk).toEqual(ticketTwo.id); - expect(res[1].stateFk).toEqual(delivered.id); + expect(state.id).toEqual(delivered.id); }); }); diff --git a/modules/ticket/front/index/index.html b/modules/ticket/front/index/index.html index 47695f38c5..abd7722290 100644 --- a/modules/ticket/front/index/index.html +++ b/modules/ticket/front/index/index.html @@ -89,7 +89,7 @@ {{::ticket.province}} - {{::ticket.state}} + {{ticket.state}} {{::ticket.agencyMode}} diff --git a/modules/ticket/front/index/index.js b/modules/ticket/front/index/index.js index 7034df848b..0cf076d612 100644 --- a/modules/ticket/front/index/index.js +++ b/modules/ticket/front/index/index.js @@ -11,9 +11,15 @@ export default class Controller extends Section { for (let ticket of checkedTickets) ids.push(ticket.id); - this.$http.post('TicketTrackings/setDelivered', ids).then(() => { + this.$http.post('TicketTrackings/setDelivered', ids).then(res => { + let state = res.data; + for (let ticket of checkedTickets) { + ticket.stateFk = state.id; + ticket.state = state.name; + ticket.alertLevel = state.alertLevel; + ticket.alertLevelCode = state.code; + } this.openDeliveryNotes(ids); - this.$.model.refresh(); }); }