Ejemplo n.º 1
0
        public static Model.RespostaErro Encomendas_New(Model.DocVenda dv)
        {
            Lib_Primavera.Model.RespostaErro erro = new Model.RespostaErro();
            GcpBEDocumentoVenda myEnc = new GcpBEDocumentoVenda();

            GcpBELinhaDocumentoVenda myLin = new GcpBELinhaDocumentoVenda();

            GcpBELinhasDocumentoVenda myLinhas = new GcpBELinhasDocumentoVenda();

            PreencheRelacaoVendas rl = new PreencheRelacaoVendas();
            List<Model.LinhaDocVenda> lstlindv = new List<Model.LinhaDocVenda>();

            try
            {
                if (PriEngine.InitializeCompany(FirstREST.Properties.Settings.Default.Company.Trim(), FirstREST.Properties.Settings.Default.User.Trim(), FirstREST.Properties.Settings.Default.Password.Trim()) == true)
                {
                    // Atribui valores ao cabecalho do doc
                    //myEnc.set_DataDoc(dv.Data);
                    myEnc.set_Entidade(dv.Entidade);
                    myEnc.set_TipoEntidade("C");
                    myEnc.set_Tipodoc("FA");
                    myEnc.set_Serie(dv.Serie);
                    myEnc.set_DataDoc(DateTime.Today);

                    // Linhas do documento para a lista de linhas
                    lstlindv = dv.LinhasDoc;
                    PriEngine.Engine.Comercial.Vendas.PreencheDadosRelacionados(myEnc, rl);
                    foreach (Model.LinhaDocVenda lin in lstlindv)
                    {
                        PriEngine.Engine.Comercial.Vendas.AdicionaLinha(myEnc, lin.CodArtigo, lin.Quantidade, "", "", lin.PrecoUnitario, lin.Desconto);
                    }

                    // PriEngine.Engine.Comercial.Compras.TransformaDocumento(

                    PriEngine.Engine.IniciaTransaccao();
                    PriEngine.Engine.Comercial.Vendas.Actualiza(myEnc, "Teste");
                    PriEngine.Engine.TerminaTransaccao();
                    erro.Erro = 0;
                    erro.Descricao = "Sucesso";
                    return erro;
                }
                else
                {
                    erro.Erro = 1;
                    erro.Descricao = "Erro ao abrir empresa";
                    return erro;

                }

            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine(ex.Message);

                PriEngine.Engine.DesfazTransaccao();
                erro.Erro = 1;
                erro.Descricao = ex.Message;
                return erro;
            }
        }
Ejemplo n.º 2
0
        public static GcpBEDocumentoVenda DocvendaToBEDocVenda(Model.DocVenda doc)
        {
            GcpBEDocumentoVenda ret = new GcpBEDocumentoVenda();

            ret.set_ID(doc.id);
            ret.set_Entidade(doc.Entidade);
            ret.set_NumDoc(doc.NumDoc);
            ret.set_DataDoc(doc.Data);
            ret.set_TotalMerc(doc.TotalMerc);
            ret.set_Serie(doc.Serie);
            GcpBELinhasDocumentoVenda linhasDoc = new GcpBELinhasDocumentoVenda();

            foreach(Lib_Primavera.Model.LinhaDocVenda linha in doc.LinhasDoc){
                GcpBELinhaDocumentoVenda l = new GcpBELinhaDocumentoVenda();
                l.set_AutoID(linha.IdCabecDoc);
                l.set_Artigo(linha.CodArtigo);
                l.set_Descricao(linha.DescArtigo);
                l.set_Quantidade(linha.Quantidade);
                l.set_Unidade(linha.Unidade);
                l.set_Desconto1(Convert.ToSingle(linha.Desconto));
                l.set_PrecUnit(linha.PrecoUnitario);
                l.set_TotalIliquido(linha.TotalILiquido);
                l.set_TotalDC(linha.TotalLiquido);

                linhasDoc.Insere(l);
            }
            ret.set_Linhas(linhasDoc);

            return ret;
        }
