public static Lib_Primavera.Model.Artigo GetArtigo(string codArtigo)
        {
            GcpBEArtigo objArtigo = new GcpBEArtigo();

            Model.Artigo myArt = new Model.Artigo();

            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.Comercial.Artigos.Existe(codArtigo) == false)
                {
                    return(null);
                }
                else
                {
                    objArtigo = PriEngine.Engine.Comercial.Artigos.Edita(codArtigo);

                    myArt.ID          = objArtigo.get_Artigo();
                    myArt.Nome        = objArtigo.get_Descricao();
                    myArt.Marca       = objArtigo.get_Marca();
                    myArt.Observacoes = objArtigo.get_Observacoes();

                    myArt.FamiliaNome    = objArtigo.get_Familia();
                    myArt.SubFamiliaNome = objArtigo.get_SubFamilia();

                    myArt.PrazoEntrega = objArtigo.get_PrazoEntrega();

                    myArt.UnidadeVenda        = objArtigo.get_UnidadeVenda();
                    myArt.StockAtual          = objArtigo.get_StkActual();
                    myArt.QuantidadeReservada = objArtigo.get_QtReservada();

                    myArt.IVA      = PriEngine.Engine.Comercial.Iva.Edita(objArtigo.get_IVA()).get_Taxa();
                    myArt.Desconto = objArtigo.get_Desconto();

                    var objArtigoPreco = PriEngine.Engine.Comercial.ArtigosPrecos.Edita(myArt.ID, "EUR", myArt.UnidadeVenda);
                    myArt.PVP1 = objArtigoPreco.get_PVP1();

                    myArt.PrecoFinal = myArt.PVP1 * (1 - myArt.Desconto / 100);
                    if (!objArtigoPreco.get_PVP1IvaIncluido())
                    {
                        myArt.PrecoFinal *= (1 + myArt.IVA / 100);
                    }

                    return(myArt);
                }
            }
            else
            {
                return(null);
            }
        }
        public static Lib_Primavera.Model.Artigo GetArtigo(string codArtigo)
        {
            GcpBEArtigo objArtigo = new GcpBEArtigo();
            Model.Artigo myArt = new Model.Artigo();

            if (PriEngine.InitializeCompany(companyName, FirstREST.Properties.Settings.Default.User.Trim(), FirstREST.Properties.Settings.Default.Password.Trim()) == true)
            {

                if (PriEngine.Engine.Comercial.Artigos.Existe(codArtigo) == false)
                {
                    return null;
                }
                else
                {
                    StdBELista objList = PriEngine.Engine.Consulta("SELECT PVP1 AS preco FROM ArtigoMoeda am, Artigo a WHERE am.Artigo = a.Artigo");

                    objArtigo = PriEngine.Engine.Comercial.Artigos.Edita(codArtigo);

                    myArt.CodArtigo = objArtigo.get_Artigo();
                    myArt.DescArtigo = objArtigo.get_Descricao();
                    myArt.PrecoArtigo = objList.Valor("preco");
                    myArt.MarcaArtigo = objArtigo.get_Marca();
                    myArt.FamiliaArtigo = objArtigo.get_Familia();
                    myArt.SOArtigo = objArtigo.get_Observacoes();
                    myArt.DescontoArtigo = objArtigo.get_Desconto();

                    return myArt;
                }

            }
            else
            {
                return null;
            }
        }
Exemple #3
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);
            }
        }