#!/bin/bash
##############################################################
# システム名    ：eo顧客基幹システム
#
# サブシステム名：料金管理
#
# シェル名      ：請求書発行手数料課金判定前分割
#
# 機能          ：請求書発行手数料課金判定対象情報をもとに請求書発行手数料の課金判定を行う。
#判定による除外処理が完了し、請求対象となった手数料について定額料金マスタより
#当該サービスの金額情報を取得する。また、料金項目抽出変換マスタを使用し、
#前月請求年月の月名付き（○月分）の料金項目にコード変換を行う。
#
# コマンド形式  ：EO3010435J0.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
# v5.00          2013/11/21   FJ)黒木     【ST4-2013-0000579】性能障害対応
# v15.00.00      2015/07/03   FJ)有本     【OM-2015-0001816】共通UNLOAD対応
# v15.00.01      2015/07/09   FJ)中村     【OM-2015-0001816】共通UNLOAD対応(エラーチェック追加)
# v15.00.02      2015/08/18   FJ)大山     【OM-2015-0001848】性能障害対応
# v19.00.00      2015/10/09   FJ)福山     【OM-2015-0002578】性能改善：アンロード共通ファイル縮小対応
# v20.00.00      2015/11/18   FJ)有本     【OM-2015-0003006】性能改善対応：不要なソート削除
# v23.00.00      2016/03/17   FJ)岡田     【OM-2016-0000141】性能改善対応：要件８
# v38.00.00      2018/09/10   FJ)麻生     【ANK-3361-00-00】振込用紙発行手数料の変更
# v38.00.01      2018/09/19   FJ)麻生     【IT2-2018-0000072】ネットと電話を持つ請求先が課金されない
# v45.00.00      2019/07/19   FJ)大崎     【ANK-3607-00-00】料金収納手数料課金抑止の残課題対応について
##############################################################
#---ワークファイル削除モード
WK_RM=true
##############################################################
# 環境変数定義
##############################################################

#
#---ツール格納場所
#
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
OPEDATE=${RSLT_OPEDATE}
#- 請求年月取得（請求処理日基準）
EVENT_CD="04"
. EO3SEIKYYM.sh ${EVENT_CD} ${RSLT_OPEDATE} ${JOBNAME}
TOGETSU=${SEIKY_YM}

#
#---業務で必要な変数定義
#
#xxx=xxxxxxx
##############################################################
# 業務処理
##############################################################
sh ${G_TOOLSH}/EOK010210J0.sh CS00025I $JOBNAME

##############################################################
# 共通
##############################################################
#-入力ファイル
INPFILE=${MID_DIR_AC}/ACIFI016039.csv
INPFILE_WK=${MID_DIR_AC}/ACIFI016039_WK.csv
OUTFILE=${MID_DIR_AC}/ACIFM230001.csv
OUTFILE_PF=${MID_DIR_AC}/ACIFM230001
#---マッチング定義
#-全体を絞り込むマッチング
DEF_DIR=${G_TOOLSH}/util/def
DEF_CM0045=${DEF_DIR}/AC_CM_0045.def
CSV_CM0045_MATCHING=${MID_DIR_AC}/${JOBNAME}_CM0045_MATCHING_WK_1.csv

# OM-2015-0001848 性能対応 2015/08/18 大山 MOD START
#CSV_CM0045_BSORT=${MID_DIR_AC}/${JOBNAME}_CM0045_BSORT_WK_1.csv

CSV_CM0045_BSORT=${MID_DIR_AC}/ACIFM274002.csv

# OM-2015-0001848 性能対応 2015/08/18 大山 MOD END

#-LEFT JOINのマッチング
DEF_CM0046=${DEF_DIR}/AC_CM_0046.def
CSV_CM0046_MATCHING=${MID_DIR_AC}/${JOBNAME}_CM0046_MATCHING_WK_1.csv

# OM-2015-0001816 共通UNLOAD対応 2015/07/03 有本 ADD START
#共通UNLOADファイル
#課金先(全件)
COMULD2_KK0321_ALL=${MID_DIR_CC}/CCIFM024001.csv
# OM-2015-0001816 共通UNLOAD対応 2015/07/03 有本 ADD END

##############################################################
# 請求契約
##############################################################
SQL_KK0491_03=${SQL_DIR}/AC_U_KK0491_03.sql
SQL_KK0491_03_WK=${SQL_DIR}/${JOBNAME}_AC_U_KK0491_03_WK_1.sql
CSV_KK0491_03=${MID_DIR_AC}/${JOBNAME}_AC_U_KK0491_03_UNLOAD_WK_1.csv

