#!/bin/bash
##############################################################
# システム名    ：eo顧客基幹システム
#
# サブシステム名：料金管理
#
# シェル名      ：作成対象インプットファイル判定
#
# 機能          ：
#サービス契約情報（継続分）ファイル、
#サービス契約情報（異動蓄積）、
#サービス契約情報（当月利用）、
#サービス契約情報（前月利用）、
#サービス契約情報（再計算対象）、
#請求書発行手数料情報を入力ファイルとし、
#引数をキーに作成対象インプットファイル判定を行い、サービス契約情報ファイルへ出力する。
#
#＜作成対象インプットファイル判定＞
#引数１＝"1"の場合、
#　サービス契約情報（継続分）　${MID_DIR_AC}/ACIFI001201.csv　を対象とする。  
#
#　引数２の値でサービス契約情報（継続分）を元に、請求契約番号の下nけたをキーにし、
#　対象レコードの抽出を行う。（n=引数２の桁数）
#　※引数２の指定方法は以下の通り
#　　・通常パターン⇒1,2,3,4　…請求契約番号の下1桁が１、２、３、４であるレコードを対象とする
#    ・範囲指定パターン⇒1,10-100 …請求契約番号の下1桁が１、下3桁が10以上100以下であるレコードを対象とする
#
#  マンションオーナー請求向けの子契約の請求契約が泣き別れない考慮として、
#  加入契約支払方式コードが"002"(個別)以外（全戸一括、居住者一括、ベース、TV親請求）
#  の請求契約は初日分として抽出すること。
#
#  継続契約計算期間の料金計算の負荷分散を行う為、請求書発行手数料の課金候補となる
#  請求契約は、初日に全て抽出すること。該当の請求契約は、請求書発行手数料情報の
#  請求先番号で特定する。
#
#  [請求書発行手数料の課金候補となる請求契約]
#    サービス契約情報．請求先　＝　請求書発行手数料情報．請求先番号
#
#引数１＝"2"の場合、
#　サービス契約情報（異動蓄積）　 ${MID_DIR_AC}/ACIFI001005.csv   を対象とする。
#  ※再計算対象は異動蓄積ファイルに蓄積済み。
#
#引数１＝"3"の場合、
#　サービス契約情報（当月利用）　　${MID_DIR_AC}/ACIFI002201.csv、
#　サービス契約情報（再計算対象）${MID_DIR_AC}/ACIFI001008.csv　　をマージする。
#
#引数１＝"4"の場合、
#　サービス契約情報（前月利用）${MID_DIR_AC}/ACIFI003201.csv、
#　サービス契約情報（再計算対象）${MID_DIR_AC}/ACIFI001008.csv　　をマージする。
#
#引数１＝"5"の場合、
#　サービス契約情報（異動蓄積）（当日料金計算対象）　${MID_DIR_AC}/ACIFI001019.csv　を対象とする。 
#
#
# コマンド形式  ：EO3010120J0.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
# v3.00           2012/06/26  FJ）山下     ST2-2012-0001216水平対応
# v4.00           2013/04/11  FJ）浜口     【料金残課題対応No.4】マンションオーナ請求泣別れ考慮
# v5.00           2013/07/29  FJ) 小柴     【TG1-2013-0000720】ケース文の条件エラー時にログ出力を行うように修正
# v5.01           2013/09/13  FJ) 黒木     【ST4-2013-0000577】初日分のマンション子契約出力不正対応
# v5.02           2013/10/29  FJ) 小掠     【OM-2013-0003652】請求契約泣き別れ対応。
#                                                             加入契約支払方式コードが"002"(個別)以外の請求契約は初日分として抽出
# v6.00           2013/12/06  FJ) 狭間     【OM-2013-0004668】入力ファイルを変更
# v6.01           2013/12/10  FJ) 伊藤     【OM-2013-0004976】OM-3652が、加入契約支払方式コードが空欄のものが抽出されていたのを修正。
# v8.00           2014/04/30  FJ) 狭間     【ST4-2013-0000573】入力ファイルとしてACIFI001019を追加（パラメータ'5'の場合）。
# v18.00          2015/09/03  FJ）酒井     【ANK-2691-00-00】請求書発行手数料の課金方式の変更
# v22.00          2016/01/15  FJ）有本     【OM-2016-0000114】性能改善：ソート処理見直し
##############################################################
##############################################################
# 環境変数定義
##############################################################

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

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

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

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

#
#---OPD
#
OPD=$1

#
#---業務で必要な変数定義
#
#xxx=xxxxxxx
#---マッチング処理でLeftjoinがNULL時に"を付けなくする（マッチング使用時は必須）
export ZTLQUOTES=''
##############################################################
# 業務処理
##############################################################
sh ${G_TOOLSH}/EOK010210J0.sh CS00025I $JOBNAME

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

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

#-------------------------------------------------------------
#--- サブルーチン（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
}

