Esempio n. 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));
 }
Esempio n. 2
0
 public function nuevoAction()
 {
     $request = $this->getRequest();
     if ($request->isPost()) {
         $post_data = $request->getPost();
         $post_files = $request->getFiles();
         $entity = new \Empleado();
         foreach ($post_data as $key => $value) {
             if (\EmpleadoPeer::getTableMap()->hasColumn($key) && !empty($value)) {
                 $entity->setByName($key, $value, \BasePeer::TYPE_FIELDNAME);
             }
         }
         //SETIAMOS LA FECHA EN EL FORMATO CORRECTO
         $empleado_iniciocontrato = date_create_from_format('d/m/Y', $post_data['empleado_iniciocontrato']);
         $entity->setEmpleadoIniciocontrato($empleado_iniciocontrato);
         //SETIAMOS LA CONTRASEÑA EN MD5
         $entity->setEmpleadoPassword(md5($post_data['empleado_password']));
         //SETIAMOS EL STATUS COMO ACTIVO
         $entity->setEmpleadoEstatus('activo');
         $entity->save();
         //LA FOTO DEL EMPLEADO
         if (!empty($post_files['empleado_foto']['name'])) {
             $upload_folder = '/img/admin/profiles/';
             $img_type = $post_files['empleado_foto']['type'];
             $img_type = explode('/', $img_type);
             $img_type = $img_type[1];
             $img_info = getimagesize($post_files['empleado_foto']['tmp_name']);
             $img_original = imagecreatefromjpeg($post_files['empleado_foto']['tmp_name']);
             $max_ancho = 250;
             $max_alto = 250;
             list($ancho, $alto) = getimagesize($post_files['empleado_foto']['tmp_name']);
             //Se calcula ancho y alto de la imagen final
             $x_ratio = $max_ancho / $ancho;
             $y_ratio = $max_alto / $alto;
             //Si el ancho y el alto de la imagen no superan los maximos,
             //ancho final y alto final son los que tiene actualmente
             if ($ancho <= $max_ancho && $alto <= $max_alto) {
                 //Si ancho
                 $ancho_final = $ancho;
                 $alto_final = $alto;
             } elseif ($x_ratio * $alto < $max_alto) {
                 $alto_final = ceil($x_ratio * $alto);
                 $ancho_final = $max_ancho;
             } else {
                 $ancho_final = ceil($y_ratio * $ancho);
                 $alto_final = $max_alto;
             }
             //Creamos una imagen en blanco de tamaño $ancho_final  por $alto_final .
             $tmp = imagecreatetruecolor($ancho_final, $alto_final);
             //Copiamos $img_original sobre la imagen que acabamos de crear en blanco ($tmp)
             imagecopyresampled($tmp, $img_original, 0, 0, 0, 0, $ancho_final, $alto_final, $ancho, $alto);
             //Se destruye variable $img_original para liberar memoria
             imagedestroy($img_original);
             //Definimos la calidad de la imagen final
             $calidad = 95;
             //Se crea la imagen final en el directorio indicado
             imagejpeg($tmp, $_SERVER['DOCUMENT_ROOT'] . "/img/admin/profiles/empleado_avatar_" . $entity->getIdempleado() . ".jpg", $calidad);
             //SETIAMOS LA FOTO
             $entity->setEmpleadoFoto("/img/admin/profiles/empleado_avatar_" . $entity->getIdempleado() . ".jpg");
             $entity->save();
         }
     }
     //INSTANCIAMOS NUESTRO FORMULARIO
     $mexico_states = \Shared\GeneralFunction\Geolocation::getMexicoStates();
     $form = new \Catalogo\Form\EmpleadoForm($mexico_states);
     //RETORNAMOS A NUESTRA VISTA
     $view_model = new ViewModel();
     $view_model->setTemplate('admin/catalogo/empleado/nuevo');
     $view_model->setVariable('form', $form);
     return $view_model;
 }