-- 仕入見出ã—テーブル 変更 CREATE OR REPLACE FUNCTION f_stock_title_update( IN kubun integer, -- 区分 IN i_stocktitlecd integer, -- 仕入見出ã—C IN i_orderno varchar, -- ç™ºæ³¨ç•ªå· IN i_suppliercd integer, -- 仕入先C IN i_supplidiv integer, -- 仕入区分 IN i_updusrnm varchar, -- 更新ユーザ IN i_updpcnm varchar, -- 更新マシン IN i_updcnt integer, -- 更新カウンタ OUT errcd integer, OUT errmsg varchar, OUT code integer) AS $BODY$ DECLARE sql1 varchar; cntcheck integer; BEGIN -- å¿…é ˆãƒã‚§ãƒƒã‚¯ -- -- 処ç†åŒºåˆ† IF kubun IS NULL OR kubun NOT IN (1,2,3) THEN RAISE EXCEPTION '処ç†åŒºåˆ†ãŒä¸æ£ã§ã™'; END IF; IF kubun IN (2,3) THEN IF i_stocktitlecd IS NULL THEN RAISE EXCEPTION '仕入見出ã—コードã®å¼•æ•°ã¯å¿…é ˆã§ã™'; END IF; /* IF i_updcnt IS NULL THEN RAISE EXCEPTION '更新カウンタã®å¼•æ•°ã¯å¿…é ˆã§ã™'; END IF; */ END IF; IF kubun IN (1,2) THEN IF i_updusrnm IS NULL THEN RAISE EXCEPTION '更新ユーザåãŒæŒ‡å®šã•れã¦ã„ã¾ã›ã‚“'; END IF; IF i_updpcnm IS NULL THEN RAISE EXCEPTION '更新マシンåãŒæŒ‡å®šã•れã¦ã„ã¾ã›ã‚“'; END IF; END IF; -- æ¡æ•°ãƒã‚§ãƒƒã‚¯ IF kubun IN (1,2) THEN IF s_check_length(i_orderno, 20) = FALSE THEN RAISE EXCEPTION '発注番å·ãŒä¸æ£ã§ã™'; END IF; IF i_supplidiv NOT IN (0,1,2,3,4) THEN RAISE EXCEPTION '仕入区分ãŒä¸æ£ã§ã™'; END IF; END IF; -- 外部ã‚ーãƒã‚§ãƒƒã‚¯ IF kubun IN (1,2) AND i_suppliercd IS NOT NULL THEN SELECT updcnt INTO cntcheck FROM t_supplier WHERE suppliercd = i_suppliercd; IF NOT FOUND THEN RAISE EXCEPTION '仕入れ先CãŒä¸æ£ã§ã™'; END IF; END IF; -- 更新カウンタãƒã‚§ãƒƒã‚¯ /*ã¨ã‚Šã‚ãˆãšç„¡åй IF kubun IN (2,3) THEN SELECT updcnt INTO cntcheck FROM t_stock_title WHERE stocktitlecd = i_stocktitlecd; IF NOT FOUND OR cntcheck <> i_updcnt THEN RAISE EXCEPTION '更新カウンタãŒä¸æ£'; END IF; END IF; */ --- æ›´æ–°å‡¦ç† --- -- è¿½åŠ IF kubun = 1 THEN INSERT INTO t_stock_title( orderno, orderdate, suppliercd, supplidiv, updusrnm, updpcnm) VALUES( i_orderno , current_timestamp , i_suppliercd , i_supplidiv , i_updusrnm, i_updpcnm); errcd := 1; code := lastval(); RETURN; -- 変更 ELSIF kubun = 2 THEN -- 更新ユーザ UPDATE t_stock_title SET orderno = i_orderno, orderdate = current_timestamp, suppliercd = i_suppliercd, supplidiv = i_supplidiv, updusrnm = i_updusrnm, updpcnm = i_updpcnm WHERE stocktitlecd = i_stocktitlecd; errcd := 1; code := i_stocktitlecd; RETURN; -- 削除 ELSIF kubun = 3 THEN UPDATE t_stock_title SET delflg = TRUE, updusrnm = i_updusrnm, updpcnm = i_updpcnm WHERE stocktitlecd = i_stocktitlecd; errcd := 1; RETURN; END IF; END; $BODY$ LANGUAGE 'plpgsql' VOLATILE;