-- 商å“在庫 変更 CREATE OR REPLACE FUNCTION f_stock_update_price( IN _itemcd integer, -- 商å“C IN _structcd integer, -- æ§‹æˆC IN _stockcd integer, -- 在庫C IN _sellingprice integer, -- è²©å£²ä¾¡æ ¼ IN _state integer, -- ステータス IN _updusrnm varchar, -- 更新ユーザ IN _updpcnm varchar, -- 更新マシン OUT errcd integer, OUT errmsg varchar, OUT code integer) AS $BODY$ DECLARE stocktitle integer; BEGIN -- å¿…é ˆãƒã‚§ãƒƒã‚¯ -- IF _itemcd IS NULL THEN RAISE EXCEPTION '商å“Cã¯å¿…é ˆã§ã™'; END IF; IF _structcd IS NULL THEN RAISE EXCEPTION 'æ§‹æˆCã¯å¿…é ˆã§ã™'; END IF; IF _stockcd IS NULL THEN RAISE EXCEPTION '在庫Cã¯å¿…é ˆã§ã™'; END IF; IF _updusrnm IS NULL THEN RAISE EXCEPTION '更新ユーザåãŒæŒ‡å®šã•れã¦ã„ã¾ã›ã‚“'; END IF; IF _updpcnm IS NULL THEN RAISE EXCEPTION '更新マシンåãŒæŒ‡å®šã•れã¦ã„ã¾ã›ã‚“'; END IF; -- è²©å£²é‡‘é¡æ›´æ–° SELECT stocktitlecd INTO stocktitle FROM t_ex_stock_detail WHERE itemcd = _itemcd AND structcd = _structcd AND stockcd = _stockcd AND delflg = false; IF stocktitle IS NULL THEN --æ›´æ–° IF _state = 0 THEN UPDATE t_ex_stock_detail SET sellingprice = _sellingprice, updusrnm = _updusrnm, updpcnm = _updpcnm WHERE itemcd = _itemcd AND structcd = _structcd AND stockcd = _stockcd; ELSIF _state = 1 THEN UPDATE t_ex_stock_detail SET sellingprice = _sellingprice, stockstate = 1, updusrnm = _updusrnm, updpcnm = _updpcnm WHERE itemcd = _itemcd AND structcd = _structcd AND stockcd = _stockcd; END IF; ELSE IF _state = 0 THEN UPDATE t_ex_stock_detail SET sellingprice = _sellingprice, updusrnm = _updusrnm, updpcnm = _updpcnm WHERE stocktitlecd = stocktitle; ELSIF _state = 1 THEN UPDATE t_ex_stock_detail SET sellingprice = _sellingprice, stockstate = 1, updusrnm = _updusrnm, updpcnm = _updpcnm WHERE stocktitlecd = stocktitle; END IF; END IF; errcd := 1; RETURN; END; $BODY$ LANGUAGE 'plpgsql' VOLATILE;