From 6fcfb1fda63ad23eef5ad6af226444f49481cca8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Klaus=20W=C3=B6lfel?= <klaus@nexedi.com> Date: Wed, 19 Nov 2014 19:28:30 +0100 Subject: [PATCH] Temporarly Revert "stop copying (deprecated) Payment Condition documents from Trade Condition to Order, and from Order to Packing List." This reverts commit eb5fdbe3613b320b0ae92d18458f831620e0ac15. Conflicts: bt5/erp5_trade/bt/revision product/ERP5/tests/testTradeCondition.py --- .../erp5_trade/Order_applyTradeCondition.xml | 15 +++++++ .../PackingList_copyOrderProperties.xml | 6 +++ product/ERP5/tests/testOrder.py | 38 +++++++++++++++++ product/ERP5/tests/testTradeCondition.py | 42 ++++++++++++++----- 4 files changed, 90 insertions(+), 11 deletions(-) diff --git a/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/Order_applyTradeCondition.xml b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/Order_applyTradeCondition.xml index d8877d136b..0ae261b505 100644 --- a/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/Order_applyTradeCondition.xml +++ b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/Order_applyTradeCondition.xml @@ -133,6 +133,21 @@ else:\n context.getPortalAccountingTransactionTypeList():\n new_category_dict[\'resource\'] = v\n \n +def copyPaymentCondition(order, trade_condition):\n + filter_dict = {\'portal_type\': \'Payment Condition\'}\n + to_copy = trade_condition.contentIds(filter=filter_dict)\n + if len(to_copy) > 0 :\n + copy_data = trade_condition.manage_copyObjects(ids=to_copy)\n + order.manage_pasteObjects(copy_data)\n + for other_trade_condition in trade_condition.getSpecialiseValueList():\n + copyPaymentCondition(order, other_trade_condition)\n + \n +filter_dict = {\'portal_type\': \'Payment Condition\'}\n +if force:\n + order.manage_delObjects(list(order.contentIds(filter=filter_dict)))\n +if len(order.contentIds(filter=filter_dict)) == 0:\n + copyPaymentCondition(order, trade_condition)\n +\n # set specialise\n new_category_dict[\'specialise\'] = trade_condition.getRelativeUrl()\n \n diff --git a/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/PackingList_copyOrderProperties.xml b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/PackingList_copyOrderProperties.xml index 8fa3c07f99..77c1573664 100644 --- a/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/PackingList_copyOrderProperties.xml +++ b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/PackingList_copyOrderProperties.xml @@ -61,6 +61,12 @@ if packing_list.getSimulationState() == \'draft\':\n title = related_order.getTitle()\n )\n \n + # copy order\'s payment conditions\n + payment_condition_copy_id_list = related_order.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 + packing_list.manage_pasteObjects(clipboard)\n ]]></string> </value> diff --git a/product/ERP5/tests/testOrder.py b/product/ERP5/tests/testOrder.py index 8c088105e2..020b8d3711 100644 --- a/product/ERP5/tests/testOrder.py +++ b/product/ERP5/tests/testOrder.py @@ -2667,6 +2667,44 @@ class TestOrder(TestOrderMixin, ERP5TypeTestCase): self.assertEqual(10 + 20, order.getTotalQuantity()) self.assertEqual(10*4 + 20*5, order.getTotalPrice()) + def test_order_payment_condition_copied(self): + # Payment Condition should be copied in the packing list + resource = self.portal.getDefaultModule( + self.resource_portal_type).newContent( + portal_type=self.resource_portal_type, + title='Resource',) + client = self.portal.organisation_module.newContent( + portal_type='Organisation', title='Client') + vendor = self.portal.organisation_module.newContent( + portal_type='Organisation', title='Vendor') + order = self.portal.getDefaultModule(self.order_portal_type).newContent( + portal_type=self.order_portal_type, + specialise=self.business_process, + title='Order', + start_date=self.datetime, + source_value=vendor, + source_section_value=vendor, + destination_value=client, + destination_section_value=client) + line = order.newContent(portal_type=self.order_line_portal_type, + resource_value=resource, + quantity=10, + price=3) + # set properties, on the default payment condition + order.setDefaultPaymentConditionQuantity(10) + self.assertEqual(1, len(order.contentValues( + portal_type='Payment Condition'))) + + order.confirm() + self.tic() + self.stepPackingListBuilderAlarm() + self.tic() + related_packing_list = order.getCausalityRelatedValue( + portal_type=self.packing_list_portal_type) + self.assertNotEquals(related_packing_list, None) + self.assertEqual(1, len(related_packing_list.contentValues( + portal_type='Payment Condition'))) + def test_Order_viewAsODT(self): # tests order printout resource = self.portal.getDefaultModule( diff --git a/product/ERP5/tests/testTradeCondition.py b/product/ERP5/tests/testTradeCondition.py index ea342ddba5..2f585cd869 100644 --- a/product/ERP5/tests/testTradeCondition.py +++ b/product/ERP5/tests/testTradeCondition.py @@ -161,15 +161,33 @@ class TestApplyTradeCondition(TradeConditionTestCase): self.assertEqual(self.client, self.order.getDestinationValue()) self.assertEqual(self.currency, self.order.getPriceCurrencyValue()) - def test_apply_trade_condition_with_payment_conditions(self): + def test_apply_trade_condition_copy_subobjects(self): self.trade_condition.setPaymentConditionTradeDate('custom') self.trade_condition.setPaymentConditionPaymentDate(DateTime(2001, 01, 01)) self.order.setSpecialiseValue(self.trade_condition) - self.assertEqual('custom', self.order.asComposedDocument().getProperty('payment_condition_trade_date')) + + self.order.Order_applyTradeCondition(self.trade_condition, force=1) + + self.assertEqual('custom', self.order.getPaymentConditionTradeDate()) self.assertEqual(DateTime(2001, 01, 01), - self.order.asComposedDocument().getProperty('payment_condition_payment_date')) + self.order.getPaymentConditionPaymentDate()) - def test_apply_trade_condition_with_payment_conditions_with_hierarchy(self): + def test_apply_twice_trade_condition_copy_subobjects(self): + self.trade_condition.setPaymentConditionTradeDate('custom') + self.trade_condition.setPaymentConditionPaymentDate(DateTime(2001, 01, 01)) + self.order.setSpecialiseValue(self.trade_condition) + + self.order.Order_applyTradeCondition(self.trade_condition, force=1) + self.assertEqual(1, len(self.order.contentValues( + portal_type='Payment Condition'))) + self.assertEqual('custom', self.order.getPaymentConditionTradeDate()) + self.assertEqual(DateTime(2001, 01, 01), + self.order.getPaymentConditionPaymentDate()) + self.order.Order_applyTradeCondition(self.trade_condition, force=1) + self.assertEqual(1, len(self.order.contentValues( + portal_type='Payment Condition'))) + + def test_apply_trade_condition_copy_subobjects_with_hierarchy(self): other_trade_condition = self.trade_condition_module.newContent( portal_type=self.trade_condition.getPortalType(), title='Other Trade Condition') @@ -179,9 +197,12 @@ class TestApplyTradeCondition(TradeConditionTestCase): self.trade_condition.setSpecialiseValue(other_trade_condition) self.order.setSpecialiseValue(self.trade_condition) - self.assertEqual('custom', self.order.asComposedDocument().getProperty('payment_condition_trade_date')) + + self.order.Order_applyTradeCondition(self.trade_condition, force=1) + + self.assertEqual('custom', self.order.getPaymentConditionTradeDate()) self.assertEqual(DateTime(2001, 01, 01), - self.order.asComposedDocument().getProperty('payment_condition_payment_date')) + self.order.getPaymentConditionPaymentDate()) def test_apply_trade_condition_twice_update_order(self): self.trade_condition.setSourceSectionValue(self.vendor) @@ -201,9 +222,9 @@ class TestApplyTradeCondition(TradeConditionTestCase): self.assertEqual(self.client, self.order.getDestinationSectionValue()) self.assertEqual(self.client, self.order.getDestinationValue()) self.assertEqual(self.currency, self.order.getPriceCurrencyValue()) - self.assertEqual('custom', self.order.asComposedDocument().getProperty('payment_condition_trade_date')) + self.assertEqual('custom', self.order.getPaymentConditionTradeDate()) self.assertEqual(DateTime(2001, 01, 01), - self.order.asComposedDocument().getProperty('payment_condition_payment_date')) + self.order.getPaymentConditionPaymentDate()) new_vendor = self.portal.organisation_module.newContent( portal_type='Organisation', @@ -215,15 +236,14 @@ class TestApplyTradeCondition(TradeConditionTestCase): payment_condition_payment_date=DateTime(2002, 2, 2)) self.order.Order_applyTradeCondition(new_trade_condition, force=1) - self.tic() self.assertEqual(new_vendor, self.order.getSourceSectionValue()) self.assertEqual(self.vendor, self.order.getSourceValue()) self.assertEqual(self.client, self.order.getDestinationSectionValue()) self.assertEqual(self.client, self.order.getDestinationValue()) self.assertEqual(self.currency, self.order.getPriceCurrencyValue()) - self.assertEqual('custom', self.order.asComposedDocument().getProperty('payment_condition_trade_date')) + self.assertEqual('custom', self.order.getPaymentConditionTradeDate()) self.assertEqual(DateTime(2002, 02, 02), - self.order.asComposedDocument().getProperty('payment_condition_payment_date')) + self.order.getPaymentConditionPaymentDate()) class TestTradeConditionSupplyLine(TradeConditionTestCase): -- 2.30.9