#This file is part of Tryton. The COPYRIGHT file at the top level of #txhis repository contains the full copyright notices and license terms from trytond.pool import Pool, PoolMeta from trytond.model import ModelView, ModelSQL, fields from trytond.exceptions import UserError class Purchase(metaclass=PoolMeta): __name__ = 'purchase.purchase' @classmethod @ModelView.button def process(cls, purchases): raise UserError(str("lento lento")) pool = Pool() Line = pool.get('purchase.line') lines = [] process, done = [], [] cls.lock(purchases) for purchase in purchases: if purchase.state not in {'confirmed', 'processing', 'done'}: continue purchase.create_invoice() purchase.set_invoice_state() purchase.create_move('in') return_moves = purchase.create_move('return') if return_moves: purchase.create_return_shipment(return_moves) purchase.set_shipment_state() for line in purchase.lines: line.set_actual_quantity() lines.append(line) if purchase.is_done(): if purchase.state != 'done': if purchase.state == 'confirmed': process.append(purchase) done.append(purchase) elif purchase.state != 'processing': process.append(purchase) Line.save(lines) if process: cls.proceed(process) if done: cls.do(done) class Line(metaclass=PoolMeta): __name__ = 'purchase.line' serial_equipment = fields.Char("Serial", size=None, required=True) refurbish = fields.Boolean("Refurbish")