##############################################################
# 課金先
##############################################################
# OM-2015-0001816 共通UNLOAD対応 2015/07/03 有本 DEL START
#SQL_KK0321_05=${SQL_DIR}/AC_U_KK0321_05.sql
#SQL_KK0321_05_WK=${SQL_DIR}/${JOBNAME}_AC_U_KK0321_05_WK_1.sql
# OM-2015-0001816 共通UNLOAD対応 2015/07/03 有本 DEL START
CSV_KK0321_05=${MID_DIR_AC}/${JOBNAME}_AC_U_KK0321_05_UNLOAD_WK_1.csv
SQL_KK0321_PRC=${SQL_DIR}/AC_U_KK0321_07.sql
SQL_KK0321_PRC_WK=${SQL_DIR}/${JOBNAME}_AC_U_KK0321_07_WK_1.sql
CSV_KK0321_PRC=${MID_DIR_AC}/${JOBNAME}_AC_U_KK0321_07_UNLOAD_1.csv

# OM-2015-0001848 性能対応 2015/08/18 大山 MOD START
#CSV_KK0321_PRC_WK=${MID_DIR_AC}/${JOBNAME}_AC_U_KK0321_07_UNLOAD_1_WK.csv
CSV_KK0321_PRC_WK=${MID_DIR_AC}/ACIFM274001.csv

# OM-2015-0001848 性能対応 2015/08/18 大山 DEL END

##############################################################
# オプションサービス契約
##############################################################
SQL_KK0351_04=${SQL_DIR}/AC_U_KK0351_04.sql
SQL_KK0351_04_WK=${SQL_DIR}/${JOBNAME}_AC_U_KK0351_04_WK_1.sql
CSV_KK0351_04=${MID_DIR_AC}/${JOBNAME}_AC_U_KK0351_04_UNLOAD_WK_1.csv

#--- 料金項目抽出変換取得用変数
WORK_PARAM_ID='AC_WKS_TW_DTL_SH_SV'
SYS_CD='AC'
CHSHT_CHG_CD='1'

##############################################################
# サービス契約内訳
##############################################################
SQL_KK0161_04=${SQL_DIR}/AC_U_KK0161_04.sql
SQL_KK0161_04_WK=${SQL_DIR}/${JOBNAME}_AC_U_KK0161_04_WK_1.sql
CSV_KK0161_04=${MID_DIR_AC}/${JOBNAME}_AC_U_KK0161_04_UNLOAD_WK_1.csv


##############################################################
# 年月日関係
##############################################################
#--- イベントコード（利用開始日）
EVENT_CD_USE_STAYMD="01"
#--- イベントコード（利用終了日）
EVENT_CD_USE_ENDYMD="02"
#--- イベントコード（料金計算日）
EVENT_CD_PRC="03"
# 年月計算
SEIKY_YM_CALC=${SQL_DIR}/AC_U_DUAL_01.sql
ZENGETSU_SEIKY_YM_WK=${SQL_DIR}/${JOBNAME}_AC_U_DUAL_01_ZEN_WK.sql
#スケジュール定義から郡月初日、群月末日の取得
CH_M_PRC_SCHDL_TEIGI_ULD=${SQL_DIR}/AC_U_CH0501_02.sql
CH_M_PRC_SCHDL_TEIGI_ULD_WK=${SQL_DIR}/${JOBNAME}_AC_U_CH0501_02_WK.sql
#スケジュール定義から料金計算日の取得
CH_M_PRC_SCHDL_TEIGI_PRC=${SQL_DIR}/AC_U_CH0501_01.sql
CH_M_PRC_SCHDL_TEIGI_PRC_WK=${SQL_DIR}/${JOBNAME}_AC_U_CH0501_01_WK.sql
ZENGETSU_SEIKY_YM_FILE=${MID_DIR_AC}/${JOBNAME}_ZENGETSU_SEIKY_YM_FILE.csv
CH_M_PRC_SCHDL_TEIGI_FILE=${MID_DIR_AC}/${JOBNAME}_CH_M_PRC_SCHDL_TEIGI_FILE.csv
CH_M_PRC_SCHDL_TEIGI_PRC_FILE=${MID_DIR_AC}/${JOBNAME}_CH_M_PRC_SCHDL_TEIGI_PRC_FILE.csv
ZENGETSU_YM=
GUN_STRDAY=
GUN_ENDDAY=
PRCDAY=
# －１ヶ月
NUM_M1="'-1'"

