public Pollux.Entities.LinhaCorteRevenda DefinirPropriedades(LinhaCorteRevenda objCrm) { Pollux.Entities.LinhaCorteRevenda xmlRetorno = new Pollux.Entities.LinhaCorteRevenda(); xmlRetorno.CodigoLinhaCorte = objCrm.ID.Value.ToString(); if (!String.IsNullOrEmpty(objCrm.Nome)) { xmlRetorno.Nome = objCrm.Nome; } if (objCrm.Categoria != null) { xmlRetorno.CodigoCategoria = objCrm.Categoria.Id.ToString(); xmlRetorno.NomeCategoria = objCrm.Categoria.Name; } if (objCrm.UnidadeNegocio != null) { UnidadeNegocio unidadeNegocio = new Intelbras.CRM2013.Domain.Servicos.UnidadeNegocioService(this.Organizacao, this.IsOffline).BuscaUnidadeNegocio(objCrm.UnidadeNegocio.Id); if (unidadeNegocio != null) { xmlRetorno.CodigoUnidadeNegocio = unidadeNegocio.ChaveIntegracao; xmlRetorno.NomeUnidadeNegocio = unidadeNegocio.Nome; } } xmlRetorno.LinhaCorteSemestral = (decimal)objCrm.LinhaCorteSemestral; xmlRetorno.LinhaCorteTrimestral = (decimal)objCrm.LinhaCorteTrimestral; xmlRetorno.Moeda = "Real"; Usuario proprietario = new Servicos.UsuarioService(this.Organizacao, this.IsOffline).BuscarProprietario("itbc_linhadecorterevenda", "itbc_linhadecorterevendaid", objCrm.Id); if (proprietario != null) { xmlRetorno.CodigoProprietario = proprietario.Id.ToString(); xmlRetorno.NomeProprietario = proprietario.NomeCompleto; } return(xmlRetorno); }
private Intelbras.Message.Helper.MSG0155 DefinirPropriedadesPlugin(SolicitacaoBeneficio crm) { Intelbras.Message.Helper.MSG0155 objPollux = new Pollux.MSG0155(Domain.Enum.Sistemas.RetornaSistema(Domain.Enum.Sistemas.Sistema.CRM), crm.Nome.Truncate(40)); objPollux.CodigoSolicitacaoBeneficio = crm.ID.ToString(); objPollux.ValorAprovado = crm.ValorAprovado; if (!String.IsNullOrEmpty(crm.Nome)) { objPollux.NomeSolicitacaoBeneficio = crm.Nome; } else { throw new ArgumentException("(CRM) Nome SolicitacaoBeneficio não preenchido."); } if (crm.UnidadedeNegocio != null) { UnidadeNegocio unidadeNegocio = new Servicos.UnidadeNegocioService(this.Organizacao, this.IsOffline).BuscaUnidadeNegocio(crm.UnidadedeNegocio.Id); if (unidadeNegocio != null) { objPollux.CodigoUnidadeNegocio = unidadeNegocio.ChaveIntegracao; } } else { throw new ArgumentException("(CRM) UnidadedeNegocio não preenchida."); } if (!String.IsNullOrEmpty(crm.Nome)) { objPollux.DescricaoSituacaoIrregular = crm.SituacaoIrregular; } if (crm.BeneficioCanal != null) { objPollux.CodigoBeneficioCanal = crm.BeneficioCanal.Id.ToString(); } else { throw new ArgumentException("(CRM) BeneficioCanal não preenchido."); } if (crm.ValorSolicitado.HasValue) { objPollux.ValorSolicitado = crm.ValorSolicitado.Value; } objPollux.DescricaoSolicitacao = crm.Descricao; if (crm.StatusSolicitacao.HasValue) { objPollux.SituacaoSolicitacaoBeneficio = crm.StatusSolicitacao.Value; } if (crm.State.HasValue) { objPollux.Situacao = crm.State.Value; } if (crm.Status.HasValue) { objPollux.RazaoStatusSolicitacaoBeneficio = crm.Status.Value; } if (crm.FormaPagamento != null) { objPollux.CodigoFormaPagamento = crm.FormaPagamento.Id.ToString(); } else { throw new ArgumentException("(CRM) FormaPagamento não preenchida."); } if (crm.Canal != null) { objPollux.CodigoConta = crm.Canal.Id.ToString(); } else { throw new ArgumentException("(CRM) Canal não preenchido."); } if (crm.BeneficioPrograma != null) { objPollux.CodigoBeneficio = crm.BeneficioPrograma.Id.ToString(); Beneficio benefProg = new Intelbras.CRM2013.Domain.Servicos.BeneficioService(this.Organizacao, this.IsOffline).ObterPor(crm.BeneficioPrograma.Id); if (benefProg != null && benefProg.Codigo.HasValue) { objPollux.BeneficioCodigo = benefProg.Codigo.Value; } } else { throw new ArgumentException("(CRM) BeneficioPrograma não preenchido."); } objPollux.Proprietario = "259A8E4F-15E9-E311-9420-00155D013D39"; objPollux.TipoProprietario = "systemuser"; if (crm.TipoSolicitacao != null) { objPollux.CodigoTipoSolicitacao = crm.TipoSolicitacao.Id.ToString(); } else { throw new ArgumentException("(CRM) CodigoTipoSolicitacao não enviado."); } if (crm.SituacaoIrregularidades.HasValue) { objPollux.SolicitacaoIrregular = crm.SituacaoIrregularidades.Value; } objPollux.ProdutoSolicitacaoItens = this.RetornaListaItens(crm.ID.Value); if (crm.AlteradaParaStockRotation.HasValue) { objPollux.AlteradaStockRotation = crm.AlteradaParaStockRotation.Value; } else { objPollux.AlteradaStockRotation = false; } if (crm.TipoPriceProtection.HasValue) { objPollux.TipoPriceProtection = crm.TipoPriceProtection.Value; } else { objPollux.TipoPriceProtection = (int)Enum.SolicitacaoBeneficio.TipoPriceProtection.Consumo; } //Novos Campos if (crm.AjusteSaldo.HasValue) { objPollux.SolicitacaoAjuste = crm.AjusteSaldo.Value; } if (crm.StatusCalculoPriceProtection.HasValue) { objPollux.StatusCalculoPriceProtection = crm.StatusCalculoPriceProtection.Value; } if (crm.ValorAbater.HasValue) { objPollux.ValorAbater = crm.ValorAbater.Value; } else { objPollux.ValorAbater = new decimal(0); } Usuario assistente = new Servicos.UsuarioService(this.Organizacao, this.IsOffline).ObterPor(crm.Assistente.Id); if (assistente != null) { objPollux.CodigoAssistente = assistente.CodigoAssistenteComercial.Value; } else { throw new ApplicationException("(CRM) Assistente não cadastrado / Obrigatório."); } Usuario supervisor = new Servicos.UsuarioService(this.Organizacao, this.IsOffline).ObterPor(crm.Supervisor.Id); if (supervisor != null) { objPollux.CodigoSupervisorEMS = supervisor.CodigoSupervisorEMS; } else { throw new ApplicationException("(CRM) Supervisor não cadastrado / Obrigatório."); } if (crm.Filial != null) { objPollux.CodigoFilial = crm.Filial.Id.ToString(); } if (crm.StatusPagamento.HasValue) { objPollux.StatusPagamento = crm.StatusPagamento; } if (crm.ValorPago.HasValue) { objPollux.ValorPago = crm.ValorPago.Value; } if (crm.ValorCancelado.HasValue) { objPollux.ValorCancelado = crm.ValorCancelado.Value; } if (crm.DataCriacao.HasValue) { objPollux.DataCriacao = crm.DataCriacao.Value.ToLocalTime(); } else { throw new ArgumentException("(CRM) DataCriacao não cadastrada / Obrigatório."); } if (crm.DataValidade.HasValue) { objPollux.DataValidade = crm.DataValidade; } else { throw new ArgumentException("(CRM) DataValidade não cadastrada / Obrigatório."); } if (crm.CondicaoPagamento != null) { CondicaoPagamento condicaoPagamento = new Servicos.CondicaoPagamentoService(this.Organizacao, this.IsOffline).BuscaCondicaoPagamento(crm.CondicaoPagamento.Id); if (condicaoPagamento != null) { if (condicaoPagamento.Codigo.HasValue) { objPollux.CodigoCondicaoPagamento = condicaoPagamento.Codigo.Value; } } } if (crm.DescartarVerba.HasValue) { objPollux.DescartarVerba = crm.DescartarVerba.Value; } if (!string.IsNullOrEmpty(crm.TrimestreCompetencia)) { objPollux.TrimestreCompetencia = crm.TrimestreCompetencia; } else { throw new ArgumentException("(CRM) TrimestreCompetencia não cadastrada / Obrigatório."); } objPollux.FormaCancelamento = crm.FormaCancelamento; return(objPollux); }
public SolicitacaoBeneficio DefinirPropriedades(Pollux.MSG0155 xml) { var crm = new SolicitacaoBeneficio(this.Organizacao, this.IsOffline); #region Propriedades Crm->Xml crm.IntegrarNoPlugin = true; crm.ValorAprovado = xml.ValorAprovado; if (!string.IsNullOrEmpty(xml.CodigoSolicitacaoBeneficio)) { if (xml.CodigoSolicitacaoBeneficio.Length == 36) { crm.ID = new Guid(xml.CodigoSolicitacaoBeneficio); } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "CodigoSolicitacaoBeneficio fora do padrão (Guid)!"; return(crm); } } string NomeUnidadeNegocio = String.Empty; if (!string.IsNullOrEmpty(xml.CodigoUnidadeNegocio)) { UnidadeNegocio unidadeNegocio = new Servicos.UnidadeNegocioService(this.Organizacao, this.IsOffline).BuscaUnidadeNegocioPorChaveIntegracao(xml.CodigoUnidadeNegocio); if (unidadeNegocio == null) { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "UnidadeNegocio: " + xml.CodigoUnidadeNegocio + " não encontrado no Crm."; return(crm); } else { crm.UnidadedeNegocio = new Lookup(unidadeNegocio.ID.Value, ""); NomeUnidadeNegocio = unidadeNegocio.Nome; } } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "CodigoUnidadeNegocio não enviado!"; return(crm); } crm.Nome = xml.NomeSolicitacaoBeneficio; crm.TipoPriceProtection = xml.TipoPriceProtection; if (!String.IsNullOrEmpty(xml.DescricaoSituacaoIrregular)) { crm.SituacaoIrregular = xml.DescricaoSituacaoIrregular; } else { crm.AddNullProperty("SituacaoIrregular"); } if (!String.IsNullOrEmpty(xml.CodigoBeneficioCanal) && xml.CodigoBeneficioCanal.Length == 36) { BeneficioDoCanal beneficioCanal = new Servicos.BeneficioDoCanalService(this.Organizacao, this.IsOffline).ObterPor(new Guid(xml.CodigoBeneficioCanal)); if (beneficioCanal != null) { crm.BeneficioCanal = new Lookup(beneficioCanal.ID.Value, ""); } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "CodigoBeneficioCanal : " + xml.CodigoBeneficioCanal + " - não cadastrado no Crm."; return(crm); } } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "CodigoBeneficioCanal não Enviado ou fora do padrão(Guid)."; return(crm); } crm.ValorSolicitado = xml.ValorSolicitado; if (!string.IsNullOrEmpty(xml.DescricaoSolicitacao)) { crm.Descricao = xml.DescricaoSolicitacao; } else { crm.AddNullProperty("Descricao"); } if (System.Enum.IsDefined(typeof(Enum.SolicitacaoBeneficio.StatusSolicitacaoBeneficio), xml.SituacaoSolicitacaoBeneficio)) { crm.StatusSolicitacao = xml.SituacaoSolicitacaoBeneficio; } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "SituacaoSolicitacaoBeneficio não cadastrado no Crm(PickList)."; return(crm); } if (xml.Situacao == 0 || xml.Situacao == 1) { crm.State = xml.Situacao; } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Situacao fora do padrão(0 ou 1)."; return(crm); } if (crm.State.Value.Equals((int)Enum.SolicitacaoBeneficio.State.Ativo)) { if (System.Enum.IsDefined(typeof(Enum.SolicitacaoBeneficio.RazaoStatusAtivo), xml.RazaoStatusSolicitacaoBeneficio)) { crm.Status = xml.RazaoStatusSolicitacaoBeneficio; } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "RazaoStatusSolicitacaoBeneficio não cadastrado para Situação Ativo."; return(crm); } } else if (crm.State.Value.Equals((int)Enum.SolicitacaoBeneficio.State.Inativo)) { if (System.Enum.IsDefined(typeof(Enum.SolicitacaoBeneficio.RazaoStatusInativo), xml.RazaoStatusSolicitacaoBeneficio)) { crm.Status = xml.RazaoStatusSolicitacaoBeneficio; } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "RazaoStatusSolicitacaoBeneficio não cadastrado para Situação Inativo."; return(crm); } } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Situacao fora do padrão."; return(crm); } if (!String.IsNullOrEmpty(xml.CodigoFormaPagamento) && xml.CodigoFormaPagamento.Length == 36) { FormaPagamento formaPagamento = new Servicos.FormaPagamentoService(this.Organizacao, this.IsOffline).ObterPorGuid(new Guid(xml.CodigoFormaPagamento)); if (formaPagamento != null) { crm.FormaPagamento = new Lookup(formaPagamento.ID.Value, ""); } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "CodigoFormaPagamento : " + xml.CodigoFormaPagamento + " - não cadastrado no Crm."; return(crm); } } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "CodigoFormaPagamento não Enviado ou fora do padrão(Guid)."; return(crm); } if (!String.IsNullOrEmpty(xml.CodigoConta) && xml.CodigoConta.Length == 36) { Conta conta = new Servicos.ContaService(this.Organizacao, this.IsOffline).BuscaConta(new Guid(xml.CodigoConta)); if (conta != null) { crm.Canal = new Lookup(conta.ID.Value, ""); } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "CodigoConta : " + xml.CodigoConta + " - não cadastrado no Crm."; return(crm); } } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "CodigoConta não Enviado ou fora do padrão(Guid)."; return(crm); } if (!String.IsNullOrEmpty(xml.CodigoBeneficio) && xml.CodigoBeneficio.Length == 36) { Beneficio beneficio = new Servicos.BeneficioService(this.Organizacao, this.IsOffline).ObterPor(new Guid(xml.CodigoBeneficio)); if (beneficio != null) { crm.BeneficioPrograma = new Lookup(beneficio.ID.Value, ""); } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "CodigoBeneficio : " + xml.CodigoBeneficio + " - não cadastrado no Crm."; return(crm); } } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "CodigoBeneficio não Enviado ou fora do padrão(Guid)."; return(crm); } crm.AlteradaParaStockRotation = xml.AlteradaStockRotation; crm.SituacaoIrregularidades = xml.SolicitacaoIrregular; if (!String.IsNullOrEmpty(xml.CodigoTipoSolicitacao) && xml.CodigoTipoSolicitacao.Length == 36) { crm.TipoSolicitacao = new Lookup(new Guid(xml.CodigoTipoSolicitacao), ""); } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "CodigoTipoSolicitacao não Enviado ou fora do padrão(Guid)."; return(crm); } //Novos campos - 1409 crm.AjusteSaldo = xml.SolicitacaoAjuste; crm.ValorAbater = xml.ValorAbater; Usuario objAssitente = new Servicos.UsuarioService(this.Organizacao, this.IsOffline).BuscaPorCodigoAssistente(xml.CodigoAssistente.Value); if (objAssitente != null) { crm.Assistente = new Lookup(objAssitente.ID.Value, ""); } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Assistente não cadastrado no Crm."; return(crm); } Usuario supervisorEms = new Servicos.UsuarioService(this.Organizacao, this.IsOffline).BuscaPorCodigoSupervisorEMS(xml.CodigoSupervisorEMS); if (supervisorEms != null) { crm.Supervisor = new Lookup(supervisorEms.ID.Value, ""); } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Supervisor não cadastrado no Crm."; return(crm); } if (!String.IsNullOrEmpty(xml.CodigoFilial)) { crm.Filial = new Lookup(new Guid(xml.CodigoFilial), ""); } else { crm.AddNullProperty("Filial"); } if (xml.StatusPagamento.HasValue) { crm.StatusPagamento = xml.StatusPagamento; } else { crm.AddNullProperty("StatusPagamento"); } if (xml.ValorPago.HasValue) { crm.ValorPago = xml.ValorPago.Value; } if (xml.ValorCancelado.HasValue) { crm.ValorCancelado = xml.ValorCancelado.Value; } if (xml.StatusCalculoPriceProtection.HasValue) { crm.StatusCalculoPriceProtection = xml.StatusCalculoPriceProtection.Value; } if (xml.DataValidade.HasValue) { crm.DataValidade = xml.DataValidade.Value; } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "DataValidade não informado favor verificar integração."; return(crm); } if (xml.CodigoCondicaoPagamento.HasValue) { CondicaoPagamento condicaoPagamento = new Servicos.CondicaoPagamentoService(this.Organizacao, this.IsOffline).BuscaCondicaoPagamentoPorCodigo(xml.CodigoCondicaoPagamento.Value); if (condicaoPagamento != null) { crm.CondicaoPagamento = new Lookup(condicaoPagamento.ID.Value, ""); } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "CodigoCondicaoPagamento informado não registrado no CRM, favor verificar."; return(crm); } } crm.DescartarVerba = xml.DescartarVerba; if (!string.IsNullOrEmpty(xml.TrimestreCompetencia)) { crm.TrimestreCompetencia = xml.TrimestreCompetencia; } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "TrimestreCompetencia não informado favor verificar integração."; return(crm); } crm.FormaCancelamento = xml.FormaCancelamento; if (xml.CodigoSolicitacaoPrincipal != null) { crm.SolicitacaoBeneficioPrincipal = new Lookup(new Guid(xml.CodigoSolicitacaoPrincipal), ""); } #endregion crm.IntegradoEm = DateTime.Now; crm.IntegradoPor = usuarioIntegracao.NomeCompleto; crm.UsuarioIntegracao = xml.LoginUsuario; return(crm); }
private Intelbras.Message.Helper.MSG0152 DefinirPropriedadesPlugin(SolicitacaoBeneficio crm) { Intelbras.Message.Helper.MSG0152 objPollux = new Pollux.MSG0152(Domain.Enum.Sistemas.RetornaSistema(Domain.Enum.Sistemas.Sistema.CRM), Helper.Truncate(crm.Nome, 40)); objPollux.CodigoSolicitacaoBeneficio = crm.ID.ToString(); objPollux.ValorAprovado = crm.ValorAprovado; if (!String.IsNullOrEmpty(crm.Nome)) { objPollux.NomeSolicitacaoBeneficio = crm.Nome; } else { throw new ArgumentException("(CRM) Nome SolicitacaoBeneficio não preenchido."); } if (crm.UnidadedeNegocio != null) { UnidadeNegocio unidadeNegocio = new Servicos.UnidadeNegocioService(this.Organizacao, this.IsOffline).BuscaUnidadeNegocio(crm.UnidadedeNegocio.Id); if (unidadeNegocio != null) { objPollux.CodigoUnidadeNegocio = unidadeNegocio.ChaveIntegracao; } } else { throw new ArgumentException("(CRM) UnidadedeNegocio não preenchida."); } if (crm.ValorAcao.HasValue) { objPollux.ValorAcao = crm.ValorAcao.Value; } if (crm.ValorAcao.HasValue == false && crm.AjusteSaldo == false) { throw new ArgumentException("(CRM) Valor ação é obrigatório!"); } if (!String.IsNullOrEmpty(crm.SituacaoIrregular)) { objPollux.DescricaoSituacaoIrregular = crm.SituacaoIrregular; } if (crm.AcaoSubsidiadaVmc != null) { objPollux.CodigoAcaoSubsidiadaVMC = crm.AcaoSubsidiadaVmc.Id.ToString(); } if (crm.AcaoSubsidiadaVmc == null && crm.AjusteSaldo == false) { throw new ArgumentException("(CRM) AcaoSubsidiadaVmc não preenchida."); } if (crm.BeneficioCanal != null) { objPollux.CodigoBeneficioCanal = crm.BeneficioCanal.Id.ToString(); } else { throw new ArgumentException("(CRM) BeneficioCanal não preenchido."); } if (crm.ValorSolicitado.HasValue) { objPollux.ValorSolicitado = crm.ValorSolicitado.Value; } if (!String.IsNullOrEmpty(crm.Descricao)) { objPollux.DescricaoSolicitacao = crm.Descricao; } if (crm.StatusSolicitacao.HasValue) { objPollux.SituacaoSolicitacaoBeneficio = crm.StatusSolicitacao.Value; } if (crm.State.HasValue) { objPollux.Situacao = crm.State.Value; } else { objPollux.Situacao = 0; //ativo } if (crm.Status.HasValue) { objPollux.RazaoStatusSolicitacaoBeneficio = crm.Status.Value; } if (crm.FormaPagamento != null) { objPollux.CodigoFormaPagamento = crm.FormaPagamento.Id.ToString(); } else { throw new ArgumentException("(CRM) FormaPagamento não preenchida."); } if (crm.DataIniAcao.HasValue) { objPollux.DataInicioAcao = crm.DataIniAcao.Value; } if (crm.DataFimAcao.HasValue) { objPollux.DataPrevistaRetornoAcao = crm.DataFimAcao.Value.ToLocalTime(); } if (crm.DataFimAcao.HasValue == false && crm.AjusteSaldo == false) { throw new ArgumentException("(CRM) Data Prevista retorno ação é obrigatório!"); } if (crm.Canal != null) { objPollux.CodigoConta = crm.Canal.Id.ToString(); } else { throw new ArgumentException("(CRM) Canal não preenchido."); } if (crm.BeneficioPrograma != null) { objPollux.CodigoBeneficio = crm.BeneficioPrograma.Id.ToString(); Beneficio benefProg = new Intelbras.CRM2013.Domain.Servicos.BeneficioService(this.Organizacao, this.IsOffline).ObterPor(crm.BeneficioPrograma.Id); if (benefProg != null && benefProg.Codigo.HasValue) { objPollux.BeneficioCodigo = benefProg.Codigo.Value; } } else { throw new ArgumentException("(CRM) BeneficioPrograma não preenchido."); } if (crm.AjusteSaldo.HasValue) { objPollux.SolicitacaoAjuste = crm.AjusteSaldo.Value; } if (crm.ValorAbater.HasValue) { objPollux.ValorAbater = (decimal)crm.ValorAbater.Value; } else { objPollux.ValorAbater = new decimal(0); } objPollux.Proprietario = "259A8E4F-15E9-E311-9420-00155D013D39"; objPollux.TipoProprietario = "systemuser"; if (crm.TipoSolicitacao != null) { objPollux.CodigoTipoSolicitacao = crm.TipoSolicitacao.Id.ToString(); } else { throw new ArgumentException("(CRM) CodigoTipoSolicitacao não enviado."); } if (crm.SituacaoIrregularidades.HasValue) { objPollux.SolicitacaoIrregular = crm.SituacaoIrregularidades.Value; } objPollux.ProdutoSolicitacaoItens = this.RetornaListaItens(crm.ID.Value); //Novos Campos if (crm.Assistente == null) { throw new ArgumentException("(CRM) Assistente Na Solicitação não cadastrado / Campo Obrigatório."); } Usuario assistente = new Servicos.UsuarioService(this.Organizacao, this.IsOffline).ObterPor(crm.Assistente.Id); if (assistente != null) { objPollux.CodigoAssistente = assistente.CodigoAssistenteComercial.Value; } else { throw new ArgumentException("(CRM) Assistente não cadastrado / Obrigatório."); } Usuario supervisor = new Servicos.UsuarioService(this.Organizacao, this.IsOffline).ObterPor(crm.Supervisor.Id); if (supervisor != null) { objPollux.CodigoSupervisorEMS = supervisor.CodigoSupervisorEMS; } else { throw new ArgumentException("(CRM) Supervisor não cadastrado / Obrigatório."); } if (crm.Filial != null) { objPollux.CodigoFilial = crm.Filial.Id.ToString(); } if (crm.StatusPagamento.HasValue) { objPollux.StatusPagamento = crm.StatusPagamento; } if (crm.ValorPago.HasValue) { objPollux.ValorPago = crm.ValorPago.Value; } if (crm.ValorCancelado.HasValue) { objPollux.ValorCancelado = crm.ValorCancelado.Value; } if (crm.DataCriacao.HasValue) { objPollux.DataCriacao = crm.DataCriacao.Value.ToLocalTime(); } else { objPollux.DataCriacao = DateTime.MinValue; //throw new ArgumentException("(CRM) DataCriacao não cadastrada / Obrigatório."); } if (crm.DataValidade.HasValue) { objPollux.DataValidade = crm.DataValidade; } else { throw new ArgumentException("(CRM) DataValidade não cadastrada / Obrigatório."); } if (crm.CondicaoPagamento != null) { CondicaoPagamento condicaoPagamento = new Servicos.CondicaoPagamentoService(this.Organizacao, this.IsOffline).BuscaCondicaoPagamento(crm.CondicaoPagamento.Id); if (condicaoPagamento != null) { if (condicaoPagamento.Codigo.HasValue) { objPollux.CodigoCondicaoPagamento = condicaoPagamento.Codigo.Value; } } } if (crm.DescartarVerba.HasValue) { objPollux.DescartarVerba = crm.DescartarVerba.Value; } if (!string.IsNullOrEmpty(crm.TrimestreCompetencia)) { objPollux.TrimestreCompetencia = crm.TrimestreCompetencia; } else { throw new ArgumentException("(CRM) TrimestreCompetencia não cadastrada / Obrigatório."); } if (crm.FormaCancelamento.HasValue) { objPollux.FormaCancelamento = crm.FormaCancelamento.Value; } if (crm.ResultadoPrevisto.HasValue) { objPollux.ResultadoPrevisto = crm.ResultadoPrevisto.Value; } if (crm.ResultadoAlcancado.HasValue) { objPollux.ResultadoAlcancado = crm.ResultadoAlcancado.Value; } //Busca as unidades de negócio relacionadas ao Benefício do canal List <SolicitacaoXUnidades> lstUnidadesBenef = new Servicos.SolicitacaoXUnidadesService(this.Organizacao, this.IsOffline).ListarPor(crm.ID.Value); objPollux.UnidadesRelacionadas = this.ConverteLista(lstUnidadesBenef); #endregion return(objPollux); }
public string Executar(string mensagem, string numeroMensagem, Domain.Model.Usuario usuario) { usuarioIntegracao = usuario; var objeto = this.DefinirPropriedades(this.CarregarMensagem <Pollux.MSG0124>(mensagem)); List <Pollux.Entities.RelacionamentoCanal> lstPolluxRelCanal = new List <Pollux.Entities.RelacionamentoCanal>(); if (!resultadoPersistencia.Sucesso) { retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0124R1>(numeroMensagem, retorno)); } List <RelacionamentoCanal> lstRelacionamentoCanal = new Servicos.RelacionamentoCanalService(this.Organizacao, this.IsOffline).ListarAtivosPorCanal(objeto.Canal.Id); if (lstRelacionamentoCanal != null && lstRelacionamentoCanal.Count > 0) { foreach (RelacionamentoCanal item in lstRelacionamentoCanal) { Pollux.Entities.RelacionamentoCanal relCanal = new Pollux.Entities.RelacionamentoCanal(); if (item.Assistente != null) { Usuario objUsuario = new Intelbras.CRM2013.Domain.Servicos.UsuarioService(this.Organizacao, this.IsOffline).ObterPor(item.Assistente.Id); if (objUsuario != null) { relCanal.CodigoAssistente = (int)objUsuario.CodigoAssistenteComercial; relCanal.NomeAssistente = item.Assistente.Name; relCanal.CodigoAssistenteCRM = objUsuario.ID.Value.ToString(); } if (item.KeyAccount != null) { Contato contato = new Servicos.ContatoService(this.Organizacao, this.IsOffline).BuscaContato(item.KeyAccount.Id); if (contato != null && contato.CodigoRepresentante != null && (!String.IsNullOrEmpty(contato.CodigoRepresentante) && (!contato.CodigoRepresentante.Equals("0")) && contato.PrimeiroNome != null && (!String.IsNullOrEmpty(contato.PrimeiroNome)))) { relCanal.CodigoRepresentante = Convert.ToInt32(contato.CodigoRepresentante); relCanal.NomeRepresentante = contato.PrimeiroNome; } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Erro de inconsistência de dados no Crm. Elemento 'NomeRepresentante / CodigoRepresentante' não preenchido na base Crm para o RelacionamentoCanal - " + item.ID.Value.ToString(); retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0124R1>(numeroMensagem, retorno)); } } if (item.Supervisor != null) { Usuario usuarioSuper = new Servicos.UsuarioService(this.Organizacao, this.IsOffline).ObterPor(item.Supervisor.Id); if (usuarioSuper != null) { relCanal.CodigoSupervisor = item.Supervisor.Id.ToString(); relCanal.NomeSupervisor = usuarioSuper.Nome; if (!String.IsNullOrEmpty(usuarioSuper.CodigoSupervisorEMS)) { relCanal.CodigoSupervisorEMS = usuarioSuper.CodigoSupervisorEMS; } else { throw new Exception("Codigo Supervisor EMS não preenchido."); } } } if (item.DataInicial.HasValue) { relCanal.DataInicial = item.DataInicial.Value; } if (item.DataFinal.HasValue) { relCanal.DataFinal = item.DataFinal.Value; } //Nome Obrigatorio if (!String.IsNullOrEmpty(item.Nome)) { relCanal.Nome = item.Nome; } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Erro de inconsistência de dados no Crm. Elemento 'Nome' não preenchido na base Crm para o RelacionamentoCanal - " + item.ID.Value.ToString(); retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0124R1>(numeroMensagem, retorno)); } } relCanal.CodigoRelacionamentoCanal = item.ID.ToString(); lstPolluxRelCanal.Add(relCanal); } } else { resultadoPersistencia.Sucesso = true; resultadoPersistencia.Mensagem = "Não encontrado RelacionamentoCanal para este Canal no CRM."; retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0124R1>(numeroMensagem, retorno)); } resultadoPersistencia.Sucesso = true; resultadoPersistencia.Mensagem = "Integração ocorrida com sucesso."; retorno.Add("RelacionamentosCanalItens", lstPolluxRelCanal); retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0124R1>(numeroMensagem, retorno)); }
public string Executar(string mensagem, string numeroMensagem, Domain.Model.Usuario usuario) { try { usuarioIntegracao = usuario; ClientePotencial clientePotencialConsulta = null; Oportunidade oportunidadeConsulta = null; var xml = this.CarregarMensagem <Pollux.MSG0269>(mensagem); Pollux.Entities.ProjetoItem projetoItem = new Pollux.Entities.ProjetoItem(); if (!string.IsNullOrEmpty(xml.NumeroProjeto)) { clientePotencialConsulta = new Servicos.LeadService(this.Organizacao, this.IsOffline).ObterPorNumeroProjeto(xml.NumeroProjeto); if (clientePotencialConsulta != null) { oportunidadeConsulta = new Servicos.RepositoryService().Oportunidade.BuscarPor(clientePotencialConsulta); } if (clientePotencialConsulta == null) { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Valor do parâmetro " + xml.NumeroProjeto + " não encontrado."; retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0269R1>(numeroMensagem, retorno)); } } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Parâmetro obrigatório para a consulta não enviado."; retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0269R1>(numeroMensagem, retorno)); } if (oportunidadeConsulta != null) { projetoItem.NumeroProjeto = clientePotencialConsulta.NumeroProjeto; projetoItem.ClassificacaoProjeto = 993520001; projetoItem.CodigoClientePotencial = oportunidadeConsulta.ClientePotencialOriginador.Id.ToString(); projetoItem.CodigoOportunidade = oportunidadeConsulta.Id.ToString(); projetoItem.SituacaoProjeto = ObterRazaoStatusOportunidade(oportunidadeConsulta); if (oportunidadeConsulta.RevendaIntegrador != null) { projetoItem.CodigoRevenda = oportunidadeConsulta.RevendaIntegrador.Id.ToString(); projetoItem.NomeRevenda = oportunidadeConsulta.RevendaIntegrador.Name; } if (oportunidadeConsulta.Distribuidor != null) { projetoItem.CodigoDistribuidor = oportunidadeConsulta.Distribuidor.Id.ToString(); projetoItem.NomeDistribuidor = oportunidadeConsulta.Distribuidor.Name; } if (oportunidadeConsulta.Executivo != null) { projetoItem.CodigoExecutivo = oportunidadeConsulta.Executivo.Id.ToString(); projetoItem.NomeExecutivo = oportunidadeConsulta.Executivo.Name; } projetoItem.CNPJCliente = clientePotencialConsulta.Cnpj.Replace("-", "").Replace(".", "").Replace("/", "").Trim(); projetoItem.RazaoSocial = clientePotencialConsulta.NomeDaEmpresa; projetoItem.NomeContatoCliente = clientePotencialConsulta.NomeCompletoDoContato; if (!string.IsNullOrEmpty(clientePotencialConsulta.TelefoneComercial)) { projetoItem.TelefoneContatoCliente = clientePotencialConsulta.TelefoneComercial; } projetoItem.EmailContatoCliente = clientePotencialConsulta.Email; projetoItem.TipoProjeto = clientePotencialConsulta.TipoProjeto; if (clientePotencialConsulta.EnvolverEngenharia) { projetoItem.EnvolverEngenharia = 993520000; } else { projetoItem.EnvolverEngenharia = 993520001; } projetoItem.ReceitaEstimada = clientePotencialConsulta.ValorEstimado; projetoItem.DataPrevisaoFechamento = clientePotencialConsulta.DataEstimada; UnidadeNegocio unidadeNegocio = new Servicos.UnidadeNegocioService(this.Organizacao, this.IsOffline).BuscaUnidadeNegocio(clientePotencialConsulta.UnidadeNegocio.Id); if (unidadeNegocio != null) { projetoItem.CodigoUnidadeNegocio = unidadeNegocio.ChaveIntegracao; projetoItem.NomeUnidadeNegocio = unidadeNegocio.Nome; } projetoItem.DataCadastro = clientePotencialConsulta.DataCriacao; projetoItem.DescricaoProjeto = clientePotencialConsulta.Descricao; if (clientePotencialConsulta.CotacaoEnviada.HasValue) { projetoItem.CotacaoEnviada = clientePotencialConsulta.CotacaoEnviada; } if (oportunidadeConsulta.DataEnvioCotacao.HasValue) { projetoItem.DataEnvioCotacao = oportunidadeConsulta.DataEnvioCotacao; } if (oportunidadeConsulta.TeveReuniao.HasValue) { projetoItem.TeveReuniao = oportunidadeConsulta.TeveReuniao; } if (oportunidadeConsulta.DataReuniao.HasValue) { projetoItem.DataReuniao = oportunidadeConsulta.DataReuniao; } if (oportunidadeConsulta.DataEstimativaAprovacao.HasValue) { projetoItem.DataEstimativaAprovacao = oportunidadeConsulta.DataEstimativaAprovacao; } if (oportunidadeConsulta.PropostaAprovada.HasValue) { projetoItem.PropostaAprovada = oportunidadeConsulta.PropostaAprovada; } if (oportunidadeConsulta.DataAprovacao.HasValue) { projetoItem.DataAprovacao = oportunidadeConsulta.DataAprovacao; } if (oportunidadeConsulta.DataEnvioPedidos.HasValue) { projetoItem.DataEnvioPedidos = oportunidadeConsulta.DataEnvioPedidos; } if (oportunidadeConsulta.PedidosFaturados.HasValue) { projetoItem.PedidosFaturados = oportunidadeConsulta.PedidosFaturados; } Usuario proprietarioOportunidade = new Servicos.UsuarioService(this.Organizacao, this.IsOffline).BuscarProprietario("opportunity", "opportunityid", oportunidadeConsulta.Id); if (proprietarioOportunidade != null) { projetoItem.CodigoExecutivoIntelbras = proprietarioOportunidade.Id.ToString(); projetoItem.NomeExecutivoIntelbras = proprietarioOportunidade.NomeCompleto; } } else { projetoItem.NumeroProjeto = clientePotencialConsulta.NumeroProjeto; projetoItem.ClassificacaoProjeto = 993520000; projetoItem.CodigoClientePotencial = clientePotencialConsulta.Id.ToString(); projetoItem.SituacaoProjeto = ObterRazaoStatusClientePotencial(clientePotencialConsulta); if (clientePotencialConsulta.RevendaIntegrador != null) { projetoItem.CodigoRevenda = clientePotencialConsulta.RevendaIntegrador.Id.ToString(); projetoItem.NomeRevenda = clientePotencialConsulta.RevendaIntegrador.Name; } if (clientePotencialConsulta.Distribuidor != null) { projetoItem.CodigoDistribuidor = clientePotencialConsulta.Distribuidor.Id.ToString(); projetoItem.NomeDistribuidor = clientePotencialConsulta.Distribuidor.Name; } if (clientePotencialConsulta.Executivo != null) { projetoItem.CodigoExecutivo = clientePotencialConsulta.Executivo.Id.ToString(); projetoItem.NomeExecutivo = clientePotencialConsulta.Executivo.Name; } projetoItem.CNPJCliente = clientePotencialConsulta.Cnpj.Replace("-", "").Replace(".", "").Replace("/", "").Trim(); projetoItem.RazaoSocial = clientePotencialConsulta.NomeDaEmpresa; projetoItem.NomeContatoCliente = clientePotencialConsulta.NomeCompletoDoContato; if (!string.IsNullOrEmpty(clientePotencialConsulta.TelefoneComercial)) { projetoItem.TelefoneContatoCliente = clientePotencialConsulta.TelefoneComercial; } projetoItem.EmailContatoCliente = clientePotencialConsulta.Email; projetoItem.TipoProjeto = clientePotencialConsulta.TipoProjeto; if (clientePotencialConsulta.EnvolverEngenharia) { projetoItem.EnvolverEngenharia = 993520000; } else { projetoItem.EnvolverEngenharia = 993520001; } projetoItem.ReceitaEstimada = clientePotencialConsulta.ValorEstimado; projetoItem.DataPrevisaoFechamento = clientePotencialConsulta.DataEstimada; UnidadeNegocio unidadeNegocio = new Servicos.UnidadeNegocioService(this.Organizacao, this.IsOffline).BuscaUnidadeNegocio(clientePotencialConsulta.UnidadeNegocio.Id); if (unidadeNegocio != null) { projetoItem.CodigoUnidadeNegocio = unidadeNegocio.ChaveIntegracao; projetoItem.NomeUnidadeNegocio = unidadeNegocio.Nome; } projetoItem.DataCadastro = clientePotencialConsulta.DataCriacao; projetoItem.DescricaoProjeto = clientePotencialConsulta.Descricao; if (clientePotencialConsulta.CotacaoEnviada.HasValue) { projetoItem.CotacaoEnviada = clientePotencialConsulta.CotacaoEnviada; } Usuario proprietario = new Servicos.UsuarioService(this.Organizacao, this.IsOffline).BuscarProprietario("lead", "leadid", clientePotencialConsulta.Id); if (proprietario != null) { projetoItem.CodigoExecutivoIntelbras = proprietario.Id.ToString(); projetoItem.NomeExecutivoIntelbras = proprietario.NomeCompleto; } if (clientePotencialConsulta.TipoSolucao.HasValue) { projetoItem.TipoSolucao = clientePotencialConsulta.TipoSolucao; } } #region Endereço projetoItem.EnderecoClienteFinal = new Pollux.Entities.Endereco(); if (!string.IsNullOrEmpty(clientePotencialConsulta.Endereco1CEP)) { projetoItem.EnderecoClienteFinal.CEP = clientePotencialConsulta.Endereco1CEP.Replace("-", "").PadLeft(8, '0'); } ; projetoItem.EnderecoClienteFinal.Logradouro = clientePotencialConsulta.Endereco1Rua; projetoItem.EnderecoClienteFinal.Numero = clientePotencialConsulta.Endereco1Numero; if (!string.IsNullOrEmpty(clientePotencialConsulta.Endereco1Complemento)) { projetoItem.EnderecoClienteFinal.Complemento = clientePotencialConsulta.Endereco1Complemento; } projetoItem.EnderecoClienteFinal.Bairro = clientePotencialConsulta.Endereco1Bairro; if (clientePotencialConsulta.Endereco1Municipioid != null) { Municipio municipio = new Servicos.MunicipioServices(this.Organizacao, this.IsOffline).ObterPor(clientePotencialConsulta.Endereco1Municipioid.Id); projetoItem.EnderecoClienteFinal.NomeCidade = municipio.Nome; projetoItem.EnderecoClienteFinal.Cidade = municipio.ChaveIntegracao; } if (clientePotencialConsulta.Endereco1Estadoid != null) { Estado estado = new Servicos.EstadoServices(this.Organizacao, this.IsOffline).BuscaEstadoPorId(clientePotencialConsulta.Endereco1Estadoid.Id); if (estado != null) { projetoItem.EnderecoClienteFinal.UF = estado.SiglaUF; projetoItem.EnderecoClienteFinal.Estado = estado.ChaveIntegracao; } } if (clientePotencialConsulta.Endereco1Pais != null) { Pais pais = new Servicos.PaisServices(this.Organizacao, this.IsOffline).BuscaPais(clientePotencialConsulta.Endereco1Pais.Id); if (pais != null) { projetoItem.EnderecoClienteFinal.NomePais = pais.Nome; projetoItem.EnderecoClienteFinal.Pais = pais.Nome; } } #endregion #region Atividades Projeto projetoItem.ListaAtividadesProjeto = new List <Pollux.Entities.AtividadeProjeto>(); List <Postagem> lstAtividadesClientePotencial = new Servicos.PostagemService(this.Organizacao, this.IsOffline).ListarPorReferenteA(clientePotencialConsulta.Id); if (oportunidadeConsulta != null) { List <Postagem> lstAtividadesOportunidade = new Servicos.PostagemService(this.Organizacao, this.IsOffline).ListarPorReferenteA(oportunidadeConsulta.Id); if (lstAtividadesOportunidade.Count > 0) { foreach (Postagem postagem in lstAtividadesOportunidade) { Pollux.Entities.AtividadeProjeto atividadeProjeto = new Pollux.Entities.AtividadeProjeto(); atividadeProjeto.DataAtividade = postagem.CriadoEm; atividadeProjeto.CodigoContato = postagem.UsuarioAtividade.Id.ToString(); atividadeProjeto.UsuarioAtividade = postagem.UsuarioAtividade.Name; atividadeProjeto.DescricaoAtividade = postagem.Texto; projetoItem.ListaAtividadesProjeto.Add(atividadeProjeto); } } } if (lstAtividadesClientePotencial.Count > 0) { foreach (Postagem postagem in lstAtividadesClientePotencial) { Pollux.Entities.AtividadeProjeto atividadeProjeto = new Pollux.Entities.AtividadeProjeto(); atividadeProjeto.DataAtividade = postagem.CriadoEm; atividadeProjeto.CodigoContato = postagem.UsuarioAtividade.Id.ToString(); atividadeProjeto.UsuarioAtividade = postagem.UsuarioAtividade.Name; atividadeProjeto.DescricaoAtividade = postagem.Texto; projetoItem.ListaAtividadesProjeto.Add(atividadeProjeto); } } #endregion #region Anexos Projeto projetoItem.ListaAnexosProjeto = new List <Pollux.Entities.AnexoProjeto>(); if (oportunidadeConsulta != null) { List <DocumentoSharePoint> lstAnexosOportunidade = new Servicos.SharePointSiteService(this.Organizacao, this.IsOffline).ListarPorIdRegistro(oportunidadeConsulta.ID.Value); foreach (DocumentoSharePoint anexo in lstAnexosOportunidade) { try { string urlSite = ConfigurationManager.GetSettingValue("UrlSiteSharePoint"); string urlFolderDetail = ""; if (!string.IsNullOrEmpty(anexo.UrlAbsoluta)) { urlFolderDetail = anexo.UrlAbsoluta; } else if (!string.IsNullOrEmpty(anexo.UrlRelativa)) { urlFolderDetail = urlSite + "/opportunity/" + anexo.UrlRelativa; } using (ClientContext spClientContext = new ClientContext(urlSite)) { spClientContext.Credentials = new NetworkCredential(usuarioSharePoint, senhaSharePoint, domain); var rootWeb = spClientContext.Web; Folder pastaPrincipal = rootWeb.GetFolderByServerRelativeUrl(urlFolderDetail); if (pastaPrincipal.Files.AreItemsAvailable) { spClientContext.Load(pastaPrincipal, fs => fs.Files, p => p.Folders); spClientContext.ExecuteQuery(); FolderCollection folderCollection = pastaPrincipal.Folders; FileCollection fileCollection = pastaPrincipal.Files; foreach (var arquivo in fileCollection) { Pollux.Entities.AnexoProjeto anexoProjeto = new Pollux.Entities.AnexoProjeto(); anexoProjeto.NomeArquivo = arquivo.Name; anexoProjeto.DataArquivo = arquivo.TimeCreated; anexoProjeto.UsuarioArquivo = anexo.ModificadoPor.Name; anexoProjeto.URL = ObterUrlArquivo(urlSite, arquivo.ServerRelativeUrl); projetoItem.ListaAnexosProjeto.Add(anexoProjeto); } } } } catch { continue; } } } List <DocumentoSharePoint> lstAnexosClientePotencial = new Servicos.SharePointSiteService(this.Organizacao, this.IsOffline).ListarPorIdRegistro(clientePotencialConsulta.ID.Value); foreach (DocumentoSharePoint anexo in lstAnexosClientePotencial) { try { string urlSite = ConfigurationManager.GetSettingValue("UrlSiteSharePoint"); string urlFolderDetail = ""; if (!string.IsNullOrEmpty(anexo.UrlAbsoluta)) { urlFolderDetail = anexo.UrlAbsoluta; } else if (!string.IsNullOrEmpty(anexo.UrlRelativa)) { urlFolderDetail = urlSite + "/lead/" + anexo.UrlRelativa; } using (ClientContext spClientContext = new ClientContext(urlSite)) { spClientContext.Credentials = new NetworkCredential(usuarioSharePoint, senhaSharePoint, domain); var rootWeb = spClientContext.Web; Folder pastaPrincipal = rootWeb.GetFolderByServerRelativeUrl(urlFolderDetail); spClientContext.Load(pastaPrincipal, fs => fs.Files, p => p.Folders); spClientContext.ExecuteQuery(); FolderCollection folderCollection = pastaPrincipal.Folders; FileCollection fileCollection = pastaPrincipal.Files; foreach (var arquivo in fileCollection) { Pollux.Entities.AnexoProjeto anexoProjeto = new Pollux.Entities.AnexoProjeto(); anexoProjeto.NomeArquivo = arquivo.Name; anexoProjeto.DataArquivo = arquivo.TimeLastModified; anexoProjeto.UsuarioArquivo = anexo.ModificadoPor.Name; anexoProjeto.URL = ObterUrlArquivo(urlSite, arquivo.ServerRelativeUrl); projetoItem.ListaAnexosProjeto.Add(anexoProjeto); } } } catch { continue; } } #endregion #region Produtos Projeto projetoItem.ListaProdutosProjeto = new List <Pollux.Entities.ProdutoProjeto>(); List <ProdutoProjeto> lstProdutosClientePotencial = new Servicos.ProdutoProjetoService(this.Organizacao, this.IsOffline).ListarPorClientePotencial(clientePotencialConsulta.Id); if (lstProdutosClientePotencial.Count > 0) { foreach (ProdutoProjeto produtoCliente in lstProdutosClientePotencial) { Pollux.Entities.ProdutoProjeto produtoProjeto = new Pollux.Entities.ProdutoProjeto(); var produto = new Servicos.ProdutoService(this.Organizacao, this.IsOffline).ObterPor(produtoCliente.Produto.Id); produtoProjeto.CodigoProdutoClientePotencial = produtoCliente.Id.ToString(); produtoProjeto.CodigoProduto = produto.Codigo; produtoProjeto.DescricaoProduto = produto.Nome; produtoProjeto.Quantidade = produtoCliente.Quantidade; produtoProjeto.PrecoUnitario = produtoCliente.ValorUnitario; produtoProjeto.ValorTotal = produtoCliente.ValorTotal; projetoItem.ListaProdutosProjeto.Add(produtoProjeto); } } #endregion if (!resultadoPersistencia.Sucesso) { retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0269R1>(numeroMensagem, retorno)); } resultadoPersistencia.Sucesso = true; resultadoPersistencia.Mensagem = "Integração ocorrida com sucesso!"; retorno.Add("ProjetoItem", projetoItem); retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0269R1>(numeroMensagem, retorno)); } catch (Exception e) { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = SDKore.Helper.Error.Handler(e); retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0269R1>(numeroMensagem, retorno)); } }
public string Executar(string mensagem, string numeroMensagem, Domain.Model.Usuario usuario) { var xml = this.CarregarMensagem <Pollux.MSG0127>(mensagem); List <Pollux.Entities.Usuario> lstUserPollux = new List <Pollux.Entities.Usuario>(); if (!String.IsNullOrEmpty(xml.CodigoUsuario) && xml.CodigoUsuario.Length == 36) { if (!String.IsNullOrEmpty(xml.TipoObjetoUsuario) && (xml.TipoObjetoUsuario.ToLower().Equals("systemuser") || xml.TipoObjetoUsuario.ToLower().Equals("team"))) { #region User if (xml.TipoObjetoUsuario.ToLower().Equals("systemuser")) { List <Usuario> lstUsuario = new Servicos.UsuarioService(this.Organizacao, this.IsOffline).ListarPor(new Guid(xml.CodigoUsuario)); if (lstUsuario != null && lstUsuario.Count > 0) { foreach (Usuario item in lstUsuario) { Pollux.Entities.Usuario user = new Pollux.Entities.Usuario(); user.CodigoUsuario = item.ID.Value.ToString(); if (!String.IsNullOrEmpty(item.NomeCompleto)) { user.Nome = item.NomeCompleto; } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "NomeUsuario não preenchido no CRM. User: "******"Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0127R1>(numeroMensagem, retorno)); } if (!String.IsNullOrEmpty(item.EmailPrimario)) { user.Email = item.EmailPrimario; } user.TipoObjetoUsuario = "systemuser"; user.Situacao = item.IsDisabled ? 0 : 1; lstUserPollux.Add(user); } } else { resultadoPersistencia.Sucesso = true; resultadoPersistencia.Mensagem = "LoginUsuario não encontrado no CRM."; retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0127R1>(numeroMensagem, retorno)); } } #endregion #region Equipe else if (xml.TipoObjetoUsuario.ToLower().Equals("team")) { List <Equipe> lstEquipe = new Servicos.EquipeService(this.Organizacao, this.IsOffline).ListarEquipe(new Guid(xml.CodigoUsuario)); if (lstEquipe != null && lstEquipe.Count > 0) { foreach (var item in lstEquipe) { Pollux.Entities.Usuario user = new Pollux.Entities.Usuario(); user.CodigoUsuario = item.ID.Value.ToString(); if (!String.IsNullOrEmpty(item.Nome)) { user.Nome = item.Nome; } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "NomeEquipe não preenchido no CRM. User: "******"Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0127R1>(numeroMensagem, retorno)); } user.TipoObjetoUsuario = "team"; user.Situacao = 1; lstUserPollux.Add(user); } } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Equipe não encontrado no CRM."; retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0127R1>(numeroMensagem, retorno)); } } #endregion } } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "CodigoUsuario/TipoObjetoUsuario não enviado ou fora do padrão."; retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0127R1>(numeroMensagem, retorno)); } retorno.Add("UsuariosItens", lstUserPollux); resultadoPersistencia.Sucesso = true; resultadoPersistencia.Mensagem = "Integração ocorrida com sucesso."; retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0127R1>(numeroMensagem, retorno)); }
public Pollux.MSG0143 DefinirPropriedades(PortfoliodoKeyAccountRepresentantes objModel) { #region Propriedades Crm->Xml Pollux.MSG0143 msg0143 = new Pollux.MSG0143(itb.RetornaSistema(itb.Sistema.CRM), Helper.Truncate(objModel.Nome, 40)); string nomeUnid = String.Empty; string nomeSegmento = String.Empty; msg0143.CodigoPortfolioRepresentante = objModel.ID.Value.ToString(); if (objModel.KeyAccountRepresentante != null) { Contato representante = new Servicos.ContatoService(this.Organizacao, this.IsOffline).BuscaContato(objModel.KeyAccountRepresentante.Id); if (representante != null && representante.CodigoRepresentante.Length > 0) { msg0143.CodigoRepresentante = Convert.ToInt32(representante.CodigoRepresentante); } else { throw new Exception("Representante não localizado/sem código representante."); } } if (objModel.UnidadedeNegocio != null) { UnidadeNegocio unidadeNegocio = new Servicos.UnidadeNegocioService(this.Organizacao, this.IsOffline).BuscaUnidadeNegocio(objModel.UnidadedeNegocio.Id); if (unidadeNegocio != null) { msg0143.CodigoUnidadeNegocio = unidadeNegocio.ChaveIntegracao; nomeUnid = unidadeNegocio.Nome; } else { throw new Exception("Unidade de negocio não localizada ou sem nome."); } } if (objModel.AssistentedeAdministracaodeVendas != null) { Usuario usuario = new Servicos.UsuarioService(this.Organizacao, this.IsOffline).ObterPor(objModel.AssistentedeAdministracaodeVendas.Id); if (usuario != null && usuario.CodigoAssistenteComercial != null) { msg0143.CodigoAssistente = usuario.CodigoAssistenteComercial.Value; msg0143.CodigoAssistenteCRM = usuario.ID.Value.ToString(); } else { throw new Exception("Usuario sem código de assistente comercial."); } } if (objModel.Segmento != null) { Segmento segmento = new Servicos.SegmentoService(this.Organizacao, this.IsOffline).ObterPor(objModel.Segmento.Id); if (segmento != null) { msg0143.CodigoSegmento = segmento.CodigoSegmento; nomeSegmento = segmento.Nome; } else { throw new Exception("Segmento não localizado."); } } else { msg0143.CodigoSegmento = "0000"; nomeSegmento = ""; } if (objModel.SupervisordeVendas != null) { Usuario supervisor = new Servicos.UsuarioService(this.Organizacao, this.IsOffline).ObterPor(objModel.SupervisordeVendas.Id); if (supervisor != null) { msg0143.CodigoSupervisor = supervisor.ID.Value.ToString(); if (!String.IsNullOrEmpty(supervisor.CodigoSupervisorEMS)) { msg0143.CodigoSupervisorEMS = supervisor.CodigoSupervisorEMS; } else { throw new Exception("Codigo Supervisor EMS não preenchido."); } } else { throw new Exception("Supervisor não localizado."); } } if (objModel.Status.HasValue) { if (objModel.Status.Value == 1) { msg0143.Situacao = 0; } else { msg0143.Situacao = 1; } } if (!String.IsNullOrEmpty(objModel.Nome)) { string nometmp = objModel.Nome + " - " + nomeUnid + " - " + nomeSegmento; if (nometmp.Length > 99) { msg0143.Nome = nometmp.Substring(0, 99); } else { msg0143.Nome = nometmp; } } else { throw new Exception("PortfolioRepresentante sem nome."); } #endregion return(msg0143); }
public Pollux.Entities.SolicitacaoBeneficioR1 DefinirRetorno(Model.SolicitacaoBeneficio itemCrm) { Pollux.Entities.SolicitacaoBeneficioR1 solBeneficioPollux = new Pollux.Entities.SolicitacaoBeneficioR1(); #region Propriedades Crm->Xml if (!string.IsNullOrEmpty(itemCrm.Nome)) { solBeneficioPollux.NomeSolicitacaoBeneficio = itemCrm.Nome; } else { solBeneficioPollux.NomeSolicitacaoBeneficio = "N/A"; } if (itemCrm.UnidadedeNegocio != null) { UnidadeNegocio unidadeNeg = new UnidadeNegocioService(Organizacao, IsOffline).BuscaUnidadeNegocio(itemCrm.UnidadedeNegocio.Id); if (unidadeNeg != null) { if (!String.IsNullOrEmpty(unidadeNeg.ChaveIntegracao)) { solBeneficioPollux.CodigoUnidadeNegocio = unidadeNeg.ChaveIntegracao; } else { solBeneficioPollux.CodigoUnidadeNegocio = "N/A"; } if (!String.IsNullOrEmpty(unidadeNeg.Nome)) { solBeneficioPollux.NomeUnidadeNegocio = unidadeNeg.Nome; } else { solBeneficioPollux.NomeUnidadeNegocio = "N/A"; } } else { solBeneficioPollux.CodigoUnidadeNegocio = "N/A"; solBeneficioPollux.NomeUnidadeNegocio = "N/A"; } } else { solBeneficioPollux.CodigoUnidadeNegocio = "N/A"; solBeneficioPollux.NomeUnidadeNegocio = "N/A"; } if (itemCrm.ValorAcao.HasValue) { solBeneficioPollux.ValorAcao = itemCrm.ValorAcao.Value; } else { solBeneficioPollux.ValorAcao = 0; } if (!string.IsNullOrEmpty(itemCrm.SituacaoIrregular)) { solBeneficioPollux.DescricaoSituacaoIrregular = itemCrm.SituacaoIrregular; } if (itemCrm.AcaoSubsidiadaVmc != null) { solBeneficioPollux.CodigoAcaoSubsidiadaVMC = itemCrm.AcaoSubsidiadaVmc.Id.ToString(); solBeneficioPollux.NomeAcaoSubsidiadaVMC = itemCrm.AcaoSubsidiadaVmc.Name; } if (itemCrm.ValorSolicitado.HasValue) { solBeneficioPollux.ValorSolicitado = itemCrm.ValorSolicitado.Value; } else { solBeneficioPollux.ValorSolicitado = 0; } if (itemCrm.StatusSolicitacao.HasValue) { solBeneficioPollux.SituacaoSolicitacaoBeneficio = itemCrm.StatusSolicitacao.Value; solBeneficioPollux.NomeSituacaoSolicitacao = Helper.GetDescription(((Domain.Enum.SolicitacaoBeneficio.StatusSolicitacaoBeneficio)itemCrm.StatusSolicitacao)); } else { solBeneficioPollux.SituacaoSolicitacaoBeneficio = 0; solBeneficioPollux.NomeSituacaoSolicitacao = "N/A"; } if (itemCrm.FormaPagamento != null) { solBeneficioPollux.CodigoFormaPagamento = itemCrm.FormaPagamento.Id.ToString(); solBeneficioPollux.NomeFormaPagamento = itemCrm.FormaPagamento.Name; } else { solBeneficioPollux.CodigoFormaPagamento = Guid.Empty.ToString(); solBeneficioPollux.NomeFormaPagamento = "N/A"; } if (itemCrm.ValorAprovado.HasValue) { solBeneficioPollux.ValorAprovado = itemCrm.ValorAprovado.Value; } if (itemCrm.DataIniAcao.HasValue) { solBeneficioPollux.DataInicioAcao = itemCrm.DataIniAcao.Value; } if (itemCrm.DataFimAcao.HasValue) { solBeneficioPollux.DataPrevistaRetornoAcao = itemCrm.DataFimAcao.Value; } if (itemCrm.ValorPago.HasValue) { solBeneficioPollux.ValorPago = itemCrm.ValorPago.Value; } if (itemCrm.BeneficioCanal != null) { BeneficioDoCanal benefCanal = new Servicos.BeneficioDoCanalService(this.Organizacao, this.IsOffline).ObterPor(itemCrm.BeneficioCanal.Id); if (benefCanal != null) { solBeneficioPollux.CodigoBeneficioCanal = benefCanal.ID.Value.ToString(); solBeneficioPollux.NomeBeneficioCanal = benefCanal.Nome; if (benefCanal.StatusBeneficio != null) { solBeneficioPollux.CodigoStatusBeneficio = benefCanal.StatusBeneficio.Id.ToString(); solBeneficioPollux.NomeStatusBeneficio = benefCanal.StatusBeneficio.Name; } else { solBeneficioPollux.CodigoStatusBeneficio = Guid.Empty.ToString(); solBeneficioPollux.NomeStatusBeneficio = "N/A"; } } else { solBeneficioPollux.CodigoBeneficioCanal = Guid.Empty.ToString(); solBeneficioPollux.NomeBeneficioCanal = "N/A"; solBeneficioPollux.CodigoStatusBeneficio = Guid.Empty.ToString(); solBeneficioPollux.NomeStatusBeneficio = "N/A"; } } else { solBeneficioPollux.CodigoBeneficioCanal = Guid.Empty.ToString(); solBeneficioPollux.NomeBeneficioCanal = "N/A"; solBeneficioPollux.CodigoStatusBeneficio = Guid.Empty.ToString(); solBeneficioPollux.NomeStatusBeneficio = "N/A"; } if (itemCrm.BeneficioPrograma != null) { Beneficio beneficio = new Servicos.BeneficioService(this.Organizacao, this.IsOffline).ObterPor(itemCrm.BeneficioPrograma.Id); if (beneficio != null) { solBeneficioPollux.CodigoBeneficio = beneficio.ID.Value.ToString(); solBeneficioPollux.NomeBeneficio = beneficio.Nome; if (beneficio.Codigo.HasValue) { solBeneficioPollux.BeneficioCodigo = beneficio.Codigo.Value; } else { solBeneficioPollux.BeneficioCodigo = (int)this.PreencherAtributoVazio("int"); } } else { solBeneficioPollux.CodigoBeneficio = Guid.Empty.ToString(); solBeneficioPollux.NomeBeneficio = "N/A"; solBeneficioPollux.BeneficioCodigo = (int)this.PreencherAtributoVazio("int"); } } else { solBeneficioPollux.CodigoBeneficioCanal = Guid.Empty.ToString(); solBeneficioPollux.NomeBeneficioCanal = "N/A"; } if (itemCrm.AlteradaParaStockRotation.HasValue) { solBeneficioPollux.AlteradaStockRotation = itemCrm.AlteradaParaStockRotation.Value; } else { solBeneficioPollux.AlteradaStockRotation = false; } if (itemCrm.SituacaoIrregularidades.HasValue) { solBeneficioPollux.SolicitacaoIrregular = itemCrm.SituacaoIrregularidades.Value; } else { solBeneficioPollux.SolicitacaoIrregular = false; } if (itemCrm.Canal != null) { solBeneficioPollux.CodigoConta = itemCrm.Canal.Id.ToString(); solBeneficioPollux.NomeConta = itemCrm.Canal.Name; } else { solBeneficioPollux.CodigoConta = Guid.Empty.ToString(); solBeneficioPollux.NomeConta = "N/A"; } if (itemCrm.AjusteSaldo.HasValue) { solBeneficioPollux.SolicitacaoAjuste = itemCrm.AjusteSaldo.Value; } if (itemCrm.StatusCalculoPriceProtection.HasValue) { solBeneficioPollux.StatusCalculoPriceProtection = itemCrm.StatusCalculoPriceProtection.Value; } if (itemCrm.ResultadoPrevisto.HasValue) { solBeneficioPollux.ResultadoPrevisto = itemCrm.ResultadoPrevisto.Value; } if (itemCrm.ResultadoAlcancado.HasValue) { solBeneficioPollux.ResultadoAlcancado = itemCrm.ResultadoAlcancado.Value; } if (itemCrm.ValorAbater.HasValue) { solBeneficioPollux.ValorAbater = itemCrm.ValorAbater.Value; } else { solBeneficioPollux.ValorAbater = 0; } solBeneficioPollux.CodigoSolicitacaoBeneficio = itemCrm.ID.ToString(); if (itemCrm.TipoSolicitacao != null) { solBeneficioPollux.CodigoTipoSolicitacao = itemCrm.TipoSolicitacao.Id.ToString(); solBeneficioPollux.NomeTipoSolicitacao = itemCrm.TipoSolicitacao.Name; } else { solBeneficioPollux.CodigoTipoSolicitacao = Guid.Empty.ToString(); solBeneficioPollux.NomeTipoSolicitacao = "N/A"; } if (itemCrm.TipoPriceProtection.HasValue) { solBeneficioPollux.TipoPriceProtection = itemCrm.TipoPriceProtection; if (itemCrm.TipoSolicitacao != null) { solBeneficioPollux.NomeTipoPriceProtection = itemCrm.TipoSolicitacao.Name; } } if (!String.IsNullOrEmpty(itemCrm.Descricao)) { solBeneficioPollux.DescricaoSolicitacao = itemCrm.Descricao; } solBeneficioPollux.Situacao = itemCrm.State.Value; solBeneficioPollux.NomeSituacao = Helper.GetDescription((Domain.Enum.SolicitacaoBeneficio.State)(itemCrm.State.Value)); solBeneficioPollux.RazaoStatusSolicitacaoBeneficio = itemCrm.Status.Value; if (itemCrm.State.Value == (int)(Domain.Enum.SolicitacaoBeneficio.State.Ativo)) { solBeneficioPollux.NomeRazaoStatusSolicitacao = Helper.GetDescription((Domain.Enum.SolicitacaoBeneficio.RazaoStatusAtivo)(itemCrm.Status.Value)); } else { solBeneficioPollux.NomeRazaoStatusSolicitacao = Helper.GetDescription((Domain.Enum.SolicitacaoBeneficio.RazaoStatusInativo)(itemCrm.Status.Value)); } solBeneficioPollux.DataCriacaoSolicitacao = itemCrm.DataCriacao.Value; solBeneficioPollux.Proprietario = usuarioIntegracao.ID.Value.ToString(); solBeneficioPollux.NomeProprietario = usuarioIntegracao.Nome; solBeneficioPollux.TipoProprietario = "systemuser"; if (itemCrm.Assistente != null) { Usuario assistente = new Servicos.UsuarioService(this.Organizacao, this.IsOffline).ObterPor(itemCrm.Assistente.Id); if (assistente != null && assistente.CodigoAssistenteComercial.HasValue) { solBeneficioPollux.CodigoAssistente = assistente.CodigoAssistenteComercial.Value; solBeneficioPollux.NomeAssistente = assistente.Nome; } else { solBeneficioPollux.CodigoAssistente = 0; solBeneficioPollux.NomeAssistente = "N/A"; } } else { solBeneficioPollux.CodigoAssistente = 0; solBeneficioPollux.NomeAssistente = "N/A"; } if (itemCrm.Supervisor != null) { Usuario supervisor = new Servicos.UsuarioService(this.Organizacao, this.IsOffline).ObterPor(itemCrm.Supervisor.Id); if (supervisor != null && !String.IsNullOrEmpty(supervisor.CodigoSupervisorEMS)) { solBeneficioPollux.CodigoSupervisorEMS = supervisor.CodigoSupervisorEMS; solBeneficioPollux.NomeSupervisor = supervisor.Nome; } else { solBeneficioPollux.CodigoSupervisorEMS = "N/A"; solBeneficioPollux.NomeSupervisor = "N/A"; } } else { solBeneficioPollux.CodigoSupervisorEMS = "N/A";; solBeneficioPollux.NomeSupervisor = "N/A"; } if (itemCrm.Filial != null) { solBeneficioPollux.CodigoFilial = itemCrm.Filial.Id.ToString(); solBeneficioPollux.NomeFilial = itemCrm.Filial.Name; } if (itemCrm.StatusPagamento.HasValue) { solBeneficioPollux.StatusPagamento = itemCrm.StatusPagamento; solBeneficioPollux.NomeStatusPagamento = Helper.GetDescription((Domain.Enum.SolicitacaoBeneficio.StatusPagamento)(itemCrm.StatusPagamento.Value)); } if (itemCrm.SolicitacaoBeneficioPrincipal != null) { solBeneficioPollux.CodigoSolicitacaoPrincipal = itemCrm.SolicitacaoBeneficioPrincipal.Id.ToString(); solBeneficioPollux.NomeSolicitacaoPrincipal = itemCrm.SolicitacaoBeneficioPrincipal.Name; } if (itemCrm.ValorCancelado.HasValue) { solBeneficioPollux.ValorCancelado = itemCrm.ValorCancelado.Value; } if (itemCrm.DataValidade.HasValue) { solBeneficioPollux.DataValidade = itemCrm.DataValidade.Value; } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "DataValidade obrigatória, favor verificar registro no CRM."; return(solBeneficioPollux); } if (itemCrm.CondicaoPagamento != null) { CondicaoPagamento condicaoPagamento = new Servicos.CondicaoPagamentoService(this.Organizacao, this.IsOffline).BuscaCondicaoPagamento(itemCrm.CondicaoPagamento.Id); if (condicaoPagamento.Codigo.HasValue) { solBeneficioPollux.CodigoCondicaoPagamento = condicaoPagamento.Codigo.Value; } if (!string.IsNullOrEmpty(condicaoPagamento.Nome)) { solBeneficioPollux.NomeCondicaoPagamento = condicaoPagamento.Nome; } } if (itemCrm.DescartarVerba.HasValue) { solBeneficioPollux.DescartarVerba = itemCrm.DescartarVerba.Value; } if (!string.IsNullOrEmpty(itemCrm.TrimestreCompetencia)) { solBeneficioPollux.TrimestreCompetencia = itemCrm.TrimestreCompetencia; } else { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "TrimestreCompetencia obrigatório, favor verificar registro no CRM."; return(solBeneficioPollux); } if (itemCrm.FormaCancelamento.HasValue) { solBeneficioPollux.FormaCancelamento = itemCrm.FormaCancelamento.Value; } solBeneficioPollux.ObterSolicitacaoItens = this.RetornaSolicitacaoItens(itemCrm); //Busca as unidades de negócio relacionadas ao Benefício do canal List <SolicitacaoXUnidades> lstUnidadesBenef = new Servicos.SolicitacaoXUnidadesService(this.Organizacao, this.IsOffline).ListarPor(itemCrm.ID.Value); solBeneficioPollux.UnidadesRelacionadas = this.ConverteLista(lstUnidadesBenef); #endregion return(solBeneficioPollux); }