%PDF- %PDF-
Direktori : /usr/local/apache/htdocs/app/Http/Controllers/ |
Current File : //usr/local/apache/htdocs/app/Http/Controllers/ProductController.php |
<?php namespace App\Http\Controllers; use App\Models\Product; use App\Models\Category; use App\Models\Color; use App\Models\Facture; use App\Models\Marque; use App\Models\Situation; use App\Models\Taux; use App\Models\User; use Illuminate\Http\Request; use stdClass; class ProductController extends Controller { /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index(Request $request, $sit_id = 0) { $produits = $sit_id ? Product::whereHas('references', function($query) use ($sit_id) { return $query->where('situation_id', $sit_id); })->with(['references' => function($query) use ($sit_id) { $query->where('situation_id', $sit_id); }])->paginate(100) : Product::where('parent_id', 0)->paginate(100); $allcategories = Category::all(); $marques = Marque::all(); $factures = Facture::get()->filter(function ($facture) { return $facture->user && $facture->user->hasRole('fournisseur'); }); $colors = Color::all(); $situations = Situation::all(); $taux = Taux::all(); $parents = Product::where('parent_id', 0)->get(); $fournisseurs = User::role('fournisseur')->get()->pluck('name', 'id'); return view('products.index', compact('produits', 'allcategories','marques','factures','colors','situations','taux','fournisseurs', 'parents')); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { $produits = new Product(); $update = false; if ( $request->id ) { $produits = Product::find($request->id); $update = true; } $produits->name_prod = $request->input('name_prod'); $produits->prod_type = $request->input('prod_type'); $produits->ref_prod = $request->input('ref_prod'); $produits->date_debut = $request->input('date_debut'); $produits->date_fin = $request->input('date_fin'); $produits->remarques = $request->input('remarques'); $produits->facture_id = $request->input('facture_id'); $produits->color_id = $request->input('color_id'); $produits->category_id = $request->input('category_id'); $produits->situation_id = $request->input('situation_id'); $produits->parent_id = $request->input('parent_id'); $parent = Product::find($produits->parent_id) ?:new stdClass; $produits->marque_id = $request->input('marque_id')?:$parent->marque_id; $produits->category_id = $request->input('category_id')?:$parent->category_id; $produits->prod_type = $request->input('prod_type')?:$parent->prod_type; $produits->prixachat = $request->input('prixachat')?:$parent->prixachat; $produits->prixvente = $request->input('prixvente')?:$parent->prixvente; $produits->save(); $request->session()->flash('status', $update ? 'vous avez modifié le produit avec succès' :'vous avez ajouté avec succès un nouvel produit'); return redirect()->route('products'); } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy(Request $request) { $data = Product::find($request->id); if (!$data || !$data->exists()) { return redirect()->route('products')->with('error', 'Le produit n\'existe pas'); } else if (!$data->delete()) { return redirect()->route('products')->with('error', 'Vous ne pouvez pas supprimer ce produit'); } return redirect()->route('products')->with('status', 'Le produit à été supprimer avec succès'); } public function deleteAll(Request $request) { $ids = explode(',', $request->allids); if (! Product::whereIn('id', $ids)->delete()) { return redirect()->route('products')->with('error', 'Erreur '); } else { return redirect()->route('products')->with('status', 'vous avez supprimé avec succès tous les produits'); } } }