File manager - Edit - /var/www/payraty/inventory_main/app/Http/Controllers/Admin/Supplier/SuppliersController.php
Back
<?php namespace App\Http\Controllers\Admin\Supplier; use App\Models\Supplier; use App\Models\SystemCountry; use App\Http\Controllers\Controller; use App\DataTables\SupplierDataTable; use App\Http\Requests\SupplierRequest; use App\Services\Supplier\SupplierService; use Illuminate\Support\Facades\Auth; use Illuminate\Http\Request; use PDF; use Excel; use App\Exports\SuppliersExport; use Illuminate\Support\Facades\DB; class SuppliersController extends Controller { protected $supplierService; /** * __construct * * @param mixed $supplierService * @return void */ public function __construct(SupplierService $supplierService) { $this->supplierService = $supplierService; $this->middleware(['permission:List Supplier'])->only(['index']); $this->middleware(['permission:Add Supplier'])->only(['create']); $this->middleware(['permission:Edit Supplier'])->only(['edit']); $this->middleware(['permission:Delete Supplier'])->only(['destroy']); } /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index(SupplierDataTable $dataTable) { set_page_meta(__('custom.suppliers')); $user = Auth::user(); $orgId = $user->organisation_id; $suppliers = Supplier::where('organisation_id', $orgId)->paginate(10); // return $dataTable->render('admin.suppliers.index'); $profile = DB::table('profiles')->where('user_id', $user->id)->first(); return view('admin.suppliers.index', compact('suppliers', 'profile')); } public function filter(Request $request) { $user = Auth::user(); $orgId = $user->organisation_id; $period = $request->get('period', 'all'); $query = Supplier::where('organisation_id', $orgId); 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 } $suppliers = $query->paginate(10); if ($request->ajax()) { return response()->json([ 'suppliers' => $suppliers ]); } // Fallback for non-AJAX requests return redirect()->route('admin.suppliers.index'); } public function search(Request $request) { $user = Auth::user(); $orgId = $user->organisation_id; $searchTerm = $request->get('q'); $suppliers = Supplier::where('organisation_id', $orgId) ->where(function ($query) use ($searchTerm) { $query->where('first_name', 'LIKE', "%{$searchTerm}%") ->orWhere('first_name', 'LIKE', "%{$searchTerm}%") ->orWhere('email', 'LIKE', "%{$searchTerm}%") ->orWhere('phone', 'LIKE', "%{$searchTerm}%"); }) ->paginate(10); if ($request->ajax()) { return response()->json([ 'suppliers' => $suppliers ]); } // Fallback for non-AJAX requests return view('admin.suppliers.index', compact('suppliers')); } /** * exportSuppliers * * @param mixed $request * @return void */ public function exportSuppliers(Request $request) { $sales = []; $type = $request->type; $user = Auth::user(); $orgId = $user->organisation_id; $suppliers = Supplier::where('organisation_id', $orgId)->get(); $name = 'Supplier_' . now()->format('YmdHis'); if ($type == 'pdf') { $pdf = PDF::loadView('admin.suppliers.pdf.index', ['suppliers' => $suppliers]); return $pdf->download($name . '.pdf'); } else if ($type == 'csv') { return Excel::download(new SuppliersExport($suppliers), $name . '.csv'); } else if ($type == 'excel') { return Excel::download(new SuppliersExport($suppliers), $name . '.xlsx'); } } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { // TODO: convert to service $countries = SystemCountry::get(); set_page_meta(__('custom.add_supplier')); return view('admin.suppliers.create', compact('countries')); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(SupplierRequest $request) { $data = $request->validated(); if ($this->supplierService->createOrUpdateWithFile($data, 'avatar')) { flash(__('custom.supplier_created_successfully'))->success(); } else { flash(__('custom.supplier_create_failed'))->error(); } return redirect()->route('admin.suppliers.index'); } /** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function show(Supplier $supplier) { set_page_meta(__('custom.supplier_details')); return view('admin.suppliers.show', $this->supplierService->supplierShowDetails($supplier)); } /** * Show the form for editing the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function edit($id) { $supplier = $this->supplierService->get($id); if (!$supplier) abort(404); $countries = SystemCountry::get(); set_page_meta(__('custom.edit_supplier')); return view('admin.suppliers.edit', compact('supplier', 'countries')); } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(SupplierRequest $request, $id) { $data = $request->validated(); if ($this->supplierService->createOrUpdateWithFile($data, 'avatar', $id)) { flash(__('custom.supplier_updated_successfully'))->success(); } else { flash(__('custom.supplier_update_failed'))->error(); } return redirect()->route('admin.suppliers.index'); } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { try { if ($this->supplierService->delete($id)) { flash(__('custom.supplier_deleted_successfully'))->success(); } else { flash(__('custom.supplier_delete_failed'))->error(); } } catch (\Throwable $th) { flash(__('custom.this_record_already_used'))->warning(); } return redirect()->route('admin.suppliers.index'); } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.30 | Generation time: 0 |
proxy
|
phpinfo
|
Settings