Payslip Generation
Summary
Payroll generates a structured payslip and optional PDF from a Frozen run detail, persists the structured payload, and records a notification-oriented integration event.
Audience
Backend and frontend developers, QA and DevOps engineers, support and security engineers, and solution architects.
Overview
Payroll generates a structured payslip and optional PDF from a Frozen run detail, persists the structured payload, and records a notification-oriented integration event.
Technical Detail
Eligibility and model
Both run and employee detail must be Frozen. The structured model combines period, employee/work context, earning and deduction rows, Attendance/Leave/overtime summaries, adjustments, totals, and generation time. Values are intentionally not reproduced here.
Persistence and regeneration
Payroll stores one payslip record per run and employee. Generation inserts or replaces the structured payload and refreshes generation evidence. Explicit versions or immutable historical revisions are not modeled.
PDF and Document boundary
PDF bytes are rendered in process and returned to the caller. No Document Service client, external object storage operation, or Payroll document-reference entity is confirmed; Document Service storage is Not implemented in this flow.
Events and failures
Successful persistence adds audit evidence and a payslip-generated outbox event used by Notification. Rendering occurs after structured persistence in the PDF flow, so PDF rendering failure compensation Requires confirmation.
Source References
microservices/src/payroll-service/Application/PayrollOutputsService.csmicroservices/src/payroll-service/Application/PayrollPdfRenderer.csmicroservices/src/payroll-service/Domain/PayrollEntities.csmicroservices/src/contracts/Events/PayslipGeneratedEvent.csmicroservices/src/notification-service/Application/EventNotificationResolver.cs
Related Articles
See Also
Keywords
- Payroll Service
- Payslip Generation
- Technical architecture
Revision Information
- Status: Draft
- Last reviewed: 2026-07-15
- Review cycle: Quarterly