<?php

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/

//Auth\Login
Route::get('/',[ 'as' => 'login','uses' => 'Auth\LoginController@getLogin' ]);
Route::get('empresa/login',[ 'uses' => 'Auth\LoginController@getLoginEmpresa' ]);
Route::get('logout','Auth\LoginController@logout');
Route::post('login',['uses' => 'Auth\LoginController@login' ])->name('login.post');

//Auth\ForgotPassword
Route::get('password/email', [ 'as' => 'password.request','uses' => 'Auth\ForgotPasswordController@showLinkRequestForm' ]);
Route::get('password/reset/{token}', 'Auth\ResetPasswordController@showResetForm');
Route::post('password/email',  ['as' => 'password.email','uses' => 'Auth\ForgotPasswordController@sendResetLinkEmail' ]);

//Auth\ResetPassword
Route::post('password/reset/{token}', 'Auth\ResetPasswordController@reset')->name('password.reset');

//Auth\Register
//Route::get('register', 'Auth\RegisterController@showRegistrationForm')->name('register');
//Route::get('register', 'Auth\RegisterController@showRegistrationForm')->name('register');

//BolsaTrabajo\GestionBolsaDeTrabajo
Route::get('empresa/registro','BolsaTrabajo\GestionBolsaDeTrabajoController@registroEmpresa');
Route::post('empresa/crear', 'BolsaTrabajo\GestionBolsaDeTrabajoController@crearEmpresa')->name('empresa.crear');

//Anuncio
Route::get('anuncios','AnuncioController@getAnunciosGeneral')->name('anuncios.general.get');
Route::get('anunciosdetalle/{id}','AnuncioController@getAnunciosGeneralDetalle')->name('anuncios.detalle.general.get');
Route::post('anuncios','AnuncioController@postAnunciosGeneral')->name('anuncios.general.get');

//Provincia/Departamento/Distrito
//Route::get('provincia','Bienestar\BienestarController@getProvincias');
//Route::get('departamento','Bienestar\BienestarController@getDepartamentos');
//Route::get('distrito','Bienestar\BienestarController@getDistritos');

//ActaConsolidacion
Route::get('acta/{especialidadID}/{periodoID}/{grupoID}','ActaConsolidacionController@getActaConsolidacion');

//Miseventos
Route::group(['prefix' => 'miseventos'], function() {
    //Miseventos_Evento
    Route::get('/','EventoController@getMisEventos');
    Route::post('/','EventoController@postMisEventos')->name('miseventos.post');
});

//Gestion\Egresados
Route::group(['prefix' => 'gestion/egresados'], function() {
    //GestionEgresados
    Route::get('/','GestionEgresadosController@getEgresados');
    Route::get('crear','GestionEgresadosController@getEgresadosCrear');
    Route::get('get','GestionEgresadosController@getAlumnos')->name('gestion.egresados.get');
    Route::get('especialidades','GestionEgresadosController@getEspecialidades')->name('gestion.egresados.especialidades');
    Route::get('editar/{id}','GestionEgresadosController@getEgresadosEditar')->name('gestion.egresados.editar');
    Route::get('carreras','GestionEgresadosController@getCarrera')->name('gestion.egresados.carreras');
    Route::post('/','GestionEgresadosController@postEgresados')->name('gestion.egresados.list.post');
    Route::post('crear','GestionEgresadosController@postEgresadosCrear')->name('gestion.egresados.crear.post');
    Route::post('editar','GestionEgresadosController@postEgresadosEditar')->name('gestion.egresados.editar.post');
    Route::post('eliminar','GestionEgresadosController@postEgresadosEliminar')->name('gestion.egresados.eliminar.post');
});

//Authenticated
Route::group(['middleware' => ['authenticated']], function() {
    //Authenticated_ReporteNota_Extra
    Route::get('especialidad/periodo/{periodoID}','Reporte\NotaController@especialidadxperiodo');
    Route::get('especialidad/curso/{especialidadID}','Reporte\NotaController@cursoxespecialidad');
    Route::get('especialidad/seccion/{cursoID}','Reporte\NotaController@seccionxcurso');

    //Authenticated_Usuario
    Route::group(['prefix' => 'usuario'], function() {
        //Authenticated_Usuario
        Route::get('{dni}', 'UsuarioController@getDNIUsuario');
        Route::post('roles', 'UsuarioController@postRolesUsuario')->name('usuario.roles.post');
        Route::post('rolesdependencia', 'UsuarioController@postRolesUsuarioDependencia')->name('usuario.rolesdependencia.post');
    });

    //Authenticated_Perfil\Perfil
    Route::get('perfil','Perfil\PerfilController@index');
    Route::post('perfil/datos','Perfil\PerfilController@datosSubmit')->name('perfil.datos');
    Route::post('perfil/empresa','Perfil\PerfilController@empresaSubmit')->name('perfil.empresa');
    Route::post('perfil/password','Perfil\PerfilController@passwordSubmit')->name('perfil.password');

    //Authenticated_Perfil\Experiencia
    Route::get('perfil/experiencias','Perfil\ExperienciaController@Index');
    Route::get('perfil/experiencia/registrar','Perfil\ExperienciaController@registrarForm');
    Route::get('perfil/experiencia/editar/{id}','Perfil\ExperienciaController@editarForm');
    Route::post('perfil/experiencia/registrar','Perfil\ExperienciaController@registrarSubmit')->name('experiencia.registrar');
    Route::post('perfil/experiencia/editar','Perfil\ExperienciaController@editarSubmit')->name('experiencia.editar');
    Route::post('perfil/experiencia/eliminar','Perfil\ExperienciaController@eliminarSubmit');




    //Authenticated_Foro
    Route::group(['prefix' => 'foro'], function() {
        //Authenticated_Foro
        Route::get('/','ForoController@index');
        Route::get('categoria/{id}','ForoController@categoria')->name('categoria.search');
        Route::get('favoritos','ForoController@temasFavoritos')->name('favoritos.search');
        Route::get('creados','ForoController@temasCreados')->name('creados.search');
        Route::get('tema/registrar/{id}','ForoController@registrarForm');
        Route::get('tema/{id}','ForoController@tema');
        Route::post('tema/registrar','ForoController@registrarSubmit')->name('tema.registrar');
        Route::post('tema/comentario','ForoController@comentarioSubmit')->name('comentario.registrar');
        Route::post('tema/comentario/eliminar/{id}','ForoController@eliminarComentario');
        Route::post('tema/favorito/{id}','ForoController@favorito');
        Route::post('tema/eliminar/{id}','ForoController@eliminarTema');
        Route::post('tema/removerfav/{id}','ForoController@removeFavorito');
    });

    //Authenticated_Encuestas
    Route::group(['prefix' => 'encuestas'], function() {
        //Authenticated_Encuesta
        Route::get('/','EncuestaController@getIndex');
        Route::get('responder/{id}','EncuestaController@getResponder');
        Route::get('respuestas/{id}','EncuestaController@getRespuestas');
        Route::get('respuestasdetalle/{id}/{userID}','EncuestaController@getRespuestasADM');
        Route::post('get','EncuestaController@getEncuestas')->name('encuesta.usuario.get');
        Route::post('responder','EncuestaController@postResponder')->name('encuesta.responder');
    });

    //Authenticated_Messages
    Route::group(['prefix' => 'messages'], function() {
        //Authenticated_Messages
        Route::get('/', ['as' => 'messages', 'uses' => 'MessagesController@index']);
        Route::get('create', ['as' => 'messages.create', 'uses' => 'MessagesController@create']);
        Route::get('{id}', ['as' => 'messages.show', 'uses' => 'MessagesController@show']);
        Route::get('update/list', ['uses' => 'MessagesController@getLastMessages']);
        Route::post('/', ['as' => 'messages.store', 'uses' => 'MessagesController@store']);
        Route::put('{id}', ['as' => 'messages.update', 'uses' => 'MessagesController@update']);
    });

    //Authenticated_Notifications
    Route::group(['prefix' => 'notifications'], function() {
        //Authenticated_Notifications
        Route::get('/', ['as' => 'notifications', 'uses' => 'NotificationsController@index']);
        Route::get('update/list', ['uses' => 'NotificationsController@getLastNotifications']);
        Route::post('/', ['as' => 'notifications.store', 'uses' => 'NotificationsController@store']);
    });

    //Authenticated_Inicio
    Route::group(['prefix' => 'inicio'], function() {
        Route::get('/','InicioController@getIndex');
    });
});

Route::group(['middleware' => ['role:ADMBolsa|Administrador|Empresa']],function(){
    //Administrador_BolsaTrabajo\GestionBolsaDeTrabajo_General
    Route::get('gestionbolsa/ofertas','BolsaTrabajo\GestionBolsaDeTrabajoController@indexofertas');
    Route::get('gestionbolsa/ofertas/agregar','BolsaTrabajo\GestionBolsaDeTrabajoController@registroOferta');
    Route::get('gestionbolsa/misofertas','BolsaTrabajo\GestionBolsaDeTrabajoController@misOfertas');
    Route::get('gestionbolsa/alumnos','BolsaTrabajo\GestionBolsaDeTrabajoController@indexalumnos');
    Route::get('gestionbolsa/tbalumnos/{especialidadID}/{cicloID}','BolsaTrabajo\GestionBolsaDeTrabajoController@filtroalumnos');
    Route::get('gestionbolsa/empresas','BolsaTrabajo\GestionBolsaDeTrabajoController@indexempresas');
    Route::get('gestionbolsa/empresas/estado/{UsuarioID}','BolsaTrabajo\GestionBolsaDeTrabajoController@cambiarestado');
    Route::get('gestionbolsa/empresas/ofertas/{UsuarioID}','BolsaTrabajo\GestionBolsaDeTrabajoController@ofertasxempresa');
    Route::post('oferta/crear', 'BolsaTrabajo\GestionBolsaDeTrabajoController@crearOferta')->name('oferta.crear');
    Route::get('bolsa/perfil/experiencias/{UsuarioID}','BolsaTrabajo\GestionBolsaDeTrabajoController@expusuario');

//Administrador_BolsaTrabajo\GestionBolsaDeTrabajo_Empresa
    Route::get('empresas/afiliacion/aceptar/{UserID}','BolsaTrabajo\GestionBolsaDeTrabajoController@sendcorreoaceptado');
    Route::get('empresas/afiliacion/rechazar/{UserID}','BolsaTrabajo\GestionBolsaDeTrabajoController@sendcorreorechazar');

    //Administrador_BolsaTrabajo\GestionBolsaDeTrabajo_Ofertas
    Route::get('bolsatrabajo/oferta/detalle/{OfertaID}','BolsaTrabajo\GestionBolsaDeTrabajoController@detalleoferta');
    Route::get('bolsatrabajo/oferta/editar/{OfertaID}','BolsaTrabajo\GestionBolsaDeTrabajoController@editaroferta');
    Route::get('bolsatrabajo/oferta/elimar/{OfertaID}','BolsaTrabajo\GestionBolsaDeTrabajoController@eliminaroferta');
    Route::get('bolsatrabajo/usuario/detalle/{UsuarioID}','BolsaTrabajo\GestionBolsaDeTrabajoController@detalleusuario');
    Route::post('bolsatrabajo/oferta/actualizar','BolsaTrabajo\GestionBolsaDeTrabajoController@actualizaroferta')->name('oferta.actualizar');

});


Route::group(['prefix' => 'asistencia'], function() {
    Route::group(['prefix' => 'personal'], function() {
        Route::get('index','AsistenciaController@getAsistenciaPersonal');
        Route::post('listado','AsistenciaController@getAsistenciaPersonal')->name('asistencia.personal');

    });
});


Route::group(['prefix' => 'asistencia'], function() {

    Route::group(['middleware' => ['role:Administrador']],function(){
        Route::group(['prefix' => 'personal'], function() {
            Route::get('/','AsistenciaController@getAsistenciaPersonal');
            Route::post('listado','AsistenciaController@postAsistenciaPersonal')->name('listado.asistencia.personal');
            Route::get('validar/{date}','AsistenciaController@getValidar');
            Route::post('registro','AsistenciaController@postRegistroPersonal')->name('tomar.asistencia.personal');
            Route::get('formato','AsistenciaController@getFormato')->name('descargar.formato.excel');
            Route::post('carga','AsistenciaController@postCargaMasiva')->name('carga.masiva.excel');
        });
    });

    Route::group(['middleware' => ['role:Profesor']],function(){
        Route::group(['prefix' => 'alumnos'], function() {

            Route::get('/','AsistenciaController@getAsistenciaAlumno');
            Route::post('listado','AsistenciaController@postAsistenciaAlumno')->name('listado.asistencia.alumnos');
            Route::post('registro','AsistenciaController@postRegistroAlumnos')->name('tomar.asistencia.alumnos');
        });
    });

});

//Administrador
Route::group(['middleware' => ['role:Administrador']], function() {
    //Administrador_Admin\UIT
    Route::get('admin/uit','Admin\UITController@getIndex');
    Route::post('admin/uit/agregar','Admin\UITController@postAgregar')->name('admin.uit.agregar.post');
    Route::post('admin/uit/editar','Admin\UITController@postEditar')->name('admin.uit.editar.post');
    Route::post('admin/uit/eliminar','Admin\UITController@postEliminar')->name('admin.uit.eliminar.post');

    //Administrador_Admin\Dependencia
    Route::get('admin/dependencia','Admin\DependenciaController@getIndex');
    Route::get('admin/dependencia/usuario','Admin\DependenciaController@getIndexUsuario');
    Route::get('admin/dependencia/usuario/editar/{id}','Admin\DependenciaController@getEditarUsuario');
    Route::post('admin/dependencia/agregar','Admin\DependenciaController@postAgregar')->name('admin.dependencia.agregar.post');
    Route::post('admin/dependencia/editar','Admin\DependenciaController@postEditar')->name('admin.dependencia.editar.post');
    Route::post('admin/dependencia/eliminar','Admin\DependenciaController@postEliminar')->name('admin.dependencia.eliminar.post');
    Route::post('admin/dependencia/usuario','Admin\DependenciaController@postUsuario')->name('admin.dependencia.usuario.post');
    Route::post('admin/dependencia/usuario/agregar','Admin\DependenciaController@postAgregarUsuario')->name('admin.dependencia.usuario.agregar.post');
    Route::post('admin/dependencia/usuario/eliminar','Admin\DependenciaController@postEliminarUsuario')->name('admin.dependencia.usuario.eliminar.post');

    //Administrador_ProyectoSocial
    Route::get('gestionarproyecto/agregar','ProyectoSocialController@getAgregarProyeccion');
    Route::get('gestionarproyecto','ProyectoSocialController@getListProyeccionSocial')->name('gestion.proyeccion');
    Route::get('gestionarproyecto/editar/{id}','ProyectoSocialController@getEditarProyeccion');
    Route::get('gestionarproyecto/eliminar/{id}','ProyectoSocialController@getEliminarProyeccion');
    Route::get('pdf','ProyectoSocialController@enlacepdf')->name('proyeccionsocial.pdf');
    Route::post('agregarcampo','ProyectoSocialController@postAgregarInvestigacion');
    Route::post('proyeccionsocial','ProyectoSocialController@postAgregarProyeccion')->name('proyeccion.crear');
    Route::post('gestionarproyecto/editar','ProyectoSocialController@postEditarProyeccion')->name('proyeccion.editar');

    //Administrador_Admin\Alumno
    Route::get('alumno/editar/{id}','Admin\AlumnoController@editarForm')->name('alumno.actualizar');
    Route::post('alumno/editar/','Admin\AlumnoController@editarSubmit');
    Route::post('alumno/eliminar/','Admin\AlumnoController@eliminar');

    //Administrador_Admin\Apoderado
    Route::get('admin/apoderados','Admin\ApoderadoController@index');
    Route::post('admin/apoderados/get','Admin\ApoderadoController@getAlumnos')->name('gestion.apoderados.get');
    Route::get('admin/apoderados/editar','Admin\ApoderadoController@getApoderado');
    Route::post('admin/apoderados/registrar','Admin\ApoderadoController@postRegistrarApoderado')->name('apoderado.registrar');
    Route::post('admin/apoderados/editar','Admin\ApoderadoController@postEditarApoderado')->name('apoderado.editar');
    Route::get('admin/apoderados/ficha/{id}','Admin\ApoderadoController@getFichaAlumno');

    Route::get('admin/practicas','Admin\PracticaController@index');
    Route::post('admin/practicas/get','Admin\PracticaController@getPracticas')->name('gestion.practicas.get');
    Route::post('admin/practicas/validar','Admin\PracticaController@postValidar');

    //Administrador_Reporte\Asistencia_General
    Route::get('reportesasistencia/alumnos','Reporte\AsistenciaController@indexalumnos');
    Route::get('reportesasistencia/alumnos/cursos','Reporte\AsistenciaController@cursos');
    Route::get('reportesasistencia/alumnos/lista','Reporte\AsistenciaController@alumnos');
    Route::get('reportesasistencia/alumnos/asistencias/cursos/{userID}','Reporte\AsistenciaController@asistenciaalumno');
    Route::get('reportesasistencia/cursos/asistencias/alumnos/detalle/{cursoseccionID}','Reporte\AsistenciaController@asistenciacursoalumno');

    //Administrador_Reporte\Asistencia_Listas
    Route::get('cursoxciclo/lista/{periodoID}','Reporte\AsistenciaController@cursoxciclo');
    Route::get('seccionxcurso/lista/{cursoID}/{periodoID}','Reporte\AsistenciaController@seccionxcurso');

    //Administrador_Reporte\Asistencia_Tabla
    Route::get('reportesasistencia/newtable/{periodoID}/{cursoID}/{seccionID}','Reporte\AsistenciaController@tbcursos');

    //Administrador_Reporte\Asistencia_Personal
    Route::get('reportesasistencia/personal','Reporte\AsistenciaController@indexpersonal');
    Route::get('reportesasistencia/personal/asistencias/{userID}','Reporte\AsistenciaController@asistenciapersonal');
    Route::get('reportesasistencia/personal/asistencias/cursos/{userID}','Reporte\AsistenciaController@asistenciaprofesor');
    Route::get('reportesasistencia/personal/asistencias/cursos/detalle/{seccionID}/{profesorID}','Reporte\AsistenciaController@asistenciaprofesorcurso');

    //Administrador_Reporte\Tramite_General
    Route::get('reportestramite/alumnos','Reporte\TramiteController@tramiteporalumno');
    Route::get('reportestramite/alumnos/tramites/{userID}','Reporte\TramiteController@tramites');
    Route::get('reportestramite/alumnos/tramites/observaciones/{tupausuarioID}','Reporte\TramiteController@observacionTramite');
    Route::get('reportestramite/dependencias','Reporte\TramiteController@dependencias');
    Route::get('reportestramite/dependencias/tramites/{id_dependencia}','Reporte\TramiteController@tramitexdependencia');
    Route::get('reportestramite/periodo','Reporte\TramiteController@periodo');
    Route::get('reportestramite/periodo/tramites/{id_periodo}','Reporte\TramiteController@tramitexperiodo');

    //Administrador_Reporte\Tramite_Tesoreria
    Route::get('reportetesoreria/ingresotupa','Reporte\TramiteController@ingresotupa');

    //Administrador_Reporte\Estadisticos_Personal
    Route::get('reportesestadisticos/asistencia','Reporte\EstadisticosController@indexAsistencia');
    Route::get('graph/asistencia/{mes}','Reporte\EstadisticosController@asistenciagraph');
    Route::get('graph/situacionacademica/alumnosvsegresados','Reporte\EstadisticosController@estudiantesvsgraduados');
    Route::get('graph/situacionacademica/alumnasvsegresadas','Reporte\EstadisticosController@estudiantesvsgraduadosF');

    //Administrador_Reporte\Estadisticos_Tabla
    Route::get('tabla/asistencia/tardanza/{mes}','Reporte\EstadisticosController@tablatardanza');
    Route::get('tabla/asistencia/falta/{mes}','Reporte\EstadisticosController@tablafalta');
    Route::get('tabla/asistencia/permiso/{mes}','Reporte\EstadisticosController@tablapermiso');

    //Administrador_Reporte\Estadisticos_Alumno
    Route::get('graph/asistencia/especialidad/{mes}','Reporte\EstadisticosController@especialidadasistenciagraph');
    Route::get('tabla/asistencia/tardanza/alumno/{mes}','Reporte\EstadisticosController@tablatardanzaAlumnos');
    Route::get('tabla/asistencia/falta/alumno/{mes}','Reporte\EstadisticosController@tablafaltaAlumnos');

    //Administrador_Reporte\Estadisticos_SituacionAcademica
    Route::get('reportesestadisticos/situacionacademica','Reporte\EstadisticosController@indexSituacionAcademica');
    Route::get('graph/situacionacademica/aprobadosvsdesaprobados/{periodoID}','Reporte\EstadisticosController@alumnosaprobadosvsdesaprobados');
    Route::get('graph/situacionacademica/aprobadasvsdesaprobadas/{periodoID}','Reporte\EstadisticosController@alumnasaprobadasvsdesaprobadas');
    Route::get('graph/situacionacademica/rendimientoacademico/{periodoID}','Reporte\EstadisticosController@rendimientoacademico');
    Route::get('graph/situacionacademica/rendimientoacademicoA/{periodoID}','Reporte\EstadisticosController@rendimientoacademicoA');

    //Administrador_Reporte\Estadisticos_Alumnos
    Route::get('reportesestadisticos/alumnos','Reporte\EstadisticosController@indexalumnos');
    Route::get('graph/alumnos/cantidadxespecialidad/{periodoID}','Reporte\EstadisticosController@cantalumnosxespecialdad');
    Route::get('graph/alumnos/cantproyeccionxespecialidad/{periodoID}','Reporte\EstadisticosController@cantproyeccionxespecialidad');
    Route::get('graph/alumnos/cantxgenero','Reporte\EstadisticosController@cantalumnosxgenero');
    Route::get('graph/alumnos/cantidadxdepartamento','Reporte\EstadisticosController@cantalumnospordepartamento');
    Route::get('graph/alumnos/cantidadxprocedencia','Reporte\EstadisticosController@cantalumnosporcolegioprocedencia');
    Route::get('graph/alumnos/cantidadxtipoingreso','Reporte\EstadisticosController@cantalumnosportipoingreso');

    //Administrador_Reporte\Estadisticos_Tramites
    Route::get('reportesestadisticos/tramites','Reporte\EstadisticosController@indextramites');
    Route::get('graph/tramites','Reporte\EstadisticosController@tupasfinalizadosvsiniciados');

    //Administrador_Reporte\Estadisticos_Encuesta
    //Bolsa
    Route::get('reportesestadisticos/bolsatrabajo','Reporte\ReporteBolsaController@indexreportebolsa');
    Route::get('reportesestadisticos/bolsatrabajo/graph1','Reporte\ReporteBolsaController@alumnoslaborandovsnolaborando');
    Route::get('reportesestadisticos/bolsatrabajo/graph2','Reporte\ReporteBolsaController@empresasmasconcurridas');
    Route::get('reportesestadisticos/bolsatrabajo/graph3','Reporte\ReporteBolsaController@empresasconmasofertas');
    Route::get('reportesestadisticos/bolsatrabajo/graph4','Reporte\ReporteBolsaController@alumnosconexpvsalumnossinexp');
    Route::get('reportesestadisticos/bolsatrabajo/egresadosconexpvsegresadossinexp','Reporte\ReporteBolsaController@egresadosconexpvsegresadossinexp');
    Route::get('reportesestadisticos/bolsatrabajo/egresadoslaborando','Reporte\ReporteBolsaController@egresadoslaborandoporanio');
    Route::get('reportesestadisticos/bolsatrabajo/tituladoslaborando','Reporte\ReporteBolsaController@tituladoslaborandoporanio');

    //Titulados
    Route::get('reportesestadisticos/titulados','Reporte\EstadisticosController@indextitulados');
    Route::get('reportesestadisticos/tituladosporperiodo','Reporte\EstadisticosController@tituladosporperiodo');
    Route::get('reportesestadisticos/tituladosporpromocion','Reporte\EstadisticosController@tituladosporpromocion');

    //Eventos
    Route::get('reportesestadisticos/eventos','Reporte\EstadisticosController@indexeventos');
    Route::get('graph/eventos','Reporte\EstadisticosController@eventosmasasistidos');

    //Encuesta
    Route::get('reportesestadisticos/encuestas','Reporte\EstadisticosController@indexreporteencuesta');
    Route::get('reportesestadisticos/encuestas/graph1','Reporte\EstadisticosController@encuestasrespondidasvsnorespondidas');
    Route::get('reportesestadisticos/encuestas/detalle/{encuestaID}','Reporte\EstadisticosController@detalleencuesta');

    //Administrador_Reporte\Reporte_Tesoreria
    Route::get('reportetesoreria/deudores','Reporte\ReporteTesoreriaController@indexdeudores');
    Route::get('reportetesoreria/pagos','Reporte\ReporteTesoreriaController@indexpagos');
    Route::get('reportetesoreria/boletasanuladas','Reporte\ReporteTesoreriaController@indexboletasanuladas');
    Route::get('reportetesoreria/cierredeturno','Reporte\ReporteTesoreriaController@indexcierredeturno');
    Route::get('reportetesoreria/cierredeturno/detalle/{cierrecajaID}','Reporte\ReporteTesoreriaController@detallecierrecaja');

    //Administrador_Reporte\ReporteBolsa_Bolsa
    Route::get('reportesestadisticos/bolsatrabajo','Reporte\ReporteBolsaController@indexreportebolsa');
    Route::get('reportesestadisticos/bolsatrabajo/graph1','Reporte\ReporteBolsaController@alumnoslaborandovsnolaborando');
    Route::get('reportesestadisticos/bolsatrabajo/graph2','Reporte\ReporteBolsaController@empresasmasconcurridas');
    Route::get('reportesestadisticos/bolsatrabajo/graph3','Reporte\ReporteBolsaController@empresasconmasofertas');
    Route::get('reportesestadisticos/bolsatrabajo/graph4','Reporte\ReporteBolsaController@alumnosconexpvsalumnossinexp');

    //Administrador_Evento
    Route::get('evento','EventoController@index');
    Route::get('evento/inscrito/{id}','EventoController@showParticipantes')->name('gestion.participantes.get');
    Route::get('evento/detalle/{id}','EventoController@getEventoDetalle')->name('gestion.eventos.detail');
    Route::post('evento','EventoController@getEventos')->name('gestion.eventos.post');
    Route::post('evento/participante','EventoController@getInscriptos')->name('gestion.participantes.post');

    //Administrador_Anuncio
    Route::get('anuncio','AnuncioController@getAnuncios')->name('gestion.anuncios.get');
    Route::get('anuncio/crear','AnuncioController@getAnuncioCrear')->name('gestion.anuncios.crear');
    Route::get('anuncio/editar/{id}','AnuncioController@getAnuncioEditar')->name('gestion.anuncios.editar');
    Route::get('anuncio/responsable','AnuncioController@getResponsables')->name('gestion.anuncios.responsable');
    Route::post('anuncio/crear','AnuncioController@postAnuncioCrear')->name('gestion.anuncios.crear.post');
    Route::post('anuncio/editar','AnuncioController@postAnuncioEditar')->name('gestion.anuncios.editar.post');
    Route::post('anuncio','AnuncioController@postAnuncios')->name('gestion.anuncios.post');
    Route::post('anuncio/eliminar','AnuncioController@postAnuncioEliminar')->name('gestion.anuncios.eliminar');

    //Administrador_Admin\Foro
    Route::get('admin/foro','Admin\ForoController@index')->name('home');
    Route::get('admin/foro/editar/{id}','Admin\ForoController@editarForm');
    Route::get('admin/foro/registrar','Admin\ForoController@registrarForm');
    Route::post('admin/foro/editar','Admin\ForoController@editarSubmit')->name('categoriaforo.editar');
    Route::post('admin/foro/registrar','Admin\ForoController@registrarSubmit')->name('categoriaforo.registrar');
    Route::post('admin/foro/estado/{id}','Admin\ForoController@estadoSubmit');
    Route::post('admin/foro/eliminar/{id}','Admin\ForoController@eliminarSubmit');
    
    //Administrador_Admin\Tramite
    Route::get('admin/tramite/agregar','Admin\TramiteController@getAgregar')->name('admin.tramite.agregar.get');
    Route::get('admin/tramite/editar/{id}','Admin\TramiteController@getEditar')->name('admin.tramite.editar.get');
    Route::get('admin/tramite/requisito/agregar/{id}','Admin\TramiteController@getAgregarRequisito')->name('admin.tramite.requisito.agregar.get');
    Route::get('admin/tramite/requisito/editar/{id}','Admin\TramiteController@getEditarRequisito')->name('admin.tramite.requisito.editar.get');
    Route::get('admin/tramite/resolucion/agregar/{id}','Admin\TramiteController@getAgregarResolucion')->name('admin.tramite.resolucion.agregar.get');
    Route::get('admin/tramite/resolucion/editar/{id}','Admin\TramiteController@getEditarResolucion')->name('admin.tramite.resolucion.editar.get');
    Route::get('admin/tramite/categoria','Admin\TramiteController@getIndexCategoria')->name('admin.tramite.categoria.get');
    Route::post('admin/tramite/agregar','Admin\TramiteController@postAgregar')->name('admin.tramite.agregar.post');
    Route::post('admin/tramite/editar','Admin\TramiteController@postEditar')->name('admin.tramite.editar.post');
    Route::post('admin/tramite/eliminar','Admin\TramiteController@postEliminar')->name('admin.tramite.eliminar.post');
    Route::post('admin/tramite/categoria/agregar','Admin\TramiteController@postAgregarCategoria')->name('admin.tramite.categoria.agregar.post');
    Route::post('admin/tramite/categoria/editar','Admin\TramiteController@postEditarCategoria')->name('admin.tramite.categoria.editar.post');
    Route::post('admin/tramite/categoria/eliminar','Admin\TramiteController@postEliminarCategoria')->name('admin.tramite.categoria.eliminar.post');
    Route::post('admin/tramite/requisito/agregar','Admin\TramiteController@postAgregarRequisito')->name('admin.tramite.requisito.agregar.post');
    Route::post('admin/tramite/requisito/editar','Admin\TramiteController@postEditarRequisito')->name('admin.tramite.requisito.editar.post');
    Route::post('admin/tramite/requisito/eliminar','Admin\TramiteController@postEliminarRequisito')->name('admin.tramite.requisito.eliminar.post');
    Route::post('admin/tramite/resolucion/agregar','Admin\TramiteController@postAgregarResolucion')->name('admin.tramite.resolucion.agregar.post');
    Route::post('admin/tramite/resolucion/editar','Admin\TramiteController@postEditarResolucion')->name('admin.tramite.resolucion.editar.post');
    Route::post('admin/tramite/resolucion/eliminar','Admin\TramiteController@postEliminarResolucion')->name('admin.tramite.resolucion.eliminar.post');
    Route::post('admin/tramite/rol/agregar','Admin\TramiteController@postAgregarRol')->name('admin.tramite.rol.agregar.post');
    Route::post('admin/tramite/rol/eliminar','Admin\TramiteController@postEliminarRol')->name('admin.tramite.rol.eliminar.post');

    //Administrador_Admin\Encuesta
    Route::group(['prefix' => 'admin/encuestas'], function() {
        //Administrador_Admin\Encuesta_General
        Route::get('/','Admin\EncuestaController@getIndex');
        Route::get('get','Admin\EncuestaController@getEncuestas')->name('encuesta.admin.get');
        Route::get('registrar','Admin\EncuestaController@getCrear');
        Route::get('editar/{id}','Admin\EncuestaController@getEditar');
        Route::post('registrar','Admin\EncuestaController@postCrear')->name('encuesta.crear');
        Route::post('editar','Admin\EncuestaController@postEditar')->name('encuesta.editar');
        Route::post('eliminar','Admin\EncuestaController@postEliminar');

        Route::get('importar','Admin\EncuestaController@getImportar');
        Route::post('importar','Admin\EncuestaController@postImportar')->name('encuesta.importar');

        //Administrador_Admin\Encuesta_Enviar
        Route::get('enviar/{id}','Admin\EncuestaController@getEnviar');
        Route::post('enviar/roles','Admin\EncuestaController@postEnviarRoles')->name('encuesta.enviar.roles');
        Route::post('enviar/usuarios','Admin\EncuestaController@postEnviarUsuarios')->name('encuesta.enviar.usuarios');
        Route::post('usuarios/get','Admin\EncuestaController@getUsuarios')->name('encuesta.usuarios.get');

        //Administrador_Pregunta
        Route::group(['prefix' => 'pregunta'], function() {
            //Administrador_Admin\Encuesta
            Route::get('registrar','Admin\EncuestaController@getPreguntaCrear');
            Route::get('editar','Admin\EncuestaController@getPreguntaEditar');
            Route::post('registrar','Admin\EncuestaController@postCrearPregunta')->name('encuesta.pregunta.crear');
            Route::post('editar','Admin\EncuestaController@postEditarPregunta')->name('encuesta.pregunta.editar');
            Route::post('eliminar','Admin\EncuestaController@postEliminarPregunta')->name('encuesta.pregunta.eliminar');
        });
    });

    //Administrador_Personal
    Route::group(['prefix' => 'personal'], function () {
        //Administrador_Usuario
        Route::get('/','UsuarioController@index');
        Route::get('crear', 'UsuarioController@Crear');
        Route::get('edit/{usuarioID}','UsuarioController@Edit');
        Route::get('eliminar/{usuarioID}','UsuarioController@Eliminar');
        Route::get('cambiarestado/{usuarioID}','UsuarioController@cambiarEstado');
        Route::post('crear', 'UsuarioController@crearPersonal')->name('personal.crear');
        Route::post('actualizar', 'UsuarioController@Actualizar')->name('personal.actualizar');
    });


    //Administrador_Cambio de Horario
    Route::group(['prefix' => 'reasignacion'], function () {
        //Administrador_Usuario
        Route::get('/','CambioSeccion\CambioDocenteController@index');
        Route::post('datos','CambioSeccion\CambioDocenteController@getHorarios')->name('admin.reasignacion.data');
        Route::post('solicitar','CambioSeccion\CambioDocenteController@postSolicitud')->name('reasignacion.cambio.seccion');
        Route::post('vista','CambioSeccion\CambioDocenteController@postViewHorario');
        Route::post('detalle','CambioSeccion\CambioDocenteController@postDetalle')->name('horarios.docentes.detalle');
    });

    //Administrador_Cambio de Horario
    Route::group(['prefix' => 'reasignacion'], function () {
        //Administrador_Usuario
        Route::get('/','CambioSeccion\CambioDocenteController@index');
        Route::post('datos','CambioSeccion\CambioDocenteController@getHorarios')->name('admin.reasignacion.data');
        Route::post('solicitar','CambioSeccion\CambioDocenteController@postSolicitud')->name('reasignacion.cambio.seccion');
        Route::post('vista','CambioSeccion\CambioDocenteController@postViewHorario');
        Route::post('detalle','CambioSeccion\CambioDocenteController@postDetalle')->name('horarios.docentes.detalle');
    });


    Route::group(['prefix' => 'record'], function () {

        //Administrador
        Route::get('/','Reporte\RecordAcademicoController@index');

        Route::get('especialidad/list','Reporte\RecordAcademicoController@getEspecialidades');
        Route::get('cursos/list','Reporte\RecordAcademicoController@getCursos');
        Route::get('secciones/list','Reporte\RecordAcademicoController@getSecciones');

        Route::post('especialidad/post','Reporte\RecordAcademicoController@getRecordEspecialidad');
        Route::post('cursoseccion/post','Reporte\RecordAcademicoController@getRecordCursoSeccion');

    });
});

Route::get('reportesasistencia/alumno/asistencias/cursos/detalle/{SeccioncursoID}/{alumnoID}','Reporte\AsistenciaController@asistenciaalumnocurso');

Route::group(['prefix' => 'personal'], function () {
    Route::group(['prefix' => 'justificar'], function (){
        Route::get('/','Admin\JustificarFaltaController@getIndexPersonal');
        Route::post('listado','Admin\JustificarFaltaController@getListadoPersonal')->name('listado.inasistencia.personal');
        Route::post('solicitud','Admin\JustificarFaltaController@postSolicitudPersonal')->name('solicitud.justificacion.personal');
    });
});

Route::group(['prefix' => 'justificacion'], function (){

    Route::group(['middleware' => ['role:Alumno']], function (){
        Route::group(['prefix' => 'alumno'], function (){
            Route::get('/','Admin\JustificarFaltaController@getIndexAlumno');
            Route::post('listado','Admin\JustificarFaltaController@getListaAlumno')->name('listado.inasistencia.alumno');
            Route::post('datos','Admin\JustificarFaltaController@getDatosProfesor')->name('datos.inasistencia.curso');
            Route::post('solicitud','Admin\JustificarFaltaController@postSolicitudAlumno')->name('solicitud.justificacion.alumno');
        });
    });

    Route::group(['middleware' => ['role:Administrador']], function (){
        Route::group(['prefix' => 'administrador'], function (){
            Route::get('/','Admin\JustificarFaltaController@getIndexAdministradorPersonal');
            Route::post('justificaciones','Admin\JustificarFaltaController@postListadoJustificacionesPersonal')->name('admin.lista.justificaciones.personal');
            Route::get('detallepersonal/{r}','Admin\JustificarFaltaController@getDetallePersonal');

            Route::get('alumno','Admin\JustificarFaltaController@getIndexAdministradorAlumnos');
            Route::post('listado','Admin\JustificarFaltaController@postListadoJustificaciones')->name('admin.lista.justificaciones');
            Route::get('detalle/{r}','Admin\JustificarFaltaController@getDetalle');
            Route::post('confirmar','Admin\JustificarFaltaController@postValidar')->name('admin.confirmar.justificaciones');


            Route::get('profesor','Admin\JustificarFaltaController@getIndexAdministradorProfesor');
            Route::post('listado/justificaciones','Admin\JustificarFaltaController@postListadoJustificacionesProfesores')->name('admin.lista.justificaciones.profesor');
        });
    });

    Route::group(['middleware' => ['role:Profesor']], function (){
        Route::group(['prefix' => 'profesor'], function (){
            Route::get('/','Admin\JustificarFaltaController@getIndexProfesor');
            Route::post('listado','Admin\JustificarFaltaController@getListaProfesor')->name('listado.inasistencia.profesor');
            Route::post('solicitud','Admin\JustificarFaltaController@postSolicitudProfesor')->name('solicitud.justificacion.profesor');
        });
    });

});

Route::group(['prefix' => 'reprogramacion'], function (){

    Route::group(['middleware' => ['role:Administrador']], function (){
        Route::group(['prefix' => 'administrador'], function (){
            Route::get('/','Reprogramacion\ReprogramacionController@getListadoReprogramacionRecuperacion');
            Route::post('listado','Reprogramacion\ReprogramacionController@postListadoReprogramacionRecuperacion')->name('listado.reproyrecu.administrador');
            Route::post('formulario','Reprogramacion\ReprogramacionController@getForm')->name('partial.formulario');
            Route::post('confirmacion','Reprogramacion\ReprogramacionController@postConfirmar')->name('confirmacion.reproyrecu.administrador');
            Route::post('detalleprofesor','Reprogramacion\ReprogramacionController@postDatosDelProfesor');
            Route::post('detallereprorecu','Reprogramacion\ReprogramacionController@postDatosRecuRepro');
        });
    });

    Route::group(['middleware' => ['role:Profesor']], function (){
        Route::group(['prefix' => 'profesor'], function (){
            Route::get('/','Reprogramacion\ReprogramacionController@getReprogramacionProfesor');
            Route::get('validar','Reprogramacion\ReprogramacionController@getValidarSeccion');
            Route::get('fecha','Reprogramacion\ReprogramacionController@getValidarDias');
            Route::post('reprogramacion','Reprogramacion\ReprogramacionController@postReprogramacionProfesor')->name('listado.reprogramacion.profesor');
            Route::post('recuperacion','Reprogramacion\ReprogramacionController@postRecuperacionProfesor')->name('listado.recuperacion.profesor');
            Route::post('solicitud/reprogramacion','Reprogramacion\ReprogramacionController@postSolicitud')->name('solicitud.recuperacion.profesor');
            Route::post('solicitud/recuperacion','Reprogramacion\ReprogramacionController@postSolicitud')->name('solicitud.reprogramacion.profesor');
        });
    });

});

Route::group(['prefix' => 'director_carrera'],function(){
    Route::group(['prefix' => 'cursos'],function(){
        Route::get('/','DirectorCurso\CursoController@getIndex');
        Route::post('/','DirectorCurso\CursoController@postIndex')->name('director_carrera.cursos');
        Route::get('periodos','DirectorCurso\CursoController@getPeriodo')->name('director_carrera.cursos.periodos');
        Route::post('especialidades','DirectorCurso\CursoController@postEspecialidades')->name('director_carrera.cursos.especialidades');
    });
});


//Alumno
Route::group(['middleware' => ['role:Alumno']], function() {
    //Alumno_Reporte\Nota
    Route::get('misnotas','Reporte\NotaController@cursosAlumno');
    Route::get('situacionacademica','Reporte\NotaController@situacionacademica');

    //Alumno_Reporte\Asistencia
    Route::get('miasistenciaalumno','Reporte\AsistenciaController@miasistenciaAlumno');

    //Alumno_Tramite
    //Route::get('tramite','TramiteController@getIndex');
    Route::get('tramite/detalle/{id}','TramiteController@getDetalle')->name('tramite.detalle.get');
    Route::get('tramite/historico','TramiteController@getIndexHistorico');
    Route::get('tramite/historico/detalle/{id}','TramiteController@getDetalleHistorico')->name('tramite.historico.detalle.get');
    Route::get('tramite/realizado','TramiteController@getIndexRealizado');
    Route::get('tramite/realizado/detalle/{id}','TramiteController@getDetalleRealizado')->name('tramite.realizado.detalle.get');
    //Route::post('tramite','TramiteController@postIndex')->name('tramite.index.post');
    //Route::post('tramite/requisito','TramiteController@postRequisito')->name('tramite.requisito.post');
    //Route::post('tramite/resolucion','TramiteController@postResolucion')->name('tramite.resolucion.post');
    Route::post('tramite/usuario','TramiteController@postUsuario')->name('tramite.usuario.post');
    Route::post('tramite/usuario2','TramiteController@postUsuario2')->name('tramite.usuario2.post');
    Route::post('tramite/usuario/agregar','TramiteController@postAgregarUsuario')->name('tramite.usuario.agregar.post');
    //Route::post('tramite/usuarioobservacion','TramiteController@postUsuarioObservacion')->name('tramite.usuarioobservacion.post');

    //Alumno_Horario
    Route::get('horario/clases','HorarioController@getHorarioClases');
    Route::get('horario/semana','HorarioController@getCursosClases');

    //Alumno_Deudaspendientes
    Route::group(['prefix' => 'deudaspendientes'], function() {
        //Alumno_DeudasPendientes\DeudasPendientes
        Route::get('/','DeudasPendientes\DeudasPendientesController@getIndex');
        Route::post('detalle','DeudasPendientes\DeudasPendientesController@getGestionPagos');
        Route::post('biblioteca','DeudasPendientes\DeudasPendientesController@getGestionBiblioteca');
    });
});

//Apoderado
Route::group(['middleware' => ['role:Apoderado']], function() {
    //Apoderado_Apoderado
    Route::group(['prefix' => 'apoderado'], function() {
        //Apoderado_Apoderado\SituacionAcademica
        Route::get('situacionacademica','Apoderado\SituacionAcademicaController@index');
        Route::get('curso/{id}','Apoderado\SituacionAcademicaController@getCursoDetalle');
        Route::post('cursos/get','Apoderado\SituacionAcademicaController@getCursos')->name('apoderado.situacion.cursos');
        Route::post('curso/notas/get/{id}','Apoderado\SituacionAcademicaController@getNotasCurso')->name('apoderado.curso.get');

        //Apoderado_Apoderado\Asistencia
        Route::get('asistencia','Apoderado\AsistenciaController@index');
        Route::post('asistencia/get','Apoderado\AsistenciaController@getCursos')->name('apoderado.asistencia.cursos');

        //Apoderado_Apoderado\Tramite
        Route::get('tramites','Apoderado\TramiteController@index');
        Route::get('tramites/detalle/{id}','Apoderado\TramiteController@detalle');
        Route::post('tramites/get','Apoderado\TramiteController@getTramites')->name('apoderado.tramites.get');

        //Apoderado_Tramite
        //Route::post('tramite/requisito','TramiteController@postRequisito')->name('tramite.requisito.post');
        //Route::post('tramite/resolucion','TramiteController@postResolucion')->name('tramite.resolucion.post');
        //Route::post('tramite/usuarioobservacion','TramiteController@postUsuarioObservacion')->name('tramite.usuarioobservacion.post');
    });
});

//Tesorero
Route::group(['middleware' => ['role:Tesorero']], function() {
    //Tesorero_Tramite
    //Route::post('tramite','TramiteController@postIndex')->name('tramite.index.post');

    //Tesorero_Tesoreria
    Route::group(['prefix' => 'tesoreria'], function() {
        //Tesorero_Tesoreria\GestionPago

        Route::group(['prefix' => 'caja'], function (){
            Route::get('/','Tesoreria\CajaController@getIndex')->name('caja.index');
            Route::get('registrarserie','Tesoreria\CajaController@getRegistrarSerie');
            Route::post('registrarserie','Tesoreria\CajaController@postRegistroSerie')->name('registrar.caja.serie');
            Route::post('aperturar','Tesoreria\CajaController@postApertura')->name('aperturar.caja');
            Route::post('recibos','Tesoreria\CajaController@getListRecibos')->name('recibos.caja');
            Route::get('aperturar','Tesoreria\CajaController@getApertura');
            Route::get('detalle/{id}','Tesoreria\CajaController@getDetalle');
            Route::post('detalle','Tesoreria\CajaController@postDetalle');
            Route::get('cerrar/{id}','Tesoreria\CajaController@getCierreCaja');
            Route::get('simulador/{id}/{m}','Tesoreria\CajaController@getSimuladorCierreCaja');
            Route::post('monto','Tesoreria\CajaController@postMonto');
            Route::post('cerrar','Tesoreria\CajaController@postCerrarCaja')->name('cerrar.caja');
            Route::post('anular','Tesoreria\CajaController@postAnularRecibo')->name('anular.boleta');

            Route::get('detallecierre/{id}','Tesoreria\CajaController@getDetalleCierre');
            Route::post('detallecierre','Tesoreria\CajaController@postDetalleCierre')->name('detalle.cierre.caja');
        });

        Route::group(['prefix' => 'postulantes'], function (){
            Route::get('/','Tesoreria\PagoPostulanteController@getIndex')->name('postulantes.index');
            Route::get('especialidades','Tesoreria\PagoPostulanteController@getEspecialidades')->name('especialidades.get');
            Route::get('tipo','Tesoreria\PagoPostulanteController@getTipoPostulacion')->name('tipopostulantes.get');
            Route::get('validar','Tesoreria\PagoPostulanteController@getValidarCaja')->name('validar.get');
            Route::post('datos','Tesoreria\PagoPostulanteController@postPostulantes')->name('pago.postulantes.get');
            Route::post('recibo','Tesoreria\PagoPostulanteController@postRecibo')->name('recibo.postulantes.post');
            Route::get('recibo/{d}','Tesoreria\PagoPostulanteController@getRecibo');
            Route::post('pagar','Tesoreria\PagoPostulanteController@postPago')->name('pago.recibo.postulantes');

        });

        Route::get('historial','Tesoreria\CajaController@getHistorial');
        Route::post('historial','Tesoreria\CajaController@postHistorial')->name('historial.caja');

        Route::group(['prefix' => 'pagos'], function() {
            Route::get('/','Tesoreria\PagoController@getIndex');
            Route::get('valida/usuario','Tesoreria\PagoController@validateUser')->name('pagos.valida.usuario');
            Route::post('tramites/get','Tesoreria\PagoController@getPagosTramites')->name('pagos.tramites.get');
            Route::post('biblioteca/get','Tesoreria\PagoController@getPagosBiblioteca')->name('pagos.biblioteca.get');
            Route::post('tramites','Tesoreria\PagoController@postPagosTramites')->name('pagos.tramites.post');
            Route::post('biblioteca','Tesoreria\PagoController@postPagosBiblioteca')->name('pagos.biblioteca.post');

            Route::get('registrar/{id}','Tesoreria\PagoController@getRegistrarTramite');
            Route::post('registrar/tramites/get','Tesoreria\PagoController@getTramitesDisponibles')->name('pagos.registrar.tramites.get');
            Route::post('registrar','Tesoreria\PagoController@postRegistrarTramite')->name('pagos.tramite.registrar.post');

            Route::get('recibo/{id}','Tesoreria\PagoController@getRecibo');
            Route::post('recibo','Tesoreria\PagoController@postRecibo')->name('pagos.recibo.post');
            Route::post('recibo/conceptos/get/{id}','Tesoreria\PagoController@getConceptos')->name('pagos.conceptos.get');
            Route::post('recibo/concepto/editar','Tesoreria\PagoController@postConceptoEditar')->name('pagos.concepto.post');
            Route::post('cancelar','Tesoreria\PagoController@postCancelarRecibo');

            Route::get('imprimir/{id}','Tesoreria\PagoController@getImprimir');

            Route::post('vouchers/get/{id}','Tesoreria\PagoController@getVouchers')->name('pagos.vouchers.get');
            Route::post('vouchers/registro','Tesoreria\PagoController@postVoucherRegistro')->name('pagos.voucher.registro');
            Route::post('vouchers/eliminar','Tesoreria\PagoController@postVoucherEliminar');

            Route::post('deuda/habilitar','Tesoreria\PagoController@postHabilitar')->name('pagos.habilitar.post');

            Route::post('otros','Tesoreria\PagoController@postPagosOtros')->name('pagos.otros.post');
            Route::post('conceptos/registro','Tesoreria\PagoController@postConceptoRegistro')->name('pagos.concepto.registro');
            Route::post('conceptos/eliminar','Tesoreria\PagoController@postConceptoEliminar')->name('pagos.concepto.eliminar');

            Route::post('externo','Tesoreria\PagoController@postPagoExterno');
        });
        
        //Route::group(['prefix' => 'externos'], function() {
            //Route::get('/','Tesoreria\PagoExternoController@getIndex');
            //Route::post('get','Tesoreria\PagoExternoController@getPagosExternos')->name('pagos.externos.get');
        //});

        Route::group(['prefix' => 'eventos'], function() {
            Route::get('/','Tesoreria\EventoController@index');
            Route::get('valida/usuario','Tesoreria\EventoController@validateUser')->name('pagos.validadni.usuario');
            Route::post('get','Tesoreria\EventoController@getEventos')->name('pagos.eventos.get');
            Route::post('post','Tesoreria\EventoController@postEventos')->name('pagos.eventos.post');
            Route::get('recibo/{id}','Tesoreria\EventoController@getRecibo');
        });

        //Tesorero_Tramite_General
        Route::post('tramite/usuario/asignar','TramiteController@postAsignarUsuario')->name('tramite.usuario.asignar.post');

        //Tesorero_Tramite_NumeroSerie
        Route::get('numeroserie','TramiteController@getNumeroTramite');
        Route::get('numeroserie/editar/{id}','TramiteController@getNumeroTramiteEditar')->name('tramite.numerotramite.editar');
        Route::get('numeroserie/eliminar','TramiteController@postNumeroTramiteEliminar')->name('tramite.numerotramite.eliminar');
    });

    Route::group(['prefix' => 'reporte'], function (){
        Route::get('mensual','Tesoreria\CajaController@getReportePagosMensual');
        Route::post('mensual','Tesoreria\CajaController@postListPagosMensual');

        Route::post('generararchivoWMG','Reporte\ReporteTesoreriaController@generarachivodecaja');

        Route::get('rango','Tesoreria\CajaController@getReportePagosRango');
        Route::post('rango','Tesoreria\CajaController@postListPagosRango');
    });
});

