File manager - Edit - /var/www/payraty/inventory_main/app/Http/Controllers/Admin/Purchase/PurchaseReceiveController.php
Back
<?php namespace App\Http\Controllers\Admin\Purchase; use App\Models\Purchase; use Illuminate\Http\Request; use App\Models\PurchaseReceive; use App\Http\Controllers\Controller; use Illuminate\Http\RedirectResponse; use App\DataTables\PurchaseReceiveDataTable; use App\Services\Purchase\PurchaseReceiveServices; use Illuminate\Support\Facades\Auth; use PDF; use Excel; use App\Exports\PurchaseReceiveListsExport; use Illuminate\Support\Facades\DB; class PurchaseReceiveController extends Controller { /* * This Construct load thi controller services PurchaseReceiveServices * * */ public function __construct(PurchaseReceiveServices $services) { $this->services = $services; $this->middleware(['permission:Purchase Receive List'])->only(['purchasesReceive']); } /* * This function work for Purchase Receive data render * * */ public function purchasesReceive(Purchase $purchase) { // set_page_meta(__t('receive') . ' ' . __t('purchases') . ':' . $purchase->purchase_number); // $user = Auth::user(); // $orgId = $user->organisation_id; // $purchases = PurchaseReceive::where('organisation_id', $orgId) // ->with(['purchase', 'purchase.supplier', 'purchase.warehouse'])->get(); // return view('admin.purchase.receive', compact('purchases')); set_page_meta(__t('receive') . ' ' . __t('purchases') . ':' . $purchase->purchase_number); // $test = $purchase->load(['supplier', 'warehouse', 'purchaseItems.product']); // dd($test); return view('admin.purchase.receive', [ 'purchase' => $purchase->load(['supplier', 'warehouse', 'purchaseItems.product']) ]); } public function filter(Request $request) { $user = Auth::user(); $orgId = $user->organisation_id; $period = $request->get('period', 'all'); $query = PurchaseReceive::where('organisation_id', $orgId) ->with(['purchase', 'purchase.supplier', 'purchase.warehouse']); switch ($period) { case 'monthly': $query->whereMonth('created_at', now()->month); break; case 'yearly': $query->whereYear('created_at', now()->year); break; // 'all' case doesn't need additional filtering } $purchases = $query->paginate(10);; if ($request->ajax()) { return response()->json([ 'purchases' => $purchases ]); } // Fallback for non-AJAX requests return redirect()->route('admin.purchase.receive'); } public function search(Request $request) { $user = Auth::user(); $orgId = $user->organisation_id; $searchTerm = $request->get('q'); $query = PurchaseReceive::where('organisation_id', $orgId) ->with(['purchase', 'purchase.supplier', 'purchase.warehouse']) ->where(function ($query) use ($searchTerm) { $query->whereHas('purchase.supplier', function ($q) use ($searchTerm) { // Search by the supplier fields only $q->where('first_name', 'LIKE', "%{$searchTerm}%") ->orWhere('last_name', 'LIKE', "%{$searchTerm}%"); }) ->whereHas('purchase.warehouse', function ($q) use ($searchTerm) { // Search by the warehouse fields $q->where('name', 'LIKE', "%{$searchTerm}%") ->orWhere('email', 'LIKE', "%{$searchTerm}%"); }); }) ->paginate(10); if ($request->ajax()) { return response()->json([ 'purchases' => $query ]); } // Fallback for non-AJAX requests return view('admin.purchase.receive', compact('purchases')); } /** * exportPurchaseReceiveLists * * @param mixed $request * @return void */ public function exportPurchaseReceiveLists(Request $request) { $sales = []; $type = $request->type; $user = Auth::user(); $orgId = $user->organisation_id; $purchases = PurchaseReceive::where('organisation_id', $orgId)->get(); $name = 'Purchase_Receive_' . now()->format('YmdHis'); if ($type == 'pdf') { $pdf = PDF::loadView('admin.purchase.pdf.receive_list', ['purchases' => $purchases]); return $pdf->download($name . '.pdf'); } else if ($type == 'csv') { return Excel::download(new PurchaseReceiveListsExport($purchases), $name . '.csv'); } else if ($type == 'excel') { return Excel::download(new PurchaseReceiveListsExport($purchases), $name . '.xlsx'); } } /* * This function work for purchase receive store * * */ public function storePurchasesReceive(Request $request, Purchase $purchase): RedirectResponse { $store = $this->services->validate($request)->store($request, $purchase); if ($store) { flash(__t('custom.purchase_receive_successful'))->success(); } else { flash(__t('custom.purchase_receive_failed'))->error(); } return redirect()->route('admin.purchases.index'); } /** * receives * * @param mixed $dataTable * @return void */ public function receives(PurchaseReceiveDataTable $dataTable) { set_page_meta(__t('purchase_receive_list')); $user = Auth::user(); $orgId = $user->organisation_id; $purchases = PurchaseReceive::where('organisation_id', $orgId) ->with(['purchase', 'purchase.supplier', 'purchase.warehouse', 'purchase.purchaseItems'])->paginate(10); $profile = DB::table('profiles')->where('user_id', $user->id)->first(); return view('admin.purchase.receive_list', compact('purchases', 'profile')); } /** * receiveShow * * @param mixed $id * @return void */ public function receiveShow($id) { return view('admin.purchase.receive_show', [ 'purchase_receive' => PurchaseReceive::query() ->with('purchase', 'purchaseItemReceives') ->findOrFail($id) ]); } /** * receiveDelete * * @param mixed $id * @return void */ public function receiveDelete($id) { try { $purchaseReceive = PurchaseReceive::query()->findOrFail($id); $purchaseReceive->purchaseItemReceives()->delete(); $purchaseReceive->delete(); flash(__t('custom.purchase_receive_delete_successful'))->success(); } catch (\Exception $e) { if ($e->getCode() == 23000) { flash(__t('custom.purchase_receive_already_use'))->error(); } else { flash($e->getMessage())->error(); } } return redirect()->route('admin.purchases.receive-list'); } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.30 | Generation time: 0 |
proxy
|
phpinfo
|
Settings