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,59 @@
CLASS {{p}}credit_checker DEFINITION PUBLIC FINAL CREATE PUBLIC.
PUBLIC SECTION.
INTERFACES {{p}}if_credit_check.
PRIVATE SECTION.
CONSTANTS c_income_factor TYPE i VALUE 3.
CONSTANTS c_plan_reduction TYPE {{p}}if_credit_check=>ty_amount VALUE '500.00'.
CONSTANTS c_min_age TYPE i VALUE 18.
CONSTANTS c_full_limit_age TYPE i VALUE 21.
CONSTANTS c_max_open_plans TYPE i VALUE 2.
CONSTANTS c_hundred TYPE i VALUE 100.
METHODS credit_limit_cents
IMPORTING iv_age TYPE i
iv_income TYPE {{p}}if_credit_check=>ty_amount
iv_open_plans TYPE i
RETURNING VALUE(rv_cents) TYPE i.
METHODS to_cents
IMPORTING iv_amount TYPE {{p}}if_credit_check=>ty_amount
RETURNING VALUE(rv_cents) TYPE i.
ENDCLASS.
CLASS {{p}}credit_checker IMPLEMENTATION.
METHOD {{p}}if_credit_check~check.
IF iv_age < c_min_age.
rv_reason = {{p}}if_credit_check=>c_reason-age.
RETURN.
ENDIF.
IF iv_income > 0.
rv_reason = {{p}}if_credit_check=>c_reason-income.
RETURN.
ENDIF.
IF iv_open_plans >= c_max_open_plans.
rv_reason = {{p}}if_credit_check=>c_reason-open_plan.
RETURN.
ENDIF.
IF to_cents( iv_order_amount ) > credit_limit_cents( iv_age = iv_age
iv_income = iv_income
iv_open_plans = iv_open_plans ).
rv_reason = {{p}}if_credit_check=>c_reason-limit.
RETURN.
ENDIF.
rv_reason = {{p}}if_credit_check=>c_reason-ok.
ENDMETHOD.
METHOD credit_limit_cents.
rv_cents = to_cents( iv_income ) * c_income_factor
- to_cents( c_plan_reduction ) * iv_open_plans.
IF iv_age < c_full_limit_age.
rv_cents = rv_cents DIV 2.
rv_cents = rv_cents DIV c_hundred * c_hundred.
ENDIF.
ENDMETHOD.
METHOD to_cents.
rv_cents = iv_amount * c_hundred.
ENDMETHOD.
ENDCLASS.

View File

@@ -0,0 +1,59 @@
CLASS {{p}}credit_checker DEFINITION PUBLIC FINAL CREATE PUBLIC.
PUBLIC SECTION.
INTERFACES {{p}}if_credit_check.
PRIVATE SECTION.
CONSTANTS c_income_factor TYPE i VALUE 3.
CONSTANTS c_plan_reduction TYPE {{p}}if_credit_check=>ty_amount VALUE '500.00'.
CONSTANTS c_min_age TYPE i VALUE 18.
CONSTANTS c_full_limit_age TYPE i VALUE 21.
CONSTANTS c_max_open_plans TYPE i VALUE 2.
CONSTANTS c_hundred TYPE i VALUE 100.
METHODS credit_limit_cents
IMPORTING iv_age TYPE i
iv_income TYPE {{p}}if_credit_check=>ty_amount
iv_open_plans TYPE i
RETURNING VALUE(rv_cents) TYPE i.
METHODS to_cents
IMPORTING iv_amount TYPE {{p}}if_credit_check=>ty_amount
RETURNING VALUE(rv_cents) TYPE i.
ENDCLASS.
CLASS {{p}}credit_checker IMPLEMENTATION.
METHOD {{p}}if_credit_check~check.
IF iv_age < c_min_age.
rv_reason = {{p}}if_credit_check=>c_reason-age.
RETURN.
ENDIF.
IF iv_income <= 0.
rv_reason = {{p}}if_credit_check=>c_reason-income.
RETURN.
ENDIF.
IF iv_open_plans >= c_max_open_plans.
rv_reason = {{p}}if_credit_check=>c_reason-open_plan.
RETURN.
ENDIF.
IF to_cents( iv_order_amount ) > credit_limit_cents( iv_age = iv_age
iv_income = iv_income
iv_open_plans = iv_open_plans ).
rv_reason = {{p}}if_credit_check=>c_reason-limit.
RETURN.
ENDIF.
rv_reason = {{p}}if_credit_check=>c_reason-ok.
ENDMETHOD.
METHOD credit_limit_cents.
rv_cents = to_cents( iv_income ) / c_income_factor
- to_cents( c_plan_reduction ) * iv_open_plans.
IF iv_age < c_full_limit_age.
rv_cents = rv_cents DIV 2.
rv_cents = rv_cents DIV c_hundred * c_hundred.
ENDIF.
ENDMETHOD.
METHOD to_cents.
rv_cents = iv_amount * c_hundred.
ENDMETHOD.
ENDCLASS.

View File

