本文整理汇总了PHP中Transaction::getDb方法的典型用法代码示例。如果您正苦于以下问题:PHP Transaction::getDb方法的具体用法?PHP Transaction::getDb怎么用?PHP Transaction::getDb使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Transaction
的用法示例。
在下文中一共展示了Transaction::getDb方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: addTransaction
public static function addTransaction($invoiceId, $customer, $amount, $currency_code, $description = '')
{
if (is_numeric($customer)) {
/// customer ID is passed. Need to get customer object
$customer = CustomerDAO::getInstance()->getCustomer($customer);
}
/// Now need to convert transaction amount to customer base currency
$currency = Transaction::$instance->getRegistry()->get('currency');
$amountInCustomerCurrency = (double) $currency->convert($amount, $currency_code, $customer['base_currency_code']);
$newCustomerBalance = $customer['balance'] - $amountInCustomerCurrency;
Transaction::$instance->getDb()->query("\r\n INSERT INTO customer_transaction\r\n SET\r\n customer_id = " . (int) $customer['customer_id'] . ",\r\n invoice_id = " . (int) $invoiceId . ",\r\n description = '" . Transaction::$instance->getDb()->escape($description) . "',\r\n amount = {$amountInCustomerCurrency},\r\n currency_code = '" . $customer['base_currency_code'] . "',\r\n date_added = NOW(),\r\n balance = {$newCustomerBalance},\r\n balance_currency = '" . Transaction::$instance->getDb()->escape($customer['base_currency_code']) . "'\r\n ");
//$transactionId = Transaction::$instance->getDb()->getLastId();
/// Update customer's balance
Transaction::$instance->getDb()->query("\r\n UPDATE customer\r\n SET\r\n balance = {$newCustomerBalance}\r\n WHERE customer_id = " . $customer['customer_id']);
Transaction::$instance->getCache()->delete('customer.' . $customer['customer_id']);
if (Transaction::$instance->user->isLogged()) {
Audit::getInstance(Transaction::$instance->getRegistry())->addAdminEntry(Transaction::$instance->user->getId(), AUDIT_ADMIN_TRANSACTION_ADD, $_REQUEST);
} elseif (Transaction::$instance->customer->isLogged()) {
Audit::getInstance(Transaction::$instance->getRegistry())->addUserEntry(Transaction::$instance->customer->getId(), AUDIT_ADMIN_TRANSACTION_ADD, $_REQUEST);
}
}
示例2: performDatabaseUpdate
/**
* Applies specified update to system
*
* @param int $pn_version Version number of update to apply
* @param array $pa_options Array of options. Supported options are:
* cleanCache = Remove all application caches after database update if true. Default is false.
* @return bool
*/
static function performDatabaseUpdate($pn_version, $pa_options = null)
{
if (($pn_version = (int) $pn_version) <= 0) {
return null;
}
$va_messages = array();
$t = new Transaction();
$o_db = $t->getDb();
if (!file_exists(__CA_BASE_DIR__ . "/support/sql/migrations/{$pn_version}.sql")) {
return null;
}
$o_handle = fopen(__CA_BASE_DIR__ . "/support/sql/migrations/{$pn_version}.sql", "r");
$vn_query_total_nb = 0;
$vs_query = '';
while (!feof($o_handle)) {
$vs_line = fgets($o_handle, 8128);
// $vs_query gets a concat of lines while a ; is not met
$vs_query .= $vs_line;
// Reading 1 character before the EOL
$vs_before_eol = substr(rtrim($vs_line), -1);
if ($vs_before_eol == ';') {
//If the line ends with a ; then we will take all what's before and execute it
//Counts the number of requests contained in the SQL file
$vn_query_total_nb++;
//Launching the query
$o_db->query($vs_query);
if ($o_db->numErrors() > 0) {
// temp array to catch the errors
$va_error_array_for_printing = $o_db->getErrors();
$va_messages['error_' . $pn_version] = _t("Error applying database migration %1: %2; error was at query %3; query was %4", $pn_version, join('; ', $va_error_array_for_printing), $vn_query_total_nb, $vs_query);
$o_db->clearErrors();
$t->rollback();
return $va_messages;
}
// Reset variable
$vs_query = '';
}
$t->commit();
}
if (isset($pa_options['cleanCache']) && $pa_options['cleanCache']) {
// Clean cache
caRemoveDirectory(__CA_APP_DIR__ . '/tmp', false);
}
return $va_messages;
}
示例3: update
public function update($pa_options = null)
{
$o_trans = new Transaction();
$o_db = $o_trans->getDb();
$this->setTransaction($o_trans);
list($vs_target_table, $vs_target_key) = $this->_getTarget();
$vs_rel_table = $this->tableName();
$t_target = $this->getAppDatamodel()->getInstanceByTableName($vs_target_table);
$vn_target_id = $this->get($vs_target_key);
if (!$t_target->load($vn_target_id)) {
// invalid target
$this->postError(720, _t("Related %1 does not exist", $t_target->getProperty('NAME_SINGULAR')), "BaseRepresentationRelationship->update()");
return false;
}
if ($this->changed('is_primary')) {
if (!$this->get('is_primary')) {
// force is_primary to be set if no other represention is so marked
// is there another rep for this object marked is_primary?
$qr_res = $o_db->query("\n\t\t\t\t\t\tSELECT oxor.relation_id\n\t\t\t\t\t\tFROM {$vs_rel_table} oxor\n\t\t\t\t\t\tINNER JOIN ca_object_representations AS o_r ON o_r.representation_id = oxor.representation_id\n\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\toxor.{$vs_target_key} = ? AND oxor.is_primary = 1 AND o_r.deleted = 0 AND oxor.relation_id <> ?\n\t\t\t\t\t", (int) $vn_target_id, (int) $this->getPrimaryKey());
if (!$qr_res->nextRow()) {
// nope - force one to be primary
//$this->set('is_primary', 1);
$qr_res = $o_db->query("\n\t\t\t\t\t\t\tSELECT oxor.relation_id\n\t\t\t\t\t\t\tFROM {$vs_rel_table} oxor\n\t\t\t\t\t\t\tINNER JOIN ca_object_representations AS o_r ON o_r.representation_id = oxor.representation_id\n\t\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\t\toxor.{$vs_target_key} = ? AND oxor.is_primary = 0 AND o_r.deleted = 0 AND oxor.relation_id <> ?\n\t\t\t\t\t\t\tORDER BY oxor.rank, oxor.relation_id\n\t\t\t\t\t\t", (int) $vn_target_id, (int) $this->getPrimaryKey());
if ($qr_res->nextRow()) {
$o_db->query("\n\t\t\t\t\t\t\t\tUPDATE {$vs_rel_table}\n\t\t\t\t\t\t\t\tSET is_primary = 1\n\t\t\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\t\t\trelation_id = ?\n\t\t\t\t\t\t\t", (int) $qr_res->get('relation_id'));
if (!($vb_rc = parent::update($pa_options))) {
$o_trans->rollbackTransaction();
} else {
$o_trans->commitTransaction();
}
}
}
return parent::update($pa_options);
} else {
// unset other reps is_primary field
$o_db->query("\n\t\t\t\t\t\tUPDATE {$vs_rel_table}\n\t\t\t\t\t\tSET is_primary = 0\n\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\t{$vs_target_key} = ?\n\t\t\t\t\t", (int) $vn_target_id);
if (!($vb_rc = parent::update($pa_options))) {
$o_trans->rollbackTransaction();
} else {
$o_trans->commitTransaction();
}
return $vb_rc;
}
} else {
$vb_rc = parent::update($pa_options);
$o_trans->commitTransaction();
return $vb_rc;
}
}