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.
Files changed (36) hide show
  1. api_logic_server_cli/api_logic_server.py +3 -1
  2. api_logic_server_cli/prototypes/base/.github/.copilot-instructions.md +114 -52
  3. api_logic_server_cli/prototypes/base/docs/training/testing.md +95 -9
  4. api_logic_server_cli/prototypes/base/test/api_logic_server_behave/behave_logic_report.py +19 -6
  5. api_logic_server_cli/prototypes/basic_demo/.github/.copilot-instructions.md +744 -0
  6. api_logic_server_cli/prototypes/basic_demo/customizations/logic/declare_logic.py +17 -1
  7. api_logic_server_cli/prototypes/basic_demo/readme.md +13 -5
  8. api_logic_server_cli/prototypes/basic_demo/tutor.md +1436 -0
  9. api_logic_server_cli/prototypes/manager/.github/.copilot-instructions.md +50 -23
  10. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/.github/.copilot-instructions.md +3 -0
  11. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/customizations/logic/declare_logic.py +17 -1
  12. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/docs/training/testing.md +95 -9
  13. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/iteration/logic/declare_logic.py +17 -1
  14. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/logic/declare_logic.py +38 -1
  15. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/features/order_processing.feature +59 -50
  16. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/features/steps/order_processing_steps.py +395 -248
  17. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/behave.log +66 -62
  18. 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
  19. 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
  20. 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
  21. 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
  22. 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
  23. 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
  24. 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
  25. 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
  26. 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
  27. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Transaction_Processing.log +26 -17
  28. 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
  29. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/reports/Behave Logic Report.md +361 -146
  30. api_logic_server_cli/prototypes/manager/system/ApiLogicServer-Internal-Dev/copilot-dev-context.md +270 -2
  31. {apilogicserver-15.2.3.dist-info → apilogicserver-15.2.10.dist-info}/METADATA +25 -16
  32. {apilogicserver-15.2.3.dist-info → apilogicserver-15.2.10.dist-info}/RECORD +36 -30
  33. {apilogicserver-15.2.3.dist-info → apilogicserver-15.2.10.dist-info}/WHEEL +0 -0
  34. {apilogicserver-15.2.3.dist-info → apilogicserver-15.2.10.dist-info}/entry_points.txt +0 -0
  35. {apilogicserver-15.2.3.dist-info → apilogicserver-15.2.10.dist-info}/licenses/LICENSE +0 -0
  36. {apilogicserver-15.2.3.dist-info → apilogicserver-15.2.10.dist-info}/top_level.txt +0 -0
@@ -1,42 +1,52 @@
1
1
 
2
2
  Good Order Placed via B2B API
