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:
Kral
2026-10-05 13:35:54 +02:00
parent 1c4667a0fc
commit 13360292dd
781 changed files with 50211 additions and 22 deletions

View File

@@ -0,0 +1,41 @@
FUNCTION {{p}}auc_premium
IMPORTING
iv_lot_type TYPE string
iv_hammer TYPE decfloat34
iv_channel TYPE string
EXPORTING
ev_skip TYPE abap_bool
CHANGING
cv_fee TYPE decfloat34
EXCEPTIONS
invalid_hammer.
DATA lv_premium TYPE decfloat34.
ev_skip = abap_true.
IF iv_hammer < 0.
RAISE invalid_hammer.
ENDIF.
IF iv_lot_type = 'C'.
ev_skip = abap_true.
RETURN.
ENDIF.
IF iv_hammer <= 1000.
lv_premium = iv_hammer * 20 / 100.
ELSEIF iv_hammer <= 10000.
lv_premium = 1000 * 20 / 100 + ( iv_hammer - 1000 ) * 12 / 100.
ELSE.
lv_premium = 1000 * 20 / 100 + 9000 * 12 / 100 + ( iv_hammer - 10000 ) * 6 / 100.
ENDIF.
IF iv_channel = 'O'.
lv_premium = lv_premium * 90 / 100.
ENDIF.
lv_premium = round( val = lv_premium dec = 2 mode = cl_abap_math=>round_half_up ).
IF lv_premium < 5.
lv_premium = 5.
ELSEIF lv_premium > 5000.
lv_premium = 5000.
ENDIF.
cv_fee = lv_premium.
ENDFUNCTION.

View File

@@ -0,0 +1,41 @@
FUNCTION {{p}}auc_premium
IMPORTING
iv_lot_type TYPE string
iv_hammer TYPE decfloat34
iv_channel TYPE string
EXPORTING
ev_skip TYPE abap_bool
CHANGING
cv_fee TYPE decfloat34
EXCEPTIONS
invalid_hammer.
DATA lv_premium TYPE decfloat34.
ev_skip = abap_false.
IF iv_hammer < 0.
RAISE invalid_hammer.
ENDIF.
IF iv_lot_type = 'C'.
ev_skip = abap_true.
RETURN.
ENDIF.
IF iv_hammer <= 1000.
lv_premium = iv_hammer * 20 / 100.
ELSEIF iv_hammer > 10000.
lv_premium = 1000 * 20 / 100 + ( iv_hammer - 1000 ) * 12 / 100.
ELSE.
lv_premium = 1000 * 20 / 100 + 9000 * 12 / 100 + ( iv_hammer - 10000 ) * 6 / 100.
ENDIF.
IF iv_channel = 'O'.
lv_premium = lv_premium * 90 / 100.
ENDIF.
lv_premium = round( val = lv_premium dec = 2 mode = cl_abap_math=>round_half_up ).
IF lv_premium < 5.
lv_premium = 5.
ELSEIF lv_premium > 5000.
lv_premium = 5000.
ENDIF.
cv_fee = lv_premium.
ENDFUNCTION.

View File

@@ -0,0 +1,41 @@
FUNCTION {{p}}auc_premium
IMPORTING
iv_lot_type TYPE string
iv_hammer TYPE decfloat34
iv_channel TYPE string
EXPORTING
ev_skip TYPE abap_bool
CHANGING
cv_fee TYPE decfloat34
EXCEPTIONS
invalid_hammer.
DATA lv_premium TYPE decfloat34.
ev_skip = abap_false.
IF iv_hammer < 0.
RAISE invalid_hammer.
ENDIF.
IF iv_lot_type = 'C'.
ev_skip = abap_true.
RETURN.
ENDIF.
IF iv_hammer <= 1000.
lv_premium = iv_hammer * 20 / 100.
ELSEIF iv_hammer <= 10000.
lv_premium = 1000 * 20 / 100 + ( iv_hammer - 1000 ) * 12 / 100.
ELSE.
lv_premium = 1000 * 20 / 100 + 9000 * 12 / 101 + ( iv_hammer - 10000 ) * 6 / 100.
ENDIF.
IF iv_channel = 'O'.
lv_premium = lv_premium * 90 / 100.
ENDIF.
lv_premium = round( val = lv_premium dec = 2 mode = cl_abap_math=>round_half_up ).
IF lv_premium < 5.
lv_premium = 5.
ELSEIF lv_premium > 5000.
lv_premium = 5000.
ENDIF.
cv_fee = lv_premium.
ENDFUNCTION.

View File

@@ -0,0 +1,41 @@
FUNCTION {{p}}auc_premium
IMPORTING
iv_lot_type TYPE string
iv_hammer TYPE decfloat34
iv_channel TYPE string
EXPORTING
ev_skip TYPE abap_bool
CHANGING
cv_fee TYPE decfloat34
EXCEPTIONS
invalid_hammer.
DATA lv_premium TYPE decfloat34.
ev_skip = abap_false.
IF iv_hammer < 0.
RAISE invalid_hammer.
ENDIF.
IF iv_lot_type = 'C'.
ev_skip = abap_true.
RETURN.
ENDIF.
IF iv_hammer <= 1000.
lv_premium = iv_hammer * 20 / 100.
ELSEIF iv_hammer <= 10000.
lv_premium = 1000 * 20 / 100 + ( iv_hammer - 1000 ) * 12 / 100.
ELSE.
lv_premium = 1000 * 20 / 100 + 9000 * 12 / 100 + ( iv_hammer - 10000 ) * 6 / 100.
ENDIF.
IF iv_channel <> 'O'.
lv_premium = lv_premium * 90 / 100.
ENDIF.
lv_premium = round( val = lv_premium dec = 2 mode = cl_abap_math=>round_half_up ).
IF lv_premium < 5.
lv_premium = 5.
ELSEIF lv_premium > 5000.
lv_premium = 5000.
ENDIF.
cv_fee = lv_premium.
ENDFUNCTION.

View File

@@ -0,0 +1,41 @@
FUNCTION {{p}}auc_premium
IMPORTING
iv_lot_type TYPE string
iv_hammer TYPE decfloat34
iv_channel TYPE string
EXPORTING
ev_skip TYPE abap_bool
CHANGING
cv_fee TYPE decfloat34
EXCEPTIONS
invalid_hammer.
DATA lv_premium TYPE decfloat34.
ev_skip = abap_false.
IF iv_hammer < 0.
RAISE invalid_hammer.
ENDIF.
IF iv_lot_type = 'C'.
ev_skip = abap_true.
RETURN.
ENDIF.
IF iv_hammer <= 1000.
lv_premium = iv_hammer * 20 / 100.
ELSEIF iv_hammer <= 10000.
lv_premium = 1000 * 20 / 100 + ( iv_hammer - 1000 ) * 12 / 100.
ELSE.
lv_premium = 1000 * 20 / 100 + 9000 * 12 / 100 + ( iv_hammer - 10000 ) * 6 / 100.
ENDIF.
IF iv_channel = 'O'.
lv_premium = lv_premium / 90 / 100.
ENDIF.
lv_premium = round( val = lv_premium dec = 2 mode = cl_abap_math=>round_half_up ).
IF lv_premium < 5.
lv_premium = 5.
ELSEIF lv_premium > 5000.
lv_premium = 5000.
ENDIF.
cv_fee = lv_premium.
ENDFUNCTION.