public int CargaSellOutProdutos() { int pagina = 1; int contagem = 500; bool moreRecords = true; int registrosAtualizados = 0; string usuario = SDKore.Configuration.ConfigurationManager.GetSettingValue("SellOutCRMWSUser"); string senha = SDKore.Configuration.ConfigurationManager.GetSettingValue("SellOutCRMWSPasswd"); while (moreRecords) { try { List <Model.Product> lstProduto = new Intelbras.CRM2013.Domain.Servicos.ProdutoService(this.Organizacao, this.IsOffline).ListarTodosProdutos(ref pagina, contagem, out moreRecords); foreach (var item in lstProduto) { string xml; bool resultado; string resposta; XDocument xmlroot = new XDocument( new XDeclaration("1.0", "utf-8", "no"), new XElement("Produto", new XElement("Idprodutocrm", item.ID), new XElement("Idprodutoerp", item.Codigo), new XElement("Statuscode", item.RazaoStatus), new XElement("Statecode", item.Status) )); xml = xmlroot.Declaration.ToString() + Environment.NewLine + xmlroot.ToString();; resultado = new Domain.Servicos.SellOutService(this.Organizacao, this.IsOffline).PersistirProdutoSellOut(usuario, senha, xml, out resposta); if (resultado == false) { throw new ArgumentException(resposta); } registrosAtualizados++; } } catch (TimeoutException e) { continue; } } return(registrosAtualizados); }
public String PersistirDistribuidor(Conta conta, IPluginExecutionContext context) { string cpfCnpj = string.Empty; string usuario = SDKore.Configuration.ConfigurationManager.GetSettingValue("SellOutCRMWSUser"); string senha = SDKore.Configuration.ConfigurationManager.GetSettingValue("SellOutCRMWSPasswd"); XDocument xmlroot; string xml; string resposta; Boolean resultado; if (!Domain.Servicos.Helper.somenteNumeros(conta.CpfCnpj)) { cpfCnpj = Intelbras.CRM2013.Domain.Servicos.Helper.FormatarCnpj(conta.CpfCnpj); } xmlroot = new XDocument( new XDeclaration("1.0", "utf-8", "no"), new XElement("Distribuidor", new XElement("Iddistribuidorcrm", conta.ID), new XElement("Iddistribuidorerp", conta.CodigoMatriz), new XElement("Cnpj", cpfCnpj), new XElement("Statuscode", conta.RazaoStatus), new XElement("Statecode", conta.Status), new XElement("EnvioSelloutEstoque", conta.EnvioSelloutEstoque), new XElement("Classificacao", conta.Classificacao.Id.ToString()), new XElement("Subclassificacao", conta.Subclassificacao.Id.ToString()), new XElement("Categoria", conta.Categoria.Id.ToString()) )); xml = xmlroot.Declaration.ToString() + Environment.NewLine + xmlroot.ToString();; resultado = new Domain.Servicos.SellOutService(context.OrganizationName, context.IsExecutingOffline).PersistirDistribuidor(usuario, senha, xml, out resposta); if (resultado) { return(String.Empty); } else { return(resposta); } }
public void TestarProdutoSellOut() { string resposta = string.Empty; var xmlroot = new XDocument( new XDeclaration("1.0", "utf-8", "no"), new XElement("Distribuidor", new XElement("Iddistribuidorcrm", "E53CBD6F-8E9D-E311-888D-00155D013E2F"), new XElement("Iddistribuidorerp", "321321"), new XElement("Statuscode", "3"), new XElement("Statecode", "2") //new XElement("Criado_em","30/06/2014 14:10:00") )); //string xml = "<Statuscode>3</Statuscode><Statecode>2</Statecode><Criado_em xsi:nil=\"true\" /></Distribuidor>"; //SellOutTestWS.SelloutWS test = new SellOutTestWS.SelloutWS(); //string respost = string.Empty; //bool resp = test.EnvioSellout("usuario", "senha", "xml", out resposta); string xml = xmlroot.Declaration.ToString() + Environment.NewLine + xmlroot.ToString();; var resultado = new Domain.Servicos.SellOutService(this.OrganizationName, this.IsOffline).MudarStatusDistribuidor("usuario", "senha", xml, out resposta); }
protected override void Execute(IPluginExecutionContext context, IOrganizationServiceFactory serviceFactory, IOrganizationService adminService, IOrganizationService userService) { if (context.Depth > 2) { return; } switch (Util.Utilitario.ConverterEnum <Domain.Enum.Plugin.MessageName>(context.MessageName)) { case Domain.Enum.Plugin.MessageName.Create: Entity entidadeAlterada = (Entity)context.InputParameters["Target"]; Domain.Model.Product produto = entidadeAlterada.Parse <Domain.Model.Product>(context.OrganizationName, context.IsExecutingOffline); //Inserir produto na lista de preço new Intelbras.CRM2013.Domain.Servicos.ListaPrecoService(context.OrganizationName, context.IsExecutingOffline).Persistir(produto); #region SellOut //Verifica se o codigo do produto foi alterado if (produto.Codigo != null) { string resposta; XDocument xmlroot = new XDocument( new XDeclaration("1.0", "utf-8", "no"), new XElement("Produto", new XElement("Idprodutocrm", produto.ID), new XElement("Idprodutoerp", produto.Codigo), new XElement("Statuscode", 1), new XElement("Statecode", 0) )); string xml = xmlroot.Declaration.ToString() + Environment.NewLine + xmlroot.ToString();; string usuario = SDKore.Configuration.ConfigurationManager.GetSettingValue("SellOutCRMWSUser"); string senha = SDKore.Configuration.ConfigurationManager.GetSettingValue("SellOutCRMWSPasswd"); bool resultado = new Domain.Servicos.SellOutService(context.OrganizationName, context.IsExecutingOffline).PersistirProdutoSellOut(usuario, senha, xml, out resposta); if (resultado == false) { throw new ArgumentException(resposta); } } #endregion break; case Domain.Enum.Plugin.MessageName.Update: if (context.InputParameters.Contains("Target") && context.InputParameters["Target"] is Entity) { Entity entidadeAlterada1 = (Entity)context.InputParameters["Target"]; Entity entidadePost = (Entity)context.PostEntityImages["imagem"]; Domain.Model.Product produto1 = entidadeAlterada1.Parse <Domain.Model.Product>(context.OrganizationName, context.IsExecutingOffline); Domain.Model.Product PostProduto = entidadePost.Parse <Domain.Model.Product>(context.OrganizationName, context.IsExecutingOffline); if (produto1.Status.HasValue && produto1.Status == (int?)Domain.Enum.Produto.StateCode.inativo && produto1.RazaoStatus != null && (int)produto1.RazaoStatus == (int)Domain.Enum.Produto.StatusCode.Descontinuado) { new Domain.Servicos.ProdutoService(context.OrganizationName, context.IsExecutingOffline, serviceFactory).DescontinuarProduto(PostProduto); } if (produto1.IntegrarNoPlugin.HasValue && !produto1.IntegrarNoPlugin.Value) { string ret = new Domain.Servicos.ProdutoService(context.OrganizationName, context.IsExecutingOffline, serviceFactory).IntegracaoBarramento(PostProduto); } #region SellOut //Verifica se o codigo do produto foi alterado if (produto1.Codigo != null || produto1.RazaoStatus.HasValue) { string resposta; XDocument xmlroot = new XDocument( new XDeclaration("1.0", "utf-8", "no"), new XElement("Produto", new XElement("Idprodutocrm", PostProduto.ID), new XElement("Idprodutoerp", PostProduto.Codigo), new XElement("Statuscode", PostProduto.RazaoStatus), new XElement("Statecode", PostProduto.Status) )); string xml = xmlroot.Declaration.ToString() + Environment.NewLine + xmlroot.ToString();; string usuario = ConfigurationManager.GetSettingValue("SellOutCRMWSUser"); string senha = ConfigurationManager.GetSettingValue("SellOutCRMWSPasswd"); bool resultado = new Domain.Servicos.SellOutService(context.OrganizationName, context.IsExecutingOffline).PersistirProdutoSellOut(usuario, senha, xml, out resposta); if (resultado == false) { throw new ArgumentException(resposta); } } #endregion } break; case Domain.Enum.Plugin.MessageName.SetStateDynamicEntity: if (context.PostEntityImages.Contains("imagem") && context.PostEntityImages["imagem"] is Entity && context.PreEntityImages.Contains("imagem") && context.PreEntityImages["imagem"] is Entity) { var ProdutoPre = ((Entity)context.PreEntityImages["imagem"]).Parse <Domain.Model.Product>(context.OrganizationName, context.IsExecutingOffline, serviceFactory); var ProdutoPos = ((Entity)context.PostEntityImages["imagem"]).Parse <Domain.Model.Product>(context.OrganizationName, context.IsExecutingOffline, serviceFactory); #region SellOut if (ProdutoPre.Status != ProdutoPos.Status) { string resposta; XDocument xmlroot = new XDocument( new XDeclaration("1.0", "utf-8", "no"), new XElement("Produto", new XElement("Idprodutocrm", ProdutoPos.ID), new XElement("Statecode", ProdutoPos.Status) )); string xml = xmlroot.Declaration.ToString() + Environment.NewLine + xmlroot.ToString();; string usuario = SDKore.Configuration.ConfigurationManager.GetSettingValue("SellOutCRMWSUser"); string senha = SDKore.Configuration.ConfigurationManager.GetSettingValue("SellOutCRMWSPasswd"); bool resultado = new Domain.Servicos.SellOutService(context.OrganizationName, context.IsExecutingOffline).PersistirProdutoSellOut(usuario, senha, xml, out resposta); if (resultado == false) { throw new ArgumentException(resposta); } } #endregion } break; } }
public void Execute(IServiceProvider serviceProvider) { var context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext)); IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory)); IOrganizationService service = serviceFactory.CreateOrganizationService(null); ITracingService trace = (ITracingService)serviceProvider.GetService(typeof(ITracingService)); if (context.Depth > 2) { return; } try { switch (Util.Utilitario.ConverterEnum <Domain.Enum.Plugin.MessageName>(context.MessageName)) { case Domain.Enum.Plugin.MessageName.Create: if (context.InputParameters.Contains("Target") && context.InputParameters["Target"] is Entity) { Entity entidadeAlterada = (Entity)context.InputParameters["Target"]; Domain.Model.Product produto = entidadeAlterada.Parse <Domain.Model.Product>(context.OrganizationName, context.IsExecutingOffline); #region SellOut //Verifica se o codigo do produto foi alterado if (produto.Codigo != null) { string resposta; XDocument xmlroot = new XDocument( new XDeclaration("1.0", "utf-8", "no"), new XElement("Produto", new XElement("Idprodutocrm", produto.ID), new XElement("Idprodutoerp", produto.Codigo), new XElement("Statuscode", produto.RazaoStatus), new XElement("Statecode", produto.Status), new XElement("DescricaoProduto", produto.Descricao) )); string xml = xmlroot.Declaration.ToString() + Environment.NewLine + xmlroot.ToString();; string usuario = SDKore.Configuration.ConfigurationManager.GetSettingValue("SellOutCRMWSUser"); string senha = SDKore.Configuration.ConfigurationManager.GetSettingValue("SellOutCRMWSPasswd"); bool resultado = new Domain.Servicos.SellOutService(context.OrganizationName, context.IsExecutingOffline).PersistirProdutoSellOut(usuario, senha, xml, out resposta); if (resultado == false) { throw new ArgumentException(resposta); } } #endregion } break; case Domain.Enum.Plugin.MessageName.Update: if (context.InputParameters.Contains("Target") && context.InputParameters["Target"] is Entity) { Entity entidadeAlterada = (Entity)context.InputParameters["Target"]; Entity entidadePost = (Entity)context.PostEntityImages["imagem"]; Domain.Model.Product produto = entidadeAlterada.Parse <Domain.Model.Product>(context.OrganizationName, context.IsExecutingOffline); Domain.Model.Product PostProduto = entidadePost.Parse <Domain.Model.Product>(context.OrganizationName, context.IsExecutingOffline); if (produto.Status.HasValue && produto.Status == (int?)Domain.Enum.Produto.StateCode.inativo && produto.RazaoStatus != null && (int)produto.RazaoStatus == (int)Domain.Enum.Produto.StatusCode.Descontinuado) { new Domain.Servicos.ProdutoService(context.OrganizationName, context.IsExecutingOffline, service).DescontinuarProduto(PostProduto); } if (produto.IntegrarNoPlugin.HasValue && !produto.IntegrarNoPlugin.Value) { string ret = new Domain.Servicos.ProdutoService(context.OrganizationName, context.IsExecutingOffline, service).IntegracaoBarramento(PostProduto); } #region SellOut //Verifica se o codigo do produto foi alterado if (produto.Codigo != null || produto.RazaoStatus.HasValue) { string resposta; XDocument xmlroot = new XDocument( new XDeclaration("1.0", "utf-8", "no"), new XElement("Produto", new XElement("Idprodutocrm", PostProduto.ID), new XElement("Idprodutoerp", PostProduto.Codigo), new XElement("Statuscode", PostProduto.RazaoStatus), new XElement("Statecode", PostProduto.Status), new XElement("DescricaoProduto", PostProduto.Descricao) )); string xml = xmlroot.Declaration.ToString() + Environment.NewLine + xmlroot.ToString();; string usuario = ConfigurationManager.GetSettingValue("SellOutCRMWSUser"); string senha = ConfigurationManager.GetSettingValue("SellOutCRMWSPasswd"); bool resultado = new Domain.Servicos.SellOutService(context.OrganizationName, context.IsExecutingOffline).PersistirProdutoSellOut(usuario, senha, xml, out resposta); if (resultado == false) { throw new ArgumentException(resposta); } } #endregion } break; case Domain.Enum.Plugin.MessageName.SetStateDynamicEntity: if (context.PostEntityImages.Contains("imagem") && context.PostEntityImages["imagem"] is Entity && context.PreEntityImages.Contains("imagem") && context.PreEntityImages["imagem"] is Entity) { var ProdutoPre = ((Entity)context.PreEntityImages["imagem"]).Parse <Domain.Model.Product>(context.OrganizationName, context.IsExecutingOffline, service); var ProdutoPos = ((Entity)context.PostEntityImages["imagem"]).Parse <Domain.Model.Product>(context.OrganizationName, context.IsExecutingOffline, service); #region SellOut if (ProdutoPre.Status != ProdutoPos.Status) { string resposta; XDocument xmlroot = new XDocument( new XDeclaration("1.0", "utf-8", "no"), new XElement("Produto", new XElement("Idprodutocrm", ProdutoPos.ID), new XElement("Statecode", ProdutoPos.Status) )); string xml = xmlroot.Declaration.ToString() + Environment.NewLine + xmlroot.ToString();; string usuario = SDKore.Configuration.ConfigurationManager.GetSettingValue("SellOutCRMWSUser"); string senha = SDKore.Configuration.ConfigurationManager.GetSettingValue("SellOutCRMWSPasswd"); bool resultado = new Domain.Servicos.SellOutService(context.OrganizationName, context.IsExecutingOffline).PersistirProdutoSellOut(usuario, senha, xml, out resposta); if (resultado == false) { throw new ArgumentException(resposta); } } #endregion } break; } } catch (Exception ex) { trace.Trace(SDKore.Helper.Error.GetMessageError(ex)); string message = SDKore.Helper.Error.Handler(ex); throw new InvalidPluginExecutionException(message, ex); } }
public int CargaSellOutContas() { int pagina = 1; int contagem = 10; bool moreRecords = true; int registrosAtualizados = 0; string usuario = SDKore.Configuration.ConfigurationManager.GetSettingValue("SellOutCRMWSUser"); string senha = SDKore.Configuration.ConfigurationManager.GetSettingValue("SellOutCRMWSPasswd"); while (moreRecords) { List <Model.Conta> lstConta = new Intelbras.CRM2013.Domain.Servicos.ContaService(this.Organizacao, this.IsOffline).ListarContas(ref pagina, contagem, out moreRecords); foreach (var item in lstConta) { string xml; XDocument xmlroot; bool resultado; string resposta; if (!string.IsNullOrEmpty(item.CodigoMatriz) && item.Status.HasValue && item.Status.HasValue && item.ID.HasValue && !String.IsNullOrEmpty(item.CpfCnpj)) { string cpfCnpj = item.CpfCnpj; switch (item.Classificacao.Name) { case Domain.Enum.Conta.Classificacao.Dist_BoxMover: case Domain.Enum.Conta.Classificacao.Dist_VAD: if (!Intelbras.CRM2013.Domain.Servicos.Helper.somenteNumeros(item.CpfCnpj)) { cpfCnpj = Intelbras.CRM2013.Domain.Servicos.Helper.FormatarCnpj(item.CpfCnpj); } xmlroot = new XDocument( new XDeclaration("1.0", "utf-8", "no"), new XElement("Distribuidor", new XElement("Iddistribuidorcrm", item.ID), new XElement("Iddistribuidorerp", item.CodigoMatriz), new XElement("Cnpj", cpfCnpj), new XElement("Statuscode", item.RazaoStatus), new XElement("Statecode", item.Status) )); xml = xmlroot.Declaration.ToString() + Environment.NewLine + xmlroot.ToString();; resultado = new Domain.Servicos.SellOutService(this.Organizacao, this.IsOffline).PersistirDistribuidor(usuario, senha, xml, out resposta); if (resultado == false) { throw new ArgumentException(resposta); } registrosAtualizados++; break; case Domain.Enum.Conta.Classificacao.Rev_Rel: case Domain.Enum.Conta.Classificacao.Rev_Trans: if (!Intelbras.CRM2013.Domain.Servicos.Helper.somenteNumeros(item.CpfCnpj)) { cpfCnpj = Intelbras.CRM2013.Domain.Servicos.Helper.FormatarCnpj(item.CpfCnpj); } xmlroot = new XDocument( new XDeclaration("1.0", "utf-8", "no"), new XElement("Revenda", new XElement("Idrevendacrm", item.ID), new XElement("Idrevendaerp", item.CodigoMatriz), new XElement("Cpfcnpj", cpfCnpj), new XElement("Statuscode", item.RazaoStatus), new XElement("Statecode", item.Status) )); xml = xmlroot.Declaration.ToString() + Environment.NewLine + xmlroot.ToString();; resultado = new Domain.Servicos.SellOutService(this.Organizacao, this.IsOffline).PersistirRevenda(usuario, senha, xml, out resposta); if (resultado == false) { throw new ArgumentException(resposta); } registrosAtualizados++; break; } } } } return(registrosAtualizados); }