#!/bin/bash
########################################################################
#
# システム名    ：eo顧客基幹システム
#
# サブシステム名：解約精算金検証・解約レター登録情報特例データ抽出
#
# シェル名      ：解約精算金検証・解約レター登録情報特例データ抽出シェル
#
# 機能          ：解約精算金検証・解約レター登録情報特例データ抽出の実行
#
# コマンド形式  ：EO2GB0510J0.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更№
# v33.00.00       2017/09/30  FJ）三原     ANK_3252-00-00_新規作成
# v35.00.00       2018/01/18  FJ) 平野     ANK-3346-01-00 【解約レター機能関連】改善要望Ｓｔｅｐ１(IT1-2018-0000005)
# v39.00.00       2018/08/17  FJ)柳        【ANK-3427-00-00】【解約精算金チェック機能拡張】工事費割賦関連チェックの実装
# V39.00.01       2018/09/08  FJ)田中      【IT1-2018-0000151】ANK-3427-00-00_【解約精算金チェック機能拡張】工事費割賦関連チェックの実装
# v56.00.00       2021/11/29  FJ)谷口      【OM-2021-0000556】工事費残債一括の金額とお客様案内の金額が相違したとき解約精算金検証結果に出力されるべきところ 出力されなかった
# v59.00.00       2022/05/17  FJ)谷口      【OM-2021-0000556】工事費残債一括の金額とお客様案内の金額が相違したとき解約精算金検証結果に出力されるべきところ 出力されなかった
########################################################################

#---ツール格納場所
#
G_TOOLSH=.

#---環境変数定義Shell呼び出し
#
. EOK010110J0.sh

#
#---ＪＯＢ名
#
JOBNAME=`basename $0 | sed -e "s/\.sh//g"`

#---サービス（業務プロセス）
#
SVC=$JOBNAME

#
#---OPD
#
OPD=$1

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

#--- 共通アンロードファイル
# サービス契約共通アンロードファイル<カレント>
COMULD2_KK0081_CUR=${MID_DIR_CC}/CCIFM020002.csv

#--- 抽出ファイル
# サービス契約抽出結果ファイル
TMPFILE_KK0081=${LOC_DIR_KK}/${JOBNAME}_KK0081.csv
# 精算金・違約金区分追加ファイル
TMPFILE_CH0101=${LOC_DIR_KK}/${JOBNAME}_CH0101.csv

#--- アンロードSQL定義ファイル
# 請求内訳アンロードSQL定義ファイル
ULDSQL_CH0101=${SQL_DIR}/CH_U_CH0101_16.sql
# 業務パラメータ管理アンロードSQL定義ファイル
ULDSQL_ZM0321=${SQL_DIR}/KK_U_ZM0321_10.sql
# 業務パラメータ管理アンロードSQL定義ファイル①
ULDSQL_ZM0321_1=${SQL_DIR}/KK_U_ZM0321_11.sql
# 料金サービス管理アンロードSQL定義ファイル
ULDSQL_AC0181=${SQL_DIR}/AC_U_AC0181_04.sql
# 解約レター登録アンロードSQL定義ファイル
ULDSQL_KK3111=${SQL_DIR}/KK_U_KK3111_01.sql
# OM-2021-0000556 2021/11/29 ADD START
# 解約レター登録アンロードSQL定義ファイル
ULDSQL_KK3111_2=${SQL_DIR}/KK_U_KK3111_02.sql
# OM-2021-0000556 2021/11/29 ADD END
# OM-2021-0000556 2022/05/17 ADD START
# 督促アンロードSQL定義ファイル
ULDSQL_CH0231_02=${SQL_DIR}/KK_U_CH0231_02.sql
# OM-2021-0000556 2021/05/17 ADD END


#--- 一時ファイル
# 請求内訳アンロードファイル
ULDFILE_CH0101=${LOC_DIR_KK}/${JOBNAME}_CH0101.csv
# 業務パラメータ管理アンロードファイル1
ULDFILE_ZM0321=${LOC_DIR_KK}/${JOBNAME}_ZM0321.csv
# 業務パラメータ管理アンロードファイル2
ULDFILE_ZM0321_1=${LOC_DIR_KK}/${JOBNAME}_ZM0321_1.csv
# 料金サービス管理アンロードファイル
ULDFILE_AC0181=${LOC_DIR_KK}/${JOBNAME}_AC0181.csv
# 請求内訳集約結果ファイル
TMPFILE_CH0101_1=${LOC_DIR_KK}/${JOBNAME}_CH0101_1.csv
# 解約レター登録アンロードファイル
ULDFILE_KK3111=${LOC_DIR_KK}/${JOBNAME}_KK3111.csv
# 解約レター登録アンロード抽出結果ファイル
TMPFILE_KK3111_1=${LOC_DIR_KK}/${JOBNAME}_KK3111_1.csv
# 解約レター登録抽出結果のキー重複削除ファイル
TMPFILE_KK3111_1_DEL=${LOC_DIR_KK}/${JOBNAME}_KK3111_1_DEL.csv
# OM-2021-0000556 2021/11/29 ADD START
TMPFILE_KK0081_WK=${LOC_DIR_KK}/${JOBNAME}_KK0081_WK.csv
TMPFILE_KK0081_NET=${LOC_DIR_KK}/${JOBNAME}_KK0081_NET.csv
TMPFILE_KK0081_NET_2=${LOC_DIR_KK}/${JOBNAME}_KK0081_NET_2.csv
# 解約レター登録アンロードファイル
ULDFILE_KK3111_2=${LOC_DIR_KK}/${JOBNAME}_KK3111_2.csv
# 解約レター登録アンロード抽出結果ファイル
TMPFILE_KK3111_1_2=${LOC_DIR_KK}/${JOBNAME}_KK3111_1_2.csv
# 解約レター登録抽出結果のキー重複削除ファイル
TMPFILE_KK3111_1_DEL_WK=${LOC_DIR_KK}/${JOBNAME}_KK3111_1_DEL_WK.csv
# OM-2021-0000556 2021/11/29 ADD END
# OM-2021-0000556 2022/05/17 ADD START
# 請求内訳アンロードファイル
ULDFILE_CH0101_WK=${LOC_DIR_KK}/${JOBNAME}_CH0101_WK.csv
# 督促アンロードファイル
ULDFILE_CH0231_02=${LOC_DIR_KK}/${JOBNAME}_CH0231_02.csv
# OM-2021-0000556 2022/05/17 ADD END


