feat: 最低工资保护按当月累计判断 + 预入职员工 + 发薪年月
1. 最低工资保护:第二批次递延时判断当月累计实发(已归档批次 netPay 之和 + 本批次 netPay)是否低于 minWage,仅累计低于 时才触发递延补齐,补齐目标 = minWage - 已归档累计实发 2. 预入职员工:EmployeeStatus 新增 PRE_ONBOARD 状态 - 新增员工表单加"入职状态"选择器(正式入职/预入职) - 薪资批次创建排除 PRE_ONBOARD 员工 - 花名册支持按预入职状态过滤 - 新增 POST /:id/activate API 转正式 3. 发薪年月:PayrollBatch 新增 payMonth 字段 - 所属月(计薪月)决定社保标准、个税累计 - 发薪年月=实际发放月份(如十一提前发薪:所属月=10月,发薪月=9月) - 创建批次表单加所属月和发薪年月输入 - 批次列表显示所属月/发薪月 4. blank_employees 模式不再自动带出基本工资 Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
@@ -344,6 +344,7 @@ export function BatchManager() {
|
||||
<thead>
|
||||
<tr className="border-b text-left text-xs text-gray-500">
|
||||
<th className="py-2 px-3">批次名称</th>
|
||||
<th className="py-2 px-3">所属月/发薪月</th>
|
||||
<th className="py-2 px-3">类型</th>
|
||||
<th className="py-2 px-3 text-right">人数</th>
|
||||
<th className="py-2 px-3 text-right">应发合计</th>
|
||||
@@ -392,6 +393,12 @@ export function BatchManager() {
|
||||
)}
|
||||
</div>
|
||||
</td>
|
||||
<td className="py-2.5 px-3 text-xs text-gray-600">
|
||||
<div>{batch.month}</div>
|
||||
{batch.payMonth && batch.payMonth !== batch.month && (
|
||||
<div className="text-amber-600">发薪:{batch.payMonth}</div>
|
||||
)}
|
||||
</td>
|
||||
<td className="py-2.5 px-3 text-xs text-gray-600">
|
||||
{batch.type === 'REGULAR' ? '常规发薪' : batch.type === 'BONUS' ? '年终奖/奖金' : batch.type === 'TERMINATION' ? '离职结算' : batch.type === 'SEVERANCE' ? '补偿金' : batch.type}
|
||||
</td>
|
||||
|
||||
Reference in New Issue
Block a user