From 37736e34a0a31be32b0808ef9335c99148b93a69 Mon Sep 17 00:00:00 2001
From: Tatuya Kamada <tatuya@nexedi.com>
Date: Mon, 8 Mar 2010 07:02:45 +0000
Subject: [PATCH] 2010-03-08 tatuya * Prevent to copy multiple payment
 conditions at the Delivery After Generation Script of Invoice Transaction. If
 the payment conditions are multiple, payment transaction builder manage to
 create too many payment transaction lines.

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@33487 20353a03-c40f-0410-a6d1-a30d3c3de9de
---
 .../InvoiceTransaction_postGeneration.xml     | 20 ++++++++++---------
 bt5/erp5_invoicing/bt/change_log              |  3 +++
 bt5/erp5_invoicing/bt/revision                |  2 +-
 3 files changed, 15 insertions(+), 10 deletions(-)

diff --git a/bt5/erp5_invoicing/SkinTemplateItem/portal_skins/erp5_invoicing/InvoiceTransaction_postGeneration.xml b/bt5/erp5_invoicing/SkinTemplateItem/portal_skins/erp5_invoicing/InvoiceTransaction_postGeneration.xml
index 3fdaf94f43..d3c04b60c9 100644
--- a/bt5/erp5_invoicing/SkinTemplateItem/portal_skins/erp5_invoicing/InvoiceTransaction_postGeneration.xml
+++ b/bt5/erp5_invoicing/SkinTemplateItem/portal_skins/erp5_invoicing/InvoiceTransaction_postGeneration.xml
@@ -83,17 +83,19 @@ related_order = related_packing_list.getDefaultCausalityValue()\n
 \n
 # copy payment conditions from packing list\n
 # if missing, try to copy from order (for compatibility)\n
-payment_condition_copy_id_list = related_packing_list.contentIds(filter={\'portal_type\':\'Payment Condition\'})\n
-if len(payment_condition_copy_id_list) > 0:\n
-  clipboard = related_packing_list.manage_copyObjects(\n
-    ids=payment_condition_copy_id_list)\n
-  invoice.manage_pasteObjects(clipboard)\n
-elif related_order is not None:\n
-  payment_condition_copy_id_list = related_order.contentIds(filter={\'portal_type\':\'Payment Condition\'})\n
+if not invoice.contentValues(portal_type=\'Payment Condition\'):\n
+  payment_condition_copy_id_list = []\n
+  if related_packing_list is not None:\n
+    payment_condition_copy_id_list = related_packing_list.contentIds(filter={\'portal_type\':\'Payment Condition\'})\n
   if len(payment_condition_copy_id_list) > 0:\n
-    clipboard = related_order.manage_copyObjects(\n
-      ids=payment_condition_copy_id_list)\n
+    clipboard = related_packing_list.manage_copyObjects(ids=payment_condition_copy_id_list)\n
     invoice.manage_pasteObjects(clipboard)\n
+  elif related_order is not None:\n
+    payment_condition_copy_id_list = related_order.contentIds(\n
+      filter={\'portal_type\':\'Payment Condition\'})\n
+    if len(payment_condition_copy_id_list) > 0:\n
+      clipboard = related_order.manage_copyObjects(ids=payment_condition_copy_id_list)\n
+      invoice.manage_pasteObjects(clipboard)\n
 \n
 if related_order is not None:\n
   # copy trade condition:\n
diff --git a/bt5/erp5_invoicing/bt/change_log b/bt5/erp5_invoicing/bt/change_log
index 66f1f21fb4..ef605c213b 100644
--- a/bt5/erp5_invoicing/bt/change_log
+++ b/bt5/erp5_invoicing/bt/change_log
@@ -1,3 +1,6 @@
+2010-03-08 tatuya
+* Prevent to copy multiple payment conditions at the Delivery After Generation Script of Invoice Transaction. If the payment conditions are multiple, payment transaction builder manage to create too many payment transaction lines.
+
 2010-03-02 yusei
 * Remove short title.
 * Fix allowed content type setting.
diff --git a/bt5/erp5_invoicing/bt/revision b/bt5/erp5_invoicing/bt/revision
index d35d5f7824..0dbf139f8d 100644
--- a/bt5/erp5_invoicing/bt/revision
+++ b/bt5/erp5_invoicing/bt/revision
@@ -1 +1 @@
-347
\ No newline at end of file
+350
\ No newline at end of file
-- 
2.30.9