#!/bin/bash
##############################################################
# システム名    ：eo顧客基幹システム
#
# サブシステム名：契約管理
#
# シェル名      ：カード預りＩＤ採番対象抽出＿04
#
# 機能          ：仕向先会社コードを算出する。
#
# コマンド形式  ：EO2F70240J0.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
# v20.00.00      2015/12/22   FJ)黒田      【ANK-2565-00-00】（新規作成）
#
##############################################################

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

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

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

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

#
#---サービス(業務プロセス)
#
SVC=$JOBNAME

#
#---OPD
#
OPD=$1

sh ${G_TOOLSH}/EOK010210J0.sh CS00025I $JOBNAME

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

#=============================================================
# 出力ファイル
#=============================================================

# クリパ連携ファイル(送信)(1)
KKIFM678002=${MID_DIR_KK}/KKIFM678002.csv

# 仕向先会社コードマスタ
KKIFM681001=${MID_DIR_KK}/KKIFM681001.csv

#=============================================================

#--- アンロードファイル
SQLFILE=${SQL_DIR}/KK_U_CH0531_03.sql
IN_FILE_1=${MID_DIR_KK}/${JOBNAME}_UNLD.csv

# クリパ連携ファイル(送信)(仕向先算出前)
KKIFM678B=${MID_DIR_KK}/KKIFM678001.csv

#--- defファイル
MATCHING_DEF=${G_TOOLSH}/util/def/KK_CM_0573.def

#--- ワークファイル
KKIFM678B_SORT=${MID_DIR_KK}/KKIFM678003_SORT.csv
DEF_FILE=${G_TOOLSH}/util/def/KK_CM_0573.tmp.${JOBNAME}.def
# アンロード用のSQLワークファイル
TMPSQLFILE=${ULD_WORK_DIR}/KK_U_CH0531_02.${JOBNAME}.tmp.sql
IN_FILE_2=${MID_DIR_KK}/${JOBNAME}_IN_FILE_2.csv

#=============================================================
# (4-1) UNLD
#=============================================================

	#
	#--- アンロードファイルのクリアを行う
	#
	cat /dev/null > $IN_FILE_1

	#--- エラー処理
	rc=$?
	if [ $rc -ne 0 ]
	then
	    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File cat error($TMPSQLFILE:rc=$rc) "
	    echo $JOBNAME " File cat error($TMPSQLFILE:rc=$rc) "
	    exit ${G_RTN_ERROR}
	fi

	#
	#--- バインド置換
	#
	# 抽出範囲年月日と運用日をSQLに設定(バインド変数を置換)
	cp -f ${SQLFILE} ${TMPSQLFILE}
	sed -i -e s/:OPDATE/"'"${RSLT_OPEDATE}"'"/     ${TMPSQLFILE}

	#
	#--- UNLOAD処理
	#
	sh ${G_TOOLSH}/EOKULD02.sh $TMPSQLFILE $IN_FILE_1 $JOBNAME

	#
	#--- ダブルコーテーションを削除する
	#
	sed -i -e "s/\"//g" ${IN_FILE_1}

#=============================================================
# (4-2) マッチング(一致)
#=============================================================

	#
	#--- UNLOADファイルを下記のKEYでソートする
	#--- KKIFM681001(仕向先会社コードマスタ)とする
	#---  KEY : クレジットカード帯域番号(自),クレジットカード帯域番号(至)
	#
	bsortex \
	    -sort key=0.16asc,1.16asc \
	    -record recform=txtcsv \
	    -input reclen=100 file=${IN_FILE_1} \
	    -output file=${KKIFM681001}

	#--- エラー処理
	rc=$?
	if [ $rc -ne 0 ]
	then
	    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " SORT1 Error($SVC sort:rc=$rc) "
	    echo $JOBNAME " SORT1 Error($SVC sort:rc=$rc) "
	    exit ${G_RTN_ERROR}
	fi

	#
	#--- クリパ連携ファイル(送信)(仕向先算出前)を下記のKEYでソートする
	#---  KEY : クレジットカード番号
	#
	bsortex \
	    -sort key=2.16asc \
	    -record recform=txtcsv \
	    -input reclen=100 file=${KKIFM678B} \
	    -output file=${KKIFM678B_SORT}

	#--- エラー処理
	rc=$?
	if [ $rc -ne 0 ]
	then
	    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " SORT2 Error($SVC sort:rc=$rc) "
	    echo $JOBNAME " SORT2 Error($SVC sort:rc=$rc) "
	    exit ${G_RTN_ERROR}
	fi

	#
	#--- クリパ連携ファイル(送信)(仕向先算出前)をマッチング用に整形する
	#--- 8カラム目に'0'を追加する
	#
	bsortex \
	    -copy \
	    -record recform=txtcsv \
	    -input file=${KKIFM678B_SORT} reclen=100 \
		-output file=${IN_FILE_2} \
		        reconst="0.6,1.10,2.16,3.6,4.12,5.12,6.5,7.9,'0'.1asc"

	#--- エラー処理
	rc=$?
	if [ $rc -ne 0 ]
	then
	    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " COPY1 Error($SVC copy:rc=$rc) " 
	    echo $JOBNAME " COPY1 Error($SVC copy:rc=$rc) "
	    exit ${G_RTN_ERROR}
	fi

	#
	#--- defファイルをワークファイルにコピー
	#
	cp ${MATCHING_DEF} ${DEF_FILE}

	#
	#--- defファイルにinputファイルを設定
	#
	sed -i -e "s%:IN_FILE_1%${IN_FILE_2}%"    ${DEF_FILE} 
	sed -i -e "s%:IN_FILE_2%${KKIFM681001}%"    ${DEF_FILE} 

	#
	#--- クリパ連携ファイル(送信)(仕向先算出前)と仕向先会社コードマスタをマッチングする
	#--- 一致を抽出し、KKIFM678002(クリパ連携ファイル(送信)(1))とする
	#---  KEY : クレジットカード番号
	#
	export ZTLOUTFILE=${KKIFM678002}
	${G_TOOLSH}/util/bin/ZTLMAT01 ${DEF_FILE}

	#--- エラー処理
	rc=$?
	if [ $rc -ne 0 ]
	then
	    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " MATCHING1 Error($SVC match:rc=$rc) "
	    echo $JOBNAME " MATCHING1 Error($SVC match:rc=$rc) "
	    exit ${G_RTN_ERROR}
	fi

#
#--- ワーク削除
#
rm -f ${IN_FILE_1}
rm -f ${IN_FILE_2}
rm -f ${TMPSQLFILE}
rm -f ${DEF_FILE}
rm -f ${KKIFM678B_SORT}

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

exit ${G_RTN_NORMAL}
