#!/bin/bash
##############################################################
# システム名    ：eo顧客基幹システム
#
# サブシステム名：料金管理
#
# シェル名      ：設備卸契約情報抽出(継続利用契約料金／年間獲得数料金)
#
# 機能          ：設備卸の契約情報を抽出し、設備卸契約情報(継続利用契約料金／年間獲得数料金)を作成する。
#
#
# コマンド形式  ：EO31N0127J0.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
# v39.00.00        2018/9/27 FJ)寺園     ANK-3478-00-00    ｅｏ光設備卸対応(サービス開始対応)
##############################################################

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

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

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

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

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

#
#---OPD
#
OPD=$1

#
#
#---業務で必要な変数定義
#
#--- マッチングツール定義ファイル
# マッチングツール定義ファイル(お客様（アンロードデータ）-サービス契約（アンロードデータ）)
MATCHDEFFILE1=${G_TOOLSH}/util/def/AC_CM_0151.def

#
#--- ファイル定義
#
# 入力ファイル
#　お客様共通アンロード
INFILE1=${MID_DIR_CC}/CCIFM019002.csv
#　サービス契約共通アンロード
INFILE2=${MID_DIR_CC}/CCIFM020002.csv

# 一時ファイル
CUST_SORT=${MID_DIR_AC}/CCIFM019002_sort_EO31N0127J0.csv
SVC_KEI_SORT=${MID_DIR_AC}/CCIFM020002_sort_EO31N0127J0.csv

# 出力ファイル
# 卸先事業者集計情報
OUTFILE=${MID_DIR_AC}/ACIFM311001.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
}

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



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

#
# ファイルの存在チェック
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

#
# ファイルの存在チェック
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

#
#--- 1.お客様共通アンロードファイルの抽出・ソート
#　抽出条件
#	卸先事業者コード≠null
#
#	0.10　SYSID
#	33.2　卸先事業者コード
bsortex -sort key=0.10asc,1.17asc,8.2asc -record recform=txtcsv \
        -input file=${INFILE1} reclen=${ULD2_REC_LEN_CK0011} \
         include="33.2ascn.gt.' '" \
        -output file=${CUST_SORT} \
        reconst="0.10,33.2"

rc=$?
if [ $rc -ne 0 ]
then
    BSORT_ERROR ${rc} ${CUST_SORT}
fi

#
#--- 2.サービス契約共通アンロードファイルの抽出・ソート
#　抽出条件
#	サービス開始年月日≠null
#
#	0.10　サービス契約番号
#	3.10　SYSID
#	4.2　サービスコード
#	22.8　サービス開始年月日
#	30.8　サービス課金終了年月日
bsortex  -sort key=3.10asc,0.10asc,4.2asc -record recform=txtcsv \
        -input file=${INFILE2} reclen=${ULD2_REC_LEN_KK0081} \
         include="22.8asc.gt.' '" \
        -output file=${SVC_KEI_SORT} \
        reconst="0.10,3.10,4.2,22.8,30.8"
rc=$?
if [ $rc -ne 0 ]
then
    BSORT_ERROR ${rc} ${SVC_KEI_SORT}
fi



#
# --- 3.マッチング１
#
# お客様共通アンロード抽出ファイル、サービス契約アンロード抽出ファイルをマッチング
# SYSID
export CUST_SORT
export SVC_KEI_SORT
EXEC_MATCHING ${OUTFILE} ${MATCHDEFFILE1}


# ダブルクォートを削除
#

#
#--- 不要ファイルの削除を行う
#
	rm -f ${CUST_SORT}
	rm -f ${SVC_KEI_SORT}

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

exit ${G_RTN_NORMAL}
