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)); }
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; }