3
- - 2025-10-20 11:28:01,655 - logic_logger - INFO
4
-
5
- Logic Phase: ROW LOGIC (session=0x10a00e250) (sqlalchemy before_flush) - 2025-10-20 11:28:01,657 - logic_logger - INFO
6
- ..Customer[164] {Update - client} id: 164, name: Alice 1760984881645, balance: 0E-10, credit_limit: 1000.0000000000, email: None, email_opt_out: None row: 0x10a261fd0 session: 0x10a00e250 ins_upd_dlt: upd, initial: upd - 2025-10-20 11:28:01,657 - logic_logger - INFO
7
- Logic Phase: COMMIT LOGIC (session=0x10a00e250) - 2025-10-20 11:28:01,657 - logic_logger - INFO
8
- Logic Phase: AFTER_FLUSH LOGIC (session=0x10a00e250) - 2025-10-20 11:28:01,657 - logic_logger - INFO
9
-
10
- These Rules Fired (see Logic Phases, above, for actual order): ## - 2025-10-20 11:28:01,657 - logic_logger - INFO
11
-
12
- Logic Phase: COMPLETE(session=0x10a00e250)) - 2025-10-20 11:28:01,657 - logic_logger - INFO
13
- Logic Phase: ROW LOGIC IGNORE RE-RAISE(session=0x10a00e250) (sqlalchemy before_flush) - 2025-10-20 11:28:01,658 - logic_logger - DEBUG
14
-
15
- Logic Phase: ROW LOGIC (session=0x10a00e250) (sqlalchemy before_flush) - 2025-10-20 11:28:01,658 - logic_logger - INFO
16
- ..Product[2] {Update - client} id: 2, name: Widget, unit_price: 90.0000000000, carbon_neutral: None row: 0x10a187cb0 session: 0x10a00e250 ins_upd_dlt: upd, initial: upd - 2025-10-20 11:28:01,658 - logic_logger - INFO
17
- ..Item[None] {Insert - client} id: None, order_id: None, product_id: None, quantity: 5, amount: None, unit_price: None row: 0x10a190dd0 session: 0x10a00e250 ins_upd_dlt: ins, initial: ins - 2025-10-20 11:28:01,658 - logic_logger - INFO
18
- ..Item[None] {copy_rules for role: product - unit_price} id: None, order_id: None, product_id: None, quantity: 5, amount: None, unit_price: 90.0000000000 row: 0x10a190dd0 session: 0x10a00e250 ins_upd_dlt: ins, initial: ins - 2025-10-20 11:28:01,658 - logic_logger - INFO
19
- ..Item[None] {Formula amount} id: None, order_id: None, product_id: None, quantity: 5, amount: 450.0000000000, unit_price: 90.0000000000 row: 0x10a190dd0 session: 0x10a00e250 ins_upd_dlt: ins, initial: ins - 2025-10-20 11:28:01,658 - logic_logger - INFO
20
- ....Order[None] {server aggregate_defaults: amount_total } id: None, notes: Test order, customer_id: 164, CreatedOn: None, date_shipped: None, amount_total: [None-->] 0 row: 0x10a17ff50 session: 0x10a00e250 ins_upd_dlt: *, initial: * - 2025-10-20 11:28:01,658 - 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: 5, amount: 450.0000000000, unit_price: 90.0000000000 row: 0x10a190dd0 session: 0x10a00e250 ins_upd_dlt: ins, initial: ins - 2025-10-20 11:28:01,659 - 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, customer_id: 164, CreatedOn: None, date_shipped: None, amount_total: [None-->] 450.0000000000 row: 0x10a17ff50 session: 0x10a00e250 ins_upd_dlt: *, initial: * - 2025-10-20 11:28:01,659 - logic_logger - INFO
23
- ..Order[None] {Insert - client} id: None, notes: Test order, customer_id: 164, CreatedOn: None, date_shipped: None, amount_total: 450.0000000000 row: 0x10a17ff50 session: 0x10a00e250 ins_upd_dlt: ins, initial: ins - 2025-10-20 11:28:01,659 - logic_logger - INFO
24
- ..Order[None] {early_row_event_all_classes - handle_all did stamping} id: None, notes: Test order, customer_id: 164, CreatedOn: 2025-10-20 11:28:01.659156, date_shipped: None, amount_total: 450.0000000000 row: 0x10a17ff50 session: 0x10a00e250 ins_upd_dlt: ins, initial: ins - 2025-10-20 11:28:01,659 - 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 0x108fed080>)} id: None, notes: Test order, customer_id: 164, CreatedOn: 2025-10-20 11:28:01.659156, date_shipped: None, amount_total: 450.0000000000 row: 0x10a17ff50 session: 0x10a00e250 ins_upd_dlt: ins, initial: ins - 2025-10-20 11:28:01,659 - logic_logger - INFO
26
- ....Customer[164] {Update - Adjusting customer: balance} id: 164, name: Alice 1760984881645, balance: [0E-10-->] 450.0000000000, credit_limit: 1000.0000000000, email: None, email_opt_out: None row: 0x10a261fd0 session: 0x10a00e250 ins_upd_dlt: upd, initial: upd - 2025-10-20 11:28:01,659 - logic_logger - INFO
27
- Logic Phase: COMMIT LOGIC (session=0x10a00e250) - 2025-10-20 11:28:01,659 - logic_logger - INFO
28
- Logic Phase: AFTER_FLUSH LOGIC (session=0x10a00e250) - 2025-10-20 11:28:01,660 - logic_logger - INFO
29
- ..Order[131] {AfterFlush Event} id: 131, notes: Test order, customer_id: 164, CreatedOn: 2025-10-20 11:28:01.659156, date_shipped: None, amount_total: 450.0000000000 row: 0x10a17ff50 session: 0x10a00e250 ins_upd_dlt: ins, initial: ins - 2025-10-20 11:28:01,660 - logic_logger - INFO
30
- ..Order[131] {Sending Order to Shipping [Note: **Kafka not enabled** ]} id: 131, notes: Test order, customer_id: 164, CreatedOn: 2025-10-20 11:28:01.659156, date_shipped: None, amount_total: 450.0000000000 row: 0x10a17ff50 session: 0x10a00e250 ins_upd_dlt: ins, initial: ins - 2025-10-20 11:28:01,660 - logic_logger - INFO
31
-
32
- These Rules Fired (see Logic Phases, above, for actual order): ## - 2025-10-20 11:28:01,660 - logic_logger - INFO
33
- Customer ## - 2025-10-20 11:28:01,660 - 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 0x108fed080>) ## - 2025-10-20 11:28:01,660 - logic_logger - INFO
35
- Item ## - 2025-10-20 11:28:01,660 - logic_logger - INFO
36
- 2. Derive <class 'database.models.Item'>.amount as Formula (1): <function> ## - 2025-10-20 11:28:01,660 - logic_logger - INFO
37
- 3. Derive <class 'database.models.Item'>.unit_price as Copy(product.unit_price) ## - 2025-10-20 11:28:01,660 - logic_logger - INFO
38
- Order ## - 2025-10-20 11:28:01,660 - logic_logger - INFO
39
- 4. Derive <class 'database.models.Order'>.amount_total as Sum(Item.amount Where - None) ## - 2025-10-20 11:28:01,660 - logic_logger - INFO
40
- 5. RowEvent Order.send_order_to_shipping() ## - 2025-10-20 11:28:01,660 - logic_logger - INFO
41
-
42
- Logic Phase: COMPLETE(session=0x10a00e250)) - 2025-10-20 11:28:01,660 - logic_logger - INFO
3
+ - 2025-10-24 08:44:43,812 - logic_logger - INFO
4
+
5
+ Logic Phase: ROW LOGIC (session=0x10a377ac0) (sqlalchemy before_flush) - 2025-10-24 08:44:43,816 - logic_logger - INFO
6
+ ..Customer[28] {Update - client} id: 28, name: Alice 1761320683776, balance: 0E-10, credit_limit: 5000.0000000000, email: None, email_opt_out: None row: 0x10a56d4d0 session: 0x10a377ac0 ins_upd_dlt: upd, initial: upd - 2025-10-24 08:44:43,817 - logic_logger - INFO
7
+ Logic Phase: COMMIT LOGIC (session=0x10a377ac0) - 2025-10-24 08:44:43,817 - logic_logger - INFO
8
+ Logic Phase: AFTER_FLUSH LOGIC (session=0x10a377ac0) - 2025-10-24 08:44:43,817 - logic_logger - INFO
9
+
10
+ These Rules Fired (see Logic Phases, above, for actual order): ## - 2025-10-24 08:44:43,817 - logic_logger - INFO
11
+
12
+ Logic Phase: COMPLETE(session=0x10a377ac0)) - 2025-10-24 08:44:43,817 - logic_logger - INFO
13
+ Logic Phase: ROW LOGIC IGNORE RE-RAISE(session=0x10a377ac0) (sqlalchemy before_flush) - 2025-10-24 08:44:43,818 - logic_logger - DEBUG
14
+
15
+ Logic Phase: ROW LOGIC (session=0x10a377ac0) (sqlalchemy before_flush) - 2025-10-24 08:44:43,818 - logic_logger - INFO
16
+ ..Product[2] {Update - client} id: 2, name: Widget, unit_price: 90.0000000000, carbon_neutral: None row: 0x10a452dd0 session: 0x10a377ac0 ins_upd_dlt: upd, initial: upd - 2025-10-24 08:44:43,818 - logic_logger - INFO
17
+ ..Item[None] {Insert - client} id: None, order_id: None, product_id: None, quantity: 5, amount: None, unit_price: None row: 0x10a56dcd0 session: 0x10a377ac0 ins_upd_dlt: ins, initial: ins - 2025-10-24 08:44:43,818 - logic_logger - INFO
18
+ ..Item[None] {copy_rules for role: product - unit_price} id: None, order_id: None, product_id: None, quantity: 5, amount: None, unit_price: 90.0000000000 row: 0x10a56dcd0 session: 0x10a377ac0 ins_upd_dlt: ins, initial: ins - 2025-10-24 08:44:43,818 - logic_logger - INFO
19
+ ..Item[None] {Formula amount} id: None, order_id: None, product_id: None, quantity: 5, amount: 450.0000000000, unit_price: 90.0000000000 row: 0x10a56dcd0 session: 0x10a377ac0 ins_upd_dlt: ins, initial: ins - 2025-10-24 08:44:43,818 - logic_logger - INFO
20
+ ....Order[None] {server aggregate_defaults: amount_total } id: None, notes: Test order - Good Order Placed via B2B API, customer_id: 28, CreatedOn: None, date_shipped: None, amount_total: [None-->] 0 row: 0x10a48ced0 session: 0x10a377ac0 ins_upd_dlt: *, initial: * - 2025-10-24 08:44:43,818 - 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: 5, amount: 450.0000000000, unit_price: 90.0000000000 row: 0x10a56dcd0 session: 0x10a377ac0 ins_upd_dlt: ins, initial: ins - 2025-10-24 08:44:43,818 - 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 - Good Order Placed via B2B API, customer_id: 28, CreatedOn: None, date_shipped: None, amount_total: [None-->] 450.0000000000 row: 0x10a48ced0 session: 0x10a377ac0 ins_upd_dlt: *, initial: * - 2025-10-24 08:44:43,818 - logic_logger - INFO
23
+ ..Order[None] {Insert - client} id: None, notes: Test order - Good Order Placed via B2B API, customer_id: 28, CreatedOn: None, date_shipped: None, amount_total: 450.0000000000 row: 0x10a48ced0 session: 0x10a377ac0 ins_upd_dlt: ins, initial: ins - 2025-10-24 08:44:43,818 - logic_logger - INFO
24
+ ..Order[None] {early_row_event_all_classes - handle_all did stamping} id: None, notes: Test order - Good Order Placed via B2B API, customer_id: 28, CreatedOn: 2025-10-24 08:44:43.819005, date_shipped: None, amount_total: 450.0000000000 row: 0x10a48ced0 session: 0x10a377ac0 ins_upd_dlt: ins, initial: ins - 2025-10-24 08:44:43,819 - 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 - Good Order Placed via B2B API, customer_id: 28, CreatedOn: 2025-10-24 08:44:43.819005, date_shipped: None, amount_total: 450.0000000000 row: 0x10a48ced0 session: 0x10a377ac0 ins_upd_dlt: ins, initial: ins - 2025-10-24 08:44:43,819 - logic_logger - INFO
26
+ ....Customer[28] {Update - Adjusting customer: balance} id: 28, name: Alice 1761320683776, balance: [0E-10-->] 450.0000000000, credit_limit: 5000.0000000000, email: None, email_opt_out: None row: 0x10a56d4d0 session: 0x10a377ac0 ins_upd_dlt: upd, initial: upd - 2025-10-24 08:44:43,819 - logic_logger - INFO
27
+ Logic Phase: COMMIT LOGIC (session=0x10a377ac0) - 2025-10-24 08:44:43,819 - logic_logger - INFO
28
+ Logic Phase: AFTER_FLUSH LOGIC (session=0x10a377ac0) - 2025-10-24 08:44:43,820 - logic_logger - INFO
29
+ ..Order[24] {AfterFlush Event} id: 24, notes: Test order - Good Order Placed via B2B API, customer_id: 28, CreatedOn: 2025-10-24 08:44:43.819005, date_shipped: None, amount_total: 450.0000000000 row: 0x10a48ced0 session: 0x10a377ac0 ins_upd_dlt: ins, initial: ins - 2025-10-24 08:44:43,820 - logic_logger - INFO
30
+ ..Order[24] {Sending Order to Shipping [Note: **Kafka not enabled** ]} id: 24, notes: Test order - Good Order Placed via B2B API, customer_id: 28, CreatedOn: 2025-10-24 08:44:43.819005, date_shipped: None, amount_total: 450.0000000000 row: 0x10a48ced0 session: 0x10a377ac0 ins_upd_dlt: ins, initial: ins - 2025-10-24 08:44:43,821 - logic_logger - INFO
31
+
32
+ These Rules Fired (see Logic Phases, above, for actual order): ## - 2025-10-24 08:44:43,821 - logic_logger - INFO
33
+ Customer ## - 2025-10-24 08:44:43,821 - 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,821 - logic_logger - INFO
35
+ Item ## - 2025-10-24 08:44:43,821 - logic_logger - INFO
36
+ 2. Derive <class 'database.models.Item'>.unit_price as Copy(product.unit_price) ## - 2025-10-24 08:44:43,821 - logic_logger - INFO
37
+ 3. Derive <class 'database.models.Item'>.amount as Formula (1): <function> ## - 2025-10-24 08:44:43,821 - logic_logger - INFO
38
+ Order ## - 2025-10-24 08:44:43,821 - logic_logger - INFO
39
+ 4. Derive <class 'database.models.Order'>.amount_total as Sum(Item.amount Where - None) ## - 2025-10-24 08:44:43,821 - logic_logger - INFO
40
+ 5. RowEvent Order.send_order_to_shipping() ## - 2025-10-24 08:44:43,821 - logic_logger - INFO
41
+
42
+ Logic Phase: COMPLETE(session=0x10a377ac0)) - 2025-10-24 08:44:43,821 - logic_logger - INFO
43
+
44
+ Logic Phase: ROW LOGIC (session=0x10a574c00) (sqlalchemy before_flush) - 2025-10-24 08:44:43,836 - logic_logger - INFO
45
+ ..Customer[None] {Insert - client} id: None, name: Bob 1761320683835, balance: 0, credit_limit: 3000, email: None, email_opt_out: None row: 0x10a48c7d0 session: 0x10a574c00 ins_upd_dlt: ins, initial: ins - 2025-10-24 08:44:43,836 - logic_logger - INFO
46
+ ..Customer[None] {server aggregate_defaults: balance } id: None, name: Bob 1761320683835, balance: 0, credit_limit: 3000, email: None, email_opt_out: None row: 0x10a48c7d0 session: 0x10a574c00 ins_upd_dlt: ins, initial: ins - 2025-10-24 08:44:43,836 - logic_logger - INFO
47
+ Logic Phase: COMMIT LOGIC (session=0x10a574c00) - 2025-10-24 08:44:43,836 - logic_logger - INFO
48
+ Logic Phase: AFTER_FLUSH LOGIC (session=0x10a574c00) - 2025-10-24 08:44:43,836 - logic_logger - INFO
49
+
50
+ These Rules Fired (see Logic Phases, above, for actual order): ## - 2025-10-24 08:44:43,836 - logic_logger - INFO
51
+
52
+ Logic Phase: COMPLETE(session=0x10a574c00)) - 2025-10-24 08:44:43,836 - logic_logger - INFO
@@ -0,0 +1,33 @@
1
+
2
+ Item Quantity Change
3
+ - 2025-10-24 08:44:43,889 - logic_logger - INFO
4
+
5
+ Logic Phase: ROW LOGIC (session=0x10a376470) (sqlalchemy before_flush) - 2025-10-24 08:44:43,891 - logic_logger - INFO
6
+ ..Item[32] {Update - client} id: 32, order_id: 27, product_id: 2, quantity: [5-->] 10, amount: 450.0000000000, unit_price: 90.0000000000 row: 0x10a56e150 session: 0x10a376470 ins_upd_dlt: upd, initial: upd - 2025-10-24 08:44:43,891 - logic_logger - INFO
7
+ ..Item[32] {Formula amount} id: 32, order_id: 27, product_id: 2, quantity: [5-->] 10, amount: [450.0000000000-->] 900.0000000000, unit_price: 90.0000000000 row: 0x10a56e150 session: 0x10a376470 ins_upd_dlt: upd, initial: upd - 2025-10-24 08:44:43,891 - logic_logger - INFO
8
+ ....Order[27] {Update - Adjusting order: amount_total} id: 27, notes: Test order - Item Quantity Change, customer_id: 31, CreatedOn: 2025-10-24, date_shipped: None, amount_total: [450.0000000000-->] 900.0000000000 row: 0x10a56ded0 session: 0x10a376470 ins_upd_dlt: upd, initial: upd - 2025-10-24 08:44:43,891 - logic_logger - INFO
9
+ ......Customer[31] {Update - Adjusting customer: balance} id: 31, name: Charlie 1761320683872, balance: [450.0000000000-->] 900.0000000000, credit_limit: 2000.0000000000, email: None, email_opt_out: None row: 0x10a56ed50 session: 0x10a376470 ins_upd_dlt: upd, initial: upd - 2025-10-24 08:44:43,892 - logic_logger - INFO
10
+ Logic Phase: COMMIT LOGIC (session=0x10a376470) - 2025-10-24 08:44:43,892 - logic_logger - INFO
11
+ Logic Phase: AFTER_FLUSH LOGIC (session=0x10a376470) - 2025-10-24 08:44:43,892 - logic_logger - INFO
12
+ ....Order[27] {AfterFlush Event} id: 27, notes: Test order - Item Quantity Change, customer_id: 31, CreatedOn: 2025-10-24, date_shipped: None, amount_total: [450.0000000000-->] 900.0000000000 row: 0x10a56ded0 session: 0x10a376470 ins_upd_dlt: upd, initial: upd - 2025-10-24 08:44:43,892 - logic_logger - INFO
13
+
14
+ These Rules Fired (see Logic Phases, above, for actual order): ## - 2025-10-24 08:44:43,892 - logic_logger - INFO
15
+ Customer ## - 2025-10-24 08:44:43,892 - logic_logger - INFO
16
+ 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,892 - logic_logger - INFO
17
+ Item ## - 2025-10-24 08:44:43,892 - logic_logger - INFO
18
+ 2. Derive <class 'database.models.Item'>.amount as Formula (1): <function> ## - 2025-10-24 08:44:43,892 - logic_logger - INFO
19
+ Order ## - 2025-10-24 08:44:43,892 - logic_logger - INFO
20
+ 3. RowEvent Order.send_order_to_shipping() ## - 2025-10-24 08:44:43,892 - logic_logger - INFO
21
+ 4. Derive <class 'database.models.Order'>.amount_total as Sum(Item.amount Where - None) ## - 2025-10-24 08:44:43,893 - logic_logger - INFO
22
+
23
+ Logic Phase: COMPLETE(session=0x10a376470)) - 2025-10-24 08:44:43,893 - logic_logger - INFO
24
+
25
+ Logic Phase: ROW LOGIC (session=0x10a377130) (sqlalchemy before_flush) - 2025-10-24 08:44:43,900 - logic_logger - INFO
26
+ ..Customer[None] {Insert - client} id: None, name: Alice 1761320683899, balance: 0, credit_limit: 5000, email: None, email_opt_out: None row: 0x10a44a4d0 session: 0x10a377130 ins_upd_dlt: ins, initial: ins - 2025-10-24 08:44:43,900 - logic_logger - INFO
27
+ ..Customer[None] {server aggregate_defaults: balance } id: None, name: Alice 1761320683899, balance: 0, credit_limit: 5000, email: None, email_opt_out: None row: 0x10a44a4d0 session: 0x10a377130 ins_upd_dlt: ins, initial: ins - 2025-10-24 08:44:43,900 - logic_logger - INFO
28
+ Logic Phase: COMMIT LOGIC (session=0x10a377130) - 2025-10-24 08:44:43,900 - logic_logger - INFO
29
+ Logic Phase: AFTER_FLUSH LOGIC (session=0x10a377130) - 2025-10-24 08:44:43,900 - logic_logger - INFO
30
+
31
+ These Rules Fired (see Logic Phases, above, for actual order): ## - 2025-10-24 08:44:43,900 - logic_logger - INFO
32
+
33
+ Logic Phase: COMPLETE(session=0x10a377130)) - 2025-10-24 08:44:43,900 - logic_logger - INFO
@@ -0,0 +1,67 @@
1
+
2
+ Multi-Item Order via B2B API
3
+ - 2025-10-24 08:44:43,839 - logic_logger - INFO
4
+
5
+ Logic Phase: ROW LOGIC (session=0x10a574e20) (sqlalchemy before_flush) - 2025-10-24 08:44:43,841 - logic_logger - INFO
6
+ ..Customer[29] {Update - client} id: 29, name: Bob 1761320683835, balance: 0E-10, credit_limit: 3000.0000000000, email: None, email_opt_out: None row: 0x10a56c850 session: 0x10a574e20 ins_upd_dlt: upd, initial: upd - 2025-10-24 08:44:43,841 - logic_logger - INFO
7
+ Logic Phase: COMMIT LOGIC (session=0x10a574e20) - 2025-10-24 08:44:43,841 - logic_logger - INFO
8
+ Logic Phase: AFTER_FLUSH LOGIC (session=0x10a574e20) - 2025-10-24 08:44:43,842 - logic_logger - INFO
9
+
10
+ These Rules Fired (see Logic Phases, above, for actual order): ## - 2025-10-24 08:44:43,842 - logic_logger - INFO
11
+
12
+ Logic Phase: COMPLETE(session=0x10a574e20)) - 2025-10-24 08:44:43,842 - logic_logger - INFO
13
+ Logic Phase: ROW LOGIC IGNORE RE-RAISE(session=0x10a574e20) (sqlalchemy before_flush) - 2025-10-24 08:44:43,842 - logic_logger - DEBUG
14
+
15
+ Logic Phase: ROW LOGIC (session=0x10a574e20) (sqlalchemy before_flush) - 2025-10-24 08:44:43,842 - logic_logger - INFO
16
+ ..Product[2] {Update - client} id: 2, name: Widget, unit_price: 90.0000000000, carbon_neutral: None row: 0x10a2efd90 session: 0x10a574e20 ins_upd_dlt: upd, initial: upd - 2025-10-24 08:44:43,842 - logic_logger - INFO
17
+ Logic Phase: COMMIT LOGIC (session=0x10a574e20) - 2025-10-24 08:44:43,842 - logic_logger - INFO
18
+ Logic Phase: AFTER_FLUSH LOGIC (session=0x10a574e20) - 2025-10-24 08:44:43,843 - logic_logger - INFO
19
+
20
+ These Rules Fired (see Logic Phases, above, for actual order): ## - 2025-10-24 08:44:43,843 - logic_logger - INFO
21
+
22
+ Logic Phase: COMPLETE(session=0x10a574e20)) - 2025-10-24 08:44:43,843 - logic_logger - INFO
23
+ Logic Phase: ROW LOGIC IGNORE RE-RAISE(session=0x10a574e20) (sqlalchemy before_flush) - 2025-10-24 08:44:43,843 - logic_logger - DEBUG
24
+
25
+ Logic Phase: ROW LOGIC (session=0x10a574e20) (sqlalchemy before_flush) - 2025-10-24 08:44:43,843 - logic_logger - INFO
26
+ ..Product[1] {Update - client} id: 1, name: Gadget, unit_price: 150.0000000000, carbon_neutral: True row: 0x10a453230 session: 0x10a574e20 ins_upd_dlt: upd, initial: upd - 2025-10-24 08:44:43,843 - logic_logger - INFO
27
+ ..Item[None] {Insert - client} id: None, order_id: None, product_id: None, quantity: 2, amount: None, unit_price: None row: 0x10a38c3d0 session: 0x10a574e20 ins_upd_dlt: ins, initial: ins - 2025-10-24 08:44:43,843 - logic_logger - INFO
28
+ ..Item[None] {copy_rules for role: product - unit_price} id: None, order_id: None, product_id: None, quantity: 2, amount: None, unit_price: 150.0000000000 row: 0x10a38c3d0 session: 0x10a574e20 ins_upd_dlt: ins, initial: ins - 2025-10-24 08:44:43,843 - logic_logger - INFO
29
+ ..Item[None] {Formula amount} id: None, order_id: None, product_id: None, quantity: 2, amount: 300.0000000000, unit_price: 150.0000000000 row: 0x10a38c3d0 session: 0x10a574e20 ins_upd_dlt: ins, initial: ins - 2025-10-24 08:44:43,843 - logic_logger - INFO
30
+ ....Order[None] {server aggregate_defaults: amount_total } id: None, notes: Multi-item order - Multi-Item Order via B2B API, customer_id: 29, CreatedOn: None, date_shipped: None, amount_total: [None-->] 0 row: 0x10a3ca7d0 session: 0x10a574e20 ins_upd_dlt: *, initial: * - 2025-10-24 08:44:43,843 - logic_logger - INFO
31
+ ..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: 2, amount: 300.0000000000, unit_price: 150.0000000000 row: 0x10a38c3d0 session: 0x10a574e20 ins_upd_dlt: ins, initial: ins - 2025-10-24 08:44:43,843 - logic_logger - INFO
32
+ ....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: Multi-item order - Multi-Item Order via B2B API, customer_id: 29, CreatedOn: None, date_shipped: None, amount_total: [None-->] 300.0000000000 row: 0x10a3ca7d0 session: 0x10a574e20 ins_upd_dlt: *, initial: * - 2025-10-24 08:44:43,844 - logic_logger - INFO
33
+ ..Item[None] {Insert - client} id: None, order_id: None, product_id: 2, quantity: 3, amount: None, unit_price: None row: 0x10a56d550 session: 0x10a574e20 ins_upd_dlt: ins, initial: ins - 2025-10-24 08:44:43,844 - logic_logger - INFO
34
+ ..Item[None] {copy_rules for role: product - unit_price} id: None, order_id: None, product_id: 2, quantity: 3, amount: None, unit_price: 90.0000000000 row: 0x10a56d550 session: 0x10a574e20 ins_upd_dlt: ins, initial: ins - 2025-10-24 08:44:43,844 - logic_logger - INFO
35
+ ..Item[None] {Formula amount} id: None, order_id: None, product_id: 2, quantity: 3, amount: 270.0000000000, unit_price: 90.0000000000 row: 0x10a56d550 session: 0x10a574e20 ins_upd_dlt: ins, initial: ins - 2025-10-24 08:44:43,844 - logic_logger - INFO
36
+ ..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: 2, quantity: 3, amount: 270.0000000000, unit_price: 90.0000000000 row: 0x10a56d550 session: 0x10a574e20 ins_upd_dlt: ins, initial: ins - 2025-10-24 08:44:43,844 - logic_logger - INFO
37
+ ....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: Multi-item order - Multi-Item Order via B2B API, customer_id: 29, CreatedOn: None, date_shipped: None, amount_total: [300.0000000000-->] 570.0000000000 row: 0x10a3ca7d0 session: 0x10a574e20 ins_upd_dlt: *, initial: * - 2025-10-24 08:44:43,844 - logic_logger - INFO
38
+ ..Order[None] {Insert - client} id: None, notes: Multi-item order - Multi-Item Order via B2B API, customer_id: 29, CreatedOn: None, date_shipped: None, amount_total: 570.0000000000 row: 0x10a3ca7d0 session: 0x10a574e20 ins_upd_dlt: ins, initial: ins - 2025-10-24 08:44:43,844 - logic_logger - INFO
39
+ ..Order[None] {early_row_event_all_classes - handle_all did stamping} id: None, notes: Multi-item order - Multi-Item Order via B2B API, customer_id: 29, CreatedOn: 2025-10-24 08:44:43.844535, date_shipped: None, amount_total: 570.0000000000 row: 0x10a3ca7d0 session: 0x10a574e20 ins_upd_dlt: ins, initial: ins - 2025-10-24 08:44:43,844 - logic_logger - INFO
40
+ ..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: Multi-item order - Multi-Item Order via B2B API, customer_id: 29, CreatedOn: 2025-10-24 08:44:43.844535, date_shipped: None, amount_total: 570.0000000000 row: 0x10a3ca7d0 session: 0x10a574e20 ins_upd_dlt: ins, initial: ins - 2025-10-24 08:44:43,844 - logic_logger - INFO
41
+ ....Customer[29] {Update - Adjusting customer: balance} id: 29, name: Bob 1761320683835, balance: [0E-10-->] 570.0000000000, credit_limit: 3000.0000000000, email: None, email_opt_out: None row: 0x10a56c850 session: 0x10a574e20 ins_upd_dlt: upd, initial: upd - 2025-10-24 08:44:43,844 - logic_logger - INFO
42
+ Logic Phase: COMMIT LOGIC (session=0x10a574e20) - 2025-10-24 08:44:43,844 - logic_logger - INFO
43
+ Logic Phase: AFTER_FLUSH LOGIC (session=0x10a574e20) - 2025-10-24 08:44:43,845 - logic_logger - INFO
44
+ ..Order[25] {AfterFlush Event} id: 25, notes: Multi-item order - Multi-Item Order via B2B API, customer_id: 29, CreatedOn: 2025-10-24 08:44:43.844535, date_shipped: None, amount_total: 570.0000000000 row: 0x10a3ca7d0 session: 0x10a574e20 ins_upd_dlt: ins, initial: ins - 2025-10-24 08:44:43,845 - logic_logger - INFO
45
+ ..Order[25] {Sending Order to Shipping [Note: **Kafka not enabled** ]} id: 25, notes: Multi-item order - Multi-Item Order via B2B API, customer_id: 29, CreatedOn: 2025-10-24 08:44:43.844535, date_shipped: None, amount_total: 570.0000000000 row: 0x10a3ca7d0 session: 0x10a574e20 ins_upd_dlt: ins, initial: ins - 2025-10-24 08:44:43,845 - logic_logger - INFO
46
+
47
+ These Rules Fired (see Logic Phases, above, for actual order): ## - 2025-10-24 08:44:43,845 - logic_logger - INFO
48
+ Customer ## - 2025-10-24 08:44:43,845 - logic_logger - INFO
49
+ 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,845 - logic_logger - INFO
50
+ Item ## - 2025-10-24 08:44:43,845 - logic_logger - INFO
51
+ 2. Derive <class 'database.models.Item'>.unit_price as Copy(product.unit_price) ## - 2025-10-24 08:44:43,845 - logic_logger - INFO
52
+ 3. Derive <class 'database.models.Item'>.amount as Formula (1): <function> ## - 2025-10-24 08:44:43,845 - logic_logger - INFO
53
+ Order ## - 2025-10-24 08:44:43,845 - logic_logger - INFO
54
+ 4. Derive <class 'database.models.Order'>.amount_total as Sum(Item.amount Where - None) ## - 2025-10-24 08:44:43,845 - logic_logger - INFO
55
+ 5. RowEvent Order.send_order_to_shipping() ## - 2025-10-24 08:44:43,845 - logic_logger - INFO
56
+
57
+ Logic Phase: COMPLETE(session=0x10a574e20)) - 2025-10-24 08:44:43,845 - logic_logger - INFO
58
+
59
+ Logic Phase: ROW LOGIC (session=0x10a376f10) (sqlalchemy before_flush) - 2025-10-24 08:44:43,855 - logic_logger - INFO
60
+ ..Customer[None] {Insert - client} id: None, name: Diana 1761320683854, balance: 0, credit_limit: 5000, email: None, email_opt_out: None row: 0x10a48c850 session: 0x10a376f10 ins_upd_dlt: ins, initial: ins - 2025-10-24 08:44:43,855 - logic_logger - INFO
61
+ ..Customer[None] {server aggregate_defaults: balance } id: None, name: Diana 1761320683854, balance: 0, credit_limit: 5000, email: None, email_opt_out: None row: 0x10a48c850 session: 0x10a376f10 ins_upd_dlt: ins, initial: ins - 2025-10-24 08:44:43,855 - logic_logger - INFO
62
+ Logic Phase: COMMIT LOGIC (session=0x10a376f10) - 2025-10-24 08:44:43,855 - logic_logger - INFO
63
+ Logic Phase: AFTER_FLUSH LOGIC (session=0x10a376f10) - 2025-10-24 08:44:43,856 - logic_logger - INFO
64
+
65
+ These Rules Fired (see Logic Phases, above, for actual order): ## - 2025-10-24 08:44:43,856 - logic_logger - INFO
66
+
67
+ Logic Phase: COMPLETE(session=0x10a376f10)) - 2025-10-24 08:44:43,856 - logic_logger - INFO
@@ -1,18 +1,28 @@
1
1
 
2
- Ship Order Excludes from Balance (WHERE exclude)
3
- - 2025-10-20 11:28:01,785 - logic_logger - INFO
2
+ Ship Order Excludes from Balance
3
+ - 2025-10-24 08:44:43,999 - logic_logger - INFO
4
4
 
5
- Logic Phase: ROW LOGIC (session=0x10a00fac0) (sqlalchemy before_flush) - 2025-10-20 11:28:01,788 - logic_logger - INFO
6
- ..Order[135] {Update - client} id: 135, notes: Test order, customer_id: 169, CreatedOn: 2025-10-20, date_shipped: [None-->] 2025-10-20 00:00:00, amount_total: 900.0000000000 row: 0x10a067550 session: 0x10a00fac0 ins_upd_dlt: upd, initial: upd - 2025-10-20 11:28:01,788 - logic_logger - INFO
7
- ....Customer[169] {Update - Adjusting customer: balance} id: 169, name: ShipTest 1760984881769, balance: [900.0000000000-->] 0E-10, credit_limit: 5000.0000000000, email: None, email_opt_out: None row: 0x10a2813d0 session: 0x10a00fac0 ins_upd_dlt: upd, initial: upd - 2025-10-20 11:28:01,788 - logic_logger - INFO
8
- Logic Phase: COMMIT LOGIC (session=0x10a00fac0) - 2025-10-20 11:28:01,788 - logic_logger - INFO
9
- Logic Phase: AFTER_FLUSH LOGIC (session=0x10a00fac0) - 2025-10-20 11:28:01,789 - logic_logger - INFO
10
- ..Order[135] {AfterFlush Event} id: 135, notes: Test order, customer_id: 169, CreatedOn: 2025-10-20, date_shipped: [None-->] 2025-10-20 00:00:00, amount_total: 900.0000000000 row: 0x10a067550 session: 0x10a00fac0 ins_upd_dlt: upd, initial: upd - 2025-10-20 11:28:01,789 - logic_logger - INFO
5
+ Logic Phase: ROW LOGIC (session=0x10a377ac0) (sqlalchemy before_flush) - 2025-10-24 08:44:44,001 - logic_logger - INFO
6
+ ..Order[31] {Update - client} id: 31, notes: Test order - Ship Order Excludes from Balance, customer_id: 36, CreatedOn: 2025-10-24, date_shipped: [None-->] 2025-10-22 00:00:00, amount_total: 180.0000000000 row: 0x10a44ac50 session: 0x10a377ac0 ins_upd_dlt: upd, initial: upd - 2025-10-24 08:44:44,001 - logic_logger - INFO
7
+ ....Customer[36] {Update - Adjusting customer: balance} id: 36, name: Charlie 1761320683984, balance: [180.0000000000-->] 0E-10, credit_limit: 2000.0000000000, email: None, email_opt_out: None row: 0x10a3cb050 session: 0x10a377ac0 ins_upd_dlt: upd, initial: upd - 2025-10-24 08:44:44,002 - logic_logger - INFO
8
+ Logic Phase: COMMIT LOGIC (session=0x10a377ac0) - 2025-10-24 08:44:44,002 - logic_logger - INFO
9
+ Logic Phase: AFTER_FLUSH LOGIC (session=0x10a377ac0) - 2025-10-24 08:44:44,002 - logic_logger - INFO
10
+ ..Order[31] {AfterFlush Event} id: 31, notes: Test order - Ship Order Excludes from Balance, customer_id: 36, CreatedOn: 2025-10-24, date_shipped: [None-->] 2025-10-22 00:00:00, amount_total: 180.0000000000 row: 0x10a44ac50 session: 0x10a377ac0 ins_upd_dlt: upd, initial: upd - 2025-10-24 08:44:44,002 - logic_logger - INFO
11
11
 
