<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use Carbon\Carbon;
use App\Documentos;
use App\Http\Requests;
use App\AlumnosAdmision;
use App\DocumentosFecha;
use App\DocumentosAlumnos;
use App\Http\Controllers\Controller;
use App\Http\Requests\DocumentosRequest;


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

    /**
     * Show the form for creating a new resource.
     *
     * @return Response
     */
    public function create()
    {
        if (session('vistaForm')=='NO') {
            $a = AlumnosAdmision::where('folio', '=', session('folio'))->select('pago', 'fk_idPeriodo')->first();
            if ($a->pago=='1') {
                    
                $f = DocumentosFecha::where('fk_idPeriodo', '=', $a->fk_idPeriodo)->first();
                $hoy = Carbon::now(); //2015-01-01 00:00:00

                if ( (session('folio')==1 || $f->fecha_subida < $hoy && $f->fecha_cierre > $hoy) ) {
                
                    return view('documentos.principal_subir')
                        ->with('documentos', Documentos::where('estado', '=', '1')->get())
                        ->with('docs_alumno', DocumentosAlumnos::where('fk_idFolio', '=', session('folio'))->get());   
                } else {
                    return response()->json(['estatus' => 'ERROR', 'mensaje' => "<b>Tu pago ha sido autorizado.</b><br><br>Esta opción se activará a partir del ".$f->fecha_subida->format('d-m-Y')." al ".$f->fecha_cierre->format('d-m-Y')."."]);
                }

            } else {
                return response()->json(['estatus' => 'ERROR', 'mensaje' => "Antes de continuar, debes realizar tu pago de acuerdo a tu manual de ingreso. Si ya realizaste tu pago por favor espera a que sea validado por el Departamento de Recursos Financieros."]);
            }
        } else {
            return response()->json(['estatus' => 'ERROR', 'mensaje' => "Por favor, primero responde las preguntas."]);
        }
         
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  Request  $request
     * @return Response
     */
    public function store(DocumentosRequest $request) {
        $data = $request->all();
        $now = new \DateTime();
        
        //obtenemos el campo file definido en el formulario
        $file = $request->file('imagen');
        $extension = $file->getClientOriginalExtension();
        if ($extension=='jpg' || $extension=='jpeg' || $extension=='pdf' || $extension=='JPG' || $extension=='JPEG' || $extension=='PDF') {
            $fileName = session('folio').'-'.$data['nombre_doc'].'.'.$extension;
            
            //indicamos que queremos guardar un nuevo archivo en el disco local
            \Storage::disk('local')->put($fileName,  \File::get($file));

            /*
            *   IMPORTANTE
            *
            *   VALIDAR ANTES DE GUADAR EL DOCUMENTO NO EXISTA 
            *   YA UNO EN LA BASE DE DATOS. SE DIO EL CASO DE 
            *   QUE SUBIO MAS DE UNA VEZ EL MISMO.
            */
            DocumentosAlumnos::create([
                'nombre' => $fileName,
                'estado' => '0',
                'fk_idFolio' => session('folio'),
                'fk_idDocumento' => $data['idDocumento'],
            ]);

            return response()->json([ 'estatus' => 'OK' , 'exito' => 'En revisión' ]);
        } else {
            return response()->json([ 'estatus' => 'ERROR', 'error' => 'EL ARCHIVO DEBE DE SER EN FORMATO: JPG, JPEG, PDF.' ]);
        }
    }

    /**
     * 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(DocumentosRequest $request) {
        $data = $request->all();
        
        var_dump($data);
        dd("hola desde controladorssssss");

        //obtenemos el campo file definido en el formulario
        $file = $request->file('imagen');
        $extension = $file->getClientOriginalExtension();
        if ($extension=='jpg' || $extension=='jpeg') {
            $fileName = session('folio').'-'.$data['nombre_doc'].'.'.$extension;
            
            \Storage::disk('local')->delete($fileName);
            //indicamos que queremos guardar un nuevo archivo en el disco local
            \Storage::disk('local')->put($fileName,  \File::get($file));


            $doc_alu = DocumentosAlumnos::find($data['idDocumentoAlumno']);
            $doc_alu->estado = 1;
            $doc_alu->save();


            return response()->json([ 'estatus' => 'OK' , 'exito' => 'En revisión' ]);
        } else {
            return response()->json([ 'estatus' => 'ERROR', 'error' => 'IMAGEN DEBE SER UN ARCHIVO CON FORMATO: JPG, JPEG.' ]);
        }
    }*/

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


    public function update_doc(DocumentosRequest $request) {
        $data = $request->all();
        
        //obtenemos el campo file definido en el formulario
        $file = $request->file('imagen');
        $extension = $file->getClientOriginalExtension();
        if ($extension=='jpg' || $extension=='jpeg' || $extension=='pdf' || $extension=='JPG' || $extension=='JPEG' || $extension=='PDF') {
            
            $doc_alu = DocumentosAlumnos::find($data['idDocumentoAlumno']);

            \Storage::disk('local')->delete($doc_alu->nombre);

            $fileName = session('folio').'-'.$data['nombre_doc'].'.'.$extension;
            //indicamos que queremos guardar un nuevo archivo en el disco local
            \Storage::disk('local')->put($fileName,  \File::get($file));

            
            $doc_alu->nombre = $fileName;
            $doc_alu->estado = 1;
            $doc_alu->save();

            return response()->json([ 'estatus' => 'OK' , 'exito' => 'En revisión' ]);
        } else {
            return response()->json([ 'estatus' => 'ERROR', 'error' => 'EL ARCHIVO DEBE DE SER EN FORMATO: JPG, JPEG, PDF.' ]);
        }
    }
        
}
