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,93 @@
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.
PRIVATE SECTION.
CONSTANTS:
BEGIN OF c_pet_type,
dog TYPE ty_pet_type VALUE 'DOG',
cat TYPE ty_pet_type VALUE 'CAT',
rabb TYPE ty_pet_type VALUE 'RABB',
END OF c_pet_type,
BEGIN OF c_rate,
dog TYPE i VALUE 2500,
cat TYPE i VALUE 1800,
rabb TYPE i VALUE 800,
other TYPE i VALUE 2000,
END OF c_rate,
c_surcharge_num TYPE i VALUE 1125,
c_surcharge_den TYPE i VALUE 1000,
c_discount_percent TYPE i VALUE 10,
c_percent_base TYPE i VALUE 100,
c_long_stay_nights TYPE i VALUE 7,
c_cat_high_cut TYPE i VALUE 500,
c_grooming_fee TYPE i VALUE 1500,
c_cents_per_euro TYPE i VALUE 100.
METHODS nightly_rate
IMPORTING iv_pet_type TYPE ty_pet_type
iv_high_season TYPE abap_bool
RETURNING VALUE(rv_rate) TYPE i.
METHODS long_stay_discount
IMPORTING iv_rate TYPE i
iv_nights TYPE i
RETURNING VALUE(rv_discount) TYPE i.
ENDCLASS.
CLASS {{p}}kennel_pricer IMPLEMENTATION.
METHOD calculate_fee.
IF iv_nights < 1.
rv_fee = 0.
RETURN.
ENDIF.
DATA(lv_rate) = nightly_rate( iv_pet_type = iv_pet_type
iv_high_season = iv_high_season ).
DATA(lv_cents) = CONV ty_amount( lv_rate * iv_nights ).
IF iv_nights < c_long_stay_nights.
lv_cents = lv_cents - long_stay_discount( iv_rate = lv_rate
iv_nights = iv_nights ).
ENDIF.
IF iv_pet_type = c_pet_type-cat AND iv_high_season = abap_true.
lv_cents = lv_cents - c_cat_high_cut.
ENDIF.
IF iv_grooming = abap_true.
lv_cents = lv_cents + c_grooming_fee.
ENDIF.
rv_fee = lv_cents / c_cents_per_euro.
ENDMETHOD.
METHOD nightly_rate.
CASE iv_pet_type.
WHEN c_pet_type-dog.
rv_rate = c_rate-dog.
WHEN c_pet_type-cat.
rv_rate = c_rate-cat.
WHEN c_pet_type-rabb.
rv_rate = c_rate-rabb.
WHEN OTHERS.
rv_rate = c_rate-other.
ENDCASE.
IF iv_high_season = abap_true.
rv_rate = rv_rate * c_surcharge_num DIV c_surcharge_den.
ENDIF.
ENDMETHOD.
METHOD long_stay_discount.
DATA(lv_per_night) = iv_rate * c_discount_percent DIV c_percent_base.
rv_discount = lv_per_night * iv_nights.
ENDMETHOD.
ENDCLASS.

View File

@@ -0,0 +1,93 @@
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.
PRIVATE SECTION.
CONSTANTS:
BEGIN OF c_pet_type,
dog TYPE ty_pet_type VALUE 'DOG',
cat TYPE ty_pet_type VALUE 'CAT',
rabb TYPE ty_pet_type VALUE 'RABB',
END OF c_pet_type,
BEGIN OF c_rate,
dog TYPE i VALUE 2500,
cat TYPE i VALUE 1800,
rabb TYPE i VALUE 800,
other TYPE i VALUE 2000,
END OF c_rate,
c_surcharge_num TYPE i VALUE 1125,
c_surcharge_den TYPE i VALUE 1000,
c_discount_percent TYPE i VALUE 10,
c_percent_base TYPE i VALUE 100,
c_long_stay_nights TYPE i VALUE 7,
c_cat_high_cut TYPE i VALUE 500,
c_grooming_fee TYPE i VALUE 1500,
c_cents_per_euro TYPE i VALUE 100.
METHODS nightly_rate
IMPORTING iv_pet_type TYPE ty_pet_type
iv_high_season TYPE abap_bool
RETURNING VALUE(rv_rate) TYPE i.
METHODS long_stay_discount
IMPORTING iv_rate TYPE i
iv_nights TYPE i
RETURNING VALUE(rv_discount) TYPE i.
ENDCLASS.
CLASS {{p}}kennel_pricer IMPLEMENTATION.
METHOD calculate_fee.
IF iv_nights < 1.
rv_fee = 0.
RETURN.
ENDIF.
DATA(lv_rate) = nightly_rate( iv_pet_type = iv_pet_type
iv_high_season = iv_high_season ).
DATA(lv_cents) = CONV ty_amount( lv_rate * iv_nights ).
IF iv_nights >= c_long_stay_nights.
lv_cents = lv_cents + long_stay_discount( iv_rate = lv_rate
iv_nights = iv_nights ).
ENDIF.
IF iv_pet_type = c_pet_type-cat AND iv_high_season = abap_true.
lv_cents = lv_cents - c_cat_high_cut.
ENDIF.
IF iv_grooming = abap_true.
lv_cents = lv_cents + c_grooming_fee.
ENDIF.
rv_fee = lv_cents / c_cents_per_euro.
ENDMETHOD.
METHOD nightly_rate.
CASE iv_pet_type.
WHEN c_pet_type-dog.
rv_rate = c_rate-dog.
WHEN c_pet_type-cat.
rv_rate = c_rate-cat.
WHEN c_pet_type-rabb.
rv_rate = c_rate-rabb.
WHEN OTHERS.
rv_rate = c_rate-other.
ENDCASE.
IF iv_high_season = abap_true.
rv_rate = rv_rate * c_surcharge_num DIV c_surcharge_den.
ENDIF.
ENDMETHOD.
METHOD long_stay_discount.
DATA(lv_per_night) = iv_rate * c_discount_percent DIV c_percent_base.
rv_discount = lv_per_night * iv_nights.
ENDMETHOD.
ENDCLASS.

View File

@@ -0,0 +1,93 @@
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.
PRIVATE SECTION.
CONSTANTS:
BEGIN OF c_pet_type,
dog TYPE ty_pet_type VALUE 'DOG',
cat TYPE ty_pet_type VALUE 'CAT',
rabb TYPE ty_pet_type VALUE 'RABB',
END OF c_pet_type,
BEGIN OF c_rate,
dog TYPE i VALUE 2500,
cat TYPE i VALUE 1800,
rabb TYPE i VALUE 800,
other TYPE i VALUE 2000,
END OF c_rate,
c_surcharge_num TYPE i VALUE 1125,
c_surcharge_den TYPE i VALUE 1000,
c_discount_percent TYPE i VALUE 10,
c_percent_base TYPE i VALUE 100,
c_long_stay_nights TYPE i VALUE 7,
c_cat_high_cut TYPE i VALUE 500,
c_grooming_fee TYPE i VALUE 1500,
c_cents_per_euro TYPE i VALUE 100.
METHODS nightly_rate
IMPORTING iv_pet_type TYPE ty_pet_type
iv_high_season TYPE abap_bool
RETURNING VALUE(rv_rate) TYPE i.
METHODS long_stay_discount
IMPORTING iv_rate TYPE i
iv_nights TYPE i
RETURNING VALUE(rv_discount) TYPE i.
ENDCLASS.
CLASS {{p}}kennel_pricer IMPLEMENTATION.
METHOD calculate_fee.
IF iv_nights < 1.
rv_fee = 0.
RETURN.
ENDIF.
DATA(lv_rate) = nightly_rate( iv_pet_type = iv_pet_type
iv_high_season = iv_high_season ).
DATA(lv_cents) = CONV ty_amount( lv_rate * iv_nights ).
IF iv_nights >= c_long_stay_nights.
lv_cents = lv_cents - long_stay_discount( iv_rate = lv_rate
iv_nights = iv_nights ).
ENDIF.
IF iv_pet_type = c_pet_type-cat OR iv_high_season = abap_true.
lv_cents = lv_cents - c_cat_high_cut.
ENDIF.
IF iv_grooming = abap_true.
lv_cents = lv_cents + c_grooming_fee.
ENDIF.
rv_fee = lv_cents / c_cents_per_euro.
ENDMETHOD.
METHOD nightly_rate.
CASE iv_pet_type.
WHEN c_pet_type-dog.
rv_rate = c_rate-dog.
WHEN c_pet_type-cat.
rv_rate = c_rate-cat.
WHEN c_pet_type-rabb.
rv_rate = c_rate-rabb.
WHEN OTHERS.
rv_rate = c_rate-other.
ENDCASE.
IF iv_high_season = abap_true.
rv_rate = rv_rate * c_surcharge_num DIV c_surcharge_den.
ENDIF.
ENDMETHOD.
METHOD long_stay_discount.
DATA(lv_per_night) = iv_rate * c_discount_percent DIV c_percent_base.
rv_discount = lv_per_night * iv_nights.
ENDMETHOD.
ENDCLASS.

View File

