#!/bin/bash
########################################################################
#
# システム名    ：eo顧客基幹システム
#
# サブシステム名：共通制御
#
# シェル名      ： 権利付与地域課金情報作成
#
# 機能          ：ｅｏ権利付与地域対象契約情報とeo電気再送信付与地域契約請求情報をマージし、
#                 「請求書発行手数料課金判定」へ連携する請求先の情報を作成する。
#                 また、重複する請求契約番号はマージ（削除）する。
#
# コマンド形式  ：EO6260210J0.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更№
# v54.00.00       2021/07/20  FJ)鈴木      【ANK-3992-00-00】eo電気の権利付与地域における請求書発行および窓口払い手数料判定の見直し
# v54.01.00       2021/08/30  FJ)鈴木      【ANK-4102-00-00】窓口払い手数料の顧客負担方式導入　STEP3
# v56.00.00       2021/11/01  FJ)吉田      【ANK-4131-00-00】窓口払い手数料の顧客負担方式導入　STEP4
########################################################################

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

##############################################################
#
#--- 共通サブルーチン
#
##############################################################
#--- SED
##############################################################
SED(){
    sed -i -e $1 $2
    rc=$?
    if [ $rc -ne 0 ]
    then
          sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " sed error($1 $2:rc=$rc) "
          echo $JOBNAME " sed error($1 $2:rc=$rc) "
          exit ${G_RTN_ERROR}
    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
}

#
#--- bsortexコマンド実行時のエラー処理
#      p1：bsortexコマンドの終了コード
#      p2：bsortexコマンドの入力ファイル
#
BSORT_ERROR()
{
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " BSORTEX error(input file=$2:rc=$1) "
    echo $JOBNAME " BSORTEX error(input file=$2:rc=$1) "
    exit ${G_RTN_ERROR}
}

#入力ファイル
# ｅｏ権利付与地域対象契約情報 EO3490150J0.sh
ACIFM334002_FILE=${MID_DIR_AC}/ACIFM334002.csv

# ｅｏ電気再送信付与地域契約請求情報 EO6260200J0.sh
ACIFM334003_FILE=${MID_DIR_AC}/ACIFM334003.csv

# ANK-4131-00-00 MOD START
# ANK-4102-00-00 ADD START
# 契約中なし請求企業負担対象情報 
#ACIFM334012_FILE=${MID_DIR_AC}/ACIFM334012.csv
ACIFM334012_FILE=${MID_DIR_AC}/ACIFM334017.csv
# ANK-4102-00-00 ADD END
# ANK-4131-00-00 MOD END

#出力ファイル
# 権利付与地域課金情報
OUT_FILE=${MID_DIR_AC}/ACIFM334006.csv

# マージファイル
MARGE_FILE=${MID_DIR_AC}/ACIFM334006_MARGE.csv

#マージファイル 桁数
MARGE_FILE_REC_LEN=60

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


#
# --- 1.ファイルマージ
#
# ANK-4102-00-00 MOD START
#cat ${ACIFM334002_FILE} ${ACIFM334003_FILE} > ${MARGE_FILE}
cat ${ACIFM334002_FILE} ${ACIFM334003_FILE} ${ACIFM334012_FILE} > ${MARGE_FILE}
# ANK-4102-00-00 MOD END


#
# --- 2.ファイル出力
#
# 権利付与地域課金情報：ACIFM334006.csv 
# ※ 重複行はマージする。
# 
	
	
bsortex \
	-sort key="0.10asc" \
	-input reclen=${MARGE_FILE_REC_LEN} file=${MARGE_FILE} \
	-record recform=txtcsv \
	-output reconst=0.10 \
| bsortex \
	-merge key="0.10asc" \
	-input reclen=${MARGE_FILE_REC_LEN} \
	-record recform=txtcsv \
	-summary suppress first \
	-output file=${OUT_FILE} 
	


# 一時ファイル削除

rm -f ${MARGE_FILE}
rm -f ${ACIFM334002_FILE}
rm -f ${ACIFM334003_FILE}

# ANK-4102-00-00 ADD START
rm -f ${ACIFM334012_FILE}
# ANK-4102-00-00 ADD END

#

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

exit ${G_RTN_NORMAL}
