Step F first pass: 81/92 accepted; budget floor 60 calls; rejected slots moved for regeneration

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014aUaQeLnwbb1zTpN7kHeat
This commit is contained in:
Kral
2026-10-03 12:10:52 +02:00
parent d3250acfb8
commit 39769afce8
741 changed files with 40573 additions and 317 deletions

View File

@@ -0,0 +1,71 @@
CLASS {{p}}kennel_pricer DEFINITION PUBLIC FINAL CREATE PUBLIC.
PUBLIC SECTION.
TYPES ty_pet_type TYPE c LENGTH 4.
TYPES ty_amount TYPE p LENGTH 8 DECIMALS 2.
METHODS calculate_fee
IMPORTING iv_pet_type TYPE ty_pet_type
iv_nights TYPE i
iv_high_season TYPE abap_bool
iv_grooming TYPE abap_bool
RETURNING VALUE(rv_fee) TYPE ty_amount.
ENDCLASS.
CLASS {{p}}kennel_pricer IMPLEMENTATION.
METHOD calculate_fee.
DATA: lv_rate TYPE i,
lv_total TYPE p LENGTH 8 DECIMALS 2,
lv_discount TYPE i.
IF iv_nights < 1.
rv_fee = 0.
RETURN.
ENDIF.
IF iv_pet_type = 'DOG'.
IF iv_high_season = 'X'.
lv_rate = 2500 * 1125 DIV 1000.
ELSE.
lv_rate = 2500.
ENDIF.
ELSEIF iv_pet_type = 'CAT'.
IF iv_high_season = 'X'.
lv_rate = 1800 * 1125 DIV 1000.
ELSE.
lv_rate = 1800.
ENDIF.
ELSEIF iv_pet_type = 'RABB'.
IF iv_high_season = 'X'.
lv_rate = 800 * 1125 DIV 1000.
ELSE.
lv_rate = 800.
ENDIF.
ELSE.
IF iv_high_season = 'X'.
lv_rate = 2000 * 1125 DIV 1000.
ELSE.
lv_rate = 2000.
ENDIF.
ENDIF.
CLEAR lv_total.
DO iv_nights TIMES.
lv_total = lv_total + lv_rate.
ENDDO.
IF iv_nights >= 7.
lv_discount = lv_rate * 10 DIV 100.
lv_total = lv_total - lv_discount * iv_nights.
ENDIF.
IF iv_pet_type = 'CAT' AND iv_high_season = 'X'.
lv_total = lv_total - 500.
ENDIF.
IF iv_grooming = 'X'.
lv_total = lv_total + 1500.
ENDIF.
rv_fee = lv_total / 100.
ENDMETHOD.
ENDCLASS.