#--- マッチングツール定義ファイル
# マッチングツール定義ファイル(請求内訳-サービス契約)
MATCHDEF_CH0101=${G_TOOLSH}/util/def/CH_CM_0176.def
# マッチングツール定義ファイル(請求内訳-料金サービス管理)
MATCHDEF_CH0101_1=${G_TOOLSH}/util/def/CH_CM_0177.def
# マッチングツール定義ファイル(請求内訳-解約レター登録)
MATCHDEF_CH0101_2=${G_TOOLSH}/util/def/CH_CM_0179.def
# OM-2021-0000556 2021/11/29 ADD START
# マッチングツール定義ファイル(サービス契約-解約レター登録)
MATCHDEF_KK3111_2=${G_TOOLSH}/util/def/KK_CM_1038.def
# OM-2021-0000556 2021/11/29 ADD END
# OM-2021-0000556 2022/05/17 ADD START
# マッチングツール定義ファイル(請求内訳-督促)
MATCHDEF_CH0101_3=${G_TOOLSH}/util/def/CH_CM_0261.def
# OM-2021-0000556 2022/05/17 ADD END

#--- マッチング結果ファイル
# 請求内訳マッチング結果ファイル(請求内訳-サービス契約)
TMPFILE_CH0101_MATCH_1=${LOC_DIR_KK}/${JOBNAME}_CH0101_MATCH_1.csv
# 請求内訳マッチング結果ファイル(請求内訳-料金サービス管理)
TMPFILE_CH0101_MATCH_2=${LOC_DIR_KK}/${JOBNAME}_CH0101_MATCH_2.csv
# 請求内訳マッチング結果ソートファイル(請求内訳-料金サービス管理)
TMPFILE_CH0101_MATCH_2_SORT=${LOC_DIR_KK}/${JOBNAME}_CH0101_MATCH_2_SORT.csv
# 請求内訳マッチング結果ファイル(請求内訳-解約レター登録)
TMPFILE_CH0101_MATCH_3=${LOC_DIR_KK}/${JOBNAME}_CH0101_MATCH_3.csv
# 解約精算金検証・解約レター登録情報特例データ抽出ファイル
OUTFILE_KKIFM755=${MID_DIR_KK}/KKIFM755.csv
# 解約精算金検証・マッチングファイル
FILE_PATH_KKIFM754=${MID_DIR_KK}/KKIFM754.csv
# OM-2021-0000556 2021/11/29 ADD START
# マッチングツール結果ファイル(サービス契約-解約レター登録)
TMPFILE_KK3111_MATCH=${LOC_DIR_KK}/${JOBNAME}_KK3111_MATCH.csv
# OM-2021-0000556 2021/11/29 ADD END

# OM-2021-0000556 2021/11/29 ADD START
KOJIHI_KAP_STAYMD=20180402
# OM-2021-0000556 2021/11/29 ADD END


#--- ① 請求内訳のアンロード処理
#
#--- UNLOAD処理
#
# OM-2021-0000556 2022/05/17 MOD START
#sh ${G_TOOLSH}/EOKULD02.sh ${ULDSQL_CH0101} ${ULDFILE_CH0101}
sh ${G_TOOLSH}/EOKULD02.sh ${ULDSQL_CH0101} ${ULDFILE_CH0101_WK}
# OM-2021-0000556 2022/05/17 MOD END

# OM-2021-0000556 2022/05/17 ADD START
#--- 督促のアンロード処理
sh ${G_TOOLSH}/EOKULD02.sh ${ULDSQL_CH0231_02} ${ULDFILE_CH0231_02}

# 請求内訳と督促のマッチング処理
export ULDFILE_CH0101_WK
export ULDFILE_CH0231_02
export ZTLOUTFILE=${ULDFILE_CH0101}
${G_TOOLSH}/util/bin/ZTLMAT01 ${MATCHDEF_CH0101_3}
# OM-2021-0000556 2022/05/17 ADD END


#--- ② サービス契約の共通アンロードファイルの抽出処理を実行する
#
#--- UNLOAD処理(業務パラメータ管理)
#
${G_TOOLSH}/EOKULD02.sh ${ULDSQL_ZM0321_1} ${ULDFILE_ZM0321}
#--- 料金項目コードと月数(２カ月)を設定
#

OLD_IFS=${IFS}
IFS=","

while read LINE
do
    set ${LINE}
    KK_SKNKNS_SVK_CTS=$(echo ${2} | sed 's/"//g')