#
#-------------------------------------------------------------
#--- 4.マッチングdef
#-------------------------------------------------------------
AC_CM_0073_DEF=${G_TOOLSH}/util/def/AC_CM_0073.def
AC_CM_0073_DEF_WK_01=${G_TOOLSH}/util/def/AC_CM_0073_TEMP_01_${JOBNAME}.def

AC_CM_0074_DEF=${G_TOOLSH}/util/def/AC_CM_0074.def
AC_CM_0074_DEF_WK_01=${G_TOOLSH}/util/def/AC_CM_0074_TEMP_01_${JOBNAME}.def

# v24.00.00 ANK-2691-00-00 ADD STA
AC_CM_0106_DEF=${G_TOOLSH}/util/def/AC_CM_0106.def
AC_CM_0106_DEF_WK_01=${G_TOOLSH}/util/def/AC_CM_0106_TEMP_01_${JOBNAME}.def

AC_CM_0107_DEF=${G_TOOLSH}/util/def/AC_CM_0107.def
AC_CM_0107_DEF_WK_01=${G_TOOLSH}/util/def/AC_CM_0107_TEMP_01_${JOBNAME}.def
# v24.00.00 ANK-2691-00-00 ADD END

#
#---ファイルのクリア
#
cat /dev/null > ${MID_DIR_AC}/ACIFI001002.csv

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

#
#---ファイルコピー
#

INPUTFILE2=${MID_DIR_AC}/ACIFI001008.csv
# v24.00.00 ANK-2691-00-00 ADD STA
INFILE_ACIFI016057=${MID_DIR_AC}/ACIFI016057.csv
INFILE_ACIFI016057_WK1=${MID_DIR_AC}/${JOBNAME}_ACIFI016057_WK1.csv
# v24.00.00 ANK-2691-00-00 ADD END

OUTFILE=${MID_DIR_AC}/ACIFI001002.csv
OUTPUT_FILE_TMP=${MID_DIR_AC}/ACIFI0011_TMP_${JOBNAME}.csv
OUTPUT_FILE_TMP2=${MID_DIR_AC}/ACIFI0012_TMP_${JOBNAME}
OUTPUT_FILE_TMP3=${MID_DIR_AC}/ACIFI0013_TMP_${JOBNAME}
OUTPUT_FILE_TMP4=${MID_DIR_AC}/ACIFI0014_TMP_${JOBNAME}.csv
OUTPUT_FILE_TMP5=${MID_DIR_AC}/ACIFI0015_TMP_${JOBNAME}.csv
OUTPUT_FILE_TMP6=${MID_DIR_AC}/ACIFI0016_TMP_${JOBNAME}.csv
OUTPUT_FILE_TMP7=${MID_DIR_AC}/ACIFI0017_TMP_${JOBNAME}.csv
OUTPUT_FILE_TMP8=${MID_DIR_AC}/ACIFI0018_TMP_${JOBNAME}.csv
OUTPUT_FILE_TMP9=${MID_DIR_AC}/ACIFI0019_TMP_${JOBNAME}.csv
OUTPUT_FILE_TMPA=${MID_DIR_AC}/ACIFI001A_TMP_${JOBNAME}.csv
# v24.00.00 ANK-2691-00-00 ADD STA
OUTPUT_FILE_TMPB=${MID_DIR_AC}/ACIFI001B_TMP_${JOBNAME}.csv
OUTPUT_FILE_TMPC=${MID_DIR_AC}/ACIFI001C_TMP_${JOBNAME}.csv
OUTPUT_FILE_TMPD=${MID_DIR_AC}/ACIFI001D_TMP_${JOBNAME}.csv
OUTPUT_FILE_TMPE=${MID_DIR_AC}/ACIFI001E_TMP_${JOBNAME}.csv
# v24.00.00 ANK-2691-00-00 ADD END

#1日目でのみ作成するワーク(初日で作成、他の日では作成せず、読み込みのみ)
OUTPUT_FILE_TMP_FSTDY=${MID_DIR_AC}/ACIFM081003.csv

KOBETSU='002'
PARAM_ZERO_FLG=false

case $2 in
	1)
		INPUTFILE=${MID_DIR_AC}/ACIFI001201.csv;;
	2)
		INPUTFILE=${MID_DIR_AC}/ACIFI001005.csv;;
	3)
		INPUTFILE=${MID_DIR_AC}/ACIFI002201.csv;;
	4)
		INPUTFILE=${MID_DIR_AC}/ACIFI003201.csv;;
	5)
		INPUTFILE=${MID_DIR_AC}/ACIFI001019.csv;;
	*)
		sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " ARGV Error [value=${2}] "
		sh ${G_TOOLSH}/EOK010210J0.sh CS00028I $JOBNAME
		sh ${G_TOOLSH}/EOK010210J0.sh CS00026I $JOBNAME
		echo $JOBNAME "ARGV Error ${2}"
		exit ${G_RTN_ERROR}
