Merge pull request #1735 from amitsharma322/gli-3007
Fixed: Incorrect order status update when adding extra products to an order via the back-office
This commit is contained in:
@@ -677,7 +677,7 @@ abstract class PaymentModuleCore extends Module
|
||||
$orderTotals[$order->id]['excl'] -= $used['excl'];
|
||||
$cart_rules[$key]['remaining'] -= $used['excl'];
|
||||
}
|
||||
|
||||
|
||||
$order->addCartRule($cart_rule['obj']->id, $cart_rule['obj']->name, $values, 0, $cart_rule['obj']->free_shipping);
|
||||
|
||||
if ($id_order_state != Configuration::get('PS_OS_ERROR') && $id_order_state != Configuration::get('PS_OS_CANCELED') && !in_array($cart_rule['obj']->id, $cart_rule_used)) {
|
||||
|
||||
@@ -5881,25 +5881,28 @@ class AdminOrdersControllerCore extends AdminController
|
||||
$objOrderHistory->changeIdOrderState($idOrderState, $objOrder, $useExistingPayment);
|
||||
$objOrderHistory->add();
|
||||
} else {
|
||||
// check if new order amount is greater that old order amount and order payment is accepted
|
||||
// then update order status to partial payment accepted
|
||||
$currentOrderState = $objOrder->getCurrentOrderState();
|
||||
$psOsPartialPaymentAccepted = Configuration::get('PS_OS_PARTIAL_PAYMENT_ACCEPTED');
|
||||
if ($currentOrderState->paid == 1 && $currentOrderState->id != $psOsPartialPaymentAccepted) {
|
||||
if ($currentOrderState->paid == 1) {
|
||||
// calculate due amount
|
||||
$dueAmount = $objOrder->total_paid_tax_incl - $objOrder->total_paid_real;
|
||||
if ($dueAmount > 0) {
|
||||
// now change order status to partial payment
|
||||
$psOsPartialPaymentAccepted = Configuration::get('PS_OS_PARTIAL_PAYMENT_ACCEPTED');
|
||||
$psOSPaymentComplete = Configuration::get('PS_OS_PAYMENT_ACCEPTED');
|
||||
|
||||
if ($objOrder->total_paid_real == 0) {
|
||||
$targetState = Configuration::get('PS_OS_AWAITING_PAYMENT');
|
||||
} elseif ($currentOrderState->id != $psOsPartialPaymentAccepted) {
|
||||
$targetState = $psOsPartialPaymentAccepted;
|
||||
}
|
||||
$objOrderHistory = new OrderHistory();
|
||||
$objOrderHistory->id_order = $objOrder->id;
|
||||
$objOrderHistory->id_employee = (int) $this->context->employee->id;
|
||||
|
||||
$useExistingPayment = false;
|
||||
if (!$objOrder->hasInvoice()) {
|
||||
$useExistingPayment = true;
|
||||
}
|
||||
|
||||
$objOrderHistory->changeIdOrderState($psOsPartialPaymentAccepted, $objOrder, $useExistingPayment);
|
||||
$objOrderHistory->changeIdOrderState($targetState, $objOrder, $useExistingPayment);
|
||||
$objOrderHistory->add();
|
||||
}
|
||||
}
|
||||
@@ -7749,6 +7752,7 @@ class AdminOrdersControllerCore extends AdminController
|
||||
$response['hasError'] = true;
|
||||
$response['errors'][] = Tools::displayError('Error while updating service, please try again after refresing the page');
|
||||
} else {
|
||||
$this->sendChangedNotification($objOrder);
|
||||
$response['service_panel']= $servicesBlock = $this->processRenderServicesPanel(
|
||||
$objOrderDetail->id_order,
|
||||
$objHotelBookingDetail->id_product,
|
||||
@@ -8005,6 +8009,8 @@ class AdminOrdersControllerCore extends AdminController
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$this->sendChangedNotification($order);
|
||||
$response['service_panel'] = $this->processRenderServicesPanel(
|
||||
$order->id,
|
||||
$objHotelBookingDetail->id_product,
|
||||
@@ -8287,6 +8293,7 @@ class AdminOrdersControllerCore extends AdminController
|
||||
|
||||
// Save changes of order
|
||||
if ($objOrder->update()) {
|
||||
$this->sendChangedNotification($objOrder);
|
||||
$response['service_panel'] = $this->processRenderServicesPanel(
|
||||
$objOrder->id,
|
||||
$objHotelBookingDetail->id_product,
|
||||
|
||||
Reference in New Issue
Block a user