12
- These Rules Fired (see Logic Phases, above, for actual order): ## - 2025-10-20 11:28:01,789 - logic_logger - INFO
13
- Customer ## - 2025-10-20 11:28:01,789 - logic_logger - INFO
14
- 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 0x108fed080>) ## - 2025-10-20 11:28:01,789 - logic_logger - INFO
15
- Order ## - 2025-10-20 11:28:01,789 - logic_logger - INFO
16
- 2. RowEvent Order.send_order_to_shipping() ## - 2025-10-20 11:28:01,789 - logic_logger - INFO
12
+ These Rules Fired (see Logic Phases, above, for actual order): ## - 2025-10-24 08:44:44,002 - logic_logger - INFO
13
+ Customer ## - 2025-10-24 08:44:44,002 - logic_logger - INFO
14
+ 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,002 - logic_logger - INFO
15
+ Order ## - 2025-10-24 08:44:44,002 - logic_logger - INFO
16
+ 2. RowEvent Order.send_order_to_shipping() ## - 2025-10-24 08:44:44,002 - logic_logger - INFO
17
17
 
18
- Logic Phase: COMPLETE(session=0x10a00fac0)) - 2025-10-20 11:28:01,789 - logic_logger - INFO
18
+ Logic Phase: COMPLETE(session=0x10a377ac0)) - 2025-10-24 08:44:44,002 - logic_logger - INFO
19
+
20
+ Logic Phase: ROW LOGIC (session=0x10a376140) (sqlalchemy before_flush) - 2025-10-24 08:44:44,008 - logic_logger - INFO
21
+ ..Customer[None] {Insert - client} id: None, name: Diana 1761320684007, balance: 0, credit_limit: 5000, email: None, email_opt_out: None row: 0x10a48d250 session: 0x10a376140 ins_upd_dlt: ins, initial: ins - 2025-10-24 08:44:44,008 - logic_logger - INFO
22
+ ..Customer[None] {server aggregate_defaults: balance } id: None, name: Diana 1761320684007, balance: 0, credit_limit: 5000, email: None, email_opt_out: None row: 0x10a48d250 session: 0x10a376140 ins_upd_dlt: ins, initial: ins - 2025-10-24 08:44:44,008 - logic_logger - INFO
23
+ Logic Phase: COMMIT LOGIC (session=0x10a376140) - 2025-10-24 08:44:44,008 - logic_logger - INFO
24
+ Logic Phase: AFTER_FLUSH LOGIC (session=0x10a376140) - 2025-10-24 08:44:44,009 - logic_logger - INFO
25
+
26
+ These Rules Fired (see Logic Phases, above, for actual order): ## - 2025-10-24 08:44:44,009 - logic_logger - INFO
27
+
28
+ Logic Phase: COMPLETE(session=0x10a376140)) - 2025-10-24 08:44:44,009 - logic_logger - INFO
@@ -1,19 +1,28 @@
1
1
 
2
2
  The following rules have been activated
3
- - 2025-10-20 08:59:10,304 - logic_logger - DEBUG
4
- Rule Bank[0x10893ecf0] (loaded 2025-10-20 08:49:47.292946) ## - 2025-10-20 08:59:10,304 - logic_logger - INFO
5
- Mapped Class[Customer] rules: ## - 2025-10-20 08:59:10,304 - logic_logger - INFO
6
- Constraint Function: None ## - 2025-10-20 08:59:10,304 - logic_logger - INFO
7
- Constraint Function: None ## - 2025-10-20 08:59:10,304 - logic_logger - INFO
8
- Derive <class 'database.models.Customer'>.balance as Sum(Order.amount_total Where # Derive the customer's balance as the sum of order totals where not yet shipped. ## - 2025-10-20 08:59:10,304 - logic_logger - INFO
9
- 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 0x108a1ccc0>) ## - 2025-10-20 08:59:10,304 - logic_logger - INFO
10
- Mapped Class[SysEmail] rules: ## - 2025-10-20 08:59:10,304 - logic_logger - INFO
11
- RowEvent SysEmail.send_mail() ## - 2025-10-20 08:59:10,304 - logic_logger - INFO
12
- Mapped Class[Order] rules: ## - 2025-10-20 08:59:10,304 - logic_logger - INFO
13
- Derive <class 'database.models.Order'>.amount_total as Sum(Item.amount Where - None) ## - 2025-10-20 08:59:10,304 - logic_logger - INFO
14
- RowEvent Order.send_order_to_shipping() ## - 2025-10-20 08:59:10,304 - logic_logger - INFO
15
- Mapped Class[Item] rules: ## - 2025-10-20 08:59:10,304 - logic_logger - INFO
16
- Derive <class 'database.models.Item'>.amount as Formula (1): <function> ## - 2025-10-20 08:59:10,304 - logic_logger - INFO
17
- Derive <class 'database.models.Item'>.unit_price as Copy(product.unit_price) ## - 2025-10-20 08:59:10,305 - logic_logger - INFO
18
- Logic Bank - 14 rules loaded - 2025-10-20 08:59:10,305 - logic_logger - INFO
19
- Logic Bank - 14 rules loaded - 2025-10-20 08:59:10,305 - logic_logger - INFO
3
+ - 2025-10-24 08:44:43,762 - logic_logger - DEBUG
4
+ Rule Bank[0x10927aba0] (loaded 2025-10-22 20:22:19.960861) ## - 2025-10-24 08:44:43,770 - logic_logger - INFO
5
+ Mapped Class[Customer] rules: ## - 2025-10-24 08:44:43,770 - logic_logger - INFO
6
+ Constraint Function: None ## - 2025-10-24 08:44:43,770 - logic_logger - INFO
7
+ Constraint Function: None ## - 2025-10-24 08:44:43,770 - logic_logger - INFO
8
+ 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,770 - logic_logger - INFO
9
+ Mapped Class[SysEmail] rules: ## - 2025-10-24 08:44:43,771 - logic_logger - INFO
10
+ RowEvent SysEmail.send_mail() ## - 2025-10-24 08:44:43,771 - logic_logger - INFO
11
+ Mapped Class[Order] rules: ## - 2025-10-24 08:44:43,771 - logic_logger - INFO
12
+ Derive <class 'database.models.Order'>.amount_total as Sum(Item.amount Where - None) ## - 2025-10-24 08:44:43,771 - logic_logger - INFO
13
+ RowEvent Order.send_order_to_shipping() ## - 2025-10-24 08:44:43,771 - logic_logger - INFO
14
+ Mapped Class[Item] rules: ## - 2025-10-24 08:44:43,771 - logic_logger - INFO
15
+ Derive <class 'database.models.Item'>.amount as Formula (1): <function> ## - 2025-10-24 08:44:43,771 - logic_logger - INFO
16
+ Derive <class 'database.models.Item'>.unit_price as Copy(product.unit_price) ## - 2025-10-24 08:44:43,771 - logic_logger - INFO
17
+ Logic Bank - 13 rules loaded - 2025-10-24 08:44:43,771 - logic_logger - INFO
18
+ Logic Bank - 13 rules loaded - 2025-10-24 08:44:43,771 - logic_logger - INFO
19
+
20
+ Logic Phase: ROW LOGIC (session=0x10a3778a0) (sqlalchemy before_flush) - 2025-10-24 08:44:43,794 - logic_logger - INFO
21
+ ..Customer[None] {Insert - client} id: None, name: Alice 1761320683776, balance: 0, credit_limit: 5000, email: None, email_opt_out: None row: 0x10a56d050 session: 0x10a3778a0 ins_upd_dlt: ins, initial: ins - 2025-10-24 08:44:43,796 - logic_logger - INFO
22
+ ..Customer[None] {server aggregate_defaults: balance } id: None, name: Alice 1761320683776, balance: 0, credit_limit: 5000, email: None, email_opt_out: None row: 0x10a56d050 session: 0x10a3778a0 ins_upd_dlt: ins, initial: ins - 2025-10-24 08:44:43,796 - logic_logger - INFO
23
+ Logic Phase: COMMIT LOGIC (session=0x10a3778a0) - 2025-10-24 08:44:43,796 - logic_logger - INFO
24
+ Logic Phase: AFTER_FLUSH LOGIC (session=0x10a3778a0) - 2025-10-24 08:44:43,803 - logic_logger - INFO
25
+
26
+ These Rules Fired (see Logic Phases, above, for actual order): ## - 2025-10-24 08:44:43,803 - logic_logger - INFO
27
+
28
+ Logic Phase: COMPLETE(session=0x10a3778a0)) - 2025-10-24 08:44:43,803 - logic_logger - INFO
@@ -1,18 +1,28 @@
1
1
 
