2015年1月27日 星期二

erp-procedure erp-payment_line mysql-loop




delimiter $$
drop procedure updatePaymentLineContra $$
CREATE PROCEDURE updatePaymentLineContra (
PAYH_RECORDID varchar(20))
BEGIN
DECLARE done INT DEFAULT FALSE;
declare v_SINV_RECORDID varchar(20);
declare V_contra_amount double;
declare V_contra_domain_amount double;

DEClARE payment_line_cursor CURSOR FOR SELECT SINV_RECORDID FROM PAYMENT_LINE WHERE PARENT_RECORDID=PAYH_RECORDID  ;

DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
OPEN payment_line_cursor;
get_recordid: LOOP
FETCH payment_line_cursor INTO v_SINV_RECORDID;
IF done THEN
LEAVE get_recordid;
END IF;
SELECT SUM(AMOUNT) ,SUM(DOMAIN_AMOUNT)
into V_contra_amount, V_contra_domain_amount
FROM PAYMENT_LINE
where SINV_RECORDID=v_SINV_RECORDID;
update PAYMENT_LINE SET CONTRA_AMOUNT=V_contra_amount
, CONTRA_DOMAIN_AMOUNT= V_contra_domain_amount WHERE RECORDID=v_SINV_RECORDID;
END LOOP get_recordid;
END;
$$
DELIMITER ;
CALL updatePaymentLineContra(1421804827732);

沒有留言:

張貼留言