done < ${ULDFILE_ZM0321}

IFS=${OLD_IFS}

#--- 運用日付取得
#
if [ "${OPD}" = "" ]; then
    . EOK010310J0.sh "BDATE"
else
   RSLT_OPEDATE=${OPD}
fi

UNYOBI=${RSLT_OPEDATE}

# バッチ運用日の2ヶ月前の月初を取得
#
if [ "${OPD}" = "" ]; then
    UNYO_YM=`echo ${UNYOBI} |cut -c 1-6`
    UNYO_YM_GESSHO=${UNYO_YM}"01"
    UNYOBI_NIKAGETSUMAE=`date -d "${KK_SKNKNS_SVK_CTS} month ago ${UNYO_YM_GESSHO}" +'%Y%m%d'`
else
    UNYO_YM=`echo ${OPD} |cut -c 1-6`
    UNYO_YM_GESSHO=${UNYO_YM}"01"
    UNYOBI_NIKAGETSUMAE=`date -d "${KK_SKNKNS_SVK_CTS} month ago ${UNYO_YM_GESSHO}" +'%Y%m%d'`
fi


# サービス契約共通アンロードファイル<カレント>の存在チェック
#
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}) "
    exit ${G_RTN_ERROR}
fi

# ANK-3427-00-00 2018/08/17 MOD START
#bsortex -copy -record recform=txtcsv \
#        -input file=${COMULD2_KK0081_CUR} reclen=${ULD2_REC_LEN_KK0081} reconst="0.10,4.2" \
#        include="(7.2asc.eq.'02'.or.7.2asc.eq.'03'.or.7.2asc.eq.'04'.or.7.2asc.eq.'11'.or.7.2asc.eq.'13').and.2.3asc.eq.'910'.and.33.2asc.eq.'02'.and.31.8asc.ge.'${UNYOBI_NIKAGETSUMAE}'.and.31.8asc.le.'${UNYOBI}'" \
#        -output file=${TMPFILE_KK0081}
# OM-2021-0000556 2021/11/29 MOD START
#bsortex -copy -record recform=txtcsv \
#        -input file=${COMULD2_KK0081_CUR} reclen=${ULD2_REC_LEN_KK0081} reconst="0.10,4.2" \
#        include="(7.2asc.eq.'02'.or.7.2asc.eq.'03'.or.7.2asc.eq.'04'.or.7.2asc.eq.'11'.or.7.2asc.eq.'13'.or.7.2asc.eq.'10').and.2.3asc.eq.'910'.and.33.2asc.eq.'02'.and.31.8asc.ge.'${UNYOBI_NIKAGETSUMAE}'.and.31.8asc.le.'${UNYOBI}'" \
#        -output file=${TMPFILE_KK0081}
bsortex -copy -record recform=txtcsv \
        -input file=${COMULD2_KK0081_CUR} reclen=${ULD2_REC_LEN_KK0081} reconst="0.10,4.2" \
        include="(7.2asc.eq.'02'.or.7.2asc.eq.'03'.or.7.2asc.eq.'04'.or.7.2asc.eq.'11'.or.7.2asc.eq.'13'.or.7.2asc.eq.'10').and.2.3asc.eq.'910'.and.33.2asc.eq.'02'.and.31.8asc.ge.'${UNYOBI_NIKAGETSUMAE}'.and.31.8asc.le.'${UNYOBI}'" \
        -output file=${TMPFILE_KK0081_WK}
# OM-2021-0000556 2021/11/29 MOD END
# ANK-3427-00-00 2018/08/17 MOD END


# OM-2021-0000556 2021/11/29 ADD START
bsortex -copy -record recform=txtcsv \
        -input file=${COMULD2_KK0081_CUR} reclen=${ULD2_REC_LEN_KK0081} reconst="0.10,4.2" \
        include="(7.2asc.eq.'02'.or.7.2asc.eq.'03'.or.7.2asc.eq.'04').and.2.3asc.eq.'910'.and.31.8asc.ge.'${KOJIHI_KAP_STAYMD}'.and.31.8asc.lt.'${UNYOBI_NIKAGETSUMAE}'" \
        -output file=${TMPFILE_KK0081_NET}

bsortex -copy -record recform=txtcsv \
        -input file=${COMULD2_KK0081_CUR} reclen=${ULD2_REC_LEN_KK0081} reconst="0.10,4.2,7.2,3.10" \
        include="(7.2asc.eq.'02'.or.7.2asc.eq.'03'.or.7.2asc.eq.'04').and.2.3asc.eq.'910'.and.31.8asc.ge.'${KOJIHI_KAP_STAYMD}'.and.31.8asc.lt.'${UNYOBI_NIKAGETSUMAE}'" \
        -output file=${TMPFILE_KK0081_NET_2}

#---集約
cat  ${TMPFILE_KK0081_WK} ${TMPFILE_KK0081_NET} > ${TMPFILE_KK0081}
# OM-2021-0000556 2021/11/29 ADD END


#--- ③マッチング処理
#
# 請求内訳とサービス契約のマッチング処理
#
export ULDFILE_CH0101
export TMPFILE_KK0081
export ZTLOUTFILE=${TMPFILE_CH0101_MATCH_1}
${G_TOOLSH}/util/bin/ZTLMAT01 ${MATCHDEF_CH0101}


