#!/bin/bash
##############################################################
# システム名    ：eo顧客基幹システム
#
# サブシステム名：請求収納
#
# シェル名      ：抑止情報マージ
#
# 機能          ：各箇所にて作成された抑止情報のマージを行い、以下のキーでソートする。
#
#請求年月＞請求先番号＞発行抑止コード
#
# コマンド形式  ：EO60301O0J0.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
#
# v6.00           2013/12/26  FJ）小掠     【OM-2013-0005152】マージにファイルにCHIFM065009.csv、CHIFM065010.csvを追加
# v52.00          2021/03/05  FJ）麻生     【OM-2020-0001613】隔月合算請求による督促抑止を抑止請求先一覧の処理対象から除外
# v53.00          2021/05/13  FJ）山地     【ANK-3983-00-00】抑止請求先一覧（エスプリ）の出力条件変更対応
# v53.01          2021/05/28  FJ）山地     【IT1-2021-0000041】出力ファイルへのソート処理追加
##############################################################

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

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

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

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

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

#
#---OPD
#
OPD=$1

#
#---業務で必要な変数定義
#
#xxx=xxxxxxx
# v52.00 OM-2020-0001613 ADD START
WK_RM=true
KAKGT_JISSEKI_WK=${MID_DIR_CH}/${JOBNAME}_CHIFM335001_WK.csv
CHIFM065005=${MID_DIR_CH}/CHIFM065005.csv
CHIFM065005_MATCH=${MID_DIR_CH}/${JOBNAME}_CHIFM065005_MATCH.csv
CHIFM065005_SORT=${MID_DIR_CH}/${JOBNAME}_CHIFM065005_SORT.csv
MATCHING=${G_TOOLSH}/util/bin/ZTLMAT01
DEF_CH_CM_0244=${G_TOOLSH}/util/def/CH_CM_0244.def
# v52.00 OM-2020-0001613 ADD END
# ANK-3983-00-00 ADD START
CHIFM065003_WK=${MID_DIR_CH}/CHIFM065003_WK.csv
CHIFM065007_WK=${MID_DIR_CH}/CHIFM065007_WK.csv
CHIFM065007=${MID_DIR_CH}/CHIFM065007.csv
# IT1-2021-0000041 ADD START
CHIFM065007_MATCH=${MID_DIR_CH}/CHIFM065007_MATCH.csv
# IT1-2021-0000041 ADD END

#
#--- 督促アンロードファイル・未納債権内訳情報ファイルをワークファイルとして取得。
#
TOKSK_WK=${MID_DIR_CH}/CHIFM183001.csv
SAIKEN_WK=${MID_DIR_CH}/CHIFM160001.csv
CHIFM065007_TOKSK_USE_STP_MATCH=${MID_DIR_CH}/${JOBNAME}_CHIFM065007_TOKSK_USE_STP_MATCH.csv
CHIFM065007_TOKSK_USE_STP_MATCH_DEL=${MID_DIR_CH}/${JOBNAME}_CHIFM065007_TOKSK_USE_STP_MATCH_DEL.csv
DEF_CH_CM_0245=${G_TOOLSH}/util/def/CH_CM_0245.def
DEF_CH_CM_0246=${G_TOOLSH}/util/def/CH_CM_0246.def
# ANK-3983-00-00 ADD END
##############################################################
# 業務処理
##############################################################
sh ${G_TOOLSH}/EOK010210J0.sh CS00025I $JOBNAME

# v52.00 OM-2020-0001613 ADD START
#
#--- 運用日付取得
#
if [ "${OPD}" = "" ]; then
   . EOK010310J0.sh "BDATE"
   OPD=${RSLT_OPEDATE}
else
   RSLT_OPEDATE="${OPD}"
fi
# v52.00 OM-2020-0001613 ADD END

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

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

# v52.00 OM-2020-0001613 ADD START
#
#--- 処理対象年月取得
#
TARGET_YM=`date -d "2 months ago ${RSLT_OPEDATE}" +%Y%m`

