我是新的OpenERP 7编程。我创建了一个预订模块,允许客人预订多个房间。在创建新的预订时,我希望能够将房间状态从available更改为订票。这种场景的解决方案似乎是覆盖、create、或,为openERP编写 ORM方法。
我完全不知道如何将它合并到我的代码中。下面是我代码的一部分。
class reservation(osv.osv):
_columns = {
'name': fields.char('Reservation No', required=True, select=True, readonly=True),
'date_order':fields.datetime('Date Ordered', required=True, readonly=True),
'reserved_rooms': fields.one2many('hotel.reservation.line','line_id', 'Reserved Rooms'),
'state': fields.selection([('draft', 'Draft'),('confirmed','Confirmed'),('cancelled','Cancelled'),('done','Done')], 'State',readonly=True),
}
reservation()
_defaults = {
'name': lambda obj, cr, uid, context: obj.pool.get('ir.sequence').get(cr, uid,'hotel.reservation'),
'state': lambda *a: 'draft',
'date_order': lambda *a: time.strftime('%Y-%m-%d %H:%M:%S')
}保留是以默认状态作为草案创建的。在我的代码中如何以及在哪里放置和使用创建或编写方法?谢谢。
发布于 2015-04-01 07:38:55
试着跟着,
class reservation(osv.osv):
_columns = {
'name': fields.char('Reservation No', required=True, select=True, readonly=True),
'date_order':fields.datetime('Date Ordered', required=True, readonly=True),
'reserved_rooms': fields.one2many('hotel.reservation.line','line_id', 'Reserved Rooms'),
'state': fields.selection([('draft', 'Draft'),('confirmed','Confirmed'),('cancelled','Cancelled'),('done','Done')], 'State',readonly=True),
}
_defaults = {
'name': lambda obj, cr, uid, context: obj.pool.get('ir.sequence').get(cr, uid,'hotel.reservation'),
'state': lambda *a: 'draft',
'date_order': lambda *a: time.strftime('%Y-%m-%d %H:%M:%S')
}
def create(self, cr, uid, vals, context=None):
###Add your code here
####update status in vals
return super(reservation,self).create(cr, uid, vals, context=context)
def write(self, cr, uid, ids, vals, context=None):
###Add your code here
####update status in vals
## you will get only those fields into the vals which are updated.
return super(reservation,self).write(cr, uid, ids, vals, context=context)https://stackoverflow.com/questions/29384833
复制相似问题