Пример #1
0
 public OFX_Extrato(OFX_HeaderExtrato headerExtrato, OFX_Conta conta,
     String status)
 {
     this.headerExtrato = headerExtrato;
     this.conta = conta;
     this.status = status;
 }
Пример #2
0
 public OFX_Extrato(OFX_HeaderExtrato headerExtrato, OFX_Conta conta,
                    String status)
 {
     this.headerExtrato = headerExtrato;
     this.conta         = conta;
     this.status        = status;
 }
Пример #3
0
 public OFX_Extrato(OFX_HeaderExtrato headerExtrato, OFX_Conta conta,
     String status, DateTime dataInicio, DateTime dataFinal)
 {
     this.headerExtrato = headerExtrato;
     this.conta = conta;
     this.status = status;
     this.dataInicio = dataInicio;
     this.dataFinal = dataFinal;
 }
Пример #4
0
 public OFX_Extrato(OFX_HeaderExtrato headerExtrato, OFX_Conta conta,
                    String status, DateTime dataInicio, DateTime dataFinal)
 {
     this.headerExtrato = headerExtrato;
     this.conta         = conta;
     this.status        = status;
     this.dataInicio    = dataInicio;
     this.dataFinal     = dataFinal;
 }
Пример #5
0
            // 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);
            }
Пример #6
0
            // 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;
            }