Merge lp:~openerp-dev/openobject-addons/trunk-payroll-payslip-states-and-workflow-mtr into lp:~openerp-dev/openobject-addons/trunk-payroll

Proposed by Meera Trambadia (OpenERP)
Status: Merged
Merged at revision: 4499
Proposed branch: lp:~openerp-dev/openobject-addons/trunk-payroll-payslip-states-and-workflow-mtr
Merge into: lp:~openerp-dev/openobject-addons/trunk-payroll
Diff against target: 222 lines (+72/-45)
3 files modified
hr_payroll/hr_payroll.py (+22/-15)
hr_payroll/hr_payroll_view.xml (+4/-3)
hr_payroll/hr_payroll_workflow.xml (+46/-27)
To merge this branch: bzr merge lp:~openerp-dev/openobject-addons/trunk-payroll-payslip-states-and-workflow-mtr
Reviewer Review Type Date Requested Status
Mustufa Rangwala (Open ERP) Approve
qdp (OpenERP) Pending
Review via email: mp+61750@code.launchpad.net

This proposal supersedes a proposal from 2011-05-17.

Description of the change

hr_payroll:- improved payslip states and workflow: -
-> kept only draft, verify, done state and accordingly changed the workflow.
-> applied condition on transition of verify -> done.

To post a comment you must log in.
Revision history for this message
Mustufa Rangwala (Open ERP) (mra-tinyerp) wrote : Posted in a previous version of this proposal

to be fix/improve

1. as you have removed some states update tooltip of state field
2. def check => def check_done

review: Needs Fixing
Revision history for this message
Meera Trambadia (OpenERP) (mtr-openerp) wrote :

Hello sir,

I have made changes as per your suggestions.

Thanks
mtr