Ejemplo n.º 3
0
        public static Model.RespostaErro Encomendas_New(Model.DocVenda dv)
        {
            Lib_Primavera.Model.RespostaErro erro = new Model.RespostaErro();
            GcpBEDocumentoVenda myEnc = new GcpBEDocumentoVenda();

            GcpBELinhaDocumentoVenda myLin = new GcpBELinhaDocumentoVenda();

            GcpBELinhasDocumentoVenda myLinhas = new GcpBELinhasDocumentoVenda();

            PreencheRelacaoVendas rl = new PreencheRelacaoVendas();
            List<Model.LinhaDocVenda> lstlindv = new List<Model.LinhaDocVenda>();

            try
            {
                if (PriEngine.InitializeCompany(FirstREST.Properties.Settings.Default.Company.Trim(), FirstREST.Properties.Settings.Default.User.Trim(), FirstREST.Properties.Settings.Default.Password.Trim()) == true)
                {
                    // Atribui valores ao cabecalho do doc
                    //myEnc.set_DataDoc(dv.Data);

                    string serie = "C";
                    double desconto = 0.0;
                    string armazem = "A2";

                    myEnc.set_Entidade(dv.Entidade);
                    myEnc.set_Serie(serie);
                    //myEnc.set_Serie(dv.Serie);
                    myEnc.set_Tipodoc(dv.DocType);
                    myEnc.set_TipoEntidade("C");
                    // Linhas do documento para a lista de linhas
                    lstlindv = dv.LinhasDoc;

                    PriEngine.Engine.Comercial.Vendas.PreencheDadosRelacionados(myEnc, rl);

                    double pvp = 0;
                    if (dv.LinhasDoc != null)
                        foreach (Model.LinhaDocVenda lin in lstlindv)
                        {
                            pvp = PriEngine.Engine.Comercial.ArtigosPrecos.DaPrecoArtigoMoeda(lin.CodArtigo, "EUR", "UN", "PVP1", false, 0);
                            PriEngine.Engine.Comercial.Vendas.AdicionaLinha(myEnc, lin.CodArtigo, lin.Quantidade, armazem, "", pvp, desconto);
                        }
                    else
                    {

                        List<Model.Artigo> temp = GetCarrinhoUser(dv.Entidade).ID_Produtos;
                        foreach (Model.Artigo lin in temp)
                        {
                            pvp = PriEngine.Engine.Comercial.ArtigosPrecos.DaPrecoArtigoMoeda(lin.ID, "EUR", "UN", "PVP1", false, 0);
                            PriEngine.Engine.Comercial.Vendas.AdicionaLinha(myEnc, lin.ID, Int32.Parse(lin.Quantidade), lin.Armazem, "", pvp, desconto);
                        }
                    }

                    // PriEngine.Engine.Comercial.Compras.TransformaDocumento(

                    PriEngine.Engine.IniciaTransaccao();
                    PriEngine.Engine.Comercial.Vendas.Actualiza(myEnc, "Teste");
                    PriEngine.Engine.TerminaTransaccao();
                    erro.Erro = 0;
                    erro.Descricao = "Sucesso";
                    return erro;
                }
                else
                {
                    erro.Erro = 1;
                    erro.Descricao = "Erro ao abrir empresa";
                    return erro;

                }

            }
            catch (Exception ex)
            {
                try
                {
                    PriEngine.Engine.DesfazTransaccao();
                }
                catch { }
                erro.Erro = 1;
                erro.Descricao = ex.Message;
                return erro;
            }
        }
