#!/bin/bash
##############################################################
# システム名    ：eo顧客基幹システム
#
# サブシステム名：請求収納
#
# シェル名      ：取込済請求契約番号情報異動工事遅延分除外
#
# 機能          ：契約異動分（請求契約キャンセル、契約異動による再計算）の工事遅延合算処理を再度行うため工事遅延取込済請求契約番号情報より
#                 請求契約キャンセルされた請求先または、当日工事遅延料金計算された請求先を除外する。
#                （請求契約キャンセルされた請求先は「ソート済請求契約キャンセル情報(累積)の請求契約番号と一致する場合、
#                 当日工事遅延料金計算された請求先は「工事遅延請求契約番号情報(当日分)の請求契約番号と一致する場合とする）
#
# コマンド形式  ：EO6020345J0.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
# v5.00           2013/06/25  FJ)前田     【OM-2013-0002034】工事遅延取込済請求契約番号情報にのみ存在する請求契約番号を抽出
##############################################################

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

#
#---ツール格納場所
#
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
##############################################################
# 業務処理
##############################################################
sh ${G_TOOLSH}/EOK010210J0.sh CS00025I $JOBNAME

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

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

INFILE_1=${MID_DIR_CH}/CHIFM190002.csv
INFILE_2=${MID_DIR_CH}/CHIFM190001.csv
INFILE_3=${MID_DIR_CH}/CHIFI002002.csv
OUTFILE_WRK_1=${MID_DIR_CH}/${JOBNAME}_CHIFM190003_WK_1.csv
OUTFILE_WRK_2=${MID_DIR_CH}/${JOBNAME}_CHIFM190003_WK_2.csv
OUTFILE=${MID_DIR_CH}/CHIFM190003.csv
SQL_DEF=${G_TOOLSH}/util/def/CH_CM_0079.def
DEF_FILE_WK=${G_TOOLSH}/util/def/${JOBNAME}_MATCHING_WK.def
INFILE_2_BK=${MID_DIR_CH}/CHIFM190001_${RSLT_OPEDATE}.csv

#
#---ファイルのクリア
#
cat /dev/null > ${MID_DIR_CH}/CHIFM190003.csv

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

#
#--- 存在チェックを行い、無い場合は空ファイルを作成する
#
if [ ! -r ${INFILE_1} ]
then
    touch ${INFILE_1}
        rc=$?
        if [ $rc -ne 0 ]
        then
            sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " TOUCH Error($SVC touch:rc=$rc) "
            echo $JOBNAME " TOUCH Error($SVC touch:rc=$rc) "
            exit ${G_RTN_ERROR}
        fi
fi

if [ ! -r ${INFILE_2} ]
then
    touch ${INFILE_2}
        rc=$?
        if [ $rc -ne 0 ]
        then
            sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " TOUCH Error($SVC touch:rc=$rc) "
            echo $JOBNAME " TOUCH Error($SVC touch:rc=$rc) "
            exit ${G_RTN_ERROR}
        fi
fi

#
#---マージ
#

bsortex \
    -record recform=txtcsv \
    -input reclen=30 file=${INFILE_2},${INFILE_3} \
    -sort key="0.10asca" \
    -output linedlmt=lf \
            reconst="0.10" \
|bsortex \
    -record recform=txtcsv \
    -input reclen=20 \
    -output file=${OUTFILE_WRK_1} \
    -merge key="0.10asc" \
    -summary suppress first \

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

#
#- 工事遅延取込済請求契約番号情報と契約異動分をマッチングする。
#- マッチング用のdefファイルのファイル名変数を実ファイル名に置き換える。
#
cp ${SQL_DEF} ${DEF_FILE_WK}

sed -i -e "s%:KOJI_CHIEN%${INFILE_1}%"            ${DEF_FILE_WK} 
sed -i -e "s%:KEI_IDO%${OUTFILE_WRK_1}%"          ${DEF_FILE_WK} 

#
#- マッチング
#
ZTLOUTFILE=${OUTFILE_WRK_2}
export ZTLOUTFILE
wait
${G_TOOLSH}/util/bin/ZTLMAT01 ${DEF_FILE_WK}

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

#--- ファイル分割
#- 当月の請求があるものとないものにファイル分割を行う。
bsortex \
    -sort key=0.10asca -record recform=txtcsv \
    -input reclen=100 file=${OUTFILE_WRK_2} \
    -output file=${OUTFILE}  case="1.1asc.lt.'0'" \
            reconst='0.10'

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

#--- ワークファイル削除
if [ ${WK_RM} = "true" ]
then
    rm -f ${OUTFILE_WRK_1}
    rm -f ${OUTFILE_WRK_2}
    rm -f ${DEF_FILE_WK}
fi

#--- ファイル退避
mv ${INFILE_2} ${INFILE_2_BK}

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

exit ${G_RTN_NORMAL}
