DROP FUNCTION f_import_main(IN _shopdiv integer, IN _itemcd integer, IN _itemnm varchar, IN _itemnmkana varchar, IN _makercd integer, IN _makernm varchar, IN _labelcd integer, IN _labelnm varchar, IN _seriescd integer, IN _seriesnm varchar, IN _itemdivcd integer, IN _examgroupcd integer, IN _examno varchar, IN _iteminfo text, IN _eirinrating integer, IN _subtitle varchar, IN _OriginalTitle varchar, IN _ProductYear varchar, IN _ProductCountry varchar, IN _rankingrate integer, IN _webcomment varchar, IN _mediacd integer, IN _makeritemcd varchar, IN _jancd varchar, IN _isbncd varchar, IN _salestartdate date, IN _orderclosedate date, IN _saleformcd integer, IN _rectime integer, IN _makerprice integer, IN _exhibitcount integer, IN _condition integer, IN _sellingprice integer, IN _souryouprc integer, IN _stockstate integer,IN _genrecd integer[], IN _genrenm varchar[], IN _castcd integer[], IN _castnm varchar[], IN directorcode integer[], IN directorname varchar[], IN release integer, IN usr varchar, OUT errcd integer, OUT errmsg varchar, OUT code integer); CREATE OR REPLACE FUNCTION f_import_main(IN _shopdiv integer, -- 区分 IN _itemcd integer, -- å“ç›®C IN _itemnm varchar, -- å“å IN _itemnmkana varchar, -- å“å(ã‹ãª) IN _makercd integer, -- メーカーC IN _makernm varchar, -- メーカーå IN _labelcd integer, -- レーベルC IN _labelnm varchar, -- レーベルå IN _seriescd integer, -- シリーズC IN _seriesnm varchar, -- シリーズå IN _itemdivcd integer, -- 作å“区分C IN _examgroupcd integer, -- å—審団体C / 公開区分C IN _examno varchar, -- å—å¯©ç•ªå· / æ˜ å€«ç•ªå· IN _iteminfo text, -- ä½œå“æ¡ˆå†… IN _eirinrating integer, -- æ˜ å€«æ—¢å®š IN _subtitle varchar, -- サブタイトル IN _OriginalTitle varchar, -- 原題 IN _ProductYear varchar, -- 製作年 IN _ProductCountry varchar, -- 製作国 IN _rankingrate integer, -- ランク IN _webcomment varchar, -- WEBコメント IN _mediacd integer, -- メディアC IN _makeritemcd varchar, -- メーカーå“番 IN _jancd varchar, -- JANコード IN _isbncd varchar, -- ISBNコード IN _salestartdate date, -- 発売日 IN _orderclosedate date, -- ç™ºæ³¨ç· åˆ‡æ—¥ IN _saleformcd integer, -- 発売形態C IN _rectime integer, -- åŽéŒ²æ™‚é–“ IN _makerprice integer, -- メーカー定価 IN _exhibitcount integer, -- å‡ºå“æ•° IN _condition integer, -- コンディション IN _sellingprice integer, -- è²©å£²ä¾¡æ ¼ IN _souryouprc integer, -- 逿–™ IN _stockstate integer, -- 在庫状態 IN _genrecd integer[], -- ジャンルC IN _genrenm varchar[], -- ジャンルå IN _castcd integer[], -- ã‚ャストC IN _castnm varchar[], -- ã‚ャストå IN directorcode integer[], -- 監ç£C IN directorname varchar[], -- 監ç£å IN release integer, -- 公開日 IN usr varchar, -- 更新ユーザ OUT errcd integer, OUT errmsg varchar, OUT code integer) AS $BODY$ DECLARE sql varchar; rec_item RECORD; rec_struct RECORD; rec_web RECORD; rec_stock RECORD; rec_genre RECORD; rec_cast RECORD; i integer := 1; makerc integer; labelc integer; seriesc integer; itemc integer; BEGIN -- IF usr IS NULL THEN errcd := -10; errmsg := '更新ユーザãŒNULL'; RETURN; END IF; IF _itemcd IS NOT NULL THEN errcd := -10; errmsg := 'æ›´æ–°ã¯ã§ãã¾ã›ã‚“'; RETURN; ELSIF _itemcd IS NULL THEN -- メーカコードå–å¾— IF _makercd IS NOT NULL THEN SELECT makercd INTO makerc FROM t_maker WHERE makercd = _makercd; IF NOT FOUND THEN errcd := -10; errmsg := _makercd || 'ã¯ãƒ¡ãƒ¼ã‚«ãƒ¼ãƒžã‚¹ã‚¿ã«ã‚りã¾ã›ã‚“。'; RETURN; END IF; ELSIF _makernm IS NOT NULL THEN -- メーカåã‹ã‚‰ãƒ¡ãƒ¼ã‚«Cå–å¾— SELECT * INTO makerc FROM s_get_makercd(_makernm); IF makerc = 0 THEN errcd := -10; errmsg := _makernm || 'ã¯ãƒ¡ãƒ¼ã‚«ãƒ¼ãƒžã‚¹ã‚¿ã«ã‚りã¾ã›ã‚“。'; RETURN; END IF; END IF; -- レーベルコードå–å¾— IF _shopdiv = 1 THEN IF makerc IS NOT NULL AND _labelcd IS NOT NULL THEN SELECT labelcd INTO labelc FROM t_label WHERE labelcd = _labelcd AND makercd = makerc; IF NOT FOUND THEN errcd := -10; errmsg := _labelcd || 'ã¯ãƒ¬ãƒ¼ãƒ™ãƒ«ãƒžã‚¹ã‚¿ã«ã‚りã¾ã›ã‚“。'; RETURN; END IF; ELSIF makerc IS NOT NULL AND _labelnm IS NOT NULL THEN -- レーベルåã‹ã‚‰ãƒ¬ãƒ¼ãƒ™ãƒ«Cå–å¾— SELECT * INTO labelc FROM s_get_labelcd(makerc, _labelnm); IF labelc = 0 THEN errcd := -10; errmsg := _labelnm || 'ã¯ãƒ¬ãƒ¼ãƒ™ãƒ«ãƒžã‚¹ã‚¿ã«ã‚りã¾ã›ã‚“。'; RETURN; END IF; END IF; END IF; -- シリーズコードå–å¾— IF makerc IS NOT NULL AND _seriescd IS NOT NULL THEN SELECT seriescd INTO seriesc FROM t_series WHERE seriescd = _seriescd AND makercd = makerc; IF NOT FOUND THEN errcd := -10; errmsg := _seriescd || 'ã¯ã‚·ãƒªãƒ¼ã‚ºãƒžã‚¹ã‚¿ã«ã‚りã¾ã›ã‚“。'; RETURN; END IF; ELSIF makerc IS NOT NULL AND _seriesnm IS NOT NULL THEN -- シリーズåã‹ã‚‰ã‚·ãƒªãƒ¼ã‚ºCå–å¾— SELECT * INTO seriesc FROM s_get_seriescd(makerc, _seriesnm); IF seriesc = 0 THEN errcd := -10; errmsg := _seriesnm || 'ã¯ã‚·ãƒªãƒ¼ã‚ºãƒžã‚¹ã‚¿ã«ã‚りã¾ã›ã‚“。'; RETURN; END IF; END IF; -- é‡è¤‡ãƒã‚§ãƒƒã‚¯ SELECT * INTO itemc FROM t_item_basic_attr WHERE s_get_nocase_text(itemnm) LIKE s_get_nocase_text(_itemnm) AND makercd = makerc AND delflg = false; IF FOUND THEN errcd := -20; errmsg := 'è¿½åŠ ã§ãã¾ã›ã‚“ã§ã—ãŸ'; RETURN; END IF; ---- æ›´æ–°å‡¦ç† -- è¿½åŠ ã—ãŸå“åコードをrec_item ã«ä»£å…¥ SELECT * FROM f_import_item_basic_attr( _itemnm, -- å“å _itemnmkana, -- å“å(ã‹ãª) makerc, -- メーカーコード labelc, -- レーベルコード seriesc, -- シリーズコード _itemdivcd, -- 作å“区分コード _examgroupcd, -- å—審団体コード _examno, -- å—å¯©ç•ªå· _iteminfo, -- ä½œå“æ¡ˆå†… _eirinrating, -- æ˜ å€«è¦å®š _subtitle, -- サブタイトル _OriginalTitle, -- 原題 _ProductYear, -- 製作年 _ProductCountry, -- 製作国 _shopdiv, -- 区分 usr -- 更新ユーザ ) INTO rec_item; IF rec_item.errcd <> 1 THEN errcd := rec_item.errcd; errmsg := rec_item.errmsg; code := rec_item.code; RETURN; END IF; -- å“目ウェブ属性テーブルã«è¿½åŠ SELECT * FROM f_import_item_web_attf( rec_item.code, _rankingrate, release, _webcomment, usr ) INTO rec_web; IF rec_web.errcd <> 1 THEN errcd := rec_web.errcd; errmsg := rec_web.errmsg; RETURN; END IF; -- å“目構æˆãƒ†ãƒ¼ãƒ–ルã«è¿½åŠ SELECT * FROM f_import_item_struct( rec_item.code, -- å“目コード _mediacd, -- メディアコード _makeritemcd, -- メーカーå“番 _jancd, -- JANコード _isbncd, -- ISBNコード _salestartdate, -- 発売日 _orderclosedate, -- ç™ºæ³¨ç· åˆ‡æ—¥ _saleformcd, -- 販売形態 _rectime, -- åŽéŒ²æ™‚é–“ _makerprice, -- メーカー定価 usr -- 更新ユーザ ) INTO rec_struct; IF rec_struct.errcd <> 1 THEN errcd := rec_struct.errcd; errmsg := rec_struct.errmsg; RETURN; END IF; -- è²©å£²ä¾¡æ ¼ SELECT * FROM f_import_ex_stock_detail( rec_item.code, rec_struct.code, _exhibitcount, _condition, _sellingprice, _souryouprc, _stockstate, usr )INTO rec_stock; IF rec_stock.errcd <> 1 THEN errcd := rec_stock.errcd; errmsg := rec_stock.errmsg; RETURN; END IF; -- ジャンル IF _genrecd IS NOT NULL OR _genrenm IS NOT NULL THEN SELECT * FROM f_import_genre_item( rec_item.code, _genrecd, _genrenm, usr ) INTO rec_genre ; IF rec_genre.errcd <> 1 THEN errcd := rec_genre.errcd; errmsg := rec_genre.errmsg; RETURN; END IF; END IF; -- ã‚ャスト IF _castcd IS NOT NULL OR _castnm IS NOT NULL THEN SELECT * FROM f_import_cast_item ( rec_item.code, _castcd, _castnm, _shopdiv, usr )INTO rec_cast ; IF rec_cast.errcd <> 1 THEN errcd := rec_cast.errcd; errmsg := rec_cast.errmsg; RETURN; END IF; END IF; -- ã‚ャスト(監ç£) IF directorcode IS NOT NULL OR directorname IS NOT NULL THEN SELECT * FROM f_import_cast_item2 ( rec_item.code , directorcode , directorname , usr )INTO rec_cast ; IF rec_cast.errcd <> 1 THEN errcd := rec_cast.errcd; errmsg := rec_cast.errmsg; RETURN; END IF; END IF; errcd := 1; errmsg := '完了'; code := rec_item.code; END IF; END; $BODY$ LANGUAGE 'plpgsql' VOLATILE;