#!/bin/bash
##############################################################
# システム名    ：eo顧客基幹システム
#
# サブシステム名：請求収納
#
# シェル名      ：クレカ請求実績情報取得
#
# 機能          ：1. クレカ請求実績情報取得
# 
#(1)
# クレジット請求情報に、請求契約アンロード(カレント)とクレジットカードアンロード(カレント)から
# コンシューマクレカ請求実績リストに出力する情報を取得する。
#
# コマンド形式  ：EO6090160J0.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
# v58.00.00       2022/05/12  FJ）吉田     【ANK-3846-00-00】【クレカ】クリアパス→ペイジェント移行
##############################################################

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

#
#---ツール格納場所
#
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


#
#---業務で必要な変数定義
#
#xxx=xxxxxxx
#--- ワークファイル削除フラグ
WK_RM=true
RECLEN_KK0521_ULD="100"
RECLEN_KK0521_WK="32"
RECLEN_KK0491_WK="30"
#--- 料金計算日
EVENT_CD="03"
##############################################################
# 業務処理
##############################################################
sh ${G_TOOLSH}/EOK010210J0.sh CS00025I $JOBNAME

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

P1="OPD=,"
P2="SVCCTL=,"
P3="JOB=EO6090160J0,"
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



#
#--- ファイル定義
#
#--- 入力ファイル(クレジット請求情報)
INFILE1=${MID_DIR_CH}/CHIFM004001.csv
CSVFILE_INFILE1=${MID_DIR_CH}/${JOBNAME}_CHIFM004001.csv

#--- SQLファイル
SQLFILE_KK0521=${SQL_DIR}/CH_U_KK0521_04.sql

#--- マッチング定義ファイル
DEFFILE_CH0262=${G_TOOLSH}/util/def/CH_CM_0262.def

#--- 請求契約(KK_T_SEIKY_KEI)
COMULD2_KK0491_ALL=${MID_DIR_CC}/CCIFM030001.csv
CSVFILE_KK0491=${MID_DIR_CH}/${JOBNAME}_CCIFM030001.csv

#--- クレジットカード(KK_T_CRECARD)
CSVFILE_KK0521_ULD=${MID_DIR_CH}/${JOBNAME}_CH_U_KK0521_04_ULD.csv
CSVFILE_KK0521=${MID_DIR_CH}/${JOBNAME}_KK0521.csv

#--- 出力ファイル(コンシューマクレカ請求実績リスト)
OUTFILE=${MID_DIR_CH}/CHIFM411001.csv



#
#--- 各ファイルの存在チェックを行う
#

#--- クレジットカードアンロード用SQLファイル
if [ ! -r ${SQLFILE_KK0521} ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist(${SQLFILE_KK0521}) "
    echo $JOBNAME " File is nonexist(${SQLFILE_KK0521}) "
    exit ${G_RTN_ERROR}
fi

#--- マッチング定義ファイル
if [ ! -r ${DEFFILE_CH0262} ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist(${DEFFILE_CH0262}) "
    echo $JOBNAME " File is nonexist(${DEFFILE_CH0262}) "
    exit ${G_RTN_ERROR}
fi

#--- 請求契約共通アンロードファイル
if [ ! -r ${COMULD2_KK0491_ALL} ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist(${COMULD2_KK0491_ALL}) "
    echo $JOBNAME " File is nonexist(${COMULD2_KK0491_ALL}) "
    exit ${G_RTN_ERROR}
fi



#
#--- 抽出処理
#

#- 請求年月取得
. EO3SEIKYYM2.sh ${EVENT_CD} ${RSLT_OPEDATE} ${JOBNAME}
#- 過去直近の料金計算日を取得
. EO3EVENTYMD.sh ${EVENT_CD} ${SEIKY_YM} ${JOBNAME}
PRCDATE=${EVENT_YMD}
#--- 請求契約(KK_T_SEIKY_KEI)
(
#--- 料金計算日時点のカレントを取得する
#請求契約共通アンロード項目
#      0.10 ：請求契約番号
#      1.17 ：世代登録年月日時分秒
#      8.12 ：請求方法番号(クレジットカード)
#      11.8 ：予約適用年月日
#      13.1 ：予約適用コード
bsortex \
    -sort key="0.10asc,11.8ascr,1.17ascr" \
    -record recform=txtcsv \
    -input reclen=${ULD2_REC_LEN_KK0491} file=${COMULD2_KK0491_ALL} include="13.1asc.eq.'2'.and.11.8asc.le.'${PRCDATE}'" \
    -output reconst="0.10,8.12" \
 | bsortex \
    -merge key="0.10asc" \
    -record recform=txtcsv \
    -input reclen=${RECLEN_KK0491_WK} \
    -summary suppress first \
    -output file=${CSVFILE_KK0491} omit="1.12asc.lt.' '"

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

#--- ダブルクォーテーションを除去
sed -i -e 's/"//g' ${CSVFILE_KK0491}
rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " sed Error (${CSVFILE_KK0491} sed:rc=$rc) "
    echo $JOBNAME " sed Error (${CSVFILE_KK0491} sed:rc=$rc) "
    exit ${G_RTN_ERROR}
fi
) &
pid_KK0491=$!

#--- クレジットカード(KK_T_CRECARD)
(
#クレジットカードアンロード項目
#      0.12 ：請求方法番号(クレジットカード)
#      1.17 ：世代登録年月日時分秒
#      2.5  ：仕向先会社コード
#      3.5  ：クレジットカード会社コード
#      4.1  ：クレジットカード種別コード
#      5.1  ：クレジットイシュア区分
sh ${G_TOOLSH}/EOKULD03.sh ${SQLFILE_KK0521} ${CSVFILE_KK0521_ULD}

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

#--- カレントを取得して世代登録年月日時分秒以外を残す
bsortex \
    -sort key="0.12asc,1.17ascr" \
    -record recform=txtcsv \
    -input reclen=${RECLEN_KK0521_ULD} file=${CSVFILE_KK0521_ULD} \
    -output reconst="0.12,2.5,3.5,4.1,5.1" \
 | bsortex -merge key="0.12asc" \
    -record recform=txtcsv \
    -input reclen=${RECLEN_KK0521_WK} \
    -summary suppress first \
    -output file=${CSVFILE_KK0521}

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

) &
pid_KK0521=$!

wait ${pid_KK0491}
rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " Sub process Error (KK_T_SEIKY_KEI Sub process:rc=$rc) "
    echo $JOBNAME " Sub process Error (KK_T_SEIKY_KEI Sub process:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

wait ${pid_KK0521}
rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " Sub process Error (KK_T_CRECARD Sub process:rc=$rc) "
    echo $JOBNAME " Sub process Error (KK_T_CRECARD Sub process:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

#
#--- マッチング処理
#
cp ${INFILE1} ${CSVFILE_INFILE1}
sed -i -e "s/\"//g" ${CSVFILE_INFILE1}


#--- 抽出した請求契約とクレジットカードをクレジット請求情報とマッチングし、
#--- クレカ請求実績情報付与ファイルを作成する。
export ZTLQUOTES=''
export ZTLOUTFILE=${OUTFILE}
export CSVFILE_KK0491
export CSVFILE_KK0521
export CSVFILE_INFILE1
${G_TOOLSH}/util/bin/ZTLMAT01 ${DEFFILE_CH0262}

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


# ワーク削除
if [ ${WK_RM} = "true" ] ;then
    rm ${CSVFILE_INFILE1}
    rm ${CSVFILE_KK0491}
    rm ${CSVFILE_KK0521_ULD}
fi

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

exit ${G_RTN_NORMAL}