esac

if [ $2 -ne 1 ] && [ $2 -ne 2 ] && [ $2 -ne 5 ]
then
	echo "FILE COPY ${INPUTFILE} + ${INPUTFILE2} -> ${OUTFILE}"
	if [ ! -f ${INPUTFILE} ]; then
		echo $JOBNAME "INPUT FILE ERROR ${INPUTFILE}"
		exit ${G_RTN_ERROR}
	fi
	if [ ! -f ${INPUTFILE2} ]; then
		echo $JOBNAME "INPUT FILE ERROR ${INPUTFILE2}"
		exit ${G_RTN_ERROR}
	fi
	cp ${INPUTFILE} ${OUTFILE}
	rc=$?
	if [ $rc -ne 0 ]
	then
	    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME "COPY Error($SVC sort:rc=$rc) "
	    echo $JOBNAME "COPY Error($SVC sort:rc=$rc) "
	    exit ${G_RTN_ERROR}
	fi
	cat ${INPUTFILE2} >> ${OUTFILE}
	rc=$?
	if [ $rc -ne 0 ]
	then
	    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME "CAT Error($SVC sort:rc=$rc) "
	    echo $JOBNAME "COPY Error($SVC sort:rc=$rc) "
	    exit ${G_RTN_ERROR}
	fi

elif [ $2 -eq 1 ]
then
# v24.00.00 ANK-2691-00-00 ADD STA
	#
	#---請求書発行手数料情報が存在しない場合エラー
	#
	if [ ! -f ${INFILE_ACIFI016057} ]; then
	    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist(${INFILE_ACIFI016057}) "
	    echo $JOBNAME " File is nonexist (${INFILE_ACIFI016057}) "
	    exit ${G_RTN_ERROR}
	fi
