fix trigger bug

This commit is contained in:
2026-07-22 13:32:26 +03:30
parent 133f4156c6
commit 7d02639917
3 changed files with 78 additions and 3 deletions
@@ -9,6 +9,7 @@ use App\Models\Customer;
use App\Models\Product;
use App\Services\ConditionalOrderService;
use App\Services\ConfigService;
use App\Support\ConditionalOrderValidation;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Symfony\Component\HttpKernel\Exception\UnprocessableEntityHttpException;
@@ -105,7 +106,11 @@ class ConditionalOrderController extends Controller
'is_active' => 'sometimes|boolean',
];
$data = $request->validate($rules);
$data = $request->validate(
$rules,
ConditionalOrderValidation::messages(),
ConditionalOrderValidation::attributes()
);
$productId = (int) ($data['product_id'] ?? $request->input('product_id') ?? 0);
$product = $productId > 0 ? Product::find($productId) : null;
@@ -119,6 +124,18 @@ class ConditionalOrderController extends Controller
}
}
if (! empty($data['expires_at'])) {
try {
$expires = \Illuminate\Support\Carbon::parse($data['expires_at']);
} catch (\Throwable $e) {
throw new UnprocessableEntityHttpException('زمان اعتبار تاریخ معتبری نیست.');
}
if ($expires->lte(now())) {
throw new UnprocessableEntityHttpException('زمان اعتبار باید بعد از الان باشد.');
}
$data['expires_at'] = $expires->format('Y-m-d H:i:s');
}
if ($product && $amount !== null && $amount > 0 && ($number === null || $number <= 0)) {
$unit = (float) ($product->amount ?? 0);
if ($unit > 0 && ! in_array(trim((string) ($product->group_type ?? '')), ['آبشده', 'کاتد مس'], true)