Example #1
0
        public override void ArtigoIdentificado(string Artigo, int NumLinha, ref bool Cancel, ExtensibilityEventArgs e)
        {
            bool inserido = false;

            for (int i = 0; i < lista_artigo.Count; i++)
            {
                if (lista_artigo[i].artigo == Artigo)
                {
                    inserido = true;
                    PSO.Dialogos.MostraAviso("O Artigo " + Artigo + " Ja foi inserido!");
                    Cancel = true;
                }
            }

            if (inserido == false)
            {
                if (isArtigoConjunto(Artigo) == true)
                {
                    artigo_conjunto               = new ArtigoConjunto();;
                    artigo_conjunto.artigo        = Artigo;
                    artigo_conjunto.descricao     = this.DocumentoVenda.Linhas.GetEdita(NumLinha).Descricao;
                    artigo_conjunto.linha_inicial = NumLinha;
                    StdBELista tblArtigo = new StdBELista();

                    try
                    {
                        tblArtigo = BSO.Consulta("select count(*) as total from ComponentesArtigos  where ArtigoComposto =  '" + Artigo + "'");


                        //alterar armazem dos artigos na linha
                        if (tblArtigo.Vazia() == false)
                        {
                            artigo_conjunto.total_linha = tblArtigo.DaValor <int>("total");
                            artigo_conjunto.linha_final = artigo_conjunto.linha_inicial + artigo_conjunto.total_linha;
                            lista_artigo.Add(artigo_conjunto);
                        }
                    }
                    catch (Exception err)
                    {
                        PSO.Dialogos.MostraErro("[ArtigoIdentificado]: " + err.ToString());
                    }
                }
            }
            base.ArtigoIdentificado(Artigo, NumLinha, ref Cancel, e);
        }
Example #2
0
        public override void ValidaLinha(int NumLinha, ExtensibilityEventArgs e)
        {
            StdBELista tblArtigoMoeda  = new StdBELista();
            string     artigoLinha     = "";
            string     armazemSugestao = "";
            string     localSugestao   = "";

            bool       calcula      = false;
            StdBELista tblArtigo    = new StdBELista();
            StdBELista tblDocumento = new StdBELista();

            linha = this.DocumentoVenda.Linhas.GetEdita(NumLinha);



            try
            {
                documento    = this.DocumentoVenda.Tipodoc;
                tblDocumento = BSO.Consulta("select ArmazemSugestao, LocalSugestao from SeriesVendas where TipoDoc = '" + documento + "'");


                //alterar armazem dos artigos na linha
                if (tblDocumento.Vazia() == false)
                {
                    armazemSugestao = tblDocumento.DaValor <string>("ArmazemSugestao");
                    localSugestao   = tblDocumento.DaValor <string>("LocalSugestao");


                    string linhaval = linha.Armazem;
                    quantidade = linha.Quantidade;
                    if (armazemSugestao.Length > 0)
                    {
                        linha.Armazem     = armazemSugestao;
                        linha.Localizacao = localSugestao;
                    }
                }
            }
            catch (Exception err)
            {
                PSO.Dialogos.MostraErro("[Consulta Documento]: " + err.ToString());
            }

            try
            {
                cliente        = this.DocumentoVenda.Entidade;
                artigoLinha    = linha.Artigo;
                tblArtigo      = BSO.Consulta("select * from Artigo where Artigo = '" + artigoLinha + "'");
                calcula        = (bool)tblArtigo.Valor("CDU_Calculo");
                tblArtigoMoeda = BSO.Consulta("select * from ArtigoMoeda where Artigo = '" + artigoLinha + "'");
            }
            catch (Exception err)
            {
                PSO.Dialogos.MostraErro("[Consulta Artigo e ArtigoMoeda]: " + err.ToString());
            }



            StdBELista tblDesconto = null;
            float      descValor   = 0;

            if (tblArtigoMoeda != null)
            {
                pvp1 = tblArtigoMoeda.DaValor <float>("PVP1");

                float precBase = float.Parse(linha.CamposUtil["CDU_PrecBase"].Valor.ToString());
                if (precBase == 0 || precBase == pvp1)
                {
                    linha.CamposUtil["CDU_PrecBase"].Valor = pvp1;
                }
            }


            if (tblArtigo != null)
            {
                if (calcula == true)
                {
                    artigo = artigoLinha;

                    try
                    {
                        tblDesconto = BSO.Consulta("select * from TDU_DescCliente where CDU_Cliente = '" + cliente + "' and CDU_Artigo = '" + artigo + "'");
                        if (tblDesconto.Vazia() == false)
                        {
                            descValor = tblDesconto.DaValor <float>("CDU_Desconto");
                        }
                        else
                        {
                            descValor = 0;
                        }
                    }
                    catch (Exception err)
                    {
                        tblDesconto = null;
                        descValor   = 0;
                        PSO.Dialogos.MostraErro("[Consulta Desconto cliente]: " + err.ToString());
                    }



                    if (tblDesconto != null)
                    {
                        float linhaval = float.Parse(linha.CamposUtil["CDU_DescVal"].Valor.ToString());
                        if (linhaval == 0 || linhaval == descValor)
                        {
                            linha.CamposUtil["CDU_DescVal"].Valor = descValor;
                        }
                    }

                    getLinhaValores(NumLinha);

                    linha.PrecUnit = pbase - desconto - comp;
                }
            }

            int size = this.DocumentoVenda.Linhas.NumItens;


            for (int x = 0; x < lista_artigo.Count; x++)
            {
                ArtigoConjunto a = lista_artigo[x];


                if (NumLinha >= a.linha_inicial && NumLinha <= a.linha_final)
                {
                    if (size >= a.linha_final)
                    {
                        for (int i = a.linha_inicial; i <= a.linha_final; i++)
                        {
                            artigoLinha = DocumentoVenda.Linhas.GetEdita(i).Artigo;
                            DocumentoVenda.Linhas.GetEdita(i).Quantidade = quantidade;
                        }
                    }
                }
            }


            base.ValidaLinha(NumLinha, e);
        }