# v24.00.00 ANK-2691-00-00 ADD END

	count=0
	# 第3引数を「,」で分割する
	for PARAM in `echo $3 | sed "s/\,/ /g"`
	do
	
		PARAM_CHK=`echo $PARAM |grep -e "[0-9]-[0-9]"`
		# 第3引数が範囲指定の場合
		if [ "${PARAM_CHK}" != "" ]; then
	
			# 分割したパラメータを配列に格納
			ARRAY_PARA[${count}]=$PARAM
			
			# 範囲指定の最小値
			SMALL=`echo ${PARAM}|cut -d- -f1`
			SMALL_SIZE=`expr length $SMALL`

			# 範囲指定の最小値にゼロが設定されていれば初日フラグにtrueをセット
			if [ "${SMALL}" -eq "0" ]; then
			    PARAM_ZERO_FLG=true
			fi
			
			# 範囲指定の最大値
			BIG=`echo ${PARAM}|cut -d- -f2`
			
			if [ "${SMALL}" -gt "${BIG}" ]; then
				echo "パラメータの形式が不正です。範囲指定は「最小値-最大値」を設定してください。"
				sh ${G_TOOLSH}/EOK010210J0.sh CS00002E ${JOBNAME} "$3(引数エラー)" 
				echo "${JOBNAME} END"
				exit ${RTN_ERR}
			else
				# （請求契約番号）の項目の切り取る文字列の終点
				END=`expr length $BIG`
				# （請求契約番号）の項目の切り取る文字列の始点
				START=`expr 10 - ${END} + 1`
				
				# （請求契約番号）の項目のSTART桁目からEND文字をレコードの先頭に追加
				awk -F, '{printf "%s,%s\n", substr($7,'${START}','${END}'),$0}' ${INPUTFILE} > ${OUTPUT_FILE_TMP}

				# 0埋めする
				SMALL=`printf "%0${END}d" ${SMALL}`

				# ＳＯＲＴ
				# 付加した請求契約番号が範囲指定の最小値以上のレコードを出力する。
				# OM-2016-0000114 性能改善対応 2016/01/15 有本 MOD START
				#bsortex \
				#-sort -record recform=txtflt fldsep=, \
				#-input reclen=600 file=${OUTPUT_FILE_TMP} \
				#-output file=${OUTPUT_FILE_TMP3}_${SMALL}.csv case="0.`echo ${SMALL_SIZE}`asc.ge.'${SMALL}'" \
				#reconst=0.END
				bsortex \
				-copy -record recform=txtflt fldsep=, \
				-input reclen=400 file=${OUTPUT_FILE_TMP} \
				-output file=${OUTPUT_FILE_TMP3}_${SMALL}.csv case="0.`echo ${SMALL_SIZE}`asc.ge.'${SMALL}'" \
				reconst=0.END
				# OM-2016-0000114 性能改善対応 2016/01/15 有本 MOD END
	
				rc=$?
				if [ $rc -ne 0 ]
				then
				    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " BSORTEX1 Error($SVC sort:rc=$rc) "
				    echo $JOBNAME " BSORTEX1 Error($SVC sort:rc=$rc) "
				    exit ${G_RTN_ERROR}
				fi
				
				# ＳＯＲＴ
				# 付加した請求契約番号の下1桁を削除して
				# レコードの先頭が範囲指定の最大値以下のレコードを出力する。
				# OM-2016-0000114 性能改善対応 2016/01/15 有本 MOD START
				#bsortex \
				#-sort -record recform=txtflt fldsep=, \
				#-input reclen=600 file=${OUTPUT_FILE_TMP3}_${SMALL}.csv \
				#-output file=${OUTPUT_FILE_TMP2}_${PARAM}.csv case="0.`echo ${END}`asc.le.'${BIG}'" \
				#reconst=1.END
				bsortex \
				-copy -record recform=txtflt fldsep=, \
				-input reclen=400 file=${OUTPUT_FILE_TMP3}_${SMALL}.csv \
				-output file=${OUTPUT_FILE_TMP2}_${PARAM}.csv case="0.`echo ${END}`asc.le.'${BIG}'" \
				reconst=1.END
				# OM-2016-0000114 性能改善対応 2016/01/15 有本 MOD END
	
				rc=$?
				if [ $rc -ne 0 ]
				then
				    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " BSORTEX2 Error($SVC sort:rc=$rc) "
				    echo $JOBNAME " BSORTEX2 Error($SVC sort:rc=$rc) "
				    exit ${G_RTN_ERROR}
				fi
	
				#一時ファイルを削除する
				rm -f ${OUTPUT_FILE_TMP3}_${SMALL}.csv
				rc=$?
				if [ $rc -ne 0 ]
				then
				    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " RM1 Error($SVC rm:rc=$rc) "
				    echo $JOBNAME " RM1 Error($SVC rm:rc=$rc) "
				    exit ${G_RTN_ERROR}
				fi
			fi
		# 第3引数が通常指定の場合
		else
			PARAM_CHK=`echo $PARAM |grep -e "[^0-9]"`
			echo $PARAM_CHK
			if [ "${PARAM_CHK}" != "" ]; then
				echo "パラメータの形式が不正です。数値を設定してください。"
				sh ${G_TOOLSH}/EOK010210J0.sh CS00002E ${JOBNAME} "$3(引数エラー)" 
				echo "${JOBNAME} END"
				exit ${RTN_ERR}
			else
				# パラメータにゼロが設定されていれば初日フラグにtrueをセット
				if [ "${PARAM}" -eq "0" ]; then
				    PARAM_ZERO_FLG=true
				fi
				ARRAY_PARA[${count}]=$PARAM
	
				# （請求契約番号）の項目の切り取る文字列の終点
				END=`expr length $PARAM`
				# （請求契約番号）の項目の切り取る文字列の始点
				START=`expr 10 - ${END} + 1`
				# （請求契約番号）の項目のSTART桁目からEND文字をレコードの先頭に追加
				awk -F, -v a=${START} -v b=${END} '{printf "%s,%s\n", substr($7,a,b),$0}' ${INPUTFILE} > ${OUTPUT_FILE_TMP}
				# ＳＯＲＴ
				# 付加した請求契約番号の下1桁を削除して出力する。
				# OM-2016-0000114 性能改善対応 2016/01/15 有本 MOD START
				#bsortex \
				#-sort -record recform=txtflt fldsep=, \
				#-input reclen=600 file=${OUTPUT_FILE_TMP} \
				#-output file=${OUTPUT_FILE_TMP2}_${PARAM}.csv case="0.`echo ${END}`asc.eq.'${PARAM}'" \
				#reconst=1.END
				bsortex \
				-copy -record recform=txtflt fldsep=, \
				-input reclen=400 file=${OUTPUT_FILE_TMP} \
				-output file=${OUTPUT_FILE_TMP2}_${PARAM}.csv case="0.`echo ${END}`asc.eq.'${PARAM}'" \
				reconst=1.END
				# OM-2016-0000114 性能改善対応 2016/01/15 有本 MOD END
	
				rc=$?
				if [ $rc -ne 0 ]
				then
				    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " BSORTEX3 Error($SVC sort:rc=$rc) "
				    echo $JOBNAME " BSORTEX3 Error($SVC sort:rc=$rc) "
				    exit ${G_RTN_ERROR}
				fi
				
			fi
		fi
		count=`expr ${count} + 1`
	done
	
	#
	#マージをする
	#
	ARRAY_COUNT=0
	for ARRAY_PARA in "${ARRAY_PARA[@]}";do
		MARGE_FILE=${OUTPUT_FILE_TMP2}_${ARRAY_PARA[${ARRAY_COUNT}]}.csv
		cat ${MARGE_FILE} >> ${OUTPUT_FILE_TMP4}
	
		rc=$?
		if [ $rc -ne 0 ]
		then
		    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " cat Error($SVC cat=$rc) "
		    echo $JOBNAME " cat Error($SVC cat=$rc) "
		    exit ${G_RTN_ERROR}
		fi
			#マージした一時ファイルを削除する
			rm -f ${MARGE_FILE}
			rc=$?
			if [ $rc -ne 0 ]
			then
			    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " RM2 Error($SVC rm:rc=$rc) "
			    echo $JOBNAME " RM2 Error($SVC rm:rc=$rc) "
			    exit ${G_RTN_ERROR}
			fi
	
		ARRAY_COUNT=`expr ${ARRAY_COUNT} + 1`
	done
	

	#初日分の指定有の場合
	if [ $PARAM_ZERO_FLG = "true" ]
	then
		#入力ファイルのCRLFをLFにする
		# OM-2016-0000114 性能改善対応 2016/01/15 有本 MOD START
		#bsortex \
		#-sort key="6.10asc" \
		#-record recform=txtflt fldsep=, \
		#-input reclen=600 file=${INPUTFILE} \
		#-output linedlmt=lf file=${OUTPUT_FILE_TMP5}
		bsortex \
		-copy \
		-record recform=txtflt fldsep=, \
		-input reclen=400 file=${INPUTFILE} \
		-output linedlmt=lf file=${OUTPUT_FILE_TMP5}
		# OM-2016-0000114 性能改善対応 2016/01/15 有本 MOD END

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

		#加入契約支払方式コード≠空 かつ ≠002(個別)のレコード請求契約番号のみを抽出する
		#重複データを削除しCRLFをLFにする
		# OM-2016-0000114 性能改善対応 2016/01/15 有本 MOD START
		#bsortex \
		#-sort key="6.10asc" \
		#-record recform=txtflt fldsep=, \
		#-input reclen=600 file=${INPUTFILE} omit="30.3asc.eq.'${KOBETSU}'.or.30.3ascb.eq.' '" \
	    #-summary suppress  first \
		#-output reconst="6.10" linedlmt=lf file=${OUTPUT_FILE_TMP_FSTDY}
		bsortex \
		-sort key="6.10asc" \
		-record recform=txtflt fldsep=, \
		-input reclen=400 file=${INPUTFILE} omit="30.3asc.eq.'${KOBETSU}'.or.30.3ascb.eq.' '" \
	    -summary suppress  first \
		-output reconst="6.10" linedlmt=lf file=${OUTPUT_FILE_TMP_FSTDY}
		# OM-2016-0000114 性能改善対応 2016/01/15 有本 MOD END
	
		rc=$?
		if [ $rc -ne 0 ]
		then
			sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " BSORTEX FSTDY Error($SVC sort:rc=$rc) "
			echo $JOBNAME " BSORTEX FSTDY Error($SVC sort:rc=$rc) "
			exit ${G_RTN_ERROR}
		fi

		# defバインド置き換え
		cp -f ${AC_CM_0073_DEF} ${AC_CM_0073_DEF_WK_01}
		SED "s%:INF1%${OUTPUT_FILE_TMP5}%g"        ${AC_CM_0073_DEF_WK_01}
		SED "s%:INF2%${OUTPUT_FILE_TMP_FSTDY}%g"   ${AC_CM_0073_DEF_WK_01}
	
		## matching
		## 条件①情報
		(export ZTLOUTFILE=${OUTPUT_FILE_TMP6}
		${G_TOOLSH}/util/bin/ZTLMAT01 ${AC_CM_0073_DEF_WK_01})

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

		# OM-2016-0000114 性能改善対応 2016/01/15 有本 ADD START
		#LFをCRLFにする
		nkf -Lw ${OUTPUT_FILE_TMP6} > ${OUTPUT_FILE_TMPA}
		# OM-2016-0000114 性能改善対応 2016/01/15 有本 ADD END
	
		#LFをCRLFにする
		# OM-2016-0000114 性能改善対応 2016/01/15 有本 DEL START
		#bsortex \
		#-sort key="6.10asc" \
		#-record recform=txtflt fldsep=, \
		#-input reclen=600 file=${OUTPUT_FILE_TMP6} \
		#-output linedlmt=crlf file=${OUTPUT_FILE_TMPA}
		#
		#rc=$?
		#if [ $rc -ne 0 ]
		#then
		#	sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " BSORTEX A Error($SVC cat=$rc) "
		#	echo $JOBNAME " BSORTEX A Error($SVC cat=$rc) "
		#	exit ${G_RTN_ERROR}
		#fi
		# OM-2016-0000114 性能改善対応 2016/01/15 有本 DEL END
	
		#マンションレコードをマージする
		cat ${OUTPUT_FILE_TMPA} >> ${OUTPUT_FILE_TMP4}
	
		rc=$?
		if [ $rc -ne 0 ]
		then
			sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " cat2 Error($SVC cat=$rc) "
			echo $JOBNAME " cat2 Error($SVC cat=$rc) "
		    exit ${G_RTN_ERROR}
		fi
	
