Skip to content

[IMP] l10n_it_fatturapa_in: additionally filter by fiscalcode when more than one partner with same vat but different fiscalcode #4692

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

Open
wants to merge 1 commit into
base: 16.0
Choose a base branch
from

Conversation

micheledic
Copy link
Contributor

Fixes #4650

@OCA-git-bot
Copy link
Contributor

Hi @Borruso, @MarcoCalcagni,
some modules you are maintaining are being modified, check this out!

@micheledic micheledic force-pushed the 16.0_imp_filter_by_fiscalcode branch 3 times, most recently from 8fce2a2 to cd7aed3 Compare April 2, 2025 15:08
…re than one partner with same vat but different fiscalcode
@micheledic micheledic force-pushed the 16.0_imp_filter_by_fiscalcode branch from cd7aed3 to 75367cf Compare April 2, 2025 15:38
@micheledic
Copy link
Contributor Author

errori unrelated sui test

@francesco-ooops
Copy link
Contributor

@guidotermo puoi testare e approvare?

@guidotermo
Copy link

guidotermo commented Apr 7, 2025

@francesco-ooops mi scuso per il ritardo con cui rispondo ma sono stato fuori.
in mattinata faccio i test.

Grazie.

@francesco-ooops
Copy link
Contributor

@guidotermo nulla di cui scusarsi, ci mancherebbe :)

@matteoopenf
Copy link
Contributor

ma questa non e' simile al problema dei gruppi iva e @SirAionTech hai gia' fatto la Pr?

@matteoopenf
Copy link
Contributor

#3810

@guidotermo
Copy link

guidotermo commented Apr 7, 2025

Sto facendo i test.
ho scaicato dal repository https://github.com/stesi/l10n-italy il branch 16.0_imp_filter_by_fiscalcode
e mi da errore quando aggiorno l'addons l10n_it_fatturapa_in

