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.