人力资源与工资管理子系统.docx
《人力资源与工资管理子系统.docx》由会员分享,可在线阅读,更多相关《人力资源与工资管理子系统.docx(19页珍藏版)》请在冰豆网上搜索。
人力资源与工资管理子系统
第五章人力资源与工资管理子系统
一、教学目的和要求:
本章分析人力资源与工资管理子系统的主要功能、数据流图和功能结构图,介绍它的主要库文件结构、输入输出设计及主要处理的设计思路。
通过本章教学,使学生了解该子系统的功能及其实现,并要求学生用所学过的数据库语言开发一个工资核算系统。
二、教学内容:
第一节手工会计工资核算管理概述
在手工处理环境下,工资核算主要包括工资计算和工资费用分配两方面的内容。
1.工资计算
工资计算是指应付工资的计算、代扣款项的计算和实发工资的计算等。
为此,会计部门需要从有关部门取得每个职工的详细数据。
(1)从人事部门取得人员进出、调动及职务职称、工作岗位变动和相应的工资福利待遇变动等资料;
(2)从劳动部门取得考勤统计资料;
(3)从生产车间取得产量和质量统计资料;
(4)从总务部门取得房租、水电费等代扣款项资料。
在汇集上述各项原始凭证的基础上,会计部门要负责编制“工资结算单”、“部门汇总表”及整个企业的“工资结算总表”,据以到银行办理取款手续并由企业内部各发放单位如车间或科室、班组或小组进行工资的具体发放,现在也有许多单位是直接从银行把各人的实发工资转入个人存款账户了。
“工资结算单”每人一张,上面有本人的各项工资的数据。
2.工资的计算方法
工资包括计时工资、计件工资、奖金、津贴和补贴、加班加点工资和特殊情况下支付的工资六个部分。
工资计算比较多的是采用计时工资,即根据职工工资标准、等级,按每个人实际工作时间计算的工资。
现在也有许多生产等岗位是计件工资制,或者基本工资加计件工资的混合工资制。
工资计算的一般内容和公式为:
应发工资=基本工资+职务工资+各种补贴+加班工资+奖金+计件工资–缺勤扣款
实发工资=应发工资–各种代扣款
各种代扣款各单位不一,通常有房租、水电费、工会费、个人负担的医药费、个人所得税、养老保险等。
3.工资费用分配
也常简称为工资分配。
工资分配是指按照领工资人所在的部门、工种进行工资费用和所提取的福利费进行分类汇总统计,将其计入产品成本和其它相关帐户。
会计部门要根据“工资结算汇总表”填制有关记帐凭证并编制“工资及福利费用分配表”,并登记到工资总帐和明细帐帐簿。
第二节人力资源与工资管理子系统的分析与模块设计
现在的ERP软件,特别是国外知名的ERP软件,都把工资核算和人力资源的管理集成在一起来设计了,用以支持与人员录用、业绩考核、晋升、辞退、退休、工资发放等有关的业务处理和管理决策。
不再仅仅是工资核算,但可分为由两个不同又相互补充的功能模块构成,即“人力资源管理”和“工资核算”模块。
(一)人力资源与工资管理子系统的主要任务
人力资源与工资管理子系统的主要任务包括以下各项:
(1)制定单位和各部门的人员编制标准和等级划分(如职称、工资级别);
(2)进行人才需求的分析、预测;
(3)根据编制标准、人才需求预测等制订人才需求计划;
(4)制定岗位职责说明;
(5)制定待遇制度和福利办法;
(6)制定人员培训和业绩考核办法;
(7)一般性工作,如人员的招聘、录用、晋升、调动、离休退休或者考勤和工作记录;
(8)正确计算职工工资,反映企业与职工之间的工资结算情况;
(9)按照工资的用途,将工资费用正确地分配计入产品成本或管理费用、销售费用等;
(10)按规定比例正确提取福利费用,并随同工资费用分配计入产品成本等有关科目;
(11)正确计算并代扣个人收入所得税;
(12)逐级汇总、统计各单位的工资费用总额及所需各种面额人民币张数(由银行代发工资的单位可免计面额张数)
(13)打印各种人事管理报表、工资表及有关应付工资和应付福利费的转帐凭证,并将其自动转入帐务处理子系统。
(二)人力资源与工资管理子系统的数据流图
按书上所画的图理解和掌握法即可。
(三)人力资源与工资管理子系统功能结构图
按书上所画的图理解和掌握法即可。
其中“系统初始化”模块也可以去掉,把“输入职工基本数据”放在输入模块之下。
第三节主要库文件设计和代码设计
各库文件的字段构成不是唯一的,有些软件(如用友)可由用户在对软件初始化时自己增、删、改所需的工资字段,因面能够根据用户的实际需要灵活设定,更加符合用户的实际需要。
工资及福利费用分配文件的应发工资应借科目、计提福利费应借科目字段对编制自动转账分录很有必要,因为应付工资和应付福利费对应的应借科目比较复杂,因人而异,用此字段加以确定后,计算机才方便进行自动编制准确的转账分录。
第四节几个主要处理实现的思路
一、人力需求预测和计划
预测人力需求量、人力减员量、人力补充指标、人力专业比、人力学历比及人力职称比等。
这是一种非结构化的预测决策问题,只能通过人机对话的形式反复调整数据,计算机辅助一些计算、分析,得出计划性指标。
二、人事变动及人员考绩的计算机管理
包括人员录用、晋升、辞职、辞退、退休和人员各年业绩考核等情况的管理,要设置相应的文件存储相应的数据信息,能方便地查询、分类、汇总、打印输出等。
三、工资计算及人工成本分配数据的自动转帐
工资计算包括计算个人应发、实发工资,部门和全厂工资汇总、各部门各种钞票张数计算和工资分配的计算。
这些计算的程序编写不难,大多是REPLACEALL<字段名表1>WITH<字段名表2>......的形式,关键是编程时所用的计算公式要准确,输入的工资基本数据要准确。
自动转帐的程序应能根据工资及福利费用分配文件中计算好的数据逐个记录编制转账凭证。
本章重点:
工资计算与人工成本分配的实现
本章难点:
人工成本分配和自动转账的实现
本章复习题:
1.人力资源管理的数据流程是由人事部门输入职工的基本数据,工资变动的数据,职工年度考核表,各部门人事需求申请表,招聘广告等资料,(职工年度考核表,各部门人事需求申请表也可由各部门从终端直接输入),然后由人事部门制订人员编制预测计划、人力需求计划,处理人员招聘、晋升、调动、培训、辞退等事务,打印各种人事报表。
工资管理核算的数据流程是由会计部门或相关业务部门输入职工的考勤表、计件工作业绩统计表、房租水电、所得税率等,然后计算工资和工资成本的分配,进行工资自动转账,打印各种工资表。
2.例:
XX单位职工XXXX年度考核表
部门:
职工姓名:
填表日期:
年月日
自我总结
自评考核等级
(优、良、称职、不称职)
班组考核意见
和评定等级
部门评定等级
单位确认考核等级
备注
3.例如,可增加如下的控制措施:
(1)由计算机辅助制订出的人员需求计划、招聘录取人员等应由单位领导集体讨论审批后才执行。
(2)新增人员增加试用期考核。
(3)制定工资总额控制。
(4)主管人员定期或不定期复核打印出的职工工资单上的各项工资数据。
4.人力资源与工资管理系统在MIS中是一个重要的子系统,它对实现企业的战略目标,保持和促进提高企业竞争力和可持续发展至关重要,因为人力资源是企业的重要资产,在企业所有因素中,人的因素总是第1位的。
5.人事管理模块功能结构图:
┌────────────┐
│人事管理模块│
└──────┬─────┘
┌─────┬─────┬───┴┬──────┬──────┐
┌──┴──┐┌┴─┐┌──┴──┐┌┴─┐┌─┴──┐┌─┴──┐
│模块初始化││输入││计划与处理││打印││查询││模块维护│
└──┬──┘└┬─┘└───┬─┘└┬─┘└─┬──┘└─┬──┘
┌──┴──┐┌─┴─────┐│┌──┴──┐┌──┴───┐┌─┴──┐
│建立库文件││人事需求申请│││人员一览表││人员预测情况││数据备份│
│输入职工基││职员考核表│││职员考核表││人员需求计划││数据恢复│
│本数据││求职申请表│││录用通知││职员考核情况││月初始化│
└─────┘│人事工资变动表│││解聘通知││任务完成情况││密码维护│
└───────┘││人才预测表││出勤缺勤情况││权限维护│
││需求计划表││职工基本数据│└────┘
│└─────┘│求职申请表│
││工资数据│
│└──┬───┘
┌────┴───┐┌──┴───┐
│人才需求分析预测││按部门代码查│
│制订人才需求计划││按部门名称查│
│录用调动升迁处理││按职工代码查│
└────────┘│按职工名称查│
│按任意条件查│
└──────┘
工资核算模块功能结构图:
┌────────────┐
│工资核算模块│
└──────┬─────┘
┌─────┬─────┬───┴┬──────┬──────┐
┌──┴──┐┌┴─┐┌──┴──┐┌┴─┐┌─┴──┐┌─┴──┐
│模块初始化││输入││工资计算││打印││查询││模块维护│
└──┬──┘└┬─┘└───┬─┘└┬─┘└─┬──┘└─┬──┘
┌──┴──┐┌─┴─────┐│┌──┴──┐┌──┴───┐┌─┴──┐
│建立库文件││考勤表│││工资结算单││任务完成情况││数据备份│
│输入工资基││所得税率│││工资汇总表││出勤缺勤情况││数据恢复│
│本数据││病事假扣款率│││工资分配表││职工基本数据││月初始化│
└─────┘│房租水电等││└─────┘│工资数据││密码维护│
└───────┘│└──┬───┘│权限维护│
┌────┴───┐┌──┴───┐└────┘
│工资计算││按部门代码查│
│工资费用分配││按部门名称查│
│自动转帐││按职工代码查│
└────────┘│按职工名称查│
│按任意条件查│
└──────┘
6.每月进行工资核算时,先选系统维护的月初始化功能,其功能主要是把上月的工资数据复制备份,然后把工资文件中每个记录的考勤、工作量业绩、加班时间、水电费、应发工资、实发工资等每月都不同的变动数据清零,然后就可以输入当月的考勤、工作量业绩、加班时间、水电费等数据,都输完后即可计算工资和工资分配,进行工资自动转账,打印各种工资表。
最后从银行取款发放工资或把各人工资直接转入其个人账户。
7.工资文件的字段除书是所列的“基本工资、工龄工资、奖金、津贴、粮物价贴、加班、其他补贴、事假扣款、病假扣款、应发工资、个人所得税、住房公积金、房租、水电费、其他扣款、实发工资”外,按现在一般单位的工资项目,还可增加“职务工资、计件工资、水电交通电话补贴、养老保险、工会费”等字段。
每月输入完工资数据后计算每个职工的应发、实发工资,按部门汇总各部门各项工资数据的FOXPRO程序:
USE工资文件
REPLALL应发工资WITH基本工资+奖金+工龄工资+职务工资+;
计件工资+津贴+粮物价贴+加班+计件工资+水电交通电话补贴+其它补贴-事假扣款;
-病假扣款
REPLALL实发工资WITH应发工资-房租-水电费-养老保险-工会费-其它扣款
TOTALON部门码TOHZ
如果每月工资只发到整数元,元以下的小数部分不发,留待下月再计入实发工资,那么工资文件应增加“上月尾数,本月尾数”两个字段,以便存放上月未发的1元以下的尾数据,在本月计算工资时要加到实发工资中去,本月计得实发工资的尾数则存入本月尾数字段,在下月初始化时转入上月尾数字段。
故计算实发工资时应这样计算:
REPLALL实发工资WITH应发工资-房租-水电费-养老保险-工会费-其它扣款+上月尾数
REPLALL本月尾数WITH实发工资-INT(实发工资),实发工资WITH;
实发工资-本月尾数
本章案例:
下面的程序是某单位计算工资和工资费用分配的程序:
****************GZJS.PRG**工资计算****************SETSAFEOFFSETTALKOFFCLOSALLCLEASELE2USENOTE&&钞票张数文件
ZAP
SELE1
USEGZINDEGZSY&&工资主文件,按部门索引
REIN
LOCAFOR标志=0&&工资主文件设有“标志”字段,其值:
*0-本月已初始化
*1-本月数据已输入。
*2-本月工资已计算好
*3-本月工资已打印
IF.NOT.EOF()
@10,20SAY'本月活动数据还未输完,不能计算!
'
DOYS&&延时程序,延迟一段时间
CLOSDATA
RETU
ENDI
CLEA
@10,20SAY'现在开始进行工资计算!
'
KGL=0.00
@12,20SAY'请输入每年工龄工资数:
'GETKGLPICT'99.99'
READ
@14,20SAY'正在计算,请等待.......'
REPLALL工龄WITHVAL(Y)-VAL(LEFT(DTOC(参加工作日),2))-1;
FORVAL(M)REPLALL工龄WITHVAL(Y)-VAL(LEFT(DTOC(参加工作日),2));
FORVAL(M)>=MONTH(参加工作日)
REPLALL工龄工资WITHKGL*工龄,缺勤扣合计WITH事假扣款+病假扣款+;
旷工扣款,加班WITH(基本工资/25)*加班
REPLALL应发工资WITH基本工资+奖励工资+工龄工资+职务工资+;
计件工资+工种津贴+洗理+粮物价贴+夜餐+加班+其它补贴-缺勤扣合计-其它扣除
REPLALL实发工资WITH应发工资-药费-房租-水费-电费-国库券-其它代扣款+上月尾数
REPLALL本月尾数WITH实发工资-INT(实发工资),实发工资WITH;
实发工资-本月尾数,人数WITH1SELE3
USEBMDMDOWHIL.NOT.EOF()BM=部门码SELE1SETFILTTO部门码=BMPRIVBY,WSY,SY,WY,EY,YYSTOR0TOBY,WSY,SY,WY,EY,YYGOTOPDOWHIL.NOT.EOF()
X=实发工资
BY1=INT(X/100)
BY=BY+BY1
X=X-100*BY1
IFX>=50
WSY=WSY+1
X=X-50
ENDI
SY1=INT(X/10)
SY=SY+SY1
X=X-SY1*10
IFX>=5
WY=WY+1
X=X-5
ENDI
EY1=INT(X/2)
EY=EY+EY1
X=X-EY1*2
YY=YY+X
SKIP
ENDD
SELE2
APPEBLAN
REPL部门码WITHBM,百元WITHBY,伍拾元WITHWSY,拾元WITH;
SY,伍元WITHWY,贰元WITHEY,壹元WITHYYSELE3SKIPENDDSELE1SETFILTTOTOTALON部门码TOHZFIELDS基本工资,奖励工资,工龄工资,职务工资,计件工资,;工种津贴,洗理,粮物价贴,夜餐,加班,其它补贴,缺勤扣合计,其它扣除,应发工资,;药费,房租,水费,电费,国库券,其它代扣款,上月尾数,实发工资,本月尾数@1,0CLEA@10,20SAY'现在开始进行工资分配计算!
'
@11,28SAY'请等待!
'
INDEXON工资应借科目TOSY
SELE2
USEFPK
ZAP
SELE3
GOTOP
DOWHIL.NOT.EOF()
BM=部门码
SELE1
SETFILTTO部门码=BM
GOTOP
IF.NOT.EOF()
TOTALON工资应借科目TOYJHZFIELDS人数,应发工资,粮物价贴
SELE2
APPEFROMYJHZFIEL部门码,人数,应发工资,粮物价贴,工资应借科目
ENDI
SELE3
SKIP
ENDD
DELEFILEYJHZ.DBF
SELE2
REPLALL提福利费WITH(应发工资-粮物价贴)*0.14,提工会费WITH;
(应发工资-粮物价贴)*0.02,提教育费WITH(应发工资-粮物价贴)*0.015REPLALL福利费应借科目WITH工资应借科目REPL福利费应借科目WITH'521'FORSUBS(工资应借科目,1,3)='214'
SELE1
SETFILTTO
REPLALL标志WITH2
CLEACLOSALL
@10,25SAY'工资一系列计算完毕!
'
DOYS
RETU
下面是实现工资自动转账的原理程序:
*GZJZ.PRGsetsafeoffCLOSDATACLEA@0,0SAY'GZJZ.PRG'?
''SELE1USEGZGOBOTTIF标志=4?
'本月工资已转帐,不能再转帐!
'DOYS
RETU
ENDI
IF标志<3
?
'本月工资未计算好或未打印出来校对好,不能转帐!
'
DOYS
RETU
ENDI
WAIT'本月工资确实计算好并经打印完检查无误可以转帐了吗?
(Y/N):
'TOYYY
IFUPPE(YYY)#'Y'
RETU
ENDI
?
''
WAIT'请再次确认(Y/N):
'TOYYY
IFUPPE(YYY)#'Y'
RETU
ENDI
*下面对分配库转帐
MG5='转帐'
SELE1
USE\KJXT\ZWCL\PZ
SETFILTTOLEFT(PZH,4)='转帐'
GOTOP
IFEOF()
PZH0='0'
ELSE
GOBOTT
PZH0=RIGHT(PZH,4)
ENDI
PZH0=VAL(PZH0)
COPYSTRUTOJZPZK
USEJZPZK
SELE2
USEFPK
INDEON工资应借科目TOIYJ
SETEXACON
SETFILTTOTRIM(工资应借科目)#'40101'
GOTOP
TOTALON工资应借科目TOTYJ
USETYJ
PZH0=PZH0+1
PZH1='000'+LTRIM(STR(PZH0,4))
PZH1=RIGHT(PZH1,4)
PZH1=MG5+PZH1
ZY1='结转工资福利费'
DOWHIL.NOT.EOF()
SELE1
APPEBLANK
REPLRQWITHDATE(),PZHWITHPZH1,JDWITH'D',CJMWITHB->工资应借科目,;
JEWITHB->应发工资+B->提福利费,ZYWITHZY1,BZWITH1
IFLEFT(B->工资应借科目,3)='214'
REPLJEWITHB->应发工资
APPEBLANK
REPLRQWITHDATE(),PZHWITHPZH1,JDWITH'D',CJMWITHB->福利费应借科目,;
JEWITHB->提福利费,ZYWITHZY1,BZWITH1ENDISELE2SKIPENDDSUMALL应发工资TOYFGZSUMALL提福利费TOTFLF
SELE1
APPEBLANK
REPLRQWITHDATE(),PZHWITHPZH1,JDWITH'C',CJMWITH'211',;
JEWITHYFGZ,ZYWITHZY1,BZWITH1APPEBLANREPLRQWITHDATE(),PZHWITHPZH1,JDWITH'C',CJMWITH'214',;
JEWITHTFLF,ZYWITHZY1,BZWITH1SELE2SUMALL提工会费TOTGHF
SUMALL提教育费TOTJYF
PZH0=PZH0+1
PZH1='000'+LTRIM(STR(PZH0,4))
PZH1=RIGHT(PZH1,4)
PZH1=MG5+PZH1
ZY1='结转所提工会费'
SELE1
APPEBLANK
REPLRQWITHDATE(),PZHWITHPZH1,JDWITH'D',CJMWITH'521',;
JEWITHTGHF,ZYWITHZY1,BZWITH1SELE2
USE\KJXT\ZWCL\KM
LOCAFORLEFT(CJM,3)='209'.AND.'工会'$EJKM
IF.NOT.EOF()
DKM=CJM
ELSE
DKM='209'
ENDI
SELE1
APPEBLANK
REPLRQWITHDATE(),PZHWITHPZH1,JDWITH'C',CJMWITHDKM,;
JEWITHTGHF,ZYWITHZY1,BZWITH1PZH0=PZH0+1PZH1='000'+LTRIM(STR(PZH0,4))
PZH1=RIGHT(PZH1,4)
PZH1=MG5+PZH1
ZY1='结转所提职工教育费'
SELE1
APPEBLANK
REPLRQWITHDATE(),PZHWITHPZH1,JDWITH'D',CJMWITH'521',;
JEWITHTJYF,ZYWITHZY1,BZWITH1SELE2USE\KJXT\ZWCL\KMLOCAFORLEFT(CJM,3)='231'.AND.'职工教育费'$EJKM
IF.NOT.EOF()
DKM=CJM
ELSE
DKM='231'
ENDI
SELE1
APPEBLANK
REPLRQWITHDATE(),PZHWITHPZH1,JDWITH'C',CJMWITHDKM,;
JEWITHTJYF,ZYWITHZY1,BZWITH1*下面对代扣款转帐SELE2USEGZSUMALL药费,房租,水费,电费,国库券,其它代扣款TOYF,FZ,SF,DF,GKJ,QTDKK
IFYF+FZ+SF+DF+GKJ+QTDKK#0
PZH0=PZH0+1
PZH1='000'+LTRIM(STR(PZH0,4))
PZH1=RIGHT(PZH1,4)
PZH1=MG5+PZH1
ZY1='结转工资代扣款'
SELE1
APPEBLANK
REPLRQWITHDATE(),PZHWITHPZH1,JDWITH'D',CJMWITH'211',;
JEWITHYF+FZ+SF+DF+GKJ+QTDKK,ZYWITHZY1,BZWITH1
ENDI
SELE2
USE\KJXT\ZWCL\KM
IFYF#0
ZY1='结转工资代扣款-药费'
LOCAFORLEFT(CJM,3)='209'.AND.'药费'$EJKM
IF.NOT.EOF()
DKM=CJM
ELSE
DKM='209'
ENDI
SELE1
APPEBLANK
R