搭建完整的薪资系统,按马来西亚劳动法计算 EPF、SOCSO、EIS、PCB 税务
你是一位精通马来西亚劳工法令的资深全栈开发工程师。请为「{company_name}」构建一套完整的薪资管理系统,完全符合马来西亚雇佣法令(Employment Act 1955)及相关法定缴款规定。
【角色与背景】
你是一位资深全栈开发工程师,精通马来西亚劳工法令及薪资合规要求。
【项目目标】
为{company_name}构建一套完整的薪资管理系统,支持员工管理、月度薪资处理、法定缴款计算(EPF、SOCSO、EIS、PCB)、薪资单生成、银行转账文件导出及年终EA表格数据汇总。
【目标用户】
公司HR及财务人员,以及需要查看薪资单的员工。
【核心功能与界面】
- 员工管理:列表页(搜索、筛选)、新增/编辑员工(分步表单:个人资料→薪资结构→银行税务)、薪资历史记录。
- 月度薪资处理:选择年月创建批次,自动读取在职员工薪资结构,导入加班和花红记录,批量计算法定缴款,支持单员工重算,状态流转(草稿→审核→批准→支付),批准前显示汇总表。
- 薪资单:预览完整明细,PDF导出(单张或批量ZIP),邮件发送给员工。
- 银行转账文件:生成Maybank2U、CIMB Clicks、Public Bank批量转账CSV/TXT。
- 年终EA表格:汇总全年应税收入、EPF、PCB,生成LHDN格式报告。
- 仪表板:摘要卡片(员工数、总工资、净薪、法定缴款)、批次状态横幅、部门成本柱状图、月度趋势折线图、待处理提醒。
【主要工作流程】
1. 管理员添加员工并设置薪资结构。
2. 每月创建薪资批次,系统自动计算所有在职员工的法定缴款。
3. 管理员审核并批准批次,生成薪资单和银行转账文件。
4. 年终导出EA表格数据。
【业务规则】
- EPF:员工缴款率{epf_employee_rate}%,雇主缴款率{epf_employer_rate}%(月薪≤RM5,000雇主缴13%,>RM5,000缴12%),金额向上取整至RM0.10。
- SOCSO:按工资区间查表,月薪上限RM5,000。
- EIS:员工和雇主各0.2%,月薪上限RM5,000。
- PCB:按LHDN 2024年税率表计算,考虑个人免税额(RM9,000)、配偶免税额(RM4,000)、子女免税额(RM2,000/人)。
- 加班费:时薪=月薪÷(26×8),普通工作日1.5倍,休息日2倍,公共假期3倍。
- 薪资周期:{pay_cycle}。
【设计方向】
- 导航栏深色背景(#0F172A),显示公司名称和当前月份。
- 仪表板使用摘要卡片和图表。
- 薪资单白色卡片,收入表黄色标题行,净薪黄色背景高亮。
- 所有金额格式为RM X,XXX.XX,表格响应式。
【构建方式】
- 使用Next.js 14(App Router)+ TypeScript + Tailwind CSS + shadcn/ui。
- 数据库使用Supabase(PostgreSQL + RLS)。
- 部署至Vercel。
- 先提供简短实施计划,优先实现主要用户旅程(员工管理→薪资处理→薪资单生成),使用合理技术决策和真实示例内容,说明如何运行和测试。
- 管理员通过Supabase Auth登录。
## 构建顺序(请严格遵守)
请按以下顺序开发,让我尽早在屏幕上看到成果,不要长时间没有画面:
1. 先做界面:用接近真实的示例数据,把所有页面做出来(暂时不接数据库),让我能马上看到、能点击。做完先停下来,等我确认。
2. 再做功能:我确认界面后,才让按钮、表单和计算真正可用(继续用示例数据)。
3. 再接 Supabase:功能都正常后,才连接 Supabase 保存真实数据和登录(如需要)。
4. 最后上线:先确保在我电脑上运行正常,再把代码上传到 GitHub,经我同意后部署到 Vercel。
请保持简单——我是非技术背景的老板。有不清楚或需要决定的事,先问我,不要自己假设。