# v24.00.00 ANK-2691-00-00 ADD STA
		#請求書発行手数料情報の請求先番号を抽出する
		#CRLFをLFにする
		# OM-2016-0000114 性能改善対応 2016/01/15 有本 MOD START
		#bsortex \
		#-sort key="0.10asc" \
		#-record recform=txtflt fldsep=, \
		#-input reclen=300 file=${INFILE_ACIFI016057} \
		#-output reconst="0.10" linedlmt=lf file=${INFILE_ACIFI016057_WK1}
		bsortex \
		-copy \
		-record recform=txtflt fldsep=, \
		-input reclen=300 file=${INFILE_ACIFI016057} \
		-output reconst="0.10" linedlmt=lf file=${INFILE_ACIFI016057_WK1}
		# OM-2016-0000114 性能改善対応 2016/01/15 有本 MOD END
		
		rc=$?
		if [ $rc -ne 0 ]
		then
			sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " BSORTEX ACIFI016057 Error($SVC sort:rc=$rc) "
			echo $JOBNAME " BSORTEX ACIFI016057 Error($SVC sort:rc=$rc) "
			exit ${G_RTN_ERROR}
		fi

		# defバインド置き換え
		cp -f ${AC_CM_0106_DEF} ${AC_CM_0106_DEF_WK_01}
		SED "s%:INF1%${OUTPUT_FILE_TMP5}%g"        ${AC_CM_0106_DEF_WK_01}
		SED "s%:INF2%${INFILE_ACIFI016057_WK1}%g"  ${AC_CM_0106_DEF_WK_01}
		
		#サービス契約情報（継続）と請求書発行手数料情報をマッチング
		(export ZTLOUTFILE=${OUTPUT_FILE_TMPB}
		${G_TOOLSH}/util/bin/ZTLMAT01 ${AC_CM_0106_DEF_WK_01})

		rc=$?
		if [ $rc -ne 0 ]
		then
			sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " matching error(matching:rc=$rc) "
			echo $JOBNAME " matching error(matching:rc=$rc) "
			exit ${G_RTN_ERROR}
		fi
	
		# OM-2016-0000114 性能改善対応 2016/01/15 有本 ADD START
		#LFをCRLFにする
		nkf -Lw ${OUTPUT_FILE_TMPB} > ${OUTPUT_FILE_TMPC}
		# OM-2016-0000114 性能改善対応 2016/01/15 有本 ADD END

		# OM-2016-0000114 性能改善対応 2016/01/15 有本 DEL START
		#LFをCRLFにする
		#bsortex \
		#-sort key="6.10asc" \
		#-record recform=txtflt fldsep=, \
		#-input reclen=600 file=${OUTPUT_FILE_TMPB} \
		#-output linedlmt=crlf file=${OUTPUT_FILE_TMPC}
		#
		#rc=$?
		#if [ $rc -ne 0 ]
		#then
		#	sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " BSORTEX C Error($SVC sort=$rc) "
		#	echo $JOBNAME " BSORTEX C Error($SVC sort=$rc) "
		#	exit ${G_RTN_ERROR}
		#fi
		# OM-2016-0000114 性能改善対応 2016/01/15 有本 DEL END
		
		#請求書発行手数料レコードをマージする
		cat ${OUTPUT_FILE_TMPC} >> ${OUTPUT_FILE_TMP4}
	
		rc=$?
		if [ $rc -ne 0 ]
		then
			sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " CAT C Error($SVC cat=$rc) "
			echo $JOBNAME " CAT  C Error($SVC cat=$rc) "
		    exit ${G_RTN_ERROR}
		fi
