10.April 2026

This commit is contained in:
Kevin Adametz 2026-04-10 17:15:27 +02:00
parent a00c42e770
commit f58c709945
208 changed files with 19280 additions and 2914 deletions

View file

@ -14,6 +14,7 @@ use App\Services\AboHelper;
use App\Services\MyLog;
use App\Services\OrderPaymentService;
use App\Services\Payment;
use App\Services\ProductOrderContext;
use App\Services\Shop;
use App\Services\UserService;
use App\Services\Util;
@ -182,6 +183,16 @@ class OrderController extends Controller
$delivery_id = $shopping_user->id;
}
$isAbo = str_contains($for, 'abo');
$previousFor = session('user_order_flow_for');
if ($previousFor !== null && $previousFor !== $for) {
$previousAbo = str_contains($previousFor, 'abo');
if (ProductOrderContext::allowedShowOnIds($previousAbo, $previousFor) !== ProductOrderContext::allowedShowOnIds($isAbo, $for)) {
Yard::instance('shopping')->destroy();
}
}
session(['user_order_flow_for' => $for]);
if ($for === 'ot-customer' || $for === 'abo-ot-customer') {
UserService::initCustomerYard($shopping_user, $for);
} else {
@ -262,7 +273,7 @@ class OrderController extends Controller
// Prepare common data
$data['is_from'] = 'user_order';
$data['is_for'] = $for;
$data['is_abo'] = $data['is_abo'] ?? 0;
$data['is_abo'] = str_contains($for, 'abo');
$data['abo_interval'] = $data['abo_interval'] ?? 0;
$data['shopping_user_id'] = $id;
$data['user_price_infos'] = Yard::instance('shopping')->getUserPriceInfos();
@ -406,6 +417,17 @@ class OrderController extends Controller
throw new \Exception(__('msg.shipping_country_was_not_correctly'));
}
$isAbo = str_contains($data['shipping_is_for'], 'abo');
foreach (Yard::instance('shopping')->content() as $row) {
$product = Product::find($row->id);
if (! $product) {
continue;
}
if (! ProductOrderContext::isProductAllowedInContext($product, $isAbo, $data['shipping_is_for'])) {
throw new \Exception(__('msg.cart_product_not_allowed_for_order_type'));
}
}
if ($data['shipping_is_for'] !== 'ot-customer') {
if (Yard::instance('shopping')->shipping_free) {
$identifier = 'error-'.time().mt_rand(1000000, 9999999);
@ -748,6 +770,15 @@ class OrderController extends Controller
return response()->json(['response' => false, 'message' => 'Product not found']);
}
$isAbo = str_contains($is_for, 'abo');
$qty = isset($data['qty']) ? (int) $data['qty'] : 0;
if ($qty > 0 && ! ProductOrderContext::isProductAllowedInContext($product, $isAbo, $is_for)) {
return response()->json([
'response' => false,
'message' => __('msg.cart_product_not_allowed_for_order_type'),
]);
}
$image = '';
if ($product->images->count()) {
$image = $product->images->first()->slug;