non trova il campo tax_stamp_line_present in account_move (intanto verifico meglio se c'è qualche problema dal lato mio)

di seguito l'errore:

RPC_ERROR
Odoo Server Error
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 1653, in _serve_db
    return service_model.retrying(self._serve_ir_http, self.env)
  File "/usr/lib/python3/dist-packages/odoo/service/model.py", line 133, in retrying
    result = func()
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 1680, in _serve_ir_http
    response = self.dispatcher.dispatch(rule.endpoint, args)
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 1884, in dispatch
    result = self.request.registry['ir.http']._dispatch(endpoint)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_http.py", line 154, in _dispatch
    result = endpoint(**request.params)
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 734, in route_wrapper
    result = endpoint(self, *args, **params_ok)
  File "/usr/lib/python3/dist-packages/odoo/addons/web/controllers/dataset.py", line 46, in call_button
    action = self._call_kw(model, method, args, kwargs)
  File "/usr/lib/python3/dist-packages/odoo/addons/web/controllers/dataset.py", line 33, in _call_kw
    return call_kw(request.env[model], method, args, kwargs)
  File "/usr/lib/python3/dist-packages/odoo/api.py", line 468, in call_kw
    result = _call_kw_multi(method, model, args, kwargs)
  File "/usr/lib/python3/dist-packages/odoo/api.py", line 453, in _call_kw_multi
    result = method(recs, *args, **kwargs)
  File "<decorator-gen-83>", line 2, in button_immediate_upgrade
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_module.py", line 74, in check_and_log
    return method(self, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_module.py", line 669, in button_immediate_upgrade
    return self._button_immediate_function(self.env.registry[self._name].button_upgrade)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_module.py", line 602, in _button_immediate_function
    registry = modules.registry.Registry.new(self._cr.dbname, update_module=True)
  File "<decorator-gen-16>", line 2, in new
  File "/usr/lib/python3/dist-packages/odoo/tools/func.py", line 87, in locked
    return func(inst, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/odoo/modules/registry.py", line 87, in new
    odoo.modules.load_modules(registry, force_demo, status, update_module)
  File "/usr/lib/python3/dist-packages/odoo/modules/loading.py", line 485, in load_modules
    processed_modules += load_marked_modules(cr, graph,
  File "/usr/lib/python3/dist-packages/odoo/modules/loading.py", line 373, in load_marked_modules
    loaded, processed = load_module_graph(
  File "/usr/lib/python3/dist-packages/odoo/modules/loading.py", line 232, in load_module_graph
    load_data(cr, idref, mode, kind='data', package=package)
  File "/usr/lib/python3/dist-packages/odoo/modules/loading.py", line 72, in load_data
    tools.convert_file(cr, package.name, filename, idref, mode, noupdate, kind)
  File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 763, in convert_file
    convert_xml_import(cr, module, fp, idref, mode, noupdate)
  File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 829, in convert_xml_import
    obj.parse(doc.getroot())
  File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 749, in parse
    self._tag_root(de)
  File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 709, in _tag_root
    raise ParseError(msg) from None  # Restart with "--log-handler odoo.tools.convert:DEBUG" for complete traceback
odoo.tools.convert.ParseError: while parsing /opt/odoo/oca-addons/l10n-italy/l10n_it_fatturapa_in/views/account_view.xml:136
Errore durante la convalida della vista:

                        <!-- Register Payment (only invoices / receipts) -->
                        <button name="action_register_payment" id="account_invoice_payment_btn" type="object" class="oe_highlight" attrs="{'invisible': ['|', '|', '|', ('state', '!=', 'posted'), ('payment_state', 'not in', ('partial', 'not_paid')), ('move_type', 'not in', ('out_invoice', 'out_refund', 'in_invoice', 'in_refund', 'out_receipt', 'in_receipt')), ('authorized_transaction_ids', '!=', [])]}" context="{'dont_redirect_to_payments': True}" string="Register Payment" data-hotkey="g" groups="account.group_account_invoice"/>
                <field name="authorized_transaction_ids" invisible="1"/>
                <button name="payment_action_capture" type="object" groups="account.group_account_invoice" string="Capture Transaction" class="oe_highlight" data-hotkey="shift+g" attrs="{'invisible': ['|', '|', ('move_type', 'not in', ('out_invoice', 'out_refund', 'in_invoice', 'in_refund')), ('state', '!=', 'posted'), ('authorized_transaction_ids', '=', [])]}"/>
                <button name="payment_action_void" type="object" groups="account.group_account_invoice" string="Void Transaction" data-hotkey="shift+v" confirm="Are you sure you want to void the authorized transaction? This action can't be undone." attrs="{'invisible': ['|', '|', ('move_type', 'not in', ('out_invoice', 'out_refund', 'in_invoice', 'in_refund')), ('state', '!=', 'posted'), ('authorized_transaction_ids', '=', [])]}"/>

Il campo "tax_stamp_line_present" non esiste nel modello "account.move"

View error context:
{'file': '/opt/odoo/oca-addons/l10n-italy/l10n_it_fatturapa_in/views/account_view.xml',
 'line': 11,
 'name': 'account.move.fatturapa.in',
 'view': ir.ui.view(2036,),
 'view.model': 'account.move',
 'view.parent': ir.ui.view(592,),
 'xmlid': 'view_invoice_line_form_fatturapa_in'}


The above server error caused the following client error:
RPC_ERROR: Odoo Server Error
    RPC_ERROR
        at makeErrorFromResponse (http://localhost:8069/web/assets/2862-a560acc/web.assets_backend.min.js:1008:163)
        at XMLHttpRequest.<anonymous> (http://localhost:8069/web/assets/2862-a560acc/web.assets_backend.min.js:1016:13)

@micheledic
Copy link
Contributor Author

Sto facendo i test. ho scaicato dal repository https://github.com/stesi/l10n-italy il branch 16.0_imp_filter_by_fiscalcode e mi da errore quando aggiorno l'addons l10n_it_fatturapa_in

non trova il campo tax_stamp_line_present in account_move (intanto verifico meglio se c'è qualche problema dal lato mio)

di seguito l'errore:

RPC_ERROR
Odoo Server Error
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 1653, in _serve_db
    return service_model.retrying(self._serve_ir_http, self.env)
  File "/usr/lib/python3/dist-packages/odoo/service/model.py", line 133, in retrying
    result = func()
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 1680, in _serve_ir_http
    response = self.dispatcher.dispatch(rule.endpoint, args)
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 1884, in dispatch
    result = self.request.registry['ir.http']._dispatch(endpoint)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_http.py", line 154, in _dispatch
    result = endpoint(**request.params)
  File "/usr/lib/python3/dist-packages/odoo/http.py", line 734, in route_wrapper
    result = endpoint(self, *args, **params_ok)
  File "/usr/lib/python3/dist-packages/odoo/addons/web/controllers/dataset.py", line 46, in call_button
    action = self._call_kw(model, method, args, kwargs)
  File "/usr/lib/python3/dist-packages/odoo/addons/web/controllers/dataset.py", line 33, in _call_kw
    return call_kw(request.env[model], method, args, kwargs)
  File "/usr/lib/python3/dist-packages/odoo/api.py", line 468, in call_kw
    result = _call_kw_multi(method, model, args, kwargs)
  File "/usr/lib/python3/dist-packages/odoo/api.py", line 453, in _call_kw_multi
    result = method(recs, *args, **kwargs)
  File "<decorator-gen-83>", line 2, in button_immediate_upgrade
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_module.py", line 74, in check_and_log
    return method(self, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_module.py", line 669, in button_immediate_upgrade
    return self._button_immediate_function(self.env.registry[self._name].button_upgrade)
  File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_module.py", line 602, in _button_immediate_function
    registry = modules.registry.Registry.new(self._cr.dbname, update_module=True)
  File "<decorator-gen-16>", line 2, in new
  File "/usr/lib/python3/dist-packages/odoo/tools/func.py", line 87, in locked
    return func(inst, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/odoo/modules/registry.py", line 87, in new
    odoo.modules.load_modules(registry, force_demo, status, update_module)
  File "/usr/lib/python3/dist-packages/odoo/modules/loading.py", line 485, in load_modules
    processed_modules += load_marked_modules(cr, graph,
  File "/usr/lib/python3/dist-packages/odoo/modules/loading.py", line 373, in load_marked_modules
    loaded, processed = load_module_graph(
  File "/usr/lib/python3/dist-packages/odoo/modules/loading.py", line 232, in load_module_graph
    load_data(cr, idref, mode, kind='data', package=package)
  File "/usr/lib/python3/dist-packages/odoo/modules/loading.py", line 72, in load_data
    tools.convert_file(cr, package.name, filename, idref, mode, noupdate, kind)
  File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 763, in convert_file
    convert_xml_import(cr, module, fp, idref, mode, noupdate)
  File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 829, in convert_xml_import
    obj.parse(doc.getroot())
  File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 749, in parse
    self._tag_root(de)
  File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 709, in _tag_root
    raise ParseError(msg) from None  # Restart with "--log-handler odoo.tools.convert:DEBUG" for complete traceback
odoo.tools.convert.ParseError: while parsing /opt/odoo/oca-addons/l10n-italy/l10n_it_fatturapa_in/views/account_view.xml:136
Errore durante la convalida della vista:

                        <!-- Register Payment (only invoices / receipts) -->
                        <button name="action_register_payment" id="account_invoice_payment_btn" type="object" class="oe_highlight" attrs="{'invisible': ['|', '|', '|', ('state', '!=', 'posted'), ('payment_state', 'not in', ('partial', 'not_paid')), ('move_type', 'not in', ('out_invoice', 'out_refund', 'in_invoice', 'in_refund', 'out_receipt', 'in_receipt')), ('authorized_transaction_ids', '!=', [])]}" context="{'dont_redirect_to_payments': True}" string="Register Payment" data-hotkey="g" groups="account.group_account_invoice"/>
                <field name="authorized_transaction_ids" invisible="1"/>
                <button name="payment_action_capture" type="object" groups="account.group_account_invoice" string="Capture Transaction" class="oe_highlight" data-hotkey="shift+g" attrs="{'invisible': ['|', '|', ('move_type', 'not in', ('out_invoice', 'out_refund', 'in_invoice', 'in_refund')), ('state', '!=', 'posted'), ('authorized_transaction_ids', '=', [])]}"/>
                <button name="payment_action_void" type="object" groups="account.group_account_invoice" string="Void Transaction" data-hotkey="shift+v" confirm="Are you sure you want to void the authorized transaction? This action can't be undone." attrs="{'invisible': ['|', '|', ('move_type', 'not in', ('out_invoice', 'out_refund', 'in_invoice', 'in_refund')), ('state', '!=', 'posted'), ('authorized_transaction_ids', '=', [])]}"/>

Il campo "tax_stamp_line_present" non esiste nel modello "account.move"

View error context:
{'file': '/opt/odoo/oca-addons/l10n-italy/l10n_it_fatturapa_in/views/account_view.xml',
 'line': 11,
 'name': 'account.move.fatturapa.in',
 'view': ir.ui.view(2036,),
 'view.model': 'account.move',
 'view.parent': ir.ui.view(592,),
 'xmlid': 'view_invoice_line_form_fatturapa_in'}


The above server error caused the following client error:
RPC_ERROR: Odoo Server Error
    RPC_ERROR
        at makeErrorFromResponse (http://localhost:8069/web/assets/2862-a560acc/web.assets_backend.min.js:1008:163)
        at XMLHttpRequest.<anonymous> (http://localhost:8069/web/assets/2862-a560acc/web.assets_backend.min.js:1016:13)

Penso che sia perchè è stato modificato l10n_it_account_stamp e devi aggiornare anche quello

@guidotermo
Copy link

@micheledic si era proprio quello il problema

Si potrebbe mettere in depends del manifest di l10n_it_fatturapa_in la dipendenza : l10n_it_account_stamp ?

@francesco-ooops
Copy link
Contributor

ma questa non e' simile al problema dei gruppi iva e @SirAionTech hai gia' fatto la Pr?

Mi sembra una storia atavica che dovrebbe essere presa in mano dai @OCA/local-italy-maintainers per arrivare ad una conclusione

@guidotermo
Copy link

guidotermo commented Apr 7, 2025

Ho fatto i test e non va bene

La situazione attesa dovrebbe essere :
Azienda1 Codice fiscale 11111111111
Azienda2 Codice Fiscale 22222222222

tutte e due hanno la stessa partita iva : 00000000000

quando importo una fattura con codice fiscale 11111111111 il fornitore deve essere Azienda1
quando importo una fattura con codice fiscale 22222222222 il fornitore deve essere Azienda2

è il codice fiscale che identifica la persona giuridica o fisica in modo univoco quindi deve comandare il codice fiscale e non la partita iva.

testando questo sviluppo
ho importato prima una fattura con fornitore Azienda1.
Quando ho importato una fattura emessa da Azienda2 mi ha messo come fornitore Azienda1.

@guidotermo
Copy link

Per associare un fornitore alla fattura se ho i codici fiscali la partita iva la posso ignorare al massimo la posso usare per fare ulteriori controlli.

@TheMule71
Copy link
Contributor

Ho fatto i test e non va bene

La situazione attesa dovrebbe essere : Azienda1 Codice fiscale 11111111111 Azienda2 Codice Fiscale 22222222222

tutte e due hanno la stessa partita iva : 00000000000

quando importo una fattura con codice fiscale 11111111111 il fornitore deve essere Azienda1 quando importo una fattura con codice fiscale 22222222222 il fornitore deve essere Azienda2

è il codice fiscale che identifica la persona giuridica o fisica in modo univoco quindi deve comandare il codice fiscale e non la partita iva.

testando questo sviluppo ho importato prima una fattura con fornitore Azienda1. Quando ho importato una fattura emessa da Azienda2 mi ha messo come fornitore Azienda1.

In teoria (e anche nei test) fa proprio quello:

https://github.com/stesi/l10n-italy/blob/75367cf1e07e13dce89cf542b062843d6483d6cd/l10n_it_fatturapa_in/tests/test_import_fatturapa_xml.py#L975-L1013

@guidotermo
Copy link

non so se mi è sfuggito qualcosa ma a me con l'import della fattura associata ad azienda2 non ha creato azienda2 e l'ha associata ad azienda1. riprovo test magari ho sbagliato qualcosa.

rispondo anche a @matteoopenf il caso in oggetto è proprio il caso dei Gruppi iva che dovrebbe essere Legge n205 del 2017.

@guidotermo
Copy link

ho rifatto test sempre stesso comportamento. Allego xml fatture e screen
xmlefatture.zip

image

@micheledic
Copy link
Contributor Author

non so se mi è sfuggito qualcosa ma a me con l'import della fattura associata ad azienda2 non ha creato azienda2 e l'ha associata ad azienda1. riprovo test magari ho sbagliato qualcosa.

rispondo anche a @matteoopenf il caso in oggetto è proprio il caso dei Gruppi iva che dovrebbe essere Legge n205 del 2017.

Il test e la modifica al momento aggancia i contatti solo se questi già esistono, non li crea con le partite iva separati questo anche perchè si triggera solo nel caso ci siano due contatti con stessa partita iva.
Nel caso ci sia un contatto con una p.iva dà per assunto che questo sia corretto .

vedendo però questa PR sembra più completa #3810 . Mi era sfuggita perchè gestisce più casistiche e dal nome non l'avevo trovato

@guidotermo
Copy link

Questo però può peggiorare la situazione perchè di fatto associa ad una fattura un partner non corretto e è facile che l'operatore non se ne accorge

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

Successfully merging this pull request may close these issues.

Import eFatture con fornitore con stessa partita iva e codice fiscale diverso
6 participants