薪酬计算的一般原理是:在基本工资的基础上,加上各种津贴,减去社保、公积金、个税等各种扣除项之后,得出最终的实发工资。此外,还要计算社保、公积金等公司应该承担的部分。

在同一公司中,针对不同的地区、不同的岗位,津贴、扣除项均不同,同一项目,不同的员工又有不同的计算方式,因此薪酬管理对于公司来说,相对而言比较复杂。

薪酬管理的难点是系统无法做到通用性,在实际应用中每家公司均需要按照自己的实际需求,进行个性化的定制开发。这样是通过Odoo/PS Cloud管理薪酬的一大难点。

一、基本概念

首先了解Odoo/PS Cloud系统中关于薪酬的基本概念:

基本工资:来源于合同中的基本工资项,员工入职时已确定;

薪酬规则:薪酬计算时,每项津贴、扣款都是一个规则,按照习惯,岗位津贴、交通补贴、社保、公积金、个税等都要定义为薪酬规则;

薪酬结构:不同岗位的员工,使用不同的薪酬规则,该结构需要的员工合同中指定;比如说上海的社保,分大城镇保险、小城镇保险、外来人员综合保险,不同的类型,需要应用不同的薪酬结构;

缴纳记录:即定义公司应交的各种社保、公积金金额,和薪酬结构类似,可以定义不同的基数和算法(百分比、固定金额、函数计算),在薪酬结构中可以指定相应的公司应缴纳记录;如上海的社保金,个人扣款是11%,公司应承担37%,系统设置的方法是,在社保的薪酬规则里面设置11%,同时添加一条公司应承担的缴纳记录到该规则中,公司缴纳记录设置为37%,这样计算工资的时候,会自动计算个人和公司各自的社保金额,并汇总到同一张表中;

员工工资单:个人工资单,每个月每个员工至少有一张工资单;

薪酬核算:如果员工数量较多,则需要统一为员工批量生成工资单。

二、薪酬计算

薪酬计算有两种方式,如果员工数量少,则可以通过“薪酬-员工工资单”计算,如果员工数量较多,则可以批量计算,通过菜单“薪酬-薪酬核算”。

本例中各项的计算规则如下:

Ø 基本工资 = 8000

Ø 销售提成 = 销售额 * 5% = 1000

Ø 考勤扣除 = 基本工资 * 请假天数 / 工作日

Ø 应发工资 = 基本工资 + 销售提成 – 考勤扣除

Ø 个税规则:应发工资 <= 3500,免税,3500到5000之间,3%,大于5000到8000之间,7%再减去105,大于8000默认就是8000

Ø 实发工资 = 应发工资 – 个税

2.1 员工工资单

这里以员工工资单为例

1.工作天数和其他:工作天数和其他输入项,WORK100是系统自动填写的当月应该工作的天数,工资单上员工当月发生的请假记录,系统会自动的记录到工作天数上。

Ø 请假单的“假别”是工作天数上的编码

Ø 请假单的天数是工作天数上的天数

Ø 系统会自动根据员工合同上的工作时间,计算工作天数上的小时数,此外,也可以手工录入小时数。

2.其他:手工填写,薪酬规则会用期代码引用输入的金额;销售提成、其他扣除、迟到等都可以在此处录入,进行自动计算。

2.2 薪酬结构

Ø 名称:薪酬结构的名称,按公司规定命名

Ø 编码:该薪酬结构的编码

Ø 上级:上级薪酬结构,上级中定义的一些规则会应用到本规则中

Ø 薪酬规则:具体计算方式及规则

在本例中,设置基本薪酬规则,包含基本工资、应发工资(Gross)、实发工资(Net)、销售提成、考勤扣除、个税、个税基数。

2.3 薪酬规则

名称:薪酬结构的名称,按照具体意思命名

Category:薪酬规则分类,从已定义好的中选择

顺序:在工资单上显示时的顺序,数值小的在前面

显示在工资单:表示该规则是否显示在工资单上,打勾表示显示

条件基于:本规则的使用条件,只有符合该条件,才会应用下面的计算方式,如果个税是3500以上开始计算,可设定个税基数大于3500时开始应用下面的规则。

如图可选择是基于个税基数的范围,大于3500下面的计算方式有效

Python代码:指适用条件的Python表达式

在这个表达式中,可以应用“+、-、*、/、()、and、or、not”等运算符,可以应用下述对象变量及其字段值:

Ø payslip:待计算的工资单

Ø employee:工资单上的员工信息

Ø contract:工资单上的合同信息,即员工的合同信息

Ø rules:之前定义的薪酬规则(序号小的规则),通过rules.code引用之前规则的计算结果

Ø categories:通过categories.code引用某一薪酬规则分类的汇总值,即该分类的薪酬规则计算结果之和。

Ø worked_days:工资单上的出勤数据,包括出勤天数,休假天数(及各假别天数),迟到小时数等。可以通过worked_days.code引用各种假别的天数

Ø inputs:工资单上的录入值,如销售提成,需要在工资单上录入,通过inputs.code引用该录入值。

备注:本文是以Odoo/PS Cloud8.0的业务场景为基础,参照Odoo/PS Cloud10.0,模拟了一个比较简单和基础的薪酬管理的实例,对如何操作及基本概念进行解析。

涉及复杂的、公司实际使用的薪酬发放规则,在系统中如何实现可深入交流。