Ejemplo n.º 4
0
        public static Model.RespostaErro Encomendas_New(ref Model.DocVenda dv)
        {
            Lib_Primavera.Model.RespostaErro erro = new Model.RespostaErro();
            GcpBEDocumentoVenda myEnc = new GcpBEDocumentoVenda();

            GcpBELinhaDocumentoVenda myLin = new GcpBELinhaDocumentoVenda();

            GcpBELinhasDocumentoVenda myLinhas = new GcpBELinhasDocumentoVenda();

            PreencheRelacaoVendas rl = new PreencheRelacaoVendas();
            List<Model.LinhaDocVenda> lstlindv = new List<Model.LinhaDocVenda>();

            bool iniciouTransaccao = false;
            try
            {
                if (PriEngine.InitializeCompany(SINF.Properties.Settings.Default.Company.Trim(), SINF.Properties.Settings.Default.User.Trim(), SINF.Properties.Settings.Default.Password.Trim()) == true)
                {
                    // Atribui valores ao cabecalho do doc
                    //myEnc.set_DataDoc(dv.Data);
                    myEnc.set_Entidade(dv.Entidade);
                    myEnc.set_Serie("A");

                    myEnc.set_Tipodoc("ECL"); //encomenda cliente
                    myEnc.set_TipoEntidade("C");
                    // Linhas do documento para a lista de linhas
                    lstlindv = dv.LinhasDoc;
                    PriEngine.Engine.Comercial.Vendas.PreencheDadosRelacionados(myEnc, rl);
                    dv.Data = myEnc.get_DataDoc();
                    dv.id = myEnc.get_ID();

                    foreach (Model.LinhaDocVenda lin in lstlindv)
                    {
                        PriEngine.Engine.Comercial.Vendas.AdicionaLinha(myEnc, lin.CodArtigo, lin.Quantidade, "", "", lin.PrecoUnitario, lin.Desconto);
                    }

                    // PriEngine.Engine.Comercial.Compras.TransformaDocumento(

                    /*GcpBEDocumentoVenda myFac = new GcpBEDocumentoVenda();
                    myFac.set_Entidade(dv.Entidade);
                    myFac.set_Serie("A");
                    myEnc.set_Tipodoc("FS"); //factura simplificada
                    myFac.set_TipoEntidade("C");
                    myFac.set_IdDocOrigem(dv.id);
                    PriEngine.Engine.Comercial.Vendas.PreencheDadosRelacionados(myFac, rl);
                    foreach (Model.LinhaDocVenda lin in lstlindv)
                    {
                        PriEngine.Engine.Comercial.Vendas.AdicionaLinha(myFac, lin.CodArtigo, lin.Quantidade, "", "", lin.PrecoUnitario, lin.Desconto);
                    }*/

                    PriEngine.Engine.IniciaTransaccao();
                    iniciouTransaccao = true;
                    PriEngine.Engine.Comercial.Vendas.Actualiza(myEnc, "Teste");
                    //PriEngine.Engine.Comercial.Vendas.Actualiza(myFac, "Teste");
                    PriEngine.Engine.TerminaTransaccao();
                    iniciouTransaccao = false;

                    //dv.IdFactura = myFac.get_ID();

                    erro.Erro = 0;
                    erro.Descricao = "Sucesso";
                    return erro;
                }
                else
                {
                    erro.Erro = 1;
                    erro.Descricao = "Erro ao abrir empresa";
                    return erro;

                }

            }
            catch (Exception ex)
            {
                if(iniciouTransaccao)
                    PriEngine.Engine.DesfazTransaccao();
                erro.Erro = 1;
                erro.Descricao = ex.Message;
                return erro;
            }
        }
Ejemplo n.º 5
0
        public static Model.RespostaErro Encomendas_New(Model.DocVenda dv)
        {
            Lib_Primavera.Model.RespostaErro erro = new Model.RespostaErro();
            GcpBEDocumentoVenda myEnc = new GcpBEDocumentoVenda();
            GcpBEDocumentoVenda myFac = new GcpBEDocumentoVenda();
            GcpBELinhaDocumentoVenda myLin = new GcpBELinhaDocumentoVenda();
            GcpBELinhasDocumentoVenda myLinhas = new GcpBELinhasDocumentoVenda();
            PreencheRelacaoVendas rl = new PreencheRelacaoVendas();
            GcpBESerie serie = new GcpBESerie();
            List<Model.LinhaDocVenda> lstlindv = new List<Model.LinhaDocVenda>();
            try
            {
                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.Vendas.Existe("000", "ECL", "A", dv.NumDoc))
                    {
                        myEnc = PriEngine.Engine.Comercial.Vendas.Edita("000", "ECL", "A", dv.NumDoc);
                    }
                    myFac.set_NumDoc(myEnc.get_NumDoc());
                    myFac.set_Entidade(dv.Entidade);
                    myFac.set_TipoEntidade("C");
                    myFac.set_Tipodoc("FA");
                    myFac.set_Serie("D");
                    myFac.set_Assinatura(myEnc.get_Assinatura());

                    //Falta a Série do Doc Destino.Sugiro a utilização do método SeriePorDefeito mas para isso tb é necessario a data do doc destino
                    myFac.set_DataDoc(new DateTime());
                    serie.set_SeriePorDefeito(true);
                    //Usar o preenche dados relacionados do Doc Destino
                    String avisos = "";
                    PriEngine.Engine.Comercial.Vendas.PreencheDadosRelacionados(myFac, PreencheRelacaoVendas.vdDadosTodos);
                    //PriEngine.Engine.Comercial.Vendas.Actualiza(myFac, avisos);
                    erro.Descricao += "Actualiza: " + avisos;
                    List<GcpBEDocumentoVenda> l = new List<GcpBEDocumentoVenda>();
                    l.Add(myEnc);
                    //Deve ser usado o strAvisos e passar como parametro no metodo
                    //Devem ser removidas as transações
                    String strAvisos = "";
                    //PriEngine.Engine.IniciaTransaccao();
                    PriEngine.Engine.Comercial.Vendas.TransformaDocumentoEX(l.ToArray(), myFac, true, strAvisos);
                    //PriEngine.Engine.TerminaTransaccao();
                    if (strAvisos.Length > 0)
                    {
                        erro.Erro = 1;
                        erro.Descricao +=" Transforma Avsos: "+ strAvisos;
                    }
                    else
                    {
                        erro.Erro = 0;
                        erro.Descricao = "Sucesso";
                    }
                    return erro;
                }
                else
                {
                    erro.Erro = 1;
                    erro.Descricao = "Erro ao abrir empresa";
                    return erro;
                }
            }
            catch (Exception ex)
            {
                erro.Erro = 1;
                erro.Descricao +=" Excecao: " +ex.Message;
                return erro;
            }
        }
