Пример #1
0
 /**
  * 
  * 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();
     }
 }