~openerp-chinese-team/openerp-china/openerp-china

« back to all changes in this revision

Viewing changes to contract/contract.py

  • Committer: JoshuaJan
  • Date: 2012-11-13 13:34:17 UTC
  • mfrom: (88.1.1 openerp-china)
  • Revision ID: popkar77@gmail.com-20121113133417-hoe5mhl3kgpmv6hi
merge

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# -*- encoding: utf-8 -*-
 
2
 
 
3
from osv import osv, fields
 
4
class contract_contract(osv.osv):
 
5
    _name = 'contract'
 
6
    _description = '合同'
 
7
    def get_employee(self, cr, uid, context={}):
 
8
        obj = self.pool.get('hr.employee')
 
9
        ids = obj.search(cr, uid, [('user_id','=',uid)])
 
10
        res = obj.read(cr, uid, ids, ['id','name'], context)
 
11
        return res and res[0]['id'] or 0
 
12
 
 
13
    _columns = {
 
14
        'proposer': fields.many2one('hr.employee', '申请人', required=True),
 
15
        'auditor': fields.many2one('hr.employee', '审核人', required=False),
 
16
        'contractNo': fields.char('合同编号', size=20, help='合同的编号'),
 
17
        'name': fields.char('合同标题', size=50, help='合同的标题'),
 
18
        'partyA': fields.char('合同甲方', size=50, help='合同甲方'),
 
19
        'partyB': fields.char('合同乙方', size=50, help='合同乙方'),
 
20
        'amount': fields.float('合同金额', help='合同总金额'),
 
21
        'contents': fields.text('合同内容', help='合同内容简介,完整内容请见附件'),
 
22
        'startDate': fields.date('合同开始时间', help='合同生效的时间'),
 
23
        'endDate': fields.date('合同结束时间', help='合同预期结束或失效的时间'),
 
24
        'type': fields.selection([('sale','销售'),('purchase','采购')], '合同类型', help='合同类型'),
 
25
        'active': fields.boolean('有效'),
 
26
        'state': fields.selection([('draft','草稿'),('wait_prove','待签署'),('proved','已生效'),('rejected','被作废')], '状态'),
 
27
    }
 
28
    _defaults = {
 
29
        'proposer': lambda self,cr,uid,context: self.get_employee(cr,uid,context),
 
30
        'active': lambda *a: 1,
 
31
        'state': lambda *a: 'draft',
 
32
    }
 
33
    
 
34
    def action_state_proved(self, cr, uid, ids, context=None):
 
35
        if context is None:
 
36
            context = {}
 
37
        
 
38
        self.write(cr, uid, ids, {'auditor':uid}, context=context)
 
39
        for inv_id, name in self.name_get(cr, uid, ids, context=context):
 
40
            message = ("Contract '%s' is proved.") % name
 
41
            self.log(cr, uid, inv_id, message)
 
42
        return True
 
43
 
 
44
    def action_state_rejected(self, cr, uid, ids, context=None):
 
45
        if context is None:
 
46
            context = {}
 
47
        
 
48
        self.write(cr, uid, ids, {'auditor':uid}, context=context)
 
49
        for inv_id, name in self.name_get(cr, uid, ids, context=context):
 
50
            message = ("Contract '%s' is rejected.") % name
 
51
            self.log(cr, uid, inv_id, message)
 
52
        return True
 
53
 
 
54
contract_contract()