diff --git a/addons/account/account_invoice.py b/addons/account/account_invoice.py index df3fb8a6455..80542329858 100644 --- a/addons/account/account_invoice.py +++ b/addons/account/account_invoice.py @@ -1511,6 +1511,7 @@ class account_invoice_line(osv.osv): else: return {'value': {'price_unit': 0.0}, 'domain':{'product_uom':[]}} part = self.pool.get('res.partner').browse(cr, uid, partner_id, context=context) + product_uom_obj = self.pool.get('product.uom') fpos_obj = self.pool.get('account.fiscal.position') fpos = fposition_id and fpos_obj.browse(cr, uid, fposition_id, context=context) or False @@ -1548,7 +1549,12 @@ class account_invoice_line(osv.osv): else: result.update({'price_unit': res.list_price, 'invoice_line_tax_id': tax_id}) - result['uos_id'] = uom_id or res.uom_id.id + result['uos_id'] = res.uom_id.id + if uom_id: + uom = product_uom_obj.browse(cr, uid, uom_id) + if res.uom_id.category_id.id == uom.category_id.id: + result['uos_id'] = uom_id + domain = {'uos_id':[('category_id','=',res.uom_id.category_id.id)]} diff --git a/addons/account/res_config_view.xml b/addons/account/res_config_view.xml index 8a5b1978ecb..fb88168de50 100644 --- a/addons/account/res_config_view.xml +++ b/addons/account/res_config_view.xml @@ -150,7 +150,7 @@
@@ -195,7 +195,7 @@
diff --git a/addons/account_voucher/account_voucher.py b/addons/account_voucher/account_voucher.py index 0e84b278191..704f875b920 100644 --- a/addons/account_voucher/account_voucher.py +++ b/addons/account_voucher/account_voucher.py @@ -564,7 +564,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 @@ -656,6 +661,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 @@ -912,7 +921,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 @@ -998,6 +1012,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 1a8ab9ca744..d8c675d66a0 100644 --- a/addons/mail/mail_thread.py +++ b/addons/mail/mail_thread.py @@ -855,7 +855,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 # 1. message is a reply to an existing message (exact match of message_id) diff --git a/addons/mail/tests/test_mail_gateway.py b/addons/mail/tests/test_mail_gateway.py index f4bfa61ae13..dc55798dbcb 100644 --- a/addons/mail/tests/test_mail_gateway.py +++ b/addons/mail/tests/test_mail_gateway.py @@ -626,7 +626,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 0fc3b416f5c..c465fb9a37f 100644 --- a/openerp/tools/misc.py +++ b/openerp/tools/misc.py @@ -422,7 +422,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 / български език', @@ -432,7 +431,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)', @@ -444,14 +443,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', @@ -459,6 +454,7 @@ ALL_LANGUAGES = { 'fi_FI': u'Finnish / Suomi', 'fr_BE': u'French (BE) / Français (BE)', '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 / ગુજરાતી', @@ -468,7 +464,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 / 日本語', 'ko_KP': u'Korean (KP) / 한국어 (KP)', 'ko_KR': u'Korean (KR) / 한국어 (KR)', @@ -476,18 +471,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'Flemish (BE) / Vlaams (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', @@ -498,12 +490,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():