34 lines
718 B
MySQL
34 lines
718 B
MySQL
|
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;
|