Merge master into fixed price override branch
This commit is contained in:
@@ -1428,13 +1428,16 @@ class orders_o extends db
|
||||
$order_item->product_id->set((int)$product->id); // Set the product ID to the product ID from the wash item
|
||||
$order_item->reference->set('');
|
||||
// Get the product price based on the department
|
||||
$product_price = (int)$product->getDepartmentPrice((int)$this->department_id->value()); // Get the department price for the product
|
||||
$priceResolution = $product->getDepartmentPriceResolution((int)$this->department_id->value());
|
||||
$product_price = (int)$priceResolution['price']; // Get the department price for the product
|
||||
// Get the customers custom price discount percentage
|
||||
$user = $xlvask_usage_log->getUser(); // Get the user from the usage log
|
||||
if (!$user->exists()) {
|
||||
throw new Exception('No user found matching the customer number in the usage log');
|
||||
}
|
||||
$product_price = $user->applyProductCustomerPricing((int)$order_item->product_id->value(), (int)$product_price);
|
||||
if (!products_o::priceResolutionIsCustomMissing($priceResolution)) {
|
||||
$product_price = $user->applyProductCustomerPricing((int)$order_item->product_id->value(), (int)$product_price);
|
||||
}
|
||||
$order_item->notes->set(null); // Set notes for the simulated order item
|
||||
$order_item->price->set((int)$product_price); // Set the price based on the product price and discount percentage
|
||||
$order_item->quantity->set((int)$washItem->Count); // Set the quantity based on the wash item
|
||||
@@ -1501,7 +1504,11 @@ class orders_o extends db
|
||||
if (!$current_user->exists()) {
|
||||
throw new Exception('No current user found');
|
||||
}
|
||||
$price = (int)$product->getDepartmentPrice((int)$this->department_id->value()); // Get the department price for the product
|
||||
$priceResolution = $product->getDepartmentPriceResolution((int)$this->department_id->value());
|
||||
$price = (int)$priceResolution['price']; // Get the department price for the product
|
||||
if (products_o::priceResolutionIsCustomMissing($priceResolution)) {
|
||||
return $price;
|
||||
}
|
||||
return $current_user->applyProductCustomerPricing((int)$product->id, $price);
|
||||
}
|
||||
|
||||
@@ -1584,12 +1591,16 @@ class orders_o extends db
|
||||
$product_id = (int)$item['product_id'];
|
||||
if (!isset($department_price_cache[$product_id])) {
|
||||
$product = (new products_o())->select($product_id);
|
||||
$department_price_cache[$product_id] = (int)$product->getDepartmentPrice($department_id);
|
||||
$department_price_cache[$product_id] = $product->getDepartmentPriceResolution($department_id);
|
||||
}
|
||||
if ($tmp_user === null) {
|
||||
$tmp_user = (new users_o())->getUserByCustomerNumber((int)$this->customer_id->value());
|
||||
}
|
||||
$post_discount = $tmp_user->applyProductCustomerPricing($product_id, (int)$department_price_cache[$product_id], false) * $quantity;
|
||||
$unitPrice = (int)$department_price_cache[$product_id]['price'];
|
||||
if (!products_o::priceResolutionIsCustomMissing($department_price_cache[$product_id])) {
|
||||
$unitPrice = $tmp_user->applyProductCustomerPricing($product_id, $unitPrice, false);
|
||||
}
|
||||
$post_discount = $unitPrice * $quantity;
|
||||
$total += $post_discount;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user