<?php

namespace App\Http\Controllers;
use App\Models\Requisicion;
use DB;
use Log;
use Carbon\Carbon;

use Illuminate\Http\Request;

class requisicionController extends Controller
{
    public function NuevaRequisicion()
    {        
        //$marcas = DB::table('marcas')->get();
        return view('rqNuevo');
        //return view('equipoNuevo');

    }

    public function CargarParaVB($id)
    {      
        $requisicion = DB::table('requisiciones')->where('rq_id', $id)->first();     
        return view('rqAgregarVB',compact('requisicion'));        
    }

    public function CargarParaOC($id)
    {      
        $requisicion = DB::table('requisiciones')->where('rq_id', $id)->first();     
        return view('rqAgregarOC',compact('requisicion'));        
    }

    public function CargarParaFin($id)
    {      
        $requisicion = DB::table('requisiciones')->where('rq_id', $id)->first();     
        return view('rqFinalizar',compact('requisicion'));        
    }

    public function ListarRequisiciones()
    {         
        $requisiciones = DB::table('requisiciones')
                            ->where('rq_estado', '<>', 'CERRADO')
                            ->orderBy('rq_id', 'desc')                
                            ->get();

        return view('rqLista',compact('requisiciones'));
        
    }

    public function GuardarRequisicion(Request $request){


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

        try {
                $ResultadoTranssacion = false;
                $nuevaRequisicion = new Requisicion();

                $rq_fecha = strtotime($dataJQ['rq_fecha']);
                $rq_fecha = date('Y-m-d',$rq_fecha);

              
                $nuevaRequisicion->rq_siteNombre    = $dataJQ['rq_siteNombre'];
                $nuevaRequisicion->rq_personaNombre = $dataJQ['rq_personaNombre'];                
                $nuevaRequisicion->rq_numero        = $dataJQ['rq_numero'];
                $nuevaRequisicion->rq_articulo      = $dataJQ['rq_articulo'];                
                $nuevaRequisicion->rq_estado        = "RQ_OK";
                $nuevaRequisicion->rq_fecha         = $rq_fecha;
                $nuevaRequisicion->created_at       = Carbon::now();
                $nuevaRequisicion->updated_at       = Carbon::now();


                $affected = $nuevaRequisicion->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 RegistrarVB(Request $request)
    {
        
        $dataJQ = $request->all();
        $ResultadoTranssacion = false;       

        try {

            $id = $dataJQ['rq_id'];

            $rq_fechaVB = strtotime($dataJQ['rq_fechaVB']);
            $rq_fechaVB = date('Y-m-d',$rq_fechaVB);                     
                
            $affected = DB::table('requisiciones')
                    ->where('rq_id', $id)
                    ->update([                                                
                        'rq_proveedorVB'    => $dataJQ['rq_proveedorVB'],
                        'rq_comentarioVB'   => $dataJQ['rq_comentarioVB'],
                        'rq_fechaVB'        => $rq_fechaVB,  
                        'rq_estado'         => "VB_OK",  
                        '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 RegistrarOC(Request $request)
    {
        
        $dataJQ = $request->all();
        $ResultadoTranssacion = false;       

        try {

            $id = $dataJQ['rq_id'];

            $rq_fechaOC = strtotime($dataJQ['rq_fechaOC']);
            $rq_fechaOC = date('Y-m-d',$rq_fechaOC);                     
                
            $affected = DB::table('requisiciones')
                    ->where('rq_id', $id)
                    ->update([                                                
                        'rq_numeroOC'   => $dataJQ['rq_numeroOC'],                        
                        'rq_fechaOC'    => $rq_fechaOC,  
                        'rq_estado'     => "OC_OK",  
                        '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 FinalizarRQ(Request $request)
    {
        
        $dataJQ = $request->all();
        $ResultadoTranssacion = false;       

        try {

            $id = $dataJQ['rq_id'];                       
                
            $affected = DB::table('requisiciones')
                    ->where('rq_id', $id)
                    ->update([                                                
                        'rq_comentarioFin'      => $dataJQ['rq_comentarioFin'],                        
                        'rq_fechaFinalizado'    => Carbon::now(),
                        'rq_estado'             => "CERRADO",
                        '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 ListarRqCerradas()
    {         
        $requisiciones = DB::table('requisiciones')
                            ->where('rq_estado', '=', 'CERRADO')
                            ->orderBy('rq_id', 'desc')                
                            ->get();

        return view('rqHistorial',compact('requisiciones'));
        
    }
}
