public NfeVendaTxt(NfeVenda entidade) { this.entidade = entidade; cliente = entidade.Venda.Cliente; física = cliente as PessoaFísica; jurídica = cliente as PessoaJurídica; }
/// <summary> /// Atribui ao item uma pessoa-física. /// </summary> /// <param name="pessoa">Pessoa-física.</param> private void AtribuirPessoa(PessoaFísica pessoa) { lock (this) { lblPrimária.Text = pessoa.Nome; lblSecundária.Text = "CPF: " + pessoa.CPF + "\nRG: " + pessoa.DI + " (" + pessoa.DIEmissor + ")"; lblDescrição.Text = pessoa.Setor.Nome; this.pessoa = pessoa; //if (pessoa.Foto != null) // picFoto.Image = pessoa.Foto; } }
/// <summary> /// Constrói um representante a partir de uma pessoa-física. /// </summary> /// <param name="pessoaFísica">Dados da pessoa-física.</param> public Representante(PessoaFísica pessoaFísica) { FieldInfo [] camposPessoaFísica; // Copiar dados da pessoa física camposPessoaFísica = typeof(PessoaFísica).GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance); // Copiar dados foreach (FieldInfo campo in camposPessoaFísica) { object valor; valor = campo.GetValue(pessoaFísica); campo.SetValue(this, valor); } DefinirCadastrado(false); }
/// <summary> /// Obtem uma pessoafísica através do resultado de um comando com joins das tabelas pessoa e pessoafisica. /// Por enquanto, este método só utilizado para obtenção das pessoas para listagem dos acertos pendentes. /// Como nesta tela poucas informações são mostradas, /// por desempenho apenas os atributos mostrados são carregados. /// Cada leitura do reader é muito lento. /// /// As entidades não são utilizadas em outras telas, nem persistidas em cache, o que seria um problema, do tipo: /// o usuário pode para alterar o cadastro e este estar incompleto. /// </summary> internal static PessoaFísica Obter(IDataReader leitor, int inicioAtributoPesssoa, int inicioAtributoPessoaFisica) { PessoaFísica entidade = new PessoaFísica(); entidade.LerAtributos(leitor, inicioAtributoPesssoa, inicioAtributoPessoaFisica); entidade.DefinirCadastrado(); entidade.DefinirAtualizado(); return entidade; }
/// <summary> /// Constrói um item de lista com uma entidade pessoa-física. /// </summary> /// <param name="pessoa">Pessoa-física.</param> public ListaEntidadePessoaItem(PessoaFísica pessoa) : this() { AtribuirPessoa(pessoa); }
private static void TentaCadastrarPessoaFísica(TipoPessoaFísica tipoPessoaFísica, ref PessoaFísica entidade, CadastroPessoa janela) { bool insistir; do { insistir = false; if (janela.ShowDialog() == DialogResult.OK) { switch (tipoPessoaFísica) { case TipoPessoaFísica.Outro: entidade = (PessoaFísica)janela.Pessoa; break; case TipoPessoaFísica.Funcionário: entidade = ((CadastroFuncionário)janela).Funcionário; break; case TipoPessoaFísica.Representante: entidade = (PessoaFísica)((CadastroRepresentante)janela).Pessoa; break; default: throw new NotSupportedException("Tipo de pessoa-física não suportado."); } AguardeDB.Mostrar(); if (entidade.CPF != null && PessoaFísica.VerificarExistênciaCPF(entidade.CPF)) { AguardeDB.Fechar(); insistir = MessageBox.Show( "O CPF " + entidade.CPF + " já encontra-se cadastrado no banco de dados.", "Cadastro de Pessoa Física", MessageBoxButtons.RetryCancel, MessageBoxIcon.Information) == DialogResult.Retry; } else { try { entidade.Cadastrar(); AguardeDB.Fechar(); } catch (Exception e) { Acesso.Comum.Usuários.UsuárioAtual.RegistrarErro(e); AguardeDB.Fechar(); insistir = MessageBox.Show( "Não foi possível cadastrar a pessoa física. Por favor, verifique se os dados estão corretos.", "Erro cadastrando pessoa física", MessageBoxButtons.RetryCancel, MessageBoxIcon.Error) == DialogResult.Retry; } } } } while (insistir); }