def __init__(self, isCadastro: bool = True): self.continuarCadastroContatosPessoa = False tela = AdicionarPessoaView() nome = "1" #setar erro esperado hasCaracteresEspeciais = True hasCaracteresNumericos = True while (nome.isnumeric() == True or hasCaracteresEspeciais or hasCaracteresNumericos or nome == "" or len(nome) > 100): nome = tela.formulario(isCadastro) hasCaracteresEspeciais = TextoUtil( ).verificarTextoComCaracteresEspeciais(nome) hasCaracteresNumericos = TextoUtil().verificarTextoComNumeros(nome) if (nome.isnumeric() or hasCaracteresNumericos): tela.colocarMensagem(1) if (nome == ""): tela.colocarMensagem(2) if (len(nome) > 100): tela.colocarMensagem(3) if (hasCaracteresEspeciais): tela.colocarMensagem(6) self.pessoa = PessoaDTO(0, nome, "") tela.aparecerObservacoes(1) opcao = "a" if (isCadastro): while (opcao.isalpha() or opcao == "" or (opcao.isnumeric() and (int(opcao) < 0 or int(opcao) > 1))): opcao = tela.posFormulario() if (opcao.isalpha()): tela.colocarMensagem(5) else: if (int(opcao) == 0): self.continuarCadastroContatosPessoa = True if (opcao.isnumeric() and (int(opcao) < 0 or int(opcao) > 1)): tela.colocarMensagem(4)
def enviarEmail(self, codigo: int): novaPessoa = PessoaDTO(codigo, "", "") self.pessoa = self.agenda.selecionaContato(novaPessoa, 2) dados = self.view.formularioEmail(self.pessoa.contatos[0]) try: envioDeEmail = EnviarEmail() envioDeEmail.setDadosDestinario(self.pessoa.contatos[0].numero, dados[0]) envioDeEmail.setDadosRemetente(self.usuario) envioDeEmail.setMensagem(dados[1]) envioDeEmail.enviarEmail() input("Enviado com Sucesso") except Exception: input("Falha no envio, favor verificar o email do destinatário")
def selecionaPessoa(self, nome: str, ultimo: bool, codigo: int = -1): if ultimo == False and codigo == -1: pessoasSelecionadas = self.conexao.execute( "Select * from tb_pessoa where nm_pessoa like \"%{}%\" order by nm_pessoa" .format(nome)).fetchall() elif ultimo == False and codigo != -1: pessoasSelecionadas = self.conexao.execute( "Select * from tb_pessoa where cd_pessoa = {}".format( codigo)).fetchall() else: pessoasSelecionadas = self.conexao.execute( "Select * from tb_pessoa where cd_pessoa = (select max(cd_pessoa) from tb_pessoa)" ).fetchall() pessoas = [] for pessoaEncontrada in pessoasSelecionadas: pessoas.append( PessoaDTO(pessoaEncontrada[0], pessoaEncontrada[1], "")) return pessoas
def selecionaContato(self, pessoa: PessoaDTO, opcao: int = 0): if opcao == 1: contatosSelecionados = self.conexao.execute( "Select c.cd_contato, c.ds_contato, t.nm_tipo_contato from tb_contato as c join tb_tipo_contato as t on c.cd_tipo_contato = t.cd_tipo_contato where c.cd_pessoa = {} and c.cd_tipo_contato = 2" .format(pessoa.codigo)).fetchall() elif opcao == 2: contatosSelecionados = self.conexao.execute( "Select c.cd_contato, c.ds_contato, t.nm_tipo_contato from tb_contato as c join tb_tipo_contato as t on c.cd_tipo_contato = t.cd_tipo_contato where c.cd_contato = {}" .format(pessoa.codigo)).fetchall() elif opcao == 0: contatosSelecionados = self.conexao.execute( "Select c.cd_contato, c.ds_contato, t.nm_tipo_contato from tb_contato as c join tb_tipo_contato as t on c.cd_tipo_contato = t.cd_tipo_contato where c.cd_pessoa = {}" .format(pessoa.codigo)).fetchall() contatos = [] for contatoEncontrado in contatosSelecionados: contatos.append( ContatoDTO(contatoEncontrado[0], contatoEncontrado[1], 0, contatoEncontrado[2], pessoa.codigo)) pessoa.contatos = contatos return pessoa
def procurarPessoasPorCodigo(self, pessoas, principal, mostrarPessoas: bool = True, isDeletar: bool = False): codigo = "a" naoTemPessoa = True hasCaracteresEspeciais = True hasCaracteresAlpha = True while (codigo.isalpha() or codigo == "" or hasCaracteresEspeciais or hasCaracteresAlpha or naoTemPessoa): if (mostrarPessoas): principal.mostrarAgenda(pessoas) codigo = principal.selecionarPessoaPorCodigo() hasCaracteresEspeciais = TextoUtil( ).verificarTextoComCaracteresEspeciais(codigo) hasCaracteresAlpha = TextoUtil().verificarTextoComAlpha(codigo) if (codigo == ""): principal.colocarMensagem(7) else: if (hasCaracteresEspeciais): principal.colocarMensagem(6) else: if (codigo.isalpha() or hasCaracteresAlpha): principal.colocarMensagem(1) else: for pessoa in pessoas: if (int(codigo) == int(pessoa.codigo)): naoTemPessoa = False break if (naoTemPessoa): principal.colocarMensagem(2) if (isDeletar == False): pessoaController = PessoaController(self.usuario) pessoaController.index(PessoaDTO(codigo, "", ""), False) return codigo
def __init__(self, usuario: UsuarioDTO = UsuarioDTO("", "")): principal = PrincipalView(usuario) self.usuario = usuario agenda = AgendaDAO() sair = False while sair == False: opcao = "a" hasCaracteresEspeciais = True hasCaracteresAlpha = True while (opcao.isalpha() or opcao == "" or hasCaracteresEspeciais or hasCaracteresAlpha or (opcao.isnumeric() and (int(opcao) < 1 or int(opcao) > 5))): pessoas = agenda.selecionaPessoa("", False) principal.mostrarAgenda(pessoas) opcao = principal.menu() hasCaracteresEspeciais = TextoUtil( ).verificarTextoComCaracteresEspeciais(opcao) hasCaracteresAlpha = TextoUtil().verificarTextoComAlpha(opcao) if (opcao == ""): principal.colocarMensagem(7) else: if (hasCaracteresAlpha): principal.colocarMensagem(3) else: if (hasCaracteresEspeciais): principal.colocarMensagem(5) else: if (opcao.isnumeric() and (int(opcao) < 1 or int(opcao) > 5)): principal.colocarMensagem(4) if (opcao.isalpha()): principal.colocarMensagem(3) else: if int(opcao) == 1: pessoaController = PessoaController( self.usuario) adicionarPessoas = AdicionarPessoasController( ) agenda.criaPessoa(adicionarPessoas.pessoa) if adicionarPessoas.continuarCadastroContatosPessoa == True: pessoaController.index( "", adicionarPessoas. continuarCadastroContatosPessoa) elif int(opcao) == 2: self.procurarPessoasPorCodigo( pessoas, principal) elif int(opcao) == 3: principal.mostrarAgenda(pessoas) nome = principal.selecionarPessoaPorNome() pessoasPorNome = agenda.selecionaPessoa( nome, False) if (len(pessoasPorNome) > 0): principal.mostrarAgenda(pessoasPorNome) self.procurarPessoasPorCodigo( pessoasPorNome, principal, True) else: principal.nenhumContatoEncontrado(nome) elif int(opcao) == 4: codigo = self.procurarPessoasPorCodigo( pessoas, principal, True, True) agenda.deletaPessoa( PessoaDTO(codigo, "", "")) elif int(opcao) == 5: sair = True
def __init__(self, codigo, numero, codigoTipo, nomeTipo, codigoPessoa): self.codigo = codigo self.numero = numero self.tipoContato = TipoContatoDTO(codigoTipo, nomeTipo) self.pessoa = PessoaDTO(codigoPessoa, "", "")