#!/bin/bash
##############################################################
# システム名    ：eo顧客基幹システム
#
# サブシステム名：請求収納
#
# シェル名      ：パーフェクト口座債権充当料金集計情報ソート
#
# 機能          ：締め日に設定した処理順を使用し充当を行うため、「処理順(債権確定年月)」を「割引繰越優先順位」に、「処理順(料金項目)」を「割引優先順位」に、
#                 「処理順(債権確定年月) + 処理順(料金項目)」を「前受金充当優先順位」に設定し、料金集計情報（債権充当）を作成する。
#ソートキー：請求年月＞請求先番号＞集計単位＞整理番号＞割引繰越優先順位＞割引優先順位＞サービス番号＞料金グループコード＞料金コースコード＞料金項目コード＞集計元処理タイミング制御＞利用開始日＞加減識別（以上昇順）＞料金（降順）
#
# コマンド形式  ：EO60Y0580J0.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
# v52.00          2020/11/24  FJ）吉田     【ANK-3838-00-00】窓口払い手数料の顧客負担方式導入
# v52.01          2021/01/08  FJ）麻生     【ANK-3838-00-00】窓口払い手数料の顧客負担方式導入
# v52.02          2021/02/04  FJ）麻生     【IT1-2021-0000011】過小収納時の充当順不正対応
##############################################################

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

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

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

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

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

#
#---OPD
#
OPD=$1

#
#---業務で必要な変数定義
#
# v52.01 ADD START
CHIFM100013_SORT=${MID_DIR_CH}/${JOBNAME}_CHIFM100013_SORT.csv
# v52.01 ADD END
##############################################################
# 業務処理
##############################################################
sh ${G_TOOLSH}/EOK010210J0.sh CS00025I $JOBNAME

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

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

#
#---ＳＯＲＴ
#
# v52.01 MOD START
#bsort -s -z400 -Tflt -t, -1.6asca,0.12asca,17.1ascr,2.14asca,28.3asca,16.3asca,3.20asca,4.12asca,6.2asca,7.3asca,9.11asca,22.1asca,11.8asca,18.1asca,90.12ascrN -o ${MID_DIR_CH}/CHIFM100014.csv ${MID_DIR_CH}/CHIFM100013.csv 
bsort -s -z400 -Tflt -t, -1.6asca,0.12asca,17.1ascr,2.14asca,28.3asca,16.3asca,3.20asca,4.12asca,6.2asca,7.3asca,9.11asca,22.1asca,11.8asca,18.1asca,90.12ascrN -o ${CHIFM100013_SORT} ${MID_DIR_CH}/CHIFM100013.csv
# v52.01 MOD END

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

# v52.01 ADD START
#
#---項目設定
# 割引繰越優先順位              :締め日の上3桁 (処理順(債権確定年月))
# 前受金充当優先順位            :締め日 (処理順(債権確定年月) + 処理順(料金項目))
# 割引優先順位                  :締め日の下3桁 (処理順(料金項目))
# 締め日                        :""
# 同一料金項目集計対象外フラグ  :""
# v52.01 MOD START
#awk 'BEGIN{FS=",";OFS=",";RS="\r\n";ORS="\r\n"}{$16=substr($15,1,3);$17=substr($15,4,3);$29=substr($15,1,3);$15="";print $0 ","}' ${CHIFM100013_SORT} > ${MID_DIR_CH}/CHIFM394001.csv
awk 'BEGIN{FS=",";OFS=",";RS="\r\n";ORS="\r\n"}{$16=substr($15 "      ",1,6);$17=substr($15,4,3);$29=substr($15,1,3);$15="";print $0 ","}' ${CHIFM100013_SORT} > ${MID_DIR_CH}/CHIFM394001.csv
# v52.01 MOD END

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

rm -f ${CHIFM100013_SORT}
# v52.01 ADD END

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

exit ${G_RTN_NORMAL}
