#!/bin/bash
##############################################################
# システム名    ：eo顧客基幹システム
#
# サブシステム名：契約管理
#
# シェル名      ：オプションチャンネル受付履歴ファイル作成
#
# 機能          ：画面から連携された検索条件を元にオプションチャンネル受付履歴ファイルを作成する
#
# コマンド形式  ：EO2EG0110J0.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
#
##############################################################

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

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

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

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

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

#
#---OPD
#
OPD=$1

#---運用日の指定がない場合、運用日付を取得する
if [ "${OPD}" = "" ]; then
   . EOK010310J0.sh "ODATE"
   OPD="${RSLT_OPEDATE}"
fi

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

# 多重制御ファイル
STOP_FILE=${MID_DIR_KK}/${JOBNAME}_stop.flg

# 中間ファイル１（ディレイド処理依頼番号ファイル）
MID_FILE_1=${MID_DIR_KK}/${JOBNAME}_DELYD_IRAI_NO.csv

# 中間ファイル２（オプションチャンネル受付履歴一覧データファイル）
MID_FILE_2=${MID_DIR_KK}/KKIFM617_DATA.csv

# 中間ファイル３（オプションチャンネル受付履歴一覧ヘッダファイル）
MID_FILE_3=${MID_DIR_KK}/KKIFM617_HEAD.csv

# 中間ファイル４（オプションチャンネル受付履歴検索条件ファイル）
MID_FILE_4=${MID_DIR_KK}/KKIFM617_SEARCH.csv

# 中間ファイル５（オプションチャンネル受付履歴一覧CSVファイル）
MID_FILE_5=${MID_DIR_KK}/KKIFM617.csv

# エラーフラグ
ERR_CD=0

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

# 多重制御ファイルが存在する場合、ファイルが削除されるまで待機する
while [ -e $STOP_FILE ]
do
	sleep 10
done
# 多重制御ファイルを作成する
touch ${STOP_FILE}

# オプションチャンネル受付履歴一覧作成処理依頼情報取得
sh ${G_TOOLSH}/EO2EG0111D0.sh $OPD $MID_FILE_1
ERR_CD=$(( $? == G_RTN_NORMAL ? ERR_CD : $? ))

# 処理結果を設定
RESULT_CD=$ERR_CD

if [ $ERR_CD == $G_RTN_NORMAL ] && [ -s $MID_FILE_1 ]
then

    # ディレイド処理依頼情報を1件ずつ処理
    cat ${MID_FILE_1} | while read LINE
    do
        # オプションチャンネル受付履歴一覧抽出
        sh ${G_TOOLSH}/EO2EG0112D0.sh $OPD $LINE $MID_FILE_2 $MID_FILE_3 $MID_FILE_4
        ERR_CD=$(( $? == G_RTN_NORMAL ? ERR_CD : $? ))
        
        # オプションチャンネル受付履歴ファイル作成
        sh ${G_TOOLSH}/EO2EG0113D0.sh $OPD $LINE $ERR_CD $MID_FILE_2 $MID_FILE_3 $MID_FILE_4 $MID_FILE_5
        ERR_CD=$(( $? == G_RTN_NORMAL ? ERR_CD : $? ))
        
        # 中間ファイルの削除
        rm -f $MID_FILE_2
        rm -f $MID_FILE_3
        rm -f $MID_FILE_4
        rm -f $MID_FILE_5
        
        # マイナー発生時は処理結果をマイナーとする
        if [ $ERR_CD == $G_RTN_WARN ]
        then
            RESULT_CD=$ERR_CD
        fi
        
        # 異常終了時はブレーク
        if [ $ERR_CD == $G_RTN_ERROR ]
        then
            RESULT_CD=$ERR_CD
            break
        fi
        
        ERR_CD=$G_RTN_NORMAL
        
    done
fi

# 多重制御ファイル・中間ファイルの削除
rm -f $STOP_FILE
rm -f $MID_FILE_1

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

exit $RESULT_CD