#!/bin/bash
##############################################################
# システム名    ：eo顧客基幹システム
#
# サブシステム名：契約管理
#
# シェル名      ：キャンペーン割引適用情報反映
#
# 機能          ：料金管理システムが作成したキャンペーン割引適用情報を基に適用回数を割引サービス契約内訳に反映する。
#適用が完了した割引サービス契約内訳を適用済にする。
#全ての割引サービス契約内訳が適用済となった場合、割引サービス契約を適用済にする。
#キャンペーン割引適用情報の並べ替えは、PowerSortを用いて行う。
#
# コマンド形式  ：EO2A10110J0.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
# v6.00          2013/12/26   FJ)山裾     【ST4-2013-0000552】性能改善対応
# v8.00          2014/03/13   FJ)藤原     【TAI-2014-0000009】日付対策
# v8.01          2014/04/18   FJ)福岡     【OM-2014-0001511 】0件対応
# v27.00         2016/11/22   FJ)岡田     【OM-2016-0002348 】
# v40.00         2019/02/18   FJ)星野     【OM-2019-0000142 】
# v56.00         2021/12/27   FJ)麻生     【ANK-4128-00-00  】回数型ＣＰの上限判定方法の改善
##############################################################

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

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

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

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

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

#
#---OPD
#
OPD=$1

#
#---業務で必要な変数定義
#
#xxx=xxxxxxx
SEND_FILE=`find ${SEND_DIR}/KKIFI001001.csv | tail -1`
if [ -z ${SEND_FILE} ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00025I $JOBNAME
    sh ${G_TOOLSH}/EOK010210J0.sh CS00026I $JOBNAME
    exit ${G_RTN_NORMAL}
fi
##############################################################
# 業務処理
##############################################################
sh ${G_TOOLSH}/EOK010210J0.sh CS00025I $JOBNAME

#2013/12/26 ST4-2013-0000552 Add Start

#
#---運用日付取得
#
if [ "${OPD}" = "" ]; then
#2014/03/13 TAI-2014-0000009 Mod Start
#  . EOK010310J0.sh "NDATE"
   . EOK010310J0.sh "BDATE"
#2014/03/13 TAI-2014-0000009 Mod End
   OPD=${RSLT_OPEDATE}
else
   RSLT_OPEDATE=${OPD}
fi

#
#--- ファイル定義
#

#アンロード用SQLファイル
SQLFILE_KK0451=${SQL_DIR}/KK_U_KK0451_13.sql
SQLFILE_KK0841=${SQL_DIR}/KK_U_KK0841_09.sql
SQLFILE_KK2361=${SQL_DIR}/KK_U_KK2361_07.sql
SQLFILE_KK2371=${SQL_DIR}/KK_U_KK2371_04.sql
TMPSQLFILE_KK2371=${SQL_DIR}/KK_U_KK2371_04_TMP.sql
# v27.00 ADD START
SQLFILE_KK0711=${SQL_DIR}/KK_U_KK0711_01.sql
# v27.00 ADD END

#アンロード出力用
SQLOUT_KK0451=${MID_DIR_KK}/EO2A10110J0_SQLOUT_KK0451.csv
SQLOUT_KK0841=${MID_DIR_KK}/EO2A10110J0_SQLOUT_KK0841.csv
SQLOUT_KK2361=${MID_DIR_KK}/EO2A10110J0_SQLOUT_KK2361.csv
SQLOUT_KK2371=${MID_DIR_KK}/EO2A10110J0_SQLOUT_KK2371.csv
# v27.00 ADD START
SQLOUT_KK0711=${MID_DIR_KK}/EO2A10110J0_SQLOUT_KK0711.csv
# v27.00 ADD END

#ソート結果格納用
KK0451_SORT=${MID_DIR_KK}/EO2A10110J0_KK0451_SORT.csv
KK0841_SORT=${MID_DIR_KK}/EO2A10110J0_KK0841_SORT.csv
KK2361_SORT=${MID_DIR_KK}/EO2A10110J0_KK2361_SORT.csv
KK0451_CRNT=${MID_DIR_KK}/EO2A10110J0_KK0451_CRNT.csv
KK0841_CRNT=${MID_DIR_KK}/EO2A10110J0_KK0841_CRNT.csv
KK2361_CRNT=${MID_DIR_KK}/EO2A10110J0_KK2361_CRNT.csv
# v27.00 ADD START
KK0711_SORT=${MID_DIR_KK}/EO2A10110J0_KK0711_SORT.csv
KK0711_CRNT=${MID_DIR_KK}/EO2A10110J0_KK0711_CRNT.csv
# v27.00 ADD END

#defファイル
DEFFILE_001=${G_TOOLSH}/util/def/KK_CM_0408.def
DEFFILE_002=${G_TOOLSH}/util/def/KK_CM_0409.def
TMPDEFFILE_001=${ULD_WORK_DIR}/KK_CM_0408.tmp.${JOBNAME}.def
TMPDEFFILE_002=${ULD_WORK_DIR}/KK_CM_0409.tmp.${JOBNAME}.def
# v27.00 ADD START
DEFFILE_003=${G_TOOLSH}/util/def/KK_CM_0608.def
TMPDEFFILE_003=${ULD_WORK_DIR}/KK_CM_0608.tmp.${JOBNAME}.def
# v27.00 ADD END


#INFILE関連
INFILE=${SEND_DIR}/KKIFI001001.csv
TMPINFILE=${MID_DIR_KK}/EO2A10110J0_KKIFM104_TMP.csv
# v27.00 ADD START
TMPINFILE_001=${MID_DIR_KK}/EO2A10110J0_KKIFM104_TMP_001.csv
TMPINFILE_002=${MID_DIR_KK}/EO2A10110J0_KKIFM104_TMP_002.csv
TMPINFILE_003=${MID_DIR_KK}/EO2A10110J0_KKIFM104_TMP_003.csv
TMPINFILE_004=${MID_DIR_KK}/EO2A10110J0_KKIFM104_TMP_004.csv
TMPINFILE_005=${MID_DIR_KK}/EO2A10110J0_KKIFM104_TMP_005.csv
# v27.00 ADD END
# v56.00 ADD START
TMPINFILE_006=${MID_DIR_KK}/EO2A10110J0_KKIFM104_TMP_006.csv
# v56.00 ADD END

#モジュール読み込み用
KK0451_001=${MID_DIR_KK}/EO2A10110J0_KK0451_001.csv
KK0451_001_SORT=${MID_DIR_KK}/EO2A10110J0_KK0451_001_SORT.csv
KK0451_001_CRNT=${MID_DIR_KK}/EO2A10110J0_KK0451_001_CRNT.csv
KK2361_001=${MID_DIR_KK}/EO2A10110J0_KK2361_001.csv
KK2361_001_SORT=${MID_DIR_KK}/EO2A10110J0_KK2361_001_SORT.csv
KK2361_001_CRNT=${MID_DIR_KK}/EO2A10110J0_KK2361_001_CRNT.csv


#
#--- 各ファイルの存在チェック
#

if [ ! -r $INFILE ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist($INFILE) "
    echo $JOBNAME " File is nonexist($INFILE) "
    exit ${G_RTN_ERROR}
fi

if [ ! -r $SQLFILE_KK0451 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist($SQLFILE_KK0451) "
    echo $JOBNAME " File is nonexist($SQLFILE_KK0451) "
    exit ${G_RTN_ERROR}
fi

if [ ! -r $SQLFILE_KK0841 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist($SQLFILE_KK0841) "
    echo $JOBNAME " File is nonexist($SQLFILE_KK0841) "
    exit ${G_RTN_ERROR}
fi

if [ ! -r $SQLFILE_KK2361 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist($SQLFILE_KK2361) "
    echo $JOBNAME " File is nonexist($SQLFILE_KK2361) "
    exit ${G_RTN_ERROR}
fi

if [ ! -r $SQLFILE_KK2371 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist($SQLFILE_KK2371) "
    echo $JOBNAME " File is nonexist($SQLFILE_KK2371) "
    exit ${G_RTN_ERROR}
fi

# v27.00 ADD START
if [ ! -r $SQLFILE_KK0711 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist($SQLFILE_KK0711) "
    echo $JOBNAME " File is nonexist($SQLFILE_KK0711) "
    exit ${G_RTN_ERROR}
fi
# v27.00 ADD END

if [ ! -r $DEFFILE_001 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist($DEFFILE_001) "
    echo $JOBNAME " File is nonexist($DEFFILE_001) "
    exit ${G_RTN_ERROR}
fi

if [ ! -r $DEFFILE_002 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist($DEFFILE_002) "
    echo $JOBNAME " File is nonexist($DEFFILE_002) "
    exit ${G_RTN_ERROR}
fi

# v27.00 ADD START
if [ ! -r $DEFFILE_003 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist($DEFFILE_003) "
    echo $JOBNAME " File is nonexist($DEFFILE_003) "
    exit ${G_RTN_ERROR}
fi
# v27.00 ADD END

#
#--- 各ファイルのクリア
#

cat /dev/null > $TMPSQLFILE_KK2371

rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File cat error($TMPSQLFILE_KK2371:rc=$rc) "
    echo $JOBNAME " File cat error($TMPSQLFILE_KK2371:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

cat /dev/null > $SQLOUT_KK0451

rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File cat error($SQLOUT_KK0451:rc=$rc) "
    echo $JOBNAME " File cat error($SQLOUT_KK0451:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

cat /dev/null > $SQLOUT_KK0841

rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File cat error($SQLOUT_KK0841:rc=$rc) "
    echo $JOBNAME " File cat error($SQLOUT_KK0841:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

cat /dev/null > $SQLOUT_KK2361

rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File cat error($SQLOUT_KK2361:rc=$rc) "
    echo $JOBNAME " File cat error($SQLOUT_KK2361:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

cat /dev/null > $SQLOUT_KK2371

rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File cat error($SQLOUT_KK2371:rc=$rc) "
    echo $JOBNAME " File cat error($SQLOUT_KK2371:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

# v27.00 ADD START

cat /dev/null > $SQLOUT_KK0711

rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File cat error($SQLOUT_KK0711:rc=$rc) "
    echo $JOBNAME " File cat error($SQLOUT_KK0711:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

# v27.00 ADD END

cat /dev/null > $KK0451_SORT

rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File cat error($KK0451_SORT:rc=$rc) "
    echo $JOBNAME " File cat error($KK0451_SORT:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

cat /dev/null > $KK0841_SORT

rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File cat error($KK0841_SORT:rc=$rc) "
    echo $JOBNAME " File cat error($KK0841_SORT:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

cat /dev/null > $KK2361_SORT

rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File cat error($KK2361_SORT:rc=$rc) "
    echo $JOBNAME " File cat error($SQLOUT_KK2371:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

cat /dev/null > $KK0451_CRNT

rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File cat error($KK0451_CRNT:rc=$rc) "
    echo $JOBNAME " File cat error($KK0451_CRNT:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

cat /dev/null > $KK0841_CRNT

rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File cat error($KK0841_CRNT:rc=$rc) "
    echo $JOBNAME " File cat error($KK0451_CRNT:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

cat /dev/null > $KK2361_CRNT

rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File cat error($KK2361_CRNT:rc=$rc) "
    echo $JOBNAME " File cat error($KK2361_CRNT:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

# v27.00 ADD START

cat /dev/null > $KK0711_SORT

rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File cat error($KK0711_SORT:rc=$rc) "
    echo $JOBNAME " File cat error($KK0711_SORT:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

cat /dev/null > $KK0711_CRNT

rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File cat error($KK0711_CRNT:rc=$rc) "
    echo $JOBNAME " File cat error($KK0711_CRNT:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

# v27.00 ADD END

cat /dev/null > $TMPDEFFILE_001

rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File cat error($TMPDEFFILE_001:rc=$rc) "
    echo $JOBNAME " File cat error($TMPDEFFILE_001:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

cat /dev/null > $TMPDEFFILE_002

rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File cat error($TMPDEFFILE_002:rc=$rc) "
    echo $JOBNAME " File cat error($TMPDEFFILE_002:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

# v27.00 ADD START

cat /dev/null > $TMPDEFFILE_003

rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File cat error($TMPDEFFILE_003:rc=$rc) "
    echo $JOBNAME " File cat error($TMPDEFFILE_003:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

# v27.00 ADD END

cat /dev/null > $TMPINFILE

rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File cat error($TMPINFILE:rc=$rc) "
    echo $JOBNAME " File cat error($TMPINFILE:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

# v27.00 ADD START

cat /dev/null > $TMPINFILE_001

rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File cat error($TMPINFILE_001:rc=$rc) "
    echo $JOBNAME " File cat error($TMPINFILE_001:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

cat /dev/null > $TMPINFILE_002

rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File cat error($TMPINFILE_002:rc=$rc) "
    echo $JOBNAME " File cat error($TMPINFILE_002:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

cat /dev/null > $TMPINFILE_003

rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File cat error($TMPINFILE_003:rc=$rc) "
    echo $JOBNAME " File cat error($TMPINFILE_003:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

cat /dev/null > $TMPINFILE_004

rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File cat error($TMPINFILE_004:rc=$rc) "
    echo $JOBNAME " File cat error($TMPINFILE_004:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

cat /dev/null > $TMPINFILE_005

rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File cat error($TMPINFILE_005:rc=$rc) "
    echo $JOBNAME " File cat error($TMPINFILE_005:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

# v27.00 ADD END

# v56.00 ADD START
cat /dev/null > $TMPINFILE_006

rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File cat error($TMPINFILE_006:rc=$rc) "
    echo $JOBNAME " File cat error($TMPINFILE_006:rc=$rc) "
    exit ${G_RTN_ERROR}
fi
# v56.00 ADD END

cat /dev/null > $KK0451_001

rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File cat error($KK0451_001:rc=$rc) "
    echo $JOBNAME " File cat error($KK0451_001:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

cat /dev/null > $KK0451_001_SORT

rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File cat error($KK0451_001_SORT:rc=$rc) "
    echo $JOBNAME " File cat error($KK0451_001_SORT:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

cat /dev/null > $KK0451_001_CRNT

rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File cat error($KK0451_001_CRNT:rc=$rc) "
    echo $JOBNAME " File cat error($KK0451_001_CRNT:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

cat /dev/null > $KK2361_001

rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File cat error($KK2361_001:rc=$rc) "
    echo $JOBNAME " File cat error($KK2361_001:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

cat /dev/null > $KK2361_001_SORT

rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File cat error($KK2361_001_SORT:rc=$rc) "
    echo $JOBNAME " File cat error($KK2361_001_SORT:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

cat /dev/null > $KK2361_001_CRNT

rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File cat error($KK2361_001_CRNT:rc=$rc) "
    echo $JOBNAME " File cat error($KK2361_001_CRNT:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

# v8.01 ADD START
#
#--- 連携ファイルチェック処理
#
CHKFILE=${SEND_DIR}/KKIFI001001.csv
CNT=`cat ${CHKFILE} | wc -l`
if [ ${CNT} -eq 0 ]
then
    nkf -Lu ${INFILE} > ${TMPINFILE}
    bsort -s -Tcsv -1.12asca,3.12asca -u -z47 -o ${MID_DIR_KK}/KKIFM104.csv ${SEND_DIR}/KKIFI001001.csv 
    exit ${G_RTN_NORMAL}
fi
# v8.01 ADD END

#
#--- UNLOAD処理(KK0451)
#
sh ${G_TOOLSH}/EOKULD02.sh $SQLFILE_KK0451 $SQLOUT_KK0451 $JOBNAME

#
#--- キー項目(割引サービス契約番号,予約適用年月日,世代登録年月日時分秒)でソート後にデータを抽出
# 抽出条件
#    無効フラグ = '0'
#    予約適用コード = '2'
#    予約適用年月日 <= 処理日
#
bsortex -sort key=0.12asc,12.8asc,1.17asc -record recform=txtcsv -input file=${SQLOUT_KK0451} reclen=2000 include="55.1asc.eq.'0',14.1asc.eq.'2',12.8asc.le.'${RSLT_OPEDATE}'" -output file=${KK0451_SORT}

#
#--- マージ（キー項目[割引サービス契約番号,予約適用年月日,世代登録年月日時分秒]のカレントレコード（一番下のレコード）のみを残す）
#
bsortex -merge key=0.12asc -record recform=txtcsv -input file=${KK0451_SORT} reclen=2000 -summary suppress last -output file=${KK0451_CRNT}

#
#--- UNLOAD処理(KK0841)
#
sh ${G_TOOLSH}/EOKULD02.sh $SQLFILE_KK0841 $SQLOUT_KK0841 $JOBNAME

#
#--- キー項目(割引サービスコード,予約適用年月日,世代登録年月日時分秒)でソート後にデータを抽出
# 抽出条件
#    無効フラグ = '0'
#    予約適用年月日 <= 処理日
#    割引タイプコード （キャンペーン割引："50" キャンペーン割引(面開発用)："51"）
#
# v27.00 MOD START
#bsortex -sort key=0.9asc,3.8asc,1.17asc -record recform=txtcsv -input file=${SQLOUT_KK0841} reclen=2000 include="4.1asc.eq.'0',3.8asc.le.'${RSLT_OPEDATE}'" -output file=${KK0841_SORT}
bsortex -sort key=0.9asc,3.8asc,1.17asc -record recform=txtcsv -input file=${SQLOUT_KK0841} reclen=2000 include="4.1asc.eq.'0',3.8asc.le.'${RSLT_OPEDATE}',(5.2asc.eq.'50'.or.5.2asc.eq.'51')" -output file=${KK0841_SORT}
# v27.00 MOD END

#
#--- マージ（キー項目[割引サービスコード,予約適用年月日,世代登録年月日時分秒]のカレントレコード（一番下のレコード）のみを残す）
#
bsortex -merge key=0.9asc -record recform=txtcsv -input file=${KK0841_SORT} reclen=2000 -summary suppress last -output file=${KK0841_CRNT}

#
#--- 定義ファイル環境変数設定
#
cat ${SQLFILE_KK2371} > ${TMPSQLFILE_KK2371}
sed -i -e s@'${RSV_APLY_YMD}'@${RSLT_OPEDATE}@g ${TMPSQLFILE_KK2371}

#
#--- UNLOAD処理(KK2371)
#
sh ${G_TOOLSH}/EOKULD02.sh $TMPSQLFILE_KK2371 $SQLOUT_KK2371 $JOBNAME

#
#--- UNLOAD処理(KK2361)
#
sh ${G_TOOLSH}/EOKULD02.sh $SQLFILE_KK2361 $SQLOUT_KK2361 $JOBNAME

#
#--- キー項目(割引サービス契約番号,割引サービス契約内訳番号,世代登録年月日時分秒)でソート後にデータを抽出
# 抽出条件
#    無効フラグ = '0'
#
bsortex -sort key=0.12asc,1.12asc,2.17asc -record recform=txtcsv -input file=${SQLOUT_KK2361} reclen=2000 include="16.1asc.eq.'0'" -output file=${KK2361_SORT}

#
#--- マージ（キー項目[割引サービス契約番号,割引サービス契約内訳番号,世代登録年月日時分秒]のカレントレコード（一番下のレコード）のみを残す）
#
bsortex -merge key=0.12asc,1.12asc -record recform=txtcsv -input file=${KK2361_SORT} reclen=2000 -summary suppress last -output file=${KK2361_CRNT}

# v27.00 ADD START

#
#--- UNLOAD処理(KK0711)
#
sh ${G_TOOLSH}/EOKULD02.sh $SQLFILE_KK0711 $SQLOUT_KK0711 $JOBNAME

#
#--- キー項目(割引サービスコード,割引サービス詳細コード,割引サービス単価番号)でソート後にデータを抽出
# 抽出条件
#    割引サービス単価適用開始年月日≦処理日≦割引サービス単価適用終了年月日
#
bsortex -sort key=15.9asc,1.12asc,0.12asc -record recform=txtcsv -input file=${SQLOUT_KK0711} reclen=2000 include="12.6asc.le.'${RSLT_OPEDATE}',13.6asc.ge.'${RSLT_OPEDATE}'" -output file=${KK0711_SORT}

#
#--- マージ（キー項目[割引サービスコード,割引サービス詳細コード,割引サービス単価番号]のカレントレコード（一番下のレコード）のみを残す）
#
bsortex -merge key=15.9asc,1.12asc,0.12asc -record recform=txtcsv -input file=${KK0711_SORT} reclen=2000 -summary suppress last -output file=${KK0711_CRNT}

# v27.00 ADD END

#-- 改行コードをLFにする。
nkf -Lu ${INFILE} > ${TMPINFILE}

#
#--- 入力ファイルにダブルクォーテーションを付加
#
sed -i -e "s/,/\",\"/g" ${TMPINFILE}
sed -i -e "s/^/\"/" ${TMPINFILE}
sed -i -e "s/$/\"/" ${TMPINFILE}

#
#--- 環境変数の設定を行う（出力ファイル情報の設定）
#
export ZTLTMPDIR=${ULD_WORK_DIR}
export ZTLOUTFILE=${KK0451_001}

#
#--- 定義ファイル環境変数設定処理
#
cat ${DEFFILE_001} > ${TMPDEFFILE_001}
sed -i -e s@'${KKIFM104_INFILE}'@${TMPINFILE}@g ${TMPDEFFILE_001}
sed -i -e s@'${KK0451}'@${KK0451_CRNT}@g ${TMPDEFFILE_001}
sed -i -e s@'${KK0841}'@${KK0841_CRNT}@g ${TMPDEFFILE_001}
# v27.00 ADD START
sed -i -e s@'${KK2371}'@${SQLOUT_KK2371}@g ${TMPDEFFILE_001}
# v27.00 ADD END

#
#--- ファイルマッチング処理　※元のＳＱＬのＪＯＩＮ
#
${G_TOOLSH}/util/bin/ZTLMAT01 ${TMPDEFFILE_001}

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

#
#--- キー項目(割引サービス契約番号)でソート
#
bsortex -sort key=0.12asc -record recform=txtcsv -input file=${KK0451_001} reclen=2000 -output file=${KK0451_001_SORT}

#
#--- マージ（キー項目[割引サービス契約番号]のカレントレコード（一番下のレコード）のみを残す）
#
bsortex -merge key=0.12asc -record recform=txtcsv -input file=${KK0451_001_SORT} reclen=2000 -summary suppress last -output file=${KK0451_001_CRNT}

#
#--- 環境変数の設定を行う（出力ファイル情報の設定）
#
export ZTLTMPDIR=${ULD_WORK_DIR}
export ZTLOUTFILE=${KK2361_001}

#
#--- 定義ファイル環境変数設定処理
#
cat ${DEFFILE_002} > ${TMPDEFFILE_002}
sed -i -e s@'${KKIFM104_INFILE}'@${TMPINFILE}@g ${TMPDEFFILE_002}
sed -i -e s@'${KK2361}'@${KK2361_CRNT}@g ${TMPDEFFILE_002}
# v27.00 ADD START
sed -i -e s@'${KK2371}'@${SQLOUT_KK2371}@g ${TMPDEFFILE_002}
sed -i -e s@'${KK0841}'@${KK0841_CRNT}@g ${TMPDEFFILE_002}
# v27.00 ADD END

#
#--- ファイルマッチング処理　※元のＳＱＬのＪＯＩＮ
#
${G_TOOLSH}/util/bin/ZTLMAT01 ${TMPDEFFILE_002}

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

#
#--- キー項目(割引サービス契約番号,割引サービス詳細コード)でソート
#
bsortex -sort key=0.12asc,4.12asc -record recform=txtcsv -input file=${KK2361_001} reclen=2000 -output file=${KK2361_001_SORT}

#
#--- マージ（キー項目[割引サービス契約番号,割引サービス詳細コード]のカレントレコード（一番下のレコード）のみを残す）
#
bsortex -merge key=0.12asc,4.12asc -record recform=txtcsv -input file=${KK2361_001_SORT} reclen=2000 -summary suppress last -output file=${KK2361_001_CRNT}

#2013/12/26 ST4-2013-0000552 Add End

# v27.00 ADD START
#
#--- 環境変数の設定を行う（出力ファイル情報の設定）
#
export ZTLTMPDIR=${ULD_WORK_DIR}
export ZTLOUTFILE=${TMPINFILE_001}

#
#--- 定義ファイル環境変数設定処理
#
cat ${DEFFILE_003} > ${TMPDEFFILE_003}
sed -i -e s@'${KKIFM104_INFILE}'@${TMPINFILE}@g ${TMPDEFFILE_003}
sed -i -e s@'${KK2361}'@${KK2361_001_CRNT}@g ${TMPDEFFILE_003}
sed -i -e s@'${KK0711}'@${KK0711_CRNT}@g ${TMPDEFFILE_003}

#
#--- ファイルマッチング処理　※元のＳＱＬのＪＯＩＮ
#
${G_TOOLSH}/util/bin/ZTLMAT01 ${TMPDEFFILE_003}

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

#
#--- キー項目(割引サービス契約番号,割引サービス詳細番号,割引サービス単価番号)でソート
#
# v56.00 MOD START
#bsortex -sort key="1.12asc,3.12asc" -record recform=txtcsv -input file=${TMPINFILE_001} reclen=100 -output file=${TMPINFILE_002}
bsortex -sort key="1.12asc,4.12asc,3.12ascr" -record recform=txtcsv -input file=${TMPINFILE_001} reclen=100 -output file=${TMPINFILE_002}
# v56.00 MOD END

#
#--- マージ（キー項目[割引サービス契約番号,割引サービス詳細番号]で一意にする）
#
# v56.00 MOD START
#bsortex -merge key="1.12asc,3.12asc" -record recform=txtcsv -input file=${TMPINFILE_002} reclen=100 -summary suppress last -output file=${TMPINFILE_003}
bsortex -merge key="1.12asc,4.12asc" -record recform=txtcsv -input file=${TMPINFILE_002} reclen=100 -summary suppress last -output reconst="0.6,1.12,2.12,3.12" file=${TMPINFILE_006}
# v56.00 MOD END

# v56.00 ADD START
#
#--- キー項目(割引サービス契約番号,割引サービス単価番号)でソート
#
bsortex -sort key="1.12asc,3.12asc" -record recform=txtcsv -input file=${TMPINFILE_006} reclen=100 -output file=${TMPINFILE_003}
# v56.00 ADD END

#
#--- ダブルクォーテーションを排除
#--- 改行コード変換(LF→CRLF)
#
sed -e "s/\"//g" ${TMPINFILE_003} > ${TMPINFILE_004}
nkf -Lw  < ${TMPINFILE_004} > ${TMPINFILE_005}

# v27.00 ADD END

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

P1="OPD=,"
P2="SVCCTL=JBSbatMultiServiceControl,"
P3="JOB=EO2A10110J0,"
P4="IND1=KKIFM104.def,"
P5="INF1=${MID_DIR_KK}/KKIFM104.csv,"
P6="IND2=,"
P7="INF2=,"
P8="OTD1=,"
P9="OTF1=,"
P10="OTD2=,"
P11="OTF2=,"
P12="TABLENAME=,"
P13="SQLKEY=,"
P14="SQLPARAM=,"
P15="ERRFILE=,"
P16="RECOVERY=,"
P17="BREAKPTN=,"
#2013/12/26 ST4-2013-0000552 Mod Start
#P18="FREE="
P18="FREE=${KK0451_001_CRNT};${SQLOUT_KK2371};${KK2361_001_CRNT}"
#2013/12/26 ST4-2013-0000552 Mod End
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

#
#---ＳＯＲＴ
#
# v27.00 MOD START
#bsort -s -Tcsv -1.12asca,3.12asca -u -z47 -o ${MID_DIR_KK}/KKIFM104.csv ${SEND_DIR}/KKIFI001001.csv 
bsort -s -Tcsv -1.12asca,3.12asca -u -z47 -o ${MID_DIR_KK}/KKIFM104.csv ${TMPINFILE_005} 
# v27.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

#
#---ＡＰＬ起動
#

# v40.00 MOD START
#java ${JAVA_OPTION} -jar ${JAR_DIR}/koptBatch.jar $PARA
java ${JAVA_OPTION_16384} -jar ${JAR_DIR}/koptBatch.jar $PARA
# v40.00 MOD END

rc=$?
ERR_FLG=0
if [ $rc -ne 0 ]
then
   if [ $rc -ne 4 ]
   then
       if [ $rc -ne 8 ]
       then
           if [ $rc -ne 127 ]
           then
              sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " PROGRAM Error($SVC program:rc=$rc) "
              echo $JOBNAME " PROGRAM Error($SVC program:rc=$rc) "
              exit ${G_RTN_ERROR}
           fi
       fi
    fi
    ERR_FLG=1
fi

exit_rc=$rc

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

exit $exit_rc
