public void addMovimento(OFX_Movimento movimento) { if (this.movimento == null) { this.movimento = new ArrayList(); } this.movimento.Add(movimento); }
//Construtor da classe public frmConcilia(object ListaTitulos, OFX_Movimento pMovimento, ref Conciliado devolverConciliado) { InitializeComponent(); this.listaTitulos = ListaTitulos; this.movimento = pMovimento; //Monta o grid e as labels dtgConcilia.AutoGenerateColumns = false; dtgConcilia.DataSource = ListaTitulos; dtgConcilia.Columns[5].DefaultCellStyle.Format = "C"; lblMovimento.Text = Convert.ToString(pMovimento.Data.Day + "/" + pMovimento.Data.Month + "/" + pMovimento.Data.Year); lblDescricao.Text = Convert.ToString(pMovimento.Descricao); lblValor.Text = Convert.ToString(pMovimento.Valor); //Atribui o ponteiro a uma variavel local para ser alterada dvConciliado = devolverConciliado; }
// Retorna objeto Extrato com os dados do OFX. public static OFX_Extrato getExtrato(String ofxOrigem) { Boolean temTransacao = false; Boolean temCabecalho = false; Boolean temDadosConta = false; Boolean temDadosPrincipaisExtrato = false; // Transformar em arquivo XML exportToXML(ofxOrigem, ofxOrigem + ".xml"); // Variáveis úteis para o Parse String elementoSendoLido = ""; OFX_Movimento transacaoAtual = null; // Variávies utilizadas para a leitura do XML OFX_HeaderExtrato cabecalho = new OFX_HeaderExtrato(); OFX_Conta conta = new OFX_Conta(); OFX_Extrato extrato = new OFX_Extrato(cabecalho, conta, ""); // Lendo o XML XmlTextReader meuXml = new XmlTextReader(ofxOrigem + ".xml"); try { while (meuXml.Read()) { if (meuXml.NodeType == XmlNodeType.EndElement) { switch (meuXml.Name) { case "STMTTRN": if (transacaoAtual != null) { extrato.addMovimento(transacaoAtual); transacaoAtual = null; temTransacao = true; } break; } } if (meuXml.NodeType == XmlNodeType.Element) { elementoSendoLido = meuXml.Name; switch (elementoSendoLido) { case "STMTTRN": transacaoAtual = new OFX_Movimento(); break; } } if (meuXml.NodeType == XmlNodeType.Text) { switch (elementoSendoLido) { case "DTSERVER": //cabecalho.DataServidor = convertOfxDateToDateTime(meuXml.Value); temCabecalho = true; break; case "LANGUAGE": cabecalho.Idioma = meuXml.Value; temCabecalho = true; break; case "ORG": cabecalho.NomeBanco = meuXml.Value; temCabecalho = true; break; case "DTSTART": extrato.DataInicio = convertOfxDateToDateTime(meuXml.Value); temDadosPrincipaisExtrato = true; break; case "DTEND": extrato.DataFinal = convertOfxDateToDateTime(meuXml.Value); temDadosPrincipaisExtrato = true; break; case "BANKID": conta.Banco = new OFX_Banco(Convert.ToInt32(meuXml.Value), ""); temDadosConta = true; break; case "BRANCHID": conta.Agencia = meuXml.Value; temDadosConta = true; break; case "ACCTID": conta.nConta = meuXml.Value; temDadosConta = true; break; case "ACCTTYPE": conta.Tipo = meuXml.Value; temDadosConta = true; break; case "TRNTYPE": transacaoAtual.Tipo = meuXml.Value; break; case "DTPOSTED": transacaoAtual.Data = convertOfxDateToDateTime(meuXml.Value); break; case "TRNAMT": transacaoAtual.Valor = Convert.ToDouble(meuXml.Value.Replace('.', ',')); break; case "FITID": transacaoAtual.Id = meuXml.Value; break; case "CHECKNUM": transacaoAtual.Checksum = Convert.ToInt64(meuXml.Value); break; case "MEMO": transacaoAtual.Descricao = meuXml.Value; break; } } } } catch (XmlException ex) { throw new OFXErros(Convert.ToString(ex.Message + "OFX Inválido!")); } finally { meuXml.Close(); } if ((temCabecalho == false) || (temDadosConta == false) || (temDadosPrincipaisExtrato == false)) { throw new OFXErros("OFX Inválido!"); } return(extrato); }
// Retorna objeto Extrato com os dados do OFX. public static OFX_Extrato getExtrato(String ofxOrigem) { Boolean temTransacao = false; Boolean temCabecalho = false; Boolean temDadosConta = false; Boolean temDadosPrincipaisExtrato = false; // Transformar em arquivo XML exportToXML(ofxOrigem, ofxOrigem + ".xml"); // Variáveis úteis para o Parse String elementoSendoLido = ""; OFX_Movimento transacaoAtual = null; // Variávies utilizadas para a leitura do XML OFX_HeaderExtrato cabecalho = new OFX_HeaderExtrato(); OFX_Conta conta = new OFX_Conta(); OFX_Extrato extrato = new OFX_Extrato(cabecalho, conta, ""); // Lendo o XML XmlTextReader meuXml = new XmlTextReader(ofxOrigem + ".xml"); try { while (meuXml.Read()) { if (meuXml.NodeType == XmlNodeType.EndElement) { switch (meuXml.Name) { case "STMTTRN": if (transacaoAtual != null) { extrato.addMovimento(transacaoAtual); transacaoAtual = null; temTransacao = true; } break; } } if (meuXml.NodeType == XmlNodeType.Element) { elementoSendoLido = meuXml.Name; switch (elementoSendoLido) { case "STMTTRN": transacaoAtual = new OFX_Movimento(); break; } } if (meuXml.NodeType == XmlNodeType.Text) { switch (elementoSendoLido) { case "DTSERVER": //cabecalho.DataServidor = convertOfxDateToDateTime(meuXml.Value); temCabecalho = true; break; case "LANGUAGE": cabecalho.Idioma = meuXml.Value; temCabecalho = true; break; case "ORG": cabecalho.NomeBanco = meuXml.Value; temCabecalho = true; break; case "DTSTART": extrato.DataInicio = convertOfxDateToDateTime(meuXml.Value); temDadosPrincipaisExtrato = true; break; case "DTEND": extrato.DataFinal = convertOfxDateToDateTime(meuXml.Value); temDadosPrincipaisExtrato = true; break; case "BANKID": conta.Banco = new OFX_Banco(Convert.ToInt32(meuXml.Value), ""); temDadosConta = true; break; case "BRANCHID": conta.Agencia = meuXml.Value; temDadosConta = true; break; case "ACCTID": conta.nConta = meuXml.Value; temDadosConta = true; break; case "ACCTTYPE": conta.Tipo = meuXml.Value; temDadosConta = true; break; case "TRNTYPE": transacaoAtual.Tipo = meuXml.Value; break; case "DTPOSTED": transacaoAtual.Data = convertOfxDateToDateTime(meuXml.Value); break; case "TRNAMT": transacaoAtual.Valor = Convert.ToDouble(meuXml.Value.Replace('.', ',')); break; case "FITID": transacaoAtual.Id = meuXml.Value; break; case "CHECKNUM": transacaoAtual.Checksum = Convert.ToInt64(meuXml.Value); break; case "MEMO": transacaoAtual.Descricao = meuXml.Value; break; } } } } catch (XmlException ex) { throw new OFXErros(Convert.ToString(ex.Message + "OFX Inválido!")); } finally { meuXml.Close(); } if ((temCabecalho == false) || (temDadosConta == false) || (temDadosPrincipaisExtrato == false)) { throw new OFXErros("OFX Inválido!"); } return extrato; }