#!/bin/bash
##############################################################
# システム名    ：eo顧客基幹システム
#
# サブシステム名：料金管理
#
# シェル名      ：請求書発行手数料課金判定前分割
#
# 機能          ：請求書発行手数料課金判定対象情報をもとに請求書発行手数料の課金判定を行う。
#判定による除外処理が完了し、請求対象となった手数料について定額料金マスタより
#当該サービスの金額情報を取得する。また、料金項目抽出変換マスタを使用し、
#前月請求年月の月名付き（○月分）の料金項目にコード変換を行う。
#（⑧通話明細送付契約状態絞込み＜bsort＞まで実行し、後続ＪＯＢにファイルを送信する）
#
# コマンド形式  ：EO3010436J0.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
# v15.00.00      2015/08/18   FJ)大山     【OM-2015-0001848】新規作成
# v15.00.01      2015/08/25   FJ)土井     【ST-2015-0000039】 UNLOADバックグラウンド実行対応
# v19.00.00      2015/09/29   FJ)大山     【OM-2015-0002461】 資産戻し対応
# v23.00.00      2016/03/17   FJ)岡田     【OM-2016-0000141】性能改善対応：要件８
# v23.00.01      2016/04/17   FJ)岡田     【OM-2016-0001106】障害対応：要件８
# v38.00.00      2018/09/10   FJ)麻生     【ANK-3361-00-00】振込用紙発行手数料の変更
# v39.00.00      2018/12/11   FJ)寺園     【OM-2018-0001095】振込用紙発行手数料不正
# 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

##############################################################
# 共通
##############################################################
#---マッチング定義
#-全体を絞り込むマッチング
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
CSV_CM0045_BSORT=${MID_DIR_AC}/ACIFM274002.csv

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

#共通UNLOADファイル
#課金先(全件)
# OM-2015-0002461 共通UNLOAD対応 2015/09/29 大山 DEL START
#COMULD2_KK0321_ALL=${MID_DIR_CC}/CCIFM024001.csv
# OM-2015-0002461 共通UNLOAD対応 2015/09/29 大山 DEL 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-0002461 共通UNLOAD対応 2015/09/29 大山 ADD 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-0002461 共通UNLOAD対応 2015/09/29 大山 ADD END
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
CSV_KK0321_PRC_WK=${MID_DIR_AC}/ACIFM274001.csv

##############################################################
# オプションサービス契約
##############################################################
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-0002461 共通UNLOAD対応 2015/09/29 大山 MOD START
    cp -f ${SQL_KK0321_05} ${SQL_KK0321_05_WK}
    SED "s/:OPEDATE/'${OPEDATE}'/g" ${SQL_KK0321_05_WK}
    UNLOAD ${SQL_KK0321_05_WK} ${CSV_KK0321_05}
#  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}
# OM-2015-0002461 共通UNLOAD対応 2015/09/29 大山 MOD END

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
    
    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}
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
}
##############################################################
#
#--- MAIN
#
##############################################################

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

#--- 課金先アンロード
# ST-2015-0000039 UNLOADバックグラウンド実行対応 2015/08/25 土井 MOD START
#KAKINS_UNLOAD
KAKINS_UNLOAD &
pidKAKINS_UNLOAD=$!
# ST-2015-0000039 UNLOADバックグラウンド実行対応 2015/08/25 土井 MOD END

#--- オプションサービス契約アンロード
# ST-2015-0000039 UNLOADバックグラウンド実行対応 2015/08/25 土井 MOD START
#OP_SVC_KEI_UNLOAD
OP_SVC_KEI_UNLOAD &
pidOP_SVC_KEI_UNLOAD=$!
# ST-2015-0000039 UNLOADバックグラウンド実行対応 2015/08/25 土井 MOD END

