#!/bin/bash
##############################################################
# システム名    ：eo顧客基幹システム
#
# サブシステム名：契約管理
#
# シェル名      ：連携用ファイル作成
#
# 機能          ：KKPRC67201　高度化システム向け契約データ作成
#                 契約情報編集3結果とSTB関連情報編集結果とオプション情報編集結果を結合し連携用ファイルを完成させる。
#
# コマンド形式  ：EO2IO01C0J0.sh
#
# 実行環境      ：.../app/shl
# パラメタ      ：$1   運用日付
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：
#
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
# v68.00.00       2023/11/22  FJ)北谷    ANK-4485-00-00_高度化システム向け契約データ連携　新規作成
#
##############################################################

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

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

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



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

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

#
#--- OPD
#
OPD=$1

#
#--- 業務で必要な変数定義
#
#--ワークファイル削除フラグ
WK_RM=true

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

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

#
#--- 運用日付取得
#
if [ "${OPD}" = "" ]; then
  . EOK010310J0.sh "BDATE"
  OPD="${RSLT_OPEDATE}"
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
}

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

#--契約情報編集3結果
INPUT_FILE_1=${MID_DIR_KK}/KKIFM960101.csv
#--STB関連情報編集結果
INPUT_FILE_2=${MID_DIR_KK}/KKIFM960111.csv
#--オプション情報編集結果（サービス契約内訳のオプション）
INPUT_FILE_3=${MID_DIR_KK}/KKIFM960091.csv
#--オプション情報編集結果（サービス契約のオプション）
INPUT_FILE_4=${MID_DIR_KK}/KKIFM960092.csv

#--料金コース
INPUT_FILE_5=${MID_DIR_KK}/KKIFM960001.csv
#--料金プラン
INPUT_FILE_6=${MID_DIR_KK}/KKIFM960002.csv
#--コード名称管理（契約者タイプコード）
INPUT_FILE_7=${MID_DIR_KK}/KKIFM960008.csv
#--コード名称管理（サービス契約ステータス）
INPUT_FILE_8=${MID_DIR_KK}/KKIFM960009.csv
#--コード名称管理（異動区分）
INPUT_FILE_9=${MID_DIR_KK}/KKIFM960010.csv

#--高度化システム向け契約情報ファイル（KKIFE508_YYYYMMDDHHMMSS.csv）
OUTPUT_FILE=${MID_DIR_KK}/KKIFE508_


#--マッチングDEF
DEF_FILE_777=${G_TOOLSH}/util/def/KK_CM_0777.def
DEF_FILE_778=${G_TOOLSH}/util/def/KK_CM_0778.def
DEF_FILE_779=${G_TOOLSH}/util/def/KK_CM_0779.def


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

