From ae842db7266de25afe2279e93356a5042892ecb1 Mon Sep 17 00:00:00 2001 From: Vincent Pelletier <vincent@nexedi.com> Date: Fri, 18 Sep 2009 15:39:00 +0000 Subject: [PATCH] Create organisation and their bank accounts when creating site categories. git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@29109 20353a03-c40f-0410-a6d1-a30d3c3de9de --- .../ERP5Banking/tests/TestERP5BankingMixin.py | 60 ++++++++++++------- 1 file changed, 37 insertions(+), 23 deletions(-) diff --git a/product/ERP5Banking/tests/TestERP5BankingMixin.py b/product/ERP5Banking/tests/TestERP5BankingMixin.py index 7a964b8207..69137c0c50 100644 --- a/product/ERP5Banking/tests/TestERP5BankingMixin.py +++ b/product/ERP5Banking/tests/TestERP5BankingMixin.py @@ -496,7 +496,7 @@ class TestERP5BankingMixin: Create site group function category that can be used for security """ if site_list is None: - site_list = ["paris"] + site_list = ["paris", 'madrid', 'siege'] # add category unit in quantity_unit which is the unit that will be used for banknotes and coins self.variation_base_category = getattr(self.category_tool, 'quantity_unit') self.unit = self.variation_base_category.newContent(id='unit', title='Unit') @@ -545,32 +545,55 @@ class TestERP5BankingMixin: self.site_base_category = getattr(self.category_tool, 'site') # add the category testsite in the category site which hold vaults situated in the bank self.testsite = self.site_base_category.newContent(id='testsite', portal_type='Category',codification='TEST') - created_site_list = [] + site_reference_from_codification_dict = { + 'P10': ('FR', '000', '11111', '000000000000', '25'), + 'S10': ('SP', '000', '11111', '000000000000', '08'), + 'HQ1': ('FR', '000', '11112', '000000000000', '69'), + } + self.paris = self.testsite.newContent(id='paris', portal_type='Category', codification='P10', vault_type='site') + self.madrid = self.testsite.newContent(id='madrid', portal_type='Category', codification='S10', vault_type='site') + self.siege = self.site_base_category.newContent(id='siege', portal_type='Category', codification='HQ1', vault_type='site') + created_site_list = [self.paris, self.madrid, self.siege] if len(site_list) != 0: for site in site_list: if isinstance(site, tuple): container = self.site_base_category - if len(site) == 3: + if len(site) in (3, 4): for category_id in site[2].split('/'): contained = getattr(container, category_id, None) if contained is None: contained = container.newContent(id=category_id, portal_type='Category') container = contained + if len(site) == 4: + site_reference_from_codification_dict[site[1]] = site[3] codification = site[1] site = site[0] - if site == "paris": - self.paris = self.testsite.newContent(id='paris', portal_type='Category', codification='P10', vault_type='site') - created_site_list.append(self.paris) - elif site == 'madrid' : - self.madrid = self.testsite.newContent(id='madrid', portal_type='Category', codification='S10', vault_type='site') - created_site_list.append(self.madrid) - elif site == 'siege': - self.siege = self.site_base_category.newContent(id='siege', portal_type='Category', codification='HQ1', vault_type='site') - created_site_list.append(self.siege) - else: + if site not in ("paris", 'madrid', 'siege'): site = container.newContent(id=site, portal_type='Category', codification=codification, vault_type='site') created_site_list.append(site) - + + # Create organisation + bank account for each site category. + newContent = self.organisation_module.newContent + for site in created_site_list: + codification = site.getCodification() + organisation = newContent( + portal_type='Organisation', + id='site_%s' % (codification, ), + site=site.getRelativeUrl(), + group='baobab', + function='banking') + site_reference = site_reference_from_codification_dict.get(codification) + if site_reference is not None: + bank_account = organisation.newContent( + portal_type='Bank Account', + bank_country_code=site_reference[0], + bank_code=site_reference[1], + branch=site_reference[2], + bank_account_number=site_reference[3], + bank_account_key=site_reference[4], # XXX: Should be computed from other parts of site_reference + ) + bank_account.validate() + self.vault_type_base_category = getattr(self.category_tool, 'vault_type') site_vault_type = self.vault_type_base_category.newContent(id='site') surface_vault_type = site_vault_type.newContent('surface') @@ -672,15 +695,6 @@ class TestERP5BankingMixin: for currency in ['usd', ]: caisse_courante.encaisse_des_devises.newContent(id=currency, portal_type='Category', codification='', vault_type='site/surface/caisse_courante/encaisse_des_devises') - # Create other site now but without vault - if len(site_list) != 0: - if 'paris' not in site_list: - self.paris = self.testsite.newContent(id='paris', portal_type='Category', codification='P10', vault_type='site') - if 'madrid' not in site_list: - self.madrid = self.testsite.newContent(id='madrid', portal_type='Category', codification='S10', vault_type='site') - if 'siege' not in site_list: - self.siege = self.site_base_category.newContent(id='siege', portal_type='Category', codification='HQ1', vault_type='site') - return created_site_list def _openDate(self, date=None, site=None, id=None, open=True, container=None, -- 2.30.9