73 lines
2.8 KiB
Python
73 lines
2.8 KiB
Python
#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):
|
|
pool = Pool()
|
|
Equipment = pool.get('optical.equipment')
|
|
#raise UserError(str(type(Equipment)))
|
|
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()
|
|
"""
|
|
#raise UserError(str(dir(purchase)))
|
|
#equipment = Equipment()
|
|
for line in purchase.lines:
|
|
#raise UserError(str(dir(line)))
|
|
equipment = Equipment(
|
|
company=line.company,
|
|
equipment_type=line.product.equipment_type,
|
|
party_address=line.address_equipment,
|
|
product=line.product,
|
|
risk=line.product.risk,
|
|
use=line.product.use,
|
|
biomedical_class=line.product.biomedical_class,
|
|
calibration=line.product.calibration,
|
|
refurbish=line.refurbish,
|
|
serial=line.serial_equipment,
|
|
software_version=line.product.software_version,
|
|
)
|
|
equipment.save()
|
|
#raise UserError(str([equipment.serial, equipment.software_version]))
|
|
""" 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'
|
|
|
|
address_equipment = fields.Many2One('party.address', "Direccion")
|
|
serial_equipment = fields.Char("Serial", size=None, required=True)
|
|
refurbish = fields.Boolean("Refurbish")
|
|
|