public function nuevoAction() { $this->layout('layout/conserje'); $this->layout()->reclamo = "active"; $this->layout()->reclamonuevo = "active"; //$this->dbAdapter=$this->getServiceLocator()->get('Zend\Db\Adapter'); $sid = new Container('base'); $db_name = $sid->offsetGet('dbNombre'); $id_db = $sid->offsetGet('id_db'); $this->dbAdapter = $this->getServiceLocator()->get($db_name); $reclamo = new ReclamoTable($this->dbAdapter); //id =0 [Insertar Reclamo] // id > 0 [Actualizar Reclamo] $id = (int) $this->params()->fromRoute('id', 0); if ($this->getRequest()->isPost()) { $lista = $this->request->getPost(); //valor fijo, debe ser dinamico o recuperado de la sesion $lista['id_usuario'] = '1'; $id_pk = (int) $lista['id_pk']; //Inserta o Actualizar Reclamo if ($id_pk > 0) { $reclamo->actualizarReclamo($id_pk, $lista); } else { $reclamo->nuevoReclamo($lista); } return $this->forward()->dispatch('Conserje\\Controller\\Reclamo', array('action' => 'respuesta')); //return $this->redirect()->toUrl($this->getRequest()->getBaseUrl().'/conserje/reclamo/consultar'); } else { $form = new ReclamoForm("form"); //cargamos el combobox de dpto $sid = new Container('base'); $usuario_id = $sid->offsetGet('id_usuario'); $dpto = new UnidadTable($this->dbAdapter); $nmrodpto = $dpto->getDptoUsuario($usuario_id); $form->get('id_dpto')->setAttribute('value', $nmrodpto['0']['nombre']); //cargamod el combobox de tipo asunto $asunto = new TipoAsuntoTable($this->dbAdapter); $form->get('id_tipo_asunto')->setAttribute('options', $asunto->getDatosActivos()); if ($id > 0) { $titulo = "Actualizar Reclamo"; $recuperaDatos = $reclamo->getReclamos($this->dbAdapter, $id); $form->get('id_pk')->setAttribute('value', $id); $form->get('id_dpto')->setAttribute('value', $recuperaDatos[0]['id_unidad']); $form->get('id_tipo_asunto')->setAttribute('value', $recuperaDatos[0]['id_tipo_asunto']); $form->get('receptor')->setAttribute('value', $recuperaDatos[0]['receptor']); $form->get('descripcion')->setAttribute('value', $recuperaDatos[0]['descripcion']); } else { $titulo = "Nuevo Reclamo"; } } $valores = array('form' => $form, 'url' => $this->getRequest()->getBaseUrl(), "titulo" => $titulo); return new ViewModel($valores); }