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

Merge branch 'main' into 'catalago-profesion'

# Conflicts:
#   routes/web.php
parents 925f71a1 5f87e9d9
Loading
Loading
Loading
Loading
+98 −0
Original line number Diff line number Diff line
<?php

namespace App\Http\Controllers;

use App\Models\Grupos;
use App\Models\Subgrupo;
use Illuminate\Http\Request;

class SubgrupoController extends Controller
{
    /**
     * Display a listing of the resource.
     */
    public function index()
    {
        $subgrupos = Subgrupo::with('grupo')->with('subgrupo')->get();

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

    /**
     * Show the form for creating a new resource.
     */
    public function create()
    {
        $subgrupos = Subgrupo::get();
        $grupos = Grupos::get();
        return view('adminGen.catalogos.subgrupos.create', compact('subgrupos', 'grupos'));
    }

    /**
     * Store a newly created resource in storage.
     */
    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.');
    }

    /**
     * Display the specified resource.
     */
    public function show(Subgrupo $subgrupo)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     */
    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, 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(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());
        }
    }
}
+0 −10
Original line number Diff line number Diff line
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class subgrupoController extends Controller
{
    //
}
+29 −0
Original line number Diff line number Diff line
<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasOne;

class Subgrupo extends Model
{
    use HasFactory;

    protected $fillable = [
        'nombre',
        'grupo_id',
        'subgrupo_id',
    ];

    public function grupo(): BelongsTo
    {
        return $this->belongsTo(Grupos::class);
    }
    
    public function subgrupo(): BelongsTo
    {
        return $this->belongsTo(Subgrupo::class);
    }
}

app/Models/subgrupo.php

deleted100644 → 0
+0 −11
Original line number Diff line number Diff line
<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class subgrupo extends Model
{
    use HasFactory;
}
+1 −1
Original line number Diff line number Diff line
@@ -16,10 +16,10 @@ public function up(): void
            $table->string('nombre');
            $table->unsignedBigInteger('grupo_id')->nullable();
            $table->unsignedBigInteger('subgrupo_id')->nullable();
            $table->timestamps();

            $table->foreign('grupo_id')->references('id')->on('grupos')->nullable();
            $table->foreign('subgrupo_id')->references('id')->on('subgrupos')->nullable();
            $table->timestamps();
        });
    }

Loading