#--- 精算金・違約金区分を設定
#
#--- ファイルのクリアを行う
#
cat /dev/null > ${ULDFILE_ZM0321_1}
#--- UNLOAD処理(業務パラメータ管理)
#
${G_TOOLSH}/EOKULD02.sh ${ULDSQL_ZM0321} ${ULDFILE_ZM0321_1}

#--- 料金項目コード,サービスコード,精算金・違約金区分を取得
#
OLD_IFS=${IFS}
IFS=","
COUNT_PRCKMKCD=0

while read LINE
do
    set ${LINE}
    
    KK_SKNKNS_PRCKMKCD+=("${2}")
    SVC_CD+=("${3}")
    SSNKN_IYKKN_DIV+=("${4}")
    
    COUNT_PRCKMKCD=`expr ${COUNT_PRCKMKCD} + 1`
done < ${ULDFILE_ZM0321_1}

IFS=${OLD_IFS}

#--- ファイルのクリアを行う
#
cat /dev/null > ${TMPFILE_CH0101}

OLD_IFS=${IFS}

while read LINE
do
    
    IFS=","
    set ${LINE}
    
    #01:請求契約番号,02:サービス契約番号,03:料金項目コード,04:金額,05:請求番号,06:請求年月,07:整理番号,08:料金グループコード,
    #09:料金コースコード,10:料金サービスコード,11:サービス識別番号,12:請求内訳番号,13:サービスコード
    TMP_LINE_1=${1},${2},${3}
    TMP_LINE_2=${4},${5},${6},${7},${8},${9},${10},${11},${12}
    
    COUNT=0
    
    while [ "${COUNT}" -lt "${COUNT_PRCKMKCD}" ]
    do
        if [ "${3}" = "${KK_SKNKNS_PRCKMKCD[${COUNT}]}" ]
        then
            if [ "${SVC_CD[${COUNT}]}" != '""' ]
            then
                if [ "${SVC_CD[${COUNT}]}" = "${13}" ]
                then
                    #01:請求契約番号,02:サービス契約番号,03:料金項目コード,04:精算金・違約金区分,05:金額,06:請求番号,07:請求年月,08:整理番号,
                    #09:料金グループコード,10:料金コースコード,11:料金サービスコード,12:サービス識別番号,13:請求内訳番号
                    echo "${TMP_LINE_1},${SSNKN_IYKKN_DIV[${COUNT}]},${TMP_LINE_2}" >> ${TMPFILE_CH0101}
                fi
            else
                #echo "KK_SKNKNS_PRCKMKCD["${COUNT}"]:"${KK_SKNKNS_PRCKMKCD[${COUNT}]}
                echo "${TMP_LINE_1},${SSNKN_IYKKN_DIV[${COUNT}]},${TMP_LINE_2}" >> ${TMPFILE_CH0101}
            fi
        fi
        COUNT=`expr ${COUNT} + 1`
    done
    
done < ${TMPFILE_CH0101_MATCH_1}

IFS=${OLD_IFS}

#--- ④ 料金サービス管理のアンロード処理
#
#01:料金コースコード,02:料金サービスコード,03:料金サービス略称
sh ${G_TOOLSH}/EOKULD02.sh ${ULDSQL_AC0181} ${ULDFILE_AC0181}

nkf -x -w --overwrite ${ULDFILE_AC0181}

#--- ⑤ マッチング処理
#
# 請求内訳と料金サービス管理のマッチング処理を実行する
#
export TMPFILE_CH0101
export ULDFILE_AC0181
export ZTLOUTFILE=${TMPFILE_CH0101_MATCH_2}
${G_TOOLSH}/util/bin/ZTLMAT01 ${MATCHDEF_CH0101_1}
#01:請求契約番号,02:サービス契約番号,03:料金項目コード,04:精算金・違約金区分,05:金額,06:請求番号,07:請求年月,08:整理番号,
#09:料金グループコード,10:料金コースコード,11:料金サービスコード,12:サービス識別番号,13:請求内訳番号,14:料金サービス略称


#--- ⑥ 集約処理
#
# bsortでソートキーによってソートする。
# ソートキー:請求契約番号,サービス契約番号,精算金・違約金区分 
bsortex -sort key=0.10asca,1.10asca,3.1asca -record recform=txtcsv -input reclen=900 file=${TMPFILE_CH0101_MATCH_2} \
        -output file=${TMPFILE_CH0101_MATCH_2_SORT}


#--- 集約ファイルのクリアを行う
#
cat /dev/null > ${TMPFILE_CH0101_1}

OLD_IFS=${IFS}

LASTKEY=""
AMNT=""
ALI=""
TMP_AMNT=""
TMP_BIKO=""
BLANK="　"
COLON="："

