Ejemplo n.º 1
0
        public List <Artigo> ObterListaArtigosFicheiro(string fullPath, string Nome, string PLU)
        {
            List <Artigo> LstArtigos = new List <Artigo>();

            if (File.Exists(fullPath))
            {
                FileInfo file   = new FileInfo(fullPath);
                string[] linhas = File.ReadAllLines(file.FullName);

                if (file.Name.Contains("SCAL29999"))
                {
                    foreach (var linha in linhas)
                    {
                        int.TryParse(linha.ToString().Substring(37, 5), out int IdArtigo);
                        double precoPromocao = 0;
                        double preco         = 0;

                        switch (linha.ToString().Substring(82, 1))
                        {
                        case "1":
                            double.TryParse(linha.ToString().Substring(84, 5) + "," + linha.ToString().Substring(89, 2), out preco);
                            double.TryParse(linha.ToString().Substring(59, 5) + "," + linha.ToString().Substring(64, 2), out precoPromocao);
                            break;

                        case "0":
                            double.TryParse(linha.ToString().Substring(59, 5) + "," + linha.ToString().Substring(64, 2), out preco);
                            double.TryParse(linha.ToString().Substring(84, 5) + "," + linha.ToString().Substring(89, 2), out precoPromocao);
                            break;
                        }

                        DateTime dataAtualizacao = file.LastWriteTime;


                        Promocao promocao = precoPromocao == 0 ? new Promocao() : new Promocao
                        {
                            IdArtigo      = IdArtigo,
                            PrecoPromocao = precoPromocao,
                            PromocaoAtiva = true
                        };

                        Artigo artigo = new Artigo
                        {
                            IdArtigo          = IdArtigo,
                            NomeArtigo        = linha.Substring(2, 24),
                            UltimaAtualizacao = dataAtualizacao,
                            Preco             = preco,
                            Promocao          = promocao
                        };

                        if (IdArtigo.ToString().Contains(PLU) && artigo.NomeArtigo.Contains(Nome, StringComparison.CurrentCultureIgnoreCase))
                        {
                            int index = LstArtigos.IndexOf(LstArtigos.Where(a => a.IdArtigo == IdArtigo).FirstOrDefault());

                            if (index >= 0)
                            {
                                LstArtigos[index] = artigo;
                            }
                            else
                            {
                                LstArtigos.Add(artigo);
                            }
                        }
                    }
                }
            }
            return(LstArtigos);
        }
Ejemplo n.º 2
0
        public List <Artigo> ObterListaArtigosBalanca(int IdBalanca, string Nome, string PLU)
        {
            List <Artigo> LstArtigos = new List <Artigo>();

            Balanca balanca = ObterBalanca(IdBalanca);

            if (Directory.Exists(ComunicacionesLogs))
            {
                DirectoryInfo info  = new DirectoryInfo(ComunicacionesLogs);
                FileInfo[]    files = info.GetFiles().OrderBy(p => p.CreationTime).ToArray();

                foreach (FileInfo file in files)
                {
                    if (!file.Name.Contains("commL"))
                    {
                        string[] linhas   = File.ReadAllLines(file.FullName);
                        bool     lerLinha = false;
                        foreach (var linha in linhas)
                        {
                            if (lerLinha && linha.Length == 177 && (linha.ToString().Substring(47, 4) == balanca.DirecaoLogica + balanca.RegistoArtigo) && (linha.ToString().Substring(53, 1) != "B"))
                            {
                                int.TryParse(linha.ToString().Substring(54, 6), out int IdArtigo);
                                double.TryParse(linha.ToString().Substring(135, 6) + "," + linha.ToString().Substring(141, 2), out double preco);
                                double.TryParse(linha.ToString().Substring(143, 6) + "," + linha.ToString().Substring(149, 2), out double precoPromocao);

                                string Data = linha.Substring(0, 10) + " " + linha.Substring(12, 8);
                                DateTime.TryParse(Data, out DateTime dataAtualizacao);

                                Artigo artigo = new Artigo
                                {
                                    IdArtigo          = IdArtigo,
                                    NomeArtigo        = linha.Substring(63, 48),
                                    UltimaAtualizacao = dataAtualizacao
                                };
                                if (precoPromocao == 0)
                                {
                                    artigo.Preco = preco;
                                }
                                else
                                {
                                    artigo.Preco = precoPromocao;
                                }

                                if (IdArtigo.ToString().Contains(PLU) && artigo.NomeArtigo.Contains(Nome, StringComparison.CurrentCultureIgnoreCase))
                                {
                                    int index = LstArtigos.IndexOf(LstArtigos.Where(a => a.IdArtigo == IdArtigo).FirstOrDefault());

                                    if (index >= 0)
                                    {
                                        LstArtigos[index] = artigo;
                                    }
                                    else
                                    {
                                        LstArtigos.Add(artigo);
                                    }
                                }
                            }

                            if (linha.ToString().Contains("Socket cliente abierto correctamente. IP Balanza:"))
                            {
                                lerLinha = (ObterIPString(linha.ToString()) == balanca.Dir_IP);
                            }
                        }
                    }
                }
            }

            return(LstArtigos.OrderByDescending(o => o.UltimaAtualizacao).ToList());
        }