# v24.00.00 ANK-2691-00-00 ADD END

		#重複して抽出したレコードを除外する。
		# OM-2016-0000114 性能改善対応 2016/01/15 有本 MOD START
		#bsortex \
		#-sort key=ALL \
		#-record recform=txtflt fldsep=, \
		#-summary suppress \
		#-input reclen=600 file=${OUTPUT_FILE_TMP4} \
		#-output file=${OUTFILE}
		bsortex \
		-sort key=ALL \
		-record recform=txtflt fldsep=, \
		-summary suppress \
		-input reclen=400 file=${OUTPUT_FILE_TMP4} \
		-output file=${OUTFILE}
		# OM-2016-0000114 性能改善対応 2016/01/15 有本 MOD END
	
		rc=$?
		if [ $rc -ne 0 ]
		then
		    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " BSORTEX OUTF Error($SVC sort:rc=$rc) "
		    echo $JOBNAME " BSORTEX OUTF Error($SVC sort:rc=$rc) "
		    exit ${G_RTN_ERROR}
		fi
	else
        #加入契約支払方式コード≠空 かつ ≠002(個別)以外のレコード請求契約番号のみを抽出する
		#入力ファイルのCRLFをLFにする
		# OM-2016-0000114 性能改善対応 2016/01/15 有本 MOD START
		#bsortex \
		#-sort key="6.10asc" \
		#-record recform=txtflt fldsep=, \
		#-input reclen=600 file=${OUTPUT_FILE_TMP4} \
		#-output linedlmt=lf file=${OUTPUT_FILE_TMP7}
		bsortex \
		-copy \
		-record recform=txtflt fldsep=, \
		-input reclen=400 file=${OUTPUT_FILE_TMP4} \
		-output linedlmt=lf file=${OUTPUT_FILE_TMP7}
		# OM-2016-0000114 性能改善対応 2016/01/15 有本 MOD END
	
		rc=$?
		if [ $rc -ne 0 ]
		then
		    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " BSORTEX7 Error($SVC sort:rc=$rc) "
		    echo $JOBNAME " BSORTEX7 Error($SVC sort:rc=$rc) "
		    exit ${G_RTN_ERROR}
		fi

		# defバインド置き換え
		cp -f ${AC_CM_0074_DEF} ${AC_CM_0074_DEF_WK_01}
		SED "s%:INF1%${OUTPUT_FILE_TMP7}%g"        ${AC_CM_0074_DEF_WK_01}
		SED "s%:INF2%${OUTPUT_FILE_TMP_FSTDY}%g"        ${AC_CM_0074_DEF_WK_01}
	
		## matching
		## 条件①情報
		(export ZTLOUTFILE=${OUTPUT_FILE_TMP8}
		${G_TOOLSH}/util/bin/ZTLMAT01 ${AC_CM_0074_DEF_WK_01})

		rc=$?
		if [ $rc -ne 0 ]
		then
			sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " matching error(matching:rc=$rc) "
			echo $JOBNAME " matching error(matching:rc=$rc) "
			exit ${G_RTN_ERROR}
		fi
		
