Esempio n. 1
0
 /**
  * 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++;
             }
         }
     }
 }