##############################################################
#
#--- 共通サブルーチン
#
##############################################################
##############################################################
#--- UNLOAD
##############################################################
UNLOAD(){
    sh ${G_TOOLSH}/EOKULD03.sh $1 $2
    rc=$?
    if [ $rc -ne 0 ]
    then
          sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " unload error($1:rc=$rc) "
          echo $JOBNAME " unload error($1:rc=$rc) "
          exit ${G_RTN_ERROR}
    fi
}
##############################################################
#--- MATCHING
##############################################################
MATCHING(){
    export ZTLOUTFILE=$2
    ${G_TOOLSH}/util/bin/ZTLMAT01 $1
    rc=$?
    if [ $rc -ne 0 ]
    then
          sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " matching error(matching:$1=$rc) "
          echo $JOBNAME " matching error(matching:$1=$rc) "
          exit ${G_RTN_ERROR}
    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
}
##############################################################
#--- WAIT
##############################################################
WAIT(){
    wait $1
    rc=$?
    if [ $rc -ne 0 ]
    then
          sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " BackgroundJob error($2:rc=$rc) "
          echo $JOBNAME " BackgroundJob error($2:rc=$rc) "
          exit ${G_RTN_ERROR}
    fi
}
##############################################################
#
#--- 業務固有サブルーチン
#
##############################################################
##############################################################
#--- 年月日関係取得
##############################################################
CALENDER_INIT(){

    # アンロード用（－１ヶ月）
    cp -f ${SEIKY_YM_CALC} ${ZENGETSU_SEIKY_YM_WK}
    SED "s/:SEIKY_YM/${SEIKY_YM}/"   ${ZENGETSU_SEIKY_YM_WK}
    SED "s/:NUM/${NUM_M1}/"          ${ZENGETSU_SEIKY_YM_WK}

    # 請求年月計算（請求処理日基準請求年月－１か月）
    UNLOAD ${ZENGETSU_SEIKY_YM_WK} ${ZENGETSU_SEIKY_YM_FILE}
    # 前月請求年月を取得
    ZENGETSU_YM=`head -n1 ${ZENGETSU_SEIKY_YM_FILE}`

    # アンロード用（請求前月の月初月末取得）
    cp -f ${CH_M_PRC_SCHDL_TEIGI_ULD} ${CH_M_PRC_SCHDL_TEIGI_ULD_WK}
    SED "s/:SEIKY_YM/'${ZENGETSU_YM}'/g"             ${CH_M_PRC_SCHDL_TEIGI_ULD_WK}
    SED "s/:EVENT_CD1/'${EVENT_CD_USE_STAYMD}'/g"    ${CH_M_PRC_SCHDL_TEIGI_ULD_WK}
    SED "s/:EVENT_CD2/'${EVENT_CD_USE_ENDYMD}'/g"    ${CH_M_PRC_SCHDL_TEIGI_ULD_WK}

    UNLOAD ${CH_M_PRC_SCHDL_TEIGI_ULD_WK} ${CH_M_PRC_SCHDL_TEIGI_FILE}

    # 月初月末日を取得
    GUN_STRDAY=`head -n1 ${CH_M_PRC_SCHDL_TEIGI_FILE}`
    GUN_ENDDAY=`tail -n1 ${CH_M_PRC_SCHDL_TEIGI_FILE}`

    # アンロード用（請求前月の料金計算日取得）
    cp -f ${CH_M_PRC_SCHDL_TEIGI_PRC} ${CH_M_PRC_SCHDL_TEIGI_PRC_WK}
    SED "s/:SEIKY_YM/'${ZENGETSU_YM}'/g"     ${CH_M_PRC_SCHDL_TEIGI_PRC_WK}
    SED "s/:EVENT_CD/'${EVENT_CD_PRC}'/g"    ${CH_M_PRC_SCHDL_TEIGI_PRC_WK}

    UNLOAD ${CH_M_PRC_SCHDL_TEIGI_PRC_WK} ${CH_M_PRC_SCHDL_TEIGI_PRC_FILE}

    # 料金計算日を取得
    PRCDAY=`head -n1 ${CH_M_PRC_SCHDL_TEIGI_PRC_FILE}`
}
##############################################################
#--- 請求契約アンロード
##############################################################
SEIKY_KEI_UNLOAD(){
    #SQLパラメータ置き換え
    cp -f ${SQL_KK0491_03} ${SQL_KK0491_03_WK}
    SED "s/:OPEDATE/'${OPEDATE}'/g" ${SQL_KK0491_03_WK}
    UNLOAD ${SQL_KK0491_03_WK} ${CSV_KK0491_03}
}
##############################################################
#--- 課金先アンロード
##############################################################
KAKINS_UNLOAD(){
    #SQLパラメータ置き換え
# OM-2015-0001816 共通UNLOAD対応 2015/07/03 有本 DEL START
#    cp -f ${SQL_KK0321_05} ${SQL_KK0321_05_WK}
#    SED "s/:OPEDATE/'${OPEDATE}'/g" ${SQL_KK0321_05_WK}
# OM-2015-0001816 共通UNLOAD対応 2015/07/03 有本 DEL END
# OM-2015-0001816 共通UNLOAD対応 2015/07/03 有本 MOD START
#    UNLOAD ${SQL_KK0321_05_WK} ${CSV_KK0321_05}
# OM-2015-0002578 2015/10/09 福山 MOD START
#  bsortex \
#    -copy -record recform=txtcsv \
#    -input file=${COMULD2_KK0321_ALL} \
#       reclen=${ULD_REC_LEN_KK0321} \
#       reconst="1.10,5.12,2.10" \
#       include="11.8asc.le.'${OPEDATE}',12.8asc.ge.'${OPEDATE}'" \
#  | sed 's/\"//g' > ${CSV_KK0321_05}
  bsortex \
    -copy -record recform=txtcsv \
    -input file=${COMULD2_KK0321_ALL} \
       reclen=${ULD2_REC_LEN_KK0321} \
       reconst="0.10,4.12,1.10" \
       include="8.8asc.le.'${OPEDATE}',9.8asc.ge.'${OPEDATE}'" \
  | sed 's/\"//g' > ${CSV_KK0321_05}
# OM-2015-0002578 2015/10/09 福山 MOD END
# OM-2015-0001816 共通UNLOAD対応 2015/07/03 有本 MOD END
# OM-2015-0001816 共通UNLOAD対応 2015/07/09 中村 ADD START
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
# OM-2015-0001816 共通UNLOAD対応 2015/07/09 中村 ADD END
    
    cp -f ${SQL_KK0321_PRC} ${SQL_KK0321_PRC_WK}
    SED "s/:OPEDATE/'${PRCDAY}'/g" ${SQL_KK0321_PRC_WK}
    UNLOAD ${SQL_KK0321_PRC_WK} ${CSV_KK0321_PRC}
    
    KK_T_KAKINS_PRC_SORT
}
##############################################################
#--- オプションサービス契約アンロード
##############################################################
OP_SVC_KEI_UNLOAD(){
    #SQLパラメータ置き換え
    cp -f ${SQL_KK0351_04} ${SQL_KK0351_04_WK}
    SED "s/:WORK_PARAM_ID/'${WORK_PARAM_ID}'/g" ${SQL_KK0351_04_WK}
    SED "s/:SYS_CD/'${SYS_CD}'/g"               ${SQL_KK0351_04_WK}
    SED "s/:CHSHT_CHG_CD/'${CHSHT_CHG_CD}'/g"   ${SQL_KK0351_04_WK}
    SED "s/:OPEDATE/'${OPEDATE}'/g"             ${SQL_KK0351_04_WK}
    SED "s/:PREYMD/'${GUN_ENDDAY}'/g"           ${SQL_KK0351_04_WK}
    UNLOAD ${SQL_KK0351_04_WK} ${CSV_KK0351_04}
}
##############################################################
#--- サービス契約内訳アンロード
##############################################################
SVC_KEI_UCWK_UNLOAD(){
    #SQLパラメータ置き換え
    cp -f ${SQL_KK0161_04} ${SQL_KK0161_04_WK}
    SED "s/:PREYMD/'${GUN_ENDDAY}'/g" ${SQL_KK0161_04_WK}
    UNLOAD ${SQL_KK0161_04_WK} ${CSV_KK0161_04}
}
##############################################################
#--- サブルーチン（課金先（料金計算日時点）
##############################################################
KK_T_KAKINS_PRC_SORT()
{
# 請求契約番号、判定フラグ(降順)、サービス課金開始日(降順)、請求契約番号(料金計算日時点)でソート後、
# 請求契約番号をキーとして集約し、各1件目のデータのみ出力する
bsortex \
	-sort key="0.10asc,4.1ascr,3.8ascr,2.17asc" \
	-input reclen=60 file=${CSV_KK0321_PRC} \
	-record recform=txtcsv \
| bsortex \
	-merge key="0.10asc" \
	-input reclen=60 \
	-record recform=txtcsv \
	-summary suppress first \
	-output file=${CSV_KK0321_PRC_WK}
# OM-2015-0001816 共通UNLOAD対応 2015/07/09 中村 ADD START
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
# OM-2015-0001816 共通UNLOAD対応 2015/07/09 中村 ADD END
}
##############################################################
#
#--- MAIN
#
##############################################################

