[FIX] Hr_payroll_account : Payslip approval crashes without notification if Property...
authorJay Vora (OpenERP) <jvo@tinyerp.com>
Wed, 2 Mar 2011 09:37:22 +0000 (15:07 +0530)
committerJay Vora (OpenERP) <jvo@tinyerp.com>
Wed, 2 Mar 2011 09:37:22 +0000 (15:07 +0530)
bzr revid: jvo@tinyerp.com-20110302093722-9g2upvvd731vw91x

addons/hr/hr.py
addons/hr_payroll_account/hr_payroll_account.py
addons/hr_payroll_account/hr_payroll_account_view.xml

index e2b9a70..d45d0f9 100644 (file)
@@ -148,7 +148,7 @@ class hr_employee(osv.osv):
         'address_id': fields.many2one('res.partner.address', 'Working Address'),
         'address_home_id': fields.many2one('res.partner.address', 'Home Address'),
         'partner_id': fields.related('address_home_id', 'partner_id', type='many2one', relation='res.partner', readonly=True, help="Partner that is related to the current employee. Accounting transaction will be written on this partner belongs to employee."),
-        'bank_account_id':fields.many2one('res.partner.bank', 'Bank Account', domain="[('partner_id','=',partner_id)]", help="Employee bank salary account"),
+        'bank_account_id':fields.many2one('res.partner.bank', 'Bank Account Number', domain="[('partner_id','=',partner_id)]", help="Employee bank salary account"),
         'work_phone': fields.char('Work Phone', size=32, readonly=False),
         'mobile_phone': fields.char('Mobile', size=32, readonly=False),
         'work_email': fields.char('Work E-mail', size=240),
index 4668827..9b0ce82 100644 (file)
@@ -64,7 +64,7 @@ class hr_employee(osv.osv):
             method=True,
             domain="[('type', '=', 'liquidity')]",
             view_load=True,
-            help="Select Bank Account from where Salary Expense will be Paid"),
+            help="Select Bank Account from where Salary Expense will be Paid, to be used for payslip verification."),
         'salary_account':fields.property(
             'account.account',
             type='many2one',
@@ -295,6 +295,10 @@ class hr_payslip(osv.osv):
             self.create_voucher(cr, uid, [slip.id], name, move_id)
 
             name = "To %s account" % (slip.employee_id.name)
+            
+            if not slip.employee_id.property_bank_account.id:
+                raise osv.except_osv(_('Warning !'), _('Employee Bank Account is not defined for %s') % slip.employee_id.name)
+            
             ded_rec = {
                 'move_id': move_id,
                 'name': name,
@@ -426,10 +430,10 @@ class hr_payslip(osv.osv):
             partner_id = False
 
             if not slip.employee_id.bank_account_id:
-                raise osv.except_osv(_('Integrity Error !'), _('Please defined bank account for %s !') % (slip.employee_id.name))
+                raise osv.except_osv(_('Integrity Error !'), _('Please define bank account for %s !') % (slip.employee_id.name))
 
             if not slip.employee_id.bank_account_id.partner_id:
-                raise osv.except_osv(_('Integrity Error !'), _('Please defined partner in bank account for %s !') % (slip.employee_id.name))
+                raise osv.except_osv(_('Integrity Error !'), _('Please define partner in bank account for %s !') % (slip.employee_id.name))
 
             partner = slip.employee_id.bank_account_id.partner_id
             partner_id = slip.employee_id.bank_account_id.partner_id.id
@@ -463,7 +467,10 @@ class hr_payslip(osv.osv):
             }
             move_id = move_pool.create(cr, uid, move, context=context)
             self.create_voucher(cr, uid, [slip.id], slip.name, move_id)
-
+            
+            if not slip.employee_id.salary_account.id:
+                raise osv.except_osv(_('Warning !'), _('Please define Salary Account for %s.') % slip.employee_id.name)
+            
             line = {
                 'move_id':move_id,
                 'name': "By Basic Salary / " + slip.employee_id.name,
@@ -477,7 +484,6 @@ class hr_payslip(osv.osv):
                 'analytic_account_id': False,
                 'ref':slip.number
             }
-
             #Setting Analysis Account for Basic Salary
             if slip.employee_id.analytic_account:
                 line['analytic_account_id'] = slip.employee_id.analytic_account.id
@@ -485,9 +491,12 @@ class hr_payslip(osv.osv):
             move_line_id = movel_pool.create(cr, uid, line, context=context)
             line_ids += [move_line_id]
 
+            if not slip.employee_id.employee_account.id:
+                raise osv.except_osv(_('Warning !'), _('Please define Employee Payable Account for %s.') % slip.employee_id.name)
+            
             line = {
                 'move_id':move_id,
-                'name': "To Basic Paysble Salary / " + slip.employee_id.name,
+                'name': "To Basic Payable Salary / " + slip.employee_id.name,
                 'partner_id': partner_id,
                 'date': slip.date,
                 'account_id': slip.employee_id.employee_account.id,
@@ -498,6 +507,7 @@ class hr_payslip(osv.osv):
                 'period_id': period_id,
                 'ref':slip.number
             }
+            
             line_ids += [movel_pool.create(cr, uid, line, context=context)]
 
             for line in slip.line_ids:
index e62d2ae..e53070c 100644 (file)
                        </notebook>
                    </field>
                </record>
+               
+        <!-- Adding Account Properties to the Employee form -->
+
+        <record id="hr_employee_payroll_property_form" model="ir.ui.view">
+            <field name="name">hr.employee.payroll.property.form</field>
+            <field name="model">hr.employee</field>
+            <field name="inherit_id" ref="hr_contract.hr_hr_employee_view_form2"/>
+            <field name="arch" type="xml">
+                <field name="bank_account_id" position="after">
+                    <field name="property_bank_account" string="Employee Bank Account"/>
+                    <field name="salary_account"/>
+                    <field name="employee_account"/>
+                    <field name="analytic_account"/>
+                </field>
+            </field>
+        </record>
+
     </data>
 </openerp>