#!/bin/bash
##############################################################
# システム名    ：eo顧客基幹システム
#
# サブシステム名：料金管理
#
# シェル名      ：卸先事業者別インセンティブ料金継続利用情報作成
#
# 機能          ：卸先事業者インセンティブ実績管理を元にインセンティブ料金継続利用情報を作成する。
#
# コマンド形式  ：EO31N0185J0.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
# v39.01.00       2018/11/16  FJ)植木      新規作成(【ANK-3478-01-00】eo光設備卸対応)
# v39.01.01       2018/12/05  FJ)中野      IT1-2018-0000232
# v39.02.00       2018/12/06  FJ)原田      【IT1-2018-0000235】年間獲得数の下限値に満たない場合にリストに出力されない
#
##############################################################

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

#
#---ツール格納場所
#
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

#
#--- システム日付取得(年月日時分秒)
#
. EOK010410J0.sh 2

#
#---業務で必要な変数定義
#
#xxx=xxxxxxx
##############################################################
# 業務処理
##############################################################
sh ${G_TOOLSH}/EOK010210J0.sh CS00025I $JOBNAME

#---前月末日を取得
NOW_MONTH_ONEDAY=`date -d "${RSLT_OPEDATE}" +'%Y%m'`01
PREV_MONTH_LASTDAY=`date -d "-1 day ${NOW_MONTH_ONEDAY}" +'%Y%m%d'`

#---請求年月を取得
SEIKY_Y=`echo ${PREV_MONTH_LASTDAY} | cut -c 1-4`
SEIKY_M=`echo ${PREV_MONTH_LASTDAY} | cut -c 5-6`

#
#--- ファイル定義
#
# 
# インセンティブ料金継続利用情報関連
# 
INFILE=${MID_DIR_AC}/ACIFM327001.csv
INFILE_EDIT=${MID_DIR_AC}/ACIFM327001_EDIT.csv
INFILE_EDIT_SORT=${MID_DIR_AC}/ACIFM327001_EDIT_SORT.csv

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

# ダブルクォーテーション削除
sed -e 's/"//g' ${INFILE} > ${INFILE_EDIT}

# サービスコードで昇順
bsortex -sort key="0.2asc,5.10asc,3.2asc,2.10asc" -record recform=txtcsv -input file=${INFILE_EDIT} reclen=100 -output file=${INFILE_EDIT_SORT}

#
#--- 一時ファイル
# データ部
OUTFILE_BODY=${MID_DIR_AC}/ACLST09203_BODY.csv
#v39.01.01 ADD START
OUTFILE_BODY_HENSHU=${MID_DIR_AC}/ACLST09203_BODY_HENSHU.csv
#v39.01.01 ADD END

# 
# 卸先事業者別インセンティブ料金出力対象判定情報関連
# 
SQLFILE_CH0921_01=${SQL_DIR}/AC_U_CH0921_01.sql
SQLFILE_CH0921_01_WRK=${SQL_DIR}/${JOBNAME}_AC_U_CH0921_01_WRK.sql
CSVFILE_CH0921_01_UNLOAD_WRK=${MID_DIR_AC}/${JOBNAME}_CH0921_01_UNLOAD_WK.csv

# SQLにパラメータ設定
cp -f ${SQLFILE_CH0921_01} ${SQLFILE_CH0921_01_WRK}
sed -i -e "s%\:OPE_DATE%'${PREV_MONTH_LASTDAY}'%" ${SQLFILE_CH0921_01_WRK}
# IT1-2018-0000235 MOD START
#sed -i -e "s%\:INCNTV_CALC_DIV%'1'%" ${SQLFILE_CH0921_01_WRK}
sed -i -e "s%\:INCNTV_CALC_DIV%'2'%" ${SQLFILE_CH0921_01_WRK}
# IT1-2018-0000235 MOD END

# アンロード
sh ${G_TOOLSH}/EOKULD03.sh ${SQLFILE_CH0921_01_WRK}  ${CSVFILE_CH0921_01_UNLOAD_WRK} ${JOBNAME}
rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " UNLOAD Error($SVC unload:rc=$rc) " 
    echo $JOBNAME " UNLOAD Error($SVC unload:rc=$rc) "
    exit ${G_RTN_ERROR}