# OM-2015-0001848 性能対応 2015/08/18 大山 DEL START

#--- 年月日関係取得
#CALENDER_INIT


#--- 請求契約アンロード
# OM-2015-0001816 共通UNLOAD対応 2015/07/03 有本 MOD START
#SEIKY_KEI_UNLOAD &
#pidSEIKY_KEI_UNLOAD=$!
#SEIKY_KEI_UNLOAD
# OM-2015-0001816 共通UNLOAD対応 2015/07/03 有本 MOD END

#--- 課金先アンロード
# OM-2015-0001816 共通UNLOAD対応 2015/07/03 有本 MOD START
#KAKINS_UNLOAD &
#pidKAKINS_UNLOAD=$!
#KAKINS_UNLOAD
# OM-2015-0001816 共通UNLOAD対応 2015/07/03 有本 MOD END

#--- オプションサービス契約アンロード
# OM-2015-0001816 共通UNLOAD対応 2015/07/03 有本 MOD START
#OP_SVC_KEI_UNLOAD &
#pidOP_SVC_KEI_UNLOAD=$!
#OP_SVC_KEI_UNLOAD
# OM-2015-0001816 共通UNLOAD対応 2015/07/03 有本 MOD END

#--- サービス契約内訳アンロード
# OM-2015-0001816 共通UNLOAD対応 2015/07/03 有本 MOD START
#SVC_KEI_UCWK_UNLOAD &
#pidSVC_KEI_UCWK_UNLOAD=$!
#SVC_KEI_UCWK_UNLOAD
# OM-2015-0001816 共通UNLOAD対応 2015/07/03 有本 MOD END

