diff --git a/addons/account/account_bank.py b/addons/account/account_bank.py
index 44411cd637a..acb0e640a7a 100644
--- a/addons/account/account_bank.py
+++ b/addons/account/account_bank.py
@@ -65,12 +65,11 @@ class bank(osv.osv):
# Find the code and parent of the bank account to create
dig = 6
current_num = 1
- ids = obj_acc.search(cr, uid, [('type','=','liquidity'), ('company_id', '=', bank.company_id.id)], context=context)
+ ids = obj_acc.search(cr, uid, [('type','=','liquidity'), ('company_id', '=', bank.company_id.id), ('parent_id', '!=', False)], context=context)
# No liquidity account exists, no template available
if not ids: continue
- ref_acc_bank_temp = obj_acc.browse(cr, uid, ids[0], context=context)
- ref_acc_bank = ref_acc_bank_temp.parent_id
+ ref_acc_bank = obj_acc.browse(cr, uid, ids[0], context=context).parent_id
while True:
new_code = str(ref_acc_bank.code.ljust(dig-len(str(current_num)), '0')) + str(current_num)
ids = obj_acc.search(cr, uid, [('code', '=', new_code), ('company_id', '=', bank.company_id.id)])
@@ -82,7 +81,7 @@ class bank(osv.osv):
'name': name,
'code': new_code,
'type': 'liquidity',
- 'user_type': ref_acc_bank_temp.user_type.id,
+ 'user_type': ref_acc_bank.user_type.id,
'reconcile': False,
'parent_id': ref_acc_bank.id,
'company_id': bank.company_id.id,
diff --git a/addons/account/account_invoice.py b/addons/account/account_invoice.py
index 01476374cf4..0fb6af05e58 100644
--- a/addons/account/account_invoice.py
+++ b/addons/account/account_invoice.py
@@ -51,9 +51,12 @@ class account_invoice(osv.osv):
company_id = context.get('company_id', user.company_id.id)
type2journal = {'out_invoice': 'sale', 'in_invoice': 'purchase', 'out_refund': 'sale_refund', 'in_refund': 'purchase_refund'}
journal_obj = self.pool.get('account.journal')
- res = journal_obj.search(cr, uid, [('type', '=', type2journal.get(type_inv, 'sale')),
- ('company_id', '=', company_id)],
- limit=1)
+ domain = [('company_id', '=', company_id)]
+ if isinstance(type_inv, list):
+ domain.append(('type', 'in', [type2journal.get(type) for type in type_inv if type2journal.get(type)]))
+ else:
+ domain.append(('type', '=', type2journal.get(type_inv, 'sale')))
+ res = journal_obj.search(cr, uid, domain, limit=1)
return res and res[0] or False
def _get_currency(self, cr, uid, context=None):
@@ -578,6 +581,10 @@ class account_invoice(osv.osv):
return {'value': {}}
def onchange_company_id(self, cr, uid, ids, company_id, part_id, type, invoice_line, currency_id, context=None):
+ #TODO: add the missing context parameter when forward-porting in trunk so we can remove
+ # this hack!
+ context = self.pool['res.users'].context_get(cr, uid)
+
val = {}
dom = {}
obj_journal = self.pool.get('account.journal')
@@ -634,14 +641,13 @@ class account_invoice(osv.osv):
else:
continue
if company_id and type:
- if type in ('out_invoice'):
- journal_type = 'sale'
- elif type in ('out_refund'):
- journal_type = 'sale_refund'
- elif type in ('in_refund'):
- journal_type = 'purchase_refund'
- else:
- journal_type = 'purchase'
+ journal_mapping = {
+ 'out_invoice': 'sale',
+ 'out_refund': 'sale_refund',
+ 'in_refund': 'purchase_refund',
+ 'in_invoice': 'purchase',
+ }
+ journal_type = journal_mapping[type]
journal_ids = obj_journal.search(cr, uid, [('company_id','=',company_id), ('type', '=', journal_type)])
if journal_ids:
val['journal_id'] = journal_ids[0]
@@ -651,7 +657,12 @@ class account_invoice(osv.osv):
if r[1] == 'journal_id' and r[2] in journal_ids:
val['journal_id'] = r[2]
if not val.get('journal_id', False):
- raise osv.except_osv(_('Configuration Error!'), (_('Cannot find any account journal of %s type for this company.\n\nYou can create one in the menu: \nConfiguration\Journals\Journals.') % (journal_type)))
+ journal_type_map = dict(obj_journal._columns['type'].selection)
+ journal_type_label = self.pool['ir.translation']._get_source(cr, uid, None, ('code','selection'),
+ context.get('lang'),
+ journal_type_map.get(journal_type))
+ raise osv.except_osv(_('Configuration Error!'),
+ _('Cannot find any account journal of %s type for this company.\n\nYou can create one in the menu: \nConfiguration\Journals\Journals.') % ('"%s"' % journal_type_label))
dom = {'journal_id': [('id', 'in', journal_ids)]}
else:
journal_ids = obj_journal.search(cr, uid, [])
@@ -968,7 +979,7 @@ class account_invoice(osv.osv):
total, total_currency, iml = self.compute_invoice_totals(cr, uid, inv, company_currency, ref, iml, context=ctx)
acc_id = inv.account_id.id
- name = inv['name'] or '/'
+ name = inv['name'] or inv['supplier_invoice_number'] or '/'
totlines = False
if inv.payment_term:
totlines = payment_term_obj.compute(cr,
@@ -1167,12 +1178,12 @@ class account_invoice(osv.osv):
if not ids:
return []
types = {
- 'out_invoice': 'Invoice ',
- 'in_invoice': 'Sup. Invoice ',
- 'out_refund': 'Refund ',
- 'in_refund': 'Supplier Refund ',
+ 'out_invoice': _('Invoice'),
+ 'in_invoice': _('Supplier Invoice'),
+ 'out_refund': _('Refund'),
+ 'in_refund': _('Supplier Refund'),
}
- return [(r['id'], (r['number']) or types[r['type']] + (r['name'] or '')) for r in self.read(cr, uid, ids, ['type', 'number', 'name'], context, load='_classic_write')]
+ return [(r['id'], '%s %s' % (r['number'] or types[r['type']], r['name'] or '')) for r in self.read(cr, uid, ids, ['type', 'number', 'name'], context, load='_classic_write')]
def name_search(self, cr, user, name, args=None, operator='ilike', context=None, limit=100):
if not args:
diff --git a/addons/account/account_move_line.py b/addons/account/account_move_line.py
index e604cc6d1a4..314e3423996 100644
--- a/addons/account/account_move_line.py
+++ b/addons/account/account_move_line.py
@@ -1066,12 +1066,12 @@ class account_move_line(osv.osv):
for line in self.browse(cr, uid, ids, context=context):
ctx = context.copy()
- if ('journal_id' not in ctx):
+ if not ctx.get('journal_id'):
if line.move_id:
ctx['journal_id'] = line.move_id.journal_id.id
else:
ctx['journal_id'] = line.journal_id.id
- if ('period_id' not in ctx):
+ if not ctx.get('period_id'):
if line.move_id:
ctx['period_id'] = line.move_id.period_id.id
else:
diff --git a/addons/account/account_view.xml b/addons/account/account_view.xml
index e921e639642..758385d66cb 100644
--- a/addons/account/account_view.xml
+++ b/addons/account/account_view.xml
@@ -585,7 +585,10 @@
-
+
diff --git a/addons/account/i18n/ru.po b/addons/account/i18n/ru.po
index da620808a85..e3b3f080365 100644
--- a/addons/account/i18n/ru.po
+++ b/addons/account/i18n/ru.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:04+0000\n"
-"PO-Revision-Date: 2013-06-07 12:52+0000\n"
+"PO-Revision-Date: 2013-06-19 11:49+0000\n"
"Last-Translator: Chertykov Denis \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-06-08 05:52+0000\n"
-"X-Generator: Launchpad (build 16667)\n"
+"X-Launchpad-Export-Date: 2013-06-20 05:17+0000\n"
+"X-Generator: Launchpad (build 16673)\n"
#. module: account
#: model:process.transition,name:account.process_transition_supplierreconcilepaid0
@@ -134,10 +134,10 @@ msgstr ""
#: code:addons/account/account.py:686
#: code:addons/account/account.py:781
#: code:addons/account/account.py:1058
-#: code:addons/account/account_invoice.py:817
#: code:addons/account/account_invoice.py:820
#: code:addons/account/account_invoice.py:823
-#: code:addons/account/account_invoice.py:1542
+#: code:addons/account/account_invoice.py:826
+#: code:addons/account/account_invoice.py:1545
#: code:addons/account/account_move_line.py:98
#: code:addons/account/account_move_line.py:771
#: code:addons/account/account_move_line.py:824
@@ -257,7 +257,8 @@ msgid ""
"entries."
msgstr ""
"Тип счета используется в информационных целях, при создании официальных "
-"отчетов для конкретной страны, определении правил"
+"отчетов для конкретной страны, определении правил закрытия финансового года "
+"и проводок открытия."
#. module: account
#: field:account.config.settings,sale_refund_sequence_next:0
@@ -285,7 +286,7 @@ msgstr "Разрешить списание"
#. module: account
#: view:account.analytic.chart:0
msgid "Select the Period for Analysis"
-msgstr "Выберите период для проведения анализа"
+msgstr "Выберите период для анализа"
#. module: account
#: model:ir.actions.act_window,help:account.action_invoice_tree3
@@ -355,7 +356,7 @@ msgid "Allow multi currencies"
msgstr "Разрешить мульти-валютность"
#. module: account
-#: code:addons/account/account_invoice.py:74
+#: code:addons/account/account_invoice.py:77
#, python-format
msgid "You must define an analytic journal of type '%s'!"
msgstr "Вы должны определить журнал аналитики типа '%s'!"
@@ -757,7 +758,9 @@ msgstr ""
#: selection:account.common.partner.report,result_selection:0
#: selection:account.partner.balance,result_selection:0
#: selection:account.partner.ledger,result_selection:0
+#: report:account.third_party_ledger:0
#: code:addons/account/report/account_partner_balance.py:297
+#: code:addons/account/report/account_partner_ledger.py:272
#, python-format
msgid "Receivable Accounts"
msgstr "Счета к получению"
@@ -797,7 +800,7 @@ msgid "Are you sure you want to create entries?"
msgstr "Вы действительно хотите создать проводки?"
#. module: account
-#: code:addons/account/account_invoice.py:1358
+#: code:addons/account/account_invoice.py:1361
#, python-format
msgid "Invoice partially paid: %s%s of %s%s (%s%s remaining)."
msgstr "Счет частично оплачен: %s%s из %s%s (%s%s остаток)."
@@ -866,7 +869,7 @@ msgid "Type"
msgstr "Тип"
#. module: account
-#: code:addons/account/account_invoice.py:823
+#: code:addons/account/account_invoice.py:826
#, python-format
msgid ""
"Taxes are missing!\n"
@@ -1052,7 +1055,7 @@ msgid "Liability"
msgstr "Обязательства"
#. module: account
-#: code:addons/account/account_invoice.py:896
+#: code:addons/account/account_invoice.py:899
#, python-format
msgid "Please define sequence on the journal related to this invoice."
msgstr "Пожалуйста, определите нумерацию в журнале, связанном с этим счетом."
@@ -1128,8 +1131,8 @@ msgstr "Возможности"
#. module: account
#: code:addons/account/account.py:2346
#: code:addons/account/account_bank_statement.py:424
-#: code:addons/account/account_invoice.py:74
-#: code:addons/account/account_invoice.py:772
+#: code:addons/account/account_invoice.py:77
+#: code:addons/account/account_invoice.py:775
#: code:addons/account/account_move_line.py:195
#, python-format
msgid "No Analytic Journal !"
@@ -1168,7 +1171,7 @@ msgstr "Название счета."
#. module: account
#: field:account.journal,with_last_closing_balance:0
msgid "Opening With Last Closing Balance"
-msgstr ""
+msgstr "Открыть с предыдущим остатком"
#. module: account
#: help:account.tax.code,notprintable:0
@@ -1567,8 +1570,10 @@ msgid "%s (copy)"
msgstr "%s (копия)"
#. module: account
+#: report:account.account.balance:0
#: selection:account.balance.report,display_account:0
#: selection:account.common.account.report,display_account:0
+#: report:account.general.ledger_landscape:0
#: selection:account.partner.balance,display_partner:0
#: selection:account.report.general.ledger,display_account:0
msgid "With balance is not equal to 0"
@@ -1803,7 +1808,7 @@ msgstr ""
#: view:account.invoice:0
#: view:account.invoice.report:0
#: field:account.move.line,invoice:0
-#: code:addons/account/account_invoice.py:1154
+#: code:addons/account/account_invoice.py:1157
#: model:ir.model,name:account.model_account_invoice
#: model:res.request.link,name:account.req_link_invoice
#, python-format
@@ -2029,6 +2034,12 @@ msgid ""
"useful because it enables you to preview at any time the tax that you owe at "
"the start and end of the month or quarter."
msgstr ""
+"Это меню печати налоговой декларации на основе счетов и платежей. Выберите "
+"один или несколько периодов финансового года. Информация, необходимая для "
+"налоговой декларации генерируется автоматически OpenERP из счета (или "
+"платежей, в некоторых странах). Эти данные обновляются в режиме реального "
+"времени. Это очень полезно, потому что позволяет просматривать в любое время "
+"налоги, которые вы должны в начале и в конце месяца или квартала."
#. module: account
#: code:addons/account/account.py:409
@@ -2057,9 +2068,9 @@ msgstr ""
#: code:addons/account/account_bank_statement.py:419
#: code:addons/account/account_cash_statement.py:256
#: code:addons/account/account_cash_statement.py:300
-#: code:addons/account/account_invoice.py:896
-#: code:addons/account/account_invoice.py:930
-#: code:addons/account/account_invoice.py:1121
+#: code:addons/account/account_invoice.py:899
+#: code:addons/account/account_invoice.py:933
+#: code:addons/account/account_invoice.py:1124
#: code:addons/account/account_move_line.py:579
#: code:addons/account/account_move_line.py:828
#: code:addons/account/account_move_line.py:851
@@ -2104,7 +2115,7 @@ msgstr ""
"
\n"
" Вы можете управлять счетом от поставщика в соответствии с\n"
" тем, что вы приобрели. OpenERP также может создавать\n"
-" черновые счета автоматически из заказов на закупку.\n"
+" черновые счета автоматически из заказов закупки.\n"
"
\n"
" "
@@ -2230,7 +2241,7 @@ msgstr "Счет - печать журнала"
#. module: account
#: model:ir.model,name:account.model_product_category
msgid "Product Category"
-msgstr "Категория ТМЦ"
+msgstr "Категория продукции"
#. module: account
#: code:addons/account/account.py:656
@@ -2307,7 +2318,9 @@ msgstr "Управление активами"
#: selection:account.common.partner.report,result_selection:0
#: selection:account.partner.balance,result_selection:0
#: selection:account.partner.ledger,result_selection:0
+#: report:account.third_party_ledger:0
#: code:addons/account/report/account_partner_balance.py:299
+#: code:addons/account/report/account_partner_ledger.py:274
#, python-format
msgid "Payable Accounts"
msgstr "Кредиторская задолженность"
@@ -2600,7 +2613,7 @@ msgstr "Учетный год"
#: help:accounting.report,fiscalyear_id:0
#: help:accounting.report,fiscalyear_id_cmp:0
msgid "Keep empty for all open fiscal year"
-msgstr "Keep empty for all open fiscal year"
+msgstr "Оставьте пустым для всех открытых финансовых лет"
#. module: account
#: code:addons/account/account.py:653
@@ -2623,7 +2636,7 @@ msgid "Create an Account Based on this Template"
msgstr "Создать счет на основе этого шаблона"
#. module: account
-#: code:addons/account/account_invoice.py:930
+#: code:addons/account/account_invoice.py:933
#, python-format
msgid ""
"Cannot create the invoice.\n"
@@ -2896,11 +2909,11 @@ msgstr "Счета"
#. module: account
#: code:addons/account/account.py:3541
#: code:addons/account/account_bank_statement.py:405
-#: code:addons/account/account_invoice.py:504
-#: code:addons/account/account_invoice.py:606
-#: code:addons/account/account_invoice.py:621
-#: code:addons/account/account_invoice.py:629
-#: code:addons/account/account_invoice.py:654
+#: code:addons/account/account_invoice.py:507
+#: code:addons/account/account_invoice.py:609
+#: code:addons/account/account_invoice.py:624
+#: code:addons/account/account_invoice.py:632
+#: code:addons/account/account_invoice.py:657
#: code:addons/account/account_move_line.py:536
#, python-format
msgid "Configuration Error!"
@@ -2932,7 +2945,7 @@ msgstr "Метка"
#. module: account
#: view:res.partner.bank:0
msgid "Accounting Information"
-msgstr "Бухгалтерская информация"
+msgstr "Учетная информация"
#. module: account
#: view:account.tax:0
@@ -3098,6 +3111,8 @@ msgid ""
"Selected invoice(s) cannot be confirmed as they are not in 'Draft' or 'Pro-"
"Forma' state."
msgstr ""
+"Выбранные счета нельзя подтвердить, так как состояние не \"Черновик\" и не "
+"\"Проформа\""
#. module: account
#: code:addons/account/account.py:1071
@@ -3130,7 +3145,7 @@ msgstr "Журнал продаж"
#. module: account
#: code:addons/account/account.py:2346
-#: code:addons/account/account_invoice.py:772
+#: code:addons/account/account_invoice.py:775
#: code:addons/account/account_move_line.py:195
#, python-format
msgid "You have to define an analytic journal on the '%s' journal!"
@@ -3299,7 +3314,7 @@ msgid "Fiscal Position"
msgstr "Система налогообложения"
#. module: account
-#: code:addons/account/account_invoice.py:820
+#: code:addons/account/account_invoice.py:823
#, python-format
msgid ""
"Tax base different!\n"
@@ -3464,7 +3479,7 @@ msgstr "Вид"
#. module: account
#: code:addons/account/account.py:3460
-#: code:addons/account/account_bank.py:95
+#: code:addons/account/account_bank.py:94
#, python-format
msgid "BNK"
msgstr "BNK"
@@ -3734,7 +3749,7 @@ msgstr ""
"иметь названия как и у самого документа"
#. module: account
-#: code:addons/account/account_invoice.py:1013
+#: code:addons/account/account_invoice.py:1016
#, python-format
msgid ""
"You cannot create an invoice on a centralized journal. Uncheck the "
@@ -3749,7 +3764,7 @@ msgid "Starting Balance"
msgstr "Начальный баланс"
#. module: account
-#: code:addons/account/account_invoice.py:1462
+#: code:addons/account/account_invoice.py:1465
#, python-format
msgid "No Partner Defined !"
msgstr "Партнер не определен!"
@@ -4040,9 +4055,13 @@ msgid "VAT :"
msgstr "НДС:"
#. module: account
+#: report:account.account.balance:0
#: report:account.central.journal:0
#: view:account.config.settings:0
+#: report:account.general.journal:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
+#: report:account.journal.period.print:0
#: report:account.partner.balance:0
#: report:account.third_party_ledger:0
#: report:account.third_party_ledger_other:0
@@ -4145,8 +4164,10 @@ msgstr ""
"условии оплаты контрагента."
#. module: account
+#: report:account.account.balance:0
#: selection:account.balance.report,display_account:0
#: selection:account.common.account.report,display_account:0
+#: report:account.general.ledger_landscape:0
#: selection:account.report.general.ledger,display_account:0
#: selection:account.tax,type_tax_use:0
#: selection:account.tax.template,type_tax_use:0
@@ -4283,7 +4304,7 @@ msgstr "Открыть счет"
#. module: account
#: field:account.invoice.tax,factor_tax:0
msgid "Multipication factor Tax code"
-msgstr ""
+msgstr "Коэффициент кода налога"
#. module: account
#: field:account.config.settings,complete_tax_set:0
@@ -4409,7 +4430,7 @@ msgid "Consolidated Children"
msgstr "Субсчета"
#. module: account
-#: code:addons/account/account_invoice.py:570
+#: code:addons/account/account_invoice.py:573
#: code:addons/account/wizard/account_invoice_refund.py:146
#, python-format
msgid "Insufficient Data!"
@@ -4592,7 +4613,7 @@ msgstr ""
#: field:account.account,shortcut:0
#: field:account.account.template,shortcut:0
msgid "Shortcut"
-msgstr "Горячая клвиша"
+msgstr "Закладка"
#. module: account
#: view:account.account:0
@@ -4666,6 +4687,8 @@ msgid ""
"Error!\n"
"The duration of the Period(s) is/are invalid."
msgstr ""
+"Ошибка!\n"
+"Не допустимая продолжительность периода."
#. module: account
#: field:account.entries.report,month:0
@@ -4690,8 +4713,8 @@ msgid "Supplier invoice sequence"
msgstr "Нумерация счетов поставщиков"
#. module: account
-#: code:addons/account/account_invoice.py:607
-#: code:addons/account/account_invoice.py:622
+#: code:addons/account/account_invoice.py:610
+#: code:addons/account/account_invoice.py:625
#, python-format
msgid ""
"Cannot find a chart of account, you should create one from Settings\\"
@@ -4826,7 +4849,7 @@ msgstr "Документ из счета или платежа"
msgid ""
"There is currently no company without chart of account. The wizard will "
"therefore not be executed."
-msgstr ""
+msgstr "Не ни одной компании без плана счетов. Мастер не будет запущен."
#. module: account
#: model:ir.actions.act_window,name:account.action_wizard_multi_chart
@@ -4971,7 +4994,7 @@ msgstr ""
"Нельзя создать счет, который имеет родительский счет другой компании."
#. module: account
-#: code:addons/account/account_invoice.py:655
+#: code:addons/account/account_invoice.py:658
#, python-format
msgid ""
"Cannot find any account journal of %s type for this company.\n"
@@ -5019,7 +5042,7 @@ msgstr "Контроль типа"
#. module: account
#: help:account.journal,default_credit_account_id:0
msgid "It acts as a default account for credit amount"
-msgstr "Выступает в качестве счета по умолчанию для сумм по кредиту"
+msgstr "Используется как кредитовый счет по умолчанию"
#. module: account
#: view:cash.box.out:0
@@ -5036,7 +5059,7 @@ msgstr "Отменено"
#. module: account
#: help:account.config.settings,group_proforma_invoices:0
msgid "Allows you to put invoices in pro-forma state."
-msgstr ""
+msgstr "Позволяет устанавливать статус \"Проформа\" для счетов."
#. module: account
#: view:account.journal:0
@@ -5050,6 +5073,7 @@ msgid ""
"It adds the currency column on report if the currency differs from the "
"company currency."
msgstr ""
+"Добавляет колонку валюты в отчет, если валюта отлична от валюты компании."
#. module: account
#: code:addons/account/account.py:3394
@@ -5281,7 +5305,7 @@ msgstr "Проводки журнала для проверки"
#. module: account
#: selection:res.company,tax_calculation_rounding_method:0
msgid "Round Globally"
-msgstr ""
+msgstr "Глобальное округление"
#. module: account
#: view:account.bank.statement:0
@@ -5295,7 +5319,7 @@ msgid "Tax Application"
msgstr "Применение налога"
#. module: account
-#: code:addons/account/account_invoice.py:919
+#: code:addons/account/account_invoice.py:922
#, python-format
msgid ""
"Please verify the price of the invoice !\n"
@@ -5561,7 +5585,7 @@ msgstr ""
#. module: account
#: view:account.invoice:0
msgid "Pro Forma Invoice "
-msgstr "Предварительный счет "
+msgstr "Проформа счета "
#. module: account
#: selection:account.subscription,period_type:0
@@ -5597,7 +5621,7 @@ msgstr "Прибыль и убыток (счет доходов)"
#. module: account
#: field:account.journal,allow_date:0
msgid "Check Date in Period"
-msgstr ""
+msgstr "Проверка даты в периоде"
#. module: account
#: model:ir.ui.menu,name:account.final_accounting_reports
@@ -5622,7 +5646,7 @@ msgid "Compute Code (if type=code)"
msgstr "Вычислить код (если тип=код)"
#. module: account
-#: code:addons/account/account_invoice.py:505
+#: code:addons/account/account_invoice.py:508
#, python-format
msgid ""
"Cannot find a chart of accounts for this company, you should create one."
@@ -5973,7 +5997,7 @@ msgstr "Сумма в валюте"
#. module: account
#: selection:res.company,tax_calculation_rounding_method:0
msgid "Round per Line"
-msgstr ""
+msgstr "Округление каждой позиции"
#. module: account
#: report:account.analytic.account.balance:0
@@ -6063,7 +6087,7 @@ msgstr "Открыть кассу"
#. module: account
#: selection:account.financial.report,style_overwrite:0
msgid "Automatic formatting"
-msgstr ""
+msgstr "Автоматическое форматирование"
#. module: account
#: view:account.move.line.reconcile:0
@@ -6166,7 +6190,7 @@ msgstr "Доход"
#: view:account.config.settings:0
#: view:account.invoice:0
#: view:account.invoice.report:0
-#: code:addons/account/account_invoice.py:387
+#: code:addons/account/account_invoice.py:390
#, python-format
msgid "Supplier"
msgstr "Поставщик"
@@ -6186,7 +6210,7 @@ msgid "Account n°"
msgstr "№ счета"
#. module: account
-#: code:addons/account/account_invoice.py:92
+#: code:addons/account/account_invoice.py:95
#, python-format
msgid "Free Reference"
msgstr "Свободная Ссылка"
@@ -6196,7 +6220,9 @@ msgstr "Свободная Ссылка"
#: selection:account.common.partner.report,result_selection:0
#: selection:account.partner.balance,result_selection:0
#: selection:account.partner.ledger,result_selection:0
+#: report:account.third_party_ledger:0
#: code:addons/account/report/account_partner_balance.py:301
+#: code:addons/account/report/account_partner_ledger.py:276
#, python-format
msgid "Receivable and Payable Accounts"
msgstr "Счета дебиторской и кредиторской задолженности"
@@ -6323,7 +6349,7 @@ msgstr ""
#. module: account
#: field:account.journal,loss_account_id:0
msgid "Loss Account"
-msgstr ""
+msgstr "Счет убытков"
#. module: account
#: field:account.tax,account_collected_id:0
@@ -6501,7 +6527,7 @@ msgid "Models"
msgstr ""
#. module: account
-#: code:addons/account/account_invoice.py:1121
+#: code:addons/account/account_invoice.py:1124
#, python-format
msgid ""
"You cannot cancel an invoice which is partially paid. You need to "
@@ -6673,7 +6699,7 @@ msgid "You cannot create journal items on closed account."
msgstr ""
#. module: account
-#: code:addons/account/account_invoice.py:630
+#: code:addons/account/account_invoice.py:633
#, python-format
msgid "Invoice line account's company and invoice's compnay does not match."
msgstr ""
@@ -6718,7 +6744,7 @@ msgstr "Собственные средства"
#. module: account
#: field:account.journal,internal_account_id:0
msgid "Internal Transfers Account"
-msgstr ""
+msgstr "Счет внутренних переводов"
#. module: account
#: code:addons/account/wizard/pos_box.py:32
@@ -6734,7 +6760,7 @@ msgstr "Процент"
#. module: account
#: selection:account.config.settings,tax_calculation_rounding_method:0
msgid "Round globally"
-msgstr ""
+msgstr "Глобальное округление"
#. module: account
#: selection:account.report.general.ledger,sortby:0
@@ -6825,7 +6851,7 @@ msgstr ""
#: code:addons/account/account.py:1453
#: code:addons/account/account.py:1482
#: code:addons/account/account.py:1489
-#: code:addons/account/account_invoice.py:1012
+#: code:addons/account/account_invoice.py:1015
#: code:addons/account/account_move_line.py:1005
#: code:addons/account/wizard/account_automatic_reconcile.py:148
#: code:addons/account/wizard/account_fiscalyear_close.py:88
@@ -6912,7 +6938,7 @@ msgstr ""
#: report:account.invoice:0
#: selection:account.invoice,type:0
#: selection:account.invoice.report,type:0
-#: code:addons/account/account_invoice.py:1157
+#: code:addons/account/account_invoice.py:1160
#: selection:report.invoice.created,type:0
#, python-format
msgid "Supplier Refund"
@@ -7553,7 +7579,7 @@ msgstr "Для процентных налогов, введите % как чи
#. module: account
#: model:ir.actions.act_window,name:account.action_account_report_tree_hierarchy
msgid "Financial Reports Hierarchy"
-msgstr ""
+msgstr "Структура финансовых отчетов"
#. module: account
#: model:ir.actions.act_window,name:account.act_account_invoice_partner_relation
@@ -7718,7 +7744,7 @@ msgstr ""
#. module: account
#: field:account.config.settings,group_proforma_invoices:0
msgid "Allow pro-forma invoices"
-msgstr ""
+msgstr "Разрешить проформы счетов"
#. module: account
#: view:account.bank.statement:0
@@ -7789,7 +7815,7 @@ msgstr "Журнал счета"
#. module: account
#: field:account.config.settings,tax_calculation_rounding_method:0
msgid "Tax calculation rounding method"
-msgstr ""
+msgstr "Метод округления при расчете налога"
#. module: account
#: model:process.node,name:account.process_node_paidinvoice0
@@ -7912,7 +7938,7 @@ msgstr "Нормальный"
#: model:ir.actions.act_window,name:account.action_email_templates
#: model:ir.ui.menu,name:account.menu_email_templates
msgid "Email Templates"
-msgstr ""
+msgstr "Шаблоны писем"
#. module: account
#: view:account.move.line:0
@@ -7974,7 +8000,7 @@ msgstr "Нет номера части !"
#: view:account.financial.report:0
#: model:ir.ui.menu,name:account.menu_account_report_tree_hierarchy
msgid "Account Reports Hierarchy"
-msgstr ""
+msgstr "Структура отчетов по счетам"
#. module: account
#: help:account.account.template,chart_template_id:0
@@ -8050,6 +8076,8 @@ msgstr "Отмена выбранных счетов"
msgid ""
"This field is used to generate legal reports: profit and loss, balance sheet."
msgstr ""
+"Это поле используется для генерации официальных отчетов: прибыль и убыток, "
+"баланс."
#. module: account
#: selection:account.entries.report,month:0
@@ -8061,7 +8089,7 @@ msgid "May"
msgstr "Май"
#. module: account
-#: code:addons/account/account_invoice.py:817
+#: code:addons/account/account_invoice.py:820
#, python-format
msgid "Global taxes defined, but they are not in invoice lines !"
msgstr ""
@@ -8102,7 +8130,7 @@ msgstr "Провести записи журнала"
#: view:account.config.settings:0
#: view:account.invoice:0
#: view:account.invoice.report:0
-#: code:addons/account/account_invoice.py:385
+#: code:addons/account/account_invoice.py:388
#, python-format
msgid "Customer"
msgstr "Заказчик"
@@ -8303,7 +8331,7 @@ msgstr ""
#. module: account
#: field:res.company,tax_calculation_rounding_method:0
msgid "Tax Calculation Rounding Method"
-msgstr ""
+msgstr "Метод округления при расчете налога"
#. module: account
#: field:account.entries.report,move_line_state:0
@@ -8357,7 +8385,7 @@ msgid "Select a currency to apply on the invoice"
msgstr "Выбрать валюту применяемую в счете"
#. module: account
-#: code:addons/account/account_invoice.py:898
+#: code:addons/account/account_invoice.py:901
#, python-format
msgid "No Invoice Lines !"
msgstr "Нет позиций в счете !"
@@ -8433,7 +8461,7 @@ msgid "Associated Partner"
msgstr "Связанный контрагент"
#. module: account
-#: code:addons/account/account_invoice.py:1462
+#: code:addons/account/account_invoice.py:1465
#, python-format
msgid "You must first select a partner !"
msgstr "Сначала вы должны выбрать партнера !"
@@ -8998,7 +9026,7 @@ msgstr "Вы уверены?"
#. module: account
#: view:account.journal:0
msgid "Accounts Allowed (empty for no control)"
-msgstr "Разрешенные счета (остваьте пустым для снятия проверок)"
+msgstr "Разрешенные счета (оставьте пустым для снятия проверок)"
#. module: account
#: field:account.config.settings,sale_tax_rate:0
@@ -9384,7 +9412,7 @@ msgid "Purchase Tax(%)"
msgstr "Налог на покупку(%)"
#. module: account
-#: code:addons/account/account_invoice.py:898
+#: code:addons/account/account_invoice.py:901
#, python-format
msgid "Please create some invoice lines."
msgstr "Пожалуйста, создайте позиции счета"
@@ -9396,6 +9424,8 @@ msgid ""
"Please check that the field 'Internal Transfers Account' is set on the "
"payment method '%s'."
msgstr ""
+"Пожалуйста, проверьте , что поле \"Счет внутренних переводов\" установлено "
+"для способа оплаты '%s'."
#. module: account
#: field:account.vat.declaration,display_detail:0
@@ -9448,7 +9478,7 @@ msgstr "Конец периода"
#: model:ir.actions.act_window,name:account.action_account_report
#: model:ir.ui.menu,name:account.menu_account_reports
msgid "Financial Reports"
-msgstr ""
+msgstr "Финансовые отчеты"
#. module: account
#: model:account.account.type,name:account.account_type_liability_view1
@@ -9737,6 +9767,7 @@ msgid ""
"This field contains the information related to the numbering of the journal "
"entries of this journal."
msgstr ""
+"Это поле содержит информацию, связанную с нумерацией проводок этого журнала."
#. module: account
#: field:account.invoice,sent:0
@@ -9768,7 +9799,7 @@ msgstr ""
#. module: account
#: model:ir.ui.menu,name:account.menu_finance_periodical_processing
msgid "Periodic Processing"
-msgstr ""
+msgstr "Периодическая обработка"
#. module: account
#: view:account.invoice.report:0
@@ -9940,7 +9971,7 @@ msgid "Unreconciled"
msgstr "Не сверенные"
#. module: account
-#: code:addons/account/account_invoice.py:919
+#: code:addons/account/account_invoice.py:922
#, python-format
msgid "Bad total !"
msgstr "Плохой итог !"
@@ -10046,7 +10077,7 @@ msgstr ""
#. module: account
#: field:account.bank.statement.line,name:0
msgid "OBI"
-msgstr ""
+msgstr "Назначение"
#. module: account
#: help:res.partner,property_account_payable:0
@@ -10196,7 +10227,7 @@ msgstr "Апрель"
#. module: account
#: model:account.financial.report,name:account.account_financial_report_profitloss_toreport0
msgid "Profit (Loss) to report"
-msgstr ""
+msgstr "Прибыль (убыток) в отчет"
#. module: account
#: code:addons/account/account_invoice.py:379
@@ -10401,7 +10432,7 @@ msgstr "Всего"
#: code:addons/account/wizard/account_invoice_refund.py:109
#, python-format
msgid "Cannot %s draft/proforma/cancel invoice."
-msgstr ""
+msgstr "Нельзя %s черновик/проформу/закрытый счет."
#. module: account
#: field:account.tax,account_analytic_paid_id:0
@@ -10415,6 +10446,7 @@ msgstr "Открыть для банковской сверки"
#. module: account
#: field:account.account,company_id:0
+#: report:account.account.balance:0
#: field:account.aged.trial.balance,company_id:0
#: field:account.analytic.journal,company_id:0
#: field:account.balance.report,company_id:0
@@ -10430,7 +10462,9 @@ msgstr "Открыть для банковской сверки"
#: field:account.entries.report,company_id:0
#: field:account.fiscal.position,company_id:0
#: field:account.fiscalyear,company_id:0
+#: report:account.general.journal:0
#: field:account.general.journal,company_id:0
+#: report:account.general.ledger_landscape:0
#: field:account.installer,company_id:0
#: field:account.invoice,company_id:0
#: field:account.invoice.line,company_id:0
@@ -10439,6 +10473,7 @@ msgstr "Открыть для банковской сверки"
#: field:account.invoice.tax,company_id:0
#: field:account.journal,company_id:0
#: field:account.journal.period,company_id:0
+#: report:account.journal.period.print:0
#: field:account.model,company_id:0
#: field:account.move,company_id:0
#: field:account.move.line,company_id:0
@@ -10603,7 +10638,7 @@ msgstr "Счета системы налогообложения"
#: view:account.invoice:0
#: selection:account.invoice,type:0
#: selection:account.invoice.report,type:0
-#: code:addons/account/account_invoice.py:1155
+#: code:addons/account/account_invoice.py:1158
#: model:process.process,name:account.process_process_supplierinvoiceprocess0
#: selection:report.invoice.created,type:0
#, python-format
@@ -10692,8 +10727,10 @@ msgid ""
msgstr ""
#. module: account
+#: report:account.account.balance:0
#: selection:account.balance.report,display_account:0
#: selection:account.common.account.report,display_account:0
+#: report:account.general.ledger_landscape:0
#: selection:account.report.general.ledger,display_account:0
msgid "With movements"
msgstr "С движением"
@@ -10789,7 +10826,7 @@ msgid "Entries Sorted by"
msgstr ""
#. module: account
-#: code:addons/account/account_invoice.py:1543
+#: code:addons/account/account_invoice.py:1546
#, python-format
msgid ""
"The selected unit of measure is not compatible with the unit of measure of "
@@ -10870,7 +10907,7 @@ msgstr "Искать счет"
#: report:account.invoice:0
#: view:account.invoice:0
#: view:account.invoice.report:0
-#: code:addons/account/account_invoice.py:1156
+#: code:addons/account/account_invoice.py:1159
#, python-format
msgid "Refund"
msgstr "Возвраты"
@@ -10942,7 +10979,7 @@ msgid "Manual Invoice Taxes"
msgstr ""
#. module: account
-#: code:addons/account/account_invoice.py:570
+#: code:addons/account/account_invoice.py:573
#, python-format
msgid "The payment term of supplier does not have a payment term line."
msgstr ""
@@ -11096,7 +11133,7 @@ msgstr ""
#. module: account
#: selection:account.config.settings,tax_calculation_rounding_method:0
msgid "Round per line"
-msgstr ""
+msgstr "Округление каждой позиции"
#. module: account
#: help:account.move.line,amount_residual_currency:0
diff --git a/addons/account/partner_view.xml b/addons/account/partner_view.xml
index 3dcc68e315e..6a58bc7f77e 100644
--- a/addons/account/partner_view.xml
+++ b/addons/account/partner_view.xml
@@ -61,7 +61,7 @@
partner.view.buttonsres.partner
-
+
-
+
diff --git a/addons/account/project/project_view.xml b/addons/account/project/project_view.xml
index 6ce97b5c868..21ea2a85f7f 100644
--- a/addons/account/project/project_view.xml
+++ b/addons/account/project/project_view.xml
@@ -363,7 +363,7 @@
-
+
diff --git a/addons/account/report/account_journal_sale_purchase.rml b/addons/account/report/account_journal_sale_purchase.rml
index 236879669f9..3ee0b484c9a 100644
--- a/addons/account/report/account_journal_sale_purchase.rml
+++ b/addons/account/report/account_journal_sale_purchase.rml
@@ -239,7 +239,7 @@
[[ line.account_id.code ]]
[[ line.partner_id and strip_name(line.partner_id.name,15) ]]
[[ strip_name(line.name,25) ]]
-
[[ line.tax_code_id and (line.tax_code_id.code + ':') ]]
+
[[ line.tax_code_id and line.tax_code_id.code and (line.tax_code_id.code + ':') ]]
[[ line.tax_amount and formatLang(line.tax_amount, currency_obj=company.currency_id) ]]
diff --git a/addons/account/wizard/account_fiscalyear_close.py b/addons/account/wizard/account_fiscalyear_close.py
index 6ceb833816b..928f0647084 100644
--- a/addons/account/wizard/account_fiscalyear_close.py
+++ b/addons/account/wizard/account_fiscalyear_close.py
@@ -38,7 +38,7 @@ class account_fiscalyear_close(osv.osv_memory):
'report_name': fields.char('Name of new entries',size=64, required=True, help="Give name of the new entries"),
}
_defaults = {
- 'report_name': _('End of Fiscal Year Entry'),
+ 'report_name': lambda self, cr, uid, context: _('End of Fiscal Year Entry'),
}
def data_save(self, cr, uid, ids, context=None):
diff --git a/addons/account_analytic_analysis/i18n/ru.po b/addons/account_analytic_analysis/i18n/ru.po
index 339d425c717..30313796af9 100644
--- a/addons/account_analytic_analysis/i18n/ru.po
+++ b/addons/account_analytic_analysis/i18n/ru.po
@@ -7,19 +7,19 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev_rc3\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:04+0000\n"
-"PO-Revision-Date: 2013-05-31 07:35+0000\n"
+"PO-Revision-Date: 2013-06-19 13:43+0000\n"
"Last-Translator: Chertykov Denis \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-06-01 05:16+0000\n"
-"X-Generator: Launchpad (build 16660)\n"
+"X-Launchpad-Export-Date: 2013-06-20 05:17+0000\n"
+"X-Generator: Launchpad (build 16673)\n"
#. module: account_analytic_analysis
#: view:account.analytic.account:0
msgid "No order to invoice, create"
-msgstr ""
+msgstr "Нет заказа для счета, создать"
#. module: account_analytic_analysis
#: view:account.analytic.account:0
@@ -39,7 +39,7 @@ msgstr "Остаётся"
#. module: account_analytic_analysis
#: view:account.analytic.account:0
msgid "Contracts in progress"
-msgstr ""
+msgstr "Незавершенные контракты"
#. module: account_analytic_analysis
#: help:account.analytic.account,last_worked_invoiced_date:0
@@ -88,7 +88,7 @@ msgstr "Дата последнего счета расходов"
#. module: account_analytic_analysis
#: help:account.analytic.account,fix_price_to_invoice:0
msgid "Sum of quotations for this contract."
-msgstr ""
+msgstr "Сумма предложений по этому контракту."
#. module: account_analytic_analysis
#: help:account.analytic.account,ca_invoiced:0
@@ -98,18 +98,18 @@ msgstr "Итого сумма к оплате заказчику для этог
#. module: account_analytic_analysis
#: help:account.analytic.account,timesheet_ca_invoiced:0
msgid "Sum of timesheet lines invoiced for this contract."
-msgstr ""
+msgstr "Сумма позиций табеля выставленная в счет за этот контракт ."
#. module: account_analytic_analysis
-#: code:addons/account_analytic_analysis/account_analytic_analysis.py:466
+#: code:addons/account_analytic_analysis/account_analytic_analysis.py:464
#, python-format
msgid "Sales Order Lines of %s"
-msgstr ""
+msgstr "Позиции заказа продаж %s"
#. module: account_analytic_analysis
#: help:account.analytic.account,revenue_per_hour:0
msgid "Computed using the formula: Invoiced Amount / Total Time"
-msgstr ""
+msgstr "Рассчитанный по формуле: Сумма по счетам / Итоговое время"
#. module: account_analytic_analysis
#: field:account_analytic_analysis.summary.month,account_id:0
@@ -126,7 +126,7 @@ msgstr "Партнёр"
#. module: account_analytic_analysis
#: view:account.analytic.account:0
msgid "Contracts that are not assigned to an account manager."
-msgstr ""
+msgstr "Контракты, которые не назначены бухгалтеру."
#. module: account_analytic_analysis
#: model:ir.actions.act_window,help:account_analytic_analysis.action_account_analytic_overdue
@@ -161,6 +161,7 @@ msgstr "Управляющий счётом"
#: help:account.analytic.account,remaining_hours_to_invoice:0
msgid "Computed using the formula: Maximum Time - Total Invoiced Time"
msgstr ""
+"Рассчитанный по формуле: Максимальное время - Всё время выставленное в счетах"
#. module: account_analytic_analysis
#: view:account.analytic.account:0
@@ -170,12 +171,12 @@ msgstr "Ожидается"
#. module: account_analytic_analysis
#: view:account.analytic.account:0
msgid "Contracts not assigned"
-msgstr ""
+msgstr "Контракты не назначены"
#. module: account_analytic_analysis
#: help:account.analytic.account,theorical_margin:0
msgid "Computed using the formula: Theoretical Revenue - Total Costs"
-msgstr ""
+msgstr "Рассчитанный по формуле: теоретическая выручка - общие издержки"
#. module: account_analytic_analysis
#: field:account.analytic.account,hours_qtt_invoiced:0
@@ -219,17 +220,17 @@ msgstr ""
#. module: account_analytic_analysis
#: view:account.analytic.account:0
msgid "Nothing to invoice, create"
-msgstr ""
+msgstr "Нечего выставить в счете, создать"
#. module: account_analytic_analysis
#: model:res.groups,name:account_analytic_analysis.group_template_required
msgid "Mandatory use of templates in contracts"
-msgstr ""
+msgstr "Обязательное использование шаблонов в контрактах"
#. module: account_analytic_analysis
#: field:account.analytic.account,hours_quantity:0
msgid "Total Worked Time"
-msgstr ""
+msgstr "Всё отработанное время"
#. module: account_analytic_analysis
#: field:account.analytic.account,real_margin:0
@@ -249,12 +250,12 @@ msgstr "Вычисляется по формуле: (Реальная маржа
#. module: account_analytic_analysis
#: view:account.analytic.account:0
msgid "or view"
-msgstr ""
+msgstr "или вид"
#. module: account_analytic_analysis
#: view:account.analytic.account:0
msgid "Customer Contracts"
-msgstr ""
+msgstr "Контакты заказчика"
#. module: account_analytic_analysis
#: view:account.analytic.account:0
@@ -271,7 +272,7 @@ msgstr "Месяц"
#: model:ir.actions.act_window,name:account_analytic_analysis.action_hr_tree_invoiced_all
#: model:ir.ui.menu,name:account_analytic_analysis.menu_action_hr_tree_invoiced_all
msgid "Time & Materials to Invoice"
-msgstr ""
+msgstr "Время и материалы в счет"
#. module: account_analytic_analysis
#: view:account.analytic.account:0
@@ -343,9 +344,10 @@ msgstr "К продлению"
#: view:account.analytic.account:0
msgid ""
"A contract in OpenERP is an analytic account having a partner set on it."
-msgstr ""
+msgstr "Контракт в OpenERP это аналитический счет с установленным партнером."
#. module: account_analytic_analysis
+#: view:account.analytic.account:0
#: model:ir.actions.act_window,name:account_analytic_analysis.action_sales_order
msgid "Sales Orders"
msgstr "Заказы продаж"
@@ -412,7 +414,7 @@ msgstr ""
#. module: account_analytic_analysis
#: field:account.analytic.account,revenue_per_hour:0
msgid "Revenue per Time (real)"
-msgstr ""
+msgstr "Выручка за время (реальная)"
#. module: account_analytic_analysis
#: model:ir.actions.act_window,help:account_analytic_analysis.action_account_analytic_overdue_all
@@ -578,7 +580,7 @@ msgstr ""
#. module: account_analytic_analysis
#: field:account.analytic.account,est_total:0
msgid "Total Estimation"
-msgstr ""
+msgstr "Общая оценка"
#. module: account_analytic_analysis
#: field:account.analytic.account,remaining_ca:0
diff --git a/addons/account_analytic_default/account_analytic_default.py b/addons/account_analytic_default/account_analytic_default.py
index 1696874f0f5..563a6a3eb9a 100644
--- a/addons/account_analytic_default/account_analytic_default.py
+++ b/addons/account_analytic_default/account_analytic_default.py
@@ -72,8 +72,8 @@ class account_invoice_line(osv.osv):
_inherit = "account.invoice.line"
_description = "Invoice Line"
- def product_id_change(self, cr, uid, ids, product, uom, qty=0, name='', type='out_invoice', partner_id=False, fposition_id=False, price_unit=False, currency_id=False, context=None, company_id=None):
- res_prod = super(account_invoice_line, self).product_id_change(cr, uid, ids, product, uom, qty, name, type, partner_id, fposition_id, price_unit, currency_id=currency_id, context=context, company_id=company_id)
+ def product_id_change(self, cr, uid, ids, product, uom_id, qty=0, name='', type='out_invoice', partner_id=False, fposition_id=False, price_unit=False, currency_id=False, context=None, company_id=None):
+ res_prod = super(account_invoice_line, self).product_id_change(cr, uid, ids, product, uom_id, qty, name, type, partner_id, fposition_id, price_unit, currency_id=currency_id, context=context, company_id=company_id)
rec = self.pool.get('account.analytic.default').account_get(cr, uid, product, partner_id, uid, time.strftime('%Y-%m-%d'), context=context)
if rec:
res_prod['value'].update({'account_analytic_id': rec.analytic_id.id})
diff --git a/addons/account_analytic_plans/account_analytic_plans_view.xml b/addons/account_analytic_plans/account_analytic_plans_view.xml
index be46b9a6923..7fb4091b45f 100644
--- a/addons/account_analytic_plans/account_analytic_plans_view.xml
+++ b/addons/account_analytic_plans/account_analytic_plans_view.xml
@@ -10,7 +10,7 @@
-
+
diff --git a/addons/account_anglo_saxon/__openerp__.py b/addons/account_anglo_saxon/__openerp__.py
index 6482a110f1d..7ac4bdbd71e 100644
--- a/addons/account_anglo_saxon/__openerp__.py
+++ b/addons/account_anglo_saxon/__openerp__.py
@@ -43,7 +43,8 @@ account.""",
'depends': ['product', 'purchase'],
'category': 'Accounting & Finance',
'demo': [],
- 'data': ['product_view.xml',],
+ 'data': ['product_view.xml'],
+ 'test': ['test/anglo_saxon.yml'],
'auto_install': False,
'installable': True,
}
diff --git a/addons/account_anglo_saxon/docs/account_anglo_saxon.ods b/addons/account_anglo_saxon/docs/account_anglo_saxon.ods
new file mode 100644
index 00000000000..91b1d84786d
Binary files /dev/null and b/addons/account_anglo_saxon/docs/account_anglo_saxon.ods differ
diff --git a/addons/account_anglo_saxon/docs/account_anglo_saxon.pdf b/addons/account_anglo_saxon/docs/account_anglo_saxon.pdf
new file mode 100644
index 00000000000..f5250a0c11c
Binary files /dev/null and b/addons/account_anglo_saxon/docs/account_anglo_saxon.pdf differ
diff --git a/addons/account_anglo_saxon/invoice.py b/addons/account_anglo_saxon/invoice.py
index 2b82257e1f0..f27d9b3ae72 100644
--- a/addons/account_anglo_saxon/invoice.py
+++ b/addons/account_anglo_saxon/invoice.py
@@ -136,9 +136,9 @@ class account_invoice_line(osv.osv):
res += diff_res
return res
- def product_id_change(self, cr, uid, ids, product, uom, qty=0, name='', type='out_invoice', partner_id=False, fposition_id=False, price_unit=False, currency_id=False, context=None, company_id=None):
+ def product_id_change(self, cr, uid, ids, product, uom_id, qty=0, name='', type='out_invoice', partner_id=False, fposition_id=False, price_unit=False, currency_id=False, context=None, company_id=None):
fiscal_pool = self.pool.get('account.fiscal.position')
- res = super(account_invoice_line, self).product_id_change(cr, uid, ids, product, uom, qty, name, type, partner_id, fposition_id, price_unit, currency_id, context, company_id)
+ res = super(account_invoice_line, self).product_id_change(cr, uid, ids, product, uom_id, qty, name, type, partner_id, fposition_id, price_unit, currency_id, context, company_id)
if not product:
return res
if type in ('in_invoice','in_refund'):
diff --git a/addons/account_anglo_saxon/test/anglo_saxon.yml b/addons/account_anglo_saxon/test/anglo_saxon.yml
new file mode 100644
index 00000000000..9e46aa52b12
--- /dev/null
+++ b/addons/account_anglo_saxon/test/anglo_saxon.yml
@@ -0,0 +1,299 @@
+-
+ In order to test anglo_saxon Configure Different Accounts.
+-
+ !record {model: account.account, id: account_anglo_stock_valuation}:
+ code: X3000
+ name: Stock Valuation Account- (test)
+ parent_id: account.cas
+ type: other
+ user_type: account.data_account_type_asset
+-
+ Configure Stock Interim account (Received).
+-
+ !record {model: account.account, id: account_anglo_stock_input}:
+ code: X2800
+ name: Stock Interim account (Received)
+ parent_id: account.cos
+ type: other
+ user_type: account.data_account_type_expense
+-
+ Configure Stock Interim account (Delivered).
+-
+ !record {model: account.account, id: account_anglo_stock_output}:
+ code: X2801
+ name: Stock Interim account (Delivered)
+ parent_id: account.rev
+ type: other
+ user_type: account.data_account_type_income
+-
+ Configure Price difference creditor Account.
+-
+ !record {model: account.account, id: account_anglo_price_difference}:
+ code: X7095
+ name: Price difference creditor Account
+ parent_id: account.cos
+ type: other
+ user_type: account.data_account_type_expense
+-
+ Configure Cash Bank Account.
+-
+ !record {model: account.account, id: account_anglo_cash}:
+ code: X5000
+ name: Cash/Bank Account
+ parent_id: account.cash
+ type: other
+ user_type: account.data_account_type_asset
+-
+ Configure Creditor Account Payable.
+-
+ !record {model: account.account, id: account_anglo_payable}:
+ code: X440001
+ name: Creditor Account Payable
+ parent_id: account.a_pay
+ type: other
+ user_type: account.data_account_type_payable
+-
+ Configure Debtor Account Receivable.
+-
+ !record {model: account.account, id: account_anglo_receivable}:
+ code: X400001
+ name: Debtor Account Receivable
+ parent_id: account.a_recv
+ type: other
+ user_type: account.data_account_type_receivable
+-
+ Configure Cost of Good sale Account.
+-
+ !record {model: account.account, id: account_anglo_cogs}:
+ code: X7000
+ name: Cost of goods sale account
+ parent_id: account.o_expense
+ type: other
+ user_type: account.data_account_type_expense
+-
+ Configure Income Account.
+-
+ !record {model: account.account, id: account_anglo_income}:
+ code: X8000
+ name: Income Account
+ parent_id: account.o_income
+ type: other
+ user_type: account.data_account_type_income
+-
+ I configure the account receivable of supplier
+-
+ !record {model: res.partner, id: base.res_partner_3}:
+ property_account_payable: account_anglo_payable
+ property_account_receivable: account_anglo_receivable
+-
+ I configure the account receivable of Customer.
+-
+ !record {model: res.partner, id: base.res_partner_13}:
+ property_account_payable: account_anglo_payable
+ property_account_receivable: account_anglo_receivable
+-
+ I configure the product category with stock valuation account.
+-
+ !record {model: product.category, id: product.product_category_4}:
+ property_stock_valuation_account_id: account_anglo_stock_valuation
+-
+ I configure the product with required accounts, and cost method = standard
+-
+ !python {model: product.product}: |
+ self.write(cr, uid, [ref('product.product_product_3')], {'list_price': 20.00,'standard_price': 9,'categ_id': ref('product.product_category_4'),'valuation': 'real_time',
+ 'property_account_income': ref('account_anglo_income'),'property_account_expense': ref('account_anglo_cogs'),
+ 'property_account_creditor_price_difference': ref('account_anglo_price_difference'),'property_stock_account_input': ref('account_anglo_stock_input'),
+ 'property_stock_account_output': ref('account_anglo_stock_output'), 'cost_method': 'standard'})
+-
+ I create a draft Purchase Order.
+-
+ !record {model: purchase.order, id: purchase_order_001}:
+ partner_id: base.res_partner_3
+ location_id: stock.stock_location_3
+ pricelist_id: 1
+ order_line:
+ - product_id: product.product_product_3
+ product_qty: 1
+ price_unit: 10
+ date_planned: '2013-08-31'
+-
+ I confirm the purchase order.
+-
+ !workflow {model: purchase.order, ref: purchase_order_001, action: purchase_confirm}
+-
+ Reception is ready for process so now done the reception.
+-
+ !python {model: stock.partial.picking}: |
+ pick_ids = self.pool.get('purchase.order').browse(cr, uid, ref("purchase_order_001")).picking_ids
+ partial_id = self.create(cr, uid, {},context={'active_model': 'stock.picking','active_ids': [pick_ids[0].id]})
+ self.do_partial(cr, uid, [partial_id])
+-
+ I check the Stock Interim account (Received) is credit successfully.
+-
+ !assert {model: account.account, id : account_anglo_stock_input, string : Stock Interim account (Received) is not credited successfully.}:
+ - credit == 9
+-
+ I check the Stock valuation account is debit sucessfully.
+-
+ !assert {model: account.account, id : account_anglo_stock_valuation, string : Stock valuation account is not debited successfully.}:
+ - debit == 9
+-
+ I Validate Invoice of Purchase Order.
+-
+ !python {model: purchase.order}: |
+ invoice_ids = [x.id for x in self.browse(cr, uid, ref("purchase_order_001")).invoice_ids]
+ self.pool.get('account.invoice').signal_invoice_open(cr, uid, invoice_ids)
+-
+ I check the Stock Interim account (Received) is debited sucessfully when Invoice validated.
+-
+ !assert {model: account.account, id : account_anglo_stock_input, string : Stock Interim account (Received) is not debited successfully.}:
+ - debit == 9
+-
+ I check the Price difference creditor Account is debited sucessfully when Invoice validated.
+-
+ !assert {model: account.account, id : account_anglo_price_difference, string : Price difference creditor Account is not debited successfully.}:
+ - debit == 1
+-
+ I check Payable(creditor) Account is Credited sucessfully when Invoice validated.
+-
+ !assert {model: account.account, id : account_anglo_payable, string : Payable(creditor) Account is not Credited successfully.}:
+ - credit == 10
+-
+ I open the Invoice.
+-
+ !python {model: purchase.order}: |
+ po = self.browse(cr, uid, ref("purchase_order_001"))
+ for invoice in po.invoice_ids:
+ self.pool.get('account.invoice').signal_invoice_open(cr, uid, [invoice.id])
+-
+ I pay the invoice.
+-
+ !python {model: purchase.order}: |
+ invoice_ids = self.browse(cr, uid, ref("purchase_order_001")).invoice_ids
+ order = self.browse(cr, uid, ref("purchase_order_001"))
+ journal_ids = self.pool.get('account.journal').search(cr, uid, [('type', '=', 'cash'), ('company_id', '=', order.company_id.id)], limit=1)
+ for invoice in invoice_ids:
+ invoice.pay_and_reconcile(invoice.amount_total, ref('account_anglo_cash'), ref('account.period_8'), journal_ids[0], ref('account_anglo_cash'), ref('account.period_8'), journal_ids[0], name='test')
+-
+ I check Payable(Creditors) Account is Debited sucessfully after invoice paid.
+-
+ !assert {model: account.account, id : account_anglo_payable, string : Payable(Creditors) Account is not Debited successfully.}:
+ - debit == 10
+-
+ I check Bank/Cash account is credited sucessfully after invoice paid.
+-
+ !assert {model: account.account, id : account_anglo_cash, string: Bank/Cash account is not credited successfully.}:
+ - credit == 10
+-
+ I create an Outgoing Picking order
+-
+ !record {model: stock.picking, id: stock_picking_out001}:
+ partner_id: base.res_partner_13
+ invoice_state: 2binvoiced
+ move_lines:
+ - company_id: base.main_company
+ location_id: stock.stock_location_3
+ product_id: product.product_product_3
+ product_qty: 1.0
+ product_uom: product.product_uom_unit
+ location_dest_id: stock.stock_location_customers
+ move_type: direct
+ type: out
+-
+ I need to check the availability of the product, So I make my picking order for processing later.
+-
+ !python {model: stock.picking}: |
+ self.draft_force_assign(cr, uid, [ref("stock_picking_out001")], {"lang": "en_US", "search_default_available":
+ 1, "tz": False, "active_model": "ir.ui.menu", "contact_display": "partner",
+ "active_ids": [ref("stock.menu_action_picking_tree")], "active_id": ref("stock.menu_action_picking_tree"),
+ })
+-
+ I check the product availability, Product is available in the stock and ready to be sent.
+-
+ !python {model: stock.picking}: |
+ self.action_assign(cr, uid, [ref("stock_picking_out001")], {"lang": "en_US", "search_default_available":
+ 1, "tz": False, "active_model": "ir.ui.menu", "contact_display": "partner",
+ "active_ids": [ref("stock.menu_action_picking_tree")], "active_id": ref("stock.menu_action_picking_tree"),
+ })
+-
+ I process the delivery.
+-
+ !python {model: stock.partial.picking}: |
+ partial_id = self.create(cr, uid, {}, context={'active_model':'stock.picking','active_ids':[ref('stock_picking_out001')]})
+ self.do_partial(cr, uid, [partial_id])
+-
+ I check Stock Interim account (Delivery) is debited successfully.
+-
+ !assert {model: account.account, id : account_anglo_stock_output, string : Stock Interim account (Delivery) is not debited successfully.}:
+ - debit == 9
+-
+ I check the Stock valuation account is credited sucessfully.
+-
+ !assert {model: account.account, id : account_anglo_stock_valuation, string : Stock valuation account is not credited successfully.}:
+ - credit == 9
+-
+ As the Invoice state of the picking order is To be invoiced. I create invoice for my outgoing picking order.
+-
+ !python {model: stock.invoice.onshipping}: |
+ wiz_id = self.create(cr, uid, {'invoice_date': '2013-03-04', 'journal_id': ref('account.sales_journal')},
+ {'active_ids': [ref("stock_picking_out001")], "active_model": "stock.picking"})
+ self.create_invoice(cr, uid, [wiz_id], {"lang": "en_US",
+ "search_default_available": 1, "tz": False, "active_model": "stock.picking",
+ "contact_display": "partner", "active_ids": [ref("stock_picking_out001")], "active_id": ref("stock_picking_out001")})
+-
+ I check that the customer invoice is created successfully.
+-
+ !python {model: account.invoice}: |
+ partner_id = self.pool.get('stock.picking').browse(cr, uid, ref('stock_picking_out001')).partner_id.id
+ inv_ids = self.search(cr, uid, [('type','=','out_invoice'),('partner_id','=',partner_id)])
+ assert inv_ids, 'No Invoice is generated!'
+-
+ I open the Invoice.
+-
+ !python {model: stock.picking}: |
+ move_name = self.pool.get('stock.picking').browse(cr, uid, ref('stock_picking_out001')).name
+ account_invoice = self.pool.get('account.invoice').search(cr, uid, [('origin', '=', move_name)])
+ self.pool.get('account.invoice').signal_invoice_open(cr, uid, account_invoice)
+-
+ I check Income Account is Credited sucessfully when Invoice validated.
+-
+ !assert {model: account.account, id : account_anglo_income, string : Income Account is not Credited successfully.}:
+ - credit == 20
+-
+ I check Cost of goods sold account for debit.
+-
+ !assert {model: account.account, id : account_anglo_cogs, string : Cost of goods sale is not Debited successfully.}:
+ - debit == 9
+-
+ I check Stock Interim account (Delivery)
+-
+ !assert {model: account.account, id : account_anglo_stock_output, string : Stock Interim account (Delivery) is not credited successfully.}:
+ - credit == 9
+-
+ I check Receivable(Debtor) Account for debit.
+-
+ !assert {model: account.account, id : account_anglo_receivable, string : Receivable(Debtors) Account is not Debited successfully.}:
+ - debit == 20
+-
+ I pay the invoice.
+-
+ !python {model: account.invoice}: |
+ move_name = self.pool.get('stock.picking').browse(cr, uid, ref('stock_picking_out001')).name
+ account_invoice= self.pool.get('account.invoice').search(cr, uid, [('origin', '=', move_name)])
+ journal_ids = self.pool.get('account.journal').search(cr, uid, [('type', '=', 'cash')], limit=1)
+ pay = self.pay_and_reconcile(cr, uid, account_invoice,
+ 20.0, ref('account_anglo_cash'), ref('account.period_8'),
+ journal_ids[0], ref('account_anglo_cash'),
+ ref('account.period_8'), journal_ids[0],
+ name='Payment for test customer invoice')
+ assert (pay == True), "Incorrect Payment."
+-
+ I check Receivable(Debtor) Account for credit.
+-
+ !assert {model: account.account, id : account_anglo_receivable, string : Receivable(Debtors) Account is not Credited successfully.}:
+ - credit == 20
+-
+ I check Bank/Cash account is debited sucessfully after invoice paid.
+-
+ !assert {model: account.account, id : account_anglo_cash, string: Bank/Cash account is not successfully credited.}:
+ - debit == 20
diff --git a/addons/account_asset/account_asset_invoice_view.xml b/addons/account_asset/account_asset_invoice_view.xml
index eb6403b6f48..9a154d8ec70 100644
--- a/addons/account_asset/account_asset_invoice_view.xml
+++ b/addons/account_asset/account_asset_invoice_view.xml
@@ -13,6 +13,17 @@
+
+
+ account.invoice.supplier.form
+ account.invoice
+
+
+
+
+
+
+
diff --git a/addons/account_budget/account_budget_view.xml b/addons/account_budget/account_budget_view.xml
index 9ad61d7c286..237406ff657 100644
--- a/addons/account_budget/account_budget_view.xml
+++ b/addons/account_budget/account_budget_view.xml
@@ -203,7 +203,9 @@
-
+
+ Click to create a new budget.
+
A budget is a forecast of your company's income and/or expenses
expected for a period in the future. A budget is defined on some
financial accounts and/or analytic accounts (that may represent
diff --git a/addons/account_followup/security/ir.model.access.csv b/addons/account_followup/security/ir.model.access.csv
index 8774015efc6..591cc347563 100644
--- a/addons/account_followup/security/ir.model.access.csv
+++ b/addons/account_followup/security/ir.model.access.csv
@@ -3,5 +3,5 @@ access_account_followup_followup_line,account_followup.followup.line,model_accou
access_account_followup_followup_line_manager,account_followup.followup.line.manager,model_account_followup_followup_line,account.group_account_manager,1,1,1,1
access_account_followup_followup_accountant,account_followup.followup user,model_account_followup_followup,account.group_account_invoice,1,0,0,0
access_account_followup_followup_manager,account_followup.followup.manager,model_account_followup_followup,account.group_account_manager,1,1,1,1
-access_account_followup_stat_invoice,account_followup.stat.invoice,model_account_followup_stat,account.group_account_invoice,1,1,1,1
-access_account_followup_stat_by_partner_manager,account_followup.stat.by.partner,model_account_followup_stat_by_partner,account.group_account_user,1,1,1,1
+access_account_followup_stat_invoice,account_followup.stat.invoice,model_account_followup_stat,account.group_account_invoice,1,1,0,0
+access_account_followup_stat_by_partner_manager,account_followup.stat.by.partner,model_account_followup_stat_by_partner,account.group_account_user,1,1,0,0
diff --git a/addons/account_payment/wizard/account_payment_order.py b/addons/account_payment/wizard/account_payment_order.py
index 03e25dfbc45..de9c47ec005 100644
--- a/addons/account_payment/wizard/account_payment_order.py
+++ b/addons/account_payment/wizard/account_payment_order.py
@@ -88,6 +88,7 @@ class payment_order_create(osv.osv_memory):
'order_id': payment.id,
'partner_id': line.partner_id and line.partner_id.id or False,
'communication': line.ref or '/',
+ 'state': line.invoice and line.invoice.reference_type != 'none' and 'structured' or 'normal',
'date': date_to_pay,
'currency': (line.invoice and line.invoice.currency_id.id) or line.journal_id.currency.id or line.journal_id.company_id.currency_id.id,
}, context=context)
diff --git a/addons/account_voucher/i18n/ru.po b/addons/account_voucher/i18n/ru.po
index ef38a07e478..16e03d424ef 100644
--- a/addons/account_voucher/i18n/ru.po
+++ b/addons/account_voucher/i18n/ru.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:04+0000\n"
-"PO-Revision-Date: 2013-05-29 13:17+0000\n"
+"PO-Revision-Date: 2013-06-13 11:30+0000\n"
"Last-Translator: Chertykov Denis \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-05-30 05:45+0000\n"
-"X-Generator: Launchpad (build 16652)\n"
+"X-Launchpad-Export-Date: 2013-06-14 05:38+0000\n"
+"X-Generator: Launchpad (build 16667)\n"
#. module: account_voucher
#: field:account.bank.statement.line,voucher_id:0
@@ -27,7 +27,7 @@ msgid "account.config.settings"
msgstr "account.config.settings"
#. module: account_voucher
-#: code:addons/account_voucher/account_voucher.py:369
+#: code:addons/account_voucher/account_voucher.py:417
#, python-format
msgid "Write-Off"
msgstr "Списание"
@@ -129,7 +129,7 @@ msgid "Voucher Statistics"
msgstr ""
#. module: account_voucher
-#: code:addons/account_voucher/account_voucher.py:1547
+#: code:addons/account_voucher/account_voucher.py:1641
#, python-format
msgid ""
"You can not change the journal as you already reconciled some statement "
@@ -223,8 +223,8 @@ msgid "Journal Item"
msgstr "Элемент журнала"
#. module: account_voucher
-#: code:addons/account_voucher/account_voucher.py:508
-#: code:addons/account_voucher/account_voucher.py:981
+#: code:addons/account_voucher/account_voucher.py:558
+#: code:addons/account_voucher/account_voucher.py:1073
#, python-format
msgid "Error!"
msgstr "Ошибка!"
@@ -251,7 +251,7 @@ msgid "Cancelled"
msgstr "Отменено"
#. module: account_voucher
-#: code:addons/account_voucher/account_voucher.py:1153
+#: code:addons/account_voucher/account_voucher.py:1249
#, python-format
msgid ""
"You have to configure account base code and account tax code on the '%s' tax!"
@@ -295,7 +295,7 @@ msgid "Tax"
msgstr "Налог"
#. module: account_voucher
-#: code:addons/account_voucher/account_voucher.py:879
+#: code:addons/account_voucher/account_voucher.py:971
#, python-format
msgid "Invalid Action!"
msgstr "Неверное действие!"
@@ -348,7 +348,7 @@ msgid "Import Invoices"
msgstr "Импорт счетов"
#. module: account_voucher
-#: code:addons/account_voucher/account_voucher.py:1112
+#: code:addons/account_voucher/account_voucher.py:1208
#, python-format
msgid "Wrong voucher line"
msgstr ""
@@ -367,7 +367,7 @@ msgid "Receipt"
msgstr "Приход"
#. module: account_voucher
-#: code:addons/account_voucher/account_voucher.py:1018
+#: code:addons/account_voucher/account_voucher.py:1110
#, python-format
msgid ""
"You should configure the 'Gain Exchange Rate Account' in the accounting "
@@ -388,7 +388,7 @@ msgstr "Период"
#. module: account_voucher
#: view:account.voucher:0
-#: code:addons/account_voucher/account_voucher.py:211
+#: code:addons/account_voucher/account_voucher.py:231
#, python-format
msgid "Supplier"
msgstr "Поставщик"
@@ -409,7 +409,7 @@ msgid "Debit"
msgstr "Дебет"
#. module: account_voucher
-#: code:addons/account_voucher/account_voucher.py:1547
+#: code:addons/account_voucher/account_voucher.py:1641
#, python-format
msgid "Unable to change journal !"
msgstr "Невозможно изменить журнал!"
@@ -515,7 +515,7 @@ msgid "Pay Invoice"
msgstr "Оплата счета"
#. module: account_voucher
-#: code:addons/account_voucher/account_voucher.py:1153
+#: code:addons/account_voucher/account_voucher.py:1249
#, python-format
msgid "No Account Base Code and Account Tax Code!"
msgstr ""
@@ -569,15 +569,15 @@ msgid "To Review"
msgstr "Для проверки"
#. module: account_voucher
-#: code:addons/account_voucher/account_voucher.py:1025
-#: code:addons/account_voucher/account_voucher.py:1039
-#: code:addons/account_voucher/account_voucher.py:1194
+#: code:addons/account_voucher/account_voucher.py:1120
+#: code:addons/account_voucher/account_voucher.py:1134
+#: code:addons/account_voucher/account_voucher.py:1286
#, python-format
msgid "change"
msgstr "изменить"
#. module: account_voucher
-#: code:addons/account_voucher/account_voucher.py:1014
+#: code:addons/account_voucher/account_voucher.py:1106
#, python-format
msgid ""
"You should configure the 'Loss Exchange Rate Account' in the accounting "
@@ -631,6 +631,7 @@ msgstr "Месяц"
#. module: account_voucher
#: field:account.voucher,currency_id:0
#: field:account.voucher.line,currency_id:0
+#: model:ir.model,name:account_voucher.model_res_currency
#: field:sale.receipt.report,currency_id:0
msgid "Currency"
msgstr "Валюта"
@@ -674,7 +675,7 @@ msgid "Reconcile Payment Balance"
msgstr "Сверка платежного баланса"
#. module: account_voucher
-#: code:addons/account_voucher/account_voucher.py:975
+#: code:addons/account_voucher/account_voucher.py:1067
#, python-format
msgid "Configuration Error !"
msgstr "Ошибка конфигурации !"
@@ -739,7 +740,7 @@ msgid "October"
msgstr "Октябрь"
#. module: account_voucher
-#: code:addons/account_voucher/account_voucher.py:976
+#: code:addons/account_voucher/account_voucher.py:1068
#, python-format
msgid "Please activate the sequence of selected journal !"
msgstr "Пожалуйста, включите нумерацию выбранного журнала!"
@@ -819,7 +820,7 @@ msgid "Previous Payments ?"
msgstr "Предыдущие платежи ?"
#. module: account_voucher
-#: code:addons/account_voucher/account_voucher.py:1112
+#: code:addons/account_voucher/account_voucher.py:1208
#, python-format
msgid "The invoice you are willing to pay is not valid anymore."
msgstr "Счет, который вы готовы платить, уже не актуален ."
@@ -851,7 +852,7 @@ msgid "Active"
msgstr "Активно"
#. module: account_voucher
-#: code:addons/account_voucher/account_voucher.py:982
+#: code:addons/account_voucher/account_voucher.py:1074
#, python-format
msgid "Please define a sequence on the journal."
msgstr "Пожалуйста, определите нумерацию журнала."
@@ -861,7 +862,7 @@ msgstr "Пожалуйста, определите нумерацию журна
#: model:ir.actions.act_window,name:account_voucher.action_vendor_receipt
#: model:ir.ui.menu,name:account_voucher.menu_action_vendor_receipt
msgid "Customer Payments"
-msgstr "Платежи клиентов"
+msgstr "Платежи заказчиков"
#. module: account_voucher
#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt_report_all
@@ -979,7 +980,7 @@ msgid "Journal Items"
msgstr "Элементы журнала"
#. module: account_voucher
-#: code:addons/account_voucher/account_voucher.py:508
+#: code:addons/account_voucher/account_voucher.py:558
#, python-format
msgid "Please define default credit/debit accounts on the journal \"%s\"."
msgstr ""
@@ -1188,7 +1189,7 @@ msgid ""
msgstr ""
#. module: account_voucher
-#: code:addons/account_voucher/account_voucher.py:879
+#: code:addons/account_voucher/account_voucher.py:971
#, python-format
msgid "Cannot delete voucher(s) which are already opened or paid."
msgstr ""
@@ -1251,8 +1252,8 @@ msgid "Status changed"
msgstr ""
#. module: account_voucher
-#: code:addons/account_voucher/account_voucher.py:1014
-#: code:addons/account_voucher/account_voucher.py:1018
+#: code:addons/account_voucher/account_voucher.py:1106
+#: code:addons/account_voucher/account_voucher.py:1110
#, python-format
msgid "Insufficient Configuration!"
msgstr ""
diff --git a/addons/auth_oauth/controllers/main.py b/addons/auth_oauth/controllers/main.py
index 3f7ef2f3f0c..62eb2e812cc 100644
--- a/addons/auth_oauth/controllers/main.py
+++ b/addons/auth_oauth/controllers/main.py
@@ -102,7 +102,10 @@ class OAuthController(oeweb.Controller):
registry = RegistryManager.get(dbname)
with registry.cursor() as cr:
IMD = registry['ir.model.data']
- model, provider_id = IMD.get_object_reference(cr, SUPERUSER_ID, 'auth_oauth', 'provider_openerp')
+ try:
+ model, provider_id = IMD.get_object_reference(cr, SUPERUSER_ID, 'auth_oauth', 'provider_openerp')
+ except ValueError:
+ return set_cookie_and_redirect(req, '/?db=%s' % dbname)
assert model == 'auth.oauth.provider'
state = {
diff --git a/addons/base_calendar/crm_meeting.py b/addons/base_calendar/crm_meeting.py
index aa476002abc..1051a7a894c 100644
--- a/addons/base_calendar/crm_meeting.py
+++ b/addons/base_calendar/crm_meeting.py
@@ -60,7 +60,7 @@ class crm_meeting(base_state, osv.Model):
'categ_ids': fields.many2many('crm.meeting.type', 'meeting_category_rel',
'event_id', 'type_id', 'Tags'),
'attendee_ids': fields.many2many('calendar.attendee', 'meeting_attendee_rel',\
- 'event_id', 'attendee_id', 'Attendees', states={'done': [('readonly', True)]}),
+ 'event_id', 'attendee_id', 'Invited People', states={'done': [('readonly', True)]}),
}
_defaults = {
'state': 'open',
diff --git a/addons/base_gengo/i18n/th.po b/addons/base_gengo/i18n/th.po
new file mode 100644
index 00000000000..e0b5ba3e2fc
--- /dev/null
+++ b/addons/base_gengo/i18n/th.po
@@ -0,0 +1,249 @@
+# Thai translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2012-12-21 17:05+0000\n"
+"PO-Revision-Date: 2013-06-20 13:54+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Thai
\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-06-21 05:36+0000\n"
+"X-Generator: Launchpad (build 16677)\n"
+
+#. module: base_gengo
+#: view:res.company:0
+msgid "Comments for Translator"
+msgstr ""
+
+#. module: base_gengo
+#: field:ir.translation,job_id:0
+msgid "Gengo Job ID"
+msgstr ""
+
+#. module: base_gengo
+#: code:addons/base_gengo/wizard/base_gengo_translations.py:114
+#, python-format
+msgid "This language is not supported by the Gengo translation services."
+msgstr ""
+
+#. module: base_gengo
+#: field:res.company,gengo_comment:0
+msgid "Comments"
+msgstr "ความคิดเห็น"
+
+#. module: base_gengo
+#: field:res.company,gengo_private_key:0
+msgid "Gengo Private Key"
+msgstr ""
+
+#. module: base_gengo
+#: model:ir.model,name:base_gengo.model_base_gengo_translations
+msgid "base.gengo.translations"
+msgstr "base.gengo.translations"
+
+#. module: base_gengo
+#: help:res.company,gengo_auto_approve:0
+msgid "Jobs are Automatically Approved by Gengo."
+msgstr ""
+
+#. module: base_gengo
+#: field:base.gengo.translations,lang_id:0
+msgid "Language"
+msgstr "ภาษา"
+
+#. module: base_gengo
+#: field:ir.translation,gengo_comment:0
+msgid "Comments & Activity Linked to Gengo"
+msgstr ""
+
+#. module: base_gengo
+#: code:addons/base_gengo/wizard/base_gengo_translations.py:124
+#, python-format
+msgid "Gengo Sync Translation (Response)"
+msgstr ""
+
+#. module: base_gengo
+#: code:addons/base_gengo/wizard/base_gengo_translations.py:72
+#, python-format
+msgid ""
+"Gengo `Public Key` or `Private Key` are missing. Enter your Gengo "
+"authentication parameters under `Settings > Companies > Gengo Parameters`."
+msgstr ""
+
+#. module: base_gengo
+#: selection:ir.translation,gengo_translation:0
+msgid "Translation By Machine"
+msgstr ""
+
+#. module: base_gengo
+#: code:addons/base_gengo/wizard/base_gengo_translations.py:155
+#, python-format
+msgid ""
+"%s\n"
+"\n"
+"--\n"
+" Commented on %s by %s."
+msgstr ""
+
+#. module: base_gengo
+#: field:ir.translation,gengo_translation:0
+msgid "Gengo Translation Service Level"
+msgstr ""
+
+#. module: base_gengo
+#: constraint:ir.translation:0
+msgid ""
+"The Gengo translation service selected is not supported for this language."
+msgstr ""
+
+#. module: base_gengo
+#: selection:ir.translation,gengo_translation:0
+msgid "Standard"
+msgstr ""
+
+#. module: base_gengo
+#: help:ir.translation,gengo_translation:0
+msgid ""
+"You can select here the service level you want for an automatic translation "
+"using Gengo."
+msgstr ""
+
+#. module: base_gengo
+#: field:base.gengo.translations,restart_send_job:0
+msgid "Restart Sending Job"
+msgstr ""
+
+#. module: base_gengo
+#: view:ir.translation:0
+msgid "To Approve In Gengo"
+msgstr ""
+
+#. module: base_gengo
+#: view:res.company:0
+msgid "Private Key"
+msgstr ""
+
+#. module: base_gengo
+#: view:res.company:0
+msgid "Public Key"
+msgstr ""
+
+#. module: base_gengo
+#: field:res.company,gengo_public_key:0
+msgid "Gengo Public Key"
+msgstr ""
+
+#. module: base_gengo
+#: code:addons/base_gengo/wizard/base_gengo_translations.py:123
+#, python-format
+msgid "Gengo Sync Translation (Request)"
+msgstr ""
+
+#. module: base_gengo
+#: view:ir.translation:0
+msgid "Translations"
+msgstr ""
+
+#. module: base_gengo
+#: field:res.company,gengo_auto_approve:0
+msgid "Auto Approve Translation ?"
+msgstr ""
+
+#. module: base_gengo
+#: model:ir.actions.act_window,name:base_gengo.action_wizard_base_gengo_translations
+#: model:ir.ui.menu,name:base_gengo.menu_action_wizard_base_gengo_translations
+msgid "Gengo: Manual Request of Translation"
+msgstr ""
+
+#. module: base_gengo
+#: code:addons/base_gengo/ir_translation.py:62
+#: code:addons/base_gengo/wizard/base_gengo_translations.py:109
+#, python-format
+msgid "Gengo Authentication Error"
+msgstr ""
+
+#. module: base_gengo
+#: model:ir.model,name:base_gengo.model_res_company
+msgid "Companies"
+msgstr ""
+
+#. module: base_gengo
+#: view:ir.translation:0
+msgid ""
+"Note: If the translation state is 'In Progress', it means that the "
+"translation has to be approved to be uploaded in this system. You are "
+"supposed to do that directly by using your Gengo Account"
+msgstr ""
+
+#. module: base_gengo
+#: code:addons/base_gengo/wizard/base_gengo_translations.py:82
+#, python-format
+msgid ""
+"Gengo connection failed with this message:\n"
+"``%s``"
+msgstr ""
+
+#. module: base_gengo
+#: view:res.company:0
+msgid "Gengo Parameters"
+msgstr ""
+
+#. module: base_gengo
+#: view:base.gengo.translations:0
+msgid "Send"
+msgstr ""
+
+#. module: base_gengo
+#: selection:ir.translation,gengo_translation:0
+msgid "Ultra"
+msgstr ""
+
+#. module: base_gengo
+#: model:ir.model,name:base_gengo.model_ir_translation
+msgid "ir.translation"
+msgstr ""
+
+#. module: base_gengo
+#: view:ir.translation:0
+msgid "Gengo Translation Service"
+msgstr ""
+
+#. module: base_gengo
+#: selection:ir.translation,gengo_translation:0
+msgid "Pro"
+msgstr ""
+
+#. module: base_gengo
+#: view:base.gengo.translations:0
+msgid "Gengo Request Form"
+msgstr ""
+
+#. module: base_gengo
+#: code:addons/base_gengo/wizard/base_gengo_translations.py:114
+#, python-format
+msgid "Warning"
+msgstr ""
+
+#. module: base_gengo
+#: help:res.company,gengo_comment:0
+msgid ""
+"This comment will be automatically be enclosed in each an every request sent "
+"to Gengo"
+msgstr ""
+
+#. module: base_gengo
+#: view:base.gengo.translations:0
+msgid "Cancel"
+msgstr ""
+
+#. module: base_gengo
+#: view:base.gengo.translations:0
+msgid "or"
+msgstr ""
diff --git a/addons/base_import/static/csv/o2m_customers_contacts.csv b/addons/base_import/static/csv/o2m_customers_contacts.csv
new file mode 100644
index 00000000000..9a2411b2bee
--- /dev/null
+++ b/addons/base_import/static/csv/o2m_customers_contacts.csv
@@ -0,0 +1,9 @@
+Name,Is a company,Related company,Address type,Customer,Supplier,Street,ZIP,City,State,Country
+Aurora Shelves,1,,,1,0,25 Pacific Road,95101,San José,CA,United States
+Roger Martins,0,Aurora Shelves,Invoice,1,0,27 Pacific Road,95102,San José,CA,United States
+House Sales Direct,1,,,1,0,104 Saint Mary Avenue,94059,Redwood,CA,United States
+Yvan Holiday,0,House Sales Direct,Default,1,0,104 Saint Mary Avenue,94060,Redwood,CA,United States
+Jack Unsworth,0,House Sales Direct,Invoice,1,0,227 Jackson Road,94061,Redwood,CA,United States
+Michael Mason,0,,,1,0,16 5th Avenue,94104,San Francisco,CA,United States
+International Wood,1,,,1,0,748 White House Boulevard,20004,Washington,DC,United States
+Sharon Pecker,0,International Wood,Invoice,1,0,755 White House Boulevard,20005,Washington,DC,United States
diff --git a/addons/base_import/static/csv/o2m_suppliers_contacts.csv b/addons/base_import/static/csv/o2m_suppliers_contacts.csv
deleted file mode 100644
index 6c7be9037b8..00000000000
--- a/addons/base_import/static/csv/o2m_suppliers_contacts.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-Name,Address type,Street,City,Country,Tags,Supplier,Customer,Is a company,Companies that refers to partner / Parent company
-Wood y Wood Pecker,,"Snow Street, 25",Kainuu,Finland,Supplier,1,0,1,
-Roger Pecker,Default,"Snow Street, 27",Kainuu,Finland,Supplier,1,0,0,Wood y Wood Pecker
-Sharon Pecker,Delivery,"Snow Street, 28",Kainuu,Finland,Supplier,1,0,0,Wood y Wood Pecker
-Thomas Pecker,Contact,"Snow Street, 27",Kainuu,Finland,Supplier,1,0,0,Wood y Wood Pecker
-Vicking Direct,,"Atonium Street, 45a",Brussels,Belgium,Supplier,1,0,1,
-Yvan Holiday,Invoice,"Atonium Street, 45b",Brussels,Belgium,Supplier,1,0,0,Vicking Direct
-Jack Unsworth,Contact,"Atonium Street, 45a",Brussels,Belgium,Supplier,1,0,0,Vicking Direct
diff --git a/addons/base_import/static/src/xml/import.xml b/addons/base_import/static/src/xml/import.xml
index c8b2b2c63dd..97bf3e66f7a 100644
--- a/addons/base_import/static/src/xml/import.xml
+++ b/addons/base_import/static/src/xml/import.xml
@@ -229,8 +229,8 @@
orders with their respective purchase order lines:
Purchase orders with their respective purchase order lines
The following CSV file shows how to import
- suppliers and their respective contacts
- Suppliers and their respective contacts
+ customers and their respective contacts
+ Customers and their respective contacts
diff --git a/addons/base_report_designer/base_report_designer_installer.xml b/addons/base_report_designer/base_report_designer_installer.xml
index 99898f5a703..61b7fbc4c1d 100644
--- a/addons/base_report_designer/base_report_designer_installer.xml
+++ b/addons/base_report_designer/base_report_designer_installer.xml
@@ -14,9 +14,13 @@
-
+
+
+
+
+
+
-
diff --git a/addons/base_report_designer/plugin/openerp_report_designer/bin/script/lib/rpc.py b/addons/base_report_designer/plugin/openerp_report_designer/bin/script/lib/rpc.py
index 5d6f8ca6dbc..e0176bfec62 100644
--- a/addons/base_report_designer/plugin/openerp_report_designer/bin/script/lib/rpc.py
+++ b/addons/base_report_designer/plugin/openerp_report_designer/bin/script/lib/rpc.py
@@ -61,8 +61,8 @@ class RPCSession(object):
protocol = m.group(1)
if not m:
return -1
- if protocol == 'http://' or protocol == 'http://':
- self.gateway = XMLRPCGateway(host, port, 'http')
+ if protocol == 'http://' or protocol == 'https://':
+ self.gateway = XMLRPCGateway(host, port, protocol[:-3])
elif protocol == 'socket://':
self.gateway = NETRPCGateway(host, port)
diff --git a/addons/base_report_designer/static/base-report-designer-plugin/openerp_report_designer.zip b/addons/base_report_designer/static/base-report-designer-plugin/openerp_report_designer.zip
index 7d03f45dbb4..238f9d19671 100644
Binary files a/addons/base_report_designer/static/base-report-designer-plugin/openerp_report_designer.zip and b/addons/base_report_designer/static/base-report-designer-plugin/openerp_report_designer.zip differ
diff --git a/addons/base_setup/i18n/ru.po b/addons/base_setup/i18n/ru.po
index 93f65355baa..ab26ce496d6 100644
--- a/addons/base_setup/i18n/ru.po
+++ b/addons/base_setup/i18n/ru.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2013-05-27 12:19+0000\n"
-"Last-Translator: leksei \n"
+"PO-Revision-Date: 2013-06-17 10:30+0000\n"
+"Last-Translator: Chertykov Denis \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-05-28 05:17+0000\n"
-"X-Generator: Launchpad (build 16640)\n"
+"X-Launchpad-Export-Date: 2013-06-18 05:46+0000\n"
+"X-Generator: Launchpad (build 16673)\n"
#. module: base_setup
#: view:sale.config.settings:0
@@ -92,7 +92,7 @@ msgstr "Общие настройки"
#. module: base_setup
#: selection:base.setup.terminology,partner:0
msgid "Donor"
-msgstr ""
+msgstr "Спонсор"
#. module: base_setup
#: view:base.config.settings:0
@@ -147,7 +147,7 @@ msgstr "res_config_contents"
#. module: base_setup
#: view:sale.config.settings:0
msgid "Customer Features"
-msgstr ""
+msgstr "Свойства заказчика"
#. module: base_setup
#: view:base.config.settings:0
@@ -157,7 +157,7 @@ msgstr "Импорт / Экспорт"
#. module: base_setup
#: view:sale.config.settings:0
msgid "Sale Features"
-msgstr ""
+msgstr "Свойства продаж"
#. module: base_setup
#: field:sale.config.settings,module_plugin_outlook:0
@@ -232,7 +232,7 @@ msgstr ""
#. module: base_setup
#: model:ir.model,name:base_setup.model_sale_config_settings
msgid "sale.config.settings"
-msgstr ""
+msgstr "sale.config.settings"
#. module: base_setup
#: field:base.setup.terminology,partner:0
@@ -263,7 +263,7 @@ msgstr ""
#. module: base_setup
#: model:ir.model,name:base_setup.model_base_setup_terminology
msgid "base.setup.terminology"
-msgstr ""
+msgstr "base.setup.terminology"
#. module: base_setup
#: selection:base.setup.terminology,partner:0
diff --git a/addons/board/__openerp__.py b/addons/board/__openerp__.py
index e699e091176..87771b2f518 100644
--- a/addons/board/__openerp__.py
+++ b/addons/board/__openerp__.py
@@ -31,7 +31,7 @@ Lets the user create a custom dashboard.
Allows users to create custom dashboard.
""",
'author': 'OpenERP SA',
- 'depends': ['base'],
+ 'depends': ['base', 'web'],
'data': [
'security/ir.model.access.csv',
'board_view.xml',
diff --git a/addons/board/static/src/js/dashboard.js b/addons/board/static/src/js/dashboard.js
index 3489b686e1b..4f50d2281fe 100644
--- a/addons/board/static/src/js/dashboard.js
+++ b/addons/board/static/src/js/dashboard.js
@@ -344,7 +344,7 @@ instance.board.AddToDashboard = instance.web.search.Input.extend({
},
load_data:function(){
var board = new instance.web.Model('board.board');
- return board.call('list');
+ return board.call('list', [board.context()]);
},
_x:function() {
if (!instance.webclient) { return $.Deferred().reject(); }
diff --git a/addons/crm/crm_lead.py b/addons/crm/crm_lead.py
index b8673e73927..44ada2ffcc0 100644
--- a/addons/crm/crm_lead.py
+++ b/addons/crm/crm_lead.py
@@ -719,7 +719,6 @@ class crm_lead(base_stage, format_address, osv.osv):
continue
vals = self._convert_opportunity_data(cr, uid, lead, customer, section_id, context=context)
self.write(cr, uid, [lead.id], vals, context=context)
- self.message_post(cr, uid, ids, body=_("Lead converted into an Opportunity"), subtype="crm.mt_lead_convert_to_opportunity", context=context)
if user_ids or section_id:
self.allocate_salesman(cr, uid, ids, user_ids, section_id, context=context)
diff --git a/addons/crm/crm_lead_data.xml b/addons/crm/crm_lead_data.xml
index 0979a94eb3f..92914542d9d 100644
--- a/addons/crm/crm_lead_data.xml
+++ b/addons/crm/crm_lead_data.xml
@@ -163,12 +163,6 @@
Opportunity created
-
- Lead to Opportunity
- crm.lead
-
- Lead converted into an opportunity
- Stage Changedcrm.lead
@@ -195,13 +189,6 @@
section_id
-
- Lead to Opportunity
-
- crm.case.section
-
- section_id
- Opportunity Stage Changedcrm.case.section
diff --git a/addons/crm/crm_lead_view.xml b/addons/crm/crm_lead_view.xml
index 6ddd06c1c90..df6a4a07a8e 100644
--- a/addons/crm/crm_lead_view.xml
+++ b/addons/crm/crm_lead_view.xml
@@ -601,7 +601,9 @@
'default_email_to':'{$object.email or \'\'}',
'default_use_template': True,
'default_template_id': ref('crm.email_template_opportunity_mail'),
- }"/>
+ }"
+ groups="base.group_sale_salesman"
+ />
@@ -617,6 +619,7 @@
if context.get('active_model') == 'crm.lead' and context.get('active_ids'):
self.case_cancel(cr, uid, context['active_ids'], context=context)
+
diff --git a/addons/crm/res_partner_view.xml b/addons/crm/res_partner_view.xml
index dd6c50dbaba..8b941a395dd 100644
--- a/addons/crm/res_partner_view.xml
+++ b/addons/crm/res_partner_view.xml
@@ -2,19 +2,6 @@
-
-
- view.res.partner.form.crm.inherited1
- res.partner
-
-
-
-
-
-
-
-
-
Meetings
@@ -91,24 +78,31 @@
-
-
- res.partner.view.buttons
+
+
+ view.res.partner.form.crm.inherited1res.partner
-
-
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/crm/wizard/crm_lead_to_opportunity_view.xml b/addons/crm/wizard/crm_lead_to_opportunity_view.xml
index 4093df910d0..9ddd1fc701f 100644
--- a/addons/crm/wizard/crm_lead_to_opportunity_view.xml
+++ b/addons/crm/wizard/crm_lead_to_opportunity_view.xml
@@ -102,7 +102,9 @@
res_model="crm.lead2opportunity.partner.mass" src_model="crm.lead"
view_mode="form" target="new" view_type="form"
context="{'mass_convert' : True}"
- view_id="view_crm_lead2opportunity_partner_mass"/>
+ view_id="view_crm_lead2opportunity_partner_mass"
+ groups="base.group_sale_salesman"
+ />
diff --git a/addons/crm/wizard/crm_merge_opportunities_view.xml b/addons/crm/wizard/crm_merge_opportunities_view.xml
index 919d83cb9a7..60693c13e19 100644
--- a/addons/crm/wizard/crm_merge_opportunities_view.xml
+++ b/addons/crm/wizard/crm_merge_opportunities_view.xml
@@ -45,7 +45,9 @@
multi="True"
key2="client_action_multi" name="Merge leads/opportunities"
res_model="crm.merge.opportunity" src_model="crm.lead"
- view_mode="form" target="new" view_type="form"/>
+ view_mode="form" target="new" view_type="form"
+ groups="base.group_sale_salesman"
+ />
diff --git a/addons/crm_claim/__openerp__.py b/addons/crm_claim/__openerp__.py
index 61257265f1b..eaec2e4fc2b 100644
--- a/addons/crm_claim/__openerp__.py
+++ b/addons/crm_claim/__openerp__.py
@@ -42,14 +42,20 @@ automatically new claims based on incoming emails.
'security/ir.model.access.csv',
'report/crm_claim_report_view.xml',
'crm_claim_data.xml',
+ 'res_partner_view.xml',
],
'demo': ['crm_claim_demo.xml'],
- 'test': ['test/process/claim.yml',
- 'test/ui/claim_demo.yml'
+ 'test': [
+ 'test/process/claim.yml',
+ 'test/ui/claim_demo.yml'
],
'installable': True,
'auto_install': False,
- 'images': ['images/claim_categories.jpeg','images/claim_stages.jpeg','images/claims.jpeg'],
+ 'images': [
+ 'images/claim_categories.jpeg',
+ 'images/claim_stages.jpeg',
+ 'images/claims.jpeg'
+ ],
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/crm_claim/crm_claim_menu.xml b/addons/crm_claim/crm_claim_menu.xml
index 5abfcabbc71..59ec2acac2f 100644
--- a/addons/crm_claim/crm_claim_menu.xml
+++ b/addons/crm_claim/crm_claim_menu.xml
@@ -15,7 +15,11 @@
{"search_default_user_id":uid, "stage_type":'claim'}
- Record and track your customers' claims. Claims may be linked to a sales order or a lot. You can send emails with attachments and keep the full history for a claim (emails sent, intervention type and so on). Claims may automatically be linked to an email address using the mail gateway module.
+
+
+ Record and track your customers' claims. Claims may be linked to a sales order or a lot.You can send emails with attachments and keep the full history for a claim (emails sent, intervention type and so on).Claims may automatically be linked to an email address using the mail gateway module.
+
+
diff --git a/addons/crm_claim/crm_claim_view.xml b/addons/crm_claim/crm_claim_view.xml
index e295bfdd250..0d2d8b391e7 100644
--- a/addons/crm_claim/crm_claim_view.xml
+++ b/addons/crm_claim/crm_claim_view.xml
@@ -216,35 +216,5 @@
-
-
- res.partner.claim.info.form
- res.partner
-
- 20
-
-
- False
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/addons/crm_claim/res_partner_view.xml b/addons/crm_claim/res_partner_view.xml
new file mode 100644
index 00000000000..4a5db879311
--- /dev/null
+++ b/addons/crm_claim/res_partner_view.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+ res.partner.claim.info.form
+ res.partner
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/crm_partner_assign/__init__.py b/addons/crm_partner_assign/__init__.py
index bb4a3bb53be..6b1315cef07 100644
--- a/addons/crm_partner_assign/__init__.py
+++ b/addons/crm_partner_assign/__init__.py
@@ -20,6 +20,7 @@
##############################################################################
import crm_partner_assign
+import crm_lead
import wizard
import report
diff --git a/addons/crm_partner_assign/__openerp__.py b/addons/crm_partner_assign/__openerp__.py
index b9b21ca7a6a..37a8c5a3d6b 100644
--- a/addons/crm_partner_assign/__openerp__.py
+++ b/addons/crm_partner_assign/__openerp__.py
@@ -37,17 +37,23 @@ The most appropriate partner can be assigned.
You can also use the geolocalization without using the GPS coordinates.
""",
'author': 'OpenERP SA',
- 'depends': ['crm', 'account'],
+ 'depends': ['crm', 'account', 'portal'],
'demo': ['res_partner_demo.xml'],
'data': [
'security/ir.model.access.csv',
'res_partner_view.xml',
'wizard/crm_forward_to_partner_view.xml',
+ 'wizard/crm_channel_interested_view.xml',
'crm_lead_view.xml',
'crm_partner_assign_data.xml',
+ 'crm_portal_view.xml',
+ 'portal_data.xml',
'report/crm_lead_report_view.xml',
'report/crm_partner_report_view.xml',
],
+ 'js': [
+ 'static/src/js/next.js',
+ ],
'test': ['test/partner_assign.yml'],
'installable': True,
'auto_install': False,
diff --git a/addons/crm_partner_assign/crm_lead.py b/addons/crm_partner_assign/crm_lead.py
new file mode 100644
index 00000000000..37f4b9aedff
--- /dev/null
+++ b/addons/crm_partner_assign/crm_lead.py
@@ -0,0 +1,44 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+from openerp.osv import osv
+from openerp.tools.translate import _
+
+
+class crm_lead(osv.osv):
+ _inherit = 'crm.lead'
+
+ def get_interested_action(self, cr, uid, interested, context=None):
+ try:
+ model, action_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'crm_partner_assign', 'crm_lead_channel_interested_act')
+ except ValueError:
+ raise osv.except_osv(_('Error!'), _("The CRM Channel Interested Action is missing"))
+ action = self.pool[model].read(cr, uid, action_id, context=context)
+ action_context = eval(action['context'])
+ action_context['interested'] = interested
+ action['context'] = str(action_context)
+ return action
+
+ def case_interested(self, cr, uid, ids, context=None):
+ return self.get_interested_action(cr, uid, True, context=context)
+
+ def case_disinterested(self, cr, uid, ids, context=None):
+ return self.get_interested_action(cr, uid, False, context=context)
diff --git a/addons/crm_partner_assign/crm_lead_view.xml b/addons/crm_partner_assign/crm_lead_view.xml
index 0d2837d6ca5..5c14680ee78 100644
--- a/addons/crm_partner_assign/crm_lead_view.xml
+++ b/addons/crm_partner_assign/crm_lead_view.xml
@@ -8,27 +8,33 @@
-
+
-
-
-
+
+
+
-% if ctx["history_mode"] in ('whole'):
- % for message in object.message_ids:
- ---- Original Message (${message.date or ''}) ----
- ${message.body | safe}
- % endfor
+
We have been contacted by those prospects that are in your region. Thus, the following leads have been assigned to ${ctx['partner_id'].name}:
+
+
+% for lead in ctx['partner_leads']:
+
${lead.lead_id.name or 'Subject Undefined'}, ${lead.lead_id.contact_name or 'Contact Name Undefined'}, ${lead.lead_id.country_id and lead.lead_id.country_id.name or 'Country Undefined' }, ${lead.lead_id.email_from or 'Email Undefined'}, ${lead.lead_id.phone or ''}
+% endfor
+
+
+% if ctx.get('partner_in_portal'):
+
Please connect to your Partner Portal to get details. On each lead are two buttons on the top left corner that you should press after having contacted the lead: "I'm interested" & "I'm not interested".
+% else:
+
+ You do not have yet a portal access to our database. Please contact
+ ${ctx['partner_id'].user_id and ctx['partner_id'].user_id.email and 'your account manager %s (%s)' % (ctx['partner_id'].user_id.name,ctx['partner_id'].user_id.email) or 'us'}.
+
% endif
-% if ctx['history_mode'] == 'latest':
- ---- Original Message (${object.message_ids[0].date or ''}) ----
- ${object.message_ids[0].body | safe}
+
The lead will be sent to another partner if you do not contact the lead before 20 days.
+
+
Thanks,
+
+
+${ctx['partner_id'].user_id and ctx['partner_id'].user_id.signature or ''}
+
+ Higher is the value, higher is the probability for this partner to get more leads.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/crm_partner_assign/security/ir.model.access.csv b/addons/crm_partner_assign/security/ir.model.access.csv
index 69b74ef6b3d..81d74bf43e3 100644
--- a/addons/crm_partner_assign/security/ir.model.access.csv
+++ b/addons/crm_partner_assign/security/ir.model.access.csv
@@ -5,3 +5,4 @@ access_crm_partner_report,crm.partner.report.assign.all,model_crm_partner_report
access_res_partner_grade,res.partner.grade,model_res_partner_grade,base.group_sale_salesman,1,1,1,0
access_res_partner_grade_manager,res.partner.grade.manager,model_res_partner_grade,base.group_sale_manager,1,1,1,1
"access_partner_activation_manager","res.partner.activation.manager","model_res_partner_activation","base.group_partner_manager",1,1,1,1
+partner_access_crm_lead,crm.lead,model_crm_lead,portal.group_portal,1,1,0,0
\ No newline at end of file
diff --git a/addons/crm_partner_assign/static/src/js/next.js b/addons/crm_partner_assign/static/src/js/next.js
new file mode 100644
index 00000000000..c40f104d6c6
--- /dev/null
+++ b/addons/crm_partner_assign/static/src/js/next.js
@@ -0,0 +1,13 @@
+openerp.crm_partner_assign = function (instance) {
+ instance.crm_partner_assign = instance.crm_partner_assign || {};
+ instance.crm_partner_assign.next_or_list = function(parent) {
+ var form = parent.inner_widget.views.form.controller;
+ form.dataset.remove_ids([form.dataset.ids[form.dataset.index]]);
+ form.reload();
+ if (!form.dataset.ids.length){
+ parent.inner_widget.switch_mode('list');
+ }
+ parent.do_action({ type: 'ir.actions.act_window_close' });
+ };
+ instance.web.client_actions.add("next_or_list", "instance.crm_partner_assign.next_or_list");
+}
\ No newline at end of file
diff --git a/addons/crm_partner_assign/wizard/__init__.py b/addons/crm_partner_assign/wizard/__init__.py
index 9224173145b..ab6c7b7f06a 100644
--- a/addons/crm_partner_assign/wizard/__init__.py
+++ b/addons/crm_partner_assign/wizard/__init__.py
@@ -20,3 +20,4 @@
##############################################################################
import crm_forward_to_partner
+import crm_channel_interested
\ No newline at end of file
diff --git a/addons/crm_partner_assign/wizard/crm_channel_interested.py b/addons/crm_partner_assign/wizard/crm_channel_interested.py
new file mode 100644
index 00000000000..57db36cb51f
--- /dev/null
+++ b/addons/crm_partner_assign/wizard/crm_channel_interested.py
@@ -0,0 +1,76 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL (). All Rights Reserved
+# $Id$
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+from openerp.osv import fields, osv
+from openerp.tools.translate import _
+from openerp import SUPERUSER_ID
+
+
+class crm_lead_forward_to_partner(osv.TransientModel):
+ """ Forward info history to partners. """
+ _name = 'crm.lead.channel.interested'
+ _columns = {
+ 'interested': fields.boolean('Interested by this lead'),
+ 'contacted': fields.boolean('Did you contact the lead?', help="The lead has been contacted"),
+ 'comment': fields.text('Comment', help="What are the elements that have led to this decision?", required=True),
+ }
+ _defaults = {
+ 'interested': lambda self, cr, uid, c: c.get('interested', True),
+ 'contacted': False,
+ }
+
+ def action_confirm(self, cr, uid, ids, context=None):
+ wizard = self.browse(cr, uid, ids[0], context=context)
+ if wizard.interested and not wizard.contacted:
+ raise osv.except_osv(_('Error!'), _("You must contact the lead before saying that you are interested"))
+ lead_obj = self.pool.get('crm.lead')
+ lead_obj.check_access_rights(cr, uid, 'write')
+ if wizard.interested:
+ message = _('
\n"
+" Manage all your contracts (leasing, insurances, etc.) with\n"
+" their related services, costs. OpenERP will automatically "
+"warn\n"
+" you when some contracts have to be renewed.\n"
+"
\n"
+" Each contract (e.g.: leasing) may include several services\n"
+" (reparation, insurances, periodic maintenance).\n"
+"
\n"
+" OpenERP helps you managing the costs for your different\n"
+" vehicles. Costs are created automatically from services,\n"
+" contracts (fixed or recurring) and fuel logs.\n"
+"
\n"
+" Here you can add refuelling entries for all vehicles. You "
+"can\n"
+" also filter logs of a particular vehicle using the search\n"
+" field.\n"
+"
\n"
+" You will be able to manage your fleet by keeping track of "
+"the\n"
+" contracts, services, fixed and recurring costs, odometers "
+"and\n"
+" fuel logs associated to each vehicle.\n"
+"
\n"
+" OpenERP will warn you when services or contract have to be\n"
+" renewed.\n"
+"
\n"
+" To add your first report into this dashboard, go to any\n"
+" menu, switch to list or graph view, and click 'Add "
+"to\n"
+" Dashboard' in the extended search options.\n"
+"
\n"
+" You can filter and group data before inserting into the\n"
+" dashboard using the search options.\n"
+"
\n"
+" OpenERP helps you managing the costs for your different vehicles\n"
+" Costs are generally created from services and contract and appears "
+"here.\n"
+"
\n"
+"
\n"
+" Thanks to the different filters, OpenERP can only print the "
+"effective\n"
+" costs, sort them by type and by vehicle.\n"
+"
\n"
+" Here you can add various odometer entries for all vehicles.\n"
+" You can also show odometer value for a particular vehicle "
+"using\n"
+" the search field.\n"
+"
\n"
+" Here are displayed vehicles for which one or more contracts need "
+"to be renewed. If you see this message, then there is no contracts to "
+"renew.\n"
+"
\n"
+" Click to create a new service entry. \n"
+"
\n"
+" OpenERP helps you keeping track of all the services done\n"
+" on your vehicle. Services can be of many type: occasional\n"
+" repair, fixed maintenance, etc.\n"
+"