[MERGE] forward port of branch saas-1 up to revid 8791 chs@openerp.com-20131009175454...
authorChristophe Simonis <chs@openerp.com>
Wed, 9 Oct 2013 18:03:37 +0000 (20:03 +0200)
committerChristophe Simonis <chs@openerp.com>
Wed, 9 Oct 2013 18:03:37 +0000 (20:03 +0200)
bzr revid: chs@openerp.com-20131009180337-cxgdt6zzd1z68ga9

1  2 
addons/account/account.py
addons/account/account_invoice_view.xml
addons/mail/mail_thread.py
addons/product/product_view.xml
addons/purchase/purchase.py
addons/sale/security/sale_security.xml
addons/stock/product_view.xml

@@@ -3073,6 -3097,8 +3092,7 @@@ class wizard_multi_charts_accounts(osv.
      def default_get(self, cr, uid, fields, context=None):
          res = super(wizard_multi_charts_accounts, self).default_get(cr, uid, fields, context=context)
          tax_templ_obj = self.pool.get('account.tax.template')
+         account_chart_template = self.pool['account.chart.template']
 -        data_obj = self.pool.get('ir.model.data')
  
          if 'bank_accounts_id' in fields:
              res.update({'bank_accounts_id': [{'acc_name': _('Cash'), 'account_type': 'cash'},{'acc_name': _('Bank'), 'account_type': 'bank'}]})
                  currency_id = company_obj.on_change_country(cr, uid, company_id, country_id, context=context)['value']['currency_id']
                  res.update({'currency_id': currency_id})
  
-         ids = self.pool.get('account.chart.template').search(cr, uid, [('visible', '=', True)], context=context)
+         ids = account_chart_template.search(cr, uid, [('visible', '=', True)], context=context)
          if ids:
+             #in order to set default chart which was last created set max of ids.
+             chart_id = max(ids)
+             if context.get("default_charts"):
 -                data_ids = data_obj.search(cr, uid, [('model', '=', 'account.chart.template'), ('module', '=', context.get("default_charts"))], limit=1, context=context)
 -                if data_ids:
 -                    chart_id = data_obj.browse(cr, uid, data_ids[0], context=context).res_id
++                model_data = self.pool.get('ir.model.data').search_read(cr, uid, [('model','=','account.chart.template'),('module','=',context.get("default_charts"))], ['res_id'], context=context)
++                if model_data:
++                    chart_id = model_data[0]['res_id']
+             chart = account_chart_template.browse(cr, uid, chart_id, context=context)
+             chart_hierarchy_ids = self._get_chart_parent_ids(cr, uid, chart, context=context) 
              if 'chart_template_id' in fields:
-                 #in order to get set default chart which was last created set max of ids.
-                 chart_id = max(ids)
-                 if context.get("default_charts"):
-                     model_data = self.pool.get('ir.model.data').search_read(cr, uid, [('model','=','account.chart.template'),('module','=',context.get("default_charts"))], ['res_id'], context=context)
-                     if model_data:
-                         chart_id = model_data[0]['res_id']
-                 res.update({'only_one_chart_template': len(ids) == 1, 'chart_template_id': chart_id})
+                 res.update({'only_one_chart_template': len(ids) == 1,
+                             'chart_template_id': chart_id})
              if 'sale_tax' in fields:
-                 sale_tax_ids = tax_templ_obj.search(cr, uid, [("chart_template_id"
-                                               , "=", ids[0]), ('type_tax_use', 'in', ('sale','all'))], order="sequence")
+                 sale_tax_ids = tax_templ_obj.search(cr, uid, [("chart_template_id", "in", chart_hierarchy_ids),
+                                                               ('type_tax_use', 'in', ('sale','all'))],
+                                                     order="sequence")
                  res.update({'sale_tax': sale_tax_ids and sale_tax_ids[0] or False})
              if 'purchase_tax' in fields:
-                 purchase_tax_ids = tax_templ_obj.search(cr, uid, [("chart_template_id"
-                                           , "=", ids[0]), ('type_tax_use', 'in', ('purchase','all'))], order="sequence")
+                 purchase_tax_ids = tax_templ_obj.search(cr, uid, [("chart_template_id", "in", chart_hierarchy_ids),
+                                                                   ('type_tax_use', 'in', ('purchase','all'))],
+                                                         order="sequence")
                  res.update({'purchase_tax': purchase_tax_ids and purchase_tax_ids[0] or False})
          res.update({
              'purchase_tax_rate': 15.0,
@@@ -1173,9 -952,9 +1173,9 @@@ class mail_thread(osv.AbstractModel)
                  partner_id, partner_name<partner_email> or partner_name, reason """
          if email and not partner:
              # get partner info from email
 -            partner_info = self.message_get_partner_info_from_emails(cr, uid, [email], context=context, res_id=obj.id)
 +            partner_info = self.message_partner_info_from_emails(cr, uid, obj.id, [email], context=context)[0]
-             if partner_info.get('partner_id'):
-                 partner = self.pool.get('res.partner').browse(cr, SUPERUSER_ID, [partner_info.get('partner_id')], context=context)[0]
+             if partner_info and partner_info[0].get('partner_id'):
+                 partner = self.pool.get('res.partner').browse(cr, SUPERUSER_ID, [partner_info[0]['partner_id']], context=context)[0]
          if email and email in [val[1] for val in result[obj.id]]:  # already existing email -> skip
              return result
          if partner and partner in obj.message_follower_ids:  # recipient already in the followers -> skip
Simple merge
Simple merge
Simple merge