#!/bin/bash
##############################################################
# システム名    ：eo顧客基幹システム
#
# サブシステム名：料金請求
#
# シェル名      ：再計算対象削除
#
# 機能          ：(1)請求契約キャンセル情報ソート
#請求契約キャンセル情報を請求先契約番号の昇順でソートする。
#
#(2)再計算対象削除
#請求契約番号をキーに工事費割賦契約請求実績情報（前日分）ソート済と
#請求契約キャンセル情報ソート済を突合し、一致するデータは当日再計算対象となるので、
#累積から削除する。（再計算対象のデータは、工事費契約向割賦契約情報で連携される）
#
#(3)工事費割賦契約請求実績情報（再計算対象外）ソート
#工事費割賦契約請求実績情報（再計算対象外）を以下のキーでソートする。
#・割賦契約番号（昇順）＞料金計算対象年月（昇順）
#
#
# コマンド形式  ：EO3015225J0.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
# v36.00.00      2018/03/05   FJ)田中      【IT2-2018-0000029】請求キャンセル情報を基に累積ファイルを削除
##############################################################

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

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

#
#--- ファイル定義
#
INPUTFILE=${SEND_DIR}/CHIFI002001.csv
CHIFI002007_TMP=${MID_DIR_AC}/CHIFI002007_TMP_${JOBNAME}.csv
CHIFI002007=${MID_DIR_AC}/CHIFI002007.csv
##############################################################
# 業務処理
##############################################################
sh ${G_TOOLSH}/EOK010210J0.sh CS00025I $JOBNAME
sh ${G_TOOLSH}/EOK010210J0.sh CS00027I $JOBNAME

#---(1)請求契約キャンセル情報ソート
#---ＳＯＲＴ
#---１．「請求契約番号＜キャンセル連携年月日（降順）」をキーにしてソート処理を行う。
bsort -s -z50 -Tflt -t, -0.99asca,1.99ascr -o ${CHIFI002007_TMP} ${INPUTFILE}
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

#---２．請求契約番号単位で重複レコードを除外する。
bsort -su -z50 -Tflt -t, -0.99asca -o ${CHIFI002007} ${CHIFI002007_TMP} 
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

#
#--- ファイル定義
#
#--- マッチング用ファイル定義
DEFFILE=${G_TOOLSH}/util/def/AC_CM_0133.def
TMPDEFFILE=${ULD_WORK_DIR}/AC_CM_0133.tmp.${JOBNAME}.def

#--- 請求契約キャンセル情報ファイル
KK0491_WORK_FILE=${CHIFI002007}
#--- 工事費割賦契約請求実績情報（前日分・ソート済）ファイル
KK3131_WORK_FILE=${MID_DIR_AC}/ACIFM292001_SORT.csv
#--- 請求契約キャンセル情報改行コード変換ファイル
KK0491_WORK_FILE_LF=${MID_DIR_AC}/CHIFI002007_LF.csv
#--- 工事費割賦契約請求実績情報（前日分・ソート済）改行コード変換ファイル
KK3131_WORK_FILE_LF=${MID_DIR_AC}/ACIFM292001_SORT_LF.csv

#--- 工事費割賦契約請求実績情報（再計算対象外）抽出ファイル_WORK
KOJIHI_KAPPU_WORK_FILE=${MID_DIR_AC}/${JOBNAME}_KOJIHI_KAPPU_WORK.csv

#--- 工事費割賦契約請求実績情報（再計算対象外）抽出ファイル
OUTPUTFILE=${MID_DIR_AC}/ACIFM293003.csv

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

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

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

#
#--- ファイルのクリアを行う
#

cat /dev/null > $KOJIHI_KAPPU_WORK_FILE

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

#
#--- マッチング用に改行コードの変換を行う。（CRLF⇒LF）
#
nkf -Lu < ${KK0491_WORK_FILE} > ${KK0491_WORK_FILE_LF}
nkf -Lu < ${KK3131_WORK_FILE} > ${KK3131_WORK_FILE_LF}

mv ${KK0491_WORK_FILE_LF} ${KK0491_WORK_FILE}
mv ${KK3131_WORK_FILE_LF} ${KK3131_WORK_FILE}

#
#--- 定義ファイル環境変数設定処理
#
cat ${DEFFILE} > ${TMPDEFFILE}
sed -i -e s@'${KK0491_WORK_FILE}'@${KK0491_WORK_FILE}@g ${TMPDEFFILE}
sed -i -e s@'${KK3131_WORK_FILE}'@${KK3131_WORK_FILE}@g ${TMPDEFFILE}
#
#--- マッチング処理(工事費割賦契約請求実績情報（再計算対象外）抽出ファイル_WORKを作成する)
#
export ZTLOUTFILE=${KOJIHI_KAPPU_WORK_FILE}
${G_TOOLSH}/util/bin/ZTLMAT01 ${TMPDEFFILE}

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
#
#--- 工事費割賦契約請求実績情報（再計算対象外）抽出＿請求契約番号なしを取得する
#    工事費割賦契約請求実績情報（再計算対象外）抽出の全件 AND 請求契約キャンセル情報ソート済ファイル.請求契約番号 < 0
#    - SELECT(reconst)項目は以下
#        0 - 0.12   ：割賦契約番号
#        1 - 1.6    ：料金計算対象年月
#        2 - 2.10   ：請求金額
#        3 - 3.10   ：請求契約番号
#--- 工事費割賦契約請求実績情報（再計算対象外）抽出ファイル_WORKをソートする。

bsortex \
    -sort key=0.12asc,1.6asc \
    -record recform=txtcsv \
    -input file=${KOJIHI_KAPPU_WORK_FILE} \
        reclen=50 \
        reconst="0.12,1.6,2.10,3.10" \
        include="4.10asc.lt.'0'" \
    -output file=${OUTPUTFILE} linedlmt=crlf 
rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " SORT3 Error($SVC sort:rc=$rc) "
    echo $JOBNAME " SORT3 Error($SVC sort:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

#
#--- 中間ファイルの削除を行う
#
rm -f ${CHIFI002007_TMP}
rm -f ${CHIFI002007}
rm -f ${TMPDEFFILE}
rm -f ${KOJIHI_KAPPU_WORK_FILE}

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

exit ${G_RTN_NORMAL}
