<?php

namespace App\Http\Controllers;
use App\Models\Equipo;
use Illuminate\Http\Request;
use DB;
use Log;
use Carbon\Carbon;

class equipoController extends Controller
{
    public function NuevoEquipo()
    {
        /*SIEMPRE DEVOLVER PARA OBTENER DATOS ESPECIFICOS DEL MENU */
        //$menu = DB::table('menus')->where('menu_nombreformulario', 'equipos')->first();
        //$menupadre = DB::table('menus')->where('menu_id', $menu->menu_padre)->first();
        /*SIEMPRE DEVOLVER PARA OBTENER DATOS ESPECIFICOS DEL MENU */

        $tipo_equipos = DB::table('tipo_equipos')->get();
        $marcas = DB::table('marcas')->get();
        return view('equipoNuevo',compact('tipo_equipos','marcas'));
        //return view('equipoNuevo');


    }

    public function GuardarEquipo(Request $request){


        $dataJQ = $request->all();
        $ResultadoTranssacion = false;
        //Log::info($dataJQ);

        try {
                $ResultadoTranssacion = false;
                $nuevoEquipo = new Equipo();

              
                $nuevoEquipo->tieq_id                  = $dataJQ['tieq_id'];
                $nuevoEquipo->equi_nombreTipoEquipo    = $dataJQ['equi_nombreTipoEquipo'];
                $nuevoEquipo->marc_id                  = $dataJQ['marc_id'];
                $nuevoEquipo->equi_marcaNombre         = $dataJQ['equi_marcaNombre'];
                $nuevoEquipo->equi_serie               = $dataJQ['equi_serie'];
                $nuevoEquipo->equi_modelo              = $dataJQ['equi_modelo'];
                $nuevoEquipo->equi_color               = $dataJQ['equi_color'];
                $nuevoEquipo->equi_estado              = $dataJQ['equi_estado'];
                $nuevoEquipo->equi_comentarios         = $dataJQ['equi_comentarios'];   
                $nuevoEquipo->equi_estadoAsigando      = "LIBRE";
                $nuevoEquipo->usua_id                  = 1;                
                $nuevoEquipo->created_at               = Carbon::now();
                $nuevoEquipo->updated_at               = Carbon::now();


                $affected = $nuevoEquipo->save();

                if ($affected >= 1) {
                    $ResultadoTranssacion = true;
                }else{
                    $ResultadoTranssacion = false;
                }
                //Log::info($affected);

        } catch (Exception $e) {
            report($e);
            Log::info($e);
        }

            return response()->json($ResultadoTranssacion) ;

    }

    public function CargarEquipos($id)
    {        
        $equipo= DB::table('equipos')->where('equi_id', $id)->first();
        $tipo_equipos = DB::table('tipo_equipos')->get();
        $marcas = DB::table('marcas')->get();
        return view('equipoEditar', compact('equipo','tipo_equipos','marcas'));

    }

    public function BuscaPorNumeroSerie(Request $request)
    {        
        
        $dataJQ = $request->all();
        
        
        $ResultadoTranssacion = false;

        $serie = $dataJQ['equi_serie'];

        $equipo = DB::table('equipos')->where('equi_serie', $serie)->get();           
        $TotalFilas = count($equipo);

        if ($TotalFilas >= 1) {

            $equi_estadoAsigando = $equipo[0]->equi_estadoAsigando;        
            if( $equi_estadoAsigando == "OCUPADO" || $equi_estadoAsigando == "BAJA"){

                $ResultadoTranssacion = "OCUPADO";
                return response()->json($ResultadoTranssacion) ;

            }else{
            $ResultadoTranssacion = true;
            $equipoT = json_encode($equipo);
            //return json_encode($equipo);
            return response()->json(["ResultadoTranssacion" => 'true', "equipo" => $equipoT]);
            // return Response::json(array(
            //     'success' => true,
            //     'data'   => $data
            //   )); 
            //$response = ['ResultadoTranssacion'=>'true', 'equipo'=>$equipo];
            //return $response;
        }


        }else{
            //Log::info('ENTRO ELSE');
            $ResultadoTranssacion = false;
            return response()->json($ResultadoTranssacion) ;
        }        

    }

    public function ListarEquipos()
    {
         
        $equipos = DB::table('equipos')->orderBy('equi_id', 'desc')->get();        
        return view('equipoLista',compact('equipos'));
    }

    public function EditarEquipo(Request $request)
    {
        
        $dataJQ = $request->all();
        $ResultadoTranssacion = false;
        //Log::info($dataJQ);

        try {

            $id = $dataJQ['equi_id'];                     
                
            $affected = DB::table('equipos')
                    ->where('equi_id', $id)
                    ->update([                        
                        'tieq_id'               => $dataJQ['tieq_id'],
                        'equi_nombreTipoEquipo' => $dataJQ['equi_nombreTipoEquipo'],
                        'marc_id'               => $dataJQ['marc_id'],
                        'equi_marcaNombre'      => $dataJQ['equi_marcaNombre'],
                        'equi_serie'            => $dataJQ['equi_serie'],
                        'equi_modelo'           => $dataJQ['equi_modelo'],
                        'equi_color'            => $dataJQ['equi_color'],
                        'equi_estado'           => $dataJQ['equi_estado'],
                        'equi_comentarios'      => $dataJQ['equi_comentarios'],
                        'usua_id'               => 1,                
                        'created_at'            => Carbon::now(),
                        'updated_at'            => Carbon::now()                        
                ]);
                
                if ($affected >= 1) {
                    $ResultadoTranssacion = true;
                }else{
                    $ResultadoTranssacion = false;
                }
                Log::info($affected);

        } catch (Exception $e) {
            report($e);
            Log::info($e);
        }

            return response()->json($ResultadoTranssacion) ;

    }

    public function BajaEquipo(Request $request)
    {
        
        $dataJQ = $request->all();
        $ResultadoTranssacion = false;
        //Log::info($dataJQ);

        try {
            
            $id = $dataJQ['equi_id'];
            $equipos = DB::table('equipos')->where('equi_id', $id)->get(); 
            $equi_serie = $equipos[0]->equi_serie; 
            
            $asignacion = DB::table('asignaciones')
                            ->where('asig_numeroserie', $equi_serie)
                            ->where('asig_estado', 'ACTIVO')
                            ->get(); 
            $TotalFilas = count($asignacion);

            if ($TotalFilas >= 1){

                return response()->json($ResultadoTranssacion) ;
            }else{

                $affectedE = DB::table('equipos')
                    ->where('equi_id', $id)
                    ->update([
                        'equi_estado'           => "BAJA",
                        'equi_estadoAsigando'   => "BAJA",
                        'equi_asiganadoActualA' => "BAJA",
                        'equi_ubicacionActual'  => "BAJA",                        
                        'updated_at' => Carbon::now()
                ]);          
                
                if ($affectedE >= 1) {
                    $ResultadoTranssacion = true;
                }else{
                    $ResultadoTranssacion = false;
                }                

            }

        } catch (Exception $e) {
            report($e);
            Log::info($e);
        }

            return response()->json($ResultadoTranssacion) ;

    }
}
