#!/bin/bash
##############################################################
# システム名    ：eo顧客基幹システム
#
# サブシステム名：物流管理
#
# シェル名      ：返品情報登録ディレイド
#
# 機能          ：返品情報の登録を行う
#
# コマンド形式  ：EO50D0000J0.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
echo "OPD[ODATE]=${OPD}"

#
#---業務で必要な変数定義
#
#多重制御ファイル
STOP_FILE=${MID_DIR_DK}/EO50D0000_stop.flg

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

#中間ファイル２（宅内機器情報抽出バッチ(3)送信中間ファイル）
MID_FILE_2=${MID_DIR_DK}/EO50D0310J0_DKIFE039.csv

#中間ファイル３（宅内機器情報抽出バッチ(3)受信中間ファイル）
MID_FILE_3=${MID_DIR_DK}/EO50D0310J0_DKIFE040.csv

#実行場所
BASE_DIR=$(cd $(dirname $0); pwd)

#エラーフラグ
ERR_CD=0

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

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

# 返品処理依頼情報取得
sh ${BASE_DIR}/EO50D0510J0.sh $OPD
ERR_CD=$(( $? == G_RTN_NORMAL ? ERR_CD : $? ))

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

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

    #ディレイド処理依頼番号毎に以下を処理
    for l in `sed -e /^$/d $MID_FILE_1`
    do

        # 宅内機器取得依頼ファイル作成（返品）
        sh ${BASE_DIR}/EO50D0310J0.sh $OPD $l
        ERR_CD=$(( $? == G_RTN_NORMAL ? ERR_CD : $? ))

        # 宅内機器取得依頼ファイル転送（返品）
        if [ $ERR_CD == $G_RTN_NORMAL ]
        then
            sh ${BASE_DIR}/EO50I0110J6.sh $OPD
            ERR_CD=$(( $? == G_RTN_NORMAL ? ERR_CD : $? ))
        fi

        # 宅内機器情報取込（返品）
        if [ $ERR_CD == $G_RTN_NORMAL ]
        then
            sh ${BASE_DIR}/EO50I0210J6.sh $OPD
            ERR_CD=$(( $? == G_RTN_NORMAL ? ERR_CD : $? ))
        fi

        # 返品情報登録
        if [ $ERR_CD == $G_RTN_NORMAL ]
        then
            sh ${BASE_DIR}/EO50D0210J0.sh $OPD $l
            ERR_CD=$(( $? == G_RTN_NORMAL ? ERR_CD : $? ))
        fi

        # マイナー発生時は処理結果をマイナーとする
        if [ $ERR_CD == $G_RTN_WARN ]
        then
            RESULT_CD=$ERR_CD
        fi

        if [ $ERR_CD != $G_RTN_NORMAL ] 
        then
            # 返品処理依頼情報エラー更新
            sh ${BASE_DIR}/EO50D0610J0.sh "$OPD" $l $ERR_CD
            ERR_CD=$(( $? == G_RTN_NORMAL ? 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
rm -f $MID_FILE_2
rm -f $MID_FILE_3

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

exit $RESULT_CD

