#!/bin/bash
##############################################################
# システム名    ：eo顧客基幹システム
#
# サブシステム名：請求収納
#
# シェル名      ：eo電気単独請求抽出
#
# 機能          ：5. eo電気単独請求情報マージ・ソート
#
#「mineo問合せ先印刷対象請求先情報」、「eo電気問合せ先印刷対象請求先情報」、「マンションオーナー問合せ先印刷対象請求先情報」、
#「NTT卸問合せ先印刷対象請求先情報」をマージ・ソートする。
#
# コマンド形式  ：EO62A0330J0.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
# v71.0.0         2024/08/06   FJ) 山岡    【ANK-4595-00-00】請求書の問い合わせ先追加対応
# v73.00.00	      2024/11/11   FJ) 張      【ANK-4427-00-00】NTT卸対応：STEP1
##############################################################

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

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

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

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

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

#
#---OPD
#
OPD=$1

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

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

# 入力ファイル
IN_FILE_1=${MID_DIR_CH}/CHIFM479001.csv
IN_FILE_2=${MID_DIR_CH}/CHIFM478001.csv
IN_FILE_3=${MID_DIR_CH}/CHIFM474001.csv
# ANK-4427-00-00 ADD START
IN_FILE_4=${MID_DIR_CH}/CHIFM487001.csv
# ANK-4427-00-00 ADD END
# 出力ファイル
OUTFILE_ALL=${MID_DIR_CH}/CHIFE079001_ALL.csv
OUT_FILE_SORT=${MID_DIR_CH}/CHIFE079001_SORT.csv
OUT_FILE=${GAIBU_SEND_DIR_CH}/CHIFE079/CHIFE079001.csv

# ファイルの初期化
cat /dev/null > $OUT_FILE

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

cat /dev/null > $OUT_FILE_SORT

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

cat /dev/null > $OUTFILE_ALL

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

# マージ
cat ${IN_FILE_1} > ${OUTFILE_ALL}
cat ${IN_FILE_2} >> ${OUTFILE_ALL}
cat ${IN_FILE_3} >> ${OUTFILE_ALL}
# ANK-4427-00-00 ADD START
cat ${IN_FILE_4} >> ${OUTFILE_ALL}
# ANK-4427-00-00 ADD END

#
bsortex \
	-copy -record recform=txtcsv  \
	-input file=${OUTFILE_ALL} reclen=510 \
	-output file=${OUT_FILE_SORT} reconst="0.10,1.1" \

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

#ファイルを１行ずつ読み込み通番をを付与する
#最終行にエンドレコードを設定する
i=0

while read readData
do
#通番を採番して6桁までゼロパディング
	$((i++))
	# 6桁までゼロパディング
	CNT=`printf "%06d" ${i}`
    AMNT=$(echo $readData | sed -e 's/\r//g')
	echo ${AMNT}","${CNT}"             "
done < ${OUT_FILE_SORT} >  ${OUT_FILE}


#データ件数が0件の場合
#通番6桁までゼロパディング

	CNT=`printf "%06d" ${i}`
	echo ${AMNT}","${CNT}"             "


# エンドレコードを設定する
echo "          ,9,"${CNT}"             " >> ${OUT_FILE}

#改行コード変換　LF⇒CRLF
sed -i 's/$/\r/g' ${OUT_FILE}

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


# 不要ファイル初期化
rm -f ${IN_FILE_1}
rm -f ${IN_FILE_2}
rm -f ${IN_FILE_3}
# ANK-4427-00-00 ADD START
rm -f ${IN_FILE_4}
# ANK-4427-00-00 ADD END
rm -f ${OUTFILE_ALL}
rm -f ${OUT_FILE_SORT}

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

exit $exit_rc
