Beispiel #1
0
        public void AdicionarDocumento(DTODocumento dtoDocumento)
        {
            if (this._documentos == null)
                this._documentos = new List<DTODocumento>();

            this._documentos.Add(dtoDocumento);
        }
Beispiel #2
0
        public void AdicionarDocumento(DTODocumento dtoDocumento)
        {
            if (this._documentos == null)
            {
                this._documentos = new List <DTODocumento>();
            }

            this._documentos.Add(dtoDocumento);
        }
Beispiel #3
0
        protected DTOPessoa ConverteEntidadeParaDTO(Pessoa entidade)
        {
            DTOPessoa dto = null;

            if (entidade != null)
            {
                dto              = new DTOPessoa();
                dto.ID           = entidade.Id;
                dto.DtNascimento = entidade.DtNascimento;
                dto.Nome         = entidade.Nome;
                dto.Status       = entidade.Status;

                foreach (Documento doc in entidade.Documentos)
                {
                    DTODocumento dtoDoc = new DTODocumento();
                    dtoDoc.ValorDocumento = doc.ToStringFormatado();
                    dtoDoc.TipoDocumento  = doc.TipoDocumento;

                    dto.AdicionarDocumento(dtoDoc);
                }

                foreach (Telefone tel in entidade.Telefones)
                {
                    DTOTelefone dtoTel = new DTOTelefone();
                    dtoTel.Telefone = tel.ToStringFormatado();
                    dtoTel.Tipo     = tel.Tipo;

                    dto.AdicionarTelefone(dtoTel);
                }

                foreach (Endereco end in entidade.Enderecos)
                {
                    DTOEndereco dtoEnd = new DTOEndereco();
                    dtoEnd.Logradouro   = end.Logradouro;
                    dtoEnd.Numero       = end.Numero;
                    dtoEnd.TipoEndereco = end.TipoEndereco;
                    dtoEnd.Cep          = end.Cep;
                    DTOCidade dtoCidade = _fachadaCidade.Obter(end.Cidade.Id);
                    dtoEnd.Cidade = dtoCidade;

                    dto.AdicionarEndereco(dtoEnd);
                }
            }

            return(dto);
        }
Beispiel #4
0
        protected DTOPessoa ConverteEntidadeParaDTO(Pessoa entidade)
        {
            DTOPessoa dto = null;

            if (entidade != null)
            {
                dto = new DTOPessoa();
                dto.ID = entidade.Id;
                dto.DtNascimento = entidade.DtNascimento;
                dto.Nome = entidade.Nome;
                dto.Status = entidade.Status;

                foreach (Documento doc in entidade.Documentos)
                {
                    DTODocumento dtoDoc = new DTODocumento();
                    dtoDoc.ValorDocumento = doc.ToStringFormatado();
                    dtoDoc.TipoDocumento = doc.TipoDocumento;

                    dto.AdicionarDocumento(dtoDoc);
                }

                foreach (Telefone tel in entidade.Telefones)
                {
                    DTOTelefone dtoTel = new DTOTelefone();
                    dtoTel.Telefone = tel.ToStringFormatado();
                    dtoTel.Tipo = tel.Tipo;

                    dto.AdicionarTelefone(dtoTel);
                }

                foreach (Endereco end in entidade.Enderecos)
                {
                    DTOEndereco dtoEnd = new DTOEndereco();
                    dtoEnd.Logradouro = end.Logradouro;
                    dtoEnd.Numero = end.Numero;
                    dtoEnd.TipoEndereco = end.TipoEndereco;
                    dtoEnd.Cep = end.Cep;
                    DTOCidade dtoCidade = _fachadaCidade.Obter(end.Cidade.Id);
                    dtoEnd.Cidade = dtoCidade;

                    dto.AdicionarEndereco(dtoEnd);
                }
            }

            return dto;
        }
Beispiel #5
0
        public Boolean Gravar(DTOPessoa dtoEmpresaQueVaiSerPersistida)
        {
            if (dtoEmpresaQueVaiSerPersistida == null)
            {
                return(false);
            }

            Pessoa pessoa = this._repositorio.Obter(dtoEmpresaQueVaiSerPersistida.ID);

            if (pessoa == null)
            {
                pessoa = new Empresa(dtoEmpresaQueVaiSerPersistida.Nome, dtoEmpresaQueVaiSerPersistida.DtNascimento);
            }
            else
            {
                pessoa.Nome         = dtoEmpresaQueVaiSerPersistida.Nome;
                pessoa.DtNascimento = dtoEmpresaQueVaiSerPersistida.DtNascimento;
            }

            pessoa.LimparColecoes();
            foreach (DTODocumento dto in dtoEmpresaQueVaiSerPersistida.Documentos)
            {
                pessoa.AdicionaDocumento(dto.ConverteDTOParaDocumento());
            }

            foreach (DTOTelefone dto in dtoEmpresaQueVaiSerPersistida.Telefones)
            {
                pessoa.AdicionaTelefone(dto.ConverteDTOParaTelefone());
            }

            foreach (DTOEndereco dto in dtoEmpresaQueVaiSerPersistida.Enderecos)
            {
                pessoa.AdicionaEndereco(dto.ConverteDTOParaEndereco(x => this._repositorioCidade.Obter(x.ID)));
            }

            DTODocumento dtoDocumento = dtoEmpresaQueVaiSerPersistida.Documentos.SingleOrDefault(d => (d.TipoDocumento.Equals(TipoDocumento.CNPJ)));
            CNPJ         cnpj;

            try
            {
                cnpj = dtoDocumento.ValorDocumento;
            }
            catch (NullReferenceException)
            {
                cnpj = null;
            }

            Pessoa  pessoaComOMesmoCNPJ = this._repositorio.ObterPorDocumento(cnpj);
            Empresa empresaEncontradaNoBD;

            if (pessoaComOMesmoCNPJ != null)
            {
                empresaEncontradaNoBD = (Empresa)pessoaComOMesmoCNPJ;
            }
            else
            {
                empresaEncontradaNoBD = null;
            }

            // Efetuando as validações
            ValidadorEmpresa validador = new ValidadorEmpresa(empresaEncontradaNoBD);

            Empresa empresaQueVaiSerPersistida = (Empresa)pessoa;

            validador.ValidarCamposObrigatorios(empresaQueVaiSerPersistida);

            if (dtoEmpresaQueVaiSerPersistida.IsNovo())
            {
                validador.ValidarDuplicidadeCNPJDeNovaEmpresa(empresaQueVaiSerPersistida);
            }
            else
            {
                validador.ValidarDuplicidadeCNPJDeEmpresaEmAlteracao(empresaQueVaiSerPersistida);
            }

            this._repositorio.Salvar(pessoa);
            dtoEmpresaQueVaiSerPersistida.ID = pessoa.Id;;

            return(true);
        }
Beispiel #6
0
        public void Gravar()
        {
            DTOPessoa dto = new DTOPessoa();

            dto.ID           = this._visao.GetID();
            dto.Nome         = this._visao.GetNome();
            dto.DtNascimento = this._visao.GetDtFundacao();

            IList <String> TiposInválidos = new List <String>();

            for (int i = 0; i < this._visao.GetTotalDeDocumentosDoGrid(); i++)
            {
                DTODocumento dtoDoc = new DTODocumento();
                dtoDoc.ValorDocumento = this._visao.GetValorDocumentoDoGrid(i);

                try
                {
                    dtoDoc.TipoDocumento = NomeTipoDocumento.ObtemTipo(this._visao.GetTipoDocumentoDoGrid(i));
                }
                catch (ExcecaoParametroInvalido)
                {
                    TiposInválidos.Add("Informe um tipo válido para o Documento número " + (i + 1).ToString());
                }

                dto.AdicionarDocumento(dtoDoc);
            }

            for (int i = 0; i < this._visao.GetTotalDeEnderecosDoGrid(); i++)
            {
                DTOEndereco dtoEnd = new DTOEndereco();
                dtoEnd.Logradouro  = this._visao.GetLogradouroDoGrid(i);
                dtoEnd.Numero      = this._visao.GetNumeroDoGrid(i);
                dtoEnd.Cep         = this._visao.GetCEPDoGrid(i);
                dtoEnd.Cidade.ID   = this._visao.GetIDCidadeDoGrid(i);
                dtoEnd.Cidade.Nome = this._visao.GetCidadeDoGrid(i);

                try
                {
                    dtoEnd.TipoEndereco = NomeTipoEndereco.ObtemTipo(this._visao.GetTipoEnderecoDoGrid(i));
                }
                catch (ExcecaoParametroInvalido)
                {
                    TiposInválidos.Add("Informe um tipo válido para o endereço " + (i + 1).ToString());
                }

                dto.AdicionarEndereco(dtoEnd);
            }

            for (int i = 0; i < this._visao.GetTotalDeTelefonesDoGrid(); i++)
            {
                DTOTelefone dtoTel = new DTOTelefone();
                dtoTel.Telefone = this._visao.GetTelefoneDoGrid(i);

                try
                {
                    dtoTel.Tipo = NomeTipoTelefone.ObtemTipo(this._visao.GetTipoTelefoneDoGrid(i));
                }
                catch (ExcecaoParametroInvalido)
                {
                    TiposInválidos.Add("Informe um tipo válido para o telefone " + (i + 1).ToString());
                }

                dto.AdicionarTelefone(dtoTel);
            }

            if (TiposInválidos.Count.CompareTo(0) != 0)
            {
                string ErrosTiposInvalidos = string.Join("\n", TiposInválidos.ToArray());
                this._visaoPadrao.ExibirErro(ErrosTiposInvalidos);
                return;
            }

            try
            {
                if (this._fachada.Gravar(dto))
                {
                    this._visaoPadrao.Avisar("Empresa gravada com sucesso!");
                    this._visao.VoltarParaTelaAnterior();
                }
            }

            #region Exceções geradas pela classe Pessoa
            #region ExcecaoParametroInvalido
            catch (ExcecaoParametroInvalido ex)
            {
                // Pessoa
                if (ex.Message.Contains("Pessoa"))
                {
                    if (ex.Message.Contains("Nome"))
                    {
                        this._visaoPadrao.ExibirErro("Informe uma razão social válida!", "edtRazaoSocial");
                        this._visao.MandarFocoNoNome();
                    }
                    else if (ex.Message.Contains("DtAniversario"))
                    {
                        this._visaoPadrao.ExibirErro("Informe uma data de fundação válida", "edtDtFundacao");
                        this._visao.MandarFocoNaDtFundacao();
                    }
                }

                // Endereço
                else if (ex.Message.Contains("Endereco"))
                {
                    if (ex.Message.Contains("Logradouro"))
                    {
                        this._visaoPadrao.ExibirErro("Informe o logradouro para todos os endereços");
                    }

                    else if (ex.Message.Contains("Numero"))
                    {
                        this._visaoPadrao.ExibirErro("Informe o número para todos os endereços");
                    }

                    else if (ex.Message.Contains("Cep"))
                    {
                        this._visaoPadrao.ExibirErro("Informe o CEP para todos os endereços!");
                    }

                    else if (ex.Message.Contains("Cidade"))
                    {
                        this._visaoPadrao.ExibirErro("Informe a cidade para todos os endereços!");
                    }
                }

                // Telefone
                else if (ex.Message.Contains("Telefone"))
                {
                    this._visaoPadrao.ExibirErro("Informe ao menos um telefone válido (xx)xxxx-xxxx para todos os tipos de telefone adicionados!");
                }
            }
            #endregion
            #region ExcecaoDocumentoNaoPermitido
            catch (ExcecaoDocumentoNaoPermitido ex)
            {
                this._visaoPadrao.ExibirErro(ex.Message);
            }
            #endregion
            #region ExcecaoTelefoneNaoPermitido
            catch (ExcecaoTelefoneNaoPermitido ex)
            {
                this._visaoPadrao.ExibirErro(ex.Message);
            }
            #endregion
            #region ExcecaoEnderecoNaoPermitido
            catch (ExcecaoEnderecoNaoPermitido ex)
            {
                this._visaoPadrao.ExibirErro(ex.Message);
            }
            #endregion
            #region ExcecaoParametroRepetido
            catch (ExcecaoParametroRepetido ex)
            {
                if (ex.Message.Contains("Documento"))
                {
                    this._visaoPadrao.ExibirErro("Não é possível cadastrar documentos iguais. Verifique!");
                }

                if (ex.Message.Contains("Telefone"))
                {
                    this._visaoPadrao.ExibirErro("Não é possível cadastrar telefones iguais. Verifique!");
                }

                else if (ex.Message.Contains("Endereco"))
                {
                    this._visaoPadrao.ExibirErro("Não é possível cadastrar endereços iguais. Verifique!");
                }
            }
            #endregion
            #region ExcecaoTipoDocumentoDuplicado
            catch (ExcecaoTipoDocumentoDuplicado ex)
            {
                this._visaoPadrao.ExibirErro(ex.Message);
            }
            #endregion
            #endregion
            #region Exceções geradas pela class ValidadorEmpresa
            #region ExcecaoCNPJJaCadastrado
            catch (ExcecaoCNPJJaCadastrado ex)
            {
                this._visaoPadrao.ExibirErro(ex.Message);
            }
            #endregion
            #region ExcecaoCNPJNaoInformado
            catch (ExcecaoCNPJNaoInformado ex)
            {
                this._visaoPadrao.ExibirErro(ex.Message);
            }
            #endregion
            #region ExcecaoNenhumTelefoneInformado
            catch (ExcecaoNenhumTelefoneInformado ex)
            {
                this._visaoPadrao.ExibirErro(ex.Message);
            }
            #endregion
            #region ExcecaoEnderecoComercialNaoInformado
            catch (ExcecaoEnderecoComercialNaoInformado ex)
            {
                this._visaoPadrao.ExibirErro(ex.Message);
            }
            #endregion
            #endregion
        }