#--- サービス契約内訳アンロード
# ST-2015-0000039 UNLOADバックグラウンド実行対応 2015/08/25 土井 MOD START
#SVC_KEI_UCWK_UNLOAD
SVC_KEI_UCWK_UNLOAD &
pidSVC_KEI_UCWK_UNLOAD=$!
# ST-2015-0000039 UNLOADバックグラウンド実行対応 2015/08/25 土井 MOD END

# ST-2015-0000039 UNLOADバックグラウンド実行対応 2015/08/25 土井 ADD START
WAIT ${pidKAKINS_UNLOAD}          "KAKINS_UNLOAD"
WAIT ${pidOP_SVC_KEI_UNLOAD}      "OP_SVC_KEI_UNLOAD"
WAIT ${pidSVC_KEI_UCWK_UNLOAD}    "SVC_KEI_UCWK_UNLOAD"
# ST-2015-0000039 UNLOADバックグラウンド実行対応 2015/08/25 土井 ADD END

#---絞込みマッチング
export KK_T_OP_SVC_KEI=${CSV_KK0351_04}
export KK_T_KAKINS=${CSV_KK0321_05}
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-2016-0000141 ADD START
# UIA17_ACPRC00104_請求書発行手数料課金判定.xlsx
# 請求書発行手数料課金対象外情報除外(要件８)
# 料金計算月月初日時点で請求先配下に「ネット」契約が存在しない請求先
# 詳細
# 課金候補となっている請求先配下のサービス契約を参照し、
# WEB照会にて請求書確認できる「ネット」契約が存在しない請求先
# ※バッチ運用日基準で予約適用済かつ料金計算月月初日時点で有効な契約にて判定する。
# 案件時、業務パラメータの値の追加時、取得項目の追加を行い、判定にも追加を行う。
# 取得（※１）
# 判定（※２）
JOBNAME_EO3010435J0="EO3010435J0"
#-------------------------------------------------------------
#---請求年月初日(GUN_STRDAY)
#-------------------------------------------------------------
#--- イベントコード（料金計算日）
EVENT_CD_PRC_CALCYMD="03"
#--- イベントコード（利用開始日）
EVENT_CD_USE_STAYMD="01"

#- 請求年月取得（料金計算日基準）
EVENT_CD="03"
. EO3SEIKYYM.sh ${EVENT_CD} ${RSLT_OPEDATE} ${JOBNAME}
TOGETSU=${SEIKY_YM}

#- 月初日取得（料金計算日基準）
. EO3EVENTYMD.sh ${EVENT_CD_USE_STAYMD} ${TOGETSU} ${JOBNAME}
GUN_STRDAY=${EVENT_YMD}
#-------------------------------------------------------------
#---業務パラメータ管理取得（AC_U_ZM0321_01.sql）
#-------------------------------------------------------------

ZM_M_WORK_PARAM_KNRI_ULD=${SQL_DIR}/AC_U_ZM0321_01.sql

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

#-------------------------------------------------------------
#---業務パラメータ管理から請求書発行手数料課金サービス(KK_SKSHAK_CHRG_SVC)を取得
#-------------------------------------------------------------
# 業務パラメータ
WORK_PARAM_ID_KK_SKSHAK_CHRG_SVC="'KK_SKSHAK_CHRG_SVC'"
ZM_M_WORK_PARAM_KNRI_ULD_KK_SKSHAK_CHRG_SVC_WK=${SQL_DIR}/AC_U_ZM0321_01_TEMP_${JOBNAME}_KK_SKSHAK_CHRG_SVC.sql
ZM_M_WORK_PARAM_KNRI_ULD_KK_SKSHAK_CHRG_SVC_1_FILE=${MID_DIR_AC}/${JOBNAME}_AC_U_ZM0321_01_KK_SKSHAK_CHRG_SVC.csv
ZM_M_WORK_PARAM_KNRI_ULD_KK_SKSHAK_CHRG_SVC_2_FILE=${MID_DIR_AC}/${JOBNAME}_AC_U_ZM0321_02_KK_SKSHAK_CHRG_SVC.csv

