#!/bin/bash
##############################################################
# システム名    ：eo顧客基幹システム
#
# サブシステム名：料金管理
#
# シェル名      ：回線対象サービス契約情報ソート
#
# 機能          ：バッチ運用日時点で使用開始されている回線対象サービス契約情報を抽出する。
#
# コマンド形式  ：EO3490120J0.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
# v45.00.00       2019/07/10  FJ)澤田      新規作成【ANK-3607-00-00】料金収納手数料課金抑止の残課題対応について
# v53.00.00       2021/05/14  FJ)吉田      【ANK-4028-00-00】発行手数料の課金判定見直し対応 積み残し対応
# v54.00.00       2021/09/01  FJ)吉田      【OM-2021-0001253】過去に権利付与地域の回線が存在すると負担方式が企業負担になる
##############################################################

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

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

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

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

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

#
#---OPD
#
OPD=$1

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

#--- 一時ファイル
# 回線対象サービス契約共通アンロードファイル
TEMPFILE=${LOC_DIR_AC}/CCIFM022001_EO3490120J0.csv

#--- 出力ファイル
# 回線対象サービス契約情報 カレント
OUTFILE=${LOC_DIR_AC}/ACIFM331001_CUR_EO3490120J0.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}/CCIFM022001.csv ${TEMPFILE}

#-------------------------------------------------------------
#---請求年月末日(GUN_ENDDAY)
#-------------------------------------------------------------
# ANK-4028-00-00 DEL START
##- 請求年月取得（請求処理日）
#EVENT_CD="04"
#. EO3SEIKYYM2.sh ${EVENT_CD} ${RSLT_OPEDATE} ${JOBNAME}
##請求処理日
#TOGETSU=${SEIKY_YM}
#
##--- イベントコード（利用終了日）
#EVENT_CD_USE_ENDYMD="02"
#
##- 月末日取得（請求処理日）
#. EO3EVENTYMD.sh ${EVENT_CD_USE_ENDYMD} ${TOGETSU} ${JOBNAME}
#GUN_ENDDAY=${EVENT_YMD}
# ANK-4028-00-00 DEL END
# OM-2021-0001253 MOD START
## ANK-4028-00-00 MOD START
### 抽出条件：回線内訳使用開始年月日 <= 過去直近の請求処理日から算出された請求月の月末
###         ：回線内訳使用終了年月日 >= 過去直近の請求処理日から算出された請求月の月末
##bsortex -copy -record recform=txtcsv \
##        -input file=${TEMPFILE} reclen=${ULD2_REC_LEN_KK0241} \
##         include="2.8asc.le.'${GUN_ENDDAY}'.and.3.8asc.ge.'${GUN_ENDDAY}'" \
##        -output file=${OUTFILE} reconst="0.10,1.12,2.8,3.8"
##抽出条件を削除
#bsortex -copy -record recform=txtcsv \
#        -input file=${TEMPFILE} reclen=${ULD2_REC_LEN_KK0241} \
#        -output file=${OUTFILE} reconst="0.10,1.12,2.8,3.8"
## ANK-4028-00-00 MOD END
# 共通アンロードファイルから「適用開始日≦運用日」のデータを取得し、サービス契約番号の昇順、適用終了日の降順でソートする。
# その後、サービス契約番号単位で先頭行のみ取得する。
bsortex -sort key=0.10asca,3.8ascr -record recform=txtcsv \
        -input file=${TEMPFILE} reclen=${ULD2_REC_LEN_KK0241} \
         include="2.8asc.le.'${RSLT_OPEDATE}'" \
| bsortex -merge key=0.10asc -record recform=txtcsv \
          -input reclen=${ULD2_REC_LEN_KK0241} \
          -summary suppress first \
          -output file=${OUTFILE} reconst="0.10,1.12,2.8,3.8"
# OM-2021-0001253 MOD END

rc=$?
if [ $rc -ne 0 ]
then
    BSORT_ERROR ${rc} ${TEMPFILE}
fi

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

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

exit $exit_rc
