#!/bin/bash
##############################################################
# システム名    ：eo顧客基幹システム
#
# サブシステム名：契約管理
#
# シェル名      ：eoプレミアムパック終了対応　データ移行対象抽出処理（アンロード後の編集）
#
# 機能          ：プレミアムパックの移行対象を、更新バッチの入力用に編集する
#
# コマンド形式  ：EO2BX0120J0.sh 処理年月日(YYYYMMDD) 課金終了年月日(YYYYMMDD) 課金開始年月日(YYYYMMDD) 
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：2023年9月末の移行用バッチです
#
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
# v68.00.00       2023/08/08  FJ)北谷      ANK-4400-00-00_eoプレミアムパック終了対応
##############################################################

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

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

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


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

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

#
#--- パラメータ
#
#処理年月日 （このシェルでは未使用）
SHORI_YMD=$1
#課金終了年月日 （このシェルでは未使用）
CHRG_END_YMD=$2
#課金開始年月日 （このシェルでは未使用）
CHRG_STA_YMD=$3

#
#--- 業務で必要な変数定義
#

#--ワークファイル削除フラグ
WK_RM=true

#---マッチング処理でLeftjoinがNULL時に"を付けなくする（マッチング使用時は必須）
export ZTLQUOTES=''



##############################################################
# 業務処理
##############################################################
#sh ${G_TOOLSH}/EOK010210J0.sh CS00025I $JOBNAME
echo $JOBNAME "start"

