drop procedure weekWaste_byWorker;

create definer = root@`%` procedure weekWaste_byWorker__(IN vWorkerFk int)
BEGIN

	DECLARE vWeek INT;
    DECLARE vYear INT;
    
    SELECT week, year
		INTO vWeek, vYear
        FROM vn.time
        WHERE dated = TIMESTAMPADD(WEEK,-1,CURDATE());

	SELECT *, 100 * mermas / total as porcentaje
	FROM (
		SELECT  ws.family,  
				sum(ws.saleTotal) as total, 
				sum(ws.saleWaste) as mermas
			FROM bs.waste ws
            JOIN vn.worker w ON w.user = ws.buyer
			WHERE year = vYear AND week = vWeek
            AND w.id = vWorkerFk
			GROUP BY family
			
		) sub
		ORDER BY porcentaje DESC;
END;

