private function _obtener_mensaje($nuevos = FALSE) { $usuario = new Usuario_model(); $fechaAcceso = $usuario->fechaUltimoAcceso($this->session->userdata('email')); if ($nuevos) { $mensajes = Chat_model::obtener_mensajes_nuevos($fechaAcceso, $this->session->userdata('email')); } else { $mensajes = Chat_model::obtener_mensajes($fechaAcceso); } if (count($mensajes) > 0) { $chat = '<ul>'; foreach ($mensajes as $mensaje) { $empleado = new Empleado_model(); $foto = $empleado->foto($mensaje->EmailEmpleado); if ($foto == '') { $foto = base_url() . 'images/indice.jpeg'; } $span_class = $this->session->userdata('email') == $mensaje->EmailEmpleado ? 'class="usuario_actual"' : ''; $chat .= '<li>' . '<img src="' . $foto . '" alt="foto usuario">' . '<div class="encabezado">' . '<span ' . $span_class . '>' . $mensaje->Nombre . ' ' . $mensaje->ApellidoP . ' ' . $mensaje->ApellidoM . '</span> el ' . date('d-m-Y', strtotime($mensaje->Fecha)) . ' a las ' . date('H:i:s', strtotime($mensaje->Fecha)) . ':' . '</div>' . '<div class="contenido">' . $mensaje->Mensaje . '</div>' . '</li>'; } $chat .= '</ul>'; $resultado = array('estado' => 'ok', 'contenido' => $chat); return json_encode($resultado); } else { $resultado = array('estado' => 'ok', 'contenido' => ''); return json_encode($resultado); } }
public function informacion($codigo) { $this->permisos('admin'); $this->pagina = 'proyecto'; $this->carpeta = 'administrador'; $this->titulo = 'Información proyecto'; $this->menu = 'menu_admin_proyecto'; $this->submenu = 'menu_proyecto'; $this->estilo = array('jquery-te-1.3.3', 'jquery-ui', 'proyectos', $this->pagina); $this->javascript = array('editor', 'proyecto', 'campos', 'jquery-te-1.3.3.min'); $datos['user'] = '******'; if (Proyecto_model::existe($codigo)) { $opciones = array('0' => '', '1' => 'Obra Nueva', '2' => 'Peritación', '3' => 'Rehabilitación', '4' => 'Adecuación de local', '5' => 'Tasación', '6' => 'Informe', '7' => 'Auditoría energética'); $datos['codigo'] = $codigo; $datos['estados'] = array('0' => 'Ejecución', '1' => 'Cerrado'); $proyecto = new Proyecto_model(); $datos['proyecto'] = $proyecto->datos($codigo); $datos['estado'] = $proyecto->estado(); $archivo = new Archivo_model(); $datos['mem'] = $archivo->memProyecto($codigo); $datos['mostrar'] = array('name' => 'mostrar', 'id' => 'mostrar', 'value' => 'accept', 'checked' => $proyecto->visible()); $datos['nombreProyecto'] = $proyecto->nombre(); $datos['empleadosProyectos'] = Proyecto_model::empleadosProyecto($codigo); $presupuesto = new Presupuesto_model(); $datos['presupuesto'] = $presupuesto->datos($proyecto->codigoPresupuesto()); $datos['presupuesto']->Tipo = $opciones[$datos['presupuesto']->Tipo]; $datos['precio'] = $presupuesto->precio(); $datos['editor'] = array('class' => 'editor', 'id' => 'contenido', 'name' => 'contenido', 'label' => 'contenido', 'value' => $proyecto->contenido($codigo)); $cliente = new Cliente_model(); $datos['cliente'] = $cliente->datos($presupuesto->email()); $archivos = Archivo_model::archivosProyecto($codigo); $datos['archivos'] = array(); $datos['imagenes'] = array(); foreach ($archivos as $archivo) { if (substr($archivo->Ruta, -1) != '/') { $ext = substr(strrchr($archivo->Ruta, "."), 1); if ($ext == 'jpg' || $ext == 'JPG' || $ext == 'jpeg' || $ext == 'JPEG' || $ext == 'png' || $ext == 'PNG') { array_push($datos['imagenes'], $archivo); } else { array_push($datos['archivos'], $archivo); } } } if (Empresa_model::existe($proyecto->constructora())) { $constructora = new Constructora_model(); $datos['constructora'] = $proyecto->constructora(); $constructoras = Constructora_model::obtener('RazonSocial', 'asc'); $datos['constructoras'] = array('0' => ''); foreach ($constructoras as $constructora) { $datos['constructoras'][$constructora->Cif] = $constructora->RazonSocial; } } else { $constructoras = Constructora_model::obtener('RazonSocial', 'asc'); $datos['constructoras'] = array('0' => ''); foreach ($constructoras as $constructora) { $datos['constructoras'][$constructora->Cif] = $constructora->RazonSocial; } } $proveedores = Proveedor_model::obtener('Cif', 'asc'); $datos['proveedores'] = array('0' => ''); foreach ($proveedores as $proveedor) { $datos['proveedores'][$proveedor->Cif] = $proveedor->RazonSocial; } $empleados = Proyecto_model::empleadosProyecto($codigo); $datos['empleados'] = array(); foreach ($empleados as $aux) { $empleado = new Empleado_model(); $empleado->Foto = $empleado->foto($aux->EmailEmpleado); array_push($datos['empleados'], $empleado->datos($aux->EmailEmpleado)); } $tareas = Tarea_model::obtener($this->session->userdata('email'), $codigo); $datos['tareas'] = $tareas; $materiales = Material_model::obtener($codigo); $datos['materiales'] = $materiales; $this->form_validation->set_rules('material[]', 'material', 'trim|min_length[3]|xss_clean'); $this->form_validation->set_rules('contenido', 'material', 'trim|min_length[3]|xss_clean'); $this->form_validation->set_message('min_length', '%s debe tener mínimo %s caracteres'); $this->form_validation->set_message('xss_clean', ' %s no es válido'); if ($this->form_validation->run() == TRUE) { if ($this->input->post('estado') != TRUE) { $estado = 'Ejecución'; $datos['estado'] = $estado; } else { $estado = 'Cerrado'; $datos['estado'] = $estado; } $data = array('Visible' => FALSE, 'Estado' => $estado); $proyecto->actualizar($codigo, $data); Archivo_model::ocultar($codigo); if ($this->input->post('mem') != '') { $codigoArchivo = $this->input->post('mem'); $data = array('Codigo' => $codigoArchivo[0], 'CodigoProyecto' => $codigo, 'ArchivoProyecto' => TRUE); $archivo = new Archivo_model(); $archivo->memProyecto($codigo, $data, TRUE); $datos['mem'] = $codigoArchivo[0]; } if ($this->input->post('contenido') != '') { $data = array('Contenido' => $this->input->post('contenido')); $proyecto->actualizar($codigo, $data); $datos['editor']['value'] = $this->input->post('contenido'); } $aux = $this->input->post('mostrar'); if ($aux == 'accept') { $data = array('Visible' => TRUE); $proyecto->actualizar($codigo, $data); Archivo_model::ocultar($codigo); $aux = $this->input->post(); $value = 'accept'; foreach ($aux as $key => $value) { if ($key != 'mostrar') { $archivo = new Archivo_model(); $archivo->visible($key, TRUE); } } } if ($this->input->post('constructora') != 0) { $aux = $this->input->post(); $data = array('CifConstructora' => $this->input->post('constructora')); $datos['constructora'] = $this->input->post('constructora'); $proyecto->actualizar($codigo, $data); } if ($this->input->post('proveedor') != '' && $this->input->post('material') != '') { $mat = $this->input->post('material'); $prov = $this->input->post('proveedor'); for ($i = 0; $i != count($this->input->post('proveedor')); $i++) { $material = new Material_model(); $material->inicializar($mat[$i], $prov[$i], $codigo); } } } else { $datos['errores'] = validation_errors(); } $datos['mostrar']['checked'] = $proyecto->visible($codigo); $archivos = Archivo_model::archivosProyecto($codigo); $materiales = Material_model::obtener($codigo); $datos['materiales'] = $materiales; $datos['archivos'] = array(); $datos['imagenes'] = array(); foreach ($archivos as $archivo) { if (substr($archivo->Ruta, -1) != '/') { $ext = substr(strrchr($archivo->Ruta, "."), 1); if ($ext == 'jpg' || $ext == 'JPG' || $ext == 'jpeg' || $ext == 'JPEG' || $ext == 'png' || $ext == 'PNG') { array_push($datos['imagenes'], $archivo); } else { array_push($datos['archivos'], $archivo); } } } } else { $this->error = array('nivel' => '1', 'mensaje' => 'El proyecto indicado no existe'); } $this->mostrar($datos); }
public function verTarea($codigoProyecto, $codigoTarea) { $this->pagina = 'tarea'; $this->carpeta = 'empleado'; $this->titulo = "tarea"; $this->estilo = array('jquery-te-1.3.3', '../jquery-ui', 'proyectos', 'notas', 'tareas'); $this->javascript = array('editor', 'jquery-te-1.3.3.min', 'notas', 'select', 'tooltip'); $this->menu = 'menu_empleado_proyecto'; $this->form_validation->set_error_delimiters('<div class="alert alert-error"> <button type="button" class="close" data-dismiss="alert">×</button> <h4>Error</h4>', '</div>'); if ($this->uri->segment('1') == 'admin') { $this->permisos('admin'); $datos['user'] = '******'; } else { $this->permisos('empleado'); $datos['user'] = '******'; } if (Proyecto_model::existe($codigoProyecto)) { $datos['codigo'] = $codigoProyecto; $proyecto = new Proyecto_model(); $proyecto->datos($codigoProyecto); $datos['nombreProyecto'] = $proyecto->nombre(); $datos['estado'] = $proyecto->estado(); if ($proyecto->pertenece($this->session->userdata('email'))) { if (Tarea_model::existe($codigoTarea) && $this->_permisosTareas($codigoProyecto, $codigoTarea)) { $this->submenu = 'menu_proyecto'; $tarea = new Tarea_model(); $datos['tarea'] = $tarea->datos($codigoTarea); $empleado = new Empleado_model(); $datos['foto'] = $empleado->foto($tarea->email()); $archivos = Archivo_model::obtener($codigoTarea, 'tarea'); if (!empty($archivos)) { $i = 0; foreach ($archivos as $archivo) { $datos['archivo'][$i]['ruta'] = $archivo->Ruta; $datos['archivo'][$i]['nombre'] = array_pop(explode("/", $archivo->Ruta)); $datos['archivo'][$i]['codigo'] = $archivo->Codigo; $i++; } } $respuestas = Respuesta_model::obtener($codigoTarea); if (!empty($respuestas)) { $datos['respuestas'] = $respuestas; foreach ($respuestas as $respuesta) { $datos['fotoRespuesta'][$respuesta->Email] = $empleado->foto($respuesta->Email); $archivosRespuesta = Archivo_model::obtener($respuesta->Codigo, 'respuesta'); $i = 0; if (!empty($archivosRespuesta)) { foreach ($archivosRespuesta as $archivo) { $datos['archivoRespuesta'][$respuesta->Codigo][$i]['nombre'] = array_pop(explode("/", $archivo->Ruta)); $datos['archivoRespuesta'][$respuesta->Codigo][$i]['codigo'] = $archivo->Codigo; $i++; } } } } $datos['tareas'] = Tarea_model::obtener($this->session->userdata('email'), $codigoProyecto); $datos['opciones'] = array('ejecucion' => 'Ejecución', 'cerrado' => 'Cerrado'); $datos['formulario'] = array('contenido' => array('class' => 'editor', 'id' => 'contenido', 'name' => 'contenido', 'label' => 'Responder:', 'type' => 'text'), 'estado' => array('class' => 'estado', 'id' => 'estado', 'name' => 'estado', 'label' => 'Estado')); $datos['boton'] = array('class' => 'btn btn-info', 'name' => 'button', 'id' => 'boton_tareas'); $this->form_validation->set_rules('contenido', 'Contenido', 'trim|min_length[3]'); $this->form_validation->set_message('required', 'El campo %s no puede estar vacio'); $this->form_validation->set_message('min_legth', 'El campo %s debe tener mínmo 3 caracteres'); $this->form_validation->set_message('xss_clean', 'El campo %s no es válido'); if ($this->form_validation->run() == TRUE) { if ($this->input->post('estado') == 'cerrado') { $tarea->estado($codigoTarea, TRUE); $datos['tarea'] = $tarea->datos($codigoTarea); } else { $respuesta = new Respuesta_model(); $respuesta->inicializar($codigoTarea); $codigoRespuesta = $respuesta->codigo(); if ($codigoRespuesta) { $archivo = new Archivo_model(); $archivo->inicializar('respuesta', $codigoRespuesta); $empleado = new Empleado_model(); if ($empleado->foto($this->session->userdata('email')) == '') { $foto = base_url() . "images/indice.jpeg"; } else { $foto = $empleado->foto($this->session->userdata('email')); } $data = array('codigo' => $codigoProyecto, 'codigoTarea' => $codigoTarea, 'codigoRespuesta' => $codigoRespuesta, 'resp' => $this->input->post('contenido'), 'empleado' => $this->session->userdata('nombre') . ' ' . $this->session->userdata('apellidos'), 'email' => $this->session->userdata('email'), 'foto' => $foto, 'empleados' => Tarea_model::empleadosTarea($codigoTarea), 'user' => $this->session->userdata('usuario'), 'fecha' => date('d M Y', strtotime($tarea->fechaCreacion())), 'hora' => date('H:i A', strtotime($tarea->fechaCreacion())), 'fechaCompleta' => date('d-m-Y H:i:s', strtotime($tarea->fechaCreacion())), 'titulo' => ucfirst($tarea->titulo($codigoTarea))); $this->pusher->trigger('private-notificaciones-empleado', 'respuesta-enviar', $data); $respuestas = Respuesta_model::obtener($codigoTarea); if (!empty($respuestas)) { $datos['respuestas'] = $respuestas; foreach ($respuestas as $respuesta) { $datos['fotoRespuesta'][$respuesta->Email] = $empleado->foto($respuesta->Email); $archivosRespuesta = Archivo_model::obtener($respuesta->Codigo, 'respuesta'); if (!empty($archivosRespuesta)) { $i = 0; foreach ($archivosRespuesta as $archivo) { $datos['archivoRespuesta'][$i][$respuesta->Codigo]['nombre'] = array_pop(explode("/", $archivo->Ruta)); $datos['archivoRespuesta'][$i][$respuesta->Codigo]['codigo'] = $archivo->Codigo; $i++; } } } } } } } } else { $this->error = array('nivel' => '1', 'mensaje' => 'La tarea indicada no existe'); } } else { $this->error = array('nivel' => '1', 'mensaje' => 'No puedes acceder al proyecto'); } } else { $this->error = array('nivel' => '1', 'mensaje' => 'El proyecto indicado no existe'); } $this->mostrar($datos); }
public function notificaciones() { if (!$this->input->is_ajax_request()) { redirect('404'); } else { $empleado = new Empleado_model(); $empleado->datos($this->session->userdata('email')); $notificaciones = array(); $notificaciones['eventos'] = Evento_model::eventos(date('Y-m-d'), $this->session->userdata('email')); $notificaciones['chat'] = Chat_model::numero_mensajes_nuevos($this->session->userdata('ultimoAcceso'), $this->session->userdata('email')); $notificaciones['proyectos'] = Proyecto_model::numProyectosEmpleado($this->session->userdata('email')); $notificaciones['tareas'] = Tarea_model::numeroTareasNuevas($this->session->userdata('email'), $this->session->userdata('ultimoAcceso')); $notificaciones['respuestas'] = Respuesta_model::numeroRespuestasNuevas($this->session->userdata('email'), $this->session->userdata('ultimoAcceso')); $notificaciones['notas'] = Notas_model::numeroNotasNuevas($this->session->userdata('email'), $this->session->userdata('ultimoAcceso')); $notificaciones['archivos'] = Archivo_model::numeroArchivosNuevos($this->session->userdata('email'), $this->session->userdata('ultimoAcceso')); $notificaciones['novedades'] = $notificaciones['tareas'] + $notificaciones['respuestas'] + $notificaciones['notas'] + $notificaciones['archivos']; echo json_encode($notificaciones); } }