#!/bin/bash
##############################################################
# システム名    ：eo顧客基幹システム
#
# サブシステム名：物流管理
#
# シェル名      ：出荷指図情報登録（随時）
#
# 機能          ：出荷指図情報の登録を行う。
#
# コマンド形式  ：EO5050000J0.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
# v14.00.00       2015/06/15  FJ)窪田      OM-2015-0001444対応
#
##############################################################

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

#
#---ツール格納場所
#
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}/EO5050410_stop.flg

#中間ファイル（配送指示依頼ファイル）
MID_FILE=${MID_DIR_DK}/EO5050710J0.csv

#スキップフラグファイル
FLG_FILE=${BUS_LOG_DIR_DK}/EO5050000_Skip.flg

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

#エラーフラグ
ERR_CD=$G_RTN_NORMAL

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

#多重制御ファイルが存在する場合、ファイルが削除されるまで待機する
if [ -e $STOP_FILE ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00026I $JOBNAME
    exit ${G_RTN_NORMAL}
fi

#多重制御ファイルを作成する
touch $STOP_FILE

# 配送指示依頼情報取得
sh ${BASE_DIR}/EO5050710J0.sh $OPD
ERR_CD=$(( $? == G_RTN_NORMAL ? ERR_CD : $? ))

#エラーの場合は、エラーコードを返して終了する
if [ $ERR_CD != $G_RTN_NORMAL ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00026I $JOBNAME
    exit ${ERR_CD}
fi

#ファイルの中身が存在する場合は後続処理を実行する
if [ -s $MID_FILE ]
then

    # 宅内機器物流在庫取得依頼ファイル作成（工事予定３）
    sh ${BASE_DIR}/EO5030210J2.sh "$OPD"
    ERR_CD=$(( $? == G_RTN_NORMAL ? ERR_CD : $? ))    

    # 宅内機器物流在庫取得依頼ファイル転送（工事予定３）
    if [ $ERR_CD == $G_RTN_NORMAL ] 
    then
        sh ${BASE_DIR}/EO50H0110J7.sh "$OPD"
        ERR_CD=$(( $? == G_RTN_NORMAL ? ERR_CD : $? ))
    fi

    # 宅内機器物流在庫情報取込（工事予定３）
    if [ $ERR_CD == $G_RTN_NORMAL ] 
    then
        sh ${BASE_DIR}/EO50H0210J7.sh "$OPD"
        ERR_CD=$(( $? == G_RTN_NORMAL ? ERR_CD : $? ))
    fi

    # 宅内機器型式コード確定更新（随時）
    if [ $ERR_CD == $G_RTN_NORMAL ] 
    then
        sh ${BASE_DIR}/EO5030110J2.sh "$OPD"
        ERR_CD=$(( $? == G_RTN_NORMAL ? ERR_CD : $? ))
    fi

    # 宅内機器物流在庫更新依頼ファイル作成（工事予定３）
    if [ $ERR_CD == $G_RTN_NORMAL ] 
    then
        sh ${BASE_DIR}/EO5030410J2.sh "$OPD"
        ERR_CD=$(( $? == G_RTN_NORMAL ? ERR_CD : $? ))
    fi

    # 宅内機器取得依頼ファイル作成（出荷指図４）
    if [ $ERR_CD == $G_RTN_NORMAL ] 
    then
        sh ${BASE_DIR}/EO5050410J3.sh "$OPD"
        ERR_CD=$(( $? == G_RTN_NORMAL ? ERR_CD : $? ))
    fi

    # 宅内機器取得依頼ファイル転送（出荷指図４）
    if [ $ERR_CD == $G_RTN_NORMAL ] 
    then
        sh ${BASE_DIR}/EO50I0110J3.sh "$OPD"
        ERR_CD=$(( $? == G_RTN_NORMAL ? ERR_CD : $? ))
    fi

    # 宅内機器物流在庫取得依頼ファイル作成（出荷指図４）
    if [ $ERR_CD == $G_RTN_NORMAL ] 
    then
        sh ${BASE_DIR}/EO5050510J3.sh "$OPD"
        ERR_CD=$(( $? == G_RTN_NORMAL ? ERR_CD : $? ))
    fi

    # 宅内機器物流在庫取得依頼ファイル転送（出荷指図４）
    if [ $ERR_CD == $G_RTN_NORMAL ] 
    then
        sh ${BASE_DIR}/EO50H0110J3.sh "$OPD"
        ERR_CD=$(( $? == G_RTN_NORMAL ? ERR_CD : $? ))
    fi

    # 宅内機器情報取込（出荷指図４）
    if [ $ERR_CD == $G_RTN_NORMAL ] 
    then
        sh ${BASE_DIR}/EO50I0210J3.sh "$OPD"
        ERR_CD=$(( $? == G_RTN_NORMAL ? ERR_CD : $? ))
    fi

    # 宅内機器物流在庫情報取込（出荷指図４）
    if [ $ERR_CD == $G_RTN_NORMAL ] 
    then
        sh ${BASE_DIR}/EO50H0210J3.sh "$OPD"
        ERR_CD=$(( $? == G_RTN_NORMAL ? ERR_CD : $? ))
    fi

    # 配送分割登録
    if [ $ERR_CD == $G_RTN_NORMAL ] 
    then
        sh ${BASE_DIR}/EO5050910J1.sh "$OPD"
        ERR_CD=$(( $? == G_RTN_NORMAL ? ERR_CD : $? ))
    fi

    # 出荷指図情報登録
    if [ $ERR_CD == $G_RTN_NORMAL ] 
    then
        sh ${BASE_DIR}/EO5050110J3.sh "$OPD"
        ERR_CD=$(( $? == G_RTN_NORMAL ? ERR_CD : $? ))
    fi

    # 配送指示依頼ステータス更新
    sh ${BASE_DIR}/EO5050810J0.sh "$OPD" "$ERR_CD"
    ERR_CD=$?
    # ステータス更新でエラーの場合は、エラーを返して終了する
    if [ $ERR_CD != $G_RTN_NORMAL ]
    then
        sh ${G_TOOLSH}/EOK010210J0.sh CS00026I $JOBNAME
        exit ${ERR_CD}
    fi

else
    # OM-2015-0001444 DEL START
    # rm -f $STOP_FILE
    # rm -f ${MID_FILE}
    # OM-2015-0001444 DEL END
    # OM-2015-0001444 MOD START
    #ファイルが空の場合はスキップファイルを作成し、中間ファイルを削除する
    touch ${FLG_FILE}
    rm -f ${MID_FILE}
    rc=$?
    if [ $rc -ne 0 ] ; then
        echo "スキップファイルの作成に失敗しました。"
        sh ${G_TOOLSH}/EOK010210J0.sh CS00026I $JOBNAME
        exit ${G_RTN_ERROR}
    fi
#    touch ${FLG_FILE} 
#    rc=$?
#    if [ $rc -ne 0 ] ; then
#        echo "スキップファイルの作成に失敗しました。"
#        sh ${G_TOOLSH}/EOK010210J0.sh CS00026I $JOBNAME
#        exit ${G_RTN_ERROR}
#    fi
    # OM-2015-0001444 MOD END
fi

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

exit $G_RTN_NORMAL
