示例#1
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);
            }
        }