GoodERP
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

71 rinda
4.5KB

  1. # Copyright 2016 上海开阖软件有限公司 (http://www.osbzr.com)
  2. # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
  3. from odoo import fields, models, api
  4. class StaffContract(models.Model):
  5. _name = 'staff.contract'
  6. _description = '员工合同'
  7. staff_id = fields.Many2one('staff', '员工', required=True)
  8. over_date = fields.Date(string='到期日', required=True)
  9. basic_wage = fields.Float(string='基础工资', digits=(12, 2), default='', )
  10. base_social_payment = fields.Float(string='社保缴费基数', digits=(12, 2), default='', )
  11. base_provident = fields.Float(string='公积金缴费基数', digits=(12, 2), default='', )
  12. company_social_payment = fields.Float(string='单位社保', digits=(12, 2), default='', )
  13. personal_social_payment = fields.Float(string='个人社保', digits=(12, 2), default='', )
  14. endowment = fields.Float(string='个人养老保险', digits=(12, 2), default='', )
  15. health = fields.Float(string='个人医疗保险', digits=(12, 2), default='', )
  16. unemployment = fields.Float(string='个人失业保险', digits=(12, 2), default='', )
  17. housing_fund = fields.Float(string='个人住房公积金', digits=(12, 2), default='', )
  18. endowment_co = fields.Float(string='公司养老保险', digits=(12, 2), default='', help='公司承担的养老保险')
  19. health_co = fields.Float(string='公司医疗保险', digits=(12, 2), default='', help='公司承担的医疗保险')
  20. unemployment_co = fields.Float(string='公司失业保险', digits=(12, 2), default='', help='公司承担的失业保险')
  21. injury = fields.Float(string='公司工伤保险', digits=(12, 2), default='', help='公司承担的工伤保险')
  22. maternity = fields.Float(string='公司生育保险', digits=(12, 2), default='', help='公司承担的生育保险')
  23. housing_fund_co = fields.Float(string='公司住房公积金', digits=(12, 2), default='', help='公司承担的住房公积金')
  24. job_id = fields.Many2one('staff.job', string='岗位', required=True)
  25. company_id = fields.Many2one(
  26. 'res.company',
  27. string='公司',
  28. change_default=True,
  29. default=lambda self: self.env.company)
  30. @api.onchange('basic_wage')
  31. def onchange_basic_wage(self):
  32. # 选择基本工资时带出五险一金比例,计算出应交金额并填充
  33. if self.basic_wage:
  34. company = self.env.company
  35. self.endowment = company.endowment_ratio * 0.01 * self.basic_wage
  36. self.health = company.health_ratio * 0.01 * self.basic_wage
  37. self.unemployment = company.unemployment_ratio * 0.01 * self.basic_wage
  38. self.housing_fund = company.housing_fund_ratio * 0.01 * self.basic_wage
  39. self.endowment_co = company.endowment_co_ratio * 0.01 * self.basic_wage
  40. self.health_co = company.health_co_ratio * 0.01 * self.basic_wage
  41. self.unemployment_co = company.unemployment_co_ratio * 0.01 * self.basic_wage
  42. self.injury = company.injury_ratio * 0.01 * self.basic_wage
  43. self.maternity = company.maternity_ratio * 0.01 * self.basic_wage
  44. self.housing_fund_co = company.housing_fund_co_ratio * 0.01 * self.basic_wage
  45. class ResCompany(models.Model):
  46. _inherit = 'res.company'
  47. endowment_ratio = fields.Float(string='个人养老保险比例(%)')
  48. health_ratio = fields.Float(string='个人医疗保险比例(%)')
  49. unemployment_ratio = fields.Float(string='个人失业保险比例(%)')
  50. housing_fund_ratio = fields.Float(string='个人住房公积金比例(%)')
  51. endowment_co_ratio = fields.Float(string='公司养老保险比例(%)',
  52. help='公司承担的养老保险比例')
  53. health_co_ratio = fields.Float(string='公司医疗保险比例(%)',
  54. help='公司承担的医疗保险比例')
  55. unemployment_co_ratio = fields.Float(string='公司失业保险比例(%)',
  56. help='公司承担的失业保险比例')
  57. injury_ratio = fields.Float(string='公司工伤保险比例(%)',
  58. help='公司承担的工伤保险比例')
  59. maternity_ratio = fields.Float(string='公司生育保险比例(%)',
  60. help='公司承担的生育保险比例')
  61. housing_fund_co_ratio = fields.Float(string='公司住房公积金比例(%)',
  62. help='公司承担的住房公积金比例')
上海开阖软件有限公司 沪ICP备12045867号-1