diff --git a/operation.py b/operation.py index 84df5fb..8e757f9 100644 --- a/operation.py +++ b/operation.py @@ -554,6 +554,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 @@ -586,9 +591,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 f099baf..6b1e063 100644 --- a/tryton.cfg +++ b/tryton.cfg @@ -3,6 +3,7 @@ version=6.4.0 depends: production_route extras_depend: + sale stock_supply_production purchase_request xml: