public function saverequestexaminationAction() { $values = $this->_request->getParams(); $array = array(); $arrayCdExamination = array(); $valueBarCode = array(); $requestExaminationModel = new RequestexaminationModel(); $ExaminationmaterialModel = new ExaminationmaterialModel(); $examinationmaterialrequestModel = new ExaminationmaterialrequestModel(); $requestExaminationSampleModel = new RequestexaminationsampleModel(); $covenantPricingModel = new CovenantpricingModel(); $columns = $requestExaminationModel->info(Zend_Db_Table_Abstract::COLS); //Default status de coleta "2 - Faltante" e data de hoje $values["fgstatus"] = 2; $values["dtcollection"] = date("Y-m-d h:i:s"); $requestExaminationModel->getAdapter()->beginTransaction(); try { foreach ($values as $id => $value) { if (isset($value) && $value != '' && $value != '0' && in_array($id, $columns)) { $array[$id] = addslashes($value); } else { if (in_array($id, $columns)) { $array[$id] = null; } } } if (empty($array)) { throw new Exception('Dados Incorretos. Confira seus dados e Tente Novamente.'); } else { $requestExaminationModel->insert($array); $lastcdrequestExamination = $requestExaminationModel->getAdapter()->lastInsertId(); $cdexaminationMaterial = $ExaminationmaterialModel->fetchAll($ExaminationmaterialModel->getCdByMaterial($values['cdmaterial'], $values['cdexamination'])); $examinationmaterialrequestModel->insert(array('cdexaminationmaterial' => $cdexaminationMaterial[0]['cdexaminationmaterial'], 'cdrequestexamination' => $lastcdrequestExamination)); $requestExaminationSampleModel->insert(array('cdrequestexamination' => $lastcdrequestExamination, 'cdrequest' => $values['cdrequest'])); // Criando o código de barras da Amostra $lastrequestexaminationsample = $requestExaminationSampleModel->getAdapter()->lastInsertId(); $cdcompany = $requestExaminationSampleModel->fetchAll($requestExaminationSampleModel->getCompanyBySample($lastrequestexaminationsample)); $valueBarCode['nmbarcodesample'] = GslabUtils::leadingZerosCode($cdcompany[0]['cdcompany'], 2) . '-' . GslabUtils::leadingZerosCode($cdcompany[0]['cdcompany'] . $values['cdrequest'], 6); $requestExaminationSampleModel->update($valueBarCode, "requestexaminationsample.cdrequestexaminationsample = {$lastrequestexaminationsample}"); $requestExaminationModel->getAdapter()->commit(); } } catch (Exception $e) { echo $e; $this->_model->getAdapter()->rollBack(); } }