diff --git a/operation.py b/operation.py index e0a5618..f5f1473 100644 --- a/operation.py +++ b/operation.py @@ -557,6 +557,11 @@ class PurchaseLine(metaclass=PoolMeta): origins += ['purchase.request'] except KeyError: pass + try: + Pool().get('sale.sale') + origins += ['sale.sale'] + except KeyError: + pass return origins @classmethod @@ -589,9 +594,14 @@ class CreatePurchase(metaclass=PoolMeta): @classmethod def compute_purchase_line(cls, key, requests, purchase): + Line = Pool().get('purchase.line') line = super().compute_purchase_line(key, requests, purchase) - if requests: - request = requests[0] - line.origin = request.origin + + origins = [k[0] for k in Line.get_origin()] + + for origin in [request.origin for request in requests if request.origin]: + if origin.__name__ in origins: + line.origin = origin + break return line diff --git a/tryton.cfg b/tryton.cfg index b8b4600..2d0d721 100644 --- a/tryton.cfg +++ b/tryton.cfg @@ -3,6 +3,7 @@ version=6.9.0 depends: production_route extras_depend: + sale stock_supply_production purchase_request xml: