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); } }
protected void CarregarDadosSolicitacao(Guid solBenefId) { solicitacaoBeneficio = new Domain.Servicos.SolicitacaoBeneficioService(this.organizationName, false).ObterPor(solBenefId); if (solicitacaoBeneficio != null && (int)Domain.Enum.SolicitacaoBeneficio.StatusSolicitacaoBeneficio.Aprovada == solicitacaoBeneficio.StatusSolicitacao.Value) { List <ProdutosdaSolicitacao> lstProdSolicitacao = new ProdutosdaSolicitacaoService(this.organizationName, false).ListarPorSolicitacao(solBenefId); if (lstProdSolicitacao != null && lstProdSolicitacao.Count > 0) { bool existe = lstProdSolicitacao.Any(prodSol => prodSol.QuantidadeAprovada.HasValue && prodSol.QuantidadeSolicitada.HasValue && (prodSol.QuantidadeSolicitada - prodSol.QuantidadeAprovada) > 0); if (!existe) { mensagemRetorno.Text = "Não existem produtos com quantidades disponíveis para solicitar consumo."; this.MontaHeader(); return; } int index = 0; this.MontaHeader(); foreach (var prodSol in lstProdSolicitacao) { if (prodSol.QuantidadeAprovada.HasValue && prodSol.QuantidadeSolicitada.HasValue && (prodSol.QuantidadeSolicitada - prodSol.QuantidadeAprovada) > 0) { index += 1; Product produto = new ProdutoService(this.organizationName, false).ObterPor(prodSol.Produto.Id); if (produto != null) { var quant = prodSol.QuantidadeSolicitada - prodSol.QuantidadeAprovada; string codigoProduto = produto.Codigo; string nomeProduto = produto.Nome; string quantidade = quant.ToString(); string priceProtection = prodSol.ValorUnitario.Value.ToString(); #region Popula as linhas HtmlTableRow htr = new HtmlTableRow(); htr.Style.Add("background-color", CorDaLinha(index)); #endregion htr.Cells.Add(MontaCelula("CodProduto " + index, codigoProduto, "label")); htr.Cells.Add(MontaCelula("NomeProduto " + index, nomeProduto, "label")); htr.Cells.Add(MontaCelula("Quantidade " + index, quantidade, "label")); htr.Cells.Add(MontaCelula("PriceProtection " + index, priceProtection, "label")); htr.Cells.Add(MontaCelula("Seleciona " + index, "<input id=\"Checkbox1\" type=\"checkbox\" />", "label")); //<input id="Checkbox1" type="checkbox" /> tblRetornoProduto.Rows.Add(htr); } else { mensagemRetorno.Text = "Produto não encontrado."; this.MontaHeader(); return; } } } } else { mensagemRetorno.Text = "Solicitação não possui produtos para solicitar consumo. Favor inserir produtos na solicitação."; this.MontaHeader(); return; } } else { mensagemRetorno.Text = "Solicitação com status diferente de Aprovada."; this.MontaHeader(); } }
public void TesteCrmWebServiceProdutoSolicitacao() { string organizationName = ConfigurationManager.GetSettingValue("OrganizacaoIntelbras"); Domain.Model.SolicitacaoBeneficio solBeneficio = new Domain.Model.SolicitacaoBeneficio(organizationName, false); JavaScriptSerializer jsonConverter = new JavaScriptSerializer(); Dictionary <string, object> dictResposta = new Dictionary <string, object>(); try { string produtoID = "08bc0401-bef0-e311-9420-00155d013d39"; string notaFiscalID = "2D109EDA-AC18-E411-9233-00155D013E44"; string solicitacaoBeneficioID = "F9A8E1BB-A418-E411-9233-00155D013E44"; Domain.Model.ProdutoFatura prodFatura = new Domain.Model.ProdutoFatura(organizationName, false); Guid produtoGuid = Guid.Parse(produtoID); Guid notaFiscalGuid = Guid.Parse(notaFiscalID); Guid solicitacaoBeneficioGuid = Guid.Parse(solicitacaoBeneficioID); solBeneficio = new Intelbras.CRM2013.Domain.Servicos.SolicitacaoBeneficioService(organizationName, false).ObterPor(solicitacaoBeneficioGuid); if (solBeneficio == null) { throw new ArgumentException("Não foi possível encontrar a solicitação de benefício"); } if (solBeneficio.BeneficioPrograma.Name != "Stock Rotation") { dictResposta.Add("Resultado", false); dictResposta.Add("Mensagem", "Benefício do programa não é Stock Rotation"); dictResposta.Add("Ignorar", true); } else { prodFatura = new Intelbras.CRM2013.Domain.Servicos.ProdutoFaturaService(organizationName, false).ObterPorProdutoEfatura(produtoGuid, notaFiscalGuid); if (prodFatura == null) { throw new ArgumentException("Produto não encontrado na Nota Fiscal"); } if (!prodFatura.ValorTotal.HasValue) { throw new ArgumentException("Produto sem valor total"); } dictResposta.Add("Resultado", true); dictResposta.Add("ValorTotal", prodFatura.ValorTotal.Value.ToString()); } } catch (FormatException) { dictResposta = new Dictionary <string, object>(); dictResposta.Add("Resultado", false); dictResposta.Add("Mensagem", "Guid em formato incorreto!Esperado : (xxxxxxxx-xxxx-xxxxx-xxxx-xxxxxxxxxxxx)"); } catch (Exception e) { dictResposta = new Dictionary <string, object>(); dictResposta.Add("Resultado", false); dictResposta.Add("Mensagem", e.Message); } var json = jsonConverter.Serialize(dictResposta); }