	-- F_YOYAKU
	--  ※引数
	--     i_sm_date     年月日時間秒(YYYYMMDDhi24miss) 14桁
	--     i_sm_no       年月日時間秒(YYYYMMDDhi24miss) 14桁
	--     i_hanasho_cd  
	--     i_rsv_cnt     
	--  ※返値   
	--     o_ymdhms 分
	--  
	--  (i_left - i_right ) の計算結果を分で返す 24時間形式で送る必要あり
	--  
	--      
	--  

CREATE OR REPLACE FUNCTION F_USER_IMPORT ()
	RETURNS setof ProcReturnsMsg
AS '
declare
	retMsg                      ProcReturnsMsg;				-- 返り値用変数
	u_cnt                       INTEGER;
	o_rsv_no                    t_yoyaku.rsv_no%TYPE;
	cur_w_user_kanri            refcursor;
	wk_w_user_kanri             w_user_kanri%ROWTYPE;
	
	
BEGIN
	
	OPEN cur_w_user_kanri FOR SELECT * FROM w_user_kanri;
	LOOP FETCH cur_w_user_kanri INTO wk_w_user_kanri;
			IF NOT FOUND then
				exit;
			end if;
			-- 存在チェック
			select count(*) into u_cnt 
			from m_user
			where user_kbn = wk_w_user_kanri.user_kbn
			and user_cd    = wk_w_user_kanri.user_cd;
			RAISE NOTICE ''コード===[%]'',wk_w_user_kanri.user_cd;
			RAISE NOTICE ''存在  ===[%]'',u_cnt;
			IF u_cnt = 0 THEN
				insert into m_user
				(user_kbn, 
				 user_cd, 
				 passwd, 
				 status_kbn, 
				 add_ymd, 
				 add_usr, 
				 upd_ymd, 
				 upd_usr, 
				 user_nm, 
				 user_rnm, 
				 pc_mail, 
				 mb_mail)
				values(
				 wk_w_user_kanri.user_kbn, 
				 wk_w_user_kanri.user_cd, 
				 md5(wk_w_user_kanri.password), 
				 wk_w_user_kanri.jyotai_kbn, 
				 current_timestamp, 
				 wk_w_user_kanri.add_tanto, 
				 current_timestamp, 
				 wk_w_user_kanri.update_tanto, 
				 wk_w_user_kanri.user_name1, 
				 wk_w_user_kanri.user_ryaku, 
				 wk_w_user_kanri.pc_mail, 
				 wk_w_user_kanri.keitai_mail);
				-- ログ生成
				retMsg.v_code  := 0;
				retMsg.v_msg   := ''インポート完了しました。追加=['' || wk_w_user_kanri.user_kbn || '']['' || wk_w_user_kanri.user_cd ||  '']'';
				return next retMsg;
			ELSE
				update m_user set
				status_kbn = wk_w_user_kanri._jyotai_kbn,
				upd_usr    = wk_w_user_kanri._update_tanto,
				upd_ymd    = current_timestamp,
				user_nm    = wk_w_user_kanri.user_name1,
				user_rnm   = wk_w_user_kanri.user_ryaku,
				pc_mail    = wk_w_user_kanri.pc_mail,
				mb_mail    = wk_w_user_kanri.keitai_mail
				where user_kbn = wk_w_user_kanri.user_kbn
				and   user_cd  = wk_w_user_kanri.user_cd;
				-- ログ生成
				retMsg.v_code  := 0;
				retMsg.v_msg   := ''インポート完了しました。更新=['' || wk_w_user_kanri.user_kbn || '']['' || wk_w_user_kanri.user_cd ||  '']'';
				return next retMsg;
			END IF;
			
	END LOOP;
	CLOSE cur_w_user_kanri;
	
	-- ここまで来たらOK
	retMsg.v_code  := 0;
	retMsg.v_msg   := ''全件インポート完了しました。'';
	return next retMsg;
	return ;
EXCEPTION
	WHEN division_by_zero THEN
		RAISE NOTICE ''caught division_by_zero'';
		retMsg.v_code  := 99999;
		retMsg.v_msg   := ''：未知なるエラーで処理が中断されました。'';
		retMsg.v_query := NULL;
		return next retMsg;
		return;
END
'
language 'plpgsql';
