System use case specification change proposal status - ESG-Project/documentation GitHub Wiki
← Home / Requirements / System Use Cases / System Use Cases Specification
| Identification | UC17 |
| Use case | Change proposal status |
| Actors | Administrator, Technician |
| Stakeholders and interests | Consulting company: Ability to manage the status of commercial proposals effectively. |
| Pre-conditions | User is logged into the system as an administrator or technician; System has access to the list of commercial proposals. |
| Minimum guarantees | System updates the proposal status without errors. |
| Success guarantees | User successfully changes the proposal status to "APPROVED" or "REFUSED", and appropriate actions are taken based on the status change. |
Main Success Scenario
| User Action | System Response |
|---|---|
| 1. This use case begins when the user navigates to the list of commercial proposals | 2. The system displays the list of commercial proposals with their current statuses |
| 3. The user clicks the button to change the status of a proposal to "APPROVED" or "REFUSED" | 4. The system validates the status change request |
| 5. The system updates the proposal status in the database |
Alternative Flows
3a User cancels the status change
| User Action | System Response |
|---|---|
| 1. The user cancels the action | 2. The system returns to the proposals list without making any changes |
4a Invalid status change
| User Action | System Response |
|---|---|
| 1. The system detects an error in the status change | |
| 2. The system displays an error message to the user | |
| 3. The user acknowledges the error | 4. The system returns to the proposals list |
5a Status changed to "REFUSED"
| User Action | System Response |
|---|---|
| 1. The system provides an option to duplicate all proposal data into a new, editable proposal | |
| 2a. The user confirms the duplication | 3a. The system creates a new proposal with the duplicated data |
| 2b. The user declines the duplication | 3b. The system returns to the proposals list |
5b Status changed to "APPROVED"
| User Action | System Response |
|---|---|
| 1. The system asks the user if they want to link the proposal to an existing project or create a new one | |
| 2a1. The user chooses to create a new project | 2a2. The system creates a new project using the proposal data |
| 2b1. The user chooses to link to an existing project | 2b2. The system displays a list of existing projects for selection |
| 2b3. The user selects a project | 2b4. The system links the proposal data to the selected project by copying relevant information and establishing the relationship |
| 3. The system returns the new or existing project data in the status change response | |
| 4. The system displays the project data in a modal to the user | |
| 5. The system displays a question to the user if they want to navigate to the newly created or updated project page | |
| 6a. The user confirms navigation | 7a. The system navigates to the new or updated project page |
| 6b. The user declines navigation | 7b. The system returns to the proposals list |
Special Requirements
- Status Change Button: There must be a button in the proposals list to change the status to "APPROVED" or "REFUSED".
- Non-Editable Proposals: Once the status is altered, the proposal must no longer be editable.
- Duplication Option: For refused proposals, provide an option to duplicate all the proposal data into a new, editable proposal.
- Project Creation or Linking: For accepted proposals, the system must ask if the user wants to link the proposal to an existing project or create a new project.
- Navigation Prompt: Ask the user if they want to navigate to the newly created or updated project page after a proposal is accepted.
- Status Validation: The system must validate that only valid status transitions are allowed (e.g., cannot change from "REFUSED" to "APPROVED").
- Time Limit: Status changes must be performed within 30 days of the proposal creation date.
- Confirmation Dialog: The system must show a confirmation dialog before changing the status, warning the user that the action cannot be undone.
- Audit Trail: The system must log all status changes with timestamp and user information.