Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from trytond.pool import PoolMeta, Pool
- class Sale(metaclass=PoolMeta):
- __name__ = 'sale.sale'
- @classmethod
- def _process_shipment(cls, sales):
- pool = Pool()
- QualityTask = pool.get('quality.task')
- ProductCustomer = pool.get('sale.product_customer')
- quality_tasks = []
- super()._process_shipment(sales)
- for sale in sales:
- for shipment in sale.shipments:
- quality_tasks.extend(cls._get_quality_tasks(
- shipment,
- shipment.customer.quality_task_dictionaries))
- for move in shipment.outgoing_moves:
- domain = [
- ('party', '=', shipment.customer),
- ('product', '=', move.product),
- ]
- for product_customer in ProductCustomer.search(domain):
- quality_tasks.extend(cls._get_quality_tasks(
- shipment,
- product_customer.quality_task_dictionaries,
- move.product))
- if quality_tasks:
- QualityTask.save(quality_tasks)
- @classmethod
- def _get_quality_tasks(cls, origin, tasks=None, product=None):
- pool = Pool()
- QualityTask = pool.get('quality.task')
- quality_tasks = []
- if tasks:
- for task in tasks:
- if task.shipment_type == 'stock.shipment.out':
- existing_tasks = QualityTask.search([
- ('origin', '=', origin),
- ('quality_task_dictionary', '=', task),
- ('product', '=', product)])
- if not existing_tasks:
- quality_tasks.append(
- QualityTask(
- quality_task_dictionary=task,
- product=product,
- origin=origin))
- return quality_tasks
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement