changeset 70573a158a18 in modules/purchase_request_quotation:default
details:
https://hg.tryton.org/modules/purchase_request_quotation?cmd=changeset&node=70573a158a18
description:
Add method to create quotation and pass quotation to line
issue9612
review302171002
diffstat:
purchase.py | 24 +++++++++++++++---------
1 files changed, 15 insertions(+), 9 deletions(-)
diffs (47 lines):
diff -r e0ffac13c47c -r 70573a158a18 purchase.py
--- a/purchase.py Sat Apr 10 23:46:24 2021 +0200
+++ b/purchase.py Mon Apr 12 09:27:43 2021 +0200
@@ -513,20 +513,16 @@
reqs = [r for r in self.records if r.state in ['draft', 'quotation']]
for supplier in self.ask_suppliers.suppliers:
- quotation = Quotation()
- quotation.supplier = supplier
- quotation.supplier_address = supplier.address_get()
reqs = [r for r in reqs if self.filter_request(r, supplier)]
sorted_reqs = sorted(reqs, key=lambda r: r.company)
for key, grouped_requests in groupby(sorted_reqs,
key=self._group_request_key):
- for f, v in key:
- setattr(quotation, f, v)
- quotations.append(quotation)
- for r in grouped_requests:
- line = self.get_quotation_line(r)
+ quotation = self.get_quotation(supplier, key)
+ for request in grouped_requests:
+ line = self.get_quotation_line(request, quotation)
line.quotation = quotation
lines.append(line)
+ quotations.append(quotation)
QuotationLine.save(lines)
Quotation.save(quotations)
@@ -534,7 +530,17 @@
self.succeed.number_quotations = len(quotations)
return 'succeed'
- def get_quotation_line(self, request):
+ def get_quotation(self, supplier, key):
+ pool = Pool()
+ Quotation = pool.get('purchase.request.quotation')
+ quotation = Quotation()
+ quotation.supplier = supplier
+ quotation.supplier_address = supplier.address_get()
+ for f, v in key:
+ setattr(quotation, f, v)
+ return quotation
+
+ def get_quotation_line(self, request, quotation):
pool = Pool()
QuotationLine = pool.get('purchase.request.quotation.line')
quotation_line = QuotationLine()