# OM-2015-0001816 共通UNLOAD対応 2015/07/03 有本 DEL START
#WAIT ${pidSEIKY_KEI_UNLOAD}       "SEIKY_KEI_UNLOAD"
#WAIT ${pidKAKINS_UNLOAD}          "KAKINS_UNLOAD"
#WAIT ${pidOP_SVC_KEI_UNLOAD}      "OP_SVC_KEI_UNLOAD"
#WAIT ${pidSVC_KEI_UCWK_UNLOAD}    "SVC_KEI_UCWK_UNLOAD"
# OM-2015-0001816 共通UNLOAD対応 2015/07/03 有本 DEL END

#---絞込みマッチング
#export KK_T_OP_SVC_KEI=${CSV_KK0351_04}
#export KK_T_KAKINS=${CSV_KK0321_05}
#export KK_T_SEIKY_KEI=${CSV_KK0491_03}
#export KK_T_SVC_KEI_UCWK=${CSV_KK0161_04}
#MATCHING ${DEF_CM0045} ${CSV_CM0045_MATCHING}

#---通話明細送付サービスの契約状態絞込み
#bsortex \
#  -copy \
#  -input  reclen=50 \
#          file=${CSV_CM0045_MATCHING} \
#          include="2.3asc.eq.'100'.or.2.3asc.eq.'210'.or.2.3asc.eq.'220'" \
#          include="2.3asc.eq.'910'.and.3.3asc.eq.'910'.and.1.6asc.eq.'${ZENGETSU_YM}'" \
#  -record recform=txtcsv \
#  -output file=${CSV_CM0045_BSORT} ;
#rc=$?
#if [ $rc -ne 0 ]
#then
#      sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " Sort error(sort:rc=$rc) "
#      echo $JOBNAME " Sort error(sort:rc=$rc) "
#      exit ${G_RTN_ERROR}
#fi
# OM-2015-0001848 性能対応 2015/08/18 大山 DEL END

#---色分けマッチング
tr -d "\r" < ${INPFILE} > ${INPFILE_WK}
export ZTLQUOTES=''
export ACIFI016039=${INPFILE_WK}
export KK_T_KAKINS_PRC=${CSV_KK0321_PRC_WK}
export MEISAISOFU=${CSV_CM0045_BSORT}
MATCHING ${DEF_CM0046} ${CSV_CM0046_MATCHING}