Ejemplo n.º 6
0
        public static Model.RespostaErro Encomendas_New(Model.DocVenda dv)
        {
            Lib_Primavera.Model.RespostaErro erro = new Model.RespostaErro();
            GcpBEDocumentoVenda myEnc = new GcpBEDocumentoVenda();

            GcpBELinhaDocumentoVenda myLin = new GcpBELinhaDocumentoVenda();

            GcpBELinhasDocumentoVenda myLinhas = new GcpBELinhasDocumentoVenda();

            PreencheRelacaoVendas rl = new PreencheRelacaoVendas();
            List<Model.LinhaDocVenda> lstlindv = new List<Model.LinhaDocVenda>();
            bool iniciaTransaccao = false;

            try
            {
                if (PriEngine.InitializeCompany(FirstREST.Properties.Settings.Default.Company.Trim(), FirstREST.Properties.Settings.Default.User.Trim(), FirstREST.Properties.Settings.Default.Password.Trim()) == true)
                {
                    // Atribui valores ao cabecalho do doc
                    //myEnc.set_DataDoc(dv.Data);
                    myEnc.set_Entidade(dv.Entidade);
                    myEnc.set_Serie("C");
                    myEnc.set_Tipodoc("ECL");
                    myEnc.set_TipoEntidade("C");
                    myEnc.set_CondPag("1");

                    myEnc.set_Seccao("2");
                    myEnc.set_Origem("Web");

                    // Linhas do documento para a lista de linhas
                    lstlindv = dv.LinhasDoc;
                    StdBELista objList;
                    PriEngine.Engine.Comercial.Vendas.PreencheDadosRelacionados(myEnc, rl);
                    foreach (Model.LinhaDocVenda lin in lstlindv)
                    {
                        string st = "SELECT PVP1 From ArtigoMoeda WHERE Artigo='" + lin.CodArtigo + "'";
                        objList = PriEngine.Engine.Consulta(st);
                        double pvp = objList.Valor("PVP1");

                        PriEngine.Engine.Comercial.Vendas.AdicionaLinha(myEnc, lin.CodArtigo, lin.Quantidade, "", "", pvp, 0);
                    }

                   // PriEngine.Engine.Comercial.Compras.TransformaDocumento(
                    iniciaTransaccao = true;
                    PriEngine.Engine.IniciaTransaccao();
                    PriEngine.Engine.Comercial.Vendas.Actualiza(myEnc, "Teste");
                    PriEngine.Engine.TerminaTransaccao();
                    iniciaTransaccao = false;
                    erro.Erro = 0;
                    erro.Descricao = "Sucesso";
                    return erro;
                }
                else
                {
                    erro.Erro = 1;
                    erro.Descricao = "Erro ao abrir empresa";
                    return erro;

                }

            }
            catch (Exception ex)
            {
                if (iniciaTransaccao)
                 PriEngine.Engine.DesfazTransaccao();
                erro.Erro = 1;
                erro.Descricao = ex.Message;
                return erro;
            }
        }
Ejemplo n.º 7
0
        // ------ Documentos de venda ----------------------
        public static Model.RespostaErro Encomendas_New(Model.DocVenda dv)
        {
            Lib_Primavera.Model.RespostaErro erro = new Model.RespostaErro();
            GcpBEDocumentoVenda myEnc = new GcpBEDocumentoVenda();

            GcpBELinhaDocumentoVenda myLin = new GcpBELinhaDocumentoVenda();

            GcpBELinhasDocumentoVenda myLinhas = new GcpBELinhasDocumentoVenda();

            PreencheRelacaoVendas rl = new PreencheRelacaoVendas();
            List<Model.LinhaDocVenda> lstlindv = new List<Model.LinhaDocVenda>();

            try
            {
                if (PriEngine.InitializeCompany(COMPANYNAME, USERNAME, PASSWORD) == true)
                {
                    // Atribui valores ao cabecalho do doc
                    //myEnc.set_DataDoc(dv.Data);
                    myEnc.set_Entidade(dv.Entidade);
                    myEnc.set_Serie(dv.Serie);
                    myEnc.set_Tipodoc("ECL");
                    myEnc.set_TipoEntidade("C");
                    myEnc.set_CondPag(dv.CondPag); //pronto pagamento
                    myEnc.set_ModoPag(dv.ModoPag);
                    // Linhas do documento para a lista de linhas
                    lstlindv = dv.LinhasDoc;
                    PriEngine.Engine.Comercial.Vendas.PreencheDadosRelacionados(myEnc, rl);
                    foreach (Model.LinhaDocVenda lin in lstlindv)
                    {
                        PriEngine.Engine.Comercial.Vendas.AdicionaLinha(myEnc, lin.CodArtigo, lin.Quantidade, "", "", lin.PrecoUnitario, lin.Desconto);
                    }

                   // PriEngine.Engine.Comercial.Compras.TransformaDocumento(

                    PriEngine.Engine.IniciaTransaccao();
                    PriEngine.Engine.Comercial.Vendas.Actualiza(myEnc, "Teste");
                    PriEngine.Engine.TerminaTransaccao();
                    erro.Erro = 0;
                    erro.Descricao = "Sucesso";
                    return erro;
                }
                else
                {
                    erro.Erro = 1;
                    erro.Descricao = "Erro ao abrir empresa";
                    return erro;

                }

            }
            catch (Exception ex)
            {
                PriEngine.Engine.DesfazTransaccao();
                erro.Erro = 1;
                erro.Descricao = ex.Message;
                return erro;
            }
        }
Ejemplo n.º 8
0
        public static Boolean UpdateLinhaDocEstado(string codArtigo, int estado, string numDoc, string descricao)
        {
            Lib_Primavera.Model.RespostaErro erro = new Model.RespostaErro();

            StdBELista LinhasDoc;
            StdBELista IDcabecDoc;

            var dv = new GcpBEDocumentoVenda();

            if (PriEngine.InitializeCompany(FirstREST.Properties.Settings.Default.Company.Trim(), FirstREST.Properties.Settings.Default.User.Trim(), FirstREST.Properties.Settings.Default.Password.Trim()) == true)
            {
                IDcabecDoc = PriEngine.Engine.Consulta("SELECT id from CabecDoc where TipoDoc='FA' AND NumDoc='" + numDoc + "'");

                string idCabecDoc = IDcabecDoc.Valor("id");

                GcpBELinhaDocumentoVenda ld = new GcpBELinhaDocumentoVenda();

                LinhasDoc = PriEngine.Engine.Consulta("SELECT idCabecDoc, Artigo, Descricao, Quantidade, Unidade, PrecUnit, Desconto1, TotalILiquido, PrecoLiquido from LinhasDoc where IdCabecDoc='" + idCabecDoc + "'" + "AND Artigo=" + codArtigo);

                ld.set_Artigo(LinhasDoc.Valor("Arigo"));
                ld.set_Descricao(LinhasDoc.Valor("Descricao"));
                ld.set_Quantidade(LinhasDoc.Valor("Quantidade"));
                ld.set_Unidade(LinhasDoc.Valor("Unidade"));
                ld.set_PrecUnit(LinhasDoc.Valor("PrecUnit"));
                ld.set_Desconto1(LinhasDoc.Valor("Desconto1"));
                ld.set_TotalIliquido(LinhasDoc.Valor("TotalIliquido"));
                ld.set_PrecoLiquido(LinhasDoc.Valor("PrecoLiquido"));

                StdBECampos campos = new StdBECampos();
                StdBECampo camp_status = new StdBECampo();
                camp_status.Nome = "CDU_Status";
                camp_status.Valor = estado;
                campos.Insere(camp_status);
                StdBECampo camp_desc = new StdBECampo();
                camp_desc.Nome = ("CDU_Descricao");
                camp_desc.Valor = descricao;
                campos.Insere(camp_desc);

                ld.set_CamposUtil(campos);

                // PriEngine.Engine.Comercial.Vendas.

                return true;
            }

            return false;
        }