You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
1.7 KiB
39 lines
1.7 KiB
# -*- coding: utf-8 -*-
|
|
from openerp import models, fields, api
|
|
from openerp.osv import osv
|
|
|
|
|
|
class SalaryStructure(models.Model):
|
|
_inherit = 'hr.payroll.structure'
|
|
max_percent = fields.Integer(string='Max.Salary Advance Percentage')
|
|
advance_date = fields.Integer(string='Salary Advance-After days')
|
|
|
|
|
|
class AdvanceRule(models.Model):
|
|
_name = "advance.rules"
|
|
name = fields.Char(string='Name', required=True)
|
|
debit = fields.Many2one('account.account', string='Debit Account', domain="[('type','=','other')]", required=True)
|
|
credit = fields.Many2one('account.account', string='Credit Account', domain="[('type','=','other')]", required=True)
|
|
journal = fields.Many2one('account.journal', string='Journal', required=True)
|
|
company_id = fields.Many2one('res.company', string='Company', default=lambda self: self.env.user.company_id)
|
|
analytic_journal = fields.Many2one('account.analytic.journal', string='Analytic Journal')
|
|
|
|
@api.model
|
|
def create(self, vals):
|
|
company_id = vals.get('company_id')
|
|
advance_rule_search = self.search([('company_id', '=', company_id)])
|
|
if advance_rule_search:
|
|
raise osv.except_osv('Error!', 'Advance rule for this Company already exist')
|
|
res_id = super(AdvanceRule, self).create(vals)
|
|
return res_id
|
|
|
|
@api.multi
|
|
def write(self, vals):
|
|
company_id = self.company_id
|
|
if 'company_id' in vals:
|
|
company_id = vals.get('company_id')
|
|
advance_rule_search = self.search([('company_id', '=', company_id)])
|
|
if advance_rule_search and advance_rule_search.id != self.id:
|
|
raise osv.except_osv('Error!', 'Advance rule for this Company already exist')
|
|
super(AdvanceRule, self).write(vals)
|
|
return True
|
|
|