#!/bin/bash
##############################################################
# システム名    ：eo顧客基幹システム
#
# サブシステム名：料金管理
#
# シェル名      ：ＦＴＴＨ利用料金情報抽出
#
# 機能          ：FTTH通信量情報集計にて、登録した通信量より、利用料金を算出するためにFTTH利用料金情報を作成する。
#(1)対象キーワーク使用機能コードをシステムパラメータ管理より取得
#(2)対象キーワーク使用機能コードを元にFTTH通信合計と
#　　課金対象従量サービス契約蓄積テーブルからデータを取得
#(3)料金計算処理用にＦＴＴＨ利用料金情報を作成する。
#
# コマンド形式  ：EO31B0110J0.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
# v4.00           2013/04/12  FJ) 狭間     【IKK-2013-0000914】SQL不具合の修正
# v5.00           2013/07/10  FJ) 後藤     【TG1-2013-0000662】マスタ参照基準日対応
# v8.00           2014/01/17  FJ) 伊藤     【ANK-1589-00-00】消費税対応
# v8.01           2014/06/06  FJ) 早崎     【OM-2014-0001545】通信明細に通信料0MBが表示される
##############################################################

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

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

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

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

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

#
#---OPD
#
OPD=$1

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

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

#- 請求年月取得
EVENT_CD_PRC_CALC="03"
. EO3SEIKYYM.sh ${EVENT_CD_PRC_CALC} ${RSLT_OPEDATE} ${JOBNAME}

#- 月末日取得
EVENT_CD_USE_END="02"
. EO3EVENTYMD.sh ${EVENT_CD_USE_END} ${SEIKY_YM} ${JOBNAME}
USE_END_YMD=${EVENT_YMD}

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

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

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

P1="OPD=,"
P2="SVCCTL=,"
P3="JOB=EO31B0110J0,"
P4="IND1=,"
P5="INF1=,"
P6="IND2=,"
P7="INF2=,"
P8="OTD1=,"
P9="OTF1=,"
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

#
#--- ファイル定義
#
#--- 出力ファイル
OUTFILE_ACIFI016074=${MID_DIR_AC}/ACIFI016074.csv
OUTFILE_ACIFI016074_WK=${MID_DIR_AC}/${JOBNAME}_ACIFI016074_WK.csv

#--- 1.FTTH通信量合計（AC_T_FTTH_TUSHIN_GK）
SQLFILE_AC0601_01=${SQL_DIR}/CH_U_AC0601_01.sql
SQLFILE_AC0601_01_WRK=${SQL_DIR}/${JOBNAME}_CH_U_AC0601_01_WRK.sql

#--- 2.業務パラメータ
SQLFILE_ZM0321_01=${SQL_DIR}/AC_U_ZM0321_01.sql
SQLFILE_ZM0321_01_USE_WRK=${SQL_DIR}/${JOBNAME}_CH_U_AC0601_01_AC_WKS_USE_TSN.sql
SQLFILE_ZM0321_01_HSE_WRK=${SQL_DIR}/${JOBNAME}_CH_U_AC0601_01_AC_WKS_HSE_TSN.sql

CSVFILE_ZM0321_01_USE_WRK=${MID_DIR_AC}/${JOBNAME}_CH_U_AC0601_01_AC_WKS_USE_TSN.csv
CSVFILE_ZM0321_01_HSE_WRK=${MID_DIR_AC}/${JOBNAME}_CH_U_AC0601_01_AC_WKS_HSE_TSN.csv

