private void TotalizaCupons() { LblTotal.Text = "Total: " + Convert.ToString(DadosCupom.SomaLista(ListaCuponsExibicao)); }
private void AbrePasta_Click(object sender, EventArgs e) { string valor = "0"; string dtemissao = ""; string hremissao = ""; string numerocupom = "0"; string id = ""; string chcanc = ""; string valorICMS = "0"; System.DateTime varData; decimal varValor; int varNumeroCupom; string varId; string varChCanc; decimal varValorICMS; List <DadosCupom> lCupons = new List <DadosCupom>(); Hashtable hashtableCupons = new Hashtable(); //define as propriedades do controle //OpenFileDialog this.ofd1.Multiselect = true; this.ofd1.Title = "Selecionar pasta arquivos SAT"; ofd1.InitialDirectory = @"C:\"; //filtra para exibir somente arquivos de imagens ofd1.Filter = "Images (*.XML)|*.XML|" + "All files (*.*)|*.*"; ofd1.CheckFileExists = true; ofd1.CheckPathExists = true; ofd1.FilterIndex = 2; ofd1.RestoreDirectory = true; ofd1.ReadOnlyChecked = true; ofd1.ShowReadOnly = true; DialogResult dr = this.ofd1.ShowDialog(); if (dr == System.Windows.Forms.DialogResult.OK) { Pasta = Path.GetDirectoryName(ofd1.FileName); DirectoryInfo Dir = new DirectoryInfo(Pasta); FileInfo[] Files = Dir.GetFiles("*", SearchOption.AllDirectories).OrderBy(p => p.CreationTimeUtc).ToArray(); txtCaminhoXML.Text = Pasta.ToString(); // Le os arquivos selecionados foreach (FileInfo File in Files) { // cria um PictureBox try { XmlTextReader reader = new XmlTextReader(File.FullName); valor = "0"; dtemissao = ""; hremissao = ""; numerocupom = "0"; id = ""; chcanc = ""; valorICMS = "0"; varValor = 0; varNumeroCupom = 0; varId = ""; varChCanc = ""; varValorICMS = 0; while ((reader.Read())) { if (reader.NodeType == XmlNodeType.Element) { switch (reader.Name) { case "vCFe": valor = reader.ReadString(); break; case "dEmi": dtemissao = reader.ReadString(); break; case "hEmi": hremissao = reader.ReadString(); break; case "nCFe": numerocupom = reader.ReadString(); break; case "infCFe": id = reader.GetAttribute("Id"); chcanc = reader.GetAttribute("chCanc") ?? ""; break; case "vICMS": valorICMS = reader.ReadString(); break; } } } DateTimeFormatInfo usDtfi = new CultureInfo("pt-PT", false).DateTimeFormat; varData = Convert.ToDateTime(dtemissao.Substring(6, 2) + "/" + dtemissao.Substring(4, 2) + "/" + dtemissao.Substring(0, 4) + " " + hremissao.Substring(0, 2) + ":" + hremissao.Substring(2, 2) + ":" + hremissao.Substring(4, 2), usDtfi); varValor = Convert.ToDecimal(valor, new CultureInfo("en-US")); varNumeroCupom = Convert.ToInt32(numerocupom); varId = Convert.ToString(id); varChCanc = Convert.ToString(chcanc); varValorICMS = Convert.ToDecimal(valorICMS, new CultureInfo("en-US")); if (varChCanc.Length > 0) { if (hashtableCupons.ContainsKey(varChCanc)) { ((DadosCupom)hashtableCupons[varChCanc]).chcanc = varId; } else { hashtableCupons.Add(varId, new DadosCupom(0, varData, 0, varChCanc, varId, 0)); } } else { if (hashtableCupons.ContainsKey(varId)) { ((DadosCupom)hashtableCupons[varId]).Numero = varNumeroCupom; ((DadosCupom)hashtableCupons[varId]).Data = varData; ((DadosCupom)hashtableCupons[varId]).Valor = varValor; ((DadosCupom)hashtableCupons[varId]).ValorICMS = varValorICMS; } else { hashtableCupons.Add(varId, new DadosCupom(varNumeroCupom, varData, varValor, varId, varChCanc, varValorICMS)); } } } catch (SecurityException ex) { // O usuário não possui permissão para ler arquivos MessageBox.Show("Erro de segurança Contate o administrador de segurança da rede.\n\n" + "Mensagem : " + ex.Message + "\n\n" + "Detalhes (enviar ao suporte):\n\n" + ex.StackTrace); } catch (Exception ex) { // Não pode carregar a imagem (problemas de permissão) MessageBox.Show(". Você pode não ter permissão para ler o arquivo , ou " + " ele pode estar corrompido.\n\nErro reportado : " + ex.Message); } } LblTotal.Text = "Total: " + Convert.ToString(DadosCupom.Soma(hashtableCupons)); List <DadosCupom> hashToList = new List <DadosCupom>(); foreach (DictionaryEntry de in hashtableCupons) { hashToList.Add((DadosCupom)de.Value); } //Teoricamente ordenar aqui SortedList = hashToList.OrderBy(o => o.Data).ToList(); foreach (DadosCupom d in SortedList) { ListaCuponsExibicao.Add(d); } FiltraListaCupons(); CarregaGradeCupons(); } }