#!/bin/bash
##############################################################
# システム名    ：eo顧客基幹システム
#
# サブシステム名：契約管理
#
# シェル名      ：移行後クレジットカード番号預りID反映確認（クリアパス受信２回目）
#
# 機能          ：移行後のコンテンツ事業クレジットカードにクレジットカード番号預りIDが反映されているかを確認する
#
#<<(1)アンロード条件>>
#【コンテンツ事業クレジットカード】
#  ・全件取得
#
# コマンド形式  ：EO2F70233J0.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
#
##############################################################

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

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

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

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

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

#
#---OPD
#
OPD=$1

#
#---業務で必要な変数定義
#
#xxx=xxxxxxx
#アンロード出力用ファイル
SQLOUT_CN0101=${MID_DIR_KK}/EO2F70233J0_KKIFM673_SQLOUT_CN0101.csv

##アンロード用SQLファイル
SQLFILE_CN0101=${SQL_DIR}/KK_U_CN0101_04.sql

##クリアパス受信ファイル（１回目受信）
INFILE_CPATH_001=${MID_DIR_KK}/KKIFM673004.csv

##クリアパス受信ファイル（２回目受信）
INFILE_CPATH_002=${MID_DIR_KK}/KKIFM673006.csv

##クリアパス受信ファイルソート後
INFILE_CPATH_SORT=${MID_DIR_KK}/EO2F70233J0_KKIFM673_SORT.csv

##マッチング
DEFFILE_001=${G_TOOLSH}/util/def/KK_CM_0566.def
DEFFILE_002=${G_TOOLSH}/util/def/KK_CM_0567.def
TMPDEFFILE_001=${ULD_WORK_DIR}/EO2F70233J0_KK_CM_0566.tmp.def
TMPDEFFILE_002=${ULD_WORK_DIR}/EO2F70233J0_KK_CM_0567.tmp.def
MATCHING_OUTFILE_001=${MID_DIR_KK}/EO2F70233J0_KKIFM673_MATCHING_OUT_001.csv
MATCHING_OUTFILE_002=${MID_DIR_KK}/EO2F70233J0_KKIFM673_MATCHING_OUT_002.csv
MATCHING_RESULT_001=${MID_DIR_KK}/EO2F70233J0_KKIFM673_MATCHING_RESULT_001.csv
MATCHING_RESULT_002=${MID_DIR_KK}/EO2F70233J0_KKIFM673_MATCHING_RESULT_002.csv
MATCHING_RESULT=${MID_DIR_KK}/EO2F70233J0_KKIFM673_MATCHING_RESULT.csv

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

#
#---パラメタ定義
#

P1="OPD=,"
P2="SVCCTL=,"
P3="JOB=EO2F70121J0,"
P4="IND1=,"
P5="INF1=,"
P6="IND2=,"
P7="INF2=,"
P8="OTD1=,"
P9="OTF1=,"
P10="OTD2=,"
P11="OTF2=,"
P12="TABLENAME=,"
P13="SQLKEY=,"
P14="SQLPARAM=,"
P15="ERRFILE=,"
P16="RECOVERY=,"
P17="BREAKPTN=,"
P18="FREE="
PARA="$P1$P2$P3$P4$P5$P6$P7$P8$P9$P10$P11$P12$P13$P14$P15$P16$P17$P18"

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

