Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fitid ignorado pelo Gnucash em transações repetidas de cartão #12

Open
LeoFCardoso opened this issue May 1, 2015 · 4 comments
Open

Comments

@LeoFCardoso
Copy link

Alguém sabe qual é o limite do GnuCash para considerar o FITID no arquivo OFX?
Neste mês, o Gnucash ignorou uma transação corretamente gerada pelo BBVisa2OFX:

OTHER 20150213 -90.76 20150113-90.76TOK&STOKPARC02/05RIODEJANEI TOK & STOK PARC 02/05 RIO DE JANEI DT ORIG: 13/01

Quando eu manualmente inverti o FITID, colocando o nome da parcela em primeiro lugar, então a transação passou a ser reconhecida pelo Gnucash.

TOK&STOKPARC02/0520150113-90.76RIODEJANEI

Se eu gero o OFX pela opção nativa do BB (que não faz contas de dólar), o seguinte valor é gerado para esta mesma transação.

PAYMENT 20150113 -90.76 20150113<>0000000013 TOK & STOK PARC 02/05 RIO DE JANEI

O que acham de inverter a ordem na linha 134 do txtparser?

obj['fitid'] = (obj['date'] + str(obj['value']) + obj['desc']).replace(' ','')

viraria

obj['fitid'] = (obj['desc'] + obj['date'] + str(obj['value'])).replace(' ','')

Sds
Leonardo

@LeoFCardoso
Copy link
Author

Investiguei mais um pouco e a falha parece estar relacionada com a existência de um "&" no FITID.

A sugestão para a nova linha 134 seria então:

obj['fitid'] = (obj['date'] + str(obj['value']) + obj['desc']).translate(None, ' /&')

ou, se importar hashlib, pode-se gerar um MD5 da string acima, para tentar evitar colisões e falhas com outros caracteres problemáticos.

obj['fitid'] = (obj['date'] + str(obj['value']) + obj['desc']).translate(None, ' /&')
m = hashlib.md5()
m.update(obj['fitid'])
obj['fitid'] = m.hexdigest() #md5 do fitid gerado

O que acham?

@josecoelho
Copy link
Owner

Dae @LeoFCardoso estava olhando as issue aqui e só agora que vi esta em aberto. Continua tendo o problema? Podemos ajustar... Desculpa não ter olhado antes.

@LeoFCardoso
Copy link
Author

Oi @josecoelho , minha instalação local está funcionando com o fix que coloquei no comentário acima (com o uso do hashlib). O bug ocorre quando o FITID contém um "&". Abraço!

@LeoFCardoso
Copy link
Author

Apliquei este fix no meu fork: https://github.com/LeoFCardoso/bbvisa2ofx

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants