<?php

namespace App\Http\Controllers;
date_default_timezone_set('America/Mexico_city');
use Illuminate\Http\Request;
use Illuminate\Session\SessionManager;
use Illuminate\Http\UploadedFile;
use Illuminate\Support\Facades\Storage;
use App\Mail\EnvioMails;//Archivo PHP que se creo para el envio de archivos
use App\Mail\ServicioSocial;
use App\Http\Requests;
use App\Http\Requests\SubirPlanRequest;
use App\Http\Controllers\Controller;
use Carbon\Carbon;
use App\Actividad;
use App\Archivos;
use App\Alumno;
use App\Autorizacion;
use App\Calendario;
use App\Carrera;
use App\Carta;
use App\Dependencia;
use App\Evaluacion;
use App\EvaluacionAlumno;
use App\EventoCalendario;
use App\Membrete;
use App\Programa;
use App\RenglonEvaluacion;
use App\Reporte;
use App\ReporteEvaluacion;
use App\Respuesta;
use App\Solicitud;
use App\SubirArchivo;
use App\TipoArchivo;
use File;
use put;
use DB;
use PDF;
use Download;
use View;
use App;
use Mail;
use Session;
use csrf_token;
use QrCode;
use Validator;
use save;

class SubirPlanController 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()
    {
        return view('subirarchivos.subirPlanTrabajo');
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(SubirPlanRequest $request)
    {
        $tipoarchivo = $request['tipo'];
        //obtenemos el campo file definido en el formulario
       $file = $request->file('arc');
 //dd($file);
       //obtenemos el nombre del archivo
       $nombre = $file->getClientOriginalName();

       $extension = explode('.', $nombre);

       if ($extension[1]=='docx' || $extension[1]=='doc' || $extension[1]=='rtf' || $extension[1]=='odt') {
           
            DB::beginTransaction();
            //indicamos que queremos guardar un nuevo archivo en el disco local
            $guardar = \Storage::disk('planTrabajo')->put($nombre,  \File::get($file));
    
            if ($guardar) {
                $archivo = new Archivos();
                $archivo->nombre_archi = $nombre;
                $archivo->id_arc = 3;
                $archivo->status = 1;
                $archivo->save();
                if ($archivo) {
                    DB::commit();
                    return response()->json(['exito'=>'El archivo se subió con éxito.']);
                }else{
                    DB::rollBack();
                    return response()->json(['error'=>'Ocurrió un error. Durante el registro, vuelve a intentarlo.']);
                }
            }else{
                DB::rollBack();
                return response()->json(['error'=>'Ocurrió un error. No se pudo guardar en el servidor, vuelve a intentarlo.']);
            }
        }else{
            DB::rollBack();
            return response()->json(['error'=>'El archivo no es válido, verifica que sea un archivo WORD con alguna de las siguientes extensiones: docx, doc, odt ó rtf.']);
        }
    }

    /**
     * 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)
    {
        //
    }

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