while read LINE
do
    IFS=","
    set ${LINE}
    IFS=${OLD_IFS}
    
    #01:請求契約番号,02:サービス契約番号,03:料金項目コード,04:精算金・違約金区分,05:金額,06:請求番号,07:請求年月,08:整理番号,
    #09:料金グループコード,10:料金コースコード,11:料金サービスコード,12:サービス識別番号,13:請求内訳番号,14:料金サービス略称
    # キー（請求契約番号 + サービス契約番号 + 精算金・違約金区分）
    KEY="${1}${2}${4}"
    
    if [ ! "${LASTKEY}" = "" ]
    then
        # キーが退避したキーと一致する場合
        if [ "${KEY}" = "${LASTKEY}" ]
        then
            # 金額を集計
            TMP_AMNT=`expr ${TMP_AMNT} + ${AMNT}`
            if [ "${TMP_BIKO}" = "" ]
            then
                # システム備考を編集
                TMP_BIKO=${ALI}${COLON}${AMNT}
            else
                # システム備考を編集
                TMP_BIKO=${TMP_BIKO}${BLANK}${ALI}${COLON}${AMNT}
            fi
        else
            # 集約しているかの判断
            if [ "${TMP_AMNT}" = "" ]
            then
                #01:請求契約番号,02:サービス契約番号,03:料金項目コード,04:精算金・違約金区分,05:請求精算金金額,06:請求番号,07:請求年月,08:整理番号,
                #09:料金グループコード,10:料金コースコード,11:料金サービスコード,12:サービス識別番号,13:請求内訳番号,14:システム備考
                # 集約が無いのでそのまま出力
                echo "${TMP_LINE_1}"",\"""${AMNT}""\",""${TMP_LINE_2}"",\"""${TMP_BIKO}""\"" >> ${TMPFILE_CH0101_1}
            else
                # 集約する行分の加算
                TMP_AMNT=`expr ${TMP_AMNT} + ${AMNT}`
                TMP_BIKO=${TMP_BIKO}${BLANK}${ALI}${COLON}${AMNT}
                # 集約した結果を出力
                echo "${TMP_LINE_1}"",\"""${TMP_AMNT}""\",""${TMP_LINE_2}"",\"""${TMP_BIKO}""\"" >> ${TMPFILE_CH0101_1}
            fi
            TMP_AMNT=""
            TMP_BIKO=""
        fi
    fi
    # 退避して保持
    TMP_LINE_1="${1},${2},${3},${4}"
    TMP_LINE_2="${6},${7},${8},${9},${10},${11},${12},${13}"
    AMNT=$(echo ${5} | sed 's/"//g')
    ALI=$(echo ${14} | sed 's/"//g')
    LASTKEY=${KEY}
    
done < ${TMPFILE_CH0101_MATCH_2_SORT}


# 最終行が集約されているかの判断
if [ -s "${TMPFILE_CH0101_MATCH_2_SORT}" ]
then
    if [ "${TMP_AMNT}" = "" ]
    then
        #01:請求契約番号,02:サービス契約番号,03:料金項目コード,04:精算金・違約金区分,05:請求精算金金額,06:請求番号,07:請求年月,08:整理番号,
        #09:料金グループコード,10:料金コースコード,11:料金サービスコード,12:サービス識別番号,13:請求内訳番号,14:システム備考
        # 集約が無いのでそのまま出力
        echo "${TMP_LINE_1},\"${AMNT}\",${TMP_LINE_2},\"${TMP_BIKO}\"" >> ${TMPFILE_CH0101_1}
    else
        # 集約する最終行分の加算
        TMP_AMNT=`expr ${TMP_AMNT} + ${AMNT}`
        TMP_BIKO=${TMP_BIKO}${BLANK}${ALI}${COLON}${AMNT}
        # 集約した結果を出力
        echo "${TMP_LINE_1},\"${TMP_AMNT}\",${TMP_LINE_2},\"${TMP_BIKO}\"" >> ${TMPFILE_CH0101_1}
    fi
fi


#--- ⑦ 解約レター登録のアンロード処理
#
#--- UNLOAD処理
#
#01:解約レター登録番号,02:解約レター登録年月日,03:解約レター発行区分,04:ネット-請求契約番号,05:TV-請求契約番号,06:電話-請求契約番号,07:ネット-サービス契約番号,
#08:TV-サービス契約番号,09:電話-サービス契約番号,10:ネット-解約精算金,11:テレビ-解約精算金,12:VDSLレンタル違約金,13:プレミアムオプション違約金,14:STBレンタル違約金,
#15:工事費-債権額,16:登録年月日時分秒,17:コメント備考,18:更新年月日時分秒
sh ${G_TOOLSH}/EOKULD02.sh ${ULDSQL_KK3111} ${ULDFILE_KK3111}

nkf -x -w --overwrite ${ULDFILE_KK3111}

#--- ⑧ 解約レター登録のアンロードファイルの抽出処理
#
#--- 抽出ファイルのクリアを行う
#
cat /dev/null > ${TMPFILE_KK3111_1}

OLD_IFS=${IFS}

#--- ネットとテレビの精算金と違約金があるレコードを抜き出す
#
while read LINE
do
    IFS=","
    set ${LINE}
    
    #01:解約レター登録番号,02:解約レター登録年月日,03:解約レター発行区分,04:ネット-請求契約番号,05:TV-請求契約番号,06:電話-請求契約番号,07:ネット-サービス契約番号,
    #08:TV-サービス契約番号,09:電話-サービス契約番号,10:ネット-解約精算金,11:テレビ-解約精算金,12:VDSLレンタル違約金,13:プレミアムオプション違約金,14:STBレンタル違約金,
    #15:工事費-債権額,16:登録年月日時分秒,17:コメント備考,18:更新年月日時分秒
# ANK-3427-00-00 2018/08/17 MOD START
#    TMP_LINE_1=${1},${2},${3},${13},${14},${15}
    TMP_LINE_1=${1},${2},${3},${16},${17},${18}
# ANK-3427-00-00 2018/08/17 MOD END
    
# ANK-3346-01-00 MOD START
#    if [ "${8}" != '""' -a "${8}" != '"0"' ]
# ANK-3427-00-00 2018/08/17 MOD START
#    if [ "${8}" != '""' ]
    if [ "${10}" != '""' ]
# ANK-3427-00-00 2018/08/17 MOD END
# ANK-3346-01-00 MOD END
    then
        #01:案内精算金金額,02:解約レター登録番号,03:解約レター登録年月日,04:解約レター発行区分,05:登録年月日時分秒,06:コメント備考,
        #07:更新年月日時分秒,08:サービス契約番号,09:精算金・違約金区分,10:請求契約番号
# ANK-3427-00-00 2018/08/17 MOD START
#        echo "${8},${TMP_LINE_1},${6},\"1\",${4}" >> ${TMPFILE_KK3111_1}
        echo "${10},${TMP_LINE_1},${7},\"1\",${4}" >> ${TMPFILE_KK3111_1}
# ANK-3427-00-00 2018/08/17 MOD END
    fi
# ANK-3346-01-00 MOD START
#    if [ "${10}" != '""' -a "${10}" != '"0"' ]
# ANK-3427-00-00 2018/08/17 MOD START
#    if [ "${10}" != '""' ]
    if [ "${12}" != '""' ]
# ANK-3427-00-00 2018/08/17 MOD END
# ANK-3346-01-00 MOD END
    then
# ANK-3427-00-00 2018/08/17 MOD START
#        echo "${10},${TMP_LINE_1},${6},\"3\",${4}" >> ${TMPFILE_KK3111_1}
        echo "${12},${TMP_LINE_1},${7},\"3\",${4}" >> ${TMPFILE_KK3111_1}
# ANK-3427-00-00 2018/08/17 MOD END
    fi
# ANK-3346-01-00 MOD START
#    if [ "${11}" != '""' -a "${11}" != '"0"' ]
# ANK-3427-00-00 2018/08/17 MOD START
#    if [ "${11}" != '""' ]
    if [ "${13}" != '""' ]
# ANK-3427-00-00 2018/08/17 MOD END
# ANK-3346-01-00 MOD END
    then
# ANK-3427-00-00 2018/08/17 MOD START
#        echo "${11},${TMP_LINE_1},${6},\"4\",${4}" >> ${TMPFILE_KK3111_1}
        echo "${13},${TMP_LINE_1},${7},\"4\",${4}" >> ${TMPFILE_KK3111_1}
# ANK-3427-00-00 2018/08/17 MOD END
    fi
# ANK-3346-01-00 MOD START
#    if [ "${9}" != '""' -a "${9}" != '"0"' ]
# ANK-3427-00-00 2018/08/17 MOD START
#    if [ "${9}" != '""' ]
    if [ "${11}" != '""' ]
# ANK-3427-00-00 2018/08/17 MOD END
# ANK-3346-01-00 MOD END
    then
# ANK-3427-00-00 2018/08/17 MOD START
#        echo "${9},${TMP_LINE_1},${7},\"2\",${5}" >> ${TMPFILE_KK3111_1}
        echo "${11},${TMP_LINE_1},${8},\"2\",${5}" >> ${TMPFILE_KK3111_1}
# ANK-3427-00-00 2018/08/17 MOD END
    fi
# ANK-3346-01-00 MOD START
#    if [ "${12}" != '""' -a "${12}" != '"0"' ]
# ANK-3427-00-00 2018/08/17 MOD START
#    if [ "${12}" != '""' ]
    if [ "${14}" != '""' ]
# ANK-3427-00-00 2018/08/17 MOD END
# ANK-3346-01-00 MOD END
    then
# ANK-3427-00-00 2018/08/17 MOD START
#        echo "${12},${TMP_LINE_1},${7},\"5\",${5}" >> ${TMPFILE_KK3111_1}
        echo "${14},${TMP_LINE_1},${8},\"5\",${5}" >> ${TMPFILE_KK3111_1}
# ANK-3427-00-00 2018/08/17 MOD END
    fi
# ANK-3427-00-00 2018/08/17 ADD START
# IT1-2018-0000151 2018/09/08 ADD START
    # ネット-サービス契約番号が存在する かつ 電話-サービス契約番号が存在する
    # かつ 工事費-債権額が存在する場合、ネットと電話それぞれの工事費-債権額を出力
    if [ "${7}" != '""' -a "${9}" != '""' -a "${15}" != '""' ]
    then
        echo "${15},${TMP_LINE_1},${7},\"6\",${4}" >> ${TMPFILE_KK3111_1}
        echo "${15},${TMP_LINE_1},${9},\"6\",${6}" >> ${TMPFILE_KK3111_1}
# IT1-2018-0000151 2018/09/08 ADD END
    # ネット-サービス契約番号が存在する かつ 工事費-債権額が存在する場合、
    # ネットの情報で工事費-債権額を出力
# IT1-2018-0000151 2018/09/08 MOD START
#    if [ "${7}" != '""' -a "${15}" != '""' ]
     elif [ "${7}" != '""' -a "${15}" != '""' ]
# IT1-2018-0000151 2018/09/08 MOD END
    then
        echo "${15},${TMP_LINE_1},${7},\"6\",${4}" >> ${TMPFILE_KK3111_1}
# IT1-2018-0000151 2018/09/08 MOD START
#    # 電話-サービス契約番号が存在する かつ 工事費-債権額が存在する かつ 工事費-債権額が0円でない場合、
#    # 電話の情報で工事費-債権額を出力
#    elif [ "${9}" != '""' -a "${15}" != '""' -a "${15}" != '"0"' ]
     # 電話-サービス契約番号が存在する かつ 工事費-債権額が存在する場合、
     # 電話の情報で工事費-債権額を出力
    elif [ "${9}" != '""' -a "${15}" != '""' ]
