This sql script can be used to keep cumulative stock balance in stockdiary table.
Execute below script once in mySQL.
ALTER TABLE STOCKDIARY ADD COLUMN STOCKBALANCE INT; DROP PROCEDURE if exists updateStockBalance; DELIMITER $$ CREATE PROCEDURE updateStockBalance() BEGIN DECLARE done INT DEFAULT FALSE; DECLARE o_id VARCHAR(255); DECLARE balance INT; DECLARE cur1 CURSOR FOR SELECT ID FROM PRODUCTS; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; OPEN cur1; read_loop: LOOP FETCH cur1 INTO o_id; SET @balance = 0; SET @pid = o_id; UPDATE STOCKDIARY SET STOCKBALANCE=@balance:=@balance + UNITS WHERE PRODUCT LIKE @pid AND STOCKBALANCE IS NULL ORDER BY DATENEW; IF done THEN LEAVE read_loop; END IF; END LOOP; CLOSE cur1; END$$ DELIMITER ;
Schedule below script to keep the stockbalance column updated:
CALL updateStockBalance();
Save