Pipeline controller: plan 2 (hard +, error +50 %), backlog throttle, 2 trajectory workers, stop rules, summaries every 50; budget reserve
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
90
tasks_gen/train/G1010/seed/phone_repair_pricer.clas.abap
Normal file
90
tasks_gen/train/G1010/seed/phone_repair_pricer.clas.abap
Normal file
@@ -0,0 +1,90 @@
|
||||
CLASS {{p}}phone_repair_pricer DEFINITION PUBLIC FINAL CREATE PUBLIC.
|
||||
PUBLIC SECTION.
|
||||
TYPES ty_device TYPE c LENGTH 6.
|
||||
TYPES ty_repair TYPE c LENGTH 8.
|
||||
TYPES ty_price TYPE p LENGTH 8 DECIMALS 2.
|
||||
|
||||
CONSTANTS c_device_basic TYPE ty_device VALUE 'BASIC'.
|
||||
CONSTANTS c_device_mid TYPE ty_device VALUE 'MID'.
|
||||
CONSTANTS c_device_high TYPE ty_device VALUE 'HIGH'.
|
||||
|
||||
CONSTANTS c_repair_screen TYPE ty_repair VALUE 'SCREEN'.
|
||||
CONSTANTS c_repair_battery TYPE ty_repair VALUE 'BATTERY'.
|
||||
CONSTANTS c_repair_board TYPE ty_repair VALUE 'BOARD'.
|
||||
CONSTANTS c_repair_camera TYPE ty_repair VALUE 'CAMERA'.
|
||||
CONSTANTS c_repair_port TYPE ty_repair VALUE 'PORT'.
|
||||
|
||||
METHODS calculate_price
|
||||
IMPORTING iv_device TYPE ty_device
|
||||
iv_repair TYPE ty_repair
|
||||
iv_express TYPE abap_bool
|
||||
iv_warranty TYPE abap_bool
|
||||
RETURNING VALUE(rv_price) TYPE ty_price.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS {{p}}phone_repair_pricer IMPLEMENTATION.
|
||||
METHOD calculate_price.
|
||||
DATA lv_price TYPE ty_price.
|
||||
DATA lv_factor TYPE ty_price.
|
||||
DATA lv_found TYPE abap_bool.
|
||||
|
||||
CLEAR lv_found.
|
||||
IF iv_repair = c_repair_screen.
|
||||
lv_price = '89.00'.
|
||||
lv_found = abap_true.
|
||||
ELSEIF iv_repair = c_repair_battery.
|
||||
lv_price = '19.00'.
|
||||
lv_found = abap_true.
|
||||
ELSEIF iv_repair = c_repair_board.
|
||||
lv_price = '149.00'.
|
||||
lv_found = abap_true.
|
||||
ELSEIF iv_repair = c_repair_camera.
|
||||
lv_price = '59.00'.
|
||||
lv_found = abap_true.
|
||||
ELSEIF iv_repair = c_repair_port.
|
||||
lv_price = '49.00'.
|
||||
lv_found = abap_true.
|
||||
ENDIF.
|
||||
|
||||
IF lv_found = abap_true.
|
||||
IF iv_device = c_device_high.
|
||||
lv_factor = '1.25'.
|
||||
lv_price = lv_price * lv_factor.
|
||||
IF iv_express = abap_true.
|
||||
lv_price = lv_price + 15.
|
||||
ENDIF.
|
||||
IF iv_warranty = abap_true.
|
||||
lv_factor = '0.80'.
|
||||
lv_price = lv_price * lv_factor.
|
||||
ENDIF.
|
||||
ELSEIF iv_device = c_device_mid.
|
||||
lv_factor = '1.10'.
|
||||
lv_price = lv_price * lv_factor.
|
||||
IF iv_express = abap_true.
|
||||
lv_price = lv_price + 15.
|
||||
ENDIF.
|
||||
IF iv_warranty = abap_true.
|
||||
lv_factor = '0.80'.
|
||||
lv_price = lv_price * lv_factor.
|
||||
ENDIF.
|
||||
ELSE.
|
||||
IF iv_express = abap_true.
|
||||
lv_price = lv_price + 15.
|
||||
ENDIF.
|
||||
IF iv_warranty = abap_true.
|
||||
lv_factor = '0.80'.
|
||||
lv_price = lv_price * lv_factor.
|
||||
ENDIF.
|
||||
ENDIF.
|
||||
|
||||
IF lv_price < 25.
|
||||
lv_price = 25.
|
||||
ENDIF.
|
||||
ELSE.
|
||||
CLEAR lv_price.
|
||||
ENDIF.
|
||||
|
||||
rv_price = lv_price.
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
Reference in New Issue
Block a user