changeset acb445d64d94 in modules/purchase_requisition:default
details:
https://hg.tryton.org/modules/purchase_requisition?cmd=changeset&node=acb445d64d94
description:
Compute purchase date of request based on supplier and product
issue10816
review352901002
diffstat:
CHANGELOG | 2 ++
purchase.py | 20 +++++++++++++-------
2 files changed, 15 insertions(+), 7 deletions(-)
diffs (59 lines):
diff -r b99e71ba0d8c -r acb445d64d94 CHANGELOG
--- a/CHANGELOG Mon Oct 04 18:52:01 2021 +0200
+++ b/CHANGELOG Sun Oct 10 22:16:27 2021 +0200
@@ -1,3 +1,5 @@
+* Compute purchase date of request based on supplier and product
+
Version 6.0.0 - 2021-05-03
* Bug fixes (see mercurial logs for details)
* Add summary to requisition line
diff -r b99e71ba0d8c -r acb445d64d94 purchase.py
--- a/purchase.py Mon Oct 04 18:52:01 2021 +0200
+++ b/purchase.py Sun Oct 10 22:16:27 2021 +0200
@@ -545,9 +545,12 @@
return self.requisition.rec_name
def _get_purchase_request_product_supplier_pattern(self):
- return {
+ pattern = {
'company': self.requisition.company.id,
}
+ if self.supplier:
+ pattern['party'] = self.supplier.id
+ return pattern
def compute_request(self):
"""
@@ -562,15 +565,18 @@
return
supply_date = self.requisition.supply_date
- purchase_date = supply_date
+ supplier = None
+ purchase_date = None
- if not self.supplier and self.product:
+ if self.product:
supplier, purchase_date = Request.find_best_supplier(
self.product, supply_date,
**self._get_purchase_request_product_supplier_pattern())
- else:
- supplier = self.supplier
- # TODO compute purchase_date for product_supplier
+ elif self.supplier:
+ lead_time = self.supplier.get_multivalue(
+ 'supplier_lead_time', company=self.requisition.company.id)
+ if lead_time is not None:
+ purchase_date = supply_date - lead_time
uom = self.unit
quantity = self.quantity
@@ -583,7 +589,7 @@
return Request(
product=self.product,
description=self.description,
- party=supplier,
+ party=supplier or self.supplier,
quantity=quantity,
uom=uom,
computed_quantity=self.quantity,