@@ -0,0 +1,93 @@
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.
PRIVATE SECTION.
CONSTANTS:
BEGIN OF c_pet_type,
dog TYPE ty_pet_type VALUE 'DOG',
cat TYPE ty_pet_type VALUE 'CAT',
rabb TYPE ty_pet_type VALUE 'RABB',
END OF c_pet_type,
BEGIN OF c_rate,
dog TYPE i VALUE 2500,
cat TYPE i VALUE 1800,
rabb TYPE i VALUE 800,
other TYPE i VALUE 2000,
END OF c_rate,
c_surcharge_num TYPE i VALUE 1125,
c_surcharge_den TYPE i VALUE 1000,
c_discount_percent TYPE i VALUE 10,
c_percent_base TYPE i VALUE 100,
c_long_stay_nights TYPE i VALUE 7,
c_cat_high_cut TYPE i VALUE 500,
c_grooming_fee TYPE i VALUE 1500,
c_cents_per_euro TYPE i VALUE 100.
METHODS nightly_rate
IMPORTING iv_pet_type TYPE ty_pet_type
iv_high_season TYPE abap_bool
RETURNING VALUE(rv_rate) TYPE i.
METHODS long_stay_discount
IMPORTING iv_rate TYPE i
iv_nights TYPE i
RETURNING VALUE(rv_discount) TYPE i.
ENDCLASS.
CLASS {{p}}kennel_pricer IMPLEMENTATION.
METHOD calculate_fee.
IF iv_nights < 1.
rv_fee = 0.
RETURN.
ENDIF.
DATA(lv_rate) = nightly_rate( iv_pet_type = iv_pet_type
iv_high_season = iv_high_season ).
DATA(lv_cents) = CONV ty_amount( lv_rate * iv_nights ).
IF iv_nights >= c_long_stay_nights.
lv_cents = lv_cents - long_stay_discount( iv_rate = lv_rate
iv_nights = iv_nights ).
ENDIF.
IF iv_pet_type = c_pet_type-cat AND iv_high_season = abap_true.
lv_cents = lv_cents - c_cat_high_cut.
ENDIF.
IF iv_grooming = abap_false.
lv_cents = lv_cents + c_grooming_fee.
ENDIF.
rv_fee = lv_cents / c_cents_per_euro.
ENDMETHOD.
METHOD nightly_rate.
CASE iv_pet_type.
WHEN c_pet_type-dog.
rv_rate = c_rate-dog.
WHEN c_pet_type-cat.
rv_rate = c_rate-cat.
WHEN c_pet_type-rabb.
rv_rate = c_rate-rabb.
WHEN OTHERS.
rv_rate = c_rate-other.
ENDCASE.
IF iv_high_season = abap_true.
rv_rate = rv_rate * c_surcharge_num DIV c_surcharge_den.
ENDIF.
ENDMETHOD.
METHOD long_stay_discount.
DATA(lv_per_night) = iv_rate * c_discount_percent DIV c_percent_base.
rv_discount = lv_per_night * iv_nights.
ENDMETHOD.
ENDCLASS.

View File

@@ -0,0 +1,93 @@
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.
PRIVATE SECTION.
CONSTANTS:
BEGIN OF c_pet_type,
dog TYPE ty_pet_type VALUE 'DOG',
cat TYPE ty_pet_type VALUE 'CAT',
rabb TYPE ty_pet_type VALUE 'RABB',
END OF c_pet_type,
BEGIN OF c_rate,
dog TYPE i VALUE 2500,
cat TYPE i VALUE 1800,
rabb TYPE i VALUE 800,
other TYPE i VALUE 2000,
END OF c_rate,
c_surcharge_num TYPE i VALUE 1125,
c_surcharge_den TYPE i VALUE 1000,
c_discount_percent TYPE i VALUE 10,
c_percent_base TYPE i VALUE 100,
c_long_stay_nights TYPE i VALUE 7,
c_cat_high_cut TYPE i VALUE 500,
c_grooming_fee TYPE i VALUE 1500,
c_cents_per_euro TYPE i VALUE 100.
METHODS nightly_rate
IMPORTING iv_pet_type TYPE ty_pet_type
iv_high_season TYPE abap_bool
RETURNING VALUE(rv_rate) TYPE i.
METHODS long_stay_discount
IMPORTING iv_rate TYPE i
iv_nights TYPE i
RETURNING VALUE(rv_discount) TYPE i.
ENDCLASS.
CLASS {{p}}kennel_pricer IMPLEMENTATION.
METHOD calculate_fee.
IF iv_nights < 1.
rv_fee = 0.
RETURN.
ENDIF.
DATA(lv_rate) = nightly_rate( iv_pet_type = iv_pet_type
iv_high_season = iv_high_season ).
DATA(lv_cents) = CONV ty_amount( lv_rate * iv_nights ).
IF iv_nights >= c_long_stay_nights.
lv_cents = lv_cents - long_stay_discount( iv_rate = lv_rate
iv_nights = iv_nights ).
ENDIF.
IF iv_pet_type = c_pet_type-cat AND iv_high_season = abap_true.
lv_cents = lv_cents - c_cat_high_cut.
ENDIF.
IF iv_grooming = abap_true.
lv_cents = lv_cents + c_grooming_fee.
ENDIF.
rv_fee = lv_cents / c_cents_per_euro.
ENDMETHOD.
METHOD nightly_rate.
CASE iv_pet_type.
WHEN c_pet_type-dog.
rv_rate = c_rate-dog.
WHEN c_pet_type-cat.
rv_rate = c_rate-cat.
WHEN c_pet_type-rabb.
rv_rate = c_rate-rabb.
WHEN OTHERS.
rv_rate = c_rate-other.
ENDCASE.
IF iv_high_season <> abap_true.
rv_rate = rv_rate * c_surcharge_num DIV c_surcharge_den.
ENDIF.
ENDMETHOD.
METHOD long_stay_discount.
DATA(lv_per_night) = iv_rate * c_discount_percent DIV c_percent_base.
rv_discount = lv_per_night * iv_nights.
ENDMETHOD.
ENDCLASS.