#!/bin/bash
##############################################################
# システム名    ：eo顧客基幹システム
#
# サブシステム名：契約管理
#
# シェル名      ：割引サービス契約開始取消対象（値引型）抽出
#
# 機能          ：以下のデータをアンロードする。
#１．KK_T_SVC_KEI_UCWK_サービス契約内訳（KK0161）
#２．KK_T_OP_SVC_KEI_オプションサービス契約（KK0351）
#３．KK_T_SBOP_SVC_KEI_サブオプションサービス契約（KK0401）
#４．KK_T_KKTK_SVC_KEI_機器提供サービス契約（KK0341）
#５．KK_T_KAISEN_TG_SVKEI_回線対象サービス契約（KK0241）
#６．KK_T_KKOP_SVC_KEI_機器オプションサービス契約（KK2811）
#
#その他
#以下のデータはKKPRC00909_割引サービス契約開始登録でダウンロードしたものを使用する。
#・EO20920.KK0451_DL.csv（KK_T_WRIB_SVC_KEI_割引サービス契約）
#・EO20920.KK2361_DL.csv（KK_T_WRISVC_KEI_UCWK_割引サービス契約内訳）
#
# コマンド形式  ：EO2092010J0.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
#
##############################################################

##############################################################
# 環境変数定義
##############################################################

#
#---ツール格納場所
#
G_TOOLSH=.

#
#---環境変数定義Shell呼び出し
#
. EOK010110J0.sh

#
#---ＪＯＢ名
#
JOBNAME=`basename $0 | sed -e "s/\.sh//g"`

#
#---サービス（業務プロセス）
#
SVC=$JOBNAME

#
#---OPD
#
OPD=$1

#
#---運用日付取得
#
if [ "${OPD}" = "" ];then
	. EOK010310J0.sh "BDATE"
else
	RSLT_OPEDATE=${OPD}
fi

#
#---業務で必要な変数定義
#
OPEDATE=$RSLT_OPEDATE

##############################################################
# 業務処理
##############################################################
sh ${G_TOOLSH}/EOK010210J0.sh CS00025I $JOBNAME

#
#--- アンロード関数
#       p1：テーブル名／クエリファイル名
EXEC_UNLOAD()
{
	# 出力ファイルの初期化
	cat /dev/null > $2
	rc=$?
	if [ $rc -ne 0 ]
	then
		sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File cat error($2:rc=$rc) "
		echo $JOBNAME " File cat error($2:rc=$rc) "
		exit ${G_RTN_ERROR}
	fi
	
	# unload(KK_T_CRECARD)
	sh ${G_TOOLSH}/EOKULD03.sh $1 $2
	
	rc=$?
	if [ $rc -ne 0 ]
	then
		sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " unload error($2:rc=$rc) "
		echo $JOBNAME " unload error($2:rc=$rc) "
		exit ${G_RTN_ERROR}
	fi
}

#
#--- クエリ編集
#       p1：ＳＱＬ定義ファイル名
#       p2：バインド変数置換文字
EDIT_QUERY()
{
	SQL_FILE=$1
	SQL_WORK_FILE=${ULD_WORK_DIR}/${JOBNAME}_QUERY.tmp
	cat /dev/null > ${SQL_WORK_FILE}
	
	# SQL定義ファイルの編集
	if [ ! -r ${SQL_FILE} ]
	then
		sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist(${SQL_FILE}:rc=$rc) "
		echo $JOBNAME " File is nonexist(${SQL_FILE}:rc=$rc) "
		exit ${G_RTN_ERROR}
	fi

	# バインド変数を置き換える
	cat ${SQL_FILE} > ${SQL_WORK_FILE}
	
	for bind in $2
	do
		sed -i, -e 0,/?/s/?/"'"$bind"'"/ ${SQL_WORK_FILE}
	done
	
	export SQL_WORK_FILE
}

#
#--- クエリ編集
#       p1：ＳＱＬ定義ファイル名
#       p2：バインド変数置換文字
EDIT_MATCHING_QUERY()
{
	MATCHING_FILE=$1
	MATCHING_QUERY_WORK=${ULD_WORK_DIR}/${JOBNAME}_MATCH_QUERY.tmp
	
	cat /dev/null > ${MATCHING_QUERY_WORK}
	
	# SQL定義ファイルの編集
	if [ ! -r ${MATCHING_FILE} ]
	then
		sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist(${MATCHING_FILE}:rc=$rc) "
		echo $JOBNAME " File is nonexist(${MATCHING_FILE}:rc=$rc) "
		exit ${G_RTN_ERROR}
	fi

	# バインド変数を置き換える
	cat ${MATCHING_FILE} > ${MATCHING_QUERY_WORK}
	
	for bind in $2
	do
		bind_escape=`echo $bind | sed "s/\//\\\\\\\\\//g"`
		sed -i, -e 0,/#FILE#/s/#FILE#/$bind_escape/ ${MATCHING_QUERY_WORK}
	done
	
	export MATCHING_QUERY_WORK
}

