#!/bin/bash
##############################################################
# システム名    ：eo顧客基幹システム
#
# サブシステム名：料金管理
#
# シェル名      ：保守用請求契約抽出
#
# 機能          ：請求契約、課金先、サービス契約、お客様の各スキーマより保守用請求契約情報を抽出する。
#
# コマンド形式  ：EO3050415J0.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
# v4.00           2013/06/11  FJ）藤田     【TG1-2013-0000620】新規作成
# v5.00           2013/09/11  FJ) 小柴     【OM-2013-0001683】サービス契約スキーマに対するアンロード・マッチング処理を修正、ワーク削除処理追加
# v20.00          2015/12/02  FJ）有本     【OM-2015-0003145】性能改善：共通UNLOAD化/バックグラウンド実行廃止
# v57.00          2022/01/24  FJ）麻生     【ANK-4075-00-00】マンション卸回線(WI-FIスキーム)の不備対応
##############################################################
#---ワークファイル削除モード
WK_RM=true
##############################################################
# 環境変数定義
##############################################################

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

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

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

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

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

#
#---業務で必要な変数定義
#
#-契約者タイプコード＝保守用
HOSYU_YOU=3
# v57.00 ANK-4075-00-00 ADD START
#-スキームタイプコード＝Wi-Fiスキーム
WIFI_SCM=A
# v57.00 ANK-4075-00-00 ADD START
#-請求契約ステータス＝キャンセル済
SVC_KEI_STAT=920
##############################################################
# 業務処理
##############################################################
sh ${G_TOOLSH}/EOK010210J0.sh CS00025I $JOBNAME

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

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

#
#--- ファイル定義
#
##############################################################
# 共通
##############################################################
#-出力ファイル
# v57.00 ANK-4075-00-00 MOD START
#OUTFILE=${MID_DIR_AC}/ACIFM050029.csv
OUTFILE=${MID_DIR_AC}/ACIFM355001.csv
# v57.00 ANK-4075-00-00 MOD END
#---マッチング定義
DEF_DIR=${G_TOOLSH}/util/def
#-課金先とサービス契約を結合するマッチング
DEF_WORK=${DEF_DIR}/AC_CM_0062.def
CSV_WORK_MATCHING=${MID_DIR_AC}/${JOBNAME}_WORK_MATCHING_WK_1.csv
CSV_WORK_MATCHING_WK=${MID_DIR_AC}/${JOBNAME}_WORK_MATCHING_WK_2.csv
#-全体を絞り込むマッチング
DEF_CM0047=${DEF_DIR}/AC_CM_0047.def
CSV_CM0047_MATCHING=${MID_DIR_AC}/${JOBNAME}_CM0047_MATCHING_WK_1.csv

##############################################################
# 請求契約
##############################################################
# OM-2015-0003145 2015/12/02 有本 DEL START
#SQL_KK0491_03=${SQL_DIR}/AC_U_KK0491_03.sql
#SQL_KK0491_03_WK=${SQL_DIR}/${JOBNAME}_AC_U_KK0491_03_WK_1.sql
# OM-2015-0003145 2015/12/02 有本 DEL END
CSV_KK0491_03=${MID_DIR_AC}/${JOBNAME}_AC_U_KK0491_03_UNLOAD_WK_1.csv

##############################################################
# 課金先
##############################################################
# OM-2015-0003145 2015/12/02 有本 DEL START
#SQL_KK0321_04=${SQL_DIR}/AC_U_KK0321_04.sql
#SQL_KK0321_04_WK=${SQL_DIR}/${JOBNAME}_AC_U_KK0321_04_WK_1.sql
# OM-2015-0003145 2015/12/02 有本 DEL END
CSV_KK0321_04=${MID_DIR_AC}/${JOBNAME}_AC_U_KK0321_04_UNLOAD_WK_1.csv

##############################################################
# サービス契約
##############################################################
# OM-2015-0003145 2015/12/02 有本 DEL START
#SQL_KK0081_10=${SQL_DIR}/AC_U_KK0081_10.sql
#SQL_KK0081_10_WK=${SQL_DIR}/${JOBNAME}_AC_U_KK0081_10_WK_1.sql
# OM-2015-0003145 2015/12/02 有本 DEL END
CSV_KK0081_10=${MID_DIR_AC}/${JOBNAME}_AC_U_KK0081_10_UNLOAD_WK_1.csv

##############################################################
# お客様
##############################################################
# OM-2015-0003145 2015/12/02 有本 DEL START
#SQL_CK0011_03=${SQL_DIR}/AC_U_CK0011_03.sql
#SQL_CK0011_03_WK=${SQL_DIR}/${JOBNAME}_AC_U_CK0011_03_WK_1.sql
# OM-2015-0003145 2015/12/02 有本 DEL END
CSV_CK0011_03=${MID_DIR_AC}/${JOBNAME}_AC_U_CK0011_03_UNLOAD_WK_1.csv

# OM-2015-0003145 2015/12/02 有本 ADD START
##############################################################
#
#共通UNLOADファイル
#
##############################################################
#サービス契約(カレント)
COMULD2_KK0081_CUR=${MID_DIR_CC}/CCIFM020002.csv
#課金先(全件)
COMULD2_KK0321_ALL=${MID_DIR_CC}/CCIFM024001.csv
#請求契約(カレント)
COMULD2_KK0491_CUR=${MID_DIR_CC}/CCIFM030002.csv
#お客様(カレント)
COMULD2_CK0011_CUR=${MID_DIR_CC}/CCIFM019002.csv
# OM-2015-0003145 2015/12/02 有本 ADD END

##############################################################
#
#--- 共通サブルーチン
#
##############################################################
##############################################################
#--- UNLOAD
##############################################################
UNLOAD(){
    sh ${G_TOOLSH}/EOKULD03.sh $1 $2
    rc=$?
    if [ $rc -ne 0 ]
    then
          sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " unload error($1:rc=$rc) "
          echo $JOBNAME " unload error($1:rc=$rc) "
          exit ${G_RTN_ERROR}
    fi
}
##############################################################
#--- MATCHING
##############################################################
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
}
##############################################################
#--- SED
##############################################################
SED(){
    sed -i -e $1 $2
    rc=$?
    if [ $rc -ne 0 ]
    then
          sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " sed error($1 $2:rc=$rc) "
          echo $JOBNAME " sed error($1 $2:rc=$rc) "
          exit ${G_RTN_ERROR}
    fi
}
##############################################################
#--- WAIT
##############################################################
WAIT(){
    wait $1
    rc=$?
    if [ $rc -ne 0 ]
    then
          sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " BackgroundJob error($2:rc=$rc) "
          echo $JOBNAME " BackgroundJob error($2:rc=$rc) "
          exit ${G_RTN_ERROR}
    fi
}
##############################################################
#
#--- 業務固有サブルーチン
#
##############################################################
##############################################################
#--- 請求契約アンロード
##############################################################
SEIKY_KEI_UNLOAD(){
# OM-2015-0003145 2015/12/02 有本 DEL START
#    #SQLパラメータ置き換え
#    cp -f ${SQL_KK0491_03} ${SQL_KK0491_03_WK}
#    SED "s/:OPEDATE/'${OPEDATE}'/g" ${SQL_KK0491_03_WK}
#    UNLOAD ${SQL_KK0491_03_WK} ${CSV_KK0491_03}
# OM-2015-0003145 2015/12/02 有本 DEL END
# OM-2015-0003145 2015/12/02 有本 ADD START
bsortex \
   -copy -record recform=txtcsv \
   -input file=${COMULD2_KK0491_CUR} \
          reclen=${ULD2_REC_LEN_KK0491} \
          reconst="0.10" \
      |   sed 's/\"//g' > ${CSV_KK0491_03}

pidSEIKY_KEI_UNLOAD=$?
# OM-2015-0003145 2015/12/02 有本 ADD END
}
##############################################################
#--- 課金先アンロード
##############################################################
KAKINS_UNLOAD(){
# OM-2015-0003145 2015/12/02 有本 DEL START
#    #SQLパラメータ置き換え
#    cp -f ${SQL_KK0321_04} ${SQL_KK0321_04_WK}
#    SED "s/:OPEDATE/'${OPEDATE}'/g" ${SQL_KK0321_04_WK}
#    UNLOAD ${SQL_KK0321_04_WK} ${CSV_KK0321_04}
# OM-2015-0003145 2015/12/02 有本 DEL END
# OM-2015-0003145 2015/12/02 有本 ADD START
bsortex \
    -copy -record recform=txtcsv \
    -input file=${COMULD2_KK0321_ALL} \
           reclen=${ULD2_REC_LEN_KK0321} \
           reconst="0.10,1.10,9.8" \
           include="8.8asc.le.'${OPEDATE}',9.8asc.ge.'${OPEDATE}',8.8asc.ge.' '" \
         | sed 's/\"//g' > ${CSV_KK0321_04}

pidKAKINS_UNLOAD=$?
# OM-2015-0003145 2015/12/02 有本 ADD END
}
##############################################################
#--- サービス契約アンロード
##############################################################
SVC_KEI_UNLOAD(){
# OM-2015-0003145 2015/12/02 有本 DEL START
#    #SQLパラメータ置き換え
#    cp -f ${SQL_KK0081_10} ${SQL_KK0081_10_WK}
#    SED "s/:OPEDATE/'${OPEDATE}'/g" ${SQL_KK0081_10_WK}
#    SED "s/:SVC_STAT/'${SVC_KEI_STAT}'/g" ${SQL_KK0081_10_WK}
#    UNLOAD ${SQL_KK0081_10_WK} ${CSV_KK0081_10}
# OM-2015-0003145 2015/12/02 有本 DEL END
# OM-2015-0003145 2015/12/02 有本 ADD START
bsortex \
   -copy  -record recform=txtcsv \
   -input file=${COMULD2_KK0081_CUR} \
          reclen=${ULD2_REC_LEN_KK0081} \
          reconst="0.10,3.10,19.8" \
          include="2.3asc.ne.'${SVC_KEI_STAT}'" \
        | sed 's/\"//g' > ${CSV_KK0081_10}

pidSVC_KEI_UNLOAD=$?
# OM-2015-0003145 2015/12/02 有本 ADD END
}
##############################################################
#--- お客様アンロード
##############################################################
CUST_UNLOAD(){
# OM-2015-0003145 2015/12/02 有本 DEL START
#    #SQLパラメータ置き換え
#    cp -f ${SQL_CK0011_03} ${SQL_CK0011_03_WK}
#    SED "s/:OPEDATE/'${OPEDATE}'/g" ${SQL_CK0011_03_WK}
#    SED "s/:KEISHA_TYPE_CD/'${HOSYU_YOU}'/g" ${SQL_CK0011_03_WK}
#    UNLOAD ${SQL_CK0011_03_WK} ${CSV_CK0011_03}
# OM-2015-0003145 2015/12/02 有本 DEL END
# OM-2015-0003145 2015/12/02 有本 ADD START
# v57.00 ANK-4075-00-00 MOD START
#bsortex \
#    -copy  -record recform=txtcsv \
#    -input file=${COMULD2_CK0011_CUR} \
#           reclen=${ULD2_REC_LEN_CK0011} \
#           reconst="0.10" \
#           include="3.1asc.eq.'${HOSYU_YOU}'" \
#    |   sed 's/\"//g' >${CSV_CK0011_03}
bsortex \
    -copy  -record recform=txtcsv \
    -input file=${COMULD2_CK0011_CUR} \
           reclen=${ULD2_REC_LEN_CK0011} \
           reconst="0.10,34.1,35.2" \
           include="3.1asc.eq.'${HOSYU_YOU}'.or.34.1asc.eq.'${WIFI_SCM}'" \
    |   awk -v WIFI_SCM=${WIFI_SCM} 'BEGIN{FS=",";OFS=","}{gsub("\"","",$0);if($2!=WIFI_SCM){$3=""};print}' > ${CSV_CK0011_03}
# v57.00 ANK-4075-00-00 MOD END

pidCUST_UNLOAD=$?
# OM-2015-0003145 2015/12/02 有本 ADD END
}
##############################################################
#
#--- MAIN
#
##############################################################
# OM-2015-0003145 2015/12/02 有本 DEL START
##--- 請求契約アンロード
#SEIKY_KEI_UNLOAD &
#pidSEIKY_KEI_UNLOAD=$!
##--- 課金先アンロード
#KAKINS_UNLOAD &
#pidKAKINS_UNLOAD=$!
##--- サービス契約アンロード
#SVC_KEI_UNLOAD &
#pidSVC_KEI_UNLOAD=$!
##--- お客様アンロード
#CUST_UNLOAD &
#pidCUST_UNLOAD=$!
# OM-2015-0003145 2015/12/02 有本 DEL END
# OM-2015-0003145 2015/12/02 有本 ADD START
#--- 請求契約アンロード
SEIKY_KEI_UNLOAD
#--- 課金先アンロード
KAKINS_UNLOAD
#--- サービス契約アンロード
SVC_KEI_UNLOAD
#--- お客様アンロード
CUST_UNLOAD
# OM-2015-0003145 2015/12/02 有本 ADD END

