#!/bin/bash
########################################################################
#
# システム名    ：eo顧客基幹システム
#
# サブシステム名：共通制御
#
# シェル名      ： 負担方式判定済除外
#
# 機能          ： 「当月請求」と「負担方式判定済請求」を突合し、「当月請求」のみに存在する
#                  請求契約番号を「負担方式未確定請求情報」に出力する。
#
# コマンド形式  ：EO6260240J0.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更№
# v54.00.00       2021/09/03  FJ)西窪     【ANK-4102-00-00】窓口払い手数料の顧客負担方式導入　STEP3
########################################################################

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

##############################################################
#
#--- 共通サブルーチン
#
##############################################################
#
#--- マッチング処理
#      p1：出力ファイルパス
#      p2：マッチングクエリファイルパス
EXEC_MATCHING()
{
    local _OUTFILE=$1
    local _MATCHING_FILE=$2

    # マッチングクエリファイルの存在チェック
    if [ ! -r ${_MATCHING_FILE} ]
    then
        sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist(${_MATCHING_FILE}) "
        echo $JOBNAME " File is nonexist(${_MATCHING_FILE}) "
        exit ${G_RTN_ERROR}
    fi

    # 出力ファイルの初期化
    cat /dev/null > ${_OUTFILE}

    # マッチング実行
    export ZTLOUTFILE=${_OUTFILE}
    ${G_TOOLSH}/util/bin/ZTLMAT01 ${_MATCHING_FILE}
    rc=$?
    if [ $rc -ne 0 ]
    then
        sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " matching error($2:rc=$rc) "
        echo $JOBNAME " matching error($2:rc=$rc) "
        exit ${G_RTN_ERROR}
    fi
}


####################################################
#--------- ファイル定義 ---------#
####################################################

#-- 入力ファイル
TOGETSU_SEIKY_FILE=${MID_DIR_CH}/CHIFM181003.csv

# 当月請求_ソート済ファイル
INFILE1=${LOC_DIR_AC}/ACIFM334009_WK.csv
# 負担方式判定済請求ファイル
INFILE2=${MID_DIR_AC}/ACIFM334010.csv


#-- 出力ファイル
OUTFILE_SEIKY=${MID_DIR_AC}/ACIFM334011.csv
OUTFILE_SEIKY_WK1=${LOC_DIR_AC}/ACIFM334011_WK1.csv

# マッチングツール定義ファイル
MATCHDEFFILE1=${G_TOOLSH}/util/def/AC_CM_0189.def


##############################################################
# 業務処理
##############################################################
sh ${G_TOOLSH}/EOK010210J0.sh CS00025I $JOBNAME


#--「請求種別コードが'0'」かつ「請求ステータスが'020'」を抽出
bsortex -copy -record recform=txtcsv \
        -input  reclen=3000 file=${TOGETSU_SEIKY_FILE} \
        include="1.3asc.eq.'020'.and.4.1asc.eq.'0'" \
        -output reconst="2.10" file=${OUTFILE_SEIKY_WK1} 
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

#--請求契約番号の昇順でソート
bsortex \
	-sort key="0.10asc" \
	-input reclen=100 file=${OUTFILE_SEIKY_WK1} \
	-record recform=txtcsv \
	-output file=${INFILE1} 

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



# --- マッチング 請求契約番号でマッチングを行い、「当月請求_ソート済」のみに存在する請求契約番号を出力
#

export INFILE1
export INFILE2
export ZTLQUOTES=''
EXEC_MATCHING ${OUTFILE_SEIKY} ${MATCHDEFFILE1}

# 一時ファイル削除
rm -f ${INFILE1}
rm -f ${OUTFILE_SEIKY_WK1}

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

exit ${G_RTN_NORMAL}
