diff --git a/db/changes/234601/00-ACLticketTrackingState.sql b/db/changes/234601/00-ACLticketTrackingState.sql
index ddd838e7ea..f84128b162 100644
--- a/db/changes/234601/00-ACLticketTrackingState.sql
+++ b/db/changes/234601/00-ACLticketTrackingState.sql
@@ -1,5 +1,6 @@
UPDATE `salix`.`ACL`
- SET property = 'state'
+ SET property = 'state',
+ model = 'Ticket'
WHERE property = 'changeState';
REVOKE INSERT, UPDATE, DELETE ON `vn`.`ticketTracking` FROM 'productionboss'@;
diff --git a/modules/ticket/back/methods/ticket/saveSign.js b/modules/ticket/back/methods/ticket/saveSign.js
index 9888328e78..9667847d29 100644
--- a/modules/ticket/back/methods/ticket/saveSign.js
+++ b/modules/ticket/back/methods/ticket/saveSign.js
@@ -44,6 +44,40 @@ module.exports = Self => {
myOptions.transaction = tx;
}
+ try {
+ for (const ticketId of tickets) {
+ const ticketState = await models.TicketState.findOne(
+ {where: {ticketFk: ticketId},
+ fields: ['alertLevel']
+ }, myOptions);
+
+ const packedAlertLevel = await models.AlertLevel.findOne({where: {code: 'PACKED'},
+ fields: ['id']
+ }, myOptions);
+
+ if (!ticketState)
+ throw new UserError('Ticket does not exist');
+ if (ticketState.alertLevel < packedAlertLevel.id)
+ throw new UserError('This ticket cannot be signed because it has not been boxed');
+ if (await gestDocExists(ticketId))
+ throw new UserError('Ticket is already signed');
+
+ if (location) setLocation(ticketId);
+ if (!gestDocCreated) await createGestDoc(ticketId);
+ await models.TicketDms.create({ticketFk: ticketId, dmsFk: dms[0].id}, myOptions);
+ const ticket = await models.Ticket.findById(ticketId, null, myOptions);
+ await ticket.updateAttribute('isSigned', true, myOptions);
+ const params = {ticketFk: ticketId, code: 'DELIVERED'};
+ await models.Ticket.state(ctx, params, options);
+ }
+
+ if (tx) await tx.commit();
+ return;
+ } catch (e) {
+ if (tx) await tx.rollback();
+ throw e;
+ }
+
async function setLocation(ticketId) {
await models.Delivery.create({
ticketFk: ticketId,
@@ -103,41 +137,9 @@ module.exports = Self => {
description: `Firma del cliente - Ruta ${ticket.route().id}`,
hasFile: false
};
+
dms = await models.Dms.uploadFile(ctxUploadFile, myOptions);
gestDocCreated = true;
}
-
- try {
- for (const ticketId of tickets) {
- const ticketState = await models.TicketState.findOne(
- {where: {ticketFk: ticketId},
- fields: ['alertLevel']
- }, myOptions);
-
- const packedAlertLevel = await models.AlertLevel.findOne({where: {code: 'PACKED'},
- fields: ['id']
- }, myOptions);
-
- if (!ticketState)
- throw new UserError('Ticket does not exist');
- if (ticketState.alertLevel < packedAlertLevel.id)
- throw new UserError('This ticket cannot be signed because it has not been boxed');
- if (await gestDocExists(ticketId))
- throw new UserError('Ticket is already signed');
-
- if (location) setLocation(ticketId);
- if (!gestDocCreated) await createGestDoc(ticketId);
- await models.TicketDms.create({ticketFk: ticketId, dmsFk: dms[0].id}, myOptions);
- const ticket = await models.Ticket.findById(ticketId, null, myOptions);
- await ticket.updateAttribute('isSigned', true, myOptions);
- await Self.rawSql(`CALL vn.ticket_setState(?, ?)`, [ticketId, 'DELIVERED'], myOptions);
- }
-
- if (tx) await tx.commit();
- return;
- } catch (e) {
- if (tx) await tx.rollback();
- throw e;
- }
};
};
diff --git a/modules/ticket/back/models/ticket.js b/modules/ticket/back/models/ticket.js
index a265c9cbb3..1930765fb7 100644
--- a/modules/ticket/back/models/ticket.js
+++ b/modules/ticket/back/models/ticket.js
@@ -1,5 +1,4 @@
module.exports = Self => {
- // Methods
require('./ticket-methods')(Self);
require('../methods/ticket/state')(Self);
};
diff --git a/modules/ticket/front/sale/index.js b/modules/ticket/front/sale/index.js
index 1dd700b532..4f6a9e7573 100644
--- a/modules/ticket/front/sale/index.js
+++ b/modules/ticket/front/sale/index.js
@@ -173,7 +173,7 @@ class Controller extends Section {
state(value) {
const params = {ticketFk: this.$params.id, code: value};
- return this.$http.post('TicketTrackings/state', params).then(() => {
+ return this.$http.post('Tickets/state', params).then(() => {
this.vnApp.showSuccess(this.$t('Data saved!'));
this.card.reload();
}).finally(() => this.resetChanges());
diff --git a/modules/ticket/front/sale/index.spec.js b/modules/ticket/front/sale/index.spec.js
index 3ed18c0f11..70781eb581 100644
--- a/modules/ticket/front/sale/index.spec.js
+++ b/modules/ticket/front/sale/index.spec.js
@@ -229,13 +229,14 @@ describe('Ticket', () => {
});
describe('state()', () => {
- it('should make an HTTP post query, then call the showSuccess(), reload() and resetChanges() methods', () => {
+ it('should make an HTTP post query, then call the showSuccess(),' +
+ ' reload() and resetChanges() methods', () => {
jest.spyOn(controller.card, 'reload').mockReturnThis();
jest.spyOn(controller.vnApp, 'showSuccess').mockReturnThis();
jest.spyOn(controller, 'resetChanges').mockReturnThis();
const expectedParams = {ticketFk: 1, code: 'OK'};
- $httpBackend.expect('POST', `TicketTrackings/state`, expectedParams).respond(200);
+ $httpBackend.expect('POST', `Tickets/state`, expectedParams).respond(200);
controller.state('OK');
$httpBackend.flush();
@@ -246,7 +247,8 @@ describe('Ticket', () => {
});
describe('removeSales()', () => {
- it('should make an HTTP post query, then call the showSuccess(), removeSelectedSales() and resetChanges() methods', () => {
+ it('should make an HTTP post query, then call the showSuccess(),' +
+ ' removeSelectedSales() and resetChanges() methods', () => {
jest.spyOn(controller.vnApp, 'showSuccess').mockReturnThis();
jest.spyOn(controller, 'removeSelectedSales').mockReturnThis();
jest.spyOn(controller, 'resetChanges').mockReturnThis();
@@ -352,7 +354,8 @@ describe('Ticket', () => {
});
describe('updatePrice()', () => {
- it('should make an HTTP POST query, update the sale price and then call to the resetChanges() method', () => {
+ it('should make an HTTP POST query, update the sale price ' +
+ 'and then call to the resetChanges() method', () => {
jest.spyOn(controller.vnApp, 'showSuccess').mockReturnThis();
jest.spyOn(controller, 'resetChanges').mockReturnThis();
@@ -418,7 +421,8 @@ describe('Ticket', () => {
expect(controller.$.editDiscount.hide).toHaveBeenCalledWith();
});
- it('should not call to the updateDiscount() method and then to the editDiscountDialog hide() method', () => {
+ it('should not call to the updateDiscount() method and then' +
+ ' to the editDiscountDialog hide() method', () => {
jest.spyOn(controller, 'updateDiscount').mockReturnThis();
const firstSelectedSale = controller.sales[0];
@@ -444,7 +448,8 @@ describe('Ticket', () => {
});
describe('updateDiscount()', () => {
- it('should make an HTTP POST query, update the sales discount and then call to the resetChanges() method', () => {
+ it('should make an HTTP POST query, update the sales discount ' +
+ 'and then call to the resetChanges() method', () => {
jest.spyOn(controller, 'resetChanges').mockReturnThis();
jest.spyOn(controller.vnApp, 'showSuccess').mockReturnThis();
diff --git a/modules/ticket/front/summary/index.js b/modules/ticket/front/summary/index.js
index f4f36c3ed3..68718aaf2c 100644
--- a/modules/ticket/front/summary/index.js
+++ b/modules/ticket/front/summary/index.js
@@ -64,8 +64,8 @@ class Controller extends Summary {
ticketFk: 'id' in this.ticket ? this.ticket.id : this.$params.id,
code: value
};
-
- this.$http.post(`TicketTrackings/state`, params)
+ console.log('entra');
+ this.$http.post(`Tickets/state`, params)
.then(() => {
if ('id' in this.$params) this.reload();
})
diff --git a/modules/ticket/front/summary/index.spec.js b/modules/ticket/front/summary/index.spec.js
index b8c6f0513f..6837bfd549 100644
--- a/modules/ticket/front/summary/index.spec.js
+++ b/modules/ticket/front/summary/index.spec.js
@@ -50,7 +50,7 @@ describe('Ticket', () => {
let res = {id: 1, nickname: 'myNickname'};
$httpBackend.when('GET', `Tickets/1/summary`).respond(200, res);
- $httpBackend.expectPOST(`TicketTrackings/state`).respond(200, 'ok');
+ $httpBackend.expectPOST(`Tickets/state`).respond(200, 'ok');
controller.state(value);
$httpBackend.flush();
diff --git a/modules/ticket/front/tracking/edit/index.html b/modules/ticket/front/tracking/edit/index.html
index 90f045813b..47f3670075 100644
--- a/modules/ticket/front/tracking/edit/index.html
+++ b/modules/ticket/front/tracking/edit/index.html
@@ -1,4 +1,4 @@
-
+
{
+ this.$http.post(`Tickets/state`, this.params).then(() => {
this.$.watcher.updateOriginalData();
this.card.reload();
this.vnApp.showSuccess(this.$t('Data saved!'));
diff --git a/modules/ticket/front/tracking/edit/index.spec.js b/modules/ticket/front/tracking/edit/index.spec.js
index e97dc1337f..9d9aa7983e 100644
--- a/modules/ticket/front/tracking/edit/index.spec.js
+++ b/modules/ticket/front/tracking/edit/index.spec.js
@@ -61,7 +61,7 @@ describe('Ticket', () => {
jest.spyOn(controller.vnApp, 'showSuccess');
jest.spyOn(controller.$state, 'go');
- $httpBackend.expectPOST(`TicketTrackings/state`, controller.params).respond({});
+ $httpBackend.expectPOST(`Tickets/state`, controller.params).respond({});
controller.onSubmit();
$httpBackend.flush();