<?php

namespace Predial\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;

use Predial\GrEstadoPredio;

class EstadoPredioController extends Controller{

    public function index(){
        if(!empty(session()->get('usuario'))){
            $data = DB::table('gr_estado_predio')
                            ->select('id_unico', 'nombre')
                            ->orderBy('nombre', 'asc')
                            ->get();
            return view('estadoPredio.index', ['row' => $data]);
        }else{
            return redirect("CerrarSesion");
        }
    }

    public function create(){
        if(!empty(session()->get('usuario'))){
            return view('estadoPredio.create');
        }else{
            return redirect("CerrarSesion");
        }
    }

    public function show($id_unico){
        if(!empty(session()->get('usuario'))){
            $id   = decrypt($id_unico);

            $data = GrEstadoPredio::find($id);

            return view('estadoPredio.edit')->with('data', $data);
        }else{
            return redirect("CerrarSesion");
        }
    }

    public function edit(Request $request){
        try {
            $estado             = GrEstadoPredio::findOrFail($request->id_unico);
            $estado->timestamps = false;
            $estado->nombre     = $request->txtNombre;
            $estado->save();

            flash()->overlay('Información modificada correctamente', 'Información');

            return redirect('ListarEstadosPredio');
        } catch (Exception $e) {
            return "Fatal Error = ".$e->getMessage();
        }
    }

    public function store(Request $request){
        try {
            $estado             = new GrEstadoPredio();

            $estado->timestamps = false;
            $estado->nombre     = $request->txtNombre;
            $estado->save();

            flash()->overlay('Información modificad correctamente', 'Información');

            return redirect('ListarEstadosPredio');
        } catch (Exception $e) {
            return "Fatal Error = ".$e->getMessage();
        }
    }

    public function destroy($id_unico){
        try {
            $id     = decrypt($id_unico);

            $estado = GrEstadoPredio::findOrFail($id);
            $estado->delete();

            flash()->overlay('Información eliminada correctamente', 'Información');

            return redirect('ListarEstadosPredio');
        } catch (Exception $e) {
            return "Fatal Error = ".$e->getMessage();
        }
    }
}
