Skip to content

[18.0][FIX] l10n_it_edi_related_document: sync with standard fields#5046

Merged
OCA-git-bot merged 1 commit into
OCA:18.0from
TheMule71:18.0-fix-related-documents
Feb 3, 2026
Merged

[18.0][FIX] l10n_it_edi_related_document: sync with standard fields#5046
OCA-git-bot merged 1 commit into
OCA:18.0from
TheMule71:18.0-fix-related-documents

Conversation

@TheMule71

Copy link
Copy Markdown
Contributor

Alcuni moduli potrebbero assegnare i campi standard

    l10n_it_origin_document_type
    l10n_it_origin_document_name
    l10n_it_origin_document_date
    l10n_it_cig
    l10n_it_cup

e con l'approccio attuale verrebbero semplicemente ignorati.

@TheMule71

Copy link
Copy Markdown
Contributor Author

PR per discutere della soluzione. Al momento questo blocca #5030, che prova a fare una fattura ed esportarla usando il metodo normale di odoo.

Questa PR supporta il caso in cui un modulo, programmaticamente, aggiunga l'ordine alla fattura come documento collegato, usando i campi standard - senza dipendere da questo modulo e senza usarne il modello apposito.

Invece di ignorare il documento, se ne crea (o aggiorna) uno se necessario.

Da discutere cosa usare come chiave di ricerca... e cosa fare se uno cambia nome al documento... al momento si lascia in giro il vecchio nome e si crea un nuovo documento.

@monen17

monen17 commented Jan 13, 2026

Copy link
Copy Markdown
Contributor

PR per discutere della soluzione. Al momento questo blocca #5030, che prova a fare una fattura ed esportarla usando il metodo normale di odoo.

Questa PR supporta il caso in cui un modulo, programmaticamente, aggiunga l'ordine alla fattura come documento collegato, usando i campi standard - senza dipendere da questo modulo e senza usarne il modello apposito.

Invece di ignorare il documento, se ne crea (o aggiorna) uno se necessario.

Da discutere cosa usare come chiave di ricerca... e cosa fare se uno cambia nome al documento... al momento si lascia in giro il vecchio nome e si crea un nuovo documento.

Ok, il problema in pratica è che il modulo l10n_it_edi_related_document ignora completamente i campi del core e addirittura non li fa arrivare al template della FE, così se uno li ha valorizzati e ha installato questo modulo, poi non si ritrova il nodo corrispondente (tipo DatiOrdineAcquisto) nella FE.
Insomma, dovrebbe comportarsi un po' meglio rispetto al codice del core 🤗

Per risolvere vorresti che questo modulo l10n_it_edi_related_document mantenesse un documento collegato sincronizzato con i campi del core dichiarati in fattura.
Come idea per me va bene 👍

Aggiungerei però la gestione anche della modifica inversa: quando l'utente aggiorna i campi di questo documento speciale, vengono sincronizzati i campi nella fattura.
Magari si potrebbero aggiungere i metodi compute e inverse ai campi della fattura per far sì che si sincronizzino con i campi del documento collegato? Potrebbero semplificare la sincronizzazione ed evitarci l'override di create e write.

Va anche gestito il caso in cui esiste già una fattura con i campi valorizzati, e poi viene installato questo modulo: in questo caso servirebbe una migrazione che crea il nuovo documento collegato.

Per identificare questo documento collegato speciale si potrebbe creare un Many2one che dalla fattura punta al documento (sarebbe comunque uno dei related_document_ids).

@TheMule71

Copy link
Copy Markdown
Contributor Author

Aggiungerei però la gestione anche della modifica inversa: quando l'utente aggiorna i campi di questo documento speciale, vengono sincronizzati i campi nella fattura. Magari si potrebbero aggiungere i metodi compute e inverse ai campi della fattura per far sì che si sincronizzino con i campi del documento collegato? Potrebbero semplificare la sincronizzazione ed evitarci l'override di create e write.

Considera che con il nostro modulo installato quei campi dovrebbero essere completamente invisibili, e inacessibili.

Il dubbio al massimo è se un modolo terze parti dovesse leggere quei campi aspettandosi qualcosa.

Va anche gestito il caso in cui esiste già una fattura con i campi valorizzati, e poi viene installato questo modulo: in questo caso servirebbe una migrazione che crea il nuovo documento collegato.

Per identificare questo documento collegato speciale si potrebbe creare un Many2one che dalla fattura punta al documento (sarebbe comunque uno dei related_document_ids).

Questa potrebbe essere una buona idea (comunque).

@TheMule71 TheMule71 marked this pull request as ready for review January 16, 2026 16:50
@TheMule71 TheMule71 force-pushed the 18.0-fix-related-documents branch from 3c1c2c3 to be2aca9 Compare January 16, 2026 16:52
@monen17

monen17 commented Jan 16, 2026

Copy link
Copy Markdown
Contributor

Aggiungerei però la gestione anche della modifica inversa: quando l'utente aggiorna i campi di questo documento speciale, vengono sincronizzati i campi nella fattura. Magari si potrebbero aggiungere i metodi compute e inverse ai campi della fattura per far sì che si sincronizzino con i campi del documento collegato? Potrebbero semplificare la sincronizzazione ed evitarci l'override di create e write.

