merge
This commit is contained in:
commit
5dabb5625c
|
@ -75,8 +75,6 @@ class Controller {
|
|||
this.$http.post(`order/api/Orders/new`, params).then(res => {
|
||||
this.vnApp.showSuccess(this.translate.instant('Data saved!'));
|
||||
this.$state.go("order.card.catalog", {id: res.data});
|
||||
}).catch(e => {
|
||||
this.vnApp.showError(this.translate.instant(e.data.error.message));
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -189,7 +189,7 @@ class Controller {
|
|||
let sales = this.getCheckedLines();
|
||||
|
||||
this.$http.post(`/api/Sales/MoveToNewTicket`, {ticket: ticket, sales: sales}).then(res => {
|
||||
let url = this.$state.href("ticket.card.sale", {id: res.data}, {absolute: true});
|
||||
let url = this.$state.href("ticket.card.sale", {id: res.data.id}, {absolute: true});
|
||||
window.open(url, '_blank');
|
||||
this.$scope.transfer.hide();
|
||||
this.$scope.model.refresh();
|
||||
|
|
|
@ -19,12 +19,12 @@ module.exports = Self => {
|
|||
}
|
||||
});
|
||||
|
||||
async function addSalesToTicket(salesToRefund, newRefundTicket, transaction) {
|
||||
async function addSalesToTicket(salesToRefund, ticketFk, transaction) {
|
||||
let formatedSales = [];
|
||||
salesToRefund.forEach(sale => {
|
||||
let formatedSale = {
|
||||
itemFk: sale.sale().itemFk,
|
||||
ticketFk: newRefundTicket,
|
||||
ticketFk: ticketFk,
|
||||
concept: sale.sale().concept,
|
||||
quantity: -Math.abs(sale.quantity),
|
||||
price: sale.sale().price,
|
||||
|
@ -113,14 +113,30 @@ module.exports = Self => {
|
|||
|
||||
try {
|
||||
let newRefundTicket = await models.Ticket.new(params, {transaction: transaction});
|
||||
let observation = {description: `Reclama ticket: ${claim.ticketFk}`, ticketFk: newRefundTicket, observationTypeFk: obsevationType.id};
|
||||
|
||||
let observation = {
|
||||
description: `Reclama ticket: ${claim.ticketFk}`,
|
||||
ticketFk: newRefundTicket.id,
|
||||
observationTypeFk: obsevationType.id
|
||||
};
|
||||
await saveObservation(observation, {transaction: transaction});
|
||||
await models.TicketTracking.create({ticketFk: newRefundTicket, stateFk: state.id, workerFk: worker.id}, {transaction: transaction});
|
||||
|
||||
await models.TicketTracking.create({
|
||||
ticketFk: newRefundTicket.id,
|
||||
stateFk: state.id,
|
||||
workerFk: worker.id
|
||||
}, {transaction: transaction});
|
||||
|
||||
let salesToRefund = await models.ClaimBeginning.find(salesFilter);
|
||||
let createdSales = await addSalesToTicket(salesToRefund, newRefundTicket, {transaction: transaction});
|
||||
let createdSales = await addSalesToTicket(salesToRefund, newRefundTicket.id, {transaction: transaction});
|
||||
insertIntoClaimEnd(createdSales, id, worker.id, {transaction: transaction});
|
||||
await Self.rawSql('CALL vn.ticketCalculateClon(?, ?)', [newRefundTicket, claim.ticketFk], {transaction: transaction});
|
||||
|
||||
await Self.rawSql('CALL vn.ticketCalculateClon(?, ?)', [
|
||||
newRefundTicket.id, claim.ticketFk
|
||||
], {transaction: transaction});
|
||||
|
||||
await transaction.commit();
|
||||
|
||||
return newRefundTicket;
|
||||
} catch (e) {
|
||||
await transaction.rollback();
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
const app = require(`${servicesDir}/claim/server/server`);
|
||||
|
||||
describe('claimBeginning', () => {
|
||||
let ticketId;
|
||||
let ticket;
|
||||
let refundTicketObservations;
|
||||
let refundTicketSales;
|
||||
let salesInsertedInClaimEnd;
|
||||
|
||||
afterAll(async() => {
|
||||
let promises = [];
|
||||
promises.push(app.models.Ticket.destroyById(ticketId));
|
||||
promises.push(app.models.Ticket.destroyById(ticket.id));
|
||||
|
||||
promises.push(app.models.Ticket.rawSql(`DELETE FROM vn.orderTicket WHERE ticketFk ='${ticketId}';`));
|
||||
promises.push(app.models.Ticket.rawSql(`DELETE FROM vn.orderTicket WHERE ticketFk ='${ticket.id}';`));
|
||||
|
||||
await Promise.all(promises);
|
||||
});
|
||||
|
@ -19,11 +19,13 @@ describe('claimBeginning', () => {
|
|||
it('should create a new ticket with negative sales, save an observation, update the state and insert the negative sales into claimEnd', async() => {
|
||||
let ctxOfSalesAssistant = {req: {accessToken: {userId: 21}}};
|
||||
let claimId = 1;
|
||||
ticketId = await app.models.ClaimBeginning.importToNewRefundTicket(ctxOfSalesAssistant, claimId);
|
||||
await app.models.Ticket.findById(ticketId);
|
||||
refundTicketSales = await app.models.Sale.find({where: {ticketFk: ticketId}});
|
||||
refundTicketObservations = await app.models.TicketObservation.find({where: {ticketFk: ticketId}});
|
||||
let refundTicketState = await app.models.TicketState.findById(ticketId);
|
||||
ticket = await app.models.ClaimBeginning.importToNewRefundTicket(ctxOfSalesAssistant, claimId);
|
||||
|
||||
await app.models.Ticket.findById(ticket.id);
|
||||
|
||||
refundTicketSales = await app.models.Sale.find({where: {ticketFk: ticket.id}});
|
||||
refundTicketObservations = await app.models.TicketObservation.find({where: {ticketFk: ticket.id}});
|
||||
let refundTicketState = await app.models.TicketState.findById(ticket.id);
|
||||
salesInsertedInClaimEnd = await app.models.ClaimEnd.find({where: {claimFk: claimId}});
|
||||
|
||||
expect(refundTicketSales.length).toEqual(2);
|
||||
|
|
|
@ -133,7 +133,7 @@ module.exports = Self => {
|
|||
}
|
||||
|
||||
async function createTicket(params, transaction) {
|
||||
return await Self.app.models.Ticket.new({
|
||||
let ticket = await Self.app.models.Ticket.new({
|
||||
shipped: new Date(),
|
||||
landed: new Date(),
|
||||
clientFk: params.clientFk,
|
||||
|
@ -142,6 +142,8 @@ module.exports = Self => {
|
|||
addressFk: params.addressFk,
|
||||
userId: params.userId
|
||||
}, {transaction: transaction});
|
||||
|
||||
return ticket.id;
|
||||
}
|
||||
|
||||
async function sendMessage(ctx, params, transaction) {
|
||||
|
|
|
@ -5,7 +5,6 @@ DELIMITER $$
|
|||
USE `vn`$$
|
||||
CREATE DEFINER=`root`@`%` PROCEDURE `ticketCalculateClon`(IN vTicketNew INT, vTicketOld INT)
|
||||
BEGIN
|
||||
|
||||
/*
|
||||
* @vTicketNew id del nuevo ticket clonado
|
||||
* @vTicketOld id ticket original, a partir del qual se clonara el nuevo
|
||||
|
@ -41,7 +40,7 @@ BEGIN
|
|||
SELECT vWarehouse warehouseFk,NULL available,s.itemFk, bu.buyFk
|
||||
FROM sale s
|
||||
LEFT JOIN tmp.buyUltimate bu ON bu.itemFk = s.itemFk
|
||||
WHERE s.ticketFk = vTicketNew GROUP BY s.itemFk;
|
||||
WHERE s.ticketFk = vTicketOld GROUP BY s.itemFk;
|
||||
|
||||
CALL ticketComponentCalculate(vAddress,vAgencyMode);
|
||||
|
||||
|
|
|
@ -529,12 +529,12 @@ INSERT INTO `vn`.`ticketPackaging`(`id`, `ticketFk`, `packagingFk`, `quantity`,
|
|||
|
||||
INSERT INTO `vn`.`sale`(`id`, `itemFk`, `ticketFk`, `concept`, `quantity`, `price`, `discount`, `reserved`, `isPicked`, `created`)
|
||||
VALUES
|
||||
( 1, 1, 1 , 'Gem of Time', 5, 9.10, 0, 0, 0, CURDATE()),
|
||||
( 2, 2, 1 , 'Gem of Mind', 10, 1.07, 0, 0, 0, CURDATE()),
|
||||
( 3, 1, 1 , 'Gem of Time', 2, 9.10, 0, 0, 0, CURDATE()),
|
||||
( 4, 4, 1 , 'Mark I' , 20, 3.06, 0, 0, 0, CURDATE()),
|
||||
( 5, 1, 2 , 'Gem of Time', 10, 9.10, 0, 0, 0, CURDATE()),
|
||||
( 6, 1, 3 , 'Gem of Time', 15, 6.50, 0, 0, 0, CURDATE()),
|
||||
( 1, 1, 1 , 'Gem of Time', 5, 9.10, 0, 0, 0, DATE_ADD(CURDATE(), INTERVAL -15 DAY)),
|
||||
( 2, 2, 1 , 'Gem of Mind', 10, 1.07, 0, 0, 0, DATE_ADD(CURDATE(), INTERVAL -15 DAY)),
|
||||
( 3, 1, 1 , 'Gem of Time', 2, 9.10, 0, 0, 0, DATE_ADD(CURDATE(), INTERVAL -15 DAY)),
|
||||
( 4, 4, 1 , 'Mark I' , 20, 3.06, 0, 0, 0, DATE_ADD(CURDATE(), INTERVAL -15 DAY)),
|
||||
( 5, 1, 2 , 'Gem of Time', 10, 9.10, 0, 0, 0, DATE_ADD(CURDATE(), INTERVAL -10 DAY)),
|
||||
( 6, 1, 3 , 'Gem of Time', 15, 6.50, 0, 0, 0, DATE_ADD(CURDATE(), INTERVAL -5 DAY)),
|
||||
( 7, 2, 11, 'Gem of Mind', 15, 1.30, 0, 0, 0, CURDATE()),
|
||||
( 8, 4, 11, 'Mark I' , 10, 3.26, 0, 0, 0, CURDATE()),
|
||||
( 9, 1, 16, 'Gem of Time', 5, 9.10, 0, 0, 0, CURDATE()),
|
||||
|
@ -837,9 +837,79 @@ INSERT INTO `hedera`.`order`(`id`, `date_send`, `customer_id`, `delivery_method_
|
|||
|
||||
INSERT INTO `hedera`.`orderRow`(`id`, `orderFk`, `itemFk`, `warehouseFk`, `shipment`, `amount`, `price`, `rate`, `created`, `saleFk`)
|
||||
VALUES
|
||||
( 1, 1, 1, 1 , NULL , 9, 1.5 , 1, CURDATE(), 1),
|
||||
( 2, 2, 2, 1 , NULL , 5, 1.23, 2, CURDATE(), 2),
|
||||
( 3, 3, 3, 2 , CURDATE(), 3, 0.50, 3, CURDATE(), 3);
|
||||
( 1, 1, 1, 1, DATE_ADD(CURDATE(), INTERVAL -15 DAY), 5, 9.10, 0, DATE_ADD(CURDATE(), INTERVAL -15 DAY), 1),
|
||||
( 2, 1, 2, 1, DATE_ADD(CURDATE(), INTERVAL -15 DAY), 10, 1.07, 0, DATE_ADD(CURDATE(), INTERVAL -15 DAY), 2),
|
||||
( 3, 1, 1, 1, DATE_ADD(CURDATE(), INTERVAL -15 DAY), 2, 9.10, 0, DATE_ADD(CURDATE(), INTERVAL -15 DAY), 3),
|
||||
( 4, 1, 4, 1, DATE_ADD(CURDATE(), INTERVAL -15 DAY), 20, 3.06, 0, DATE_ADD(CURDATE(), INTERVAL -15 DAY), 4),
|
||||
( 5, 2, 1, 1, DATE_ADD(CURDATE(), INTERVAL -10 DAY), 10, 9.10, 0, DATE_ADD(CURDATE(), INTERVAL -10 DAY), 5),
|
||||
( 6, 3, 1, 2, DATE_ADD(CURDATE(), INTERVAL -5 DAY), 15, 6.50, 0, DATE_ADD(CURDATE(), INTERVAL -5 DAY), 6),
|
||||
( 7, 11, 2, 1, CURDATE(), 15, 1.30, 0, CURDATE(), 7),
|
||||
( 8, 11, 4, 1, CURDATE(), 10, 3.26, 0, CURDATE(), 8),
|
||||
( 9, 16, 1, 1, CURDATE(), 5, 9.10, 0, CURDATE(), 9),
|
||||
( 10, 16, 2, 1, CURDATE(), 10, 1.07, 0, CURDATE(), 10),
|
||||
( 11, 16, 1, 1, CURDATE(), 2, 9.10, 0, CURDATE(), 11),
|
||||
( 12, 16, 4, 1, CURDATE(), 20, 3.06, 0, CURDATE(), 12);
|
||||
|
||||
INSERT INTO `hedera`.`orderRowComponent`(`rowFk`, `componentFk`, `price`)
|
||||
VALUES
|
||||
( 1, 15, 0.58),
|
||||
( 1, 23, 6.5),
|
||||
( 1, 28, 20.72),
|
||||
( 1, 29, -18.72),
|
||||
( 1, 39, 0.02),
|
||||
( 2, 15, 0.058),
|
||||
( 2, 21, 0.002),
|
||||
( 2, 28, 5.6),
|
||||
( 2, 29, -4.6),
|
||||
( 2, 39, 0.01),
|
||||
( 3, 15, 0.58),
|
||||
( 3, 23, 6.5),
|
||||
( 3, 28, 20.72),
|
||||
( 3, 29, -18.72),
|
||||
( 3, 39, 0.02),
|
||||
( 4, 15, 0.051),
|
||||
( 4, 21, -0.001),
|
||||
( 4, 28, 20.72),
|
||||
( 4, 29, -19.72),
|
||||
( 4, 37, 2),
|
||||
( 4, 39, 0.01),
|
||||
( 5, 15, 0.58),
|
||||
( 5, 23, 6.5),
|
||||
( 5, 28, 20.72),
|
||||
( 5, 29, -18.72),
|
||||
( 5, 39, 0.02),
|
||||
( 6, 23, 6.5),
|
||||
( 7, 15, 0.29),
|
||||
( 7, 28, 5.6),
|
||||
( 7, 29, -4.6),
|
||||
( 7, 39, 0.01),
|
||||
( 8, 15, 0.254),
|
||||
( 8, 21, -0.004),
|
||||
( 8, 28, 20.72),
|
||||
( 8, 29, -19.72),
|
||||
( 8, 37, 2),
|
||||
( 8, 39, 0.01),
|
||||
( 9, 15, 0.58),
|
||||
( 9, 23, 6.5),
|
||||
( 9, 28, 20.72),
|
||||
( 9, 29, -18.72),
|
||||
( 9, 39, 0.02),
|
||||
( 10, 15, 0.058),
|
||||
( 10, 21, 0.002),
|
||||
( 10, 28, 5.6),
|
||||
( 10, 29, -4.6),
|
||||
( 10, 39, 0.01),
|
||||
( 11, 15, 0.58),
|
||||
( 11, 23, 6.5),
|
||||
( 11, 28, 20.72),
|
||||
( 11, 29, -18.72),
|
||||
( 11, 39, 0.02),
|
||||
( 12, 15, 0.051),
|
||||
( 12, 22, -0.001),
|
||||
( 12, 28, 20.72),
|
||||
( 12, 29, -19.72),
|
||||
( 12, 37, 2),
|
||||
( 12, 39, 0.01);
|
||||
|
||||
INSERT INTO `vn`.`clientContact`(`id`, `clientFk`, `name`, `phone`)
|
||||
VALUES
|
||||
|
|
|
@ -52,5 +52,6 @@
|
|||
"Warehouse cannot be blank": "El almacén no puede quedar en blanco",
|
||||
"Agency cannot be blank": "La agencia no puede quedar en blanco",
|
||||
"You don't have enough privileges to do that": "No tienes permisos para para hacer esto",
|
||||
"This address doesn't exist": "This address doesn't exist"
|
||||
"This address doesn't exist": "Este consignatario no existe",
|
||||
"The sales of this ticket can't be modified": "Los movimientos de este tiquet no pueden ser modificadas"
|
||||
}
|
|
@ -51,14 +51,21 @@ module.exports = Self => {
|
|||
userId: userId
|
||||
};
|
||||
|
||||
let newTicket = await model.Ticket.new(newTicketParams);
|
||||
let transaction = await Self.beginTransaction({});
|
||||
try {
|
||||
let newTicket = await model.Ticket.new(newTicketParams, {transaction: transaction});
|
||||
|
||||
let promises = [];
|
||||
for (let i = 0; i < params.sales.length; i++) {
|
||||
promises.push(model.Sale.update({id: params.sales[i].id}, {ticketFk: newTicket}));
|
||||
await model.Sale.updateAll(
|
||||
{ticketFk: params.ticket.oldTicketFk},
|
||||
{ticketFk: newTicket.id},
|
||||
{transaction: transaction});
|
||||
|
||||
await transaction.commit();
|
||||
|
||||
return newTicket;
|
||||
} catch (e) {
|
||||
await transaction.rollback();
|
||||
throw e;
|
||||
}
|
||||
await Promise.all(promises);
|
||||
|
||||
return newTicket;
|
||||
};
|
||||
};
|
||||
|
|
|
@ -22,7 +22,12 @@ module.exports = Self => {
|
|||
});
|
||||
|
||||
Self.new = async(params, transaction) => {
|
||||
let existsAddress = await Self.app.models.Address.findOne({where: {id: params.addressFk, clientFk: params.clientFk}});
|
||||
let existsAddress = await Self.app.models.Address.findOne({
|
||||
where: {
|
||||
id: params.addressFk,
|
||||
clientFk: params.clientFk}
|
||||
});
|
||||
|
||||
if (!existsAddress)
|
||||
throw new UserError(`This address doesn't exist`);
|
||||
|
||||
|
@ -40,6 +45,8 @@ module.exports = Self => {
|
|||
params.userId
|
||||
], transaction);
|
||||
|
||||
return result[1][0].newTicketId;
|
||||
return await Self.findOne({
|
||||
where: {id: result[1][0].newTicketId}
|
||||
}, transaction);
|
||||
};
|
||||
};
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
const app = require(`${servicesDir}/ticket/server/server`);
|
||||
|
||||
describe('ticket new()', () => {
|
||||
let ticketId;
|
||||
let ticket;
|
||||
let today = new Date();
|
||||
|
||||
afterAll(async() => {
|
||||
await app.models.Ticket.destroyById(ticketId);
|
||||
await app.models.Ticket.destroyById(ticket.id);
|
||||
});
|
||||
|
||||
it('should throw an error if the address doesnt exist', async() => {
|
||||
|
@ -33,10 +33,10 @@ describe('ticket new()', () => {
|
|||
landed: today
|
||||
};
|
||||
|
||||
ticketId = await app.models.Ticket.new(params);
|
||||
ticket = await app.models.Ticket.new(params);
|
||||
|
||||
let newestTicketIdInFixtures = 21;
|
||||
|
||||
expect(ticketId).toBeGreaterThan(newestTicketIdInFixtures);
|
||||
expect(ticket.id).toBeGreaterThan(newestTicketIdInFixtures);
|
||||
});
|
||||
});
|
||||
|
|
|
@ -187,8 +187,8 @@ module.exports = function(Self) {
|
|||
});
|
||||
};
|
||||
|
||||
Self.rawStmt = function(stmt) {
|
||||
return this.rawSql(stmt.sql, stmt.params);
|
||||
Self.rawStmt = function(stmt, options = {}) {
|
||||
return this.rawSql(stmt.sql, stmt.params, options);
|
||||
};
|
||||
|
||||
Self.escapeName = function(name) {
|
||||
|
|
|
@ -20,8 +20,11 @@ module.exports = Self => {
|
|||
});
|
||||
|
||||
Self.new = async params => {
|
||||
let clientFkByAddress = await Self.app.models.Address.findOne({where: {id: params.addressFk}, fields: 'clientFk'});
|
||||
let clientFk = clientFkByAddress.clientFk;
|
||||
let address = await Self.app.models.Address.findOne({
|
||||
where: {id: params.addressFk},
|
||||
fields: 'clientFk'
|
||||
});
|
||||
let clientFk = address.clientFk;
|
||||
|
||||
let client = await Self.app.models.Client.findOne({
|
||||
where: {id: clientFk},
|
||||
|
|
|
@ -4,7 +4,7 @@ describe('order getTotalVolume()', () => {
|
|||
it('should return the total', async() => {
|
||||
let result = await app.models.Order.getTotalVolume(1);
|
||||
|
||||
expect(result.totalVolume).toEqual(0.072);
|
||||
expect(result.totalVolume).toEqual(0.078);
|
||||
expect(result.totalBoxes).toBeFalsy();
|
||||
});
|
||||
});
|
||||
|
|
|
@ -4,6 +4,6 @@ describe('order getVolumes()', () => {
|
|||
it('should return the volumes of a given order id', async() => {
|
||||
let [result] = await app.models.Order.getVolumes(1);
|
||||
|
||||
expect(result.volume).toEqual(0.072);
|
||||
expect(result.volume).toEqual(0.04);
|
||||
});
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue