-- -- Function: f_ex_stock_detail_update_rackid -- 棚番IDã®ã¿å¤‰æ›´SP DROP FUNCTION f_ex_stock_detail_update_rackid( IN i_itemcd integer, -- 商å“C IN i_structcd integer, -- æ§‹æˆC IN i_stockcd integer, -- 在庫C IN i_rackid varchar, -- 棚番ID IN i_updusrnm varchar, IN i_updpcnm varchar, IN i_updcnt integer, OUT errcd integer, OUT errmsg varchar, OUT code integer); CREATE OR REPLACE FUNCTION f_ex_stock_detail_update_rackid( IN i_itemcd integer, -- 商å“C IN i_structcd integer, -- æ§‹æˆC IN i_stockcd integer, -- 在庫C IN i_rackid varchar, -- 棚番ID IN i_updusrnm varchar, IN i_updpcnm varchar, IN i_updcnt integer, OUT errcd integer, OUT errmsg varchar, OUT code integer) AS $BODY$ DECLARE i integer; cntcheck integer; idcheck varchar; BEGIN -- å¿…é ˆãƒã‚§ãƒƒã‚¯ IF i_itemcd IS NULL THEN RAISE EXCEPTION 'å“ç›®ã‚³ãƒ¼ãƒ‰ãŒæŒ‡å®šã•れã¦ã„ã¾ã›ã‚“'; END IF; IF i_structcd IS NULL THEN RAISE EXCEPTION 'æ§‹æˆã‚³ãƒ¼ãƒ‰ãŒæŒ‡å®šã•れã¦ã„ã¾ã›ã‚“'; END IF; IF i_stockcd IS NULL THEN RAISE EXCEPTION 'åœ¨åº«ã‚³ãƒ¼ãƒ‰ãŒæŒ‡å®šã•れã¦ã„ã¾ã›ã‚“'; END IF; IF i_updusrnm IS NULL THEN RAISE EXCEPTION '更新ユーザåãŒæŒ‡å®šã•れã¦ã„ã¾ã›ã‚“'; END IF; IF i_updpcnm IS NULL THEN RAISE EXCEPTION '更新マシンåãŒæŒ‡å®šã•れã¦ã„ã¾ã›ã‚“'; END IF; -- å˜åœ¨ãƒã‚§ãƒƒã‚¯ SELECT stockcd INTO cntcheck FROM t_ex_stock_detail WHERE itemcd = i_itemcd AND structcd = i_structcd AND stockcd = i_stockcd; IF cntcheck IS NULL THEN RAISE EXCEPTION 'レコードãŒå˜åœ¨ã—ã¾ã›ã‚“'; END IF; -- é‡è¤‡ãƒã‚§ãƒƒã‚¯ SELECT COUNT(rackid) INTO cntcheck FROM t_ex_stock_detail WHERE stockstate = 3 AND rackid = i_rackid AND delflg = FALSE; IF cntcheck = 1 THEN SELECT rackid INTO idcheck FROM t_ex_stock_detail WHERE itemcd = i_itemcd AND structcd = i_structcd AND stockcd = i_stockcd AND stockstate = 3 AND rackid = i_rackid; IF idcheck IS NOT NULL THEN -- 変更ナシ errcd := 1; RETURN; ELSE errcd := -10; errmsg := '指定ã•ã‚ŒãŸæ£šç•ª ID ã¯å‰²ã‚Šå½“ã¦æ¸ˆã¿ã§ã™'; RETURN; END IF; ELSEIF cntcheck > 1 THEN errcd := -10; errmsg := 'é‡è¤‡ã™ã‚‹æ£šç•ª ID ãŒå˜åœ¨ã—ã¾ã™'; RETURN; END IF; -- 更新カウンタãƒã‚§ãƒƒã‚¯ SELECT updcnt INTO cntcheck FROM t_ex_stock_detail WHERE itemcd = i_itemcd AND structcd = i_structcd AND stockcd = i_stockcd; IF NOT FOUND OR cntcheck <> i_updcnt THEN errcd := -10; errmsg := '変更ä¸ã«æ›´æ–°ãŒè¡Œã‚れãŸã‹ã€äºŒé‡æ›´æ–°ã§ã™'; RETURN; END IF; -- æ›´æ–°å‡¦ç† -- UPDATE t_ex_stock_detail SET rackid = i_rackid, updusrnm = i_updusrnm, updpcnm = i_updpcnm WHERE itemcd = i_itemcd AND structcd = i_structcd AND stockcd = i_stockcd; errcd := 1; RETURN; END; $BODY$ LANGUAGE 'plpgsql' VOLATILE;