# OM-2015-0003145 2015/12/02 有本 DEL START
#WAIT ${pidSEIKY_KEI_UNLOAD} "SEIKY_KEI_UNLOAD"
#WAIT ${pidKAKINS_UNLOAD}    "KAKINS_UNLOAD"
#WAIT ${pidSVC_KEI_UNLOAD}   "SVC_KEI_UNLOAD"
#WAIT ${pidCUST_UNLOAD}      "CUST_UNLOAD"
# OM-2015-0003145 2015/12/02 有本 DEL END

#---絞込みマッチング
#---サービス契約と課金先をマッチング
export KK_T_SVC_KEI=${CSV_KK0081_10}
export KK_T_KAKINS=${CSV_KK0321_04}
MATCHING ${DEF_WORK} ${CSV_WORK_MATCHING}

#---マッチング結果を課金先．請求契約番号、サービス契約．予約適用年月日（降順）でソートし、
#---請求契約番号毎に最初の1件（予約適用年月日が最新）のみ抽出する。
bsortex \
    -sort key="3.10asca,2.8ascr" \
    -record recform=txtcsv \
    -input reclen=45 \
    file=${CSV_WORK_MATCHING} \
| bsortex \
    -merge key="3.10asc" \
    -input reclen=45 \
    -record recform=txtcsv \
    -summary suppress first \
    -output file=${CSV_WORK_MATCHING_WK}

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