# v24.00.00 ANK-2691-00-00 MOD STA
#		#データがnullのデータを抽出。LFをCRLFにする
#		bsortex \
#		-sort key="7.10asc" \
#		-record recform=txtflt fldsep=, \
#		-input reclen=600 file=${OUTPUT_FILE_TMP8} \
#		-output reconst=1.END linedlmt=lf file=${OUTPUT_FILE_TMP9} case="0.10asc.lt.'0'"
		#データがnullのデータを抽出。
		# OM-2016-0000114 性能改善対応 2016/01/15 有本 MOD START
		#bsortex \
		#-sort key="7.10asc" \
		#-record recform=txtflt fldsep=, \
		#-input reclen=600 file=${OUTPUT_FILE_TMP8} \
		#-output reconst=1.END file=${OUTPUT_FILE_TMP9} case="0.10asc.lt.'0'"
		bsortex \
		-copy \
		-record recform=txtflt fldsep=, \
		-input reclen=400 file=${OUTPUT_FILE_TMP8} \
		-output reconst=1.END file=${OUTPUT_FILE_TMP9} case="0.10asc.lt.'0'"
		# OM-2016-0000114 性能改善対応 2016/01/15 有本 MOD END
# v24.00.00 ANK-2691-00-00 MOD END

		rc=$?
		if [ $rc -ne 0 ]
		then
		    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " BSORTEX9 Error($SVC sort:rc=$rc) "
		    echo $JOBNAME " BSORTEX9 Error($SVC sort:rc=$rc) "
		    exit ${G_RTN_ERROR}
		fi
	
# v24.00.00 ANK-2691-00-00 ADD STA
		#請求書発行手数料情報の請求先番号を抽出する
		#CRLFをLFにする
		# OM-2016-0000114 性能改善対応 2016/01/15 有本 MOD START
		#bsortex \
		#-sort key="0.10asc" \
		#-record recform=txtflt fldsep=, \
		#-input reclen=300 file=${INFILE_ACIFI016057} \
		#-output reconst="0.10" linedlmt=lf file=${INFILE_ACIFI016057_WK1}
		bsortex \
		-copy \
		-record recform=txtflt fldsep=, \
		-input reclen=300 file=${INFILE_ACIFI016057} \
		-output reconst="0.10" linedlmt=lf file=${INFILE_ACIFI016057_WK1}
		# OM-2016-0000114 性能改善対応 2016/01/15 有本 MOD END

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

		# defバインド置き換え
		cp -f ${AC_CM_0107_DEF} ${AC_CM_0107_DEF_WK_01}
		SED "s%:INF1%${OUTPUT_FILE_TMP9}%g"        ${AC_CM_0107_DEF_WK_01}
		SED "s%:INF2%${INFILE_ACIFI016057_WK1}%g"  ${AC_CM_0107_DEF_WK_01}

		## マッチング
		(export ZTLOUTFILE=${OUTPUT_FILE_TMPD}
		${G_TOOLSH}/util/bin/ZTLMAT01 ${AC_CM_0107_DEF_WK_01})

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

		#データがnullのデータを抽出。
		# OM-2016-0000114 性能改善対応 2016/01/15 有本 MOD START
		#bsortex \
		#-sort key="7.10asc" \
		#-record recform=txtflt fldsep=, \
		#-input reclen=600 file=${OUTPUT_FILE_TMPD} \
		#-output reconst=1.END file=${OUTPUT_FILE_TMPE} case="0.10asc.lt.'0'"
		bsortex \
		-copy \
		-record recform=txtflt fldsep=, \
		-input reclen=400 file=${OUTPUT_FILE_TMPD} \
		-output reconst=1.END file=${OUTPUT_FILE_TMPE} case="0.10asc.lt.'0'"
		# OM-2016-0000114 性能改善対応 2016/01/15 有本 MOD END

		rc=$?
		if [ $rc -ne 0 ]
		then
		    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " BSORTEX D Error($SVC sort:rc=$rc) "
		    echo $JOBNAME " BSORTEX D Error($SVC sort:rc=$rc) "
		    exit ${G_RTN_ERROR}
		fi