2
- Unship Order Includes in Balance (WHERE include)
3
- - 2025-10-20 11:28:01,812 - logic_logger - INFO
2
+ Unship Order Includes in Balance
3
+ - 2025-10-24 08:44:44,023 - logic_logger - INFO
4
4
 
5
- Logic Phase: ROW LOGIC (session=0x10a00f790) (sqlalchemy before_flush) - 2025-10-20 11:28:01,813 - logic_logger - INFO
6
- ..Order[136] {Update - client} id: 136, notes: Test order, customer_id: 170, CreatedOn: 2025-10-20, date_shipped: [2025-10-20-->] None, amount_total: 750.0000000000 row: 0x10a280cd0 session: 0x10a00f790 ins_upd_dlt: upd, initial: upd - 2025-10-20 11:28:01,813 - logic_logger - INFO
7
- ....Customer[170] {Update - Adjusting customer: balance} id: 170, name: UnshipTest 1760984881794, balance: [0E-10-->] 750.0000000000, credit_limit: 5000.0000000000, email: None, email_opt_out: None row: 0x10a2829d0 session: 0x10a00f790 ins_upd_dlt: upd, initial: upd - 2025-10-20 11:28:01,814 - logic_logger - INFO
8
- Logic Phase: COMMIT LOGIC (session=0x10a00f790) - 2025-10-20 11:28:01,814 - logic_logger - INFO
9
- Logic Phase: AFTER_FLUSH LOGIC (session=0x10a00f790) - 2025-10-20 11:28:01,814 - logic_logger - INFO
10
- ..Order[136] {AfterFlush Event} id: 136, notes: Test order, customer_id: 170, CreatedOn: 2025-10-20, date_shipped: [2025-10-20-->] None, amount_total: 750.0000000000 row: 0x10a280cd0 session: 0x10a00f790 ins_upd_dlt: upd, initial: upd - 2025-10-20 11:28:01,814 - logic_logger - INFO
5
+ Logic Phase: ROW LOGIC (session=0x10a377240) (sqlalchemy before_flush) - 2025-10-24 08:44:44,025 - logic_logger - INFO
6
+ ..Order[32] {Update - client} id: 32, notes: Test shipped order - Unship Order Includes in Balance, customer_id: 37, CreatedOn: 2025-10-24, date_shipped: [2025-10-22-->] None, amount_total: 450.0000000000 row: 0x10a3c9850 session: 0x10a377240 ins_upd_dlt: upd, initial: upd - 2025-10-24 08:44:44,025 - logic_logger - INFO
7
+ ....Customer[37] {Update - Adjusting customer: balance} id: 37, name: Diana 1761320684007, balance: [0E-10-->] 450.0000000000, credit_limit: 5000.0000000000, email: None, email_opt_out: None row: 0x10a3c8950 session: 0x10a377240 ins_upd_dlt: upd, initial: upd - 2025-10-24 08:44:44,026 - logic_logger - INFO
8
+ Logic Phase: COMMIT LOGIC (session=0x10a377240) - 2025-10-24 08:44:44,026 - logic_logger - INFO
9
+ Logic Phase: AFTER_FLUSH LOGIC (session=0x10a377240) - 2025-10-24 08:44:44,026 - logic_logger - INFO
10
+ ..Order[32] {AfterFlush Event} id: 32, notes: Test shipped order - Unship Order Includes in Balance, customer_id: 37, CreatedOn: 2025-10-24, date_shipped: [2025-10-22-->] None, amount_total: 450.0000000000 row: 0x10a3c9850 session: 0x10a377240 ins_upd_dlt: upd, initial: upd - 2025-10-24 08:44:44,026 - logic_logger - INFO
11
11
 
12
- These Rules Fired (see Logic Phases, above, for actual order): ## - 2025-10-20 11:28:01,814 - logic_logger - INFO
13
- Customer ## - 2025-10-20 11:28:01,814 - logic_logger - INFO
14
- 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 0x108fed080>) ## - 2025-10-20 11:28:01,814 - logic_logger - INFO
15
- Order ## - 2025-10-20 11:28:01,814 - logic_logger - INFO
16
- 2. RowEvent Order.send_order_to_shipping() ## - 2025-10-20 11:28:01,814 - logic_logger - INFO
12
+ These Rules Fired (see Logic Phases, above, for actual order): ## - 2025-10-24 08:44:44,026 - logic_logger - INFO
13
+ Customer ## - 2025-10-24 08:44:44,026 - logic_logger - INFO
14
+ 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,027 - logic_logger - INFO
15
+ Order ## - 2025-10-24 08:44:44,027 - logic_logger - INFO
16
+ 2. RowEvent Order.send_order_to_shipping() ## - 2025-10-24 08:44:44,027 - logic_logger - INFO
17
17
 
18
- Logic Phase: COMPLETE(session=0x10a00f790)) - 2025-10-20 11:28:01,814 - logic_logger - INFO
18
+ Logic Phase: COMPLETE(session=0x10a377240)) - 2025-10-24 08:44:44,027 - logic_logger - INFO
19
+
20
+ Logic Phase: ROW LOGIC (session=0x10a376be0) (sqlalchemy before_flush) - 2025-10-24 08:44:44,032 - logic_logger - INFO
21
+ ..Customer[None] {Insert - client} id: None, name: Silent 1761320684031, balance: 0, credit_limit: 1000, email: None, email_opt_out: None row: 0x10a3cb9d0 session: 0x10a376be0 ins_upd_dlt: ins, initial: ins - 2025-10-24 08:44:44,033 - logic_logger - INFO
22
+ ..Customer[None] {server aggregate_defaults: balance } id: None, name: Silent 1761320684031, balance: 0, credit_limit: 1000, email: None, email_opt_out: None row: 0x10a3cb9d0 session: 0x10a376be0 ins_upd_dlt: ins, initial: ins - 2025-10-24 08:44:44,033 - logic_logger - INFO
23
+ Logic Phase: COMMIT LOGIC (session=0x10a376be0) - 2025-10-24 08:44:44,033 - logic_logger - INFO
24
+ Logic Phase: AFTER_FLUSH LOGIC (session=0x10a376be0) - 2025-10-24 08:44:44,033 - logic_logger - INFO
25
+
26
+ These Rules Fired (see Logic Phases, above, for actual order): ## - 2025-10-24 08:44:44,033 - logic_logger - INFO
27
+
28
+ Logic Phase: COMPLETE(session=0x10a376be0)) - 2025-10-24 08:44:44,033 - logic_logger - INFO