public function saveAction() { $AppraisalData = $this->_request->getParam('AppraisalData'); $cdRequest = $this->_request->getParam('cdrequest'); $cdRequestExamination = $this->_request->getParam('cdrequestexamination'); $dscomment = $this->_request->getParam('dscomment'); $userSession = Zend_Session::namespaceGet('Gslab_Session'); $dateAppraisalTyping = date('Y-m-d'); $bootstrap = $this->getInvokeArg('bootstrap'); $gslab_db = $bootstrap->getResource('db'); $appraisalModel = new AppraisalModel(); $appraisalattributeModel = new AppraisalattributeModel(); $appraisalcommentModel = new AppraisalcommentModel(); $requestexaminationModel = new RequestexaminationModel(); $gslab_db->beginTransaction(); try { $arrayAppraisal = array(); $arrayAppraisal['cdrequest'] = $cdRequest; $arrayAppraisal['cdusergslab'] = $userSession['user']->cdusergslab; $arrayAppraisal['dtappraisaltyping'] = $dateAppraisalTyping; $appraisalModel->insert($arrayAppraisal); $cdappraisal = $appraisalModel->getAdapter()->lastInsertId(); // Insere Observação $arrayAppraisalComment = array(); $arrayAppraisalComment['cdappraisal'] = $cdappraisal; $arrayAppraisalComment['dscomment'] = $dscomment; $appraisalcommentModel->insert($arrayAppraisalComment); foreach ($AppraisalData as $appAttr) { if ($appAttr['name'] != 'cdappraisaltyping') { // Explode a string em um Array onde as posições: // 0 - CdRequestExamination; 1 - CdExamination; 2 - CdAttribute; 3 - CdExaminationMaterial $txtidentifier = "appraisal_input_"; $identifierAppraisal = str_replace($txtidentifier, "", $appAttr['name']); $arrayIdent = explode("_", $identifierAppraisal); $arrayAppraisalAttribute = array(); $arrayAppraisalAttribute['cdrequestexamination'] = $arrayIdent[0]; $arrayAppraisalAttribute['cdappraisal'] = $cdappraisal; $arrayAppraisalAttribute['cdattribute'] = $arrayIdent[2]; $arrayAppraisalAttribute['cdexaminationmaterial'] = $arrayIdent[3]; $arrayAppraisalAttribute['vlattribute'] = $appAttr['value']; $appraisalattributeModel->insert($arrayAppraisalAttribute); } } $requestexaminationModel->update(array("fgstatus" => 4), "cdrequestexamination = {$cdRequestExamination}"); $gslab_db->commit(); $return[0] = 1; $return[1] = "Digitação salva com sucesso!"; $return[2] = $cdappraisal; $this->view->save = $return; } catch (Exception $e) { $gslab_db->rollback(); $return[0] = 0; $return[1] = "A Digitação não pode ser salva!"; $return[2] = null; $this->view->save = $return; } }