From 8221492f28dd1d5dc50879c31ad12f4f4b9ccf6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Nowak?= <luke@nexedi.com> Date: Tue, 28 Apr 2009 12:25:43 +0000 Subject: [PATCH] - use system preferences list of categories to recognise resources - update test to use it git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@26676 20353a03-c40f-0410-a6d1-a30d3c3de9de --- product/ERP5/Document/TradeModelLine.py | 13 +++++--- product/ERP5/tests/testBPMCore.py | 41 ++++++++++++++++++++++--- 2 files changed, 46 insertions(+), 8 deletions(-) diff --git a/product/ERP5/Document/TradeModelLine.py b/product/ERP5/Document/TradeModelLine.py index 4c79c8e838..a2c4be8da1 100644 --- a/product/ERP5/Document/TradeModelLine.py +++ b/product/ERP5/Document/TradeModelLine.py @@ -34,6 +34,7 @@ from Products.ERP5Type import Permissions, PropertySheet, Constraint, Interface from Products.ERP5.Document.Amount import Amount from Products.ERP5.AggregatedAmountList import AggregatedAmountList + import zope.interface class TradeModelLine(Amount): @@ -68,9 +69,13 @@ class TradeModelLine(Amount): def getAggregatedAmountList(self, context, movement_list = None, current_aggregated_amount_list = None, **kw): - from Products.ERP5Type.Document import newTempMovement + normal_resource_use_category_list = self.\ + portal_preferences.getPreferredNormalResourceUseCategoryList() + if normal_resource_use_category_list is None: + raise ValueError('preferred_normal_resource_use_category is not ' + \ + 'configured in System Preferences') if current_aggregated_amount_list is None: current_aggregated_amount_list = [] @@ -102,9 +107,9 @@ class TradeModelLine(Amount): for movement in context.getMovementList(): movement_resource = movement.getResourceValue() if movement_resource is not None: - if movement_resource.getUse() not in ['', None]: - continue - movement_list.append(movement) + if movement_resource.getUse() in \ + normal_resource_use_category_list: + movement_list.append(movement) aggregated_amount_list = AggregatedAmountList() base_application_list = self.getBaseApplicationList() diff --git a/product/ERP5/tests/testBPMCore.py b/product/ERP5/tests/testBPMCore.py index ff7b4b88f1..325cb9a4bc 100644 --- a/product/ERP5/tests/testBPMCore.py +++ b/product/ERP5/tests/testBPMCore.py @@ -58,6 +58,9 @@ class TestBPMMixin(ERP5TypeTestCase): modified_order_line_price_ratio = 2.0 modified_order_line_quantity_ratio = 2.5 + normal_resource_use_category_list = ['normal'] + invoicing_resource_use_category_list = ['discount', 'tax'] + def setUpOnce(self): self.portal = self.getPortalObject() self.validateRules() @@ -70,10 +73,13 @@ class TestBPMMixin(ERP5TypeTestCase): @reindex def createCategories(self): - category_tool = getToolByName(self.portal,'portal_categories') - self.createCategoriesInCategory(category_tool.base_amount,['discount', 'tax']) - self.createCategoriesInCategory(category_tool.use,['discount', 'tax']) - self.createCategoriesInCategory(category_tool.trade_phase,['default',]) + category_tool = getToolByName(self.portal, 'portal_categories') + self.createCategoriesInCategory(category_tool.base_amount, ['discount', + 'tax']) + self.createCategoriesInCategory(category_tool.use, + self.normal_resource_use_category_list + \ + self.invoicing_resource_use_category_list) + self.createCategoriesInCategory(category_tool.trade_phase, ['default',]) self.createCategoriesInCategory(category_tool.trade_phase.default, ['accounting', 'delivery', 'invoicing', 'discount', 'tax', 'payment']) @@ -158,9 +164,33 @@ class TestBPMMixin(ERP5TypeTestCase): portal_type='Applied Rule') return applied_rule.newContent(portal_type='Simulation Movement') + @reindex + def setSystemPreference(self): + preference_tool = getToolByName(self.portal, 'portal_preferences') + system_preference_list = preference_tool.contentValues( + portal_type='System Preference') + if len(system_preference_list) > 1: + raise AttributeError('More than one System Preference, cannot test') + if len(system_preference_list) == 0: + system_preference = preference_tool.newContent(portal_type='System Preference') + else: + system_preference = system_preference_list[0] + system_preference.edit( + preferred_invoicing_resource_use_category_list = \ + self.invoicing_resource_use_category_list, + preferred_normal_resource_use_category_list = \ + self.normal_resource_use_category_list, + priority = 1, + + ) + + if system_preference.getPreferenceState() == 'disabled': + system_preference.enable() + @reindex def afterSetUp(self): self.createCategories() + self.setSystemPreference() # XXX for testing purpose only... # This builder is not supporting yet deeper simulation tree @@ -630,18 +660,21 @@ class TestBPMMixin(ERP5TypeTestCase): sequence.edit(product_taxed = self.createResource('Product', title='Product Taxed', base_contribution=['base_amount/tax'], + use='normal', )) def stepCreateProductDiscounted(self, sequence=None, **kw): sequence.edit(product_discounted = self.createResource('Product', title='Product Discounted', base_contribution=['base_amount/discount'], + use='normal', )) def stepCreateProductDiscountedTaxed(self, sequence=None, **kw): sequence.edit(product_discounted_taxed = self.createResource('Product', title='Product Discounted & Taxed', base_contribution=['base_amount/discount', 'base_amount/tax'], + use='normal', )) def stepCreateServiceTax(self, sequence=None, **kw): -- 2.30.9