#!/bin/bash
##############################################################
# システム名    ：eo顧客基幹システム
#
# サブシステム名：請求収納
#
# シェル名      ：請求書ハガキ化抑止対象抽出
#
# 機能          ：1. 請求書ハガキ化抑止対象抽出
#
#請求抑止スキーマから請求書ハガキ化抑止(封書で送付対象)の請求契約番号を取得して、請求書ハガキ化抑止対象情報を作成する。
#
# コマンド形式  ：EO60301M6J0.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
# v13.00          2015/02/23  FJ）寺園     ANK-2416-00-00_請求書のハガキ化対応
# v45.00.00       2019/07/16  FJ）王       ANK-3682-00-00_軽減税率対応
# v45.00.00       2019/09/13  FJ) 舘山     IT2-2019-0000030_軽減税の対象がはがき化抑止できない
# v45.00.01       2019/09/26  FJ) 舘山     IT2-2019-0000030_軽減税の対象がはがき化抑止できない
##############################################################

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

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

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

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

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

#
#---OPD
#
OPD=$1
# IT2-2019-0000030 ADD START
##############################################################
# 未設定の場合、運用日取得
if [ "${OPD}" = "" ]; then
   . EOK010310J0.sh "BDATE"
   OPD="${RSLT_OPEDATE}"
fi
##############################################################
# IT2-2019-0000030 ADD END
##############################################################
# 業務処理
##############################################################
sh ${G_TOOLSH}/EOK010210J0.sh CS00025I $JOBNAME

#
#--- ファイル定義
#
SQLFILE=${SQL_DIR}/CH_U_KK0541_05.sql

OUTFILE=${MID_DIR_CH}/CHIFM245.csv
# ANK-3682-00-00 ADD START
##############################################################
# SQLファイル
SQLFILE_CH0501=${SQL_DIR}/CH_U_CH0501_08.sql
SQLFILE_CH0101=${SQL_DIR}/CH_U_CH0101_18.sql

# ワークファイル
SQLFILE_CH0101_WRK=${MID_DIR_CH}/CH_U_CH0101_18_WRK.csv

UNLOAD_CH0501=${MID_DIR_CH}/CHIFM329_CH0501_UL.csv
UNLOAD_CH0101=${MID_DIR_CH}/CHIFM329_CH0101_UL.csv
UNLOAD_KK0541=${MID_DIR_CH}/CHIFM329_KK0541_UL.csv

OUTFILE_TMP=${MID_DIR_CH}/CHIFM329_OUTPUT.csv

TEMPFILE_CH0501=${MID_DIR_CH}/CHIFM329_CH0501_TMP.csv

##############################################################
# ANK-3682-00-00 ADD END

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

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

##############################################################
# ANK-3682-00-00 ADD END

#
#--- ファイルのクリアを行う
#
cat /dev/null > $OUTFILE

rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File cat error($OUTFILE:rc=$rc) "
    echo $JOBNAME " File cat error($OUTFILE:rc=$rc) "
    exit ${G_RTN_ERROR}
fi
# IT2-2019-0000030 ADD START
##############################################################
# 個別アンロードファイルのクリア
cat /dev/null > ${UNLOAD_CH0501}
cat /dev/null > ${UNLOAD_CH0101}
cat /dev/null > ${UNLOAD_KK0541}

# SQLワークファイルのクリア
cat /dev/null > ${SQLFILE_CH0101_WRK}

cat /dev/null > ${OUTFILE_TMP}
cat /dev/null > ${TEMPFILE_CH0501}

##############################################################
# IT2-2019-0000030 ADD START

#
#--- UNLOAD処理
#
# ANK-3682-00-00 MOD START
##############################################################
#sh ${G_TOOLSH}/EOKULD03.sh ${SQLFILE} ${OUTFILE}
sh ${G_TOOLSH}/EOKULD03.sh ${SQLFILE} ${UNLOAD_KK0541}
##############################################################
# ANK-3682-00-00 MOD END
rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " UNLOAD Error($SVC unload:rc=$rc) " 
    echo $JOBNAME " UNLOAD Error($SVC unload:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

# ANK-3682-00-00 ADD START
##############################################################

## １．まず最初に料金スケジュールをアンロードする。
sh ${G_TOOLSH}/EOKULD03.sh ${SQLFILE_CH0501} ${UNLOAD_CH0501}

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

## ２．ファイルから請求年月を取得する。

bsortex -sort key="1.8ascr" -record recform=txtcsv \
        -input file=${UNLOAD_CH0501} reclen=30 include="0.2asc.eq.'04'.and.1.8asc.le.'${OPD}'" \
        -output file=${TEMPFILE_CH0501} case="RECNUM.le.1"

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

#
#--- 請求年月の設定
#
while read LINE;
do
  SEIKYYM=(`echo $LINE | cut -d ',' -f 3 | sed -e "s/[^0-9]//g"`)
done < ${TEMPFILE_CH0501}

echo $SEIKYYM

## ３．請求内訳に対してパラメータを設定する。
#
#--- SQLにパラメータを設定
#
# SQLファイル -> 請求年月追加 -> 運用日追加 -> ワークに出力
cat ${SQLFILE_CH0101} | sed -e s@':SEIKY_YM'@\'${SEIKYYM}\'@g | sed -e s@':OPE_DATE'@\'${OPD}\'@g > ${SQLFILE_CH0101_WRK}

## ４．軽減税率対象の請求内訳をアンロードする
#
#--- UNLOAD処理
#
sh ${G_TOOLSH}/EOKULD03.sh ${SQLFILE_CH0101_WRK} ${UNLOAD_CH0101}

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


## ５．本来の抑止分と軽減税率のアンロードファイルをマージし、重複行を削除する。
#
#---マージ処理
#
# IT2-2019-0000030 MODIFY START
#bsortex \
#   -merge key="0.10asc" \
#   -record recform=txtcsv \
#   -input reclen=13 \
#      file=${UNLOAD_CH0101} \
#      file=${UNLOAD_KK0541} \
#   -output file=${OUTFILE_TMP} 
cat ${UNLOAD_CH0101} ${UNLOAD_KK0541} > ${OUTFILE_TMP}
# IT2-2019-0000030 MODIFY END
rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " sort Error($SVC merge#5:rc=$rc) "
    echo $JOBNAME " sort Error($SVC sort:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

## 重複行を削除する
bsortex \
   -sort key="0.10asc" \
   -record recform=txtcsv \
   -input reclen=13 \
      file=${OUTFILE_TMP} \
   -summary suppress last \
   -output file=${OUTFILE} 

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

# 一時ファイル削除
rm -f ${SQLFILE_CH0101_WRK}
rm -f ${UNLOAD_CH0501}
rm -f ${UNLOAD_CH0101}
rm -f ${UNLOAD_KK0541}
rm -f ${OUTFILE_TMP}
rm -f ${TEMPFILE_CH0501}
##############################################################
# ANK-3682-00-00 ADD END

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

exit $exit_rc
