#!/bin/bash
##############################################################
# システム名    ： eo顧客基幹システム
#				
# サブシステム名： 料金管理
#				
# シェル名      ： EO3010603J0.sh
#				
# 機能          ：違約金計算前処理
#				
# コマンド形式  ：EO3010603J0.sh
#				
# 実行環境      ： ../app/shl
#				
# 終了ステータス： ゼロ以外異常
#				
# 特記事項      ： 特になし
#				
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
# v48.00.00     2020/01/31  FJ）ニール   【ANK-3675-00-00】
# v48.00.01     2020/03/07  FJ）星野     【IT2-2020-0000010】
##############################################################

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

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

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

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

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

#
#---OPD
#
OPD=$1

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

#---OPD
OPD=$1

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

OPEDATE=${OPD}

ULDSQL_AC0221_01=${SQL_DIR}/AC_U_AC0221_01.sql
ULDSQL_AC0221_01_TMP=${LOC_DIR_AC}/AC_U_AC0221_01_work.sql
AC0221_01=${LOC_DIR_AC}/${JOBNAME}.AC_U_AC0221_01.csv

COMULD2_KK0341_ALL=${MID_DIR_CC}/CCIFM025001.csv
COMULD2_KK0341_CUR=${MID_DIR_CC}/CCIFM025002.csv
KK0341_DTA_OUTFILE=${LOC_DIR_AC}/${JOBNAME}.KK0341_DTA.csv
KK0341_WRK_OUTFILE=${LOC_DIR_AC}/${JOBNAME}.KK0341_WRK.csv
TMPFILE_KK0341_WRK_OUTFILE=${LOC_DIR_AC}/${JOBNAME}.KK0341_TMP.csv

MATCHDEF_AC_CM_0168_01=${G_TOOLSH}/util/def/AC_CM_0168.def
TMPFILE_MATCHDEF_AC_CM_0168_01=${G_TOOLSH}/util/def/${JOBNAME}_AC_CM_0168_TMP.def


#
#-- エラー処理
#
PRC_ERR()
{
	ERR_CD=$1
	ERR_MSG=$2
	
	if [ $ERR_CD -ne 0 ]
	then
		sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME ${ERR_MSG}
		echo $JOBNAME ${ERR_MSG}
		exit ${G_RTN_ERROR}
	fi
}

#
#--- アンロード関数
#       p1：テーブル名／クエリファイル名
#       p2：出力ファイル名
#
EXEC_UNLOAD()
{
	# 出力ファイルの初期化
	cat /dev/null > $2
	
	rc=$?
	PRC_ERR $rc " File cat error($2:rc=$rc) "
	
	sh ${G_TOOLSH}/EOKULD02.sh $1 $2
	
	rc=$?
	PRC_ERR $rc " unload error($2:rc=$rc) "
}



# 1. unload
cat /dev/null > $ULDSQL_AC0221_01_TMP
cp -f ${ULDSQL_AC0221_01} ${ULDSQL_AC0221_01_TMP}
sed -i -e s@':OPE_DATE'@${OPEDATE}@g ${ULDSQL_AC0221_01_TMP}

EXEC_UNLOAD ${ULDSQL_AC0221_01_TMP} ${AC0221_01}

# 2.filtering

cat /dev/null > $KK0341_DTA_OUTFILE
bsortex -copy -record recform=txtcsv -input reclen=504 file=${COMULD2_KK0341_ALL} include="24.1asc.eq.'1'" -output file=${KK0341_DTA_OUTFILE}

rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " COPY Error($SVC copy:rc=$rc) "
    echo $JOBNAME " COPY Error($SVC copy:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

# 3.merging
cat ${KK0341_DTA_OUTFILE} ${COMULD2_KK0341_CUR} > ${KK0341_WRK_OUTFILE}

rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " MERGE Error($SVC merge:rc=$rc) "
    echo $JOBNAME " MERGE Error($SVC merge:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

# 4.filtering

