Open LeoFCardoso opened 9 years ago
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?
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.
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!
Apliquei este fix no meu fork: https://github.com/LeoFCardoso/bbvisa2ofx
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:
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.
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.
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