Problema controllo "La Partita Iva è già assegnata ad un altro partner."
Se può aiutare a capire il problema, il record viene creato con il metodo
create
, non da GUI6 Replies
Creo un thread senza intasare il canale
Sembra arrivare da qui il problema:
https://github.com/odoo/odoo/blob/14.0/odoo/addons/base/models/res_partner.py#L268
GitHub
odoo/res_partner.py at 14.0 · odoo/odoo
Odoo. Open Source Apps To Grow Your Business. Contribute to odoo/odoo development by creating an account on GitHub.
E l'errore è richiamato da questo modello
https://github.com/OCA/partner-contact/blob/14.0/partner_vat_unique/models/res_partner.py
GitHub
partner-contact/res_partner.py at 14.0 · OCA/partner-contact
Odoo Partner and Contact related addons. Contribute to OCA/partner-contact development by creating an account on GitHub.
Provo a riassumere:
- fai un create di n° contatti da python
- i contatti NON hanno la stessa p.iva
- entri sul contatto e vedi il warning dello screenshot?
Considera che quel warning viene mostrato se il computed field (non-stored) same_vat_partner_id è True, viene ricalcolato ogni volta che entri sul record
https://github.com/odoo/odoo/blob/b061cf714cbd24b4c6cd39dc1b968d69857d74af/odoo/addons/base/models/res_partner.py#LL175C17-L175C17
se non ci sono state modifiche a quel meccanismo, direi che per forza di cose risulta una p.iva doppia SENZA che i contatti abbiano un parent_id comune.
In pratica la computed func. setta il computed field a True ogni volta che entri sulla vista, mostrando il div di conseguenza. Viene messo a True se risulta un altro contatto con la stessa "vat" , ma in sostanza skippa il check se fanno parte della stessa organizzazione
La creazione viene fatta sempre lato python, l'errore lo trovo anche se cerco di creare un solo contatto tramite un button apposito (non dentro al form res.partner, è un modello differente), vedo proprio il validation error della partita iva duplicata
Capisco, comunque il modulo che hai linkato si basa sempre sul meccanismo "same_vat_partner_id", sostanzialmente se il campo (che viene nativamente computato) è True, invece di mostrare il warning da lo UserError. Abbiamo fatto letteralmente la stessa cosa (scritta in modo leggermente diverso) internamente, quindi conosco bene il meccanismo e so che in genere non da problemi.
L'unico motivo per cui può dare il problema è che l'ORM venga di fatto incaricata di creare un contatto con una vat già esistente, quindi in un qualche punto viene sicuramente incaricata di farlo. A MENO CHE non si sia bloccato per qualche motivo assurdo il campo su True e non venga ricalcolato perché poppa prima lo User error, ma mi sembra assurdo.
Per togliere il dubbio, proverei a "sbloccare" il campo passando "save_vat_partner_id"=False tra i values del create (verrebbe comunque reimpostato al valore True, eventualmente, al primo accesso al record da user interface).
A parte questo, hai loggato le vat dei contatti creati? Dev'esserci per forza la creazione di un contatto con vat duplicata, da qualche parte.
Ultima cosa, ho poca esperienza coi test quindi non so se possano attivarsi " a caso ", sinceramente non penso possa succedere, ma annovero anche questo tra i motivi potrebbero portare alla creazione dei due contatti con vat uguale.
Ci siete saltati fuori alla fine?
Non ho più avuto tempo di fare dei test, sto lavorando su altro al momento