<?php

namespace App\Http\Controllers;

use Carbon\Carbon;
use Illuminate\Http\Request;
use Session;
use Redirect;
use App\{AlumnosAdmision, InglesAlumnos, DocumentosAlumnos, Configuracion, DocumentosFecha};
use App\{RF_Alumno, RF_AlumnoLiberacionView};
use App\Bitacora;
use App\Http\Requests;
use App\Http\Requests\LoginRequest;
use App\Http\Controllers\Controller;
use App\TIT_PorcentajeView;

class LoginController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return Response
     */
    public function index()
    {
        $confi = Configuracion::where('periodo_id',5)->first();
        $date = Carbon::now('America/Mexico_City'); //2015-01-01 00:00:00
        echo $confi->fecha_mostrar;
        echo "<br>";
        echo $date;
        echo "<br>";
        echo $date>$confi->fecha_mostrar&&$date<$confi->fecha_ocultar;
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return Response
     */
    public function create()
    {
        //
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  Request  $request
     * @return Response
     */
    public function store(LoginRequest $request) {
        $fec = DocumentosFecha::orderBy('id', 'desc')->first();
        $date = Carbon::now('America/Mexico_City'); //2015-01-01 00:00:00
        $ini = Carbon::create(2022, 01, 8,   7, 0, 0);
        $fin = Carbon::create(2022, 12, 20, 23, 59, 59);

        $data = $request->all();

        
        //if ( $data['folio']=='10650121' ) {
            if ( ( $date>$ini && $date<=$fin) || $data['folio']=='1' ) {//|| $data['folio']=='5'
            
            /*if ($data['folio']=='1' && $data['password']=='teamo') {
                session(['folio' => 1 ]);
                return response()->json([ 'exito' => 'session creada oki', 'vista'=>'f' ]);
            }*/

                $alu = AlumnosAdmision::where('folio', '=', $data['folio'])
                            ->where('estatus', '=', '1')
                            ->first();

                if ($alu) {
                    $pw = explode('-', $alu->nip);
                    if ($pw[0] == $data['password']){
                    
                        session(['folio' => $alu->folio ]);
                        session(['nombre' => $alu->nombre]);
                        session(['idAlumno' => $alu->idAlumnoAdmi]);
                        session(['sexo' => $alu->sexo]);
                        session(['periodo' => $alu->fk_idPeriodo]);
                        session(['talla' => $alu->talla]);
                        if ($alu->computadora==null) {
                            session(['vistaForm' => 'OK']);
                            session(['telefo' => $alu->telefono]);
                            session(['correo' => $alu->correo]);
                            session(['curp'   => $alu->curp]);
                            session(['img'   => $alu->img]);
                        } else {
                            session(['vistaForm' => 'NO']);
                        }

                        if ( ($date>$fec->fecha_subida&&$date<$fec->fecha_cierre) || $data['folio']=='1' ){
                            session(['_SUBIR_DOCS'=>'MOSTRAR']);
                        } else {
                            session(['_SUBIR_DOCS'=>'OCULTAR']);
                        }

                        //para saber si mostrar u no dar acceso a consultar credenciales de acceso
                        if ($date>$fec->fecha_clave_mostrar&&$date<$fec->fecha_clave_cierre){
                            session(['_CORREO'=>'MOSTRAR']);
                        } else {
                            session(['_CORREO'=>'OCULTAR']);
                        }

                        $imagen = DocumentosAlumnos::where('fk_idDocumento', '6')->where('estado', '2')->where('fk_idFolio', $alu->folio)->first();
                        
                        if ($imagen!==null) { session(['foto' => $imagen->nombre ]); } else { session(['foto' => 'PETI' ]); }
                       
                        /*
                        * No existe registro mostrar msj 1
                        * 1 - ocultar
                        * 2 - Mostrar msj 2
                        * 3 - ocultar
                         */
                        //configuracion examen de ubicacion nuevo ingreso
                        $confi = Configuracion::where('periodo_id',$alu->fk_idPeriodo)->where('estado', '1')->first();
                        $confi_pago = Configuracion::where('estado', '4')->first();
                        $alumno_exa = InglesAlumnos::where('alumno_id', $alu->idAlumnoAdmi)->orderBy('id', 'desc')->first();

                        //validacion para examen de ubicacion alumnos de nuevo ingreso
                        if ($confi!=null) {
                            
                            if ($date>$confi->fecha_mostrar&&$date<$confi->fecha_ocultar || $alumno_exa!=null) {
                                if ($alumno_exa===null) {
                                    session(['ingles' => 'MSJ1']);
                                } else {
                                    if ($alumno_exa->estado=='2') {
                                        session(['idAluIngles' => $alumno_exa->id ]);
                                        session(['confi' => $confi->id]);
                                        session(['ingles' => 'MSJ2']);
                                    } else { session(['ingles' => 'OCULTAR']); }
                                }
                            } else { session(['ingles' => 'OCULTAR' ]); }
                        } else { 
                            
                            //validacion para examen de ubicacion pago
                            if ($confi_pago!=null) {
                                
                                if (($date->format('Y-m-d')==$confi_pago->fecha->format('Y-m-d')&&
                                        $date->format('H:i:00') < $confi_pago->hora_cierre&&
                                        $date->format('H:i:00') > $confi_pago->hora_inicio&& 
                                        $alumno_exa!=null) || 
                                    ($data['folio']=='1'||$data['folio']=='5') ){
                                    
                                    if ($alumno_exa->estado=='2') {
                                        session(['idAluIngles' => $alumno_exa->id ]);
                                        session(['confi' => $confi_pago->id]);
                                        session(['ingles' => 'MSJ2']);
                                    } else { session(['ingles' => 'OCULTAR' ]); }
                                } else {     session(['ingles' => 'OCULTAR' ]); }
                            } else {         session(['ingles' => 'OCULTAR' ]); }

                        }

                            
                        

                        Bitacora::create([ 'fk_idFolio' => $alu->folio ]);
                        
                        return response()->json([ 'exito' => 'session creada oki', 'vista'=>'principal' ]);
                    
                    } else { return response()->json([ 'error' => 'Contraseña incorrecta!!' ]); }
                } else { //Buscar alumno por numero de control
                    
                    $alu = RF_Alumno::where('id',$data['folio'])->
                                    //where('nip',$data['password'])->
                                    first();


                    //dd($alu);
                    if ($alu!=null) {
                        $pw = explode('-', $alu->nip);
                        if ($pw[0] == $data['password']){
                            
                            $sistemas = 0; //sumando accesos para iniciar sesion o no

                            session(['tipo' => '_ALUMNO' ]);
                            session(['folio' => $alu->id ]);
                            session(['nombre' => $alu->nombre ]);
                            Bitacora::create([ 'fk_idFolio' => $alu->id ]);

                            $titulo = TIT_PorcentajeView::where('num_control', $alu->id)->first();
                            if ($titulo!=null) {
                                session(['titulo' => '_SHOW' ]);
                                session(['porcentaje' => $titulo->porcentaje ]);
                                $sistemas++;
                            } else {
                                session(['titulo' => '_HIDE' ]);
                            }

                            if ($sistemas>0) {
                                return response()->json([ 'exito' => 'session creada oki', 'vista'=>'seleccion' ]);    
                            } /*else {
                                return response()->json([ 'error' => 'No hay modulos pendientes.' ]);
                            }*/
                            


                            

                            //validar examen sino acceso denegado
                            //if ($date>$confi->fecha_mostrar&&$date<$confi->fecha_ocultar || $alumno_exa!=null) {

                            
                            if ($alu->id=='10650121' || $alu->id=='10651111') {
                              $acceso = RF_AlumnoLiberacionView::where('id', $alu->id)
                                  ->first();
                            } else{
                              $acceso = RF_AlumnoLiberacionView::where('id', $alu->id)
                                  ->where('fecha_examen', $date->format('Y-m-d') )
                                  ->where('hora_inicio_examen','<', $date->format('H:i:s') )
                                  ->where('hora_cierre_examen','>', $date->format('H:i:s') )
                                  ->orderBy('id_configuracion', 'desc')
                                  ->first();
                            }
                              
                            //dd($acceso);
                            if ($acceso!=null) {
                                session(['confi' => $acceso->id_configuracion]);
                                session(['idAluIngles'=>$acceso->id_alu_pago]);
                                if ($acceso->confi_estado=='4') {
                                    session(['ingles' => '_UBICACION' ]);
                                } else if ($acceso->confi_estado=='2') {
                                    session(['ingles' => '_LIBERACION' ]);
                                }
                                
                                return response()->json([ 'exito' => 'session creada oki', 'vista'=>'p_ingles'  ]);                            
                            } else {
                                return response()->json([ 'error' => 'Acceso denegado' ]);
                            }
                        } else {
                            return response()->json([ 'error' => 'Contraseña Incorrecta!' ]);
                        }

                    } else {
                        return response()->json([ 'error' => 'No. de solicitud o No. de control no existe!!' ]);
                    }

                }

            } else { return response()->json([ 'error' => 'Por favor, espera hasta la fecha indicada.' ]); }
        //} else { return response()->json([ 'error' => 'Por favor, intenta más tarde. Estamos actualizando la plataforma.' ]); }

    }

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

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

    /**
     * Update the specified resource in storage.
     *
     * @param  Request  $request
     * @param  int  $id
     * @return Response
     */
    public function update(Request $request, $id)
    {
        //
    }

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

    public function titulo(Request $request){
        $data = $request->all();
        
        if ($data['noControl']!="") {

            $dato = array(  'noControl'=> $data['noControl'] );

            //el 5 en para q se hagan 15 minutos
            setcookie('olutit', json_encode($dato), time()+(60*15) , '/', 'zitacuaro.tecnm.mx' );
            return response()->json([ 'exito' => 'session creada oki' ]);

        } else {
            return response()->json(['error'=>"Error al iniciar Sesion"]);
        }
            
    }

     public function logout(){
        //Auth::logout();
        session()->forget('folio');
        return Redirect::to('/');
    }


}
