#!/bin/bash
##############################################################
# システム名    ：eo顧客基幹システム
#
# サブシステム名：料金管理
#
# シェル名      ：サービス契約情報ソート
#
# 機能          ：料金計算月月初日時点で有効なサービス契約情報をソートする。
#
# コマンド形式  ：EO3490110J0.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
# v45.00.00       2019/07/10  FJ)澤田      新規作成【ANK-3607-00-00】料金収納手数料課金抑止の残課題対応について
# v52.00.00       2020/10/21  FJ)鈴木      【ANK-3838-00-00】窓口払い手数料の顧客負担方式導入
# v53.00.00       2021/06/11  FJ)吉田      【ANK-4028-00-00】ANK-4028-00-00_発行手数料の課金判定見直し対応 積み残し対応
# v56.00.00       2021/11/01  FJ)吉田      【ANK-4131-00-00】窓口払い手数料の顧客負担方式導入_STEP4
##############################################################

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

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

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

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

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

#
#---OPD
#
OPD=$1

#
#---業務で必要な変数定義
#
#--- 入力ファイル

#--- 一時ファイル
# サービス契約情報契約共通アンロードファイル
TEMPFILE=${LOC_DIR_AC}/CCIFM020002_EO3490110J0.csv

#--- 出力ファイル
# サービス契約情報契約情報
OUTFILE=${LOC_DIR_AC}/ACIFM330001_CUR_EO3490110J0.csv

##############################################################
# 共通関数
##############################################################

#
#--- bsortexコマンド実行時のエラー処理
#      p1：bsortexコマンドの終了コード
#      p2：bsortexコマンドの入力ファイル
BSORT_ERROR()
{
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " bsortex error(input file=$2:rc=$1) "
    echo $JOBNAME " bsortex error(input file=$2:rc=$1) "
    exit ${G_RTN_ERROR}
}


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

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

#
#--- サービス契約情報契約アンロードの複製
#
cp -fp ${MID_DIR_CC}/CCIFM020002.csv ${TEMPFILE}

#-------------------------------------------------------------
#---請求年月初日(GUN_STRDAY)
#-------------------------------------------------------------
#--- イベントコード（利用開始日）
EVENT_CD_USE_STAYMD="01"
# ANK-4028-00-00 ADD START
#--- イベントコード（利用終了日）
EVENT_CD_USE_ENDYMD="02"
# ANK-4028-00-00 ADD END

#- 請求年月取得（請求処理日）
EVENT_CD="04"
. EO3SEIKYYM.sh ${EVENT_CD} ${RSLT_OPEDATE} ${JOBNAME}
TOGETSU=${SEIKY_YM}

#- 月初日取得（請求処理日）
. EO3EVENTYMD.sh ${EVENT_CD_USE_STAYMD} ${TOGETSU} ${JOBNAME}
GUN_STRDAY=${EVENT_YMD}
# ANK-4028-00-00 ADD START
#- 月末日取得（請求処理日）
. EO3EVENTYMD.sh ${EVENT_CD_USE_ENDYMD} ${TOGETSU} ${JOBNAME}
GUN_ENDDAY=${EVENT_YMD}
# ANK-4028-00-00 ADD END