#
#--- (隔月請求)督促抑止登録実績情報取得
#
KAKGT_JISSEKI=${MID_DIR_CH}/CHIFM335001_${TARGET_YM}.csv
if [ -r ${KAKGT_JISSEKI} ]
then
    awk -F '","' '$4=="1\""{print $2 "," $3 "\r"}' ${KAKGT_JISSEKI} > ${KAKGT_JISSEKI_WK}
    if [ $rc -ne 0 ]
    then
        sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " AWK Error($SVC awk:rc=$rc) "
        echo $JOBNAME " AWK Error($SVC awk:rc=$rc) "
        exit ${G_RTN_ERROR}
    fi
else
    cat /dev/null > ${KAKGT_JISSEKI_WK}
fi

#
#--- 抑止情報データ(督促データ識別："04")と隔月請求の督促抑止をマッチング
#
export KAKGT_JISSEKI_WK
export CHIFM065005
export ZTLOUTFILE=${CHIFM065005_MATCH}
#---マッチング処理でLeftjoinがNULL時に"を付けなくする（マッチング使用時は必須）
export ZTLQUOTES=''

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

#
#--- 隔月請求の督促抑止と不一致の抑止情報データ(督促データ識別："04")を出力
#
  bsortex -copy -record recform=txtcsv \
   -input reclen=33 file=${CHIFM065005_MATCH} include="0.10asc.lt.' '" \
   -output file=${CHIFM065005_SORT} reconst="1.END"
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
# v52.00 OM-2020-0001613 ADD END

# ANK-3983-00-00 ADD START
#
#--- 抑止情報ファイルに含まれる抽出対象外の「発行抑止コード　03：口座番号表示抑止」の情報を削除したファイルを出力する。
#
bsortex -copy -record recform=txtcsv -input file=${MID_DIR_CH}/CHIFM065003.csv reclen=40 -output file=${CHIFM065003_WK} case="2.2asc.ne.'03'"

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
# ANK-3983-00-00 ADD END

#
#---ＳＯＲＴ
#
# ANK-3983-00-00 MOD START
# v52.00 OM-2020-0001613 MOD START
#bsort -s -z99 -Tflt -t, -1.99asca,0.99asca,2.99asca -o ${MID_DIR_CH}/CHIFM065007.csv ${MID_DIR_CH}/CHIFM065003.csv ${MID_DIR_CH}/CHIFM065002.csv ${MID_DIR_CH}/CHIFM065004.csv ${MID_DIR_CH}/CHIFM065005.csv ${MID_DIR_CH}/CHIFM065006.csv ${MID_DIR_CH}/CHIFM065001.csv  ${MID_DIR_CH}/CHIFM065009.csv  ${MID_DIR_CH}/CHIFM065010.csv 
#bsort -s -z99 -Tflt -t, -1.99asca,0.99asca,2.99asca -o ${MID_DIR_CH}/CHIFM065007.csv ${MID_DIR_CH}/CHIFM065003.csv ${MID_DIR_CH}/CHIFM065002.csv ${MID_DIR_CH}/CHIFM065004.csv ${CHIFM065005_SORT} ${MID_DIR_CH}/CHIFM065006.csv ${MID_DIR_CH}/CHIFM065001.csv  ${MID_DIR_CH}/CHIFM065009.csv  ${MID_DIR_CH}/CHIFM065010.csv 
bsort -s -z99 -Tflt -t, -1.99asca,0.99asca,2.99asca -o ${CHIFM065007_WK} ${CHIFM065003_WK} ${CHIFM065005_SORT} ${MID_DIR_CH}/CHIFM065006.csv ${MID_DIR_CH}/CHIFM065001.csv  ${MID_DIR_CH}/CHIFM065009.csv  ${MID_DIR_CH}/CHIFM065010.csv 
# v52.00 OM-2020-0001613 MOD END
# ANK-3983-00-00 MOD END

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