# １．業務パラメータを設定
# ２．業務パラメータ適用開始年月日に運用日を設定
# ３．業務パラメータ適用終了年月日に運用日を設定
cp  -f ${ZM_M_WORK_PARAM_KNRI_ULD} ${ZM_M_WORK_PARAM_KNRI_ULD_KK_SKSHAK_CHRG_SVC_WK}
sed -i -e s@':WORK_PARAM'@${WORK_PARAM_ID_KK_SKSHAK_CHRG_SVC}@g       ${ZM_M_WORK_PARAM_KNRI_ULD_KK_SKSHAK_CHRG_SVC_WK}
sed -i -e s@':OPE_DATE'@${OPEDATE}@g                                  ${ZM_M_WORK_PARAM_KNRI_ULD_KK_SKSHAK_CHRG_SVC_WK}
sed -i -e s@':OPE_DATE'@${OPEDATE}@g                                  ${ZM_M_WORK_PARAM_KNRI_ULD_KK_SKSHAK_CHRG_SVC_WK}

# 業務パラメータ管理SQL実行結果を格納
UNLOAD ${ZM_M_WORK_PARAM_KNRI_ULD_KK_SKSHAK_CHRG_SVC_WK} ${ZM_M_WORK_PARAM_KNRI_ULD_KK_SKSHAK_CHRG_SVC_1_FILE}

# カンマ区切りの業務パラメータ設定値抽出
cp  -f ${ZM_M_WORK_PARAM_KNRI_ULD_KK_SKSHAK_CHRG_SVC_1_FILE} ${ZM_M_WORK_PARAM_KNRI_ULD_KK_SKSHAK_CHRG_SVC_2_FILE}
SED "s/,/\n/g"    ${ZM_M_WORK_PARAM_KNRI_ULD_KK_SKSHAK_CHRG_SVC_2_FILE}

#（※１）
KK_SKSHAK_CHRG_SVC_1=`head -n1 ${ZM_M_WORK_PARAM_KNRI_ULD_KK_SKSHAK_CHRG_SVC_2_FILE}`
KK_SKSHAK_CHRG_SVC_2=`tail -n1 ${ZM_M_WORK_PARAM_KNRI_ULD_KK_SKSHAK_CHRG_SVC_2_FILE}`

echo "KK_SKSHAK_CHRG_SVC_1: ${KK_SKSHAK_CHRG_SVC_1}"
echo "KK_SKSHAK_CHRG_SVC_2: ${KK_SKSHAK_CHRG_SVC_2}"

#-------------------------------------------------------------
#---業務パラメータ管理から請求書発行手数料非課金料金グループ(KK_SKSHAK_HCHRG_PRGP)を取得
#-------------------------------------------------------------
# 業務パラメータ
WORK_PARAM_ID_KK_SKSHAK_HCHRG_PRGP="'KK_SKSHAK_HCHRG_PRGP'"
ZM_M_WORK_PARAM_KNRI_ULD_KK_SKSHAK_HCHRG_PRGP_WK=${SQL_DIR}/AC_U_ZM0321_01_TEMP_${JOBNAME}_KK_SKSHAK_HCHRG_PRGP.sql
ZM_M_WORK_PARAM_KNRI_ULD_KK_KK_SKSHAK_HCHRG_PRGP_1_FILE=${MID_DIR_AC}/${JOBNAME}_AC_U_ZM0321_01_KK_SKSHAK_HCHRG_PRGP.csv
ZM_M_WORK_PARAM_KNRI_ULD_KK_KK_SKSHAK_HCHRG_PRGP_2_FILE=${MID_DIR_AC}/${JOBNAME}_AC_U_ZM0321_02_KK_SKSHAK_HCHRG_PRGP.csv

