diff --git a/addons/account/account_invoice.py b/addons/account/account_invoice.py index 02ab5189c1e..e14b547c4fe 100644 --- a/addons/account/account_invoice.py +++ b/addons/account/account_invoice.py @@ -1351,7 +1351,12 @@ class account_invoice_line(models.Model): else: values['price_unit'] = product.lst_price - values['uos_id'] = uom_id or product.uom_id.id + values['uos_id'] = product.uom_id.id + if uom_id: + uom = self.env['product.uom'].browse(uom_id) + if product.uom_id.category_id.id == uom.category_id.id: + values['uos_id'] = uom_id + domain = {'uos_id': [('category_id', '=', product.uom_id.category_id.id)]} company = self.env['res.company'].browse(company_id) diff --git a/addons/account/res_config_view.xml b/addons/account/res_config_view.xml index f5d071f1d05..b39931ea940 100644 --- a/addons/account/res_config_view.xml +++ b/addons/account/res_config_view.xml @@ -159,7 +159,7 @@
@@ -204,7 +204,7 @@
diff --git a/addons/account_voucher/account_voucher.py b/addons/account_voucher/account_voucher.py index 9f9196521cc..c021e47640b 100644 --- a/addons/account_voucher/account_voucher.py +++ b/addons/account_voucher/account_voucher.py @@ -516,7 +516,12 @@ class account_voucher(osv.osv): else: if not journal.default_credit_account_id or not journal.default_debit_account_id: raise osv.except_osv(_('Error!'), _('Please define default credit/debit accounts on the journal "%s".') % (journal.name)) - account_id = journal.default_credit_account_id.id or journal.default_debit_account_id.id + if ttype in ('sale', 'receipt'): + account_id = journal.default_debit_account_id.id + elif ttype in ('purchase', 'payment'): + account_id = journal.default_credit_account_id.id + else: + account_id = journal.default_credit_account_id.id or journal.default_debit_account_id.id tr_type = 'receipt' default['value']['account_id'] = account_id @@ -610,6 +615,10 @@ class account_voucher(osv.osv): account_id = partner.property_account_receivable.id elif journal.type in ('purchase', 'purchase_refund','expense'): account_id = partner.property_account_payable.id + elif ttype in ('sale', 'receipt'): + account_id = journal.default_debit_account_id.id + elif ttype in ('purchase', 'payment'): + account_id = journal.default_credit_account_id.id else: account_id = journal.default_credit_account_id.id or journal.default_debit_account_id.id @@ -869,7 +878,12 @@ class account_voucher(osv.osv): return False journal_pool = self.pool.get('account.journal') journal = journal_pool.browse(cr, uid, journal_id, context=context) - account_id = journal.default_credit_account_id or journal.default_debit_account_id + if ttype in ('sale', 'receipt'): + account_id = journal.default_debit_account_id + elif ttype in ('purchase', 'payment'): + account_id = journal.default_credit_account_id + else: + account_id = journal.default_credit_account_id or journal.default_debit_account_id tax_id = False if account_id and account_id.tax_ids: tax_id = account_id.tax_ids[0].id @@ -973,6 +987,10 @@ class account_voucher(osv.osv): account_id = partner.property_account_receivable.id elif journal.type in ('purchase', 'purchase_refund','expense'): account_id = partner.property_account_payable.id + elif ttype in ('sale', 'receipt'): + account_id = journal.default_debit_account_id.id + elif ttype in ('purchase', 'payment'): + account_id = journal.default_credit_account_id.id else: account_id = journal.default_credit_account_id.id or journal.default_debit_account_id.id if account_id: diff --git a/addons/mail/mail_thread.py b/addons/mail/mail_thread.py index f4cd137c543..111058fee2e 100644 --- a/addons/mail/mail_thread.py +++ b/addons/mail/mail_thread.py @@ -940,7 +940,7 @@ class mail_thread(osv.AbstractModel): email_from = decode_header(message, 'From') email_to = decode_header(message, 'To') references = decode_header(message, 'References') - in_reply_to = decode_header(message, 'In-Reply-To') + in_reply_to = decode_header(message, 'In-Reply-To').strip() thread_references = references or in_reply_to # 0. First check if this is a bounce message or not. diff --git a/addons/mail/tests/test_mail_gateway.py b/addons/mail/tests/test_mail_gateway.py index cc732b007a2..624d573d36a 100644 --- a/addons/mail/tests/test_mail_gateway.py +++ b/addons/mail/tests/test_mail_gateway.py @@ -628,7 +628,7 @@ class TestMailgateway(TestMail): # 1. In-Reply-To header reply_msg2 = format(MAIL_TEMPLATE, to='erroneous@example.com', - extra='In-Reply-To: %s' % msg1.message_id, + extra='In-Reply-To:\r\n\t%s' % msg1.message_id, msg_id='<1198923581.41972151344608186760.JavaMail.3@agrolait.com>') self.mail_group.message_process(cr, uid, None, reply_msg2) diff --git a/openerp/tools/misc.py b/openerp/tools/misc.py index 08e76015b2b..36b12893bc4 100644 --- a/openerp/tools/misc.py +++ b/openerp/tools/misc.py @@ -477,7 +477,6 @@ def get_iso_codes(lang): return lang ALL_LANGUAGES = { - 'ab_RU': u'Abkhazian / аҧсуа', 'am_ET': u'Amharic / አምሃርኛ', 'ar_SY': u'Arabic / الْعَرَبيّة', 'bg_BG': u'Bulgarian / български език', @@ -487,7 +486,7 @@ ALL_LANGUAGES = { 'da_DK': u'Danish / Dansk', 'de_DE': u'German / Deutsch', 'el_GR': u'Greek / Ελληνικά', - 'en_CA': u'English (CA)', + 'en_AU': u'English (AU)', 'en_GB': u'English (UK)', 'en_US': u'English (US)', 'es_AR': u'Spanish (AR) / Español (AR)', @@ -499,14 +498,10 @@ ALL_LANGUAGES = { 'es_EC': u'Spanish (EC) / Español (EC)', 'es_ES': u'Spanish / Español', 'es_GT': u'Spanish (GT) / Español (GT)', - 'es_HN': u'Spanish (HN) / Español (HN)', 'es_MX': u'Spanish (MX) / Español (MX)', - 'es_NI': u'Spanish (NI) / Español (NI)', 'es_PA': u'Spanish (PA) / Español (PA)', 'es_PE': u'Spanish (PE) / Español (PE)', - 'es_PR': u'Spanish (PR) / Español (PR)', 'es_PY': u'Spanish (PY) / Español (PY)', - 'es_SV': u'Spanish (SV) / Español (SV)', 'es_UY': u'Spanish (UY) / Español (UY)', 'es_VE': u'Spanish (VE) / Español (VE)', 'et_EE': u'Estonian / Eesti keel', @@ -515,6 +510,7 @@ ALL_LANGUAGES = { 'fr_BE': u'French (BE) / Français (BE)', 'fr_CA': u'French (CA) / Français (CA)', 'fr_CH': u'French (CH) / Français (CH)', + 'fr_CA': u'French (CA) / Français (CA)', 'fr_FR': u'French / Français', 'gl_ES': u'Galician / Galego', 'gu_IN': u'Gujarati / ગુજરાતી', @@ -524,7 +520,6 @@ ALL_LANGUAGES = { 'hu_HU': u'Hungarian / Magyar', 'id_ID': u'Indonesian / Bahasa Indonesia', 'it_IT': u'Italian / Italiano', - 'iu_CA': u'Inuktitut / ᐃᓄᒃᑎᑐᑦ', 'ja_JP': u'Japanese / 日本語', 'kab_DZ': u'Kabyle / Taqbaylit', 'ko_KP': u'Korean (KP) / 한국어 (KP)', @@ -533,18 +528,15 @@ ALL_LANGUAGES = { 'lt_LT': u'Lithuanian / Lietuvių kalba', 'lv_LV': u'Latvian / latviešu valoda', 'mk_MK': u'Macedonian / македонски јазик', - 'ml_IN': u'Malayalam / മലയാളം', 'mn_MN': u'Mongolian / монгол', 'nb_NO': u'Norwegian Bokmål / Norsk bokmål', 'nl_NL': u'Dutch / Nederlands', 'nl_BE': u'Dutch (BE) / Nederlands (BE)', - 'oc_FR': u'Occitan (FR, post 1500) / Occitan', 'pl_PL': u'Polish / Język polski', 'pt_BR': u'Portuguese (BR) / Português (BR)', 'pt_PT': u'Portuguese / Português', 'ro_RO': u'Romanian / română', 'ru_RU': u'Russian / русский язык', - 'si_LK': u'Sinhalese / සිංහල', 'sl_SI': u'Slovenian / slovenščina', 'sk_SK': u'Slovak / Slovenský jazyk', 'sq_AL': u'Albanian / Shqip', @@ -555,12 +547,10 @@ ALL_LANGUAGES = { 'tr_TR': u'Turkish / Türkçe', 'vi_VN': u'Vietnamese / Tiếng Việt', 'uk_UA': u'Ukrainian / українська', - 'ur_PK': u'Urdu / اردو', 'zh_CN': u'Chinese (CN) / 简体中文', 'zh_HK': u'Chinese (HK)', 'zh_TW': u'Chinese (TW) / 正體字', 'th_TH': u'Thai / ภาษาไทย', - 'tlh_TLH': u'Klingon', } def scan_languages():