/** * 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'); }
/** * 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; }
/** * 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; }
/** * obtiene todas las columnas perteneciente a la planilla seleccionada. * Busca la planilla, obtiene la cabecera y recupera todas las columnas por cabecera. * [[ AJAX ]] */ public function buscarColumnasPorCabeceraIdAction() { $this->view->disable(); $data = array(); $mensajes = array(); if (!$this->request->isPost()) { $data['success'] = false; $mensajes[] = "La URL solicitada no se encuentra disponible."; } else { if ($this->request->getPost('cabecera_id', 'int') == null) { $data['success'] = false; $mensajes[] = "Por favor seleccione una Cabecera."; } else { $cabecera = Cabecera::findFirst(array('cabecera_id = :cabecera_id: AND cabecera_habilitado=1', 'bind' => array('cabecera_id' => $this->request->getPost('cabecera_id', 'int')))); if (!$cabecera) { $data['success'] = false; foreach ($cabecera->getMessages() as $mje) { $mensajes[] = $mje . " <br>"; } } else { $columnas = Columna::find(array('columna_cabeceraId = :cabecera_id: AND columna_habilitado=1', 'bind' => array('cabecera_id' => $cabecera->getCabeceraId()), 'order' => 'columna_posicion ASC')); if ($columnas) { $retorno = array(); foreach ($columnas as $col) { $item = array(); $item['columna_id'] = $col->getColumnaId(); $item['columna_nombre'] = $col->getColumnaNombre(); $retorno[] = $item; } if (count($retorno) == 0) { $data['success'] = false; $mensajes[] = 'La planilla seleccionada no contiene una cabecera con columnas para reordenar.'; } else { $data['success'] = true; $mensajes[] = 'Operación Exitosa'; $data['columnas'] = $retorno; } } else { $data['success'] = false; $mensajes[] = 'No se encontraron columnas referidas a la planilla seleccionada.'; } } } } $data['mensaje'] = $mensajes; echo json_encode($data); }