Odoo薪酬管理 公式配置的更多相关文章

  1. SUPERVISOR进程管理器配置指南

    SUPERVISOR进程管理器配置指南1. supervisor简介1.1. 官网http://supervisord.org/ 1.2. 介绍Supervisor是一个进程控制系统. 它是一个C/S ...

  2. 3,linux入门到上手-文件权限管理与配置

    linux入门-文件权限管理与配置 一.关于linux的操作命令一般格式如下: 1,一行指令中第一个输入的部分绝对是"指令(command)"或"可可执行文件案(例如批次 ...

  3. 自学华为IoT物联网_10 IoT联接管理平台配置及开发实验1

    点击返回自学华为IoT物流网 自学华为IoT物联网_10 IoT联接管理平台配置及开发实验1 实验1:OceanConnect平台实验             通过基本的编程操作与配置,帮助读者熟悉O ...

  4. Delphi 的 FireDAC 连接管理与配置过程

    Delphi 的 FireDAC 连接管理与配置过程: 使用 FireDAC 技术连接 数据库,主要是使用  TFDConnection ,其中有一参数是选择  ConnectionDefFile. ...

  5. OCM_第十七天课程:Section7 —》GI 及 ASM 安装配置 _管理和配置 GRID /实施 ASM 故障组 /创建 ACFS 文件系统

    注:本文为原著(其内容来自 腾科教育培训课堂).阅读本文注意事项如下: 1:所有文章的转载请标注本文出处. 2:本文非本人不得用于商业用途.违者将承当相应法律责任. 3:该系列文章目录列表: 一:&l ...

  6. 淘宝JAVA中间件Diamond详解之简介&快速使用 管理持久配置的系统

    http://my.oschina.net/u/435621/blog/270483?p=1 淘宝JAVA中间件Diamond详解(一)---简介&快速使用 大家好,今天开始为大家带来我们通用 ...

  7. 三·管理和配置Subversion(基于Centos7)

    基于上一篇文章 二·安装Subversion(基于Centos7)中安装的Subversion,本篇文章讲述Subversion的管理和配置 1.添加环境变量 输入命令vi /etc/profile ...

  8. SharePoint管理中心配置内容数据库

    SharePoint管理中心配置内容数据库         在SharePoint2010中,内容数据库是组织数据的核心. 是全部站点内容信息,如文档.列表数据和Web部件属性等存储的地方.默认地,内 ...

  9. Spring声明式事务管理与配置介绍

    转至:http://java.9sssd.com/javafw/art/1215 [摘要]本文介绍Spring声明式事务管理与配置,包括Spring声明式事务配置的五种方式.事务的传播属性(Propa ...

随机推荐

  1. xamarin android如何将Java.Lang.Object类型转成C#类型

    问题起源 其实这个标题也可以换一个更准确一点,因为我遇到的问题是: xamarin android中的Class继承了Java.Lang.Object ,将json序列化成c#类型时发现无法赋值,序列 ...

  2. JPA中自定义的插入、更新、删除方法为什么要添加@Modifying注解和@Transactional注解?

    前几天,有个同事在使用JPA的自定义SQL方法时,程序一直报异常,捣鼓了半天也没能解决,咨询我的时候,我看了一眼他的程序,差不多是这个样子的: @Repository public interface ...

  3. handler原理

    一.消息机制概述 1.消息机制的简介 (1)Handler是什么 handler使Android给我们提供的用来更新UI的一套机制,也是一套消息处理机制:我们可以用它发送处理消息. (2)Androi ...

  4. Netty源码—二、server启动(2)

    我们在使用Netty的时候的初始化代码一般如下 EventLoopGroup bossGroup = new NioEventLoopGroup(); EventLoopGroup workerGro ...

  5. javascript入门篇(四)

    Break 和 Continue 语句 break 它常用于跳出 switch() 语句, break 语句也可用于跳出循环.break 语句跳出循环后,会继续执行该循环之后的代码(如果有的话) co ...

  6. Redis调用的流程(新手使用)

    就用查省市为例,别人还没查就把所有都弄好,很浪费资源和时间,redis是为了存储常用的查询操作的[结果],以此来减少直接查询数据库的次数,以下内容仅供参考,请勿照抄.(如有说得不好之处,请指点.) 言 ...

  7. jquery.rotate.js实现可选抽奖次数和中奖内容的转盘抽奖代码

    需求: 抽奖代码最多可以抽奖5次,而且,每次只会中“2000元理财金”或者“谢谢参与”,其它的不会抽中(哈哈,果然都是套路). 效果如下: 一.页面结构: ? 1 2 3 4 5 6 7 8 9 10 ...

  8. Linux 操作系统基础

    list : ls 目录: 文件,路径映射. ls : -l : lang 长格式, 显示完整信息. 文件类型: -: 普通文件(f) d: 目录文件 b: 块设备文件(block) c: 字块设备文 ...

  9. 【Teradata SQL】一个字段为空即取另外一个字段(连续取4个字段)-case when

    目标:如果col1为空则取col2的值,如果col2也为空则取col3的值,如果col3还为则取col4的值,如果四个字段均为空则取默认值 1.数据准备 create multiset table t ...

  10. 实战经验|大神战队都在i春秋教你打CTF

    全国大学生信息安全竞赛创新实践能力赛旨在培养.选拔.推荐优秀信息安全专业人才创造条件,促进高等学校信息安全专业课程体系.教学内容和方法的改革,培养学生的创新意识与团队合作精神,普及信息安全知识,增强学 ...