private static OpportunityInfo GenerateOpportunity(CrmBEOportunidadeVenda opportunityInfo)
 {
     return(new OpportunityInfo()
     {
         DataCriacao = opportunityInfo.get_DataCriacao(),
         Entity = opportunityInfo.get_Entidade(),
         Campaign = opportunityInfo.get_Campanha(),
         SellCycle = opportunityInfo.get_CicloVenda(),
         ExpirationDate = opportunityInfo.get_DataExpiracao(),
         RealDateOrdered = opportunityInfo.get_DataRealEncomenda(),
         Description = opportunityInfo.get_Descricao(),
         MarginOV = opportunityInfo.get_MargemOV(),
         ProposedValueOV = opportunityInfo.get_ValorPropostoOV(),
         Origin = opportunityInfo.get_Origem(),
         Seller = opportunityInfo.get_Vendedor(),
         CreatedBy = opportunityInfo.get_CriadoPor(),
         RealBillingDate = opportunityInfo.get_DataRealFacturacao(),
         ClosureDate = opportunityInfo.get_DataFecho(),
         LossMotive = opportunityInfo.get_MotivoPerda(),
         OpportunityId = opportunityInfo.get_Oportunidade(),
         Currency = opportunityInfo.get_Moeda(),
         Brief = opportunityInfo.get_Resumo(),
         Zone = opportunityInfo.get_Zona(),
         Status = opportunityInfo.get_EstadoVenda(),
         EntityType = opportunityInfo.get_TipoEntidade(),
         TotalValueOV = opportunityInfo.get_ValorTotalOV(),
         Identificador = opportunityInfo.get_ID()
     });
 }
        private static bool CheckPermissions(CrmBEOportunidadeVenda opportunityInfo, string sessionId)
        {
            if (opportunityInfo.get_EstadoVenda() == -1)
            {
                return(false);
            }

            var representativeId = opportunityInfo.get_Vendedor();

            if (representativeId != null && representativeId != sessionId)
            {
                return(false);
            }

            return(true);
        }
예제 #3
0
        public static Model.Oportunidade GetOportunidade(string id)
        {
            CrmBEOportunidadeVenda objLead   = new CrmBEOportunidadeVenda();
            CrmBEPropostasOPV      objOpp    = new CrmBEPropostasOPV();
            CrmBELinhasPropostaOPV objLinhas = new CrmBELinhasPropostaOPV();

            Model.Oportunidade    opportunity = new Model.Oportunidade();
            List <Model.Proposta> propostas   = new List <Model.Proposta>();

            if (PriEngine.InitializeCompany(FirstREST.Properties.Settings.Default.Company.Trim(), FirstREST.Properties.Settings.Default.User.Trim(), FirstREST.Properties.Settings.Default.Password.Trim()) == true)
            {
                if (PriEngine.Engine.CRM.OportunidadesVenda.ExisteID(id) == false)
                {
                    return(null);
                }
                else
                {
                    //vai buscar a lead
                    objLead = PriEngine.Engine.CRM.OportunidadesVenda.EditaID(id);

                    opportunity.ID          = id;
                    opportunity.NomeOport   = objLead.get_Oportunidade();
                    opportunity.Descricao   = objLead.get_Descricao();
                    opportunity.Resumo      = objLead.get_Resumo();
                    opportunity.DataCriacao = objLead.get_DataCriacao();
                    opportunity.Vendedor    = objLead.get_Vendedor();

                    var idCliente = objLead.get_Entidade();
                    opportunity.CodCliente      = idCliente;
                    opportunity.NomeCliente     = PriEngine.Engine.Comercial.Clientes.DaValorAtributo(idCliente, "Nome");
                    opportunity.ContactoCliente = PriEngine.Engine.Comercial.Clientes.DaValorAtributo(idCliente, "Fac_Tel");
                    opportunity.DescontoCliente = PriEngine.Engine.Comercial.Clientes.DaValorAtributo(idCliente, "Desconto");
                    opportunity.EstadoVenda     = objLead.get_EstadoVenda();

                    //vai buscar as proposta correspondente
                    objOpp = PriEngine.Engine.CRM.OportunidadesVenda.EditaPropostasOPV(id);
                    for (short i = 1; i <= objOpp.NumItens; i++)
                    {
                        var objProposta = objOpp.get_Edita(i);
                        var proposta    = new Model.Proposta();
                        var linhas      = new List <Model.OportunidadeLinha>();

                        proposta.NumProposta   = objProposta.get_NumProposta();
                        proposta.Valor         = objProposta.get_Valor();
                        proposta.Desconto      = objProposta.get_ValorDesconto();
                        proposta.Rentabilidade = objProposta.get_Rentabilidade();
                        proposta.Margem        = objProposta.get_Margem() * 100;

                        //vai buscar os artigos desta proposta
                        objLinhas = objProposta.get_Linhas();
                        for (short j = 1; j <= objLinhas.NumItens; j++)
                        {
                            var objLinha    = objLinhas.get_Edita(j);
                            var numProposta = objLinha.get_NumProposta();
                            if (numProposta == proposta.NumProposta)
                            {
                                var linha = new Model.OportunidadeLinha();

                                linha.Linha         = objLinha.get_Linha();
                                linha.IdArtigo      = objLinha.get_Artigo();
                                linha.NomeArtigo    = objLinha.get_Descricao();
                                linha.Quantidade    = objLinha.get_Quantidade();
                                linha.Unidade       = objLinha.get_Unidade();
                                linha.Custo         = objLinha.get_PrecoCusto() * linha.Quantidade;
                                linha.PrecoVenda    = objLinha.get_PrecoVenda() * linha.Quantidade;
                                linha.Desconto      = objLinha.get_ValorDesconto() * linha.Quantidade;
                                linha.PrecoFinal    = linha.PrecoVenda - linha.Desconto * linha.Quantidade;
                                linha.Rentabilidade = objLinha.get_Rentabilidade() * linha.Quantidade;
                                linha.Margem        = objLinha.get_Margem() * 100;

                                linhas.Add(linha);
                            }
                        }
                        proposta.Artigos = linhas;

                        propostas.Add(proposta);
                    }

                    opportunity.propostas = propostas;

                    return(opportunity);
                }
            }
            else
            {
                return(null);
            }
        }