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

57
modules/stock/ir.py Normal file
View File

@@ -0,0 +1,57 @@
# 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 itertools import groupby
from operator import attrgetter
from trytond.pool import Pool, PoolMeta
from trytond.transaction import Transaction
from .shipment import ShipmentAssignMixin
class Cron(metaclass=PoolMeta):
__name__ = 'ir.cron'
@classmethod
def __setup__(cls):
super().__setup__()
cls.method.selection.extend([
('product.product|recompute_cost_price_from_moves',
"Recompute Cost Price from Moves"),
('stock.shipment.out|reschedule',
"Reschedule Customer Shipments"),
('stock.shipment.in.return|reschedule',
"Reschedule Supplier Return Shipments"),
('stock.shipment.internal|reschedule',
"Reschedule Internal Shipments"),
('ir.cron|stock_shipment_assign_try', "Assign Shipments"),
])
@classmethod
def __register__(cls, module):
table = cls.__table__()
cursor = Transaction().connection.cursor()
super().__register__(module)
# Migration from 7.0: replace assign_cron
cursor.execute(*table.update(
[table.method], ['ir.cron|stock_shipment_assign_try'],
where=table.method.in_([
'stock.shipment.out|assign_cron',
'stock.shipment.internal|assign_cron',
])))
@classmethod
def stock_shipment_assign_try(cls):
pool = Pool()
records = []
for _, kls in pool.iterobject():
if issubclass(kls, ShipmentAssignMixin):
records.extend(kls.to_assign())
records.sort(key=attrgetter('assign_order_key'))
for kls, records in groupby(records, key=attrgetter('__class__')):
kls.assign_try(list(records))