Beispiel #7
0
        protected override DTOPessoa GetDTOQueVaiSerPersistido()
        {
            DTOPessoa dto = new DTOPessoa();

            dto.ID           = this._visao.GetID();
            dto.Nome         = this._visao.GetNome();
            dto.DtNascimento = this._visao.GetDtNascimento();

            if (base._visaoCadastroPadrao.GetBloqueado())
            {
                dto.Status = TipoStatus.Bloqueado;
            }
            else
            {
                dto.Status = TipoStatus.Normal;
            }

            IList <String> TiposInválidos = new List <String>();

            for (int i = 0; i < this._visao.GetTotalDeDocumentosDoGrid(); i++)
            {
                DTODocumento dtoDoc = new DTODocumento();
                dtoDoc.ValorDocumento = this._visao.GetValorDocumentoDoGrid(i);

                try
                {
                    dtoDoc.TipoDocumento = NomeTipoDocumento.ObtemTipo(this._visao.GetTipoDocumentoDoGrid(i));
                }
                catch (ExcecaoParametroInvalido)
                {
                    TiposInválidos.Add("Informe um tipo válido para o Documento número " + (i + 1).ToString());
                }

                dto.AdicionarDocumento(dtoDoc);
            }

            for (int i = 0; i < this._visao.GetTotalDeEnderecosDoGrid(); i++)
            {
                DTOEndereco dtoEnd = new DTOEndereco();
                dtoEnd.Logradouro  = this._visao.GetLogradouroDoGrid(i);
                dtoEnd.Numero      = this._visao.GetNumeroDoGrid(i);
                dtoEnd.Cep         = this._visao.GetCEPDoGrid(i);
                dtoEnd.Cidade.ID   = this._visao.GetIDCidadeDoGrid(i);
                dtoEnd.Cidade.Nome = this._visao.GetCidadeDoGrid(i);

                try
                {
                    dtoEnd.TipoEndereco = NomeTipoEndereco.ObtemTipo(this._visao.GetTipoEnderecoDoGrid(i));
                }
                catch (ExcecaoParametroInvalido)
                {
                    TiposInválidos.Add("Informe um tipo válido para o endereço " + (i + 1).ToString());
                }

                dto.AdicionarEndereco(dtoEnd);
            }

            for (int i = 0; i < this._visao.GetTotalDeTelefonesDoGrid(); i++)
            {
                DTOTelefone dtoTel = new DTOTelefone();
                dtoTel.Telefone = this._visao.GetTelefoneDoGrid(i);

                try
                {
                    dtoTel.Tipo = NomeTipoTelefone.ObtemTipo(this._visao.GetTipoTelefoneDoGrid(i));
                }
                catch (ExcecaoParametroInvalido)
                {
                    TiposInválidos.Add("Informe um tipo válido para o telefone " + (i + 1).ToString());
                }

                dto.AdicionarTelefone(dtoTel);
            }

            if (TiposInválidos.Count.CompareTo(0) != 0)
            {
                string ErrosTiposInvalidos = string.Join("\n", TiposInválidos.ToArray());
                this._visaoPadrao.ExibirErro(ErrosTiposInvalidos);
                return(null);
            }

            return(dto);
        }