# ANK-3983-00-00 ADD START
#
#--- ファイルサイズが0バイト以上あるか確認する
#--- 0バイトなら口座番号表示抑止削除後のファイルの末尾にカンマを追加する。
#--- 0バイトでないなら、督促ステータスによるデータ抽出を行う。
#
if [ ! -s ${MID_DIR_CH}/CHIFM183001.csv]
then
    sed -e 's/$/,/g' ${CHIFM065007_WK} > ${CHIFM065007_TOKSK_USE_STP_MATCH}
else
    #
    #--- 「督促ステータス　15：強制解約予告済」以下の請求契約を出力するため、
    #--- 「督促ステータス　20：利用停止済み」以上のレコードに請求契約番号を追加したファイルを出力する。
    #
    export CHIFM065007_WK
    export TOKSK_WK
    export ZTLOUTFILE=${CHIFM065007_TOKSK_USE_STP_MATCH}
    #---マッチング処理でLeftjoinがNULL時に"を付けなくする（マッチング使用時は必須）
    export ZTLQUOTES=''
    
    ${MATCHING} ${DEF_CH_CM_0245}
    rc=$?
    if [ $rc -ne 0 ]
    then
        sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " MATCHING Error(CH_CM_0245.def:rc=$rc) "
        echo $JOBNAME " MATCHING Error(CH_CM_0245.def:rc=$rc) "
        exit ${G_RTN_ERROR}
    fi
fi

#
# 督促アンロードファイルに存在しない　または「督促ステータス　15：強制解約予告済み」以下であるレコードをファイルとして出力する。
#
bsortex -sort key=0.10asc -record recform=txtcsv -input file=${CHIFM065007_TOKSK_USE_STP_MATCH} reclen=40 include="0.10asc.lt.' '" -output file=${CHIFM065007_TOKSK_USE_STP_MATCH_DEL} reconst="1.END"


#
#--- 未納債権内訳情報ファイルとマッチングを行い、未納が発生している請求契約を抽出し、抑止情報ファイルとして出力する。
#
export CHIFM065007_TOKSK_USE_STP_MATCH_DEL
export SAIKEN_WK
# IT1-2021-0000041 MOD START
#export ZTLOUTFILE=${CHIFM065007}
export ZTLOUTFILE=${CHIFM065007_MATCH}
# IT1-2021-0000041 MOD END
#---マッチング処理でLeftjoinがNULL時に"を付けなくする（マッチング使用時は必須）
export ZTLQUOTES=''

${MATCHING} ${DEF_CH_CM_0246}
rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " MATCHING Error(CH_CM_0246.def:rc=$rc) "
    echo $JOBNAME " MATCHING Error(CH_CM_0246.def:rc=$rc) "
    exit ${G_RTN_ERROR}
fi
# ANK-3983-00-00 ADD END

# IT1-2021-0000041 ADD START
bsort -s -z99 -Tflt -t, -1.99asca,0.99asca,2.99asca -o ${CHIFM065007} ${CHIFM065007_MATCH}

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
# IT1-2021-0000041 ADD END

# v52.00 OM-2020-0001613 ADD START
#ワーク削除
if [ $WK_RM = "true" ]
then
    echo "ワークファイル削除"
    rm -f ${KAKGT_JISSEKI_WK}
    rm -f ${CHIFM065005_MATCH}
    rm -f ${CHIFM065005_SORT}
# ANK-3983-00-00 ADD START
    rm -f ${CHIFM065003_WK}
    rm -f ${CHIFM065007_WK}
    rm -f ${CHIFM065007_TOKSK_USE_STP_MATCH}
    rm -f ${CHIFM065007_TOKSK_USE_STP_MATCH_DEL}
# ANK-3983-00-00 ADD END
# IT1-2021-0000041 ADD START
    rm -f ${CHIFM065007_MATCH}
# IT1-2021-0000041 ADD END
fi
# v52.00 OM-2020-0001613 ADD END
#
#--- ジョブの終了メッセージを出力する
#
sh ${G_TOOLSH}/EOK010210J0.sh CS00028I $JOBNAME
sh ${G_TOOLSH}/EOK010210J0.sh CS00026I $JOBNAME

exit ${G_RTN_NORMAL}
