#!/bin/bash
##############################################################
# システム名    ：eo顧客基幹システム
#
# サブシステム名：請求収納
#
# シェル名      ：当月口振請求有領収データ抽出
#
# 機能          ：1. 当月口振請求有領収データ抽出
#
# コマンド形式  ：EO6030120J0.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
# v3.00           2012/05/07  FJ) 本多     【ANK-0024-04-00】SQLPARAM引数変更対応
# v3.01           2012/07/27  FJ）冨井     【ST2-2012-0001211】ヒープサイズ拡張
# v3.02           2012/10/10  FJ）後藤     【ST3-2012-0000338】督促取得条件追加
# v3.03           2012/11/02  FJ）加島     【ST4-2012-0000006】ヒープサイズ指定方法変更
# v4.00           2012/12/13  FJ）今井     【ST3-2012-0000444】請求ステータス遷移箇所不備による売り上げオーソリチェック未抽出
# v4.01           2013/03/09  FJ）岡田     【ST4-2013-0000099】性能改善
# v4.02           2013/03/18  FJ）広野     性能改善: アンロードの参照先スクリプト変更にともなう修正
# v4.03           2013/04/03  FJ）後藤     【ST4-2012-0000406】UNLOAD統一化
# v5.00           2013/06/27  FJ）後藤     【ST4-2013-0000479】nkf除去対応
# v5.01           2013/09/26  FJ）後藤     【ST4-2013-0001984】当月請求存在チェックに請求内訳追加
# v8.00           2014/02/21  FJ）後藤     【IT1-2013-0000066】税額合算
# v8.01           2014/02/26  FJ）後藤     【IT1-2014-0000073】税額合算処理について未収のみの場合の考慮対応
##############################################################

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

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

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

