Merge remote-tracking branch 'origin/dev' into 6321_negative_tickets
This commit is contained in:
commit
caaa4fdd30
|
@ -5,7 +5,9 @@ All notable changes to this project will be documented in this file.
|
||||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||||
|
|
||||||
## [24.18.01] - 2024-05-02
|
## [24.20.01] - 2024-05-14
|
||||||
|
|
||||||
|
## [24.18.01] - 2024-05-07
|
||||||
|
|
||||||
## [24.16.01] - 2024-04-18
|
## [24.16.01] - 2024-04-18
|
||||||
|
|
||||||
|
|
|
@ -12,8 +12,8 @@ module.exports = Self => {
|
||||||
http: {
|
http: {
|
||||||
path: `/renewToken`,
|
path: `/renewToken`,
|
||||||
verb: 'POST'
|
verb: 'POST'
|
||||||
}
|
},
|
||||||
});
|
accessScopes: ['DEFAULT', 'read:multimedia']});
|
||||||
|
|
||||||
Self.renewToken = async function(ctx) {
|
Self.renewToken = async function(ctx) {
|
||||||
const {accessToken: token} = ctx.req;
|
const {accessToken: token} = ctx.req;
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
# EditorConfig helps developers define and maintain consistent
|
||||||
|
# coding styles between different editors and IDEs
|
||||||
|
# http://editorconfig.org
|
||||||
|
|
||||||
|
root = true
|
||||||
|
|
||||||
|
[*]
|
||||||
|
indent_style = tab
|
||||||
|
indent_size = 4
|
||||||
|
end_of_line = lf
|
||||||
|
charset = utf-8
|
||||||
|
trim_trailing_whitespace = true
|
||||||
|
insert_final_newline = true
|
|
@ -2616,16 +2616,32 @@ INSERT INTO `vn`.`invoiceInIntrastat` (`invoiceInFk`, `net`, `intrastatFk`, `amo
|
||||||
(2, 16.10, 6021010, 25.00, 80, 5);
|
(2, 16.10, 6021010, 25.00, 80, 5);
|
||||||
|
|
||||||
UPDATE `vn`.`invoiceIn`
|
UPDATE `vn`.`invoiceIn`
|
||||||
SET isBooked = TRUE
|
SET isBooked = TRUE
|
||||||
WHERE id IN (2, 5, 7, 8, 9, 10);
|
WHERE id IN (5, 7, 8, 9, 10);
|
||||||
|
|
||||||
INSERT INTO `vn`.`ticketRecalc`(`ticketFk`)
|
DELIMITER $$
|
||||||
SELECT t.id
|
CREATE PROCEDURE `tmp`.`ticket_recalc`()
|
||||||
FROM vn.ticket t
|
BEGIN
|
||||||
LEFT JOIN vn.ticketRecalc tr ON tr.ticketFk = t.id
|
DECLARE vDone BOOL;
|
||||||
WHERE tr.ticketFk IS NULL;
|
DECLARE vTicketFk INT;
|
||||||
|
|
||||||
CALL `vn`.`ticket_doRecalc`();
|
DECLARE cTickets CURSOR FOR SELECT id FROM vn.ticket;
|
||||||
|
DECLARE CONTINUE HANDLER FOR NOT FOUND
|
||||||
|
SET vDone = TRUE;
|
||||||
|
|
||||||
|
OPEN cTickets;
|
||||||
|
myLoop: LOOP
|
||||||
|
SET vDone = FALSE;
|
||||||
|
FETCH cTickets INTO vTicketFk;
|
||||||
|
IF vDone THEN LEAVE myLoop; END IF;
|
||||||
|
CALL vn.ticket_recalc(vTicketFk, NULL);
|
||||||
|
END LOOP;
|
||||||
|
CLOSE cTickets;
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
||||||
|
|
||||||
|
CALL tmp.ticket_recalc;
|
||||||
|
DROP PROCEDURE tmp.ticket_recalc;
|
||||||
|
|
||||||
UPDATE `vn`.`ticket`
|
UPDATE `vn`.`ticket`
|
||||||
SET refFk = 'T1111111'
|
SET refFk = 'T1111111'
|
||||||
|
|
|
@ -1,8 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` EVENT `hedera`.`order_doRecalc`
|
|
||||||
ON SCHEDULE EVERY 10 SECOND
|
|
||||||
STARTS '2019-08-29 14:18:04.000'
|
|
||||||
ON COMPLETION PRESERVE
|
|
||||||
DISABLE
|
|
||||||
DO CALL order_doRecalc$$
|
|
||||||
DELIMITER ;
|
|
|
@ -1,53 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`order_doRecalc`()
|
|
||||||
proc: BEGIN
|
|
||||||
/**
|
|
||||||
* Recalculates modified orders.
|
|
||||||
*/
|
|
||||||
DECLARE vDone BOOL;
|
|
||||||
DECLARE vOrderFk INT;
|
|
||||||
|
|
||||||
DECLARE cCur CURSOR FOR
|
|
||||||
SELECT DISTINCT orderFk FROM tOrder;
|
|
||||||
|
|
||||||
DECLARE CONTINUE HANDLER FOR NOT FOUND
|
|
||||||
SET vDone = TRUE;
|
|
||||||
|
|
||||||
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION
|
|
||||||
BEGIN
|
|
||||||
DO RELEASE_LOCK('hedera.order_doRecalc');
|
|
||||||
ROLLBACK;
|
|
||||||
RESIGNAL;
|
|
||||||
END;
|
|
||||||
|
|
||||||
IF !GET_LOCK('hedera.order_doRecalc', 0) THEN
|
|
||||||
LEAVE proc;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tOrder;
|
|
||||||
CREATE TEMPORARY TABLE tOrder
|
|
||||||
ENGINE = MEMORY
|
|
||||||
SELECT id, orderFk FROM orderRecalc;
|
|
||||||
|
|
||||||
OPEN cCur;
|
|
||||||
|
|
||||||
myLoop: LOOP
|
|
||||||
SET vDone = FALSE;
|
|
||||||
FETCH cCur INTO vOrderFk;
|
|
||||||
|
|
||||||
IF vDone THEN
|
|
||||||
LEAVE myLoop;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
CALL order_recalc(vOrderFk);
|
|
||||||
END LOOP;
|
|
||||||
|
|
||||||
CLOSE cCur;
|
|
||||||
|
|
||||||
DELETE o FROM orderRecalc o JOIN tOrder t ON t.id = o.id;
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE tOrder;
|
|
||||||
|
|
||||||
DO RELEASE_LOCK('hedera.order_doRecalc');
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -1,16 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`order_requestRecalc`(vSelf INT)
|
|
||||||
proc: BEGIN
|
|
||||||
/**
|
|
||||||
* Adds a request to recalculate the order total.
|
|
||||||
*
|
|
||||||
* @param vSelf The order identifier
|
|
||||||
*/
|
|
||||||
IF vSelf IS NULL THEN
|
|
||||||
LEAVE proc;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
-- #4409 Disable order recalc
|
|
||||||
-- INSERT INTO orderRecalc SET orderFk = vSelf;
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -1,9 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `hedera`.`orderRow_afterDelete`
|
|
||||||
AFTER DELETE ON `orderRow`
|
|
||||||
FOR EACH ROW
|
|
||||||
BEGIN
|
|
||||||
CALL stock.log_add('orderRow', NULL, OLD.id);
|
|
||||||
CALL order_requestRecalc(OLD.orderFk);
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -1,9 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `hedera`.`orderRow_afterInsert`
|
|
||||||
AFTER INSERT ON `orderRow`
|
|
||||||
FOR EACH ROW
|
|
||||||
BEGIN
|
|
||||||
CALL stock.log_add('orderRow', NEW.id, NULL);
|
|
||||||
CALL order_requestRecalc(NEW.orderFk);
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -1,10 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `hedera`.`orderRow_afterUpdate`
|
|
||||||
AFTER UPDATE ON `orderRow`
|
|
||||||
FOR EACH ROW
|
|
||||||
BEGIN
|
|
||||||
CALL stock.log_add('orderRow', NEW.id, OLD.id);
|
|
||||||
CALL order_requestRecalc(OLD.orderFk);
|
|
||||||
CALL order_requestRecalc(NEW.orderFk);
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -2,23 +2,15 @@ DELIMITER $$
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `hedera`.`order_afterUpdate`
|
CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `hedera`.`order_afterUpdate`
|
||||||
AFTER UPDATE ON `order`
|
AFTER UPDATE ON `order`
|
||||||
FOR EACH ROW
|
FOR EACH ROW
|
||||||
BEGIN
|
BEGIN
|
||||||
CALL stock.log_add('order', NEW.id, OLD.id);
|
IF !(OLD.address_id <=> NEW.address_id) AND NEW.address_id = 2850 THEN
|
||||||
|
-- Fallo que se actualiza no se sabe como tickets en este cliente
|
||||||
IF !(OLD.address_id <=> NEW.address_id)
|
CALL vn.mail_insert(
|
||||||
OR !(OLD.company_id <=> NEW.company_id)
|
'jgallego@verdnatura.es',
|
||||||
OR !(OLD.customer_id <=> NEW.customer_id) THEN
|
'noreply@verdnatura.es',
|
||||||
CALL order_requestRecalc(NEW.id);
|
'Actualizada order al address 2850',
|
||||||
END IF;
|
CONCAT(account.myUser_getName(), ' ha creado la order ',NEW.id)
|
||||||
|
);
|
||||||
IF !(OLD.address_id <=> NEW.address_id) AND NEW.address_id = 2850 THEN
|
END IF;
|
||||||
-- Fallo que se actualiza no se sabe como tickets en este cliente
|
|
||||||
CALL vn.mail_insert(
|
|
||||||
'jgallego@verdnatura.es',
|
|
||||||
'noreply@verdnatura.es',
|
|
||||||
'Actualizada order al address 2850',
|
|
||||||
CONCAT(account.myUser_getName(), ' ha creado la order ',NEW.id)
|
|
||||||
);
|
|
||||||
END IF;
|
|
||||||
END$$
|
END$$
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
DELIMITER $$
|
DELIMITER $$
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `stock`.`inbound_addPick`(
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `stock`.`inbound_addPick`(
|
||||||
vSelf INT,
|
vSelf INT,
|
||||||
vOutboundFk INT,
|
vOutboundFk INT,
|
||||||
vQuantity INT
|
vQuantity INT
|
||||||
)
|
)
|
||||||
BEGIN
|
BEGIN
|
||||||
INSERT INTO inboundPick
|
INSERT INTO inboundPick
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
DELIMITER $$
|
DELIMITER $$
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `stock`.`inbound_removePick`(
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `stock`.`inbound_removePick`(
|
||||||
vSelf INT,
|
vSelf INT,
|
||||||
vOutboundFk INT,
|
vOutboundFk INT,
|
||||||
vQuantity INT,
|
vQuantity INT,
|
||||||
vTotalQuantity INT
|
vTotalQuantity INT
|
||||||
)
|
)
|
||||||
BEGIN
|
BEGIN
|
||||||
IF vQuantity < vTotalQuantity THEN
|
IF vQuantity < vTotalQuantity THEN
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
DELIMITER $$
|
DELIMITER $$
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `stock`.`inbound_requestQuantity`(
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `stock`.`inbound_requestQuantity`(
|
||||||
vSelf INT,
|
vSelf INT,
|
||||||
vRequested INT,
|
vRequested INT,
|
||||||
vDated DATETIME,
|
vDated DATETIME,
|
||||||
OUT vSupplied INT)
|
OUT vSupplied INT)
|
||||||
BEGIN
|
BEGIN
|
||||||
/**
|
/**
|
||||||
* Disassociates inbound picks after the given date until the
|
* Disassociates inbound picks after the given date until the
|
||||||
|
@ -29,7 +29,7 @@ BEGIN
|
||||||
|
|
||||||
DECLARE CONTINUE HANDLER FOR NOT FOUND
|
DECLARE CONTINUE HANDLER FOR NOT FOUND
|
||||||
SET vDone = TRUE;
|
SET vDone = TRUE;
|
||||||
|
|
||||||
SET vSupplied = 0;
|
SET vSupplied = 0;
|
||||||
|
|
||||||
OPEN vPicks;
|
OPEN vPicks;
|
||||||
|
@ -45,7 +45,7 @@ BEGIN
|
||||||
SET vPickGranted = LEAST(vRequested - vSupplied, vPickQuantity);
|
SET vPickGranted = LEAST(vRequested - vSupplied, vPickQuantity);
|
||||||
SET vSupplied = vSupplied + vPickGranted;
|
SET vSupplied = vSupplied + vPickGranted;
|
||||||
CALL inbound_removePick(vSelf, vOutboundFk, vPickGranted, vPickQuantity);
|
CALL inbound_removePick(vSelf, vOutboundFk, vPickGranted, vPickQuantity);
|
||||||
|
|
||||||
UPDATE outbound
|
UPDATE outbound
|
||||||
SET isSync = FALSE,
|
SET isSync = FALSE,
|
||||||
lack = lack + vPickGranted
|
lack = lack + vPickGranted
|
||||||
|
|
|
@ -23,7 +23,7 @@ BEGIN
|
||||||
SELECT id, lack, lack < quantity
|
SELECT id, lack, lack < quantity
|
||||||
FROM outbound
|
FROM outbound
|
||||||
WHERE warehouseFk = vWarehouse
|
WHERE warehouseFk = vWarehouse
|
||||||
AND itemFk = vItem
|
AND itemFk = vItem
|
||||||
AND dated >= vDated
|
AND dated >= vDated
|
||||||
AND (vExpired IS NULL OR dated < vExpired)
|
AND (vExpired IS NULL OR dated < vExpired)
|
||||||
ORDER BY dated, created;
|
ORDER BY dated, created;
|
||||||
|
@ -51,8 +51,8 @@ BEGIN
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
SET vSupplied = LEAST(vAvailable, vLack);
|
SET vSupplied = LEAST(vAvailable, vLack);
|
||||||
|
|
||||||
IF vSupplied > 0 THEN
|
IF vSupplied > 0 THEN
|
||||||
SET vAvailable = vAvailable - vSupplied;
|
SET vAvailable = vAvailable - vSupplied;
|
||||||
UPDATE outbound
|
UPDATE outbound
|
||||||
SET lack = lack - vSupplied
|
SET lack = lack - vSupplied
|
||||||
|
@ -64,8 +64,8 @@ BEGIN
|
||||||
SET vSupplied = vSupplied + vSuppliedFromRequest;
|
SET vSupplied = vSupplied + vSuppliedFromRequest;
|
||||||
SET vAvailable = vAvailable - vSuppliedFromRequest;
|
SET vAvailable = vAvailable - vSuppliedFromRequest;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
IF vSupplied > 0 THEN
|
IF vSupplied > 0 THEN
|
||||||
CALL inbound_addPick(vSelf, vOutboundFk, vSupplied);
|
CALL inbound_addPick(vSelf, vOutboundFk, vSupplied);
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
|
|
|
@ -1,21 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `stock`.`log_add`(IN `vTableName` VARCHAR(255), IN `vNewId` VARCHAR(255), IN `vOldId` VARCHAR(255))
|
|
||||||
proc: BEGIN
|
|
||||||
-- XXX: Disabled while testing
|
|
||||||
LEAVE proc;
|
|
||||||
|
|
||||||
IF vOldId IS NOT NULL AND !(vOldId <=> vNewId) THEN
|
|
||||||
INSERT IGNORE INTO `log` SET
|
|
||||||
tableName = vTableName,
|
|
||||||
tableId = vOldId,
|
|
||||||
operation = 'delete';
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
IF vNewId IS NOT NULL THEN
|
|
||||||
INSERT IGNORE INTO `log` SET
|
|
||||||
tableName = vTableName,
|
|
||||||
tableId = vNewId,
|
|
||||||
operation = 'insert';
|
|
||||||
END IF;
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -10,7 +10,7 @@ BEGIN
|
||||||
DO RELEASE_LOCK('stock.log_sync');
|
DO RELEASE_LOCK('stock.log_sync');
|
||||||
RESIGNAL;
|
RESIGNAL;
|
||||||
END;
|
END;
|
||||||
|
|
||||||
IF !GET_LOCK('stock.log_sync', 30) THEN
|
IF !GET_LOCK('stock.log_sync', 30) THEN
|
||||||
CALL util.throw('Lock timeout exceeded');
|
CALL util.throw('Lock timeout exceeded');
|
||||||
END IF;
|
END IF;
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
DELIMITER $$
|
DELIMITER $$
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `stock`.`log_refreshBuy`(
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `stock`.`log_refreshBuy`(
|
||||||
`vTableName` VARCHAR(255),
|
`vTableName` VARCHAR(255),
|
||||||
`vTableId` INT)
|
`vTableId` INT)
|
||||||
BEGIN
|
BEGIN
|
||||||
DROP TEMPORARY TABLE IF EXISTS tValues;
|
DROP TEMPORARY TABLE IF EXISTS tValues;
|
||||||
CREATE TEMPORARY TABLE tValues
|
CREATE TEMPORARY TABLE tValues
|
||||||
|
@ -11,7 +11,7 @@ BEGIN
|
||||||
e.id entryFk,
|
e.id entryFk,
|
||||||
t.id travelFk,
|
t.id travelFk,
|
||||||
b.itemFk,
|
b.itemFk,
|
||||||
e.isRaid,
|
e.isRaid,
|
||||||
ADDTIME(t.shipped,
|
ADDTIME(t.shipped,
|
||||||
IFNULL(t.shipmentHour, '00:00:00')) shipped,
|
IFNULL(t.shipmentHour, '00:00:00')) shipped,
|
||||||
t.warehouseOutFk,
|
t.warehouseOutFk,
|
||||||
|
@ -24,7 +24,7 @@ BEGIN
|
||||||
ABS(b.quantity) quantity,
|
ABS(b.quantity) quantity,
|
||||||
b.created,
|
b.created,
|
||||||
b.quantity > 0 isIn,
|
b.quantity > 0 isIn,
|
||||||
t.shipped < vn.getInventoryDate() lessThanInventory
|
t.shipped < vn.getInventoryDate() lessThanInventory
|
||||||
FROM vn.buy b
|
FROM vn.buy b
|
||||||
JOIN vn.entry e ON e.id = b.entryFk
|
JOIN vn.entry e ON e.id = b.entryFk
|
||||||
JOIN vn.travel t ON t.id = e.travelFk
|
JOIN vn.travel t ON t.id = e.travelFk
|
||||||
|
@ -52,7 +52,7 @@ BEGIN
|
||||||
quantity,
|
quantity,
|
||||||
IF(isIn, isReceived, isDelivered) AND !isRaid
|
IF(isIn, isReceived, isDelivered) AND !isRaid
|
||||||
FROM tValues
|
FROM tValues
|
||||||
WHERE isIn OR !lessThanInventory;
|
WHERE isIn OR !lessThanInventory;
|
||||||
|
|
||||||
REPLACE INTO outbound (
|
REPLACE INTO outbound (
|
||||||
tableName, tableId, warehouseFk, dated,
|
tableName, tableId, warehouseFk, dated,
|
||||||
|
@ -67,7 +67,7 @@ BEGIN
|
||||||
quantity,
|
quantity,
|
||||||
IF(isIn, isDelivered, isReceived) AND !isRaid
|
IF(isIn, isDelivered, isReceived) AND !isRaid
|
||||||
FROM tValues
|
FROM tValues
|
||||||
WHERE !isIn OR !lessThanInventory;
|
WHERE !isIn OR !lessThanInventory;
|
||||||
|
|
||||||
DROP TEMPORARY TABLE tValues;
|
DROP TEMPORARY TABLE tValues;
|
||||||
END$$
|
END$$
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
DELIMITER $$
|
DELIMITER $$
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `stock`.`log_refreshOrder`(
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `stock`.`log_refreshOrder`(
|
||||||
`vTableName` VARCHAR(255),
|
`vTableName` VARCHAR(255),
|
||||||
`vTableId` INT)
|
`vTableId` INT)
|
||||||
BEGIN
|
BEGIN
|
||||||
DECLARE vExpireTime INT DEFAULT 20;
|
DECLARE vExpireTime INT DEFAULT 20;
|
||||||
DECLARE vExpired DATETIME DEFAULT TIMESTAMPADD(MINUTE, -vExpireTime, util.VN_NOW());
|
DECLARE vExpired DATETIME DEFAULT TIMESTAMPADD(MINUTE, -vExpireTime, util.VN_NOW());
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tValues;
|
DROP TEMPORARY TABLE IF EXISTS tValues;
|
||||||
CREATE TEMPORARY TABLE tValues
|
CREATE TEMPORARY TABLE tValues
|
||||||
ENGINE = MEMORY
|
ENGINE = MEMORY
|
||||||
SELECT
|
SELECT
|
||||||
r.id rowFk,
|
r.id rowFk,
|
||||||
|
@ -23,24 +23,24 @@ BEGIN
|
||||||
OR (vTableName = 'order' AND o.id = vTableId)
|
OR (vTableName = 'order' AND o.id = vTableId)
|
||||||
OR (vTableName = 'orderRow' AND r.id = vTableId)
|
OR (vTableName = 'orderRow' AND r.id = vTableId)
|
||||||
)
|
)
|
||||||
AND !o.confirmed
|
AND !o.confirmed
|
||||||
AND r.shipment >= vn.getInventoryDate()
|
AND r.shipment >= vn.getInventoryDate()
|
||||||
AND r.created >= vExpired
|
AND r.created >= vExpired
|
||||||
AND r.amount != 0;
|
AND r.amount != 0;
|
||||||
|
|
||||||
REPLACE INTO outbound (
|
REPLACE INTO outbound (
|
||||||
tableName, tableId, warehouseFk, dated,
|
tableName, tableId, warehouseFk, dated,
|
||||||
itemFk, created, expired, quantity
|
itemFk, created, expired, quantity
|
||||||
)
|
)
|
||||||
SELECT 'orderRow',
|
SELECT 'orderRow',
|
||||||
rowFk,
|
rowFk,
|
||||||
warehouseFk,
|
warehouseFk,
|
||||||
shipped,
|
shipped,
|
||||||
itemFk,
|
itemFk,
|
||||||
created,
|
created,
|
||||||
TIMESTAMPADD(MINUTE, vExpireTime, created),
|
TIMESTAMPADD(MINUTE, vExpireTime, created),
|
||||||
quantity
|
quantity
|
||||||
FROM tValues;
|
FROM tValues;
|
||||||
|
|
||||||
DROP TEMPORARY TABLE tValues;
|
DROP TEMPORARY TABLE tValues;
|
||||||
END$$
|
END$$
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
DELIMITER $$
|
DELIMITER $$
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `stock`.`log_refreshSale`(
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `stock`.`log_refreshSale`(
|
||||||
`vTableName` VARCHAR(255),
|
`vTableName` VARCHAR(255),
|
||||||
`vTableId` INT)
|
`vTableId` INT)
|
||||||
BEGIN
|
BEGIN
|
||||||
DROP TEMPORARY TABLE IF EXISTS tValues;
|
DROP TEMPORARY TABLE IF EXISTS tValues;
|
||||||
CREATE TEMPORARY TABLE tValues
|
CREATE TEMPORARY TABLE tValues
|
||||||
ENGINE = MEMORY
|
ENGINE = MEMORY
|
||||||
SELECT
|
SELECT
|
||||||
m.id saleFk,
|
m.id saleFk,
|
||||||
|
@ -14,7 +14,7 @@ BEGIN
|
||||||
t.shipped,
|
t.shipped,
|
||||||
ABS(m.quantity) quantity,
|
ABS(m.quantity) quantity,
|
||||||
m.created,
|
m.created,
|
||||||
TIMESTAMPADD(DAY, tp.life, t.shipped) expired,
|
TIMESTAMPADD(DAY, tp.life, t.shipped) expired,
|
||||||
m.quantity < 0 isIn,
|
m.quantity < 0 isIn,
|
||||||
m.isPicked OR s.alertLevel > 1 isPicked
|
m.isPicked OR s.alertLevel > 1 isPicked
|
||||||
FROM vn.sale m
|
FROM vn.sale m
|
||||||
|
@ -32,33 +32,33 @@ BEGIN
|
||||||
|
|
||||||
REPLACE INTO inbound (
|
REPLACE INTO inbound (
|
||||||
tableName, tableId, warehouseFk, dated,
|
tableName, tableId, warehouseFk, dated,
|
||||||
itemFk, expired, quantity, isPicked
|
itemFk, expired, quantity, isPicked
|
||||||
)
|
)
|
||||||
SELECT 'sale',
|
SELECT 'sale',
|
||||||
saleFk,
|
saleFk,
|
||||||
warehouseFk,
|
warehouseFk,
|
||||||
shipped,
|
shipped,
|
||||||
itemFk,
|
itemFk,
|
||||||
expired,
|
expired,
|
||||||
quantity,
|
quantity,
|
||||||
isPicked
|
isPicked
|
||||||
FROM tValues
|
FROM tValues
|
||||||
WHERE isIn;
|
WHERE isIn;
|
||||||
|
|
||||||
REPLACE INTO outbound (
|
REPLACE INTO outbound (
|
||||||
tableName, tableId, warehouseFk, dated,
|
tableName, tableId, warehouseFk, dated,
|
||||||
itemFk, created, quantity, isPicked
|
itemFk, created, quantity, isPicked
|
||||||
)
|
)
|
||||||
SELECT 'sale',
|
SELECT 'sale',
|
||||||
saleFk,
|
saleFk,
|
||||||
warehouseFk,
|
warehouseFk,
|
||||||
shipped,
|
shipped,
|
||||||
itemFk,
|
itemFk,
|
||||||
created,
|
created,
|
||||||
quantity,
|
quantity,
|
||||||
isPicked
|
isPicked
|
||||||
FROM tValues
|
FROM tValues
|
||||||
WHERE !isIn;
|
WHERE !isIn;
|
||||||
|
|
||||||
DROP TEMPORARY TABLE tValues;
|
DROP TEMPORARY TABLE tValues;
|
||||||
END$$
|
END$$
|
||||||
|
|
|
@ -7,7 +7,7 @@ BEGIN
|
||||||
* @param vSelf The outbound reference
|
* @param vSelf The outbound reference
|
||||||
*/
|
*/
|
||||||
DECLARE vDated DATETIME;
|
DECLARE vDated DATETIME;
|
||||||
DECLARE vItem INT;
|
DECLARE vItem INT;
|
||||||
DECLARE vWarehouse INT;
|
DECLARE vWarehouse INT;
|
||||||
DECLARE vLack INT;
|
DECLARE vLack INT;
|
||||||
DECLARE vSupplied INT;
|
DECLARE vSupplied INT;
|
||||||
|
@ -21,7 +21,7 @@ BEGIN
|
||||||
SELECT id, available, available < quantity
|
SELECT id, available, available < quantity
|
||||||
FROM inbound
|
FROM inbound
|
||||||
WHERE warehouseFk = vWarehouse
|
WHERE warehouseFk = vWarehouse
|
||||||
AND itemFk = vItem
|
AND itemFk = vItem
|
||||||
AND dated <= vDated
|
AND dated <= vDated
|
||||||
AND (expired IS NULL OR expired > vDated)
|
AND (expired IS NULL OR expired > vDated)
|
||||||
ORDER BY dated;
|
ORDER BY dated;
|
||||||
|
|
|
@ -1,16 +1,16 @@
|
||||||
DELIMITER $$
|
DELIMITER $$
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `stock`.`visible_log`(
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `stock`.`visible_log`(
|
||||||
vIsPicked BOOL,
|
vIsPicked BOOL,
|
||||||
vWarehouseFk INT,
|
vWarehouseFk INT,
|
||||||
vItemFk INT,
|
vItemFk INT,
|
||||||
vQuantity INT
|
vQuantity INT
|
||||||
)
|
)
|
||||||
proc: BEGIN
|
proc: BEGIN
|
||||||
IF !vIsPicked THEN
|
IF !vIsPicked THEN
|
||||||
LEAVE proc;
|
LEAVE proc;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
INSERT INTO visible
|
INSERT INTO visible
|
||||||
SET itemFk = vItemFk,
|
SET itemFk = vItemFk,
|
||||||
warehouseFk = vWarehouseFk,
|
warehouseFk = vWarehouseFk,
|
||||||
quantity = vQuantity
|
quantity = vQuantity
|
||||||
|
|
|
@ -12,11 +12,11 @@ BEGIN
|
||||||
DELETE FROM inboundPick
|
DELETE FROM inboundPick
|
||||||
WHERE inboundFk = OLD.id;
|
WHERE inboundFk = OLD.id;
|
||||||
|
|
||||||
CALL visible_log(
|
CALL visible_log(
|
||||||
OLD.isPicked,
|
OLD.isPicked,
|
||||||
OLD.warehouseFk,
|
OLD.warehouseFk,
|
||||||
OLD.itemFk,
|
OLD.itemFk,
|
||||||
-OLD.quantity
|
-OLD.quantity
|
||||||
);
|
);
|
||||||
END$$
|
END$$
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
|
|
|
@ -4,12 +4,12 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `stock`.`inbound_beforeInse
|
||||||
FOR EACH ROW
|
FOR EACH ROW
|
||||||
BEGIN
|
BEGIN
|
||||||
SET NEW.isPicked = NEW.isPicked OR NEW.dated < util.VN_CURDATE();
|
SET NEW.isPicked = NEW.isPicked OR NEW.dated < util.VN_CURDATE();
|
||||||
|
|
||||||
CALL visible_log(
|
CALL visible_log(
|
||||||
NEW.isPicked,
|
NEW.isPicked,
|
||||||
NEW.warehouseFk,
|
NEW.warehouseFk,
|
||||||
NEW.itemFk,
|
NEW.itemFk,
|
||||||
NEW.quantity
|
NEW.quantity
|
||||||
);
|
);
|
||||||
END$$
|
END$$
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
|
|
|
@ -12,11 +12,11 @@ BEGIN
|
||||||
DELETE FROM inboundPick
|
DELETE FROM inboundPick
|
||||||
WHERE outboundFk = OLD.id;
|
WHERE outboundFk = OLD.id;
|
||||||
|
|
||||||
CALL visible_log(
|
CALL visible_log(
|
||||||
OLD.isPicked,
|
OLD.isPicked,
|
||||||
OLD.warehouseFk,
|
OLD.warehouseFk,
|
||||||
OLD.itemFk,
|
OLD.itemFk,
|
||||||
OLD.quantity
|
OLD.quantity
|
||||||
);
|
);
|
||||||
END$$
|
END$$
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
|
|
|
@ -5,12 +5,12 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `stock`.`outbound_beforeIns
|
||||||
BEGIN
|
BEGIN
|
||||||
SET NEW.lack = NEW.quantity;
|
SET NEW.lack = NEW.quantity;
|
||||||
SET NEW.isPicked = NEW.isPicked OR NEW.dated < util.VN_CURDATE();
|
SET NEW.isPicked = NEW.isPicked OR NEW.dated < util.VN_CURDATE();
|
||||||
|
|
||||||
CALL visible_log(
|
CALL visible_log(
|
||||||
NEW.isPicked,
|
NEW.isPicked,
|
||||||
NEW.warehouseFk,
|
NEW.warehouseFk,
|
||||||
NEW.itemFk,
|
NEW.itemFk,
|
||||||
-NEW.quantity
|
-NEW.quantity
|
||||||
);
|
);
|
||||||
END$$
|
END$$
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
DELIMITER $$
|
DELIMITER $$
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `util`.`binlogQueue_getDelay`(vCode VARCHAR(255))
|
CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `util`.`binlogQueue_getDelay`(vCode VARCHAR(255))
|
||||||
RETURNS BIGINT
|
RETURNS BIGINT
|
||||||
|
READS SQL DATA
|
||||||
NOT DETERMINISTIC
|
NOT DETERMINISTIC
|
||||||
BEGIN
|
BEGIN
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1,8 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` EVENT `vn`.`ticket_doRecalc`
|
|
||||||
ON SCHEDULE EVERY 10 SECOND
|
|
||||||
STARTS '2022-01-28 09:29:18.000'
|
|
||||||
ON COMPLETION PRESERVE
|
|
||||||
ENABLE
|
|
||||||
DO CALL ticket_doRecalc$$
|
|
||||||
DELIMITER ;
|
|
|
@ -1,8 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` EVENT `vn`.`travel_doRecalc`
|
|
||||||
ON SCHEDULE EVERY 15 SECOND
|
|
||||||
STARTS '2019-05-17 10:52:29.000'
|
|
||||||
ON COMPLETION PRESERVE
|
|
||||||
ENABLE
|
|
||||||
DO CALL travel_doRecalc$$
|
|
||||||
DELIMITER ;
|
|
|
@ -1,53 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`ticket_doRecalc`()
|
|
||||||
proc: BEGIN
|
|
||||||
/**
|
|
||||||
* Recalculates modified ticket.
|
|
||||||
*/
|
|
||||||
DECLARE vDone BOOL;
|
|
||||||
DECLARE vTicketFk INT;
|
|
||||||
|
|
||||||
DECLARE cCur CURSOR FOR
|
|
||||||
SELECT DISTINCT ticketFk FROM tTicket;
|
|
||||||
|
|
||||||
DECLARE CONTINUE HANDLER FOR NOT FOUND
|
|
||||||
SET vDone = TRUE;
|
|
||||||
|
|
||||||
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION
|
|
||||||
BEGIN
|
|
||||||
DO RELEASE_LOCK('vn.ticket_doRecalc');
|
|
||||||
ROLLBACK;
|
|
||||||
RESIGNAL;
|
|
||||||
END;
|
|
||||||
|
|
||||||
IF !GET_LOCK('vn.ticket_doRecalc', 0) THEN
|
|
||||||
LEAVE proc;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tTicket;
|
|
||||||
CREATE TEMPORARY TABLE tTicket
|
|
||||||
ENGINE = MEMORY
|
|
||||||
SELECT id, ticketFk FROM ticketRecalc;
|
|
||||||
|
|
||||||
OPEN cCur;
|
|
||||||
|
|
||||||
myLoop: LOOP
|
|
||||||
SET vDone = FALSE;
|
|
||||||
FETCH cCur INTO vTicketFk;
|
|
||||||
|
|
||||||
IF vDone THEN
|
|
||||||
LEAVE myLoop;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
CALL ticket_recalc(vTicketFk, NULL);
|
|
||||||
END LOOP;
|
|
||||||
|
|
||||||
CLOSE cCur;
|
|
||||||
|
|
||||||
DELETE tr FROM ticketRecalc tr JOIN tTicket t ON tr.id = t.id;
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE tTicket;
|
|
||||||
|
|
||||||
DO RELEASE_LOCK('vn.ticket_doRecalc');
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -0,0 +1,40 @@
|
||||||
|
DELIMITER $$
|
||||||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`ticket_recalcByScope`(
|
||||||
|
vScope VARCHAR(255),
|
||||||
|
vId INT
|
||||||
|
)
|
||||||
|
BEGIN
|
||||||
|
/**
|
||||||
|
* Recalculates tickets in an scope.
|
||||||
|
*
|
||||||
|
* @param vScope The scope name
|
||||||
|
* @param vId The scope id
|
||||||
|
*/
|
||||||
|
DECLARE vDone BOOL;
|
||||||
|
DECLARE vTicketFk INT;
|
||||||
|
|
||||||
|
DECLARE cTickets CURSOR FOR
|
||||||
|
SELECT id FROM ticket
|
||||||
|
WHERE refFk IS NULL
|
||||||
|
AND ((vScope = 'client' AND clientFk = vId)
|
||||||
|
OR (vScope = 'address' AND addressFk = vId));
|
||||||
|
|
||||||
|
DECLARE CONTINUE HANDLER FOR NOT FOUND
|
||||||
|
SET vDone = TRUE;
|
||||||
|
|
||||||
|
OPEN cTickets;
|
||||||
|
|
||||||
|
myLoop: LOOP
|
||||||
|
SET vDone = FALSE;
|
||||||
|
FETCH cTickets INTO vTicketFk;
|
||||||
|
|
||||||
|
IF vDone THEN
|
||||||
|
LEAVE myLoop;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
CALL ticket_recalc(vTicketFk, NULL);
|
||||||
|
END LOOP;
|
||||||
|
|
||||||
|
CLOSE cTickets;
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
|
@ -1,15 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`ticket_requestRecalc`(vSelf INT)
|
|
||||||
proc: BEGIN
|
|
||||||
/**
|
|
||||||
* Adds a request to recalculate the ticket total.
|
|
||||||
*
|
|
||||||
* @param vSelf The ticket identifier
|
|
||||||
*/
|
|
||||||
IF vSelf IS NULL THEN
|
|
||||||
LEAVE proc;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
INSERT INTO ticketRecalc SET ticketFk = vSelf;
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -1,34 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`travel_doRecalc`()
|
|
||||||
proc: BEGIN
|
|
||||||
/**
|
|
||||||
* Recounts the number of entries of changed travels.
|
|
||||||
*/
|
|
||||||
DECLARE vTravelFk INT;
|
|
||||||
|
|
||||||
DECLARE EXIT HANDLER FOR SQLEXCEPTION
|
|
||||||
BEGIN
|
|
||||||
DO RELEASE_LOCK('vn.ticket_doRecalc');
|
|
||||||
END;
|
|
||||||
|
|
||||||
IF !GET_LOCK('vn.travel_doRecalc', 0) THEN
|
|
||||||
LEAVE proc;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
CREATE OR REPLACE TEMPORARY TABLE tTravel
|
|
||||||
ENGINE = MEMORY
|
|
||||||
SELECT travelFk FROM travelRecalc;
|
|
||||||
|
|
||||||
UPDATE travel t
|
|
||||||
JOIN tTravel tt ON tt.travelFk = t.id
|
|
||||||
SET t.totalEntries = (
|
|
||||||
SELECT COUNT(e.id)
|
|
||||||
FROM entry e
|
|
||||||
WHERE e.travelFk = t.id
|
|
||||||
);
|
|
||||||
|
|
||||||
DELETE tr FROM travelRecalc tr JOIN tTravel t ON tr.travelFk = t.travelFk;
|
|
||||||
DROP TEMPORARY TABLE tTravel;
|
|
||||||
DO RELEASE_LOCK('vn.travel_doRecalc');
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
DELIMITER $$
|
||||||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`travel_recalc`(vSelf INT)
|
||||||
|
proc: BEGIN
|
||||||
|
/**
|
||||||
|
* Updates the number of entries assigned to the travel.
|
||||||
|
*
|
||||||
|
* @param vSelf The travel id
|
||||||
|
*/
|
||||||
|
UPDATE travel
|
||||||
|
SET totalEntries = (
|
||||||
|
SELECT COUNT(id)
|
||||||
|
FROM entry
|
||||||
|
WHERE travelFk = vSelf
|
||||||
|
)
|
||||||
|
WHERE id = vSelf;
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
|
@ -1,15 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`travel_requestRecalc`(vSelf INT)
|
|
||||||
proc: BEGIN
|
|
||||||
/**
|
|
||||||
* Adds a request to recount the number of entries for the travel.
|
|
||||||
*
|
|
||||||
* @param vSelf The travel reference
|
|
||||||
*/
|
|
||||||
IF vSelf IS NULL THEN
|
|
||||||
LEAVE proc;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
INSERT IGNORE INTO travelRecalc SET travelFk = vSelf;
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -5,36 +5,32 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`address_afterUpdate`
|
||||||
BEGIN
|
BEGIN
|
||||||
-- Recargos de equivalencia distintos implican facturacion por consignatario
|
-- Recargos de equivalencia distintos implican facturacion por consignatario
|
||||||
IF NEW.isEqualizated != OLD.isEqualizated THEN
|
IF NEW.isEqualizated != OLD.isEqualizated THEN
|
||||||
IF
|
IF
|
||||||
(SELECT COUNT(*) FROM
|
(SELECT COUNT(*) FROM
|
||||||
(
|
(
|
||||||
SELECT DISTINCT (isEqualizated = FALSE) as Equ
|
SELECT DISTINCT (isEqualizated = FALSE) as Equ
|
||||||
FROM address
|
FROM address
|
||||||
WHERE clientFk = NEW.clientFk
|
WHERE clientFk = NEW.clientFk
|
||||||
) t1
|
) t1
|
||||||
) > 1
|
) > 1
|
||||||
THEN
|
THEN
|
||||||
UPDATE client
|
UPDATE client
|
||||||
SET hasToInvoiceByAddress = TRUE
|
SET hasToInvoiceByAddress = TRUE
|
||||||
WHERE id = NEW.clientFk;
|
WHERE id = NEW.clientFk;
|
||||||
END IF;
|
END IF;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
IF NEW.isDefaultAddress AND NEW.isActive = FALSE THEN
|
IF NEW.isDefaultAddress AND NEW.isActive = FALSE THEN
|
||||||
CALL util.throw ('Cannot desactivate the default address');
|
CALL util.throw ('Cannot desactivate the default address');
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
IF NOT (NEW.isEqualizated <=> OLD.isEqualizated) THEN
|
IF (NEW.clientFk <> OLD.clientFk
|
||||||
INSERT IGNORE INTO ticketRecalc (ticketFk)
|
OR NEW.isActive <> OLD.isActive
|
||||||
SELECT id FROM ticket t
|
OR NOT (NEW.provinceFk <=> OLD.provinceFk))
|
||||||
WHERE t.addressFk = NEW.id
|
AND (SELECT client_hasDifferentCountries(NEW.clientFk)) THEN
|
||||||
AND t.refFk IS NULL;
|
UPDATE client
|
||||||
END IF;
|
|
||||||
|
|
||||||
IF (NEW.clientFk <> OLD.clientFk OR NEW.isActive <> OLD.isActive OR NOT (NEW.provinceFk <=> OLD.provinceFk))
|
|
||||||
AND (SELECT client_hasDifferentCountries(NEW.clientFk)) THEN
|
|
||||||
UPDATE client
|
|
||||||
SET hasToInvoiceByAddress = TRUE
|
SET hasToInvoiceByAddress = TRUE
|
||||||
WHERE id = NEW.clientFk;
|
WHERE id = NEW.clientFk;
|
||||||
END IF;
|
END IF;
|
||||||
END$$
|
END$$
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
|
|
|
@ -3,19 +3,14 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`buy_afterDelete`
|
||||||
AFTER DELETE ON `buy`
|
AFTER DELETE ON `buy`
|
||||||
FOR EACH ROW
|
FOR EACH ROW
|
||||||
trig: BEGIN
|
trig: BEGIN
|
||||||
DECLARE vValues VARCHAR(255);
|
|
||||||
|
|
||||||
IF @isModeInventory OR @isTriggerDisabled THEN
|
IF @isModeInventory OR @isTriggerDisabled THEN
|
||||||
LEAVE trig;
|
LEAVE trig;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
CALL stock.log_add('buy', NULL, OLD.id);
|
|
||||||
|
|
||||||
INSERT INTO entryLog
|
INSERT INTO entryLog
|
||||||
SET `action` = 'delete',
|
SET `action` = 'delete',
|
||||||
`changedModel` = 'Buy',
|
`changedModel` = 'Buy',
|
||||||
`changedModelId` = OLD.id,
|
`changedModelId` = OLD.id,
|
||||||
`userFk` = account.myUser_getId();
|
`userFk` = account.myUser_getId();
|
||||||
|
|
||||||
END$$
|
END$$
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
|
|
|
@ -7,8 +7,6 @@ trig: BEGIN
|
||||||
LEAVE trig;
|
LEAVE trig;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
CALL stock.log_add('buy', NEW.id, NULL);
|
|
||||||
|
|
||||||
CALL buy_afterUpsert(NEW.id);
|
CALL buy_afterUpsert(NEW.id);
|
||||||
END$$
|
END$$
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
|
|
|
@ -12,14 +12,6 @@ trig: BEGIN
|
||||||
LEAVE trig;
|
LEAVE trig;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
IF !(NEW.id <=> OLD.id)
|
|
||||||
OR !(NEW.entryFk <=> OLD.entryFk)
|
|
||||||
OR !(NEW.itemFk <=> OLD.itemFk)
|
|
||||||
OR !(NEW.quantity <=> OLD.quantity)
|
|
||||||
OR !(NEW.created <=> OLD.created) THEN
|
|
||||||
CALL stock.log_add('buy', NEW.id, OLD.id);
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
CALL buy_afterUpsert(NEW.id);
|
CALL buy_afterUpsert(NEW.id);
|
||||||
|
|
||||||
SELECT w.isBuyerToBeEmailed, t.landed
|
SELECT w.isBuyerToBeEmailed, t.landed
|
||||||
|
|
|
@ -4,20 +4,13 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`client_afterUpdate`
|
||||||
FOR EACH ROW
|
FOR EACH ROW
|
||||||
BEGIN
|
BEGIN
|
||||||
IF !(NEW.defaultAddressFk <=> OLD.defaultAddressFk) THEN
|
IF !(NEW.defaultAddressFk <=> OLD.defaultAddressFk) THEN
|
||||||
UPDATE `address` SET isDefaultAddress = 0
|
UPDATE `address` SET isDefaultAddress = FALSE
|
||||||
WHERE clientFk = NEW.id;
|
WHERE clientFk = NEW.id;
|
||||||
|
|
||||||
UPDATE `address` SET isDefaultAddress = 1
|
UPDATE `address` SET isDefaultAddress = TRUE
|
||||||
WHERE id = NEW.defaultAddressFk;
|
WHERE id = NEW.defaultAddressFk;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
IF NOT (NEW.provinceFk <=> OLD.provinceFk) OR NOT (NEW.isVies <=> OLD.isVies) THEN
|
|
||||||
INSERT IGNORE INTO ticketRecalc (ticketFk)
|
|
||||||
SELECT id FROM ticket t
|
|
||||||
WHERE t.clientFk = NEW.id
|
|
||||||
AND t.refFk IS NULL;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
IF NOT NEW.isActive THEN
|
IF NOT NEW.isActive THEN
|
||||||
UPDATE account.`user`
|
UPDATE account.`user`
|
||||||
SET active = FALSE
|
SET active = FALSE
|
||||||
|
|
|
@ -8,7 +8,5 @@ BEGIN
|
||||||
`changedModel` = 'Entry',
|
`changedModel` = 'Entry',
|
||||||
`changedModelId` = OLD.id,
|
`changedModelId` = OLD.id,
|
||||||
`userFk` = account.myUser_getId();
|
`userFk` = account.myUser_getId();
|
||||||
|
|
||||||
CALL travel_requestRecalc(OLD.travelFk);
|
|
||||||
END$$
|
END$$
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
|
|
|
@ -1,8 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`entry_afterInsert`
|
|
||||||
AFTER INSERT ON `entry`
|
|
||||||
FOR EACH ROW
|
|
||||||
BEGIN
|
|
||||||
CALL travel_requestRecalc(NEW.travelFk);
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -3,24 +3,12 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`entry_afterUpdate`
|
||||||
AFTER UPDATE ON `entry`
|
AFTER UPDATE ON `entry`
|
||||||
FOR EACH ROW
|
FOR EACH ROW
|
||||||
BEGIN
|
BEGIN
|
||||||
IF NOT(NEW.id <=> OLD.id)
|
|
||||||
OR NOT(NEW.travelFk <=> OLD.travelFk)
|
|
||||||
OR NOT(NEW.isRaid <=> OLD.isRaid) THEN
|
|
||||||
CALL stock.log_add('entry', NEW.id, OLD.id);
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
IF NOT (NEW.travelFk <=> OLD.travelFk) THEN
|
|
||||||
CALL travel_requestRecalc(OLD.travelFk);
|
|
||||||
CALL travel_requestRecalc(NEW.travelFk);
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
|
|
||||||
IF NOT (NEW.travelFk <=> OLD.travelFk) THEN
|
IF NOT (NEW.travelFk <=> OLD.travelFk) THEN
|
||||||
CREATE OR REPLACE TEMPORARY TABLE tmp.buysToCheck
|
CREATE OR REPLACE TEMPORARY TABLE tmp.buysToCheck
|
||||||
SELECT b.id
|
SELECT b.id
|
||||||
FROM buy b
|
FROM buy b
|
||||||
WHERE b.entryFk = NEW.id;
|
WHERE b.entryFk = NEW.id;
|
||||||
|
|
||||||
CALL buy_checkItem();
|
CALL buy_checkItem();
|
||||||
END IF;
|
END IF;
|
||||||
END$$
|
END$$
|
||||||
|
|
|
@ -12,9 +12,6 @@ BEGIN
|
||||||
`changedModelId` = OLD.id,
|
`changedModelId` = OLD.id,
|
||||||
`userFk` = account.myUser_getId();
|
`userFk` = account.myUser_getId();
|
||||||
|
|
||||||
CALL stock.log_add('sale', NULL, OLD.id);
|
|
||||||
CALL ticket_requestRecalc(OLD.ticketFk);
|
|
||||||
|
|
||||||
SELECT account.myUser_getName() INTO vUserRole;
|
SELECT account.myUser_getName() INTO vUserRole;
|
||||||
SELECT account.user_getMysqlRole(vUserRole) INTO vUserRole;
|
SELECT account.user_getMysqlRole(vUserRole) INTO vUserRole;
|
||||||
|
|
||||||
|
|
|
@ -7,11 +7,7 @@ BEGIN
|
||||||
CALL util.throw('Cannot insert a service item into a ticket');
|
CALL util.throw('Cannot insert a service item into a ticket');
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
CALL stock.log_add('sale', NEW.id, NULL);
|
|
||||||
CALL ticket_requestRecalc(NEW.ticketFk);
|
|
||||||
|
|
||||||
IF NEW.quantity > 0 THEN
|
IF NEW.quantity > 0 THEN
|
||||||
|
|
||||||
UPDATE vn.collection c
|
UPDATE vn.collection c
|
||||||
JOIN vn.ticketCollection tc ON tc.collectionFk = c.id
|
JOIN vn.ticketCollection tc ON tc.collectionFk = c.id
|
||||||
AND tc.ticketFk = NEW.ticketFk
|
AND tc.ticketFk = NEW.ticketFk
|
||||||
|
|
|
@ -6,24 +6,6 @@ BEGIN
|
||||||
DECLARE vIsToSendMail BOOL;
|
DECLARE vIsToSendMail BOOL;
|
||||||
DECLARE vUserRole VARCHAR(255);
|
DECLARE vUserRole VARCHAR(255);
|
||||||
|
|
||||||
IF !(NEW.id <=> OLD.id)
|
|
||||||
OR !(NEW.ticketFk <=> OLD.ticketFk)
|
|
||||||
OR !(NEW.itemFk <=> OLD.itemFk)
|
|
||||||
OR !(NEW.quantity <=> OLD.quantity)
|
|
||||||
OR !(NEW.created <=> OLD.created)
|
|
||||||
OR !(NEW.isPicked <=> OLD.isPicked) THEN
|
|
||||||
CALL stock.log_add('sale', NEW.id, OLD.id);
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
IF !(NEW.price <=> OLD.price)
|
|
||||||
OR !(NEW.ticketFk <=> OLD.ticketFk)
|
|
||||||
OR !(NEW.itemFk <=> OLD.itemFk)
|
|
||||||
OR !(NEW.quantity <=> OLD.quantity)
|
|
||||||
OR !(NEW.discount <=> OLD.discount) THEN
|
|
||||||
CALL ticket_requestRecalc(NEW.ticketFk);
|
|
||||||
CALL ticket_requestRecalc(OLD.ticketFk);
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
IF !(OLD.ticketFk <=> NEW.ticketFk) THEN
|
IF !(OLD.ticketFk <=> NEW.ticketFk) THEN
|
||||||
UPDATE ticketRequest SET ticketFk = NEW.ticketFk
|
UPDATE ticketRequest SET ticketFk = NEW.ticketFk
|
||||||
WHERE saleFk = NEW.id;
|
WHERE saleFk = NEW.id;
|
||||||
|
|
|
@ -8,8 +8,5 @@ BEGIN
|
||||||
`changedModel` = 'TicketService',
|
`changedModel` = 'TicketService',
|
||||||
`changedModelId` = OLD.id,
|
`changedModelId` = OLD.id,
|
||||||
`userFk` = account.myUser_getId();
|
`userFk` = account.myUser_getId();
|
||||||
|
|
||||||
CALL ticket_requestRecalc(OLD.ticketFk);
|
|
||||||
|
|
||||||
END$$
|
END$$
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
|
|
|
@ -1,10 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`ticketService_afterInsert`
|
|
||||||
AFTER INSERT ON `ticketService`
|
|
||||||
FOR EACH ROW
|
|
||||||
BEGIN
|
|
||||||
|
|
||||||
CALL ticket_requestRecalc(NEW.ticketFk);
|
|
||||||
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -1,13 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`ticketService_afterUpdate`
|
|
||||||
AFTER UPDATE ON `ticketService`
|
|
||||||
FOR EACH ROW
|
|
||||||
BEGIN
|
|
||||||
IF !(NEW.price <=> OLD.price)
|
|
||||||
OR !(NEW.ticketFk <=> OLD.ticketFk)
|
|
||||||
OR !(NEW.quantity <=> OLD.quantity) THEN
|
|
||||||
CALL ticket_requestRecalc(NEW.ticketFk);
|
|
||||||
CALL ticket_requestRecalc(OLD.ticketFk);
|
|
||||||
END IF;
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -3,24 +3,10 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`ticket_afterUpdate`
|
||||||
AFTER UPDATE ON `ticket`
|
AFTER UPDATE ON `ticket`
|
||||||
FOR EACH ROW
|
FOR EACH ROW
|
||||||
BEGIN
|
BEGIN
|
||||||
|
|
||||||
IF !(NEW.id <=> OLD.id)
|
|
||||||
OR !(NEW.warehouseFk <=> OLD.warehouseFk)
|
|
||||||
OR !(NEW.shipped <=> OLD.shipped) THEN
|
|
||||||
CALL stock.log_add('ticket', NEW.id, OLD.id);
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
IF !(NEW.clientFk <=> OLD.clientFk)
|
|
||||||
OR !(NEW.addressFk <=> OLD.addressFk)
|
|
||||||
OR !(NEW.companyFk <=> OLD.companyFk) THEN
|
|
||||||
CALL ticket_requestRecalc(NEW.id);
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
IF NEW.routeFk <> OLD.routeFk THEN
|
IF NEW.routeFk <> OLD.routeFk THEN
|
||||||
UPDATE expedition
|
UPDATE expedition
|
||||||
SET hasNewRoute = TRUE
|
SET hasNewRoute = TRUE
|
||||||
WHERE ticketFk = NEW.id;
|
WHERE ticketFk = NEW.id;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
END$$
|
END$$
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
|
|
|
@ -3,10 +3,8 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`travel_afterUpdate`
|
||||||
AFTER UPDATE ON `travel`
|
AFTER UPDATE ON `travel`
|
||||||
FOR EACH ROW
|
FOR EACH ROW
|
||||||
BEGIN
|
BEGIN
|
||||||
CALL stock.log_add('travel', NEW.id, OLD.id);
|
|
||||||
|
|
||||||
IF NOT(NEW.shipped <=> OLD.shipped) THEN
|
IF NOT(NEW.shipped <=> OLD.shipped) THEN
|
||||||
UPDATE entry
|
UPDATE entry
|
||||||
SET commission = entry_getCommission(travelFk, currencyFk,supplierFk)
|
SET commission = entry_getCommission(travelFk, currencyFk,supplierFk)
|
||||||
WHERE travelFk = NEW.id;
|
WHERE travelFk = NEW.id;
|
||||||
END IF;
|
END IF;
|
||||||
|
@ -15,11 +13,11 @@ BEGIN
|
||||||
IF (SELECT hasWeightVolumetric FROM agencyMode WHERE id = NEW.agencyModeFk) THEN
|
IF (SELECT hasWeightVolumetric FROM agencyMode WHERE id = NEW.agencyModeFk) THEN
|
||||||
CREATE OR REPLACE TEMPORARY TABLE tmp.buysToCheck
|
CREATE OR REPLACE TEMPORARY TABLE tmp.buysToCheck
|
||||||
SELECT b.id
|
SELECT b.id
|
||||||
FROM entry e
|
FROM entry e
|
||||||
JOIN buy b ON b.entryFk = e.id
|
JOIN buy b ON b.entryFk = e.id
|
||||||
JOIN item i ON i.id = b.itemFk
|
JOIN item i ON i.id = b.itemFk
|
||||||
WHERE e.travelFk = NEW.id;
|
WHERE e.travelFk = NEW.id;
|
||||||
|
|
||||||
CALL buy_checkItem();
|
CALL buy_checkItem();
|
||||||
END IF;
|
END IF;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
DROP TABLE hedera.orderRecalc;
|
|
@ -0,0 +1 @@
|
||||||
|
DROP TABLE vn.ticketRecalc;
|
|
@ -0,0 +1 @@
|
||||||
|
DROP TABLE vn.travelRecalc;
|
|
@ -76,6 +76,6 @@ describe('Entry basic data path', () => {
|
||||||
expect(confirmed).toBe('checked');
|
expect(confirmed).toBe('checked');
|
||||||
expect(inventory).toBe('checked');
|
expect(inventory).toBe('checked');
|
||||||
expect(raid).toBe('checked');
|
expect(raid).toBe('checked');
|
||||||
expect(booked).toBe('checked');
|
expect(booked).toBe('unchecked');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
import ngModule from '../module';
|
import ngModule from '../module';
|
||||||
|
const TOKEN_MULTIMEDIA = 'vnTokenMultimedia';
|
||||||
|
const TOKEN = 'vnToken';
|
||||||
/**
|
/**
|
||||||
* Saves and loads the token for the current logged in user.
|
* Saves and loads the token for the current logged in user.
|
||||||
*
|
*
|
||||||
|
@ -58,8 +59,8 @@ export default class Token {
|
||||||
}
|
}
|
||||||
|
|
||||||
getStorage(storage) {
|
getStorage(storage) {
|
||||||
this.token = storage.getItem('vnToken');
|
this.token = storage.getItem(TOKEN);
|
||||||
this.tokenMultimedia = storage.getItem('vnTokenMultimedia');
|
this.tokenMultimedia = storage.getItem(TOKEN_MULTIMEDIA);
|
||||||
if (!this.token) return;
|
if (!this.token) return;
|
||||||
const created = storage.getItem('vnTokenCreated');
|
const created = storage.getItem('vnTokenCreated');
|
||||||
this.created = created && new Date(created);
|
this.created = created && new Date(created);
|
||||||
|
@ -67,15 +68,15 @@ export default class Token {
|
||||||
}
|
}
|
||||||
|
|
||||||
setStorage(storage, token, tokenMultimedia, created, ttl) {
|
setStorage(storage, token, tokenMultimedia, created, ttl) {
|
||||||
storage.setItem('vnTokenMultimedia', tokenMultimedia);
|
storage.setItem(TOKEN_MULTIMEDIA, tokenMultimedia);
|
||||||
storage.setItem('vnToken', token);
|
storage.setItem(TOKEN, token);
|
||||||
storage.setItem('vnTokenCreated', created.toJSON());
|
storage.setItem('vnTokenCreated', created.toJSON());
|
||||||
storage.setItem('vnTokenTtl', ttl);
|
storage.setItem('vnTokenTtl', ttl);
|
||||||
}
|
}
|
||||||
|
|
||||||
removeStorage(storage) {
|
removeStorage(storage) {
|
||||||
storage.removeItem('vnToken');
|
storage.removeItem(TOKEN);
|
||||||
storage.removeItem('vnTokenMultimedia');
|
storage.removeItem(TOKEN_MULTIMEDIA);
|
||||||
storage.removeItem('vnTokenCreated');
|
storage.removeItem('vnTokenCreated');
|
||||||
storage.removeItem('vnTokenTtl');
|
storage.removeItem('vnTokenTtl');
|
||||||
}
|
}
|
||||||
|
@ -96,9 +97,9 @@ export default class Token {
|
||||||
this.checking = true;
|
this.checking = true;
|
||||||
const renewPeriod = Math.min(this.ttl, this.renewPeriod) * 1000;
|
const renewPeriod = Math.min(this.ttl, this.renewPeriod) * 1000;
|
||||||
const maxDate = this.created.getTime() + renewPeriod;
|
const maxDate = this.created.getTime() + renewPeriod;
|
||||||
const now = new Date();
|
const now = new Date().getTime();
|
||||||
|
|
||||||
if (now.getTime() <= maxDate) {
|
if (now <= maxDate) {
|
||||||
this.checking = false;
|
this.checking = false;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -106,7 +107,17 @@ export default class Token {
|
||||||
this.$http.post('VnUsers/renewToken')
|
this.$http.post('VnUsers/renewToken')
|
||||||
.then(res => {
|
.then(res => {
|
||||||
const token = res.data;
|
const token = res.data;
|
||||||
this.set(token.id, now, token.ttl, this.remember);
|
const tokenMultimedia =
|
||||||
|
localStorage.getItem(TOKEN_MULTIMEDIA)
|
||||||
|
?? sessionStorage.getItem(TOKEN_MULTIMEDIA);
|
||||||
|
|
||||||
|
return this.$http.post('VnUsers/renewToken', null, {
|
||||||
|
headers: {Authorization: tokenMultimedia}
|
||||||
|
})
|
||||||
|
.then(({data}) => {
|
||||||
|
const tokenMultimedia = data;
|
||||||
|
this.set(token.id, tokenMultimedia.id, new Date(), token.ttl, this.remember);
|
||||||
|
});
|
||||||
})
|
})
|
||||||
.finally(() => {
|
.finally(() => {
|
||||||
this.checking = false;
|
this.checking = false;
|
||||||
|
@ -119,4 +130,4 @@ export default class Token {
|
||||||
}
|
}
|
||||||
Token.$inject = ['vnInterceptor', '$http', '$rootScope'];
|
Token.$inject = ['vnInterceptor', '$http', '$rootScope'];
|
||||||
|
|
||||||
ngModule.service('vnToken', Token);
|
ngModule.service(TOKEN, Token);
|
||||||
|
|
|
@ -158,7 +158,7 @@ describe('InvoiceIn filter()', () => {
|
||||||
|
|
||||||
const result = await models.InvoiceIn.filter(ctx, {}, options);
|
const result = await models.InvoiceIn.filter(ctx, {}, options);
|
||||||
|
|
||||||
expect(result.length).toEqual(4);
|
expect(result.length).toEqual(5);
|
||||||
|
|
||||||
await tx.rollback();
|
await tx.rollback();
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
@ -180,7 +180,7 @@ describe('InvoiceIn filter()', () => {
|
||||||
|
|
||||||
const result = await models.InvoiceIn.filter(ctx, {}, options);
|
const result = await models.InvoiceIn.filter(ctx, {}, options);
|
||||||
|
|
||||||
expect(result.length).toEqual(6);
|
expect(result.length).toEqual(5);
|
||||||
expect(result[0].isBooked).toBeTruthy();
|
expect(result[0].isBooked).toBeTruthy();
|
||||||
|
|
||||||
await tx.rollback();
|
await tx.rollback();
|
||||||
|
|
|
@ -33,54 +33,54 @@ module.exports = Self => {
|
||||||
|
|
||||||
const stmt = new ParameterizedSQL(
|
const stmt = new ParameterizedSQL(
|
||||||
`SELECT
|
`SELECT
|
||||||
t.id,
|
t.id,
|
||||||
t.packages,
|
t.packages,
|
||||||
t.warehouseFk,
|
t.warehouseFk,
|
||||||
t.nickname,
|
t.nickname,
|
||||||
t.clientFk,
|
t.clientFk,
|
||||||
t.priority,
|
t.priority,
|
||||||
t.addressFk,
|
t.addressFk,
|
||||||
st.code ticketStateCode,
|
st.code ticketStateCode,
|
||||||
st.name ticketStateName,
|
st.name ticketStateName,
|
||||||
wh.name warehouseName,
|
wh.name warehouseName,
|
||||||
tob.description observationDelivery,
|
tob.description observationDelivery,
|
||||||
tob2.description observationDropOff,
|
tob2.description observationDropOff,
|
||||||
tob2.id,
|
tob2.id observationId,
|
||||||
a.street,
|
a.street,
|
||||||
a.postalCode,
|
a.postalCode,
|
||||||
a.city,
|
a.city,
|
||||||
am.name agencyModeName,
|
am.name agencyModeName,
|
||||||
u.nickname userNickname,
|
u.nickname userNickname,
|
||||||
vn.ticketTotalVolume(t.id) volume,
|
vn.ticketTotalVolume(t.id) volume,
|
||||||
GROUP_CONCAT(DISTINCT i.itemPackingTypeFk ORDER BY i.itemPackingTypeFk) ipt,
|
GROUP_CONCAT(DISTINCT i.itemPackingTypeFk ORDER BY i.itemPackingTypeFk) ipt,
|
||||||
c.phone clientPhone,
|
c.phone clientPhone,
|
||||||
c.mobile clientMobile,
|
c.mobile clientMobile,
|
||||||
a.phone addressPhone,
|
a.phone addressPhone,
|
||||||
a.mobile addressMobile,
|
a.mobile addressMobile,
|
||||||
a.longitude,
|
a.longitude,
|
||||||
a.latitude,
|
a.latitude,
|
||||||
wm.mediaValue salePersonPhone,
|
wm.mediaValue salePersonPhone,
|
||||||
t.cmrFk,
|
t.cmrFk,
|
||||||
t.isSigned signed
|
t.isSigned signed
|
||||||
FROM vn.route r
|
FROM vn.route r
|
||||||
JOIN ticket t ON t.routeFk = r.id
|
JOIN ticket t ON t.routeFk = r.id
|
||||||
JOIN client c ON t.clientFk = c.id
|
JOIN client c ON t.clientFk = c.id
|
||||||
LEFT JOIN vn.sale s ON s.ticketFk = t.id
|
LEFT JOIN vn.sale s ON s.ticketFk = t.id
|
||||||
LEFT JOIN vn.item i ON i.id = s.itemFk
|
LEFT JOIN vn.item i ON i.id = s.itemFk
|
||||||
LEFT JOIN ticketState ts ON ts.ticketFk = t.id
|
LEFT JOIN ticketState ts ON ts.ticketFk = t.id
|
||||||
LEFT JOIN state st ON st.id = ts.stateFk
|
LEFT JOIN state st ON st.id = ts.stateFk
|
||||||
LEFT JOIN warehouse wh ON wh.id = t.warehouseFk
|
LEFT JOIN warehouse wh ON wh.id = t.warehouseFk
|
||||||
LEFT JOIN observationType ot ON ot.code = 'delivery'
|
LEFT JOIN observationType ot ON ot.code = 'delivery'
|
||||||
LEFT JOIN ticketObservation tob ON tob.ticketFk = t.id
|
LEFT JOIN ticketObservation tob ON tob.ticketFk = t.id
|
||||||
AND tob.observationTypeFk = ot.id
|
AND tob.observationTypeFk = ot.id
|
||||||
LEFT JOIN observationType ot2 ON ot2.code = 'dropOff'
|
LEFT JOIN observationType ot2 ON ot2.code = 'dropOff'
|
||||||
LEFT JOIN ticketObservation tob2 ON tob2.ticketFk = t.id
|
LEFT JOIN ticketObservation tob2 ON tob2.ticketFk = t.id
|
||||||
AND tob2.observationTypeFk = ot2.id
|
AND tob2.observationTypeFk = ot2.id
|
||||||
LEFT JOIN address a ON a.id = t.addressFk
|
LEFT JOIN address a ON a.id = t.addressFk
|
||||||
LEFT JOIN agencyMode am ON am.id = t.agencyModeFk
|
LEFT JOIN agencyMode am ON am.id = t.agencyModeFk
|
||||||
LEFT JOIN account.user u ON u.id = r.workerFk
|
LEFT JOIN account.user u ON u.id = r.workerFk
|
||||||
LEFT JOIN vehicle v ON v.id = r.vehicleFk
|
LEFT JOIN vehicle v ON v.id = r.vehicleFk
|
||||||
LEFT JOIN workerMedia wm ON wm.workerFk = c.salesPersonFk`
|
LEFT JOIN workerMedia wm ON wm.workerFk = c.salesPersonFk`
|
||||||
);
|
);
|
||||||
|
|
||||||
if (!filter.where) filter.where = {};
|
if (!filter.where) filter.where = {};
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "salix-back",
|
"name": "salix-back",
|
||||||
"version": "24.18.0",
|
"version": "24.20.0",
|
||||||
"author": "Verdnatura Levante SL",
|
"author": "Verdnatura Levante SL",
|
||||||
"description": "Salix backend",
|
"description": "Salix backend",
|
||||||
"license": "GPL-3.0",
|
"license": "GPL-3.0",
|
||||||
|
|
|
@ -1,11 +1,9 @@
|
||||||
SELECT
|
SELECT io2.amount,
|
||||||
io2.amount,
|
io2.ref,
|
||||||
io2.ref,
|
io2.issued,
|
||||||
io2.issued,
|
ict.description
|
||||||
ict.description
|
FROM invoiceOut io
|
||||||
FROM invoiceOut io
|
JOIN invoiceCorrection ic ON ic.correctingFk = io.id
|
||||||
JOIN invoiceCorrection ic ON ic.correctingFk = io.id
|
JOIN invoiceOut io2 ON io2.id = ic.correctedFk
|
||||||
JOIN invoiceOut io2 ON io2.id = ic.correctedFk
|
JOIN invoiceCorrectionType ict ON ict.id = ic.invoiceCorrectionTypeFk
|
||||||
LEFT JOIN ticket t ON t.refFk = io.ref
|
WHERE io.ref = ?
|
||||||
JOIN invoiceCorrectionType ict ON ict.id = ic.invoiceCorrectionTypeFk
|
|
||||||
WHERE io.ref = ?
|
|
||||||
|
|
Loading…
Reference in New Issue