[MERGE] with trunk.

bzr revid: nco@tinyerp.com-20130703124233-buziafuxc12mnznl
This commit is contained in:
Nimesh Contractor (OpenERP) 2013-07-03 18:12:33 +05:30
commit de640e1eb3
472 changed files with 23999 additions and 7060 deletions

View File

@ -221,8 +221,8 @@ class account_invoice(osv.osv):
'type': { 'type': {
}, },
'state': { 'state': {
'account.mt_invoice_paid': lambda self, cr, uid, obj, ctx=None: obj['state'] == 'paid' and obj['type'] in ('out_invoice', 'out_refund'), 'account.mt_invoice_paid': lambda self, cr, uid, obj, ctx=None: obj.state == 'paid' and obj.type in ('out_invoice', 'out_refund'),
'account.mt_invoice_validated': lambda self, cr, uid, obj, ctx=None: obj['state'] == 'open' and obj['type'] in ('out_invoice', 'out_refund'), 'account.mt_invoice_validated': lambda self, cr, uid, obj, ctx=None: obj.state == 'open' and obj.type in ('out_invoice', 'out_refund'),
}, },
} }
_columns = { _columns = {

View File

@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n" "Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n" "Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:04+0000\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-07-02 06:32+0000\n"
"Last-Translator: Chertykov Denis <chertykov@gmail.com>\n" "Last-Translator: Chertykov Denis <chertykov@gmail.com>\n"
"Language-Team: \n" "Language-Team: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-06-08 05:52+0000\n" "X-Launchpad-Export-Date: 2013-07-03 05:14+0000\n"
"X-Generator: Launchpad (build 16667)\n" "X-Generator: Launchpad (build 16692)\n"
#. module: account #. module: account
#: model:process.transition,name:account.process_transition_supplierreconcilepaid0 #: model:process.transition,name:account.process_transition_supplierreconcilepaid0
@ -134,10 +134,10 @@ msgstr ""
#: code:addons/account/account.py:686 #: code:addons/account/account.py:686
#: code:addons/account/account.py:781 #: code:addons/account/account.py:781
#: code:addons/account/account.py:1058 #: 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:820
#: code:addons/account/account_invoice.py:823 #: 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:98
#: code:addons/account/account_move_line.py:771 #: code:addons/account/account_move_line.py:771
#: code:addons/account/account_move_line.py:824 #: code:addons/account/account_move_line.py:824
@ -257,7 +257,8 @@ msgid ""
"entries." "entries."
msgstr "" msgstr ""
"Тип счета используется в информационных целях, при создании официальных " "Тип счета используется в информационных целях, при создании официальных "
"отчетов для конкретной страны, определении правил" "отчетов для конкретной страны, определении правил закрытия финансового года "
"и проводок открытия."
#. module: account #. module: account
#: field:account.config.settings,sale_refund_sequence_next:0 #: field:account.config.settings,sale_refund_sequence_next:0
@ -285,7 +286,7 @@ msgstr "Разрешить списание"
#. module: account #. module: account
#: view:account.analytic.chart:0 #: view:account.analytic.chart:0
msgid "Select the Period for Analysis" msgid "Select the Period for Analysis"
msgstr "Выберите период для проведения анализа" msgstr "Выберите период для анализа"
#. module: account #. module: account
#: model:ir.actions.act_window,help:account.action_invoice_tree3 #: model:ir.actions.act_window,help:account.action_invoice_tree3
@ -355,7 +356,7 @@ msgid "Allow multi currencies"
msgstr "Разрешить мульти-валютность" msgstr "Разрешить мульти-валютность"
#. module: account #. module: account
#: code:addons/account/account_invoice.py:74 #: code:addons/account/account_invoice.py:77
#, python-format #, python-format
msgid "You must define an analytic journal of type '%s'!" msgid "You must define an analytic journal of type '%s'!"
msgstr "Вы должны определить журнал аналитики типа '%s'!" msgstr "Вы должны определить журнал аналитики типа '%s'!"
@ -757,7 +758,9 @@ msgstr ""
#: selection:account.common.partner.report,result_selection:0 #: selection:account.common.partner.report,result_selection:0
#: selection:account.partner.balance,result_selection:0 #: selection:account.partner.balance,result_selection:0
#: selection:account.partner.ledger,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_balance.py:297
#: code:addons/account/report/account_partner_ledger.py:272
#, python-format #, python-format
msgid "Receivable Accounts" msgid "Receivable Accounts"
msgstr "Счета к получению" msgstr "Счета к получению"
@ -797,7 +800,7 @@ msgid "Are you sure you want to create entries?"
msgstr "Вы действительно хотите создать проводки?" msgstr "Вы действительно хотите создать проводки?"
#. module: account #. module: account
#: code:addons/account/account_invoice.py:1358 #: code:addons/account/account_invoice.py:1361
#, python-format #, python-format
msgid "Invoice partially paid: %s%s of %s%s (%s%s remaining)." msgid "Invoice partially paid: %s%s of %s%s (%s%s remaining)."
msgstr "Счет частично оплачен: %s%s из %s%s (%s%s остаток)." msgstr "Счет частично оплачен: %s%s из %s%s (%s%s остаток)."
@ -866,7 +869,7 @@ msgid "Type"
msgstr "Тип" msgstr "Тип"
#. module: account #. module: account
#: code:addons/account/account_invoice.py:823 #: code:addons/account/account_invoice.py:826
#, python-format #, python-format
msgid "" msgid ""
"Taxes are missing!\n" "Taxes are missing!\n"
@ -1052,7 +1055,7 @@ msgid "Liability"
msgstr "Обязательства" msgstr "Обязательства"
#. module: account #. module: account
#: code:addons/account/account_invoice.py:896 #: code:addons/account/account_invoice.py:899
#, python-format #, python-format
msgid "Please define sequence on the journal related to this invoice." msgid "Please define sequence on the journal related to this invoice."
msgstr "Пожалуйста, определите нумерацию в журнале, связанном с этим счетом." msgstr "Пожалуйста, определите нумерацию в журнале, связанном с этим счетом."
@ -1128,8 +1131,8 @@ msgstr "Возможности"
#. module: account #. module: account
#: code:addons/account/account.py:2346 #: code:addons/account/account.py:2346
#: code:addons/account/account_bank_statement.py:424 #: code:addons/account/account_bank_statement.py:424
#: code:addons/account/account_invoice.py:74 #: code:addons/account/account_invoice.py:77
#: code:addons/account/account_invoice.py:772 #: code:addons/account/account_invoice.py:775
#: code:addons/account/account_move_line.py:195 #: code:addons/account/account_move_line.py:195
#, python-format #, python-format
msgid "No Analytic Journal !" msgid "No Analytic Journal !"
@ -1168,7 +1171,7 @@ msgstr "Название счета."
#. module: account #. module: account
#: field:account.journal,with_last_closing_balance:0 #: field:account.journal,with_last_closing_balance:0
msgid "Opening With Last Closing Balance" msgid "Opening With Last Closing Balance"
msgstr "" msgstr "Открыть с предыдущим остатком"
#. module: account #. module: account
#: help:account.tax.code,notprintable:0 #: help:account.tax.code,notprintable:0
@ -1567,8 +1570,10 @@ msgid "%s (copy)"
msgstr "%s (копия)" msgstr "%s (копия)"
#. module: account #. module: account
#: report:account.account.balance:0
#: selection:account.balance.report,display_account:0 #: selection:account.balance.report,display_account:0
#: selection:account.common.account.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.partner.balance,display_partner:0
#: selection:account.report.general.ledger,display_account:0 #: selection:account.report.general.ledger,display_account:0
msgid "With balance is not equal to 0" msgid "With balance is not equal to 0"
@ -1803,7 +1808,7 @@ msgstr ""
#: view:account.invoice:0 #: view:account.invoice:0
#: view:account.invoice.report:0 #: view:account.invoice.report:0
#: field:account.move.line,invoice: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:ir.model,name:account.model_account_invoice
#: model:res.request.link,name:account.req_link_invoice #: model:res.request.link,name:account.req_link_invoice
#, python-format #, python-format
@ -1954,7 +1959,7 @@ msgstr "Длительность"
#: view:account.bank.statement:0 #: view:account.bank.statement:0
#: field:account.bank.statement,last_closing_balance:0 #: field:account.bank.statement,last_closing_balance:0
msgid "Last Closing Balance" msgid "Last Closing Balance"
msgstr "" msgstr "Последнее конечное сальдо"
#. module: account #. module: account
#: model:ir.model,name:account.model_account_common_journal_report #: model:ir.model,name:account.model_account_common_journal_report
@ -2029,6 +2034,12 @@ msgid ""
"useful because it enables you to preview at any time the tax that you owe at " "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." "the start and end of the month or quarter."
msgstr "" msgstr ""
"Это меню печати налоговой декларации на основе счетов и платежей. Выберите "
"один или несколько периодов финансового года. Информация, необходимая для "
"налоговой декларации генерируется автоматически OpenERP из счета (или "
"платежей, в некоторых странах). Эти данные обновляются в режиме реального "
"времени. Это очень полезно, потому что позволяет просматривать в любое время "
"налоги, которые вы должны в начале и в конце месяца или квартала."
#. module: account #. module: account
#: code:addons/account/account.py:409 #: code:addons/account/account.py:409
@ -2057,9 +2068,9 @@ msgstr ""
#: code:addons/account/account_bank_statement.py:419 #: code:addons/account/account_bank_statement.py:419
#: code:addons/account/account_cash_statement.py:256 #: code:addons/account/account_cash_statement.py:256
#: code:addons/account/account_cash_statement.py:300 #: code:addons/account/account_cash_statement.py:300
#: code:addons/account/account_invoice.py:896 #: code:addons/account/account_invoice.py:899
#: code:addons/account/account_invoice.py:930 #: code:addons/account/account_invoice.py:933
#: code:addons/account/account_invoice.py:1121 #: code:addons/account/account_invoice.py:1124
#: code:addons/account/account_move_line.py:579 #: code:addons/account/account_move_line.py:579
#: code:addons/account/account_move_line.py:828 #: code:addons/account/account_move_line.py:828
#: code:addons/account/account_move_line.py:851 #: code:addons/account/account_move_line.py:851
@ -2104,7 +2115,7 @@ msgstr ""
" </p><p>\n" " </p><p>\n"
" Вы можете управлять счетом от поставщика в соответствии с\n" " Вы можете управлять счетом от поставщика в соответствии с\n"
" тем, что вы приобрели. OpenERP также может создавать\n" " тем, что вы приобрели. OpenERP также может создавать\n"
" черновые счета автоматически из заказов на закупку.\n" " черновые счета автоматически из заказов закупки.\n"
" </p>\n" " </p>\n"
" " " "
@ -2230,7 +2241,7 @@ msgstr "Счет - печать журнала"
#. module: account #. module: account
#: model:ir.model,name:account.model_product_category #: model:ir.model,name:account.model_product_category
msgid "Product Category" msgid "Product Category"
msgstr "Категория ТМЦ" msgstr "Категория продукции"
#. module: account #. module: account
#: code:addons/account/account.py:656 #: code:addons/account/account.py:656
@ -2307,7 +2318,9 @@ msgstr "Управление активами"
#: selection:account.common.partner.report,result_selection:0 #: selection:account.common.partner.report,result_selection:0
#: selection:account.partner.balance,result_selection:0 #: selection:account.partner.balance,result_selection:0
#: selection:account.partner.ledger,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_balance.py:299
#: code:addons/account/report/account_partner_ledger.py:274
#, python-format #, python-format
msgid "Payable Accounts" msgid "Payable Accounts"
msgstr "Кредиторская задолженность" msgstr "Кредиторская задолженность"
@ -2600,7 +2613,7 @@ msgstr "Учетный год"
#: help:accounting.report,fiscalyear_id:0 #: help:accounting.report,fiscalyear_id:0
#: help:accounting.report,fiscalyear_id_cmp:0 #: help:accounting.report,fiscalyear_id_cmp:0
msgid "Keep empty for all open fiscal year" msgid "Keep empty for all open fiscal year"
msgstr "Keep empty for all open fiscal year" msgstr "Оставьте пустым для всех открытых финансовых лет"
#. module: account #. module: account
#: code:addons/account/account.py:653 #: code:addons/account/account.py:653
@ -2623,7 +2636,7 @@ msgid "Create an Account Based on this Template"
msgstr "Создать счет на основе этого шаблона" msgstr "Создать счет на основе этого шаблона"
#. module: account #. module: account
#: code:addons/account/account_invoice.py:930 #: code:addons/account/account_invoice.py:933
#, python-format #, python-format
msgid "" msgid ""
"Cannot create the invoice.\n" "Cannot create the invoice.\n"
@ -2896,11 +2909,11 @@ msgstr "Счета"
#. module: account #. module: account
#: code:addons/account/account.py:3541 #: code:addons/account/account.py:3541
#: code:addons/account/account_bank_statement.py:405 #: code:addons/account/account_bank_statement.py:405
#: code:addons/account/account_invoice.py:504 #: code:addons/account/account_invoice.py:507
#: code:addons/account/account_invoice.py:606 #: code:addons/account/account_invoice.py:609
#: code:addons/account/account_invoice.py:621 #: code:addons/account/account_invoice.py:624
#: code:addons/account/account_invoice.py:629 #: code:addons/account/account_invoice.py:632
#: code:addons/account/account_invoice.py:654 #: code:addons/account/account_invoice.py:657
#: code:addons/account/account_move_line.py:536 #: code:addons/account/account_move_line.py:536
#, python-format #, python-format
msgid "Configuration Error!" msgid "Configuration Error!"
@ -2932,7 +2945,7 @@ msgstr "Метка"
#. module: account #. module: account
#: view:res.partner.bank:0 #: view:res.partner.bank:0
msgid "Accounting Information" msgid "Accounting Information"
msgstr "Бухгалтерская информация" msgstr "Учетная информация"
#. module: account #. module: account
#: view:account.tax:0 #: view:account.tax:0
@ -3098,6 +3111,8 @@ msgid ""
"Selected invoice(s) cannot be confirmed as they are not in 'Draft' or 'Pro-" "Selected invoice(s) cannot be confirmed as they are not in 'Draft' or 'Pro-"
"Forma' state." "Forma' state."
msgstr "" msgstr ""
"Выбранные счета нельзя подтвердить, так как состояние не \"Черновик\" и не "
"\"Проформа\""
#. module: account #. module: account
#: code:addons/account/account.py:1071 #: code:addons/account/account.py:1071
@ -3130,7 +3145,7 @@ msgstr "Журнал продаж"
#. module: account #. module: account
#: code:addons/account/account.py:2346 #: 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 #: code:addons/account/account_move_line.py:195
#, python-format #, python-format
msgid "You have to define an analytic journal on the '%s' journal!" msgid "You have to define an analytic journal on the '%s' journal!"
@ -3299,7 +3314,7 @@ msgid "Fiscal Position"
msgstr "Система налогообложения" msgstr "Система налогообложения"
#. module: account #. module: account
#: code:addons/account/account_invoice.py:820 #: code:addons/account/account_invoice.py:823
#, python-format #, python-format
msgid "" msgid ""
"Tax base different!\n" "Tax base different!\n"
@ -3464,7 +3479,7 @@ msgstr "Вид"
#. module: account #. module: account
#: code:addons/account/account.py:3460 #: code:addons/account/account.py:3460
#: code:addons/account/account_bank.py:95 #: code:addons/account/account_bank.py:94
#, python-format #, python-format
msgid "BNK" msgid "BNK"
msgstr "BNK" msgstr "BNK"
@ -3734,7 +3749,7 @@ msgstr ""
"иметь названия как и у самого документа" "иметь названия как и у самого документа"
#. module: account #. module: account
#: code:addons/account/account_invoice.py:1013 #: code:addons/account/account_invoice.py:1016
#, python-format #, python-format
msgid "" msgid ""
"You cannot create an invoice on a centralized journal. Uncheck the " "You cannot create an invoice on a centralized journal. Uncheck the "
@ -3749,7 +3764,7 @@ msgid "Starting Balance"
msgstr "Начальный баланс" msgstr "Начальный баланс"
#. module: account #. module: account
#: code:addons/account/account_invoice.py:1462 #: code:addons/account/account_invoice.py:1465
#, python-format #, python-format
msgid "No Partner Defined !" msgid "No Partner Defined !"
msgstr "Партнер не определен!" msgstr "Партнер не определен!"
@ -3974,6 +3989,8 @@ msgid ""
"You cannot modify a posted entry of this journal.\n" "You cannot modify a posted entry of this journal.\n"
"First you should set the journal to allow cancelling entries." "First you should set the journal to allow cancelling entries."
msgstr "" msgstr ""
"Нельзя изменить проводку по этому журналу.\n"
"Прежде, нужно разрешить отмену проводок в журнале."
#. module: account #. module: account
#: model:ir.actions.act_window,name:account.action_account_print_sale_purchase_journal #: model:ir.actions.act_window,name:account.action_account_print_sale_purchase_journal
@ -4040,9 +4057,13 @@ msgid "VAT :"
msgstr "НДС:" msgstr "НДС:"
#. module: account #. module: account
#: report:account.account.balance:0
#: report:account.central.journal:0 #: report:account.central.journal:0
#: view:account.config.settings:0 #: view:account.config.settings:0
#: report:account.general.journal:0
#: report:account.general.ledger: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.partner.balance:0
#: report:account.third_party_ledger:0 #: report:account.third_party_ledger:0
#: report:account.third_party_ledger_other:0 #: report:account.third_party_ledger_other:0
@ -4145,8 +4166,10 @@ msgstr ""
"условии оплаты контрагента." "условии оплаты контрагента."
#. module: account #. module: account
#: report:account.account.balance:0
#: selection:account.balance.report,display_account:0 #: selection:account.balance.report,display_account:0
#: selection:account.common.account.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.report.general.ledger,display_account:0
#: selection:account.tax,type_tax_use:0 #: selection:account.tax,type_tax_use:0
#: selection:account.tax.template,type_tax_use:0 #: selection:account.tax.template,type_tax_use:0
@ -4283,7 +4306,7 @@ msgstr "Открыть счет"
#. module: account #. module: account
#: field:account.invoice.tax,factor_tax:0 #: field:account.invoice.tax,factor_tax:0
msgid "Multipication factor Tax code" msgid "Multipication factor Tax code"
msgstr "" msgstr "Коэффициент кода налога"
#. module: account #. module: account
#: field:account.config.settings,complete_tax_set:0 #: field:account.config.settings,complete_tax_set:0
@ -4409,7 +4432,7 @@ msgid "Consolidated Children"
msgstr "Субсчета" msgstr "Субсчета"
#. module: account #. 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 #: code:addons/account/wizard/account_invoice_refund.py:146
#, python-format #, python-format
msgid "Insufficient Data!" msgid "Insufficient Data!"
@ -4592,7 +4615,7 @@ msgstr ""
#: field:account.account,shortcut:0 #: field:account.account,shortcut:0
#: field:account.account.template,shortcut:0 #: field:account.account.template,shortcut:0
msgid "Shortcut" msgid "Shortcut"
msgstr "Горячая клвиша" msgstr "Закладка"
#. module: account #. module: account
#: view:account.account:0 #: view:account.account:0
@ -4666,6 +4689,8 @@ msgid ""
"Error!\n" "Error!\n"
"The duration of the Period(s) is/are invalid." "The duration of the Period(s) is/are invalid."
msgstr "" msgstr ""
"Ошибка!\n"
"Не допустимая продолжительность периода."
#. module: account #. module: account
#: field:account.entries.report,month:0 #: field:account.entries.report,month:0
@ -4682,7 +4707,7 @@ msgstr "Месяц"
#: code:addons/account/account.py:668 #: code:addons/account/account.py:668
#, python-format #, python-format
msgid "You cannot change the code of account which contains journal items!" msgid "You cannot change the code of account which contains journal items!"
msgstr "" msgstr "Нальзя изменить код счета который содержит проводки!"
#. module: account #. module: account
#: field:account.config.settings,purchase_sequence_prefix:0 #: field:account.config.settings,purchase_sequence_prefix:0
@ -4690,8 +4715,8 @@ msgid "Supplier invoice sequence"
msgstr "Нумерация счетов поставщиков" msgstr "Нумерация счетов поставщиков"
#. module: account #. module: account
#: code:addons/account/account_invoice.py:607 #: code:addons/account/account_invoice.py:610
#: code:addons/account/account_invoice.py:622 #: code:addons/account/account_invoice.py:625
#, python-format #, python-format
msgid "" msgid ""
"Cannot find a chart of account, you should create one from Settings\\" "Cannot find a chart of account, you should create one from Settings\\"
@ -4801,7 +4826,7 @@ msgstr "Отметьте, если хотите выводить счета с 0
#. module: account #. module: account
#: field:account.move.reconcile,opening_reconciliation:0 #: field:account.move.reconcile,opening_reconciliation:0
msgid "Opening Entries Reconciliation" msgid "Opening Entries Reconciliation"
msgstr "" msgstr "Сверка проводок открытия"
#. module: account #. module: account
#. openerp-web #. openerp-web
@ -4826,7 +4851,7 @@ msgstr "Документ из счета или платежа"
msgid "" msgid ""
"There is currently no company without chart of account. The wizard will " "There is currently no company without chart of account. The wizard will "
"therefore not be executed." "therefore not be executed."
msgstr "" msgstr "Не ни одной компании без плана счетов. Мастер не будет запущен."
#. module: account #. module: account
#: model:ir.actions.act_window,name:account.action_wizard_multi_chart #: model:ir.actions.act_window,name:account.action_wizard_multi_chart
@ -4971,7 +4996,7 @@ msgstr ""
"Нельзя создать счет, который имеет родительский счет другой компании." "Нельзя создать счет, который имеет родительский счет другой компании."
#. module: account #. module: account
#: code:addons/account/account_invoice.py:655 #: code:addons/account/account_invoice.py:658
#, python-format #, python-format
msgid "" msgid ""
"Cannot find any account journal of %s type for this company.\n" "Cannot find any account journal of %s type for this company.\n"
@ -5019,7 +5044,7 @@ msgstr "Контроль типа"
#. module: account #. module: account
#: help:account.journal,default_credit_account_id:0 #: help:account.journal,default_credit_account_id:0
msgid "It acts as a default account for credit amount" msgid "It acts as a default account for credit amount"
msgstr "Выступает в качестве счета по умолчанию для сумм по кредиту" msgstr "Используется как кредитовый счет по умолчанию"
#. module: account #. module: account
#: view:cash.box.out:0 #: view:cash.box.out:0
@ -5036,7 +5061,7 @@ msgstr "Отменено"
#. module: account #. module: account
#: help:account.config.settings,group_proforma_invoices:0 #: help:account.config.settings,group_proforma_invoices:0
msgid "Allows you to put invoices in pro-forma state." msgid "Allows you to put invoices in pro-forma state."
msgstr "" msgstr "Позволяет устанавливать статус \"Проформа\" для счетов."
#. module: account #. module: account
#: view:account.journal:0 #: view:account.journal:0
@ -5050,6 +5075,7 @@ msgid ""
"It adds the currency column on report if the currency differs from the " "It adds the currency column on report if the currency differs from the "
"company currency." "company currency."
msgstr "" msgstr ""
"Добавляет колонку валюты в отчет, если валюта отлична от валюты компании."
#. module: account #. module: account
#: code:addons/account/account.py:3394 #: code:addons/account/account.py:3394
@ -5281,7 +5307,7 @@ msgstr "Проводки журнала для проверки"
#. module: account #. module: account
#: selection:res.company,tax_calculation_rounding_method:0 #: selection:res.company,tax_calculation_rounding_method:0
msgid "Round Globally" msgid "Round Globally"
msgstr "" msgstr "Глобальное округление"
#. module: account #. module: account
#: view:account.bank.statement:0 #: view:account.bank.statement:0
@ -5295,7 +5321,7 @@ msgid "Tax Application"
msgstr "Применение налога" msgstr "Применение налога"
#. module: account #. module: account
#: code:addons/account/account_invoice.py:919 #: code:addons/account/account_invoice.py:922
#, python-format #, python-format
msgid "" msgid ""
"Please verify the price of the invoice !\n" "Please verify the price of the invoice !\n"
@ -5561,7 +5587,7 @@ msgstr ""
#. module: account #. module: account
#: view:account.invoice:0 #: view:account.invoice:0
msgid "Pro Forma Invoice " msgid "Pro Forma Invoice "
msgstr "Предварительный счет " msgstr "Проформа счета "
#. module: account #. module: account
#: selection:account.subscription,period_type:0 #: selection:account.subscription,period_type:0
@ -5597,7 +5623,7 @@ msgstr "Прибыль и убыток (счет доходов)"
#. module: account #. module: account
#: field:account.journal,allow_date:0 #: field:account.journal,allow_date:0
msgid "Check Date in Period" msgid "Check Date in Period"
msgstr "" msgstr "Проверка даты в периоде"
#. module: account #. module: account
#: model:ir.ui.menu,name:account.final_accounting_reports #: model:ir.ui.menu,name:account.final_accounting_reports
@ -5622,7 +5648,7 @@ msgid "Compute Code (if type=code)"
msgstr "Вычислить код (если тип=код)" msgstr "Вычислить код (если тип=код)"
#. module: account #. module: account
#: code:addons/account/account_invoice.py:505 #: code:addons/account/account_invoice.py:508
#, python-format #, python-format
msgid "" msgid ""
"Cannot find a chart of accounts for this company, you should create one." "Cannot find a chart of accounts for this company, you should create one."
@ -5973,7 +5999,7 @@ msgstr "Сумма в валюте"
#. module: account #. module: account
#: selection:res.company,tax_calculation_rounding_method:0 #: selection:res.company,tax_calculation_rounding_method:0
msgid "Round per Line" msgid "Round per Line"
msgstr "" msgstr "Округление каждой позиции"
#. module: account #. module: account
#: report:account.analytic.account.balance:0 #: report:account.analytic.account.balance:0
@ -6063,7 +6089,7 @@ msgstr "Открыть кассу"
#. module: account #. module: account
#: selection:account.financial.report,style_overwrite:0 #: selection:account.financial.report,style_overwrite:0
msgid "Automatic formatting" msgid "Automatic formatting"
msgstr "" msgstr "Автоматическое форматирование"
#. module: account #. module: account
#: view:account.move.line.reconcile:0 #: view:account.move.line.reconcile:0
@ -6166,7 +6192,7 @@ msgstr "Доход"
#: view:account.config.settings:0 #: view:account.config.settings:0
#: view:account.invoice:0 #: view:account.invoice:0
#: view:account.invoice.report:0 #: view:account.invoice.report:0
#: code:addons/account/account_invoice.py:387 #: code:addons/account/account_invoice.py:390
#, python-format #, python-format
msgid "Supplier" msgid "Supplier"
msgstr "Поставщик" msgstr "Поставщик"
@ -6186,7 +6212,7 @@ msgid "Account n°"
msgstr "№ счета" msgstr "№ счета"
#. module: account #. module: account
#: code:addons/account/account_invoice.py:92 #: code:addons/account/account_invoice.py:95
#, python-format #, python-format
msgid "Free Reference" msgid "Free Reference"
msgstr "Свободная Ссылка" msgstr "Свободная Ссылка"
@ -6196,7 +6222,9 @@ msgstr "Свободная Ссылка"
#: selection:account.common.partner.report,result_selection:0 #: selection:account.common.partner.report,result_selection:0
#: selection:account.partner.balance,result_selection:0 #: selection:account.partner.balance,result_selection:0
#: selection:account.partner.ledger,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_balance.py:301
#: code:addons/account/report/account_partner_ledger.py:276
#, python-format #, python-format
msgid "Receivable and Payable Accounts" msgid "Receivable and Payable Accounts"
msgstr "Счета дебиторской и кредиторской задолженности" msgstr "Счета дебиторской и кредиторской задолженности"
@ -6323,7 +6351,7 @@ msgstr ""
#. module: account #. module: account
#: field:account.journal,loss_account_id:0 #: field:account.journal,loss_account_id:0
msgid "Loss Account" msgid "Loss Account"
msgstr "" msgstr "Счет убытков"
#. module: account #. module: account
#: field:account.tax,account_collected_id:0 #: field:account.tax,account_collected_id:0
@ -6498,10 +6526,10 @@ msgstr "Позиция аналитики"
#. module: account #. module: account
#: model:ir.ui.menu,name:account.menu_action_model_form #: model:ir.ui.menu,name:account.menu_action_model_form
msgid "Models" msgid "Models"
msgstr "" msgstr "Модели"
#. module: account #. module: account
#: code:addons/account/account_invoice.py:1121 #: code:addons/account/account_invoice.py:1124
#, python-format #, python-format
msgid "" msgid ""
"You cannot cancel an invoice which is partially paid. You need to " "You cannot cancel an invoice which is partially paid. You need to "
@ -6673,7 +6701,7 @@ msgid "You cannot create journal items on closed account."
msgstr "" msgstr ""
#. module: account #. module: account
#: code:addons/account/account_invoice.py:630 #: code:addons/account/account_invoice.py:633
#, python-format #, python-format
msgid "Invoice line account's company and invoice's compnay does not match." msgid "Invoice line account's company and invoice's compnay does not match."
msgstr "" msgstr ""
@ -6718,7 +6746,7 @@ msgstr "Собственные средства"
#. module: account #. module: account
#: field:account.journal,internal_account_id:0 #: field:account.journal,internal_account_id:0
msgid "Internal Transfers Account" msgid "Internal Transfers Account"
msgstr "" msgstr "Счет внутренних переводов"
#. module: account #. module: account
#: code:addons/account/wizard/pos_box.py:32 #: code:addons/account/wizard/pos_box.py:32
@ -6734,7 +6762,7 @@ msgstr "Процент"
#. module: account #. module: account
#: selection:account.config.settings,tax_calculation_rounding_method:0 #: selection:account.config.settings,tax_calculation_rounding_method:0
msgid "Round globally" msgid "Round globally"
msgstr "" msgstr "Глобальное округление"
#. module: account #. module: account
#: selection:account.report.general.ledger,sortby:0 #: selection:account.report.general.ledger,sortby:0
@ -6825,7 +6853,7 @@ msgstr ""
#: code:addons/account/account.py:1453 #: code:addons/account/account.py:1453
#: code:addons/account/account.py:1482 #: code:addons/account/account.py:1482
#: code:addons/account/account.py:1489 #: 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/account_move_line.py:1005
#: code:addons/account/wizard/account_automatic_reconcile.py:148 #: code:addons/account/wizard/account_automatic_reconcile.py:148
#: code:addons/account/wizard/account_fiscalyear_close.py:88 #: code:addons/account/wizard/account_fiscalyear_close.py:88
@ -6912,7 +6940,7 @@ msgstr ""
#: report:account.invoice:0 #: report:account.invoice:0
#: selection:account.invoice,type:0 #: selection:account.invoice,type:0
#: selection:account.invoice.report,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 #: selection:report.invoice.created,type:0
#, python-format #, python-format
msgid "Supplier Refund" msgid "Supplier Refund"
@ -7553,7 +7581,7 @@ msgstr "Для процентных налогов, введите % как чи
#. module: account #. module: account
#: model:ir.actions.act_window,name:account.action_account_report_tree_hierarchy #: model:ir.actions.act_window,name:account.action_account_report_tree_hierarchy
msgid "Financial Reports Hierarchy" msgid "Financial Reports Hierarchy"
msgstr "" msgstr "Структура финансовых отчетов"
#. module: account #. module: account
#: model:ir.actions.act_window,name:account.act_account_invoice_partner_relation #: model:ir.actions.act_window,name:account.act_account_invoice_partner_relation
@ -7718,7 +7746,7 @@ msgstr ""
#. module: account #. module: account
#: field:account.config.settings,group_proforma_invoices:0 #: field:account.config.settings,group_proforma_invoices:0
msgid "Allow pro-forma invoices" msgid "Allow pro-forma invoices"
msgstr "" msgstr "Разрешить проформы счетов"
#. module: account #. module: account
#: view:account.bank.statement:0 #: view:account.bank.statement:0
@ -7789,7 +7817,7 @@ msgstr "Журнал счета"
#. module: account #. module: account
#: field:account.config.settings,tax_calculation_rounding_method:0 #: field:account.config.settings,tax_calculation_rounding_method:0
msgid "Tax calculation rounding method" msgid "Tax calculation rounding method"
msgstr "" msgstr "Метод округления при расчете налога"
#. module: account #. module: account
#: model:process.node,name:account.process_node_paidinvoice0 #: model:process.node,name:account.process_node_paidinvoice0
@ -7912,7 +7940,7 @@ msgstr "Нормальный"
#: model:ir.actions.act_window,name:account.action_email_templates #: model:ir.actions.act_window,name:account.action_email_templates
#: model:ir.ui.menu,name:account.menu_email_templates #: model:ir.ui.menu,name:account.menu_email_templates
msgid "Email Templates" msgid "Email Templates"
msgstr "" msgstr "Шаблоны писем"
#. module: account #. module: account
#: view:account.move.line:0 #: view:account.move.line:0
@ -7974,7 +8002,7 @@ msgstr "Нет номера части !"
#: view:account.financial.report:0 #: view:account.financial.report:0
#: model:ir.ui.menu,name:account.menu_account_report_tree_hierarchy #: model:ir.ui.menu,name:account.menu_account_report_tree_hierarchy
msgid "Account Reports Hierarchy" msgid "Account Reports Hierarchy"
msgstr "" msgstr "Структура отчетов по счетам"
#. module: account #. module: account
#: help:account.account.template,chart_template_id:0 #: help:account.account.template,chart_template_id:0
@ -8050,6 +8078,8 @@ msgstr "Отмена выбранных счетов"
msgid "" msgid ""
"This field is used to generate legal reports: profit and loss, balance sheet." "This field is used to generate legal reports: profit and loss, balance sheet."
msgstr "" msgstr ""
"Это поле используется для генерации официальных отчетов: прибыль и убыток, "
"баланс."
#. module: account #. module: account
#: selection:account.entries.report,month:0 #: selection:account.entries.report,month:0
@ -8061,7 +8091,7 @@ msgid "May"
msgstr "Май" msgstr "Май"
#. module: account #. module: account
#: code:addons/account/account_invoice.py:817 #: code:addons/account/account_invoice.py:820
#, python-format #, python-format
msgid "Global taxes defined, but they are not in invoice lines !" msgid "Global taxes defined, but they are not in invoice lines !"
msgstr "" msgstr ""
@ -8102,7 +8132,7 @@ msgstr "Провести записи журнала"
#: view:account.config.settings:0 #: view:account.config.settings:0
#: view:account.invoice:0 #: view:account.invoice:0
#: view:account.invoice.report:0 #: view:account.invoice.report:0
#: code:addons/account/account_invoice.py:385 #: code:addons/account/account_invoice.py:388
#, python-format #, python-format
msgid "Customer" msgid "Customer"
msgstr "Заказчик" msgstr "Заказчик"
@ -8303,7 +8333,7 @@ msgstr ""
#. module: account #. module: account
#: field:res.company,tax_calculation_rounding_method:0 #: field:res.company,tax_calculation_rounding_method:0
msgid "Tax Calculation Rounding Method" msgid "Tax Calculation Rounding Method"
msgstr "" msgstr "Метод округления при расчете налога"
#. module: account #. module: account
#: field:account.entries.report,move_line_state:0 #: field:account.entries.report,move_line_state:0
@ -8357,7 +8387,7 @@ msgid "Select a currency to apply on the invoice"
msgstr "Выбрать валюту применяемую в счете" msgstr "Выбрать валюту применяемую в счете"
#. module: account #. module: account
#: code:addons/account/account_invoice.py:898 #: code:addons/account/account_invoice.py:901
#, python-format #, python-format
msgid "No Invoice Lines !" msgid "No Invoice Lines !"
msgstr "Нет позиций в счете !" msgstr "Нет позиций в счете !"
@ -8433,7 +8463,7 @@ msgid "Associated Partner"
msgstr "Связанный контрагент" msgstr "Связанный контрагент"
#. module: account #. module: account
#: code:addons/account/account_invoice.py:1462 #: code:addons/account/account_invoice.py:1465
#, python-format #, python-format
msgid "You must first select a partner !" msgid "You must first select a partner !"
msgstr "Сначала вы должны выбрать партнера !" msgstr "Сначала вы должны выбрать партнера !"
@ -8998,7 +9028,7 @@ msgstr "Вы уверены?"
#. module: account #. module: account
#: view:account.journal:0 #: view:account.journal:0
msgid "Accounts Allowed (empty for no control)" msgid "Accounts Allowed (empty for no control)"
msgstr "Разрешенные счета (остваьте пустым для снятия проверок)" msgstr "Разрешенные счета (оставьте пустым для снятия проверок)"
#. module: account #. module: account
#: field:account.config.settings,sale_tax_rate:0 #: field:account.config.settings,sale_tax_rate:0
@ -9384,7 +9414,7 @@ msgid "Purchase Tax(%)"
msgstr "Налог на покупку(%)" msgstr "Налог на покупку(%)"
#. module: account #. module: account
#: code:addons/account/account_invoice.py:898 #: code:addons/account/account_invoice.py:901
#, python-format #, python-format
msgid "Please create some invoice lines." msgid "Please create some invoice lines."
msgstr "Пожалуйста, создайте позиции счета" msgstr "Пожалуйста, создайте позиции счета"
@ -9396,6 +9426,8 @@ msgid ""
"Please check that the field 'Internal Transfers Account' is set on the " "Please check that the field 'Internal Transfers Account' is set on the "
"payment method '%s'." "payment method '%s'."
msgstr "" msgstr ""
"Пожалуйста, проверьте , что поле \"Счет внутренних переводов\" установлено "
"для способа оплаты '%s'."
#. module: account #. module: account
#: field:account.vat.declaration,display_detail:0 #: field:account.vat.declaration,display_detail:0
@ -9448,7 +9480,7 @@ msgstr "Конец периода"
#: model:ir.actions.act_window,name:account.action_account_report #: model:ir.actions.act_window,name:account.action_account_report
#: model:ir.ui.menu,name:account.menu_account_reports #: model:ir.ui.menu,name:account.menu_account_reports
msgid "Financial Reports" msgid "Financial Reports"
msgstr "" msgstr "Финансовые отчеты"
#. module: account #. module: account
#: model:account.account.type,name:account.account_type_liability_view1 #: model:account.account.type,name:account.account_type_liability_view1
@ -9737,6 +9769,7 @@ msgid ""
"This field contains the information related to the numbering of the journal " "This field contains the information related to the numbering of the journal "
"entries of this journal." "entries of this journal."
msgstr "" msgstr ""
"Это поле содержит информацию, связанную с нумерацией проводок этого журнала."
#. module: account #. module: account
#: field:account.invoice,sent:0 #: field:account.invoice,sent:0
@ -9768,7 +9801,7 @@ msgstr ""
#. module: account #. module: account
#: model:ir.ui.menu,name:account.menu_finance_periodical_processing #: model:ir.ui.menu,name:account.menu_finance_periodical_processing
msgid "Periodic Processing" msgid "Periodic Processing"
msgstr "" msgstr "Периодическая обработка"
#. module: account #. module: account
#: view:account.invoice.report:0 #: view:account.invoice.report:0
@ -9940,7 +9973,7 @@ msgid "Unreconciled"
msgstr "Не сверенные" msgstr "Не сверенные"
#. module: account #. module: account
#: code:addons/account/account_invoice.py:919 #: code:addons/account/account_invoice.py:922
#, python-format #, python-format
msgid "Bad total !" msgid "Bad total !"
msgstr "Плохой итог !" msgstr "Плохой итог !"
@ -10046,7 +10079,7 @@ msgstr ""
#. module: account #. module: account
#: field:account.bank.statement.line,name:0 #: field:account.bank.statement.line,name:0
msgid "OBI" msgid "OBI"
msgstr "" msgstr "Назначение"
#. module: account #. module: account
#: help:res.partner,property_account_payable:0 #: help:res.partner,property_account_payable:0
@ -10196,7 +10229,7 @@ msgstr "Апрель"
#. module: account #. module: account
#: model:account.financial.report,name:account.account_financial_report_profitloss_toreport0 #: model:account.financial.report,name:account.account_financial_report_profitloss_toreport0
msgid "Profit (Loss) to report" msgid "Profit (Loss) to report"
msgstr "" msgstr "Прибыль (убыток) в отчет"
#. module: account #. module: account
#: code:addons/account/account_invoice.py:379 #: code:addons/account/account_invoice.py:379
@ -10280,7 +10313,7 @@ msgstr "Внутренний тип"
#. module: account #. module: account
#: field:account.subscription.generate,date:0 #: field:account.subscription.generate,date:0
msgid "Generate Entries Before" msgid "Generate Entries Before"
msgstr "" msgstr "Генерировать проводки до"
#. module: account #. module: account
#: model:ir.actions.act_window,name:account.action_subscription_form_running #: model:ir.actions.act_window,name:account.action_subscription_form_running
@ -10401,7 +10434,7 @@ msgstr "Всего"
#: code:addons/account/wizard/account_invoice_refund.py:109 #: code:addons/account/wizard/account_invoice_refund.py:109
#, python-format #, python-format
msgid "Cannot %s draft/proforma/cancel invoice." msgid "Cannot %s draft/proforma/cancel invoice."
msgstr "" msgstr "Нельзя %s черновик/проформу/закрытый счет."
#. module: account #. module: account
#: field:account.tax,account_analytic_paid_id:0 #: field:account.tax,account_analytic_paid_id:0
@ -10415,6 +10448,7 @@ msgstr "Открыть для банковской сверки"
#. module: account #. module: account
#: field:account.account,company_id:0 #: field:account.account,company_id:0
#: report:account.account.balance:0
#: field:account.aged.trial.balance,company_id:0 #: field:account.aged.trial.balance,company_id:0
#: field:account.analytic.journal,company_id:0 #: field:account.analytic.journal,company_id:0
#: field:account.balance.report,company_id:0 #: field:account.balance.report,company_id:0
@ -10430,7 +10464,9 @@ msgstr "Открыть для банковской сверки"
#: field:account.entries.report,company_id:0 #: field:account.entries.report,company_id:0
#: field:account.fiscal.position,company_id:0 #: field:account.fiscal.position,company_id:0
#: field:account.fiscalyear,company_id:0 #: field:account.fiscalyear,company_id:0
#: report:account.general.journal:0
#: field:account.general.journal,company_id:0 #: field:account.general.journal,company_id:0
#: report:account.general.ledger_landscape:0
#: field:account.installer,company_id:0 #: field:account.installer,company_id:0
#: field:account.invoice,company_id:0 #: field:account.invoice,company_id:0
#: field:account.invoice.line,company_id:0 #: field:account.invoice.line,company_id:0
@ -10439,6 +10475,7 @@ msgstr "Открыть для банковской сверки"
#: field:account.invoice.tax,company_id:0 #: field:account.invoice.tax,company_id:0
#: field:account.journal,company_id:0 #: field:account.journal,company_id:0
#: field:account.journal.period,company_id:0 #: field:account.journal.period,company_id:0
#: report:account.journal.period.print:0
#: field:account.model,company_id:0 #: field:account.model,company_id:0
#: field:account.move,company_id:0 #: field:account.move,company_id:0
#: field:account.move.line,company_id:0 #: field:account.move.line,company_id:0
@ -10603,7 +10640,7 @@ msgstr "Счета системы налогообложения"
#: view:account.invoice:0 #: view:account.invoice:0
#: selection:account.invoice,type:0 #: selection:account.invoice,type:0
#: selection:account.invoice.report,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 #: model:process.process,name:account.process_process_supplierinvoiceprocess0
#: selection:report.invoice.created,type:0 #: selection:report.invoice.created,type:0
#, python-format #, python-format
@ -10692,8 +10729,10 @@ msgid ""
msgstr "" msgstr ""
#. module: account #. module: account
#: report:account.account.balance:0
#: selection:account.balance.report,display_account:0 #: selection:account.balance.report,display_account:0
#: selection:account.common.account.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.report.general.ledger,display_account:0
msgid "With movements" msgid "With movements"
msgstr "С движением" msgstr "С движением"
@ -10789,7 +10828,7 @@ msgid "Entries Sorted by"
msgstr "" msgstr ""
#. module: account #. module: account
#: code:addons/account/account_invoice.py:1543 #: code:addons/account/account_invoice.py:1546
#, python-format #, python-format
msgid "" msgid ""
"The selected unit of measure is not compatible with the unit of measure of " "The selected unit of measure is not compatible with the unit of measure of "
@ -10870,7 +10909,7 @@ msgstr "Искать счет"
#: report:account.invoice:0 #: report:account.invoice:0
#: view:account.invoice:0 #: view:account.invoice:0
#: view:account.invoice.report:0 #: view:account.invoice.report:0
#: code:addons/account/account_invoice.py:1156 #: code:addons/account/account_invoice.py:1159
#, python-format #, python-format
msgid "Refund" msgid "Refund"
msgstr "Возвраты" msgstr "Возвраты"
@ -10942,7 +10981,7 @@ msgid "Manual Invoice Taxes"
msgstr "" msgstr ""
#. module: account #. module: account
#: code:addons/account/account_invoice.py:570 #: code:addons/account/account_invoice.py:573
#, python-format #, python-format
msgid "The payment term of supplier does not have a payment term line." msgid "The payment term of supplier does not have a payment term line."
msgstr "" msgstr ""
@ -11096,7 +11135,7 @@ msgstr ""
#. module: account #. module: account
#: selection:account.config.settings,tax_calculation_rounding_method:0 #: selection:account.config.settings,tax_calculation_rounding_method:0
msgid "Round per line" msgid "Round per line"
msgstr "" msgstr "Округление каждой позиции"
#. module: account #. module: account
#: help:account.move.line,amount_residual_currency:0 #: help:account.move.line,amount_residual_currency:0

File diff suppressed because it is too large Load Diff

View File

@ -189,44 +189,34 @@ class res_partner(osv.osv):
'debit': fields.function(_credit_debit_get, fnct_search=_debit_search, string='Total Payable', multi='dc', help="Total amount you have to pay to this supplier."), 'debit': fields.function(_credit_debit_get, fnct_search=_debit_search, string='Total Payable', multi='dc', help="Total amount you have to pay to this supplier."),
'debit_limit': fields.float('Payable Limit'), 'debit_limit': fields.float('Payable Limit'),
'property_account_payable': fields.property( 'property_account_payable': fields.property(
'account.account',
type='many2one', type='many2one',
relation='account.account', relation='account.account',
string="Account Payable", string="Account Payable",
view_load=True,
domain="[('type', '=', 'payable')]", domain="[('type', '=', 'payable')]",
help="This account will be used instead of the default one as the payable account for the current partner", help="This account will be used instead of the default one as the payable account for the current partner",
required=True), required=True),
'property_account_receivable': fields.property( 'property_account_receivable': fields.property(
'account.account',
type='many2one', type='many2one',
relation='account.account', relation='account.account',
string="Account Receivable", string="Account Receivable",
view_load=True,
domain="[('type', '=', 'receivable')]", domain="[('type', '=', 'receivable')]",
help="This account will be used instead of the default one as the receivable account for the current partner", help="This account will be used instead of the default one as the receivable account for the current partner",
required=True), required=True),
'property_account_position': fields.property( 'property_account_position': fields.property(
'account.fiscal.position',
type='many2one', type='many2one',
relation='account.fiscal.position', relation='account.fiscal.position',
string="Fiscal Position", string="Fiscal Position",
view_load=True,
help="The fiscal position will determine taxes and accounts used for the partner.", help="The fiscal position will determine taxes and accounts used for the partner.",
), ),
'property_payment_term': fields.property( 'property_payment_term': fields.property(
'account.payment.term',
type='many2one', type='many2one',
relation='account.payment.term', relation='account.payment.term',
string ='Customer Payment Term', string ='Customer Payment Term',
view_load=True,
help="This payment term will be used instead of the default one for sale orders and customer invoices"), help="This payment term will be used instead of the default one for sale orders and customer invoices"),
'property_supplier_payment_term': fields.property( 'property_supplier_payment_term': fields.property(
'account.payment.term',
type='many2one', type='many2one',
relation='account.payment.term', relation='account.payment.term',
string ='Supplier Payment Term', string ='Supplier Payment Term',
view_load=True,
help="This payment term will be used instead of the default one for purchase orders and supplier invoices"), help="This payment term will be used instead of the default one for purchase orders and supplier invoices"),
'ref_companies': fields.one2many('res.company', 'partner_id', 'ref_companies': fields.one2many('res.company', 'partner_id',
'Companies that refers to partner'), 'Companies that refers to partner'),

View File

@ -25,18 +25,14 @@ class product_category(osv.osv):
_inherit = "product.category" _inherit = "product.category"
_columns = { _columns = {
'property_account_income_categ': fields.property( 'property_account_income_categ': fields.property(
'account.account',
type='many2one', type='many2one',
relation='account.account', relation='account.account',
string="Income Account", string="Income Account",
view_load=True,
help="This account will be used for invoices to value sales."), help="This account will be used for invoices to value sales."),
'property_account_expense_categ': fields.property( 'property_account_expense_categ': fields.property(
'account.account',
type='many2one', type='many2one',
relation='account.account', relation='account.account',
string="Expense Account", string="Expense Account",
view_load=True,
help="This account will be used for invoices to value expenses."), help="This account will be used for invoices to value expenses."),
} }
@ -54,18 +50,14 @@ class product_template(osv.osv):
'product_supplier_taxes_rel', 'prod_id', 'tax_id', 'product_supplier_taxes_rel', 'prod_id', 'tax_id',
'Supplier Taxes', domain=[('parent_id', '=', False),('type_tax_use','in',['purchase','all'])]), 'Supplier Taxes', domain=[('parent_id', '=', False),('type_tax_use','in',['purchase','all'])]),
'property_account_income': fields.property( 'property_account_income': fields.property(
'account.account',
type='many2one', type='many2one',
relation='account.account', relation='account.account',
string="Income Account", string="Income Account",
view_load=True,
help="This account will be used for invoices instead of the default one to value sales for the current product."), help="This account will be used for invoices instead of the default one to value sales for the current product."),
'property_account_expense': fields.property( 'property_account_expense': fields.property(
'account.account',
type='many2one', type='many2one',
relation='account.account', relation='account.account',
string="Expense Account", string="Expense Account",
view_load=True,
help="This account will be used for invoices instead of the default one to value expenses for the current product."), help="This account will be used for invoices instead of the default one to value expenses for the current product."),
} }

View File

@ -366,12 +366,13 @@ class aged_trial_report(report_sxw.rml_parse, common_report_header):
return period or 0.0 return period or 0.0
def _get_partners(self,data): def _get_partners(self,data):
# TODO: deprecated, to remove in trunk
if data['form']['result_selection'] == 'customer': if data['form']['result_selection'] == 'customer':
return 'Receivable Accounts' return self._translate('Receivable Accounts')
elif data['form']['result_selection'] == 'supplier': elif data['form']['result_selection'] == 'supplier':
return 'Payable Accounts' return self._translate('Payable Accounts')
elif data['form']['result_selection'] == 'customer_supplier': elif data['form']['result_selection'] == 'customer_supplier':
return 'Receivable and Payable Accounts' return self._translate('Receivable and Payable Accounts')
return '' return ''
report_sxw.report_sxw('report.account.aged_trial_balance', 'res.partner', report_sxw.report_sxw('report.account.aged_trial_balance', 'res.partner',

View File

@ -147,7 +147,9 @@
<para style="terp_default_Centre_8">[[ data['form']['period_length'] ]]</para> <para style="terp_default_Centre_8">[[ data['form']['period_length'] ]]</para>
</td> </td>
<td> <td>
<para style="terp_default_Centre_8">[[ get_partners(data) ]]</para> <para style="terp_default_Centre_8">Receivable Accounts[[ data['form']['result_selection'] == 'customer' or removeParentNode('para') ]]</para>
<para style="terp_default_Centre_8">Payable Accounts[[ data['form']['result_selection'] == 'supplier' or removeParentNode('para') ]]</para>
<para style="terp_default_Centre_8">Receivable and Payable Accounts[[ data['form']['result_selection'] == 'customer_supplier' or removeParentNode('para') ]]</para>
</td> </td>
<td> <td>
<para style="terp_default_Centre_8">[[ data['form']['direction_selection'] ]]</para> <para style="terp_default_Centre_8">[[ data['form']['direction_selection'] ]]</para>
@ -166,7 +168,8 @@
<para style="terp_tblheader_Details">Partners</para> <para style="terp_tblheader_Details">Partners</para>
</td> </td>
<td> <td>
<para style="terp_tblheader_Details_Right">[[ data['form']['direction_selection'] == 'future' and 'Due' or 'Not due' ]]</para> <para style="terp_tblheader_Details_Right">Due[[ data['form']['direction_selection'] == 'future' and ' ' or removeParentNode('para') ]]</para>
<para style="terp_tblheader_Details_Right">Not due[[ data['form']['direction_selection'] != 'future' and ' ' or removeParentNode('para') ]]</para>
</td> </td>
<td> <td>
<para style="terp_tblheader_Details_Right">[[ data['form']['4']['name'] ]]</para> <para style="terp_tblheader_Details_Right">[[ data['form']['4']['name'] ]]</para>

View File

@ -211,8 +211,10 @@
</para> </para>
<blockTable colWidths="130.0,80.0,100.0,140.0,90.0" style="Table8"> <blockTable colWidths="130.0,80.0,100.0,140.0,90.0" style="Table8">
<tr> <tr>
<td><para style="terp_tblheader_General_Centre">[[ data['model']=='account.account' and 'Company'or removeParentNode('para') ]]</para> <td>
<para style="terp_tblheader_General_Centre"> [[ data['model']=='ir.ui.menu' and 'Chart of Accounts' or removeParentNode('para') ]]</para></td> <para style="terp_tblheader_General_Centre">Company[[ data['model']=='account.account' and ' ' or removeParentNode('para') ]]</para>
<para style="terp_tblheader_General_Centre">Chart of Accounts[[ data['model']=='ir.ui.menu' and ' ' or removeParentNode('para') ]]</para>
</td>
<td> <td>
<para style="terp_tblheader_General_Centre">Fiscal Year</para> <para style="terp_tblheader_General_Centre">Fiscal Year</para>
</td> </td>
@ -233,7 +235,11 @@
<td> <td>
<para style="terp_default_Centre_8">[[ get_fiscalyear(data) or '' ]]</para> <para style="terp_default_Centre_8">[[ get_fiscalyear(data) or '' ]]</para>
</td> </td>
<td><para style="terp_default_Centre_8">[[ (data['form']['display_account']=='all' and 'All') or (data['form']['display_account']=='movement' and 'With movements') or 'With balance is not equal to 0']]</para></td> <td>
<para style="terp_default_Centre_7">All[[ data['form']['display_account']=='all' and ' ' or removeParentNode('para') ]]</para>
<para style="terp_default_Centre_7">With movements[[ data['form']['display_account']=='movement' and ' ' or removeParentNode('para') ]]</para>
<para style="terp_default_Centre_7">With balance is not equal to 0[[ data['form']['display_account']=='not_zero' and ' ' or removeParentNode('para') ]]</para>
</td>
<td> <para style="terp_default_Centre_8">[[ data['form']['filter']=='filter_no' and get_filter(data) or removeParentNode('para') ]] </para> <td> <para style="terp_default_Centre_8">[[ data['form']['filter']=='filter_no' and get_filter(data) or removeParentNode('para') ]] </para>
<blockTable colWidths="60.0,60.0" style="Table5">[[ data['form']['filter']=='filter_date' or removeParentNode('blockTable') ]] <blockTable colWidths="60.0,60.0" style="Table5">[[ data['form']['filter']=='filter_date' or removeParentNode('blockTable') ]]
<tr> <tr>

View File

@ -220,8 +220,8 @@
</blockTable> </blockTable>
<blockTable colWidths="80.0,100,80.0,150.0,100.0" style="Table2"> <blockTable colWidths="80.0,100,80.0,150.0,100.0" style="Table2">
<tr> <tr>
<td><para style="terp_tblheader_General_Centre">[[ data['model']=='account.journal.period' and 'Company' or removeParentNode('para') ]]</para> <td><para style="terp_tblheader_General_Centre">Company[[ data['model']=='account.journal.period' and ' ' or removeParentNode('para') ]]</para>
<para style="terp_tblheader_General_Centre"> [[ data['model']=='ir.ui.menu' and 'Chart of Accounts' or removeParentNode('para') ]]</para></td> <para style="terp_tblheader_General_Centre">Chart of Accounts[[ data['model']=='ir.ui.menu' and ' ' or removeParentNode('para') ]]</para></td>
<td><para style="terp_tblheader_General_Centre">Fiscal Year</para></td> <td><para style="terp_tblheader_General_Centre">Fiscal Year</para></td>
<td><para style="terp_tblheader_General_Centre">Journals</para></td> <td><para style="terp_tblheader_General_Centre">Journals</para></td>
<td><para style="terp_tblheader_General_Centre">Filter By [[ data['form']['filter']!='filter_no' and get_filter(data) ]]</para></td> <td><para style="terp_tblheader_General_Centre">Filter By [[ data['form']['filter']!='filter_no' and get_filter(data) ]]</para></td>

View File

@ -360,9 +360,8 @@
<blockTable colWidths="110.0,110.0,110.0,110.0,128.0,93.0,110.0" style="Table1"> <blockTable colWidths="110.0,110.0,110.0,110.0,128.0,93.0,110.0" style="Table1">
<tr> <tr>
<td> <td>
<para style="terp_tblheader_General_Centre">[[ data['model']=='account.account' and 'Company' or removeParentNode('para') ]]</para> <para style="terp_tblheader_General_Centre">Company[[ data['model']=='account.account' and ' ' or removeParentNode('para') ]]</para>
<para style="terp_tblheader_General_Centre">[[ data['model']=='ir.ui.menu' and 'Chart of Accounts' or removeParentNode('para') ]]</para> <para style="terp_tblheader_General_Centre">Chart of Accounts[[ data['model']=='ir.ui.menu' and ' ' or removeParentNode('para') ]]</para></td>
</td>
<td> <td>
<para style="terp_tblheader_General_Centre">Fiscal Year</para> <para style="terp_tblheader_General_Centre">Fiscal Year</para>
</td> </td>
@ -395,7 +394,9 @@
<para style="terp_default_Centre_7">[[', '.join([ lt or '' for lt in get_journal(data) ]) ]]</para> <para style="terp_default_Centre_7">[[', '.join([ lt or '' for lt in get_journal(data) ]) ]]</para>
</td> </td>
<td> <td>
<para style="terp_default_Centre_7">[[ (data['form']['display_account']=='all' and 'All') or (data['form']['display_account']=='movement' and 'With movements') or 'With balance is not equal to 0']]</para> <para style="terp_default_Centre_7">All[[ data['form']['display_account']=='all' and ' ' or removeParentNode('para') ]]</para>
<para style="terp_default_Centre_7">With movements[[ data['form']['display_account']=='movement' and ' ' or removeParentNode('para') ]]</para>
<para style="terp_default_Centre_7">With balance is not equal to 0[[ data['form']['display_account']=='not_zero' and ' ' or removeParentNode('para') ]]</para>
</td> </td>
<td> <td>
<para style="terp_default_Centre_7">[[ data['form']['filter']=='filter_no' and get_filter(data) or removeParentNode('para') ]]</para> <para style="terp_default_Centre_7">[[ data['form']['filter']=='filter_no' and get_filter(data) or removeParentNode('para') ]]</para>

View File

@ -189,11 +189,12 @@ class journal_print(report_sxw.rml_parse, common_report_header):
return data['form']['amount_currency'] return data['form']['amount_currency']
def _get_sortby(self, data): def _get_sortby(self, data):
# TODO: deprecated, to remove in trunk
if self.sort_selection == 'date': if self.sort_selection == 'date':
return 'Date' return self._translate('Date')
elif self.sort_selection == 'ref': elif self.sort_selection == 'ref':
return 'Reference Number' return self._translate('Reference Number')
return 'Date' return self._translate('Date')
report_sxw.report_sxw('report.account.journal.period.print', 'account.journal.period', 'addons/account/report/account_journal.rml', parser=journal_print, header='external') report_sxw.report_sxw('report.account.journal.period.print', 'account.journal.period', 'addons/account/report/account_journal.rml', parser=journal_print, header='external')
report_sxw.report_sxw('report.account.journal.period.print.sale.purchase', 'account.journal.period', 'addons/account/report/account_journal_sale_purchase.rml', parser=journal_print, header='external') report_sxw.report_sxw('report.account.journal.period.print.sale.purchase', 'account.journal.period', 'addons/account/report/account_journal_sale_purchase.rml', parser=journal_print, header='external')

View File

@ -186,8 +186,8 @@
</para> </para>
<blockTable colWidths="85.0,80.0,80.0,120.0,70.0,100.0" style="Table2"> <blockTable colWidths="85.0,80.0,80.0,120.0,70.0,100.0" style="Table2">
<tr> <tr>
<td><para style="terp_tblheader_General_Centre"> [[ data['model']=='account.journal.period'and 'Company' or removeParentNode('para') ]]</para> <td><para style="terp_tblheader_General_Centre">Company[[ data['model']=='account.journal.period'and ' ' or removeParentNode('para') ]]</para>
<para style="terp_tblheader_General_Centre">[[ data['model']=='ir.ui.menu' and 'Chart of Accounts' or removeParentNode('para') ]]</para></td> <para style="terp_tblheader_General_Centre">Chart of Accounts[[ data['model']=='ir.ui.menu' and ' ' or removeParentNode('para') ]]</para></td>
<td><para style="terp_tblheader_General_Centre">Fiscal Year</para></td> <td><para style="terp_tblheader_General_Centre">Fiscal Year</para></td>
<td><para style="terp_tblheader_General_Centre">Journal</para></td> <td><para style="terp_tblheader_General_Centre">Journal</para></td>
<td><para style="terp_tblheader_General_Centre">Period</para></td> <td><para style="terp_tblheader_General_Centre">Period</para></td>
@ -199,8 +199,10 @@
<td><para style="terp_default_Centre_8">[[ get_fiscalyear(data) or '' ]]</para></td> <td><para style="terp_default_Centre_8">[[ get_fiscalyear(data) or '' ]]</para></td>
<td><para style="terp_default_Centre_8">[[ o.journal_id.name ]]</para></td> <td><para style="terp_default_Centre_8">[[ o.journal_id.name ]]</para></td>
<td><para style="terp_default_Centre_8">[[ o.period_id.name ]] </para></td> <td><para style="terp_default_Centre_8">[[ o.period_id.name ]] </para></td>
<td><para style="terp_default_Centre_8">[[ get_sortby(data) ]]</para></td> <td>
<td><para style="terp_default_Centre_8">[[ get_target_move(data) ]] </para></td> <para style="terp_default_Centre_8">Date[[ data['form'].get('sort_selection', 'date') == 'date' and ' ' or removeParentNode('para') ]]</para>
<para style="terp_default_Centre_8">Reference Number[[ data['form'].get('sort_selection', 'date') == 'ref' and ' ' or removeParentNode('para') ]]</para>
</td>
</tr> </tr>
</blockTable> </blockTable>
<para style="P9"> <para style="P9">

View File

@ -267,12 +267,13 @@ class third_party_ledger(report_sxw.rml_parse, common_report_header):
return result_tmp + result_init return result_tmp + result_init
def _get_partners(self): def _get_partners(self):
# TODO: deprecated, to remove in trunk
if self.result_selection == 'customer': if self.result_selection == 'customer':
return 'Receivable Accounts' return _('Receivable Accounts')
elif self.result_selection == 'supplier': elif self.result_selection == 'supplier':
return 'Payable Accounts' return _('Payable Accounts')
elif self.result_selection == 'customer_supplier': elif self.result_selection == 'customer_supplier':
return 'Receivable and Payable Accounts' return _('Receivable and Payable Accounts')
return '' return ''
def _sum_currency_amount_account(self, account, form): def _sum_currency_amount_account(self, account, form):

View File

@ -423,7 +423,9 @@
</para> </para>
</td> </td>
<td> <td>
<para style="terp_default_Centre_8">[[ get_partners() ]]</para> <para style="terp_default_Centre_8">Receivable Accounts[[ data['form'].get('result_selection', 'customer') == 'customer' or removeParentNode('para') ]]</para>
<para style="terp_default_Centre_8">Payable Accounts[[ data['form'].get('result_selection', 'customer') == 'supplier' or removeParentNode('para') ]]</para>
<para style="terp_default_Centre_8">Receivable and Payable Accounts[[ data['form'].get('result_selection', 'customer') == 'customer_supplier' or removeParentNode('para') ]]</para>
</td> </td>
<td> <td>
<para style="terp_default_Centre_8">[[ get_target_move(data) ]]</para> <para style="terp_default_Centre_8">[[ get_target_move(data) ]]</para>

View File

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 27 KiB

View File

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

View File

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

View File

Before

Width:  |  Height:  |  Size: 120 KiB

After

Width:  |  Height:  |  Size: 120 KiB

View File

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 34 KiB

View File

Before

Width:  |  Height:  |  Size: 74 KiB

After

Width:  |  Height:  |  Size: 74 KiB

View File

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 27 KiB

View File

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 37 KiB

View File

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 37 KiB

View File

Before

Width:  |  Height:  |  Size: 143 KiB

After

Width:  |  Height:  |  Size: 143 KiB

View File

Before

Width:  |  Height:  |  Size: 120 KiB

After

Width:  |  Height:  |  Size: 120 KiB

View File

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

View File

@ -84,7 +84,7 @@ openerp.account.quickadd = function (instance) {
}, },
search_by_journal_period: function() { search_by_journal_period: function() {
var self = this; var self = this;
var domain = []; var domain = ['|',['debit', '!=', 0], ['credit', '!=', 0]];
if (self.current_journal !== null) domain.push(["journal_id", "=", self.current_journal]); if (self.current_journal !== null) domain.push(["journal_id", "=", self.current_journal]);
if (self.current_period !== null) domain.push(["period_id", "=", self.current_period]); if (self.current_period !== null) domain.push(["period_id", "=", self.current_period]);
self.last_context["journal_id"] = self.current_journal === null ? false : self.current_journal; self.last_context["journal_id"] = self.current_journal === null ? false : self.current_journal;

View File

@ -175,7 +175,7 @@ class account_common_report(osv.osv_memory):
data['form'][field] = data['form'][field][0] data['form'][field] = data['form'][field][0]
used_context = self._build_contexts(cr, uid, ids, data, context=context) used_context = self._build_contexts(cr, uid, ids, data, context=context)
data['form']['periods'] = used_context.get('periods', False) and used_context['periods'] or [] data['form']['periods'] = used_context.get('periods', False) and used_context['periods'] or []
data['form']['used_context'] = used_context data['form']['used_context'] = dict(used_context, lang=context.get('lang', 'en_US'))
return self._print_report(cr, uid, ids, data, context=context) return self._print_report(cr, uid, ids, data, context=context)

View File

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@ -7,19 +7,19 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev_rc3\n" "Project-Id-Version: OpenERP Server 6.0dev_rc3\n"
"Report-Msgid-Bugs-To: support@openerp.com\n" "Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:04+0000\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 <chertykov@gmail.com>\n" "Last-Translator: Chertykov Denis <chertykov@gmail.com>\n"
"Language-Team: \n" "Language-Team: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-06-01 05:16+0000\n" "X-Launchpad-Export-Date: 2013-06-20 05:17+0000\n"
"X-Generator: Launchpad (build 16660)\n" "X-Generator: Launchpad (build 16673)\n"
#. module: account_analytic_analysis #. module: account_analytic_analysis
#: view:account.analytic.account:0 #: view:account.analytic.account:0
msgid "No order to invoice, create" msgid "No order to invoice, create"
msgstr "" msgstr "Нет заказа для счета, создать"
#. module: account_analytic_analysis #. module: account_analytic_analysis
#: view:account.analytic.account:0 #: view:account.analytic.account:0
@ -39,7 +39,7 @@ msgstr "Остаётся"
#. module: account_analytic_analysis #. module: account_analytic_analysis
#: view:account.analytic.account:0 #: view:account.analytic.account:0
msgid "Contracts in progress" msgid "Contracts in progress"
msgstr "" msgstr "Незавершенные контракты"
#. module: account_analytic_analysis #. module: account_analytic_analysis
#: help:account.analytic.account,last_worked_invoiced_date:0 #: help:account.analytic.account,last_worked_invoiced_date:0
@ -88,7 +88,7 @@ msgstr "Дата последнего счета расходов"
#. module: account_analytic_analysis #. module: account_analytic_analysis
#: help:account.analytic.account,fix_price_to_invoice:0 #: help:account.analytic.account,fix_price_to_invoice:0
msgid "Sum of quotations for this contract." msgid "Sum of quotations for this contract."
msgstr "" msgstr "Сумма предложений по этому контракту."
#. module: account_analytic_analysis #. module: account_analytic_analysis
#: help:account.analytic.account,ca_invoiced:0 #: help:account.analytic.account,ca_invoiced:0
@ -98,18 +98,18 @@ msgstr "Итого сумма к оплате заказчику для этог
#. module: account_analytic_analysis #. module: account_analytic_analysis
#: help:account.analytic.account,timesheet_ca_invoiced:0 #: help:account.analytic.account,timesheet_ca_invoiced:0
msgid "Sum of timesheet lines invoiced for this contract." msgid "Sum of timesheet lines invoiced for this contract."
msgstr "" msgstr "Сумма позиций табеля выставленная в счет за этот контракт ."
#. module: account_analytic_analysis #. 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 #, python-format
msgid "Sales Order Lines of %s" msgid "Sales Order Lines of %s"
msgstr "" msgstr "Позиции заказа продаж %s"
#. module: account_analytic_analysis #. module: account_analytic_analysis
#: help:account.analytic.account,revenue_per_hour:0 #: help:account.analytic.account,revenue_per_hour:0
msgid "Computed using the formula: Invoiced Amount / Total Time" msgid "Computed using the formula: Invoiced Amount / Total Time"
msgstr "" msgstr "Рассчитанный по формуле: Сумма по счетам / Итоговое время"
#. module: account_analytic_analysis #. module: account_analytic_analysis
#: field:account_analytic_analysis.summary.month,account_id:0 #: field:account_analytic_analysis.summary.month,account_id:0
@ -126,7 +126,7 @@ msgstr "Партнёр"
#. module: account_analytic_analysis #. module: account_analytic_analysis
#: view:account.analytic.account:0 #: view:account.analytic.account:0
msgid "Contracts that are not assigned to an account manager." msgid "Contracts that are not assigned to an account manager."
msgstr "" msgstr "Контракты, которые не назначены бухгалтеру."
#. module: account_analytic_analysis #. module: account_analytic_analysis
#: model:ir.actions.act_window,help:account_analytic_analysis.action_account_analytic_overdue #: 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 #: help:account.analytic.account,remaining_hours_to_invoice:0
msgid "Computed using the formula: Maximum Time - Total Invoiced Time" msgid "Computed using the formula: Maximum Time - Total Invoiced Time"
msgstr "" msgstr ""
"Рассчитанный по формуле: Максимальное время - Всё время выставленное в счетах"
#. module: account_analytic_analysis #. module: account_analytic_analysis
#: view:account.analytic.account:0 #: view:account.analytic.account:0
@ -170,12 +171,12 @@ msgstr "Ожидается"
#. module: account_analytic_analysis #. module: account_analytic_analysis
#: view:account.analytic.account:0 #: view:account.analytic.account:0
msgid "Contracts not assigned" msgid "Contracts not assigned"
msgstr "" msgstr "Контракты не назначены"
#. module: account_analytic_analysis #. module: account_analytic_analysis
#: help:account.analytic.account,theorical_margin:0 #: help:account.analytic.account,theorical_margin:0
msgid "Computed using the formula: Theoretical Revenue - Total Costs" msgid "Computed using the formula: Theoretical Revenue - Total Costs"
msgstr "" msgstr "Рассчитанный по формуле: теоретическая выручка - общие издержки"
#. module: account_analytic_analysis #. module: account_analytic_analysis
#: field:account.analytic.account,hours_qtt_invoiced:0 #: field:account.analytic.account,hours_qtt_invoiced:0
@ -219,17 +220,17 @@ msgstr ""
#. module: account_analytic_analysis #. module: account_analytic_analysis
#: view:account.analytic.account:0 #: view:account.analytic.account:0
msgid "Nothing to invoice, create" msgid "Nothing to invoice, create"
msgstr "" msgstr "Нечего выставить в счете, создать"
#. module: account_analytic_analysis #. module: account_analytic_analysis
#: model:res.groups,name:account_analytic_analysis.group_template_required #: model:res.groups,name:account_analytic_analysis.group_template_required
msgid "Mandatory use of templates in contracts" msgid "Mandatory use of templates in contracts"
msgstr "" msgstr "Обязательное использование шаблонов в контрактах"
#. module: account_analytic_analysis #. module: account_analytic_analysis
#: field:account.analytic.account,hours_quantity:0 #: field:account.analytic.account,hours_quantity:0
msgid "Total Worked Time" msgid "Total Worked Time"
msgstr "" msgstr "Всё отработанное время"
#. module: account_analytic_analysis #. module: account_analytic_analysis
#: field:account.analytic.account,real_margin:0 #: field:account.analytic.account,real_margin:0
@ -249,12 +250,12 @@ msgstr "Вычисляется по формуле: (Реальная маржа
#. module: account_analytic_analysis #. module: account_analytic_analysis
#: view:account.analytic.account:0 #: view:account.analytic.account:0
msgid "or view" msgid "or view"
msgstr "" msgstr "или вид"
#. module: account_analytic_analysis #. module: account_analytic_analysis
#: view:account.analytic.account:0 #: view:account.analytic.account:0
msgid "Customer Contracts" msgid "Customer Contracts"
msgstr "" msgstr "Контакты заказчика"
#. module: account_analytic_analysis #. module: account_analytic_analysis
#: view:account.analytic.account:0 #: 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.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 #: model:ir.ui.menu,name:account_analytic_analysis.menu_action_hr_tree_invoiced_all
msgid "Time & Materials to Invoice" msgid "Time & Materials to Invoice"
msgstr "" msgstr "Время и материалы в счет"
#. module: account_analytic_analysis #. module: account_analytic_analysis
#: view:account.analytic.account:0 #: view:account.analytic.account:0
@ -343,9 +344,10 @@ msgstr "К продлению"
#: view:account.analytic.account:0 #: view:account.analytic.account:0
msgid "" msgid ""
"A contract in OpenERP is an analytic account having a partner set on it." "A contract in OpenERP is an analytic account having a partner set on it."
msgstr "" msgstr "Контракт в OpenERP это аналитический счет с установленным партнером."
#. module: account_analytic_analysis #. module: account_analytic_analysis
#: view:account.analytic.account:0
#: model:ir.actions.act_window,name:account_analytic_analysis.action_sales_order #: model:ir.actions.act_window,name:account_analytic_analysis.action_sales_order
msgid "Sales Orders" msgid "Sales Orders"
msgstr "Заказы продаж" msgstr "Заказы продаж"
@ -412,7 +414,7 @@ msgstr ""
#. module: account_analytic_analysis #. module: account_analytic_analysis
#: field:account.analytic.account,revenue_per_hour:0 #: field:account.analytic.account,revenue_per_hour:0
msgid "Revenue per Time (real)" msgid "Revenue per Time (real)"
msgstr "" msgstr "Выручка за время (реальная)"
#. module: account_analytic_analysis #. module: account_analytic_analysis
#: model:ir.actions.act_window,help:account_analytic_analysis.action_account_analytic_overdue_all #: model:ir.actions.act_window,help:account_analytic_analysis.action_account_analytic_overdue_all
@ -578,7 +580,7 @@ msgstr ""
#. module: account_analytic_analysis #. module: account_analytic_analysis
#: field:account.analytic.account,est_total:0 #: field:account.analytic.account,est_total:0
msgid "Total Estimation" msgid "Total Estimation"
msgstr "" msgstr "Общая оценка"
#. module: account_analytic_analysis #. module: account_analytic_analysis
#: field:account.analytic.account,remaining_ca:0 #: field:account.analytic.account,remaining_ca:0

View File

@ -248,9 +248,12 @@
<field name="model">account.analytic.default</field> <field name="model">account.analytic.default</field>
<field name="inherit_id" ref="account_analytic_default.view_account_analytic_default_tree"/> <field name="inherit_id" ref="account_analytic_default.view_account_analytic_default_tree"/>
<field name="arch" type="xml"> <field name="arch" type="xml">
<field name="analytic_id" required="1" position="replace"> <xpath expr="//field[@name='analytic_id']" position="attributes">
<attribute name="invisible">1</attribute>
</xpath>
<xpath expr="//field[@name='analytic_id']" position="after">
<field name="analytics_id" required="1"/> <field name="analytics_id" required="1"/>
</field> </xpath>
</field> </field>
</record> </record>

View File

@ -43,7 +43,8 @@ account.""",
'depends': ['product', 'purchase'], 'depends': ['product', 'purchase'],
'category': 'Accounting & Finance', 'category': 'Accounting & Finance',
'demo': [], 'demo': [],
'data': ['product_view.xml',], 'data': ['product_view.xml'],
'test': ['test/anglo_saxon.yml', 'test/anglo_saxon_avg_fifo.yml'],
'auto_install': False, 'auto_install': False,
'installable': True, 'installable': True,
} }

View File

@ -117,21 +117,27 @@ class account_invoice_line(osv.osv):
for line in res: for line in res:
if a == line['account_id'] and i_line.product_id.id == line['product_id']: if a == line['account_id'] and i_line.product_id.id == line['product_id']:
uom = i_line.product_id.uos_id or i_line.product_id.uom_id uom = i_line.product_id.uos_id or i_line.product_id.uom_id
standard_price = self.pool.get('product.uom')._compute_price(cr, uid, uom.id, i_line.product_id.standard_price, i_line.uos_id.id) valuation_price_unit = self.pool.get('product.uom')._compute_price(cr, uid, uom.id, i_line.product_id.standard_price, i_line.uos_id.id)
if standard_price != i_line.price_unit and line['price_unit'] == i_line.price_unit and acc: if i_line.product_id.cost_method != 'standard' and i_line.purchase_line_id:
price_diff = i_line.price_unit - standard_price #for average/fifo/lifo costing method, fetch real cost price from incomming moves
line.update({'price':standard_price * line['quantity']}) stock_move_obj = self.pool.get('stock.move')
valuation_stock_move = stock_move_obj.search(cr, uid, [('purchase_line_id', '=', i_line.purchase_line_id.id)], limit=1, context=context)
if valuation_stock_move:
valuation_price_unit = stock_move_obj.browse(cr, uid, valuation_stock_move[0], context=context).price_unit
if valuation_price_unit != i_line.price_unit and line['price_unit'] == i_line.price_unit and acc:
price_diff = i_line.price_unit - valuation_price_unit
line.update({'price': valuation_price_unit * line['quantity']})
diff_res.append({ diff_res.append({
'type':'src', 'type': 'src',
'name': i_line.name[:64], 'name': i_line.name[:64],
'price_unit':price_diff, 'price_unit': price_diff,
'quantity':line['quantity'], 'quantity': line['quantity'],
'price': price_diff * line['quantity'], 'price': price_diff * line['quantity'],
'account_id':acc, 'account_id': acc,
'product_id':line['product_id'], 'product_id': line['product_id'],
'uos_id':line['uos_id'], 'uos_id': line['uos_id'],
'account_analytic_id':line['account_analytic_id'], 'account_analytic_id': line['account_analytic_id'],
'taxes':line.get('taxes',[]), 'taxes': line.get('taxes', []),
}) })
res += diff_res res += diff_res
return res return res

View File

@ -24,27 +24,21 @@ class product_category(osv.osv):
_inherit = "product.category" _inherit = "product.category"
_columns = { _columns = {
'property_account_creditor_price_difference_categ': fields.property( 'property_account_creditor_price_difference_categ': fields.property(
'account.account',
type='many2one', type='many2one',
relation='account.account', relation='account.account',
string="Price Difference Account", string="Price Difference Account",
view_load=True,
help="This account will be used to value price difference between purchase price and cost price."), help="This account will be used to value price difference between purchase price and cost price."),
#Redefine fields to change help text for anglo saxon methodology. #Redefine fields to change help text for anglo saxon methodology.
'property_account_income_categ': fields.property( 'property_account_income_categ': fields.property(
'account.account',
type='many2one', type='many2one',
relation='account.account', relation='account.account',
string="Income Account", string="Income Account",
view_load=True,
help="This account will be used to value outgoing stock using sale price."), help="This account will be used to value outgoing stock using sale price."),
'property_account_expense_categ': fields.property( 'property_account_expense_categ': fields.property(
'account.account',
type='many2one', type='many2one',
relation='account.account', relation='account.account',
string="Expense Account", string="Expense Account",
view_load=True,
help="This account will be used to value outgoing stock using cost price."), help="This account will be used to value outgoing stock using cost price."),
} }
@ -53,27 +47,21 @@ class product_template(osv.osv):
_inherit = "product.template" _inherit = "product.template"
_columns = { _columns = {
'property_account_creditor_price_difference': fields.property( 'property_account_creditor_price_difference': fields.property(
'account.account',
type='many2one', type='many2one',
relation='account.account', relation='account.account',
string="Price Difference Account", string="Price Difference Account",
view_load=True,
help="This account will be used to value price difference between purchase price and cost price."), help="This account will be used to value price difference between purchase price and cost price."),
#Redefine fields to change help text for anglo saxon methodology. #Redefine fields to change help text for anglo saxon methodology.
'property_account_income': fields.property( 'property_account_income': fields.property(
'account.account',
type='many2one', type='many2one',
relation='account.account', relation='account.account',
string="Income Account", string="Income Account",
view_load=True,
help="This account will be used to value outgoing stock using sale price."), help="This account will be used to value outgoing stock using sale price."),
'property_account_expense': fields.property( 'property_account_expense': fields.property(
'account.account',
type='many2one', type='many2one',
relation='account.account', relation='account.account',
string="Expense Account", string="Expense Account",
view_load=True,
help="This account will be used to value outgoing stock using cost price."), help="This account will be used to value outgoing stock using cost price."),
} }

View File

@ -26,16 +26,15 @@ class purchase_order(osv.osv):
_inherit = "purchase.order" _inherit = "purchase.order"
_description = "Purchase Order" _description = "Purchase Order"
def _prepare_inv_line(self, cr, uid, account_id, order_line, context=None): def _choose_account_from_po_line(self, cr, uid, order_line, context=None):
line = super(purchase_order, self)._prepare_inv_line(cr, uid, account_id, order_line, context=context) account_id = super(purchase_order, self)._choose_account_from_po_line(cr, uid, order_line, context=context)
if order_line.product_id and not order_line.product_id.type == 'service': if order_line.product_id and not order_line.product_id.type == 'service':
acc_id = order_line.product_id.property_stock_account_input and order_line.product_id.property_stock_account_input.id acc_id = order_line.product_id.property_stock_account_input and order_line.product_id.property_stock_account_input.id
if not acc_id: if not acc_id:
acc_id = order_line.product_id.categ_id.property_stock_account_input_categ and order_line.product_id.categ_id.property_stock_account_input_categ.id acc_id = order_line.product_id.categ_id.property_stock_account_input_categ and order_line.product_id.categ_id.property_stock_account_input_categ.id
if acc_id: if acc_id:
fpos = order_line.order_id.fiscal_position or False fpos = order_line.order_id.fiscal_position or False
new_account_id = self.pool.get('account.fiscal.position').map_account(cr, uid, fpos, acc_id) account_id = self.pool.get('account.fiscal.position').map_account(cr, uid, fpos, acc_id)
line.update({'account_id': new_account_id}) return account_id
return line
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -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_stock
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 credited 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 debited 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_stock
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

View File

@ -0,0 +1,304 @@
-
In order to test anglo_saxon Configure Different Accounts.
-
!record {model: account.account, id: account_anglo_stock_valuation_fifo}:
code: X3000f
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_fifo}:
code: X2800f
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_fifo}:
code: X2801f
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_fifo}:
code: X7095f
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_fifo}:
code: X5000f
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_fifo}:
code: X440001f
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_fifo}:
code: X400001f
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_fifo}:
code: X7000f
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_fifo}:
code: X8000f
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_fifo
property_account_receivable: account_anglo_receivable_fifo
-
I configure the account receivable of Customer.
-
!record {model: res.partner, id: base.res_partner_13}:
property_account_payable: account_anglo_payable_fifo
property_account_receivable: account_anglo_receivable_fifo
-
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_fifo
-
I create a product with required accounts, and cost method average (but same applies for fifo)
-
!record {model: product.product, id: product_fifo_anglo_saxon}:
name: 'FIFO product for anglo saxon tests'
list_price: 20.00
standard_price: 0
categ_id: product.product_category_4
valuation: 'real_time'
property_account_income: account_anglo_income_fifo
property_account_expense: account_anglo_cogs_fifo
property_account_creditor_price_difference: account_anglo_price_difference_fifo
property_stock_account_input: account_anglo_stock_input_fifo
property_stock_account_output: account_anglo_stock_output_fifo
cost_method: 'average'
-
I create a draft Purchase Order.
-
!record {model: purchase.order, id: purchase_order_001_fifo}:
partner_id: base.res_partner_3
location_id: stock.stock_location_stock
pricelist_id: 1
order_line:
- product_id: product_fifo_anglo_saxon
product_qty: 1
price_unit: 9
date_planned: '2013-08-31'
taxes_id: []
-
I confirm the purchase order.
-
!workflow {model: purchase.order, ref: purchase_order_001_fifo, 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_fifo")).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_fifo, 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_fifo, string : Stock valuation account is not debited successfully.}:
- debit == 9
-
I Validate Invoice of Purchase Order after having changed the price to 10.
-
!python {model: purchase.order}: |
invoice_ids = [x.id for x in self.browse(cr, uid, ref("purchase_order_001_fifo")).invoice_ids]
line_ids = self.pool.get('account.invoice.line').search(cr, uid, [('invoice_id', 'in', invoice_ids)])
self.pool.get('account.invoice.line').write(cr, uid, line_ids, {'price_unit': 10})
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_fifo, 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_fifo, 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_fifo, string : Payable(creditor) Account is not Credited successfully.}:
- credit == 10
-
I pay the invoice.
-
!python {model: purchase.order}: |
invoice_ids = self.browse(cr, uid, ref("purchase_order_001_fifo")).invoice_ids
order = self.browse(cr, uid, ref("purchase_order_001_fifo"))
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_fifo'), ref('account.period_8'), journal_ids[0], ref('account_anglo_cash_fifo'), 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_fifo, 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_fifo, string: Bank/Cash account is not credited successfully.}:
- credit == 10
-
I create an Outgoing Picking order
-
!record {model: stock.picking, id: stock_picking_out001_fifo}:
partner_id: base.res_partner_13
invoice_state: 2binvoiced
move_lines:
- company_id: base.main_company
location_id: stock.stock_location_stock
product_id: product_fifo_anglo_saxon
product_qty: 1.0
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_fifo")], {"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_fifo")], {"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_fifo')]})
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_fifo, 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_fifo, 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_fifo")], "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_fifo")], "active_id": ref("stock_picking_out001_fifo")})
-
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_fifo')).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_fifo')).name
account_invoice = self.pool.get('account.invoice').search(cr, uid, [('origin', '=', move_name)])
account_invoice_line = self.pool.get('account.invoice.line').search(cr, uid, [('invoice_id', 'in', account_invoice)])
self.pool.get('account.invoice.line').write(cr, uid, account_invoice_line, {'invoice_line_tax_id': [(6, 0, [])]})
self.pool.get('account.invoice').button_reset_taxes(cr, uid, account_invoice)
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_fifo, 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_fifo, 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_fifo, 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_fifo, 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_fifo')).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_fifo'), ref('account.period_8'),
journal_ids[0], ref('account_anglo_cash_fifo'),
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_fifo, 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_fifo, string: Bank/Cash account is not successfully credited.}:
- debit == 20

View File

Before

Width:  |  Height:  |  Size: 6.2 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB

View File

@ -8,19 +8,19 @@ msgstr ""
"Project-Id-Version: openobject-addons\n" "Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n" "POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2010-12-21 14:22+0000\n" "PO-Revision-Date: 2013-06-30 16:08+0000\n"
"Last-Translator: OpenERP Administrators <Unknown>\n" "Last-Translator: Hung Tran <vanda6688@yahoo.com>\n"
"Language-Team: Vietnamese <vi@li.org>\n" "Language-Team: Vietnamese <vi@li.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-16 05:42+0000\n" "X-Launchpad-Export-Date: 2013-07-01 05:14+0000\n"
"X-Generator: Launchpad (build 16532)\n" "X-Generator: Launchpad (build 16692)\n"
#. module: account_cancel #. module: account_cancel
#: view:account.invoice:0 #: view:account.invoice:0
msgid "Cancel" msgid "Cancel"
msgstr "" msgstr "Hủy bỏ"
#~ msgid "Account Cancel" #~ msgid "Account Cancel"
#~ msgstr "Hủy bỏ Tài khoản" #~ msgstr "Hủy bỏ Tài khoản"

View File

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 27 KiB

View File

Before

Width:  |  Height:  |  Size: 78 KiB

After

Width:  |  Height:  |  Size: 78 KiB

View File

Before

Width:  |  Height:  |  Size: 74 KiB

After

Width:  |  Height:  |  Size: 74 KiB

View File

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 27 KiB

View File

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 37 KiB

View File

Before

Width:  |  Height:  |  Size: 120 KiB

After

Width:  |  Height:  |  Size: 120 KiB

View File

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 21 KiB

View File

Before

Width:  |  Height:  |  Size: 9.1 KiB

After

Width:  |  Height:  |  Size: 9.1 KiB

View File

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

View File

@ -33,9 +33,9 @@ class account_analytic_account(osv.osv):
_description = 'Analytic Account' _description = 'Analytic Account'
_track = { _track = {
'state': { 'state': {
'analytic.mt_account_pending': lambda self, cr, uid, obj, ctx=None: obj['state'] == 'pending', 'analytic.mt_account_pending': lambda self, cr, uid, obj, ctx=None: obj.state == 'pending',
'analytic.mt_account_closed': lambda self, cr, uid, obj, ctx=None: obj['state'] == 'close', 'analytic.mt_account_closed': lambda self, cr, uid, obj, ctx=None: obj.state == 'close',
'analytic.mt_account_opened': lambda self, cr, uid, obj, ctx=None: obj['state'] == 'open', 'analytic.mt_account_opened': lambda self, cr, uid, obj, ctx=None: obj.state == 'open',
}, },
} }

View File

@ -7,7 +7,8 @@ from werkzeug.exceptions import BadRequest
import openerp import openerp
from openerp import SUPERUSER_ID from openerp import SUPERUSER_ID
import openerp.addons.web.http as oeweb import openerp.addons.web.http as http
from openerp.addons.web.http import request
from openerp.addons.web.controllers.main import db_monodb, set_cookie_and_redirect, login_and_redirect from openerp.addons.web.controllers.main import db_monodb, set_cookie_and_redirect, login_and_redirect
from openerp.modules.registry import RegistryManager from openerp.modules.registry import RegistryManager
@ -18,7 +19,7 @@ _logger = logging.getLogger(__name__)
#---------------------------------------------------------- #----------------------------------------------------------
def fragment_to_query_string(func): def fragment_to_query_string(func):
@functools.wraps(func) @functools.wraps(func)
def wrapper(self, req, **kw): def wrapper(self, **kw):
if not kw: if not kw:
return """<html><head><script> return """<html><head><script>
var l = window.location; var l = window.location;
@ -30,18 +31,17 @@ def fragment_to_query_string(func):
} }
window.location = r; window.location = r;
</script></head><body></body></html>""" </script></head><body></body></html>"""
return func(self, req, **kw) return func(self, **kw)
return wrapper return wrapper
#---------------------------------------------------------- #----------------------------------------------------------
# Controller # Controller
#---------------------------------------------------------- #----------------------------------------------------------
class OAuthController(oeweb.Controller): class OAuthController(http.Controller):
_cp_path = '/auth_oauth'
@oeweb.jsonrequest @http.route('/auth_oauth/list_providers', type='json', auth='none')
def list_providers(self, req, dbname): def list_providers(self, dbname):
try: try:
registry = RegistryManager.get(dbname) registry = RegistryManager.get(dbname)
with registry.cursor() as cr: with registry.cursor() as cr:
@ -51,9 +51,9 @@ class OAuthController(oeweb.Controller):
l = [] l = []
return l return l
@oeweb.httprequest @http.route('/auth_oauth/signin', type='http', auth='none')
@fragment_to_query_string @fragment_to_query_string
def signin(self, req, **kw): def signin(self, **kw):
state = simplejson.loads(kw['state']) state = simplejson.loads(kw['state'])
dbname = state['d'] dbname = state['d']
provider = state['p'] provider = state['p']
@ -71,7 +71,7 @@ class OAuthController(oeweb.Controller):
url = '/#action=%s' % action url = '/#action=%s' % action
elif menu: elif menu:
url = '/#menu_id=%s' % menu url = '/#menu_id=%s' % menu
return login_and_redirect(req, *credentials, redirect_url=url) return login_and_redirect(*credentials, redirect_url=url)
except AttributeError: except AttributeError:
# auth_signup is not installed # auth_signup is not installed
_logger.error("auth_signup not installed on database %s: oauth sign up cancelled." % (dbname,)) _logger.error("auth_signup not installed on database %s: oauth sign up cancelled." % (dbname,))
@ -88,14 +88,14 @@ class OAuthController(oeweb.Controller):
_logger.exception("OAuth2: %s" % str(e)) _logger.exception("OAuth2: %s" % str(e))
url = "/#action=login&oauth_error=2" url = "/#action=login&oauth_error=2"
return set_cookie_and_redirect(req, url) return set_cookie_and_redirect(url)
@oeweb.httprequest @http.route('/auth_oauth/oea', type='http', auth='none')
def oea(self, req, **kw): def oea(self, **kw):
"""login user via OpenERP Account provider""" """login user via OpenERP Account provider"""
dbname = kw.pop('db', None) dbname = kw.pop('db', None)
if not dbname: if not dbname:
dbname = db_monodb(req) dbname = db_monodb()
if not dbname: if not dbname:
return BadRequest() return BadRequest()
@ -105,7 +105,7 @@ class OAuthController(oeweb.Controller):
try: try:
model, provider_id = IMD.get_object_reference(cr, SUPERUSER_ID, 'auth_oauth', 'provider_openerp') model, provider_id = IMD.get_object_reference(cr, SUPERUSER_ID, 'auth_oauth', 'provider_openerp')
except ValueError: except ValueError:
return set_cookie_and_redirect(req, '/?db=%s' % dbname) return set_cookie_and_redirect('/?db=%s' % dbname)
assert model == 'auth.oauth.provider' assert model == 'auth.oauth.provider'
state = { state = {
@ -115,6 +115,6 @@ class OAuthController(oeweb.Controller):
} }
kw['state'] = simplejson.dumps(state) kw['state'] = simplejson.dumps(state)
return self.signin(req, **kw) return self.signin(**kw)
# vim:expandtab:tabstop=4:softtabstop=4:shiftwidth=4: # vim:expandtab:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -0,0 +1,23 @@
# Vietnamese 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 <EMAIL@ADDRESS>, 2013.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2013-06-27 06:49+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Vietnamese <vi@li.org>\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-28 05:42+0000\n"
"X-Generator: Launchpad (build 16681)\n"
#. module: auth_oauth_signup
#: model:ir.model,name:auth_oauth_signup.model_res_users
msgid "Users"
msgstr "Người dùng"

View File

@ -38,6 +38,8 @@ import openerp
from openerp import SUPERUSER_ID from openerp import SUPERUSER_ID
from openerp.modules.registry import RegistryManager from openerp.modules.registry import RegistryManager
from openerp.addons.web.controllers.main import login_and_redirect, set_cookie_and_redirect from openerp.addons.web.controllers.main import login_and_redirect, set_cookie_and_redirect
import openerp.addons.web.http as http
from openerp.addons.web.http import request
from .. import utils from .. import utils
@ -88,20 +90,19 @@ class GoogleAppsAwareConsumer(consumer.GenericConsumer):
return super(GoogleAppsAwareConsumer, self).complete(message, endpoint, return_to) return super(GoogleAppsAwareConsumer, self).complete(message, endpoint, return_to)
class OpenIDController(openerp.addons.web.http.Controller): class OpenIDController(http.Controller):
_cp_path = '/auth_openid/login'
_store = filestore.FileOpenIDStore(_storedir) _store = filestore.FileOpenIDStore(_storedir)
_REQUIRED_ATTRIBUTES = ['email'] _REQUIRED_ATTRIBUTES = ['email']
_OPTIONAL_ATTRIBUTES = 'nickname fullname postcode country language timezone'.split() _OPTIONAL_ATTRIBUTES = 'nickname fullname postcode country language timezone'.split()
def _add_extensions(self, request): def _add_extensions(self, oidrequest):
"""Add extensions to the request""" """Add extensions to the oidrequest"""
sreg_request = sreg.SRegRequest(required=self._REQUIRED_ATTRIBUTES, sreg_request = sreg.SRegRequest(required=self._REQUIRED_ATTRIBUTES,
optional=self._OPTIONAL_ATTRIBUTES) optional=self._OPTIONAL_ATTRIBUTES)
request.addExtension(sreg_request) oidrequest.addExtension(sreg_request)
ax_request = ax.FetchRequest() ax_request = ax.FetchRequest()
for alias in self._REQUIRED_ATTRIBUTES: for alias in self._REQUIRED_ATTRIBUTES:
@ -111,7 +112,7 @@ class OpenIDController(openerp.addons.web.http.Controller):
uri = utils.SREG2AX[alias] uri = utils.SREG2AX[alias]
ax_request.add(ax.AttrInfo(uri, required=False, alias=alias)) ax_request.add(ax.AttrInfo(uri, required=False, alias=alias))
request.addExtension(ax_request) oidrequest.addExtension(ax_request)
def _get_attributes_from_success_response(self, success_response): def _get_attributes_from_success_response(self, success_response):
attrs = {} attrs = {}
@ -133,58 +134,58 @@ class OpenIDController(openerp.addons.web.http.Controller):
attrs[attr] = value attrs[attr] = value
return attrs return attrs
def _get_realm(self, req): def _get_realm(self):
return req.httprequest.host_url return request.httprequest.host_url
@openerp.addons.web.http.httprequest @http.route('/auth_openid/login/verify_direct', type='http', auth='none')
def verify_direct(self, req, db, url): def verify_direct(self, db, url):
result = self._verify(req, db, url) result = self._verify(db, url)
if 'error' in result: if 'error' in result:
return werkzeug.exceptions.BadRequest(result['error']) return werkzeug.exceptions.BadRequest(result['error'])
if result['action'] == 'redirect': if result['action'] == 'redirect':
return werkzeug.utils.redirect(result['value']) return werkzeug.utils.redirect(result['value'])
return result['value'] return result['value']
@openerp.addons.web.http.jsonrequest @http.route('/auth_openid/login/verify', type='json', auth='none')
def verify(self, req, db, url): def verify(self, db, url):
return self._verify(req, db, url) return self._verify(db, url)
def _verify(self, req, db, url): def _verify(self, db, url):
redirect_to = werkzeug.urls.Href(req.httprequest.host_url + 'auth_openid/login/process')(session_id=req.session_id) redirect_to = werkzeug.urls.Href(request.httprequest.host_url + 'auth_openid/login/process')(session_id=request.session_id)
realm = self._get_realm(req) realm = self._get_realm()
session = dict(dbname=db, openid_url=url) # TODO add origin page ? session = dict(dbname=db, openid_url=url) # TODO add origin page ?
oidconsumer = consumer.Consumer(session, self._store) oidconsumer = consumer.Consumer(session, self._store)
try: try:
request = oidconsumer.begin(url) oidrequest = oidconsumer.begin(url)
except consumer.DiscoveryFailure, exc: except consumer.DiscoveryFailure, exc:
fetch_error_string = 'Error in discovery: %s' % (str(exc[0]),) fetch_error_string = 'Error in discovery: %s' % (str(exc[0]),)
return {'error': fetch_error_string, 'title': 'OpenID Error'} return {'error': fetch_error_string, 'title': 'OpenID Error'}
if request is None: if oidrequest is None:
return {'error': 'No OpenID services found', 'title': 'OpenID Error'} return {'error': 'No OpenID services found', 'title': 'OpenID Error'}
req.session.openid_session = session request.session.openid_session = session
self._add_extensions(request) self._add_extensions(oidrequest)
if request.shouldSendRedirect(): if oidrequest.shouldSendRedirect():
redirect_url = request.redirectURL(realm, redirect_to) redirect_url = oidrequest.redirectURL(realm, redirect_to)
return {'action': 'redirect', 'value': redirect_url, 'session_id': req.session_id} return {'action': 'redirect', 'value': redirect_url, 'session_id': request.session_id}
else: else:
form_html = request.htmlMarkup(realm, redirect_to) form_html = oidrequest.htmlMarkup(realm, redirect_to)
return {'action': 'post', 'value': form_html, 'session_id': req.session_id} return {'action': 'post', 'value': form_html, 'session_id': request.session_id}
@openerp.addons.web.http.httprequest @http.route('/auth_openid/login/process', type='http', auth='none')
def process(self, req, **kw): def process(self, **kw):
session = getattr(req.session, 'openid_session', None) session = getattr(request.session, 'openid_session', None)
if not session: if not session:
return set_cookie_and_redirect(req, '/') return set_cookie_and_redirect('/')
oidconsumer = consumer.Consumer(session, self._store, consumer_class=GoogleAppsAwareConsumer) oidconsumer = consumer.Consumer(session, self._store, consumer_class=GoogleAppsAwareConsumer)
query = req.httprequest.args query = request.httprequest.args
info = oidconsumer.complete(query, req.httprequest.base_url) info = oidconsumer.complete(query, request.httprequest.base_url)
display_identifier = info.getDisplayIdentifier() display_identifier = info.getDisplayIdentifier()
session['status'] = info.status session['status'] = info.status
@ -225,7 +226,7 @@ class OpenIDController(openerp.addons.web.http.Controller):
# TODO fill empty fields with the ones from sreg/ax # TODO fill empty fields with the ones from sreg/ax
cr.commit() cr.commit()
return login_and_redirect(req, dbname, login, key) return login_and_redirect(dbname, login, key)
session['message'] = 'This OpenID identifier is not associated to any active users' session['message'] = 'This OpenID identifier is not associated to any active users'
@ -241,11 +242,11 @@ class OpenIDController(openerp.addons.web.http.Controller):
# information in a log. # information in a log.
session['message'] = 'Verification failed.' session['message'] = 'Verification failed.'
return set_cookie_and_redirect(req, '/#action=login&loginerror=1') return set_cookie_and_redirect('/#action=login&loginerror=1')
@openerp.addons.web.http.jsonrequest @http.route('/auth_openid/login/status', type='json', auth='none')
def status(self, req): def status(self):
session = getattr(req.session, 'openid_session', {}) session = getattr(request.session, 'openid_session', {})
return {'status': session.get('status'), 'message': session.get('message')} return {'status': session.get('status'), 'message': session.get('message')}

View File

@ -0,0 +1,97 @@
# Vietnamese 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 <EMAIL@ADDRESS>, 2013.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2013-06-27 16:29+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Vietnamese <vi@li.org>\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-28 05:42+0000\n"
"X-Generator: Launchpad (build 16681)\n"
#. module: auth_openid
#. openerp-web
#: code:addons/auth_openid/static/src/xml/auth_openid.xml:24
#, python-format
msgid "Username"
msgstr "Tên đăng nhập"
#. module: auth_openid
#. openerp-web
#: code:addons/auth_openid/static/src/xml/auth_openid.xml:12
#: view:res.users:0
#, python-format
msgid "OpenID"
msgstr "OpenID"
#. module: auth_openid
#. openerp-web
#: code:addons/auth_openid/static/src/xml/auth_openid.xml:30
#: field:res.users,openid_url:0
#, python-format
msgid "OpenID URL"
msgstr "Đường dẫn OpenID"
#. module: auth_openid
#. openerp-web
#: code:addons/auth_openid/static/src/xml/auth_openid.xml:9
#: code:addons/auth_openid/static/src/xml/auth_openid.xml:10
#, python-format
msgid "Google"
msgstr "Google"
#. module: auth_openid
#. openerp-web
#: code:addons/auth_openid/static/src/xml/auth_openid.xml:11
#, python-format
msgid "Launchpad"
msgstr "Launchpad"
#. module: auth_openid
#: help:res.users,openid_email:0
msgid "Used for disambiguation in case of a shared OpenID URL"
msgstr ""
#. module: auth_openid
#. openerp-web
#: code:addons/auth_openid/static/src/xml/auth_openid.xml:18
#, python-format
msgid "Google Apps Domain"
msgstr ""
#. module: auth_openid
#: field:res.users,openid_email:0
msgid "OpenID Email"
msgstr "OpenID Email"
#. module: auth_openid
#: field:res.users,openid_key:0
msgid "OpenID Key"
msgstr ""
#. module: auth_openid
#. openerp-web
#: code:addons/auth_openid/static/src/xml/auth_openid.xml:8
#, python-format
msgid "Password"
msgstr "Mật khẩu"
#. module: auth_openid
#. openerp-web
#: code:addons/auth_openid/static/src/xml/auth_openid.xml:10
#, python-format
msgid "Google Apps"
msgstr ""
#. module: auth_openid
#: model:ir.model,name:auth_openid.model_res_users
msgid "Users"
msgstr "Người dùng"

View File

@ -23,14 +23,15 @@ import logging
import openerp import openerp
from openerp.modules.registry import RegistryManager from openerp.modules.registry import RegistryManager
from ..res_users import SignupError from ..res_users import SignupError
import openerp.addons.web.http as http
from openerp.addons.web.http import request
_logger = logging.getLogger(__name__) _logger = logging.getLogger(__name__)
class Controller(openerp.addons.web.http.Controller): class Controller(http.Controller):
_cp_path = '/auth_signup'
@openerp.addons.web.http.jsonrequest @http.route('/auth_signup/get_config', type='json', auth="none")
def get_config(self, req, dbname): def get_config(self, dbname):
""" retrieve the module config (which features are enabled) for the login page """ """ retrieve the module config (which features are enabled) for the login page """
registry = RegistryManager.get(dbname) registry = RegistryManager.get(dbname)
with registry.cursor() as cr: with registry.cursor() as cr:
@ -41,8 +42,8 @@ class Controller(openerp.addons.web.http.Controller):
} }
return config return config
@openerp.addons.web.http.jsonrequest @http.route('/auth_signup/retrieve', type='json', auth="user")
def retrieve(self, req, dbname, token): def retrieve(self, dbname, token):
""" retrieve the user info (name, login or email) corresponding to a signup token """ """ retrieve the user info (name, login or email) corresponding to a signup token """
registry = RegistryManager.get(dbname) registry = RegistryManager.get(dbname)
with registry.cursor() as cr: with registry.cursor() as cr:
@ -50,23 +51,23 @@ class Controller(openerp.addons.web.http.Controller):
user_info = res_partner.signup_retrieve_info(cr, openerp.SUPERUSER_ID, token) user_info = res_partner.signup_retrieve_info(cr, openerp.SUPERUSER_ID, token)
return user_info return user_info
@openerp.addons.web.http.jsonrequest @http.route('/auth_signup/signup', type='json', auth="user")
def signup(self, req, dbname, token, **values): def signup(self, dbname, token, **values):
""" sign up a user (new or existing)""" """ sign up a user (new or existing)"""
try: try:
self._signup_with_values(req, dbname, token, values) self._signup_with_values(dbname, token, values)
except SignupError, e: except SignupError, e:
return {'error': openerp.tools.exception_to_unicode(e)} return {'error': openerp.tools.exception_to_unicode(e)}
return {} return {}
def _signup_with_values(self, req, dbname, token, values): def _signup_with_values(self, dbname, token, values):
registry = RegistryManager.get(dbname) registry = RegistryManager.get(dbname)
with registry.cursor() as cr: with registry.cursor() as cr:
res_users = registry.get('res.users') res_users = registry.get('res.users')
res_users.signup(cr, openerp.SUPERUSER_ID, values, token) res_users.signup(cr, openerp.SUPERUSER_ID, values, token)
@openerp.addons.web.http.jsonrequest @http.route('/auth_signup/reset_password', type='json', auth="user")
def reset_password(self, req, dbname, login): def reset_password(self, dbname, login):
""" retrieve user, and perform reset password """ """ retrieve user, and perform reset password """
registry = RegistryManager.get(dbname) registry = RegistryManager.get(dbname)
with registry.cursor() as cr: with registry.cursor() as cr:

View File

@ -0,0 +1,288 @@
# Vietnamese 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 <EMAIL@ADDRESS>, 2013.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2013-06-27 06:52+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Vietnamese <vi@li.org>\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-28 05:42+0000\n"
"X-Generator: Launchpad (build 16681)\n"
#. module: auth_signup
#: field:res.partner,signup_type:0
msgid "Signup Token Type"
msgstr "Loại mã đăng ký"
#. module: auth_signup
#: field:base.config.settings,auth_signup_uninvited:0
msgid "Allow external users to sign up"
msgstr "Cho phép người dùng bên ngoài đăng ký."
#. module: auth_signup
#. openerp-web
#: code:addons/auth_signup/static/src/xml/auth_signup.xml:19
#, python-format
msgid "Confirm Password"
msgstr "Xác nhận mật khẩu"
#. module: auth_signup
#: help:base.config.settings,auth_signup_uninvited:0
msgid "If unchecked, only invited users may sign up."
msgstr "Nếu không chọn, chỉ những người được mời mới được đăng ký."
#. module: auth_signup
#: model:ir.model,name:auth_signup.model_base_config_settings
msgid "base.config.settings"
msgstr ""
#. module: auth_signup
#: code:addons/auth_signup/res_users.py:266
#, python-format
msgid "Cannot send email: user has no email address."
msgstr "Không thể gửi email: người dùng không có địa chỉ email"
#. module: auth_signup
#. openerp-web
#: code:addons/auth_signup/static/src/xml/auth_signup.xml:27
#: code:addons/auth_signup/static/src/xml/auth_signup.xml:31
#, python-format
msgid "Reset password"
msgstr "Đặt lại mật khẩu"
#. module: auth_signup
#: field:base.config.settings,auth_signup_template_user_id:0
msgid "Template user for new users created through signup"
msgstr "Mẫu người dùng sử dụng khi đăng ký"
#. module: auth_signup
#: model:email.template,subject:auth_signup.reset_password_email
msgid "Password reset"
msgstr "Quên mật khẩu"
#. module: auth_signup
#. openerp-web
#: code:addons/auth_signup/static/src/js/auth_signup.js:120
#, python-format
msgid "Please enter a password and confirm it."
msgstr "Vui lòng nhập mật khẩu và xác nhận nó"
#. module: auth_signup
#: view:res.users:0
msgid "Send an email to the user to (re)set their password."
msgstr ""
#. module: auth_signup
#. openerp-web
#: code:addons/auth_signup/static/src/xml/auth_signup.xml:26
#: code:addons/auth_signup/static/src/xml/auth_signup.xml:29
#, python-format
msgid "Sign Up"
msgstr ""
#. module: auth_signup
#: selection:res.users,state:0
msgid "New"
msgstr ""
#. module: auth_signup
#: code:addons/auth_signup/res_users.py:258
#, python-format
msgid "Mail sent to:"
msgstr ""
#. module: auth_signup
#: field:res.users,state:0
msgid "Status"
msgstr "Trạng thái"
#. module: auth_signup
#: model:email.template,body_html:auth_signup.reset_password_email
msgid ""
"\n"
"<p>A password reset was requested for the OpenERP account linked to this "
"email.</p>\n"
"\n"
"<p>You may change your password by following <a "
"href=\"${object.signup_url}\">this link</a>.</p>\n"
"\n"
"<p>Note: If you do not expect this, you can safely ignore this email.</p>"
msgstr ""
"\n"
"\\n\n"
"<p>Bạn có một yêu cầu reset mật khẩu từ tài khoản OpenERPA gắn với email "
"này.</p>\\n\n"
"\\n\n"
"<p>Bạn có thể thay đổi mật khẩu thông qua <a href=\\\"${object.signup_url}\\"
"\">đường dẫn này</a>.</p>\\n\n"
"\\n\n"
"<p>Lưu ý: Nếu đây không phải chủ ý của bạn. Bạn có thể bỏ qua email này.</p>"
#. module: auth_signup
#. openerp-web
#: code:addons/auth_signup/static/src/js/auth_signup.js:114
#, python-format
msgid "Please enter a name."
msgstr "Xin nhập tên."
#. module: auth_signup
#: model:ir.model,name:auth_signup.model_res_users
msgid "Users"
msgstr "Người dùng"
#. module: auth_signup
#: field:res.partner,signup_url:0
msgid "Signup URL"
msgstr ""
#. module: auth_signup
#. openerp-web
#: code:addons/auth_signup/static/src/js/auth_signup.js:117
#, python-format
msgid "Please enter a username."
msgstr ""
#. module: auth_signup
#: selection:res.users,state:0
msgid "Active"
msgstr ""
#. module: auth_signup
#: code:addons/auth_signup/res_users.py:270
#, python-format
msgid ""
"Cannot send email: no outgoing email server configured.\n"
"You can configure it under Settings/General Settings."
msgstr ""
#. module: auth_signup
#. openerp-web
#: code:addons/auth_signup/static/src/xml/auth_signup.xml:12
#, python-format
msgid "Username"
msgstr ""
#. module: auth_signup
#. openerp-web
#: code:addons/auth_signup/static/src/xml/auth_signup.xml:8
#, python-format
msgid "Name"
msgstr ""
#. module: auth_signup
#. openerp-web
#: code:addons/auth_signup/static/src/js/auth_signup.js:173
#, python-format
msgid "Please enter a username or email address."
msgstr ""
#. module: auth_signup
#: selection:res.users,state:0
msgid "Resetting Password"
msgstr ""
#. module: auth_signup
#. openerp-web
#: code:addons/auth_signup/static/src/xml/auth_signup.xml:13
#, python-format
msgid "Username (Email)"
msgstr ""
#. module: auth_signup
#: field:res.partner,signup_expiration:0
msgid "Signup Expiration"
msgstr ""
#. module: auth_signup
#: help:base.config.settings,auth_signup_reset_password:0
msgid "This allows users to trigger a password reset from the Login page."
msgstr ""
#. module: auth_signup
#. openerp-web
#: code:addons/auth_signup/static/src/xml/auth_signup.xml:25
#, python-format
msgid "Log in"
msgstr ""
#. module: auth_signup
#: field:res.partner,signup_valid:0
msgid "Signup Token is Valid"
msgstr ""
#. module: auth_signup
#. openerp-web
#: code:addons/auth_signup/static/src/js/auth_signup.js:111
#: code:addons/auth_signup/static/src/js/auth_signup.js:114
#: code:addons/auth_signup/static/src/js/auth_signup.js:117
#: code:addons/auth_signup/static/src/js/auth_signup.js:120
#: code:addons/auth_signup/static/src/js/auth_signup.js:123
#: code:addons/auth_signup/static/src/js/auth_signup.js:170
#: code:addons/auth_signup/static/src/js/auth_signup.js:173
#, python-format
msgid "Login"
msgstr ""
#. module: auth_signup
#. openerp-web
#: code:addons/auth_signup/static/src/js/auth_signup.js:97
#, python-format
msgid "Invalid signup token"
msgstr ""
#. module: auth_signup
#. openerp-web
#: code:addons/auth_signup/static/src/js/auth_signup.js:123
#, python-format
msgid "Passwords do not match; please retype them."
msgstr ""
#. module: auth_signup
#. openerp-web
#: code:addons/auth_signup/static/src/js/auth_signup.js:111
#: code:addons/auth_signup/static/src/js/auth_signup.js:170
#, python-format
msgid "No database selected !"
msgstr ""
#. module: auth_signup
#: view:res.users:0
msgid "Reset Password"
msgstr ""
#. module: auth_signup
#: field:base.config.settings,auth_signup_reset_password:0
msgid "Enable password reset from Login page"
msgstr ""
#. module: auth_signup
#. openerp-web
#: code:addons/auth_signup/static/src/xml/auth_signup.xml:30
#, python-format
msgid "Back to Login"
msgstr ""
#. module: auth_signup
#. openerp-web
#: code:addons/auth_signup/static/src/xml/auth_signup.xml:22
#, python-format
msgid "Sign up"
msgstr ""
#. module: auth_signup
#: model:ir.model,name:auth_signup.model_res_partner
msgid "Partner"
msgstr ""
#. module: auth_signup
#: field:res.partner,signup_token:0
msgid "Signup Token"
msgstr ""

View File

@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n" "Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n" "POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2013-04-16 04:33+0000\n" "PO-Revision-Date: 2013-07-02 08:11+0000\n"
"Last-Translator: Key <key.diagram@gmail.com>\n" "Last-Translator: DWXXX <Unknown>\n"
"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n" "Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-17 05:15+0000\n" "X-Launchpad-Export-Date: 2013-07-03 05:14+0000\n"
"X-Generator: Launchpad (build 16567)\n" "X-Generator: Launchpad (build 16692)\n"
#. module: auth_signup #. module: auth_signup
#: field:res.partner,signup_type:0 #: field:res.partner,signup_type:0
@ -29,7 +29,7 @@ msgstr "允许外部用户登录"
#. module: auth_signup #. module: auth_signup
#. openerp-web #. openerp-web
#: code:addons/auth_signup/static/src/xml/auth_signup.xml:16 #: code:addons/auth_signup/static/src/xml/auth_signup.xml:19
#, python-format #, python-format
msgid "Confirm Password" msgid "Confirm Password"
msgstr "确认密码" msgstr "确认密码"
@ -37,7 +37,7 @@ msgstr "确认密码"
#. module: auth_signup #. module: auth_signup
#: help:base.config.settings,auth_signup_uninvited:0 #: help:base.config.settings,auth_signup_uninvited:0
msgid "If unchecked, only invited users may sign up." msgid "If unchecked, only invited users may sign up."
msgstr "" msgstr "如果不勾选,只有被邀请用户才能注册。"
#. module: auth_signup #. module: auth_signup
#: model:ir.model,name:auth_signup.model_base_config_settings #: model:ir.model,name:auth_signup.model_base_config_settings
@ -45,15 +45,15 @@ msgid "base.config.settings"
msgstr "base.config.settings" msgstr "base.config.settings"
#. module: auth_signup #. module: auth_signup
#: code:addons/auth_signup/res_users.py:265 #: code:addons/auth_signup/res_users.py:266
#, python-format #, python-format
msgid "Cannot send email: user has no email address." msgid "Cannot send email: user has no email address."
msgstr "" msgstr "无法发送邮件:用户邮件地址为空。"
#. module: auth_signup #. module: auth_signup
#. openerp-web #. openerp-web
#: code:addons/auth_signup/static/src/xml/auth_signup.xml:24 #: code:addons/auth_signup/static/src/xml/auth_signup.xml:27
#: code:addons/auth_signup/static/src/xml/auth_signup.xml:28 #: code:addons/auth_signup/static/src/xml/auth_signup.xml:31
#, python-format #, python-format
msgid "Reset password" msgid "Reset password"
msgstr "重设密码" msgstr "重设密码"
@ -70,7 +70,7 @@ msgstr "重置密码"
#. module: auth_signup #. module: auth_signup
#. openerp-web #. openerp-web
#: code:addons/auth_signup/static/src/js/auth_signup.js:117 #: code:addons/auth_signup/static/src/js/auth_signup.js:120
#, python-format #, python-format
msgid "Please enter a password and confirm it." msgid "Please enter a password and confirm it."
msgstr "请输入密码并确认。" msgstr "请输入密码并确认。"
@ -78,12 +78,12 @@ msgstr "请输入密码并确认。"
#. module: auth_signup #. module: auth_signup
#: view:res.users:0 #: view:res.users:0
msgid "Send an email to the user to (re)set their password." msgid "Send an email to the user to (re)set their password."
msgstr "" msgstr "向用户发送重置密码邮件。"
#. module: auth_signup #. module: auth_signup
#. openerp-web #. openerp-web
#: code:addons/auth_signup/static/src/xml/auth_signup.xml:23
#: code:addons/auth_signup/static/src/xml/auth_signup.xml:26 #: code:addons/auth_signup/static/src/xml/auth_signup.xml:26
#: code:addons/auth_signup/static/src/xml/auth_signup.xml:29
#, python-format #, python-format
msgid "Sign Up" msgid "Sign Up"
msgstr "注册" msgstr "注册"
@ -119,10 +119,10 @@ msgstr ""
#. module: auth_signup #. module: auth_signup
#. openerp-web #. openerp-web
#: code:addons/auth_signup/static/src/js/auth_signup.js:111 #: code:addons/auth_signup/static/src/js/auth_signup.js:114
#, python-format #, python-format
msgid "Please enter a name." msgid "Please enter a name."
msgstr "" msgstr "请输入名字"
#. module: auth_signup #. module: auth_signup
#: model:ir.model,name:auth_signup.model_res_users #: model:ir.model,name:auth_signup.model_res_users
@ -136,10 +136,10 @@ msgstr "注册 URL"
#. module: auth_signup #. module: auth_signup
#. openerp-web #. openerp-web
#: code:addons/auth_signup/static/src/js/auth_signup.js:114 #: code:addons/auth_signup/static/src/js/auth_signup.js:117
#, python-format #, python-format
msgid "Please enter a username." msgid "Please enter a username."
msgstr "" msgstr "请输入您的用户名"
#. module: auth_signup #. module: auth_signup
#: selection:res.users,state:0 #: selection:res.users,state:0
@ -147,7 +147,7 @@ msgid "Active"
msgstr "启用" msgstr "启用"
#. module: auth_signup #. module: auth_signup
#: code:addons/auth_signup/res_users.py:269 #: code:addons/auth_signup/res_users.py:270
#, python-format #, python-format
msgid "" msgid ""
"Cannot send email: no outgoing email server configured.\n" "Cannot send email: no outgoing email server configured.\n"
@ -170,10 +170,10 @@ msgstr "姓名"
#. module: auth_signup #. module: auth_signup
#. openerp-web #. openerp-web
#: code:addons/auth_signup/static/src/js/auth_signup.js:170 #: code:addons/auth_signup/static/src/js/auth_signup.js:173
#, python-format #, python-format
msgid "Please enter a username or email address." msgid "Please enter a username or email address."
msgstr "" msgstr "请输入用户名和邮件地址"
#. module: auth_signup #. module: auth_signup
#: selection:res.users,state:0 #: selection:res.users,state:0
@ -199,7 +199,7 @@ msgstr ""
#. module: auth_signup #. module: auth_signup
#. openerp-web #. openerp-web
#: code:addons/auth_signup/static/src/xml/auth_signup.xml:22 #: code:addons/auth_signup/static/src/xml/auth_signup.xml:25
#, python-format #, python-format
msgid "Log in" msgid "Log in"
msgstr "登录" msgstr "登录"
@ -211,35 +211,35 @@ msgstr "注册令牌( Token )是有效的"
#. module: auth_signup #. module: auth_signup
#. openerp-web #. openerp-web
#: code:addons/auth_signup/static/src/js/auth_signup.js:108
#: code:addons/auth_signup/static/src/js/auth_signup.js:111 #: code:addons/auth_signup/static/src/js/auth_signup.js:111
#: code:addons/auth_signup/static/src/js/auth_signup.js:114 #: code:addons/auth_signup/static/src/js/auth_signup.js:114
#: code:addons/auth_signup/static/src/js/auth_signup.js:117 #: code:addons/auth_signup/static/src/js/auth_signup.js:117
#: code:addons/auth_signup/static/src/js/auth_signup.js:120 #: code:addons/auth_signup/static/src/js/auth_signup.js:120
#: code:addons/auth_signup/static/src/js/auth_signup.js:167 #: code:addons/auth_signup/static/src/js/auth_signup.js:123
#: code:addons/auth_signup/static/src/js/auth_signup.js:170 #: code:addons/auth_signup/static/src/js/auth_signup.js:170
#: code:addons/auth_signup/static/src/js/auth_signup.js:173
#, python-format #, python-format
msgid "Login" msgid "Login"
msgstr "" msgstr ""
#. module: auth_signup #. module: auth_signup
#. openerp-web #. openerp-web
#: code:addons/auth_signup/static/src/js/auth_signup.js:94 #: code:addons/auth_signup/static/src/js/auth_signup.js:97
#, python-format #, python-format
msgid "Invalid signup token" msgid "Invalid signup token"
msgstr "" msgstr ""
#. module: auth_signup #. module: auth_signup
#. openerp-web #. openerp-web
#: code:addons/auth_signup/static/src/js/auth_signup.js:120 #: code:addons/auth_signup/static/src/js/auth_signup.js:123
#, python-format #, python-format
msgid "Passwords do not match; please retype them." msgid "Passwords do not match; please retype them."
msgstr "" msgstr ""
#. module: auth_signup #. module: auth_signup
#. openerp-web #. openerp-web
#: code:addons/auth_signup/static/src/js/auth_signup.js:108 #: code:addons/auth_signup/static/src/js/auth_signup.js:111
#: code:addons/auth_signup/static/src/js/auth_signup.js:167 #: code:addons/auth_signup/static/src/js/auth_signup.js:170
#, python-format #, python-format
msgid "No database selected !" msgid "No database selected !"
msgstr "" msgstr ""
@ -256,7 +256,7 @@ msgstr ""
#. module: auth_signup #. module: auth_signup
#. openerp-web #. openerp-web
#: code:addons/auth_signup/static/src/xml/auth_signup.xml:27 #: code:addons/auth_signup/static/src/xml/auth_signup.xml:30
#, python-format #, python-format
msgid "Back to Login" msgid "Back to Login"
msgstr "返回登录页面" msgstr "返回登录页面"
@ -266,12 +266,12 @@ msgstr "返回登录页面"
#: code:addons/auth_signup/static/src/xml/auth_signup.xml:22 #: code:addons/auth_signup/static/src/xml/auth_signup.xml:22
#, python-format #, python-format
msgid "Sign up" msgid "Sign up"
msgstr "" msgstr "注册"
#. module: auth_signup #. module: auth_signup
#: model:ir.model,name:auth_signup.model_res_partner #: model:ir.model,name:auth_signup.model_res_partner
msgid "Partner" msgid "Partner"
msgstr "业务伙伴" msgstr "合作伙伴"
#. module: auth_signup #. module: auth_signup
#: field:res.partner,signup_token:0 #: field:res.partner,signup_token:0

View File

@ -1510,7 +1510,7 @@ rule or repeating pattern of time to exclude from the recurring rule."),
continue continue
if r['class']=='private': if r['class']=='private':
for f in r.keys(): for f in r.keys():
if f not in ('id','date','date_deadline','duration','user_id','state'): if f not in ('id','date','date_deadline','duration','user_id','state','interval','count'):
if isinstance(r[f], list): if isinstance(r[f], list):
r[f] = [] r[f] = []
else: else:

View File

@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n" "Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n" "POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2012-11-28 16:50+0000\n" "PO-Revision-Date: 2013-06-29 05:34+0000\n"
"Last-Translator: Joshua Jan(SHINEIT) <popkar77@gmail.com>\n" "Last-Translator: David.Xu <xzxyxu@gmail.com>\n"
"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n" "Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-16 05:45+0000\n" "X-Launchpad-Export-Date: 2013-06-30 05:56+0000\n"
"X-Generator: Launchpad (build 16532)\n" "X-Generator: Launchpad (build 16692)\n"
#. module: base_calendar #. module: base_calendar
#: selection:calendar.alarm,trigger_related:0 #: selection:calendar.alarm,trigger_related:0
@ -42,7 +42,7 @@ msgstr "这属性定义循环日程的日期/时间异常列表。"
#: selection:calendar.todo,rrule_type:0 #: selection:calendar.todo,rrule_type:0
#: selection:crm.meeting,rrule_type:0 #: selection:crm.meeting,rrule_type:0
msgid "Week(s)" msgid "Week(s)"
msgstr "" msgstr ""
#. module: base_calendar #. module: base_calendar
#: field:calendar.event,we:0 #: field:calendar.event,we:0
@ -248,7 +248,7 @@ msgid "To"
msgstr "到" msgstr "到"
#. module: base_calendar #. module: base_calendar
#: code:addons/base_calendar/base_calendar.py:1260 #: code:addons/base_calendar/base_calendar.py:1262
#, python-format #, python-format
msgid "Error!" msgid "Error!"
msgstr "错误!" msgstr "错误!"
@ -300,7 +300,7 @@ msgstr "与会者的参与状况"
#. module: base_calendar #. module: base_calendar
#: view:crm.meeting:0 #: view:crm.meeting:0
msgid "Mail To" msgid "Mail To"
msgstr "" msgstr "收信人"
#. module: base_calendar #. module: base_calendar
#: field:crm.meeting,name:0 #: field:crm.meeting,name:0
@ -361,9 +361,9 @@ msgstr "保存复杂的摘要(消息数量,……等)。为了插入到看板视
#. module: base_calendar #. module: base_calendar
#: code:addons/base_calendar/base_calendar.py:399 #: code:addons/base_calendar/base_calendar.py:399
#: code:addons/base_calendar/base_calendar.py:441 #: code:addons/base_calendar/base_calendar.py:441
#: code:addons/base_calendar/base_calendar.py:1013
#: code:addons/base_calendar/base_calendar.py:1015 #: code:addons/base_calendar/base_calendar.py:1015
#: code:addons/base_calendar/base_calendar.py:1460 #: code:addons/base_calendar/base_calendar.py:1017
#: code:addons/base_calendar/base_calendar.py:1462
#, python-format #, python-format
msgid "Warning!" msgid "Warning!"
msgstr "警告!" msgstr "警告!"
@ -478,7 +478,7 @@ msgstr "日期"
#. module: base_calendar #. module: base_calendar
#: field:crm.meeting,message_follower_ids:0 #: field:crm.meeting,message_follower_ids:0
msgid "Followers" msgid "Followers"
msgstr "" msgstr "关注者"
#. module: base_calendar #. module: base_calendar
#: field:calendar.event,location:0 #: field:calendar.event,location:0
@ -522,7 +522,7 @@ msgid "Event alarm information"
msgstr "事件提醒信息" msgstr "事件提醒信息"
#. module: base_calendar #. module: base_calendar
#: code:addons/base_calendar/base_calendar.py:1015 #: code:addons/base_calendar/base_calendar.py:1017
#, python-format #, python-format
msgid "Count cannot be negative or 0." msgid "Count cannot be negative or 0."
msgstr "" msgstr ""
@ -530,21 +530,21 @@ msgstr ""
#. module: base_calendar #. module: base_calendar
#: field:crm.meeting,create_date:0 #: field:crm.meeting,create_date:0
msgid "Creation Date" msgid "Creation Date"
msgstr "" msgstr "创建日期"
#. module: base_calendar #. module: base_calendar
#: view:crm.meeting:0 #: view:crm.meeting:0
#: model:ir.model,name:base_calendar.model_crm_meeting #: model:ir.model,name:base_calendar.model_crm_meeting
#: model:res.request.link,name:base_calendar.request_link_meeting #: model:res.request.link,name:base_calendar.request_link_meeting
msgid "Meeting" msgid "Meeting"
msgstr "" msgstr "会议"
#. module: base_calendar #. module: base_calendar
#: selection:calendar.event,rrule_type:0 #: selection:calendar.event,rrule_type:0
#: selection:calendar.todo,rrule_type:0 #: selection:calendar.todo,rrule_type:0
#: selection:crm.meeting,rrule_type:0 #: selection:crm.meeting,rrule_type:0
msgid "Month(s)" msgid "Month(s)"
msgstr "" msgstr ""
#. module: base_calendar #. module: base_calendar
#: view:calendar.event:0 #: view:calendar.event:0
@ -566,7 +566,7 @@ msgstr "Caldav 服务的URL"
#. module: base_calendar #. module: base_calendar
#: model:ir.model,name:base_calendar.model_mail_wizard_invite #: model:ir.model,name:base_calendar.model_mail_wizard_invite
msgid "Invite wizard" msgid "Invite wizard"
msgstr "" msgstr "邀请向导"
#. module: base_calendar #. module: base_calendar
#: selection:calendar.event,month_list:0 #: selection:calendar.event,month_list:0
@ -590,7 +590,7 @@ msgstr "周四"
#. module: base_calendar #. module: base_calendar
#: view:crm.meeting:0 #: view:crm.meeting:0
msgid "Meeting Details" msgid "Meeting Details"
msgstr "" msgstr "会议详情"
#. module: base_calendar #. module: base_calendar
#: field:calendar.attendee,child_ids:0 #: field:calendar.attendee,child_ids:0
@ -601,21 +601,21 @@ msgstr "代表人"
#: code:addons/base_calendar/crm_meeting.py:102 #: code:addons/base_calendar/crm_meeting.py:102
#, python-format #, python-format
msgid "The following contacts have no email address :" msgid "The following contacts have no email address :"
msgstr "" msgstr "下列联系人没有电子邮件地址:"
#. module: base_calendar #. module: base_calendar
#: selection:calendar.event,rrule_type:0 #: selection:calendar.event,rrule_type:0
#: selection:calendar.todo,rrule_type:0 #: selection:calendar.todo,rrule_type:0
#: selection:crm.meeting,rrule_type:0 #: selection:crm.meeting,rrule_type:0
msgid "Year(s)" msgid "Year(s)"
msgstr "" msgstr ""
#. module: base_calendar #. module: base_calendar
#: view:crm.meeting.type:0 #: view:crm.meeting.type:0
#: model:ir.actions.act_window,name:base_calendar.action_crm_meeting_type #: model:ir.actions.act_window,name:base_calendar.action_crm_meeting_type
#: model:ir.ui.menu,name:base_calendar.menu_crm_meeting_type #: model:ir.ui.menu,name:base_calendar.menu_crm_meeting_type
msgid "Meeting Types" msgid "Meeting Types"
msgstr "" msgstr "会议类型"
#. module: base_calendar #. module: base_calendar
#: field:calendar.event,create_date:0 #: field:calendar.event,create_date:0
@ -633,7 +633,7 @@ msgstr "全员可见"
#. module: base_calendar #. module: base_calendar
#: view:crm.meeting:0 #: view:crm.meeting:0
msgid "hours" msgid "hours"
msgstr "" msgstr "小时"
#. module: base_calendar #. module: base_calendar
#: field:calendar.attendee,partner_id:0 #: field:calendar.attendee,partner_id:0
@ -655,7 +655,7 @@ msgstr "重复直到"
#. module: base_calendar #. module: base_calendar
#: view:crm.meeting:0 #: view:crm.meeting:0
msgid "Options" msgid "Options"
msgstr "" msgstr "选项"
#. module: base_calendar #. module: base_calendar
#: selection:calendar.event,byday:0 #: selection:calendar.event,byday:0
@ -694,7 +694,7 @@ msgstr "周二"
#. module: base_calendar #. module: base_calendar
#: field:crm.meeting,categ_ids:0 #: field:crm.meeting,categ_ids:0
msgid "Tags" msgid "Tags"
msgstr "" msgstr "标签"
#. module: base_calendar #. module: base_calendar
#: view:calendar.event:0 #: view:calendar.event:0
@ -741,7 +741,7 @@ msgid "Declined"
msgstr "已拒绝" msgstr "已拒绝"
#. module: base_calendar #. module: base_calendar
#: code:addons/base_calendar/base_calendar.py:1460 #: code:addons/base_calendar/base_calendar.py:1462
#, python-format #, python-format
msgid "Group by date is not supported, use the calendar view instead." msgid "Group by date is not supported, use the calendar view instead."
msgstr "" msgstr ""
@ -1200,7 +1200,7 @@ msgid "Select Weekdays"
msgstr "" msgstr ""
#. module: base_calendar #. module: base_calendar
#: code:addons/base_calendar/base_calendar.py:1519 #: code:addons/base_calendar/base_calendar.py:1521
#: selection:calendar.attendee,availability:0 #: selection:calendar.attendee,availability:0
#: selection:calendar.event,show_as:0 #: selection:calendar.event,show_as:0
#: selection:calendar.todo,show_as:0 #: selection:calendar.todo,show_as:0
@ -1453,7 +1453,7 @@ msgid "Weekday"
msgstr "工作日" msgstr "工作日"
#. module: base_calendar #. module: base_calendar
#: code:addons/base_calendar/base_calendar.py:1013 #: code:addons/base_calendar/base_calendar.py:1015
#, python-format #, python-format
msgid "Interval cannot be negative." msgid "Interval cannot be negative."
msgstr "" msgstr ""

View File

Before

Width:  |  Height:  |  Size: 7.5 KiB

After

Width:  |  Height:  |  Size: 7.5 KiB

View File

@ -8,19 +8,19 @@ msgstr ""
"Project-Id-Version: openobject-addons\n" "Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-12-03 16:03+0000\n" "POT-Creation-Date: 2012-12-03 16:03+0000\n"
"PO-Revision-Date: 2011-07-20 09:55+0000\n" "PO-Revision-Date: 2013-06-30 16:09+0000\n"
"Last-Translator: OpenBMS JSC <Unknown>\n" "Last-Translator: Hung Tran <vanda6688@yahoo.com>\n"
"Language-Team: Vietnamese <vi@li.org>\n" "Language-Team: Vietnamese <vi@li.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-03-16 05:49+0000\n" "X-Launchpad-Export-Date: 2013-07-01 05:14+0000\n"
"X-Generator: Launchpad (build 16532)\n" "X-Generator: Launchpad (build 16692)\n"
#. module: base_crypt #. module: base_crypt
#: model:ir.model,name:base_crypt.model_res_users #: model:ir.model,name:base_crypt.model_res_users
msgid "Users" msgid "Users"
msgstr "" msgstr "Người dùng"
#, python-format #, python-format
#~ msgid "Error" #~ msgid "Error"

View File

@ -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 <EMAIL@ADDRESS>, 2013.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\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 <EMAIL@ADDRESS>\n"
"Language-Team: Thai <th@li.org>\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 ""

View File

@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n" "Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n" "Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n" "POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2013-05-27 12:19+0000\n" "PO-Revision-Date: 2013-06-17 10:30+0000\n"
"Last-Translator: leksei <lirgus@gmail.com>\n" "Last-Translator: Chertykov Denis <chertykov@gmail.com>\n"
"Language-Team: \n" "Language-Team: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-05-28 05:17+0000\n" "X-Launchpad-Export-Date: 2013-06-18 05:46+0000\n"
"X-Generator: Launchpad (build 16640)\n" "X-Generator: Launchpad (build 16673)\n"
#. module: base_setup #. module: base_setup
#: view:sale.config.settings:0 #: view:sale.config.settings:0
@ -92,7 +92,7 @@ msgstr "Общие настройки"
#. module: base_setup #. module: base_setup
#: selection:base.setup.terminology,partner:0 #: selection:base.setup.terminology,partner:0
msgid "Donor" msgid "Donor"
msgstr "" msgstr "Спонсор"
#. module: base_setup #. module: base_setup
#: view:base.config.settings:0 #: view:base.config.settings:0
@ -147,7 +147,7 @@ msgstr "res_config_contents"
#. module: base_setup #. module: base_setup
#: view:sale.config.settings:0 #: view:sale.config.settings:0
msgid "Customer Features" msgid "Customer Features"
msgstr "" msgstr "Свойства заказчика"
#. module: base_setup #. module: base_setup
#: view:base.config.settings:0 #: view:base.config.settings:0
@ -157,7 +157,7 @@ msgstr "Импорт / Экспорт"
#. module: base_setup #. module: base_setup
#: view:sale.config.settings:0 #: view:sale.config.settings:0
msgid "Sale Features" msgid "Sale Features"
msgstr "" msgstr "Свойства продаж"
#. module: base_setup #. module: base_setup
#: field:sale.config.settings,module_plugin_outlook:0 #: field:sale.config.settings,module_plugin_outlook:0
@ -232,7 +232,7 @@ msgstr ""
#. module: base_setup #. module: base_setup
#: model:ir.model,name:base_setup.model_sale_config_settings #: model:ir.model,name:base_setup.model_sale_config_settings
msgid "sale.config.settings" msgid "sale.config.settings"
msgstr "" msgstr "sale.config.settings"
#. module: base_setup #. module: base_setup
#: field:base.setup.terminology,partner:0 #: field:base.setup.terminology,partner:0
@ -263,7 +263,7 @@ msgstr ""
#. module: base_setup #. module: base_setup
#: model:ir.model,name:base_setup.model_base_setup_terminology #: model:ir.model,name:base_setup.model_base_setup_terminology
msgid "base.setup.terminology" msgid "base.setup.terminology"
msgstr "" msgstr "base.setup.terminology"
#. module: base_setup #. module: base_setup
#: selection:base.setup.terminology,partner:0 #: selection:base.setup.terminology,partner:0

View File

@ -36,6 +36,8 @@ class base_config_settings(osv.osv_memory):
help="""Enable the public part of openerp, openerp becomes a public website."""), help="""Enable the public part of openerp, openerp becomes a public website."""),
'module_auth_oauth': fields.boolean('Use external authentication providers, sign in with google, facebook, ...'), 'module_auth_oauth': fields.boolean('Use external authentication providers, sign in with google, facebook, ...'),
'module_base_import': fields.boolean("Allow users to import data from CSV files"), 'module_base_import': fields.boolean("Allow users to import data from CSV files"),
'module_google_drive': fields.boolean('Attach Google documents to any record',
help="""This installs the module google_docs."""),
} }
def open_company(self, cr, uid, ids, context=None): def open_company(self, cr, uid, ids, context=None):

View File

@ -81,6 +81,15 @@
</div> </div>
</div> </div>
</group> </group>
<group>
<label for="id" string="Google Drive"/>
<div name="google_drive">
<div name="module_google_drive">
<field name="module_google_drive" class="oe_inline"/>
<label for="module_google_drive"/>
</div>
</div>
</group>
</form> </form>
</field> </field>
</record> </record>

View File

@ -31,7 +31,7 @@ Lets the user create a custom dashboard.
Allows users to create custom dashboard. Allows users to create custom dashboard.
""", """,
'author': 'OpenERP SA', 'author': 'OpenERP SA',
'depends': ['base'], 'depends': ['base', 'web'],
'data': [ 'data': [
'security/ir.model.access.csv', 'security/ir.model.access.csv',
'board_view.xml', 'board_view.xml',

View File

@ -0,0 +1,33 @@
# Vietnamese 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 <EMAIL@ADDRESS>, 2013.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2013-06-30 16:10+0000\n"
"Last-Translator: Hung Tran <vanda6688@yahoo.com>\n"
"Language-Team: Vietnamese <vi@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-07-01 05:14+0000\n"
"X-Generator: Launchpad (build 16692)\n"
#. module: claim_from_delivery
#: view:stock.picking.out:0
msgid "Claims"
msgstr "Các khiếu nại"
#. module: claim_from_delivery
#: model:res.request.link,name:claim_from_delivery.request_link_claim_from_delivery
msgid "Delivery Order"
msgstr ""
#. module: claim_from_delivery
#: model:ir.actions.act_window,name:claim_from_delivery.action_claim_from_delivery
msgid "Claim From Delivery"
msgstr ""

View File

@ -0,0 +1,37 @@
# Korean 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 <EMAIL@ADDRESS>, 2013.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2013-06-28 09:32+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Korean <ko@li.org>\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-30 05:56+0000\n"
"X-Generator: Launchpad (build 16692)\n"
#. module: contacts
#: model:ir.actions.act_window,help:contacts.action_contacts
msgid ""
"<p class=\"oe_view_nocontent_create\">\n"
" Click to add a contact in your address book.\n"
" </p><p>\n"
" OpenERP helps you easily track all activities related to\n"
" a customer; discussions, history of business opportunities,\n"
" documents, etc.\n"
" </p>\n"
" "
msgstr ""
#. module: contacts
#: model:ir.actions.act_window,name:contacts.action_contacts
#: model:ir.ui.menu,name:contacts.menu_contacts
msgid "Contacts"
msgstr "연락처"

View File

@ -0,0 +1,45 @@
# Vietnamese 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 <EMAIL@ADDRESS>, 2013.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2013-06-27 16:47+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Vietnamese <vi@li.org>\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-28 05:42+0000\n"
"X-Generator: Launchpad (build 16681)\n"
#. module: contacts
#: model:ir.actions.act_window,help:contacts.action_contacts
msgid ""
"<p class=\"oe_view_nocontent_create\">\n"
" Click to add a contact in your address book.\n"
" </p><p>\n"
" OpenERP helps you easily track all activities related to\n"
" a customer; discussions, history of business opportunities,\n"
" documents, etc.\n"
" </p>\n"
" "
msgstr ""
"<p class=\"oe_view_nocontent_create\">\n"
" Nhấn để thêm liên lạc vào sổ địa chỉ.\n"
" </p><p>\n"
" OpenERP giúp bạn theo dõi các hoạt động liên quan tới\n"
" một khách hàng; thảo luận, lịch sử cơ hội kinh doanh,\n"
" tài liệu v.v....\n"
" </p>\n"
" "
#. module: contacts
#: model:ir.actions.act_window,name:contacts.action_contacts
#: model:ir.ui.menu,name:contacts.menu_contacts
msgid "Contacts"
msgstr "Liên hệ"

View File

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 50 KiB

View File

@ -222,17 +222,13 @@ class crm_case_section(osv.osv):
return res return res
def create(self, cr, uid, vals, context=None): def create(self, cr, uid, vals, context=None):
mail_alias = self.pool.get('mail.alias') if context is None:
if not vals.get('alias_id'): context = {}
alias_name = vals.pop('alias_name', None) or vals.get('name') # prevent errors during copy() create_context = dict(context, alias_model_name='crm.lead', alias_parent_model_name=self._name)
alias_id = mail_alias.create_unique_alias(cr, uid, section_id = super(crm_case_section, self).create(cr, uid, vals, context=create_context)
{'alias_name': alias_name}, section = self.browse(cr, uid, section_id, context=context)
model_name="crm.lead", self.pool.get('mail.alias').write(cr, uid, [section.alias_id.id], {'alias_parent_thread_id': section_id, 'alias_defaults': {'section_id': section_id, 'type': 'lead'}}, context=context)
context=context) return section_id
vals['alias_id'] = alias_id
res = super(crm_case_section, self).create(cr, uid, vals, context)
mail_alias.write(cr, uid, [vals['alias_id']], {'alias_defaults': {'section_id': res, 'type': 'lead'}}, context)
return res
def unlink(self, cr, uid, ids, context=None): def unlink(self, cr, uid, ids, context=None):
# Cascade-delete mail aliases as well, as they should not exist without the sales team. # Cascade-delete mail aliases as well, as they should not exist without the sales team.

View File

@ -94,7 +94,7 @@
<div class="oe_kanban_content"> <div class="oe_kanban_content">
<h4 class="oe_center"><field name="name"/></h4> <h4 class="oe_center"><field name="name"/></h4>
<div class="oe_kanban_alias oe_center" t-if="record.use_leads.raw_value and record.alias_id.value"> <div class="oe_kanban_alias oe_center" t-if="record.use_leads.raw_value and record.alias_id.value">
<small><span class="oe_e" style="float: none;">%%</span><t t-raw="record.alias_id.raw_value[1]"/></small> <small><span class="oe_e oe_e_alias" style="float: none;">%%</span><t t-raw="record.alias_id.raw_value[1]"/></small>
</div> </div>
<div class="oe_items_list"> <div class="oe_items_list">
<div class="oe_salesteams_leads" t-if="record.use_leads.raw_value"> <div class="oe_salesteams_leads" t-if="record.use_leads.raw_value">
@ -168,17 +168,6 @@
<h1> <h1>
<field name="name" string="Salesteam"/> <field name="name" string="Salesteam"/>
</h1> </h1>
<div name="group_alias"
attrs="{'invisible': [('alias_domain', '=', False)]}">
<label for="alias_id" string="Email Alias"/>
<field name="alias_id" class="oe_inline oe_read_only" required="0" nolabel="1"/>
<span name="edit_alias" class="oe_edit_only">
<field name="alias_name" class="oe_inline"
attrs="{'required': [('use_leads', '=', True), ('alias_id', '!=', False)]}"/>
@
<field name="alias_domain" class="oe_inline" readonly="1"/>
</span>
</div>
<div name="options_active"> <div name="options_active">
<field name="use_leads" class="oe_inline"/><label for="use_leads"/> <field name="use_leads" class="oe_inline"/><label for="use_leads"/>
</div> </div>
@ -187,12 +176,25 @@
<group> <group>
<field name="user_id"/> <field name="user_id"/>
<field name="code"/> <field name="code"/>
</group>
<group>
<field name="parent_id"/> <field name="parent_id"/>
<field name="change_responsible"/> <field name="change_responsible"/>
<field name="active"/> <field name="active"/>
</group> </group>
<group>
<label for="alias_name" string="Email Alias"
attrs="{'invisible': [('alias_domain', '=', False)]}"/>
<div name="alias_def"
attrs="{'invisible': [('alias_domain', '=', False)]}">
<field name="alias_id" class="oe_read_only oe_inline"
string="Email Alias" required="0"/>
<div class="oe_edit_only oe_inline" name="edit_alias" style="display: inline;" >
<field name="alias_name" class="oe_inline"/>@<field name="alias_domain" class="oe_inline" readonly="1"/>
</div>
</div>
<field name="alias_contact" class="oe_inline"
string="Accept Emails From"
attrs="{'invisible': [('alias_domain', '=', False)]}"/>
</group>
</group> </group>
<notebook colspan="4"> <notebook colspan="4">
<page string="Team Members"> <page string="Team Members">

View File

@ -77,12 +77,12 @@ class crm_lead(base_stage, format_address, osv.osv):
_track = { _track = {
'state': { 'state': {
'crm.mt_lead_create': lambda self, cr, uid, obj, ctx=None: obj['state'] in ['new', 'draft'], 'crm.mt_lead_create': lambda self, cr, uid, obj, ctx=None: obj.state in ['new', 'draft'],
'crm.mt_lead_won': lambda self, cr, uid, obj, ctx=None: obj['state'] == 'done', 'crm.mt_lead_won': lambda self, cr, uid, obj, ctx=None: obj.state == 'done',
'crm.mt_lead_lost': lambda self, cr, uid, obj, ctx=None: obj['state'] == 'cancel', 'crm.mt_lead_lost': lambda self, cr, uid, obj, ctx=None: obj.state == 'cancel',
}, },
'stage_id': { 'stage_id': {
'crm.mt_lead_stage': lambda self, cr, uid, obj, ctx=None: obj['state'] not in ['new', 'draft', 'cancel', 'done'], 'crm.mt_lead_stage': lambda self, cr, uid, obj, ctx=None: obj.state not in ['new', 'draft', 'cancel', 'done'],
}, },
} }
@ -96,13 +96,11 @@ class crm_lead(base_stage, format_address, osv.osv):
def create(self, cr, uid, vals, context=None): def create(self, cr, uid, vals, context=None):
if context is None: if context is None:
context = {} context = {}
if not vals.get('stage_id'): if vals.get('type') and not context.get('default_type'):
ctx = context.copy() context['default_type'] = vals.get('type')
if vals.get('section_id'): if vals.get('section_id') and not context.get('default_section_id'):
ctx['default_section_id'] = vals['section_id'] context['default_section_id'] = vals.get('section_id')
if vals.get('type'):
ctx['default_type'] = vals['type']
vals['stage_id'] = self._get_default_stage_id(cr, uid, context=ctx)
# context: no_log, because subtype already handle this # context: no_log, because subtype already handle this
create_context = dict(context, mail_create_nolog=True) create_context = dict(context, mail_create_nolog=True)
return super(crm_lead, self).create(cr, uid, vals, context=create_context) return super(crm_lead, self).create(cr, uid, vals, context=create_context)
@ -719,7 +717,6 @@ class crm_lead(base_stage, format_address, osv.osv):
continue continue
vals = self._convert_opportunity_data(cr, uid, lead, customer, section_id, context=context) vals = self._convert_opportunity_data(cr, uid, lead, customer, section_id, context=context)
self.write(cr, uid, [lead.id], vals, context=context) self.write(cr, uid, [lead.id], vals, context=context)
self.message_post(cr, uid, ids, body=_("Lead <b>converted into an Opportunity</b>"), subtype="crm.mt_lead_convert_to_opportunity", context=context)
if user_ids or section_id: if user_ids or section_id:
self.allocate_salesman(cr, uid, ids, user_ids, section_id, context=context) self.allocate_salesman(cr, uid, ids, user_ids, section_id, context=context)

View File

@ -163,12 +163,6 @@
<field name="default" eval="False"/> <field name="default" eval="False"/>
<field name="description">Opportunity created</field> <field name="description">Opportunity created</field>
</record> </record>
<record id="mt_lead_convert_to_opportunity" model="mail.message.subtype">
<field name="name">Lead to Opportunity</field>
<field name="res_model">crm.lead</field>
<field name="default" eval="False"/>
<field name="description">Lead converted into an opportunity</field>
</record>
<record id="mt_lead_stage" model="mail.message.subtype"> <record id="mt_lead_stage" model="mail.message.subtype">
<field name="name">Stage Changed</field> <field name="name">Stage Changed</field>
<field name="res_model">crm.lead</field> <field name="res_model">crm.lead</field>
@ -195,13 +189,6 @@
<field name="parent_id" eval="ref('mt_lead_create')"/> <field name="parent_id" eval="ref('mt_lead_create')"/>
<field name="relation_field">section_id</field> <field name="relation_field">section_id</field>
</record> </record>
<record id="mt_salesteam_lead_opportunity" model="mail.message.subtype">
<field name="name">Lead to Opportunity</field>
<field name="default" eval="False"/>
<field name="res_model">crm.case.section</field>
<field name="parent_id" eval="ref('mt_lead_convert_to_opportunity')"/>
<field name="relation_field">section_id</field>
</record>
<record id="mt_salesteam_lead_stage" model="mail.message.subtype"> <record id="mt_salesteam_lead_stage" model="mail.message.subtype">
<field name="name">Opportunity Stage Changed</field> <field name="name">Opportunity Stage Changed</field>
<field name="res_model">crm.case.section</field> <field name="res_model">crm.case.section</field>

View File

@ -709,5 +709,6 @@ Andrew</field>
eval="[ ref('msg_case18_1'), ref('msg_case18_2')], True, {}" eval="[ ref('msg_case18_1'), ref('msg_case18_2')], True, {}"
/> />
</data> </data>
</openerp> </openerp>

View File

@ -601,7 +601,9 @@
'default_email_to':'{$object.email or \'\'}', 'default_email_to':'{$object.email or \'\'}',
'default_use_template': True, 'default_use_template': True,
'default_template_id': ref('crm.email_template_opportunity_mail'), 'default_template_id': ref('crm.email_template_opportunity_mail'),
}"/> }"
groups="base.group_sale_salesman"
/>
<!--Update of email_template defined in crm_lead_data, to add ref_ir_act_window <!--Update of email_template defined in crm_lead_data, to add ref_ir_act_window
allowing to have a well formed email template (context action considered as set). --> allowing to have a well formed email template (context action considered as set). -->
@ -617,6 +619,7 @@
if context.get('active_model') == 'crm.lead' and context.get('active_ids'): if context.get('active_model') == 'crm.lead' and context.get('active_ids'):
self.case_cancel(cr, uid, context['active_ids'], context=context) self.case_cancel(cr, uid, context['active_ids'], context=context)
</field> </field>
<field name="groups_id" eval="[(4,ref('base.group_sale_salesman'))]"/>
</record> </record>
<record id="ir_mark_as_lost" model="ir.values"> <record id="ir_mark_as_lost" model="ir.values">

View File

@ -58,7 +58,7 @@
<field name="view_mode">tree,calendar</field> <field name="view_mode">tree,calendar</field>
<field name="view_id" ref="crm_case_inbound_phone_tree_view"/> <field name="view_id" ref="crm_case_inbound_phone_tree_view"/>
<field name="domain">[]</field> <field name="domain">[]</field>
<field name="context">{}</field> <field name="context">{'default_state': 'done'}</field>
<field name="search_view_id" ref="crm.view_crm_case_phonecalls_filter"/> <field name="search_view_id" ref="crm.view_crm_case_phonecalls_filter"/>
<field name="help" type="html"> <field name="help" type="html">
<p class="oe_view_nocontent_create"> <p class="oe_view_nocontent_create">

View File

@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n" "Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n" "Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:04+0000\n" "POT-Creation-Date: 2012-12-21 17:04+0000\n"
"PO-Revision-Date: 2013-04-13 08:42+0000\n" "PO-Revision-Date: 2013-06-21 07:11+0000\n"
"Last-Translator: krnkris <Unknown>\n" "Last-Translator: krnkris <Unknown>\n"
"Language-Team: \n" "Language-Team: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-04-14 05:12+0000\n" "X-Launchpad-Export-Date: 2013-06-22 05:36+0000\n"
"X-Generator: Launchpad (build 16564)\n" "X-Generator: Launchpad (build 16677)\n"
#. module: crm #. module: crm
#: view:crm.lead.report:0 #: view:crm.lead.report:0
@ -31,7 +31,7 @@ msgstr ""
"létrehozását a bejövő levelekből." "létrehozását a bejövő levelekből."
#. module: crm #. module: crm
#: code:addons/crm/crm_lead.py:881 #: code:addons/crm/crm_lead.py:898
#: selection:crm.case.stage,type:0 #: selection:crm.case.stage,type:0
#: view:crm.lead:0 #: view:crm.lead:0
#: selection:crm.lead,type:0 #: selection:crm.lead,type:0
@ -192,8 +192,8 @@ msgstr ""
"direkt HTML formátumú ahhoz hogy beilleszthető legyen a kanban nézetekbe." "direkt HTML formátumú ahhoz hogy beilleszthető legyen a kanban nézetekbe."
#. module: crm #. module: crm
#: code:addons/crm/crm_lead.py:624 #: code:addons/crm/crm_lead.py:640
#: code:addons/crm/crm_lead.py:744 #: code:addons/crm/crm_lead.py:761
#: code:addons/crm/crm_phonecall.py:280 #: code:addons/crm/crm_phonecall.py:280
#, python-format #, python-format
msgid "Warning!" msgid "Warning!"
@ -304,7 +304,7 @@ msgid "Prospect Partner"
msgstr "Leendő partner" msgstr "Leendő partner"
#. module: crm #. module: crm
#: code:addons/crm/crm_lead.py:982 #: code:addons/crm/crm_lead.py:1002
#, python-format #, python-format
msgid "No Subject" msgid "No Subject"
msgstr "Nincs tárgy" msgstr "Nincs tárgy"
@ -482,7 +482,7 @@ msgid "#Opportunities"
msgstr "Lehetőségek száma" msgstr "Lehetőségek száma"
#. module: crm #. module: crm
#: code:addons/crm/crm_lead.py:624 #: code:addons/crm/crm_lead.py:640
#, python-format #, python-format
msgid "" msgid ""
"Please select more than one element (lead or opportunity) from the list view." "Please select more than one element (lead or opportunity) from the list view."
@ -782,7 +782,7 @@ msgid "Statistics Dashboard"
msgstr "Statisztika vezérlőpult" msgstr "Statisztika vezérlőpult"
#. module: crm #. module: crm
#: code:addons/crm/crm_lead.py:861 #: code:addons/crm/crm_lead.py:878
#: model:crm.case.stage,name:crm.stage_lead2 #: model:crm.case.stage,name:crm.stage_lead2
#: selection:crm.case.stage,type:0 #: selection:crm.case.stage,type:0
#: view:crm.lead:0 #: view:crm.lead:0
@ -844,7 +844,7 @@ msgid "Exclusive"
msgstr "Kizárólagos" msgstr "Kizárólagos"
#. module: crm #. module: crm
#: code:addons/crm/crm_lead.py:584 #: code:addons/crm/crm_lead.py:600
#, python-format #, python-format
msgid "From %s : %s" msgid "From %s : %s"
msgstr "Ettől %s : %s" msgstr "Ettől %s : %s"
@ -1016,7 +1016,7 @@ msgid "Next Action"
msgstr "Következő művelet" msgstr "Következő művelet"
#. module: crm #. module: crm
#: code:addons/crm/crm_lead.py:763 #: code:addons/crm/crm_lead.py:780
#, python-format #, python-format
msgid "<b>Partner</b> set to <em>%s</em>." msgid "<b>Partner</b> set to <em>%s</em>."
msgstr "<b>Partner</b> beállítva mint <em>%s</em>." msgstr "<b>Partner</b> beállítva mint <em>%s</em>."
@ -1109,7 +1109,7 @@ msgid "Creation Date"
msgstr "Létrehozás dátuma" msgstr "Létrehozás dátuma"
#. module: crm #. module: crm
#: code:addons/crm/crm_lead.py:698 #: code:addons/crm/crm_lead.py:715
#, python-format #, python-format
msgid "Lead <b>converted into an Opportunity</b>" msgid "Lead <b>converted into an Opportunity</b>"
msgstr "Tervezet <b>lehetőséggé átalakítva lehetőséggé</b>" msgstr "Tervezet <b>lehetőséggé átalakítva lehetőséggé</b>"
@ -1324,7 +1324,9 @@ msgid "Days to Close"
msgstr "Lezárásig hátralévő napok" msgstr "Lezárásig hátralévő napok"
#. module: crm #. module: crm
#: code:addons/crm/crm_lead.py:1057
#: field:crm.case.section,complete_name:0 #: field:crm.case.section,complete_name:0
#, python-format
msgid "unknown" msgid "unknown"
msgstr "Ismeretlen" msgstr "Ismeretlen"
@ -1415,7 +1417,7 @@ msgid "Lead Description"
msgstr "Érdeklődés leírása" msgstr "Érdeklődés leírása"
#. module: crm #. module: crm
#: code:addons/crm/crm_lead.py:565 #: code:addons/crm/crm_lead.py:581
#, python-format #, python-format
msgid "Merged opportunities" msgid "Merged opportunities"
msgstr "Lehetőségek összefésülése" msgstr "Lehetőségek összefésülése"
@ -1989,7 +1991,7 @@ msgid "Leads"
msgstr "Érdeklődők" msgstr "Érdeklődők"
#. module: crm #. module: crm
#: code:addons/crm/crm_lead.py:563 #: code:addons/crm/crm_lead.py:579
#, python-format #, python-format
msgid "Merged leads" msgid "Merged leads"
msgstr "Össztefésült érdeklődések" msgstr "Össztefésült érdeklődések"
@ -2085,7 +2087,6 @@ msgid "Global CC"
msgstr "Globális CC /másolat/" msgstr "Globális CC /másolat/"
#. module: crm #. module: crm
#: view:crm.lead:0
#: view:crm.phonecall:0 #: view:crm.phonecall:0
#: model:ir.actions.act_window,name:crm.crm_case_categ_phone0 #: model:ir.actions.act_window,name:crm.crm_case_categ_phone0
#: model:ir.ui.menu,name:crm.menu_crm_case_phone #: model:ir.ui.menu,name:crm.menu_crm_case_phone
@ -2399,7 +2400,7 @@ msgstr "Érdeklődés átalakítva egy lehetőséggé"
#. module: crm #. module: crm
#: view:crm.lead:0 #: view:crm.lead:0
msgid "Unassigned Leads" msgid "Unassigned Leads"
msgstr "Nem iktatott rdeklődések" msgstr "Nem iktatott érdeklődések"
#. module: crm #. module: crm
#: model:mail.message.subtype,description:crm.mt_lead_won #: model:mail.message.subtype,description:crm.mt_lead_won
@ -3100,7 +3101,7 @@ msgid "Working Hours"
msgstr "Munkaórák" msgstr "Munkaórák"
#. module: crm #. module: crm
#: code:addons/crm/crm_lead.py:968 #: code:addons/crm/crm_lead.py:986
#: view:crm.lead:0 #: view:crm.lead:0
#: field:crm.lead2opportunity.partner,partner_id:0 #: field:crm.lead2opportunity.partner,partner_id:0
#: field:crm.lead2opportunity.partner.mass,partner_id:0 #: field:crm.lead2opportunity.partner.mass,partner_id:0

View File

@ -56,7 +56,7 @@ class res_partner(osv.osv):
default.update({'opportunity_ids': [], 'meeting_ids' : [], 'phonecall_ids' : []}) default.update({'opportunity_ids': [], 'meeting_ids' : [], 'phonecall_ids' : []})
super(res_partner, self).copy(cr, uid, record_id, default, context) return super(res_partner, self).copy(cr, uid, record_id, default, context)
def redirect_partner_form(self, cr, uid, partner_id, context=None): def redirect_partner_form(self, cr, uid, partner_id, context=None):
search_view = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'base', 'view_res_partner_filter') search_view = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'base', 'view_res_partner_filter')

View File

Before

Width:  |  Height:  |  Size: 8.7 KiB

After

Width:  |  Height:  |  Size: 8.7 KiB

View File

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

View File

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

View File

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

View File

Before

Width:  |  Height:  |  Size: 5.7 KiB

After

Width:  |  Height:  |  Size: 5.7 KiB

View File

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

View File

Before

Width:  |  Height:  |  Size: 51 KiB

After

Width:  |  Height:  |  Size: 51 KiB

View File

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 29 KiB

View File

Before

Width:  |  Height:  |  Size: 63 KiB

After

Width:  |  Height:  |  Size: 63 KiB

View File

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 39 KiB

View File

Before

Width:  |  Height:  |  Size: 9.4 KiB

After

Width:  |  Height:  |  Size: 9.4 KiB

View File

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View File

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View File

Before

Width:  |  Height:  |  Size: 83 KiB

After

Width:  |  Height:  |  Size: 83 KiB

View File

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 50 KiB

View File

Before

Width:  |  Height:  |  Size: 57 KiB

After

Width:  |  Height:  |  Size: 57 KiB

View File

Before

Width:  |  Height:  |  Size: 134 KiB

After

Width:  |  Height:  |  Size: 134 KiB

Some files were not shown because too many files have changed in this diff Show More