Example #1
0
        public string Executar(string mensagem, string numeroMensagem, Domain.Model.Usuario usuario)
        {
            //Trace.Add("Mensagem " + numeroMensagem + " XML: {0}", mensagem);

            var            xml                 = this.CarregarMensagem <Pollux.MSG0078>(mensagem);
            Conta          objetoConta         = null;
            UnidadeNegocio objetoUnidade       = null;
            Classificacao  objetoclassificacao = null;
            Categoria      objetocategoria     = null;

            Estado objetoEstado = null;

            if (string.IsNullOrEmpty(xml.CodigoConta) && string.IsNullOrEmpty(xml.CodigoUnidadeNegocio) && string.IsNullOrEmpty(xml.ChaveIntegracaoEstado))
            {
                resultadoConsulta.Sucesso  = false;
                resultadoConsulta.Mensagem = "Paramêtros não enviados.";
                retorno.Add("Resultado", resultadoConsulta);
                return(CriarMensagemRetorno <Pollux.MSG0078R1>(numeroMensagem, retorno));
            }

            if (!String.IsNullOrEmpty(xml.CodigoConta))
            {
                objetoConta = new Intelbras.CRM2013.Domain.Servicos.ContaService(this.Organizacao, this.IsOffline).BuscaConta(new Guid(xml.CodigoConta));
                if (objetoConta == null)
                {
                    resultadoConsulta.Sucesso  = false;
                    resultadoConsulta.Mensagem = "[Conta] não encontrada.";
                    retorno.Add("Resultado", resultadoConsulta);
                    return(CriarMensagemRetorno <Pollux.MSG0078R1>(numeroMensagem, retorno));
                }
            }

            if (!String.IsNullOrEmpty(xml.CodigoUnidadeNegocio))
            {
                objetoUnidade = new Intelbras.CRM2013.Domain.Servicos.UnidadeNegocioService(this.Organizacao, this.IsOffline).BuscaUnidadeNegocioPorChaveIntegracao(xml.CodigoUnidadeNegocio);
                if (objetoUnidade == null)
                {
                    resultadoConsulta.Sucesso  = false;
                    resultadoConsulta.Mensagem = "[Unidade Negócio] não encontrada.";
                    retorno.Add("Resultado", resultadoConsulta);
                    return(CriarMensagemRetorno <Pollux.MSG0078R1>(numeroMensagem, retorno));
                }
            }

            //new

            if (!String.IsNullOrEmpty(xml.Classificacao))
            {
                objetoclassificacao = new Intelbras.CRM2013.Domain.Servicos.ClassificacaoService(this.Organizacao, this.IsOffline).BuscaClassificacao(new Guid(xml.Classificacao));
                if (objetoclassificacao == null)
                {
                    resultadoConsulta.Sucesso  = false;
                    resultadoConsulta.Mensagem = "[Classificao] não encontrada.";
                    retorno.Add("Resultado", resultadoConsulta);
                    return(CriarMensagemRetorno <Pollux.MSG0078R1>(numeroMensagem, retorno));
                }
            }

            if (!String.IsNullOrEmpty(xml.Categoria))
            {
                objetocategoria = new Intelbras.CRM2013.Domain.Servicos.CategoriaService(this.Organizacao, this.IsOffline).BuscaCategoria(new Guid(xml.
                                                                                                                                                   Categoria));
                if (objetocategoria == null)
                {
                    resultadoConsulta.Sucesso  = false;
                    resultadoConsulta.Mensagem = "[Categoria] não encontrada.";
                    retorno.Add("Resultado", resultadoConsulta);
                    return(CriarMensagemRetorno <Pollux.MSG0078R1>(numeroMensagem, retorno));
                }
            }

            //

            if (!String.IsNullOrEmpty(xml.ChaveIntegracaoEstado))
            {
                objetoEstado = new Intelbras.CRM2013.Domain.Servicos.EnderecoServices(this.Organizacao, this.IsOffline).BuscaEstado(xml.ChaveIntegracaoEstado);
                if (objetoEstado == null)
                {
                    resultadoConsulta.Sucesso  = false;
                    resultadoConsulta.Mensagem = "[Estado] não encontrado.";
                    retorno.Add("Resultado", resultadoConsulta);
                    return(CriarMensagemRetorno <Pollux.MSG0078R1>(numeroMensagem, retorno));
                }
            }

            List <CategoriasCanal> lstObjetoCategoria = new List <CategoriasCanal>();
            List <Guid>            lstUnd             = new List <Guid>();

            if (objetoConta != null)
            {
                if (objetoUnidade != null)
                {
                    lstObjetoCategoria = new Intelbras.CRM2013.Domain.Servicos.CategoriaCanalService(this.Organizacao, this.IsOffline).ListarPor((Guid)objetoConta.ID, (Guid)objetoUnidade.ID);
                }
                else
                {
                    lstObjetoCategoria = new Intelbras.CRM2013.Domain.Servicos.CategoriaCanalService(this.Organizacao, this.IsOffline).ListarPor((Guid)objetoConta.ID, null);
                }

                foreach (CategoriasCanal item in lstObjetoCategoria ?? Enumerable.Empty <CategoriasCanal>())
                {
                    if (!lstUnd.Contains(item.UnidadeNegocios.Id))
                    {
                        lstUnd.Add(item.UnidadeNegocios.Id);
                    }
                }
                if (lstUnd != null && lstUnd.Count == 0)
                {
                    resultadoConsulta.Sucesso = true;
                    retorno.Add("Resultado", resultadoConsulta);
                    return(CriarMensagemRetorno <Pollux.MSG0078R1>(numeroMensagem, retorno));
                }
            }
            else if (objetoUnidade != null)
            {
                lstUnd.Add(objetoUnidade.ID.Value);
            }

            var objetoMunicipio = new Intelbras.CRM2013.Domain.Servicos.MunicipioServices(this.Organizacao, this.IsOffline).ObterPor(objetoConta.Endereco1Municipioid.Id);
            List <LinhaCorteDistribuidor> objLinhaCorteItem = new Intelbras.CRM2013.Domain.Servicos.LinhaCorteService(this.Organizacao, this.IsOffline).ListarLinhadeCorteDistribuidor(lstUnd, objetoEstado, objetoMunicipio.CapitalOuInterior);

            foreach (var item in objLinhaCorteItem)
            {
                // service que pega o objLinhaCorte com base na unidade de negócio e o estadoId da conta
                List <LinhaCorteEstado> LinhaCorteEstado = new Intelbras.CRM2013.Domain.Servicos.LinhaCorteService(this.Organizacao, this.IsOffline).ObterLinhaDeCorteDistribuidorEstadoPorIdDistribuidor(item.ID.Value);

                retornoLinhaCorteItem.CodigoLinhaCorte = item.ID.ToString();

                if (!String.IsNullOrEmpty(item.Nome))
                {
                    retornoLinhaCorteItem.Nome = item.Nome;
                }

                if (item.UnidadeNegocios != null)
                {
                    retornoLinhaCorteItem.CodigoUnidadeNegocio = new Intelbras.CRM2013.Domain.Servicos.UnidadeNegocioService(this.Organizacao, this.IsOffline).BuscaUnidadeNegocio(item.UnidadeNegocios.Id).ChaveIntegracao;
                    retornoLinhaCorteItem.NomeUnidadeNegocio   = item.UnidadeNegocios.Name;
                }
                retornoLinhaCorteItem.LinhaCorteSemestral = (decimal)item.LinhaCorteSemestral;

                retornoLinhaCorteItem.LinhaCorteTrimestral = (decimal)item.LinhaCorteTrimestral;

                if (item.Moeda != null)
                {
                    retornoLinhaCorteItem.Moeda = item.Moeda.Name;
                }

                if (usuario != null)
                {
                    retornoLinhaCorteItem.CodigoProprietario = usuario.ID.Value.ToString();

                    retornoLinhaCorteItem.NomeProprietario = usuario.Nome;
                }
                //if (LinhaCorteEstado.Count <= 0)
                //{
                //    retornoLinhaCorteItem.EstadosItens.Add(new Pollux.Entities.EstadoItem(){});
                //}
                foreach (var estado in LinhaCorteEstado)
                {
                    Estado objEstado = new Intelbras.CRM2013.Domain.Servicos.EnderecoServices(this.Organizacao, this.IsOffline).BuscaEstadoPorGuid(estado.Estado.Value);
                    if (objEstado != null && item.ID == estado.LinhaCorteDistribuidor.Value)
                    {
                        if (!String.IsNullOrEmpty(objEstado.Nome))
                        {
                            listaEstados.NomeEstado = objEstado.Nome;
                        }
                        if (!String.IsNullOrEmpty(objEstado.ChaveIntegracao))
                        {
                            listaEstados.ChaveIntegracaoEstado = objEstado.ChaveIntegracao;
                        }
                        retornoLinhaCorteItem.EstadosItens.Add(listaEstados);
                        listaEstados = new Pollux.Entities.EstadoItem {
                        };
                    }
                }

                //Depois de pegar as infos adiciona o dictionary em uma lista de dictionaries
                response.Add(retornoLinhaCorteItem);

                retornoLinhaCorteItem = new Pollux.Entities.LinhaCorte {
                };
            }

            retorno.Add("LinhasCorteItens", response);

            retorno.Add("Resultado", resultadoConsulta);

            return(CriarMensagemRetorno <Pollux.MSG0078R1>(numeroMensagem, retorno));
        }
Example #2
0
        public Bens DefinirPropriedades(Intelbras.Message.Helper.MSG0066 xml)
        {
            var crm = new Bens(this.Organizacao, this.IsOffline);

            #region Propriedades Crm->Xml
            //ID não obrigatório - Create
            if (!String.IsNullOrEmpty(xml.CodigoImovel))
            {
                crm.ID = new Guid(xml.CodigoImovel);
            }


            if (String.IsNullOrEmpty(xml.Contato) && String.IsNullOrEmpty(xml.Conta))
            {
                resultadoPersistencia.Sucesso  = false;
                resultadoPersistencia.Mensagem = "Conta e Contato não foram enviados, deve ser enviado ao menos um destes objetos.";
                return(crm);
            }

            if (!String.IsNullOrEmpty(xml.Contato))
            {
                if (xml.Contato.Length == 36)
                {
                    crm.Contato = new Lookup(new Guid(xml.Contato), "");
                }
                else
                {
                    resultadoPersistencia.Sucesso  = false;
                    resultadoPersistencia.Mensagem = "Identificador do Contato enviado fora do padrão.";
                    return(crm);
                }
            }

            if (!String.IsNullOrEmpty(xml.Conta))
            {
                if (xml.Conta.Length == 36)
                {
                    crm.Conta = new Lookup(new Guid(xml.Conta), "");
                }
                else
                {
                    resultadoPersistencia.Sucesso  = false;
                    resultadoPersistencia.Mensagem = "Identificador do Canal enviado fora do padrão.";
                    return(crm);
                }
            }

            if (!String.IsNullOrEmpty(xml.EnderecoImovel.Numero))
            {
                crm.Numero = xml.EnderecoImovel.Numero;
            }
            else
            {
                resultadoPersistencia.Sucesso  = false;
                resultadoPersistencia.Mensagem = "Numero do endereço do imóvel não enviado.";
                return(crm);
            }
            if (!String.IsNullOrEmpty(xml.EnderecoImovel.Logradouro))
            {
                crm.Endereco = xml.EnderecoImovel.Logradouro;
            }
            else
            {
                resultadoPersistencia.Sucesso  = false;
                resultadoPersistencia.Mensagem = "Logradouro do endereço do imóvel não enviado.";
                return(crm);
            }
            if (!String.IsNullOrEmpty(xml.EnderecoImovel.Bairro))
            {
                crm.Bairro = xml.EnderecoImovel.Bairro;
            }
            else
            {
                resultadoPersistencia.Sucesso  = false;
                resultadoPersistencia.Mensagem = "(Bairro do endereço do imóvel não enviado.";
                return(crm);
            }
            if (!String.IsNullOrEmpty(xml.EnderecoImovel.CEP))
            {
                crm.CEP = xml.EnderecoImovel.CEP;
            }
            else
            {
                resultadoPersistencia.Sucesso  = false;
                resultadoPersistencia.Mensagem = "CEP do endereço do imóvel não enviado.";
                return(crm);
            }
            //Cidade - service
            if (!String.IsNullOrEmpty(xml.EnderecoImovel.Cidade))
            {
                Municipio cidade = new Intelbras.CRM2013.Domain.Servicos.MunicipioServices(this.Organizacao, this.IsOffline).BuscaCidade(xml.EnderecoImovel.Cidade);

                if (cidade.ID.HasValue)
                {
                    crm.Cidade = new Lookup(cidade.ID.Value, "");
                }
                else
                {
                    resultadoPersistencia.Sucesso  = false;
                    resultadoPersistencia.Mensagem = "Cidade do endereço do imóvel não encontrada!";
                    return(crm);
                }
            }
            else
            {
                resultadoPersistencia.Sucesso  = false;
                resultadoPersistencia.Mensagem = "Cidade do endereço do imóvel não enviado.";
                return(crm);
            }
            if (!String.IsNullOrEmpty(xml.EnderecoImovel.Complemento))
            {
                crm.Complemento = xml.EnderecoImovel.Complemento;
            }
            else
            {
                crm.AddNullProperty("Complemento");
            }

            // Estado (UF) - service
            if (!String.IsNullOrEmpty(xml.EnderecoImovel.Estado))
            {
                Model.Estado estado = new Model.Estado(this.Organizacao, this.IsOffline);
                estado = new Intelbras.CRM2013.Domain.Servicos.EnderecoServices(this.Organizacao, this.IsOffline).BuscaEstado(xml.EnderecoImovel.Estado);

                if (estado != null && estado.ID.HasValue)
                {
                    crm.Estado = new Lookup(estado.ID.Value, "");
                }
                else
                {
                    resultadoPersistencia.Sucesso  = false;
                    resultadoPersistencia.Mensagem = "Estado não encontrado!";
                    return(crm);
                }
            }
            else
            {
                resultadoPersistencia.Sucesso  = false;
                resultadoPersistencia.Mensagem = "Estado do endereço do imóvel não enviado.";
                return(crm);
            }
            if (!String.IsNullOrEmpty(xml.Matricula))
            {
                crm.Matrícula = xml.Matricula;
            }
            else
            {
                crm.AddNullProperty("Matrícula");
            }

            if (!String.IsNullOrEmpty(xml.Nome))
            {
                crm.Nome = xml.Nome;
            }
            else
            {
                resultadoPersistencia.Sucesso  = false;
                resultadoPersistencia.Mensagem = "Nome do imóvel não enviado.";
                return(crm);
            }

            crm.Onus = xml.ValorOnus;

            // País
            if (!String.IsNullOrEmpty(xml.EnderecoImovel.Pais))
            {
                Model.Pais pais = new Model.Pais(this.Organizacao, this.IsOffline);
                pais = new Intelbras.CRM2013.Domain.Servicos.EnderecoServices(this.Organizacao, this.IsOffline).BuscaPais(xml.EnderecoImovel.Pais);

                if (pais != null && pais.ID.HasValue)
                {
                    crm.Pais = new Lookup(pais.ID.Value, "");
                }
                else
                {
                    resultadoPersistencia.Sucesso  = false;
                    resultadoPersistencia.Mensagem = "País não encontrado!";
                    return(crm);
                }
            }
            else
            {
                resultadoPersistencia.Sucesso  = false;
                resultadoPersistencia.Mensagem = "País do endereço do imóvel não enviado.";
                return(crm);
            }
            crm.TipoImovel = xml.TipoImovel;
            crm.Valor      = xml.ValorImovel;
            crm.Status     = xml.Situacao;

            // Moeda - service
            if (!String.IsNullOrEmpty(xml.Moeda))
            {
                Model.Moeda moeda = new Model.Moeda(this.Organizacao, this.IsOffline);
                moeda = new Intelbras.CRM2013.Domain.Servicos.MoedaService(this.Organizacao, this.IsOffline).BuscaMoedaPorNome(xml.Moeda);

                if (moeda != null && moeda.ID.HasValue)
                {
                    crm.Moeda = new Lookup(moeda.ID.Value, "");
                }
                else
                {
                    resultadoPersistencia.Sucesso  = false;
                    resultadoPersistencia.Mensagem = "Moeda não encontrada!";
                    return(crm);
                }
            }
            else
            {
                resultadoPersistencia.Sucesso  = false;
                resultadoPersistencia.Mensagem = "Moeda não enviada.";
                return(crm);
            }

            crm.NaturezaProprietario = xml.NaturezaProprietarioImovel;

            #endregion

            return(crm);
        }