#
# --- 各種変数の定義
#
ULD_OUTFILE=${MID_DIR_KK}/${JOBNAME}.ULD_TMP.csv
KK0161_DL_FILE=${MID_DIR_KK}/EO20920.KK0161_DL.csv
KK0351_DL_FILE=${MID_DIR_KK}/EO20920.KK0351_DL.csv
KK0401_DL_FILE=${MID_DIR_KK}/EO20920.KK0401_DL.csv
KK0341_DL_FILE=${MID_DIR_KK}/EO20920.KK0341_DL.csv
KK0481_DL_FILE=${MID_DIR_KK}/EO20920.KK0481_DL.csv
KK0241_DL_FILE=${MID_DIR_KK}/EO20920.KK0241_DL.csv
KK2811_DL_FILE=${MID_DIR_KK}/EO20920.KK2811_DL.csv


#
#---ファイルのクリア
#
cat /dev/null > ${MID_DIR_KK}/EO20920.KK0161_DL.csv
cat /dev/null > ${MID_DIR_KK}/EO20920.KK0351_DL.csv
cat /dev/null > ${MID_DIR_KK}/EO20920.KK0401_DL.csv
cat /dev/null > ${MID_DIR_KK}/EO20920.KK0341_DL.csv
cat /dev/null > ${MID_DIR_KK}/EO20920.KK0481_DL.csv
cat /dev/null > ${MID_DIR_KK}/EO20920.KK0241_DL.csv
cat /dev/null > ${MID_DIR_KK}/EO20920.KK2811_DL.csv


rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " CAT Error($SVC cat:rc=$rc) "
    echo $JOBNAME " CAT Error($SVC cat:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

#
# ---各種アンロードクエリファイル
#
KK0161_ULD_QUERY=${SQL_DIR}/KK_U_KK0161_14.sql
KK0351_ULD_QUERY=${SQL_DIR}/KK_U_KK0351_17.sql
KK0401_ULD_QUERY=${SQL_DIR}/KK_U_KK0401_03.sql
KK0341_ULD_QUERY=${SQL_DIR}/KK_U_KK0341_18.sql
KK0481_ULD_QUERY=${SQL_DIR}/KK_U_KK0481_06.sql
KK0241_ULD_QUERY=${SQL_DIR}/KK_U_KK0241_19.sql
KK2811_ULD_QUERY=${SQL_DIR}/KK_U_KK2811_06.sql


# KK0161(KK_T_SVC_KEI_UCWK_サービス契約内訳)の全データをアンロード
EXEC_UNLOAD ${KK0161_ULD_QUERY} ${ULD_OUTFILE}
cat ${ULD_OUTFILE} > ${KK0161_DL_FILE}


# KK0351(KK_T_OP_SVC_KEI_オプションサービス契約)の全データをアンロード
EXEC_UNLOAD ${KK0351_ULD_QUERY} ${ULD_OUTFILE}
cat ${ULD_OUTFILE} > ${KK0351_DL_FILE}

# KK0401(KK_T_SBOP_SVC_KEI_サブオプションサービス契約)の全データをアンロード
EXEC_UNLOAD ${KK0401_ULD_QUERY} ${ULD_OUTFILE}
cat ${ULD_OUTFILE} > ${KK0401_DL_FILE}

# KK0341(KK_T_KKTK_SVC_KEI_機器提供サービス契約)の全データをアンロード
EXEC_UNLOAD ${KK0341_ULD_QUERY} ${ULD_OUTFILE}
cat ${ULD_OUTFILE} > ${KK0341_DL_FILE}

# KK0481(KK_T_WRISVC_TG_KEI_割引サービス対象契約)の全データをアンロード
EXEC_UNLOAD ${KK0481_ULD_QUERY} ${ULD_OUTFILE}
cat ${ULD_OUTFILE} > ${KK0481_DL_FILE}

# KK0241(KK_T_KAISEN_TG_SVKEI_回線対象サービス契約)の全データをアンロード
EXEC_UNLOAD ${KK0241_ULD_QUERY} ${ULD_OUTFILE}
cat ${ULD_OUTFILE} > ${KK0241_DL_FILE}

# KK2811(KK_T_KKOP_SVC_KEI_機器オプションサービス契約)の全データをアンロード
EXEC_UNLOAD ${KK2811_ULD_QUERY} ${ULD_OUTFILE}
cat ${ULD_OUTFILE} > ${KK2811_DL_FILE}

# unloadファイルの削除
rm ${ULD_OUTFILE}

#
#--- ジョブの終了メッセージを出力する
#
sh ${G_TOOLSH}/EOK010210J0.sh CS00028I $JOBNAME
sh ${G_TOOLSH}/EOK010210J0.sh CS00026I $JOBNAME

exit ${G_RTN_NORMAL}
