Compare commits

...

6 Commits

Author SHA1 Message Date
Robert Ferrús 5e21e4e368 Merge pull request 'feat: refs #8127 entry_getCommission' (!3128) from 8127-entry_updateComission into dev
gitea/salix/pipeline/head This commit looks good Details
Reviewed-on: #3128
Reviewed-by: Javi Gallego <jgallego@verdnatura.es>
2024-11-18 08:48:50 +00:00
Robert Ferrús 329488d700 Merge branch 'dev' into 8127-entry_updateComission
gitea/salix/pipeline/pr-dev This commit looks good Details
2024-11-18 08:46:49 +00:00
Robert Ferrús 923296e85e Merge branch 'dev' into 8127-entry_updateComission
gitea/salix/pipeline/pr-dev This commit looks good Details
2024-11-15 10:34:34 +00:00
Robert Ferrús c5f1b05671 feat: refs #8127 quitar esquemas
gitea/salix/pipeline/pr-dev There was a failure building this commit Details
2024-11-15 11:32:20 +01:00
Robert Ferrús f7a5fc7e31 Merge branch 'dev' into 8127-entry_updateComission
gitea/salix/pipeline/pr-dev This commit looks good Details
2024-11-15 10:06:45 +00:00
Robert Ferrús 7e0f19b368 feat: refs #8127 entry_getCommission
gitea/salix/pipeline/pr-dev There was a failure building this commit Details
2024-10-18 08:21:09 +02:00
2 changed files with 36 additions and 43 deletions

View File

@ -1,58 +1,51 @@
DELIMITER $$ DELIMITER $$
CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `vn`.`entry_getCommission`(vTravelFk INT, CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `vn`.`entry_getCommission`(vTravelFk INT,
vCurrencyFk INT, vCurrencyFk INT,
vSupplierFk INT vSupplierFk INT
) )
RETURNS int(11) RETURNS int(11)
NOT DETERMINISTIC NOT DETERMINISTIC
READS SQL DATA READS SQL DATA
BEGIN BEGIN
DECLARE vCommission INT; DECLARE vCommission INT;
DECLARE vCurrentCommission INT; DECLARE vCurrentCommission INT;
DECLARE vIsCurrencyUsd INT; DECLARE vIsNotEUR INT;
DECLARE vLastEntryFk INT; DECLARE vLastEntryFk INT;
SELECT count(*) INTO vIsCurrencyUsd
FROM currency c
WHERE c.code = 'USD' AND id = vCurrencyFk;
IF NOT vIsCurrencyUsd THEN
SELECT e.id INTO vLastEntryFk
FROM vn.entry e
JOIN vn.travel tr ON tr.id = e.travelFk
WHERE e.supplierFk = vSupplierFk
ORDER BY tr.landed DESC
LIMIT 1;
IF vLastEntryFk THEN
SELECT commission INTO vCurrentCommission
FROM vn.entry
WHERE id = vLastEntryFk;
ELSE
SELECT commission INTO vCurrentCommission
FROM supplier s
WHERE s.id = vSupplierFk;
END IF;
RETURN vCurrentCommission;
ELSE
SELECT count(*) INTO vIsNotEUR
FROM currency c
WHERE c.code <> 'EUR' AND id = vCurrencyFk;
IF vIsNotEUR THEN
SELECT ROUND(-100 * (1 - (1 / r.value))) INTO vCommission SELECT ROUND(-100 * (1 - (1 / r.value))) INTO vCommission
FROM travel t FROM travel t
LEFT JOIN referenceCurrent r ON r.currencyFk = vCurrencyFk AND r.`dated` <= t.shipped LEFT JOIN referenceCurrent r ON r.currencyFk = vCurrencyFk AND r.`dated` <= t.shipped
WHERE t.id = vTravelFk WHERE t.id = vTravelFk
ORDER BY r.`dated` DESC ORDER BY r.`dated` DESC
LIMIT 1; LIMIT 1;
RETURN IFNULL(vCommission, 0); RETURN IFNULL(vCommission, 0);
ELSE
END IF; SELECT e.id INTO vLastEntryFk
FROM `entry` e
JOIN travel tr ON tr.id = e.travelFk
WHERE e.supplierFk = vSupplierFk
ORDER BY tr.landed DESC
LIMIT 1;
IF vLastEntryFk THEN
SELECT commission INTO vCurrentCommission
FROM `entry`
WHERE id = vLastEntryFk;
ELSE
SELECT commission INTO vCurrentCommission
FROM supplier s
WHERE s.id = vSupplierFk;
END IF;
RETURN vCurrentCommission;
END IF;
END$$ END$$
DELIMITER ; DELIMITER ;

View File

@ -22,7 +22,7 @@ BEGIN
FROM vn.entry e FROM vn.entry e
JOIN vn.travel t ON t.id = e.travelFk JOIN vn.travel t ON t.id = e.travelFk
JOIN vn.warehouse w ON w.id = t.warehouseInFk JOIN vn.warehouse w ON w.id = t.warehouseInFk
WHERE t.shipped >= util.VN_CURDATE() WHERE t.landed >= util.VN_CURDATE()
AND e.currencyFk = vCurrency AND e.currencyFk = vCurrency
AND NOT e.isBooked; AND NOT e.isBooked;
@ -33,7 +33,7 @@ BEGIN
SET e.commission = vComission; SET e.commission = vComission;
SELECT `name` INTO vCurrencyName SELECT `name` INTO vCurrencyName
FROM currency FROM currency
WHERE id = vCurrency; WHERE id = vCurrency;
CALL entry_recalc(); CALL entry_recalc();