Considera che con il nostro modulo installato quei campi dovrebbero essere completamente invisibili, e inacessibili.

Il dubbio al massimo è se un modolo terze parti dovesse leggere quei campi aspettandosi qualcosa.

Oppure quando l10n_it_edi_related_document viene disinstallato: io mi aspetterei che i dati del documento collegato speciale siano nei campi corrispondenti della fattura.
A me dà l'impressione che se teniamo i campi sincronizzati in entrambi i sensi il sistema sia più solido, ma magari è solo una mia impressione 🤷

@TheMule71

Copy link
Copy Markdown
Contributor Author

Aggiungerei però la gestione anche della modifica inversa: quando l'utente aggiorna i campi di questo documento speciale, vengono sincronizzati i campi nella fattura. Magari si potrebbero aggiungere i metodi compute e inverse ai campi della fattura per far sì che si sincronizzino con i campi del documento collegato? Potrebbero semplificare la sincronizzazione ed evitarci l'override di create e write.

Considera che con il nostro modulo installato quei campi dovrebbero essere completamente invisibili, e inacessibili.
Il dubbio al massimo è se un modolo terze parti dovesse leggere quei campi aspettandosi qualcosa.

Oppure quando l10n_it_edi_related_document viene disinstallato: io mi aspetterei che i dati del documento collegato speciale siano nei campi corrispondenti della fattura. A me dà l'impressione che se teniamo i campi sincronizzati in entrambi i sensi il sistema sia più solido, ma magari è solo una mia impressione 🤷

Ottimo, proviamo così.

@TheMule71 TheMule71 force-pushed the 18.0-fix-related-documents branch 3 times, most recently from d6dba86 to 5556b47 Compare January 23, 2026 20:07
Comment thread l10n_it_edi_related_document/models/account_move.py Outdated
@TheMule71 TheMule71 force-pushed the 18.0-fix-related-documents branch 2 times, most recently from 96d6d30 to d2bc299 Compare January 30, 2026 09:30
If standard fields are being used, keep a related document in sync:
l10n_it_origin_document_type
l10n_it_origin_document_name
l10n_it_origin_document_date
l10n_it_cig
l10n_it_cup

NOTE: this happens only programmatically, not via UI
@TheMule71 TheMule71 force-pushed the 18.0-fix-related-documents branch from d2bc299 to c3d48e9 Compare January 30, 2026 18:13
@micheledic

Copy link
Copy Markdown
Contributor

@OCA/local-italy-developers si può mergiare ?

@OCA-git-bot

Copy link
Copy Markdown
Contributor

This PR has the approved label and has been created more than 5 days ago. It should therefore be ready to merge by a maintainer (or a PSC member if the concerned addon has no declared maintainer). 🤖

@sergiocorato

Copy link
Copy Markdown
Contributor

/ocabot merge minor

@OCA-git-bot

Copy link
Copy Markdown
Contributor

This PR looks fantastic, let's merge it!
Prepared branch 18.0-ocabot-merge-pr-5046-by-sergiocorato-bump-minor, awaiting test results.

@OCA-git-bot OCA-git-bot merged commit 796e893 into OCA:18.0 Feb 3, 2026
7 checks passed
@OCA-git-bot

Copy link
Copy Markdown
Contributor

Congratulations, your PR was merged at 64089c9. Thanks a lot for contributing to OCA. ❤️

k0dev pushed a commit to k0dev/l10n-italy that referenced this pull request Feb 6, 2026
…thod

The _inverse_original_related_document_fields method uses `self` instead
of `record` inside the for loop, causing a "Expected singleton" error
when multiple invoices are created at once.

This was introduced in PR OCA#5046.
Borruso pushed a commit to Borruso/l10n-italy that referenced this pull request Feb 12, 2026
…thod

The _inverse_original_related_document_fields method uses `self` instead
of `record` inside the for loop, causing a "Expected singleton" error
when multiple invoices are created at once.

This was introduced in PR OCA#5046.
Borruso pushed a commit to Borruso/l10n-italy that referenced this pull request Feb 12, 2026
…thod

The _inverse_original_related_document_fields method uses `self` instead
of `record` inside the for loop, causing a "Expected singleton" error
when multiple invoices are created at once.

This was introduced in PR OCA#5046.
Borruso pushed a commit to Borruso/l10n-italy that referenced this pull request Feb 12, 2026
…thod

The _inverse_original_related_document_fields method uses `self` instead
of `record` inside the for loop, causing a "Expected singleton" error
when multiple invoices are created at once.

This was introduced in PR OCA#5046.
Borruso pushed a commit to Borruso/l10n-italy that referenced this pull request May 5, 2026
…thod

The _inverse_original_related_document_fields method uses `self` instead
of `record` inside the for loop, causing a "Expected singleton" error
when multiple invoices are created at once.

This was introduced in PR OCA#5046.
Borruso pushed a commit to Borruso/l10n-italy that referenced this pull request Jun 8, 2026
…thod

The _inverse_original_related_document_fields method uses `self` instead
of `record` inside the for loop, causing a "Expected singleton" error
when multiple invoices are created at once.

This was introduced in PR OCA#5046.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants