示例#1
0
        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);
            }
        }
示例#2
0
        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();
            }
        }
示例#3
0
        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);
        }