#---残りのスキーマとマッチングを行う
export CK_T_CUST=${CSV_CK0011_03}
export MATCH_WORK=${CSV_WORK_MATCHING_WK}
export KK_T_SEIKY_KEI=${CSV_KK0491_03}
MATCHING ${DEF_CM0047} ${CSV_CM0047_MATCHING}

#---請求契約番号で集約する
# v57.00 ANK-4075-00-00 MOD START
#bsortex \
#  -sort key="0.10asca" \
#  -input  reclen=15 \
#          file=${CSV_CM0047_MATCHING} \
#  -record recform=txtcsv \
#|bsortex \
#  -merge key="0.10asc" \
#  -input  reclen=15 \
#  -record recform=txtcsv \
#  -summary suppress last \
#  -output file=${OUTFILE} ;
bsortex \
  -sort key="0.10asca" \
  -input  reclen=16 \
          file=${CSV_CM0047_MATCHING} \
  -record recform=txtcsv \
|bsortex \
  -merge key="0.10asc" \
  -input  reclen=16 \
  -record recform=txtcsv \
  -summary suppress last \
  -output file=${OUTFILE} ;
# v57.00 ANK-4075-00-00 MOD END
rc=$?
if [ $rc -ne 0 ]
then
      sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " Sort error(sort:rc=$rc) "
      echo $JOBNAME " Sort error(sort:rc=$rc) "
      exit ${G_RTN_ERROR}
fi

# ワーク削除
if [ ${WK_RM} = "true" ] ;then 
    echo "ワークファイル削除"
    rm -f ${CSV_CM0047_MATCHING}
    rm -f ${CSV_WORK_MATCHING}
    rm -f ${CSV_WORK_MATCHING_WK}
# OM-2015-0003145 2015/12/02 有本 DEL START
#    rm -f ${SQL_KK0491_03_WK}
# OM-2015-0003145 2015/12/02 有本 DEL END
    rm -f ${CSV_KK0491_03}
# OM-2015-0003145 2015/12/02 有本 DEL START
#    rm -f ${SQL_KK0321_04_WK}
# OM-2015-0003145 2015/12/02 有本 DEL END
    rm -f ${CSV_KK0321_04}
# OM-2015-0003145 2015/12/02 有本 DEL START
#    rm -f ${SQL_KK0081_10_WK}
# OM-2015-0003145 2015/12/02 有本 DEL END
    rm -f ${CSV_KK0081_10}
# OM-2015-0003145 2015/12/02 有本 DEL START
#    rm -f ${SQL_CK0011_03_WK}
# OM-2015-0003145 2015/12/02 有本 DEL END
    rm -f ${CSV_CK0011_03}
fi

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

exit ${G_RTN_NORMAL}
