Update purchase request state when it is manually linked to a quotation

Closes #14773
(grafted from a463be917f2576adb8f4333eb2ce19759456be0b)

--HG--
branch : 8.0
This commit is contained in:
Xavi Hermoso
2026-05-12 09:33:32 +00:00
parent 81f3bb8c89
commit b6d098aeab
@@ -420,6 +420,29 @@ class QuotationLine(ModelSQL, ModelView):
domain.append(('id', '<', 0))
return domain
@classmethod
def on_modification(cls, mode, records, field_names=None):
pool = Pool()
Request = pool.get('purchase.request')
super().on_modification(mode, records, field_names=field_names)
if mode in {'create', 'write'}:
if field_names is None or 'request' in field_names:
requests = {r.request for r in records if r.request}
if requests:
Request.update_state(requests)
@classmethod
def on_write(cls, lines, values):
pool = Pool()
Request = pool.get('purchase.request')
callback = super().on_write(lines, values)
if 'request' in values:
if requests := {l.request for l in lines if l.request}:
callback.append(lambda: Request.update_state(requests))
return callback
@classmethod
def on_delete(cls, lines):
pool = Pool()