Stage 2 summary at 50 accepted trajectories
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
60
tasks_gen/train/G1129/spec.md
Normal file
60
tasks_gen/train/G1129/spec.md
Normal file
@@ -0,0 +1,60 @@
|
||||
# 1. Goal
|
||||
A school canteen bills the parents for the meals of one week. The billing
|
||||
program calls one function module for each week. The function module reads the
|
||||
meal bookings of the week and returns the number of charged meals, the number
|
||||
of pupils, the total amount, and the total discount.
|
||||
|
||||
# 2. Open questions
|
||||
None.
|
||||
|
||||
# 3. Context
|
||||
- The function group {{P}}FG_MEAL exists in package $TMP.
|
||||
- The database table {{P}}MEALBK exists in package $TMP. It contains the meal
|
||||
bookings. Its fields are:
|
||||
- mandt: the client
|
||||
- week_key: the week of the booking, for example '2024-15'
|
||||
- pupil: the pupil who booked the meal
|
||||
- meal_no: the number of the booking inside the week
|
||||
- meal: the kind of meal, for example 'LUNCH'
|
||||
- price: the price of the meal
|
||||
- cancelled: 'X' when the booking was cancelled, otherwise initial
|
||||
- The class {{P}}MEAL_DATA fills the table with sample bookings.
|
||||
|
||||
# 4. Contract
|
||||
- Create the function module {{P}}MEAL_BILL in function group {{P}}FG_MEAL.
|
||||
- Interface of {{P}}MEAL_BILL:
|
||||
- IMPORTING iv_week TYPE string
|
||||
- EXPORTING ev_meals TYPE decfloat34
|
||||
- EXPORTING ev_pupils TYPE decfloat34
|
||||
- EXPORTING ev_amount TYPE decfloat34
|
||||
- EXPORTING ev_discount TYPE decfloat34
|
||||
- EXCEPTIONS invalid_price
|
||||
|
||||
# 5. Business rules
|
||||
1. The function module reads the bookings of the given week. A booking belongs
|
||||
to the week that is in its field week_key.
|
||||
2. A booking is charged when cancelled is not 'X' and price is greater than 0.
|
||||
3. If a booking of the week has a price less than 0, raise the exception
|
||||
INVALID_PRICE.
|
||||
4. Each charged booking counts as one meal of its pupil.
|
||||
5. The gross amount of a pupil is the sum of the prices of the charged bookings
|
||||
of the pupil.
|
||||
6. If a pupil has 5 or more charged meals, the amount of the pupil is 90 % of
|
||||
the gross amount, rounded half up to 2 decimals. If a pupil has fewer than 5
|
||||
charged meals, the amount of the pupil is the gross amount.
|
||||
7. ev_meals is the total number of charged meals of the week.
|
||||
8. ev_pupils is the number of pupils with at least one charged booking.
|
||||
9. ev_amount is the sum of the amounts of all pupils.
|
||||
10. ev_discount is the sum of the differences between the gross amount and the
|
||||
amount of each pupil.
|
||||
11. If the week has no charged booking, all output parameters are 0.
|
||||
|
||||
# 6. Constraints
|
||||
- Release target: 7.58.
|
||||
- Coding standards: Clean ABAP. Keep every method below 40 statements.
|
||||
- Out of scope: do not change {{P}}MEALBK and {{P}}MEAL_DATA.
|
||||
|
||||
# 7. Acceptance
|
||||
- The function module {{P}}MEAL_BILL is active and has no syntax error.
|
||||
- The hidden tests pass.
|
||||
- Write ABAP Unit tests for the function module in a global test class.
|
||||
Reference in New Issue
Block a user