#
#--- 各ファイルの存在チェックを行う
#
if [ ! -r ${SQLFILE_AC0601_01} ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist(${SQLFILE_AC0601_01}) "
    echo $JOBNAME " File is nonexist(${SQLFILE_AC0601_01}) "
    exit ${G_RTN_ERROR}
fi

if [ ! -r ${SQLFILE_ZM0321_01} ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist(${SQLFILE_ZM0321_01}) "
    echo $JOBNAME " File is nonexist(${SQLFILE_ZM0321_01}) "
    exit ${G_RTN_ERROR}
fi

#
#--- サブルーチン（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
}

#
#--- アンロードファイルのクリアを行う
#
cat /dev/null > ${OUTFILE_ACIFI016074}
cat /dev/null > ${OUTFILE_ACIFI016074_WK}

#
#--- パラメータセット１
cp -f ${SQLFILE_ZM0321_01} ${SQLFILE_ZM0321_01_USE_WRK}
sed -i -e "s%:OPE_DATE%'${RSLT_OPEDATE}'%"         ${SQLFILE_ZM0321_01_USE_WRK}
sed -i -e "s%:WORK_PARAM%'AC_WKS_USE_TSN'%"        ${SQLFILE_ZM0321_01_USE_WRK}

cp -f ${SQLFILE_ZM0321_01} ${SQLFILE_ZM0321_01_HSE_WRK}
sed -i -e "s%:OPE_DATE%'${RSLT_OPEDATE}'%"         ${SQLFILE_ZM0321_01_HSE_WRK}
sed -i -e "s%:WORK_PARAM%'AC_WKS_HSE_TSN'%"        ${SQLFILE_ZM0321_01_HSE_WRK}

UNLOAD ${SQLFILE_ZM0321_01_USE_WRK} ${CSVFILE_ZM0321_01_USE_WRK} 
UNLOAD ${SQLFILE_ZM0321_01_HSE_WRK} ${CSVFILE_ZM0321_01_HSE_WRK}

wait

sed -i -e "s%,%','%g" ${CSVFILE_ZM0321_01_USE_WRK}
sed -i -e "s%,%','%g" ${CSVFILE_ZM0321_01_HSE_WRK}

AC_WKS_USE_TSN=`cat ${CSVFILE_ZM0321_01_USE_WRK}`
AC_WKS_HSE_TSN=`cat ${CSVFILE_ZM0321_01_HSE_WRK}`


#
#--- パラメータセット１

cp -f ${SQLFILE_AC0601_01} ${SQLFILE_AC0601_01_WRK}
sed -i -e "s%:OPEDATE%'${RSLT_OPEDATE}'%"          ${SQLFILE_AC0601_01_WRK}
sed -i -e "s%:USE_END_YMD%'${USE_END_YMD}'%"       ${SQLFILE_AC0601_01_WRK}
sed -i -e "s%:AC_WKS_USE_TSN%'${AC_WKS_USE_TSN}'%" ${SQLFILE_AC0601_01_WRK}
sed -i -e "s%:AC_WKS_HSE_TSN%'${AC_WKS_HSE_TSN}'%" ${SQLFILE_AC0601_01_WRK}

#
#--- UNLOAD処理
#
UNLOAD ${SQLFILE_AC0601_01_WRK} ${OUTFILE_ACIFI016074_WK}

#--- 改行コードをwindows (CRLF)に変換する
bsortex \
  -copy \
  -record recform=txtcsv \
  -input  reclen=300 \
          file=${OUTFILE_ACIFI016074_WK} \
  -output include="13.12asc.gt.'0'" file=${OUTFILE_ACIFI016074} linedlmt=crlf
rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " bsort Error($SVC bsort:rc=$rc) "
    echo $JOBNAME " bsort Error($SVC bsort:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

#ワーク削除
if [ $WK_RM = "true" ]
then
    rm -f ${OUTFILE_ACIFI016074_WK}
    rm -f ${SQLFILE_AC0601_01_WRK}
    rm -f ${SQLFILE_ZM0321_01_USE_WRK}
    rm -f ${SQLFILE_ZM0321_01_HSE_WRK}
    rm -f ${CSVFILE_ZM0321_01_USE_WRK}
    rm -f ${CSVFILE_ZM0321_01_HSE_WRK}
fi

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

exit $exit_rc
