Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ
1 Trả lời
3605 Lượt xem

in the object  hr.analytic.timesheet there is the _check method 

def _check(self, cr, uid, ids):
        for att in self.browse(cr, uid, ids):
            if att.sheet_id and att.sheet_id.state not in ('draft', 'new'):
                raise osv.except_osv(_('Error!'), _('You cannot modify an entry in a confirmed timesheet.'))
        return True

and method _check_sheet_state

def _check_sheet_state(self, cr, uid, ids, context=None):

        if context is None:

            context = {}

        for timesheet_line in self.browse(cr, uid, ids, context=context):

            if timesheet_line.sheet_id and timesheet_line.sheet_id.state not in ('draft', 'new'):

                return False

        return True

_constraints = [

(_check_sheet_state, 'You cannot modify an entry in a Confirmed/Done timesheet !', ['state']),


i've create a new module that inherits the hr.analytic.timesheet object and I redefine the _check and _check_sheet_state method by :

def _check(self, cr, uid, ids):

        for att in self.browse(cr, uid, ids):

            if att.sheet_id and att.sheet_id.state not in ('draft', 'new','confirm'):

                raise osv.except_osv(_('Error!'), _('You cannot modify an entry in a confirmed timesheet.'))

        return True

and method _check_sheet_state

def _check_sheet_state(self, cr, uid, ids, context=None):

        if context is None:

            context = {}

        for timesheet_line in self.browse(cr, uid, ids, context=context):

            if timesheet_line.sheet_id and timesheet_line.sheet_id.state not in ('draft', 'new','confirm'):

                return False

        return True

_constraints = [

(_check_sheet_state, 'You cannot modify an entry in a Confirmed/Done timesheet !', ['state']),


if you see i just add value state 'confirm' in method, for when the state confirm the constraint is not showing.


i want use method that i have made but my method doesnt work.


anyone can help me how to code this? Thanks for your Help

Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

hai,

Try to Change browse method to read method, for example change from

 self.browse(cr, uid, ids, context=context) to

self.read(cr, uid, ids, ['state'], context=context)

Ảnh đại diện
Huỷ bỏ
Bài viết liên quan Trả lời Lượt xem Hoạt động
1
thg 8 17
5909
3
thg 12 24
6426
1
thg 8 21
6576
1
thg 2 20
4210
0
thg 7 16
4128