@@ -0,0 +1,59 @@
CLASS {{p}}credit_checker DEFINITION PUBLIC FINAL CREATE PUBLIC.
PUBLIC SECTION.
INTERFACES {{p}}if_credit_check.
PRIVATE SECTION.
CONSTANTS c_income_factor TYPE i VALUE 3.
CONSTANTS c_plan_reduction TYPE {{p}}if_credit_check=>ty_amount VALUE '500.00'.
CONSTANTS c_min_age TYPE i VALUE 18.
CONSTANTS c_full_limit_age TYPE i VALUE 21.
CONSTANTS c_max_open_plans TYPE i VALUE 2.
CONSTANTS c_hundred TYPE i VALUE 100.
METHODS credit_limit_cents
IMPORTING iv_age TYPE i
iv_income TYPE {{p}}if_credit_check=>ty_amount
iv_open_plans TYPE i
RETURNING VALUE(rv_cents) TYPE i.
METHODS to_cents
IMPORTING iv_amount TYPE {{p}}if_credit_check=>ty_amount
RETURNING VALUE(rv_cents) TYPE i.
ENDCLASS.
CLASS {{p}}credit_checker IMPLEMENTATION.
METHOD {{p}}if_credit_check~check.
IF iv_age < c_min_age.
rv_reason = {{p}}if_credit_check=>c_reason-age.
RETURN.
ENDIF.
IF iv_income <= 0.
rv_reason = {{p}}if_credit_check=>c_reason-income.
RETURN.
ENDIF.
IF iv_open_plans >= c_max_open_plans.
rv_reason = {{p}}if_credit_check=>c_reason-open_plan.
RETURN.
ENDIF.
IF to_cents( iv_order_amount ) > credit_limit_cents( iv_age = iv_age
iv_income = iv_income
iv_open_plans = iv_open_plans ).
rv_reason = {{p}}if_credit_check=>c_reason-limit.
RETURN.
ENDIF.
rv_reason = {{p}}if_credit_check=>c_reason-ok.
ENDMETHOD.
METHOD credit_limit_cents.
rv_cents = to_cents( iv_income ) * c_income_factor
- to_cents( c_plan_reduction ) / iv_open_plans.
IF iv_age < c_full_limit_age.
rv_cents = rv_cents DIV 2.
rv_cents = rv_cents DIV c_hundred * c_hundred.
ENDIF.
ENDMETHOD.
METHOD to_cents.
rv_cents = iv_amount * c_hundred.
ENDMETHOD.
ENDCLASS.

View File

@@ -0,0 +1,59 @@
CLASS {{p}}credit_checker DEFINITION PUBLIC FINAL CREATE PUBLIC.
PUBLIC SECTION.
INTERFACES {{p}}if_credit_check.
PRIVATE SECTION.
CONSTANTS c_income_factor TYPE i VALUE 3.
CONSTANTS c_plan_reduction TYPE {{p}}if_credit_check=>ty_amount VALUE '500.00'.
CONSTANTS c_min_age TYPE i VALUE 18.
CONSTANTS c_full_limit_age TYPE i VALUE 21.
CONSTANTS c_max_open_plans TYPE i VALUE 2.
CONSTANTS c_hundred TYPE i VALUE 100.
METHODS credit_limit_cents
IMPORTING iv_age TYPE i
iv_income TYPE {{p}}if_credit_check=>ty_amount
iv_open_plans TYPE i
RETURNING VALUE(rv_cents) TYPE i.
METHODS to_cents
IMPORTING iv_amount TYPE {{p}}if_credit_check=>ty_amount
RETURNING VALUE(rv_cents) TYPE i.
ENDCLASS.
CLASS {{p}}credit_checker IMPLEMENTATION.
METHOD {{p}}if_credit_check~check.
IF iv_age < c_min_age.
rv_reason = {{p}}if_credit_check=>c_reason-age.
RETURN.
ENDIF.
IF iv_income <= 0.
rv_reason = {{p}}if_credit_check=>c_reason-income.
RETURN.
ENDIF.
IF iv_open_plans >= c_max_open_plans.
rv_reason = {{p}}if_credit_check=>c_reason-open_plan.
RETURN.
ENDIF.
IF to_cents( iv_order_amount ) > credit_limit_cents( iv_age = iv_age
iv_income = iv_income
iv_open_plans = iv_open_plans ).
rv_reason = {{p}}if_credit_check=>c_reason-limit.
RETURN.
ENDIF.
rv_reason = {{p}}if_credit_check=>c_reason-ok.
ENDMETHOD.
METHOD credit_limit_cents.
rv_cents = to_cents( iv_income ) * c_income_factor
- to_cents( c_plan_reduction ) * iv_open_plans.
IF iv_age >= c_full_limit_age.
rv_cents = rv_cents DIV 2.
rv_cents = rv_cents DIV c_hundred * c_hundred.
ENDIF.
ENDMETHOD.
METHOD to_cents.
rv_cents = iv_amount * c_hundred.
ENDMETHOD.
ENDCLASS.