# v24.00.00 ANK-2691-00-00 ADD END
	
# v24.00.00 ANK-2691-00-00 MOD STA
#		#重複して抽出したレコードを除外する
#		bsortex \
#		-sort key=ALL \
#		-record recform=txtflt fldsep=, \
#		-summary suppress \
#		-input reclen=600 file=${OUTPUT_FILE_TMP9} \
#		-output file=${OUTFILE}
		#重複して抽出したレコードを除外する
		#LFをCRLFにする
		# OM-2016-0000114 性能改善対応 2016/01/15 有本 MOD START
		#bsortex \
		#-sort key=ALL \
		#-record recform=txtflt fldsep=, \
		#-summary suppress \
		#-input reclen=600 file=${OUTPUT_FILE_TMPE} \
		#-output linedlmt=lf file=${OUTFILE}
		bsortex \
		-sort key=ALL \
		-record recform=txtflt fldsep=, \
		-summary suppress \
		-input reclen=400 file=${OUTPUT_FILE_TMPE} \
		-output linedlmt=lf file=${OUTFILE}
		# OM-2016-0000114 性能改善対応 2016/01/15 有本 MOD END
# v24.00.00 ANK-2691-00-00 MOD END
	
		rc=$?
		if [ $rc -ne 0 ]
		then
		    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " BSORTEX OUTF Error($SVC sort:rc=$rc) "
		    echo $JOBNAME " BSORTEX OUTF Error($SVC sort:rc=$rc) "
		    exit ${G_RTN_ERROR}
		fi
	fi
	
	#一時ファイルを削除する
	rm -f ${OUTPUT_FILE_TMP}
	rc=$?
	if [ $rc -ne 0 ]
	then
	    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " RM3 Error($SVC rm:rc=$rc) "
	    echo $JOBNAME " RM3 Error($SVC rm:rc=$rc) "
	    exit ${G_RTN_ERROR}
	fi

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

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

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

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

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

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

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

# v24.00.00 ANK-2691-00-00 ADD STA
	rm -f ${OUTPUT_FILE_TMPB}
	rc=$?
	if [ $rc -ne 0 ]
	then
	    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " RM B Error($SVC rm:rc=$rc) "
	    echo $JOBNAME " RM B Error($SVC rm:rc=$rc) "
	    exit ${G_RTN_ERROR}
	fi

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

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

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

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

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

	rm -f ${AC_CM_0107_DEF_WK_01}
	rc=$?
	if [ $rc -ne 0 ]
	then
	    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " RM DEF0101WK1 Error($SVC rm:rc=$rc) "
	    echo $JOBNAME " RM DEF0101WK1 Error($SVC rm:rc=$rc) "
	    exit ${G_RTN_ERROR}
	fi
# v24.00.00 ANK-2691-00-00 ADD END

#1日目に作成、消さない
#	rm -f ${OUTPUT_FILE_TMP_FSTDY}
#	rc=$?
#	if [ $rc -ne 0 ]
#	then
#	    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " RMFSTDY Error($SVC rm:rc=$rc) "
#	    echo $JOBNAME " RMFSTDY Error($SVC rm:rc=$rc) "
#	    exit ${G_RTN_ERROR}
#	fi
else
	echo "FILE COPY ${INPUTFILE} -> ${OUTFILE}"
	if [ -f ${INPUTFILE} ]; then
		cp ${INPUTFILE} ${OUTFILE}
		rc=$?
		if [ $rc -ne 0 ]
		then
		    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME "COPY Error($SVC sort:rc=$rc) "
		    echo $JOBNAME "COPY Error($SVC sort:rc=$rc) "
		    exit ${G_RTN_ERROR}
		fi
	else
		echo $JOBNAME "INPUT FILE ERROR ${INPUTFILE}"
		exit ${G_RTN_ERROR}
	fi
fi


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

exit ${G_RTN_NORMAL}
