public function saveAction() { parent::saveAction(); // Pega parâmetros passados por intermédio do request $array = array(); $values = $this->_request->getParams(); $cdexamination = $this->_request->getParam('cdexamination'); $idexamination = $this->_request->getParam('idexamination'); $nmexamination = $this->_request->getParam('nmexamination'); $nrminage = $this->_request->getParam('nrminage'); $fgtypeagemin = $this->_request->getParam('fgtypeagemin'); $nrmaxage = $this->_request->getParam('nrmaxage'); $cddepartment = $this->_request->getParam('cddepartment'); $fgtypeagemax = $this->_request->getParam('fgtypeagemax'); $qtdsamples = $this->_request->getParam('qtdsamples'); $fgsex = $this->_request->getParam('fgsex'); $allowpartialsave = $this->_request->getParam('allowpartialsave'); $dsdiagnosis = $this->_request->getParam('dsdiagnosis'); $dsinterference = $this->_request->getParam('dsinterference'); $departments = $this->_request->getParam('departments'); $mapattrib = $this->_request->getParam('fgmapattrib'); $departments = json_decode($departments); $synonyms = $this->_request->getParam('synonyms'); $synonyms = json_decode($synonyms); $materials = $this->_request->getParam('materials'); $materials = json_decode($materials); $examinationModel = new ExaminationModel(); $examinationModel->getAdapter()->beginTransaction(); /* var_dump($values); var_dump($this->view->controller); var_dump($this->view->action); die(); */ try { /* Salva dados na tabela 'examination' */ $examination = array(); $examination['idexamination'] = $idexamination; $examination['nmexamination'] = $nmexamination; $examination['fgsex'] = $fgsex; $examination['nrsamplelimit'] = $qtdsamples; $examination['fgparcialsave'] = $allowpartialsave; $examination['dsdiagnosis'] = $dsdiagnosis; $examination['dsinterference'] = $dsinterference; $examination['nrminage'] = $nrminage; $examination['nrmaxage'] = $nrmaxage; $examination['cdtimeframeminage'] = $fgtypeagemin; $examination['cdtimeframemaxage'] = $fgtypeagemax; // Passar para ExaminationMaterial //$examination['cddepartment'] = $cddepartment; // Mostragem dos atributos no mapa if (isset($mapattrib)) { if ($mapattrib) { $examination['fgmapattrib'] = 1; } else { $examination['fgmapattrib'] = 2; } } $previousAction = GslabUtils::getPreviousAction($this->view); if (strcmp($previousAction, "edit") == 0) { $examinationModel->update($examination, 'examination.cdexamination = ' . $cdexamination); } else { $examinationModel->insert($examination); $cdexamination = $examinationModel->getAdapter()->lastInsertId(); } /* Salva dados na tabela 'examinationdepartment' */ $examinationPermissionModel = new ExaminationpermissionModel(); foreach ($departments as $singleDepartment) { // Salva dados na tabela 'examinationpermission' $departmentPrintPermission = array('cddepartment' => $singleDepartment->cddepartment, 'cdexamination' => $cdexamination, 'fgprintmap' => $singleDepartment->map, 'fgprintsampleprotocol' => $singleDepartment->protocol, 'fgprintappraisal' => $singleDepartment->appraisal); $examinationPermissionModel->insert($departmentPrintPermission); } /* Salva dados na tabela 'examinationmaterial' */ $examinationMaterialModel = new ExaminationmaterialModel(); foreach ($materials as $singleMaterial) { $examinationMaterial = array('cdexamination' => $cdexamination, 'cdmaterial' => $singleMaterial->cdmaterial, 'fgdefault' => $singleMaterial->select); $examinationMaterialModel->insert($examinationMaterial); } /* Salva dados na tabela 'synonym' - Criando os registros */ $synonymModel = new SynonymModel(); $examinationSynonymModel = new ExaminationsynonymModel(); foreach ($synonyms as $singleSynonym) { $synonym = array('nmsynonym' => $singleSynonym->nmsynonym, 'fgdefault' => $singleSynonym->select); $synonymModel->insert($synonym); $cdsynonym = $synonymModel->getAdapter()->lastInsertId(); // Salva dados na tabela 'examinationsynonym' - ligando os sinonimias ao exame $examinationSynonym = array('cdexamination' => $cdexamination, 'cdsynonym' => $cdsynonym); $examinationSynonymModel->insert($examinationSynonym); } $examinationrevisionModel = new ExaminationrevisionModel(); $columns = $examinationrevisionModel->info(Zend_Db_Table_Abstract::COLS); foreach ($values as $id => $value) { if (isset($value) && $value != '' && in_array($id, $columns)) { $array[$id] = addslashes($value); } } //var_dump($values); //die(); $examinationrevisionModel->insert($array); //$this->_model->getAdapter()->commit(); // Avisa que o cadastro foi bem sucedido e retorna para o modo de inclusão de exames para um novo cadastro. $message = "Cadastro efetuado com sucesso."; } catch (Exception $e) { $message = "Erro na inserção dos dados. <br> Por favor, entre em contato e informe a mensagem a seguir: </br>"; $this->_model->getAdapter()->rollBack(); } $this->view->message = $message; }