#!/bin/bash
########################################################################
#
# システム名    ：eo顧客基幹システム
#
# サブシステム名：請求収納
#
# シェル名      ：課金終了日情報付与（随時請求分）
#
# 機能          ：課金終了日情報付与（随時請求分）
#
#
# コマンド形式  ：EO617013UJ0.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更№
# v55.00.00       2021/08/17  FJ）杉本     ANK-3839-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"
   OPD=${RSLT_OPEDATE}
fi

#
#--- ファイル定義
#
CHIFM139002=${MID_DIR_CH}/CHIFM139002.csv
CHIFM404001=${MID_DIR_CH}/CHIFM404001.csv
CHIFM139002_EXIST=${LOC_DIR_CH}/CHIFM139002_EXIST.csv
CHIFM139002_TGT=${LOC_DIR_CH}/CHIFM139002_TGT.csv
DEFFILE=${G_TOOLSH}/util/def/CH_CM_0258.def
CHIFM139002_MATCH=${LOC_DIR_CH}/CHIFM139002_MATCH.csv
CHIFM139002_MERGE=${LOC_DIR_CH}/CHIFM139002_MERGE.csv

#
#--- ファイルの存在チェックを行う
#    $CHIFM404001 がない場合はログ出力して正常終了する。
#
if [ ! -r $CHIFM404001 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00031I $JOBNAME " $CHIFM404001 は存在しませんでした。"
    echo $JOBNAME " $CHIFM404001 は存在しませんでした。 "

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

    exit ${G_RTN_NORMAL}
fi

#
#--- 中間ワークファイルのクリアを行う
#
cat /dev/null > $CHIFM139002_EXIST
cat /dev/null > $CHIFM139002_TGT
cat /dev/null > $CHIFM139002_MATCH

#
#--- ファイル分割
#
bsortex -sort key=0.10asc,1.3asc,2.2asc,3.8asc -record recform=txtcsv \
  -input file=${CHIFM139002} reclen=35 \
  -output file=${CHIFM139002_EXIST} case="3.8asc.gt.' '.or.1.3asc.ne.'910'.or.2.2asc.ne.'03'" \
  -output file=${CHIFM139002_TGT} case=other

#
#--- マッチング処理準備
#
TMPDEFFILE=${ULD_WORK_DIR}/CH_CM_0258.tmp.def
export ZTLTMPDIR=${ULD_WORK_DIR}
export ZTLOUTFILE=${CHIFM139002_MATCH}
export ZTLQUOTES=''

#
#--- マッチング用にCHIFM139002_TGT,CHIFM404001をLFに変換
#
sed -i 's/\r//g' ${CHIFM139002_TGT}
sed -i 's/\r//g' ${CHIFM404001}

#
#--- 定義ファイル環境変数設定処理
#
cat ${DEFFILE}>${TMPDEFFILE}
sed -i -e s@'${CHIFM139002_TGT}'@${CHIFM139002_TGT}@g ${TMPDEFFILE}
sed -i -e s@'${CHIFM404001}'@${CHIFM404001}@g ${TMPDEFFILE}

${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

#
#--- マッチング後、CHIFM139002_MATCHをCR+LFに変換する
#
sed -i 's/$/\r/g' ${CHIFM139002_MATCH}

#
#--- ファイルマージ
#
cat $CHIFM139002_EXIST $CHIFM139002_MATCH > $CHIFM139002_MERGE

#
#--- マージ後ファイルのソート(請求契約番号、サービス課金終了年月日)
#
bsortex -sort key=0.10asc,3.8asc -record recform=txtcsv \
  -input file=${CHIFM139002_MERGE} reclen=35 \
  -output file=${CHIFM139002}

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

#
#--- 不要ファイルの削除
#
rm ${TMPDEFFILE}
rm ${CHIFM404001}
rm ${CHIFM139002_EXIST}
rm ${CHIFM139002_TGT}
rm ${CHIFM139002_MATCH}
rm ${CHIFM139002_MERGE}

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

exit ${G_RTN_NORMAL}
