Commit 072fae5d authored by Alfonso Rafael Solis Rangel's avatar Alfonso Rafael Solis Rangel
Browse files

Controlador de subgrupos

parent 7bc16163
Loading
Loading
Loading
Loading
+37 −8
Original line number Diff line number Diff line
@@ -13,7 +13,8 @@ class SubgrupoController extends Controller
     */
    public function index()
    {
        $subgrupos = Subgrupo::get();
        $subgrupos = Subgrupo::with('grupo')->with('subgrupo')->get();

        return view('adminGen.catalogos.subgrupos.index', compact('subgrupos'));
    }

@@ -32,7 +33,13 @@ public function create()
     */
    public function store(Request $request)
    {
        //
        $subgrupo = new Subgrupo;
        $subgrupo->nombre = $request->nombre;
        if(isset($request->grupo_id) && isset($request->subgrupo_id)) return redirect()->route('catalogos.subgrupos.create')->withErrors('Error al crear el subgrupo, solo es posible seleccionar un grupo o un subgrupo.');
        if(isset($request->grupo_id)) $subgrupo->grupo_id = $request->grupo_id;
        if(isset($request->subgrupo_id)) $subgrupo->subgrupo_id = $request->subgrupo_id;
        $subgrupo->save();
        return redirect()->route('catalogos.subgrupos.get')->with('success', 'Subgrupo creado correctamente.');
    }

    /**
@@ -46,24 +53,46 @@ public function show(Subgrupo $subgrupo)
    /**
     * Show the form for editing the specified resource.
     */
    public function edit(Subgrupo $subgrupo)
    public function edit(string $id)
    {
        //
        $subgrupos = Subgrupo::where('id', '!=', $id)->get();
        $subgrupo = Subgrupo::findOrFail($id);
        $grupos = Grupos::get();

        return view('adminGen.catalogos.subgrupos.edit', compact('subgrupos', 'grupos', 'subgrupo'));
    }

    /**
     * Update the specified resource in storage.
     */
    public function update(Request $request, Subgrupo $subgrupo)
    public function update(Request $request, string $id)
    {
        //
        $subgrupo = Subgrupo::findOrFail($id);
        $subgrupo->nombre = $request->nombre;
        if(isset($request->grupo_id) && isset($request->subgrupo_id)) return redirect()->route('catalogos.subgrupos.create')->withErrors('Error al crear el subgrupo, solo es posible seleccionar un grupo o un subgrupo.');
        if(isset($request->grupo_id)){
            $subgrupo->grupo_id = $request->grupo_id;
            $subgrupo->subgrupo_id = null;
        } 
        if(isset($request->subgrupo_id)){
            $subgrupo->subgrupo_id = $request->subgrupo_id;
            $subgrupo->grupo_id = null;
        }
        $subgrupo->save();
        return redirect()->route('catalogos.subgrupos.get')->with('success', 'Subgrupo actualizado correctamente.');
    }

    /**
     * Remove the specified resource from storage.
     */
    public function destroy(Subgrupo $subgrupo)
    public function destroy(string $id)
    {
        //
        try{
            $subgrupo = Subgrupo::findOrFail($id);
            $subgrupo->delete();
            return redirect()->route('catalogos.subgrupos.get')->with('success', 'Subgrupo eliminado correctamente.');
        }catch(\Exception $e){
            return redirect()->route('catalogos.subgrupos.get')->withErrors('Error al eliminar el subgrupo:' . $e->getMessage());
        }
    }
}