Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class PurchaseRequest:
- __metaclass__ = PoolMeta
- __name__ = 'purchase.request'
- employee = fields.Function(fields.Many2One('company.employee', 'Employee',
- states={
- 'invisible': ~Eval('employee', False),
- }), 'get_employee', searcher='search_employee')
- requisition_number = fields.Function(fields.Char('Requisition Number',
- states={
- 'invisible': ~Eval('requisition_number', False),
- }), 'get_requisition_number', searcher='search_requisition_number')
- def get_employee(self, name):
- pool = Pool()
- RequisitionLine = pool.get('purchase.requisition.line')
- if isinstance(self.origin, RequisitionLine):
- return self.origin.requisition.employee.id
- @classmethod
- def search_employee(cls, name, clause):
- return [('origin.requisition.employee' + clause[0].lstrip(name),)
- + tuple(clause[1:3]) + ('purchase.requisition.line',)
- + tuple(clause[3:]), ]
- def get_requisition_number(self, name):
- pool = Pool()
- RequisitionLine = pool.get('purchase.requisition.line')
- if isinstance(self.origin, RequisitionLine):
- return self.origin.requisition.number
- @classmethod
- def search_requisition_number(cls, name, clause):
- return [('origin.requisition.number' + clause[0].lstrip(name),)
- + tuple(clause[1:3]) + ('purchase.requisition.line',)
- + tuple(clause[3:]), ]
- def _order_requisition_field(name):
- def order_field(tables):
- pool = Pool()
- Requisition = pool.get('purchase.requisition')
- RequisitionLine = pool.get('purchase.requisition.line')
- field = Requisition._fields[name]
- request, _ = tables[None]
- requisitionline_table = tables.get('requisition_line')
- if requisitionline_table is None:
- requisitionline = RequisitionLine.__table__()
- requisition = Requisition.__table__()
- rline_tables = {
- None: (requisitionline,
- (Concat(RequisitionLine.__name__ + ',',
- requisitionline.id)) == request.origin),
- 'requisition': (requisition, requisition.id ==
- requisitionline.requisition)
- }
- tables['requisition_line'] = rline_tables
- return field.convert_order(name, rline_tables, Requisition)
- return staticmethod(order_field)
- order_employee = _order_requisition_field('employee')
- order_requisition_number = _order_requisition_field('number')
Advertisement
Add Comment
Please, Sign In to add comment