#!/bin/bash
########################################################################
#
# システム名    ：eo顧客基幹システム
#
# サブシステム名：料金管理
#
# シェル名      ：インセンティブ料金年間獲得数情報作成
#
# 機能          ：「卸契約者インセンティブ実績管理テーブル」をもとに「インセンティブ料金年間獲得数情報」を作成する。
#
# コマンド形式  ：EO31N0190J0.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日       変更者       障害／仕様変更№
# v39.00.00       2018/11/15   FJ）中野     ANK-3478-01-00  新規作成  ｅｏ光設備卸対応
# v39.00.01       2018/12/05   FJ）中野     IT1-2018-0000231  帳票出力不備対応
#
########################################################################

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

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

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

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

#
#---OPD
#
OPD=$1

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

#--- アンロードSQL定義ファイル
# 請求アンロードSQL定義ファイル
ULDSQL_CH0931_02=${SQL_DIR}/AC_U_CH0931_02.sql

#--- 一時ファイル
# インセンティブ料金計算情報アンロードファイル
ULDFILE_ACIFM328=${MID_DIR_AC}/ACIFM328001.csv

#--- アンロード関数
#       p1：出力ファイル名
#       p2：クエリファイル名
#       p3：バインド変数置換文字
EXEC_UNLOAD()
{
    local _OTF=$1
    local _SQL_FILE=$2
    local _BIND_VAL=$3
    local _SQL_WORK_FILE=${ULD_WORK_DIR}/${JOBNAME}.W_ULD.sql

    # SQLクエリファイル初期化
    cat /dev/null > ${_SQL_WORK_FILE}
    
    # SQL定義ファイルが存在しない場合エラー
    if [ ! -r ${_SQL_FILE} ]
    then
        sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist(${_SQL_FILE}) "
        echo $JOBNAME " File is nonexist(${_SQL_FILE}) "
        exit ${G_RTN_ERROR}
    fi

    cat ${_SQL_FILE} > ${_SQL_WORK_FILE}

    # バインド変数を置き換える
    if [ "${_BIND_VAL}" != "" ]
    then
        for bind in ${_BIND_VAL}
        do
            sed -i -e 0,/?/s/?/"'"$bind"'"/ ${_SQL_WORK_FILE}
        done
    fi

    # 出力ファイルの初期化
    cat /dev/null > ${_OTF}

    # アンロード
    sh ${G_TOOLSH}/EOKULD02.sh ${_SQL_WORK_FILE} ${_OTF}
    rc=$?
    if [ $rc -ne 0 ]
    then
        sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " unload error(${_SQL_FILE}:rc=$rc) "
        echo $JOBNAME " unload error(${_SQL_FILE}:rc=$rc) "
        exit ${G_RTN_ERROR}
    fi

    # 一時ファイル削除
    rm -f ${_SQL_WORK_FILE}
}

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

#
#---インセンティブ計算区分を設定(年間獲得料金 = 3)
#
INCNTV_CALC_DIV=3

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

#---運用月前月取得
UNYO_YM=`echo ${RSLT_OPEDATE} |cut -c 1-6`
UNYO_YM_GESSHO=${UNYO_YM}"01"
UNYO_YM_ZENGETU_MATU=`date -d "1 day ago ${UNYO_YM_GESSHO}" +'%Y%m%d'`
UNYO_YM_ZENGETU=`echo ${UNYO_YM_ZENGETU_MATU} |cut -c 1-6`

#
#---1.インセンティブ料金計算情報のアンロード処理
#
EXEC_UNLOAD ${ULDFILE_ACIFM328} ${ULDSQL_CH0931_02} "${UNYO_YM_ZENGETU_MATU} ${UNYO_YM_ZENGETU_MATU} ${INCNTV_CALC_DIV} ${UNYO_YM_ZENGETU}"
#01:卸先事業者コード,02:卸先事業者名03:サービス契約番号,04:サービスコード,05:サービス開始年月日

#--- 文字コードを編集
nkf -Lu --overwrite ${ULDFILE_ACIFM328}
nkf -x -w80 --overwrite ${ULDFILE_ACIFM328}

#
#---パラメタ定義
#
#v39.00.01 MOD START
#P1="OPD=,"
P1="OPD=$OPD,"
#v39.00.01 MOD END
P2="SVCCTL=JBSbatMultiServiceControl,"
P3="JOB=EO31N0190J0,"
P4="IND1=ACIFM328.def,"
P5="INF1=${MID_DIR_AC}/ACIFM328001.csv,"
P6="IND2=,"
P7="INF2=,"
P8="OTD1=ACIFM329.def,"
P9="OTF1=${MID_DIR_AC}/ACIFM329001.csv,"
P10="OTD2=,"
P11="OTF2=,"
P12="TABLENAME=,"
P13="SQLKEY=,"
P14="SQLPARAM=,"
P15="ERRFILE=,"
P16="RECOVERY=,"
P17="BREAKPTN=,"
P18="FREE="
PARA="$P1$P2$P3$P4$P5$P6$P7$P8$P9$P10$P11$P12$P13$P14$P15$P16$P17$P18"

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

#
#---ＡＰＬ起動
#

java ${JAVA_OPTION} -jar ${JAR_DIR}/koptBatch.jar $PARA

rc=$?

ERR_FLG=0
if [ $rc -ne 0 ]
then
    if [ $rc -ne 4 ]
    then
        if [ $rc -ne 8 ]
        then
            if [ $rc -ne 127 ]
            then
                sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " PROGRAM Error($SVC program:rc=$rc) "
                echo $JOBNAME " PROGRAM Error($SVC program:rc=$rc) "
                exit ${G_RTN_ERROR}
            fi
        fi
    fi
    ERR_FLG=1
fi

exit ${G_RTN_NORMAL}
