fix: refs #7931 Merge available fix into master #2936
|
@ -1,5 +1,10 @@
|
||||||
DELIMITER $$
|
DELIMITER $$
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `cache`.`available_refresh`(OUT `vCalc` INT, IN `vRefresh` INT, IN `vWarehouse` INT, IN `vDated` DATE)
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `cache`.`available_refresh`(
|
||||||
|
OUT `vCalc` INT,
|
||||||
|
`vRefresh` INT,
|
||||||
|
`vWarehouse` INT,
|
||||||
|
`vDated` DATE
|
||||||
|
)
|
||||||
proc: BEGIN
|
proc: BEGIN
|
||||||
DECLARE vStartDate DATE;
|
DECLARE vStartDate DATE;
|
||||||
DECLARE vReserveDate DATETIME;
|
DECLARE vReserveDate DATETIME;
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
DELIMITER $$
|
||||||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `cache`.`available_updateItem`(
|
||||||
|
`vItem` INT,
|
||||||
|
`vWarehouse` INT,
|
||||||
|
`vDated` DATE,
|
||||||
|
`vQuantity` INT
|
||||||
|
)
|
||||||
|
BEGIN
|
||||||
|
/**
|
||||||
|
* Immediately deduct/add an amount from the available cache (if exists).
|
||||||
|
*
|
||||||
|
* @param vItem The item id
|
||||||
|
* @param vWarehouse The warehouse id
|
||||||
|
* @param vDated Available cache date
|
||||||
|
* @param vQuantity The amount to be deducted from the cache
|
||||||
|
*/
|
||||||
|
DECLARE vCalc INT;
|
||||||
|
|
||||||
|
SELECT id INTO vCalc
|
||||||
|
FROM cache_calc
|
||||||
|
WHERE cacheName = 'available'
|
||||||
|
AND params = CONCAT_WS('/', vWarehouse, vDated);
|
||||||
|
|
||||||
|
IF vCalc IS NOT NULL THEN
|
||||||
|
UPDATE available
|
||||||
|
SET available = available - vQuantity
|
||||||
|
WHERE calc_id = vCalc
|
||||||
|
AND item_id = vItem;
|
||||||
|
END IF;
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
|
@ -1,8 +1,8 @@
|
||||||
DELIMITER $$
|
DELIMITER $$
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`order_addItem`(
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`order_addItem`(
|
||||||
vSelf INT,
|
vSelf INT,
|
||||||
vWarehouse INT,
|
vWarehouse INT,
|
||||||
vItem INT,
|
vItem INT,
|
||||||
vAmount INT)
|
vAmount INT)
|
||||||
BEGIN
|
BEGIN
|
||||||
/**
|
/**
|
||||||
|
@ -37,7 +37,7 @@ BEGIN
|
||||||
ROLLBACK;
|
ROLLBACK;
|
||||||
RESIGNAL;
|
RESIGNAL;
|
||||||
END;
|
END;
|
||||||
|
|
||||||
CALL order_calcCatalogFromItem(vSelf, vItem);
|
CALL order_calcCatalogFromItem(vSelf, vItem);
|
||||||
START TRANSACTION;
|
START TRANSACTION;
|
||||||
|
|
||||||
|
@ -102,6 +102,8 @@ BEGIN
|
||||||
amount = vAdd,
|
amount = vAdd,
|
||||||
price = vPrice;
|
price = vPrice;
|
||||||
|
|
||||||
|
CALL cache.available_updateItem(vItem, vWarehouse, vShipment, vAdd);
|
||||||
|
|
||||||
SET vRow = LAST_INSERT_ID();
|
SET vRow = LAST_INSERT_ID();
|
||||||
|
|
||||||
INSERT INTO orderRowComponent (rowFk, componentFk, price)
|
INSERT INTO orderRowComponent (rowFk, componentFk, price)
|
||||||
|
@ -121,6 +123,6 @@ BEGIN
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
COMMIT;
|
COMMIT;
|
||||||
CALL vn.ticketCalculatePurge;
|
CALL vn.ticketCalculatePurge;
|
||||||
END$$
|
END$$
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
const models = require('vn-loopback/server/server').models;
|
const models = require('vn-loopback/server/server').models;
|
||||||
|
|
||||||
describe('item getVisibleAvailable()', () => {
|
describe('item getVisibleAvailable()', () => {
|
||||||
it('should check available visible for today', async() => {
|
it('should check available visible for tomorrow', async() => {
|
||||||
const tx = await models.Item.beginTransaction({});
|
const tx = await models.Item.beginTransaction({});
|
||||||
const options = {transaction: tx};
|
const options = {transaction: tx};
|
||||||
|
|
||||||
|
@ -9,6 +9,7 @@ describe('item getVisibleAvailable()', () => {
|
||||||
const itemFk = 1;
|
const itemFk = 1;
|
||||||
const warehouseFk = 1;
|
const warehouseFk = 1;
|
||||||
const dated = Date.vnNew();
|
const dated = Date.vnNew();
|
||||||
|
dated.setDate(dated.getDate() + 1);
|
||||||
|
|
||||||
const result = await models.Item.getVisibleAvailable(itemFk, warehouseFk, dated, options);
|
const result = await models.Item.getVisibleAvailable(itemFk, warehouseFk, dated, options);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue