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,76 @@
CLASS {{p}}cowork_fee DEFINITION PUBLIC FINAL CREATE PUBLIC.
PUBLIC SECTION.
TYPES ty_desk TYPE c LENGTH 3.
TYPES ty_amount TYPE i.
METHODS constructor.
METHODS calculate_fee
IMPORTING
iv_desk TYPE ty_desk
iv_months TYPE i
iv_student TYPE abap_bool
iv_under_25 TYPE abap_bool
RETURNING
VALUE(rv_fee) TYPE ty_amount.
PRIVATE SECTION.
METHODS monthly_fee
IMPORTING
iv_desk TYPE ty_desk
iv_student TYPE abap_bool
iv_under_25 TYPE abap_bool
RETURNING
VALUE(rv_fee) TYPE ty_amount.
ENDCLASS.
CLASS {{p}}cowork_fee IMPLEMENTATION.
METHOD constructor.
ENDMETHOD.
METHOD calculate_fee.
IF iv_months < 1.
rv_fee = 0.
RETURN.
ENDIF.
DATA(lv_monthly) = monthly_fee( iv_desk = iv_desk
iv_student = iv_student
iv_under_25 = iv_under_25 ).
rv_fee = lv_monthly * iv_months.
ENDMETHOD.
METHOD monthly_fee.
" Resolve the contradiction: the student rule wins over the under-25 rule.
IF iv_student = abap_true.
CASE iv_desk.
WHEN 'HOT'.
rv_fee = 160.
WHEN 'DED'.
rv_fee = 280.
WHEN 'PRI'.
rv_fee = 480.
WHEN OTHERS.
rv_fee = 0.
ENDCASE.
ELSEIF iv_under_25 = abap_true.
CASE iv_desk.
WHEN 'HOT'.
rv_fee = 150.
WHEN 'DED'.
rv_fee = 260.
WHEN 'PRI'.
rv_fee = 450.
WHEN OTHERS.
rv_fee = 0.
ENDCASE.
ELSE.
CASE iv_desk.
WHEN 'HOT'.
rv_fee = 200.
WHEN 'DED'.
rv_fee = 350.
WHEN 'PRI'.
rv_fee = 600.
WHEN OTHERS.
rv_fee = 0.
ENDCASE.
ENDIF.
ENDMETHOD.
ENDCLASS.