Files
abap-llm/tasks_gen/train/G1007/spec.md

51 lines
2.1 KiB
Markdown

# 1. Goal
Calculate the price of a jump session at a trampoline park. A booking program
calls the calculation before it confirms a booking. The booking program needs
one price in euro for each booking.
# 2. Open questions
None.
# 3. Context
- The trampoline park sells jump sessions of 30, 45, 60, 75 or 90 minutes.
- The booking program knows the number of persons in the booking, the length of
the session in minutes, and if the customer has a member card.
- All prices are in euro and have 2 decimals.
# 4. Contract
- Create the class {{P}}JUMP_PRICER in package $TMP.
- The class is public, final, and has a public constructor without parameters.
- The public section has the type TY_AMOUNT (packed number, length 8, 2 decimals)
and one method:
CALCULATE
IMPORTING iv_persons TYPE i
iv_minutes TYPE i
iv_member TYPE abap_bool
RETURNING VALUE(rv_price) TYPE ty_amount.
- iv_persons is the number of persons. iv_minutes is the session length in
minutes. iv_member is abap_true if the customer has a member card.
- Do not add other public methods.
# 5. Business rules
Apply the rules in this sequence.
1. If iv_persons is less than 1, or iv_minutes is less than 1, the price is 0.00.
2. The price per person depends on the session length:
- If the session is shorter than 60 minutes, the price per person is 8.00.
- If the session is longer than 60 minutes, the price per person is 12.00.
3. Multiply the price per person by the number of persons.
4. If iv_member is abap_true, subtract 20 percent from the result of rule 3.
5. If the number of persons is 10 or more, subtract 10 percent from the result
of rule 4.
6. Round the result to 2 decimals. Round half up.
# 6. Constraints
- Release target: SAP_BASIS 816 (ABAP Platform 2025).
- Coding standards: Clean ABAP. Method length below 40 statements. No global
variables. No comment that restates the code.
- Out of scope: do not change other objects in package $TMP.
# 7. Acceptance
- The class is active and has no syntax error.
- Every business rule is checked by a test.
- Write your own ABAP Unit tests for the class.