Пример #1
0
        public static List <Model.DocVenda> Encomendas_List()
        {
            StdBELista objListCab;
            StdBELista objListLin;

            Model.DocVenda        dv     = new Model.DocVenda();
            List <Model.DocVenda> listdv = new List <Model.DocVenda>();

            Model.LinhaDocVenda        lindv     = new Model.LinhaDocVenda();
            List <Model.LinhaDocVenda> listlindv = new
                                                   List <Model.LinhaDocVenda>();

            if (PriEngine.InitializeCompany(ElectroSinf.Properties.Settings.Default.Company.Trim(), ElectroSinf.Properties.Settings.Default.User.Trim(), ElectroSinf.Properties.Settings.Default.Password.Trim()) == true)
            {
                objListCab = PriEngine.Engine.Consulta("SELECT id, Entidade, Data, NumDoc, TotalMerc, Serie From CabecDoc where TipoDoc='FA'");
                while (!objListCab.NoFim())
                {
                    dv           = new Model.DocVenda();
                    dv.id        = objListCab.Valor("id");
                    dv.Entidade  = objListCab.Valor("Entidade");
                    dv.NumDoc    = objListCab.Valor("NumDoc");
                    dv.Data      = objListCab.Valor("Data");
                    dv.TotalMerc = objListCab.Valor("TotalMerc");
                    dv.Serie     = objListCab.Valor("Serie");
                    objListLin   = PriEngine.Engine.Consulta("SELECT idCabecDoc, Artigo, Descricao, Quantidade, Unidade, PrecUnit, Desconto1, TotalILiquido, PrecoLiquido from LinhasDoc where IdCabecDoc='" + dv.id + "' order By NumLinha");
                    listlindv    = new List <Model.LinhaDocVenda>();

                    while (!objListLin.NoFim())
                    {
                        lindv               = new Model.LinhaDocVenda();
                        lindv.IdCabecDoc    = objListLin.Valor("idCabecDoc");
                        lindv.CodArtigo     = objListLin.Valor("Artigo");
                        lindv.DescArtigo    = objListLin.Valor("Descricao");
                        lindv.Quantidade    = objListLin.Valor("Quantidade");
                        lindv.Unidade       = objListLin.Valor("Unidade");
                        lindv.Desconto      = objListLin.Valor("Desconto1");
                        lindv.PrecoUnitario = objListLin.Valor("PrecUnit");
                        lindv.TotalILiquido = objListLin.Valor("TotalILiquido");
                        lindv.TotalLiquido  = objListLin.Valor("PrecoLiquido");

                        listlindv.Add(lindv);
                        objListLin.Seguinte();
                    }

                    dv.LinhasDoc = listlindv;
                    listdv.Add(dv);
                    objListCab.Seguinte();
                }
            }
            return(listdv);
        }
Пример #2
0
        public static List <Model.DocVenda> GET_Pedidos(string idCliente)
        {
            StdBELista                 objList, objListLin;
            List <Model.DocVenda>      listdv    = new List <Model.DocVenda>();
            List <Model.LinhaDocVenda> listlindv = new List <Model.LinhaDocVenda>();
            LinhaDocVenda              lindv;

            if (PriEngine.InitializeCompany(ElectroSinf.Properties.Settings.Default.Company.Trim(), ElectroSinf.Properties.Settings.Default.User.Trim(), ElectroSinf.Properties.Settings.Default.Password.Trim()) == true)
            {
                objList = PriEngine.Engine.Consulta("select Id,Data, Estado from CabecDoc JOIN CabecDocStatus ON CabecDoc.Id = CabecDocStatus.IdCabecDoc where TipoDoc = 'ECL' and Entidade = '" + idCliente + "'");
                while (!objList.NoFim())
                {
                    Model.DocVenda dv = new Model.DocVenda();
                    dv.id   = objList.Valor("Id");
                    dv.Data = objList.Valor("Data");
                    if (objList.Valor("Estado") == "T")
                    {
                        dv.estado = "Pronto";
                    }
                    else if (objList.Valor("Estado") == "P")
                    {
                        dv.estado = "Em Espera";
                    }
                    else
                    {
                        dv.estado = "Anulado";
                    }

                    objListLin = PriEngine.Engine.Consulta("SELECT Artigo,Descricao,Quantidade from LinhasDoc where IdCabecDoc='" + dv.id + "' order By NumLinha");
                    listlindv  = new List <Model.LinhaDocVenda>();

                    while (!objListLin.NoFim())
                    {
                        lindv            = new Model.LinhaDocVenda();
                        lindv.DescArtigo = objListLin.Valor("Descricao");
                        lindv.CodArtigo  = objListLin.Valor("Artigo");
                        lindv.Quantidade = objListLin.Valor("Quantidade");
                        listlindv.Add(lindv);
                        objListLin.Seguinte();
                    }

                    dv.LinhasDoc = listlindv;

                    listdv.Add(dv);
                    objList.Seguinte();
                }
            }
            return(listdv);
        }
Пример #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(ElectroSinf.Properties.Settings.Default.Company.Trim(), ElectroSinf.Properties.Settings.Default.User.Trim(), ElectroSinf.Properties.Settings.Default.Password.Trim()) == true)
                {
                    //atributos que por enquanto não são dinamicos:
                    string serie    = "1";
                    double desconto = 0.0;
                    string armazem  = "A1";

                    // Atribui valores ao cabecalho do doc
                    myEnc.set_Entidade(dv.Entidade);
                    myEnc.set_Serie(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     pvp1 = 0, quantidade = 0;
                    string     idArtigo = "";
                    int        Stock    = 0;
                    StdBELista carrinho = PriEngine.Engine.Consulta("SELECT * FROM TDU_Carrinho WHERE CDU_IdCliente='" + dv.Entidade + "'");
                    while (!carrinho.NoFim())
                    {
                        idArtigo   = carrinho.Valor("CDU_IdArtigo");
                        quantidade = Convert.ToDouble(carrinho.Valor("CDU_Quantidade"));
                        armazem    = carrinho.Valor("CDU_Armazem");
                        Stock      = (int)PriEngine.Engine.Comercial.ArtigosArmazens.DaStockArtigo(idArtigo);
                        //ARMAZEM
                        if (quantidade > Stock)
                        {
                            erro.Erro      = 1;
                            erro.Descricao = "quantidadeErrada";
                            return(erro);
                        }
                        pvp1 = PriEngine.Engine.Comercial.ArtigosPrecos.DaPrecoArtigoMoeda(idArtigo, "EUR", "UN", "PVP1", false, 0);
                        PriEngine.Engine.Comercial.Vendas.AdicionaLinha(myEnc, idArtigo, quantidade, armazem, "", pvp1, desconto);
                        carrinho.Seguinte();
                    }

                    /*
                     * foreach (Model.LinhaDocVenda lin in lstlindv)
                     * {
                     *  pvp1 = PriEngine.Engine.Comercial.ArtigosPrecos.DaPrecoArtigoMoeda(lin.CodArtigo, "EUR", "UN", "PVP1", false, 0);
                     *  PriEngine.Engine.Comercial.Vendas.AdicionaLinha(myEnc, lin.CodArtigo, lin.Quantidade, armazem, "", pvp1, desconto);
                     * }
                     */
                    PriEngine.Engine.IniciaTransaccao();
                    PriEngine.Engine.Comercial.Vendas.Actualiza(myEnc, "Teste");
                    PriEngine.Engine.TerminaTransaccao();
                    erro.Erro      = 0;
                    erro.Descricao = "Sucesso";
                    carrinho.Inicio();
                    while (!carrinho.NoFim())
                    {
                        idArtigo = carrinho.Valor("CDU_IdArtigo");
                        StdBECamposChave tdu_carrinho = new StdBECamposChave();
                        tdu_carrinho.AddCampoChave("CDU_IdCliente", dv.Entidade);
                        tdu_carrinho.AddCampoChave("CDU_IdArtigo", idArtigo);
                        PriEngine.Engine.TabelasUtilizador.Remove("TDU_Carrinho", tdu_carrinho);
                        carrinho.Seguinte();
                    }
                    return(erro);
                }
                else
                {
                    erro.Erro      = 1;
                    erro.Descricao = "Erro ao abrir empresa";
                    return(erro);
                }
            }
            catch (Exception ex)
            {
                try
                {
                    PriEngine.Engine.DesfazTransaccao();
                }
                catch (Exception)
                {
                }
                erro.Erro      = 1;
                erro.Descricao = ex.Message;
                Console.Write(erro.Descricao);
                return(erro);
            }
        }