@@ -78,14 +78,14 @@ class AccountMoveDoi(models.Model):
7878 )
7979
8080 @api .depends (
81- "declaration_id" , "declaration_id.threshold" , "declaration_id.invoiced"
81+ "amount" ,
82+ "declaration_id" ,
83+ "declaration_id.remaining" ,
8284 )
8385 def _compute_declaration_available (self ):
8486 for record in self :
8587 if record .declaration_id :
86- record .declaration_available = (
87- record .declaration_id .threshold - record .declaration_id .invoiced
88- )
88+ record .declaration_available = record .declaration_id .remaining
8989 else :
9090 record .declaration_available = 0
9191
@@ -122,3 +122,32 @@ def _compute_display_name(self):
122122 )
123123 else :
124124 record .display_name = _ ("New" )
125+
126+ def _sync_l10n_it_edi_doi_id (self , moves = None ):
127+ """Sync l10n_it_edi_doi_id on the invoice with the first bridge record."""
128+ if moves is None :
129+ moves = self .mapped ("move_id" )
130+ for move in moves :
131+ doi_ids = move .l10n_it_edi_doi_ids
132+ if doi_ids :
133+ move .l10n_it_edi_doi_id = doi_ids [0 ].declaration_id
134+ else :
135+ move .l10n_it_edi_doi_id = False
136+
137+ @api .model_create_multi
138+ def create (self , vals_list ):
139+ records = super ().create (vals_list )
140+ records ._sync_l10n_it_edi_doi_id ()
141+ return records
142+
143+ def write (self , vals ):
144+ res = super ().write (vals )
145+ if "declaration_id" in vals :
146+ self ._sync_l10n_it_edi_doi_id ()
147+ return res
148+
149+ def unlink (self ):
150+ moves = self .mapped ("move_id" )
151+ res = super ().unlink ()
152+ self ._sync_l10n_it_edi_doi_id (moves )
153+ return res
0 commit comments