コード例 #1
0
        public static ClienteBuscaViewModel ParaAplicacaoViewModel(string nome, string documento, string telefone,
                                                                   IEnumerable <Cliente> listaCliente)
        {
            var viewModel = new ClienteBuscaViewModel(nome, documento, telefone, listaCliente);

            return(viewModel);
        }
コード例 #2
0
        public ClienteBuscaViewModel PesquisarGenerico(long?atividadeId, bool?carregarComPost, string nomeAction,
                                                       string nomeController, long?atualClienteId, string atualClienteTipo, bool?clienteContato, string criadoPor)
        {
            var model = new ClienteBuscaViewModel
            {
                AtividadeId      = atividadeId,
                CarregarComPost  = (bool)carregarComPost,
                Action           = nomeAction,
                Controller       = nomeController,
                AtualClienteId   = atualClienteId,
                AtualClienteTipo = atualClienteTipo,
                ClienteContato   = clienteContato
            };

            if (clienteContato != null && clienteContato != true)
            {
                return(model);
            }

            var permitirAtendimentoTerceiro = false;
            var configuracao = new Configuracao();

            configuracao.SetarAtendimentoTerceiros();
            configuracao = _configuracaoServico.ObterPorSigla(configuracao.Sigla);

            if (configuracao != null)
            {
                permitirAtendimentoTerceiro = configuracao.Valor == "1";
            }

            if (permitirAtendimentoTerceiro)
            {
                model.ClienteContato = null;

                if (atividadeId.HasValue && clienteContato == null)
                {
                    if (_servicoAtividadeParteEnvolvidaServico.PossuiClienteContato((long)atividadeId))
                    {
                        model.ClienteContato = false;
                    }
                }
                else
                {
                    model.ClienteContato = clienteContato;
                }
            }
            else
            {
                model.ClienteContato = false;
            }

            return(model);
        }
コード例 #3
0
        public ClienteBuscaViewModel PesquisarCliente(ClienteBuscaViewModel model)
        {
            var listaPesquisaCliente = _servicoCliente.Buscar(model.Nome, model.Documento, model.Telefone,
                                                              model.NumeroProtocolo, model.Susep);

            if (_integracaoAppServico.ConsultarIntegracao())
            {
                //var clientesJaIntegrados = _integracaoControleServico.ObterClientesJaIntegrados(null);

                var retornoClientesIntegracao = _integracaoAppServico.ObterClientesIntegracaoPor(model.Nome,
                                                                                                 model.Telefone,
                                                                                                 model.Documento, null, model.CriadoPor);

                if (retornoClientesIntegracao.PessoasFisicas.Any())
                {
                    foreach (var pfIntegracao in retornoClientesIntegracao.PessoasFisicas)
                    {
                        var clienteJaExiste = listaPesquisaCliente.FirstOrDefault(x => x.Documento == pfIntegracao.Cpf);

                        if (clienteJaExiste != null)
                        {
                            clienteJaExiste.RegistroJaIntegradao = true;
                        }
                        else
                        {
                            var clientesMesmoDocumento = _servicoPessoaFisica.PesquisarPessoaFisica(null,
                                                                                                    pfIntegracao.Cpf, null, null, null);

                            if (clientesMesmoDocumento != null && clientesMesmoDocumento.Any())
                            {
                                var clienteMesmoDocumento = clientesMesmoDocumento.FirstOrDefault();

                                ((List <Cliente>)listaPesquisaCliente).Add(new Cliente(clienteMesmoDocumento.Id,
                                                                                       clienteMesmoDocumento.Nome + " " + clienteMesmoDocumento.Sobrenome,
                                                                                       clienteMesmoDocumento.DataNascimento, "PF",
                                                                                       clienteMesmoDocumento.Cpf, null, true, false));
                            }
                            else
                            {
                                ((List <Cliente>)listaPesquisaCliente).Add(new Cliente(0,
                                                                                       pfIntegracao.Nome + " " + pfIntegracao.Sobrenome, pfIntegracao.DataNascimento, "PF",
                                                                                       pfIntegracao.Cpf,
                                                                                       pfIntegracao.IdentificadorIntegracao, pfIntegracao.JaIntegrado, true));
                            }
                        }
                    }
                }


                if (retornoClientesIntegracao.PessoasJuridicas.Any())
                {
                    var listaPessoaJuridicaIntegracaoLimpa = new List <PessoaJuridica>();

                    foreach (var pjIntegracao in retornoClientesIntegracao.PessoasJuridicas)
                    {
                        var clienteJaExiste = listaPesquisaCliente.FirstOrDefault(x => x.Documento == pjIntegracao.Cnpj);

                        if (clienteJaExiste != null)
                        {
                            clienteJaExiste.RegistroJaIntegradao = true;
                        }
                        else
                        {
                            var clientesMesmoDocumento = _servicoPessoaJuridica.PesquisarPessoaJuridica(null,
                                                                                                        pjIntegracao.Cnpj, null, null, null);

                            if (clientesMesmoDocumento != null && clientesMesmoDocumento.Any())
                            {
                                var clienteMesmoDocumento = clientesMesmoDocumento.FirstOrDefault();

                                ((List <Cliente>)listaPesquisaCliente).Add(new Cliente(0,
                                                                                       clienteMesmoDocumento.RazaoSocial,
                                                                                       clienteMesmoDocumento.DataDeConstituicao, "PJ",
                                                                                       clienteMesmoDocumento.Cnpj, clienteMesmoDocumento.IdentificadorIntegracao,
                                                                                       clienteMesmoDocumento.RegistroJaIntegrado,
                                                                                       false));
                            }
                            else
                            {
                                ((List <Cliente>)listaPesquisaCliente).Add(new Cliente(0, pjIntegracao.RazaoSocial,
                                                                                       pjIntegracao.DataDeConstituicao, "PJ",
                                                                                       pjIntegracao.Cnpj, pjIntegracao.IdentificadorIntegracao,
                                                                                       pjIntegracao.RegistroJaIntegrado,
                                                                                       true));
                            }
                        }
                    }
                }
            }

            model = ClienteAdaptador.ParaAplicacaoViewModel(model.Nome, model.Documento, model.Telefone,
                                                            listaPesquisaCliente);
            return(model);
        }
コード例 #4
0
        public ClienteBuscaViewModel AtualizarClienteAtividade(long atividadeId, long novoClienteId,
                                                               string novoClienteTipo, string userId, bool clienteSomenteContato, long?atualClienteId,
                                                               string atualClienteTipo, long?clienteTipoContato)
        {
            var  retorno               = new ClienteBuscaViewModel();
            long?pessoaFisicaId        = null;
            long?pessoaJuridicaId      = null;
            long?atualPessoaFisicaId   = null;
            long?atualPessoaJuridicaId = null;

            if (string.IsNullOrEmpty(novoClienteTipo))
            {
                retorno.ValidationResult.Add(
                    new DomainValidation.Validation.ValidationError(
                        "O tipo (pf= pessoa física / pj= pessoa jurídica) não foi informado."));
                return(retorno);
            }

            if (atualClienteId.HasValue)
            {
                if (string.IsNullOrEmpty(atualClienteTipo))
                {
                    retorno.ValidationResult.Add(
                        new DomainValidation.Validation.ValidationError(
                            "O tipo (pf= pessoa física / pj= pessoa jurídica) do cliente atual não foi informado."));
                    return(retorno);
                }

                if (atualClienteTipo.ToUpper().Trim() == "PF")
                {
                    atualPessoaFisicaId = atualClienteId;
                }
                else if (atualClienteTipo.ToUpper().Trim() == "PJ")
                {
                    atualPessoaJuridicaId = atualClienteId;
                }
                else
                {
                    retorno.ValidationResult.Add(
                        new DomainValidation.Validation.ValidationError(
                            "O tipo informado do cliente atual não corresponde com os valores esperados:  (pf= pessoa física / pj= pessoa jurídica)"));
                    return(retorno);
                }
            }


            if (novoClienteTipo.ToUpper().Trim() == "PF")
            {
                pessoaFisicaId = novoClienteId;
            }
            else if (novoClienteTipo.ToUpper().Trim() == "PJ")
            {
                pessoaJuridicaId = novoClienteId;
            }
            else
            {
                retorno.ValidationResult.Add(
                    new DomainValidation.Validation.ValidationError(
                        "O tipo informado não corresponde com os valores esperados:  (pf= pessoa física / pj= pessoa jurídica)"));
                return(retorno);
            }

            // Aqui vou deletar o cliente atual do ParteEnvolvidas
            if (atualPessoaFisicaId.HasValue || atualPessoaJuridicaId.HasValue)
            {
                _servicoAtividadeParteEnvolvidaServico.Excluir(atividadeId, atualPessoaFisicaId, atualPessoaJuridicaId);
            }

            var atividade = _servicoAtividade.ObterPorId(atividadeId);

            if (atividade.AtividadeTipoId == 6)
            {
                var atividadeParteEnvolvidaCliente =
                    _servicoAtividadeParteEnvolvidaServico.ObterPorAtividadeId(atividadeId);

                foreach (var parteEnvolvidada in atividadeParteEnvolvidaCliente)
                {
                    if (parteEnvolvidada.TipoParteEnvolvida.ToLower().Trim() == "r")
                    {
                        parteEnvolvidada.SetarPessoaFisicaId(pessoaFisicaId);
                        parteEnvolvidada.SetarPessoaJuridicaId(pessoaJuridicaId);
                        _servicoAtividadeParteEnvolvidaServico.Atualizar(parteEnvolvidada);
                    }
                }

                _servicoAtividade.AtualizarCliente(atividadeId, pessoaFisicaId, pessoaJuridicaId, userId,
                                                   TipoParteEnvolvida.ClienteTratado.Value, false);
            }
            else
            {
                if (_servicoAtividadeParteEnvolvidaServico.PossuiClienteContato(atividadeId))
                {
                    _servicoAtividadeParteEnvolvidaServico.Adicionar(new AtividadeParteEnvolvida(atividadeId,
                                                                                                 pessoaFisicaId,
                                                                                                 pessoaJuridicaId, null, userId, TipoParteEnvolvida.ClienteTratado.Value, null, null));
                }
                else
                {
                    if (clienteSomenteContato)
                    {
                        _servicoAtividade.AtualizarCliente(atividadeId, pessoaFisicaId, pessoaJuridicaId, userId,
                                                           TipoParteEnvolvida.ClienteContato.Value);

                        if (atividade != null)
                        {
                            if (atividade.AtendimentoId.HasValue)
                            {
                                _servicoAtendimento.AtualizarClienteSomenteContato((long)atividade.AtendimentoId, true,
                                                                                   clienteTipoContato);
                            }
                        }
                    }
                    else
                    {
                        _servicoAtividade.AtualizarCliente(atividadeId, pessoaFisicaId, pessoaJuridicaId, userId,
                                                           TipoParteEnvolvida.ClienteTratado.Value);
                    }
                }
            }

            retorno.PessoaJuridicaId = pessoaJuridicaId;
            retorno.PessoaFisicaId   = pessoaFisicaId;
            retorno.AtividadeId      = atividadeId;
            return(retorno);
        }