#
#--- 引数の数をチェック
#
if [ $# -ne 3 ]; 
  then
  	#sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME "引数の数が不正です"
  	echo $JOBNAME "引数の数が不正です"
  	exit ${G_RTN_ERROR}
fi


#--- MATCHING関数
#       p1：defファイル名 p2:出力ファイル名
MATCHING(){
    export ZTLOUTFILE=$2
    ${G_TOOLSH}/util/bin/ZTLMAT01 $1
    rc=$?
    if [ $rc -ne 0 ]
    then
          #sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " matching error(matching:$1=$rc) "
          echo $JOBNAME " matching error(matching:$1=$rc) "
          exit ${G_RTN_ERROR}
    fi
}


#-------------------------------------------------------------
#--- 入出力ファイル定義
#-------------------------------------------------------------


#--キー情報
ULD_KEYFILE=${MID_DIR_KK}/KKIFM959010.csv

#--オプションサービス契約
ULD_OPSVC=${MID_DIR_KK}/KKIFM959020.csv

#--オプションサービス契約＜ISP＞
ULD_OPSVCISP=${MID_DIR_KK}/KKIFM959030.csv

#--割引サービス契約　（プレミアムパック割引）
ULD_WRI_PP=${MID_DIR_KK}/KKIFM959040.csv

#--割引サービス契約内訳　（プレミアムパック割引）
ULD_WRIUC_PP=${MID_DIR_KK}/KKIFM959050.csv

#--割引サービス契約　（スマートリンクプレミアムパック割引）
ULD_WRI_SLPP=${MID_DIR_KK}/KKIFM959060.csv

#--割引サービス契約内訳　（スマートリンクプレミアムパック割引）
ULD_WRIUC_SLPP=${MID_DIR_KK}/KKIFM959070.csv

#--住所変更明細
ULD_ADCHG=${MID_DIR_KK}/KKIFM959080.csv

#--マージ後ファイル　更新バッチ用
OUTPUT=${MID_DIR_KK}/KKIFM959090.csv


#defファイル
DEF_755=${G_TOOLSH}/util/def/KK_CM_0755.def
DEF_756=${G_TOOLSH}/util/def/KK_CM_0756.def
DEF_757=${G_TOOLSH}/util/def/KK_CM_0757.def
DEF_758=${G_TOOLSH}/util/def/KK_CM_0758.def
DEF_759=${G_TOOLSH}/util/def/KK_CM_0759.def
DEF_760=${G_TOOLSH}/util/def/KK_CM_0760.def
DEF_761=${G_TOOLSH}/util/def/KK_CM_0761.def
DEF_762=${G_TOOLSH}/util/def/KK_CM_0762.def
DEF_763=${G_TOOLSH}/util/def/KK_CM_0763.def
DEF_764=${G_TOOLSH}/util/def/KK_CM_0764.def
DEF_765=${G_TOOLSH}/util/def/KK_CM_0765.def



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

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


#
#---出力ファイルの初期化
#

cat /dev/null > ${OUTPUT}


#-------------------------------------------------------------
#--- ワークファイル定義
#-------------------------------------------------------------
KEYFILE_1=${MID_DIR_KK}/KKIFM959011.csv
KEYFILE_2_1=${MID_DIR_KK}/KKIFM959012_1.csv
KEYFILE_2_2=${MID_DIR_KK}/KKIFM959012_2.csv
KEYFILE_2_3=${MID_DIR_KK}/KKIFM959012_3.csv
KEYFILE_2_4=${MID_DIR_KK}/KKIFM959012_4.csv
KEYFILE_ADCHG=${MID_DIR_KK}/KKIFM959013_ADCHG.csv
KEYFILE_TRGT=${MID_DIR_KK}/KKIFM959014_TRGT.csv

ADCHG_1_1=${MID_DIR_KK}/KKIFM959081_1.csv
ADCHG_1_2=${MID_DIR_KK}/KKIFM959081_2.csv
ADCHG_2=${MID_DIR_KK}/KKIFM959082.csv

OPSVC_1=${MID_DIR_KK}/KKIFM959021.csv
OPSVCISP_1=${MID_DIR_KK}/KKIFM959031.csv

WRI_PP_1=${MID_DIR_KK}/KKIFM959041.csv
WRIUC_PP_1=${MID_DIR_KK}/KKIFM959051.csv

WRI_SLPP_1=${MID_DIR_KK}/KKIFM959061.csv
WRIUC_SLPP_1=${MID_DIR_KK}/KKIFM959071.csv



#defファイルWK
DEF_755_WK=${G_TOOLSH}/util/def/KK_CM_0755_${JOBNAME}_WK.def
DEF_756_WK=${G_TOOLSH}/util/def/KK_CM_0756_${JOBNAME}_WK.def
DEF_757_WK=${G_TOOLSH}/util/def/KK_CM_0757_${JOBNAME}_WK.def
DEF_758_WK=${G_TOOLSH}/util/def/KK_CM_0758_${JOBNAME}_WK.def
DEF_759_WK=${G_TOOLSH}/util/def/KK_CM_0759_${JOBNAME}_WK.def
DEF_760_WK=${G_TOOLSH}/util/def/KK_CM_0760_${JOBNAME}_WK.def
DEF_761_WK=${G_TOOLSH}/util/def/KK_CM_0761_${JOBNAME}_WK.def
DEF_762_WK=${G_TOOLSH}/util/def/KK_CM_0762_${JOBNAME}_WK.def
DEF_763_WK=${G_TOOLSH}/util/def/KK_CM_0763_${JOBNAME}_WK.def
DEF_764_WK=${G_TOOLSH}/util/def/KK_CM_0764_${JOBNAME}_WK.def
DEF_765_WK=${G_TOOLSH}/util/def/KK_CM_0765_${JOBNAME}_WK.def




#-------------------------------------------------------------
#--- ＭＡＩＮ処理
#-------------------------------------------------------------
#
#---編集処理
#


#キー情報アンロードデータに割引サービス契約番号(プレミアムパック割引)を付与する

cp -f ${DEF_755} ${DEF_755_WK}
sed -i -e "s%:MAINFILE%${ULD_KEYFILE}%" ${DEF_755_WK}
sed -i -e "s%:JOINFILE%${ULD_WRI_PP}%" ${DEF_755_WK}

MATCHING ${DEF_755_WK} ${KEYFILE_1}



#キー情報アンロードデータに割引サービス契約番号(スマートリンクプレミアムパック割引)を付与する
#複数個どうする？
#商用データを確認すると最大4件持っているので、4カラムに付与する  マッチング4回

cp -f ${DEF_756} ${DEF_756_WK}
sed -i -e "s%:MAINFILE%${KEYFILE_1}%" ${DEF_756_WK}
sed -i -e "s%:JOINFILE%${ULD_WRI_SLPP}%" ${DEF_756_WK}

MATCHING ${DEF_756_WK} ${KEYFILE_2_1}


cp -f ${DEF_757} ${DEF_757_WK}
sed -i -e "s%:MAINFILE%${KEYFILE_2_1}%" ${DEF_757_WK}
sed -i -e "s%:JOINFILE%${ULD_WRI_SLPP}%" ${DEF_757_WK}

MATCHING ${DEF_757_WK} ${KEYFILE_2_2}


cp -f ${DEF_758} ${DEF_758_WK}
sed -i -e "s%:MAINFILE%${KEYFILE_2_2}%" ${DEF_758_WK}
sed -i -e "s%:JOINFILE%${ULD_WRI_SLPP}%" ${DEF_758_WK}

MATCHING ${DEF_758_WK} ${KEYFILE_2_3}


cp -f ${DEF_759} ${DEF_759_WK}
sed -i -e "s%:MAINFILE%${KEYFILE_2_3}%" ${DEF_759_WK}
sed -i -e "s%:JOINFILE%${ULD_WRI_SLPP}%" ${DEF_759_WK}

MATCHING ${DEF_759_WK} ${KEYFILE_2_4}



#住所変更中のオプションを除外する
#住所変更明細アンロードデータからオプションサービス契約番号を取り出してサプレス
bsortex \
    -copy \
    -record recform=txtcsv \
    -input file=${ULD_ADCHG}  reclen=100 \
    -output file=${ADCHG_1_1} reconst="5.12" \
    -output file=${ADCHG_1_2} reconst="6.12"

bsortex \
    -sort key="0.12asc" \
    -record recform=txtcsv \
    -summary suppress \
    -input file=${ADCHG_1_1},${ADCHG_1_2} \
        reclen=100 include="0.12asc.gt.' '" \
    -output file=${ADCHG_2}



#キー情報から住所変更中のオプションを取り出す　【除外対象結果】
cp -f ${DEF_760} ${DEF_760_WK}
sed -i -e "s%:MAINFILE%${KEYFILE_2_4}%" ${DEF_760_WK}
sed -i -e "s%:JOINFILE%${ADCHG_2}%" ${DEF_760_WK}

MATCHING ${DEF_760_WK} ${KEYFILE_ADCHG}



#キー情報から住所変更中以外のものを取り出す　【補正対象のキー】
cp -f ${DEF_761} ${DEF_761_WK}
sed -i -e "s%:MAINFILE%${KEYFILE_2_4}%" ${DEF_761_WK}
sed -i -e "s%:JOINFILE%${ADCHG_2}%" ${DEF_761_WK}

MATCHING ${DEF_761_WK} ${KEYFILE_TRGT}



#各ファイルを補正対象に絞り込む
#オプションサービス契約アンロードデータから【補正対象のキー】で絞り込む   条件：オプションサービス契約番号
cp -f ${DEF_762} ${DEF_762_WK}
sed -i -e "s%:MAINFILE%${ULD_OPSVC}%" ${DEF_762_WK}
sed -i -e "s%:JOINFILE%${KEYFILE_TRGT}%" ${DEF_762_WK}

MATCHING ${DEF_762_WK} ${OPSVC_1}



#オプションサービス契約＜ISP＞アンロードデータから【補正対象のキー】で絞り込む   条件：オプションサービス契約番号
cp -f ${DEF_762} ${DEF_762_WK}
sed -i -e "s%:MAINFILE%${ULD_OPSVCISP}%" ${DEF_762_WK}
sed -i -e "s%:JOINFILE%${KEYFILE_TRGT}%" ${DEF_762_WK}

MATCHING ${DEF_762_WK} ${OPSVCISP_1}



#割引サービス契約　（プレミアムパック割引）から【補正対象のキー】で絞り込む   条件：サービス契約番号
cp -f ${DEF_763} ${DEF_763_WK}
sed -i -e "s%:MAINFILE%${ULD_WRI_PP}%" ${DEF_763_WK}
sed -i -e "s%:JOINFILE%${KEYFILE_TRGT}%" ${DEF_763_WK}

MATCHING ${DEF_763_WK} ${WRI_PP_1}



#割引サービス契約内訳　（プレミアムパック割引）から【補正対象のキー】で絞り込む   条件：サービス契約番号
cp -f ${DEF_763} ${DEF_763_WK}
sed -i -e "s%:MAINFILE%${ULD_WRIUC_PP}%" ${DEF_763_WK}
sed -i -e "s%:JOINFILE%${KEYFILE_TRGT}%" ${DEF_763_WK}

MATCHING ${DEF_763_WK} ${WRIUC_PP_1}



#割引サービス契約　（スマートリンクプレミアムパック割引）から【補正対象のキー】で絞り込む。   条件：オプションサービス契約番号
#サービス契約番号を付与する。オプションサービス契約番号、ランクは捨てる
cp -f ${DEF_764} ${DEF_764_WK}
sed -i -e "s%:MAINFILE%${ULD_WRI_SLPP}%" ${DEF_764_WK}
sed -i -e "s%:JOINFILE%${KEYFILE_TRGT}%" ${DEF_764_WK}

MATCHING ${DEF_764_WK} ${WRI_SLPP_1}



#割引サービス契約内訳　（スマートリンクプレミアムパック割引）から【補正対象のキー】で絞り込む。   条件：オプションサービス契約番号
#サービス契約番号を付与する。オプションサービス契約番号は捨てる
cp -f ${DEF_765} ${DEF_765_WK}
sed -i -e "s%:MAINFILE%${ULD_WRIUC_SLPP}%" ${DEF_765_WK}
sed -i -e "s%:JOINFILE%${KEYFILE_TRGT}%" ${DEF_765_WK}

MATCHING ${DEF_765_WK} ${WRIUC_SLPP_1}




#更新バッチ用ファイルの作成
#結合してソートする

bsortex \
    -sort key="0.10asc,1.2asc" \
    -record recform=txtcsv \
    -input file=${KEYFILE_TRGT},${OPSVC_1},${OPSVCISP_1},${WRI_PP_1},${WRIUC_PP_1},${WRI_SLPP_1},${WRIUC_SLPP_1} \
        reclen=4000 \
    -output file=${OUTPUT}




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

#-------------------------------------------------------------
#---ワークファイル削除
#-------------------------------------------------------------
if [ ${WK_RM} = "true" ]
then
    rm -f ${DEF_755_WK}
    rm -f ${DEF_756_WK}
    rm -f ${DEF_757_WK}
    rm -f ${DEF_758_WK}
    rm -f ${DEF_759_WK}
    rm -f ${DEF_760_WK}
    rm -f ${DEF_761_WK}
    rm -f ${DEF_762_WK}
    rm -f ${DEF_763_WK}
    rm -f ${DEF_764_WK}
    rm -f ${DEF_765_WK}

fi

exit ${G_RTN_NORMAL}
