#!/bin/bash
##############################################################
# システム名    ：eo顧客基幹システム
#
# サブシステム名：請求収納
#
# シェル名      ：売上オーソリ結果リストソート
#
# 機能          ：売上オーソリ結果リストを以下のキーにて並び替えを行う。
#ソートキー：売上オーソリチェック結果コード(降順)、請求契約番号
#
# コマンド形式  ：EO60H0175J0.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
#
#	v4.00		2013/03/22    FJ)小柴		【内部管理番号-0000302】項目追加によるソートキー位置修正
#   v53.00.00   2021/05/14    FJ)謝         【ANK-4029-00-00】売上オーソリエラーコード追加対応
#   v58.00.00   2022/05/17    FJ) 秋末      【ANK-3846-00-00】【クレカ】クリアパス→ペイジェント移行
#   v64.00.00   2023/02/13    FJ) 北川      【ANK-4390-01-00】クリアパス→ペイジェント移行　STEP2【仕変№1】ペイジェントエラーコードの変換論理を外部定義化する

##############################################################

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

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

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

P1="OPD=,"
P2="SVCCTL=,"
P3="JOB=EO60H0175J0,"
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
# ANK-4029-00-00 ADD START
#
#---ファイル初期化
#
cat /dev/null > ${MID_DIR_CH}/CHIFM066002_1.csv
cat /dev/null > ${MID_DIR_CH}/CHIFM066002_2.csv
cat /dev/null > ${MID_DIR_CH}/CHIFM066002_3.csv

#
#---処理結果コードが「1020101」(カード会社その他エラー)の場合
#       売上オーソリ結果コード：「3」(エラー)
#       売上オーソリチェック結果：空文字     ※後処理で再設定を行う
#
#     0 -  0.10  ：請求契約番号
#     1 -  1.5   ：クレジット会社交換コード
#     2 -  2.5   ：クレジット会社コード
#     3 -  3.50  ：クレジット会社名
#     4 -  4.15  ：加盟店番号
#     5 -  5.64  ：クレジットカード番号
#     6 -  6.1   ：売上オーソリ結果コード
#     7 -  7.6   ：売上オーソリチェック結果
#     8 -  8.17  ：売上オーソリ実施年月日時分秒
#     9 -  9.7   ：処理結果コード
#    10 - 10.160 ：処理結果内容
#    11 - 11.7   ：オーソリ承認番号
#    12 - 12.12  ：請求番号
#    13 - 13.6   ：請求年月
#    14 - 14.15  ：請求額
#    15 - 15.1   ：未納合算料金有無
#    16 - 16.2   ：督促ステータス
#    17 - 17.90  ：督促ステータス名
#    18 - 18.242 ：請求先名（カナ）
#    19 - 19.1   ：強制窓口抑止情報
#    20 - 20.1   ：変更請求方法コード
#    21 - 21.2   ：請求書データ作成結果コード
#    22 - 22.1   ：抑止請求先一覧出力対象フラグ
#ANK-3846-00-00 ADD START
#    23 - 23.18  ：決済ID
#    24 - 24.25  ：マーチャント取引ID
#    25 - 25.1   ：クレジットカード種別
#    26 - 26.20  ：クレジットカード種別名
#    27 - 27.1   ：クレジットイシュア区分
#    28 - 28.4   ：クレジットイシュア区分名
#ANK-3846-00-00 ADD END
#ANK-4390-01-00 ADD START
#    29 - 29.1   ：特定カードフロアリミット超過フラグ
#ANK-4390-01-00 ADD END

#ANK-4390-01-00 MOD START
#ANK-3846-00-00 MOD START
#bsortex -copy -record recform=txtcsv \
#     -input file=${MID_DIR_CH}/CHIFM066001.csv reclen=750 \
#     -output file=${MID_DIR_CH}/CHIFM066002_1.csv case="9.7asc.eq.'1020101'" reconst="0.10,1.5,2.5,3.50,4.15,5.64,'3'.1asc,EMPTY,8.17,9.7,10.160,11.7,12.12,13.6,14.15,15.1,16.2,17.90,18.242,19.1,20.1,21.2,22.1" \
#     -output file=${MID_DIR_CH}/CHIFM066002_2.csv case=other
#bsortex -copy -record recform=txtcsv \
#     -input file=${MID_DIR_CH}/CHIFM066001.csv reclen=1000 \
#     -output file=${MID_DIR_CH}/CHIFM066002_1.csv case="9.7asc.eq.'1020101'" reconst="0.10,1.5,2.5,3.50,4.15,5.64,'3'.1asc,EMPTY,8.17,9.7,10.160,11.7,12.12,13.6,14.15,15.1,16.2,17.90,18.242,19.1,20.1,21.2,22.1,23.18,24.25,25.1,26.20,27.1,28.4" \
#     -output file=${MID_DIR_CH}/CHIFM066002_2.csv case=other
#ANK-3846-00-00 ADD END
bsortex -copy -record recform=txtcsv \
     -input file=${MID_DIR_CH}/CHIFM066001.csv reclen=1000 \
     -output file=${MID_DIR_CH}/CHIFM066002_1.csv case="9.7asc.eq.'1020101'" reconst="0.10,1.5,2.5,3.50,4.15,5.64,'3'.1asc,EMPTY,8.17,9.7,10.160,11.7,12.12,13.6,14.15,15.1,16.2,17.90,18.242,19.1,20.1,21.2,22.1,23.18,24.25,25.1,26.20,27.1,28.4,29.1" \
     -output file=${MID_DIR_CH}/CHIFM066002_2.csv case=other
#ANK-4390-01-00 MOD END

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

cat ${MID_DIR_CH}/CHIFM066002_1.csv > ${MID_DIR_CH}/CHIFM066002_3.csv
cat ${MID_DIR_CH}/CHIFM066002_2.csv >> ${MID_DIR_CH}/CHIFM066002_3.csv
# ANK-4029-00-00 ADD END

#
#---ＳＯＲＴ
#
# ANK-4029-00-00 MOD START
#bsort -s -z750 -Tflt -t, -6.99ascrN,0.99ascaN -o ${MID_DIR_CH}/CHIFM066002.csv ${MID_DIR_CH}/CHIFM066001.csv 
# ANK-3846-00-00 MOD START
#bsort -s -z750 -Tflt -t, -6.99ascrN,0.99ascaN -o ${MID_DIR_CH}/CHIFM066002.csv ${MID_DIR_CH}/CHIFM066002_3.csv  
bsort -s -z1000 -Tflt -t, -6.99ascrN,0.99ascaN -o ${MID_DIR_CH}/CHIFM066002.csv ${MID_DIR_CH}/CHIFM066002_3.csv
# ANK-3846-00-00 MOD END
# ANK-4029-00-00 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

# ANK-4029-00-00 ADD START
#
#---一時ファイル削除
#
rm -f ${MID_DIR_CH}/CHIFM066002_1.csv
rm -f ${MID_DIR_CH}/CHIFM066002_2.csv
rm -f ${MID_DIR_CH}/CHIFM066002_3.csv
# ANK-4029-00-00 ADD END
#
#--- ジョブの終了メッセージを出力する
#
sh ${G_TOOLSH}/EOK010210J0.sh CS00028I $JOBNAME
sh ${G_TOOLSH}/EOK010210J0.sh CS00026I $JOBNAME

exit ${G_RTN_NORMAL}
