/** * 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'); }
/** * Nuevo remito por Planilla_id. Reutiliza la vista remito/nuevo.volt */ public function agregarAction($planilla_id) { $this->assets->collection("headerCss")->addCss('plugins/iCheck/all.css'); $this->assets->collection('headerJs')->addJs('plugins/iCheck/icheck.min.js'); if ($planilla_id == null) { $this->flash->error("No se encontro la planilla solicitada #{$planilla_id}"); return $this->redireccionar('remito/nuevoRemitoPorPlanilla'); } $planilla = Planilla::findFirst(array('planilla_id=:planilla_id: AND planilla_armada=1 AND planilla_finalizada=0 AND planilla_habilitado=1 ', 'bind' => array('planilla_id' => $planilla_id))); if (!$planilla) { $this->flash->error("La planilla con ID {$planilla_id} no se encontró disponible para agregar remitos."); return $this->redireccionar('remito/nuevoRemitoPorPlanilla'); } $columnas = Columna::find(array("columna_cabeceraId=:cabecera_id: AND columna_habilitado = 1 AND columna_extra = 1", 'bind' => array('cabecera_id' => $planilla->getPlanillaCabeceraid()))); if (count($columnas) != 0) { $this->view->columnaExtraForm = new ColumnaExtraForm(null, array('extra' => $columnas)); } $this->view->remitoForm = new RemitoForm(null, array('required' => '')); $cliente = Cliente::findFirst(array('cliente_id=:cliente_id:', 'bind' => array('cliente_id' => $planilla->getPlanillaClienteId()))); $this->view->clienteForm = new ClienteNewForm($cliente, array('required' => '')); $this->view->planilla = $planilla; $this->view->pick('remito/nuevo'); }
} if (isset($_POST['increment' . $i])) { $increment = true; } else { $increment = false; } if (isset($_POST['default' . $i])) { $default = true; $defaultVal = htmlspecialchars($_POST['defaultVal' . $i]); } else { $default = false; $defaultVal = null; } $objTipoDato = copiaDato($tipoDato); $objTipoDato->presicion($longitudCol, $precisionCol); $objColumna = new Columna($nombreCol, !$noNulo, $llavePrimaria, $unico, $increment, $defaultVal); $objColumna->tipoDato($objTipoDato); //echo sqlColumna($objColumna)."<br>"; $sqlTabla .= sqlColumna($objColumna); //if($numColumnas!=$i){ $sqlTabla .= ","; //} /* echo $nombreCol."--".$tipoDato."--".$longitudCol."--".$precisionCol."--".$noNulo."--".$unico."--".$llavePrimaria."--".$default."--".$defaultVal."<br>"; */ } $mensaje = "La tabla {$base}.{$nombreTabla} se ha creado correctamente"; $sqlTabla = substr_replace($sqlTabla, "", strlen($sqlTabla) - 1, 1); $sqlTabla .= ");"; //echo $sqlTabla; try {
/** * Busca todas las columnas extras por id. * @param $cabecera_id * @return array|Columna[] */ public static function verColumnasExtrasOrdenadasByCabeceraId($cabecera_id) { //Busco todas las columnas para armar el th ordenadamente $columnas = Columna::find(array("columna_cabeceraId=:cabecera_id: AND columna_habilitado = 1 AND columna_extra = 1 ORDER BY columna_posicion ASC", 'bind' => array('cabecera_id' => $cabecera_id))); if ($columnas) { return $columnas; } return null; }
/** * Permite ver un menu personalizado para cada planilla. */ public function viewAction($planilla_id) { //Para el modal de eliminacion $this->assets->collection('footerInline')->addInlineJs(' $(document).on("click", ".enviar-dato", function () { var id = $(this).data("id"); $("#cuerpo #id").val( id ); }); '); $planilla = Planilla::findFirst(array('planilla_id=:planilla:', 'bind' => array('planilla' => $planilla_id))); if (!$planilla) { $this->flash->error("NO EXISTE LA PLANILLA QUE ESTÁ INTENTANDO ACCEDER"); return $this->redireccionar('planilla/search'); } if ($planilla->getCabecera() != null) { $columnas = Columna::find(array('columna_cabeceraId=:cabecera: AND columna_habilitado=1', 'bind' => array('cabecera' => $planilla->getCabecera()->getCabeceraId()))); if ($columnas) { $this->view->columnas = $columnas; } } //$cliente = Cliente::findFirst(array('cliente_nombre LIKE :nombre:','bind'=>array('nombre'=>$pla))) $this->view->planilla = $planilla; }
$sqlTabla .= " CHANGE COLUMN"; } else { $sqlTabla .= " MODIFY COLUMN"; } if (isset($_POST['noNulo'])) { $noNulo = true; } if (isset($_POST['default'])) { $default = true; $defaultVal = htmlspecialchars($_POST['defaultVal']); } else { $default = false; $defaultVal = null; } $tipoDato->presicion($longitudCol, $precisionCol); $objColumna = new Columna($nombreCol, !$noNulo, false, false, false, $defaultVal); $objColumna->tipoDato($tipoDato); //echo sqlColumna($objColumna)."<br>"; ?> <?php $sqlTabla .= sqlColumnaAlter($objColumna, $nombreViejo); //echo $sqlTabla; $mensaje = "La columna {$base}.{$nombreTabla}.{$nombreCol} se ha ALTERADO correctamente"; //echo $sqlTabla; try { $resultado = mysql_query($sqlTabla, $conexion); if (!$resultado) { $mensaje = "Error en SQL<br>" . mysql_error() . "<br>SQL:" . $sqlTabla; } } catch (Exception $ex) { $mensaje = "Error en SQL<br>" . mysql_error() . "<br>SQL:" . $sqlTabla;
/** * Devuelve todas las columnas de una cabecera */ public static function getTodasLasColumnasDeshabilitadas($cabecera_id) { $columnas = Columna::find(array('columna_cabeceraId =:cabecera_id: AND columna_habilitado=0', 'bind' => array('cabecera_id' => $cabecera_id))); return $columnas; }
/** * Segun las columnas reordenadas se iran actualizando las posiciones. */ public function ordenarAction() { $this->view->disable(); if ($_GET['listItem'] != null) { foreach ($_GET['listItem'] as $position => $item) { //echo "Posicion: ".$position." - Item: ".$item ."<br>"; $columna = Columna::findFirstByColumna_id($item); if ($columna) { $columna->setColumnaPosicion($position); if (!$columna->update()) { echo "HUBO UN PROBLEMA AL ACTUALIZAR LAS NUEVAS POSICIONES."; return; } } else { echo "NO SE HA ENCONTRADO LA COLUMNA <br>"; } } echo "OPERACIÓN EXITOSA, LAS COLUMNAS SE HAN REORDENADO."; } else { echo "DEBE SELECCIONAR UNA PLANILLA CON COLUMNAS"; } }