Bug #589 cambiar el estado desde ticket.sales no guarda el historico
This commit is contained in:
parent
2d6932fe49
commit
ca523e634c
|
@ -1,4 +1,4 @@
|
||||||
<mg-ajax path="/ticket/api/TicketTrackings" options="vnPost"></mg-ajax>
|
<mg-ajax path="/ticket/api/TicketTrackings/changeState" options="vnPost"></mg-ajax>
|
||||||
<vn-watcher
|
<vn-watcher
|
||||||
vn-id="watcher"
|
vn-id="watcher"
|
||||||
data="$ctrl.ticket"
|
data="$ctrl.ticket"
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
const UserError = require('vn-loopback/common/helpers').UserError;
|
const UserError = require('vn-loopback/common/helpers').UserError;
|
||||||
|
|
||||||
module.exports = Self => {
|
module.exports = Self => {
|
||||||
Self.remoteMethod('changeState', {
|
Self.remoteMethodCtx('changeState', {
|
||||||
description: 'Change the state of a ticket',
|
description: 'Change the state of a ticket',
|
||||||
accessType: 'WRITE',
|
accessType: 'WRITE',
|
||||||
accepts: [{
|
accepts: [{
|
||||||
|
@ -21,11 +21,22 @@ module.exports = Self => {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
Self.changeState = async params => {
|
Self.changeState = async(ctx, params) => {
|
||||||
|
let models = Self.app.models;
|
||||||
|
let isProduction;
|
||||||
let isEditable = await Self.app.models.Ticket.isEditable(params.ticketFk);
|
let isEditable = await Self.app.models.Ticket.isEditable(params.ticketFk);
|
||||||
if (isEditable)
|
|
||||||
return await Self.app.models.TicketTracking.create(params);
|
|
||||||
|
|
||||||
|
if (ctx.req.accessToken) {
|
||||||
|
let token = ctx.req.accessToken;
|
||||||
|
let currentUserId = token && token.userId;
|
||||||
|
isProduction = await models.Account.hasRole(currentUserId, 'Production');
|
||||||
|
let worker = await models.Worker.findOne({where: {userFk: currentUserId}});
|
||||||
|
params.workerFk = worker.id;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!isEditable && !isProduction)
|
||||||
throw new UserError(`You don't have enough privileges to change the state of this ticket`);
|
throw new UserError(`You don't have enough privileges to change the state of this ticket`);
|
||||||
|
|
||||||
|
return await Self.app.models.TicketTracking.create(params);
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -2,13 +2,4 @@ module.exports = function(Self) {
|
||||||
require('../methods/ticket-tracking/changeState')(Self);
|
require('../methods/ticket-tracking/changeState')(Self);
|
||||||
|
|
||||||
Self.validatesPresenceOf('stateFk', {message: 'State cannot be blank'});
|
Self.validatesPresenceOf('stateFk', {message: 'State cannot be blank'});
|
||||||
|
|
||||||
Self.observe('before save', async function(ctx) {
|
|
||||||
let models = Self.app.models;
|
|
||||||
let token = ctx.options.accessToken;
|
|
||||||
let currentUserId = token && token.userId;
|
|
||||||
|
|
||||||
let worker = await models.Worker.findOne({where: {userFk: currentUserId}});
|
|
||||||
ctx.instance.workerFk = worker.id;
|
|
||||||
});
|
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue