From 362d825202e5ad3dc4a7ef9f4dd72246166c37dd Mon Sep 17 00:00:00 2001 From: ivanm Date: Fri, 9 Feb 2024 13:38:09 +0100 Subject: [PATCH] fix: refs #6443 #6444 #6445 ChangeRevokeToGrant --- .../util/functions/accountNumberToIban.sql | 42 ++++++------- .../10866-whiteRaphis/00-firstScript.sql | 1 - .../10873-greenPaniculata/00-firstScript.sql | 61 ++++++++++++++++++- .../10879-maroonCymbidium/00-firstScript.sql | 34 +++++++++++ 4 files changed, 115 insertions(+), 23 deletions(-) delete mode 100644 db/versions/10866-whiteRaphis/00-firstScript.sql create mode 100644 db/versions/10879-maroonCymbidium/00-firstScript.sql diff --git a/db/routines/util/functions/accountNumberToIban.sql b/db/routines/util/functions/accountNumberToIban.sql index 2b38efe72b..49d3c917e5 100644 --- a/db/routines/util/functions/accountNumberToIban.sql +++ b/db/routines/util/functions/accountNumberToIban.sql @@ -1,6 +1,6 @@ DELIMITER $$ CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `util`.`accountNumberToIban`( - vAccount VARCHAR(20) + vAccount VARCHAR(20) ) RETURNS varchar(4) CHARSET utf8mb3 COLLATE utf8mb3_general_ci DETERMINISTIC @@ -18,41 +18,41 @@ BEGIN CONCAT('ES', RIGHT( CONCAT(0, - 98-MOD( - CONCAT( - MOD( - CONCAT( - MOD( - CONCAT( - MOD( - SUBSTRING(vAccount, 1, 8), - 97 - ), - SUBSTRING(vAccount,9,8) + 98-MOD( + CONCAT( + MOD( + CONCAT( + MOD( + CONCAT( + MOD( + SUBSTRING(vAccount, 1, 8), + 97 + ), + SUBSTRING(vAccount,9,8) ), - 97 - ), + 97 + ), SUBSTRING( CONCAT(vAccount, 142800), 17, 8 ) ), - 97 - ), + 97 + ), SUBSTRING( CONCAT(vAccount, 142800), 25, 2 ) ), - 97 - ) + 97 + ) ), - 2 - ) + 2 + ) ) INTO vIban; - RETURN vIban; + RETURN vIban; END$$ DELIMITER ; \ No newline at end of file diff --git a/db/versions/10866-whiteRaphis/00-firstScript.sql b/db/versions/10866-whiteRaphis/00-firstScript.sql deleted file mode 100644 index bfbcb5dc97..0000000000 --- a/db/versions/10866-whiteRaphis/00-firstScript.sql +++ /dev/null @@ -1 +0,0 @@ -REVOKE EXECUTE ON FUNCTION vn2008.red FROM hrBoss, salesPerson; diff --git a/db/versions/10873-greenPaniculata/00-firstScript.sql b/db/versions/10873-greenPaniculata/00-firstScript.sql index 59ab239447..3125eb7aa8 100644 --- a/db/versions/10873-greenPaniculata/00-firstScript.sql +++ b/db/versions/10873-greenPaniculata/00-firstScript.sql @@ -1 +1,60 @@ -REVOKE EXECUTE ON FUNCTION vn2008.cc_to_iban FROM hr, financial; +DELIMITER $$ +CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `util`.`accountNumberToIban`( + vAccount VARCHAR(20) +) + RETURNS varchar(4) CHARSET utf8mb3 COLLATE utf8mb3_general_ci + DETERMINISTIC +BEGIN +/** +* Calcula y genera el código IBAN correspondiente +* a un número de cuenta bancaria español. +* +* @param vAccount Número de cuenta bancaria +* @return vIban Código IBAN de 4 caracteres. +*/ + DECLARE vIban VARCHAR(4); + + SELECT + CONCAT('ES', + RIGHT( + CONCAT(0, + 98-MOD( + CONCAT( + MOD( + CONCAT( + MOD( + CONCAT( + MOD( + SUBSTRING(vAccount, 1, 8), + 97 + ), + SUBSTRING(vAccount,9,8) + ), + 97 + ), + SUBSTRING( + CONCAT(vAccount, 142800), + 17, + 8 + ) + ), + 97 + ), + SUBSTRING( + CONCAT(vAccount, 142800), + 25, + 2 + ) + ), + 97 + ) + ), + 2 + ) + ) INTO vIban; + + RETURN vIban; +END$$ +DELIMITER ; + +GRANT EXECUTE ON FUNCTION util.accountNumberToIban TO hr, financial; diff --git a/db/versions/10879-maroonCymbidium/00-firstScript.sql b/db/versions/10879-maroonCymbidium/00-firstScript.sql new file mode 100644 index 0000000000..7efc4d6ab7 --- /dev/null +++ b/db/versions/10879-maroonCymbidium/00-firstScript.sql @@ -0,0 +1,34 @@ +DELIMITER $$ +CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `vn`.`intrastat_estimateNet`( + vSelf INT, + vStems INT +) + RETURNS double + DETERMINISTIC +BEGIN +/** +* Calcula un valor neto estimado en función de +* datos históricos de facturas intrastat. +* +* @param vSelf Id de intrastat +* @param vStems Número de unidades +* @return vNet +*/ + DECLARE vNet DOUBLE; + + SELECT ROUND(vStems / (SUM(average) / COUNT(average)), 2) INTO vNet + FROM ( + SELECT *, stems / net average + FROM invoiceInIntrastat + WHERE intrastatFk = vSelf + AND net + AND stems > 0 + ORDER BY dated DESC + LIMIT 20 + ) sub; + + RETURN vNet/2; +END$$ +DELIMITER ; + +GRANT EXECUTE ON FUNCTION vn.intrastat_estimateNet TO administrative; \ No newline at end of file