#!/bin/bash
##############################################################
# システム名    ：eo顧客基幹システム
#
# サブシステム名：契約管理
#
# シェル名      ：テレビ一時金割引再連携対象抽出
#
# 機能          ：ＴＶ一時金割引のための再連携対象ファイルを作成する。
#
# コマンド形式  ：EO236017AJ0.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
# v8.00.00        2014/04/11  FJ）星野     新規作成
# v54.00.00       2021/10/25  FJ) 寺川     【ANK-4069-00-00】EOL対応(バッチ・DBサーバリプレース対応)
# v74.00.00       2024/12/03  FJ) 吉田     【ANK-4592-00-00】テレビ新コース（スカパー用）導入対応）
##############################################################

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

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

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

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

P1="OPD=,"
P2="SVCCTL=,"
P3="JOB=EO236017AJ0,"
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-4069-00-00対応 20211025 寺川 DEL START
#export LC_CTYPE=ja_JP.SJIS
#export LC_COLLATE=ja_JP.SJIS
# ANK-4069-00-00対応 20211025 寺川 DEL END

#
#--- ファイル定義
#
INFILE=${MID_DIR_KK}/KKIFM468001.csv
INFILE_SORT=${MID_DIR_KK}/KKIFM468001_sort.csv
INFILE2=${MID_DIR_KK}/KKIFM468003.csv
INFILE2_SORT=${MID_DIR_KK}/KKIFM468003_sort.csv

MIDFILE=${MID_DIR_KK}/KKIFM468004.csv
MIDFILE_FLG=${MID_DIR_KK}/KKIFM468004_flg.csv
INFILE_SORT_FLG=${MID_DIR_KK}/KKIFM468001_sort_flg.csv
MIDFILE2=${MID_DIR_KK}/KKIFM468005.csv


#
#--- ファイル定義
#
DEFFILE=${G_TOOLSH}/util/def/KK_CM_0455.def
TMPDEFFILE=${ULD_WORK_DIR}/KK_CM_0455.tmp.${JOBNAME}.def

#
#--- 定義ファイル環境変数設定処理
#
cat ${DEFFILE} > ${TMPDEFFILE}
sed -i -e s@'${MID_DIR_KK}'@${MID_DIR_KK}@g ${TMPDEFFILE}

#
#--- ファイル定義
#
DEFFILE2=${G_TOOLSH}/util/def/KK_CM_0456.def
TMPDEFFILE2=${ULD_WORK_DIR}/KK_CM_0456.tmp.${JOBNAME}.def

#
#--- 定義ファイル環境変数設定処理
#
cat ${DEFFILE2} > ${TMPDEFFILE2}
sed -i -e s@'${MID_DIR_KK}'@${MID_DIR_KK}@g ${TMPDEFFILE2}


#
#---ＳＯＲＴ
#
bsort -s -z472 -0.10asca,2.3asca,1.12asca -Tflt -t, -o ${INFILE_SORT} ${INFILE}

#
#---ＳＯＲＴ
#
bsort -s -z472 -0.10asca,2.3asca,1.12asca -Tflt -t, -o ${INFILE2_SORT} ${INFILE2}

#
#--- ファイルマッチング処理
#
export ZTLOUTFILE=${MIDFILE}
${G_TOOLSH}/util/bin/ZTLMAT01 ${TMPDEFFILE}

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) "
    exit ${G_RTN_ERROR}
fi

#
#--- マッチしたレコードにフラグ"1"を付与
#
bsortex -copy -record recform=txtcsv -input file=${MIDFILE} reclen=400 -output file=${MIDFILE_FLG} reconst="'1'.1ascA,0.10,1.12,2.3,3.6"

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

#
#--- ファイルマッチング処理（LEFT JOINでフラグ付レコードを元ファイルに書き戻す）
#
export ZTLOUTFILE=${INFILE_SORT_FLG}
${G_TOOLSH}/util/bin/ZTLMAT01 ${TMPDEFFILE2}

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) "
    exit ${G_RTN_ERROR}
fi

#
#--- 抽出条件（フラグの立っていないアンマッチレコードだけを残す）
#
bsortex -copy -record recform=txtcsv -input file=${INFILE_SORT_FLG} reclen=400 include="00.1asc.le.'0'" -output file=${MIDFILE2} reconst="1.10,2.12,3.3,4.6"





MAXCNT=31
cnt=0
while [ ${cnt} -le ${MAXCNT} ]
do
    #
    #---頭0埋め
    #
    if [ ${cnt} -lt 10 ]
    then
       seqno=0${cnt}
    else
       seqno=${cnt}
    fi
    
    
    #
    #--- ファイル定義
    #
    INFILE3_SEQ=${MID_DIR_KK}/KKIFM020153_${seqno}.csv
    MIDFILE3_SEQ=${MID_DIR_KK}/KKIFM020156_${seqno}.csv
    MIDFILE4_SEQ=${MID_DIR_KK}/KKIFM020157_${seqno}.csv
    MIDFILE4_SEQ_FLG=${MID_DIR_KK}/KKIFM020157_${seqno}_flg.csv
    MIDFILE3_SEQ_FLG=${MID_DIR_KK}/KKIFM020156_${seqno}_flg.csv
    OUTFILE_SEQ_TEMP=${MID_DIR_KK}/KKIFM279033_${seqno}_temp.csv
    OUTFILE_SEQ=${MID_DIR_KK}/KKIFM279033_${seqno}.csv
    
    #
    #--- ファイルの存在チェックを行う
    #
    if [ -r $INFILE3_SEQ ]
    then
        #
        #--- ＳＯＲＴ 抽出条件
        # 料金グループ：11,12,13
        # 料金コース：A23,A37,A75,AC0,AC1以外
        # 料金プラン：WMから始まる
# ANK-4592-00-00 MOD START
#        bsortex -sort key=4.20asca,5.12asca,1.3asca -record recform=txtcsv -input file=${INFILE3_SEQ} reclen=330 -output file=${MIDFILE3_SEQ} \
#        include="(0.2asc.eq.'11'.or.0.2asc.eq.'12'.or.0.2asc.eq.'13').and.(1.3asc.ne.'A23'.and.1.3asc.ne.'A37'.and.1.3asc.ne.'A75').and.2.2asc.eq.'WM'"
        bsortex -sort key=4.20asca,5.12asca,1.3asca -record recform=txtcsv -input file=${INFILE3_SEQ} reclen=330 -output file=${MIDFILE3_SEQ} \
        include="(0.2asc.eq.'11'.or.0.2asc.eq.'12'.or.0.2asc.eq.'13').and.(1.3asc.ne.'A23'.and.1.3asc.ne.'A37'.and.1.3asc.ne.'A75'.and.1.3asc.ne.'AC0'.and.1.3asc.ne.'AC1').and.2.2asc.eq.'WM'"
# ANK-4592-00-00 MOD END
        
        
        #
        #--- ファイル定義
        #
        DEFFILE3=${G_TOOLSH}/util/def/KK_CM_0457.def
        TMPDEFFILE3=${ULD_WORK_DIR}/KK_CM_0457.tmp.${JOBNAME}.def
        
        #
        #--- 定義ファイル環境変数設定処理
        #
        cat ${DEFFILE3} > ${TMPDEFFILE3}
        sed -i -e s@'${MID_DIR_KK}'@${MID_DIR_KK}@g ${TMPDEFFILE3}
        sed -i -e s@'${seqno}'@${seqno}@g ${TMPDEFFILE3}
        
        #
        #--- ファイル定義
        #
        DEFFILE4=${G_TOOLSH}/util/def/KK_CM_0458.def
        TMPDEFFILE4=${ULD_WORK_DIR}/KK_CM_0458.tmp.${JOBNAME}.def
        
        #
        #--- 定義ファイル環境変数設定処理
        #
        cat ${DEFFILE4} > ${TMPDEFFILE4}
        sed -i -e s@'${MID_DIR_KK}'@${MID_DIR_KK}@g ${TMPDEFFILE4}
        sed -i -e s@'${seqno}'@${seqno}@g ${TMPDEFFILE4}
        
        #
        #--- ファイル定義
        #
        DEFFILE5=${G_TOOLSH}/util/def/KK_CM_0460.def
        TMPDEFFILE5=${ULD_WORK_DIR}/KK_CM_0460.tmp.${JOBNAME}.def
        
        #
        #--- 定義ファイル環境変数設定処理
        #
        cat ${DEFFILE5} > ${TMPDEFFILE5}
        sed -i -e s@'${MID_DIR_KK}'@${MID_DIR_KK}@g ${TMPDEFFILE5}
        sed -i -e s@'${seqno}'@${seqno}@g ${TMPDEFFILE5}
        
        
        
        #
        #--- ファイルマッチング処理
        #
        export ZTLOUTFILE=${MIDFILE4_SEQ}
        ${G_TOOLSH}/util/bin/ZTLMAT01 ${TMPDEFFILE3}
        
        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) "
            exit ${G_RTN_ERROR}
        fi
        
        #
        #--- マッチしたレコードにフラグ"1"を付与
        #
        bsortex -copy -record recform=txtcsv -input file=${MIDFILE4_SEQ} reclen=330 -output file=${MIDFILE4_SEQ_FLG} reconst="'1'.1ascA,0.10,1.12,2.3,3.6"
        
        #
        #--- ファイルマッチング処理（LEFT JOINでフラグ付レコードを元ファイルに書き戻す）
        #
        export ZTLOUTFILE=${MIDFILE3_SEQ_FLG}
        ${G_TOOLSH}/util/bin/ZTLMAT01 ${TMPDEFFILE4}
        
        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) "
            exit ${G_RTN_ERROR}
        fi
        
        #
        #--- 抽出条件（フラグの立っていないアンマッチレコードだけを残す）
        #
        bsortex -copy -record recform=txtcsv -input file=${MIDFILE3_SEQ_FLG} reclen=330 include="00.1asc.le.'0'" -output file=${OUTFILE_SEQ_TEMP} reconst="5.20,6.12,2.3"
        
        #
        #--- ファイルマッチング処理（アンマッチは残すがノーヒットは省く）
        #
        export ZTLOUTFILE=${OUTFILE_SEQ}
        ${G_TOOLSH}/util/bin/ZTLMAT01 ${TMPDEFFILE5}
        
        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) "
            exit ${G_RTN_ERROR}
        fi
        
        #
        #---再連携ファイルの作成が済んだら、翌月拾われないように入力ファイルをリネームする
        #
        if [ -e ${INFILE3_SEQ} ]
        then
          mv -f ${INFILE3_SEQ} ${INFILE3_SEQ}.bk
        fi
        
    fi
    
	cnt=`expr ${cnt} + 1`
done




# ANK-4069-00-00対応 20211025 寺川 DEL START
#export LC_CTYPE=ja_JP.UTF-8
#export LC_COLLATE=ja_JP.UTF-8
# ANK-4069-00-00対応 20211025 寺川 DEL END

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

exit ${G_RTN_NORMAL}
