/** * Atualiza ou insere os emails * @return void */ private function atualizaEmails(fornecedoresModel $fornecedor) { //excluir $emailExcluir = array(); foreach ($fornecedor->getEmail() as $email) { if ($email->getId() != '') { array_push($emailExcluir, $email->getId()); } } $cond = ''; if (!empty($emailExcluir)) { $emailExcluir = implode(',', $emailExcluir); $this->db->clear(); $cond = " AND id_email not in (" . $emailExcluir . ")"; } $sql = "DELETE FROM emails WHERE id_email in( SELECT B.id_email FROM emails_fornecedores AS B WHERE B.id_fornecedor = '" . $fornecedor->getId() . "' AND id_email = B.id_email) {$cond}"; $this->db->query($sql); $this->db->clear(); $this->db->setTabela('emails'); foreach ($fornecedor->getEmail() as $emails) { if (!empty($emails)) { $data = array('tipo_email' => $emails->getTipo(), 'endereco_email' => $emails->getEmail()); if ($emails->getId() != '') { $this->db->setCondicao('id_email = "' . $emails->getId() . '"'); $this->db->update($data); } else { $this->db->insert($data); $idEmail = $this->db->getUltimoId(); $idFornecedor = $fornecedor->getId(); $this->db->query("INSERT INTO emails_fornecedores VALUES ('{$idFornecedor}','{$idEmail}')"); } if ($this->db->rowCount() > 0) { $this->nUpdates++; } } } }