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.