#
#--- 各ファイルの存在チェックを行う
#
if [ ! -r $SQLFILE_CN0101 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist($SQLFILE_CN0101) "
    echo $JOBNAME " File is nonexist($SQLFILE_CN0101) "
    exit ${G_RTN_ERROR}
fi

if [ ! -r $INFILE_CPATH_001 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist($INFILE_CPATH_001) "
    echo $JOBNAME " File is nonexist($INFILE_CPATH_001) "
    exit ${G_RTN_ERROR}
fi

if [ ! -r $INFILE_CPATH_002 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist($INFILE_CPATH_002) "
    echo $JOBNAME " File is nonexist($INFILE_CPATH_002) "
    exit ${G_RTN_ERROR}
fi

if [ ! -r $DEFFILE_001 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist($DEFFILE_001) "
    echo $JOBNAME " File is nonexist($DEFFILE_001) "
    exit ${G_RTN_ERROR}
fi

if [ ! -r $DEFFILE_002 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist($DEFFILE_002) "
    echo $JOBNAME " File is nonexist($DEFFILE_002) "
    exit ${G_RTN_ERROR}
fi

#
#--- 各ファイルのクリア
#
rm -f  ${SQLOUT_CN0101} > /dev/null 2>&1
rm -f  ${INFILE_CPATH_001_SORT} > /dev/null 2>&1
rm -f  ${INFILE_CPATH_002_SORT} > /dev/null 2>&1
rm -f  ${MATCHING_OUTFILE_001} > /dev/null 2>&1
rm -f  ${MATCHING_OUTFILE_002} > /dev/null 2>&1
rm -f  ${MATCHING_RESULT_001} > /dev/null 2>&1
rm -f  ${MATCHING_RESULT_002} > /dev/null 2>&1
rm -f  ${MATCHING_RESULT} > /dev/null 2>&1


#
#--- UNLOAD処理
# CN0101
sh ${G_TOOLSH}/EOKULD02.sh $SQLFILE_CN0101 $SQLOUT_CN0101 $JOBNAME
rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " UNLOAD Error($SQLFILE_CN0101 unload:rc=$rc) " 
    echo $JOBNAME " UNLOAD Error($SQLFILE_CN0101 unload:rc=$rc) "
    exit ${G_RTN_ERROR}
fi


#
#--- ソート (入力会員番号)（クリアパス受信１回目・２回目））
#
bsortex -sort key=90.9asca,09.16asca,25.4asca,69.16asca -record recform=txtfix -input file=${INFILE_CPATH_001},${INFILE_CPATH_002} reclen=140 -output file=${INFILE_CPATH_SORT} reconst="'\"'.1asc,90.9,'\",\"'.3asc,09.16,'\",\"20'.5asc,25.4,'\",\"'.3asc,69.16,'\"'.1asc"
rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " KKIFM673 Sort Error($SVC sort:rc=$rc) "
    echo $JOBNAME " KKIFM673 Sort Error($SVC sort:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

# 
# マッチング
# 
export ZTLTMPDIR=${ULD_WORK_DIR}
export ZTLOUTFILE=${MATCHING_OUTFILE_001}

#--- 定義ファイル環境変数設定処理
cat ${DEFFILE_001} > ${TMPDEFFILE_001}
sed -i -e s@'${KKIFM673_FILE}'@${INFILE_CPATH_SORT}@g ${TMPDEFFILE_001}
sed -i -e s@'${CN0101}'@${SQLOUT_CN0101}@g ${TMPDEFFILE_001}

#--- マッチング処理
${G_TOOLSH}/util/bin/ZTLMAT01 ${TMPDEFFILE_001}
rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " MATCHING UTIL Error($SVC util:rc=$rc) " 
    echo $JOBNAME " MATCHING UTIL Error($SVC util:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

#
#--クレジットカード番号預りIDが設定されていないものを抽出
#
bsortex -sort key="0.9asca" -record recform=txtcsv -input file=${MATCHING_OUTFILE_001} reclen=140 \
omit="7.16asc.ge.'0'" -output file=${MATCHING_RESULT_001} \
reconst="1.16,0.9"

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

# 
# マッチング
# 
export ZTLTMPDIR=${ULD_WORK_DIR}
export ZTLOUTFILE=${MATCHING_OUTFILE_002}

#--- 定義ファイル環境変数設定処理
cat ${DEFFILE_002} > ${TMPDEFFILE_002}
sed -i -e s@'${CN0101}'@${SQLOUT_CN0101}@g ${TMPDEFFILE_002}
sed -i -e s@'${KKIFM673_FILE}'@${INFILE_CPATH_SORT}@g ${TMPDEFFILE_002}

#--- マッチング処理
${G_TOOLSH}/util/bin/ZTLMAT01 ${TMPDEFFILE_002}
rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " MATCHING UTIL Error($SVC util:rc=$rc) " 
    echo $JOBNAME " MATCHING UTIL Error($SVC util:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

#
#--クレジットカード番号預りIDが設定されていないものを抽出
#
bsortex -sort key="4.9asca" -record recform=txtcsv -input file=${MATCHING_OUTFILE_002} reclen=140 \
omit="3.16asc.ge.'0'" -output file=${MATCHING_RESULT_002} \
reconst="5.16,4.9"

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

#
#--ファイル結合
#
cat ${MATCHING_RESULT_001} ${MATCHING_RESULT_002} > ${MATCHING_RESULT}

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

exit $exit_rc