# IT1-2018-0000151 2018/09/08 MOD END
    then
        echo "${15},${TMP_LINE_1},${9},\"6\",${6}" >> ${TMPFILE_KK3111_1}
    fi
# ANK-3427-00-00 2018/08/17 ADD END
    
done < ${ULDFILE_KK3111}

IFS=${OLD_IFS}

# OM-2021-0000556 2021/11/29 ADD START
#--- 解約レター登録のアンロード処理
#
#--- UNLOAD処理
#
#01:解約レター登録番号,02:解約レター登録年月日,03:解約レター発行区分,04:ネット-請求契約番号,05:TV-請求契約番号,06:電話-請求契約番号,07:ネット-サービス契約番号,
#08:TV-サービス契約番号,09:電話-サービス契約番号,10:ネット-解約精算金,11:テレビ-解約精算金,12:VDSLレンタル違約金,13:プレミアムオプション違約金,14:STBレンタル違約金,
#15:工事費-債権額,16:登録年月日時分秒,17:コメント備考,18:更新年月日時分秒,19:SYSID
sh ${G_TOOLSH}/EOKULD02.sh ${ULDSQL_KK3111_2} ${ULDFILE_KK3111_2}

nkf -x -w --overwrite ${ULDFILE_KK3111_2}

# サービス契約と解約レター登録のマッチング
#
#01:解約レター登録番号,02:解約レター登録年月日,03:解約レター発行区分,04:ネット-請求契約番号,05:TV-請求契約番号,06:電話-請求契約番号,07:ネット-サービス契約番号,
#08:TV-サービス契約番号,09:電話-サービス契約番号,10:ネット-解約精算金,11:テレビ-解約精算金,12:VDSLレンタル違約金,13:プレミアムオプション違約金,14:STBレンタル違約金,
#15:工事費-債権額,16:登録年月日時分秒,17:コメント備考,18:更新年月日時分秒,19:SYSID
export TMPFILE_KK0081_NET_2
export ULDFILE_KK3111_2
export ZTLOUTFILE=${TMPFILE_KK3111_MATCH}
${G_TOOLSH}/util/bin/ZTLMAT01 ${MATCHDEF_KK3111_2}

#--- 解約レター登録のアンロードファイルの抽出処理
#
#--- 抽出ファイルのクリアを行う
#
cat /dev/null > ${TMPFILE_KK3111_1_2}

OLD_IFS=${IFS}


while read LINE
do
    IFS=","
    set ${LINE}
    
    #01:解約レター登録番号,02:解約レター登録年月日,03:解約レター発行区分,04:ネット-請求契約番号,05:TV-請求契約番号,06:電話-請求契約番号,07:ネット-サービス契約番号,
    #08:TV-サービス契約番号,09:電話-サービス契約番号,10:ネット-解約精算金,11:テレビ-解約精算金,12:VDSLレンタル違約金,13:プレミアムオプション違約金,14:STBレンタル違約金,
    #15:工事費-債権額,16:登録年月日時分秒,17:コメント備考,18:更新年月日時分秒,19:サービス契約番号
    TMP_LINE_1=${1},${2},${3},${18},${17},${18}

    # ネット-サービス契約番号が存在しない かつ 工事費-債権額が存在する場合、
    # サービス契約番号と工事費-債権額と電話の請求契約番号を出力
    if [ "${7}" = '""' -a "${15}" != '""' ]
    then
        echo "${15},${TMP_LINE_1},${19},\"6\",${6}" >> ${TMPFILE_KK3111_1_2}
    fi
    # ネット-サービス契約番号が存在する かつ 工事費-債権額が存在する場合、
    # ネットの情報で工事費-債権額を出力
    if [ "${7}" != '""' -a "${15}" != '""' ]
    then
        echo "${15},${TMP_LINE_1},${7},\"6\",${4}" >> ${TMPFILE_KK3111_1_2}
    fi
    
done < ${TMPFILE_KK3111_MATCH}

IFS=${OLD_IFS}
# 集約する
cat ${TMPFILE_KK3111_1_2} >> ${TMPFILE_KK3111_1}
# OM-2021-0000556 2021/11/29 ADD END

# bsortでソートキーによってソートし、マージキーが一致しているレコードの登録年月日時分秒が最大のレコード以外を削除する。
# ソートキー:請求契約番号,サービス契約番号,精算金・違約金区分,登録年月日時分秒(登録年月日時分秒だけ降順)
# OM-2021-0000556 2021/11/29 MOD START
#bsortex -sort key=9.10asca,7.10asca,8.1asca,4.17ascr -record recform=txtcsv -input reclen=800 file=${TMPFILE_KK3111_1} \
#        | bsortex -merge key="9.10asca,7.10asca,8.1asca" -record recform=txtcsv \
#              -input reclen=800 -summary suppress first \
#              -output file=${TMPFILE_KK3111_1_DEL}
bsortex -sort key=9.10asca,7.10asca,8.1asca,4.17ascr -record recform=txtcsv -input reclen=800 file=${TMPFILE_KK3111_1} \
        | bsortex -merge key="9.10asca,7.10asca,8.1asca" -record recform=txtcsv \
              -input reclen=800 -summary suppress first \
              -output file=${TMPFILE_KK3111_1_DEL_WK}
# OM-2021-0000556 2021/11/29 MOD END