#---通話明細送付サービスレコードを除外する
# OM-2015-0003006 性能改善対応 2015/11/18 有本 MOD START
#bsortex \
#  -sort key="1.10asc,2.6asc" \
#  -input  reclen=300 \
#          file=${CSV_CM0046_MATCHING} \
#          include="0.10asc.lt.'0'" \
#  -record recform=txtcsv \
#  -output file=${OUTFILE} \
#          reconst="1.END" ;
# ANK-3361-00-00 MOD START
#bsortex \
#  -copy \
#  -input  reclen=300 \
#          file=${CSV_CM0046_MATCHING} \
#          include="0.10asc.lt.'0'" \
#  -record recform=txtcsv \
#  -output file=${OUTFILE} \
#          reconst="1.END" ;
bsortex \
  -copy \
  -input  reclen=300 \
          file=${CSV_CM0046_MATCHING} \
  -record recform=txtcsv \
  -output file=${OUTFILE} ;
# ANK-3361-00-00 MOD END
# OM-2015-0003006 性能改善対応 2015/11/18 有本 MOD END
rc=$?
if [ $rc -ne 0 ]
then
      sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " Sort error(sort:rc=$rc) "
      echo $JOBNAME " Sort error(sort:rc=$rc) "
      exit ${G_RTN_ERROR}
fi

###OM-2016-0000141 ADD START
## UIA17_ACPRC00104_請求書発行手数料課金判定.xlsx
## 請求書発行手数料課金対象外情報除外(要件８)
## 料金計算月月初日時点で請求先配下に「ネット」契約が存在しない請求先
## 詳細
## 課金候補となっている請求先配下のサービス契約を参照し、
## WEB照会にて請求書確認できる「ネット」契約が存在しない請求先
## ※バッチ運用日基準で予約適用済かつ料金計算月月初日時点で有効な契約にて判定する。
#-------------------------------------------------------------
#---マッチング(入力ファイル、サービス契約、課金先、業務パラメータ管理(請求書発行手数料課金サービス)、業務パラメータ管理(請求書発行手数料非課金料金グループ))
#-------------------------------------------------------------
DEFFILE=${G_TOOLSH}/util/def/AC_CM_0111.def
TMPDEFFILE=${ULD_WORK_DIR}/AC_CM_0111.tmp.${JOBNAME}.def

# 入力ファイル（OUTFILE=${MID_DIR_AC}/ACIFM230001.csv）
## 料金請求契約番号が設定されている場合、料金請求契約番号をマッチングキーとして設定されたファイル。
OUTFILE_MATCH_WK_1=${MID_DIR_AC}/ACIFM230001_MATCH_WK_1.csv
## 料金請求契約番号が設定されていない場合、請求契約番号をマッチングキーとして設定されたファイル。
OUTFILE_MATCH_WK_2=${MID_DIR_AC}/ACIFM230001_MATCH_WK_2.csv

## マッチング時の入力ファイル
OUTFILE_MATCH_WK_3=${MID_DIR_AC}/ACIFM230001_MATCH_WK_3.csv

## マッチング時の出力ファイル
OUTFILE_MATCH_WK_4=${MID_DIR_AC}/ACIFM230001_MATCH_WK_4.csv
OUTFILE_MATCH_WK_5=${MID_DIR_AC}/ACIFM230001_MATCH_WK_5.csv
OUTFILE_MATCH_WK=${MID_DIR_AC}/ACIFM230001_MATCH_WK.csv


## 料金請求契約番号が設定されている場合、料金請求契約番号をマッチングキーとして設定する。
# ANK-3361-00-00 MOD START
#bsortex -copy -record recform=txtcsv -input file=${OUTFILE} reclen=300 \
#         include="31.10asc.ge.'0'" \
#         -output file=${OUTFILE_MATCH_WK_1} \
#                 reconst="0.10,1.6,2.14,3.12,4.11,5.20,6.12,7.1,8.2,9.3,10.12,11.11,12.2,13.12,14.8,15.8,16.8,17.8,18.8,19.2,20.8,21.2,22.2,23.1,24.2,25.1,26.2,27.4,28.4,29.1,30.30,31.10,31.10" ;
bsortex -copy -record recform=txtcsv -input file=${OUTFILE} reclen=300 \
         include="31.10asc.ge.'0'" \
         -output file=${OUTFILE_MATCH_WK_1} \
                 reconst="0.10,1.6,2.14,3.12,4.11,5.20,6.12,7.1,8.2,9.3,10.12,11.11,12.2,13.12,14.8,15.8,16.8,17.8,18.8,19.2,20.8,21.2,22.2,23.1,24.2,25.1,26.2,27.4,28.4,29.1,30.30,31.10,31.10,32.10" ;