if [ ! -r ${INPUT_FILE_1} ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist(${INPUT_FILE_1}) "
    echo $JOBNAME " File is nonexist($INPUT_FILE_1) "
    exit ${G_RTN_ERROR}
fi
if [ ! -r ${INPUT_FILE_2} ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist(${INPUT_FILE_2}) "
    echo $JOBNAME " File is nonexist($INPUT_FILE_2) "
    exit ${G_RTN_ERROR}
fi
if [ ! -r ${INPUT_FILE_3} ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist(${INPUT_FILE_3}) "
    echo $JOBNAME " File is nonexist($INPUT_FILE_3) "
    exit ${G_RTN_ERROR}
fi
if [ ! -r ${INPUT_FILE_4} ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist(${INPUT_FILE_4}) "
    echo $JOBNAME " File is nonexist($INPUT_FILE_4) "
    exit ${G_RTN_ERROR}
fi
if [ ! -r ${INPUT_FILE_5} ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist(${INPUT_FILE_5}) "
    echo $JOBNAME " File is nonexist($INPUT_FILE_5) "
    exit ${G_RTN_ERROR}
fi
if [ ! -r ${INPUT_FILE_6} ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist(${INPUT_FILE_6}) "
    echo $JOBNAME " File is nonexist($INPUT_FILE_6) "
    exit ${G_RTN_ERROR}
fi
if [ ! -r ${INPUT_FILE_7} ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist(${INPUT_FILE_7}) "
    echo $JOBNAME " File is nonexist($INPUT_FILE_7) "
    exit ${G_RTN_ERROR}
fi
if [ ! -r ${INPUT_FILE_8} ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist(${INPUT_FILE_8}) "
    echo $JOBNAME " File is nonexist($INPUT_FILE_8) "
    exit ${G_RTN_ERROR}
fi
if [ ! -r ${INPUT_FILE_9} ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist(${INPUT_FILE_9}) "
    echo $JOBNAME " File is nonexist($INPUT_FILE_9) "
    exit ${G_RTN_ERROR}
fi

#
#---出力ファイルの初期化
#
#cat /dev/null > ${OUTPUT_FILE}


#-------------------------------------------------------------
#--- ワークファイル定義
#-------------------------------------------------------------

DEF_FILE_777_WK=${G_TOOLSH}/util/def/KK_CM_0777_${JOBNAME}_WK.def
DEF_FILE_778_WK=${G_TOOLSH}/util/def/KK_CM_0778_${JOBNAME}_WK.def
DEF_FILE_779_WK=${G_TOOLSH}/util/def/KK_CM_0779_${JOBNAME}_WK.def
OUTPUT_FILE_WK1=${MID_DIR_KK}/KKIFM960101_${JOBNAME}_WK1.csv
OUTPUT_FILE_WK2=${MID_DIR_KK}/KKIFM960101_${JOBNAME}_WK2.csv
OUTPUT_FILE_WK3=${MID_DIR_KK}/KKIFM960101_${JOBNAME}_WK3.csv
OUTPUT_FILE_WK4=${MID_DIR_KK}/KKIFM960101_${JOBNAME}_WK4.csv
OUTPUT_FILE_WK5=${MID_DIR_KK}/KKIFM960101_${JOBNAME}_WK5.csv
OUTPUT_FILE_WK6=${MID_DIR_KK}/KKIFM960101_${JOBNAME}_WK6.csv


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

#契約情報編集3結果とSTB関連情報編集結果とオプション情報編集結果（サービス契約内訳のオプション）を結合する

cp -f ${DEF_FILE_777} ${DEF_FILE_777_WK}
sed -i -e "s%:SVCKEI%${INPUT_FILE_1}%" ${DEF_FILE_777_WK}
sed -i -e "s%:STBKEI%${INPUT_FILE_2}%" ${DEF_FILE_777_WK}
sed -i -e "s%:OPKEI%${INPUT_FILE_3}%" ${DEF_FILE_777_WK}

MATCHING ${DEF_FILE_777_WK} ${OUTPUT_FILE_WK1}


#契約情報編集3結果とオプション情報編集結果（サービス契約のオプション）を結合する

cp -f ${DEF_FILE_778} ${DEF_FILE_778_WK}
sed -i -e "s%:SVCKEI%${INPUT_FILE_1}%" ${DEF_FILE_778_WK}
sed -i -e "s%:OPKEI%${INPUT_FILE_4}%" ${DEF_FILE_778_WK}

MATCHING ${DEF_FILE_778_WK} ${OUTPUT_FILE_WK2}


#１ファイルに連結する
cat ${OUTPUT_FILE_WK1} ${OUTPUT_FILE_WK2} > ${OUTPUT_FILE_WK3}


#コード名称を付与する

cp -f ${DEF_FILE_779} ${DEF_FILE_779_WK}
sed -i -e "s%:TVDATA%${OUTPUT_FILE_WK3}%" ${DEF_FILE_779_WK}
sed -i -e "s%:PCRS%${INPUT_FILE_5}%" ${DEF_FILE_779_WK}
sed -i -e "s%:PPLAN%${INPUT_FILE_6}%" ${DEF_FILE_779_WK}
sed -i -e "s%:CD_KEITYPE%${INPUT_FILE_7}%" ${DEF_FILE_779_WK}
sed -i -e "s%:CD_STATUS%${INPUT_FILE_8}%" ${DEF_FILE_779_WK}
sed -i -e "s%:CD_IDODIV%${INPUT_FILE_9}%" ${DEF_FILE_779_WK}

MATCHING ${DEF_FILE_779_WK} ${OUTPUT_FILE_WK4}


#外部IF仕様に合わせる
#SYSID、お客様IDでソート
bsortex \
    -sort key="0.10asc,5.10asc,23.12asc,38.12asc" \
    -record recform=txtcsv \
    -input file=${OUTPUT_FILE_WK4} \
        reclen=2000 \
    -output file=${OUTPUT_FILE_WK5} 

#UTF8に変換。
nkf -x -w < ${OUTPUT_FILE_WK5} > ${OUTPUT_FILE_WK6}

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


YYYYMMDDHHMMSS=`date +'%Y%m%d%H%M%S'`
OUTPUT_FILE=${MID_DIR_KK}/KKIFE508_${YYYYMMDDHHMMSS}.csv

mv ${OUTPUT_FILE_WK6} ${OUTPUT_FILE}

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

#-------------------------------------------------------------
#---ワークファイル削除
#-------------------------------------------------------------
if [ ${WK_RM} = "true" ]
then
    rm -f ${DEF_FILE_777_WK}
    rm -f ${DEF_FILE_778_WK}
    rm -f ${DEF_FILE_779_WK}
    rm -f ${OUTPUT_FILE_WK1}
    rm -f ${OUTPUT_FILE_WK2}
    rm -f ${OUTPUT_FILE_WK3}
    rm -f ${OUTPUT_FILE_WK4}
    rm -f ${OUTPUT_FILE_WK5}
    rm -f ${OUTPUT_FILE_WK6}
fi

exit $exit_rc
