本文整理汇总了PHP中OrderDetail::update方法的典型用法代码示例。如果您正苦于以下问题:PHP OrderDetail::update方法的具体用法?PHP OrderDetail::update怎么用?PHP OrderDetail::update使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类OrderDetail
的用法示例。
在下文中一共展示了OrderDetail::update方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: _deleteProduct
/**
* DOES delete the product
*
* @param OrderDetail $order_detail
* @param int $quantity
* @return bool
* @throws PrestaShopException
*/
protected function _deleteProduct($order_detail, $quantity)
{
$product_price_tax_excl = $order_detail->unit_price_tax_excl * $quantity;
$product_price_tax_incl = $order_detail->unit_price_tax_incl * $quantity;
/* Update cart */
$cart = new Cart($this->id_cart);
$cart->updateQty($quantity, $order_detail->product_id, $order_detail->product_attribute_id, false, 'down');
// customization are deleted in deleteCustomization
$cart->update();
/* Update order */
$shipping_diff_tax_incl = $this->total_shipping_tax_incl - $cart->getPackageShippingCost($this->id_carrier, true, null, $this->getCartProducts());
$shipping_diff_tax_excl = $this->total_shipping_tax_excl - $cart->getPackageShippingCost($this->id_carrier, false, null, $this->getCartProducts());
$this->total_shipping -= $shipping_diff_tax_incl;
$this->total_shipping_tax_excl -= $shipping_diff_tax_excl;
$this->total_shipping_tax_incl -= $shipping_diff_tax_incl;
$this->total_products -= $product_price_tax_excl;
$this->total_products_wt -= $product_price_tax_incl;
$this->total_paid -= $product_price_tax_incl + $shipping_diff_tax_incl;
$this->total_paid_tax_incl -= $product_price_tax_incl + $shipping_diff_tax_incl;
$this->total_paid_tax_excl -= $product_price_tax_excl + $shipping_diff_tax_excl;
$this->total_paid_real -= $product_price_tax_incl + $shipping_diff_tax_incl;
$fields = array('total_shipping', 'total_shipping_tax_excl', 'total_shipping_tax_incl', 'total_products', 'total_products_wt', 'total_paid', 'total_paid_tax_incl', 'total_paid_tax_excl', 'total_paid_real');
/* Prevent from floating precision issues */
foreach ($fields as $field) {
if ($this->{$field} < 0) {
$this->{$field} = 0;
}
}
/* Prevent from floating precision issues */
foreach ($fields as $field) {
$this->{$field} = number_format($this->{$field}, _PS_PRICE_COMPUTE_PRECISION_, '.', '');
}
/* Update order detail */
$order_detail->product_quantity -= (int) $quantity;
if ($order_detail->product_quantity == 0) {
if (!$order_detail->delete()) {
return false;
}
if (count($this->getProductsDetail()) == 0) {
$history = new OrderHistory();
$history->id_order = (int) $this->id;
$history->changeIdOrderState(Configuration::get('PS_OS_CANCELED'), $this);
if (!$history->addWithemail()) {
return false;
}
}
return $this->update();
} else {
$order_detail->total_price_tax_incl -= $product_price_tax_incl;
$order_detail->total_price_tax_excl -= $product_price_tax_excl;
$order_detail->total_shipping_price_tax_incl -= $shipping_diff_tax_incl;
$order_detail->total_shipping_price_tax_excl -= $shipping_diff_tax_excl;
}
return $order_detail->update() && $this->update();
}
示例2: postProcess
/**
* @global object $cookie Employee cookie necessary to keep trace of his/her actions
*/
public function postProcess()
{
global $currentIndex, $cookie;
/* Update shipping number */
if (Tools::isSubmit('submitShippingNumber') and $id_order = (int) Tools::getValue('id_order') and Validate::isLoadedObject($order = new Order($id_order))) {
if ($this->tabAccess['edit'] === '1') {
if (!$order->hasBeenShipped()) {
die(Tools::displayError('The shipping number can only be set once the order has been shipped.'));
}
$_GET['view' . $this->table] = true;
$shipping_number = pSQL(Tools::getValue('shipping_number'));
$order->shipping_number = $shipping_number;
$order->update();
if ($shipping_number) {
global $_LANGMAIL;
$customer = new Customer((int) $order->id_customer);
$carrier = new Carrier((int) $order->id_carrier);
if (!Validate::isLoadedObject($customer) or !Validate::isLoadedObject($carrier)) {
die(Tools::displayError());
}
$templateVars = array('{order_amount}' => Tools::displayPrice($order->total_paid, $currency, false), '{carrier_name}' => $carrier->name, '{tracking_number}' => $order->shipping_number, '{followup}' => str_replace('@', $order->shipping_number, $carrier->url), '{firstname}' => $customer->firstname, '{lastname}' => $customer->lastname, '{id_order}' => (int) $order->id);
if (strpos($order->payment, 'COD') === false) {
@Mail::Send((int) $order->id_lang, 'in_transit', Mail::l('Your order #' . $order->id . ' with IndusDiva.com has been shipped'), $templateVars, $customer->email, $customer->firstname . ' ' . $customer->lastname);
} else {
@Mail::Send((int) $order->id_lang, 'in_transit_cod', Mail::l('Your order #' . $order->id . ' with IndusDiva.com has been shipped'), $templateVars, $customer->email, $customer->firstname . ' ' . $customer->lastname);
}
//Send SMS
$delivery = new Address((int) $order->id_address_delivery);
if (strpos($order->payment, 'COD') === false) {
$smsText = 'Dear customer, your order #' . $order->id . ' at IndusDiva.com has been shipped via ' . $carrier->name . '. The airway bill no is ' . $order->shipping_number . '. www.indusdiva.com';
} else {
$smsText = 'Dear customer, your order #' . $order->id . ' at IndusDiva.com has been shipped. Carrier: ' . $carrier->name . ', AWB No. : ' . $order->shipping_number . ', Amount payable:' . Tools::displayPrice($order->total_paid, $currency, false) . '. www.indusdiva.com';
}
Tools::sendSMS($delivery->phone_mobile, $smsText);
}
} else {
$this->_errors[] = Tools::displayError('You do not have permission to edit here.');
}
} elseif (Tools::isSubmit('submitExpectedShippingDate') and $id_order = (int) Tools::getValue('id_order') and Validate::isLoadedObject($order = new Order($id_order))) {
$dateshipping = new DateTime(Tools::getValue('expected_shipping_date'));
$order->expected_shipping_date = pSQL($dateshipping->format('Y-m-d H:i:s'));
$order->update();
$order = new Order($id_order);
} elseif (Tools::isSubmit('submitCarrier') and $id_order = (int) Tools::getValue('id_order') and Validate::isLoadedObject($order = new Order($id_order))) {
$order->shipping_number = '';
$order->id_carrier = (int) Tools::getValue('id_carrier');
$order->update();
$order = new Order($id_order);
} elseif (Tools::isSubmit('submitState') and $id_order = (int) Tools::getValue('id_order') and Validate::isLoadedObject($order = new Order($id_order))) {
if ($this->tabAccess['edit'] === '1') {
$_GET['view' . $this->table] = true;
if (!($newOrderStatusId = (int) Tools::getValue('id_order_state'))) {
$this->_errors[] = Tools::displayError('Invalid new order status');
} else {
if ($newOrderStatusId == _PS_OS_DELIVERED_ && strpos($order->payment, 'COD')) {
$paymentHistory = new OrderPaymentHistory();
$paymentHistory->id_order = (int) $id_order;
$paymentHistory->id_employee = (int) $cookie->id_employee;
$paymentHistory->changeIdOrderPaymentState(_PS_PS_PAYMENT_WITH_CARRIER_, (int) $id_order);
$paymentHistory->addState();
}
$history = new OrderHistory();
$history->id_order = (int) $id_order;
$history->id_employee = (int) $cookie->id_employee;
$history->changeIdOrderState((int) $newOrderStatusId, (int) $id_order);
$order = new Order((int) $order->id);
$carrier = new Carrier((int) $order->id_carrier, (int) $order->id_lang);
$templateVars = array();
if ($history->id_order_state == _PS_OS_SHIPPING_ and $order->shipping_number) {
$templateVars = array('{followup}' => str_replace('@', $order->shipping_number, $carrier->url));
} elseif ($history->id_order_state == _PS_OS_CHEQUE_) {
$templateVars = array('{cheque_name}' => Configuration::get('CHEQUE_NAME') ? Configuration::get('CHEQUE_NAME') : '', '{cheque_address_html}' => Configuration::get('CHEQUE_ADDRESS') ? nl2br(Configuration::get('CHEQUE_ADDRESS')) : '');
} elseif ($history->id_order_state == _PS_OS_BANKWIRE_) {
$templateVars = array('{bankwire_owner}' => Configuration::get('BANK_WIRE_OWNER') ? Configuration::get('BANK_WIRE_OWNER') : '', '{bankwire_details}' => Configuration::get('BANK_WIRE_DETAILS') ? nl2br(Configuration::get('BANK_WIRE_DETAILS')) : '', '{bankwire_address}' => Configuration::get('BANK_WIRE_ADDRESS') ? nl2br(Configuration::get('BANK_WIRE_ADDRESS')) : '');
}
if ($history->id_order_state == _PS_OS_CANCELED_) {
$this->cancelOrder($id_order);
}
if ($history->addWithemail(true, $templateVars)) {
Tools::redirectAdmin($currentIndex . '&id_order=' . $id_order . '&vieworder' . '&token=' . $this->token);
}
$this->_errors[] = Tools::displayError('An error occurred while changing the status or was unable to send e-mail to the customer.');
}
} else {
$this->_errors[] = Tools::displayError('You do not have permission to edit here.');
}
} elseif (isset($_POST['submitMessage'])) {
$_GET['view' . $this->table] = true;
if ($this->tabAccess['edit'] === '1') {
if (!($id_order = (int) Tools::getValue('id_order')) or !($id_customer = (int) Tools::getValue('id_customer'))) {
$this->_errors[] = Tools::displayError('An error occurred before sending message');
} elseif (!Tools::getValue('message')) {
$this->_errors[] = Tools::displayError('Message cannot be blank');
} else {
/* Get message rules and and check fields validity */
$rules = call_user_func(array('Message', 'getValidationRules'), 'Message');
foreach ($rules['required'] as $field) {
//.........这里部分代码省略.........