feat: update date
gitea/salix/pipeline/pr-dev This commit looks good
Details
gitea/salix/pipeline/pr-dev This commit looks good
Details
This commit is contained in:
parent
c8253aa0ff
commit
176475a7a7
|
@ -39,9 +39,13 @@ describe('Split', () => {
|
||||||
it('should split tickets with count 2 and success', async() => {
|
it('should split tickets with count 2 and success', async() => {
|
||||||
const data =
|
const data =
|
||||||
{ticketFk: 14, sales: [33]};
|
{ticketFk: 14, sales: [33]};
|
||||||
const result = await models.Ticket.split(ctx, data, options);
|
const result = await models.Ticket.split(ctx, data, Date.vnNew(), options);
|
||||||
|
const newTicket = await models.Ticket.findById(result.newTicket, null, options);
|
||||||
|
|
||||||
|
expect(newTicket).toBeDefined();
|
||||||
expect(data.ticketFk).toEqual(result.ticket);
|
expect(data.ticketFk).toEqual(result.ticket);
|
||||||
|
expect(data.ticketFk).toEqual(result.ticket);
|
||||||
|
expect(data.ticketFk).not.toEqual(result.newTicket);
|
||||||
expect('split').toEqual(result.status);
|
expect('split').toEqual(result.status);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -10,7 +10,7 @@ module.exports = Self => {
|
||||||
http: {source: 'body'}
|
http: {source: 'body'}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
arg: 'date',
|
arg: 'landed',
|
||||||
type: 'date',
|
type: 'date',
|
||||||
required: true,
|
required: true,
|
||||||
}
|
}
|
||||||
|
@ -25,8 +25,7 @@ module.exports = Self => {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
Self.split = async(ctx, ticket, options) => {
|
Self.split = async(ctx, {ticketFk, sales}, landed, options) => {
|
||||||
const {ticketFk} = ticket;
|
|
||||||
const models = Self.app.models;
|
const models = Self.app.models;
|
||||||
const myOptions = {};
|
const myOptions = {};
|
||||||
let tx;
|
let tx;
|
||||||
|
@ -51,18 +50,21 @@ module.exports = Self => {
|
||||||
[ticketFk], myOptions);
|
[ticketFk], myOptions);
|
||||||
|
|
||||||
if (vNewTicket === 0) return result;
|
if (vNewTicket === 0) return result;
|
||||||
const sales = await models.Sale.find({
|
const salesToUpdate = await models.Sale.find({
|
||||||
where: {id: {inq: ticket.sales}}
|
where: {id: {inq: sales}}
|
||||||
}, myOptions);
|
}, myOptions);
|
||||||
|
|
||||||
const updateIsPicked = sales.map(({sid}) => Self.rawSql(`
|
const updateIsPicked = salesToUpdate.map(({sid}) => Self.rawSql(`
|
||||||
UPDATE vn.sale SET isPicked = (id = ?) WHERE ticketFk = ?`,
|
UPDATE vn.sale SET isPicked = (id = ?) WHERE ticketFk = ?`,
|
||||||
[sid, ticketFk], myOptions));
|
[sid, ticketFk], myOptions));
|
||||||
|
|
||||||
await Promise.all(updateIsPicked);
|
await Promise.all(updateIsPicked);
|
||||||
await Self.transferSales(ctx, ticketFk, vNewTicket, sales, myOptions);
|
await Self.transferSales(ctx, ticketFk, vNewTicket, salesToUpdate, myOptions);
|
||||||
|
|
||||||
await Self.rawSql(`CALL vn.ticket_setState(?, ?)`, [ticketFk, 'FIXING'], myOptions);
|
await Self.rawSql(`CALL vn.ticket_setState(?, ?)`, [ticketFk, 'FIXING'], myOptions);
|
||||||
|
|
||||||
|
const newTicket = await models.Ticket.findById(vNewTicket, null, myOptions);
|
||||||
|
await newTicket.updateAttributes({landed}, myOptions);
|
||||||
if (tx) await tx.commit();
|
if (tx) await tx.commit();
|
||||||
return {ticket: ticketFk, newTicket: vNewTicket, status: 'split'};
|
return {ticket: ticketFk, newTicket: vNewTicket, status: 'split'};
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
|
Loading…
Reference in New Issue