%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/local/apache/htdocs/app/Http/Controllers/
Upload File :
Create Path :
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');
        }
    }
}

Zerion Mini Shell 1.0