From aa28ca1a39bc0d1e7fafc076a775bb4c7e08fb44 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=A9rome=20Perrin?= <jerome@nexedi.com>
Date: Sun, 5 Mar 2006 20:06:27 +0000
Subject: [PATCH] do not assume the causality packing list is always related to
 an Order

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@5989 20353a03-c40f-0410-a6d1-a30d3c3de9de
---
 ...oiceTransaction_postGenerationActivity.xml | 24 ++++++++++---------
 1 file changed, 13 insertions(+), 11 deletions(-)

diff --git a/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/SaleInvoiceTransaction_postGenerationActivity.xml b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/SaleInvoiceTransaction_postGenerationActivity.xml
index ffc2b45738..6e225fe5ae 100755
--- a/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/SaleInvoiceTransaction_postGenerationActivity.xml
+++ b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/SaleInvoiceTransaction_postGenerationActivity.xml
@@ -82,19 +82,20 @@ LOG = lambda msg:context.log(\n
 sale_invoice.Delivery_setCausalityFromSimulation()\n
 \n
 related_packing_list = sale_invoice.getDefaultCausalityValue()\n
-LOG(\'causality %s \' %sale_invoice.getCausalityValueList())\n
+#LOG(\'causality %s \' %sale_invoice.getCausalityValueList())\n
 \n
-# get a price_currency for the order\n
+# get a price_currency from the packing list\n
 related_order  = related_packing_list.getDefaultCausalityValue()\n
-price_currency = related_order.getPriceCurrency()\n
-\n
-# copy some properties from the first related packing list\n
-sale_invoice.edit(\n
-  title = related_packing_list.getTitle(),\n
-  resource = price_currency,\n
-  price_currency = price_currency,\n
-  reference = related_packing_list.getReference(),\n
-)\n
+if related_order is not None :\n
+  price_currency = related_order.getPriceCurrency()\n
+  sale_invoice.edit(\n
+    resource = price_currency,\n
+    price_currency = price_currency,\n
+  )\n
+  \n
+# copy title, if not updating a new delivery\n
+if sale_invoice.getTitle() is None :\n
+  sale_invoice.setTitle(related_packing_list.getTitle())\n
 \n
 # initialize accounting_workflow to planned state\n
 if sale_invoice.getSimulationState() == \'draft\' : \n
@@ -168,6 +169,7 @@ sale_invoice.activate(\n
                             <string>_getattr_</string>
                             <string>related_packing_list</string>
                             <string>related_order</string>
+                            <string>None</string>
                             <string>price_currency</string>
                             <string>RuntimeError</string>
                             <string>e</string>
-- 
2.30.9