# ANK-3361-00-00 MOD END
                 
## 料金請求契約番号が設定されていない場合、請求契約番号をマッチングキーとして設定する。
# ANK-3361-00-00 MOD START
#bsortex -copy -record recform=txtcsv -input file=${OUTFILE} reclen=300 \
#         include="31.10asc.lt.'0'" \
#         -output file=${OUTFILE_MATCH_WK_2} \
#                 reconst="0.10,1.6,2.14,3.12,4.11,5.20,6.12,7.1,8.2,9.3,10.12,11.11,12.2,13.12,14.8,15.8,16.8,17.8,18.8,19.2,20.8,21.2,22.2,23.1,24.2,25.1,26.2,27.4,28.4,29.1,30.30,31.10,0.10" ;
bsortex -copy -record recform=txtcsv -input file=${OUTFILE} reclen=300 \
         include="31.10asc.lt.'0'" \
         -output file=${OUTFILE_MATCH_WK_2} \
                 reconst="0.10,1.6,2.14,3.12,4.11,5.20,6.12,7.1,8.2,9.3,10.12,11.11,12.2,13.12,14.8,15.8,16.8,17.8,18.8,19.2,20.8,21.2,22.2,23.1,24.2,25.1,26.2,27.4,28.4,29.1,30.30,31.10,0.10,32.10" ;
# ANK-3361-00-00 MOD END
                 
## 入力ファイルとなる、データを作成する。
cat ${OUTFILE_MATCH_WK_1} ${OUTFILE_MATCH_WK_2} > ${OUTFILE_MATCH_WK_3}

## ""ダブルクォート付与
sed -i -e "s/,/\",\"/g" ${OUTFILE_MATCH_WK_3}
sed -i -e "s/^/\"/g"    ${OUTFILE_MATCH_WK_3}
sed -i -e "s/$/\"/g"    ${OUTFILE_MATCH_WK_3}

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

########################################################################################
##--- ファイルマッチング処理
## 1:請求書発行手数料課金判定対象情報       ${MID_DIR_AC}/ACIFM230001_MATCH_WK_3.csv
## 2:課金先アンロード情報                   ${MID_DIR_AC}/${JOBNAME}_KAKINS.csv
## 3:サービス契約アンロード情報             ${MID_DIR_AC}/${JOBNAME}_SVC_KEI.csv
## マンション・オーナーで支払方法が窓口の暫定対応
## 4:サービス契約アンロード情報
##   (マンション・オーナー分)               ${MID_DIR_AC}/${JOBNAME}_SVC_KEI.csv
## 5:権利付与地域サービス課金情報           ${MID_DIR_AC}/ACIFM334006.csv
########################################################################################
MATCHING ${TMPDEFFILE} ${OUTFILE_MATCH_WK_4}

#-------------------------------------------------------------
#---重複レコードを削除
#-------------------------------------------------------------
# ""ダブルクォート排除
sed -e "s/\"//g" ${OUTFILE_MATCH_WK_4} > ${OUTFILE_MATCH_WK_5}
# ANK-3361-00-00 MOD START
# マンション・オーナーで支払方法が窓口の暫定対応
#bsortex -sort key="0.10asca" -record recform=txtcsv -input  file=${OUTFILE_MATCH_WK_5} reclen=300 -output file=${OUTFILE_MATCH_WK} ;
#bsortex -merge key="0.10asc" -record recform=txtcsv -input file=${OUTFILE_MATCH_WK} reclen=300 -summary suppress last -output file=${OUTFILE} ;
# IT2-2018-0000072 MOD START
#bsortex -sort key="1.10asca" -record recform=txtcsv -input  file=${OUTFILE_MATCH_WK_5} include="0.10asc.le.'0'" reclen=320 -output file=${OUTFILE_MATCH_WK} reconst="1.END" ;
# v45.00.00 ANK-3607-00-00 MOD START
# 料金収納手数料の権利付与地域サービスの非課金対応
# 料金収納手数料のマンションオーナーへの課金対応
#bsortex -sort key="1.10asca,34.10asca" -record recform=txtcsv -input  file=${OUTFILE_MATCH_WK_5} include="0.10asc.le.'0'" reclen=320 -output file=${OUTFILE_MATCH_WK} reconst="1.END" ;
bsortex -sort key="0.10asca,33.10asca" -record recform=txtcsv -input  file=${OUTFILE_MATCH_WK_5} reclen=320 -output file=${OUTFILE_MATCH_WK} ;
# v45.00.00 ANK-3607-00-00 MOD END
# IT2-2018-0000072 MOD END
bsortex -merge key="0.10asc" -record recform=txtcsv -input file=${OUTFILE_MATCH_WK} reclen=320 -summary suppress last -output file=${OUTFILE} ;
# ANK-3361-00-00 MOD END
##OM-2016-0000141 ADD END