UNYO_YM=`echo ${OPEDATE} |cut -c 1-6`
UNYO_YM_GESSHO=${UNYO_YM}"01"
# IT2-2020-0000010対応 20200307 星野 MOD START
## Subtract two(2) months
#UNYO_YM_ZENGETU_2_MATU=`date -d "1 month ago ${UNYO_YM_GESSHO}" +'%Y%m%d'`
## Get the last date of the month
#UNYO_YM_ZENGETU_2_MATU=`date -d "1 day ago ${UNYO_YM_ZENGETU_2_MATU}" +'%Y%m%d'`

# 運用日2か月前の月初
UNYO_2MAE_GESSHO=`date -d "2 month ago ${UNYO_YM_GESSHO}" +'%Y%m%d'`
# IT2-2020-0000010対応 20200307 星野 MOD END

# Add one(1) month
UNYO_YM_ZENGETU_MATU=`date -d "+1 month ${UNYO_YM_GESSHO}" +'%Y%m%d'`
UNYO_YM_ZENGETU_MATU=`date -d "1 day ago ${UNYO_YM_ZENGETU_MATU}" +'%Y%m%d'`

cat /dev/null > $TMPFILE_KK0341_WRK_OUTFILE
cp -f ${KK0341_WRK_OUTFILE} ${TMPFILE_KK0341_WRK_OUTFILE}
# IT2-2020-0000010対応 20200307 星野 MOD START
#bsortex -copy -record recform=txtcsv -input reclen=504 file=${TMPFILE_KK0341_WRK_OUTFILE} include="23.8asc.ge.'${UNYO_YM_ZENGETU_2_MATU}'.and.23.8asc.le.'${UNYO_YM_ZENGETU_MATU}'.and.22.8asc.gt.' '" -output file=${KK0341_WRK_OUTFILE}
bsortex -copy -record recform=txtcsv -input reclen=504 file=${TMPFILE_KK0341_WRK_OUTFILE} include="23.8asc.ge.'${UNYO_2MAE_GESSHO}'.and.23.8asc.le.'${UNYO_YM_ZENGETU_MATU}'.and.22.8asc.gt.' '" -output file=${KK0341_WRK_OUTFILE}
# IT2-2020-0000010対応 20200307 星野 MOD END

rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " COPY Error($SVC sort:rc=$rc) "
    echo $JOBNAME " COPY Error($SVC copy:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

# 5.matching
cp -f $KK0341_WRK_OUTFILE $TMPFILE_KK0341_WRK_OUTFILE
export ZTLOUTFILE=$KK0341_WRK_OUTFILE

cat /dev/null > ${TMPFILE_MATCHDEF_AC_CM_0168_01}
cp -f ${MATCHDEF_AC_CM_0168_01} ${TMPFILE_MATCHDEF_AC_CM_0168_01}
# Change contents to CSV files used
sed -i -e s@':ULD_AC_CM_0168_01'@${AC0221_01}@g ${TMPFILE_MATCHDEF_AC_CM_0168_01}
sed -i -e s@':CCIFM025'@${TMPFILE_KK0341_WRK_OUTFILE}@g ${TMPFILE_MATCHDEF_AC_CM_0168_01}

# ファイルマッチング
${G_TOOLSH}/util/bin/ZTLMAT01 $TMPFILE_MATCHDEF_AC_CM_0168_01

rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " MATCHING Error($SVC matching:rc=$rc) "
    echo $JOBNAME " MATCHING Error($SVC matching:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

# 6.sort
#
#---ＳＯＲＴ
#
bsort -s -Tflt -t, -z330 -0.14asca,3.14asca,1.10asca,2.10asca -w ${KK0341_WRK_OUTFILE} \
  | bsortex -merge key=0.14asc,3.14asc -record recform=txtcsv -input reclen=60 -summary suppress last -output file=${MID_DIR_AC}/ACIFM335001.csv

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

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

P1="OPD=,"
P2="SVCCTL=,"
P3="JOB=EO3010510J0,"
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"

rm -f ${ULDSQL_AC0221_01_TMP}
rm -f ${AC0221_01}
rm -f ${KK0341_DTA_OUTFILE}
rm -f ${KK0341_WRK_OUTFILE}
rm -f ${TMPFILE_KK0341_WRK_OUTFILE}
rm -f ${TMPFILE_MATCHDEF_AC_CM_0168_01}

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

exit ${G_RTN_NORMAL}
