- generator: budget floor (2x oracle activations, 3x calls), static checks for CDS $parameters and UNION annotation - harness/mutation.py: deterministic mutants of the reference; hidden tests must fail - G0022 revalidated with harness fixes: oracle 100, null 0 - results in docs/faz1-tasarim.md 11f Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
44 lines
1.2 KiB
ABAP
44 lines
1.2 KiB
ABAP
FUNCTION {{p}}rent_price
|
|
IMPORTING
|
|
iv_vehicle_class TYPE string
|
|
iv_minutes TYPE i
|
|
iv_km TYPE i
|
|
iv_member TYPE abap_bool
|
|
iv_weekend TYPE abap_bool
|
|
EXPORTING
|
|
ev_time_fee TYPE decfloat34
|
|
ev_distance_fee TYPE decfloat34
|
|
ev_surcharge TYPE decfloat34
|
|
ev_discount TYPE decfloat34
|
|
ev_total TYPE decfloat34
|
|
EXCEPTIONS
|
|
invalid_duration
|
|
invalid_distance
|
|
invalid_class.
|
|
|
|
DATA ls_request TYPE {{p}}cl_rent=>ty_request.
|
|
ls_request-vehicle_class = iv_vehicle_class.
|
|
ls_request-minutes = iv_minutes.
|
|
ls_request-km = iv_km.
|
|
ls_request-member = iv_member.
|
|
ls_request-weekend = iv_weekend.
|
|
|
|
DATA(ls_result) = {{p}}cl_rent=>calculate( ls_request ).
|
|
|
|
CASE ls_result-err_code.
|
|
WHEN {{p}}cl_rent=>c_err-duration.
|
|
RAISE invalid_duration.
|
|
WHEN {{p}}cl_rent=>c_err-distance.
|
|
RAISE invalid_distance.
|
|
WHEN {{p}}cl_rent=>c_err-bad_class.
|
|
RAISE invalid_class.
|
|
WHEN OTHERS.
|
|
ev_time_fee = ls_result-time_fee.
|
|
ev_distance_fee = ls_result-distance_fee.
|
|
ev_surcharge = ls_result-surcharge.
|
|
ev_discount = ls_result-discount.
|
|
ev_total = ls_result-total.
|
|
ENDCASE.
|
|
|
|
ENDFUNCTION.
|