292 regels
8.4 KiB
PHP
292 regels
8.4 KiB
PHP
<?php
|
|
|
|
namespace App\Controllers;
|
|
|
|
use App\Entities\PrestadorSolicitudModel;
|
|
use App\Models\EncuestaModel;
|
|
use App\Models\PreguntaModel;
|
|
use App\Models\PrestadorModel;
|
|
use App\Models\PrestadorSolicitudModel as ModelsPrestadorSolicitudModel;
|
|
use App\Models\UserModel;
|
|
|
|
class Admin extends BaseController
|
|
{
|
|
public function home()
|
|
{
|
|
$data = [
|
|
'title' => 'Inicio',
|
|
'solicitudes' => model(PrestadorSolicitudModel::class)->countSolicitudes(),
|
|
'prestadoresActivos' => model(PrestadorModel::class)->countPrestadoresActivos(),
|
|
];
|
|
return view('Admin/index', $data);
|
|
}
|
|
|
|
|
|
// SOLICITUDES
|
|
public function solicitudes()
|
|
{
|
|
|
|
$data = [
|
|
'title' => 'Solicitudes',
|
|
'solicitudes' => model(PrestadorSolicitudModel::class)->getPrestadorSolicitud(),
|
|
];
|
|
return view('Admin/solicitudes', $data);
|
|
}
|
|
|
|
public function revisarSolicitud($id)
|
|
{
|
|
|
|
$model = model(ModelsPrestadorSolicitudModel::class);
|
|
|
|
if (!$datos = $model->find($id)) {
|
|
return redirect()->route('admin_solicitudes')->with('msg', array(
|
|
'type' => 'danger',
|
|
'body' => 'Solicitud no encontrada'
|
|
));
|
|
}
|
|
|
|
$data = [
|
|
'id' => $id,
|
|
'email' => user()->email,
|
|
'escuelas' => model(EscuelaModel::class)->getEscuelas(),
|
|
'departamentos' => model(DepartamentoModel::class)->getDepartamentos(),
|
|
'datos' => $datos,
|
|
'revisar' => true,
|
|
];
|
|
|
|
return view('Prestador/formulario_inicial', $data);
|
|
}
|
|
|
|
public function aprobarSolicitud($id)
|
|
{
|
|
$solicitudModel = model(ModelsPrestadorSolicitudModel::class);
|
|
|
|
// Validar que la solicitud existe
|
|
if (!$solicitud = $solicitudModel->find($id)) {
|
|
return redirect()->route('admin_solicitudes')->with('msg', array(
|
|
'type' => 'danger',
|
|
'body' => 'Solicitud no encontrada'
|
|
));
|
|
}
|
|
|
|
// Verificar que status de la solicitud == 0
|
|
if ($solicitud['status'] != 0) {
|
|
return redirect()->route('admin_solicitudes')->with('msg', array(
|
|
'type' => 'danger',
|
|
'body' => 'El status de esta solicitud no permite que sea aprobada'
|
|
));
|
|
}
|
|
|
|
// Encontrar usuario que mandó la solicitud
|
|
if (!$user = model(UserModel::class)->findUserWithSolicitud($id)) {
|
|
return redirect()->route('admin_solicitudes')->with('msg', array(
|
|
'type' => 'danger',
|
|
'body' => 'Ningún usuario tiene esa solicitud registrada.'
|
|
));
|
|
}
|
|
|
|
// Crear registro en la tabla prestador
|
|
$prestadorModel = model(PrestadorModel::class);
|
|
|
|
// Asignar id de la tabla prestador al usuario aprobado
|
|
|
|
// Cambiar status de la solicitud
|
|
|
|
return redirect()->route('admin_solicitudes')->with('msg', array(
|
|
'type' => 'success',
|
|
'body' => 'Solicitud aprobada. Se activo la cuenta del prestador.'
|
|
));
|
|
}
|
|
|
|
public function rechazarSolicitud($id)
|
|
{
|
|
echo 'rechazandp solicitud ' . $id;
|
|
}
|
|
|
|
// ENCUESTAS
|
|
public function encuestas()
|
|
{
|
|
$data = [
|
|
'title' => 'Encuestas',
|
|
'encuestas' => model(EncuestaModel::class)->getEncuestas(),
|
|
];
|
|
return view('Admin/encuestas.php', $data);
|
|
}
|
|
|
|
public function encuesta($id)
|
|
{
|
|
$data = [
|
|
'id' => $id,
|
|
'encuesta' => model(EncuestaModel::class)->getEncuestas($id, true),
|
|
'preguntas' => model(PreguntaModel::class)->getPreguntas($id),
|
|
|
|
];
|
|
return view('Admin/encuesta', $data);
|
|
}
|
|
|
|
public function nuevaEncuesta()
|
|
{
|
|
// Guardar encuesta
|
|
if ($this->request->getMethod() === 'post') {
|
|
$encuesta = model(EncuestaModel::class);
|
|
|
|
$data = $this->request->getPost();
|
|
// agregar id del usuario actual
|
|
$data['user_id'] = user_id();
|
|
|
|
// Validar datos
|
|
if (!$encuesta->save($data)) {
|
|
return redirect()->back()->withInput()->with('errors', $encuesta->errors());
|
|
}
|
|
|
|
return redirect()->route('admin_encuestas')->with('msg', array(
|
|
'type' => 'success',
|
|
'body' => 'Encuesta creada correctamente.'
|
|
));
|
|
}
|
|
$data = [
|
|
'title' => 'Nueva encuesta',
|
|
];
|
|
return view('Admin/formularioEncuesta', $data);
|
|
}
|
|
|
|
public function editarEncuesta($id)
|
|
{
|
|
$encuesta = model(EncuestaModel::class);
|
|
|
|
if ($this->request->getMethod() === 'post') {
|
|
|
|
$data = $this->request->getPost();
|
|
|
|
if (!$encuesta->update($id, $data)) {
|
|
return redirect()->back()->withInput()->with('errors', $encuesta->errors());
|
|
}
|
|
return redirect()->route('admin_encuestas')->with('msg', array(
|
|
'type' => 'success',
|
|
'body' => 'Encuesta editada correctamente',
|
|
));
|
|
}
|
|
|
|
$data = [
|
|
'id' => $id,
|
|
'title' => 'Modificar encuesta',
|
|
'datos' => $encuesta->getEncuestas($id),
|
|
];
|
|
|
|
return view('Admin/formularioEncuesta', $data);
|
|
}
|
|
|
|
public function eliminarEncuesta($id)
|
|
{
|
|
if (!model(EncuestaModel::class)->delete($id)) {
|
|
return redirect()->route('admin_encuestas')->with('msg', array(
|
|
'type' => 'error',
|
|
'body' => 'Error al eliminar la encuesta.'
|
|
));
|
|
}
|
|
return redirect()->route('admin_encuestas')->with('msg', array(
|
|
'type' => 'success',
|
|
'body' => 'Encuesta eliminada correctamente.'
|
|
));
|
|
}
|
|
|
|
// PREGUNTAS
|
|
|
|
public function nuevaPregunta($id)
|
|
{
|
|
if ($this->request->getMethod() === 'post') {
|
|
$pregunta = model(PreguntaModel::class);
|
|
|
|
$data = $this->request->getPost();
|
|
|
|
// Relacionar encuesta($id) con pregunta(survey_id)
|
|
$data['survey_id'] = $id;
|
|
$data['order_by'] = 1;
|
|
|
|
|
|
// Validar y guardar datos
|
|
if (!$pregunta->save($data)) {
|
|
return redirect()->back()->withInput()->with('errors', $pregunta->errors());
|
|
}
|
|
|
|
$url = 'admin/encuesta/' . $id;
|
|
return redirect()->to($url)->with('msg', array(
|
|
'type' => 'success',
|
|
'body' => 'Pregunta registrada correctamente',
|
|
));
|
|
}
|
|
|
|
$data = [
|
|
'title' => 'Nueva pregunta',
|
|
'id' => $id,
|
|
];
|
|
|
|
return view('Admin/formularioPregunta', $data);
|
|
}
|
|
|
|
|
|
public function editarPregunta($id)
|
|
{
|
|
$pregunta = model(PreguntaModel::class);
|
|
|
|
if ($this->request->getMethod() === 'post') {
|
|
|
|
$data = $this->request->getPost();
|
|
if (!$pregunta->update($id, $data)) {
|
|
return redirect()->back()->withInput()->with('errors', $pregunta->errors());
|
|
}
|
|
|
|
$encuestaId = $pregunta->find($id)['survey_id'];
|
|
|
|
$url = 'admin/encuesta/' . $encuestaId;
|
|
return redirect()->to($url)->with('msg', array(
|
|
'type' => 'success',
|
|
'body' => 'Pregunta registrada correctamente',
|
|
));
|
|
}
|
|
|
|
$data = [
|
|
'preguntaId' => $id,
|
|
'title' => 'Editar pregunta',
|
|
'datos' => $pregunta->find($id),
|
|
];
|
|
return view('Admin/formularioPregunta', $data);
|
|
}
|
|
|
|
public function eliminarPregunta(int $id)
|
|
{
|
|
$model = model('PreguntaModel');
|
|
|
|
if (!$pregunta = $model->find($id)) {
|
|
throw \CodeIgniter\Exceptions\PageNotFoundException::forPageNotFound();
|
|
}
|
|
|
|
$encuestaId = $pregunta['survey_id'];
|
|
$model->delete($id);
|
|
|
|
$url = 'admin/encuesta/' . $encuestaId;
|
|
|
|
return redirect()->to($url)->with('msg', array(
|
|
'type' => 'success',
|
|
'body' => 'Pregunta eliminada correctamente',
|
|
));
|
|
}
|
|
|
|
public function preguntaPost()
|
|
{
|
|
$data = $this->request->getPost();
|
|
$data['survey_id'] = 1;
|
|
$data['order_by'] = 1;
|
|
|
|
var_dump($data);
|
|
}
|
|
|
|
// GRUPOS
|
|
public function createGroup()
|
|
{
|
|
// $authorize = service('authorization');
|
|
// $id = $authorize->createGroup('Prestador', 'Prestadores de Servicio Social o Prácticas Profesionales');
|
|
// echo $id;
|
|
}
|
|
}
|