32 lines
645 B
SQL
32 lines
645 B
SQL
DELIMITER $$
|
|
CREATE OR REPLACE DEFINER=`vn`@`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 ; |