#!/bin/bash
##############################################################
# システム名    ：eo顧客基幹システム
#
# サブシステム名：契約管理
#
# シェル名      ：従量IF個人情報削除済レコード削除（サービス契約）
#
# 機能          ：従量IFから契約削除バッチで削除対象となったサービス契約番号を削除する
#
#
# コマンド形式  ：EO2A70231J0.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
# v14.00.00       2015/04/21   FJ)安井      IT1-2015-0000045
#
##############################################################

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

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

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

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

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

#
#---OPD
#
OPD=$1

#
#---業務で必要な変数定義
#
#xxx=xxxxxxx
MAIN_FILE=${MID_DIR_KK}/KKIFM159040.csv
MAIN_FILE_CP=${MID_DIR_KK}/KKIFM159040_cp.csv
MAIN_FILE_TMP_1=${MID_DIR_KK}/KKIFM159040_tmp1.csv
MAIN_FILE_TMP_2=${MID_DIR_KK}/KKIFM159040_tmp2.csv
MAIN_FILE_TMP_3=${MID_DIR_KK}/KKIFM159040_tmp3.csv
MAIN_FILE_TMP_4=${MID_DIR_KK}/KKIFM159040_tmp4.csv
SUB_FILE=${MID_DIR_KK}/KKIFM634001.csv
##############################################################
# 業務処理
##############################################################
sh ${G_TOOLSH}/EOK010210J0.sh CS00025I $JOBNAME

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

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

P1="OPD=,"
P2="SVCCTL=,"
P3="JOB=EO2A70231J0,"
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

cp ${MAIN_FILE} ${MAIN_FILE_CP}

#
#---""ダブルクォート付与
#---料金計算対象サービス契約情報
#
##入力ファイルの改行コード変換(CRLF→LF)
nkf -Lu < ${MAIN_FILE_CP} > ${MAIN_FILE_TMP_1}

sed -i -e 's/,/\",\"/g' ${MAIN_FILE_TMP_1}
sed -i -e 's/^/\"/g' ${MAIN_FILE_TMP_1}
sed -i -e 's/$/\"/g' ${MAIN_FILE_TMP_1}

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

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

#
#--- 各ファイルの存在チェックを行う
#
if [ ! -r $DEFFILE ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist($DEFFILE) "
    echo $JOBNAME " File is nonexist($DEFFILE) "
    exit ${G_RTN_ERROR}
fi

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

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

#
#--- ファイルマッチング処理
#
${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

#
#--- ソート (サービス契約番号)
# 抽出条件
#    当日削除実施サービス契約をオミット
#
bsortex -sort key="04.10asca" -record recform=txtcsv -input file=${MAIN_FILE_TMP_2} reclen=500 \
omit="36.10asc.ge.'0'" -output file=${MAIN_FILE_TMP_3} \
reconst="0.2,1.3,2.12,3.14,4.10,5.12,6.12,7.10,8.11,9.11,10.100,11.8,12.8,13.4,14.8,15.8,16.8,17.8,18.8,19.8,20.8,21.8,22.8,23.8,24.3,25.5,26.3,27.5,28.7,29.7,30.1,31.2,32.10,33.12,34.3,35.12"

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

#--- ダブルコーテーションを削除する
sed -e "s/\"//g" ${MAIN_FILE_TMP_3}  > ${MAIN_FILE_TMP_4}

##出力ファイルの改行コード変換(LF→CRLF)
nkf -Lw  < ${MAIN_FILE_TMP_4} > ${MAIN_FILE}

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

#--- 中間ファイルの削除
rm ${MAIN_FILE_TMP_1}
rm ${MAIN_FILE_TMP_2}
rm ${MAIN_FILE_TMP_3}
rm ${MAIN_FILE_TMP_4}

#
#--- DEFファイルのクリア
#
rm ${TMPDEFFILE}

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

exit $exit_rc