//Profesor
Route::group(['middleware' => ['role:Profesor']], function() {
    //Profesor_Reporte\Asistencia
    Route::get('miasistencia','Reporte\AsistenciaController@miasistencia');
    Route::get('reportesasistencia/profesor/asistencias/cursos/detalle/{seccionID}/{profesorID}','Reporte\AsistenciaController@asistenciaprofesorcurso');


    //Profesor_Asistencia


    //Profesor_Horario
    Route::get('horario/dictado','HorarioController@getHorarioDictado');
    Route::get('horario/cursos','HorarioController@getCursosDictado');

    //Profesor_NotasDocente
    Route::get('registro/secciones','NotasDocenteController@get_index');
    Route::get('registro/secciones/{id}/{id2}','NotasDocenteController@get_evaluaciones');
    Route::get('registro/secciones/evaluacion/ver/{id}/{id2}','NotasDocenteController@get_vernotas');
    Route::get('registro/secciones/evaluacion/{id}/{id2}','NotasDocenteController@get_notas');
    Route::post('registro/secciones/notas','NotasDocenteController@post_notas');
});

//Administrador|Profesor
Route::group(['middleware' => ['role:Administrador|Profesor']], function() {
    //Administrador|Profesor_Reporte\Nota
    Route::get('reportesnotas/alumnos','Reporte\NotaController@alumnos');
    Route::get('reportesnotas/cursos','Reporte\NotaController@cursos');
    Route::get('reportesnotas/cursos/alumnos/{CursoSeccionID}','Reporte\NotaController@alumnosnota');
    Route::get('reportesnotas/alumnos/cursos/{alumnoID}','Reporte\NotaController@cursospromfinal');
    Route::get('reportesnotas/alumnos/detalle/nota/{alumnoseccionID}/{cursoID}','Reporte\NotaController@detallenota');
    Route::get('reportesnotas/reporteavanzado','Reporte\NotaController@indexreporteavanzadonotas');
    Route::get('reportesnotas/reporteavanzado/graph/{seccionID}/{genero}','Reporte\NotaController@graphaprobadosjaladosseccion');
    Route::get('miscursos','Reporte\NotaController@cursosProfesor');
    //Ajax Call
    Route::get('reportesnotas/grupo','Reporte\NotaController@getGrupo');
    Route::get('reportesnotas/turno','Reporte\NotaController@getTurno');
    Route::get('reportesnotas/ciclo','Reporte\NotaController@getCiclo');
    Route::get('reportesnotas/especialidad','Reporte\NotaController@getEspecialidad');
    Route::get('reportesnotas/periodo','Reporte\NotaController@getPeriodo');
});

//Alumno|Apoderado
Route::group(['middleware' => ['role:Alumno|Apoderado']], function() {
    //Alumno|Apoderado_Tramite
    Route::post('tramite/requisito','TramiteController@postRequisito')->name('tramite.requisito.post');
    Route::post('tramite/resolucion','TramiteController@postResolucion')->name('tramite.resolucion.post');
    Route::post('tramite/usuarioobservacion','TramiteController@postUsuarioObservacion')->name('tramite.usuarioobservacion.post');
    Route::post('tramite/usuariorequisito','TramiteController@postUsuarioRequisito')->name('tramite.usuariorequisito.post');
});

//Alumno|Tesorero
Route::group(['middleware' => ['role:Alumno|Tesorero']], function() {
    //Alumno|Tesorero_Tramite
    Route::get('tramite','TramiteController@getIndex');
    Route::post('tramite','TramiteController@postIndex')->name('tramite.index.post');
});

//Dependencia|Tesorero
Route::group(['middleware' => ['role:Dependencia|Tesorero']], function() {
    //Dependencia|Tesorero_Admin\Exoneracion
    Route::post('admin/exoneracion/usuario/editar','Admin\ExoneracionController@postEditarUsuario')->name('admin.exoneracion.usuario.editar.post');

    //Dependencia|Tesorero_Admin\Tramite
    Route::get('admin/tramite/usuario','Admin\TramiteController@getIndexUsuario')->name('admin.tramite.usuario.get');
    Route::get('admin/tramite/usuario/detalle/{id}','Admin\TramiteController@getDetalleUsuario')->name('admin.tramite.usuario.detalle.get');
    Route::get('admin/tramite/usuario/documento/{id}','Admin\TramiteController@getDocumentoUsuario')->name('admin.tramite.usuario.documento.get');
    Route::get('admin/tramite/usuario/editar/{id}','Admin\TramiteController@getEditarUsuario')->name('admin.tramite.usuario.editar.get');
    Route::get('admin/tramite/usuario/imprimir/{id}','Admin\TramiteController@getImprimirUsuario')->name('admin.tramite.usuario.imprimir.get');
    Route::get('admin/tramite/usuarioadicionar','Admin\TramiteController@getIndexUsuarioAdicionar')->name('admin.tramite.usuarioadicionar.get');
    Route::get('admin/tramite/usuarioadicionar/detalle/{id}','Admin\TramiteController@getDetalleUsuarioAdicionar')->name('admin.tramite.usuarioadicionar.detalle.get');
    Route::get('admin/tramite/usuariohistorico','Admin\TramiteController@getIndexUsuarioHistorico')->name('admin.tramite.usuariohistorico.get');
    Route::get('admin/tramite/usuariohistorico/detalle/{id}','Admin\TramiteController@getDetalleUsuarioHistorico')->name('admin.tramite.usuariohistorico.detalle.get');
    Route::post('admin/tramite/usuario','Admin\TramiteController@postUsuario')->name('admin.tramite.usuario.post');
    Route::post('admin/tramite/usuario/agregar','Admin\TramiteController@postAgregarUsuario')->name('admin.tramite.usuario.agregar.post');
    Route::post('admin/tramite/usuario/editar','Admin\TramiteController@postEditarUsuario')->name('admin.tramite.usuario.editar.post');
    Route::post('admin/tramite/usuario/eliminar','Admin\TramiteController@postEliminarUsuario')->name('admin.tramite.usuario.eliminar.post');
    Route::post('admin/tramite/usuariodocumento/agregar','Admin\TramiteController@postAgregarUsuarioDocumento')->name('admin.tramite.usuariodocumento.agregar.post');
    Route::post('admin/tramite/usuariohistorico','Admin\TramiteController@postUsuarioHistorico')->name('admin.tramite.usuariohistorico.post');
    Route::post('admin/tramite/usuarioobservacion','Admin\TramiteController@postUsuarioObservacion')->name('admin.tramite.usuarioobservacion.post');
    Route::post('admin/tramite/usuarioobservacion/agregar','Admin\TramiteController@postAgregarUsuarioObservacion')->name('admin.tramite.usuarioobservacion.agregar.post');
    Route::post('admin/tramite/usuarioobservacion/editar','Admin\TramiteController@postEditarUsuarioObservacion')->name('admin.tramite.usuarioobservacion.editar.post');
    Route::post('admin/tramite/usuarioobservacion/eliminar','Admin\TramiteController@postEliminarUsuarioObservacion')->name('admin.tramite.usuarioobservacion.eliminar.post');
    Route::post('admin/tramite/usuariorequisito','Admin\TramiteController@postUsuarioRequisito')->name('admin.tramite.usuariorequisito.post');
    Route::post('admin/tramite/usuariorequisito/agregar','Admin\TramiteController@postAgregarUsuarioRequisito')->name('admin.tramite.usuariorequisito.agregar.post');
    Route::post('admin/tramite/usuariorequisito/eliminar','Admin\TramiteController@postEliminarUsuarioRequisito')->name('admin.tramite.usuariorequisito.eliminar.post');
});

//Administrador|Alumno|Profesor
Route::group(['middleware' => ['role:Administrador|Alumno|Profesor']], function() {
    //Administrador|Alumno|Profesor_Reporte\Nota
    Route::get('misnotas/cursos/{alumnoSeccionID}/{cursoID}','Reporte\NotaController@miscursospromfinal');
});

//Administrador|Dependencia|Tesorero
Route::group(['middleware' => ['role:Administrador|Dependencia|Tesorero']], function() {
    //Administrador|Dependencia|Tesorero_Admin\UIT
    Route::post('admin/uit','Admin\UITController@postIndex')->name('admin.uit.post');

    //Administrador|Dependencia|Tesorero_Admin\Dependencia
    Route::post('admin/dependencia','Admin\DependenciaController@postIndex')->name('admin.dependencia.post');

    //Administrador|Dependencia|Tesorero_Admin\Tramite
    Route::get('admin/tramite','Admin\TramiteController@getIndex');
    Route::get('admin/tramite/detalle/{id}','Admin\TramiteController@getDetalle')->name('admin.tramite.detalle.get');
    Route::get('admin/tramite/requisito/detalle/{id}','Admin\TramiteController@getDetalleRequisito')->name('admin.tramite.requisito.detalle.get');
    Route::get('admin/tramite/resolucion/detalle/{id}','Admin\TramiteController@getDetalleResolucion')->name('admin.tramite.resolucion.detalle.get');
    Route::post('admin/tramite','Admin\TramiteController@postIndex')->name('admin.tramite.index.post');
    Route::post('admin/tramite/categoria','Admin\TramiteController@postCategoria')->name('admin.tramite.categoria.post');
    Route::post('admin/tramite/calificacion','Admin\TramiteController@postCalificacion')->name('admin.tramite.calificacion.post');
    Route::post('admin/tramite/resoluciontipo','Admin\TramiteController@postResolucionTipo')->name('admin.tramite.resoluciontipo.post');
    Route::post('admin/tramite/requisito','Admin\TramiteController@postRequisito')->name('admin.tramite.requisito.post');
    Route::post('admin/tramite/resolucion','Admin\TramiteController@postResolucion')->name('admin.tramite.resolucion.post');
    Route::post('admin/tramite/rol','Admin\TramiteController@postRol')->name('admin.tramite.rol.post');
});

//Administrador|Alumno|Tesorero
Route::group(['middleware' => ['role:Administrador|Alumno|Tesorero']], function() {
    //Administrador|Alumno|Tesorero_Historialpagos
    Route::group(['prefix' => 'historialpagos','namespace' => 'HistorialPagos'], function() {
        //Administrador|Alumno|Tesorero_HistorialPagos\HistorialPagos
        Route::get('/','HistorialPagosController@getIndex');
        Route::post('historialtramite','HistorialPagosController@getHistorialPagosTramite')->name('historialpagos.tramite.get');
        Route::post('historialbiblioteca','HistorialPagosController@getHistorialPagosBiblioteca')->name('historialpagos.biblioteca.get');
    });
});

Route::group(['middleware' => ['role:Psicologo|Administrador']], function() {
    Route::get('alumno','Admin\AlumnoController@getAlumnos')->name('gestion.alumnos.get');
    Route::post('alumno','Admin\AlumnoController@getEgresados')->name('gestion.egresados.post');
    Route::post('alumnoestado','Admin\AlumnoController@getEgresadosAlumnos')->name('gestion.egresadosalumnos.post');
});


//Administrador_Bienestar
Route::group(['namespace' => 'Seguimiento', 'prefix' => 'seguimiento'], function() {

    Route::group(['middleware' => ['role:Psicologo|Administrador']], function() {
        Route::group(['namespace' => 'Bienestar', 'prefix' => 'bienestar'], function () {
            //Administrador_Bienestar
            Route::get('/', 'BienestarController@getAlumnos')->name('gestion.bienestar.get');
            Route::get('ficha/{id}', 'BienestarController@getFicha')->name('gestion.bienestar.actualizar');
            Route::get('personal', 'BienestarController@getPersonal')->name('gestion.bienestar.personal.get');
            Route::get('salud', 'BienestarController@getSalud')->name('gestion.bienestar.salud.get');
            Route::get('vivienda', 'BienestarController@getVivienda')->name('gestion.bienestar.vivienda.get');
            Route::get('cultura', 'BienestarController@getCultura')->name('gestion.bienestar.cultura.get');
            Route::get('religioso', 'BienestarController@getReligion')->name('gestion.bienestar.religioso.get');
            Route::get('preguntas', 'BienestarController@getPreguntas')->name('gestion.bienestar.preguntas.get');
            Route::post('personal', 'BienestarController@postPersonal')->name('gestion.bienestar.personal.post');
            Route::post('salud', 'BienestarController@postSalud')->name('gestion.bienestar.salud.post');
            Route::post('vivienda', 'BienestarController@postVivienda')->name('gestion.bienestar.vivienda.post');
            Route::post('cultura', 'BienestarController@postCultura')->name('gestion.bienestar.cultura.post');
            Route::post('religioso', 'BienestarController@postReligion')->name('gestion.bienestar.religioso.post');
            Route::post('preguntas', 'BienestarController@postPreguntas')->name('gestion.bienestar.preguntas.post');

            Route::get('comentarios', 'BienestarController@getComentarios')->name('gestion.bienestar.comentarios.get');
            Route::post('comentarios', 'BienestarController@postComentarios')->name('gestion.bienestar.comentarios.post');


            //Route::get('comentarios/editar', 'BienestarController@getComentarios')->name('gestion.bienestar.comentarios.editar.get');
            Route::post('comentarios/editar', 'BienestarController@postEditComentarios')->name('gestion.bienestar.comentarios.editar.post');
            Route::get('comentario/editar/{id}', 'BienestarController@postComentario')->name('gestion.bienestar.comentario.editar.get');
            Route::get('comentario/eliminar/{id}', 'BienestarController@postDeleteComentario')->name('gestion.bienestar.comentario.delete.get');
        });
    });

    Route::group(['middleware' => ['role:Psicologo|Administrador']], function() {
        Route::group(['namespace' => 'Cita', 'prefix' => 'cita'], function () {
            //Administrador_Cita

            Route::get('detalle/{id}', 'CitaController@getCitaDetails');
            Route::post('detalle', 'CitaController@postCitaDetails')->name('gestion.cita.detail');

            Route::get('crear/{id}', 'CitaController@getCreateCita')->name('gestion.cita.crear.get');
            Route::post('crear', 'CitaController@postCreateCita')->name('gestion.cita.crear.post');

            Route::get('general', 'CitaController@getCita')->name('gestion.cita.list.get');
            Route::post('general', 'CitaController@postCita')->name('gestion.cita.list.post');

            Route::get('editar/{id}', 'CitaController@getEditarCita')->name('gestion.cita.editar.get');
            Route::post('editar', 'CitaController@postEditarCita')->name('gestion.cita.editar.post');

            Route::post('eliminar', 'CitaController@postEliminarCita')->name('gestion.cita.eliminar');

            Route::post('estado', 'CitaController@postEstado')->name('gestion.cita.estado.post');

            Route::get('calendario', 'CitaController@getCalendario')->name('gestion.cita.calendario.get');
            Route::post('calendario', 'CitaController@postCalendario')->name('gestion.cita.calendario.post');

            Route::get('psicologo', 'CitaController@getRolePsicologo')->name('gestion.cita.psicologo.get');
        });
    });

});