/** * Atualiza ou insere os emails * @return void */ private function atualizaEmails(funcionariosModel $funcionario) { //excluir $emailExcluir = array(); foreach ($funcionario->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_funcionarios AS B WHERE B.id_funcionario = '" . $funcionario->getId() . "' AND id_email = B.id_email) {$cond}"; $this->db->query($sql); $this->db->clear(); $this->db->setTabela('emails'); foreach ($funcionario->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(); $idFuncionario = $funcionario->getId(); $this->db->query("INSERT INTO emails_funcionarios VALUES ('{$idFuncionario}','{$idEmail}')"); } if ($this->db->rowCount() > 0) { $this->nUpdates++; } } } }
/** * Atualiza funcionários * @return boolean */ public function atualizar(funcionariosModel $funcionario) { $data = array('foto_funcionario' => $funcionario->getFoto(), 'nome_funcionario' => $funcionario->getNome(), 'sobrenome_funcionario' => $funcionario->getSobrenome(), 'data_nascimento_funcionario' => $funcionario->getDataNascimento(), 'sexo_funcionario' => $funcionario->getSexo(), 'rg_funcionario' => $funcionario->getRg(), 'cpf_funcionario' => $funcionario->getCpf(), 'estado_civil_funcionario' => $funcionario->getEstadoCivil(), 'escolaridade_funcionario' => $funcionario->getEscolaridade(), 'email_funcionario' => $funcionario->getEmail(), 'telefone_funcionario' => $funcionario->getTelefone(), 'id_cargo' => $funcionario->getCargo()->getId(), 'data_admissao_funcionario' => $funcionario->getDataAdmissao(), 'data_demissao_funcionario' => $funcionario->getDataDemissao()); try { $this->db->clear(); $this->db->setTabela('funcionarios'); $this->db->setCondicao("id_funcionario = ?"); $this->db->setParameter(1, $funcionario->getId()); if ($this->db->update($data)) { $this->nUpdates++; } } catch (dbException $e) { return $e->getMessageError(); } //ENDEREÇO $this->atualizaEndereco($funcionario); if ($this->nUpdates > 0) { return true; } else { return json_encode(array('erro' => 'Erro ao editar registro')); } }