details: https://code.tryton.org/tryton/commit/a463be917f25
branch: default
user: Xavi Hermoso <[email protected]>
date: Tue May 12 09:33:32 2026 +0000
description:
Update purchase request state when it is manually linked to a quotation
Closes #14773
diffstat:
modules/purchase_request_quotation/purchase.py | 23 +++++++++++++++++++++++
1 files changed, 23 insertions(+), 0 deletions(-)
diffs (33 lines):
diff -r 7e33b59a691f -r a463be917f25
modules/purchase_request_quotation/purchase.py
--- a/modules/purchase_request_quotation/purchase.py Fri May 08 12:38:14
2026 +0200
+++ b/modules/purchase_request_quotation/purchase.py Tue May 12 09:33:32
2026 +0000
@@ -421,6 +421,29 @@
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()
Request = pool.get('purchase.request')