#!/bin/bash
##############################################################
# システム名    ：eo顧客基幹システム
#
# サブシステム名：料金管理
#
# シェル名      ：課金対象工事費割賦契約抽出
#
# 機能          ：「課金対象サービス契約情報」の「料金サービス識別コード」が"5"（工事費割賦）の場合、
#「工事費割賦契約」スキーマを参照し、料金計算に必要な情報を取得する。
#
#
# コマンド形式  ：EO3015120J0.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
# v36.00.00        2018/01/19  FJ)鈴木     【ANK-3296-00-00】新規作成
# v52.00.00        2020/12/25  FJ)星野     【ANK-3851-00-00】収益認識基準変更対応
##############################################################

##############################################################
# 環境変数定義
##############################################################

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

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

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

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

#
#---OPD
#
OPD=$1

#
#---業務で必要な変数定義
#


#--- 入力ファイル
# 課金対象サービス契約情報ソート（ソート済）
INFILE1=${MID_DIR_AC}/ACIFI015012.csv
# 工事費割賦契約（アンロードデータ）
INFILE2=${MID_DIR_KK}/KKIFM775001_crnt.csv

#--- マッチングツール定義ファイル
# マッチングツール定義ファイル(課金対象サービス契約情報ソート（ソート済）-工事費割賦契約（アンロードデータ）)
MATCHDEF_KK3131=${G_TOOLSH}/util/def/AC_CM_0131.def

#--- 一時ファイル
# 課金対象サービス契約情報ソート（ソート済）複製ファイル
TEMP_ACIFI015012_0=${MID_DIR_AC}/ACIFI015012_CP_EO3015120J0.csv
# 工事費割賦契約（アンロード）複製ファイル
TEMP_KK3131_0=${MID_DIR_KK}/KK3131_CP_EO3015120J0.csv
TEMP_KK3131_1=${MID_DIR_KK}/KK3131_SORT_EO3015120J0.csv
# 課金対象サービス契約情報ソート（マッチング用）ファイル
TEMP_ACIFI015012_1=${MID_DIR_AC}/ACIFI015012_MATCH_EO3015120J0.csv
# 工事費割賦契約（マッチング用）ファイル
TEMP_KK3131_2=${MID_DIR_KK}/KK3131_MATCH_EO3015120J0.csv
# 工事費割賦契約（マッチング用）ファイル
TEMP_KK3131_3=${MID_DIR_KK}/KK3131_MATCH_EDIT_EO3015120J0.csv
# マッチング結果ファイル
MATCH_ACIFM294001=${MID_DIR_AC}/ACIFM294001_MATCH_EO3015120J0.csv

#--- 出力ファイル
# 課金対象工事費割賦情報ファイル
OUTFILE=${MID_DIR_AC}/ACIFM294001.csv



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


#
#--- マッチング処理
#      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}
}



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


sh ${G_TOOLSH}/EOK010210J0.sh CS00027I $JOBNAME