# ANK-4028-00-00 MOD START
## ANK-3838-00-00 MOD START
###
###--- サービス契約情報契約開始済みを取得
###
###サービス契約.料金グループコード	IN(		"02"：ホームタイプ、"03"：メゾンタイプ、"04"：マンションタイプ、
###									10"：ｅｏ光電話、"11"：ｅｏ光テレビ、"12"：ｅｏ光テレビ（ＫＣＮ）、
###									"13"：ｅｏ光テレビ（再送信）、"16"：ｅｏメールアドレス、"17"：ｅｏ電気、
###									"51"：ｍｉｎｅｏ)
###サービス契約．サービス開始年月日	≦		料金計算月月初日
###サービス契約．解約起算年月日		＞		料金計算月月初日
##bsortex \
##   -copy -record recform=txtcsv \
##   -input file=${TEMPFILE} \
##          reclen=${ULD2_REC_LEN_KK0081} \
##          reconst="0.10,4.2,7.2,8.3" \
##          include="(7.2asc.eq.'02'.or.7.2asc.eq.'03'.or.7.2asc.eq.'04'.or.7.2asc.eq.'10'.or.7.2asc.eq.'11'.or.7.2asc.eq.'12'.or.7.2asc.eq.'13'.or.7.2asc.eq.'16'.or.7.2asc.eq.'17'.or.7.2asc.eq.'51').and.(22.8asc.le.'${GUN_STRDAY}'.and.22.8asc.ge.'0').and.(31.8asc.gt.'${GUN_STRDAY}'.or.31.8asc.lt.'0')" \
##   -output file=${OUTFILE} 
##
##rc=$?
##if [ $rc -ne 0 ]
##then
##    BSORT_ERROR ${rc} ${TEMPFILE}
##fi
#
#
##
##--- サービス契約情報契約開始済みを取得
##
##サービス契約.料金グループコード	IN(		"02"：ホームタイプ、"03"：メゾンタイプ、"04"：マンションタイプ、
##									10"：ｅｏ光電話、"11"：ｅｏ光テレビ、"12"：ｅｏ光テレビ（ＫＣＮ）、
##									"13"：ｅｏ光テレビ（再送信）)
##サービス契約．サービス開始年月日	≦		料金計算月月初日
##サービス契約．解約起算年月日		＞		料金計算月月初日
#bsortex \
#   -copy -record recform=txtcsv \
#   -input file=${TEMPFILE} \
#          reclen=${ULD2_REC_LEN_KK0081} \
#          reconst="0.10,4.2,7.2,8.3" \
#          include="(7.2asc.eq.'02'.or.7.2asc.eq.'03'.or.7.2asc.eq.'04'.or.7.2asc.eq.'10'.or.7.2asc.eq.'11'.or.7.2asc.eq.'12'.or.7.2asc.eq.'13').and.(22.8asc.le.'${GUN_STRDAY}'.and.22.8asc.ge.'0').and.(31.8asc.gt.'${GUN_STRDAY}'.or.31.8asc.lt.'0')" \
#   -output file=${OUTFILE} 
#
#rc=$?
#if [ $rc -ne 0 ]
#then
#    BSORT_ERROR ${rc} ${TEMPFILE}
#fi
# ANK-3838-00-00 MOD END

# ANK-4131-00-00 MOD START
##
##--- サービス契約情報契約開始済みを取得
##
##サービス契約.料金グループコード	IN(		"02"：ホームタイプ、"03"：メゾンタイプ、"04"：マンションタイプ、
##									10"：ｅｏ光電話、"11"：ｅｏ光テレビ、"12"：ｅｏ光テレビ（ＫＣＮ）、
##									"13"：ｅｏ光テレビ（再送信）)
##サービス契約．サービス開始年月日	≦		料金計算月月末日
##サービス契約．解約起算年月日		＞		料金計算月月初日
#bsortex \
#   -copy -record recform=txtcsv \
#   -input file=${TEMPFILE} \
#          reclen=${ULD2_REC_LEN_KK0081} \
#          reconst="0.10,4.2,7.2,8.3" \
#          include="(7.2asc.eq.'02'.or.7.2asc.eq.'03'.or.7.2asc.eq.'04'.or.7.2asc.eq.'10'.or.7.2asc.eq.'11'.or.7.2asc.eq.'12'.or.7.2asc.eq.'13').and.(22.8asc.le.'${GUN_ENDDAY}'.and.22.8asc.ge.'0').and.(31.8asc.gt.'${GUN_STRDAY}'.or.31.8asc.lt.'0')" \
#   -output file=${OUTFILE} 
#
#--- サービス契約情報契約開始済みを取得
#
#サービス契約.料金グループコード	IN(		"02"：ホームタイプ、"03"：メゾンタイプ、"04"：マンションタイプ、
#									10"：ｅｏ光電話、"11"：ｅｏ光テレビ、"12"：ｅｏ光テレビ（ＫＣＮ）、
#									"13"：ｅｏ光テレビ（再送信）)
#サービス契約．サービス開始年月日	≦		料金計算月月末日
#サービス契約．解約起算年月日		＞		料金計算月月初日
#サービス契約．サービス契約ステータス	≠	"920"：キャンセル済
bsortex \
   -copy -record recform=txtcsv \
   -input file=${TEMPFILE} \
          reclen=${ULD2_REC_LEN_KK0081} \
          reconst="0.10,4.2,7.2,8.3" \
          include="(7.2asc.eq.'02'.or.7.2asc.eq.'03'.or.7.2asc.eq.'04'.or.7.2asc.eq.'10'.or.7.2asc.eq.'11'.or.7.2asc.eq.'12'.or.7.2asc.eq.'13').and.(22.8asc.le.'${GUN_ENDDAY}'.and.22.8asc.ge.'0').and.(31.8asc.gt.'${GUN_STRDAY}'.or.31.8asc.lt.'0').and.(2.3asc.ne.'920')" \
   -output file=${OUTFILE} 

# ANK-4131-00-00 MOD END
rc=$?
if [ $rc -ne 0 ]
then
    BSORT_ERROR ${rc} ${TEMPFILE}
fi
# ANK-4028-00-00 MOD END


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

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

exit $exit_rc
