Ejemplo n.º 1
0
    /**
     * 成果IDから成果明細情報を取得します
     */
    public function &Result_ClientReportResultSeq_getSeikaDetailBySeikaId($code, $seikaId)
    {
        $tables = new CampaignDbTables($code);
        $name_seika_detail = $tables->getTableName_Seika_Detail();
        // DB接続
        $db =& $this->_core->getDB();
        // SQL
        $sql = <<<SQL
select
seika_detail_id,
seika_id,
detail_no,
item_cd,
quantity,
cancel_flg,
item_memo
from
{$name_seika_detail}
where
seika_id = ?
SQL;
        $data = $db->query($sql, array($seikaId));
        return $data;
    }
Ejemplo n.º 2
0
 /**
  * 対象成果明細の親の成果を更新します
  */
 public function Result_SeikaModifyItemPriceQuantityUpload_updateParentSeika($code, $seikaId, $updUserId)
 {
     $db =& $this->_core->getDBForUpdate();
     $tables = new CampaignDbTables($code);
     $name_seika = $tables->getTableName_Seika();
     $name_seika_detail = $tables->getTableName_Seika_Detail();
     // 成果の更新
     // 成果のステータス、承認日は更新しない
     EcSeikaManager::updateSeika($db, $name_seika, $name_seika_detail, $seikaId, $updUserId);
 }
Ejemplo n.º 3
0
    public function updateSeika($promotionId, $clientUserId, $beforeSeika)
    {
        // 基本情報
        $anken =& $this->getAnkenData($promotionId);
        // キャンペーンコード
        $code = $anken['campaign_code'];
        //締め日は承認APIが実行された日とする
        $acceptDate = date("Y-m-d");
        // テーブル名称
        $tables = new CampaignDbTables($code);
        $name = $tables->getTableName_Seika();
        $nameDetail = $tables->getTableName_Seika_Detail();
        // DB接続
        $db =& $this->_core->getDBForUpdate();
        $soapStatus = "100";
        // クライアントID(更新者)
        $clientId = $anken['login_id'];
        // カラム(nm_soap_status)存在するかどうかを判断する
        $sql = <<<SQL
Describe {$name} nm_soap_status
SQL;
        $nm_soap_status = $db->query($sql);
        if (empty($nm_soap_status) == true) {
            $apiException = new InternalExecuteException();
            $this->_log->info("File:[" . basename(__FILE__) . "] Line:[" . __LINE__ . "] Exception:[" . get_class($apiException) . $name . "]");
            throw $apiException;
        }
        $seikaId = $beforeSeika['seika_id'];
        // 成果に紐づく商品情報レコードを全て取得
        $seikaDetailList = $this->getSeikaDetailBySeikaId($db, $nameDetail, $seikaId);
        // 商品情報レコードから成果更新用データを作成
        $seikaData = $this->createSeikaDataForUpdateFromDetails($seikaDetailList);
        $list = array();
        $param = array();
        // ステータス、締め日
        // ステータスの変更が無い場合でも元のステータスが保留以外の場合は、
        // 締め日をAPI実行日で更新する
        if (isset($seikaData['accept_flg'])) {
            $list[] = "accept_flg=?";
            $param[] = $seikaData['accept_flg'];
            if ($acceptDate != null) {
                $list[] = "accept_date=?";
                $param[] = $acceptDate;
            }
        } else {
            if ($beforeSeika['status'] != 'N') {
                if ($acceptDate != null) {
                    $list[] = "accept_date=?";
                    $param[] = $acceptDate;
                }
            }
        }
        // 金額
        $list[] = "amount_price=?";
        $param[] = $seikaData['amount_price'];
        // 単価
        $list[] = "accept_price=?";
        $param[] = $seikaData['accept_price'];
        // 卸値
        $list[] = "accept_oroshi=?";
        $param[] = $seikaData['accept_oroshi'];
        // nm_soap_status
        $list[] = "nm_soap_status=?";
        $param[] = $soapStatus;
        // 更新者はクライアントID
        $list[] = "upd_user_id=?";
        $param[] = $clientId;
        // 項目作成
        $update = implode(', ', $list);
        $sqlLine = __LINE__;
        $sql = <<<SQL
update
{$name}
set
{$update},
upd_time=now()
where
client_user_id=?
and seika_id=?
SQL;
        $param = array_merge($param, array($clientUserId, $seikaId));
        $this->outPutSqlLog(basename(__FILE__), $sqlLine, $sql, $param);
        $db->execute($sql, $param);
    }