Files
abap-llm/tasks_gen/train/G1042/seed/snow_fee.clas.abap
2026-10-05 18:02:52 +02:00

64 lines
1.3 KiB
ABAP

CLASS {{p}}snow_fee DEFINITION PUBLIC FINAL CREATE PUBLIC.
PUBLIC SECTION.
TYPES ty_area TYPE i.
TYPES ty_priority TYPE c LENGTH 1.
TYPES ty_distance TYPE i.
TYPES ty_fee TYPE p LENGTH 9 DECIMALS 2.
METHODS calculate
IMPORTING iv_area TYPE ty_area
iv_priority TYPE ty_priority
iv_distance TYPE ty_distance
RETURNING VALUE(rv_fee) TYPE ty_fee.
ENDCLASS.
CLASS {{p}}snow_fee IMPLEMENTATION.
METHOD calculate.
DATA: lv_rate TYPE ty_fee,
lv_base TYPE ty_fee,
lv_sum TYPE ty_fee,
lv_km TYPE ty_distance.
rv_fee = 0.
IF iv_area > 0.
IF iv_area <= 500.
lv_rate = '0.20'.
ELSE.
IF iv_area <= 2000.
lv_rate = '0.16'.
ELSE.
lv_rate = '0.12'.
ENDIF.
ENDIF.
lv_base = iv_area * lv_rate.
IF lv_base < 45.
lv_base = 45.
ENDIF.
IF iv_priority = 'E'.
lv_base = lv_base * 125 / 100.
ELSE.
IF iv_priority = 'X'.
lv_base = lv_base * 150 / 100.
ENDIF.
ENDIF.
lv_sum = lv_base.
lv_km = iv_distance - 10.
IF lv_km > 0.
lv_rate = '0.40'.
lv_sum = lv_sum + lv_km * lv_rate.
ENDIF.
rv_fee = lv_sum.
ENDIF.
ENDMETHOD.
ENDCLASS.