#
#--- 課金対象サービス契約情報ソート（ソート済）ファイルの複製
#
# ファイルの存在チェック
if [ ! -r ${INFILE1} ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist(${INFILE1}) "
    echo $JOBNAME " File is nonexist(${INFILE1}) "
    exit ${G_RTN_ERROR}
fi
cp -fp ${INFILE1} ${TEMP_ACIFI015012_0}




#
#--- 工事費割賦契約（アンロード）ファイルの複製
#
# ファイルの存在チェック
if [ ! -r ${INFILE2} ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist(${INFILE2}) "
    echo $JOBNAME " File is nonexist(${INFILE2}) "
    exit ${G_RTN_ERROR}
fi
cp -fp ${INFILE2} ${TEMP_KK3131_0}

# ＳＯＲＴ
# キー：初回請求サービス契約番号
BSORT_DEF_KK3131="@FIRST_SEIKY_SVC_KEI_NO=4.10"

# ANK-3851-00-00対応 20201225 星野 MOD START
#bsortex -define ${BSORT_DEF_KK3131}  -sort key=@FIRST_SEIKY_SVC_KEI_NOasc -record recform=txtcsv \
#        -input file=${TEMP_KK3131_0} reclen=130 \
#        -output file=${TEMP_KK3131_1}  

bsortex -define ${BSORT_DEF_KK3131}  -sort key=@FIRST_SEIKY_SVC_KEI_NOasc -record recform=txtcsv \
        -input file=${TEMP_KK3131_0} reclen=150 \
        -output file=${TEMP_KK3131_1}  
# ANK-3851-00-00対応 20201225 星野 MOD END
rc=$?
if [ $rc -ne 0 ]
then
    BSORT_ERROR ${rc} ${TEMP_KK3131_0}
fi



# ---1 課金対象サービス契約情報ソート（ソート済）
# 
# 抽出条件：「料金サービス識別コード」= "5"（工事費割賦）
#出力ファイルの改行コード変換(CRLF→LF)
BSORT_DEF_ACIFI015012="@PRC_SVC_SKBT_CD=1.1"
bsortex -define ${BSORT_DEF_ACIFI015012} -copy -record recform=txtcsv \
        -input file=${TEMP_ACIFI015012_0} reclen=370 \
         include="@PRC_SVC_SKBT_CDasc.eq.'5'" \
        -output file=${TEMP_ACIFI015012_1} linedlmt=lf
         
rc=$?
if [ $rc -ne 0 ]
then
    BSORT_ERROR ${rc} ${TEMP_ACIFI015012_0}
fi



# ---2 工事費割賦契約（アンロードデータ）の抽出
#
# 抽出条件：割賦ステータス = '030'、残回数 = '0'以外
BSORT_DEF_KK3131="@KAP_KEI_STAT=2.3 @KAP_PAY_ZAN_CNT=10.3 @KOJIHI_KAP_KEI_NO=0.12 @KAP_PLAN_CD=3.6 @KAP_IKT_SIKY_SWCH_YM=6.6 @KAP_SEIKY_STA_YM=9.6 @KAP_SEIKY_ZUMI_CNT=11.3 @FIRST_SEIKY_SVC_KEI_NO=4.10"

# ANK-3851-00-00対応 20201225 星野 MOD START
#bsortex -define ${BSORT_DEF_KK3131} -copy -record recform=txtcsv \
#        -input file=${TEMP_KK3131_1} reclen=130 \
#         include="@KAP_KEI_STATasc.eq.'030'.and.@KAP_PAY_ZAN_CNTascn.ne.'0'" \
#        -output file=${TEMP_KK3131_2} \
#         reconst="@KOJIHI_KAP_KEI_NO,@KAP_PLAN_CD,@KAP_IKT_SIKY_SWCH_YM,@KAP_PAY_ZAN_CNT,@KAP_SEIKY_STA_YM,@KAP_SEIKY_ZUMI_CNT,@FIRST_SEIKY_SVC_KEI_NO"

bsortex -define ${BSORT_DEF_KK3131} -copy -record recform=txtcsv \
        -input file=${TEMP_KK3131_1} reclen=150 \
         include="@KAP_KEI_STATasc.eq.'030'.and.@KAP_PAY_ZAN_CNTascn.ne.'0'" \
        -output file=${TEMP_KK3131_2} \
         reconst="@KOJIHI_KAP_KEI_NO,@KAP_PLAN_CD,@KAP_IKT_SIKY_SWCH_YM,@KAP_PAY_ZAN_CNT,@KAP_SEIKY_STA_YM,@KAP_SEIKY_ZUMI_CNT,@FIRST_SEIKY_SVC_KEI_NO"
# ANK-3851-00-00対応 20201225 星野 MOD END
rc=$?
if [ $rc -ne 0 ]
then
    BSORT_ERROR ${rc} ${TEMP_KK3131_1}
fi

# ダブルクォーテーション削除
sed -e 's/"//g' ${TEMP_KK3131_2} > ${TEMP_KK3131_3}

# ---3 マッチング
#
# 課金対象サービス契約情報ソートファイル、工事費割賦契約（アンロード）ファイルをマッチング
export TEMP_ACIFI015012_1
export TEMP_KK3131_3
EXEC_MATCHING ${MATCH_ACIFM294001} ${MATCHDEF_KK3131}


#----4 固定値設定
# 料金項目コード、徴収パターンコード料金
# 利用不可適用方法、前受相殺優先順位、上限判定優先順位、割引繰越可否

bsortex -copy -record recform=txtcsv \
        -input file=${MATCH_ACIFM294001} reclen=300 \
        -output file=${OUTFILE} linedlmt=crlf \
        reconst="0.10,1.6,2.14,3.12,4.11,5.20,6.12,7.1,8.2,9.3,10.12,EMPTY,EMPTY,EMPTY,11.8,12.8,13.8,14.8,15.8,16.4,17.8,18.2,19.2,20.1,21.2,'0'.1asc,'0'.1asc,'0'.1asc,EMPTY,'0'.1asc,22.30,23.12,24.6,25.6,26.3,27.6,28.3"
rc=$?
if [ $rc -ne 0 ]
then
    BSORT_ERROR ${rc} ${MATCH_ACIFM294001}
fi

# 一時ファイル削除
rm -f ${TEMP_ACIFI015012_0}
rm -f ${TEMP_KK3131_0}
rm -f ${TEMP_ACIFI015012_1}
rm -f ${TEMP_KK3131_1}
rm -f ${TEMP_KK3131_2}
rm -f ${TEMP_KK3131_3}
rm -f ${MATCH_ACIFM294001}

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

exit ${G_RTN_NORMAL}