# １．業務パラメータを設定
# ２．業務パラメータ適用開始年月日に運用日を設定
# ３．業務パラメータ適用終了年月日に運用日を設定
cp  -f ${ZM_M_WORK_PARAM_KNRI_ULD} ${ZM_M_WORK_PARAM_KNRI_ULD_KK_SKSHAK_HCHRG_PRGP_WK}
sed -i -e s@':WORK_PARAM'@${WORK_PARAM_ID_KK_SKSHAK_HCHRG_PRGP}@g     ${ZM_M_WORK_PARAM_KNRI_ULD_KK_SKSHAK_HCHRG_PRGP_WK}
sed -i -e s@':OPE_DATE'@${OPEDATE}@g                                  ${ZM_M_WORK_PARAM_KNRI_ULD_KK_SKSHAK_HCHRG_PRGP_WK}
sed -i -e s@':OPE_DATE'@${OPEDATE}@g                                  ${ZM_M_WORK_PARAM_KNRI_ULD_KK_SKSHAK_HCHRG_PRGP_WK}

# 業務パラメータ管理SQL実行結果を格納
UNLOAD ${ZM_M_WORK_PARAM_KNRI_ULD_KK_SKSHAK_HCHRG_PRGP_WK} ${ZM_M_WORK_PARAM_KNRI_ULD_KK_KK_SKSHAK_HCHRG_PRGP_1_FILE}

# カンマ区切りの業務パラメータ設定値抽出
cp  -f ${ZM_M_WORK_PARAM_KNRI_ULD_KK_KK_SKSHAK_HCHRG_PRGP_1_FILE} ${ZM_M_WORK_PARAM_KNRI_ULD_KK_KK_SKSHAK_HCHRG_PRGP_2_FILE}
SED "s/,/\n/g"    ${ZM_M_WORK_PARAM_KNRI_ULD_KK_KK_SKSHAK_HCHRG_PRGP_2_FILE}

#（※１）
KK_SKSHAK_HCHRG_PRGP_1=`head -n1 ${ZM_M_WORK_PARAM_KNRI_ULD_KK_KK_SKSHAK_HCHRG_PRGP_2_FILE}`

echo "KK_SKSHAK_HCHRG_PRGP_1: ${KK_SKSHAK_HCHRG_PRGP_1}"

#-------------------------------------------------------------
#---共通ＵＬＤの課金先を以下の条件で絞込み
# 課金先.1:サービス契約番号 IS NOT NULL
# 課金先.2:課金先適用開始年月日 <= バッチ運用日
# 課金先.3:課金先適用終了年月日 >= バッチ運用日
# 出力項目:下記記載
# 0:SEIKY_KEI_NO
# 1:SVC_KEI_NO
#-------------------------------------------------------------
#
#---ファイル変数定義
#
COMULD2_KK0321_ALL=${MID_DIR_CC}/CCIFM024001.csv
OUTFILE_KAKINS_WK=${MID_DIR_AC}/${JOBNAME}_KAKINS_WK.csv
OUTFILE_KAKINS=${MID_DIR_AC}/${JOBNAME_EO3010435J0}_KAKINS.csv

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

bsortex -sort key=0.10asc,1.10asc -record recform=txtcsv -input file=${COMULD2_KK0321_ALL} reclen=${ULD2_REC_LEN_KK0321} \
        include="1.10asc.ge.'0',8.8asc.le.'${OPEDATE}',9.8asc.ge.'${OPEDATE}'" \
        -output file=${OUTFILE_KAKINS_WK} \
                reconst="0.10,1.10" ;

#v39.00.00 DEL START
#cat ${OUTFILE_KAKINS_WK} > ${OUTFILE_KAKINS}
#v39.00.00 DEL END

