/** * Guarda las columnas extras a una planilla determinada */ public function guardarExtraAction() { if ($this->request->isPost()) { if ($this->request->getPost('cabecera_id', 'int') == null || $this->request->getPost('columna') == null) { $this->flash->error("Por favor verifique que la planilla y las columnas no esten vacías."); return $this->redireccionar('columna/agregarExtra'); } $max = count(Columna::find(array('columna_cabeceraId=:cabeceraId: AND columna_habilitado=1', 'bind' => array('cabeceraId' => $this->request->getPost('cabecera_id', 'int'))))); $arregloColumnas = $this->request->getPost('columna'); foreach ($arregloColumnas as $columna) { if (!empty($columna)) { $max = $max + 1; $nuevaColumna = new Columna(); $nuevaColumna->setColumnaNombre(strtoupper($columna)); $cadenaLimpia = $this->limpiarCadena(strtoupper($columna)); $nuevaColumna->setColumnaClave(strtoupper(trim($cadenaLimpia))); $nuevaColumna->setColumnaExtra(1); $nuevaColumna->setColumnaPosicion($max); $nuevaColumna->setColumnaCabeceraId($this->request->getPost('cabecera_id', 'int')); $nuevaColumna->setColumnaHabilitado(1); if (!$nuevaColumna->save()) { foreach ($nuevaColumna->getMessages() as $message) { $error[] = $message . " <br>"; } } } } $this->flash->success("Operación Exitosa: Las columnas extras se agregaron correctamente."); } return $this->redireccionar('columna/agregarExtra'); }
/** * Guarda todas las columnas extras que se agregaron en la interfaz. * Si la cabecera ya existe, agrega mas columnas extras. * Si la cabecera no existe, la crea y agrega sus columnas */ public function agregarExtraAction() { $this->view->disable(); $error = array(); // array to hold validation errors $data = array(); $data['success'] = false; $data['mensaje'] = "Ups, ha ocurrido un problema."; if ($this->request->isPost()) { $this->db->begin(); //si existe el token del formulario y es correcto(evita csrf) //if ($this->security->checkToken('token',$this->request->getPost('token'))) { if (!$this->request->hasPost('columna')) { $error[] = "No puede guardar columnas vacias."; } else { //$cabeceraId = Cabecera::guardar($this->request->getPost('planilla_nombreCliente')); $cabecera_id = $this->request->getPost('cabecera_id', 'int'); $cabecera = Cabecera::findFirstByCabecera_id($cabecera_id); if (!$cabecera) { $error[] = "Hubo un problema, no se encontro la cabecera."; } else { $arregloColumnas = $this->request->getPost('columna'); $posicion = 26; foreach ($arregloColumnas as $columna) { if (!empty($columna)) { $nuevaColumna = new Columna(); $nuevaColumna->setColumnaNombre(strtoupper($columna)); $nuevaColumna->setColumnaClave('CLAVE_' . strtoupper($columna)); $nuevaColumna->setColumnaExtra(1); $nuevaColumna->setColumnaPosicion($posicion++); $nuevaColumna->setColumnaCabeceraId($cabecera->getCabeceraId()); $nuevaColumna->setColumnaHabilitado(1); if (!$nuevaColumna->save()) { foreach ($nuevaColumna->getMessages() as $message) { $error[] = $message . " <br>"; } } } else { $error[] = "Debe ingresar el nombre de la columna"; } } } } if (empty($error)) { $this->db->commit(); $todasLasColumnas = $this->modelsManager->createBuilder()->columns('columna_id, columna_nombre')->from('Columna')->where('columna_cabeceraId = :cabecera_id:', array('cabecera_id' => $cabecera->getCabeceraId()))->orderBy('columna_posicion ASC')->getQuery()->execute()->toArray(); $data['columnas'] = $todasLasColumnas; $data['success'] = true; $data['mensaje'] = "Operacion Exitosa, las columnas han sido guardadas correctamente"; } else { $this->db->rollback(); $data['success'] = false; $data['mensaje'] = $error; } } echo json_encode($data); }