Jacotsu / ofxstatement-intesasp

5 stars 5 forks source link

Issue using the Plugin #10

Closed eberna closed 3 weeks ago

eberna commented 11 months ago

Innanzitutto grazie mille per lo sviluppo del plugin! Sto cercando di convertire i dati per l'importazione in Gnucash ma purtroppo ricevo questo errore sul caricamento dei dati xls da parte di openpyxl: UserWarning: Print area cannot be set to Defined name: 'Lista Operazione'!$A:$H. Qui l'output con il flag di debug. Avete qualce consiglio? Grazie molte lele@T14:~/Downloads$ ofxstatement -d convert -t IntesaSP lista_completa_11112023.xlsx Movimenti.ofx /home/lele/.local/pipx/venvs/ofxstatement/lib/python3.11/site-packages/openpyxl/reader/workbook.py:118: UserWarning: Print area cannot be set to Defined name: 'Lista Operazione'!$A:$H. warn(f"Print area cannot be set to Defined name: {defn.value}.") DEBUG: {'bic': '0000000', 'plugin': 'IntesaSP'} DEBUG: Detected "Lista Operazione", using V2 excel parser Traceback (most recent call last): File "/home/lele/.local/bin/ofxstatement", line 8, in <module> sys.exit(run()) ^^^^^ File "/home/lele/.local/pipx/venvs/ofxstatement/lib/python3.11/site-packages/ofxstatement/tool.py", line 221, in run return args.func(args) ^^^^^^^^^^^^^^^ File "/home/lele/.local/pipx/venvs/ofxstatement/lib/python3.11/site-packages/ofxstatement/tool.py", line 186, in convert parser = p.get_parser(args.input) ^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/lele/.local/pipx/venvs/ofxstatement/lib/python3.11/site-packages/ofxstatement/plugins/intesaSP.py", line 210, in get_parser parser = IntesaSanPaoloXlsxParser(filename, self.settings) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/lele/.local/pipx/venvs/ofxstatement/lib/python3.11/site-packages/ofxstatement/plugins/intesaSP.py", line 238, in __init__ self._get_currency() File "/home/lele/.local/pipx/venvs/ofxstatement/lib/python3.11/site-packages/ofxstatement/plugins/intesaSP.py", line 292, in _get_currency return trans_map[val.lower()] ^^^^^^^^^ AttributeError: 'NoneType' object has no attribute 'lower'

eberna commented 11 months ago

Sembra che il numero di colonne prima dll'inzio dei movimenti non sia fisso, falliva perchè la linea 293 del file intesaSP.py val = self.wb['Lista Operazione']['G20'].value # First operation selezioni la valuta dalla prima cella che però nel mio caso è nella cella G22, modificando il file funziona :). In futuro proverò a modificare il codice e mandare una PR.

Jacotsu commented 11 months ago

recent call l

Mi sembra strano, è possibile che abbiano aggiornato il formato della lista operazioni. Questi giorni ci butto un occhio

lorenzogiudici5 commented 8 months ago

Ciao @Jacotsu, mi sono imbattuto nello stesso problema: la cella dove viene cercata la Valuta della prima operazione (nel codice G20), varia a seconda del numero di "Conti e Carte" presenti. A riga 7, nella Colonna C, sono elencati i conti e le carte che potrebbero anche essere più di 2: in questi casi la Valuta della prima operazione si trova alla cella GX (dove X è 18 + il numero di carte conti: @eberna immagino abbia 4 Conti e Carte).

Per trovare correttamente la cella della Valuta della prima operazione si potrebbe:

Dato che è un problema che altri potrebbero avere, si potrebbe ri-aprire l'issue. Così il primo che ha un attimo di tempo, può risolverlo. Che dite?

Jacotsu commented 8 months ago

Ciao @Jacotsu, mi sono imbattuto nello stesso problema: la cella dove viene cercata la Valuta della prima operazione (nel codice G20), varia a seconda del numero di "Conti e Carte" presenti. A riga 7, nella Colonna C, sono elencati i conti e le carte che potrebbero anche essere più di 2: in questi casi la Valuta della prima operazione si trova alla cella GX (dove X è 18 + il numero di carte conti: @eberna immagino abbia 4 Conti e Carte).

Per trovare correttamente la cella della Valuta della prima operazione si potrebbe:

  • calcolare il numero di Conti e Carte
  • trovare in che RIGA si trova la CELLA della COLONNA A che ha come valore "Data". La riga successiva è la riga della prima operazione.

Dato che è un problema che altri potrebbero avere, si potrebbe ri-aprire l'issue. Così il primo che ha un attimo di tempo, può risolverlo. Che dite?

Ho riaperto l'issue, però non posso replicare il problema visto che ho solo 1 conto e 1 carta. In ogni caso se fate una pull request ve la mergio volentieri

Alfystar commented 7 months ago

Ciao @Jacotsu Per puro caso mi si è presentata la stessa problematica, e sono riuscito a risolverla rendendo l'identificazione delle celle dinamiche, ho appena committato la mia soluzione 751991d

Appena hai modo guardala e magari rilasciala. Ho anche aggiornato qualche categoria.

Il codice funziona, ma ho scritto la mia soluzione molto di fretta, in questo periodo sono impegnatissimo :see_no_evil:, se hai voglia/modo di ottimizzare il mio codice, fai pure. Non ho fatto un lavoro al mio massimo, ma dovevo andare di fretta

Alfystar commented 3 weeks ago

Credo si possa dire che abbiamo risolto 😊