resetPage(); } public function convertToInvoice($id) { \(quotation = Quotation::with("items")->find(\)id); if (!$quotation) { session()->flash("error", "عرض السعر غير موجود."); return; } try { DB::beginTransaction(); $totalCostUsd = 0; $totalSellingUsd = 0; if (\(quotation->items &&\)quotation->items->count() > 0) { foreach (\(quotation->items as\)item) { \(cost =\)item->unit_cost_usd ?? \(item->cost_price_usd ??\)item->cost ?? 0; \(qty =\)item->quantity ?? 1; \(price =\)item->unit_price_usd ?? $item->price ?? 0; \(totalCostUsd += (\)cost * $qty); \(totalSellingUsd += (\)price * $qty); } } if ($totalSellingUsd == 0) { \(totalSellingUsd =\)quotation->total_selling_usd ?? $quotation->net_total_usd ?? 0; } \(discountUsd =\)quotation->discount_usd ?? 0; \(netTotalUsd = max(0,\)totalSellingUsd - $discountUsd); \(exchangeRate =\)quotation->exchange_rate_used ?? 1.0; \(netTotalSyp =\)netTotalUsd * $exchangeRate; \(profitUsd =\)netTotalUsd - $totalCostUsd; \(retentionRatio =\)totalSellingUsd > 0 ? round((\(profitUsd /\)totalSellingUsd) * 100, 2) : 0; $invoiceNumber = class_exists('\App\Models\Invoice') && method_exists('\App\Models\Invoice', 'generateNumber') ? Invoice::generateNumber() : 'INV-' . strtoupper(substr(uniqid(), -8)); $invoice = Invoice::create([ 'invoice_number' => $invoiceNumber, 'quotation_id' => $quotation->id, 'customer_name' => $quotation->customer_name ?: 'زبون نقدي', 'customer_phone' => $quotation->customer_phone ?? null, 'exchange_rate_used' => $exchangeRate, 'total_cost_usd' => $totalCostUsd, 'total_selling_usd' => $totalSellingUsd, 'discount_usd' => $discountUsd, 'net_total_usd' => $netTotalUsd, 'net_total_syp' => $netTotalSyp, 'profit_usd' => $profitUsd, 'profit_retention_ratio' => $retentionRatio, 'created_by' => auth()->id() ?? 1, ]); if (\(quotation->items &&\)quotation->items->count() > 0) { foreach (\(quotation->items as\)item) { \(pName =\)item->item_name ?? \(item->product_name ??\)item->name ?? 'بند'; \(qty =\)item->quantity ?? 1; \(price =\)item->unit_price_usd ?? $item->price ?? 0; \(cost =\)item->unit_cost_usd ?? \(item->cost_price_usd ??\)item->cost ?? 0; \(lineTotal =\)item->line_total_usd ?? (\(qty *\)price); \(unit =\)item->unit ?? 'قطعة'; \(itemType =\)item->item_type ?? 'physical'; $invoice->items()->create([ 'product_id' => $item->product_id ?? null, 'item_name' => $pName, 'item_type' => $itemType, 'unit' => $unit, 'quantity' => $qty, 'unit_price_usd' => $price, 'unit_cost_usd' => $cost, 'line_total_usd' => $lineTotal, ]); } } if (Schema::hasColumn('quotations', 'status')) { $quotation->update(['status' => 'converted']); } DB::commit(); session()->flash('success', 'تم تحويل عرض السعر إلى فاتورة بنجاح: ' . $invoiceNumber); return redirect()->route('invoices.index'); } catch (\Exception $e) { DB::rollBack(); session()->flash('error', 'حدث خطأ أثناء التحويل: ' . $e->getMessage()); } } public function deleteQuotation($id) { Quotation::destroy($id); session()->flash('success', 'تم حذف عرض السعر بنجاح.'); } public function render() { $quotations = Quotation::query() ->when(\(this->search, function(\)q) { \(q->where('customer_name', 'like', '%' .\)this->search . '%') ->orWhere('quotation_number', 'like', '%' . $this->search . '%'); }) ->latest() ->paginate(10); return view('livewire.quotations.index', ['quotations' => $quotations]); } } Cyberlink Solution
Internal Server Error
UnexpectedValueException
Invalid route action: [App\Livewire\Quotations\Index].
vendor/laravel/framework/src/Illuminate/Routing/RouteAction.php :92
vendor/laravel/framework/src/Illuminate/Routing/RouteAction.php :47
vendor/laravel/framework/src/Illuminate/Routing/Route.php :198
vendor/laravel/framework/src/Illuminate/Routing/Route.php :179
vendor/laravel/framework/src/Illuminate/Routing/Router.php :671
vendor/laravel/framework/src/Illuminate/Routing/Router.php :563
vendor/laravel/framework/src/Illuminate/Routing/Router.php :543
vendor/laravel/framework/src/Illuminate/Routing/Router.php :161
vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php :361
routes/web.php :36
vendor/laravel/framework/src/Illuminate/Routing/Router.php :511
vendor/laravel/framework/src/Illuminate/Routing/Router.php :467
vendor/laravel/framework/src/Illuminate/Routing/RouteRegistrar.php :207
routes/web.php :24
vendor/laravel/framework/src/Illuminate/Routing/RouteFileRegistrar.php :35
vendor/laravel/framework/src/Illuminate/Routing/Router.php :513
vendor/laravel/framework/src/Illuminate/Routing/Router.php :467
vendor/laravel/framework/src/Illuminate/Routing/RouteRegistrar.php :207
vendor/laravel/framework/src/Illuminate/Foundation/Configuration/ApplicationBuilder.php :248
vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php :36
vendor/laravel/framework/src/Illuminate/Container/Util.php :43
vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php :83
vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php :35
vendor/laravel/framework/src/Illuminate/Container/Container.php :696
vendor/laravel/framework/src/Illuminate/Foundation/Support/Providers/RouteServiceProvider.php :162
vendor/laravel/framework/src/Illuminate/Foundation/Support/Providers/RouteServiceProvider.php :59
vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php :36
vendor/laravel/framework/src/Illuminate/Container/Util.php :43
vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php :83
vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php :35
vendor/laravel/framework/src/Illuminate/Container/Container.php :696
vendor/laravel/framework/src/Illuminate/Support/ServiceProvider.php :144
vendor/laravel/framework/src/Illuminate/Foundation/Application.php :1154
vendor/laravel/framework/src/Illuminate/Foundation/Application.php :1132
vendor/laravel/framework/src/Illuminate/Foundation/Application.php :1131
vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/BootProviders.php :17
vendor/laravel/framework/src/Illuminate/Foundation/Application.php :342
vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php :187
vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php :171
vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php :145
vendor/laravel/framework/src/Illuminate/Foundation/Application.php :1220
public/index.php :17
Request
GET /sitemap.xml
Headers
accept-encoding
gzip, br, zstd, deflate
user-agent
Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
accept
*/*
host
pos.cyberlink-solution.com
Body
No body data
Application
Routing
No routing data
Database Queries
No query data