#
#---ＪＯＢ名
#
JOBNAME=`basename $0 | sed -e "s/\.sh//g"`
if [ $# -eq 2 ]
then
     JOBNAME=${JOBNAME}_$2;
fi

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

#
#---OPD
#
OPD=$1

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

#
#--- 請求ステータス="020"（請求処理済）
#
SIKY_STAT_TRAN_ZM="020"

#
#--- バッチ運用日
#
OPEDATE="SQLPARAM_KEY_OPD_YYYYMMDD"

#
#--- イベントコード="04"（請求処理日）
#
EVENT_CD_SIKY_TRN="04"

#
#--- 請求方法コード="2"（口座振替）
#
SIKY_WAY_CD_KHR="2"

#
#--- 請求方法コード="3"（郵便自動振込）
#
SIKY_WAY_CD_YHR="3"

#
#--- 領収額出力有無="1"(有)
#
RSPT_OPUT_UM_ARI="1"

#
#--- システムコード="CH"（請求収納）
#
SYS_CD_CH="CH"

#
#--- 業務パラメータID="CH_WKS_SIKY_AMNT"（請求データ作成（請求額））
#
WKPARA_ID_SIKY="CH_WKS_SIKY_AMNT"

#
#--- 抽出変換コード="1"（抽出のみ）
#
CHST_CHG_CD_CHST="1"

#
#--- 業務パラメータID="CH_WKS_SAIKEN_U_STAX"（請求データ作成（消費税））
#
WKPARA_ID_TAX="CH_WKS_SAIKEN_U_STAX"

#
#--- 請求種別コード="0"（定例請求）
#
SIKY_SBT_CD_TEIREI="0"

#
#--- FREE項目
#--- 機能コード="2"（口振有領収データ抽出）
#
FUNC_CD_RECEIPT_CST_KHRI_ARI="2"

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

#-------------------------------------------------------------
# ディレクトリ定義
#-------------------------------------------------------------
#
#--- bsort定義ファイル
#
BSORT_DIR=${G_TOOLSH}/bsort/def

#-------------------------------------------------------------
# ファイル定義
#-------------------------------------------------------------
#
#--- 出力ファイル
#
OUTFILE=${MID_DIR_CH}/CHIFM070002.csv
OUTFILE_WRK=${MID_DIR_CH}/CHIFM070002_WRK_${JOBNAME}.csv
OUTFILE_WRK2=${MID_DIR_CH}/CHIFM070002_WRK2_${JOBNAME}.csv
OUTFILE_WRK3=${MID_DIR_CH}/CHIFM070002_WRK3_${JOBNAME}.csv

OUTFILE_TEMP=${MID_DIR_CH}/CHIFM070002_TEMP_${JOBNAME}.csv
OUTFILE_TEMP2=${MID_DIR_CH}/CHIFM070002_TEMP2_${JOBNAME}.csv
OUTFILE_TEMP3=${MID_DIR_CH}/CHIFM070002_TEMP3_${JOBNAME}.csv

#
#--- 1.請求CH_T_SEIKY
#
#- 前月
CSVFILE_CH0051=${MID_DIR_CH}/CHIFM184002.csv
CSVFILE_CH0051_WRK=${MID_DIR_CH}/${JOBNAME}_CH0051_ZENGETSU_WRK_${JOBNAME}.csv
CSVFILE_CH0051_WRK2=${MID_DIR_CH}/${JOBNAME}_CH0051_TOUGETSU_WRK_${JOBNAME}.csv
CSVFILE_CH0051_WRK3=${MID_DIR_CH}/${JOBNAME}_CH0051_TOUGETSU_WRK2_${JOBNAME}.csv
#- 当月
CSVFILE_CH0051_FULL=${MID_DIR_CH}/CHIFM184001.csv

TABLEDEF_CH0051=${BSORT_DIR}/CH_BS_CH0051_001.bsdef
CSVFILEDEF_CH0051=${BSORT_DIR}/CH_BS_CH0051_002.bsdef

#
#--- 2.請求内訳CH_T_SEIKY_UCWK
#
#- 当月
CSVFILE_CH0101_T=${MID_DIR_CH}/CHIFM182003.csv

#- 前月
CSVFILE_CH0101_Z=${MID_DIR_CH}/CHIFM182002.csv

#
#--- 3.料金項目抽出変換マスタ
#
CSVFILE_CH0401=${MID_DIR_CH}/${JOBNAME}_CH0401.csv
CSVFILE_CH0401_WRK=${MID_DIR_CH}/${JOBNAME}_CH0401_WRK_${JOBNAME}.csv
CSVFILE_CH0401_WRK2=${MID_DIR_CH}/${JOBNAME}_CH0401_WRK2_${JOBNAME}.csv

TABLEDEF_CH0401=${BSORT_DIR}/CH_BS_CH0401_001.bsdef
CSVFILEDEF_CH0401=${BSORT_DIR}/CH_BS_CH0401_002.bsdef

#
#--- 4.督促CH_T_TOKUSOKU
#
CSVFILE_CH0231=${MID_DIR_CH}/CHIFM183001.csv

#
#--- 5.業務パラメータ管理
#
SQLFILE_ZM0321=${SQL_DIR}/CH_U_ZM0321_01.sql
SQLFILE_ZM0321_WRK=${SQL_DIR}/CH_U_ZM0321_01_WRK_${JOBNAME}.sql
SQLFILE_ZM0321_AMNT_WRK=${SQL_DIR}/ZM_U_ZM0321_AMNT_01_WRK_${JOBNAME}.sql
SQLFILE_ZM0321_TAX_WRK=${SQL_DIR}/ZM_U_ZM0321_TAX_01_WRK_${JOBNAME}.sql

CSVFILE_ZM0321_AMNT=${MID_DIR_CH}/${JOBNAME}_ZM0321_AMNT_.csv
CSVFILE_ZM0321_TAX=${MID_DIR_CH}/${JOBNAME}_ZM0321_TAX_.csv
CSVFILE_ZM0321_TAX_WRK=${MID_DIR_CH}/${JOBNAME}_ZM0321_TAX_WRK_${JOBNAME}.csv

#-------------------------------------------------------------
# マッチングファイル定義
#-------------------------------------------------------------
DEFFILE_WRK=${G_TOOLSH}/util/def/CH_CM_0039.def
DEFFILE_WRK2=${G_TOOLSH}/util/def/CH_CM_0038.def
DEFFILE_WRK3=${G_TOOLSH}/util/def/CH_CM_0101.def

#-------------------------------------------------------------
# マッチングファイル環境定義
#-------------------------------------------------------------
export ZTL_DEFINE_SEIKY=SEIKY_NO,SEIKY_STAT,SEIKY_KEI_NO,TOKUSOKU_NO,SEIKY_YM,SEIKY_FIX_YMD,SEIKY_SBT_CD,KEI_SEIKY_WAY_CD,SEIKY_WAY_CD,KYOSEI_MADOGUCHI_FLG,SEIKY_REQ_YMD,DOFU_CD,SKS_HAKKO_SEQ,CUSTOMER_BARCODE,INFO_PATTERN_CD,DOHUBT_PATTERN_CD,SOHUS_AD_CD,SOHUS_PCD,SOHUS_STATE_NM,SOHUS_CITY_NM,SOHUS_OAZTSU_NM,SOHUS_AZCHO_NM,SOHUS_AD_BNCHIGO,SOHUS_ADRTTM,SOHUS_ADRRM,SOHUS_TELNO,SOHUS_NM,SOHUS_BKM,SOHUS_TNTSHA_NM,SHS_HOJIN_SBT_CD,SHS_HOJIN_ZENGO_SHITEI_CD,SHS_KANA,SOHUS_MLAD,SKHK_SVKEI_STAT_CD,SKHK_SVKEI_DLRE_SKBT_CD,SEIKYUS_HAKKO_YH,NEXT_SEIKY_WAY_DIV,RECEIPT_AMNT_OUTPUT_UM,PAY_KIGEN_YMD,SEIKYUS_HIKINUKI_FLG,SEIKYUS_HAKKO_TG_FLG,SEIKYUS_HAKKO_YMD,SEIKY_AMNT_ADJ_YMD,SEIKY_AMNT_CHGE_YMD,SEIKY_CL_YMD,BANK_CD,BANK_SHITEN_CD,YOKIN_SHUMOKU_CD,KOZA_NO,NEW_CD,TSUCHO_SYMBOL,TSUCHO_NO,KOZA_MEIGIN_KANA,KHRI_RSLT_RTN_YMD,KHRI_RSLT_CD,FLRLMT_CHOK_FLG,CRECARD_COMP_CD,CRECARD_NM_KANA,CRECARD_NM_ROMAJI,AUTHORI_RSLT_CD,MEMBSTR_NO_15,CRECARD_NO,CRECARD_YK_KIGEN,CREDIT_KOKAN_CD,DEAL_YMD,SALES_AUTHORI_JSSI_DTM,AUTHORI_SHONIN_NO,DEAL_SKBT_NO,SALES_DENPYO_NO,SHANAIUSE_SKBT_FLG,EAN_BARCODE,EAN_MAKER_CD,EAN_TRAT_LIMIT_YMD,OCR_BARCODE
export ZTL_DEFINE_TOKUSOKU=TOKUSOKU_NO,TOKUSOKU_STAT,SEIKY_KEI_NO,TOKUSOKU_AMNT
export ZTL_DEFINE_SEIKY_UCWK=SEIKY_NO,SEIKY_KEI_NO,SEIKY_YM,SEIRI_NO,SVC_KEI_NO,PRC_GRP_CD,PCRS_CD,PRC_SVC_CD,PRC_KMK_CD,GSAN_SEIKY_YM,USE_STAYMD,USE_ENDYMD,AMNT,PRC_TEISE_ADD_FLG
export ZTL_DEFINE_PRC_KMK_CS_CHGE=SYS_CD,WORK_KINO_SKBT_CD,CHSHT_CHG_CD,PRC_GRP_CD,PCRS_CD,PRC_SVC_CD,PRC_KMK_CD,PRC_KMK_CS_CHGE_TSTAYMD,PRC_KMK_CS_CHGE_TENDYMD,MK_FLG
export ZTL_DEFINE_ZM0321_TAX=WORK_PARAM_SETTE_VALUE
export ZTL_DEFINE_ZM0321_AMNT=WORK_PARAM_SETTE_VALUE
export ZTL_DEFINE_SUB_SEIKY_UCWK=SEIKY_NO,SEIKY_YM,AMNT
export ZTL_DEFINE_TOUGETSU_SEIKY=SEIKY_NO,SEIKY_KEI_NO,SEIKY_YM

#
#--- 運用日付の取得
#
. EOK010310J0.sh "BDATE"
RSLT_OPEDATE=${RSLT_OPEDATE}

#
#--- アンロードファイルのクリアを行う
#
cat /dev/null > $OUTFILE_WRK
cat /dev/null > $OUTFILE

#-------------------------------------------------------------
# サブルーチン
#-------------------------------------------------------------
#
#--- サブルーチン（UNLOAD）
#
UNLOAD(){

# unload
sh ${G_TOOLSH}/EOKULD03.sh $1 $2

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

}

#
#--- サブルーチンCH_T_SEKY_ZENGETSU_SORT()
#--- CH_T_SEIKYデータで前月分データを抽出
#
CH_T_SEKY_ZENGETSU_SORT(){

(bsortex \
  -define \
  -a ${TABLEDEF_CH0051} \
  -record recform=txtcsv \
  -input reclen=@{RECLEN} \
         include="@{SEIKY_STAT}asc.eq.'020'.and.@{RECEIPT_AMNT_OUTPUT_UM}asc.eq.'1'.and.@{SEIKY_WAY_CD}asc.eq.'2'" \
         include="@{SEIKY_STAT}asc.eq.'020'.and.@{RECEIPT_AMNT_OUTPUT_UM}asc.eq.'1'.and.@{SEIKY_WAY_CD}asc.eq.'3'" \
  -copy \
 < ${CSVFILE_CH0051} \
 > ${CSVFILE_CH0051_WRK} )
echo "sort CH_T_SEKY_ZENGETSU_SORT.csv"
}

#
#--- サブルーチンCH_T_SEKY_TOUGETSU_SORT()
#--- CH_T_SEIKYデータで当月分データを抽出
#
CH_T_SEKY_TOUGETSU_SORT(){

(bsortex \
  -define \
  -a ${TABLEDEF_CH0051} \
  -a ${CSVFILEDEF_CH0051} \
  -record recform=txtcsv \
  -input reclen=@{RECLEN} \
         include="@{SEIKY_STAT}asc.eq.'020'.and.@{SEIKY_SBT_CD}asc.eq.'0'.and.@{SEIKY_WAY_CD}asc.eq.'2'" \
         include="@{SEIKY_STAT}asc.eq.'020'.and.@{SEIKY_SBT_CD}asc.eq.'0'.and.@{SEIKY_WAY_CD}asc.eq.'3'" \
         reconst="@{SEIKY_NO},@{SEIKY_KEI_NO},@{SEIKY_YM}" \
  -copy \
 < ${CSVFILE_CH0051_FULL} \
 > ${CSVFILE_CH0051_WRK3} )
echo "sort CH_T_SEKY_TOUGETSU_SORT.csv"
}

#
#--- サブルーチン（CH_M_PRC_KMK_CS_CHGE_SORT_AMNT)
#
CH_M_PRC_KMK_CS_CHGE_AMNT_SORT(){

(bsortex \
  -define \
  -a ${TABLEDEF_CH0401} \
  -a ${CSVFILEDEF_CH0401} \
    -record recform=txtcsv \
    -input reclen=@{RECLEN} \
           reconst="@{SYS_CD},@{WORK_KINO_SKBT_CD},@{CHSHT_CHG_CD},@{PRC_GRP_CD},@{PCRS_CD},@{PRC_SVC_CD},@{PRC_KMK_CD},@{PRC_KMK_CS_CHGE_TSTAYMD},@{PRC_KMK_CS_CHGE_TENDYMD},@{MK_FLG}" \
           include="@{CHSHT_CHG_CD}asc.eq.'1'.and.@{SYS_CD}asc.eq.'CH'.and.@{MK_FLG}asc.eq.'0'.and.@{PRC_KMK_CS_CHGE_TSTAYMD}asc.le.'$RSLT_OPEDATE'.and.@{PRC_KMK_CS_CHGE_TENDYMD}asc.gt.'$RSLT_OPEDATE'.and.@{WORK_KINO_SKBT_CD}asc.eq.'$SETTE_VALUE_AMNT'" \
    -copy \
 < ${CSVFILE_CH0401} \
 > ${CSVFILE_CH0401_WRK} )
echo "sort CH_M_PRC_KMK_CS_CHGE.csv"
}

#
#--- サブルーチン（CH_M_PRC_KMK_CS_CHGE_SORT_TAX)
#
CH_M_PRC_KMK_CS_CHGE_TAX_SORT(){

(bsortex \
  -define \
  -a ${TABLEDEF_CH0401} \
  -a ${CSVFILEDEF_CH0401} \
    -record recform=txtcsv \
    -input reclen=@{RECLEN} \
           reconst="@{SYS_CD},@{WORK_KINO_SKBT_CD},@{CHSHT_CHG_CD},@{PRC_GRP_CD},@{PCRS_CD},@{PRC_SVC_CD},@{PRC_KMK_CD},@{PRC_KMK_CS_CHGE_TSTAYMD},@{PRC_KMK_CS_CHGE_TENDYMD},@{MK_FLG}" \
           include="@{CHSHT_CHG_CD}asc.eq.'1'.and.@{SYS_CD}asc.eq.'CH'.and.@{MK_FLG}asc.eq.'0'.and.@{PRC_KMK_CS_CHGE_TSTAYMD}asc.le.'$RSLT_OPEDATE'.and.@{PRC_KMK_CS_CHGE_TENDYMD}asc.gt.'$RSLT_OPEDATE'.and.@{WORK_KINO_SKBT_CD}asc.eq.'$SETTE_VALUE_TAX'" \
    -copy \
 < ${CSVFILE_CH0401} \
 > ${CSVFILE_CH0401_WRK2} )
echo "sort CH_M_PRC_KMK_CS_CHGE.csv"
}

#-------------------------------------------------------------
# メイン処理
#-------------------------------------------------------------
#---ワークファイル削除モード
#
WK_RM=true

#
#--- SETTE_VALUEの設定
#--- AMNT
#
sed -e "s/\:OPE_DATE/${RSLT_OPEDATE}/"      ${SQLFILE_ZM0321}     > ${SQLFILE_ZM0321_WRK}
sed -e "s/\:WORK_PARAM/${WKPARA_ID_SIKY}/"  ${SQLFILE_ZM0321_WRK} > ${SQLFILE_ZM0321_AMNT_WRK}
UNLOAD ${SQLFILE_ZM0321_AMNT_WRK}  ${CSVFILE_ZM0321_AMNT}
eval SETTE_VALUE_AMNT=`cat  ${CSVFILE_ZM0321_AMNT}`
echo SETTE_VALUE_AMNT = $SETTE_VALUE_AMNT

#
#--- TAX
#
sed -e "s/\:WORK_PARAM/${WKPARA_ID_TAX}/"   ${SQLFILE_ZM0321_WRK} > ${SQLFILE_ZM0321_TAX_WRK}
UNLOAD ${SQLFILE_ZM0321_TAX_WRK}  ${CSVFILE_ZM0321_TAX}
eval SETTE_VALUE_TAX=`cat  ${CSVFILE_ZM0321_TAX}`
echo SETTE_VALUE_TAX = $SETTE_VALUE_TAX

################################
#トランザクションアンロード処理
################################

#
#--- CH_T_SEIKYデータの絞込み
#
CH_T_SEKY_ZENGETSU_SORT &
pid_ZENGETSU_SORT=$!

#
#--- CH_T_SEIKYデータの絞込み
#
CH_T_SEKY_TOUGETSU_SORT &
pid_TOUGETSU_SORT=$!

#
#--- CH_M_PRC_KMK_CS_CHGEデータを取得(UNLOAD)
#
UNLOAD CH_M_PRC_KMK_CS_CHGE  ${CSVFILE_CH0401}

#
#--- CH_M_PRC_KMK_CS_CHGEデータの絞込み
#
CH_M_PRC_KMK_CS_CHGE_AMNT_SORT &
pid_AMNT_SORT=$!

CH_M_PRC_KMK_CS_CHGE_TAX_SORT &
pid_TAX_SORT=$!

wait ${pid_ZENGETSU_SORT}
rc_ZENGETSU_SORT=$?

wait ${pid_TOUGETSU_SORT}
rc_TOUGETSU_SORT=$?

wait ${pid_AMNT_SORT}
rc_AMNT_SORT=$?

wait ${pid_TAX_SORT}
rc_TAX_SORT=$?

#- エラー処理
if [ ${rc_ZENGETSU_SORT} -ne 0 ] || [ ${rc_TOUGETSU_SORT} -ne 0 ] || [ ${rc_AMNT_SORT} -ne 0 ] || [ ${rc_TAX_SORT} -ne 0 ]
then
    #- エラーメッセージ出力
    if [ ${rc_ZENGETSU_SORT} -ne 0 ]
    then
        sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " Sort_zengetsu Error(sort:rc=$rc) "
        echo $JOBNAME " Sort_zengetsu Error(sort:rc=$rc) "
    fi
    if [ ${rc_TOUGETSU_SORT} -ne 0 ]
    then
        sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " Sort_togetsu Error(sort:rc=$rc) "
        echo $JOBNAME " Sort_togetsu Error(sort:rc=$rc) "
    fi
    if [ ${rc_AMNT_SORT} -ne 0 ]
    then
        sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " Sort_amnt Error(sort:rc=$rc) "
        echo $JOBNAME " Sort_amnt Error(sort:rc=$rc) "
    fi
    if [ ${rc_TAX_SORT} -ne 0 ]
    then
        sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " Sort_tax Error(sort:rc=$rc) "
        echo $JOBNAME " Sort_tax Error(sort:rc=$rc) "
    fi
    #- 異常終了
    exit ${G_RTN_ERROR}
fi

##############################
#マッチング処理
##############################

#
#--- 入力ファイル定義
#
export CSVFILE_CH0101_WRK2=${CSVFILE_CH0101_T}
export CSVFILE_CH0101_WRK=${CSVFILE_CH0101_Z}
export CSVFILE_CH0051_WRK=${CSVFILE_CH0051_WRK}
export CSVFILE_CH0051_WRK2=${CSVFILE_CH0051_WRK2}
export CSVFILE_CH0051_WRK3=${CSVFILE_CH0051_WRK3}
export CSVFILE_CH0401_WRK=${CSVFILE_CH0401_WRK}
export CSVFILE_CH0401_WRK2=${CSVFILE_CH0401_WRK2}
export CSVFILE_CH0231_WRK=${CSVFILE_CH0231}
export CSVFILE_ZM0321_AMNT=${CSVFILE_ZM0321_AMNT}
export CSVFILE_ZM0321_TAX=${CSVFILE_ZM0321_TAX}
export OUTFILE_TEMP=${OUTFILE_TEMP}
export OUTFILE_WRK=${OUTFILE_WRK}

#
#--- マッチング1(マッチング3の為のデータを抽出)
#
(export ZTLQUOTES=''
export ZTLOUTFILE=${OUTFILE_TEMP}
${G_TOOLSH}/util/bin/ZTLMAT01 ${DEFFILE_WRK2}) &
pid_Matching1=$!

#
#--- マッチング2(マッチング3の為のデータを抽出)
#
(export ZTLQUOTES=''
export ZTLOUTFILE=${CSVFILE_CH0051_WRK2}
${G_TOOLSH}/util/bin/ZTLMAT01 ${DEFFILE_WRK3}) &
pid_Matching2=$!

wait ${pid_Matching1}
rc_Matching1=$?

wait ${pid_Matching2}
rc_Matching2=$?

#- エラー処理
if [ ${rc_Matching1} -ne 0 ] || [ ${rc_Matching2} -ne 0 ]
then
    #- エラーメッセージ出力
    if [ ${rc_Matching1} -ne 0 ]
    then
        sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " Matching1 Error(matching:rc=$rc) "
        echo $JOBNAME " Matching1 Error(matching:rc:rc=$rc) "
    fi
    if [ ${rc_Matching2} -ne 0 ]
    then
        sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " Matching2 Error(matching:rc=$rc) "
        echo $JOBNAME " Matching2 Error(matching:rc:rc=$rc) "
    fi
    #- 異常終了
    exit ${G_RTN_ERROR}
fi
#
#--- マッチング3
#
(export ZTLQUOTES=''
export ZTLOUTFILE=${OUTFILE_WRK}
${G_TOOLSH}/util/bin/ZTLMAT01 ${DEFFILE_WRK})

#
#--- 抽出処理
#
# 税額集計処理の前処理として、未納のみの消費税額に"0"を設定する
bsortex \
  -copy \
  -record recform=txtcsv \
  -input  reclen=1500 file=${OUTFILE_WRK} \
  -output file=${OUTFILE_WRK2}  case="39.12asc.lt.'0'" \
          reconst="0.12,1.10,2.6,4.1,38.12,5.8,40.8,41.8,'0'.1asc,4.1,6.4,7.3,8.1,9.7,10.3,11.8,12.242,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY" \
  -output file=${OUTFILE_WRK3}  case=other \
          reconst="0.12,1.10,2.6,4.1,38.12,5.8,40.8,41.8,39.12,4.1,6.4,7.3,8.1,9.7,10.3,11.8,12.242,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY,EMPTY"
rc=$?
if [ $rc -ne 0 ]
then
      sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " sort error(bsortex:rc=$rc) "
      echo $JOBNAME " sort error(bsortex:rc=$rc) "
      exit ${G_RTN_ERROR}
fi

# 消費税額を合算し、改行コードをCRLFに変換する。
bsortex \
  -sort key=0.12asc \
  -record recform=txtcsv -summary field=8.12ascud \
  -input  reclen=1500 file=${OUTFILE_WRK2},${OUTFILE_WRK3} \
  -output file=${OUTFILE} linedlmt=crlf
rc=$?
if [ $rc -ne 0 ]
then
      sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " sort error(bsortex:rc=$rc) "
      echo $JOBNAME " sort error(bsortex:rc=$rc) "
      exit ${G_RTN_ERROR}
fi

#
#--- ワーク削除
#
if [ $WK_RM = "true" ]
then
    rm -f ${OUTFILE_WRK}
    rm -f ${OUTFILE_WRK2}
    rm -f ${OUTFILE_WRK3}
    rm -f ${OUTFILE_TEMP}
    rm -f ${SQLFILE_ZM0321_WRK}
    rm -f ${SQLFILE_ZM0321_AMNT_WRK}
    rm -f ${SQLFILE_ZM0321_TAX_WRK}
    rm -f ${CSVFILE_CH0401}
    rm -f ${CSVFILE_CH0401_WRK}
    rm -f ${CSVFILE_CH0401_WRK2}
    rm -f ${CSVFILE_CH0051_WRK}
    rm -f ${CSVFILE_CH0051_WRK}
    rm -f ${CSVFILE_CH0051_WRK2}
    rm -f ${CSVFILE_CH0051_WRK3}
    rm -f ${CSVFILE_ZM0321_AMNT}
    rm -f ${CSVFILE_ZM0321_TAX}
fi

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

exit ${G_RTN_NORMAL}
