feat newState refs #7642
gitea/salix/pipeline/pr-dev This commit looks good Details

This commit is contained in:
Sergio De la torre 2024-07-15 12:28:30 +02:00
parent 689a88b75e
commit 573f5c8d28
4 changed files with 21 additions and 15 deletions

View File

@ -0,0 +1,2 @@
ALTER TABLE vn.ticketLastState MODIFY COLUMN name varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NOT NULL;

View File

@ -1,5 +1,5 @@
-- Place your SQL code here
INSERT INTO vn.state ( name, `order`, alertLevel, code, sectorProdPriority, nextStateFk, isPreviousPreparable, isPicked, isPreparable, semaphore, isPrintable, isOK, graphCategory, isNotValidated, classColor) VALUES('Entregado en parte', 13, 3, 'PARTIALLY_DELIVERED', NULL, 16, 0, 1, 0, 0, 0, 0, 0, 0, NULL);
INSERT INTO vn.state ( name, `order`, alertLevel, code, sectorProdPriority, nextStateFk, isPreviousPreparable, isPicked, isPreparable, semaphore, isPrintable, isOK, graphCategory, isNotValidated, classColor) VALUES('Entregado en parte', 13, 3, 'PARTIAL_DELIVERED', NULL, 16, 0, 1, 0, 0, 0, 0, 0, 0, NULL);

View File

@ -143,7 +143,7 @@ module.exports = Self => {
const [{stateForTicket}] = await Self.rawSql(`
SELECT
IF((SUM(CASE WHEN est.code = 'DELIVERED' THEN 1 ELSE 0 END) = COUNT(*)),
'DELIVERED','PARTIALLYDELIVERED') stateForTicket
'DELIVERED','PARTIAL_DELIVERED') stateForTicket
FROM vn.expedition e
JOIN vn.expeditionStateType est ON est.id = e.stateTypeFk
WHERE e.ticketFk = ?;

View File

@ -8,7 +8,7 @@ describe('Ticket saveSign()', () => {
accessToken: {userId: 9}
}};
fit(`should throw error if the ticket's alert level is lower than 2`, async() => {
it(`should throw error if the ticket's alert level is lower than 2`, async() => {
const tx = await models.TicketDms.beginTransaction({});
const ticketWithOkState = 12;
let error;
@ -27,31 +27,35 @@ describe('Ticket saveSign()', () => {
expect(error).toBeDefined();
});
fit('should change state for ticket', async() => {
const tx = await models.TicketDms.beginTransaction({});
const ticketWithOkState = 12;
it('should change state for ticket', async() => {
const tx = await models.State.beginTransaction({});
const ticketWithOkState = 7;
const ticketStateId = 16;
const ticketCode = 'PARTIALLY_DELIVERED';
const ticketCode = 'PARTIAL_DELIVERED';
spyOn(models.Dms, 'uploadFile').and.returnValue([{id: 1}]);
let ticketTrackingAfter;
try {
const options = {transaction: tx};
const tickets = [ticketWithOkState];
const state = await models.State.findById(ticketStateId);
const state = await models.State.findById(ticketStateId, null, options);
await state.updateAttributes({
code: ticketCode
}, options);
const ticketState = await models.TicketTracking.findById(ticketStateId);
await ticketState.updateAttributes({
code: ticketCode
code: ticketCode,
name: ticketCode
}, options);
await models.Ticket.saveSign(ctx, tickets, null, null, options);
ticketTrackingAfter = await models.TicketLastState.findOne({
where: {ticketFk: ticketWithOkState}
}, options);
await models.Ticket.saveSign(ctx, tickets, options);
await tx.rollback();
} catch (e) {
await tx.rollback();
throw e;
}
expect(ticket.toEqual('DELIVERED'));
expect(ticketTrackingAfter.name).toBe('PARTIAL_DELIVERED');
});
});