ApiLogicServer 15.2.3__py3-none-any.whl → 15.2.10__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- api_logic_server_cli/api_logic_server.py +3 -1
- api_logic_server_cli/prototypes/base/.github/.copilot-instructions.md +114 -52
- api_logic_server_cli/prototypes/base/docs/training/testing.md +95 -9
- api_logic_server_cli/prototypes/base/test/api_logic_server_behave/behave_logic_report.py +19 -6
- api_logic_server_cli/prototypes/basic_demo/.github/.copilot-instructions.md +744 -0
- api_logic_server_cli/prototypes/basic_demo/customizations/logic/declare_logic.py +17 -1
- api_logic_server_cli/prototypes/basic_demo/readme.md +13 -5
- api_logic_server_cli/prototypes/basic_demo/tutor.md +1436 -0
- api_logic_server_cli/prototypes/manager/.github/.copilot-instructions.md +50 -23
- api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/.github/.copilot-instructions.md +3 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/customizations/logic/declare_logic.py +17 -1
- api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/docs/training/testing.md +95 -9
- api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/iteration/logic/declare_logic.py +17 -1
- api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/logic/declare_logic.py +38 -1
- api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/features/order_processing.feature +59 -50
- api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/features/steps/order_processing_steps.py +395 -248
- api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/behave.log +66 -62
- api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Carbon_Neutral_Discount_A.log +51 -41
- api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Change_Order_Customer.log +29 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Change_Product_in_Item.log +35 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Delete_Item_Reduces_Order.log +39 -19
- api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Exceed_Credit_Limit_Rejec.log +36 -45
- api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Good_Order_Placed_via_B2B.log +50 -40
- api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Item_Quantity_Change.log +33 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Multi-Item_Order_via_B2B_.log +67 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Ship_Order_Excludes_from_.log +24 -14
- api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Transaction_Processing.log +26 -17
- api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Unship_Order_Includes_in_.log +24 -14
- api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/reports/Behave Logic Report.md +361 -146
- api_logic_server_cli/prototypes/manager/system/ApiLogicServer-Internal-Dev/copilot-dev-context.md +270 -2
- {apilogicserver-15.2.3.dist-info → apilogicserver-15.2.10.dist-info}/METADATA +25 -16
- {apilogicserver-15.2.3.dist-info → apilogicserver-15.2.10.dist-info}/RECORD +36 -30
- {apilogicserver-15.2.3.dist-info → apilogicserver-15.2.10.dist-info}/WHEEL +0 -0
- {apilogicserver-15.2.3.dist-info → apilogicserver-15.2.10.dist-info}/entry_points.txt +0 -0
- {apilogicserver-15.2.3.dist-info → apilogicserver-15.2.10.dist-info}/licenses/LICENSE +0 -0
- {apilogicserver-15.2.3.dist-info → apilogicserver-15.2.10.dist-info}/top_level.txt +0 -0
|
@@ -1,79 +1,83 @@
|
|
|
1
1
|
Feature: About Sample # features/about.feature:6
|
|
2
2
|
|
|
3
3
|
Scenario: Transaction Processing # features/about.feature:8
|
|
4
|
-
Given Sample Database # features/steps/
|
|
5
|
-
When Transactions are submitted # features/steps/
|
|
6
|
-
Then Enforce business policies with Logic (rules + code) # features/steps/
|
|
4
|
+
Given Sample Database # features/steps/about.py:8
|
|
5
|
+
When Transactions are submitted # features/steps/about.py:12
|
|
6
|
+
Then Enforce business policies with Logic (rules + code) # features/steps/about.py:16
|
|
7
7
|
|
|
8
8
|
Feature: Order Processing with Business Logic # features/order_processing.feature:1
|
|
9
9
|
|
|
10
|
-
Scenario: Good Order Placed via B2B API # features/order_processing.feature:
|
|
11
|
-
Given Customer "Alice" with balance 0 and credit limit
|
|
12
|
-
When B2B order placed for "Alice" with 5 Widget # features/steps/order_processing_steps.py:
|
|
13
|
-
Then Customer balance should be 450 # features/steps/order_processing_steps.py:
|
|
14
|
-
And Order amount_total should be 450 # features/steps/order_processing_steps.py:
|
|
15
|
-
And
|
|
10
|
+
Scenario: Good Order Placed via B2B API # features/order_processing.feature:11
|
|
11
|
+
Given Customer "Alice" with balance 0 and credit limit 5000 # features/steps/order_processing_steps.py:26
|
|
12
|
+
When B2B order placed for "Alice" with 5 Widget # features/steps/order_processing_steps.py:356
|
|
13
|
+
Then Customer balance should be 450 # features/steps/order_processing_steps.py:567
|
|
14
|
+
And Order amount_total should be 450 # features/steps/order_processing_steps.py:586
|
|
15
|
+
And Item amount should be 450 # features/steps/order_processing_steps.py:599
|
|
16
|
+
And Item unit_price should be 90 # features/steps/order_processing_steps.py:612
|
|
16
17
|
|
|
17
|
-
Scenario: Item
|
|
18
|
-
Given Customer "Bob" with balance 0 and credit limit
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
And Order amount_total should be 900 # features/steps/order_processing_steps.py:483
|
|
23
|
-
And Customer balance should be 900 # features/steps/order_processing_steps.py:451
|
|
18
|
+
Scenario: Multi-Item Order via B2B API # features/order_processing.feature:19
|
|
19
|
+
Given Customer "Bob" with balance 0 and credit limit 3000 # features/steps/order_processing_steps.py:26
|
|
20
|
+
When B2B order placed for "Bob" with 3 Widget and 2 Gadget # features/steps/order_processing_steps.py:297
|
|
21
|
+
Then Customer balance should be 570 # features/steps/order_processing_steps.py:567
|
|
22
|
+
And Order amount_total should be 570 # features/steps/order_processing_steps.py:586
|
|
24
23
|
|
|
25
|
-
Scenario:
|
|
26
|
-
Given Customer "
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
Then Customer "Charlie" balance should be 0 # features/steps/order_processing_steps.py:466
|
|
31
|
-
And Customer "Diana" balance should be 300 # features/steps/order_processing_steps.py:466
|
|
24
|
+
Scenario: Carbon Neutral Discount Applied # features/order_processing.feature:25
|
|
25
|
+
Given Customer "Diana" with balance 0 and credit limit 5000 # features/steps/order_processing_steps.py:26
|
|
26
|
+
When B2B order placed for "Diana" with 10 carbon neutral Gadget # features/steps/order_processing_steps.py:242
|
|
27
|
+
Then Customer balance should be 1350 # features/steps/order_processing_steps.py:567
|
|
28
|
+
And Item amount should be 1350 # features/steps/order_processing_steps.py:599
|
|
32
29
|
|
|
33
|
-
Scenario:
|
|
34
|
-
Given Customer "
|
|
35
|
-
And Order
|
|
36
|
-
When
|
|
37
|
-
Then
|
|
38
|
-
And
|
|
30
|
+
Scenario: Item Quantity Change # features/order_processing.feature:31
|
|
31
|
+
Given Customer "Charlie" with balance 0 and credit limit 2000 # features/steps/order_processing_steps.py:26
|
|
32
|
+
And Order is created for "Charlie" with 5 Widget # features/steps/order_processing_steps.py:139
|
|
33
|
+
When Item quantity changed to 10 # features/steps/order_processing_steps.py:414
|
|
34
|
+
Then Item amount should be 900 # features/steps/order_processing_steps.py:599
|
|
35
|
+
And Order amount_total should be 900 # features/steps/order_processing_steps.py:586
|
|
36
|
+
And Customer balance should be 900 # features/steps/order_processing_steps.py:567
|
|
39
37
|
|
|
40
|
-
Scenario:
|
|
41
|
-
Given Customer "
|
|
42
|
-
And Order
|
|
43
|
-
When
|
|
44
|
-
Then
|
|
38
|
+
Scenario: Change Product in Item # features/order_processing.feature:39
|
|
39
|
+
Given Customer "Alice" with balance 0 and credit limit 5000 # features/steps/order_processing_steps.py:26
|
|
40
|
+
And Order is created for "Alice" with 5 Widget # features/steps/order_processing_steps.py:139
|
|
41
|
+
When Item product changed to "Gadget" # features/steps/order_processing_steps.py:439
|
|
42
|
+
Then Item unit_price should be 150 # features/steps/order_processing_steps.py:612
|
|
43
|
+
And Item amount should be 750 # features/steps/order_processing_steps.py:599
|
|
44
|
+
And Order amount_total should be 750 # features/steps/order_processing_steps.py:586
|
|
45
|
+
And Customer balance should be 750 # features/steps/order_processing_steps.py:567
|
|
45
46
|
|
|
46
|
-
Scenario:
|
|
47
|
-
Given Customer "
|
|
48
|
-
And
|
|
49
|
-
When
|
|
50
|
-
Then
|
|
47
|
+
Scenario: Delete Item Reduces Order # features/order_processing.feature:48
|
|
48
|
+
Given Customer "Bob" with balance 0 and credit limit 3000 # features/steps/order_processing_steps.py:26
|
|
49
|
+
And Order is created for "Bob" with 3 Widget and 2 Gadget # features/steps/order_processing_steps.py:70
|
|
50
|
+
When First item is deleted # features/steps/order_processing_steps.py:466
|
|
51
|
+
Then Order amount_total should be 300 # features/steps/order_processing_steps.py:586
|
|
52
|
+
And Customer balance should be 300 # features/steps/order_processing_steps.py:567
|
|
51
53
|
|
|
52
|
-
Scenario:
|
|
53
|
-
Given Customer "
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
54
|
+
Scenario: Change Order Customer # features/order_processing.feature:55
|
|
55
|
+
Given Customer "Alice" with balance 0 and credit limit 5000 # features/steps/order_processing_steps.py:26
|
|
56
|
+
And Customer "Bob" with balance 0 and credit limit 3000 # features/steps/order_processing_steps.py:26
|
|
57
|
+
And Order is created for "Alice" with 5 Widget # features/steps/order_processing_steps.py:139
|
|
58
|
+
When Order customer changed to "Bob" # features/steps/order_processing_steps.py:484
|
|
59
|
+
Then Customer "Alice" balance should be 0 # features/steps/order_processing_steps.py:576
|
|
60
|
+
And Customer "Bob" balance should be 450 # features/steps/order_processing_steps.py:576
|
|
57
61
|
|
|
58
|
-
Scenario:
|
|
59
|
-
Given Customer "
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
And
|
|
62
|
+
Scenario: Ship Order Excludes from Balance # features/order_processing.feature:63
|
|
63
|
+
Given Customer "Charlie" with balance 0 and credit limit 2000 # features/steps/order_processing_steps.py:26
|
|
64
|
+
And Order is created for "Charlie" with 2 Widget # features/steps/order_processing_steps.py:139
|
|
65
|
+
When Order is shipped # features/steps/order_processing_steps.py:513
|
|
66
|
+
Then Customer balance should be 0 # features/steps/order_processing_steps.py:567
|
|
67
|
+
And Order amount_total should be 180 # features/steps/order_processing_steps.py:586
|
|
64
68
|
|
|
65
|
-
Scenario:
|
|
66
|
-
Given Customer "
|
|
67
|
-
|
|
68
|
-
|
|
69
|
+
Scenario: Unship Order Includes in Balance # features/order_processing.feature:70
|
|
70
|
+
Given Customer "Diana" with balance 0 and credit limit 5000 # features/steps/order_processing_steps.py:26
|
|
71
|
+
And Shipped order is created for "Diana" with 3 Gadget # features/steps/order_processing_steps.py:188
|
|
72
|
+
When Order is unshipped # features/steps/order_processing_steps.py:538
|
|
73
|
+
Then Customer balance should be 450 # features/steps/order_processing_steps.py:567
|
|
74
|
+
And Order amount_total should be 450 # features/steps/order_processing_steps.py:586
|
|
69
75
|
|
|
70
|
-
Scenario:
|
|
71
|
-
Given Customer "
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
And Item amount should be 300 # features/steps/order_processing_steps.py:502
|
|
76
|
-
And Order amount_total should be 300 # features/steps/order_processing_steps.py:483
|
|
76
|
+
Scenario: Exceed Credit Limit Rejected # features/order_processing.feature:77
|
|
77
|
+
Given Customer "Silent" with balance 0 and credit limit 1000 # features/steps/order_processing_steps.py:26
|
|
78
|
+
When B2B order placed for "Silent" with 20 Widget # features/steps/order_processing_steps.py:356
|
|
79
|
+
Then Order should be rejected # features/steps/order_processing_steps.py:628
|
|
80
|
+
And Error message should contain "exceeds credit limit" # features/steps/order_processing_steps.py:634
|
|
77
81
|
|
|
78
82
|
|
|
79
|
-
/Users/val/dev/ApiLogicServer/ApiLogicServer-dev/build_and_test/ApiLogicServer/
|
|
83
|
+
/Users/val/dev/ApiLogicServer/ApiLogicServer-dev/build_and_test/ApiLogicServer/basic_demo/test/api_logic_server_behave/behave_run.py completed at October 24, 2025 08:44:44
|
|
@@ -1,42 +1,52 @@
|
|
|
1
1
|
|
|
2
|
-
Carbon Neutral Discount Applied
|
|
3
|
-
- 2025-10-
|
|
4
|
-
|
|
5
|
-
Logic Phase: ROW LOGIC (session=
|
|
6
|
-
..Customer[
|
|
7
|
-
Logic Phase: COMMIT LOGIC (session=
|
|
8
|
-
Logic Phase: AFTER_FLUSH LOGIC (session=
|
|
9
|
-
|
|
10
|
-
These Rules Fired (see Logic Phases, above, for actual order): ## - 2025-10-
|
|
11
|
-
|
|
12
|
-
Logic Phase: COMPLETE(session=
|
|
13
|
-
Logic Phase: ROW LOGIC IGNORE RE-RAISE(session=
|
|
14
|
-
|
|
15
|
-
Logic Phase: ROW LOGIC (session=
|
|
16
|
-
..Product[1] {Update - client} id: 1, name: Gadget, unit_price: 150.0000000000, carbon_neutral: True row:
|
|
17
|
-
..Item[None] {Insert - client} id: None, order_id: None, product_id: None, quantity: 10, amount: None, unit_price: None row:
|
|
18
|
-
..Item[None] {copy_rules for role: product - unit_price} id: None, order_id: None, product_id: None, quantity: 10, amount: None, unit_price: 150.0000000000 row:
|
|
19
|
-
..Item[None] {Formula amount} id: None, order_id: None, product_id: None, quantity: 10, amount: 1350.000000000000033306690739, unit_price: 150.0000000000 row:
|
|
20
|
-
....Order[None] {server aggregate_defaults: amount_total } id: None, notes: Carbon neutral order, customer_id:
|
|
21
|
-
..Item[None] {TODO DB adjust_from_inserted/adopted_child adjusts Derive <class 'database.models.Order'>.amount_total as Sum(Item.amount Where - None)} id: None, order_id: None, product_id: None, quantity: 10, amount: 1350.000000000000033306690739, unit_price: 150.0000000000 row:
|
|
22
|
-
....Order[None] {Adjustment logic chaining deferred for this parent parent do_defer_adjustment: True, is_parent_submitted: True, is_parent_row_processed: False, order} id: None, notes: Carbon neutral order, customer_id:
|
|
23
|
-
..Order[None] {Insert - client} id: None, notes: Carbon neutral order, customer_id:
|
|
24
|
-
..Order[None] {early_row_event_all_classes - handle_all did stamping} id: None, notes: Carbon neutral order, customer_id:
|
|
25
|
-
..Order[None] {TODO DB adjust_from_inserted/adopted_child adjusts Derive <class 'database.models.Customer'>.balance as Sum(Order.amount_total Where Rule.sum(derive=Customer.balance, as_sum_of=Order.amount_total, where=lambda row: row.date_shipped is None) - <function declare_logic.<locals>.<lambda> at
|
|
26
|
-
....Customer[
|
|
27
|
-
Logic Phase: COMMIT LOGIC (session=
|
|
28
|
-
Logic Phase: AFTER_FLUSH LOGIC (session=
|
|
29
|
-
..Order[
|
|
30
|
-
..Order[
|
|
31
|
-
|
|
32
|
-
These Rules Fired (see Logic Phases, above, for actual order): ## - 2025-10-
|
|
33
|
-
Customer ## - 2025-10-
|
|
34
|
-
1. Derive <class 'database.models.Customer'>.balance as Sum(Order.amount_total Where Rule.sum(derive=Customer.balance, as_sum_of=Order.amount_total, where=lambda row: row.date_shipped is None) - <function declare_logic.<locals>.<lambda> at
|
|
35
|
-
Item ## - 2025-10-
|
|
36
|
-
2. Derive <class 'database.models.Item'>.
|
|
37
|
-
3. Derive <class 'database.models.Item'>.
|
|
38
|
-
Order ## - 2025-10-
|
|
39
|
-
4. Derive <class 'database.models.Order'>.amount_total as Sum(Item.amount Where - None) ## - 2025-10-
|
|
40
|
-
5. RowEvent Order.send_order_to_shipping() ## - 2025-10-
|
|
41
|
-
|
|
42
|
-
Logic Phase: COMPLETE(session=
|
|
2
|
+
Carbon Neutral Discount Applied
|
|
3
|
+
- 2025-10-24 08:44:43,859 - logic_logger - INFO
|
|
4
|
+
|
|
5
|
+
Logic Phase: ROW LOGIC (session=0x10a377240) (sqlalchemy before_flush) - 2025-10-24 08:44:43,861 - logic_logger - INFO
|
|
6
|
+
..Customer[30] {Update - client} id: 30, name: Diana 1761320683854, balance: 0E-10, credit_limit: 5000.0000000000, email: None, email_opt_out: None row: 0x10a44ba50 session: 0x10a377240 ins_upd_dlt: upd, initial: upd - 2025-10-24 08:44:43,861 - logic_logger - INFO
|
|
7
|
+
Logic Phase: COMMIT LOGIC (session=0x10a377240) - 2025-10-24 08:44:43,861 - logic_logger - INFO
|
|
8
|
+
Logic Phase: AFTER_FLUSH LOGIC (session=0x10a377240) - 2025-10-24 08:44:43,861 - logic_logger - INFO
|
|
9
|
+
|
|
10
|
+
These Rules Fired (see Logic Phases, above, for actual order): ## - 2025-10-24 08:44:43,861 - logic_logger - INFO
|
|
11
|
+
|
|
12
|
+
Logic Phase: COMPLETE(session=0x10a377240)) - 2025-10-24 08:44:43,861 - logic_logger - INFO
|
|
13
|
+
Logic Phase: ROW LOGIC IGNORE RE-RAISE(session=0x10a377240) (sqlalchemy before_flush) - 2025-10-24 08:44:43,861 - logic_logger - DEBUG
|
|
14
|
+
|
|
15
|
+
Logic Phase: ROW LOGIC (session=0x10a377240) (sqlalchemy before_flush) - 2025-10-24 08:44:43,861 - logic_logger - INFO
|
|
16
|
+
..Product[1] {Update - client} id: 1, name: Gadget, unit_price: 150.0000000000, carbon_neutral: True row: 0x10a452820 session: 0x10a377240 ins_upd_dlt: upd, initial: upd - 2025-10-24 08:44:43,862 - logic_logger - INFO
|
|
17
|
+
..Item[None] {Insert - client} id: None, order_id: None, product_id: None, quantity: 10, amount: None, unit_price: None row: 0x10a48c050 session: 0x10a377240 ins_upd_dlt: ins, initial: ins - 2025-10-24 08:44:43,862 - logic_logger - INFO
|
|
18
|
+
..Item[None] {copy_rules for role: product - unit_price} id: None, order_id: None, product_id: None, quantity: 10, amount: None, unit_price: 150.0000000000 row: 0x10a48c050 session: 0x10a377240 ins_upd_dlt: ins, initial: ins - 2025-10-24 08:44:43,862 - logic_logger - INFO
|
|
19
|
+
..Item[None] {Formula amount} id: None, order_id: None, product_id: None, quantity: 10, amount: 1350.000000000000033306690739, unit_price: 150.0000000000 row: 0x10a48c050 session: 0x10a377240 ins_upd_dlt: ins, initial: ins - 2025-10-24 08:44:43,862 - logic_logger - INFO
|
|
20
|
+
....Order[None] {server aggregate_defaults: amount_total } id: None, notes: Carbon neutral order - Carbon Neutral Discount Applied, customer_id: 30, CreatedOn: None, date_shipped: None, amount_total: [None-->] 0 row: 0x10a3cbe50 session: 0x10a377240 ins_upd_dlt: *, initial: * - 2025-10-24 08:44:43,862 - logic_logger - INFO
|
|
21
|
+
..Item[None] {TODO DB adjust_from_inserted/adopted_child adjusts Derive <class 'database.models.Order'>.amount_total as Sum(Item.amount Where - None)} id: None, order_id: None, product_id: None, quantity: 10, amount: 1350.000000000000033306690739, unit_price: 150.0000000000 row: 0x10a48c050 session: 0x10a377240 ins_upd_dlt: ins, initial: ins - 2025-10-24 08:44:43,862 - logic_logger - INFO
|
|
22
|
+
....Order[None] {Adjustment logic chaining deferred for this parent parent do_defer_adjustment: True, is_parent_submitted: True, is_parent_row_processed: False, order} id: None, notes: Carbon neutral order - Carbon Neutral Discount Applied, customer_id: 30, CreatedOn: None, date_shipped: None, amount_total: [None-->] 1350.000000000000033306690739 row: 0x10a3cbe50 session: 0x10a377240 ins_upd_dlt: *, initial: * - 2025-10-24 08:44:43,862 - logic_logger - INFO
|
|
23
|
+
..Order[None] {Insert - client} id: None, notes: Carbon neutral order - Carbon Neutral Discount Applied, customer_id: 30, CreatedOn: None, date_shipped: None, amount_total: 1350.000000000000033306690739 row: 0x10a3cbe50 session: 0x10a377240 ins_upd_dlt: ins, initial: ins - 2025-10-24 08:44:43,862 - logic_logger - INFO
|
|
24
|
+
..Order[None] {early_row_event_all_classes - handle_all did stamping} id: None, notes: Carbon neutral order - Carbon Neutral Discount Applied, customer_id: 30, CreatedOn: 2025-10-24 08:44:43.862584, date_shipped: None, amount_total: 1350.000000000000033306690739 row: 0x10a3cbe50 session: 0x10a377240 ins_upd_dlt: ins, initial: ins - 2025-10-24 08:44:43,862 - logic_logger - INFO
|
|
25
|
+
..Order[None] {TODO DB adjust_from_inserted/adopted_child adjusts Derive <class 'database.models.Customer'>.balance as Sum(Order.amount_total Where Rule.sum(derive=Customer.balance, as_sum_of=Order.amount_total, where=lambda row: row.date_shipped is None) - <function declare_logic.<locals>.<lambda> at 0x109355260>)} id: None, notes: Carbon neutral order - Carbon Neutral Discount Applied, customer_id: 30, CreatedOn: 2025-10-24 08:44:43.862584, date_shipped: None, amount_total: 1350.000000000000033306690739 row: 0x10a3cbe50 session: 0x10a377240 ins_upd_dlt: ins, initial: ins - 2025-10-24 08:44:43,862 - logic_logger - INFO
|
|
26
|
+
....Customer[30] {Update - Adjusting customer: balance} id: 30, name: Diana 1761320683854, balance: [0E-10-->] 1350.000000000000033306690739, credit_limit: 5000.0000000000, email: None, email_opt_out: None row: 0x10a44ba50 session: 0x10a377240 ins_upd_dlt: upd, initial: upd - 2025-10-24 08:44:43,862 - logic_logger - INFO
|
|
27
|
+
Logic Phase: COMMIT LOGIC (session=0x10a377240) - 2025-10-24 08:44:43,862 - logic_logger - INFO
|
|
28
|
+
Logic Phase: AFTER_FLUSH LOGIC (session=0x10a377240) - 2025-10-24 08:44:43,863 - logic_logger - INFO
|
|
29
|
+
..Order[26] {AfterFlush Event} id: 26, notes: Carbon neutral order - Carbon Neutral Discount Applied, customer_id: 30, CreatedOn: 2025-10-24 08:44:43.862584, date_shipped: None, amount_total: 1350.000000000000033306690739 row: 0x10a3cbe50 session: 0x10a377240 ins_upd_dlt: ins, initial: ins - 2025-10-24 08:44:43,863 - logic_logger - INFO
|
|
30
|
+
..Order[26] {Sending Order to Shipping [Note: **Kafka not enabled** ]} id: 26, notes: Carbon neutral order - Carbon Neutral Discount Applied, customer_id: 30, CreatedOn: 2025-10-24 08:44:43.862584, date_shipped: None, amount_total: 1350.000000000000033306690739 row: 0x10a3cbe50 session: 0x10a377240 ins_upd_dlt: ins, initial: ins - 2025-10-24 08:44:43,863 - logic_logger - INFO
|
|
31
|
+
|
|
32
|
+
These Rules Fired (see Logic Phases, above, for actual order): ## - 2025-10-24 08:44:43,863 - logic_logger - INFO
|
|
33
|
+
Customer ## - 2025-10-24 08:44:43,863 - logic_logger - INFO
|
|
34
|
+
1. Derive <class 'database.models.Customer'>.balance as Sum(Order.amount_total Where Rule.sum(derive=Customer.balance, as_sum_of=Order.amount_total, where=lambda row: row.date_shipped is None) - <function declare_logic.<locals>.<lambda> at 0x109355260>) ## - 2025-10-24 08:44:43,863 - logic_logger - INFO
|
|
35
|
+
Item ## - 2025-10-24 08:44:43,863 - logic_logger - INFO
|
|
36
|
+
2. Derive <class 'database.models.Item'>.unit_price as Copy(product.unit_price) ## - 2025-10-24 08:44:43,863 - logic_logger - INFO
|
|
37
|
+
3. Derive <class 'database.models.Item'>.amount as Formula (1): <function> ## - 2025-10-24 08:44:43,863 - logic_logger - INFO
|
|
38
|
+
Order ## - 2025-10-24 08:44:43,863 - logic_logger - INFO
|
|
39
|
+
4. Derive <class 'database.models.Order'>.amount_total as Sum(Item.amount Where - None) ## - 2025-10-24 08:44:43,863 - logic_logger - INFO
|
|
40
|
+
5. RowEvent Order.send_order_to_shipping() ## - 2025-10-24 08:44:43,863 - logic_logger - INFO
|
|
41
|
+
|
|
42
|
+
Logic Phase: COMPLETE(session=0x10a377240)) - 2025-10-24 08:44:43,863 - logic_logger - INFO
|
|
43
|
+
|
|
44
|
+
Logic Phase: ROW LOGIC (session=0x10a377ce0) (sqlalchemy before_flush) - 2025-10-24 08:44:43,873 - logic_logger - INFO
|
|
45
|
+
..Customer[None] {Insert - client} id: None, name: Charlie 1761320683872, balance: 0, credit_limit: 2000, email: None, email_opt_out: None row: 0x10a48c250 session: 0x10a377ce0 ins_upd_dlt: ins, initial: ins - 2025-10-24 08:44:43,873 - logic_logger - INFO
|
|
46
|
+
..Customer[None] {server aggregate_defaults: balance } id: None, name: Charlie 1761320683872, balance: 0, credit_limit: 2000, email: None, email_opt_out: None row: 0x10a48c250 session: 0x10a377ce0 ins_upd_dlt: ins, initial: ins - 2025-10-24 08:44:43,873 - logic_logger - INFO
|
|
47
|
+
Logic Phase: COMMIT LOGIC (session=0x10a377ce0) - 2025-10-24 08:44:43,874 - logic_logger - INFO
|
|
48
|
+
Logic Phase: AFTER_FLUSH LOGIC (session=0x10a377ce0) - 2025-10-24 08:44:43,874 - logic_logger - INFO
|
|
49
|
+
|
|
50
|
+
These Rules Fired (see Logic Phases, above, for actual order): ## - 2025-10-24 08:44:43,874 - logic_logger - INFO
|
|
51
|
+
|
|
52
|
+
Logic Phase: COMPLETE(session=0x10a377ce0)) - 2025-10-24 08:44:43,874 - logic_logger - INFO
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
|
|
2
|
+
Change Order Customer
|
|
3
|
+
- 2025-10-24 08:44:43,976 - logic_logger - INFO
|
|
4
|
+
|
|
5
|
+
Logic Phase: ROW LOGIC (session=0x10a376f10) (sqlalchemy before_flush) - 2025-10-24 08:44:43,978 - logic_logger - INFO
|
|
6
|
+
..Order[30] {Update - client} id: 30, notes: Test order - Change Order Customer, customer_id: [34-->] 35, CreatedOn: 2025-10-24, date_shipped: None, amount_total: 450.0000000000 row: 0x10a4490d0 session: 0x10a376f10 ins_upd_dlt: upd, initial: upd - 2025-10-24 08:44:43,978 - logic_logger - INFO
|
|
7
|
+
....Customer[35] {Update - Adjusting customer: balance, balance} id: 35, name: Bob 1761320683960, balance: [0E-10-->] 450.0000000000, credit_limit: 3000.0000000000, email: None, email_opt_out: None row: 0x10a44a7d0 session: 0x10a376f10 ins_upd_dlt: upd, initial: upd - 2025-10-24 08:44:43,978 - logic_logger - INFO
|
|
8
|
+
....Customer[34] {Update - Adjusting Old customer} id: 34, name: Alice 1761320683958, balance: [450.0000000000-->] 0E-10, credit_limit: 5000.0000000000, email: None, email_opt_out: None row: 0x10a44bad0 session: 0x10a376f10 ins_upd_dlt: upd, initial: upd - 2025-10-24 08:44:43,979 - logic_logger - INFO
|
|
9
|
+
Logic Phase: COMMIT LOGIC (session=0x10a376f10) - 2025-10-24 08:44:43,979 - logic_logger - INFO
|
|
10
|
+
Logic Phase: AFTER_FLUSH LOGIC (session=0x10a376f10) - 2025-10-24 08:44:43,979 - logic_logger - INFO
|
|
11
|
+
..Order[30] {AfterFlush Event} id: 30, notes: Test order - Change Order Customer, customer_id: [34-->] 35, CreatedOn: 2025-10-24, date_shipped: None, amount_total: 450.0000000000 row: 0x10a4490d0 session: 0x10a376f10 ins_upd_dlt: upd, initial: upd - 2025-10-24 08:44:43,979 - logic_logger - INFO
|
|
12
|
+
|
|
13
|
+
These Rules Fired (see Logic Phases, above, for actual order): ## - 2025-10-24 08:44:43,979 - logic_logger - INFO
|
|
14
|
+
Customer ## - 2025-10-24 08:44:43,979 - logic_logger - INFO
|
|
15
|
+
1. Derive <class 'database.models.Customer'>.balance as Sum(Order.amount_total Where Rule.sum(derive=Customer.balance, as_sum_of=Order.amount_total, where=lambda row: row.date_shipped is None) - <function declare_logic.<locals>.<lambda> at 0x109355260>) ## - 2025-10-24 08:44:43,979 - logic_logger - INFO
|
|
16
|
+
Order ## - 2025-10-24 08:44:43,979 - logic_logger - INFO
|
|
17
|
+
2. RowEvent Order.send_order_to_shipping() ## - 2025-10-24 08:44:43,979 - logic_logger - INFO
|
|
18
|
+
|
|
19
|
+
Logic Phase: COMPLETE(session=0x10a376f10)) - 2025-10-24 08:44:43,979 - logic_logger - INFO
|
|
20
|
+
|
|
21
|
+
Logic Phase: ROW LOGIC (session=0x10a375590) (sqlalchemy before_flush) - 2025-10-24 08:44:43,985 - logic_logger - INFO
|
|
22
|
+
..Customer[None] {Insert - client} id: None, name: Charlie 1761320683984, balance: 0, credit_limit: 2000, email: None, email_opt_out: None row: 0x10a48cf50 session: 0x10a375590 ins_upd_dlt: ins, initial: ins - 2025-10-24 08:44:43,985 - logic_logger - INFO
|
|
23
|
+
..Customer[None] {server aggregate_defaults: balance } id: None, name: Charlie 1761320683984, balance: 0, credit_limit: 2000, email: None, email_opt_out: None row: 0x10a48cf50 session: 0x10a375590 ins_upd_dlt: ins, initial: ins - 2025-10-24 08:44:43,985 - logic_logger - INFO
|
|
24
|
+
Logic Phase: COMMIT LOGIC (session=0x10a375590) - 2025-10-24 08:44:43,985 - logic_logger - INFO
|
|
25
|
+
Logic Phase: AFTER_FLUSH LOGIC (session=0x10a375590) - 2025-10-24 08:44:43,985 - logic_logger - INFO
|
|
26
|
+
|
|
27
|
+
These Rules Fired (see Logic Phases, above, for actual order): ## - 2025-10-24 08:44:43,985 - logic_logger - INFO
|
|
28
|
+
|
|
29
|
+
Logic Phase: COMPLETE(session=0x10a375590)) - 2025-10-24 08:44:43,985 - logic_logger - INFO
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
|
|
2
|
+
Change Product in Item
|
|
3
|
+
- 2025-10-24 08:44:43,917 - logic_logger - INFO
|
|
4
|
+
|
|
5
|
+
Logic Phase: ROW LOGIC (session=0x10a376140) (sqlalchemy before_flush) - 2025-10-24 08:44:43,920 - logic_logger - INFO
|
|
6
|
+
..Item[33] {Update - client} id: 33, order_id: 28, product_id: [2-->] 1, quantity: 5, amount: 450.0000000000, unit_price: 90.0000000000 row: 0x10a44a4d0 session: 0x10a376140 ins_upd_dlt: upd, initial: upd - 2025-10-24 08:44:43,921 - logic_logger - INFO
|
|
7
|
+
..Item[33] {copy_rules for role: product - unit_price} id: 33, order_id: 28, product_id: [2-->] 1, quantity: 5, amount: 450.0000000000, unit_price: [90.0000000000-->] 150.0000000000 row: 0x10a44a4d0 session: 0x10a376140 ins_upd_dlt: upd, initial: upd - 2025-10-24 08:44:43,921 - logic_logger - INFO
|
|
8
|
+
..Item[33] {Formula amount} id: 33, order_id: 28, product_id: [2-->] 1, quantity: 5, amount: [450.0000000000-->] 750.0000000000, unit_price: [90.0000000000-->] 150.0000000000 row: 0x10a44a4d0 session: 0x10a376140 ins_upd_dlt: upd, initial: upd - 2025-10-24 08:44:43,921 - logic_logger - INFO
|
|
9
|
+
....Order[28] {Update - Adjusting order: amount_total} id: 28, notes: Test order - Change Product in Item, customer_id: 32, CreatedOn: 2025-10-24, date_shipped: None, amount_total: [450.0000000000-->] 750.0000000000 row: 0x10a44bb50 session: 0x10a376140 ins_upd_dlt: upd, initial: upd - 2025-10-24 08:44:43,921 - logic_logger - INFO
|
|
10
|
+
......Customer[32] {Update - Adjusting customer: balance} id: 32, name: Alice 1761320683899, balance: [450.0000000000-->] 750.0000000000, credit_limit: 5000.0000000000, email: None, email_opt_out: None row: 0x10a44be50 session: 0x10a376140 ins_upd_dlt: upd, initial: upd - 2025-10-24 08:44:43,921 - logic_logger - INFO
|
|
11
|
+
Logic Phase: COMMIT LOGIC (session=0x10a376140) - 2025-10-24 08:44:43,922 - logic_logger - INFO
|
|
12
|
+
Logic Phase: AFTER_FLUSH LOGIC (session=0x10a376140) - 2025-10-24 08:44:43,922 - logic_logger - INFO
|
|
13
|
+
....Order[28] {AfterFlush Event} id: 28, notes: Test order - Change Product in Item, customer_id: 32, CreatedOn: 2025-10-24, date_shipped: None, amount_total: [450.0000000000-->] 750.0000000000 row: 0x10a44bb50 session: 0x10a376140 ins_upd_dlt: upd, initial: upd - 2025-10-24 08:44:43,922 - logic_logger - INFO
|
|
14
|
+
|
|
15
|
+
These Rules Fired (see Logic Phases, above, for actual order): ## - 2025-10-24 08:44:43,922 - logic_logger - INFO
|
|
16
|
+
Customer ## - 2025-10-24 08:44:43,922 - logic_logger - INFO
|
|
17
|
+
1. Derive <class 'database.models.Customer'>.balance as Sum(Order.amount_total Where Rule.sum(derive=Customer.balance, as_sum_of=Order.amount_total, where=lambda row: row.date_shipped is None) - <function declare_logic.<locals>.<lambda> at 0x109355260>) ## - 2025-10-24 08:44:43,922 - logic_logger - INFO
|
|
18
|
+
Item ## - 2025-10-24 08:44:43,922 - logic_logger - INFO
|
|
19
|
+
2. Derive <class 'database.models.Item'>.unit_price as Copy(product.unit_price) ## - 2025-10-24 08:44:43,922 - logic_logger - INFO
|
|
20
|
+
3. Derive <class 'database.models.Item'>.amount as Formula (1): <function> ## - 2025-10-24 08:44:43,922 - logic_logger - INFO
|
|
21
|
+
Order ## - 2025-10-24 08:44:43,922 - logic_logger - INFO
|
|
22
|
+
4. Derive <class 'database.models.Order'>.amount_total as Sum(Item.amount Where - None) ## - 2025-10-24 08:44:43,922 - logic_logger - INFO
|
|
23
|
+
5. RowEvent Order.send_order_to_shipping() ## - 2025-10-24 08:44:43,922 - logic_logger - INFO
|
|
24
|
+
|
|
25
|
+
Logic Phase: COMPLETE(session=0x10a376140)) - 2025-10-24 08:44:43,922 - logic_logger - INFO
|
|
26
|
+
|
|
27
|
+
Logic Phase: ROW LOGIC (session=0x10a377680) (sqlalchemy before_flush) - 2025-10-24 08:44:43,931 - logic_logger - INFO
|
|
28
|
+
..Customer[None] {Insert - client} id: None, name: Bob 1761320683930, balance: 0, credit_limit: 3000, email: None, email_opt_out: None row: 0x10a48ce50 session: 0x10a377680 ins_upd_dlt: ins, initial: ins - 2025-10-24 08:44:43,931 - logic_logger - INFO
|
|
29
|
+
..Customer[None] {server aggregate_defaults: balance } id: None, name: Bob 1761320683930, balance: 0, credit_limit: 3000, email: None, email_opt_out: None row: 0x10a48ce50 session: 0x10a377680 ins_upd_dlt: ins, initial: ins - 2025-10-24 08:44:43,931 - logic_logger - INFO
|
|
30
|
+
Logic Phase: COMMIT LOGIC (session=0x10a377680) - 2025-10-24 08:44:43,931 - logic_logger - INFO
|
|
31
|
+
Logic Phase: AFTER_FLUSH LOGIC (session=0x10a377680) - 2025-10-24 08:44:43,931 - logic_logger - INFO
|
|
32
|
+
|
|
33
|
+
These Rules Fired (see Logic Phases, above, for actual order): ## - 2025-10-24 08:44:43,931 - logic_logger - INFO
|
|
34
|
+
|
|
35
|
+
Logic Phase: COMPLETE(session=0x10a377680)) - 2025-10-24 08:44:43,931 - logic_logger - INFO
|
|
@@ -1,20 +1,40 @@
|
|
|
1
1
|
|
|
2
|
-
Delete Item Reduces Order
|
|
3
|
-
- 2025-10-
|
|
4
|
-
|
|
5
|
-
Logic Phase: ROW LOGIC (session=
|
|
6
|
-
..Item[
|
|
7
|
-
....Order[
|
|
8
|
-
......Customer[
|
|
9
|
-
Logic Phase: COMMIT LOGIC (session=
|
|
10
|
-
Logic Phase: AFTER_FLUSH LOGIC (session=
|
|
11
|
-
....Order[
|
|
12
|
-
|
|
13
|
-
These Rules Fired (see Logic Phases, above, for actual order): ## - 2025-10-
|
|
14
|
-
Customer ## - 2025-10-
|
|
15
|
-
1. Derive <class 'database.models.Customer'>.balance as Sum(Order.amount_total Where Rule.sum(derive=Customer.balance, as_sum_of=Order.amount_total, where=lambda row: row.date_shipped is None) - <function declare_logic.<locals>.<lambda> at
|
|
16
|
-
Order ## - 2025-10-
|
|
17
|
-
2. RowEvent Order.send_order_to_shipping() ## - 2025-10-
|
|
18
|
-
3. Derive <class 'database.models.Order'>.amount_total as Sum(Item.amount Where - None) ## - 2025-10-
|
|
19
|
-
|
|
20
|
-
Logic Phase: COMPLETE(session=
|
|
2
|
+
Delete Item Reduces Order
|
|
3
|
+
- 2025-10-24 08:44:43,951 - logic_logger - INFO
|
|
4
|
+
|
|
5
|
+
Logic Phase: ROW LOGIC (session=0x10a377df0) (sqlalchemy before_flush) - 2025-10-24 08:44:43,952 - logic_logger - INFO
|
|
6
|
+
..Item[34] {Delete - client} id: 34, order_id: 29, product_id: 2, quantity: 3, amount: 270.0000000000, unit_price: 90.0000000000 row: 0x10a448650 session: 0x10a377df0 ins_upd_dlt: dlt, initial: dlt - 2025-10-24 08:44:43,952 - logic_logger - INFO
|
|
7
|
+
....Order[29] {Update - Adjusting order: amount_total} id: 29, notes: Test order - Delete Item Reduces Order, customer_id: 33, CreatedOn: 2025-10-24, date_shipped: None, amount_total: [570.0000000000-->] 300.0000000000 row: 0x10a44b3d0 session: 0x10a377df0 ins_upd_dlt: upd, initial: upd - 2025-10-24 08:44:43,952 - logic_logger - INFO
|
|
8
|
+
......Customer[33] {Update - Adjusting customer: balance} id: 33, name: Bob 1761320683930, balance: [570.0000000000-->] 300.0000000000, credit_limit: 3000.0000000000, email: None, email_opt_out: None row: 0x10a3cbcd0 session: 0x10a377df0 ins_upd_dlt: upd, initial: upd - 2025-10-24 08:44:43,953 - logic_logger - INFO
|
|
9
|
+
Logic Phase: COMMIT LOGIC (session=0x10a377df0) - 2025-10-24 08:44:43,953 - logic_logger - INFO
|
|
10
|
+
Logic Phase: AFTER_FLUSH LOGIC (session=0x10a377df0) - 2025-10-24 08:44:43,953 - logic_logger - INFO
|
|
11
|
+
....Order[29] {AfterFlush Event} id: 29, notes: Test order - Delete Item Reduces Order, customer_id: 33, CreatedOn: 2025-10-24, date_shipped: None, amount_total: [570.0000000000-->] 300.0000000000 row: 0x10a44b3d0 session: 0x10a377df0 ins_upd_dlt: upd, initial: upd - 2025-10-24 08:44:43,953 - logic_logger - INFO
|
|
12
|
+
|
|
13
|
+
These Rules Fired (see Logic Phases, above, for actual order): ## - 2025-10-24 08:44:43,953 - logic_logger - INFO
|
|
14
|
+
Customer ## - 2025-10-24 08:44:43,953 - logic_logger - INFO
|
|
15
|
+
1. Derive <class 'database.models.Customer'>.balance as Sum(Order.amount_total Where Rule.sum(derive=Customer.balance, as_sum_of=Order.amount_total, where=lambda row: row.date_shipped is None) - <function declare_logic.<locals>.<lambda> at 0x109355260>) ## - 2025-10-24 08:44:43,954 - logic_logger - INFO
|
|
16
|
+
Order ## - 2025-10-24 08:44:43,954 - logic_logger - INFO
|
|
17
|
+
2. RowEvent Order.send_order_to_shipping() ## - 2025-10-24 08:44:43,954 - logic_logger - INFO
|
|
18
|
+
3. Derive <class 'database.models.Order'>.amount_total as Sum(Item.amount Where - None) ## - 2025-10-24 08:44:43,954 - logic_logger - INFO
|
|
19
|
+
|
|
20
|
+
Logic Phase: COMPLETE(session=0x10a377df0)) - 2025-10-24 08:44:43,954 - logic_logger - INFO
|
|
21
|
+
|
|
22
|
+
Logic Phase: ROW LOGIC (session=0x10a376f10) (sqlalchemy before_flush) - 2025-10-24 08:44:43,958 - logic_logger - INFO
|
|
23
|
+
..Customer[None] {Insert - client} id: None, name: Alice 1761320683958, balance: 0, credit_limit: 5000, email: None, email_opt_out: None row: 0x10a48cd50 session: 0x10a376f10 ins_upd_dlt: ins, initial: ins - 2025-10-24 08:44:43,959 - logic_logger - INFO
|
|
24
|
+
..Customer[None] {server aggregate_defaults: balance } id: None, name: Alice 1761320683958, balance: 0, credit_limit: 5000, email: None, email_opt_out: None row: 0x10a48cd50 session: 0x10a376f10 ins_upd_dlt: ins, initial: ins - 2025-10-24 08:44:43,959 - logic_logger - INFO
|
|
25
|
+
Logic Phase: COMMIT LOGIC (session=0x10a376f10) - 2025-10-24 08:44:43,959 - logic_logger - INFO
|
|
26
|
+
Logic Phase: AFTER_FLUSH LOGIC (session=0x10a376f10) - 2025-10-24 08:44:43,959 - logic_logger - INFO
|
|
27
|
+
|
|
28
|
+
These Rules Fired (see Logic Phases, above, for actual order): ## - 2025-10-24 08:44:43,959 - logic_logger - INFO
|
|
29
|
+
|
|
30
|
+
Logic Phase: COMPLETE(session=0x10a376f10)) - 2025-10-24 08:44:43,959 - logic_logger - INFO
|
|
31
|
+
|
|
32
|
+
Logic Phase: ROW LOGIC (session=0x10a374e20) (sqlalchemy before_flush) - 2025-10-24 08:44:43,961 - logic_logger - INFO
|
|
33
|
+
..Customer[None] {Insert - client} id: None, name: Bob 1761320683960, balance: 0, credit_limit: 3000, email: None, email_opt_out: None row: 0x10a449350 session: 0x10a374e20 ins_upd_dlt: ins, initial: ins - 2025-10-24 08:44:43,961 - logic_logger - INFO
|
|
34
|
+
..Customer[None] {server aggregate_defaults: balance } id: None, name: Bob 1761320683960, balance: 0, credit_limit: 3000, email: None, email_opt_out: None row: 0x10a449350 session: 0x10a374e20 ins_upd_dlt: ins, initial: ins - 2025-10-24 08:44:43,961 - logic_logger - INFO
|
|
35
|
+
Logic Phase: COMMIT LOGIC (session=0x10a374e20) - 2025-10-24 08:44:43,962 - logic_logger - INFO
|
|
36
|
+
Logic Phase: AFTER_FLUSH LOGIC (session=0x10a374e20) - 2025-10-24 08:44:43,962 - logic_logger - INFO
|
|
37
|
+
|
|
38
|
+
These Rules Fired (see Logic Phases, above, for actual order): ## - 2025-10-24 08:44:43,962 - logic_logger - INFO
|
|
39
|
+
|
|
40
|
+
Logic Phase: COMPLETE(session=0x10a374e20)) - 2025-10-24 08:44:43,962 - logic_logger - INFO
|
|
@@ -1,46 +1,37 @@
|
|
|
1
1
|
|
|
2
|
-
Exceed Credit Limit Rejected
|
|
3
|
-
- 2025-10-
|
|
4
|
-
|
|
5
|
-
Logic Phase: ROW LOGIC (session=
|
|
6
|
-
..Customer[
|
|
7
|
-
Logic Phase: COMMIT LOGIC (session=
|
|
8
|
-
Logic Phase: AFTER_FLUSH LOGIC (session=
|
|
9
|
-
|
|
10
|
-
These Rules Fired (see Logic Phases, above, for actual order): ## - 2025-10-
|
|
11
|
-
|
|
12
|
-
Logic Phase: COMPLETE(session=
|
|
13
|
-
Logic Phase: ROW LOGIC IGNORE RE-RAISE(session=
|
|
14
|
-
|
|
15
|
-
Logic Phase: ROW LOGIC (session=
|
|
16
|
-
..Product[
|
|
17
|
-
..
|
|
18
|
-
..
|
|
19
|
-
..
|
|
20
|
-
|
|
21
|
-
..Item[None] {
|
|
22
|
-
|
|
23
|
-
..
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
Logic Phase: ROW LOGIC (session=0x10a00d6a0) (sqlalchemy before_flush) - 2025-10-20 11:28:01,830 - logic_logger - INFO
|
|
39
|
-
..Customer[None] {Insert - client} id: None, name: GreenBuyer 1760984881829, balance: 0, credit_limit: 2000, email: None, email_opt_out: None row: 0x10a2622d0 session: 0x10a00d6a0 ins_upd_dlt: ins, initial: ins - 2025-10-20 11:28:01,831 - logic_logger - INFO
|
|
40
|
-
..Customer[None] {server aggregate_defaults: balance } id: None, name: GreenBuyer 1760984881829, balance: 0, credit_limit: 2000, email: None, email_opt_out: None row: 0x10a2622d0 session: 0x10a00d6a0 ins_upd_dlt: ins, initial: ins - 2025-10-20 11:28:01,831 - logic_logger - INFO
|
|
41
|
-
Logic Phase: COMMIT LOGIC (session=0x10a00d6a0) - 2025-10-20 11:28:01,831 - logic_logger - INFO
|
|
42
|
-
Logic Phase: AFTER_FLUSH LOGIC (session=0x10a00d6a0) - 2025-10-20 11:28:01,831 - logic_logger - INFO
|
|
43
|
-
|
|
44
|
-
These Rules Fired (see Logic Phases, above, for actual order): ## - 2025-10-20 11:28:01,831 - logic_logger - INFO
|
|
45
|
-
|
|
46
|
-
Logic Phase: COMPLETE(session=0x10a00d6a0)) - 2025-10-20 11:28:01,831 - logic_logger - INFO
|
|
2
|
+
Exceed Credit Limit Rejected
|
|
3
|
+
- 2025-10-24 08:44:44,036 - logic_logger - INFO
|
|
4
|
+
|
|
5
|
+
Logic Phase: ROW LOGIC (session=0x10a377130) (sqlalchemy before_flush) - 2025-10-24 08:44:44,038 - logic_logger - INFO
|
|
6
|
+
..Customer[38] {Update - client} id: 38, name: Silent 1761320684031, balance: 0E-10, credit_limit: 1000.0000000000, email: None, email_opt_out: None row: 0x10a48c950 session: 0x10a377130 ins_upd_dlt: upd, initial: upd - 2025-10-24 08:44:44,038 - logic_logger - INFO
|
|
7
|
+
Logic Phase: COMMIT LOGIC (session=0x10a377130) - 2025-10-24 08:44:44,038 - logic_logger - INFO
|
|
8
|
+
Logic Phase: AFTER_FLUSH LOGIC (session=0x10a377130) - 2025-10-24 08:44:44,038 - logic_logger - INFO
|
|
9
|
+
|
|
10
|
+
These Rules Fired (see Logic Phases, above, for actual order): ## - 2025-10-24 08:44:44,038 - logic_logger - INFO
|
|
11
|
+
|
|
12
|
+
Logic Phase: COMPLETE(session=0x10a377130)) - 2025-10-24 08:44:44,038 - logic_logger - INFO
|
|
13
|
+
Logic Phase: ROW LOGIC IGNORE RE-RAISE(session=0x10a377130) (sqlalchemy before_flush) - 2025-10-24 08:44:44,038 - logic_logger - DEBUG
|
|
14
|
+
|
|
15
|
+
Logic Phase: ROW LOGIC (session=0x10a377130) (sqlalchemy before_flush) - 2025-10-24 08:44:44,038 - logic_logger - INFO
|
|
16
|
+
..Product[2] {Update - client} id: 2, name: Widget, unit_price: 90.0000000000, carbon_neutral: None row: 0x10a451400 session: 0x10a377130 ins_upd_dlt: upd, initial: upd - 2025-10-24 08:44:44,038 - logic_logger - INFO
|
|
17
|
+
..Item[None] {Insert - client} id: None, order_id: None, product_id: None, quantity: 20, amount: None, unit_price: None row: 0x10a3cbcd0 session: 0x10a377130 ins_upd_dlt: ins, initial: ins - 2025-10-24 08:44:44,039 - logic_logger - INFO
|
|
18
|
+
..Item[None] {copy_rules for role: product - unit_price} id: None, order_id: None, product_id: None, quantity: 20, amount: None, unit_price: 90.0000000000 row: 0x10a3cbcd0 session: 0x10a377130 ins_upd_dlt: ins, initial: ins - 2025-10-24 08:44:44,039 - logic_logger - INFO
|
|
19
|
+
..Item[None] {Formula amount} id: None, order_id: None, product_id: None, quantity: 20, amount: 1800.0000000000, unit_price: 90.0000000000 row: 0x10a3cbcd0 session: 0x10a377130 ins_upd_dlt: ins, initial: ins - 2025-10-24 08:44:44,039 - logic_logger - INFO
|
|
20
|
+
....Order[None] {server aggregate_defaults: amount_total } id: None, notes: Test order - Exceed Credit Limit Rejected, customer_id: 38, CreatedOn: None, date_shipped: None, amount_total: [None-->] 0 row: 0x10a3cb1d0 session: 0x10a377130 ins_upd_dlt: *, initial: * - 2025-10-24 08:44:44,039 - logic_logger - INFO
|
|
21
|
+
..Item[None] {TODO DB adjust_from_inserted/adopted_child adjusts Derive <class 'database.models.Order'>.amount_total as Sum(Item.amount Where - None)} id: None, order_id: None, product_id: None, quantity: 20, amount: 1800.0000000000, unit_price: 90.0000000000 row: 0x10a3cbcd0 session: 0x10a377130 ins_upd_dlt: ins, initial: ins - 2025-10-24 08:44:44,039 - logic_logger - INFO
|
|
22
|
+
....Order[None] {Adjustment logic chaining deferred for this parent parent do_defer_adjustment: True, is_parent_submitted: True, is_parent_row_processed: False, order} id: None, notes: Test order - Exceed Credit Limit Rejected, customer_id: 38, CreatedOn: None, date_shipped: None, amount_total: [None-->] 1800.0000000000 row: 0x10a3cb1d0 session: 0x10a377130 ins_upd_dlt: *, initial: * - 2025-10-24 08:44:44,039 - logic_logger - INFO
|
|
23
|
+
..Order[None] {Insert - client} id: None, notes: Test order - Exceed Credit Limit Rejected, customer_id: 38, CreatedOn: None, date_shipped: None, amount_total: 1800.0000000000 row: 0x10a3cb1d0 session: 0x10a377130 ins_upd_dlt: ins, initial: ins - 2025-10-24 08:44:44,039 - logic_logger - INFO
|
|
24
|
+
..Order[None] {early_row_event_all_classes - handle_all did stamping} id: None, notes: Test order - Exceed Credit Limit Rejected, customer_id: 38, CreatedOn: 2025-10-24 08:44:44.039537, date_shipped: None, amount_total: 1800.0000000000 row: 0x10a3cb1d0 session: 0x10a377130 ins_upd_dlt: ins, initial: ins - 2025-10-24 08:44:44,039 - logic_logger - INFO
|
|
25
|
+
..Order[None] {TODO DB adjust_from_inserted/adopted_child adjusts Derive <class 'database.models.Customer'>.balance as Sum(Order.amount_total Where Rule.sum(derive=Customer.balance, as_sum_of=Order.amount_total, where=lambda row: row.date_shipped is None) - <function declare_logic.<locals>.<lambda> at 0x109355260>)} id: None, notes: Test order - Exceed Credit Limit Rejected, customer_id: 38, CreatedOn: 2025-10-24 08:44:44.039537, date_shipped: None, amount_total: 1800.0000000000 row: 0x10a3cb1d0 session: 0x10a377130 ins_upd_dlt: ins, initial: ins - 2025-10-24 08:44:44,039 - logic_logger - INFO
|
|
26
|
+
....Customer[38] {Update - Adjusting customer: balance} id: 38, name: Silent 1761320684031, balance: [0E-10-->] 1800.0000000000, credit_limit: 1000.0000000000, email: None, email_opt_out: None row: 0x10a48c950 session: 0x10a377130 ins_upd_dlt: upd, initial: upd - 2025-10-24 08:44:44,039 - logic_logger - INFO
|
|
27
|
+
....Customer[38] {Constraint Failure: Customer balance (1800.0000000000) exceeds credit limit (1000.0000000000)} id: 38, name: Silent 1761320684031, balance: [0E-10-->] 1800.0000000000, credit_limit: 1000.0000000000, email: None, email_opt_out: None row: 0x10a48c950 session: 0x10a377130 ins_upd_dlt: upd, initial: upd - 2025-10-24 08:44:44,040 - logic_logger - INFO
|
|
28
|
+
|
|
29
|
+
These Rules Fired (see Logic Phases, above, for actual order): ## - 2025-10-24 08:44:44,040 - logic_logger - INFO
|
|
30
|
+
Customer ## - 2025-10-24 08:44:44,040 - logic_logger - INFO
|
|
31
|
+
1. Derive <class 'database.models.Customer'>.balance as Sum(Order.amount_total Where Rule.sum(derive=Customer.balance, as_sum_of=Order.amount_total, where=lambda row: row.date_shipped is None) - <function declare_logic.<locals>.<lambda> at 0x109355260>) ## - 2025-10-24 08:44:44,040 - logic_logger - INFO
|
|
32
|
+
2. Constraint Function: None ## - 2025-10-24 08:44:44,040 - logic_logger - INFO
|
|
33
|
+
Item ## - 2025-10-24 08:44:44,040 - logic_logger - INFO
|
|
34
|
+
3. Derive <class 'database.models.Item'>.unit_price as Copy(product.unit_price) ## - 2025-10-24 08:44:44,040 - logic_logger - INFO
|
|
35
|
+
4. Derive <class 'database.models.Item'>.amount as Formula (1): <function> ## - 2025-10-24 08:44:44,040 - logic_logger - INFO
|
|
36
|
+
Order ## - 2025-10-24 08:44:44,040 - logic_logger - INFO
|
|
37
|
+
5. Derive <class 'database.models.Order'>.amount_total as Sum(Item.amount Where - None) ## - 2025-10-24 08:44:44,040 - logic_logger - INFO
|