예제 #1
0
 public function nuevoAction()
 {
     //Roles disponibles
     $rolesCollection = \RolQuery::create()->find();
     $rolesArray = array();
     foreach ($rolesCollection as $rol) {
         $rolesArray[$rol->getIdrol()] = $rol->getRolNombre();
     }
     $form = new \Empleados\Form\EmpleadoForm($rolesArray);
     $request = $this->getRequest();
     if ($request->isPost()) {
         //Si hicieron POST
         $post_data = $request->getPost();
         //filtro
         $filer = new \Empleados\Filter\EmpleadoFilter();
         $form->setInputFilter($filer->getInputFilter());
         //Le ponemos los datos a nuestro formulario
         $form->setData($request->getPost());
         //Validamos nuestro formulario de articulo
         if ($form->isValid()) {
             $empleado = new \Empleado();
             //Recorremos nuestro formulario y seteamos los valores a nuestro objeto Articulo
             foreach ($form->getData() as $key => $value) {
                 if ($key == 'empleado_password') {
                     $empleado->setByName($key, md5($value), \BasePeer::TYPE_FIELDNAME);
                 } else {
                     $empleado->setByName($key, $value, \BasePeer::TYPE_FIELDNAME);
                 }
             }
             //La imagen
             if (!empty($_FILES)) {
                 if (!empty($_FILES["name"])) {
                     $date = new \DateTime();
                     $upload_folder = '/img/empleados/';
                     $tipo_archivo = $_FILES['empleado_imagen']['type'];
                     $tipo_archivo = explode('/', $tipo_archivo);
                     $tipo_archivo = $tipo_archivo[1];
                     $nombre_archivo = 'empleado-' . $date->getTimestamp() . '.' . $tipo_archivo;
                     $tmp_archivo = $_FILES['empleado_imagen']['tmp_name'];
                     $archivador = $upload_folder . $nombre_archivo;
                     if (!move_uploaded_file($tmp_archivo, $_SERVER["DOCUMENT_ROOT"] . $archivador)) {
                         return $this->getResponse()->setContent(\Zend\Json\Json::encode(array('response' => false, 'msg' => 'Ocurrio un error al subir el archivo. No pudo guardarse.', 'status' => 'error')));
                     }
                     $empleado->setEmpleadoImagen($archivador);
                 }
             }
             $empleado->save();
             if (!$empleado->isPrimaryKeyNull()) {
                 //Ya se guardo y por lo tanto tiene un pk
                 //Agregamos un mensaje
                 $this->flashMessenger()->addMessage('Empleado guardado exitosamente!');
                 //Redireccionamos a nuestro list
                 $this->redirect()->toRoute('empleados');
             }
         }
     }
     return new ViewModel(array('form' => $form, 'modulos' => $modulos));
 }