|
@ -1 +0,0 @@
|
|||
REVOKE EXECUTE ON FUNCTION vn2008.red FROM hrBoss, salesPerson;
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
Loading…
Reference in New Issue