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:
146
tasks_gen/eval/G0191/faulty/m0_locksmith_pricer.clas.abap
Normal file
146
tasks_gen/eval/G0191/faulty/m0_locksmith_pricer.clas.abap
Normal file
@@ -0,0 +1,146 @@
|
||||
CLASS {{p}}locksmith_pricer DEFINITION PUBLIC FINAL CREATE PUBLIC.
|
||||
PUBLIC SECTION.
|
||||
INTERFACES {{p}}if_locksmith_pricer.
|
||||
|
||||
PRIVATE SECTION.
|
||||
CONSTANTS:
|
||||
c_job_key TYPE {{p}}if_locksmith_pricer=>ty_job_type VALUE 'K',
|
||||
c_job_lockout TYPE {{p}}if_locksmith_pricer=>ty_job_type VALUE 'L',
|
||||
c_job_rekey TYPE {{p}}if_locksmith_pricer=>ty_job_type VALUE 'R',
|
||||
c_key_std TYPE {{p}}if_locksmith_pricer=>ty_key_type VALUE 'S',
|
||||
c_key_sec TYPE {{p}}if_locksmith_pricer=>ty_key_type VALUE 'Y',
|
||||
c_key_elec TYPE {{p}}if_locksmith_pricer=>ty_key_type VALUE 'E',
|
||||
c_call_late TYPE {{p}}if_locksmith_pricer=>ty_callout VALUE 'A',
|
||||
c_call_week TYPE {{p}}if_locksmith_pricer=>ty_callout VALUE 'W',
|
||||
c_fee_std TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '89.00',
|
||||
c_fee_late TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '149.00',
|
||||
c_fee_week TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '179.00',
|
||||
c_rekey_base TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '35.00',
|
||||
c_rate_dup_s TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '4.50',
|
||||
c_rate_dup_y TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '9.80',
|
||||
c_rate_dup_e TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '24.00',
|
||||
c_rate_rek_s TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '6.00',
|
||||
c_rate_rek_y TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '11.00',
|
||||
c_rate_rek_e TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '26.00',
|
||||
c_qty_mid TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '5.00',
|
||||
c_qty_high TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '20.00',
|
||||
c_disc_mid TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '10.00',
|
||||
c_disc_high TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '20.00',
|
||||
c_percent TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '100.00',
|
||||
c_nothing TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '0.00'.
|
||||
|
||||
METHODS duplicate_price
|
||||
IMPORTING iv_quantity TYPE i
|
||||
iv_key_type TYPE {{p}}if_locksmith_pricer=>ty_key_type
|
||||
RETURNING VALUE(rv_price) TYPE {{p}}if_locksmith_pricer=>ty_amount.
|
||||
METHODS rekey_price
|
||||
IMPORTING iv_quantity TYPE i
|
||||
iv_key_type TYPE {{p}}if_locksmith_pricer=>ty_key_type
|
||||
RETURNING VALUE(rv_price) TYPE {{p}}if_locksmith_pricer=>ty_amount.
|
||||
METHODS lockout_price
|
||||
IMPORTING iv_callout TYPE {{p}}if_locksmith_pricer=>ty_callout
|
||||
RETURNING VALUE(rv_price) TYPE {{p}}if_locksmith_pricer=>ty_amount.
|
||||
METHODS dup_key_rate
|
||||
IMPORTING iv_key_type TYPE {{p}}if_locksmith_pricer=>ty_key_type
|
||||
RETURNING VALUE(rv_rate) TYPE {{p}}if_locksmith_pricer=>ty_amount.
|
||||
METHODS rekey_key_rate
|
||||
IMPORTING iv_key_type TYPE {{p}}if_locksmith_pricer=>ty_key_type
|
||||
RETURNING VALUE(rv_rate) TYPE {{p}}if_locksmith_pricer=>ty_amount.
|
||||
METHODS discount_percent
|
||||
IMPORTING iv_quantity TYPE i
|
||||
RETURNING VALUE(rv_percent) TYPE {{p}}if_locksmith_pricer=>ty_amount.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS {{p}}locksmith_pricer IMPLEMENTATION.
|
||||
METHOD {{p}}if_locksmith_pricer~calculate_price.
|
||||
CASE iv_job_type.
|
||||
WHEN c_job_key.
|
||||
rv_price = duplicate_price( iv_quantity = iv_quantity
|
||||
iv_key_type = iv_key_type ).
|
||||
WHEN c_job_lockout.
|
||||
rv_price = lockout_price( iv_callout = iv_callout ).
|
||||
WHEN c_job_rekey.
|
||||
rv_price = rekey_price( iv_quantity = iv_quantity
|
||||
iv_key_type = iv_key_type ).
|
||||
WHEN OTHERS.
|
||||
rv_price = c_nothing.
|
||||
ENDCASE.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD duplicate_price.
|
||||
DATA lv_qty TYPE {{p}}if_locksmith_pricer=>ty_amount.
|
||||
lv_qty = iv_quantity.
|
||||
IF lv_qty >= 1.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
DATA(lv_rate) = dup_key_rate( iv_key_type ).
|
||||
IF lv_rate = 0.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
DATA lv_gross TYPE {{p}}if_locksmith_pricer=>ty_amount.
|
||||
lv_gross = lv_rate * lv_qty.
|
||||
DATA(lv_discount) = discount_percent( iv_quantity ).
|
||||
rv_price = lv_gross - lv_gross * lv_discount / c_percent.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD rekey_price.
|
||||
DATA lv_qty TYPE {{p}}if_locksmith_pricer=>ty_amount.
|
||||
lv_qty = iv_quantity.
|
||||
IF lv_qty < 1.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
DATA(lv_rate) = rekey_key_rate( iv_key_type ).
|
||||
IF lv_rate = 0.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
rv_price = lv_qty * ( c_rekey_base + lv_rate ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD lockout_price.
|
||||
CASE iv_callout.
|
||||
WHEN c_call_week.
|
||||
rv_price = c_fee_week.
|
||||
WHEN c_call_late.
|
||||
rv_price = c_fee_late.
|
||||
WHEN OTHERS.
|
||||
rv_price = c_fee_std.
|
||||
ENDCASE.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD dup_key_rate.
|
||||
CASE iv_key_type.
|
||||
WHEN c_key_std.
|
||||
rv_rate = c_rate_dup_s.
|
||||
WHEN c_key_sec.
|
||||
rv_rate = c_rate_dup_y.
|
||||
WHEN c_key_elec.
|
||||
rv_rate = c_rate_dup_e.
|
||||
WHEN OTHERS.
|
||||
rv_rate = c_nothing.
|
||||
ENDCASE.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD rekey_key_rate.
|
||||
CASE iv_key_type.
|
||||
WHEN c_key_std.
|
||||
rv_rate = c_rate_rek_s.
|
||||
WHEN c_key_sec.
|
||||
rv_rate = c_rate_rek_y.
|
||||
WHEN c_key_elec.
|
||||
rv_rate = c_rate_rek_e.
|
||||
WHEN OTHERS.
|
||||
rv_rate = c_nothing.
|
||||
ENDCASE.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD discount_percent.
|
||||
IF iv_quantity >= c_qty_high.
|
||||
rv_percent = c_disc_high.
|
||||
ELSEIF iv_quantity >= c_qty_mid.
|
||||
rv_percent = c_disc_mid.
|
||||
ELSE.
|
||||
rv_percent = c_nothing.
|
||||
ENDIF.
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
146
tasks_gen/eval/G0191/faulty/m1_locksmith_pricer.clas.abap
Normal file
146
tasks_gen/eval/G0191/faulty/m1_locksmith_pricer.clas.abap
Normal file
@@ -0,0 +1,146 @@
|
||||
CLASS {{p}}locksmith_pricer DEFINITION PUBLIC FINAL CREATE PUBLIC.
|
||||
PUBLIC SECTION.
|
||||
INTERFACES {{p}}if_locksmith_pricer.
|
||||
|
||||
PRIVATE SECTION.
|
||||
CONSTANTS:
|
||||
c_job_key TYPE {{p}}if_locksmith_pricer=>ty_job_type VALUE 'K',
|
||||
c_job_lockout TYPE {{p}}if_locksmith_pricer=>ty_job_type VALUE 'L',
|
||||
c_job_rekey TYPE {{p}}if_locksmith_pricer=>ty_job_type VALUE 'R',
|
||||
c_key_std TYPE {{p}}if_locksmith_pricer=>ty_key_type VALUE 'S',
|
||||
c_key_sec TYPE {{p}}if_locksmith_pricer=>ty_key_type VALUE 'Y',
|
||||
c_key_elec TYPE {{p}}if_locksmith_pricer=>ty_key_type VALUE 'E',
|
||||
c_call_late TYPE {{p}}if_locksmith_pricer=>ty_callout VALUE 'A',
|
||||
c_call_week TYPE {{p}}if_locksmith_pricer=>ty_callout VALUE 'W',
|
||||
c_fee_std TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '89.00',
|
||||
c_fee_late TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '149.00',
|
||||
c_fee_week TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '179.00',
|
||||
c_rekey_base TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '35.00',
|
||||
c_rate_dup_s TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '4.50',
|
||||
c_rate_dup_y TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '9.80',
|
||||
c_rate_dup_e TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '24.00',
|
||||
c_rate_rek_s TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '6.00',
|
||||
c_rate_rek_y TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '11.00',
|
||||
c_rate_rek_e TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '26.00',
|
||||
c_qty_mid TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '5.00',
|
||||
c_qty_high TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '20.00',
|
||||
c_disc_mid TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '10.00',
|
||||
c_disc_high TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '20.00',
|
||||
c_percent TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '100.00',
|
||||
c_nothing TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '0.00'.
|
||||
|
||||
METHODS duplicate_price
|
||||
IMPORTING iv_quantity TYPE i
|
||||
iv_key_type TYPE {{p}}if_locksmith_pricer=>ty_key_type
|
||||
RETURNING VALUE(rv_price) TYPE {{p}}if_locksmith_pricer=>ty_amount.
|
||||
METHODS rekey_price
|
||||
IMPORTING iv_quantity TYPE i
|
||||
iv_key_type TYPE {{p}}if_locksmith_pricer=>ty_key_type
|
||||
RETURNING VALUE(rv_price) TYPE {{p}}if_locksmith_pricer=>ty_amount.
|
||||
METHODS lockout_price
|
||||
IMPORTING iv_callout TYPE {{p}}if_locksmith_pricer=>ty_callout
|
||||
RETURNING VALUE(rv_price) TYPE {{p}}if_locksmith_pricer=>ty_amount.
|
||||
METHODS dup_key_rate
|
||||
IMPORTING iv_key_type TYPE {{p}}if_locksmith_pricer=>ty_key_type
|
||||
RETURNING VALUE(rv_rate) TYPE {{p}}if_locksmith_pricer=>ty_amount.
|
||||
METHODS rekey_key_rate
|
||||
IMPORTING iv_key_type TYPE {{p}}if_locksmith_pricer=>ty_key_type
|
||||
RETURNING VALUE(rv_rate) TYPE {{p}}if_locksmith_pricer=>ty_amount.
|
||||
METHODS discount_percent
|
||||
IMPORTING iv_quantity TYPE i
|
||||
RETURNING VALUE(rv_percent) TYPE {{p}}if_locksmith_pricer=>ty_amount.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS {{p}}locksmith_pricer IMPLEMENTATION.
|
||||
METHOD {{p}}if_locksmith_pricer~calculate_price.
|
||||
CASE iv_job_type.
|
||||
WHEN c_job_key.
|
||||
rv_price = duplicate_price( iv_quantity = iv_quantity
|
||||
iv_key_type = iv_key_type ).
|
||||
WHEN c_job_lockout.
|
||||
rv_price = lockout_price( iv_callout = iv_callout ).
|
||||
WHEN c_job_rekey.
|
||||
rv_price = rekey_price( iv_quantity = iv_quantity
|
||||
iv_key_type = iv_key_type ).
|
||||
WHEN OTHERS.
|
||||
rv_price = c_nothing.
|
||||
ENDCASE.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD duplicate_price.
|
||||
DATA lv_qty TYPE {{p}}if_locksmith_pricer=>ty_amount.
|
||||
lv_qty = iv_quantity.
|
||||
IF lv_qty < 1.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
DATA(lv_rate) = dup_key_rate( iv_key_type ).
|
||||
IF lv_rate <> 0.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
DATA lv_gross TYPE {{p}}if_locksmith_pricer=>ty_amount.
|
||||
lv_gross = lv_rate * lv_qty.
|
||||
DATA(lv_discount) = discount_percent( iv_quantity ).
|
||||
rv_price = lv_gross - lv_gross * lv_discount / c_percent.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD rekey_price.
|
||||
DATA lv_qty TYPE {{p}}if_locksmith_pricer=>ty_amount.
|
||||
lv_qty = iv_quantity.
|
||||
IF lv_qty < 1.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
DATA(lv_rate) = rekey_key_rate( iv_key_type ).
|
||||
IF lv_rate = 0.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
rv_price = lv_qty * ( c_rekey_base + lv_rate ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD lockout_price.
|
||||
CASE iv_callout.
|
||||
WHEN c_call_week.
|
||||
rv_price = c_fee_week.
|
||||
WHEN c_call_late.
|
||||
rv_price = c_fee_late.
|
||||
WHEN OTHERS.
|
||||
rv_price = c_fee_std.
|
||||
ENDCASE.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD dup_key_rate.
|
||||
CASE iv_key_type.
|
||||
WHEN c_key_std.
|
||||
rv_rate = c_rate_dup_s.
|
||||
WHEN c_key_sec.
|
||||
rv_rate = c_rate_dup_y.
|
||||
WHEN c_key_elec.
|
||||
rv_rate = c_rate_dup_e.
|
||||
WHEN OTHERS.
|
||||
rv_rate = c_nothing.
|
||||
ENDCASE.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD rekey_key_rate.
|
||||
CASE iv_key_type.
|
||||
WHEN c_key_std.
|
||||
rv_rate = c_rate_rek_s.
|
||||
WHEN c_key_sec.
|
||||
rv_rate = c_rate_rek_y.
|
||||
WHEN c_key_elec.
|
||||
rv_rate = c_rate_rek_e.
|
||||
WHEN OTHERS.
|
||||
rv_rate = c_nothing.
|
||||
ENDCASE.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD discount_percent.
|
||||
IF iv_quantity >= c_qty_high.
|
||||
rv_percent = c_disc_high.
|
||||
ELSEIF iv_quantity >= c_qty_mid.
|
||||
rv_percent = c_disc_mid.
|
||||
ELSE.
|
||||
rv_percent = c_nothing.
|
||||
ENDIF.
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
146
tasks_gen/eval/G0191/faulty/m2_locksmith_pricer.clas.abap
Normal file
146
tasks_gen/eval/G0191/faulty/m2_locksmith_pricer.clas.abap
Normal file
@@ -0,0 +1,146 @@
|
||||
CLASS {{p}}locksmith_pricer DEFINITION PUBLIC FINAL CREATE PUBLIC.
|
||||
PUBLIC SECTION.
|
||||
INTERFACES {{p}}if_locksmith_pricer.
|
||||
|
||||
PRIVATE SECTION.
|
||||
CONSTANTS:
|
||||
c_job_key TYPE {{p}}if_locksmith_pricer=>ty_job_type VALUE 'K',
|
||||
c_job_lockout TYPE {{p}}if_locksmith_pricer=>ty_job_type VALUE 'L',
|
||||
c_job_rekey TYPE {{p}}if_locksmith_pricer=>ty_job_type VALUE 'R',
|
||||
c_key_std TYPE {{p}}if_locksmith_pricer=>ty_key_type VALUE 'S',
|
||||
c_key_sec TYPE {{p}}if_locksmith_pricer=>ty_key_type VALUE 'Y',
|
||||
c_key_elec TYPE {{p}}if_locksmith_pricer=>ty_key_type VALUE 'E',
|
||||
c_call_late TYPE {{p}}if_locksmith_pricer=>ty_callout VALUE 'A',
|
||||
c_call_week TYPE {{p}}if_locksmith_pricer=>ty_callout VALUE 'W',
|
||||
c_fee_std TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '89.00',
|
||||
c_fee_late TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '149.00',
|
||||
c_fee_week TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '179.00',
|
||||
c_rekey_base TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '35.00',
|
||||
c_rate_dup_s TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '4.50',
|
||||
c_rate_dup_y TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '9.80',
|
||||
c_rate_dup_e TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '24.00',
|
||||
c_rate_rek_s TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '6.00',
|
||||
c_rate_rek_y TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '11.00',
|
||||
c_rate_rek_e TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '26.00',
|
||||
c_qty_mid TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '5.00',
|
||||
c_qty_high TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '20.00',
|
||||
c_disc_mid TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '10.00',
|
||||
c_disc_high TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '20.00',
|
||||
c_percent TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '100.00',
|
||||
c_nothing TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '0.00'.
|
||||
|
||||
METHODS duplicate_price
|
||||
IMPORTING iv_quantity TYPE i
|
||||
iv_key_type TYPE {{p}}if_locksmith_pricer=>ty_key_type
|
||||
RETURNING VALUE(rv_price) TYPE {{p}}if_locksmith_pricer=>ty_amount.
|
||||
METHODS rekey_price
|
||||
IMPORTING iv_quantity TYPE i
|
||||
iv_key_type TYPE {{p}}if_locksmith_pricer=>ty_key_type
|
||||
RETURNING VALUE(rv_price) TYPE {{p}}if_locksmith_pricer=>ty_amount.
|
||||
METHODS lockout_price
|
||||
IMPORTING iv_callout TYPE {{p}}if_locksmith_pricer=>ty_callout
|
||||
RETURNING VALUE(rv_price) TYPE {{p}}if_locksmith_pricer=>ty_amount.
|
||||
METHODS dup_key_rate
|
||||
IMPORTING iv_key_type TYPE {{p}}if_locksmith_pricer=>ty_key_type
|
||||
RETURNING VALUE(rv_rate) TYPE {{p}}if_locksmith_pricer=>ty_amount.
|
||||
METHODS rekey_key_rate
|
||||
IMPORTING iv_key_type TYPE {{p}}if_locksmith_pricer=>ty_key_type
|
||||
RETURNING VALUE(rv_rate) TYPE {{p}}if_locksmith_pricer=>ty_amount.
|
||||
METHODS discount_percent
|
||||
IMPORTING iv_quantity TYPE i
|
||||
RETURNING VALUE(rv_percent) TYPE {{p}}if_locksmith_pricer=>ty_amount.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS {{p}}locksmith_pricer IMPLEMENTATION.
|
||||
METHOD {{p}}if_locksmith_pricer~calculate_price.
|
||||
CASE iv_job_type.
|
||||
WHEN c_job_key.
|
||||
rv_price = duplicate_price( iv_quantity = iv_quantity
|
||||
iv_key_type = iv_key_type ).
|
||||
WHEN c_job_lockout.
|
||||
rv_price = lockout_price( iv_callout = iv_callout ).
|
||||
WHEN c_job_rekey.
|
||||
rv_price = rekey_price( iv_quantity = iv_quantity
|
||||
iv_key_type = iv_key_type ).
|
||||
WHEN OTHERS.
|
||||
rv_price = c_nothing.
|
||||
ENDCASE.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD duplicate_price.
|
||||
DATA lv_qty TYPE {{p}}if_locksmith_pricer=>ty_amount.
|
||||
lv_qty = iv_quantity.
|
||||
IF lv_qty < 1.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
DATA(lv_rate) = dup_key_rate( iv_key_type ).
|
||||
IF lv_rate = 0.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
DATA lv_gross TYPE {{p}}if_locksmith_pricer=>ty_amount.
|
||||
lv_gross = lv_rate / lv_qty.
|
||||
DATA(lv_discount) = discount_percent( iv_quantity ).
|
||||
rv_price = lv_gross - lv_gross * lv_discount / c_percent.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD rekey_price.
|
||||
DATA lv_qty TYPE {{p}}if_locksmith_pricer=>ty_amount.
|
||||
lv_qty = iv_quantity.
|
||||
IF lv_qty < 1.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
DATA(lv_rate) = rekey_key_rate( iv_key_type ).
|
||||
IF lv_rate = 0.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
rv_price = lv_qty * ( c_rekey_base + lv_rate ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD lockout_price.
|
||||
CASE iv_callout.
|
||||
WHEN c_call_week.
|
||||
rv_price = c_fee_week.
|
||||
WHEN c_call_late.
|
||||
rv_price = c_fee_late.
|
||||
WHEN OTHERS.
|
||||
rv_price = c_fee_std.
|
||||
ENDCASE.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD dup_key_rate.
|
||||
CASE iv_key_type.
|
||||
WHEN c_key_std.
|
||||
rv_rate = c_rate_dup_s.
|
||||
WHEN c_key_sec.
|
||||
rv_rate = c_rate_dup_y.
|
||||
WHEN c_key_elec.
|
||||
rv_rate = c_rate_dup_e.
|
||||
WHEN OTHERS.
|
||||
rv_rate = c_nothing.
|
||||
ENDCASE.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD rekey_key_rate.
|
||||
CASE iv_key_type.
|
||||
WHEN c_key_std.
|
||||
rv_rate = c_rate_rek_s.
|
||||
WHEN c_key_sec.
|
||||
rv_rate = c_rate_rek_y.
|
||||
WHEN c_key_elec.
|
||||
rv_rate = c_rate_rek_e.
|
||||
WHEN OTHERS.
|
||||
rv_rate = c_nothing.
|
||||
ENDCASE.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD discount_percent.
|
||||
IF iv_quantity >= c_qty_high.
|
||||
rv_percent = c_disc_high.
|
||||
ELSEIF iv_quantity >= c_qty_mid.
|
||||
rv_percent = c_disc_mid.
|
||||
ELSE.
|
||||
rv_percent = c_nothing.
|
||||
ENDIF.
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
146
tasks_gen/eval/G0191/faulty/m3_locksmith_pricer.clas.abap
Normal file
146
tasks_gen/eval/G0191/faulty/m3_locksmith_pricer.clas.abap
Normal file
@@ -0,0 +1,146 @@
|
||||
CLASS {{p}}locksmith_pricer DEFINITION PUBLIC FINAL CREATE PUBLIC.
|
||||
PUBLIC SECTION.
|
||||
INTERFACES {{p}}if_locksmith_pricer.
|
||||
|
||||
PRIVATE SECTION.
|
||||
CONSTANTS:
|
||||
c_job_key TYPE {{p}}if_locksmith_pricer=>ty_job_type VALUE 'K',
|
||||
c_job_lockout TYPE {{p}}if_locksmith_pricer=>ty_job_type VALUE 'L',
|
||||
c_job_rekey TYPE {{p}}if_locksmith_pricer=>ty_job_type VALUE 'R',
|
||||
c_key_std TYPE {{p}}if_locksmith_pricer=>ty_key_type VALUE 'S',
|
||||
c_key_sec TYPE {{p}}if_locksmith_pricer=>ty_key_type VALUE 'Y',
|
||||
c_key_elec TYPE {{p}}if_locksmith_pricer=>ty_key_type VALUE 'E',
|
||||
c_call_late TYPE {{p}}if_locksmith_pricer=>ty_callout VALUE 'A',
|
||||
c_call_week TYPE {{p}}if_locksmith_pricer=>ty_callout VALUE 'W',
|
||||
c_fee_std TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '89.00',
|
||||
c_fee_late TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '149.00',
|
||||
c_fee_week TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '179.00',
|
||||
c_rekey_base TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '35.00',
|
||||
c_rate_dup_s TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '4.50',
|
||||
c_rate_dup_y TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '9.80',
|
||||
c_rate_dup_e TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '24.00',
|
||||
c_rate_rek_s TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '6.00',
|
||||
c_rate_rek_y TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '11.00',
|
||||
c_rate_rek_e TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '26.00',
|
||||
c_qty_mid TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '5.00',
|
||||
c_qty_high TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '20.00',
|
||||
c_disc_mid TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '10.00',
|
||||
c_disc_high TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '20.00',
|
||||
c_percent TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '100.00',
|
||||
c_nothing TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '0.00'.
|
||||
|
||||
METHODS duplicate_price
|
||||
IMPORTING iv_quantity TYPE i
|
||||
iv_key_type TYPE {{p}}if_locksmith_pricer=>ty_key_type
|
||||
RETURNING VALUE(rv_price) TYPE {{p}}if_locksmith_pricer=>ty_amount.
|
||||
METHODS rekey_price
|
||||
IMPORTING iv_quantity TYPE i
|
||||
iv_key_type TYPE {{p}}if_locksmith_pricer=>ty_key_type
|
||||
RETURNING VALUE(rv_price) TYPE {{p}}if_locksmith_pricer=>ty_amount.
|
||||
METHODS lockout_price
|
||||
IMPORTING iv_callout TYPE {{p}}if_locksmith_pricer=>ty_callout
|
||||
RETURNING VALUE(rv_price) TYPE {{p}}if_locksmith_pricer=>ty_amount.
|
||||
METHODS dup_key_rate
|
||||
IMPORTING iv_key_type TYPE {{p}}if_locksmith_pricer=>ty_key_type
|
||||
RETURNING VALUE(rv_rate) TYPE {{p}}if_locksmith_pricer=>ty_amount.
|
||||
METHODS rekey_key_rate
|
||||
IMPORTING iv_key_type TYPE {{p}}if_locksmith_pricer=>ty_key_type
|
||||
RETURNING VALUE(rv_rate) TYPE {{p}}if_locksmith_pricer=>ty_amount.
|
||||
METHODS discount_percent
|
||||
IMPORTING iv_quantity TYPE i
|
||||
RETURNING VALUE(rv_percent) TYPE {{p}}if_locksmith_pricer=>ty_amount.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS {{p}}locksmith_pricer IMPLEMENTATION.
|
||||
METHOD {{p}}if_locksmith_pricer~calculate_price.
|
||||
CASE iv_job_type.
|
||||
WHEN c_job_key.
|
||||
rv_price = duplicate_price( iv_quantity = iv_quantity
|
||||
iv_key_type = iv_key_type ).
|
||||
WHEN c_job_lockout.
|
||||
rv_price = lockout_price( iv_callout = iv_callout ).
|
||||
WHEN c_job_rekey.
|
||||
rv_price = rekey_price( iv_quantity = iv_quantity
|
||||
iv_key_type = iv_key_type ).
|
||||
WHEN OTHERS.
|
||||
rv_price = c_nothing.
|
||||
ENDCASE.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD duplicate_price.
|
||||
DATA lv_qty TYPE {{p}}if_locksmith_pricer=>ty_amount.
|
||||
lv_qty = iv_quantity.
|
||||
IF lv_qty < 1.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
DATA(lv_rate) = dup_key_rate( iv_key_type ).
|
||||
IF lv_rate = 0.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
DATA lv_gross TYPE {{p}}if_locksmith_pricer=>ty_amount.
|
||||
lv_gross = lv_rate * lv_qty.
|
||||
DATA(lv_discount) = discount_percent( iv_quantity ).
|
||||
rv_price = lv_gross - lv_gross * lv_discount / c_percent.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD rekey_price.
|
||||
DATA lv_qty TYPE {{p}}if_locksmith_pricer=>ty_amount.
|
||||
lv_qty = iv_quantity.
|
||||
IF lv_qty < 1.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
DATA(lv_rate) = rekey_key_rate( iv_key_type ).
|
||||
IF lv_rate <> 0.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
rv_price = lv_qty * ( c_rekey_base + lv_rate ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD lockout_price.
|
||||
CASE iv_callout.
|
||||
WHEN c_call_week.
|
||||
rv_price = c_fee_week.
|
||||
WHEN c_call_late.
|
||||
rv_price = c_fee_late.
|
||||
WHEN OTHERS.
|
||||
rv_price = c_fee_std.
|
||||
ENDCASE.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD dup_key_rate.
|
||||
CASE iv_key_type.
|
||||
WHEN c_key_std.
|
||||
rv_rate = c_rate_dup_s.
|
||||
WHEN c_key_sec.
|
||||
rv_rate = c_rate_dup_y.
|
||||
WHEN c_key_elec.
|
||||
rv_rate = c_rate_dup_e.
|
||||
WHEN OTHERS.
|
||||
rv_rate = c_nothing.
|
||||
ENDCASE.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD rekey_key_rate.
|
||||
CASE iv_key_type.
|
||||
WHEN c_key_std.
|
||||
rv_rate = c_rate_rek_s.
|
||||
WHEN c_key_sec.
|
||||
rv_rate = c_rate_rek_y.
|
||||
WHEN c_key_elec.
|
||||
rv_rate = c_rate_rek_e.
|
||||
WHEN OTHERS.
|
||||
rv_rate = c_nothing.
|
||||
ENDCASE.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD discount_percent.
|
||||
IF iv_quantity >= c_qty_high.
|
||||
rv_percent = c_disc_high.
|
||||
ELSEIF iv_quantity >= c_qty_mid.
|
||||
rv_percent = c_disc_mid.
|
||||
ELSE.
|
||||
rv_percent = c_nothing.
|
||||
ENDIF.
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
146
tasks_gen/eval/G0191/faulty/m4_locksmith_pricer.clas.abap
Normal file
146
tasks_gen/eval/G0191/faulty/m4_locksmith_pricer.clas.abap
Normal file
@@ -0,0 +1,146 @@
|
||||
CLASS {{p}}locksmith_pricer DEFINITION PUBLIC FINAL CREATE PUBLIC.
|
||||
PUBLIC SECTION.
|
||||
INTERFACES {{p}}if_locksmith_pricer.
|
||||
|
||||
PRIVATE SECTION.
|
||||
CONSTANTS:
|
||||
c_job_key TYPE {{p}}if_locksmith_pricer=>ty_job_type VALUE 'K',
|
||||
c_job_lockout TYPE {{p}}if_locksmith_pricer=>ty_job_type VALUE 'L',
|
||||
c_job_rekey TYPE {{p}}if_locksmith_pricer=>ty_job_type VALUE 'R',
|
||||
c_key_std TYPE {{p}}if_locksmith_pricer=>ty_key_type VALUE 'S',
|
||||
c_key_sec TYPE {{p}}if_locksmith_pricer=>ty_key_type VALUE 'Y',
|
||||
c_key_elec TYPE {{p}}if_locksmith_pricer=>ty_key_type VALUE 'E',
|
||||
c_call_late TYPE {{p}}if_locksmith_pricer=>ty_callout VALUE 'A',
|
||||
c_call_week TYPE {{p}}if_locksmith_pricer=>ty_callout VALUE 'W',
|
||||
c_fee_std TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '89.00',
|
||||
c_fee_late TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '149.00',
|
||||
c_fee_week TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '179.00',
|
||||
c_rekey_base TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '35.00',
|
||||
c_rate_dup_s TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '4.50',
|
||||
c_rate_dup_y TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '9.80',
|
||||
c_rate_dup_e TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '24.00',
|
||||
c_rate_rek_s TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '6.00',
|
||||
c_rate_rek_y TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '11.00',
|
||||
c_rate_rek_e TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '26.00',
|
||||
c_qty_mid TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '5.00',
|
||||
c_qty_high TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '20.00',
|
||||
c_disc_mid TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '10.00',
|
||||
c_disc_high TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '20.00',
|
||||
c_percent TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '100.00',
|
||||
c_nothing TYPE {{p}}if_locksmith_pricer=>ty_amount VALUE '0.00'.
|
||||
|
||||
METHODS duplicate_price
|
||||
IMPORTING iv_quantity TYPE i
|
||||
iv_key_type TYPE {{p}}if_locksmith_pricer=>ty_key_type
|
||||
RETURNING VALUE(rv_price) TYPE {{p}}if_locksmith_pricer=>ty_amount.
|
||||
METHODS rekey_price
|
||||
IMPORTING iv_quantity TYPE i
|
||||
iv_key_type TYPE {{p}}if_locksmith_pricer=>ty_key_type
|
||||
RETURNING VALUE(rv_price) TYPE {{p}}if_locksmith_pricer=>ty_amount.
|
||||
METHODS lockout_price
|
||||
IMPORTING iv_callout TYPE {{p}}if_locksmith_pricer=>ty_callout
|
||||
RETURNING VALUE(rv_price) TYPE {{p}}if_locksmith_pricer=>ty_amount.
|
||||
METHODS dup_key_rate
|
||||
IMPORTING iv_key_type TYPE {{p}}if_locksmith_pricer=>ty_key_type
|
||||
RETURNING VALUE(rv_rate) TYPE {{p}}if_locksmith_pricer=>ty_amount.
|
||||
METHODS rekey_key_rate
|
||||
IMPORTING iv_key_type TYPE {{p}}if_locksmith_pricer=>ty_key_type
|
||||
RETURNING VALUE(rv_rate) TYPE {{p}}if_locksmith_pricer=>ty_amount.
|
||||
METHODS discount_percent
|
||||
IMPORTING iv_quantity TYPE i
|
||||
RETURNING VALUE(rv_percent) TYPE {{p}}if_locksmith_pricer=>ty_amount.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS {{p}}locksmith_pricer IMPLEMENTATION.
|
||||
METHOD {{p}}if_locksmith_pricer~calculate_price.
|
||||
CASE iv_job_type.
|
||||
WHEN c_job_key.
|
||||
rv_price = duplicate_price( iv_quantity = iv_quantity
|
||||
iv_key_type = iv_key_type ).
|
||||
WHEN c_job_lockout.
|
||||
rv_price = lockout_price( iv_callout = iv_callout ).
|
||||
WHEN c_job_rekey.
|
||||
rv_price = rekey_price( iv_quantity = iv_quantity
|
||||
iv_key_type = iv_key_type ).
|
||||
WHEN OTHERS.
|
||||
rv_price = c_nothing.
|
||||
ENDCASE.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD duplicate_price.
|
||||
DATA lv_qty TYPE {{p}}if_locksmith_pricer=>ty_amount.
|
||||
lv_qty = iv_quantity.
|
||||
IF lv_qty < 1.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
DATA(lv_rate) = dup_key_rate( iv_key_type ).
|
||||
IF lv_rate = 0.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
DATA lv_gross TYPE {{p}}if_locksmith_pricer=>ty_amount.
|
||||
lv_gross = lv_rate * lv_qty.
|
||||
DATA(lv_discount) = discount_percent( iv_quantity ).
|
||||
rv_price = lv_gross - lv_gross * lv_discount / c_percent.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD rekey_price.
|
||||
DATA lv_qty TYPE {{p}}if_locksmith_pricer=>ty_amount.
|
||||
lv_qty = iv_quantity.
|
||||
IF lv_qty < 1.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
DATA(lv_rate) = rekey_key_rate( iv_key_type ).
|
||||
IF lv_rate = 0.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
rv_price = lv_qty * ( c_rekey_base - lv_rate ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD lockout_price.
|
||||
CASE iv_callout.
|
||||
WHEN c_call_week.
|
||||
rv_price = c_fee_week.
|
||||
WHEN c_call_late.
|
||||
rv_price = c_fee_late.
|
||||
WHEN OTHERS.
|
||||
rv_price = c_fee_std.
|
||||
ENDCASE.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD dup_key_rate.
|
||||
CASE iv_key_type.
|
||||
WHEN c_key_std.
|
||||
rv_rate = c_rate_dup_s.
|
||||
WHEN c_key_sec.
|
||||
rv_rate = c_rate_dup_y.
|
||||
WHEN c_key_elec.
|
||||
rv_rate = c_rate_dup_e.
|
||||
WHEN OTHERS.
|
||||
rv_rate = c_nothing.
|
||||
ENDCASE.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD rekey_key_rate.
|
||||
CASE iv_key_type.
|
||||
WHEN c_key_std.
|
||||
rv_rate = c_rate_rek_s.
|
||||
WHEN c_key_sec.
|
||||
rv_rate = c_rate_rek_y.
|
||||
WHEN c_key_elec.
|
||||
rv_rate = c_rate_rek_e.
|
||||
WHEN OTHERS.
|
||||
rv_rate = c_nothing.
|
||||
ENDCASE.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD discount_percent.
|
||||
IF iv_quantity >= c_qty_high.
|
||||
rv_percent = c_disc_high.
|
||||
ELSEIF iv_quantity >= c_qty_mid.
|
||||
rv_percent = c_disc_mid.
|
||||
ELSE.
|
||||
rv_percent = c_nothing.
|
||||
ENDIF.
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
Reference in New Issue
Block a user