#!/bin/bash
##############################################################
# システム名    ：eo顧客基幹システム
#
# サブシステム名：請求収納
#
# シェル名      ：督促対象当月請求有料オプション料金内訳抽出
#
# 機能          ：WEB-FOCUS（督促ツール）用のテーブル（督促対象当月請求有料オプション料金内訳）を作成する。
#
# コマンド形式  ：EO6280120J0.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
# v54.00.00       2021/07/27  FJ) 寺川     ANK-4069-00-00 バッチ・DBサーバーリプレース対応
#
##############################################################

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

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

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

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

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

#
#---OPD
#
OPD=$1

#
#---業務で必要な変数定義
#
# オンライン運用日取得
if [ "${OPD}" = "" ]; then
   . EOK010310J0.sh "ODATE"
else
   RSLT_OPEDATE="${OPD}"
fi

#- 請求年月取得
EVENT_CD="04"
. EO3SEIKYYM2.sh ${EVENT_CD} ${RSLT_OPEDATE} ${JOBNAME}

# 業務パラメータID（有料オプション内訳）
WORK_PARAM="CH_WKS_YROP_UCHI"

#
#--- サブルーチン（UNLOAD）
#
UNLOAD(){
#unload
sh ${G_TOOLSH}/EOKULD03.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) "
    exit ${G_RTN_ERROR}
fi
}

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

#
#---パラメタ定義
#

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

#---ワークファイル削除モード
WK_RM=true

#---更新対象スキーマ名
UPDATETBLNAME="CH_T_TST_TSK_YOP_PRU"

#---スキーマ作成SQLファイル
INSERT_TBL_SQL="CH_T_TST_TSK_YOP_PRU_INSERT.sql"
INSERT_TBL_SQL_WK=${JOBNAME}"_CH_T_TST_TSK_YOP_PRU_INSERT_WK.sql"

#---業務パラメータ管理（ZM_M_WORK_PARAM_KNRI）
SQLFILE_ZM0321_01=${SQL_DIR}/AC_U_ZM0321_01.sql
SQLFILE_ZM0321_01_WK=${SQL_DIR}/${JOBNAME}_AC_U_ZM0321_01_WK.sql
CSVFILE_ZM0321_01_UL_WK1=${MID_DIR_AC}/${JOBNAME}_ZM0321_01_UL_WK1.csv

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


#----------------------------------------------------------------------------------------------------
#--- 業務パラメータ取得
#----------------------------------------------------------------------------------------------------
#- パラメータセット
#--- 0.業務パラメータ管理（ZM_M_WORK_PARAM_KNRI）
cp -f ${SQLFILE_ZM0321_01}                     ${SQLFILE_ZM0321_01_WK}
sed -i -e "s%\:WORK_PARAM%'${WORK_PARAM}'%"    ${SQLFILE_ZM0321_01_WK}
sed -i -e "s%\:OPE_DATE%'${RSLT_OPEDATE}'%"    ${SQLFILE_ZM0321_01_WK}

#- UNLOAD実行
UNLOAD ${SQLFILE_ZM0321_01_WK} ${CSVFILE_ZM0321_01_UL_WK1}

eval WORK_KINO_SKBT_CD=`cat ${CSVFILE_ZM0321_01_UL_WK1}`

#----------------------------------------------------------------------------------------------------
#--- テーブル作成SQLファイルの編集
#----------------------------------------------------------------------------------------------------
#- パラメータセット
cp -f ${SQL_DIR}/${INSERT_TBL_SQL}                           ${SQL_DIR}/${INSERT_TBL_SQL_WK}
sed -i -e "s%\:OPE_DATE%'${RSLT_OPEDATE}'%"                  ${SQL_DIR}/${INSERT_TBL_SQL_WK}
sed -i -e "s%\:WORK_KINO_SKBT_CD%'${WORK_KINO_SKBT_CD}'%"    ${SQL_DIR}/${INSERT_TBL_SQL_WK}
sed -i -e "s%\:SEIKY_YM%'${SEIKY_YM}'%"                      ${SQL_DIR}/${INSERT_TBL_SQL_WK}

#
#---ＡＰＬ起動
#
# ＳＱＬＰＬＵＳの実行処理

#----------------------------------------------------------------------------------------------------
#--- 督促対象当月請求有料オプション料金内訳テーブル削除
#----------------------------------------------------------------------------------------------------
#オラクル接続情報
DBCONNECT=$ORACLEUSER/$ORACLEPASS@$SID_S

#シスログメッセージ出力
msgToSyslog() {
        sh ${G_TOOLSH}/EOK010210J0.sh CS00002E ${JOBNAME} "$1"
        exit ${G_RTN_ERROR}
}

#接続
#RESULT=`sqlplus -s ${DBCONNECT} <<EOF 
RESULT=`sqlplus -s ${DBCONNECT} <<EOF
whenever oserror exit 127;
whenever sqlerror exit 127;
set head off;
set termout off;
set trims on;

EXECUTE CCPL0003('truncate table ${UPDATETBLNAME}');

exit 0;
EOF`

RTNCD=$?

#オラクルエラー発生時
if [ ${RTNCD} -ne 0 ]
then
    #シスログにメッセージを出力し処理終了
    msgToSyslog "TRUNCATE でエラーが発生しました。" 
fi

#----------------------------------------------------------------------------------------------------
#--- 督促対象当月請求有料オプション料金内訳テーブル挿入
#----------------------------------------------------------------------------------------------------
ECHO_OUT=$(sqlplus ${DBCONNECT} <<EOF 2>&1
SET ECHO OFF
SET PAUSE OFF
SET TIME OFF
SET TRIM OFF
WHENEVER OSERROR EXIT 127;
WHENEVER SQLERROR EXIT 127;
@${SQL_DIR}/${INSERT_TBL_SQL_WK};
EXIT 0;
EOF
)

rc=$?

#--- ジョブが異常の場合、以下の処理をする
if [ $rc -ne 0 ]
then
     ECHO_OUT1=`echo "$ECHO_OUT"  | tr -d  "\015" `
     ECHO_OUT2=`echo "$ECHO_OUT1" | tr -d  "\012" `
    sh ${G_TOOLSH}/EOK010210J0.sh "EZEB0290AE" $JOBNAME "(呼出元ジョブ：${JOBNAME}、更新対象：${UPDATETBLNAME}、実行SQL：${INSERT_TBL_SQL})${ECHO_OUT2}"
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " INSERT Error($SVC INSERT:rc=$rc) "
    echo $JOBNAME " INSERT Error($SVC INSERT:rc=$rc) "
    exit ${G_RTN_ERROR}
fi


exit_rc=$rc

#ワーク削除
if [ $WK_RM = "true" ]
then
    rm -f ${SQLFILE_ZM0321_01_WK}
    rm -f ${CSVFILE_ZM0321_01_UL_WK1}
    rm -f ${SQL_DIR}/${INSERT_TBL_SQL_WK}
fi

#
#--- ジョブの終了メッセージを出力する
#
sh ${G_TOOLSH}/EOK010210J0.sh "EZEB0180AI" $JOBNAME "(呼出元ジョブ：${JOBNAME}、更新対象：${UPDATETBLNAME}、実行SQL：${INSERT_TBL_SQL})"
sh ${G_TOOLSH}/EOK010210J0.sh CS00028I $JOBNAME
sh ${G_TOOLSH}/EOK010210J0.sh CS00026I $JOBNAME

exit $exit_rc