#---請求書発行手数料課金対象情報分割（請求契約番号下１桁で１０分割する）

bsortex \
  -sort   key="0.10asca,1.6asca" \
  -record recform=txtfix \
  -input  reclen=300 \
          file=${OUTFILE} \
  -output file=${OUTFILE_PF}_0.csv case="9.1asc.eq.'0'" \
  -output file=${OUTFILE_PF}_1.csv case="9.1asc.eq.'1'" \
  -output file=${OUTFILE_PF}_2.csv case="9.1asc.eq.'2'" \
  -output file=${OUTFILE_PF}_3.csv case="9.1asc.eq.'3'" \
  -output file=${OUTFILE_PF}_4.csv case="9.1asc.eq.'4'" \
  -output file=${OUTFILE_PF}_5.csv case="9.1asc.eq.'5'" \
  -output file=${OUTFILE_PF}_6.csv case="9.1asc.eq.'6'" \
  -output file=${OUTFILE_PF}_7.csv case="9.1asc.eq.'7'" \
  -output file=${OUTFILE_PF}_8.csv case="9.1asc.eq.'8'" \
  -output file=${OUTFILE_PF}_9.csv case="9.1asc.eq.'9'" ;

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

exit_rc=$rc
#ワーク削除
if [ $WK_RM = "true" ]
then
# OM-2015-0001848 性能対応 2015/08/18 大山 DEL START
#    rm -f ${CSV_CM0045_MATCHING}
    rm -f ${CSV_CM0045_BSORT}
#    rm -f ${CSV_CM0046_MATCHING}
#    rm -f ${SQL_KK0491_03_WK}
#    rm -f ${CSV_KK0491_03}
# OM-2015-0001816 共通UNLOAD対応 2015/07/03 有本 DEL START
#    rm -f ${SQL_KK0321_05_WK}
# OM-2015-0001816 共通UNLOAD対応 2015/07/03 有本 DEL END
#    rm -f ${CSV_KK0321_05}
#    rm -f ${SQL_KK0351_04_WK}
#    rm -f ${CSV_KK0351_04}
#    rm -f ${SQL_KK0161_04_WK}
#    rm -f ${CSV_KK0161_04}
#    rm -f ${ZENGETSU_SEIKY_YM_WK}
#    rm -f ${CH_M_PRC_SCHDL_TEIGI_ULD_WK}
#    rm -f ${ZENGETSU_SEIKY_YM_FILE}
#    rm -f ${CH_M_PRC_SCHDL_TEIGI_FILE}
#    rm -f ${CH_M_PRC_SCHDL_TEIGI_PRC_FILE}
#    rm -f ${SQL_KK0321_PRC_WK}
#    rm -f ${CSV_KK0321_PRC}
# OM-2015-0001848 性能対応 2015/08/18 大山 DEL END
    rm -f ${CSV_KK0321_PRC_WK}
    rm -f ${INPFILE_WK}
##OM-2016-0000141 ADD START
    rm -f ${MID_DIR_AC}/EO3010435J0_KAKINS.csv
    rm -f ${MID_DIR_AC}/EO3010435J0_SVC_KEI.csv
    # ANK-3361-00-00 ADD START
    rm -f ${MID_DIR_AC}/EO3010435J0_SVC_KEI_WK.csv
    # ANK-3361-00-00 ADD END
    rm -f ${TMPDEFFILE}
    rm -f ${OUTFILE_MATCH_WK_1}
    rm -f ${OUTFILE_MATCH_WK_2}
    rm -f ${OUTFILE_MATCH_WK_3}
    rm -f ${OUTFILE_MATCH_WK_4}
    rm -f ${OUTFILE_MATCH_WK_5}
    rm -f ${OUTFILE_MATCH_WK}
##OM-2016-0000141 ADD END
fi

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

exit $exit_rc
