<?php

namespace App\Http\Controllers\NGRS;

use Carbon\Carbon;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\{RFPeriodo, XM_Confi, XM_SocioeconomicoConfi, XM_AreaConocimiento};

class ConfiController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        //
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        $socio_ant; //Periodos en los que se hizo un examen socioeconomico
        $periodos;  //Periodos que aun estan disponibles en la base de datos para configurar examen
        $areas;     //Areas de conocimiento que esta activas
        
        $socio_ant = XM_SocioeconomicoConfi::with('confi.periodo')->get();
        $periodos = RFPeriodo::where('examen_nuevo_ingreso', '0')->get();
        $areas = XM_AreaConocimiento::where('estado', '1')->get();
        //dd($socio_ant);
        return view("examen.ingreso.confi.nuevo", compact('periodos', 'socio_ant', 'areas'));
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        $data = $request->all();
        
        //deshabilitando examenes anteriores
        XM_Confi::where( 'estado','1' )->update([ 'estado'=>'0' ]);

        //Creando nuevo periodo
        $confi = XM_Confi::create([
            'periodo_id' => $data['periodo'],
            'estado' => '1',
        ]);

        //deshabilitando periodo
        RFPeriodo::where('examen_nuevo_ingreso', 0)
          ->where('id', '<=', $data['periodo'])
          ->update(['examen_nuevo_ingreso' => 1]);

        return response()->json([
            'estado'  => 'exito', 
            'mensaje' => 'Periodo activado para examen de nuevo ingreso!', 
            'id'      => $confi->id 
        ]);
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        $data = $request->all();

        $confi = XM_Confi::where('id', $id)->first();

        $confi->inicio = Carbon::parse($data['fecha_inicio']);
        $confi->cierre = Carbon::parse($data['fecha_cierre']);
        $confi->save();

        return response()->json([
            'estado'  => 'exito', 
            'mensaje' => 'Fechas para el examen de nuevo ingreso, actualizadas de forma exitosa!', 
            'id'      => $confi->id 
        ]);
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        //
    }
}
