/** * * Atualiza ou insere os fornecedores * @return void */ private function atualizaFornecedores(produtosModel $produto) { try { //excluindo os fornecedores não listados $fornecedorExcluir = array(); foreach ($produto->getFornecedores() as $fornecedor) { if ($fornecedor->getId() != '') { array_push($fornecedorExcluir, $fornecedor->getFornecedor()->getId()); } } $cond = ''; if (!empty($fornecedorExcluir)) { $fornecedorExcluir = implode(',', $fornecedorExcluir); $this->db->clear(); $cond = " AND id_fornecedor not in (" . $fornecedorExcluir . ")"; } $sql = "DELETE FROM produto_fornecedores WHERE id_produto = '" . $produto->getId() . "' {$cond}"; $this->db->query($sql); if ($this->db->rowCount() > 0) { $this->db->clear(); } $this->db->setTabela('produto_fornecedores'); foreach ($produto->getFornecedores() as $fornecedor) { if (!empty($fornecedor)) { $data = array('id_produto' => $produto->getId(), 'id_fornecedor' => $fornecedor->getFornecedor()->getId()); if ($fornecedor->getId() != '') { $this->db->setCondicao('id_produto_fornecedor = "' . $fornecedor->getId() . '"'); $this->db->update($data); } else { $this->db->insert($data); } if ($this->db->rowCount() > 0) { $this->nUpdates++; } } } } catch (dbException $e) { return $e->getMessageError(); } }