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.
650 lines
42 KiB
650 lines
42 KiB
from django.db import models
|
|
|
|
|
|
# 员工
|
|
class Staff(models.Model):
|
|
"""
|
|
员工
|
|
"""
|
|
|
|
name = models.CharField(max_length=20, null=True, blank=True, verbose_name="姓名", help_text="姓名")
|
|
gender = models.IntegerField(null=True, blank=True, default=1, verbose_name="性别", help_text="性别") # 1:男 2:女
|
|
idCode = models.CharField(max_length=200, null=True, blank=True, verbose_name="身份唯一识别码",
|
|
help_text="身份唯一识别码")
|
|
category = models.IntegerField(null=True, blank=True, verbose_name="人员类别",
|
|
help_text="人员类别 # 1.研发人员 2.技术人员 3.辅助人员 4.非研发人员")
|
|
dept = models.IntegerField(null=True, blank=True, verbose_name="所属部门id", help_text="所属部门id")
|
|
education = models.IntegerField(null=True, blank=True, verbose_name="学历",
|
|
help_text="学历 # 1.高中(中专)及以下 2.大专 3.本科 4.硕士 5.博士")
|
|
employmentMethod = models.IntegerField(null=True, blank=True, verbose_name="聘用方式",
|
|
help_text="聘用方式 # 1:正式 2:临时 3.兼职")
|
|
isActive = models.BooleanField(null=True, blank=True, default=True, verbose_name="用户是否可用",
|
|
help_text="用户是否可用 # 用户锁定与激活用户")
|
|
education = models.IntegerField(null=True, blank=True, verbose_name="学历", help_text="学历 # 1.高中(中专)及以下 2.大专 3.本科 4.硕士 5.博士")
|
|
employmentMethod = models.IntegerField(null=True, blank=True, verbose_name="聘用方式", help_text="聘用方式 # 1:正式 2:临时 3.兼职")
|
|
isActive = models.BooleanField(null=True, blank=True, default=True, verbose_name="用户是否可用", help_text="用户是否可用 # 用户锁定与激活用户")
|
|
duties = models.CharField(null=True, blank=True, max_length=200, verbose_name="职务", help_text="职务")
|
|
major = models.CharField(null=True, blank=True, max_length=200, verbose_name="专业", help_text="专业")
|
|
isAbroad = models.BooleanField(default=False, null=True, blank=True, verbose_name="是否海归")
|
|
isForeign = models.BooleanField(default=False, null=True, blank=True, verbose_name="是否外籍人员")
|
|
birthday = models.DateField(null=True, blank=True, verbose_name="出生日期", help_text="出生日期")
|
|
entryTime = models.DateField(null=True, blank=True, verbose_name="入职时间", help_text="入职时间")
|
|
leaveTime = models.DateField(null=True, blank=True, verbose_name="离职时间", help_text="离职时间")
|
|
changeTime = models.DateField(null=True, blank=True, verbose_name="变动时间", help_text="变动时间")
|
|
status = models.PositiveSmallIntegerField(null=True, blank=True, default=0, verbose_name="状态",
|
|
help_text="状态 # 0:未离职 1:离职")
|
|
# relCount = models.IntegerField(default=0, verbose_name="关联员工的数量,relCount>0时不可删除", help_text="关联员工的数量,relCount>0时不可删除")
|
|
|
|
CreateBy = models.CharField(max_length=36, null=True, blank=True, verbose_name="创建人")
|
|
UpdateBy = models.CharField(max_length=36, null=True, blank=True, verbose_name="更新人")
|
|
CreateByUid = models.IntegerField(null=True, blank=True, verbose_name="创建人ID")
|
|
UpdateByUid = models.IntegerField(null=True, blank=True, verbose_name="更新人ID")
|
|
CreateDateTime = models.DateTimeField(auto_now_add=True, verbose_name="创建时间")
|
|
UpdateDateTime = models.DateTimeField(auto_now=True, verbose_name="更新时间")
|
|
companyMid = models.CharField(null=True, blank=True, max_length=36, verbose_name="公司全局id") # 用于绑定公司
|
|
|
|
professionalCertificate = models.CharField(null=True, blank=True, max_length=200, verbose_name="专业证书")
|
|
personalHonor = models.CharField(null=True, blank=True, max_length=200, verbose_name="个人荣誉")
|
|
talentQualification = models.CharField(null=True, blank=True, max_length=10, verbose_name="人才资质",
|
|
help_text="1.国家高层次人才 2.地方高层次人才 3.区高层次人才")
|
|
graduationSchool = models.CharField(null=True, blank=True, max_length=200, verbose_name="毕业院校")
|
|
|
|
class Meta:
|
|
verbose_name = "员工信息"
|
|
verbose_name_plural = verbose_name
|
|
ordering = ["id"]
|
|
|
|
def __str__(self):
|
|
return self.name
|
|
|
|
|
|
class Dept(models.Model):
|
|
"""
|
|
部门
|
|
"""
|
|
|
|
name = models.CharField(max_length=20, null=True, blank=True, verbose_name="名称", help_text="名称")
|
|
# type = models.CharField(max_length=50, null=True, blank=True, verbose_name="类型", help_text="类型")
|
|
is_rnd = models.BooleanField(default=False, null=True, blank=True, verbose_name="是否研发部门,默认否",
|
|
help_text="是否研发部门,默认否")
|
|
pid = models.ForeignKey("self", null=True, blank=True, on_delete=models.SET_NULL, verbose_name="上级部门id",
|
|
help_text="上级部门id")
|
|
# relCount = models.IntegerField(default=0, verbose_name="关联部门的数量,relCount>0时不可删除", help_text="关联部门的数量,relCount>0时不可删除")
|
|
|
|
CreateBy = models.CharField(max_length=36, null=True, blank=True, verbose_name="创建人")
|
|
UpdateBy = models.CharField(max_length=36, null=True, blank=True, verbose_name="更新人")
|
|
CreateByUid = models.IntegerField(null=True, blank=True, verbose_name="创建人ID")
|
|
UpdateByUid = models.IntegerField(null=True, blank=True, verbose_name="更新人ID")
|
|
CreateDateTime = models.DateTimeField(auto_now_add=True, verbose_name="创建时间")
|
|
UpdateDateTime = models.DateTimeField(auto_now=True, verbose_name="更新时间")
|
|
companyMid = models.CharField(null=True, blank=True, max_length=36, verbose_name="公司全局id") # 用于绑定公司
|
|
|
|
class Meta:
|
|
verbose_name = "部门信息"
|
|
verbose_name_plural = verbose_name
|
|
ordering = ["id"]
|
|
|
|
def __str__(self):
|
|
return self.name
|
|
|
|
|
|
# 考勤
|
|
class Attendance(models.Model):
|
|
"""
|
|
考勤记录
|
|
"""
|
|
|
|
staffId = models.IntegerField(null=True, blank=True, verbose_name="被考勤人员id", help_text="被考勤人员id")
|
|
attendanceDate = models.DateField(null=True, blank=True, verbose_name="考勤年月", help_text="考勤年月 # 2024-01")
|
|
attendanceDays = models.FloatField(null=True, blank=True, verbose_name="月出勤天数", help_text="月出勤天数")
|
|
restDay = models.CharField(max_length=200, null=True, blank=True, verbose_name="休息日", help_text="休息日")
|
|
rndDay = models.FloatField(null=True, blank=True, verbose_name="研发天数", help_text="研发天数")
|
|
status = models.IntegerField(null=True, default=0, blank=True, verbose_name="状态",
|
|
help_text="状态 # 0:未审核 1:已审核保存 1+:已添加凭证(已记账)")
|
|
|
|
CreateBy = models.CharField(max_length=36, null=True, blank=True, verbose_name="创建人")
|
|
UpdateBy = models.CharField(max_length=36, null=True, blank=True, verbose_name="更新人")
|
|
CreateByUid = models.IntegerField(null=True, blank=True, verbose_name="创建人ID")
|
|
UpdateByUid = models.IntegerField(null=True, blank=True, verbose_name="更新人ID")
|
|
CreateDateTime = models.DateTimeField(auto_now_add=True, verbose_name="创建时间")
|
|
UpdateDateTime = models.DateTimeField(auto_now=True, verbose_name="更新时间")
|
|
companyMid = models.CharField(null=True, blank=True, max_length=36, verbose_name="公司全局id") # 用于绑定公司
|
|
|
|
class Meta:
|
|
verbose_name = "考勤记录"
|
|
verbose_name_plural = verbose_name
|
|
ordering = ["id"]
|
|
|
|
def save(self, *args, **kwargs):
|
|
# 强制确保日期为每月的第一天
|
|
if self.attendanceDate:
|
|
self.attendanceDate = self.attendanceDate.replace(day=1)
|
|
super().save(*args, **kwargs)
|
|
|
|
|
|
# 实发工资
|
|
class Wages(models.Model):
|
|
"""
|
|
工资记录 费用编码 1.1 外聘劳务费 1.3
|
|
"""
|
|
|
|
staffId = models.IntegerField(null=True, blank=True, verbose_name="员工id", help_text="员工id")
|
|
date = models.DateField(null=True, blank=True, verbose_name="薪资入账年月", help_text="薪资入账年月 # 2024-01")
|
|
startDate = models.DateField(null=True, blank=True, verbose_name="薪资费用发生开始年月", help_text="薪资费用发生开始年月 # 2024-01")
|
|
endDate = models.DateField(null=True, blank=True, verbose_name="薪资费用发生结束年月", help_text="薪资费用发生结束年月 # 2024-01")
|
|
amount = models.DecimalField(max_digits=18, decimal_places=2, default=0, blank=True, verbose_name="工资", help_text="工资")
|
|
subjectId = models.IntegerField(null=True, blank=True, verbose_name="对应科目id", help_text="对应科目id")
|
|
status = models.IntegerField(null=True, default=0, blank=True, verbose_name="状态", help_text="状态 # 0:未审核 1:已审核保存 1+:已添加凭证")
|
|
attendanceStatus = models.BooleanField(default=0, verbose_name="考勤状态是否完成,0-未完成", help_text="考勤状态是否完成,0-未完成")
|
|
|
|
CreateBy = models.CharField(max_length=36, null=True, blank=True, verbose_name="创建人")
|
|
UpdateBy = models.CharField(max_length=36, null=True, blank=True, verbose_name="更新人")
|
|
CreateByUid = models.IntegerField(null=True, blank=True, verbose_name="创建人ID")
|
|
UpdateByUid = models.IntegerField(null=True, blank=True, verbose_name="更新人ID")
|
|
CreateDateTime = models.DateTimeField(auto_now_add=True, verbose_name="创建时间")
|
|
UpdateDateTime = models.DateTimeField(auto_now=True, verbose_name="更新时间")
|
|
companyMid = models.CharField(null=True, blank=True, max_length=36, verbose_name="公司全局id") # 用于绑定公司
|
|
|
|
class Meta:
|
|
db_table = "staff_wages" # 不可删除
|
|
verbose_name = "工资记录"
|
|
verbose_name_plural = verbose_name
|
|
ordering = ["id"]
|
|
|
|
def save(self, *args, **kwargs):
|
|
# 强制确保日期为每月的第一天
|
|
if self.date:
|
|
self.date = self.date.replace(day=1)
|
|
super().save(*args, **kwargs)
|
|
|
|
|
|
# 实发社保
|
|
class SocialInsurance(models.Model):
|
|
"""
|
|
社保记录 费用编码 1.2.1(多种社保,具体类型由用户自定义的社保科目类型决定)
|
|
"""
|
|
|
|
staffId = models.IntegerField(null=True, blank=True, verbose_name="员工id", help_text="员工id")
|
|
date = models.DateField(null=True, blank=True, verbose_name="薪资入账年月", help_text="薪资入账年月 # 2024-01")
|
|
startDate = models.DateField(null=True, blank=True, verbose_name="薪资费用发生开始年月",
|
|
help_text="薪资费用发生开始年月 # 2024-01")
|
|
endDate = models.DateField(null=True, blank=True, verbose_name="薪资费用发生结束年月",
|
|
help_text="薪资费用发生结束年月 # 2024-01")
|
|
amount = models.DecimalField(max_digits=18, decimal_places=2, default=0, blank=True, verbose_name="金额",
|
|
help_text="金额")
|
|
subjectId = models.IntegerField(null=True, blank=True, verbose_name="对应科目id", help_text="对应科目id")
|
|
status = models.IntegerField(null=True, default=0, blank=True, verbose_name="状态",
|
|
help_text="状态 # 0:未审核 1:已审核保存 1+:已添加凭证")
|
|
attendanceStatus = models.BooleanField(default=0, verbose_name="考勤状态是否完成,0-未完成",
|
|
help_text="考勤状态是否完成,0-未完成")
|
|
# endowment = models.DecimalField(max_digits=18, decimal_places=2, default=0, blank=True, verbose_name="养老", help_text="养老")
|
|
# medical = models.DecimalField(max_digits=18, decimal_places=2, default=0, blank=True, verbose_name="医疗", help_text="医疗")
|
|
# unemployment = models.DecimalField(max_digits=18, decimal_places=2, default=0, blank=True, verbose_name="失业", help_text="失业")
|
|
# workInjury = models.DecimalField(max_digits=18, decimal_places=2, default=0, blank=True, verbose_name="工伤", help_text="工伤")
|
|
# maternity = models.DecimalField(max_digits=18, decimal_places=2, default=0, blank=True, verbose_name="生育", help_text="生育")
|
|
# illness = models.DecimalField(max_digits=18, decimal_places=2, default=0, blank=True, verbose_name="大病医疗", help_text="大病医疗")
|
|
|
|
CreateBy = models.CharField(max_length=36, null=True, blank=True, verbose_name="创建人")
|
|
UpdateBy = models.CharField(max_length=36, null=True, blank=True, verbose_name="更新人")
|
|
CreateByUid = models.IntegerField(null=True, blank=True, verbose_name="创建人ID")
|
|
UpdateByUid = models.IntegerField(null=True, blank=True, verbose_name="更新人ID")
|
|
CreateDateTime = models.DateTimeField(auto_now_add=True, verbose_name="创建时间")
|
|
UpdateDateTime = models.DateTimeField(auto_now=True, verbose_name="更新时间")
|
|
companyMid = models.CharField(null=True, blank=True, max_length=36, verbose_name="公司全局id") # 用于绑定公司
|
|
|
|
class Meta:
|
|
db_table = "staff_social_insurance"
|
|
verbose_name = "社保记录"
|
|
verbose_name_plural = verbose_name
|
|
ordering = ["id"]
|
|
|
|
def save(self, *args, **kwargs):
|
|
# 强制确保日期为每月的第一天
|
|
if self.date:
|
|
self.date = self.date.replace(day=1)
|
|
super().save(*args, **kwargs)
|
|
|
|
|
|
# 实发公积金
|
|
class Accumulation(models.Model):
|
|
"""
|
|
公积金记录 费用编码 1.2.2
|
|
"""
|
|
|
|
staffId = models.IntegerField(null=True, blank=True, verbose_name="员工id", help_text="员工id")
|
|
date = models.DateField(null=True, blank=True, verbose_name="薪资入账年月", help_text="薪资入账年月 # 2024-01")
|
|
startDate = models.DateField(null=True, blank=True, verbose_name="薪资费用发生开始年月",
|
|
help_text="薪资费用发生开始年月 # 2024-01")
|
|
endDate = models.DateField(null=True, blank=True, verbose_name="薪资费用发生结束年月",
|
|
help_text="薪资费用发生结束年月 # 2024-01")
|
|
amount = models.DecimalField(max_digits=18, decimal_places=2, default=0, blank=True, verbose_name="金额",
|
|
help_text="金额")
|
|
subjectId = models.IntegerField(null=True, blank=True, verbose_name="对应科目id", help_text="对应科目id")
|
|
status = models.IntegerField(null=True, default=0, blank=True, verbose_name="状态",
|
|
help_text="状态 # 0:未审核 1:已审核保存 1+:已添加凭证")
|
|
attendanceStatus = models.BooleanField(default=0, verbose_name="考勤状态是否完成,0-未完成",
|
|
help_text="考勤状态是否完成,0-未完成")
|
|
# accumulation = models.DecimalField(max_digits=18, decimal_places=2, default=0, blank=True, verbose_name="公积金", help_text="公积金")
|
|
|
|
CreateBy = models.CharField(max_length=36, null=True, blank=True, verbose_name="创建人")
|
|
UpdateBy = models.CharField(max_length=36, null=True, blank=True, verbose_name="更新人")
|
|
CreateByUid = models.IntegerField(null=True, blank=True, verbose_name="创建人ID")
|
|
UpdateByUid = models.IntegerField(null=True, blank=True, verbose_name="更新人ID")
|
|
CreateDateTime = models.DateTimeField(auto_now_add=True, verbose_name="创建时间")
|
|
UpdateDateTime = models.DateTimeField(auto_now=True, verbose_name="更新时间")
|
|
companyMid = models.CharField(null=True, blank=True, max_length=36, verbose_name="公司全局id") # 用于绑定公司
|
|
|
|
class Meta:
|
|
db_table = "staff_accumulation"
|
|
verbose_name = "公积金记录"
|
|
verbose_name_plural = verbose_name
|
|
ordering = ["id"]
|
|
|
|
def save(self, *args, **kwargs):
|
|
# 强制确保日期为每月的第一天
|
|
if self.date:
|
|
self.date = self.date.replace(day=1)
|
|
super().save(*args, **kwargs)
|
|
|
|
|
|
# 实发奖金
|
|
class Bonus(models.Model):
|
|
"""
|
|
奖金管理 费用编码 1.4
|
|
"""
|
|
|
|
staffId = models.IntegerField(null=True, blank=True, verbose_name="员工id", help_text="员工id")
|
|
date = models.DateField(null=True, blank=True, verbose_name="薪资入账年月", help_text="薪资入账年月 # 2024-01")
|
|
startDate = models.DateField(null=True, blank=True, verbose_name="薪资费用发生开始年月",
|
|
help_text="薪资费用发生开始年月 # 2024-01")
|
|
endDate = models.DateField(null=True, blank=True, verbose_name="薪资费用发生结束年月",
|
|
help_text="薪资费用发生结束年月 # 2024-01")
|
|
amount = models.DecimalField(max_digits=18, decimal_places=2, null=True, blank=True, verbose_name="金额",
|
|
help_text="金额")
|
|
subjectId = models.IntegerField(null=True, blank=True, verbose_name="对应科目id", help_text="对应科目id")
|
|
status = models.IntegerField(null=True, default=0, blank=True, verbose_name="状态",
|
|
help_text="状态 # 0:未审核 1:已审核保存 1+:已添加凭证")
|
|
attendanceStatus = models.BooleanField(default=0, verbose_name="考勤状态是否完成,0-未完成",
|
|
help_text="考勤状态是否完成,0-未完成")
|
|
remark = models.CharField(max_length=200, null=True, blank=True, verbose_name="备注信息", help_text="备注信息")
|
|
|
|
CreateBy = models.CharField(max_length=36, null=True, blank=True, verbose_name="创建人")
|
|
UpdateBy = models.CharField(max_length=36, null=True, blank=True, verbose_name="更新人")
|
|
CreateByUid = models.IntegerField(null=True, blank=True, verbose_name="创建人ID")
|
|
UpdateByUid = models.IntegerField(null=True, blank=True, verbose_name="更新人ID")
|
|
CreateDateTime = models.DateTimeField(auto_now_add=True, verbose_name="创建时间")
|
|
UpdateDateTime = models.DateTimeField(auto_now=True, verbose_name="更新时间")
|
|
companyMid = models.CharField(null=True, blank=True, max_length=36, verbose_name="公司全局id") # 用于绑定公司
|
|
|
|
class Meta:
|
|
db_table = "staff_bonus"
|
|
verbose_name = "奖金管理"
|
|
verbose_name_plural = verbose_name
|
|
ordering = ["id"]
|
|
|
|
def save(self, *args, **kwargs):
|
|
# 强制确保日期为每月的第一天
|
|
if self.date:
|
|
self.date = self.date.replace(day=1)
|
|
super().save(*args, **kwargs)
|
|
|
|
|
|
# 实发福利
|
|
class Welfare(models.Model):
|
|
"""
|
|
福利管理 费用编码 7.9.3
|
|
"""
|
|
|
|
staffId = models.IntegerField(null=True, blank=True, verbose_name="员工id", help_text="员工id")
|
|
date = models.DateField(null=True, blank=True, verbose_name="薪资入账年月", help_text="薪资入账年月 # 2024-01")
|
|
startDate = models.DateField(null=True, blank=True, verbose_name="薪资费用发生开始年月",
|
|
help_text="薪资费用发生开始年月 # 2024-01")
|
|
endDate = models.DateField(null=True, blank=True, verbose_name="薪资费用发生结束年月",
|
|
help_text="薪资费用发生结束年月 # 2024-01")
|
|
amount = models.DecimalField(max_digits=18, decimal_places=2, null=True, blank=True, verbose_name="金额",
|
|
help_text="金额")
|
|
subjectId = models.IntegerField(null=True, blank=True, verbose_name="对应科目id", help_text="对应科目id")
|
|
status = models.IntegerField(null=True, default=0, blank=True, verbose_name="状态",
|
|
help_text="状态 # 0:未审核 1:已审核保存 1+:已添加凭证")
|
|
attendanceStatus = models.BooleanField(default=0, verbose_name="考勤状态是否完成,0-未完成",
|
|
help_text="考勤状态是否完成,0-未完成")
|
|
remark = models.CharField(max_length=200, null=True, blank=True, verbose_name="备注信息", help_text="备注信息")
|
|
|
|
CreateBy = models.CharField(max_length=36, null=True, blank=True, verbose_name="创建人")
|
|
UpdateBy = models.CharField(max_length=36, null=True, blank=True, verbose_name="更新人")
|
|
CreateByUid = models.IntegerField(null=True, blank=True, verbose_name="创建人ID")
|
|
UpdateByUid = models.IntegerField(null=True, blank=True, verbose_name="更新人ID")
|
|
CreateDateTime = models.DateTimeField(auto_now_add=True, verbose_name="创建时间")
|
|
UpdateDateTime = models.DateTimeField(auto_now=True, verbose_name="更新时间")
|
|
companyMid = models.CharField(null=True, blank=True, max_length=36, verbose_name="公司全局id") # 用于绑定公司
|
|
|
|
class Meta:
|
|
db_table = "staff_welfare"
|
|
verbose_name = "福利管理"
|
|
verbose_name_plural = verbose_name
|
|
ordering = ["id"]
|
|
|
|
def save(self, *args, **kwargs):
|
|
# 强制确保日期为每月的第一天
|
|
if self.date:
|
|
self.date = self.date.replace(day=1)
|
|
super().save(*args, **kwargs)
|
|
|
|
|
|
#
|
|
# 以下为预提管理的model
|
|
#
|
|
|
|
# 预提工资
|
|
class AccruedWages(models.Model):
|
|
"""
|
|
预提工资记录 费用编码 1.1 外聘劳务费 1.3
|
|
"""
|
|
|
|
staffId = models.IntegerField(null=True, blank=True, verbose_name="员工id", help_text="员工id")
|
|
date = models.DateField(null=True, blank=True, verbose_name="薪资入账年月", help_text="薪资入账年月 # 2024-01")
|
|
startDate = models.DateField(null=True, blank=True, verbose_name="薪资费用发生开始年月",
|
|
help_text="薪资费用发生开始年月 # 2024-01")
|
|
endDate = models.DateField(null=True, blank=True, verbose_name="薪资费用发生结束年月",
|
|
help_text="薪资费用发生结束年月 # 2024-01")
|
|
amount = models.DecimalField(max_digits=18, decimal_places=2, default=0, blank=True, verbose_name="工资",
|
|
help_text="工资")
|
|
subjectId = models.IntegerField(null=True, blank=True, verbose_name="对应科目id", help_text="对应科目id")
|
|
status = models.IntegerField(null=True, default=0, blank=True, verbose_name="状态",
|
|
help_text="状态 # 0:未审核 1:已审核保存 1+:已添加凭证")
|
|
attendanceStatus = models.BooleanField(default=0, verbose_name="考勤状态是否完成,0-未完成",
|
|
help_text="考勤状态是否完成,0-未完成")
|
|
|
|
CreateBy = models.CharField(max_length=36, null=True, blank=True, verbose_name="创建人")
|
|
UpdateBy = models.CharField(max_length=36, null=True, blank=True, verbose_name="更新人")
|
|
CreateByUid = models.IntegerField(null=True, blank=True, verbose_name="创建人ID")
|
|
UpdateByUid = models.IntegerField(null=True, blank=True, verbose_name="更新人ID")
|
|
CreateDateTime = models.DateTimeField(auto_now_add=True, verbose_name="创建时间")
|
|
UpdateDateTime = models.DateTimeField(auto_now=True, verbose_name="更新时间")
|
|
companyMid = models.CharField(null=True, blank=True, max_length=36, verbose_name="公司全局id") # 用于绑定公司
|
|
|
|
class Meta:
|
|
db_table = "staff_accrued_wages"
|
|
verbose_name = "工资记录"
|
|
verbose_name_plural = verbose_name
|
|
ordering = ["id"]
|
|
|
|
def save(self, *args, **kwargs):
|
|
# 强制确保日期为每月的第一天
|
|
if self.date:
|
|
self.date = self.date.replace(day=1)
|
|
super().save(*args, **kwargs)
|
|
|
|
|
|
# 预提社保
|
|
class AccruedSocialInsurance(models.Model):
|
|
"""
|
|
预提社保记录 费用编码 1.2.1(多种社保,具体类型由用户自定义的社保科目类型决定)
|
|
"""
|
|
|
|
staffId = models.IntegerField(null=True, blank=True, verbose_name="员工id", help_text="员工id")
|
|
date = models.DateField(null=True, blank=True, verbose_name="薪资入账年月", help_text="薪资入账年月 # 2024-01")
|
|
startDate = models.DateField(null=True, blank=True, verbose_name="薪资费用发生开始年月",
|
|
help_text="薪资费用发生开始年月 # 2024-01")
|
|
endDate = models.DateField(null=True, blank=True, verbose_name="薪资费用发生结束年月",
|
|
help_text="薪资费用发生结束年月 # 2024-01")
|
|
amount = models.DecimalField(max_digits=18, decimal_places=2, default=0, blank=True, verbose_name="金额",
|
|
help_text="金额")
|
|
subjectId = models.IntegerField(null=True, blank=True, verbose_name="对应科目id", help_text="对应科目id")
|
|
status = models.IntegerField(null=True, default=0, blank=True, verbose_name="状态",
|
|
help_text="状态 # 0:未审核 1:已审核保存 1+:已添加凭证")
|
|
attendanceStatus = models.BooleanField(default=0, verbose_name="考勤状态是否完成,0-未完成",
|
|
help_text="考勤状态是否完成,0-未完成")
|
|
# endowment = models.DecimalField(max_digits=18, decimal_places=2, default=0, blank=True, verbose_name="养老", help_text="养老")
|
|
# medical = models.DecimalField(max_digits=18, decimal_places=2, default=0, blank=True, verbose_name="医疗", help_text="医疗")
|
|
# unemployment = models.DecimalField(max_digits=18, decimal_places=2, default=0, blank=True, verbose_name="失业", help_text="失业")
|
|
# workInjury = models.DecimalField(max_digits=18, decimal_places=2, default=0, blank=True, verbose_name="工伤", help_text="工伤")
|
|
# maternity = models.DecimalField(max_digits=18, decimal_places=2, default=0, blank=True, verbose_name="生育", help_text="生育")
|
|
# illness = models.DecimalField(max_digits=18, decimal_places=2, default=0, blank=True, verbose_name="大病医疗", help_text="大病医疗")
|
|
|
|
CreateBy = models.CharField(max_length=36, null=True, blank=True, verbose_name="创建人")
|
|
UpdateBy = models.CharField(max_length=36, null=True, blank=True, verbose_name="更新人")
|
|
CreateByUid = models.IntegerField(null=True, blank=True, verbose_name="创建人ID")
|
|
UpdateByUid = models.IntegerField(null=True, blank=True, verbose_name="更新人ID")
|
|
CreateDateTime = models.DateTimeField(auto_now_add=True, verbose_name="创建时间")
|
|
UpdateDateTime = models.DateTimeField(auto_now=True, verbose_name="更新时间")
|
|
companyMid = models.CharField(null=True, blank=True, max_length=36, verbose_name="公司全局id") # 用于绑定公司
|
|
|
|
class Meta:
|
|
db_table = "staff_accrued_social_insurance"
|
|
verbose_name = "社保记录"
|
|
verbose_name_plural = verbose_name
|
|
ordering = ["id"]
|
|
|
|
def save(self, *args, **kwargs):
|
|
# 强制确保日期为每月的第一天
|
|
if self.date:
|
|
self.date = self.date.replace(day=1)
|
|
super().save(*args, **kwargs)
|
|
|
|
|
|
# 预提公积金
|
|
class AccruedAccumulation(models.Model):
|
|
"""
|
|
预提公积金记录 费用编码 1.2.2
|
|
"""
|
|
|
|
staffId = models.IntegerField(null=True, blank=True, verbose_name="员工id", help_text="员工id")
|
|
date = models.DateField(null=True, blank=True, verbose_name="薪资入账年月", help_text="薪资入账年月 # 2024-01")
|
|
startDate = models.DateField(null=True, blank=True, verbose_name="薪资费用发生开始年月",
|
|
help_text="薪资费用发生开始年月 # 2024-01")
|
|
endDate = models.DateField(null=True, blank=True, verbose_name="薪资费用发生结束年月",
|
|
help_text="薪资费用发生结束年月 # 2024-01")
|
|
amount = models.DecimalField(max_digits=18, decimal_places=2, default=0, blank=True, verbose_name="金额",
|
|
help_text="金额")
|
|
subjectId = models.IntegerField(null=True, blank=True, verbose_name="对应科目id", help_text="对应科目id")
|
|
status = models.IntegerField(null=True, default=0, blank=True, verbose_name="状态",
|
|
help_text="状态 # 0:未审核 1:已审核保存 1+:已添加凭证")
|
|
attendanceStatus = models.BooleanField(default=0, verbose_name="考勤状态是否完成,0-未完成",
|
|
help_text="考勤状态是否完成,0-未完成")
|
|
# accumulation = models.DecimalField(max_digits=18, decimal_places=2, default=0, blank=True, verbose_name="公积金", help_text="公积金")
|
|
|
|
CreateBy = models.CharField(max_length=36, null=True, blank=True, verbose_name="创建人")
|
|
UpdateBy = models.CharField(max_length=36, null=True, blank=True, verbose_name="更新人")
|
|
CreateByUid = models.IntegerField(null=True, blank=True, verbose_name="创建人ID")
|
|
UpdateByUid = models.IntegerField(null=True, blank=True, verbose_name="更新人ID")
|
|
CreateDateTime = models.DateTimeField(auto_now_add=True, verbose_name="创建时间")
|
|
UpdateDateTime = models.DateTimeField(auto_now=True, verbose_name="更新时间")
|
|
companyMid = models.CharField(null=True, blank=True, max_length=36, verbose_name="公司全局id") # 用于绑定公司
|
|
|
|
class Meta:
|
|
db_table = "staff_accrued_accumulation"
|
|
verbose_name = "公积金记录"
|
|
verbose_name_plural = verbose_name
|
|
ordering = ["id"]
|
|
|
|
def save(self, *args, **kwargs):
|
|
# 强制确保日期为每月的第一天
|
|
if self.date:
|
|
self.date = self.date.replace(day=1)
|
|
super().save(*args, **kwargs)
|
|
|
|
|
|
# 预提奖金
|
|
class AccruedBonus(models.Model):
|
|
"""
|
|
预提奖金管理 费用编码 1.4
|
|
"""
|
|
|
|
staffId = models.IntegerField(null=True, blank=True, verbose_name="员工id", help_text="员工id")
|
|
date = models.DateField(null=True, blank=True, verbose_name="薪资入账年月", help_text="薪资入账年月 # 2024-01")
|
|
startDate = models.DateField(null=True, blank=True, verbose_name="薪资费用发生开始年月",
|
|
help_text="薪资费用发生开始年月 # 2024-01")
|
|
endDate = models.DateField(null=True, blank=True, verbose_name="薪资费用发生结束年月",
|
|
help_text="薪资费用发生结束年月 # 2024-01")
|
|
amount = models.DecimalField(max_digits=18, decimal_places=2, null=True, blank=True, verbose_name="金额",
|
|
help_text="金额")
|
|
subjectId = models.IntegerField(null=True, blank=True, verbose_name="对应科目id", help_text="对应科目id")
|
|
status = models.IntegerField(null=True, default=0, blank=True, verbose_name="状态",
|
|
help_text="状态 # 0:未审核 1:已审核保存 1+:已添加凭证")
|
|
attendanceStatus = models.BooleanField(default=0, verbose_name="考勤状态是否完成,0-未完成",
|
|
help_text="考勤状态是否完成,0-未完成")
|
|
remark = models.CharField(max_length=200, null=True, blank=True, verbose_name="备注信息", help_text="备注信息")
|
|
|
|
CreateBy = models.CharField(max_length=36, null=True, blank=True, verbose_name="创建人")
|
|
UpdateBy = models.CharField(max_length=36, null=True, blank=True, verbose_name="更新人")
|
|
CreateByUid = models.IntegerField(null=True, blank=True, verbose_name="创建人ID")
|
|
UpdateByUid = models.IntegerField(null=True, blank=True, verbose_name="更新人ID")
|
|
CreateDateTime = models.DateTimeField(auto_now_add=True, verbose_name="创建时间")
|
|
UpdateDateTime = models.DateTimeField(auto_now=True, verbose_name="更新时间")
|
|
companyMid = models.CharField(null=True, blank=True, max_length=36, verbose_name="公司全局id") # 用于绑定公司
|
|
|
|
class Meta:
|
|
db_table = "staff_accrued_bonus"
|
|
verbose_name = "奖金管理"
|
|
verbose_name_plural = verbose_name
|
|
ordering = ["id"]
|
|
|
|
def save(self, *args, **kwargs):
|
|
# 强制确保日期为每月的第一天
|
|
if self.date:
|
|
self.date = self.date.replace(day=1)
|
|
super().save(*args, **kwargs)
|
|
|
|
|
|
# 预提福利
|
|
class AccruedWelfare(models.Model):
|
|
"""
|
|
预提福利管理 费用编码 7.9.3
|
|
"""
|
|
|
|
staffId = models.IntegerField(null=True, blank=True, verbose_name="员工id", help_text="员工id")
|
|
date = models.DateField(null=True, blank=True, verbose_name="薪资入账年月", help_text="薪资入账年月 # 2024-01")
|
|
startDate = models.DateField(null=True, blank=True, verbose_name="薪资费用发生开始年月",
|
|
help_text="薪资费用发生开始年月 # 2024-01")
|
|
endDate = models.DateField(null=True, blank=True, verbose_name="薪资费用发生结束年月",
|
|
help_text="薪资费用发生结束年月 # 2024-01")
|
|
amount = models.DecimalField(max_digits=18, decimal_places=2, null=True, blank=True, verbose_name="金额",
|
|
help_text="金额")
|
|
subjectId = models.IntegerField(null=True, blank=True, verbose_name="对应科目id", help_text="对应科目id")
|
|
status = models.IntegerField(null=True, default=0, blank=True, verbose_name="状态",
|
|
help_text="状态 # 0:未审核 1:已审核保存 1+:已添加凭证")
|
|
attendanceStatus = models.BooleanField(default=0, verbose_name="考勤状态是否完成,0-未完成",
|
|
help_text="考勤状态是否完成,0-未完成")
|
|
remark = models.CharField(max_length=200, null=True, blank=True, verbose_name="备注信息", help_text="备注信息")
|
|
|
|
CreateBy = models.CharField(max_length=36, null=True, blank=True, verbose_name="创建人")
|
|
UpdateBy = models.CharField(max_length=36, null=True, blank=True, verbose_name="更新人")
|
|
CreateByUid = models.IntegerField(null=True, blank=True, verbose_name="创建人ID")
|
|
UpdateByUid = models.IntegerField(null=True, blank=True, verbose_name="更新人ID")
|
|
CreateDateTime = models.DateTimeField(auto_now_add=True, verbose_name="创建时间")
|
|
UpdateDateTime = models.DateTimeField(auto_now=True, verbose_name="更新时间")
|
|
companyMid = models.CharField(null=True, blank=True, max_length=36, verbose_name="公司全局id") # 用于绑定公司
|
|
|
|
class Meta:
|
|
db_table = "staff_accrued_welfare"
|
|
verbose_name = "福利管理"
|
|
verbose_name_plural = verbose_name
|
|
ordering = ["id"]
|
|
|
|
def save(self, *args, **kwargs):
|
|
# 强制确保日期为每月的第一天
|
|
if self.date:
|
|
self.date = self.date.replace(day=1)
|
|
super().save(*args, **kwargs)
|
|
|
|
|
|
|
|
class Salary(models.Model):
|
|
"""
|
|
薪资记录(工资,公积金)
|
|
"""
|
|
|
|
staffId = models.IntegerField(null=True, blank=True, verbose_name="员工id", help_text="员工id")
|
|
salaryDate = models.DateField(null=True, blank=True, verbose_name="薪资记录年月", help_text="薪资记录年月 # 2024-01")
|
|
salaryAmount = models.DecimalField(max_digits=18, decimal_places=2, default=0, blank=True, verbose_name="工资", help_text="工资")
|
|
accumulation = models.DecimalField(max_digits=18, decimal_places=2, default=0, blank=True, verbose_name="公积金", help_text="公积金")
|
|
endowment = models.DecimalField(max_digits=18, decimal_places=2, default=0, blank=True, verbose_name="养老", help_text="养老")
|
|
medical = models.DecimalField(max_digits=18, decimal_places=2, default=0, blank=True, verbose_name="医疗", help_text="医疗")
|
|
unemployment = models.DecimalField(max_digits=18, decimal_places=2, default=0, blank=True, verbose_name="失业", help_text="失业")
|
|
workInjury = models.DecimalField(max_digits=18, decimal_places=2, default=0, blank=True, verbose_name="工伤", help_text="工伤")
|
|
maternity = models.DecimalField(max_digits=18, decimal_places=2, default=0, blank=True, verbose_name="生育", help_text="生育")
|
|
illness = models.DecimalField(max_digits=18, decimal_places=2, default=0, blank=True, verbose_name="大病医疗", help_text="大病医疗")
|
|
# type = models.IntegerField(null=True, blank=True, verbose_name="类型", help_text="1:工资SA(salary), 2:公积金AC(accumulation)")
|
|
status = models.IntegerField(null=True, default=0, blank=True, verbose_name="状态", help_text="状态 # 0:未审核 1:已审核保存 1+:已添加凭证")
|
|
attendanceStatus = models.BooleanField(default=0, verbose_name="考勤状态是否完成,0-未完成", help_text="考勤状态是否完成,0-未完成")
|
|
|
|
CreateBy = models.CharField(max_length=36, null=True, blank=True, verbose_name="创建人")
|
|
UpdateBy = models.CharField(max_length=36, null=True, blank=True, verbose_name="更新人")
|
|
CreateByUid = models.IntegerField(null=True, blank=True, verbose_name="创建人ID")
|
|
UpdateByUid = models.IntegerField(null=True, blank=True, verbose_name="更新人ID")
|
|
CreateDateTime = models.DateTimeField(auto_now_add=True, verbose_name="创建时间")
|
|
UpdateDateTime = models.DateTimeField(auto_now=True, verbose_name="更新时间")
|
|
companyMid = models.CharField(null=True, blank=True, max_length=36, verbose_name="公司全局id") # 用于绑定公司
|
|
|
|
class Meta:
|
|
verbose_name = "薪资记录"
|
|
verbose_name_plural = verbose_name
|
|
ordering = ["id"]
|
|
|
|
|
|
class Accrued(models.Model):
|
|
"""
|
|
预提记录(工资,奖金,福利)
|
|
"""
|
|
|
|
staffId = models.IntegerField(null=True, blank=True, verbose_name="员工id", help_text="员工id")
|
|
accruedDate = models.DateField(null=True, blank=True, verbose_name="预提年月", help_text="预提年月 # 2024-01")
|
|
accruedEndDate = models.DateField(null=True, blank=True, verbose_name="预提终止年月", help_text="预提终止年月 # 2024-01")
|
|
accruedAmount = models.DecimalField(max_digits=18, decimal_places=2, null=True, blank=True, verbose_name="预提金额", help_text="预提金额")
|
|
accruedType = models.IntegerField(null=True, blank=True, verbose_name="预提类型", help_text="预提类型 # (1:工资&社保公积金,2:奖金,3:福利)")
|
|
amountType = models.IntegerField(null=True, blank=True, verbose_name="预提金额类型id", help_text="预提金额类型id # 用户自定义的奖金与福利类型")
|
|
attendanceStatus = models.BooleanField(default=0, verbose_name="考勤状态是否完成,0-未完成", help_text="考勤状态是否完成,0-未完成")
|
|
status = models.IntegerField(null=True, default=0, blank=True, verbose_name="状态", help_text="状态 # 0:未审核 1:已审核保存 2:已添加凭证")
|
|
remark = models.CharField(max_length=200, null=True, blank=True, verbose_name="备注信息", help_text="备注信息")
|
|
accumulation = models.DecimalField(max_digits=18, decimal_places=2, default=0, blank=True, verbose_name="公积金", help_text="公积金")
|
|
endowment = models.DecimalField(max_digits=18, decimal_places=2, default=0, blank=True, verbose_name="养老", help_text="养老")
|
|
medical = models.DecimalField(max_digits=18, decimal_places=2, default=0, blank=True, verbose_name="医疗", help_text="医疗")
|
|
unemployment = models.DecimalField(max_digits=18, decimal_places=2, default=0, blank=True, verbose_name="失业", help_text="失业")
|
|
workInjury = models.DecimalField(max_digits=18, decimal_places=2, default=0, blank=True, verbose_name="工伤", help_text="工伤")
|
|
maternity = models.DecimalField(max_digits=18, decimal_places=2, default=0, blank=True, verbose_name="生育", help_text="生育")
|
|
illness = models.DecimalField(max_digits=18, decimal_places=2, default=0, blank=True, verbose_name="大病医疗", help_text="大病医疗")
|
|
|
|
|
|
CreateBy = models.CharField(max_length=36, null=True, blank=True, verbose_name="创建人")
|
|
UpdateBy = models.CharField(max_length=36, null=True, blank=True, verbose_name="更新人")
|
|
CreateByUid = models.IntegerField(null=True, blank=True, verbose_name="创建人ID")
|
|
UpdateByUid = models.IntegerField(null=True, blank=True, verbose_name="更新人ID")
|
|
CreateDateTime = models.DateTimeField(auto_now_add=True, verbose_name="创建时间")
|
|
UpdateDateTime = models.DateTimeField(auto_now=True, verbose_name="更新时间")
|
|
companyMid = models.CharField(null=True, blank=True, max_length=36, verbose_name="公司全局id") # 用于绑定公司
|
|
|
|
class Meta:
|
|
verbose_name = "预提记录"
|
|
verbose_name_plural = verbose_name
|
|
ordering = ["id"]
|
|
|
|
|
|
class Reward(models.Model):
|
|
"""
|
|
奖金福利管理
|
|
"""
|
|
|
|
staffId = models.IntegerField(null=True, blank=True, verbose_name="员工id", help_text="员工id")
|
|
startDate = models.DateField(null=True, blank=True, verbose_name="起始年月", help_text="起始年月# 2024-01")
|
|
endDate = models.DateField(null=True, blank=True, verbose_name="终止年月", help_text="终止年月 # 2024-01") # 2024-01
|
|
amount = models.DecimalField(max_digits=18, decimal_places=2, null=True, blank=True, verbose_name="金额", help_text="金额")
|
|
type = models.IntegerField(null=True, blank=True, verbose_name="类型", help_text="类型") # 1:奖金 2:福利
|
|
amountType = models.IntegerField(null=True, blank=True, verbose_name="金额类型id", help_text="金额类型 # 用户自定义的奖金与福利类型id")
|
|
attendanceStatus = models.BooleanField(default=False, verbose_name="是否完成对应时间的考勤,0-未完成", help_text="是否完成对应时间的考勤,0-未完成")
|
|
status = models.IntegerField(null=True, default=0, blank=True, verbose_name="状态", help_text="状态 # 0:未审核 1:已审核保存 2:已添加凭证")
|
|
remark = models.CharField(max_length=200, null=True, blank=True, verbose_name="备注信息", help_text="备注信息")
|
|
|
|
CreateBy = models.CharField(max_length=36, null=True, blank=True, verbose_name="创建人")
|
|
UpdateBy = models.CharField(max_length=36, null=True, blank=True, verbose_name="更新人")
|
|
CreateByUid = models.IntegerField(null=True, blank=True, verbose_name="创建人ID")
|
|
UpdateByUid = models.IntegerField(null=True, blank=True, verbose_name="更新人ID")
|
|
CreateDateTime = models.DateTimeField(auto_now_add=True, verbose_name="创建时间")
|
|
UpdateDateTime = models.DateTimeField(auto_now=True, verbose_name="更新时间")
|
|
companyMid = models.CharField(null=True, blank=True, max_length=36, verbose_name="公司全局id") # 用于绑定公司
|
|
|
|
class Meta:
|
|
verbose_name = "奖金福利管理"
|
|
verbose_name_plural = verbose_name
|
|
ordering = ["id"]
|
|
|
|
|