Beispiel #8
0
        public Boolean Gravar(DTOPessoa dtoClienteQueVaiSerPersistido)
        {
            if (dtoClienteQueVaiSerPersistido == null)
            {
                return(false);
            }

            Pessoa pessoa = this._repositorio.Obter(dtoClienteQueVaiSerPersistido.ID);

            if (pessoa == null)
            {
                pessoa = new Cliente(dtoClienteQueVaiSerPersistido.Nome, dtoClienteQueVaiSerPersistido.DtNascimento);
            }
            else
            {
                pessoa.Nome         = dtoClienteQueVaiSerPersistido.Nome;
                pessoa.DtNascimento = dtoClienteQueVaiSerPersistido.DtNascimento;
            }

            pessoa.LimparColecoes();
            foreach (DTODocumento dto in dtoClienteQueVaiSerPersistido.Documentos)
            {
                pessoa.AdicionaDocumento(dto.ConverteDTOParaDocumento());
            }

            foreach (DTOTelefone dto in dtoClienteQueVaiSerPersistido.Telefones)
            {
                pessoa.AdicionaTelefone(dto.ConverteDTOParaTelefone());
            }

            foreach (DTOEndereco dto in dtoClienteQueVaiSerPersistido.Enderecos)
            {
                pessoa.AdicionaEndereco(dto.ConverteDTOParaEndereco(x => this._repositorioCidade.Obter(x.ID)));
            }

            DTODocumento dtoDocumento = dtoClienteQueVaiSerPersistido.Documentos.SingleOrDefault(d => (d.TipoDocumento.Equals(TipoDocumento.CPF)));
            CPF          cpf;

            try
            {
                cpf = dtoDocumento.ValorDocumento;
            }
            catch (NullReferenceException)
            {
                cpf = null;
            }

            Pessoa  pessoaComOMesmoCPF = this._repositorio.ObterPorDocumento(cpf);
            Cliente clienteEncontradoNoBD;

            try
            {
                if (pessoaComOMesmoCPF != null)
                {
                    clienteEncontradoNoBD = (Cliente)pessoaComOMesmoCPF;
                }
                else
                {
                    clienteEncontradoNoBD = null;
                }
            }
            catch (InvalidCastException)
            {
                clienteEncontradoNoBD = null;
            }

            // Efetuando as validações
            ValidadorCliente validador = new ValidadorCliente(clienteEncontradoNoBD);

            Cliente clienteQueVaiSerPersistido = (Cliente)pessoa;

            validador.ValidarCamposObrigatorios(clienteQueVaiSerPersistido);

            if (dtoClienteQueVaiSerPersistido.IsNovo())
            {
                validador.ValidarDuplicidadeCPFDeNovoCliente(clienteQueVaiSerPersistido);
            }
            else
            {
                validador.ValidarDuplicidadeCPFDeClienteEmAlteracao(clienteQueVaiSerPersistido);
            }

            this._repositorio.Salvar(pessoa);
            dtoClienteQueVaiSerPersistido.ID = pessoa.Id;;

            return(true);
        }