Stage 2 summary at 50 accepted trajectories
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
91
tasks_gen/train/G1062/seed/parking_pricer.clas.abap
Normal file
91
tasks_gen/train/G1062/seed/parking_pricer.clas.abap
Normal file
@@ -0,0 +1,91 @@
|
||||
CLASS {{p}}parking_pricer DEFINITION
|
||||
PUBLIC
|
||||
FINAL
|
||||
CREATE PUBLIC.
|
||||
|
||||
PUBLIC SECTION.
|
||||
TYPES ty_vehicle TYPE c LENGTH 1.
|
||||
TYPES ty_fee TYPE p LENGTH 8 DECIMALS 2.
|
||||
|
||||
CONSTANTS:
|
||||
c_vehicle_car TYPE ty_vehicle VALUE 'C',
|
||||
c_vehicle_motorcycle TYPE ty_vehicle VALUE 'M',
|
||||
c_vehicle_van TYPE ty_vehicle VALUE 'V'.
|
||||
|
||||
METHODS calculate_fee
|
||||
IMPORTING iv_minutes TYPE i
|
||||
iv_vehicle TYPE ty_vehicle
|
||||
iv_lost_ticket TYPE abap_bool
|
||||
RETURNING VALUE(rv_fee) TYPE ty_fee.
|
||||
|
||||
PRIVATE SECTION.
|
||||
METHODS lost_ticket_fee
|
||||
IMPORTING iv_vehicle TYPE ty_vehicle
|
||||
EXPORTING ev_fee TYPE ty_fee.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS {{p}}parking_pricer IMPLEMENTATION.
|
||||
METHOD calculate_fee.
|
||||
DATA lv_minutes TYPE i.
|
||||
DATA lv_hours TYPE i.
|
||||
DATA lv_rate TYPE ty_fee.
|
||||
DATA lv_cap TYPE ty_fee.
|
||||
|
||||
IF iv_lost_ticket = abap_true.
|
||||
" a lost ticket is charged with a flat fee
|
||||
lost_ticket_fee( EXPORTING iv_vehicle = iv_vehicle
|
||||
IMPORTING ev_fee = rv_fee ).
|
||||
ELSE.
|
||||
IF iv_minutes < 0.
|
||||
lv_minutes = 0.
|
||||
ELSE.
|
||||
lv_minutes = iv_minutes.
|
||||
ENDIF.
|
||||
|
||||
IF lv_minutes <= 15.
|
||||
" the first 15 minutes are free
|
||||
rv_fee = 0.
|
||||
ELSE.
|
||||
lv_hours = lv_minutes DIV 60.
|
||||
IF lv_minutes MOD 60 <> 0.
|
||||
lv_hours = lv_hours + 1.
|
||||
ENDIF.
|
||||
IF lv_hours < 1.
|
||||
lv_hours = 1.
|
||||
ENDIF.
|
||||
|
||||
IF iv_vehicle = 'C'.
|
||||
lv_rate = '2.00'.
|
||||
lv_cap = '20.00'.
|
||||
ELSEIF iv_vehicle = 'M'.
|
||||
lv_rate = '1.00'.
|
||||
lv_cap = '10.00'.
|
||||
ELSEIF iv_vehicle = 'V'.
|
||||
lv_rate = '3.00'.
|
||||
lv_cap = '24.00'.
|
||||
ELSE.
|
||||
lv_rate = '0.00'.
|
||||
lv_cap = '0.00'.
|
||||
ENDIF.
|
||||
|
||||
rv_fee = lv_hours * lv_rate.
|
||||
IF rv_fee > lv_cap.
|
||||
rv_fee = lv_cap.
|
||||
ENDIF.
|
||||
ENDIF.
|
||||
ENDIF.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD lost_ticket_fee.
|
||||
IF iv_vehicle = 'C'.
|
||||
ev_fee = '25.00'.
|
||||
ELSEIF iv_vehicle = 'M'.
|
||||
ev_fee = '15.00'.
|
||||
ELSEIF iv_vehicle = 'V'.
|
||||
ev_fee = '35.00'.
|
||||
ELSE.
|
||||
ev_fee = '25.00'.
|
||||
ENDIF.
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
Reference in New Issue
Block a user