Compare commits

...

7 Commits

Author SHA1 Message Date
Pako Natek 3347cde109 Merge branch 'master' into 8075-master-itemShelvingMoving
gitea/salix/pipeline/pr-master This commit looks good Details
2024-10-10 06:33:13 +00:00
Pako Natek 32c01f22d5 Merge pull request '8069-hotFix-oversTocking' (!3088) from 8069-hotFix-oversTocking into master
gitea/salix/pipeline/head This commit looks good Details
Reviewed-on: #3088
Reviewed-by: Javi Gallego <jgallego@verdnatura.es>
2024-10-10 06:25:20 +00:00
Pako Natek 208869bd30 fix: refs #8069 removed obsolete variables
gitea/salix/pipeline/pr-master This commit looks good Details
2024-10-10 08:20:41 +02:00
Pako Natek 4eab12dd04 fix: refs #8069 throw message in spanish
gitea/salix/pipeline/pr-master This commit looks good Details
2024-10-09 07:41:43 +02:00
Pako Natek f0ac12d52e Merge branch 'master' into 8069-hotFix-oversTocking
gitea/salix/pipeline/pr-master This commit looks good Details
2024-10-09 05:21:02 +00:00
Pako Natek 20836d734c fix: refs #8069 order_confirmWithUser
gitea/salix/pipeline/pr-master Build queued... Details
2024-10-07 14:25:46 +02:00
Pako Natek 33a4061058 feat: refs #8069 8069-overStocking 2024-10-07 14:24:55 +02:00
4 changed files with 80 additions and 2 deletions

View File

@ -0,0 +1,52 @@
DELIMITER $$
CREATE OR REPLACE DEFINER=`vn`@`localhost`
PROCEDURE `hedera`.`orderRow_updateOverstocking`(vOrderFk INT)
BEGIN
/**
* Set amount = 0 to avoid overbooking sales
*
* @param vOrderFk hedera.order.id
*/
DECLARE vCalcFk INT;
DECLARE vDone BOOL;
DECLARE vWarehouseFk INT;
DECLARE cWarehouses CURSOR FOR
SELECT DISTINCT warehouseFk
FROM orderRow
WHERE orderFk = vOrderFk
AND shipment = util.VN_CURDATE();
DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE;
DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
ROLLBACK;
RESIGNAL;
END;
OPEN cWarehouses;
checking: LOOP
SET vDone = FALSE;
FETCH cWarehouses INTO vWarehouseFk;
IF vDone THEN
LEAVE checking;
END IF;
CALL cache.available_refresh(vCalcFk, FALSE, vWarehouseFk, util.VN_CURDATE());
UPDATE orderRow r
JOIN `order` o ON o.id = r.orderFk
JOIN orderConfig oc
JOIN cache.available a ON a.calc_id = vCalcFk AND a.item_id = r.itemFk
SET r.amount = 0
WHERE ADDTIME(o.rowUpdated, oc.reserveTime) < util.VN_NOW()
AND a.available <= 0
AND r.warehouseFk = vWarehouseFk
AND r.orderFk = vOrderFk;
END LOOP;
CLOSE cWarehouses;
END$$
DELIMITER ;

View File

@ -13,6 +13,7 @@ BEGIN
*/
DECLARE vHasRows BOOL;
DECLARE vDone BOOL;
DECLARE vHas0Amount BOOL;
DECLARE vWarehouseFk INT;
DECLARE vShipment DATE;
DECLARE vShipmentDayEnd DATETIME;
@ -21,7 +22,6 @@ BEGIN
DECLARE vItemFk INT;
DECLARE vConcept VARCHAR(30);
DECLARE vAmount INT;
DECLARE vAvailable INT;
DECLARE vPrice DECIMAL(10,2);
DECLARE vSaleFk INT;
DECLARE vRowFk INT;
@ -31,7 +31,6 @@ BEGIN
DECLARE vClientFk INT;
DECLARE vCompanyFk INT;
DECLARE vAgencyModeFk INT;
DECLARE vCalcFk INT;
DECLARE vIsTaxDataChecked BOOL;
DECLARE vDates CURSOR FOR
@ -97,6 +96,20 @@ BEGIN
SELECT employeeFk INTO vUserFk FROM orderConfig;
END IF;
CALL orderRow_updateOverstocking(vSelf);
-- Check if any product has a quantity of 0
SELECT EXISTS (
SELECT id
FROM orderRow
WHERE orderFk = vSelf
AND amount = 0
) INTO vHas0Amount;
IF vHas0Amount THEN
CALL util.throw('Hay líneas vacías. Por favor, elimínelas');
END IF;
START TRANSACTION;
CALL order_checkEditable(vSelf);

View File

@ -0,0 +1,10 @@
DELIMITER $$
CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `hedera`.`orderRow_afterInsert`
AFTER INSERT ON `orderRow`
FOR EACH ROW
BEGIN
UPDATE `order`
SET rowUpdated = util.VN_NOW()
WHERE id = NEW.orderFk;
END$$
DELIMITER ;

View File

@ -0,0 +1,3 @@
-- Place your SQL code here
ALTER TABLE hedera.`order` ADD IF NOT EXISTS rowUpdated DATETIME NULL
COMMENT 'Timestamp for last updated record in orderRow table';