Django用admin开发的幼儿园薪资管理系统-1

该博客围绕幼儿园薪资系统展开,业主此前用EXCEL计算工资,需一套延续原公式的系统以避免人工计算错误。介绍了系统组成模块,包括认证与授权、基本设定、工资等,说明了默认数据及各数据间基本关系,还提及系统环境为Windows 10、Python 3.7.3、Mysql 8.0.16,使用Django 3.1等套件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.需求说明

1.业主是一家幼儿园的老板,之前是用EXCEL计算每月员工的工资。
2.需要一套延续之前计算公式的薪资系统。
3.避免因人工计算造成的薪资计算错误情况。
4.在市面上尚未找到符该业主需求的薪资系统。

2.系统组成模块

  1. 认证与授权(auth)
  2. 基本设定(basic)
  3. 工资(salary)

2.1.认证与授权(admin 原有功能)

Model简介
user使用者
group群组

2.2.基本设定

Model简介
Residence户口
Depart单位
Position职位
Licence证照
Duty职务
Grade年级
Banji班级
Employee职员
Parttime兼任
Teachship教学
Careship保育
Licenceship证照

2.3.工资

Model简介
Reason加减原因
Record加减项目
Bounty跟车津贴
BanjiAttend班级出勤记录
EmployeeOther职员其他资料
WageDetail工资明细
WageCreate工资产生记录
Leave请假

3.默认数据

3.1.Depart(单位)

因薪资计算需求,下面四个单位的[title(名称)]不能修改。

INSERT INTO basic_depart(id, title) VALUES(1, '行政');
INSERT INTO basic_depart(id, title) VALUES(2, '教师');
INSERT INTO basic_depart(id, title) VALUES(3, '保育');
INSERT INTO basic_depart(id, title) VALUES(4, '后勤');

3.2.Position(职位)

因薪资计算需求,下面六个职位的[depart_id(单位)]与[title(名称)]不能修改。

INSERT INTO basic_position(id, title, subsidy, created, updated, create_user_id, depart_id) VALUES(1, '教师', 0, sysdate(), sysdate(), 1, 2);
INSERT INTO basic_position(id, title, subsidy, created, updated, create_user_id, depart_id) VALUES(2, '保育员', 0, sysdate(), sysdate(), 1, 3);
INSERT INTO basic_position(id, title, subsidy, created, updated, create_user_id, depart_id) VALUES(3, '园长', 0, sysdate(), sysdate(), 1, 1);
INSERT INTO basic_position(id, title, subsidy, created, updated, create_user_id, depart_id) VALUES(11, '营养员', 0, sysdate(), sysdate(), 1, 4);
INSERT INTO basic_position(id, title, subsidy, created, updated, create_user_id, depart_id) VALUES(12, '驾驶员', 0, sysdate(), sysdate(), 1, 4);
INSERT INTO basic_position(id, title, subsidy, created, updated, create_user_id, depart_id) VALUES(13, '总务', 0, sysdate(), sysdate(), 1, 4);

3.3.Reason(加减原因)

因[Leave(请假)]需要,右图中两个加减原因的[名称]不能修改。

INSERT INTO salary_reason(id, title, type, yesno) VALUES(3, '事假', 1, 0);
INSERT INTO salary_reason(id, title, type, yesno) VALUES(4, '病假', 1, 0);

4.基本关系说明

4.1.职员(Employee)与单位(Depart)与职位(Position)与职务(Duty)

默认数据有三个单位:行政/教师/保育,单位下有职位(ex:例如[园长]这个职位在[行政]这个单位下面),每个职员都必须有一个职位(且只能有一个职位),每个职员可以有多个职务。

4.2.证照(Licence)

每位职员可以有多个证照,证照的[保育员证照]字段为是时,只有职位为保育员的职员才能拥有。

4.3.年级(Grade)与班级(Banji)

年级可能有:幼班/小班/中班/大班;幼班可能有:幼一班/幼二班/幼三班…等。
班级有不定数量的教师与保育员,职员的职位为教师时才能担任班级的教师,职员的职位为保育员时才能担任班级的保育员。

4.4.加减原因(Reason)与加减项目(Record)与请假(Leave)

加减原因可能有:协助招生/事假/病假等,另外还需设定是加项还是减项。
加减项目则是每个月,各员工的工资加减项目及金额,使用者只能借由请假新增病假与事假的加减项目。
加减项目的计算月份字段选项只有当月与前月,当前月的计算月份已被锁定时则无法新增。
请假有事假与病假两个项目,新增后会自动抛一笔对应的加减项目。
请假抛加减项目时金额的计算公式如下:

加减项目字段计算公式
事假([请假]-请假时间 * [职员]-基本工资) / (21.75 * 8)
病假([请假]-请假时间 * 0.3 * [职员]-基本工资) / (21.75 * 8)

4.5.工资产生记录(WageCreate)与工资明细(WageDetail)

每个月份有一笔工资产生记录,每个职员每月会有一笔工资明细,工资明细是由工资产生记录自动产生,使用者不可直接修改工资明细。
工资明细的数据来源包括:年级/职位/职务/职员/证照/加减项目/班级出勤记录/职员其他资料/跟车津贴。
工资明细中个字段计算公式如下:

工资明细字段计算公式
应发工资[工资明细]-基本工资 + [工资明细]-职位津贴 + [工资明细]-职务津贴 + [工资明细]-工作考核 + [工资明细]-幼儿出勤 + [工资明细]-全勤 + [工资明细]-跟车津贴 + [工资明细]-备加 + [工资明细]-延时奖金
基本工资[职员]-基本工资
职位津贴[职位]-职位津贴
职务津贴[职务]-职务津贴的加总
工作考核[职员]-考核奖金 * [职员其他资料]-考核分数 / 100
幼儿出勤1当[职位]是教师时:所在[班级]-[年级]-班级出勤奖金(教师) * ([班级出勤记录]-出勤人数 / 所在[班级]-[年级]-班额)
幼儿出勤2当[职位]是保育员时:所在[班级]-[年级]-班级出勤奖金(保育员) * ([班级出勤记录]-出勤人数 / 所在[班级]-[年级]-班额) * [职员]拥有是保育员证照最大的保育员幼儿出勤倍数
幼儿出勤3当[职位]是园长时:[工资产生记录]-幼儿出勤奖金总额 * [职员]-幼儿出勤奖金比例
幼儿出勤4当[职位]是营养员/驾驶员/总务时:[职员]-幼儿出勤奖金
幼儿出勤5当[职位]是其他时:[班级出勤记录]-出勤人数加总 * [职员]-幼儿出勤人头费用
全勤1无有则无全勤的[加减项目]时:[职员]-全勤奖金
全勤2有有则无全勤的[加减项目]时:0
跟车津贴[跟车津贴]加总
备加原因其项目为加项的[加减项目]的金额加总
备减原因其项目为减项的[加减项目]的金额加总
个税[职员其他资料]-个税
延时奖金1当[职位]是教师时:担任教师的班级的[班级出勤记录]-延时人数 * 担任教师班级的[年级]-延时教师时薪 + [职员其他资料]-延时2奖金
延时奖金2当[职位]是保育员时:担任保育员的班级的[班级出勤记录]-延时人数 * 担任保育员班级的[年级]-延时保育时薪 + [职员其他资料]-延时2奖金
延时奖金3当[职位]是其他时:[职员其他资料]-延时2奖金
公积金[职员]-公积金
社保[职员]-养保 + [职员]-医保 + [职员]-失保
工会[职员]-工会费用
实发工资[工资明细]-基本工资 + [工资明细]-职位津贴 + [工资明细]-职务津贴 + [工资明细]-工作考核 + [工资明细]-幼儿出勤 + [工资明细]-全勤 + [工资明细]-跟车津贴 + [工资明细]-备加 + [工资明细]-延时奖金 - [工资明细]-公积金 - [工资明细]-社保 - [工资明细]-工会 - [工资明细]-备减 - [工资明细]-个税

4.6.班级出勤记录(BanjiAttend)

由工资产生记录新增,使用者可以更新,每个状态为正常的班级每月会有一笔班级出勤记录,修改该月份已被锁定的班级出勤记录时则会显示错误。

4.7.职员其他资料(EmployeeOther)

由工资产生记录新增,使用者可以更新,当职员的离职日期字段为空白或是到计算月份当月时才会有当月份的职员其他资料。

4.8.跟车津贴(Bounty)

使用者可以新增职员当月或前月的跟车津贴金额,如果新增的计算月份已被锁定则会显示错误。

5.环境说明

5.1.系统环境

Windows 10
Python 3.7.3
Mysql 8.0.16

5.2.Django 套件

Django 3.1
xlwt 1.3.0
后续将依照模块继续为各位介绍。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值