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:
12
tasks_gen/eval/G0191/seed/if_locksmith_pricer.intf.abap
Normal file
12
tasks_gen/eval/G0191/seed/if_locksmith_pricer.intf.abap
Normal file
@@ -0,0 +1,12 @@
|
||||
INTERFACE {{p}}if_locksmith_pricer PUBLIC.
|
||||
TYPES ty_job_type TYPE c LENGTH 1.
|
||||
TYPES ty_key_type TYPE c LENGTH 1.
|
||||
TYPES ty_callout TYPE c LENGTH 1.
|
||||
TYPES ty_amount TYPE p LENGTH 9 DECIMALS 2.
|
||||
METHODS calculate_price
|
||||
IMPORTING iv_job_type TYPE ty_job_type
|
||||
iv_quantity TYPE i
|
||||
iv_key_type TYPE ty_key_type
|
||||
iv_callout TYPE ty_callout
|
||||
RETURNING VALUE(rv_price) TYPE ty_amount.
|
||||
ENDINTERFACE.
|
||||
77
tasks_gen/eval/G0191/seed/locksmith_pricer.clas.abap
Normal file
77
tasks_gen/eval/G0191/seed/locksmith_pricer.clas.abap
Normal file
@@ -0,0 +1,77 @@
|
||||
CLASS {{p}}locksmith_pricer DEFINITION PUBLIC FINAL CREATE PUBLIC.
|
||||
PUBLIC SECTION.
|
||||
INTERFACES {{p}}if_locksmith_pricer.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS {{p}}locksmith_pricer IMPLEMENTATION.
|
||||
METHOD {{p}}if_locksmith_pricer~calculate_price.
|
||||
DATA lv_qty TYPE p LENGTH 9 DECIMALS 2.
|
||||
DATA lv_rate TYPE p LENGTH 9 DECIMALS 2.
|
||||
DATA lv_base TYPE p LENGTH 9 DECIMALS 2.
|
||||
DATA lv_disc TYPE p LENGTH 9 DECIMALS 2.
|
||||
DATA lv_hundred TYPE p LENGTH 9 DECIMALS 2.
|
||||
|
||||
lv_qty = iv_quantity.
|
||||
lv_hundred = '100.00'.
|
||||
|
||||
IF iv_job_type = 'K'.
|
||||
IF lv_qty < 1.
|
||||
rv_price = '0.00'.
|
||||
ELSE.
|
||||
IF iv_key_type = 'S'.
|
||||
lv_rate = '4.50'.
|
||||
ELSEIF iv_key_type = 'Y'.
|
||||
lv_rate = '9.80'.
|
||||
ELSEIF iv_key_type = 'E'.
|
||||
lv_rate = '24.00'.
|
||||
ELSE.
|
||||
lv_rate = '0.00'.
|
||||
ENDIF.
|
||||
IF lv_rate = 0.
|
||||
rv_price = '0.00'.
|
||||
ELSE.
|
||||
lv_base = lv_rate * lv_qty.
|
||||
IF lv_qty >= 20.
|
||||
lv_disc = '20.00'.
|
||||
ELSEIF lv_qty >= 5.
|
||||
lv_disc = '10.00'.
|
||||
ELSE.
|
||||
lv_disc = '0.00'.
|
||||
ENDIF.
|
||||
rv_price = lv_base - lv_base * lv_disc / lv_hundred.
|
||||
ENDIF.
|
||||
ENDIF.
|
||||
ELSEIF iv_job_type = 'L'.
|
||||
IF iv_callout = 'W'.
|
||||
rv_price = '179.00'.
|
||||
ELSEIF iv_callout = 'A'.
|
||||
rv_price = '149.00'.
|
||||
ELSE.
|
||||
rv_price = '89.00'.
|
||||
ENDIF.
|
||||
ELSEIF iv_job_type = 'R'.
|
||||
IF lv_qty < 1.
|
||||
rv_price = '0.00'.
|
||||
ELSE.
|
||||
IF iv_key_type = 'S'.
|
||||
lv_rate = '6.00'.
|
||||
ELSEIF iv_key_type = 'Y'.
|
||||
lv_rate = '11.00'.
|
||||
ELSEIF iv_key_type = 'E'.
|
||||
lv_rate = '26.00'.
|
||||
ELSE.
|
||||
lv_rate = '0.00'.
|
||||
ENDIF.
|
||||
IF lv_rate = 0.
|
||||
rv_price = '0.00'.
|
||||
ELSE.
|
||||
lv_base = '35.00'.
|
||||
rv_price = lv_qty * ( lv_base + lv_rate ).
|
||||
ENDIF.
|
||||
ENDIF.
|
||||
ELSE.
|
||||
rv_price = '0.00'.
|
||||
ENDIF.
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
Reference in New Issue
Block a user