From 8eaf6e968029dd95a0f83d70f862cf76538a04ed Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C5=81ukasz=20Nowak?= <luke@nexedi.com>
Date: Fri, 9 Mar 2012 10:48:10 +0100
Subject: [PATCH] Simplify and optimise conditions.

---
 .../vifib_slap/Person_updateOpenOrder.xml     | 92 ++++++++++---------
 master/bt5/vifib_slap/bt/revision             |  2 +-
 2 files changed, 49 insertions(+), 45 deletions(-)

diff --git a/master/bt5/vifib_slap/SkinTemplateItem/portal_skins/vifib_slap/Person_updateOpenOrder.xml b/master/bt5/vifib_slap/SkinTemplateItem/portal_skins/vifib_slap/Person_updateOpenOrder.xml
index a2799f636..81cfa4d29 100644
--- a/master/bt5/vifib_slap/SkinTemplateItem/portal_skins/vifib_slap/Person_updateOpenOrder.xml
+++ b/master/bt5/vifib_slap/SkinTemplateItem/portal_skins/vifib_slap/Person_updateOpenOrder.xml
@@ -54,6 +54,12 @@
 
 from DateTime import DateTime\n
 \n
+tag = \'%s_updateOpenOrder\' % person.getUid()\n
+kw = {\'activate_kw\': {\'tag\': tag}}\n
+if portal.portal_activities.countMessageWithTag(tag) > 0:\n
+  # nothing to do\n
+  return\n
+\n
 if remove_id_list is None:\n
   remove_id_list = []\n
 \n
@@ -65,53 +71,51 @@ previous_open_sale_order = portal.portal_catalog.getResultValue(\n
       validation_state="validated")\n
 \n
 now = DateTime()\n
-tag = \'%s_updateOpenOrder\' % person.getUid()\n
-kw = {\'activate_kw\': {\'tag\': tag}}\n
-if portal.portal_activities.countMessageWithTag(tag) == 0:\n
-  open_sale_order = None\n
-  if previous_open_sale_order is None:\n
-    open_sale_order = portal.open_sale_order_module.newContent(\n
-          source=\'organisation_module/vifib_internet\',\n
-          source_section=\'organisation_module/vifib_internet\',\n
-          destination_section=person.getRelativeUrl(),\n
-          destination_decision=person.getRelativeUrl(),\n
-          destination=person.getRelativeUrl(),\n
-          price_currency=\'currency_module/EUR\',\n
-          specialise=\'sale_trade_condition_module/vifib_trade_condition\',\n
-          title="ViFiB Open Order",\n
-          **kw)\n
-  for remove_id in remove_id_list:\n
-    if open_sale_order is None:\n
-      open_sale_order = previous_open_sale_order.Base_createCloneDocument(batch_mode=1)\n
-    open_sale_order.deleteContent(remove_id)\n
-  if add_kw is not None:\n
-    add_tag = add_kw.pop(\'tag\', None)\n
-    add_kw.update(kw)\n
+\n
+open_sale_order = None\n
+if previous_open_sale_order is None:\n
+  open_sale_order = portal.open_sale_order_module.newContent(\n
+        source=\'organisation_module/vifib_internet\',\n
+        source_section=\'organisation_module/vifib_internet\',\n
+        destination_section=person.getRelativeUrl(),\n
+        destination_decision=person.getRelativeUrl(),\n
+        destination=person.getRelativeUrl(),\n
+        price_currency=\'currency_module/EUR\',\n
+        specialise=\'sale_trade_condition_module/vifib_trade_condition\',\n
+        title="ViFiB Open Order",\n
+        **kw)\n
+for remove_id in remove_id_list:\n
+  if open_sale_order is None:\n
+    open_sale_order = previous_open_sale_order.Base_createCloneDocument(batch_mode=1)\n
+  open_sale_order.deleteContent(remove_id)\n
+if add_kw is not None:\n
+  add_tag = add_kw.pop(\'tag\', None)\n
+  add_kw.update(kw)\n
+  if open_sale_order is None:\n
+    open_sale_order = previous_open_sale_order.Base_createCloneDocument(batch_mode=1)\n
+  open_sale_order.newContent(**add_kw)\n
+  if add_tag is not None:\n
+    # lock by passed tag\n
+    open_sale_order.activate(tag=add_tag, after_tag=kw[\'activate_kw\'][\'tag\']).getId()\n
+if stop_date is not None:\n
+  # check if needed to update\n
+  need_update = False\n
+  for line in previous_open_sale_order.contentValues(portal_type=\'Open Sale Order Line\'):\n
+    if line.getStopDate() < stop_date:\n
+      need_update = True\n
+      break\n
+  if need_update:\n
     if open_sale_order is None:\n
       open_sale_order = previous_open_sale_order.Base_createCloneDocument(batch_mode=1)\n
-    open_sale_order.newContent(**add_kw)\n
-    if add_tag is not None:\n
-      # lock by passed tag\n
-      open_sale_order.activate(tag=add_tag, after_tag=kw[\'activate_kw\'][\'tag\']).getId()\n
-  if stop_date is not None:\n
-    # check if needed to update\n
-    need_update = False\n
-    for line in previous_open_sale_order.contentValues(portal_type=\'Open Sale Order Line\'):\n
+    for line in open_sale_order.contentValues(portal_type=\'Open Sale Order Line\'):\n
       if line.getStopDate() < stop_date:\n
-        need_update = True\n
-        break\n
-    if need_update:\n
-      if open_sale_order is None:\n
-        open_sale_order = previous_open_sale_order.Base_createCloneDocument(batch_mode=1)\n
-      for line in open_sale_order.contentValues(portal_type=\'Open Sale Order Line\'):\n
-        if line.getStopDate() < stop_date:\n
-          line.setStopDate(stop_date, **kw)\n
-  if previous_open_sale_order is not None and open_sale_order is not None:\n
-    previous_open_sale_order.setExpirationDate(now, **kw)\n
-  if open_sale_order is not None:\n
-    open_sale_order.setEffectiveDate(now, **kw)\n
-    open_sale_order.order(**kw)\n
-    open_sale_order.validate(**kw)\n
+        line.setStopDate(stop_date, **kw)\n
+if previous_open_sale_order is not None and open_sale_order is not None:\n
+  previous_open_sale_order.setExpirationDate(now, **kw)\n
+if open_sale_order is not None:\n
+  open_sale_order.setEffectiveDate(now, **kw)\n
+  open_sale_order.order(**kw)\n
+  open_sale_order.validate(**kw)\n
 
 
 ]]></string> </value>
diff --git a/master/bt5/vifib_slap/bt/revision b/master/bt5/vifib_slap/bt/revision
index 8ec9b982c..236c7c706 100644
--- a/master/bt5/vifib_slap/bt/revision
+++ b/master/bt5/vifib_slap/bt/revision
@@ -1 +1 @@
-622
\ No newline at end of file
+623
\ No newline at end of file
-- 
2.30.9