#-------------------------------------------------------------
#---共通ＵＬＤのサービス契約を以下の条件で絞込み
# サービス契約.22:サービス開始年月日 <= 請求年月初日
# サービス契約.22:サービス開始年月日 IS NOT NULL
# サービス契約.31:サービス解約起算年月日 > 請求年月初日
# サービス契約.31:サービス解約起算年月日 IS NULL
# 出力項目:下記記載
# 0:SVC_KEI_NO
# 4:SVC_CD
# 7:PRC_GRP_CD
#-------------------------------------------------------------
#
#---ファイル変数定義
#
COMULD2_KK0081_CUR=${MID_DIR_CC}/CCIFM020002.csv
# ANK-3361-00-00 MOD START
# マンション・オーナーで支払方法が窓口の暫定対応
#OUTFILE_SVC_KEI_WK=${MID_DIR_AC}/${JOBNAME}_SVC_KEI_WK.csv
OUTFILE_SVC_KEI_WK=${MID_DIR_AC}/${JOBNAME_EO3010435J0}_SVC_KEI_WK.csv
# ANK-3361-00-00 MOD END
OUTFILE_SVC_KEI=${MID_DIR_AC}/${JOBNAME_EO3010435J0}_SVC_KEI.csv

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

#（※２）
##OM-2016-0001106 MOD START
#bsortex -sort key=0.10asc -record recform=txtcsv -input file=${COMULD2_KK0081_CUR} reclen=${ULD2_REC_LEN_KK0081} \
#         include="22.8asc.le.'${GUN_STRDAY}'.and.(31.8asc.gt.'${GUN_STRDAY}'.or.31.8asc.lt.'0').and.(4.2asc.eq.'${KK_SKSHAK_CHRG_SVC_1}'.or.4.2asc.eq.'${KK_SKSHAK_CHRG_SVC_2}'),7.2asc.ne.'${KK_SKSHAK_HCHRG_PRGP_1}'" \
#         -output file=${OUTFILE_SVC_KEI_WK} \
#                 reconst="0.10,4.2,7.2" ;
# ANK-3361-00-00 MOD START
# マンション・オーナーで支払方法が窓口の暫定対応
#bsortex -sort key=0.10asc -record recform=txtcsv -input file=${COMULD2_KK0081_CUR} reclen=${ULD2_REC_LEN_KK0081} \
#         include="(22.8asc.le.'${GUN_STRDAY}'.and.22.8asc.ge.'0').and.(31.8asc.gt.'${GUN_STRDAY}'.or.31.8asc.lt.'0').and.(4.2asc.eq.'${KK_SKSHAK_CHRG_SVC_1}'.or.4.2asc.eq.'${KK_SKSHAK_CHRG_SVC_2}'),7.2asc.ne.'${KK_SKSHAK_HCHRG_PRGP_1}'" \
#         -output file=${OUTFILE_SVC_KEI_WK} \
#                 reconst="0.10,4.2,7.2" ;
#
#cat ${OUTFILE_SVC_KEI_WK} > ${OUTFILE_SVC_KEI}
# v45.00.00 ANK-3607-00-00 MOD START
# 料金収納手数料のマンションオーナーへの課金対応
#bsortex -sort key=0.10asc -record recform=txtcsv -input file=${COMULD2_KK0081_CUR} reclen=${ULD2_REC_LEN_KK0081} \
#         -output file=${OUTFILE_SVC_KEI_WK} case="7.2asc.eq.'${KK_SKSHAK_HCHRG_PRGP_1}'" reconst="0.10,4.2,7.2" \
#         -output file=${OUTFILE_SVC_KEI} case="(22.8asc.le.'${GUN_STRDAY}'.and.22.8asc.ge.'0').and.(31.8asc.gt.'${GUN_STRDAY}'.or.31.8asc.lt.'0').and.(4.2asc.eq.'${KK_SKSHAK_CHRG_SVC_1}'.or.4.2asc.eq.'${KK_SKSHAK_CHRG_SVC_2}').and.(7.2asc.ne.'${KK_SKSHAK_HCHRG_PRGP_1}')" \
#                 reconst="0.10,4.2,7.2" ;
bsortex -sort key=0.10asc -record recform=txtcsv -input file=${COMULD2_KK0081_CUR} reclen=${ULD2_REC_LEN_KK0081} \
         -output file=${OUTFILE_SVC_KEI_WK} case="7.2asc.eq.'${KK_SKSHAK_HCHRG_PRGP_1}'" reconst="0.10,4.2,7.2" \
         -output file=${OUTFILE_SVC_KEI} case="(22.8asc.le.'${GUN_STRDAY}'.and.22.8asc.ge.'0').and.(31.8asc.gt.'${GUN_STRDAY}'.or.31.8asc.lt.'0').and.(4.2asc.eq.'${KK_SKSHAK_CHRG_SVC_1}'.or.4.2asc.eq.'${KK_SKSHAK_CHRG_SVC_2}')" \
                 reconst="0.10,4.2,7.2" ;
