DELIMITER $$
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `bs`.`manaSpellers_actualize`()
BEGIN
/**	
 * Recalcula el valor del campo con el modificador de precio 
 * para el componente de maná automático.
 */
	UPDATE vn.departmentMana dm 
			JOIN (
				SELECT c.lastSalesDepartmentFk, 
					FLOOR(SUM(s.amount) / 12) amount
					FROM salesByClientDepartment s
						JOIN vn.client c ON c.id = s.clientFk
					WHERE s.dated BETWEEN util.VN_CURDATE() - INTERVAL 1 YEAR AND util.VN_CURDATE()
					GROUP BY c.lastSalesDepartmentFk
			)avgPortfolioWeight ON avgPortfolioWeight.lastSalesDepartmentFk = dm.salesDepartmentFk 
			JOIN vn.salesDepartmentConfig sdc
		SET dm.pricesModifierRate = 
			IFNULL(
					GREATEST(
						sdc.manaMinRate, 
						LEAST(
							sdc.manaMaxRate, 
							ROUND( - dm.amount / avgPortfolioWeight.amount, 3)
						)
					)
			,0);
END$$
DELIMITER ;
