.. _label-uc-contract-add: Use-Case: Add a Contract *********************************************************************** .. Description of a use case .. The description must be formulated as seen from system (not: actors) .. Describes those changes an (outside) actor can notice .. Short and abstract as possible, as long as necessary. .. Each use case must have at least one actor involved .. Each use case must have a trigger and a result Short Description ----------------------------------------------------------------------- A contract is added for some customer Actor(s) ----------------------------------------------------------------------- Staff Trigger(s) ----------------------------------------------------------------------- - Imports (modifying existing data) - Web form(s) submitted by authorized user. Result(s) ----------------------------------------------------------------------- - A new contract was created with unique contract ID. - Any optional contract-add-ons can be booked for the new contract. Incoming Data ----------------------------------------------------------------------- - Customer ID, service ID, respective contractual parameters (like: start of service, end of service, picked payment methods, etc.) Outgoing Data ----------------------------------------------------------------------- - Message about contract creation. - Log message Precondition(s) ----------------------------------------------------------------------- - Customer ID must exist and be valid for new contracts. - Submitting user must be authorized to perform the operation. Postcondition(s) ----------------------------------------------------------------------- - The contractual parameters were checked for validity. Invariant(s) ----------------------------------------------------------------------- Essential Steps ----------------------------------------------------------------------- - System receives customer ID, service ID and any optional parameters specifying the contract to create. - Passed in service is requested to create a new contract with passed-in parameters (contractual details) set (inludes validating the passed in data). - If passed-in parameters are invalid, user is offered a possibility to fix the invalid data. - System creates the new contract connecting it to the given customer ID. Open Issues ----------------------------------------------------------------------- Remarks ----------------------------------------------------------------------- .. raw:: latex \pagebreak[4]