[Erp5-report] r29109 - /erp5/trunk/products/ERP5Banking/tests/TestERP5BankingMixin.py

nobody at svn.erp5.org nobody at svn.erp5.org
Fri Sep 18 17:39:01 CEST 2009


Author: vincent
Date: Fri Sep 18 17:39:00 2009
New Revision: 29109

URL: http://svn.erp5.org?rev=29109&view=rev
Log:
Create organisation and their bank accounts when creating site categories.

Modified:
    erp5/trunk/products/ERP5Banking/tests/TestERP5BankingMixin.py

Modified: erp5/trunk/products/ERP5Banking/tests/TestERP5BankingMixin.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Banking/tests/TestERP5BankingMixin.py?rev=29109&r1=29108&r2=29109&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Banking/tests/TestERP5BankingMixin.py [utf8] (original)
+++ erp5/trunk/products/ERP5Banking/tests/TestERP5BankingMixin.py [utf8] Fri Sep 18 17:39:00 2009
@@ -496,7 +496,7 @@
     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 @@
     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 @@
         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, 




More information about the Erp5-report mailing list