#!/bin/bash
##############################################################
# システム名    ：eo顧客基幹システム
#
# サブシステム名：契約管理
#
# シェル名      ：ＩＤ登録証印刷情報ファイル作成（非営業日・日中）
#
# 機能          ：DENシステム向けに転送されるID登録証情報ファイルを作成する。
#
# コマンド形式  ：EO2FG0310J0.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
# 26.0.0         2016/08/23   FJ)松本      ANK-2984-00-00 OPMSへのID通知書データ連携の物流非営業日対応
#
##############################################################

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

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

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

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

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

#
#---OPD
#
OPD=$1

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

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

#
#---運用日時取得
#
#SYS_YMDHMSS=`date +'%Y%m%d%H%M%S'`
. EOK010410J0.sh 2

#
#---外部インターフェースID
#
GAIBU_IF_ID=KKIFE325
##############################################################
# 業務処理
##############################################################
sh ${G_TOOLSH}/EOK010210J0.sh CS00025I $JOBNAME



#
#--- アンロード関数
#       p1：テーブル名／クエリファイル名
EXEC_UNLOAD()
{
    # 出力ファイルの初期化
    cat /dev/null > $2
    rc=$?
    if [ $rc -ne 0 ]
    then
        sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File cat error($2:rc=$rc) "
        echo $JOBNAME " File cat error($2:rc=$rc) "
        return ${G_RTN_WARN}
    fi
    
    # unload(KK_T_CRECARD)
    sh ${G_TOOLSH}/EOKULD02.sh $1 $2
    
    rc=$?
    if [ $rc -ne 0 ]
    then
        sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " unload error($2:rc=$rc) "
        echo $JOBNAME " unload error($2:rc=$rc) "
        return ${G_RTN_WARN}
    fi
    
    return ${G_RTN_NORMAL}
}

#--- クエリ編集
#       p1：ＳＱＬ定義ファイル名
#       p2：バインド変数置換文字
EDIT_ULD_QUERY()
{
    SQL_FILE=$1
    SQL_WORK_FILE=${ULD_WORK_DIR}/${JOBNAME}_QUERY.tmp
    cat /dev/null > ${SQL_WORK_FILE}
    
    # SQL定義ファイルの編集
    if [ ! -r ${SQL_FILE} ]
    then
        sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist(${SQL_FILE}:rc=$rc) "
        echo $JOBNAME " File is nonexist(${SQL_FILE}:rc=$rc) "
        return ${G_RTN_WARN}
    fi

    # バインド変数を置き換える
    cat ${SQL_FILE} > ${SQL_WORK_FILE}
    
    for bind in $2
    do
        sed -i, -e 0,/?/s/?/"'"$bind"'"/ ${SQL_WORK_FILE}
    done
    
    export SQL_WORK_FILE
    
    return ${G_RTN_NORMAL}
}

#
# ファイルの削除
#
REMOVE_FILE()
{
    for FILE in $@
    do
        rm ${FILE}
    done
}

#
#--- ファイル定義
#
SQLFILE_ZM0291=${SQL_DIR}/KK_U_ZM0291_01.sql
OUTFILE_ZM0291=${MID_DIR_KK}/KKIFM716001.csv


EDIT_ULD_QUERY ${SQLFILE_ZM0291} ${RSLT_OPEDATE}
rc=$?
if [ $rc -ne 0 ]
then
    exit ${G_RTN_WARN}
fi

EXEC_UNLOAD ${SQL_WORK_FILE} ${OUTFILE_ZM0291}
rc=$?
if [ $rc -ne 0 ]
then
    exit ${G_RTN_WARN}
fi

#
#---非営業日判定結果取得（非営業日であれば変数LOWCNTに「1」が代入される）
#
LOWCNT=$(wc -l < ${OUTFILE_ZM0291})

#
#---ＩＤ登録証印刷情報ファイル作成（トレーラ部出力）
#    変数LOWCNTに「1」が代入されている場合のみ非営業日であるため、トレーラ部のみのファイルを出力する
#
if [ $LOWCNT -eq 1 ]; then
    OUTPUT_WORK_FILE=${ULD_WORK_DIR}/${JOBNAME}_OUTPUT.tmp
    echo '"93","1","'${RSLT_OPEDATE}'"' > ${OUTPUT_WORK_FILE}
    
    #---改行コード（LF → CRLF）
    nkf -Lw ${OUTPUT_WORK_FILE} > ${GAIBU_SEND_DIR_KK}/${GAIBU_IF_ID}/KKIFE325001_${RSLT_SYSDATE}.csv

    rc=$?

    if [ $rc -ne 0 ]; then
        sh ${G_TOOLSH}/EOK010210J0.sh EKKB0140CE $JOBNAME ${GAIBU_SEND_DIR_KK}/${GAIBU_IF_ID}/KKIFE325001_${RSLT_SYSDATE}.csv
        exit ${G_RTN_WARN}
    fi
fi

#
#--- 一時ファイルの削除
#
REMOVE_FILE ${ULD_WORK_DIR}/${JOBNAME}*

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

exit $rc
