public function saveAction() { parent::saveAction(); /* Instancia classe SupplyStock */ $supplystockModel = new SupplystockModel(); /* Instancia classe Supply */ $supplyModel = new SupplyModel(); /* Instancia classe SupplyFlow */ $supplyflowModel = new SupplyflowModel(); $supplies = json_decode($_GET['supply'], true); $i = 0; $supply = array(); $supplystockModel->getAdapter()->beginTransaction(); try { foreach ($supplies as $row) { $data = explode("-", $_POST['dtcheckout']); if ($row['dtexpires'] != "Indeterminado") { $expire = explode("-", $row['dtexpires']); } $valor = substr($row['vlunitprice'], 2); /* Adiciona lista de Itens na SupplyStock */ $supply[$i] = array('cdsupply' => $row['cdsupply'], 'qtquantity' => $row['qtquantity'], 'qtsupplybalance' => $row['qtquantity'], 'cdsupplycentre' => $_POST['cdsupplycentrefrom'], 'dtexpire' => $expire[2] . "-" . $expire[1] . "-" . $expire[0] . " 00:00:00", 'dtcheckin' => $data[2] . "-" . $data[1] . "-" . $data[0] . " " . $_POST['hrcheckin'] . ":00", 'cdsupplier' => $_POST['cdsupplyentrysupplier'], 'idinvoice' => $_POST['cdsupplyinvoice'], 'idbatch' => $_POST['cdsupplylot'], 'vlunitprice' => $valor); /* Insere registros na StockFlow */ $supplyflow[$i] = array('cdsupply' => $row['cdsupply'], 'qtquantity' => $row['qtquantity'], 'cdsupplycentreto' => $_POST['cdsupplycentrefrom'], 'fgsupplyioreason' => '4', 'dtcheckin' => date("Y-m-d H:i:s"), 'dtcheckout' => date("Y-m-d H:i:s"), 'cdsupplycentrefrom' => null); /* Atualiza quantidade de itens na Supply */ $dataSupplier = $supplyModel->fetchRow($supplyModel->getSupplyByCdSupply($row['cdsupply'])); $dataSupplier['qtbalance'] = $dataSupplier['qtbalance'] + $row['qtquantity']; $array['qtbalance'] = $dataSupplier['qtbalance']; $supplyModel->update($array, 'cdsupply = ' . $row['cdsupply']); $supplystockModel->insert($supply[$i]); $supplyflowModel->insert($supplyflow[$i]); $i++; } $lastId = $supplystockModel->getAdapter()->lastInsertId(); $message = "Cadastro efetuado com sucesso.<br>Número no Protocolo gerado: " . $lastId; $supplystockModel->getAdapter()->commit(); } catch (Exception $e) { $supplystockModel->getAdapter()->rollBack(); $message = "Erro na inserção dos dados."; } $this->view->message = $message; }