# v45.00.00 ANK-3607-00-00 MOD END
# ANK-3361-00-00 MOD END
##OM-2016-0001106 MOD END
##OM-2016-0000141 ADD END

#v39.00.00 ADD START

OUTFILE_SVC_KEI_WK2=${MID_DIR_AC}/${JOBNAME_EO3010435J0}_SVC_KEI_WK2.csv

bsortex -sort key=0.10asc -record recform=txtcsv -input file=${COMULD2_KK0081_CUR} reclen=${ULD2_REC_LEN_KK0081} \
         include="(22.8asc.le.'${GUN_STRDAY}'.and.22.8asc.ge.'0')" \
         -output file=${OUTFILE_SVC_KEI_WK2} \
                 reconst="0.10" ;

##############################################################
# 共通関数
##############################################################


#
#--- マッチング処理
#      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
}
#
#--- 定義ファイル環境変数設定処理
#
DEFFILE=${G_TOOLSH}/util/def/AC_CM_0162.def

#
# --- マッチング
#
# 課金先とサービス契約をマッチング
# SYSID
export OUTFILE_KAKINS_WK
export OUTFILE_SVC_KEI_WK2
EXEC_MATCHING ${OUTFILE_KAKINS} ${DEFFILE}

#v39.00.00 ADD END

exit_rc=$rc
#ワーク削除
if [ $WK_RM = "true" ]
then
    rm -f ${CSV_CM0045_MATCHING}
    rm -f ${SQL_KK0491_03_WK}
    rm -f ${CSV_KK0491_03}
    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-2016-0000141 ADD START
    rm -f ${ZM_M_WORK_PARAM_KNRI_ULD_KK_SKSHAK_CHRG_SVC_WK}
    rm -f ${ZM_M_WORK_PARAM_KNRI_ULD_KK_SKSHAK_CHRG_SVC_1_FILE}
    rm -f ${ZM_M_WORK_PARAM_KNRI_ULD_KK_SKSHAK_CHRG_SVC_2_FILE}
    rm -f ${ZM_M_WORK_PARAM_KNRI_ULD_KK_SKSHAK_HCHRG_PRGP_WK}
    rm -f ${ZM_M_WORK_PARAM_KNRI_ULD_KK_KK_SKSHAK_HCHRG_PRGP_1_FILE}
    rm -f ${ZM_M_WORK_PARAM_KNRI_ULD_KK_KK_SKSHAK_HCHRG_PRGP_2_FILE}
    rm -f ${OUTFILE_KAKINS_WK}
# v45.00.00 ANK-3607-00-00 DEL START
# 料金収納手数料のマンションオーナーへの課金対応
#    rm -f ${OUTFILE_SVC_KEI_WK}
# v45.00.00 ANK-3607-00-00 DEL END
##OM-2016-0000141 ADD END
#v39.00.00 ADD START
    rm -f ${OUTFILE_SVC_KEI_WK2}
#v39.00.00 ADD END
fi

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

exit $exit_rc