# OM-2021-0000556 2021/11/29 ADD START
# bsortでソートキーによってソートし、マージキーが一致しているレコードの登録年月日時分秒が最大のレコード以外を削除する。
# ソートキー:請求契約番号,精算金・違約金区分,登録年月日時分秒(登録年月日時分秒だけ降順)
bsortex -sort key=9.10asca,8.1asca,4.17ascr -record recform=txtcsv -input reclen=800 file=${TMPFILE_KK3111_1_DEL_WK} \
        | bsortex -merge key="9.10asca,8.1asca" -record recform=txtcsv \
              -input reclen=800 -summary suppress first \
              -output file=${TMPFILE_KK3111_1_DEL}
# OM-2021-0000556 2021/11/29 ADD END

#01:案内精算金金額,02:解約レター登録番号,03:解約レター登録年月日,04:解約レター発行区分,05:登録年月日時分秒,06:コメント備考,
#07:更新年月日時分秒,08:サービス契約番号,09:精算金・違約金区分,10:請求契約番号


#--- ⑨ マッチング処理
#
# 請求内訳と解約レター登録のマッチング処理を実行する
#
export TMPFILE_CH0101_1
export TMPFILE_KK3111_1_DEL
export ZTLOUTFILE=${TMPFILE_CH0101_MATCH_3}
${G_TOOLSH}/util/bin/ZTLMAT01 ${MATCHDEF_CH0101_2}
#01:請求契約番号,02:サービス契約番号,03:料金項目コード,04:精算金・違約金区分,05:請求精算金金額,06:案内精算金金額,07:請求番号,08:請求年月,09:整理番号,
#10:料金グループコード,11:料金コースコード,12:料金サービスコード,13:サービス識別番号,14:請求内訳番号,15:解約レター登録番号,16:解約レター登録年月日,
#17:解約レター発行区分,18:登録年月日時分秒,19:コメント備考,20:システム備考,21:更新年月日時分秒

#--- 抽出ファイルのクリアを行う
#
cat /dev/null > ${OUTFILE_KKIFM755}

OLD_IFS=${IFS}

#--- レコードの末尾に「特例データ区分」を追加する
#
while read LINE
do
    echo "${LINE},\"1\"" >> ${OUTFILE_KKIFM755}
done < ${TMPFILE_CH0101_MATCH_3}


# 解約精算金検証・解約レター登録情報特例データ抽出ファイルを
# 解約精算金検証・マッチングファイルに追記する
cat ${OUTFILE_KKIFM755} >> ${FILE_PATH_KKIFM754}


#--- ⑩ 中間ファイル削除
#
# OM-2021-0000556 2022/05/17 MOD START
# OM-2021-0000556 2021/11/29 MOD START
#rm -f ${TMPFILE_KK0081} ${TMPFILE_CH0101} ${ULDFILE_CH0101} ${ULDFILE_ZM0321} ${ULDFILE_ZM0321_1} ${ULDFILE_AC0181} ${TMPFILE_CH0101_1} \
#${ULDFILE_KK3111} ${TMPFILE_KK3111_1} ${TMPFILE_CH0101_MATCH_1} ${TMPFILE_CH0101_MATCH_2} ${TMPFILE_KK3111_1_DEL} ${TMPFILE_CH0101_MATCH_2_SORT} \
#${TMPFILE_CH0101_MATCH_3} 
#rm -f ${TMPFILE_KK0081} ${TMPFILE_CH0101} ${ULDFILE_CH0101} ${ULDFILE_ZM0321} ${ULDFILE_ZM0321_1} ${ULDFILE_AC0181} ${TMPFILE_CH0101_1} \
#${ULDFILE_KK3111} ${TMPFILE_KK3111_1} ${TMPFILE_CH0101_MATCH_1} ${TMPFILE_CH0101_MATCH_2} ${TMPFILE_KK3111_1_DEL} ${TMPFILE_CH0101_MATCH_2_SORT} \
#${TMPFILE_CH0101_MATCH_3} ${TMPFILE_KK0081_WK} ${TMPFILE_KK0081_NET} ${TMPFILE_KK0081_NET_2} ${ULDFILE_KK3111_2} ${TMPFILE_KK3111_1_2} ${TMPFILE_KK3111_MATCH} ${TMPFILE_KK3111_1_DEL_WK}
# OM-2021-0000556 2021/11/29 MOD END
rm -f ${TMPFILE_KK0081} ${TMPFILE_CH0101} ${ULDFILE_CH0101} ${ULDFILE_ZM0321} ${ULDFILE_ZM0321_1} ${ULDFILE_AC0181} ${TMPFILE_CH0101_1} \
${ULDFILE_KK3111} ${TMPFILE_KK3111_1} ${TMPFILE_CH0101_MATCH_1} ${TMPFILE_CH0101_MATCH_2} ${TMPFILE_KK3111_1_DEL} ${TMPFILE_CH0101_MATCH_2_SORT} \
${TMPFILE_CH0101_MATCH_3} ${TMPFILE_KK0081_WK} ${TMPFILE_KK0081_NET} ${TMPFILE_KK0081_NET_2} ${ULDFILE_KK3111_2} ${TMPFILE_KK3111_1_2} ${TMPFILE_KK3111_MATCH} ${TMPFILE_KK3111_1_DEL_WK} \
${ULDFILE_CH0101_WK} ${ULDFILE_CH0231_02}
# OM-2021-0000556 2022/05/17 MOD END

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

exit ${G_RTN_NORMAL}
