#!/bin/bash
##############################################################
# システム名    ：eo顧客基幹システム
#
# サブシステム名：料金管理
#
# シェル名      ：会計用コンテンツ決済預かりIDデータ抽出
#
# 機能          ：１【CNPRC00601_クレジット請求依頼データ作成】から連携される「コンテンツクレジット請求_チェック済」、
#                    「クレカ請求集計チェック結果」において、オーソリOKであるコンテンツ情報のみを会計計上とするため、
#                     オーソリNGであるコンテンツ情報を除外する。
#                 ２「コンテンツクレジット請求オーソリチェック済」を元に卸事業者コードで分類した
#                     「コンテンツクレジット請求オーソリチェック済翌月用」、「コンテンツクレジット請求オーソリチェック済翌月用（卸）」を作成する。
#
# コマンド形式  ：EO30O1305J0.sh
#
# 実行環境      ：.../app/shl
#
# 終了ステータス：ゼロ以外異常
#
# 特記事項      ：特になし
#
# 変更履歴      ：変更日      変更者       障害／仕様変更No.
# v65.00.00     2023/09/25  FJ）渋谷      【ANK-4346-00-09】【eo定期】CCMG再構築対応
##############################################################

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

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

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

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

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


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

OPEDATE_YYYYMM=`echo ${RSLT_OPEDATE} |cut -c 1-6`
echo ${OPEDATE_YYYYMM}

# ファイル定義
#コンテンツクレジット請求_チェック済
INPUT_FLIE1=${SEND_DIR}/ACIFI060001.csv
#クレカ請求集計チェック結果
INPUT_FLIE2=${SEND_DIR}/ACIFI070001.csv
#サービス開始後共通アンロードのお客様カレント
MATCHINFILE=${MID_DIR_CC}/CCIFM019002.csv
DEFFILE=${G_TOOLSH}/util/def/AC_CM_0201.def
#卸先事業者コードの取得一致するやつ用
MATCHDEF_ORSHI=${G_TOOLSH}/util/def/AC_CM_0195.def
MATCHOROSHI=${MID_DIR_AC}/ACIFM364000.csv
MATCHOROSHI1=${MID_DIR_AC}/ACIFM364001_${OPEDATE_YYYYMM}.csv
MATCHOROSHI2=${MID_DIR_AC}/ACIFM364002_${OPEDATE_YYYYMM}.csv
#コンテンツクレジット請求オーソリチェック済
INPUT_FLIE=${MID_DIR_AC}/ACIFM365000.csv


##############################################################
# 業務処理
##############################################################

sh ${G_TOOLSH}/EOK010210J0.sh CS00025I $JOBNAME

##############################################################
# 初期処理
##############################################################
#
#---コンテンツクレジット請求_チェック済ファイルの存在チェックを行う
#
if [ ! -r ${INPUT_FLIE1} ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist($INPUT_FLIE1) "
    echo $JOBNAME " File is nonexist($INPUT_FLIE1) "
    exit ${G_RTN_ERROR}
fi

#---コクレカ請求集計チェック結果ファイルの存在チェックを行う
#
if [ ! -r ${INPUT_FLIE2} ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist($INPUT_FLIE2) "
    echo $JOBNAME " File is nonexist($INPUT_FLIE2) "
    exit ${G_RTN_ERROR}
fi

#---サービス開始後共通アンロードのお客様カレントファイルの存在チェックを行う
#
if [ ! -r ${MATCHINFILE} ]
then
    sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist($MATCHINFILE) "
    echo $JOBNAME " File is nonexist($MATCHINFILE) "
    exit ${G_RTN_ERROR}
fi


#
##############################################################
# 共通関数
##############################################################

#
#--- マッチング処理
#      p1：出力ファイルパス
#      p2：マッチングクエリファイルパス
EXEC_MATCHING()
{
    local _OUTFILE=$1
    local _MATCHING_FILE=$2

    # マッチングクエリファイルの存在チェック
    if [ ! -r ${_MATCHING_FILE} ]
    then
        sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " File is nonexist(${_MATCHING_FILE}) "
        echo $JOBNAME " File is nonexist(${_MATCHING_FILE}) "
        exit ${G_RTN_ERROR}
    fi

    # 出力ファイルの初期化
    cat /dev/null > ${_OUTFILE}

    # マッチング実行
    export ZTLOUTFILE=${_OUTFILE}
    ${G_TOOLSH}/util/bin/ZTLMAT01 ${_MATCHING_FILE}
    rc=$?
    if [ $rc -ne 0 ]
    then
        sh ${G_TOOLSH}/EOK010210J0.sh CS00002E $JOBNAME " matching error($2:rc=$rc) "
        echo $JOBNAME " matching error($2:rc=$rc) "
        exit ${G_RTN_ERROR}
    fi
}


##############################################################
# １．会計計上対象の預かりID判定（マッチング処理）
##############################################################

# ""ダブルクォート付与
sed -i -e 's/,/\",\"/g' ${INPUT_FLIE2}
sed -i -e 's/^/\"/g' ${INPUT_FLIE2}
sed -i -e 's/$/\"/g' ${INPUT_FLIE2}

export INPUT_FLIE1
export INPUT_FLIE2

EXEC_MATCHING ${INPUT_FLIE} ${DEFFILE}


##############################################################
# ２．卸先事業者コードの取得（マッチング処理）
##############################################################

# 入力ファイルとお客様カレントをマッチング
export INPUT_FLIE
export MATCHINFILE

EXEC_MATCHING ${MATCHOROSHI} ${MATCHDEF_ORSHI}

#卸先事業者コードが設定されていない場合
bsortex -sort key=13.10asc -record recform=txtcsv -input file=${MATCHOROSHI} reclen=500 include="0.1asc.lt.'0'" -output file=${MATCHOROSHI1} reconst=1.9,2.12,3.6,4.11,5.12,6.12,7.25,8.18,9.5,10.16,11.5,12.6,13.10,14.7

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


#卸先事業者コードが設定されている場合
bsortex -sort key=13.10asc -record recform=txtcsv -input file=${MATCHOROSHI} reclen=500 include="0.1asc.ge.'0'" -output file=${MATCHOROSHI2} reconst=0.2,1.9,2.12,3.6,4.11,5.12,6.12,7.25,8.18,9.5,10.16,11.5,12.6,13.10,14.7

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

# ""ダブルクォート削除
sed -i -e 's/\"//g' ${MATCHOROSHI1}
sed -i -e 's/\"//g' ${MATCHOROSHI2}


# 一時ファイルを削除
rm -f ${MATCHOROSHI}

exit_rc=$rc

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

exit $exit_rc
