示例#1
0
 public function registrar($codigo, $codigoCarpeta = '')
 {
     if (Proyecto_model::existe($codigo)) {
         $proyecto = new Proyecto_model();
         if ($proyecto->estado($codigo) != 'Cerrado') {
             if ($this->session->userdata('usuario') == 'admin' || Proyecto_model::existeEmpleado($codigo, $this->session->userdata('email'))) {
                 if (!is_dir(getcwd() . '/archivos/proyectos/')) {
                     mkdir(getcwd() . '/archivos/proyectos/', 0755);
                 }
                 if (!is_dir(getcwd() . '/archivos/proyectos/' . $codigo)) {
                     mkdir(getcwd() . '/archivos/proyectos/' . $codigo, 0755);
                 }
                 $archivo = new Archivo_model();
                 $cod = '';
                 //Si queremos registrar una carpeta
                 if ($this->input->post('nombreCarpeta') != '') {
                     if ($codigoCarpeta != '') {
                         $aux = $archivo->inicializar('carpeta', $codigo, $codigoCarpeta);
                         $cod = $archivo->codigo();
                     } else {
                         $aux = $archivo->inicializar('carpeta', $codigo);
                         $cod = $archivo->codigo();
                     }
                 } else {
                     if ($codigoCarpeta == '') {
                         $aux = $archivo->inicializar('proyecto', $codigo);
                         $cod = $archivo->codigo();
                     } else {
                         $aux = $archivo->inicializar('proyecto', $codigo, $codigoCarpeta);
                         $cod = $archivo->codigo();
                     }
                 }
                 if (!is_array($aux)) {
                     if ($codigoCarpeta == '') {
                         $this->listar($codigo);
                     } else {
                         $this->listar($codigo, $codigoCarpeta);
                     }
                     $empleados = array();
                     $e = new Usuario_model();
                     foreach (Proyecto_model::empleadosProyecto($codigo) as $empl) {
                         if ($e->tipo($empl->EmailEmpleado) == 'empleado') {
                             $empleados[$empl->EmailEmpleado] = 'empleados';
                         } else {
                             $empleados[$empl->EmailEmpleado] = $e->tipo($empl->EmailEmpleado);
                         }
                     }
                     $numArchivos = 1;
                     if (isset($_FILES['archivos'])) {
                         $numArchivos = count($_FILES['archivos']['tmp_name']);
                     }
                     for ($i = $numArchivos; $i != 0; $i--) {
                         $pusher = array('codigo' => $cod, 'carpeta' => $codigoCarpeta, 'proyecto' => $codigo, 'nombre' => $archivo->nombre($cod), 'ruta' => $archivo->ruta($cod), 'tamanyo' => $archivo->tamanyo($cod), 'extension' => $archivo->extension($cod), 'fechaCompleta' => date('d-m-Y', strtotime($archivo->fecha($cod))), 'fecha' => date('d M Y', strtotime($archivo->fecha($cod))), 'hora' => date('H:i A', strtotime($archivo->fecha($cod))), 'empleado' => $this->session->userdata('nombre') . ' ' . $this->session->userdata('apellidos'), 'empleados' => $empleados);
                         $this->pusher->trigger('private-notificaciones-empleado', 'crear-archivo', $pusher);
                         $cod--;
                     }
                 } else {
                     if ($codigoCarpeta == '') {
                         $this->listar($codigo, '', $aux);
                     } else {
                         $this->listar($codigo, $codigoCarpeta, $aux);
                     }
                 }
                 if ($codigoCarpeta != '') {
                     if ($this->session->userdata('usuario') == 'admin') {
                         redirect("admin/proyecto/archivos/{$codigo}/{$codigoCarpeta}");
                     } else {
                         redirect("empleados/proyecto/archivos/{$codigo}/{$codigoCarpeta}");
                     }
                 } else {
                     if ($this->session->userdata('usuario') == 'admin') {
                         redirect("admin/proyecto/archivos/{$codigo}");
                     } else {
                         redirect("empleados/proyecto/archivos/{$codigo}");
                     }
                 }
             } else {
                 $error = array('error' => 'No puedes registrar archivos en este proyecto');
                 $this->listar($codigo, '', $error);
             }
         } else {
             $error = array('error' => 'El proyecto esta cerrado');
             $this->listar($codigo, '', $error);
         }
     } else {
         $this->mostrar($datos);
     }
 }