Advertisement
Guest User

Untitled

a guest
Sep 19th, 2022
35
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.00 KB | None | 0 0
  1. from trytond.pool import PoolMeta, Pool
  2.  
  3.  
  4. class Sale(metaclass=PoolMeta):
  5.     __name__ = 'sale.sale'
  6.  
  7.     @classmethod
  8.     def _process_shipment(cls, sales):
  9.         pool = Pool()
  10.         QualityTask = pool.get('quality.task')
  11.         ProductCustomer = pool.get('sale.product_customer')
  12.         quality_tasks = []
  13.  
  14.         super()._process_shipment(sales)
  15.         for sale in sales:
  16.             for shipment in sale.shipments:
  17.                 quality_tasks.extend(cls._get_quality_tasks(
  18.                     shipment,
  19.                     shipment.customer.quality_task_dictionaries))
  20.  
  21.                 for move in shipment.outgoing_moves:
  22.                     domain = [
  23.                         ('party', '=', shipment.customer),
  24.                         ('product', '=', move.product),
  25.                         ]
  26.                     for product_customer in ProductCustomer.search(domain):
  27.                         quality_tasks.extend(cls._get_quality_tasks(
  28.                         shipment,
  29.                         product_customer.quality_task_dictionaries,
  30.                         move.product))
  31.         if quality_tasks:
  32.             QualityTask.save(quality_tasks)
  33.  
  34.     @classmethod
  35.     def _get_quality_tasks(cls, origin, tasks=None, product=None):
  36.         pool = Pool()
  37.         QualityTask = pool.get('quality.task')
  38.         quality_tasks = []
  39.         if tasks:
  40.             for task in tasks:
  41.                 if task.shipment_type == 'stock.shipment.out':
  42.                     existing_tasks = QualityTask.search([
  43.                         ('origin', '=', origin),
  44.                         ('quality_task_dictionary', '=', task),
  45.                         ('product', '=', product)])
  46.                     if not existing_tasks:
  47.                         quality_tasks.append(
  48.                             QualityTask(
  49.                                 quality_task_dictionary=task,
  50.                                 product=product,
  51.                                 origin=origin))
  52.         return quality_tasks
  53.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement