public string ObterUrlCrm2013(string guidCrm40, bool tipoConta) { if (tipoConta) { Domain.Model.Conta conta = new Domain.Servicos.ContaService(ConfigurationManager.GetSettingValue("OrganizacaoIntelbras"), false).BuscarContaIntegracaoCrm4(guidCrm40); if (conta != null) { string url = "https://crm2013.intelbras.com.br/main.aspx?etn=account&pagetype=entityrecord&id=%" + conta.ID.Value.ToString() + "%7D"; return(url); } return(String.Empty); } else { Domain.Model.Contato contato = new Domain.Servicos.ContatoService(ConfigurationManager.GetSettingValue("OrganizacaoIntelbras"), false).BuscarPorIntegracaoCrm4(guidCrm40); if (contato != null) { string url = "https://crm2013.intelbras.com.br/main.aspx?etn=contact&pagetype=entityrecord&id=%" + contato.ID.Value.ToString() + "%7D"; return(url); } return(String.Empty); } }
public void VisitaComercial() { string organizationName = ConfigurationManager.GetSettingValue("OrganizacaoIntelbras"); Intelbras.CRM2013.Domain.Model.Conta imagemConta = new Domain.Servicos.ContaService(organizationName, false).BuscaConta(new Guid("D66A88B1-BC0D-E411-9420-00155D013D39")); new Intelbras.CRM2013.Domain.Servicos.TarefaService(organizationName, false).GerarAtividadesVisitaComercial(imagemConta); }
public void IntegrarConta() { Domain.Servicos.Integracao integ = new Domain.Servicos.Integracao(OrganizationName, IsOffline); String teste = String.Empty; Domain.Model.Conta contaTeste = new Domain.Servicos.ContaService(this.OrganizationName, this.IsOffline).BuscaConta(new Guid("14C0A4F9-4A4E-E411-9424-00155D013D3A")); //var retorno = new Domain.Servicos.ContaService(this.OrganizationName, this.IsOffline).IntegracaoCrm4(contaTeste.CpfCnpj, contaTeste.CodigoMatriz, contaTeste.ID.Value.ToString()); }
public void TestesProdutosPortfolio() { JavaScriptSerializer jsonConverter = new JavaScriptSerializer(); Dictionary <string, object> dictResposta = new Dictionary <string, object>(); Dictionary <string, object> listResposta = new Dictionary <string, object>(); string organizationName = ConfigurationManager.GetSettingValue("OrganizacaoIntelbras"); Domain.Servicos.ProdutoService prodServ = new Domain.Servicos.ProdutoService(organizationName, false); string canalGuid = "9484CD60-D400-E411-9420-00155D013D39"; try { Guid canal = Guid.Parse(canalGuid); Domain.Model.Conta contaCliente = new Domain.Servicos.ContaService(organizationName, false).BuscaConta(canal); if (contaCliente == null) { throw new ArgumentException("Canal não encontrado"); } List <Domain.Model.ProdutoPortfolio> prodPortfolio = prodServ.ProdutosPortfolio(contaCliente, null, null); if (prodPortfolio.Count <= 0) { throw new ArgumentException("Canal não possui produtos cadastrados no portfólio"); } foreach (var item in prodPortfolio) { counter++; if (item.Product != null && item.Product.Showroom != null && item.Product.Showroom == true) { if (!string.IsNullOrEmpty(item.Product.Nome) && item.Product.ID != null) { if (!listResposta.ContainsKey(item.Product.ID.ToString())) { listResposta.Add(item.Product.ID.ToString(), item.Product.Nome.ToString()); } } } } dictResposta.Add("Produtos", listResposta); dictResposta.Add("Sucesso", true); } catch (FormatException) { dictResposta.Add("Sucesso", false); dictResposta.Add("Mensagem", "Guid em formato incorreto!Esperado : (xxxxxxxx-xxxx-xxxxx-xxxx-xxxxxxxxxxxx)"); } catch (Exception e) { dictResposta.Add("Sucesso", false); dictResposta.Add("Mensagem", e.Message); } string retorno = jsonConverter.Serialize(dictResposta); }
public void TestePluginCompromissoCanal() { //Variaveis para criacao da tarefa string assunto = string.Empty; string tipoTarefa = "Pendência do Canal"; DateTime dtConclusao = DateTime.Now; int tipoParametro = (int)Domain.Enum.TipoParametroGlobal.NumeroDiasParaCumprimento; Domain.Model.CompromissosDoCanal compromissoCanalPost = new Intelbras.CRM2013.Domain.Servicos.CompromissosDoCanalService(this.OrganizationName, this.IsOffline) .BuscarPorGuid(new Guid("EA8DD4C0-1432-E411-940F-00155D013D31")); if (compromissoCanalPost.StatusCompromisso != null && compromissoCanalPost.StatusCompromisso.Name == Domain.Enum.CompromissoCanal.StatusCompromisso.Cumprido) { //Verifica o tipo de compromisso e muda as variaveis necessarias para criar a tarefa com base no compromisso switch (compromissoCanalPost.Compromisso.Name) { case Domain.Enum.CompromissoCanal.Compromisso.Showroom: assunto = "Envio de evidências de Showroom"; dtConclusao = DateTime.Now.AddMonths(6); break; case Domain.Enum.CompromissoCanal.Compromisso.RenovacaoContatos: case Domain.Enum.CompromissoCanal.Compromisso.Sellout: case Domain.Enum.CompromissoCanal.Compromisso.Documentacao: assunto = compromissoCanalPost.Nome; //Pega a data de conclusao da tarefa nos parametros global com base no nome do tipoParametro + Guid compromisso dtConclusao = DateTime.Now.AddMonths(Convert.ToInt32(new Domain.Servicos.ParametroGlobalService(this.OrganizationName, this.IsOffline) .ObterPor(tipoParametro, null, null, null, null, compromissoCanalPost.Compromisso.Id, null, null).Valor)); break; } Domain.Model.Tarefa tarefa = new Domain.Model.Tarefa(this.OrganizationName, this.IsOffline); //Pegamos o canal para verificar o proprietario Domain.Model.Conta canal = new Domain.Servicos.ContaService(this.OrganizationName, this.IsOffline) .BuscaConta(compromissoCanalPost.Canal.Id); tarefa.Assunto = assunto; Domain.Model.TipoDeAtividade tipoAtividade = new Domain.Servicos.TarefaService(this.OrganizationName, this.IsOffline).BuscarTipoTarefa(tipoTarefa); if (tipoAtividade != null) { tarefa.TipoDeAtividade = new SDKore.DomainModel.Lookup(tipoAtividade.ID.Value, tipoAtividade.Nome, ""); } tarefa.Conclusao = dtConclusao; tarefa.ReferenteA = new SDKore.DomainModel.Lookup(compromissoCanalPost.ID.Value, "itbc_compdocanal"); tarefa.ID = new Domain.Servicos.TarefaService(this.OrganizationName, this.IsOffline).Persistir(tarefa); } }
public void TestePluginSolicitacaoBeneficio() { Domain.Model.SolicitacaoBeneficio SolicitBeneficioPost = new Intelbras.CRM2013.Domain.Servicos.SolicitacaoBeneficioService(this.OrganizationName, this.IsOffline) .ObterPor(new Guid("116274FE-DBEF-E311-91F5-00155D013E44")); Domain.Model.SolicitacaoBeneficio SolBeneficioTarget = SolicitBeneficioPost; if (SolBeneficioTarget.BeneficioPrograma != null && SolBeneficioTarget.BeneficioPrograma.Name == "Showroom") { Domain.Model.CompromissosDoCanal compromissoCanal = new Domain.Model.CompromissosDoCanal(this.OrganizationName, this.IsOffline); #region Criacao Compromisso do Canal //Pegamos o canal para verificar o proprietario Domain.Model.Conta canal = new Domain.Servicos.ContaService(this.OrganizationName, this.IsOffline) .BuscaConta(SolicitBeneficioPost.Canal.Id); compromissoCanal.Canal = new SDKore.DomainModel.Lookup(canal.ID.Value, ""); Domain.Model.CompromissosDoPrograma compromissoPrograma = new Domain.Servicos.CompromissosDoCanalService(this.OrganizationName, this.IsOffline) .BuscarCompromissoDoPrograma("Showroom"); compromissoCanal.Compromisso = new SDKore.DomainModel.Lookup(compromissoPrograma.ID.Value, ""); compromissoCanal.Nome = "Ter aderência às regras de utilização de identidade visual/showroom"; compromissoCanal.ID = new Domain.Servicos.CompromissosDoCanalService(this.OrganizationName, this.IsOffline).Persistir(compromissoCanal); if (compromissoCanal.ID.HasValue) { Domain.Model.Usuario proprietario = new Domain.Servicos.UsuarioService(this.OrganizationName, this.IsOffline).BuscarProprietario("account", "accountid", canal.Id); if (proprietario != null) { new Domain.Servicos.UtilService(this.OrganizationName, this.IsOffline).MudarProprietarioRegistro("systemuser", proprietario.ID.Value, "itbc_compdocanal", compromissoCanal.ID.Value); } } #endregion Domain.Model.Tarefa tarefa = new Domain.Model.Tarefa(this.OrganizationName, this.IsOffline); tarefa.Assunto = "Envio de evidências de Showroom"; Domain.Model.TipoDeAtividade tipoAtividade = new Domain.Servicos.TarefaService(this.OrganizationName, this.IsOffline).BuscarTipoTarefa("Pendência do Canal"); if (tipoAtividade != null) { tarefa.TipoDeAtividade = new SDKore.DomainModel.Lookup(tipoAtividade.ID.Value, tipoAtividade.Nome, ""); } tarefa.Conclusao = DateTime.Now.AddMonths(6); tarefa.ReferenteA = new SDKore.DomainModel.Lookup(compromissoCanal.ID.Value, "itbc_compdocanal"); tarefa.ID = new Domain.Servicos.TarefaService(this.OrganizationName, this.IsOffline).Persistir(tarefa); } }
public void Sellout() { string resposta; try { var classificacao = new Domain.Servicos.RepositoryService(this.OrganizationName, this.IsOffline).Classificacao.ObterPor(Intelbras.CRM2013.Domain.Enum.Conta.Classificacao.Atac_Dist); var xml = new Domain.Servicos.ContaService(this.OrganizationName, this.IsOffline).MontaXmlRevendasFielo(); resposta = xml.Declaration.ToString() + Environment.NewLine + xml.ToString(); } catch (Exception ex) { resposta = ex.Message; } }
public void SolicitacaoShowroom() { string organizationName = ConfigurationManager.GetSettingValue("OrganizacaoIntelbras"); Intelbras.CRM2013.Domain.Model.SolicitacaoBeneficio SolicitBeneficioPost = new Domain.Servicos.SolicitacaoBeneficioService(organizationName, false).ObterPor(new Guid("501E2383-194E-E411-93F5-00155D013E70")); Domain.Model.CompromissosDoCanal compromissoCanal = new Domain.Model.CompromissosDoCanal(organizationName, false); Domain.Model.Conta canal = new Domain.Servicos.ContaService(organizationName, false) .BuscaConta(SolicitBeneficioPost.Canal.Id); Domain.Model.CompromissosDoPrograma compromissoPrograma = new Domain.Servicos.CompromissosDoCanalService(organizationName, false) .BuscarCompromissoDoPrograma((int)Domain.Enum.CompromissoPrograma.Codigo.Showroom); if (canal == null) { throw new ArgumentException("Canal não encontrado.Operação cancelada."); } if (compromissoPrograma == null) { throw new ArgumentException("Compromisso do Programa não encontrado.Operação cancelada."); } Domain.Model.CompromissosDoCanal compCanal = new Intelbras.CRM2013.Domain.Servicos.CompromissosDoCanalService(organizationName, false).BuscarCompromissoCanal(compromissoPrograma.ID.Value, SolicitBeneficioPost.UnidadedeNegocio.Id, canal.ID.Value); if (compCanal == null) { throw new ArgumentException("Compromisso do Canal para o compromisso : " + compromissoPrograma.Nome + " não encontrado.Operação cancelada."); } List <string> lstAtividades = new TarefaService(organizationName, false).ListarAtividadesCheckup(compCanal.Compromisso.Id); if (lstAtividades == null || lstAtividades.Count <= 0) { throw new ArgumentException("Lista de atividades não encontrada para o Compromisso : " + compromissoPrograma.Nome + " .Operação cancelada."); } string atividade = new TarefaService(organizationName, false).ObterProximaAtividadeCheckup(lstAtividades, null); if (!string.IsNullOrEmpty(atividade)) { Domain.Model.Usuario proprietario = new Domain.Servicos.UsuarioService(organizationName, false).BuscarProprietario("itbc_compdocanal", "itbc_compdocanalid", compCanal.Id); if (proprietario != null) { new Intelbras.CRM2013.Domain.Servicos.CompromissosDoCanalService(organizationName, false).GerarAtividadeChecklist(atividade, compCanal, proprietario); } } }
protected override void Execute(IPluginExecutionContext context, IOrganizationServiceFactory serviceFactory, IOrganizationService adminService, IOrganizationService userService) { var historicoDistribuidorService = new Domain.Servicos.HistoricoDistribuidorService(context.OrganizationName, context.IsExecutingOffline, adminService); switch (Util.Utilitario.ConverterEnum <Domain.Enum.Plugin.MessageName>(context.MessageName)) { case Domain.Enum.Plugin.MessageName.Create: var entityTargetCreate = context.GetContextEntity(); var targetCreate = entityTargetCreate.Parse <Domain.Model.HistoricoDistribuidor>(context.OrganizationName, context.IsExecutingOffline, adminService); targetCreate.Status = (int)Domain.Enum.HistoricoDistribuidor.Statecode.Ativo; historicoDistribuidorService.ValidaCamposObrigatorios(targetCreate); historicoDistribuidorService.ValidaDuplicidade(targetCreate, true); var revenda = new Domain.Servicos.ContaService(context.OrganizationName, context.IsExecutingOffline, userService).BuscaConta(targetCreate.Revenda.Id); var distribuidor = new Domain.Servicos.ContaService(context.OrganizationName, context.IsExecutingOffline, userService).BuscaConta(targetCreate.Distribuidor.Id); PreencheNome(ref entityTargetCreate, ref revenda, ref distribuidor); break; case Domain.Enum.Plugin.MessageName.Update: var entityTargetMerge = context.GetContextEntityMerge("imagem"); var entityTargetUpdate = context.GetContextEntity(); var targetUpdate = entityTargetMerge.Parse <Domain.Model.HistoricoDistribuidor>(context.OrganizationName, context.IsExecutingOffline, adminService); var entityTarget = (Entity)context.InputParameters["Target"]; var contaUp = entityTarget.Parse <Domain.Model.HistoricoDistribuidor>(context.OrganizationName, context.IsExecutingOffline, adminService); entityTargetUpdate.Attributes["itbc_datafim"] = contaUp.DataFim; if (targetUpdate.Status.Value == (int)Domain.Enum.HistoricoDistribuidor.Statecode.Ativo) { historicoDistribuidorService.ValidaCamposObrigatorios(targetUpdate); historicoDistribuidorService.ValidaDuplicidade(targetUpdate, false); } var revendaUpdate = new Domain.Servicos.ContaService(context.OrganizationName, context.IsExecutingOffline, userService).BuscaConta(targetUpdate.Revenda.Id); var distribuidorUpdate = new Domain.Servicos.ContaService(context.OrganizationName, context.IsExecutingOffline, userService).BuscaConta(targetUpdate.Distribuidor.Id); PreencheNome(ref entityTargetUpdate, ref revendaUpdate, ref distribuidorUpdate); break; } }
private void ValidaIntegraPontua(Entity entityTargetUpdate, ContatoService ContatoService, Contato contatoUpdate, ref IPluginExecutionContext Context, IOrganizationService service) { ContatoService.ValidarDadosContato(contatoUpdate); var contato = ContatoService.BuscaContato(contatoUpdate.Id); if (contato != null) { if (contato.AssociadoA != null) { //Pode estar vinculado à contatos var contaAssociada = new Domain.Servicos.ContaService(Context.OrganizationName, Context.IsExecutingOffline, service).BuscaConta(contato.AssociadoA.Id); if (contaAssociada != null) { var IntegraPontua = (new Domain.Servicos.BeneficioDoCanalService(Context.OrganizationName, Context.IsExecutingOffline, service).validaIntegraPontuaFielo(contaAssociada, null)); entityTargetUpdate.Attributes["itbc_integraintelbraspontua"] = IntegraPontua; } } else if (entityTargetUpdate.Attributes.Contains("parentcustomerid")) { if (entityTargetUpdate.Attributes["parentcustomerid"] != null) { var contaAssociada = new Domain.Servicos.ContaService(Context.OrganizationName, Context.IsExecutingOffline, service).BuscaConta(((EntityReference)entityTargetUpdate.Attributes["parentcustomerid"]).Id); if (contaAssociada != null) { var IntegraPontua = (new Domain.Servicos.BeneficioDoCanalService(Context.OrganizationName, Context.IsExecutingOffline, service).validaIntegraPontuaFielo(contaAssociada, null)); entityTargetUpdate.Attributes["itbc_integraintelbraspontua"] = IntegraPontua; } } else { entityTargetUpdate.Attributes["itbc_integraintelbraspontua"] = false; } } else { entityTargetUpdate.Attributes["itbc_integraintelbraspontua"] = false; } } }
public void RelavidarUsuariosEquipe() { List <Domain.Model.Conta> listContas = new Domain.Servicos.ContaService("INTELBRASQA", false).ListarTodasContas(); foreach (Domain.Model.Conta registroConta in listContas) { //if (registroConta.Proprietario.Type == "team") //{ // //verifica todos os usuários que estão na equipes. // List<Intelbras.CRM2013.Domain.Model.Equipe> membrosEquipe = new Intelbras.CRM2013.Domain.Servicos.EquipeService("INTELBRASQA", false).listarMembrosEquipe(registroConta.Proprietario.Id); // foreach (Intelbras.CRM2013.Domain.Model.Equipe membroEquipe in membrosEquipe) // { // //verifica se existe algum usuario na Equipe que não existe no registro // Intelbras.CRM2013.Domain.Model.RelacionamentoCanal keyAccounts = new Intelbras.CRM2013.Domain.Servicos.RelacionamentoDoCanal("INTELBRASQA", false).ListarPorSupervisorOuAssistente((Guid)registroConta.ID, membroEquipe.ID.Value); // //if (keyAccounts == null) // // new Domain.Servicos.RelacionamentoDoCanal("INTELBRASQA", false).RemoverUserEquipe(registroConta.ID.Value, membroEquipe.ID.Value); // } //} } }
public void AtualizarBeneficiosECompromissosCascata(CompromissosDoCanal CompromissoTarget) { Guid? UnidadeNeg = null; Guid? Classificacao = null; Guid? Categoria = null; Boolean?Exclusividade = null; if (CompromissoTarget.Canal == null) { throw new ArgumentException("Campo canal não preenchido"); } Domain.Model.Conta canal = new Domain.Servicos.ContaService(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline, RepositoryService.Provider) .BuscaConta(CompromissoTarget.Canal.Id); if (canal != null) { if (CompromissoTarget.UnidadeDeNegocio != null) { UnidadeNeg = CompromissoTarget.UnidadeDeNegocio.Id; } if (canal.Classificacao != null) { Classificacao = canal.Classificacao.Id; } Domain.Model.CategoriasCanal categoriaCanal = new Domain.Servicos.CategoriaCanalService(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline, RepositoryService.Provider) .ListarPor(canal.ID.Value, UnidadeNeg).FirstOrDefault(); if (categoriaCanal != null && categoriaCanal.Categoria != null) { Categoria = categoriaCanal.Categoria.Id; } if (canal.Exclusividade != null) { Exclusividade = canal.Exclusividade.Value; } Domain.Model.Perfil perfil = new Intelbras.CRM2013.Domain.Servicos.PerfilServices(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline, RepositoryService.Provider).BuscarPerfil(Classificacao, UnidadeNeg, Categoria, Exclusividade); if (perfil != null) { List <Domain.Model.BeneficiosCompromissos> benefCompr = new Intelbras.CRM2013.Domain.Servicos.BeneficiosCompromissosService(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline, RepositoryService.Provider).BuscaBeneficiosCompromissos(perfil.ID.Value, CompromissoTarget.Compromisso.Id, null); if (benefCompr != null && benefCompr.Count > 0) { foreach (Domain.Model.BeneficiosCompromissos item in benefCompr) { bool flagAtualizarBeneficio = true; Lookup statusBenef = (Lookup) new Intelbras.CRM2013.Domain.Servicos.BeneficiosCompromissosService(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline, RepositoryService.Provider) .BuscarBeneficioCorrespondentePorCodigoStatus(item, CompromissoTarget.StatusCompromisso.Id); if (statusBenef != null) { if (statusBenef.Name != Domain.Enum.CompromissoCanal.StatusCompromisso.Nao_Cumprido) { //fluxo alternativo 1 List <Domain.Model.BeneficiosCompromissos> benefComprAlternativo = new Intelbras.CRM2013.Domain.Servicos.BeneficiosCompromissosService(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline, RepositoryService.Provider).BuscaBeneficiosCompromissos(perfil.ID.Value, null, item.Beneficio.Id); if (benefComprAlternativo.Count > 0) { List <BeneficiosCompromissos> lstDoBeneficio = new List <BeneficiosCompromissos>();// benefComprAlternativo.Where(x => x.Compromisso != CompromissoTarget.Compromisso).ToList<BeneficiosCompromissos>(); foreach (var _benefCompro in benefComprAlternativo) { if (_benefCompro.Compromisso != null && _benefCompro.Compromisso.Id != CompromissoTarget.Compromisso.Id) { lstDoBeneficio.Add(_benefCompro); } } foreach (Domain.Model.BeneficiosCompromissos registro in lstDoBeneficio) { if (registro.Compromisso == null) { throw new ArgumentException("Beneficio x Compromisso do Perfil : " + perfil.Nome + " configurado incorretamente , campo compromisso vazio.Operação cancelada."); } Domain.Model.CompromissosDoCanal comproCanal = new Intelbras.CRM2013.Domain.Servicos.CompromissosDoCanalService(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline, RepositoryService.Provider) .BuscarCompromissoCanal(registro.Compromisso.Id, UnidadeNeg.Value, canal.ID.Value); if (comproCanal != null) { if (comproCanal.StatusCompromisso != null && comproCanal.StatusCompromisso.Name == Domain.Enum.CompromissoCanal.StatusCompromisso.Nao_Cumprido) { flagAtualizarBeneficio = false; break; } } else { throw new ArgumentException("O compromisso " + registro.Compromisso.Name + " não existe para este Canal"); } } } } if (flagAtualizarBeneficio) { Domain.Model.BeneficioDoCanal benefCanal = new Intelbras.CRM2013.Domain.Servicos.BeneficioDoCanalService(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline, RepositoryService.Provider) .BuscarBeneficioCanal(item.Beneficio.Id, UnidadeNeg.Value, canal.ID.Value); benefCanal.StatusBeneficio = statusBenef; new Intelbras.CRM2013.Domain.Servicos.BeneficioDoCanalService(RepositoryService.NomeDaOrganizacao, RepositoryService.IsOffline, RepositoryService.Provider).AlterarBeneficioCanal(benefCanal); } } } } } } }
private Intelbras.Message.Helper.MSG0300 DefinirPropriedades(Ocorrencia crm) { string strNomeProdutos = string.Empty; Intelbras.Message.Helper.MSG0300 xml = new Pollux.MSG0300(Domain.Enum.Sistemas.RetornaSistema(Domain.Enum.Sistemas.Sistema.CRM), Helper.Truncate(crm.Numero, 40)); if (crm.TipoDeOcorrencia == (int)TipoDeOcorrencia.Atendimento_Avulso) { xml.TipoAtendimento = "FA"; } else if (crm.TipoDeOcorrencia == (int)TipoDeOcorrencia.Reclamação_Mau_Atendimento || crm.TipoDeOcorrencia == (int)TipoDeOcorrencia.Reclamação_Procon || crm.TipoDeOcorrencia == (int)TipoDeOcorrencia.Reclamação_Atraso_no_Conserto || crm.TipoDeOcorrencia == (int)TipoDeOcorrencia.ReclamacaoImprocedente || crm.TipoDeOcorrencia == (int)TipoDeOcorrencia.Reclamacao_Falha_No_Processo || crm.TipoDeOcorrencia == (int)TipoDeOcorrencia.Reclamacao_Mau_Funcionamento || crm.TipoDeOcorrencia == (int)TipoDeOcorrencia.Reclamação_Nau_Funcionamento_Com_Solucao) { xml.TipoAtendimento = "RC"; } else if (crm.TipoDeOcorrencia == (int)TipoDeOcorrencia.AnaliseDeDefeito) { xml.TipoAtendimento = "AD"; } xml.CodigoOcorrencia = crm.ID.Value.ToString(); if (!string.IsNullOrEmpty(crm.Numero)) { xml.NumeroOcorrencia = crm.Numero; } if (crm.RazaoStatus.HasValue) { xml.StatusOcorrencia = crm.RazaoStatus; } if (crm.PrioridadeValue.HasValue) { xml.Prioridade = crm.PrioridadeValue; } if (crm.TipoDeOcorrencia.HasValue) { xml.TipoOcorrencia = crm.TipoDeOcorrencia; xml.DescricaoTipoOcorrencia = DescricaoTipoOcorrencia(crm.TipoDeOcorrencia.Value); } if (crm.Assunto != null) { xml.DefeitoAlegado = crm.Assunto.Nome; } if (!string.IsNullOrEmpty(xml.AtividadeExecutada)) { crm.AtividadeExecutada = xml.AtividadeExecutada; } if (crm.DataOrigem.HasValue) { xml.DataHoraAbertura = crm.DataOrigem.Value.ToLocalTime(); } Usuario proprietario = new Domain.Servicos.UsuarioService(this.Organizacao, this.IsOffline).BuscarProprietario("incident", "incidentid", crm.ID.Value); if (proprietario != null) { xml.NomeProprietario = proprietario.NomeCompleto; } if (!string.IsNullOrEmpty(crm.ProdutosDoCliente)) { xml.NumeroSerieProduto = crm.ProdutosDoCliente; } if (crm.Produto != null) { Product objProduto = new Intelbras.CRM2013.Domain.Servicos.ProdutoService(this.Organizacao, this.IsOffline).ObterPor(crm.Produto.Id); if (objProduto != null) { xml.CodigoProduto = objProduto.Codigo; strNomeProdutos = objProduto.Nome; } } #region Montagem do texto padrão do campo observação xml.Observacao = crm.Nome + "\n" + "DEFEITO ALEGADO: " + (crm.Assunto.Nome != null ? crm.Assunto.Nome : "--"); //"PRODUTO: " + (xml.CodigoProduto != null ? xml.CodigoProduto + " - " + strNomeProdutos : "--") + "\n" + //"NÚMERO DE SÉRIE: " + (xml.NumeroSerieProduto != null ? xml.NumeroSerieProduto : "--") + "\n" + //"DATA FABRICAÇÃO: " + (crm.DataFabricacaoProduto != null ? crm.DataFabricacaoProduto.Value.ToLocalTime().ToString("dd/MM/yyyy") : "--") + "\n" + //"DATA VENDA: " + (crm.DataCompraIntelbras != null ? crm.DataCompraIntelbras.Value.ToLocalTime().ToString("dd/MM/yyyy") : "--") + "\n" + //"PEDIDO VENDA: " + (crm.NumeroPedidoVenda != null ? crm.NumeroPedidoVenda : "-- ") + " NF VENDA: " + (crm.NumeroNotaFiscal != null ? crm.NumeroNotaFiscal : "--") + "\n\n"; #endregion //if (!string.IsNullOrEmpty(crm.Anexo)) //{ // xml.Observacao += crm.Anexo; //} xml.NomeUsuario = crm.CriadoPor.Name; xml.CNPJAutorizada = crm.Autorizada != null?crm.Autorizada.CpfCnpj.Replace("-", "").Replace(".", "").Replace("/", "").Trim() : null; xml.NomeAutorizada = crm.Autorizada != null?crm.Autorizada.Nome.Trim() : null; #region Dados do Cliente da Ocorrência Model.Contato contato = new Domain.Servicos.ContatoService(this.Organizacao, this.IsOffline).BuscaContato(crm.ClienteId.Id); Model.Conta conta = new Domain.Servicos.ContaService(this.Organizacao, this.IsOffline).BuscaConta(crm.ClienteId.Id); Pollux.Entities.Endereco enderecoContato = new Pollux.Entities.Endereco(); Pollux.Entities.ClienteOcorrencia clienteOcorrencia = new Pollux.Entities.ClienteOcorrencia(); clienteOcorrencia.CodigoContato = contato != null?contato.Id.ToString() : conta.Id.ToString(); if (conta != null) { clienteOcorrencia.CodigoCliente = Convert.ToInt32(conta.CodigoMatriz); if (!string.IsNullOrEmpty(conta.CpfCnpj)) { string cnpjCpfObj = conta.CpfCnpj.Replace("-", "").Replace(".", "").Replace("/", "").Trim(); if (!String.IsNullOrEmpty(cnpjCpfObj)) { if (cnpjCpfObj.Length <= 11) { clienteOcorrencia.CPF = cnpjCpfObj; } else { clienteOcorrencia.CNPJ = cnpjCpfObj; } } } if (!String.IsNullOrEmpty(conta.Endereco1CEP)) { enderecoContato.CEP = conta.Endereco1CEP.Replace("-", "").PadLeft(8, '0'); } if (conta.Endereco1Municipioid != null) { Municipio municipio = new Servicos.MunicipioServices(this.Organizacao, this.IsOffline).ObterPor(conta.Endereco1Municipioid.Id); enderecoContato.Cidade = municipio.ChaveIntegracao; enderecoContato.NomeCidade = municipio.Nome; } if (conta.Endereco1Estadoid != null) { Estado estado = new Servicos.EstadoServices(this.Organizacao, this.IsOffline).BuscaEstadoPorId(conta.Endereco1Estadoid.Id); if (estado != null) { enderecoContato.Estado = estado.ChaveIntegracao; enderecoContato.UF = estado.SiglaUF; } if (conta.Endereco1Pais == null) { conta.Endereco1Pais = estado.Pais; } } if (conta.Endereco1Pais != null) { Pais pais = new Servicos.PaisServices(this.Organizacao, this.IsOffline).BuscaPais(conta.Endereco1Pais.Id); enderecoContato.NomePais = pais.Nome; enderecoContato.Pais = pais.ChaveIntegracao;; } if (!String.IsNullOrEmpty(conta.Endereco1CaixaPostal)) { enderecoContato.CaixaPostal = conta.Endereco1CaixaPostal; } } if (contato != null) { if (contato.AssociadoA != null) { conta = new Domain.Servicos.ContaService(this.Organizacao, this.IsOffline).BuscaConta(contato.AssociadoA.Id); if (conta != null) { clienteOcorrencia.CodigoCliente = Convert.ToInt32(conta.CodigoMatriz); } } if (contato.Aniversario.HasValue) { clienteOcorrencia.DataNascimento = contato.Aniversario.Value.ToLocalTime(); } else { clienteOcorrencia.DataNascimento = null; } if (!string.IsNullOrEmpty(contato.CpfCnpj)) { string cnpjCpfObj = contato.CpfCnpj.Replace("-", "").Replace(".", "").Replace("/", "").Trim(); if (!String.IsNullOrEmpty(cnpjCpfObj)) { if (cnpjCpfObj.Length <= 11) { clienteOcorrencia.CPF = cnpjCpfObj; } else { clienteOcorrencia.CNPJ = cnpjCpfObj; } } } if (!String.IsNullOrEmpty(contato.Endereco1CEP)) { enderecoContato.CEP = contato.Endereco1CEP.Replace("-", "").PadLeft(8, '0'); } if (contato.Endereco1Municipioid != null) { Municipio municipio = new Servicos.MunicipioServices(this.Organizacao, this.IsOffline).ObterPor(contato.Endereco1Municipioid.Id); enderecoContato.Cidade = municipio.ChaveIntegracao; enderecoContato.NomeCidade = municipio.Nome; } if (contato.Endereco1Estadoid != null) { Estado estado = new Servicos.EstadoServices(this.Organizacao, this.IsOffline).BuscaEstadoPorId(contato.Endereco1Estadoid.Id); if (estado != null) { enderecoContato.Estado = estado.ChaveIntegracao; enderecoContato.UF = estado.SiglaUF; } if (contato.Endereco1Pais == null) { contato.Endereco1Pais = estado.Pais; } } if (contato.Endereco1Pais != null) { Pais pais = new Servicos.PaisServices(this.Organizacao, this.IsOffline).BuscaPais(contato.Endereco1Pais.Id); enderecoContato.NomePais = pais.Nome; enderecoContato.Pais = pais.ChaveIntegracao;; } if (!String.IsNullOrEmpty(contato.Endereco1CaixaPostal)) { enderecoContato.CaixaPostal = contato.Endereco1CaixaPostal; } } clienteOcorrencia.NomeContato = contato != null ? contato.PrimeiroNome : conta.Nome; clienteOcorrencia.SegundoNome = contato != null ? contato.SegundoNome : null; clienteOcorrencia.Sobrenome = contato != null ? contato.Sobrenome : null; clienteOcorrencia.Email = contato != null ? contato.Email1 : conta.Email; clienteOcorrencia.Telefone = contato != null ? contato.TelefoneComercial : conta.Telefone; clienteOcorrencia.Ramal = contato != null ? contato.Ramal1 : conta.RamalTelefonePrincipal; clienteOcorrencia.Celular = contato != null ? contato.TelefoneCelular : conta.Fax; clienteOcorrencia.Fax = contato != null ? contato.Fax : null; clienteOcorrencia.RamalFax = contato != null ? contato.RamalFax : null; clienteOcorrencia.Sexo = contato != null ? contato.Sexo : null; clienteOcorrencia.RG = contato != null ? contato.DocIdentidade : null; clienteOcorrencia.OrgaoExpeditor = contato != null ? contato.EmissorDocIdentidade : null; #endregion #region Endereco enderecoContato.Bairro = contato != null ? contato.Endereco1Bairro : conta.Endereco1Bairro; enderecoContato.Numero = contato != null ? contato.Endereco1Numero : conta.Endereco1Numero; enderecoContato.Complemento = contato != null ? contato.Endereco1Complemento : conta.Endereco1Complemento; enderecoContato.Logradouro = contato != null ? contato.Endereco1Rua : conta.Endereco1Rua; enderecoContato.NomeEndereco = contato != null ? contato.Endereco1Nome : null; enderecoContato.TipoEndereco = contato != null ? contato.Endereco1TipoEndereco : conta.TipoEndereco; if (enderecoContato != null) { clienteOcorrencia.EnderecoPrincipal = enderecoContato; } #endregion #region Lista de anexos da ocorrência var urlServico = SDKore.Configuration.ConfigurationManager.GetSettingValue("UrlSiteCRM"); var strTextosAnotacoes = ""; if (crm.Anexos != null && crm.Anexos.Count > 0) { List <Pollux.Entities.AnexoOcorrencia> lstAnexosOcorrencia = new List <Pollux.Entities.AnexoOcorrencia>(); foreach (Anotacao crmItem in crm.Anexos) { if (crmItem.TemArquivo) { Pollux.Entities.AnexoOcorrencia objPollux = new Pollux.Entities.AnexoOcorrencia(); objPollux.NomeArquivo = crmItem.NomeArquivos; if (SDKore.Configuration.ConfigurationManager.GetSettingValue("Ambiente") == "Desenvolvimento") { objPollux.URL = urlServico + "/Activities/Attachment/download.aspx?AttachmentType=5&IsNotesTabAttachment=1&AttachmentId=" + crmItem.ID + "&CRMWRPCToken=N%2fF0lhjMEemA3ABQVqpIdBJpbKVyWAZQV4rPHHxT6tlRmtDGA0vqSwwW7tVLsMKh&CRMWRPCTokenTimeStamp=636845305936642215"; } else { objPollux.URL = urlServico + "/Activities/Attachment/download.aspx?AttachmentType=5&IsNotesTabAttachment=1&AttachmentId=" + crmItem.ID; } lstAnexosOcorrencia.Add(objPollux); } strTextosAnotacoes += System.Environment.NewLine + "----------------------------------------------------------------------" + System.Environment.NewLine + crmItem.CriadoPor.Name.ToString() + " em " + crmItem.CriadoEm.Value.ToLocalTime() + ". " + (string.IsNullOrEmpty(crmItem.Assunto) ? "ASSUNTO: " + crmItem.Assunto : "") + System.Environment.NewLine + crmItem.Texto; } xml.ListaAnexosOcorrencia = lstAnexosOcorrencia; } #endregion if (!string.IsNullOrEmpty(strTextosAnotacoes)) { xml.Observacao += strTextosAnotacoes; } else if (!string.IsNullOrEmpty(crm.Anexo)) { xml.Observacao += System.Environment.NewLine + crm.Anexo; } xml.ClienteOcorrencia = clienteOcorrencia; return(xml); }
public void TestePluginMonitoramento() { Domain.Model.CompromissosDoCanal CompromissoTarget = new Intelbras.CRM2013.Domain.Servicos.CompromissosDoCanalService(this.OrganizationName, this.IsOffline) .BuscarPorGuid(new Guid("2612525C-1432-E411-940F-00155D013D31")); //perfil = B1486E56-13F6-E311-91F5-00155D013E44 //check if status changed on plugin Guid? UnidadeNeg = null; Guid? Classificacao = null; Guid? Categoria = null; Boolean?Exclusividade = null; Domain.Model.Conta canal = new Domain.Servicos.ContaService(this.OrganizationName, this.IsOffline) .BuscaConta(CompromissoTarget.Canal.Id); if (canal != null) { if (CompromissoTarget.UnidadeDeNegocio != null) { UnidadeNeg = CompromissoTarget.UnidadeDeNegocio.Id; } if (canal.Classificacao != null) { Classificacao = canal.Classificacao.Id; } Domain.Model.CategoriasCanal categoriaCanal = new Domain.Servicos.CategoriaCanalService(this.OrganizationName, this.IsOffline) .ListarPor(canal.ID.Value, UnidadeNeg).FirstOrDefault(); if (categoriaCanal != null && categoriaCanal.Categoria != null) { Categoria = categoriaCanal.Categoria.Id; } if (canal.Exclusividade != null) { Exclusividade = canal.Exclusividade.Value; } Domain.Model.Perfil perfil = new Intelbras.CRM2013.Domain.Servicos.PerfilServices(this.OrganizationName, this.IsOffline).BuscarPerfil(Classificacao, UnidadeNeg, Categoria, Exclusividade); if (perfil != null) { List <Domain.Model.BeneficiosCompromissos> benefCompr = new Intelbras.CRM2013.Domain.Servicos.BeneficiosCompromissosService(this.OrganizationName, this.IsOffline).BuscaBeneficiosCompromissos(perfil.ID.Value, CompromissoTarget.Compromisso.Id, null); if (benefCompr.Count > 0) { foreach (Domain.Model.BeneficiosCompromissos item in benefCompr) { bool flagAtualizarBeneficio = true; Lookup statusBenef = (Lookup) new Intelbras.CRM2013.Domain.Servicos.BeneficiosCompromissosService(this.OrganizationName, this.IsOffline) .BuscarBeneficioCorrespondentePorCodigoStatus(item, CompromissoTarget.StatusCompromisso.Id); if (statusBenef != null) { if (statusBenef.Name != Domain.Enum.CompromissoCanal.StatusCompromisso.Nao_Cumprido) { //fluxo alternativo 1 List <Domain.Model.BeneficiosCompromissos> benefComprAlternativo = new Intelbras.CRM2013.Domain.Servicos.BeneficiosCompromissosService(this.OrganizationName, this.IsOffline).BuscaBeneficiosCompromissos(perfil.ID.Value, null, item.Beneficio.Id); if (benefComprAlternativo.Count > 0) { foreach (Domain.Model.BeneficiosCompromissos registro in benefComprAlternativo) { Domain.Model.CompromissosDoCanal comproCanal = new Intelbras.CRM2013.Domain.Servicos.CompromissosDoCanalService(this.OrganizationName, this.IsOffline) .BuscarCompromissoCanal(registro.Compromisso.Id, UnidadeNeg.Value, canal.ID.Value); if (comproCanal != null) { if (comproCanal.StatusCompromisso.Name == Domain.Enum.CompromissoCanal.StatusCompromisso.Nao_Cumprido) { flagAtualizarBeneficio = false; break; } } else { throw new ArgumentException("O compromisso " + registro.Compromisso.Name + " não existe para este Canal"); } } } } if (flagAtualizarBeneficio) { Domain.Model.BeneficioDoCanal benefCanal = new Intelbras.CRM2013.Domain.Servicos.BeneficioDoCanalService(this.OrganizationName, this.IsOffline) .BuscarBeneficioCanal(item.Beneficio.Id, UnidadeNeg.Value, canal.ID.Value); benefCanal.StatusBeneficio = statusBenef; new Intelbras.CRM2013.Domain.Servicos.BeneficioDoCanalService(this.OrganizationName, this.IsOffline).AlterarBeneficioCanal(benefCanal); } } } } } } }
public void ImportarPlanilha() { _olecon = new OleDbConnection(_StringConexao); _olecon.Open(); _oleCmd = new OleDbCommand(); _oleCmd.Connection = _olecon; _oleCmd.CommandType = CommandType.Text; try { _oleCmd.CommandText = "SELECT * FROM [Plan1$] "; OleDbDataReader reader = _oleCmd.ExecuteReader(); while (reader.Read()) { string codigoEmitente = reader.GetValue(0).ToString(); Domain.Model.Conta conta = new Domain.Servicos.ContaService(this.OrganizationName, false).BuscarPorCodigoEmitente(codigoEmitente); string unidadeNeg = reader.GetString(1).ToString(); //if (!unidadeNeg.ToUpper().Contains("ISEC")) // continue; Domain.Model.UnidadeNegocio unidadeNegocio = new Domain.Servicos.UnidadeNegocioService(this.OrganizationName, false).BuscaUnidadeNegocioPorNome(unidadeNeg);//"ISEC/MG"); List <Domain.Model.CompromissosDoCanal> lstCompromissosDoCanal = new List <Domain.Model.CompromissosDoCanal>(); if (conta != null && unidadeNegocio != null) { //lstBeneficioCanal = new Domain.Servicos.BeneficioDoCanalService(this.OrganizationName, false).ListarPorContaUnidadeNegocio(conta.ID.Value, unidadeNegocio.ID.Value); lstCompromissosDoCanal = new Domain.Servicos.CompromissosDoCanalService(this.OrganizationName, false).ListaCompromissoCanalPorContaUnidade(conta.ID.Value, unidadeNegocio.ID.Value); //if (lstCompromissosDoCanal.Count == 0 && unidadeNeg.Contains("ISEC")) //{ // unidadeNegocio = new Domain.Servicos.UnidadeNegocioService(this.OrganizationName, false).BuscaUnidadeNegocioPorNome("ISEC/MG"); // if(unidadeNegocio != null) // lstCompromissosDoCanal = new Domain.Servicos.CompromissosDoCanalService(this.OrganizationName, false).ListaCompromissoCanalPorContaUnidade(conta.ID.Value, unidadeNegocio.ID.Value); //} } string linhaDeCorte = reader.GetString(2).ToString().ToUpper(); string meta = reader.GetString(3).ToString().ToUpper(); if (lstCompromissosDoCanal != null && lstCompromissosDoCanal.Count > 0) { foreach (var compromissoCanal in lstCompromissosDoCanal) { try { if (meta.Equals("SIM")) { compromissoCanal.StatusCompromisso = new SDKore.DomainModel.Lookup(new Guid("31FFD7FA-74ED-E311-9407-00155D013D38"), "");// Cumprido } else { compromissoCanal.StatusCompromisso = new SDKore.DomainModel.Lookup(new Guid("41725811-75ED-E311-9407-00155D013D38"), ""); // NaoCumprido } new Domain.Servicos.CompromissosDoCanalService(this.OrganizationName, false).Atualizar(compromissoCanal); //logProcessamento.WriteLine("Conta : " + conta.ID.Value.ToString() + "/" + conta.RazaoSocial + // " - Compromisso : " + compromissoCanal.ID.Value.ToString() + "/" + compromissoCanal.Nome + // "Meta :" + meta); } catch (Exception ex) { logProcessamento.WriteLine("Conta : " + conta.ID.Value.ToString() + " / " + conta.RazaoSocial); logProcessamento.WriteLine("Compromisso : " + compromissoCanal.ID.Value.ToString() + " / " + compromissoCanal.Nome); logProcessamento.WriteLine("Meta :" + meta + " - Erro : " + ex.Message); logProcessamento.WriteLine(); logProcessamento.WriteLine("----------------------------------------------------------------------------"); logProcessamento.WriteLine(); } //if (!beneficioCanal.UnidadeDeNegocio.Name.ToUpper().Equals("ISEC/MG")) // continue; //if (meta.Equals("SIM")) //beneficioCanal.StatusBeneficio = new SDKore.DomainModel.Lookup(new Guid("35FC4A26-75ED-E311-9407-00155D013D38"), ""); // Ativo //else //beneficioCanal.StatusBeneficio = new SDKore.DomainModel.Lookup(new Guid("E1654A30-75ED-E311-9407-00155D013D38"), ""); // Suspenso //new Domain.Servicos.BeneficioDoCanalService(this.OrganizationName, false).Salvar(beneficioCanal); } } } logProcessamento.Close(); logProcessamento.Dispose(); reader.Close(); } catch { } }