/** * DB更新<br> * 純広テーブルの情報も含まれているため、オーバーライトしています。 */ public function update(&$o) { $db =& $this->_core->getDBForUpdate(); $m = clone $o; $m->removeField('client_junkoukingaku'); $m->removeField('client_junkoutsuki'); $m->removeField('media_junkoukingaku'); $m->removeField('media_junkoutsuki'); // 更新項目数 $count = $m->getChangedCount(); // 更新項目がある場合のみ更新 if ($count != 0) { parent::update($m); } // 純広追加 $ankenId = $o->getField("anken_id")->getValue(); $teikeiMediaId = $o->getField("teikei_media_id")->getValue(); $junkou = new DataJunkou(); $junkou->getField("anken_id")->setValue($ankenId); $junkou->getField("teikei_media_id")->setValue($teikeiMediaId); $data = $o->getArray(); $sql = $junkou->getSelectSQL_Bind_ChangedField(); $param =& $junkou->getChangedFieldValues(); $d =& $db->query($sql, $param); if (count($d) > 0) { // 更新 $junkou->setData($data); parent::update($junkou); } else { // 新規 // 金額0の場合を処理しない $clientKingaku = $data["client_junkoukingaku"]; $mediaKingaku = $data["media_junkoukingaku"]; if (empty($clientKingaku) == true && empty($mediaKingaku) == true) { return; } $junkou->setData($data); parent::insert($junkou); } }
/** * DB追加 */ public function Anken_PriceReserveEdit_insert(&$o) { $db =& $this->_core->getDBForUpdate(); $m = clone $o; $m->removeField('price'); $m->removeField('oroshi'); $m->removeField('extra_price'); $m->removeField('extra_oroshi'); // 更新単価情報 $now = date('Y-m-d H:i:s'); $m->getField('reg_time')->setValue($now); parent::insert($m); $reserveId = mysql_insert_id(); // 単価情報 $price = $o->getField('price')->getValue(); $oroshi = $o->getField('oroshi')->getValue(); $extraPrice = $o->getField('extra_price')->getValue(); $extraOroshi = $o->getField('extra_oroshi')->getValue(); // カスタムテーブル $sql = <<<SQL insert into ald_price_reserve_price (reserve_id, order_id, price, oroshi) values (?, 1, ?, ?) SQL; $param = array($reserveId, $price, $oroshi); $db->execute($sql, $param); $sql = <<<SQL insert into ald_price_reserve_price (reserve_id, order_id, price, oroshi) values (?, 2, ?, ?) SQL; $param = array($reserveId, $extraPrice, $extraOroshi); $db->execute($sql, $param); }
/** * DB追加<br> * 案件原稿テーブルの情報も含まれているため、オーバーライトしています。 * 案件の新規作成画面もバージョン2となるため、この関数は呼ばれない * @see anken_edit_model_v2 */ public function Anken_Edit_insert(&$o) { $db =& $this->_core->getDBForUpdate(); $m = clone $o; // 入稿URLを直書き $nyukoUrl = 'http://www.af-mark.jp/'; $nyukoUrl .= $m->getField('campaign_code')->getValue(); $nyukoUrl .= '/?id=[%media_id%]&uid=[ユーザー識別子]'; $m->getField('nyuko_url')->setValue($nyukoUrl); // 案件情報 parent::insert($m); $ankenId = mysql_insert_id(); // 案件原稿 $g = new DataAnkenGenko(); $g->getField('anken_id')->setValue($ankenId); parent::insert($g); // カスタムテーブル $sql = <<<SQL insert into ald_custom_status (anken_id, campaign_index, campaign_action, admin_version) values (?, 0, 0, 2) SQL; $param = array($ankenId); $db->execute($sql, $param); //-------------------------- // 案件情報テーブル //-------------------------- $a = new DataAnkenInfo(); $a->getField('anken_id')->setValue($ankenId); parent::insert($a); }