first commit

This commit is contained in:
root
2026-03-14 09:42:12 +00:00
commit 0adbd20c2c
10991 changed files with 1646955 additions and 0 deletions

View File

@@ -0,0 +1,61 @@
# This file is part of Tryton. The COPYRIGHT file at the top level of
# this repository contains the full copyright notices and license terms.
from trytond.model import fields
from trytond.pool import Pool, PoolMeta
from trytond.transaction import Transaction, without_check_access
class Request(metaclass=PoolMeta):
__name__ = 'purchase.request'
sale_lines = fields.One2Many(
'sale.line', 'purchase_request', "Sale Lines", readonly=True)
@classmethod
def _get_origin(cls):
return super()._get_origin() | {'sale.sale'}
@classmethod
def update_state(cls, requests):
pool = Pool()
Sale = pool.get('sale.sale')
transaction = Transaction()
context = transaction.context
super().update_state(requests)
sales = {r.origin for r in requests if isinstance(r.origin, Sale)}
if sales:
with transaction.set_context(
queue_batch=context.get('queue_batch', True)):
Sale.__queue__.process(Sale.browse(sales))
@classmethod
def copy(cls, requests, default=None):
default = default.copy() if default is not None else {}
default.setdefault('sale_lines')
return super().copy(requests, default=default)
@classmethod
def on_delete(cls, requests):
pool = Pool()
Sale = pool.get('sale.sale')
SaleLine = pool.get('sale.line')
transaction = Transaction()
context = transaction.context
with without_check_access():
reqs = cls.browse(requests)
sales = set(r.origin for r in reqs if isinstance(r.origin, Sale))
sale_lines = [l for r in reqs for l in r.sale_lines]
if sale_lines:
SaleLine.write(sale_lines, {
'purchase_request': None,
})
if sales:
with transaction.set_context(
queue_batch=context.get('queue_batch', True)):
Sale.__queue__.process(sales)
return super().on_delete(requests)