#!/bin/bash
##############################################################
# システム名    ：eo顧客基幹システム
#
# サブシステム名：請求収納
#
# シェル名      ：法人収納機関別入金情報作成
#
# 機能          ：法人コンビニ入金変換データ、法人窓口入金変換データを以下の順で項目の再編成を行い、マージを行う。
#
#１．請求年月
#２．入金経路コード
#３．収納機関コード
#４．法人コンビニ入金変換データ⇒コンビニエンスストアコード＋（空白４バイト）
#　　法人窓口入金変換データ⇒窓口金融機関コード＋窓口金融機関支店コード＋（空白３バイト）
#５．法人コンビニ入金変換データ⇒コンビニ支払予定年月日
#　　法人窓口入金変換データ⇒収納年月日
#６．法人コンビニ入金変換データ⇒収納年月日
#　　法人窓口入金変換データ⇒（空白８バイト）
#７．法人コンビニ入金変換データ.コンビニデータ種別："02"⇒"1"
#　　法人コンビニ入金変換データ.コンビニデータ種別："03"⇒"3"
#　　法人窓口入金変換データ⇒コンビニリアル業務区分
#８．窓口金融機関コード
#９．（空）
#１０．窓口金融機関支店コード
#１１～１４．（空）
#１５．コンビニエンスストアコード
#１６．（空）
#１７.コンビニデータ種別
#１８～２２．（空）
#２３．収納年月日
#２４．法人コンビニ入金変換データ．コンビニデータ種別："02"⇒コンビニ確報通知年月日
#　　　法人コンビニ入金変換データ．コンビニデータ種別："03"⇒コンビニ速報取消通知年月日
#　　　法人窓口入金変換データ⇒領収年月日
#２５．（空）
#２６．"1"
#２７．入金額
#２８．コンビニ支払予定年月日
#２９．請求契約番号
#３０．（空）
#３１．請求番号
#３２．（空）
#３３．"0"
#
#
# コマンド形式  ：EO6100120J0.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
# v4.00           2012/12/12  FJ）加島     【内部管理番号-0000272】CHIFM043011.csv,CHIFM043015.csvを運用日付きファイル名にリネームするよう修正。
# v4.01           2012/03/28  FJ) 小柴     【】ファイルの編集仕様を変更
# v4.02           2012/03/30  FJ) 小柴     【】コンビニ速報のデータは対象外とするように修正。
##############################################################

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

#
#---ツール格納場所
#
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

#---システム日時取得
. EOK010410J0.sh "2"
SYSTIME=${RSLT_OPEDATE}`echo ${RSLT_SYSDATE} | cut -c 9-`

FILE_OUT_TMP1=${MID_DIR_CH}/CHIFM043011_tmp1_EO6100120J0.csv
FILE_OUT_TMP2=${MID_DIR_CH}/CHIFM043011_tmp2_EO6100120J0.csv
FILE_OUT_TMP3=${MID_DIR_CH}/CHIFM043011_tmp3_EO6100120J0.csv
FILE_OUT_TMP4=${MID_DIR_CH}/CHIFM043011_tmp4_EO6100120J0.csv
FILE_OUT_TMP5=${MID_DIR_CH}/CHIFM043011_tmp5_EO6100120J0.csv
##############################################################
# 業務処理
##############################################################
sh ${G_TOOLSH}/EOK010210J0.sh CS00025I $JOBNAME

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

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

#
#法人コンビニ入金変換データを整形する
#カンマ区切り
#その後、一時ファイル１に出力
#
if [ ! -f ${MID_DIR_CH}/CHIFM043011.csv ]
then
    cat /dev/null > ${MID_DIR_CH}/CHIFM043011.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
fi

# コンビニデータ種別が02、03のデータのみ抽出を行う。（01=コンビニ速報データは対象外）
awk -F, '{if ($20 == "02") printf("%s,%s,%s,%s    ,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s\n", $2,$5,$6,$14,$25,$7,$16,"","","","","","","",$14,"",$20,"","","","","",$7,$23,"","1",$8,$25,$1,"",$3,"","0"); else if ($20 == "03") printf("%s,%s,%s,%s    ,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s\n", $2,$5,$6,$14,$25,$7,$16,"","","","","","","",$14,"",$20,"","","","","",$7,$24,"","1",$8,$25,$1,"",$3,"","0")}' ${MID_DIR_CH}/CHIFM043011.csv > ${FILE_OUT_TMP1}


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




#--コンビニデータ種別が「０２」のとき、処理区分に「１」を入れて一時ファイル３に出力する。
bsortex -sort -record recform=txtflt fldsep=, \
	-input reclen=200 file=${FILE_OUT_TMP1} \
	-output file=${FILE_OUT_TMP3} case="16.2asc.eq.'02'" \
	reconst=0.99,1.99,2.99,3.99,4.99,5.99,"'1'.1asc",7.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


#--コンビニデータ種別が「０３」のとき、処理区分に「３」を入れて一時ファイル４に出力する。
bsortex -sort -record recform=txtflt fldsep=, \
	-input reclen=200 file=${FILE_OUT_TMP1} \
	-output file=${FILE_OUT_TMP4} case="16.2asc.eq.'03'" \
	reconst=0.99,1.99,2.99,3.99,4.99,5.99,"'3'.1asc",7.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

#
#法人窓口入金変換データを整形する
#カンマ区切り
#その後、一時ファイル２に出力する
#

if [ ! -f ${MID_DIR_CH}/CHIFM043015.csv ]
then
    cat /dev/null > ${MID_DIR_CH}/CHIFM043015.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
fi

awk -F, '{printf "%s,%s,%s,%s%s   ,%s,        ,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s\n", $2,$5,$6,$12,$13,$7,$16,$12,"",$13,"","","","","","","","","","","","",$7,$9,"","1",$8,"",$1,"",$3,"","0"}' ${MID_DIR_CH}/CHIFM043015.csv > ${FILE_OUT_TMP2}

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


#--処理区分に「１」を入れて一時ファイル５に出力する。
bsortex -sort -record recform=txtflt fldsep=, \
	-input reclen=200 file=${FILE_OUT_TMP2} \
	-output file=${FILE_OUT_TMP5} \
	reconst=0.99,1.99,2.99,3.99,4.99,5.99,"'1'.1asc",7.END

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


#
#マージをする
#
cat ${FILE_OUT_TMP3} ${FILE_OUT_TMP4} ${FILE_OUT_TMP5} > ${MID_DIR_CH}/CHIFM105002.csv

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

#
#一時ファイル１を削除する
#
if [ -f ${FILE_OUT_TMP1} ]
then
	rm ${FILE_OUT_TMP1}
	rc=$?
	if [ $rc -ne 0 ]
	then
	    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " RM1 Error($SVC sort:rc=$rc) "
	    echo $JOBNAME " RM1 Error($SVC sort:rc=$rc) "
	    exit ${G_RTN_ERROR}

fi
	echo "rm FILE_OUT_TMP1 OK"
fi

#
#一時ファイル２を削除する
#
if [ -f ${FILE_OUT_TMP2} ]
then
	rm ${FILE_OUT_TMP2}
	rc=$?
	if [ $rc -ne 0 ]
	then
	    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " RM2 Error($SVC sort:rc=$rc) "
	    echo $JOBNAME " RM2 Error($SVC sort:rc=$rc) "
	    exit ${G_RTN_ERROR}
	fi
	echo "rm FILE_OUT_TMP2 OK"
fi


#
#一時ファイル３を削除する
#
if [ -f ${FILE_OUT_TMP3} ]
then
	rm ${FILE_OUT_TMP3}
	rc=$?
	if [ $rc -ne 0 ]
	then
	    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " RM3 Error($SVC sort:rc=$rc) "
	    echo $JOBNAME " RM3 Error($SVC sort:rc=$rc) "
	    exit ${G_RTN_ERROR}
	fi
	echo "rm FILE_OUT_TMP3 OK"
fi

#
#一時ファイル４を削除する
#
if [ -f ${FILE_OUT_TMP4} ]
then
	rm ${FILE_OUT_TMP4}
	rc=$?
	if [ $rc -ne 0 ]
	then
	    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " RM4 Error($SVC sort:rc=$rc) "
	    echo $JOBNAME " RM4 Error($SVC sort:rc=$rc) "
	    exit ${G_RTN_ERROR}
	fi
	echo "rm FILE_OUT_TMP4 OK"
fi

#
#一時ファイル５を削除する
#
if [ -f ${FILE_OUT_TMP5} ]
then
	rm ${FILE_OUT_TMP5}
	rc=$?
	if [ $rc -ne 0 ]
	then
	    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " RM5 Error($SVC sort:rc=$rc) "
	    echo $JOBNAME " RM5 Error($SVC sort:rc=$rc) "
	    exit ${G_RTN_ERROR}
	fi
	echo "rm FILE_OUT_TMP5 OK"
fi


mv -f  ${MID_DIR_CH}/CHIFM043011.csv ${MID_DIR_CH}/CHIFM043011_${SYSTIME}.csv
rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " RM step3 Error($SVC rm:rc=$rc) "
    echo $JOBNAME " RM step7 Error($SVC rm:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

mv -f  ${MID_DIR_CH}/CHIFM043015.csv ${MID_DIR_CH}/CHIFM043015_${SYSTIME}.csv
rc=$?
if [ $rc -ne 0 ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " RM step3 Error($SVC rm:rc=$rc) "
    echo $JOBNAME " RM step8 Error($SVC rm:rc=$rc) "
    exit ${G_RTN_ERROR}
fi

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

exit ${G_RTN_NORMAL}
