Business Rules Overview¶
This document provides an overview of the business rules in the PRS system. It serves as a guide to understanding the core business processes and rules that govern the system's behavior.
Core Business Processes¶
The PRS system manages the following core business processes:
- Requisition Process: Creating and approving requests for goods or materials
- Canvassing Process: Collecting and comparing supplier quotations
- Purchase Order Process: Generating, reviewing, and approving purchase orders
- Receiving Report Process: Creating of receiving report once item has been delivered
- Invoice Report Process: Creating of invoice report of invoices issued by the supplier
- Payment Request Process: Creating of payment or voucher requests for suppliers
Process Flow¶
The overall process flow in the PRS system is as follows:
---
config:
look: classic
layout: elk
---
flowchart LR
RS["Create RS"] --> RA["RS Approval"]
RA --> CAN["Canvassing"]
CAN --> CANA["Canvassing Approval"]
CANA --> PO["Purchase Order"]
PO --> POA["Purchase Order Approval"]
POA --> DEL["Delivery - Receiving Report"]
DEL --> INV["Invoice - Invoice Report"]
INV --> PAY["Payment Request"]
PAY --> PAYA["Payment Approval"]
RS:::processStep
RA:::approvalStep
CAN:::processStep
CANA:::approvalStep
PO:::processStep
POA:::approvalStep
DEL:::noApprovalStep
INV:::noApprovalStep
PAY:::processStep
PAYA:::approvalStep
Each process has its own status flow and business rules, which are documented in detail in the respective business rules documents.
Key Business Entities¶
1. Requisition¶
A requisition is a formal request for goods or materials. It is the starting point of the procurement process.
Detailed Requisition Business Rules
2. Canvass¶
A canvass is the process of collecting and comparing supplier quotations for items in a requisition.
Detailed Canvass Business Rules
3. Purchase Order¶
A purchase order is an official document issued to suppliers to order goods or services.
Detailed Purchase Order Business Rules
4. Receiving Report¶
A receiving report is a document confirming the delivery of goods.
Detailed Receiving Report Business Rules
5. Invoice Report¶
An invoice report is a document to input invoice details issued by supplier.
Detailed Invoice Report Business Rules
6. Payment Request¶
A payment request is a request for payment for delivered goods.
Detailed Payment Business Rules
Cross-Cutting Business Rules¶
1. Approval Workflows¶
Approval workflows are a key part of the PRS system. They govern how different entities (requisitions, canvasses, purchase orders, etc.) are approved.
Key aspects of approval workflows:
- Approver Assignment: Approvers are assigned based on project, department, role, and quantity (GFQs)
- Approval Levels: Approvers have different levels, and approval proceeds in order of level
- Adhoc Approvers: Additional approvers can be added to the approval workflow
- Approval Status: Approvers can approve or reject, and the entity status changes accordingly
2. User Roles and Permissions¶
The PRS system has a comprehensive role-based access control system with the following user types and their respective permissions:
User Types Overview¶
| User Type | Description |
|---|---|
| Root User | System administrator with full access |
| IT Admin | Technical administrator with system management capabilities |
| Purchasing Admin | Administrative user for procurement processes |
| Engineers | Technical staff with specific item management access |
| Supervisor | Department supervisor with limited access |
| Assistant Manager | Department assistant manager with limited access |
| Department Head | Department leader with approval capabilities |
| Department Secretary | Administrative support for department |
| Division Head | Division leader with approval capabilities |
| Area Staff/Department Secretary | Administrative support for area/department |
| Purchasing Staff | Procurement staff with operational access |
| Purchasing Head | Procurement department leader |
| Management | Executive management with approval capabilities |
Access Matrix¶
User Management¶
| Function | Root User | IT Admin | Others |
|---|---|---|---|
| Create User | ✅ | ✅ | -- |
| Edit User | ✅ | ✅ | -- |
| Active/Inactive Users | ✅ | ✅ | -- |
| View User Types | ✅ | ✅ | -- |
| View Users | ✅ | ✅ | -- |
Company Management¶
| Function | Root User | IT Admin | Purchasing Admin | Others |
|---|---|---|---|---|
| Sync Company | -- | ✅ | ✅ | -- |
| View Company | -- | ✅ | ✅ | -- |
Association Management¶
| Function | Root User | IT Admin | Purchasing Admin | Others |
|---|---|---|---|---|
| Create Association | -- | ✅ | ✅ | -- |
| Edit Association | -- | ✅ | ✅ | -- |
| Delete Association | -- | ✅ | ✅ | -- |
| View Association | -- | ✅ | ✅ | -- |
Project Management¶
| Function | Root User | IT Admin | Purchasing Admin | Others |
|---|---|---|---|---|
| Sync Projects | -- | ✅ | ✅ | -- |
| View Projects | -- | ✅ | ✅ | -- |
| Assign Approvers | -- | ✅ | ✅ | -- |
| Update Approvers | -- | ✅ | ✅ | -- |
| View Approvers | -- | ✅ | ✅ | -- |
| Trade Management | -- | ✅ | ✅ | -- |
Department Management¶
| Function | Root User | IT Admin | Purchasing Admin | Others |
|---|---|---|---|---|
| Sync Department | -- | ✅ | ✅ | -- |
| View Department | ✅ | ✅ | ✅ | -- |
| Assign Approvers | -- | ✅ | ✅ | -- |
| Update Approvers | -- | ✅ | ✅ | -- |
| View Approvers | -- | ✅ | ✅ | -- |
Supplier Management¶
| Function | IT Admin | Purchasing Admin | Others |
|---|---|---|---|
| Sync Supplier | ✅ | ✅ | -- |
| View Supplier | ✅ | ✅ | -- |
| Attachment and Notes | ✅ | ✅ | -- |
OFM Items Management¶
| Function | IT Admin | Purchasing Admin | Engineers | Purchasing Staff | Purchasing Head | Others |
|---|---|---|---|---|---|---|
| Sync Items | ✅ | ✅ | ✅ | ✅ | ✅ | -- |
| View Items | ✅ | ✅ | ✅ | ✅ | ✅ | -- |
| Item History | ✅ | ✅ | ✅ | ✅ | ✅ | -- |
| Categorizing Item List | ✅ | ✅ | ✅ | ✅ | ✅ | -- |
| Viewing OFM List | ✅ | ✅ | ✅ | ✅ | ✅ | -- |
OFM Lists Management¶
| Function | IT Admin | Purchasing Admin | Engineers | Purchasing Staff | Purchasing Head | Others |
|---|---|---|---|---|---|---|
| Categorizing Item List | ✅ | ✅ | ✅ | ✅ | ✅ | -- |
| Viewing OFM List | ✅ | ✅ | ✅ | ✅ | ✅ | -- |
Non-OFM Item Management¶
| Function | IT Admin | Purchasing Admin | Engineers | Purchasing Staff | Purchasing Head | Others |
|---|---|---|---|---|---|---|
| Create Non-OFM | ✅ | ✅ | -- | ✅ | ✅ | -- |
| Edit Non-OFM | ✅ | ✅ | -- | ✅ | ✅ | -- |
| View Non-OFM | ✅ | ✅ | ✅ | ✅ | ✅ | -- |
Dashboard¶
| Function | IT Admin | Purchasing Admin | Engineers | Supervisor | Assistant Manager | Department Head | Department Secretary | Division Head | Area Staff/Dept Secretary | Purchasing Staff | Purchasing Head | Management |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| View RS Dashboard | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Download Dashboard | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Manage Requisition Slip¶
| Function | IT Admin | Purchasing Admin | Engineers | Supervisor | Assistant Manager | Department Head | Department Secretary | Division Head | Area Staff/Dept Secretary | Purchasing Staff | Purchasing Head | Management |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Create RS | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -- | ✅ | ✅ | ✅ | ✅ | ✅ |
| Save RS as Draft | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -- | ✅ | ✅ | ✅ | ✅ | ✅ |
| Submit RS | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -- | ✅ | ✅ | ✅ | ✅ | ✅ |
| View RS Details - Main | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| View RS Details - Related Documents | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Edit RS | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -- | ✅ | ✅ | ✅ | ✅ | ✅ |
| RS Approval | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| RS Assigning | -- | ✅ | -- | -- | -- | -- | -- | -- | -- | -- | ✅ | ✅ |
| RS History | ✅ | ✅ | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- |
| RS Download | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| RS Cancellation | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Force Closing | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Manage Canvass¶
| Function | IT Admin | Purchasing Admin | Engineers | Supervisor | Assistant Manager | Department Head | Department Secretary | Division Head | Area Staff/Dept Secretary | Purchasing Staff | Purchasing Head | Management |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Create Canvass | -- | -- | -- | -- | -- | -- | -- | -- | -- | ✅ | ✅ | -- |
| Canvass Submission | -- | -- | -- | -- | -- | -- | -- | -- | -- | ✅ | ✅ | -- |
| Save Canvass as Draft | -- | -- | -- | -- | -- | -- | -- | -- | -- | ✅ | ✅ | -- |
| View Canvass | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Edit Canvass | -- | -- | -- | -- | -- | -- | -- | -- | -- | ✅ | ✅ | -- |
| Canvass Approval | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Edit CS During Approval | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| CS Download | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Manage Purchase Order¶
| Function | IT Admin | Purchasing Admin | Engineers | Supervisor | Assistant Manager | Department Head | Department Secretary | Division Head | Area Staff/Dept Secretary | Purchasing Staff | Purchasing Head | Management |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| For PO Review Submission | -- | -- | -- | -- | -- | -- | -- | -- | -- | ✅ | ✅ | -- |
| View Purchase Order | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Edit Purchase Order | -- | -- | -- | -- | -- | -- | -- | -- | -- | ✅ | ✅ | -- |
| Purchase Order Approval | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Purchase Order Cancellation | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Download Purchase Order | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Incidental Fees | -- | -- | -- | -- | -- | -- | -- | -- | -- | ✅ | ✅ | -- |
Manage Receiving Report¶
| Function | IT Admin | Purchasing Admin | Engineers | Supervisor | Assistant Manager | Department Head | Department Secretary | Division Head | Area Staff/Dept Secretary | Purchasing Staff | Purchasing Head | Management |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Create Receiving Report | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Submit Receiving Report | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Save Receiving Report as Draft | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| View Receiving Report | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Download Receiving Report | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Manage Invoice Report¶
| Function | IT Admin | Purchasing Admin | Engineers | Supervisor | Assistant Manager | Department Head | Department Secretary | Division Head | Area Staff/Dept Secretary | Purchasing Staff | Purchasing Head | Management |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Create Invoice Report | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Submit Invoice Report | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Save Invoice Report as Draft | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| View Invoice Report | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Download Invoice Report | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Manage Payment Request¶
| Function | IT Admin | Purchasing Admin | Engineers | Supervisor | Assistant Manager | Department Head | Department Secretary | Division Head | Area Staff/Dept Secretary | Purchasing Staff | Purchasing Head | Management |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Create Payment Request | -- | -- | -- | -- | -- | -- | -- | -- | -- | ✅ | ✅ | -- |
| Submit Payment Request | -- | -- | -- | -- | -- | -- | -- | -- | -- | ✅ | ✅ | -- |
| Save Payment Request as Draft | -- | -- | -- | -- | -- | -- | -- | -- | -- | ✅ | ✅ | -- |
| View Payment Request | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Payment Request Approval | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Download Payment Request | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Non-RS Payment Management¶
| Function | IT Admin | Purchasing Admin | Engineers | Supervisor | Assistant Manager | Department Head | Department Secretary | Division Head | Area Staff/Dept Secretary | Purchasing Staff | Purchasing Head | Management |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Create Non-RS Payment Request | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Submit Non-RS Payment Request | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Save Non-RS Payment Request as Draft | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -- | ✅ | ✅ | ✅ | ✅ | ✅ |
| View Non-RS Payment Request | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Edit Non-RS Payment Request | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Non-Payment Request Approval | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Download Payment Request | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
General System Access¶
| Function | Root User | IT Admin | Purchasing Admin | Engineers | Supervisor | Assistant Manager | Department Head | Department Secretary | Division Head | Area Staff/Dept Secretary | Purchasing Staff | Purchasing Head | Management |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| User Profile | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Notification Bell | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Key Access Rules¶
Root User Access
- Has access to view department information
- Limited to system-level operations
IT Admin Access
- Full access to system administration functions
- Can manage companies, associations, projects, and departments
- Access to system audit logs
- Can manage OFM and Non-OFM items
Purchasing Admin Access
- Similar to IT Admin but focused on procurement functions
- Can manage all procurement-related items and settings
Engineers Access
- Can view and manage OFM items
- Can view Non-OFM items
- Limited to technical item management
Purchasing Staff Access
- Can manage OFM and Non-OFM items
- Limited to operational procurement functions
Purchasing Head Access
- Similar to Purchasing Staff with additional approval capabilities
- Can manage all procurement items
Other Roles
- Department Head, Division Head, and Management have specific approval workflows
- Department Secretary and Area Staff have limited access based on their department
Access Control Implementation¶
- Access is controlled through role-based permissions
- Each user can have multiple roles
- Permissions are checked at both UI and API levels
- Audit logging tracks all permission-related actions
- Access changes require proper authorization and documentation
3. Status Management¶
Each entity in the PRS system has a status that changes as it moves through the process:
- Requisition: DRAFT → FOR_RS_APPROVAL → ASSIGNING → ASSIGNED → RS_IN_PROGRESS → CLOSED_RS; RS_CANCELLED; RS_REJECTED
- Canvass: DRAFT → FOR_CS_APPROVAL → CS_APPROVED; CS_REJECTED; CS_CANCELLED
- Purchase Order: FOR_PO_REVIEW → FOR_PO_APPROVAL → FOR SENDING → FOR_DELIVERY → CLOSED_PO; CANCELLED_PO; PO_REJECTED
- Receiving Report: DRAFT → DELIVERED; RR_CANCELLED
- Invoice Report: DRAFT → INVOICE RECEIVED; IR_CANCELLED
- Payment Request: DRAFT → FOR_PR_APPROVAL → CLOSED_PR; PR_REJECTED; PR_CANCELLED
4. Item History, RS History, and Related Documents¶
History management is a critical aspect of the PRS system, allowing users to track and view historical information across various entities and processes.
Workflow¶
The history management functionality provides access to various history elements in the system:
flowchart TD
Start([History Management]) --> S1{User Role}
S1 -->|Purchasing Admin, Staff, Head/IT Admin/Engineer| S2[OFM Item History]
S1 -->|Purchasing Admin, Staff, Head/IT Admin/Engineer| S3[Non-OFM Item History]
S1 -->|All Users except Root User| S4[RS Related Documents]
S1 -->|Purchasing Admin/IT Admin| S6[RS History]
S2 -->|View Item| S21[Item Details & History]
S21 -->|Search or Sort| S22[Filtered or Sorted History]
S3 -->|View Item| S31[Item Details & History]
S31 -->|Search or Sort| S32[Filtered & Sorted History]
S4 -->|Select Tab| S41[View Document Type]
S41 --> S42{Select Tab}
S42 -->|Canvasses| S43[View Canvass Data]
S42 -->|Orders| S44[View Orders Data]
S42 -->|Deliveries| S45[View Delivery Data]
S42 -->|Payments| S46[View Payment Data]
S42 -->|Returns| S47[View Returns Data]
S6 -->|View RS| S61[View RS History]
S61 --> S62{Select Tab}
S62 -->|Canvass| S63[View Canvass History]
S62 -->|Orders| S64[View Orders History]
S62 -->|Deliveries| S65[View Delivery History]
S62 -->|Payments| S66[View Payment History]
S62 -->|Returns| S67[View Returns History]
Key History Types and Access Control¶
History viewing functions are restricted to specific user roles:
| History Type | Engineer | IT Admin | Purchasing Staff | Purchasing Admin | Purchasing Head |
|---|---|---|---|---|---|
| OFM Item History | w/ Access | w/ Access | w/ Access | w/ Access | w/ Access |
| Non-OFM Item History | w/ Access | w/ Access | w/ Access | w/ Access | w/ Access |
| RS Related Documents | w/ Access | w/ Access | w/ Access | w/ Access | w/ Access (All except Root) |
| RS History | -- | w/ Access | -- | w/ Access | -- |
History Types Details¶
OFM Item History¶
- Definition: List of requisition slip involving the selected ofm item - from requisition until delivery
- Information Displayed: RS Number, Date Requested, Quantity Requested, Price, Date Delivered, Quantity Delivered
- Features: Search by RS Number, sort by various columns, paginated view (10 rows/page)
- Business Rules: Default sorting by most recent Date Requested, "---" displayed for unavailable data
Non-OFM Item History¶
- Definition: List of requisition slip involving the selected non ofm item - from requisition until delivery
- Information Displayed: RS Number, Company, Project, Department, Date Requested, Quantity Requested, Date Delivered, Quantity Delivered
- Features: Search by RS Number, sort by various columns, paginated view (10 rows/page)
- Business Rules: Default sorting by most recent Date Requested, "---" displayed for unavailable data
RS Related Documents¶
- Definition: List of child documents of a Requisition Slip grouped by document type
- Document Types: Canvasses, Orders, Deliveries, Payments, Returns
- Features: Tab navigation between document types, search by document numbers, sort by various columns, paginated view
- Business Rules: "No Data" message displayed when no data is available, color-coded statuses
RS History¶
- Definition: List of child documents of a Requisition Slip grouped by document type
- Information Types: Canvass, Orders, Deliveries, Payments, Returns
- Features: Tab navigation between history types, sort by various columns, paginated view
- Business Rules: Displays 10 rows per page, each tab shows relevant historical data, "No Data" message displayed when no data is available, new row for every update
Common Business Rules Across History Management¶
- Default sorting is typically by the most recent date
- Search functionality allows filtering by keywords or document numbers
- Unavailable data is represented by "---" placeholders
- Color-coded statuses provide visual indicators of document states
- Pagination is implemented with 10 rows per page by default
- Each history view allows sorting by various columns with options for ascending/descending order
5. Validation Rules¶
Validation rules ensure that data entered into the system is valid and consistent:
- Required Fields: Certain fields are required based on the entity and its status
- Format Validation: Fields must adhere to specific formats (e.g., dates, numbers, text)
- Business Validation: Data must comply with business rules (e.g., a requisition must have at least one item)
6. Transaction Management¶
The PRS system uses transactions to ensure data consistency:
- Atomic Operations: Multiple database operations are grouped into transactions
- Rollback on Error: If an error occurs, all operations in the transaction are rolled back
- Commit on Success: If all operations succeed, the transaction is committed
Implementation Notes¶
The business rules are implemented in various parts of the codebase:
- Domain Entities: Define validation schemas and basic business rules
- Services: Implement complex business logic and orchestrate operations
- Controllers: Handle HTTP requests and delegate to services
- Repositories: Handle data access and persistence
When implementing new features or modifying existing ones, it's important to understand and respect these business rules to maintain the integrity of the system.