/** * * Atualiza ou insere os telefones * @return void */ private function atualizaTelefones(fornecedoresModel $fornecedor) { //excluir $telefonesExcluir = array(); foreach ($fornecedor->getTelefones() as $telefones) { if ($telefones->getId() != '') { array_push($telefonesExcluir, $telefones->getId()); } } $cond = ''; if (!empty($telefonesExcluir)) { $telefonesExcluir = implode(',', $telefonesExcluir); $this->db->clear(); $cond = " AND id_telefone not in (" . $telefonesExcluir . ")"; } $sql = "DELETE FROM telefones WHERE id_telefone in( SELECT B.id_telefone FROM telefones_fornecedores AS B WHERE B.id_fornecedor = '" . $fornecedor->getId() . "' AND id_telefone = B.id_telefone) {$cond}"; $this->db->query($sql); if ($this->db->rowCount() > 0) { $this->db->clear(); } $this->db->setTabela('telefones'); foreach ($fornecedor->getTelefones() as $telefones) { if (!empty($telefones)) { $data = array('categoria_telefone' => $telefones->getCategoria(), 'numero_telefone' => $telefones->getNumero(), 'tipo_telefone' => $telefones->getTipo(), 'operadora_telefone' => $telefones->getOperadora()); if ($telefones->getId() != '') { $this->db->setCondicao('id_telefone = "' . $telefones->getId() . '"'); $this->db->update($data); } else { $this->db->insert($data); $idTelefone = $this->db->getUltimoId(); $idFornecedor = $fornecedor->getId(); $this->db->query("INSERT INTO telefones_fornecedores VALUES ('{$idFornecedor}','{$idTelefone}')"); } if ($this->db->rowCount() > 0) { $this->nUpdates++; } } } }