Revision history for this message
Mustufa Rangwala (Open ERP) (mra-tinyerp) : Posted in a previous version of this proposal
review: Approve
Revision history for this message
Mustufa Rangwala (Open ERP) (mra-tinyerp) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'hr_payroll/hr_payroll.py'
2--- hr_payroll/hr_payroll.py 2011-05-12 11:57:19 +0000
3+++ hr_payroll/hr_payroll.py 2011-05-20 12:02:27 +0000
4@@ -255,19 +255,21 @@
5 'date_from': fields.date('Date From', readonly=True, states={'draft': [('readonly', False)]}, required=True),
6 'date_to': fields.date('Date To', readonly=True, states={'draft': [('readonly', False)]}, required=True),
7 'state': fields.selection([
8- ('draft', 'Waiting for Verification'),
9- ('hr_check', 'Waiting for HR Verification'),
10- ('accont_check', 'Waiting for Account Verification'),
11- ('confirm', 'Confirm Sheet'),
12- ('done', 'Paid Salary'),
13+ ('draft', 'Draft'),
14+ ('verify', 'Verify'),
15+ ('done', 'Done'),
16 ('cancel', 'Reject'),
17+# ('draft', 'Waiting for Verification'),
18+# ('hr_check', 'Waiting for HR Verification'),
19+# ('accont_check', 'Waiting for Account Verification'),
20+# ('confirm', 'Confirm Sheet'),
21+# ('done', 'Paid Salary'),
22+# ('cancel', 'Reject'),
23 ], 'State', select=True, readonly=True,
24- help=' * When the payslip is created the state is \'Waiting for verification\'.\
25- \n* It is varified by the user and payslip is sent for HR varification, the state is \'Waiting for HR Verification\'. \
26- \n* If HR varify the payslip, it is sent for account verification, the state is \'Waiting for Account Verification\'. \
27- \n* It is confirmed by the accountant and the state set to \'Confirm Sheet\'.\
28- \n* If the salary is paid then state is set to \'Paid Salary\'.\
29- \n* The \'Reject\' state is used when user cancel payslip.'),
30+ help='* When the payslip is created the state is \'Draft\'.\
31+ \n* If a condition is not satisfied, the state is \'Verify\'. \
32+ \n* If a condition is satisfied and salary is paid then state is set to \'Done\'.\
33+ \n* When user cancel payslip the state is \'Reject\'.'),
34 # 'line_ids': fields.one2many('hr.payslip.line', 'slip_id', 'Payslip Line', required=False, readonly=True, states={'draft': [('readonly', False)]}),
35 'line_ids': one2many_mod2('hr.payslip.line', 'slip_id', 'Payslip Lines', readonly=True, states={'draft':[('readonly',False)]}),
36 'company_id': fields.many2one('res.company', 'Company', required=False, readonly=True, states={'draft': [('readonly', False)]}),
37@@ -310,21 +312,23 @@
38
39 def account_check_sheet(self, cr, uid, ids, context=None):
40 return self.write(cr, uid, ids, {'state': 'accont_check'}, context=context)
41-
42+
43 def hr_check_sheet(self, cr, uid, ids, context=None):
44 return self.write(cr, uid, ids, {'state': 'hr_check'}, context=context)
45-
46+
47 def process_sheet(self, cr, uid, ids, context=None):
48 return self.write(cr, uid, ids, {'paid': True, 'state': 'done'}, context=context)
49
50+ def hr_verify_sheet(self, cr, uid, ids, context=None):
51+ return self.write(cr, uid, ids, {'state': 'verify'}, context=context)
52+
53 def refund_sheet(self, cr, uid, ids, context=None):
54 mod_obj = self.pool.get('ir.model.data')
55 wf_service = netsvc.LocalService("workflow")
56 for id in ids:
57 id_copy = self.copy(cr, uid, id, {'credit_note': True}, context=context)
58 self.compute_sheet(cr, uid, [id_copy], context=context)
59- wf_service.trg_validate(uid, 'hr.payslip', id_copy, 'verify_sheet', cr)
60- wf_service.trg_validate(uid, 'hr.payslip', id_copy, 'final_verify_sheet', cr)
61+ wf_service.trg_validate(uid, 'hr.payslip', id_copy, 'hr_verify_sheet', cr)
62 wf_service.trg_validate(uid, 'hr.payslip', id_copy, 'process_sheet', cr)
63
64 form_id = mod_obj.get_object_reference(cr, uid, 'hr_payroll', 'view_hr_payslip_form')
65@@ -347,6 +351,9 @@
66
67 def verify_sheet(self, cr, uid, ids, context=None):
68 return self.write(cr, uid, ids, {'state': 'confirm'}, context=context)
69+
70+ def check_done(self, cr, uid, ids, context=None):
71+ return True
72
73 #TODO move this function into hr_contract module, on hr.employee object
74 def get_contract(self, cr, uid, employee, date_from, date_to, context=None):
75
76=== modified file 'hr_payroll/hr_payroll_view.xml'
77--- hr_payroll/hr_payroll_view.xml 2011-05-12 07:02:53 +0000
78+++ hr_payroll/hr_payroll_view.xml 2011-05-20 12:02:27 +0000
79@@ -329,13 +329,14 @@
80 </notebook>
81 <group col="10" colspan="4">
82 <field name="state"/>
83- <button string="Cancel" icon="terp-dialog-close" name="cancel_sheet" states="draft,hr_check,confirm"/>
84+ <button string="Cancel" icon="terp-dialog-close" name="cancel_sheet" states="draft,hr_check,confirm,verify"/>
85 <button string="Compute Sheet" icon="terp-stock_format-scientific" name="compute_sheet" type="object" states="draft"/>
86- <button string="Verify Sheet" icon="terp-camera_test" name="verify_sheet" states="draft"/>
87+ <!--<button string="Verify Sheet" icon="terp-camera_test" name="verify_sheet" states="draft"/>
88 <button string="Approve Sheet" icon="terp-camera_test" name="final_verify_sheet" states="hr_check"/>
89- <button string="Pay Salary" icon="terp-dolar_ok!" name="process_sheet" states="confirm"/>
90+ <button string="Pay Salary" icon="terp-dolar_ok!" name="process_sheet" states="confirm"/>-->
91 <button string="Set to Draft" icon="terp-stock_effects-object-colorize" name="draft" states="cancel"/>
92 <button string="Refund" icon="gtk-execute" name="refund_sheet" states="confirm,done" type='object'/>
93+ <button string="Verify" icon="terp-camera_test" name="hr_verify_sheet" states="draft"/>
94 </group>
95 </form>
96 </field>
97
98=== modified file 'hr_payroll/hr_payroll_workflow.xml'
99--- hr_payroll/hr_payroll_workflow.xml 2011-04-08 09:38:29 +0000
100+++ hr_payroll/hr_payroll_workflow.xml 2011-05-20 12:02:27 +0000
101@@ -14,22 +14,28 @@
102 <field name="kind">function</field>
103 <field name="action">write({'state': 'draft'})</field>
104 <field name="split_mode">OR</field>
105-
106- </record>
107-
108- <record id="act_hr_check" model="workflow.activity">
109+ </record>
110+
111+ <record id="act_verify" model="workflow.activity">
112+ <field name="wkf_id" ref="wkf"/>
113+ <field name="name">verify</field>
114+ <field name="action">hr_verify_sheet()</field>
115+ <field name="kind">function</field>
116+ </record>
117+
118+ <!-- <record id="act_hr_check" model="workflow.activity">
119 <field name="wkf_id" ref="wkf"/>
120 <field name="name">hr_check</field>
121 <field name="action">hr_check_sheet()</field>
122 <field name="kind">function</field>
123- </record>
124+ </record>-->
125
126- <record id="act_confirm" model="workflow.activity">
127+ <!--<record id="act_confirm" model="workflow.activity">
128 <field name="wkf_id" ref="wkf"/>
129 <field name="name">confirm</field>
130 <field name="action">verify_sheet()</field>
131 <field name="kind">function</field>
132- </record>
133+ </record>-->
134
135 <record id="act_cancel" model="workflow.activity">
136 <field name="wkf_id" ref="wkf"/>
137@@ -46,52 +52,65 @@
138 <field name="flow_stop">True</field>
139 </record>
140
141- <record id="t2" model="workflow.transition">
142+ <!-- <record id="t2" model="workflow.transition">
143 <field name="act_from" ref="act_draft"/>
144 <field name="act_to" ref="act_hr_check"/>
145 <field name="signal">verify_sheet</field>
146- </record>
147+ </record>-->
148
149- <record id="t3" model="workflow.transition">
150+ <!-- <record id="t3" model="workflow.transition">
151 <field name="act_from" ref="act_hr_check"/>
152 <field name="act_to" ref="act_confirm"/>
153 <field name="signal">final_verify_sheet</field>
154- </record>
155+ </record>-->
156
157- <record id="t4" model="workflow.transition">
158+ <!--<record id="t4" model="workflow.transition">
159 <field name="act_from" ref="act_confirm"/>
160 <field name="act_to" ref="act_done"/>
161 <field name="signal">process_sheet</field>
162- </record>
163-
164- <record id="t7" model="workflow.transition">
165- <field name="act_from" ref="act_draft"/>
166- <field name="act_to" ref="act_cancel"/>
167- <field name="signal">cancel_sheet</field>
168- </record>
169-
170- <record id="t8" model="workflow.transition">
171+ </record>-->
172+
173+ <!-- <record id="t8" model="workflow.transition">
174 <field name="act_from" ref="act_hr_check"/>
175 <field name="act_to" ref="act_cancel"/>
176 <field name="signal">cancel_sheet</field>
177- </record>
178+ </record>-->
179
180- <record id="t9" model="workflow.transition">
181+ <!-- <record id="t9" model="workflow.transition">
182 <field name="act_from" ref="act_confirm"/>
183 <field name="act_to" ref="act_cancel"/>
184 <field name="signal">cancel_sheet</field>
185+ </record>-->
186+
187+ <record id="t1" model="workflow.transition">
188+ <field name="act_from" ref="act_draft"/>
189+ <field name="act_to" ref="act_verify"/>
190+ <field name="signal">hr_verify_sheet</field>
191 </record>
192
193- <record id="t11" model="workflow.transition">
194- <field name="act_from" ref="act_done"/>
195+ <record id="t2" model="workflow.transition">
196+ <field name="act_from" ref="act_draft"/>
197 <field name="act_to" ref="act_cancel"/>
198 <field name="signal">cancel_sheet</field>
199 </record>
200-
201- <record id="t12" model="workflow.transition">
202+
203+ <record id="t3" model="workflow.transition">
204 <field name="act_from" ref="act_cancel"/>
205 <field name="act_to" ref="act_draft"/>
206 <field name="signal">draft</field>
207 </record>
208+
209+ <record id="t4" model="workflow.transition">
210+ <field name="act_from" ref="act_verify"/>
211+ <field name="act_to" ref="act_cancel"/>
212+ <field name="signal">cancel_sheet</field>
213+ </record>
214+
215+ <record id="t5" model="workflow.transition">
216+ <field name="act_from" ref="act_verify"/>
217+ <field name="act_to" ref="act_done"/>
218+ <field name="condition">check_done()</field>
219+ </record>
220+
221 </data>
222 </openerp>

Subscribers

People subscribed via source and target branches