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:
48
tasks_gen/train/G1305/reference/ad_price.func.abap
Normal file
48
tasks_gen/train/G1305/reference/ad_price.func.abap
Normal file
@@ -0,0 +1,48 @@
|
||||
FUNCTION {{p}}ad_price
|
||||
IMPORTING
|
||||
iv_lines TYPE i
|
||||
iv_insertions TYPE i
|
||||
iv_photo TYPE abap_bool
|
||||
EXPORTING
|
||||
ev_price TYPE decfloat34
|
||||
EXCEPTIONS
|
||||
invalid_lines
|
||||
invalid_insertions.
|
||||
|
||||
CONSTANTS lc_line_rate TYPE decfloat34 VALUE '12.45'.
|
||||
CONSTANTS lc_photo_fee TYPE decfloat34 VALUE '25.00'.
|
||||
CONSTANTS lc_min_price TYPE decfloat34 VALUE '20.00'.
|
||||
|
||||
DATA lv_price TYPE decfloat34.
|
||||
DATA lv_discount TYPE decfloat34.
|
||||
|
||||
IF iv_lines < 1.
|
||||
RAISE invalid_lines.
|
||||
ENDIF.
|
||||
|
||||
IF iv_insertions < 1.
|
||||
RAISE invalid_insertions.
|
||||
ENDIF.
|
||||
|
||||
lv_price = iv_lines * lc_line_rate.
|
||||
IF iv_photo = abap_true.
|
||||
lv_price = lv_price + lc_photo_fee.
|
||||
ENDIF.
|
||||
|
||||
lv_discount = 0.
|
||||
IF iv_insertions >= 6.
|
||||
lv_discount = 20.
|
||||
ELSEIF iv_insertions >= 3.
|
||||
lv_discount = 10.
|
||||
ENDIF.
|
||||
|
||||
lv_price = lv_price * ( 100 - lv_discount ) / 100.
|
||||
lv_price = round( val = lv_price dec = 2 ).
|
||||
|
||||
IF lv_price < lc_min_price.
|
||||
lv_price = lc_min_price.
|
||||
ENDIF.
|
||||
|
||||
ev_price = lv_price.
|
||||
|
||||
ENDFUNCTION.
|
||||
Reference in New Issue
Block a user