/*private static Proposals GenerateProposal(CrmBELinhasPropostaOPV opportunityInfo)
         * {
         *      return new Proposals()
         *          {
         *              ProposalNumber = TypeParser.String(opportunityInfo.get_NumProposta()),
         *              Description = opportunityInfo.get_Descricao(),
         *              PaymentMethod = opportunityInfo.get_ModoPagamento(),
         *              PaymentCondition = opportunityInfo.get_CondPagamento(),
         *              Cost = opportunityInfo.get_Custo(),
         *              Value = opportunityInfo.get_Valor(),
         *              DiscountValue = opportunityInfo.get_ValorDesconto(),
         *              Rentability = opportunityInfo.get_Rentabilidade(),
         *              Margin = opportunityInfo.get_Margem()
         *          };
         * }*/

        private static void SetFields(CrmBELinhaPropostaOPV proposalLineInfo, ProposalsLine jsonObject)
        {
            proposalLineInfo.set_IdOportunidade(jsonObject.idOportunidade);
            proposalLineInfo.set_NumProposta(jsonObject.ProposalNumber);
            proposalLineInfo.set_Linha(jsonObject.Line);
            proposalLineInfo.set_Artigo(jsonObject.Article);
            proposalLineInfo.set_Descricao(jsonObject.Description);
            proposalLineInfo.set_Quantidade(jsonObject.Quantity);
            proposalLineInfo.set_Unidade(jsonObject.Unit);
            proposalLineInfo.set_FactorConv(jsonObject.FactorConv);
            proposalLineInfo.set_PrecoCusto(jsonObject.CostPrice);
            proposalLineInfo.set_PrecoVenda(jsonObject.SellsPrice);
            proposalLineInfo.set_Desconto1(jsonObject.Discount1);
            proposalLineInfo.set_Desconto2(jsonObject.Discount2);
            proposalLineInfo.set_Desconto3(jsonObject.Discount3);
            proposalLineInfo.set_Desconto(jsonObject.Discount);
            proposalLineInfo.set_ValorDesconto(jsonObject.DiscountValue);
            proposalLineInfo.set_Rentabilidade(jsonObject.Rentability);
            proposalLineInfo.set_Margem(jsonObject.Margin);
            proposalLineInfo.set_Observacoes(jsonObject.Observations);
        }
Exemple #2
0
        public static RespostaErro AdicionaProduto(OportunidadeDTO dto)
        {
            Lib_Primavera.Model.RespostaErro erro = new Model.RespostaErro();
            CrmBEPropostaOPV objProp = new CrmBEPropostaOPV();

            try
            {
                if (PriEngine.InitializeCompany(FirstREST.Properties.Settings.Default.Company.Trim(), FirstREST.Properties.Settings.Default.User.Trim(), FirstREST.Properties.Settings.Default.Password.Trim()) == true)
                {
                    //oportunidade
                    if (!PriEngine.Engine.CRM.OportunidadesVenda.ExisteID(dto.IdOportunidade))
                    {
                        erro.Erro      = 1;
                        erro.Descricao = "Nao existe oportunidade";
                        return(erro);
                    }
                    //proposta
                    objProp = PriEngine.Engine.CRM.PropostasOPV.Edita(dto.IdOportunidade, dto.NumProposta, true);
                    objProp.set_EmModoEdicao(true);

                    //vai buscar os artigos desta proposta
                    CrmBELinhasPropostaOPV objLinhas = objProp.get_Linhas();

                    //nova linha a ser criada
                    CrmBELinhaPropostaOPV objLinha = new CrmBELinhaPropostaOPV();

                    //artigo que vamos adicionar
                    GcpBEArtigo objArtigo = PriEngine.Engine.Comercial.Artigos.Edita(dto.IdArtigo);

                    objLinha.set_IdOportunidade(dto.IdOportunidade);
                    objLinha.set_NumProposta(dto.NumProposta);
                    objLinha.set_Artigo(dto.IdArtigo);
                    short n = objLinhas.NumItens;
                    n++;
                    objLinha.set_Linha(n);
                    objLinha.set_Descricao(objArtigo.get_Descricao());
                    objLinha.set_Quantidade(1);
                    objLinha.set_Unidade(objArtigo.get_UnidadeVenda());
                    objLinha.set_PrecoCusto(objArtigo.get_PCMedio());
                    objLinha.set_Desconto(objArtigo.get_Desconto());

                    var objArtigoPreco = PriEngine.Engine.Comercial.ArtigosPrecos.Edita(dto.IdArtigo, "EUR", objArtigo.get_UnidadeVenda());
                    objLinha.set_PrecoVenda(objArtigoPreco.get_PVP1());

                    //update proposta
                    objLinhas.Insere(objLinha);
                    objProp.set_Linhas(objLinhas);
                    PriEngine.Engine.CRM.PropostasOPV.Actualiza(objProp);

                    erro.Erro      = 0;
                    erro.Descricao = "Success";
                    return(erro);
                }
                else
                {
                    erro.Erro      = 1;
                    erro.Descricao = "Erro ao abrir empresa";
                    return(erro);
                }
            }
            catch (Exception ex)
            {
                erro.Erro      = 1;
                erro.Descricao = ex.Message;
                return(erro);
            }
        }