fi 

#
#--- アンロードしたファイル出力対象判定ファイルから、
#--- インセンティブ料金継続利用情報ファイル読み込み卸先事業者別にファイル作成
#
while read unloadLine
do
	# 卸先事業者コードと卸売事業者名を取得する
	UNLOAD_ORSJGS_CD=`echo ${unloadLine} | cut -d, -f 1`
	UNLOAD_ORSJGS_NM=`echo ${unloadLine} | cut -d, -f 2 | nkf -w`
	
	# 卸先事業者別インセンティブ料金ファイル
    OUTFILE_ZZ_YYYYMMDDhhmmss=${MID_DIR_AC}/ACLST09203_${UNLOAD_ORSJGS_CD}_${RSLT_SYSDATE}.csv

    # ヘッダ部を作成する
    echo "\"対象年月\",\"${SEIKY_Y}年${SEIKY_M}月\",\"${UNLOAD_ORSJGS_NM}社\",\"継続達成販売奨励金用　対象者リスト\"" > ${OUTFILE_ZZ_YYYYMMDDhhmmss}
    echo "\"卸先事業者名\",\"サービス契約番号\",\"サービス名\",\"サービス開始日\"" >> ${OUTFILE_ZZ_YYYYMMDDhhmmss}

	while read line
	do
	    # 卸先事業者コードと卸売事業者名を取得する
	    ORSJGS_CD=`echo ${line} | cut -d, -f 1`
	    
		# 卸先事業者コードがアンロードした卸先事業者コードと合致すればファイル作成
		if [ ${UNLOAD_ORSJGS_CD} = ${ORSJGS_CD} ]
		then
		
		    # データ部を作成する
		    cat /dev/null > ${OUTFILE_BODY}
		    bsortex \
		        -copy -record recform=txtcsv \
		        -input file=${INFILE_EDIT_SORT} \
		            reclen=100 \
		            reconst="1.30,2.10,4.10,5.10" \
		            include="0.2asc.eq.'${ORSJGS_CD}'" \
		        -output file=${OUTFILE_BODY}
		
		    rc=$?
		    if [ $rc -ne 0 ]
		    then
		        sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME "SORT Error($SVC sort:rc=$rc) "
		        echo $JOBNAME "SORT Error($SVC sort:rc=$rc) "
		        exit ${G_RTN_ERROR}
		    fi
		
		    # 明細を追記する
#v39.01.01 MOD START
		    #cat ${OUTFILE_BODY} | sed -e 's/,/","/g' | sed -e 's/^/"/' | sed -e 's/$/"/' > ${OUTFILE_BODY}
		    #cat ${OUTFILE_BODY} >> ${OUTFILE_ZZ_YYYYMMDDhhmmss}
		    cat ${OUTFILE_BODY} | sed -e 's/,/","/g' | sed -e 's/^/"/' | sed -e 's/$/"/' > ${OUTFILE_BODY_HENSHU}
		    cat ${OUTFILE_BODY_HENSHU} >> ${OUTFILE_ZZ_YYYYMMDDhhmmss}
#v39.01.01 MOD END
		    
		    break
		fi
	done < ${INFILE_EDIT_SORT}
	
	#ファイルを文字コードSJIS、改行コードをCRLFに変更
	nkf -Lw --overwrite ${OUTFILE_ZZ_YYYYMMDDhhmmss}
    nkf -x -s --overwrite ${OUTFILE_ZZ_YYYYMMDDhhmmss}
    
done < ${CSVFILE_CH0921_01_UNLOAD_WRK}

	

#
#--- 一時ファイルの削除を行う
#
 rm -f ${INFILE_EDIT}
 rm -f ${INFILE_EDIT_SORT}
 rm -f ${OUTFILE_BODY}
#v39.01.01 ADD START
 rm -f ${OUTFILE_BODY_HENSHU}
#v39.01.01 ADD END
 rm -f ${SQLFILE_CH0921_01_WRK}
 rm -f ${CSVFILE_CH0921_01_UNLOAD_WRK}

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

exit ${G_RTN_NORMAL}
