<?php

namespace App\Http\Controllers;
date_default_timezone_set('America/Mexico_city');
use Illuminate\Http\Request;
use App\Http\Requests\CreateDependenciaRequest;
use App\Http\Requests\UpdateDependenciaRequest;

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\Controllers\Controller;
use Carbon\Carbon;
use App\Actividad;
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;

class DependenciaController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $c = new \Carbon\Carbon();
        $fecha = $c->now();
        $fech = $fecha->format('Y-m-d');

        $dependencias = Dependencia::where('status_dep', '=', 1)->get();
        return view('dependencias.listado', ['dependencias'=>$dependencias, 'fecha'=>$fech]);
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        return view('dependencias.nueva');
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(CreateDependenciaRequest $request)
    {
        DB::beginTransaction();
        $dependencia = new Dependencia();


        $nombre = strtr(strtoupper($request['nombre']),"àèìòùáéíóúçñäëïöü","ÀÈÌÒÙÁÉÍÓÚÇÑÄËÏÖÜ");

        //$nombre = strtoupper($request['nombre']);//no me da mayusculas los acentos, el otro ejemplo si.

        $titular = strtr(strtoupper($request['titular']),"àèìòùáéíóúçñäëïöü","ÀÈÌÒÙÁÉÍÓÚÇÑÄËÏÖÜ");
        $puesto = strtr(strtoupper($request['puesto']),"àèìòùáéíóúçñäëïöü","ÀÈÌÒÙÁÉÍÓÚÇÑÄËÏÖÜ");
        $domicilio = strtr(strtoupper($request['domicilio']),"àèìòùáéíóúçñäëïöü","ÀÈÌÒÙÁÉÍÓÚÇÑÄËÏÖÜ");
        $telefono = $request['telefono'];
        $email = strtr(strtoupper($request['email']),"àèìòùáéíóúçñäëïöü","ÀÈÌÒÙÁÉÍÓÚÇÑÄËÏÖÜ");

        $inicio = $request->inicio_convenio;
        $termino = $request->termino_convenio;

        $dependencia->nombre_dep = $nombre;
        $dependencia->titular_dep = $titular;
        $dependencia->cargo_dep = $puesto;
        $dependencia->domicilio_dep = $domicilio;
        $dependencia->telefono_dep = $telefono;
        $dependencia->email_dep = $email;
        $dependencia->status_dep = 1;
        $dependencia->inicioconvenio_dep = $inicio;
        $dependencia->terminoconvenio_dep = $termino;

        $dependencia->save();

        if ($dependencia) {
            DB::commit();
            return response()->json($dependencia);
        }else{
            DB::rollBack();
            return response()->json($dependencia);
        }
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        $dependencia = Dependencia::find($id);

        return response()->json($dependencia);
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        $dependencia = Dependencia::find($id);

        return response()->json($dependencia);
    }

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

        $nombreN = strtr(strtoupper($request['nombre_mod']),"àèìòùáéíóúçñäëïöü","ÀÈÌÒÙÁÉÍÓÚÇÑÄËÏÖÜ");
        $titularN = strtr(strtoupper($request['titular_mod']),"àèìòùáéíóúçñäëïöü","ÀÈÌÒÙÁÉÍÓÚÇÑÄËÏÖÜ");
        $puestoN = strtr(strtoupper($request['puesto_mod']),"àèìòùáéíóúçñäëïöü","ÀÈÌÒÙÁÉÍÓÚÇÑÄËÏÖÜ");
        $domicilioN = strtr(strtoupper($request['domicilio_mod']),"àèìòùáéíóúçñäëïöü","ÀÈÌÒÙÁÉÍÓÚÇÑÄËÏÖÜ");
        $telefonoN = $request['telefono_mod'];
        $emailN = strtr(strtoupper($request['email_mod']),"àèìòùáéíóúçñäëïöü","ÀÈÌÒÙÁÉÍÓÚÇÑÄËÏÖÜ");

        $inicio = $request['inicio_convenio'];
        $termino = $request['termino_convenio'];

        DB::beginTransaction();

        $dependencia = Dependencia::find($id);

        $dependencia->nombre_dep = $nombreN;
        $dependencia->titular_dep = $titularN;
        $dependencia->cargo_dep = $puestoN;
        $dependencia->domicilio_dep = $domicilioN;
        $dependencia->telefono_dep = $telefonoN;
        $dependencia->email_dep = $emailN;
        $dependencia->inicioconvenio_dep = $inicio;
        $dependencia->terminoconvenio_dep = $termino;

        $dependencia->save();

        if ($dependencia) {
            DB::commit();
            return response()->json($dependencia);
        }else{
            DB::rollBack();
            return response()->json($dependencia);
        }

        
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        DB::beginTransaction();
        $dependencia = Dependencia::find($id);
        $dependencia->status_dep=0;

        $dependencia->save();
        if ($dependencia) {
            DB::commit();
            $dependencias = Dependencia::all();
            return response()->json($dependencia);
        }else{
            DB::rollBack();
            return response()->json($dependencia);
        }
        
    }
}
