From a4eb816f0d43fcd536f665687eecf3e814c44f87 Mon Sep 17 00:00:00 2001 From: Romain Courteaud <romain@nexedi.com> Date: Wed, 11 Sep 2024 15:15:29 +0000 Subject: [PATCH] slapos_accounting: speed up the first invoice creation It should reduce number of open order expand calls. --- .../interaction_OpenSaleOrder_validate.xml | 2 +- ...cript_Base_triggerUpdateOpenOrderSimulation.py | 1 - ...nSaleOrder_triggerUpdateOpenOrderSimulation.py | 15 +++++++++++++++ ...aleOrder_triggerUpdateOpenOrderSimulation.xml} | 2 +- 4 files changed, 17 insertions(+), 3 deletions(-) delete mode 100644 master/bt5/slapos_accounting/WorkflowTemplateItem/portal_workflow/slapos_simulation_interaction_workflow/script_Base_triggerUpdateOpenOrderSimulation.py create mode 100644 master/bt5/slapos_accounting/WorkflowTemplateItem/portal_workflow/slapos_simulation_interaction_workflow/script_OpenSaleOrder_triggerUpdateOpenOrderSimulation.py rename master/bt5/slapos_accounting/WorkflowTemplateItem/portal_workflow/slapos_simulation_interaction_workflow/{script_Base_triggerUpdateOpenOrderSimulation.xml => script_OpenSaleOrder_triggerUpdateOpenOrderSimulation.xml} (96%) diff --git a/master/bt5/slapos_accounting/WorkflowTemplateItem/portal_workflow/slapos_simulation_interaction_workflow/interaction_OpenSaleOrder_validate.xml b/master/bt5/slapos_accounting/WorkflowTemplateItem/portal_workflow/slapos_simulation_interaction_workflow/interaction_OpenSaleOrder_validate.xml index 09ce0c139..876a8718d 100644 --- a/master/bt5/slapos_accounting/WorkflowTemplateItem/portal_workflow/slapos_simulation_interaction_workflow/interaction_OpenSaleOrder_validate.xml +++ b/master/bt5/slapos_accounting/WorkflowTemplateItem/portal_workflow/slapos_simulation_interaction_workflow/interaction_OpenSaleOrder_validate.xml @@ -10,7 +10,7 @@ <key> <string>categories</string> </key> <value> <tuple> - <string>after_script/portal_workflow/slapos_simulation_interaction_workflow/script_Base_triggerUpdateOpenOrderSimulation</string> + <string>after_script/portal_workflow/slapos_simulation_interaction_workflow/script_OpenSaleOrder_triggerUpdateOpenOrderSimulation</string> </tuple> </value> </item> diff --git a/master/bt5/slapos_accounting/WorkflowTemplateItem/portal_workflow/slapos_simulation_interaction_workflow/script_Base_triggerUpdateOpenOrderSimulation.py b/master/bt5/slapos_accounting/WorkflowTemplateItem/portal_workflow/slapos_simulation_interaction_workflow/script_Base_triggerUpdateOpenOrderSimulation.py deleted file mode 100644 index d9157efd6..000000000 --- a/master/bt5/slapos_accounting/WorkflowTemplateItem/portal_workflow/slapos_simulation_interaction_workflow/script_Base_triggerUpdateOpenOrderSimulation.py +++ /dev/null @@ -1 +0,0 @@ -return state_change['object'].Base_reindexAndSenseAlarm(['update_open_order_simulation']) diff --git a/master/bt5/slapos_accounting/WorkflowTemplateItem/portal_workflow/slapos_simulation_interaction_workflow/script_OpenSaleOrder_triggerUpdateOpenOrderSimulation.py b/master/bt5/slapos_accounting/WorkflowTemplateItem/portal_workflow/slapos_simulation_interaction_workflow/script_OpenSaleOrder_triggerUpdateOpenOrderSimulation.py new file mode 100644 index 000000000..52a1e2eac --- /dev/null +++ b/master/bt5/slapos_accounting/WorkflowTemplateItem/portal_workflow/slapos_simulation_interaction_workflow/script_OpenSaleOrder_triggerUpdateOpenOrderSimulation.py @@ -0,0 +1,15 @@ +from DateTime import DateTime +open_sale_order = state_change['object'] +tag = 'script_Base_triggerCreateHostingSubscriptionSimulation' +current_date = DateTime() + +# Prevent creating empty applied rule if not simulation movement +# will be created +# Sadly, this is probably nearly for tests which freeze date +start_date = open_sale_order.getStartDate() +if (start_date is not None) and (start_date < current_date): + for open_order_line in open_sale_order.objectValues(): + for ob in [open_order_line] + open_order_line.getCellValueList(): + for item in ob.getAggregateValueList(portal_type='Hosting Subscription'): + ob.reindexObject(activate_kw={'tag': tag}) + item.activate(after_tag=tag, activity='SQLQueue').Base_reindexAndSenseAlarm(['slapos_accounting_create_hosting_subscription_simulation']) diff --git a/master/bt5/slapos_accounting/WorkflowTemplateItem/portal_workflow/slapos_simulation_interaction_workflow/script_Base_triggerUpdateOpenOrderSimulation.xml b/master/bt5/slapos_accounting/WorkflowTemplateItem/portal_workflow/slapos_simulation_interaction_workflow/script_OpenSaleOrder_triggerUpdateOpenOrderSimulation.xml similarity index 96% rename from master/bt5/slapos_accounting/WorkflowTemplateItem/portal_workflow/slapos_simulation_interaction_workflow/script_Base_triggerUpdateOpenOrderSimulation.xml rename to master/bt5/slapos_accounting/WorkflowTemplateItem/portal_workflow/slapos_simulation_interaction_workflow/script_OpenSaleOrder_triggerUpdateOpenOrderSimulation.xml index 491815135..69d48d8b6 100644 --- a/master/bt5/slapos_accounting/WorkflowTemplateItem/portal_workflow/slapos_simulation_interaction_workflow/script_Base_triggerUpdateOpenOrderSimulation.xml +++ b/master/bt5/slapos_accounting/WorkflowTemplateItem/portal_workflow/slapos_simulation_interaction_workflow/script_OpenSaleOrder_triggerUpdateOpenOrderSimulation.xml @@ -60,7 +60,7 @@ </item> <item> <key> <string>id</string> </key> - <value> <string>script_Base_triggerUpdateOpenOrderSimulation</string> </value> + <value> <string>script_OpenSaleOrder_triggerUpdateOpenOrderSimulation</string> </value> </item> <item> <key> <string>title</string> </key> -- 2.30.9