diff --git a/addons/account/account_invoice.py b/addons/account/account_invoice.py index 0fb6af05e58..87e6a66740c 100644 --- a/addons/account/account_invoice.py +++ b/addons/account/account_invoice.py @@ -221,8 +221,8 @@ class account_invoice(osv.osv): 'type': { }, '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_validated': lambda self, cr, uid, obj, ctx=None: obj['state'] == 'open' 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'), }, } _columns = { diff --git a/addons/account/i18n/ru.po b/addons/account/i18n/ru.po index da620808a85..c666e4dcf2e 100644 --- a/addons/account/i18n/ru.po +++ b/addons/account/i18n/ru.po @@ -7,14 +7,14 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2012-12-21 17:04+0000\n" -"PO-Revision-Date: 2013-06-07 12:52+0000\n" +"PO-Revision-Date: 2013-07-02 06:32+0000\n" "Last-Translator: Chertykov Denis \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-06-08 05:52+0000\n" -"X-Generator: Launchpad (build 16667)\n" +"X-Launchpad-Export-Date: 2013-07-03 05:14+0000\n" +"X-Generator: Launchpad (build 16692)\n" #. module: account #: model:process.transition,name:account.process_transition_supplierreconcilepaid0 @@ -134,10 +134,10 @@ msgstr "" #: code:addons/account/account.py:686 #: code:addons/account/account.py:781 #: code:addons/account/account.py:1058 -#: code:addons/account/account_invoice.py:817 #: code:addons/account/account_invoice.py:820 #: code:addons/account/account_invoice.py:823 -#: code:addons/account/account_invoice.py:1542 +#: code:addons/account/account_invoice.py:826 +#: code:addons/account/account_invoice.py:1545 #: code:addons/account/account_move_line.py:98 #: code:addons/account/account_move_line.py:771 #: code:addons/account/account_move_line.py:824 @@ -257,7 +257,8 @@ msgid "" "entries." msgstr "" "Тип счета используется в информационных целях, при создании официальных " -"отчетов для конкретной страны, определении правил" +"отчетов для конкретной страны, определении правил закрытия финансового года " +"и проводок открытия." #. module: account #: field:account.config.settings,sale_refund_sequence_next:0 @@ -285,7 +286,7 @@ msgstr "Разрешить списание" #. module: account #: view:account.analytic.chart:0 msgid "Select the Period for Analysis" -msgstr "Выберите период для проведения анализа" +msgstr "Выберите период для анализа" #. module: account #: model:ir.actions.act_window,help:account.action_invoice_tree3 @@ -355,7 +356,7 @@ msgid "Allow multi currencies" msgstr "Разрешить мульти-валютность" #. module: account -#: code:addons/account/account_invoice.py:74 +#: code:addons/account/account_invoice.py:77 #, python-format msgid "You must define an analytic journal of type '%s'!" msgstr "Вы должны определить журнал аналитики типа '%s'!" @@ -757,7 +758,9 @@ msgstr "" #: selection:account.common.partner.report,result_selection:0 #: selection:account.partner.balance,result_selection:0 #: selection:account.partner.ledger,result_selection:0 +#: report:account.third_party_ledger:0 #: code:addons/account/report/account_partner_balance.py:297 +#: code:addons/account/report/account_partner_ledger.py:272 #, python-format msgid "Receivable Accounts" msgstr "Счета к получению" @@ -797,7 +800,7 @@ msgid "Are you sure you want to create entries?" msgstr "Вы действительно хотите создать проводки?" #. module: account -#: code:addons/account/account_invoice.py:1358 +#: code:addons/account/account_invoice.py:1361 #, python-format msgid "Invoice partially paid: %s%s of %s%s (%s%s remaining)." msgstr "Счет частично оплачен: %s%s из %s%s (%s%s остаток)." @@ -866,7 +869,7 @@ msgid "Type" msgstr "Тип" #. module: account -#: code:addons/account/account_invoice.py:823 +#: code:addons/account/account_invoice.py:826 #, python-format msgid "" "Taxes are missing!\n" @@ -1052,7 +1055,7 @@ msgid "Liability" msgstr "Обязательства" #. module: account -#: code:addons/account/account_invoice.py:896 +#: code:addons/account/account_invoice.py:899 #, python-format msgid "Please define sequence on the journal related to this invoice." msgstr "Пожалуйста, определите нумерацию в журнале, связанном с этим счетом." @@ -1128,8 +1131,8 @@ msgstr "Возможности" #. module: account #: code:addons/account/account.py:2346 #: code:addons/account/account_bank_statement.py:424 -#: code:addons/account/account_invoice.py:74 -#: code:addons/account/account_invoice.py:772 +#: code:addons/account/account_invoice.py:77 +#: code:addons/account/account_invoice.py:775 #: code:addons/account/account_move_line.py:195 #, python-format msgid "No Analytic Journal !" @@ -1168,7 +1171,7 @@ msgstr "Название счета." #. module: account #: field:account.journal,with_last_closing_balance:0 msgid "Opening With Last Closing Balance" -msgstr "" +msgstr "Открыть с предыдущим остатком" #. module: account #: help:account.tax.code,notprintable:0 @@ -1567,8 +1570,10 @@ msgid "%s (copy)" msgstr "%s (копия)" #. module: account +#: report:account.account.balance:0 #: selection:account.balance.report,display_account:0 #: selection:account.common.account.report,display_account:0 +#: report:account.general.ledger_landscape:0 #: selection:account.partner.balance,display_partner:0 #: selection:account.report.general.ledger,display_account:0 msgid "With balance is not equal to 0" @@ -1803,7 +1808,7 @@ msgstr "" #: view:account.invoice:0 #: view:account.invoice.report:0 #: field:account.move.line,invoice:0 -#: code:addons/account/account_invoice.py:1154 +#: code:addons/account/account_invoice.py:1157 #: model:ir.model,name:account.model_account_invoice #: model:res.request.link,name:account.req_link_invoice #, python-format @@ -1954,7 +1959,7 @@ msgstr "Длительность" #: view:account.bank.statement:0 #: field:account.bank.statement,last_closing_balance:0 msgid "Last Closing Balance" -msgstr "" +msgstr "Последнее конечное сальдо" #. module: account #: 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 " "the start and end of the month or quarter." msgstr "" +"Это меню печати налоговой декларации на основе счетов и платежей. Выберите " +"один или несколько периодов финансового года. Информация, необходимая для " +"налоговой декларации генерируется автоматически OpenERP из счета (или " +"платежей, в некоторых странах). Эти данные обновляются в режиме реального " +"времени. Это очень полезно, потому что позволяет просматривать в любое время " +"налоги, которые вы должны в начале и в конце месяца или квартала." #. module: account #: code:addons/account/account.py:409 @@ -2057,9 +2068,9 @@ msgstr "" #: code:addons/account/account_bank_statement.py:419 #: code:addons/account/account_cash_statement.py:256 #: code:addons/account/account_cash_statement.py:300 -#: code:addons/account/account_invoice.py:896 -#: code:addons/account/account_invoice.py:930 -#: code:addons/account/account_invoice.py:1121 +#: code:addons/account/account_invoice.py:899 +#: code:addons/account/account_invoice.py:933 +#: code:addons/account/account_invoice.py:1124 #: code:addons/account/account_move_line.py:579 #: code:addons/account/account_move_line.py:828 #: code:addons/account/account_move_line.py:851 @@ -2104,7 +2115,7 @@ msgstr "" "

\n" " Вы можете управлять счетом от поставщика в соответствии с\n" " тем, что вы приобрели. OpenERP также может создавать\n" -" черновые счета автоматически из заказов на закупку.\n" +" черновые счета автоматически из заказов закупки.\n" "

\n" " " @@ -2230,7 +2241,7 @@ msgstr "Счет - печать журнала" #. module: account #: model:ir.model,name:account.model_product_category msgid "Product Category" -msgstr "Категория ТМЦ" +msgstr "Категория продукции" #. module: account #: code:addons/account/account.py:656 @@ -2307,7 +2318,9 @@ msgstr "Управление активами" #: selection:account.common.partner.report,result_selection:0 #: selection:account.partner.balance,result_selection:0 #: selection:account.partner.ledger,result_selection:0 +#: report:account.third_party_ledger:0 #: code:addons/account/report/account_partner_balance.py:299 +#: code:addons/account/report/account_partner_ledger.py:274 #, python-format msgid "Payable Accounts" msgstr "Кредиторская задолженность" @@ -2600,7 +2613,7 @@ msgstr "Учетный год" #: help:accounting.report,fiscalyear_id:0 #: help:accounting.report,fiscalyear_id_cmp:0 msgid "Keep empty for all open fiscal year" -msgstr "Keep empty for all open fiscal year" +msgstr "Оставьте пустым для всех открытых финансовых лет" #. module: account #: code:addons/account/account.py:653 @@ -2623,7 +2636,7 @@ msgid "Create an Account Based on this Template" msgstr "Создать счет на основе этого шаблона" #. module: account -#: code:addons/account/account_invoice.py:930 +#: code:addons/account/account_invoice.py:933 #, python-format msgid "" "Cannot create the invoice.\n" @@ -2896,11 +2909,11 @@ msgstr "Счета" #. module: account #: code:addons/account/account.py:3541 #: code:addons/account/account_bank_statement.py:405 -#: code:addons/account/account_invoice.py:504 -#: code:addons/account/account_invoice.py:606 -#: code:addons/account/account_invoice.py:621 -#: code:addons/account/account_invoice.py:629 -#: code:addons/account/account_invoice.py:654 +#: code:addons/account/account_invoice.py:507 +#: code:addons/account/account_invoice.py:609 +#: code:addons/account/account_invoice.py:624 +#: code:addons/account/account_invoice.py:632 +#: code:addons/account/account_invoice.py:657 #: code:addons/account/account_move_line.py:536 #, python-format msgid "Configuration Error!" @@ -2932,7 +2945,7 @@ msgstr "Метка" #. module: account #: view:res.partner.bank:0 msgid "Accounting Information" -msgstr "Бухгалтерская информация" +msgstr "Учетная информация" #. module: account #: view:account.tax:0 @@ -3098,6 +3111,8 @@ msgid "" "Selected invoice(s) cannot be confirmed as they are not in 'Draft' or 'Pro-" "Forma' state." msgstr "" +"Выбранные счета нельзя подтвердить, так как состояние не \"Черновик\" и не " +"\"Проформа\"" #. module: account #: code:addons/account/account.py:1071 @@ -3130,7 +3145,7 @@ msgstr "Журнал продаж" #. module: account #: code:addons/account/account.py:2346 -#: code:addons/account/account_invoice.py:772 +#: code:addons/account/account_invoice.py:775 #: code:addons/account/account_move_line.py:195 #, python-format msgid "You have to define an analytic journal on the '%s' journal!" @@ -3299,7 +3314,7 @@ msgid "Fiscal Position" msgstr "Система налогообложения" #. module: account -#: code:addons/account/account_invoice.py:820 +#: code:addons/account/account_invoice.py:823 #, python-format msgid "" "Tax base different!\n" @@ -3464,7 +3479,7 @@ msgstr "Вид" #. module: account #: code:addons/account/account.py:3460 -#: code:addons/account/account_bank.py:95 +#: code:addons/account/account_bank.py:94 #, python-format msgid "BNK" msgstr "BNK" @@ -3734,7 +3749,7 @@ msgstr "" "иметь названия как и у самого документа" #. module: account -#: code:addons/account/account_invoice.py:1013 +#: code:addons/account/account_invoice.py:1016 #, python-format msgid "" "You cannot create an invoice on a centralized journal. Uncheck the " @@ -3749,7 +3764,7 @@ msgid "Starting Balance" msgstr "Начальный баланс" #. module: account -#: code:addons/account/account_invoice.py:1462 +#: code:addons/account/account_invoice.py:1465 #, python-format msgid "No Partner Defined !" msgstr "Партнер не определен!" @@ -3974,6 +3989,8 @@ msgid "" "You cannot modify a posted entry of this journal.\n" "First you should set the journal to allow cancelling entries." msgstr "" +"Нельзя изменить проводку по этому журналу.\n" +"Прежде, нужно разрешить отмену проводок в журнале." #. module: account #: model:ir.actions.act_window,name:account.action_account_print_sale_purchase_journal @@ -4040,9 +4057,13 @@ msgid "VAT :" msgstr "НДС:" #. module: account +#: report:account.account.balance:0 #: report:account.central.journal:0 #: view:account.config.settings:0 +#: report:account.general.journal:0 #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 +#: report:account.journal.period.print:0 #: report:account.partner.balance:0 #: report:account.third_party_ledger:0 #: report:account.third_party_ledger_other:0 @@ -4145,8 +4166,10 @@ msgstr "" "условии оплаты контрагента." #. module: account +#: report:account.account.balance:0 #: selection:account.balance.report,display_account:0 #: selection:account.common.account.report,display_account:0 +#: report:account.general.ledger_landscape:0 #: selection:account.report.general.ledger,display_account:0 #: selection:account.tax,type_tax_use:0 #: selection:account.tax.template,type_tax_use:0 @@ -4283,7 +4306,7 @@ msgstr "Открыть счет" #. module: account #: field:account.invoice.tax,factor_tax:0 msgid "Multipication factor Tax code" -msgstr "" +msgstr "Коэффициент кода налога" #. module: account #: field:account.config.settings,complete_tax_set:0 @@ -4409,7 +4432,7 @@ msgid "Consolidated Children" msgstr "Субсчета" #. module: account -#: code:addons/account/account_invoice.py:570 +#: code:addons/account/account_invoice.py:573 #: code:addons/account/wizard/account_invoice_refund.py:146 #, python-format msgid "Insufficient Data!" @@ -4592,7 +4615,7 @@ msgstr "" #: field:account.account,shortcut:0 #: field:account.account.template,shortcut:0 msgid "Shortcut" -msgstr "Горячая клвиша" +msgstr "Закладка" #. module: account #: view:account.account:0 @@ -4666,6 +4689,8 @@ msgid "" "Error!\n" "The duration of the Period(s) is/are invalid." msgstr "" +"Ошибка!\n" +"Не допустимая продолжительность периода." #. module: account #: field:account.entries.report,month:0 @@ -4682,7 +4707,7 @@ msgstr "Месяц" #: code:addons/account/account.py:668 #, python-format msgid "You cannot change the code of account which contains journal items!" -msgstr "" +msgstr "Нальзя изменить код счета который содержит проводки!" #. module: account #: field:account.config.settings,purchase_sequence_prefix:0 @@ -4690,8 +4715,8 @@ msgid "Supplier invoice sequence" msgstr "Нумерация счетов поставщиков" #. module: account -#: code:addons/account/account_invoice.py:607 -#: code:addons/account/account_invoice.py:622 +#: code:addons/account/account_invoice.py:610 +#: code:addons/account/account_invoice.py:625 #, python-format msgid "" "Cannot find a chart of account, you should create one from Settings\\" @@ -4801,7 +4826,7 @@ msgstr "Отметьте, если хотите выводить счета с 0 #. module: account #: field:account.move.reconcile,opening_reconciliation:0 msgid "Opening Entries Reconciliation" -msgstr "" +msgstr "Сверка проводок открытия" #. module: account #. openerp-web @@ -4826,7 +4851,7 @@ msgstr "Документ из счета или платежа" msgid "" "There is currently no company without chart of account. The wizard will " "therefore not be executed." -msgstr "" +msgstr "Не ни одной компании без плана счетов. Мастер не будет запущен." #. module: account #: model:ir.actions.act_window,name:account.action_wizard_multi_chart @@ -4971,7 +4996,7 @@ msgstr "" "Нельзя создать счет, который имеет родительский счет другой компании." #. module: account -#: code:addons/account/account_invoice.py:655 +#: code:addons/account/account_invoice.py:658 #, python-format msgid "" "Cannot find any account journal of %s type for this company.\n" @@ -5019,7 +5044,7 @@ msgstr "Контроль типа" #. module: account #: help:account.journal,default_credit_account_id:0 msgid "It acts as a default account for credit amount" -msgstr "Выступает в качестве счета по умолчанию для сумм по кредиту" +msgstr "Используется как кредитовый счет по умолчанию" #. module: account #: view:cash.box.out:0 @@ -5036,7 +5061,7 @@ msgstr "Отменено" #. module: account #: help:account.config.settings,group_proforma_invoices:0 msgid "Allows you to put invoices in pro-forma state." -msgstr "" +msgstr "Позволяет устанавливать статус \"Проформа\" для счетов." #. module: account #: view:account.journal:0 @@ -5050,6 +5075,7 @@ msgid "" "It adds the currency column on report if the currency differs from the " "company currency." msgstr "" +"Добавляет колонку валюты в отчет, если валюта отлична от валюты компании." #. module: account #: code:addons/account/account.py:3394 @@ -5281,7 +5307,7 @@ msgstr "Проводки журнала для проверки" #. module: account #: selection:res.company,tax_calculation_rounding_method:0 msgid "Round Globally" -msgstr "" +msgstr "Глобальное округление" #. module: account #: view:account.bank.statement:0 @@ -5295,7 +5321,7 @@ msgid "Tax Application" msgstr "Применение налога" #. module: account -#: code:addons/account/account_invoice.py:919 +#: code:addons/account/account_invoice.py:922 #, python-format msgid "" "Please verify the price of the invoice !\n" @@ -5561,7 +5587,7 @@ msgstr "" #. module: account #: view:account.invoice:0 msgid "Pro Forma Invoice " -msgstr "Предварительный счет " +msgstr "Проформа счета " #. module: account #: selection:account.subscription,period_type:0 @@ -5597,7 +5623,7 @@ msgstr "Прибыль и убыток (счет доходов)" #. module: account #: field:account.journal,allow_date:0 msgid "Check Date in Period" -msgstr "" +msgstr "Проверка даты в периоде" #. module: account #: model:ir.ui.menu,name:account.final_accounting_reports @@ -5622,7 +5648,7 @@ msgid "Compute Code (if type=code)" msgstr "Вычислить код (если тип=код)" #. module: account -#: code:addons/account/account_invoice.py:505 +#: code:addons/account/account_invoice.py:508 #, python-format msgid "" "Cannot find a chart of accounts for this company, you should create one." @@ -5973,7 +5999,7 @@ msgstr "Сумма в валюте" #. module: account #: selection:res.company,tax_calculation_rounding_method:0 msgid "Round per Line" -msgstr "" +msgstr "Округление каждой позиции" #. module: account #: report:account.analytic.account.balance:0 @@ -6063,7 +6089,7 @@ msgstr "Открыть кассу" #. module: account #: selection:account.financial.report,style_overwrite:0 msgid "Automatic formatting" -msgstr "" +msgstr "Автоматическое форматирование" #. module: account #: view:account.move.line.reconcile:0 @@ -6166,7 +6192,7 @@ msgstr "Доход" #: view:account.config.settings:0 #: view:account.invoice:0 #: view:account.invoice.report:0 -#: code:addons/account/account_invoice.py:387 +#: code:addons/account/account_invoice.py:390 #, python-format msgid "Supplier" msgstr "Поставщик" @@ -6186,7 +6212,7 @@ msgid "Account n°" msgstr "№ счета" #. module: account -#: code:addons/account/account_invoice.py:92 +#: code:addons/account/account_invoice.py:95 #, python-format msgid "Free Reference" msgstr "Свободная Ссылка" @@ -6196,7 +6222,9 @@ msgstr "Свободная Ссылка" #: selection:account.common.partner.report,result_selection:0 #: selection:account.partner.balance,result_selection:0 #: selection:account.partner.ledger,result_selection:0 +#: report:account.third_party_ledger:0 #: code:addons/account/report/account_partner_balance.py:301 +#: code:addons/account/report/account_partner_ledger.py:276 #, python-format msgid "Receivable and Payable Accounts" msgstr "Счета дебиторской и кредиторской задолженности" @@ -6323,7 +6351,7 @@ msgstr "" #. module: account #: field:account.journal,loss_account_id:0 msgid "Loss Account" -msgstr "" +msgstr "Счет убытков" #. module: account #: field:account.tax,account_collected_id:0 @@ -6498,10 +6526,10 @@ msgstr "Позиция аналитики" #. module: account #: model:ir.ui.menu,name:account.menu_action_model_form msgid "Models" -msgstr "" +msgstr "Модели" #. module: account -#: code:addons/account/account_invoice.py:1121 +#: code:addons/account/account_invoice.py:1124 #, python-format msgid "" "You cannot cancel an invoice which is partially paid. You need to " @@ -6673,7 +6701,7 @@ msgid "You cannot create journal items on closed account." msgstr "" #. module: account -#: code:addons/account/account_invoice.py:630 +#: code:addons/account/account_invoice.py:633 #, python-format msgid "Invoice line account's company and invoice's compnay does not match." msgstr "" @@ -6718,7 +6746,7 @@ msgstr "Собственные средства" #. module: account #: field:account.journal,internal_account_id:0 msgid "Internal Transfers Account" -msgstr "" +msgstr "Счет внутренних переводов" #. module: account #: code:addons/account/wizard/pos_box.py:32 @@ -6734,7 +6762,7 @@ msgstr "Процент" #. module: account #: selection:account.config.settings,tax_calculation_rounding_method:0 msgid "Round globally" -msgstr "" +msgstr "Глобальное округление" #. module: account #: selection:account.report.general.ledger,sortby:0 @@ -6825,7 +6853,7 @@ msgstr "" #: code:addons/account/account.py:1453 #: code:addons/account/account.py:1482 #: code:addons/account/account.py:1489 -#: code:addons/account/account_invoice.py:1012 +#: code:addons/account/account_invoice.py:1015 #: code:addons/account/account_move_line.py:1005 #: code:addons/account/wizard/account_automatic_reconcile.py:148 #: code:addons/account/wizard/account_fiscalyear_close.py:88 @@ -6912,7 +6940,7 @@ msgstr "" #: report:account.invoice:0 #: selection:account.invoice,type:0 #: selection:account.invoice.report,type:0 -#: code:addons/account/account_invoice.py:1157 +#: code:addons/account/account_invoice.py:1160 #: selection:report.invoice.created,type:0 #, python-format msgid "Supplier Refund" @@ -7553,7 +7581,7 @@ msgstr "Для процентных налогов, введите % как чи #. module: account #: model:ir.actions.act_window,name:account.action_account_report_tree_hierarchy msgid "Financial Reports Hierarchy" -msgstr "" +msgstr "Структура финансовых отчетов" #. module: account #: model:ir.actions.act_window,name:account.act_account_invoice_partner_relation @@ -7718,7 +7746,7 @@ msgstr "" #. module: account #: field:account.config.settings,group_proforma_invoices:0 msgid "Allow pro-forma invoices" -msgstr "" +msgstr "Разрешить проформы счетов" #. module: account #: view:account.bank.statement:0 @@ -7789,7 +7817,7 @@ msgstr "Журнал счета" #. module: account #: field:account.config.settings,tax_calculation_rounding_method:0 msgid "Tax calculation rounding method" -msgstr "" +msgstr "Метод округления при расчете налога" #. module: account #: model:process.node,name:account.process_node_paidinvoice0 @@ -7912,7 +7940,7 @@ msgstr "Нормальный" #: model:ir.actions.act_window,name:account.action_email_templates #: model:ir.ui.menu,name:account.menu_email_templates msgid "Email Templates" -msgstr "" +msgstr "Шаблоны писем" #. module: account #: view:account.move.line:0 @@ -7974,7 +8002,7 @@ msgstr "Нет номера части !" #: view:account.financial.report:0 #: model:ir.ui.menu,name:account.menu_account_report_tree_hierarchy msgid "Account Reports Hierarchy" -msgstr "" +msgstr "Структура отчетов по счетам" #. module: account #: help:account.account.template,chart_template_id:0 @@ -8050,6 +8078,8 @@ msgstr "Отмена выбранных счетов" msgid "" "This field is used to generate legal reports: profit and loss, balance sheet." msgstr "" +"Это поле используется для генерации официальных отчетов: прибыль и убыток, " +"баланс." #. module: account #: selection:account.entries.report,month:0 @@ -8061,7 +8091,7 @@ msgid "May" msgstr "Май" #. module: account -#: code:addons/account/account_invoice.py:817 +#: code:addons/account/account_invoice.py:820 #, python-format msgid "Global taxes defined, but they are not in invoice lines !" msgstr "" @@ -8102,7 +8132,7 @@ msgstr "Провести записи журнала" #: view:account.config.settings:0 #: view:account.invoice:0 #: view:account.invoice.report:0 -#: code:addons/account/account_invoice.py:385 +#: code:addons/account/account_invoice.py:388 #, python-format msgid "Customer" msgstr "Заказчик" @@ -8303,7 +8333,7 @@ msgstr "" #. module: account #: field:res.company,tax_calculation_rounding_method:0 msgid "Tax Calculation Rounding Method" -msgstr "" +msgstr "Метод округления при расчете налога" #. module: account #: field:account.entries.report,move_line_state:0 @@ -8357,7 +8387,7 @@ msgid "Select a currency to apply on the invoice" msgstr "Выбрать валюту применяемую в счете" #. module: account -#: code:addons/account/account_invoice.py:898 +#: code:addons/account/account_invoice.py:901 #, python-format msgid "No Invoice Lines !" msgstr "Нет позиций в счете !" @@ -8433,7 +8463,7 @@ msgid "Associated Partner" msgstr "Связанный контрагент" #. module: account -#: code:addons/account/account_invoice.py:1462 +#: code:addons/account/account_invoice.py:1465 #, python-format msgid "You must first select a partner !" msgstr "Сначала вы должны выбрать партнера !" @@ -8998,7 +9028,7 @@ msgstr "Вы уверены?" #. module: account #: view:account.journal:0 msgid "Accounts Allowed (empty for no control)" -msgstr "Разрешенные счета (остваьте пустым для снятия проверок)" +msgstr "Разрешенные счета (оставьте пустым для снятия проверок)" #. module: account #: field:account.config.settings,sale_tax_rate:0 @@ -9384,7 +9414,7 @@ msgid "Purchase Tax(%)" msgstr "Налог на покупку(%)" #. module: account -#: code:addons/account/account_invoice.py:898 +#: code:addons/account/account_invoice.py:901 #, python-format msgid "Please create some invoice lines." msgstr "Пожалуйста, создайте позиции счета" @@ -9396,6 +9426,8 @@ msgid "" "Please check that the field 'Internal Transfers Account' is set on the " "payment method '%s'." msgstr "" +"Пожалуйста, проверьте , что поле \"Счет внутренних переводов\" установлено " +"для способа оплаты '%s'." #. module: account #: field:account.vat.declaration,display_detail:0 @@ -9448,7 +9480,7 @@ msgstr "Конец периода" #: model:ir.actions.act_window,name:account.action_account_report #: model:ir.ui.menu,name:account.menu_account_reports msgid "Financial Reports" -msgstr "" +msgstr "Финансовые отчеты" #. module: account #: model:account.account.type,name:account.account_type_liability_view1 @@ -9737,6 +9769,7 @@ msgid "" "This field contains the information related to the numbering of the journal " "entries of this journal." msgstr "" +"Это поле содержит информацию, связанную с нумерацией проводок этого журнала." #. module: account #: field:account.invoice,sent:0 @@ -9768,7 +9801,7 @@ msgstr "" #. module: account #: model:ir.ui.menu,name:account.menu_finance_periodical_processing msgid "Periodic Processing" -msgstr "" +msgstr "Периодическая обработка" #. module: account #: view:account.invoice.report:0 @@ -9940,7 +9973,7 @@ msgid "Unreconciled" msgstr "Не сверенные" #. module: account -#: code:addons/account/account_invoice.py:919 +#: code:addons/account/account_invoice.py:922 #, python-format msgid "Bad total !" msgstr "Плохой итог !" @@ -10046,7 +10079,7 @@ msgstr "" #. module: account #: field:account.bank.statement.line,name:0 msgid "OBI" -msgstr "" +msgstr "Назначение" #. module: account #: help:res.partner,property_account_payable:0 @@ -10196,7 +10229,7 @@ msgstr "Апрель" #. module: account #: model:account.financial.report,name:account.account_financial_report_profitloss_toreport0 msgid "Profit (Loss) to report" -msgstr "" +msgstr "Прибыль (убыток) в отчет" #. module: account #: code:addons/account/account_invoice.py:379 @@ -10280,7 +10313,7 @@ msgstr "Внутренний тип" #. module: account #: field:account.subscription.generate,date:0 msgid "Generate Entries Before" -msgstr "" +msgstr "Генерировать проводки до" #. module: account #: 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 #, python-format msgid "Cannot %s draft/proforma/cancel invoice." -msgstr "" +msgstr "Нельзя %s черновик/проформу/закрытый счет." #. module: account #: field:account.tax,account_analytic_paid_id:0 @@ -10415,6 +10448,7 @@ msgstr "Открыть для банковской сверки" #. module: account #: field:account.account,company_id:0 +#: report:account.account.balance:0 #: field:account.aged.trial.balance,company_id:0 #: field:account.analytic.journal,company_id:0 #: field:account.balance.report,company_id:0 @@ -10430,7 +10464,9 @@ msgstr "Открыть для банковской сверки" #: field:account.entries.report,company_id:0 #: field:account.fiscal.position,company_id:0 #: field:account.fiscalyear,company_id:0 +#: report:account.general.journal:0 #: field:account.general.journal,company_id:0 +#: report:account.general.ledger_landscape:0 #: field:account.installer,company_id:0 #: field:account.invoice,company_id:0 #: field:account.invoice.line,company_id:0 @@ -10439,6 +10475,7 @@ msgstr "Открыть для банковской сверки" #: field:account.invoice.tax,company_id:0 #: field:account.journal,company_id:0 #: field:account.journal.period,company_id:0 +#: report:account.journal.period.print:0 #: field:account.model,company_id:0 #: field:account.move,company_id:0 #: field:account.move.line,company_id:0 @@ -10603,7 +10640,7 @@ msgstr "Счета системы налогообложения" #: view:account.invoice:0 #: selection:account.invoice,type:0 #: selection:account.invoice.report,type:0 -#: code:addons/account/account_invoice.py:1155 +#: code:addons/account/account_invoice.py:1158 #: model:process.process,name:account.process_process_supplierinvoiceprocess0 #: selection:report.invoice.created,type:0 #, python-format @@ -10692,8 +10729,10 @@ msgid "" msgstr "" #. module: account +#: report:account.account.balance:0 #: selection:account.balance.report,display_account:0 #: selection:account.common.account.report,display_account:0 +#: report:account.general.ledger_landscape:0 #: selection:account.report.general.ledger,display_account:0 msgid "With movements" msgstr "С движением" @@ -10789,7 +10828,7 @@ msgid "Entries Sorted by" msgstr "" #. module: account -#: code:addons/account/account_invoice.py:1543 +#: code:addons/account/account_invoice.py:1546 #, python-format msgid "" "The selected unit of measure is not compatible with the unit of measure of " @@ -10870,7 +10909,7 @@ msgstr "Искать счет" #: report:account.invoice:0 #: view:account.invoice:0 #: view:account.invoice.report:0 -#: code:addons/account/account_invoice.py:1156 +#: code:addons/account/account_invoice.py:1159 #, python-format msgid "Refund" msgstr "Возвраты" @@ -10942,7 +10981,7 @@ msgid "Manual Invoice Taxes" msgstr "" #. module: account -#: code:addons/account/account_invoice.py:570 +#: code:addons/account/account_invoice.py:573 #, python-format msgid "The payment term of supplier does not have a payment term line." msgstr "" @@ -11096,7 +11135,7 @@ msgstr "" #. module: account #: selection:account.config.settings,tax_calculation_rounding_method:0 msgid "Round per line" -msgstr "" +msgstr "Округление каждой позиции" #. module: account #: help:account.move.line,amount_residual_currency:0 diff --git a/addons/account/i18n/vi.po b/addons/account/i18n/vi.po index 4bab5df9a60..66b82d479b2 100644 --- a/addons/account/i18n/vi.po +++ b/addons/account/i18n/vi.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2012-12-21 17:04+0000\n" -"PO-Revision-Date: 2012-05-10 17:34+0000\n" -"Last-Translator: Raphael Collet (OpenERP) \n" +"PO-Revision-Date: 2013-06-29 14:38+0000\n" +"Last-Translator: Hung Tran \n" "Language-Team: Vietnamese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-16 05:19+0000\n" -"X-Generator: Launchpad (build 16532)\n" +"X-Launchpad-Export-Date: 2013-06-30 05:55+0000\n" +"X-Generator: Launchpad (build 16692)\n" #. module: account #: model:process.transition,name:account.process_transition_supplierreconcilepaid0 @@ -60,7 +60,7 @@ msgid "Residual" msgstr "Còn lại" #. module: account -#: code:addons/account/account_bank_statement.py:368 +#: code:addons/account/account_bank_statement.py:369 #, python-format msgid "Journal item \"%s\" is not valid." msgstr "" @@ -73,12 +73,12 @@ msgstr "Aged Receivable Till Today" #. module: account #: model:process.transition,name:account.process_transition_invoiceimport0 msgid "Import from invoice or payment" -msgstr "Import from invoice or payment" +msgstr "Nhập từ hóa đơn hoặc khoản thanh toán" #. module: account -#: code:addons/account/account_move_line.py:1061 -#: code:addons/account/account_move_line.py:1146 -#: code:addons/account/account_move_line.py:1213 +#: code:addons/account/account_move_line.py:1058 +#: code:addons/account/account_move_line.py:1143 +#: code:addons/account/account_move_line.py:1210 #, python-format msgid "Bad Account!" msgstr "" @@ -94,7 +94,7 @@ msgstr "Tổng Nợ" msgid "" "Error!\n" "You cannot create recursive account templates." -msgstr "" +msgstr "Lỗi!" #. module: account #. openerp-web @@ -132,15 +132,15 @@ msgstr "" #: code:addons/account/account.py:641 #: code:addons/account/account.py:686 #: code:addons/account/account.py:781 -#: code:addons/account/account.py:1049 -#: code:addons/account/account_invoice.py:788 -#: code:addons/account/account_invoice.py:791 -#: code:addons/account/account_invoice.py:794 -#: code:addons/account/account_invoice.py:1514 +#: code:addons/account/account.py:1058 +#: code:addons/account/account_invoice.py:820 +#: code:addons/account/account_invoice.py:823 +#: 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:774 -#: code:addons/account/account_move_line.py:827 -#: code:addons/account/account_move_line.py:867 +#: code:addons/account/account_move_line.py:771 +#: code:addons/account/account_move_line.py:824 +#: code:addons/account/account_move_line.py:864 #: code:addons/account/wizard/account_fiscalyear_close.py:62 #: code:addons/account/wizard/account_invoice_state.py:44 #: code:addons/account/wizard/account_invoice_state.py:68 @@ -152,7 +152,7 @@ msgid "Warning!" msgstr "Cảnh báo!" #. module: account -#: code:addons/account/account.py:3159 +#: code:addons/account/account.py:3197 #, python-format msgid "Miscellaneous Journal" msgstr "" @@ -192,12 +192,12 @@ msgstr "Hoá đơn được tạo trong 15 ngày qua" #. module: account #: field:accounting.report,label_filter:0 msgid "Column Label" -msgstr "" +msgstr "Nhãn cột" #. module: account #: help:account.config.settings,code_digits:0 msgid "No. of digits to use for account code" -msgstr "" +msgstr "Số chữ số dùng cho mã tài khoản" #. module: account #: help:account.analytic.journal,type:0 @@ -242,7 +242,7 @@ msgstr "Báo cáo của Bỉ" #. module: account #: model:mail.message.subtype,name:account.mt_invoice_validated msgid "Validated" -msgstr "" +msgstr "Đã xác nhận" #. module: account #: model:account.account.type,name:account.account_type_income_view1 @@ -318,7 +318,7 @@ msgstr "Tài khoản chưa đối soát" #. module: account #: field:account.config.settings,module_account_budget:0 msgid "Budget management" -msgstr "" +msgstr "Quản lý quỹ" #. module: account #: view:product.template:0 @@ -336,10 +336,10 @@ msgstr "" #. module: account #: field:account.config.settings,group_multi_currency:0 msgid "Allow multi currencies" -msgstr "" +msgstr "Cho phép đa tiền tệ" #. module: account -#: code:addons/account/account_invoice.py:74 +#: code:addons/account/account_invoice.py:77 #, python-format msgid "You must define an analytic journal of type '%s'!" msgstr "" @@ -357,7 +357,7 @@ msgstr "Tháng Sáu" #: code:addons/account/wizard/account_automatic_reconcile.py:148 #, python-format msgid "You must select accounts to reconcile." -msgstr "" +msgstr "Bạn phải chọn một tài khoản để đối soát" #. module: account #: help:account.config.settings,group_analytic_accounting:0 @@ -370,7 +370,7 @@ msgstr "" #: view:account.invoice.report:0 #: field:account.invoice.report,user_id:0 msgid "Salesperson" -msgstr "" +msgstr "Nhân viên bán hàng" #. module: account #: view:account.bank.statement:0 @@ -660,7 +660,7 @@ msgid "Profit Account" msgstr "" #. module: account -#: code:addons/account/account_move_line.py:1159 +#: code:addons/account/account_move_line.py:1156 #, python-format msgid "No period found or more than one period found for the given date." msgstr "" @@ -671,13 +671,13 @@ msgid "Report of the Sales by Account Type" msgstr "Báo cáo Bán hàng theo Loại Tài khoản" #. module: account -#: code:addons/account/account.py:3163 +#: code:addons/account/account.py:3201 #, python-format msgid "SAJ" msgstr "SAJ" #. module: account -#: code:addons/account/account.py:1553 +#: code:addons/account/account.py:1591 #, python-format msgid "Cannot create move with currency different from .." msgstr "" @@ -730,7 +730,9 @@ msgstr "" #: selection:account.common.partner.report,result_selection:0 #: selection:account.partner.balance,result_selection:0 #: selection:account.partner.ledger,result_selection:0 +#: report:account.third_party_ledger:0 #: code:addons/account/report/account_partner_balance.py:297 +#: code:addons/account/report/account_partner_ledger.py:272 #, python-format msgid "Receivable Accounts" msgstr "Các tài khoản phải thu" @@ -738,7 +740,7 @@ msgstr "Các tài khoản phải thu" #. module: account #: view:account.config.settings:0 msgid "Configure your company bank accounts" -msgstr "" +msgstr "Cấu hình tài khoản ngân hàng của công ty" #. module: account #: view:account.invoice.refund:0 @@ -768,7 +770,7 @@ msgid "Are you sure you want to create entries?" msgstr "Are you sure you want to create entries?" #. module: account -#: code:addons/account/account_invoice.py:1330 +#: code:addons/account/account_invoice.py:1361 #, python-format msgid "Invoice partially paid: %s%s of %s%s (%s%s remaining)." msgstr "" @@ -817,7 +819,7 @@ msgstr "" #. module: account #: model:ir.ui.menu,name:account.menu_account_report msgid "Financial Report" -msgstr "" +msgstr "Báo cáo tài chính" #. module: account #: view:account.analytic.account:0 @@ -837,7 +839,7 @@ msgid "Type" msgstr "Loại" #. module: account -#: code:addons/account/account_invoice.py:794 +#: code:addons/account/account_invoice.py:826 #, python-format msgid "" "Taxes are missing!\n" @@ -860,10 +862,10 @@ msgid "Supplier Invoices And Refunds" msgstr "" #. module: account -#: code:addons/account/account_move_line.py:854 +#: code:addons/account/account_move_line.py:851 #, python-format msgid "Entry is already reconciled." -msgstr "" +msgstr "Bút toán đã đối soát xong." #. module: account #: view:account.move.line.unreconcile.select:0 @@ -880,7 +882,7 @@ msgstr "Account Analytic Journal" #. module: account #: view:account.invoice:0 msgid "Send by Email" -msgstr "" +msgstr "Gửi qua Email" #. module: account #: help:account.central.journal,amount_currency:0 @@ -900,7 +902,7 @@ msgstr "J.C./Move name" #. module: account #: view:account.account:0 msgid "Account Code and Name" -msgstr "" +msgstr "Mã tài khoản và tên" #. module: account #: selection:account.entries.report,month:0 @@ -931,9 +933,13 @@ msgid "" "

\n" " " msgstr "" +"

\n" +" Không tìm thấy mục nhật ký.\n" +"

\n" +" " #. module: account -#: code:addons/account/account.py:1639 +#: code:addons/account/account.py:1677 #, python-format msgid "" "You cannot unreconcile journal items if they has been generated by the " @@ -977,7 +983,7 @@ msgstr "Đến hạn" #. module: account #: field:account.config.settings,purchase_journal_id:0 msgid "Purchase journal" -msgstr "" +msgstr "Nhật ký mua hàng" #. module: account #: model:mail.message.subtype,description:account.mt_invoice_paid @@ -1017,7 +1023,7 @@ msgid "Liability" msgstr "Liability" #. module: account -#: code:addons/account/account_invoice.py:867 +#: code:addons/account/account_invoice.py:899 #, python-format msgid "Please define sequence on the journal related to this invoice." msgstr "" @@ -1088,13 +1094,13 @@ msgstr "Mã" #. module: account #: view:account.config.settings:0 msgid "Features" -msgstr "" +msgstr "Tính năng" #. module: account -#: code:addons/account/account.py:2308 -#: code:addons/account/account_bank_statement.py:423 -#: code:addons/account/account_invoice.py:74 -#: code:addons/account/account_invoice.py:744 +#: code:addons/account/account.py:2346 +#: code:addons/account/account_bank_statement.py:424 +#: code:addons/account/account_invoice.py:77 +#: code:addons/account/account_invoice.py:775 #: code:addons/account/account_move_line.py:195 #, python-format msgid "No Analytic Journal !" @@ -1220,7 +1226,7 @@ msgstr "" #. module: account #: model:account.account.type,name:account.data_account_type_bank #: selection:account.bank.accounts.wizard,account_type:0 -#: code:addons/account/account.py:3054 +#: code:addons/account/account.py:3092 #, python-format msgid "Bank" msgstr "Ngân hàng" @@ -1309,7 +1315,7 @@ msgstr "Outgoing Currencies Rate" #: view:account.analytic.account:0 #: field:account.config.settings,chart_template_id:0 msgid "Template" -msgstr "" +msgstr "Mẫu" #. module: account #: selection:account.analytic.journal,type:0 @@ -1401,7 +1407,7 @@ msgstr "Mức" #: code:addons/account/wizard/account_change_currency.py:38 #, python-format msgid "You can only change currency for Draft Invoice." -msgstr "" +msgstr "Bạn chỉ có thể thay đổi đồng tiền cho dự thảo hóa đơn" #. module: account #: report:account.invoice:0 @@ -1427,7 +1433,7 @@ msgstr "Chọn một chu kỳ bắt đầu và một chu kỳ kết thúc" #: model:account.financial.report,name:account.account_financial_report_profitandloss0 #: model:ir.actions.act_window,name:account.action_account_report_pl msgid "Profit and Loss" -msgstr "" +msgstr "Lãi và lỗ" #. module: account #: model:ir.model,name:account.model_account_account_template @@ -1500,7 +1506,7 @@ msgstr "" #. module: account #: field:account.invoice.report,state:0 msgid "Invoice Status" -msgstr "" +msgstr "Tình trạng hóa đơn" #. module: account #: view:account.bank.statement:0 @@ -1522,18 +1528,20 @@ msgstr "Khoản phải thu" #: code:addons/account/account.py:768 #, python-format msgid "%s (copy)" -msgstr "" +msgstr "%s (sao chép)" #. module: account +#: report:account.account.balance:0 #: selection:account.balance.report,display_account:0 #: selection:account.common.account.report,display_account:0 +#: report:account.general.ledger_landscape:0 #: selection:account.partner.balance,display_partner:0 #: selection:account.report.general.ledger,display_account:0 msgid "With balance is not equal to 0" msgstr "With balance is not equal to 0" #. module: account -#: code:addons/account/account.py:1445 +#: code:addons/account/account.py:1483 #, python-format msgid "" "There is no default debit account defined \n" @@ -1601,7 +1609,7 @@ msgstr "" #. module: account #: view:account.config.settings:0 msgid "eInvoicing & Payments" -msgstr "" +msgstr "Hóa đơn điện tử & Thanh toán" #. module: account #: view:account.analytic.cost.ledger.journal.report:0 @@ -1640,7 +1648,7 @@ msgstr "Case Code" #. module: account #: field:account.config.settings,company_footer:0 msgid "Bank accounts footer preview" -msgstr "" +msgstr "Xem trước lề dưới tài khoản ngân hàng" #. module: account #: selection:account.account,type:0 @@ -1681,7 +1689,7 @@ msgstr "Không bị thuế" #. module: account #: view:account.journal:0 msgid "Advanced Settings" -msgstr "" +msgstr "Thiết lập nâng cao" #. module: account #: view:account.bank.statement:0 @@ -1756,8 +1764,10 @@ msgstr "" #: view:account.invoice:0 #: view:account.invoice.report:0 #: field:account.move.line,invoice:0 +#: code:addons/account/account_invoice.py:1157 #: model:ir.model,name:account.model_account_invoice #: model:res.request.link,name:account.req_link_invoice +#, python-format msgid "Invoice" msgstr "Hóa đơn" @@ -1810,7 +1820,7 @@ msgstr "Doanh số theo loại tài khoản" #: model:account.payment.term,name:account.account_payment_term_15days #: model:account.payment.term,note:account.account_payment_term_15days msgid "15 Days" -msgstr "" +msgstr "15 ngày" #. module: account #: model:ir.ui.menu,name:account.periodical_processing_invoicing @@ -1832,7 +1842,7 @@ msgid "" msgstr "" #. module: account -#: code:addons/account/account_move_line.py:857 +#: code:addons/account/account_move_line.py:854 #, python-format msgid "Some entries are already reconciled." msgstr "" @@ -1880,7 +1890,7 @@ msgstr "nếu thiết lập này bị sai. bạn có thể ẩn nó thay vì xó #. module: account #: field:account.report.general.ledger,sortby:0 msgid "Sort by" -msgstr "" +msgstr "Xếp theo" #. module: account #: model:ir.actions.act_window,name:account.act_account_partner_account_move_all @@ -1948,12 +1958,12 @@ msgstr "Draft statement" #. module: account #: model:mail.message.subtype,description:account.mt_invoice_validated msgid "Invoice validated" -msgstr "" +msgstr "Hóa đơn đã xác nhận" #. module: account #: field:account.config.settings,module_account_check_writing:0 msgid "Pay your suppliers by check" -msgstr "" +msgstr "Trả tiền cho NCC bằng séc" #. module: account #: field:account.move.line.reconcile,credit:0 @@ -1984,36 +1994,36 @@ msgstr "" #: code:addons/account/account.py:634 #: code:addons/account/account.py:636 #: code:addons/account/account.py:930 -#: code:addons/account/account.py:1062 -#: code:addons/account/account.py:1064 -#: code:addons/account/account.py:1103 -#: code:addons/account/account.py:1283 -#: code:addons/account/account.py:1297 -#: code:addons/account/account.py:1320 -#: code:addons/account/account.py:1327 -#: code:addons/account/account.py:1549 -#: code:addons/account/account.py:1553 -#: code:addons/account/account.py:1639 -#: code:addons/account/account.py:2320 -#: code:addons/account/account.py:2640 -#: code:addons/account/account.py:3427 +#: code:addons/account/account.py:1071 +#: code:addons/account/account.py:1073 +#: code:addons/account/account.py:1116 +#: code:addons/account/account.py:1319 +#: code:addons/account/account.py:1333 +#: code:addons/account/account.py:1356 +#: code:addons/account/account.py:1363 +#: code:addons/account/account.py:1587 +#: code:addons/account/account.py:1591 +#: code:addons/account/account.py:1677 +#: code:addons/account/account.py:2358 +#: code:addons/account/account.py:2678 +#: code:addons/account/account.py:3465 #: code:addons/account/account_analytic_line.py:89 #: code:addons/account/account_analytic_line.py:98 -#: code:addons/account/account_bank_statement.py:367 -#: code:addons/account/account_bank_statement.py:380 -#: code:addons/account/account_bank_statement.py:418 +#: code:addons/account/account_bank_statement.py:368 +#: code:addons/account/account_bank_statement.py:381 +#: code:addons/account/account_bank_statement.py:419 #: code:addons/account/account_cash_statement.py:256 #: code:addons/account/account_cash_statement.py:300 -#: code:addons/account/account_invoice.py:867 -#: code:addons/account/account_invoice.py:901 -#: code:addons/account/account_invoice.py:1091 -#: code:addons/account/account_move_line.py:578 -#: code:addons/account/account_move_line.py:831 +#: code:addons/account/account_invoice.py:899 +#: code:addons/account/account_invoice.py:933 +#: code:addons/account/account_invoice.py:1124 +#: code:addons/account/account_move_line.py:579 +#: code:addons/account/account_move_line.py:828 +#: code:addons/account/account_move_line.py:851 #: code:addons/account/account_move_line.py:854 -#: code:addons/account/account_move_line.py:857 -#: code:addons/account/account_move_line.py:1122 -#: code:addons/account/account_move_line.py:1124 -#: code:addons/account/account_move_line.py:1159 +#: code:addons/account/account_move_line.py:1119 +#: code:addons/account/account_move_line.py:1121 +#: code:addons/account/account_move_line.py:1156 #: code:addons/account/report/common_report_header.py:92 #: code:addons/account/wizard/account_change_currency.py:38 #: code:addons/account/wizard/account_change_currency.py:59 @@ -2027,11 +2037,11 @@ msgstr "" #: code:addons/account/wizard/account_report_common.py:158 #: code:addons/account/wizard/account_report_common.py:164 #: code:addons/account/wizard/account_use_model.py:44 -#: code:addons/account/wizard/pos_box.py:32 -#: code:addons/account/wizard/pos_box.py:36 +#: code:addons/account/wizard/pos_box.py:31 +#: code:addons/account/wizard/pos_box.py:35 #, python-format msgid "Error!" -msgstr "" +msgstr "Lỗi!" #. module: account #: model:ir.actions.act_window,help:account.action_invoice_tree2 @@ -2070,7 +2080,7 @@ msgid "period close" msgstr "đóng chu kỳ" #. module: account -#: code:addons/account/account.py:1049 +#: code:addons/account/account.py:1058 #, python-format msgid "" "This journal already contains items for this period, therefore you cannot " @@ -2085,7 +2095,7 @@ msgstr "Entries By Line" #. module: account #: field:account.vat.declaration,based_on:0 msgid "Based on" -msgstr "" +msgstr "Dựa trên" #. module: account #: model:ir.actions.act_window,help:account.action_bank_statement_tree @@ -2133,7 +2143,7 @@ msgstr "Phân tích ngân quỹ" #. module: account #: model:ir.actions.report.xml,name:account.account_journal_sale_purchase msgid "Sale/Purchase Journal" -msgstr "" +msgstr "Nhật ký Mua/Bán hàng" #. module: account #: view:account.analytic.account:0 @@ -2142,7 +2152,7 @@ msgid "Analytic account" msgstr "Tài khoản phân tích" #. module: account -#: code:addons/account/account_bank_statement.py:405 +#: code:addons/account/account_bank_statement.py:406 #, python-format msgid "Please verify that an account is defined in the journal." msgstr "Vui lòng kiểm tra việc gán một tài khoản cho sổ nhật ký này." @@ -2156,7 +2166,7 @@ msgstr "Hợp lệ" #: field:account.bank.statement,message_follower_ids:0 #: field:account.invoice,message_follower_ids:0 msgid "Followers" -msgstr "" +msgstr "Người theo dõi" #. module: account #: model:ir.actions.act_window,name:account.action_account_print_journal @@ -2185,14 +2195,14 @@ msgstr "Account Aged Trial balance Report" #. module: account #: view:account.fiscalyear.close.state:0 msgid "Close Fiscal Year" -msgstr "" +msgstr "Đóng năm tài khóa" #. module: account #. openerp-web #: code:addons/account/static/src/xml/account_move_line_quickadd.xml:14 #, python-format msgid "Journal :" -msgstr "" +msgstr "Nhật ký:" #. module: account #: sql_constraint:account.fiscal.position.tax:0 @@ -2209,12 +2219,12 @@ msgstr "Định nghĩa thuế" #: view:account.config.settings:0 #: model:ir.actions.act_window,name:account.action_account_config msgid "Configure Accounting" -msgstr "" +msgstr "Cấu hình kế toán" #. module: account #: field:account.invoice.report,uom_name:0 msgid "Reference Unit of Measure" -msgstr "" +msgstr "Tham chiếu đơn vị tính" #. module: account #: help:account.journal,allow_date:0 @@ -2230,12 +2240,12 @@ msgstr "" #: code:addons/account/static/src/xml/account_move_reconciliation.xml:8 #, python-format msgid "Good job!" -msgstr "" +msgstr "Tốt lắm!" #. module: account #: field:account.config.settings,module_account_asset:0 msgid "Assets management" -msgstr "" +msgstr "Quản lý tài sản" #. module: account #: view:account.account:0 @@ -2244,7 +2254,9 @@ msgstr "" #: selection:account.common.partner.report,result_selection:0 #: selection:account.partner.balance,result_selection:0 #: selection:account.partner.ledger,result_selection:0 +#: report:account.third_party_ledger:0 #: code:addons/account/report/account_partner_balance.py:299 +#: code:addons/account/report/account_partner_ledger.py:274 #, python-format msgid "Payable Accounts" msgstr "Các tài khoản phải trả" @@ -2411,7 +2423,7 @@ msgstr "Search Chart of Account Templates" #. module: account #: report:account.invoice:0 msgid "Customer Code" -msgstr "" +msgstr "Mã khách hàng" #. module: account #: view:account.account.type:0 @@ -2554,7 +2566,7 @@ msgid "Create an Account Based on this Template" msgstr "Tạo một Tài khoản dựa trên mẫu này" #. module: account -#: code:addons/account/account_invoice.py:901 +#: code:addons/account/account_invoice.py:933 #, python-format msgid "" "Cannot create the invoice.\n" @@ -2575,7 +2587,7 @@ msgid "Main Sequence" msgstr "Main Sequence" #. module: account -#: code:addons/account/account_bank_statement.py:477 +#: code:addons/account/account_bank_statement.py:478 #, python-format msgid "" "In order to delete a bank statement, you must first cancel it to delete " @@ -2599,7 +2611,7 @@ msgid "Fiscal Positions" msgstr "Fiscal Positions" #. module: account -#: code:addons/account/account_move_line.py:578 +#: code:addons/account/account_move_line.py:579 #, python-format msgid "You cannot create journal items on a closed account %s %s." msgstr "" @@ -2707,7 +2719,7 @@ msgid "Account Model Entries" msgstr "Account Model Entries" #. module: account -#: code:addons/account/account.py:3164 +#: code:addons/account/account.py:3202 #, python-format msgid "EXJ" msgstr "EXJ" @@ -2823,21 +2835,20 @@ msgid "Accounts" msgstr "Các tài khoản" #. module: account -#: code:addons/account/account.py:3503 -#: code:addons/account/account_bank_statement.py:404 -#: code:addons/account/account_invoice.py:378 -#: code:addons/account/account_invoice.py:484 -#: code:addons/account/account_invoice.py:582 -#: code:addons/account/account_invoice.py:597 -#: code:addons/account/account_invoice.py:605 -#: code:addons/account/account_invoice.py:627 -#: code:addons/account/account_move_line.py:535 +#: code:addons/account/account.py:3541 +#: code:addons/account/account_bank_statement.py:405 +#: code:addons/account/account_invoice.py:507 +#: code:addons/account/account_invoice.py:609 +#: code:addons/account/account_invoice.py:624 +#: code:addons/account/account_invoice.py:632 +#: code:addons/account/account_invoice.py:657 +#: code:addons/account/account_move_line.py:536 #, python-format msgid "Configuration Error!" msgstr "Lỗi cấu hình!" #. module: account -#: code:addons/account/account_bank_statement.py:433 +#: code:addons/account/account_bank_statement.py:434 #, python-format msgid "Statement %s confirmed, journal items were created." msgstr "" @@ -3030,7 +3041,7 @@ msgid "" msgstr "" #. module: account -#: code:addons/account/account.py:1062 +#: code:addons/account/account.py:1071 #, python-format msgid "You should choose the periods that belong to the same company." msgstr "" @@ -3043,7 +3054,7 @@ msgid "Sales by Account" msgstr "Doanh thu theo tài khoản" #. module: account -#: code:addons/account/account.py:1411 +#: code:addons/account/account.py:1449 #, python-format msgid "You cannot delete a posted journal entry \"%s\"." msgstr "" @@ -3059,8 +3070,8 @@ msgid "Sale journal" msgstr "" #. module: account -#: code:addons/account/account.py:2308 -#: code:addons/account/account_invoice.py:744 +#: code:addons/account/account.py:2346 +#: code:addons/account/account_invoice.py:775 #: code:addons/account/account_move_line.py:195 #, python-format msgid "You have to define an analytic journal on the '%s' journal!" @@ -3227,7 +3238,7 @@ msgid "Fiscal Position" msgstr "Fiscal Position" #. module: account -#: code:addons/account/account_invoice.py:791 +#: code:addons/account/account_invoice.py:823 #, python-format msgid "" "Tax base different!\n" @@ -3325,7 +3336,7 @@ msgstr "" "always use the rate at date." #. module: account -#: code:addons/account/account.py:2640 +#: code:addons/account/account.py:2678 #, python-format msgid "There is no parent code for the template account." msgstr "" @@ -3388,8 +3399,8 @@ msgid "View" msgstr "View" #. module: account -#: code:addons/account/account.py:3422 -#: code:addons/account/account_bank.py:95 +#: code:addons/account/account.py:3460 +#: code:addons/account/account_bank.py:94 #, python-format msgid "BNK" msgstr "BNK" @@ -3659,7 +3670,7 @@ msgstr "" "have the same references than the statement itself" #. module: account -#: code:addons/account/account_invoice.py:984 +#: code:addons/account/account_invoice.py:1016 #, python-format msgid "" "You cannot create an invoice on a centralized journal. Uncheck the " @@ -3674,7 +3685,7 @@ msgid "Starting Balance" msgstr "Số dư ban đầu" #. module: account -#: code:addons/account/account_invoice.py:1434 +#: code:addons/account/account_invoice.py:1465 #, python-format msgid "No Partner Defined !" msgstr "Không có đối tác được định nghĩa" @@ -3728,7 +3739,7 @@ msgid "" msgstr "" #. module: account -#: code:addons/account/account_move_line.py:535 +#: code:addons/account/account_move_line.py:536 #, python-format msgid "" "Cannot find any account journal of %s type for this company.\n" @@ -3878,7 +3889,7 @@ msgid "Period Length (days)" msgstr "" #. module: account -#: code:addons/account/account.py:1327 +#: code:addons/account/account.py:1363 #, python-format msgid "" "You cannot modify a posted entry of this journal.\n" @@ -3947,9 +3958,13 @@ msgid "VAT :" msgstr "Thuế GTGT :" #. module: account +#: report:account.account.balance:0 #: report:account.central.journal:0 #: view:account.config.settings:0 +#: report:account.general.journal:0 #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 +#: report:account.journal.period.print:0 #: report:account.partner.balance:0 #: report:account.third_party_ledger:0 #: report:account.third_party_ledger_other:0 @@ -4041,7 +4056,7 @@ msgid "Chart of Accounts Template" msgstr "Hoạch đồ Kế toán Mẫu" #. module: account -#: code:addons/account/account.py:2320 +#: code:addons/account/account.py:2358 #, python-format msgid "" "Maturity date of entry line generated by model line '%s' of model '%s' is " @@ -4053,8 +4068,10 @@ msgstr "" "Hãy xác định đối tác trên nó" #. module: account +#: report:account.account.balance:0 #: selection:account.balance.report,display_account:0 #: selection:account.common.account.report,display_account:0 +#: report:account.general.ledger_landscape:0 #: selection:account.report.general.ledger,display_account:0 #: selection:account.tax,type_tax_use:0 #: selection:account.tax.template,type_tax_use:0 @@ -4213,7 +4230,7 @@ msgid "Name" msgstr "Tên" #. module: account -#: code:addons/account/installer.py:94 +#: code:addons/account/installer.py:115 #, python-format msgid "No unconfigured company !" msgstr "" @@ -4284,8 +4301,8 @@ msgid "" msgstr "" #. module: account -#: code:addons/account/account_move_line.py:1061 -#: code:addons/account/account_move_line.py:1146 +#: code:addons/account/account_move_line.py:1058 +#: code:addons/account/account_move_line.py:1143 #, python-format msgid "You cannot use an inactive account." msgstr "" @@ -4315,7 +4332,7 @@ msgid "Consolidated Children" msgstr "Consolidated Children" #. module: account -#: code:addons/account/account_invoice.py:550 +#: code:addons/account/account_invoice.py:573 #: code:addons/account/wizard/account_invoice_refund.py:146 #, python-format msgid "Insufficient Data!" @@ -4523,7 +4540,7 @@ msgid "Cancel the Selected Invoices" msgstr "Hủy bỏ các hóa đơn được chọn" #. module: account -#: code:addons/account/account_bank_statement.py:423 +#: code:addons/account/account_bank_statement.py:424 #, python-format msgid "You have to assign an analytic journal on the '%s' journal!" msgstr "" @@ -4590,8 +4607,8 @@ msgid "Supplier invoice sequence" msgstr "" #. module: account -#: code:addons/account/account_invoice.py:583 -#: code:addons/account/account_invoice.py:598 +#: code:addons/account/account_invoice.py:610 +#: code:addons/account/account_invoice.py:625 #, python-format msgid "" "Cannot find a chart of account, you should create one from Settings\\" @@ -4654,7 +4671,7 @@ msgid "Account Base Code" msgstr "Account Base Code" #. module: account -#: code:addons/account/account_move_line.py:867 +#: code:addons/account/account_move_line.py:864 #, python-format msgid "" "You have to provide an account for the write off/exchange difference entry." @@ -4720,7 +4737,7 @@ msgid "Statement from invoice or payment" msgstr "Statement from invoice or payment" #. module: account -#: code:addons/account/installer.py:94 +#: code:addons/account/installer.py:115 #, python-format msgid "" "There is currently no company without chart of account. The wizard will " @@ -4774,7 +4791,7 @@ msgid "Bank statements are entered in the system." msgstr "Bank statements are entered in the system." #. module: account -#: code:addons/account/wizard/account_reconcile.py:121 +#: code:addons/account/wizard/account_reconcile.py:122 #, python-format msgid "Reconcile Writeoff" msgstr "Reconcile Writeoff" @@ -4864,7 +4881,7 @@ msgid "" msgstr "" #. module: account -#: code:addons/account/account_invoice.py:627 +#: code:addons/account/account_invoice.py:658 #, python-format msgid "" "Cannot find any account journal of %s type for this company.\n" @@ -4879,7 +4896,7 @@ msgid "Based On" msgstr "Dựa trên" #. module: account -#: code:addons/account/account.py:3166 +#: code:addons/account/account.py:3204 #, python-format msgid "ECNJ" msgstr "ECNJ" @@ -4945,7 +4962,7 @@ msgid "" msgstr "" #. module: account -#: code:addons/account/account.py:3356 +#: code:addons/account/account.py:3394 #, python-format msgid "Purchase Tax %.2f%%" msgstr "" @@ -5019,7 +5036,7 @@ msgid "" msgstr "" #. module: account -#: code:addons/account/account.py:3167 +#: code:addons/account/account.py:3205 #, python-format msgid "MISC" msgstr "" @@ -5188,7 +5205,7 @@ msgid "Tax Application" msgstr "Tax Application" #. module: account -#: code:addons/account/account_invoice.py:890 +#: code:addons/account/account_invoice.py:922 #, python-format msgid "" "Please verify the price of the invoice !\n" @@ -5362,7 +5379,7 @@ msgid "Target Moves" msgstr "Target Moves" #. module: account -#: code:addons/account/account.py:1416 +#: code:addons/account/account.py:1454 #, python-format msgid "" "Move cannot be deleted if linked to an invoice. (Invoice: %s - Move ID:%s)" @@ -5443,7 +5460,7 @@ msgid "Internal Name" msgstr "Tên nội bộ" #. module: account -#: code:addons/account/account_move_line.py:1188 +#: code:addons/account/account_move_line.py:1185 #, python-format msgid "" "Cannot create an automatic sequence for this piece.\n" @@ -5515,7 +5532,7 @@ msgid "Compute Code (if type=code)" msgstr "Compute Code (if type=code)" #. module: account -#: code:addons/account/account_invoice.py:485 +#: code:addons/account/account_invoice.py:508 #, python-format msgid "" "Cannot find a chart of accounts for this company, you should create one." @@ -5646,7 +5663,7 @@ msgid "Recompute taxes and total" msgstr "" #. module: account -#: code:addons/account/account.py:1103 +#: code:addons/account/account.py:1116 #, python-format msgid "You cannot modify/delete a journal with entries for this period." msgstr "" @@ -5676,7 +5693,7 @@ msgid "Amount Computation" msgstr "Tính toán giá trị" #. module: account -#: code:addons/account/account_move_line.py:1108 +#: code:addons/account/account_move_line.py:1105 #, python-format msgid "You can not add/modify entries in a closed period %s of journal %s." msgstr "" @@ -5976,7 +5993,7 @@ msgid "Fixed Amount" msgstr "Giá trị cố định" #. module: account -#: code:addons/account/account_move_line.py:1059 +#: code:addons/account/account_move_line.py:1056 #, python-format msgid "You cannot change the tax, you should remove and recreate lines." msgstr "" @@ -6027,14 +6044,14 @@ msgid "Child Accounts" msgstr "Tài khoản con" #. module: account -#: code:addons/account/account_move_line.py:1120 +#: code:addons/account/account_move_line.py:1117 #, python-format msgid "Move name (id): %s (%s)" msgstr "" #. module: account #: view:account.move.line.reconcile:0 -#: code:addons/account/account_move_line.py:882 +#: code:addons/account/account_move_line.py:879 #, python-format msgid "Write-Off" msgstr "Miễn bỏ" @@ -6060,7 +6077,7 @@ msgstr "Income" #: view:account.config.settings:0 #: view:account.invoice:0 #: view:account.invoice.report:0 -#: code:addons/account/account_invoice.py:355 +#: code:addons/account/account_invoice.py:390 #, python-format msgid "Supplier" msgstr "Nhà cung cấp" @@ -6080,7 +6097,7 @@ msgid "Account n°" msgstr "Tài khoản số" #. module: account -#: code:addons/account/account_invoice.py:92 +#: code:addons/account/account_invoice.py:95 #, python-format msgid "Free Reference" msgstr "Tham chiếu tự do" @@ -6090,7 +6107,9 @@ msgstr "Tham chiếu tự do" #: selection:account.common.partner.report,result_selection:0 #: selection:account.partner.balance,result_selection:0 #: selection:account.partner.ledger,result_selection:0 +#: report:account.third_party_ledger:0 #: code:addons/account/report/account_partner_balance.py:301 +#: code:addons/account/report/account_partner_ledger.py:276 #, python-format msgid "Receivable and Payable Accounts" msgstr "Các Tài khoản Phải thu và Phải trả" @@ -6199,7 +6218,7 @@ msgid "Filter by" msgstr "Lọc theo" #. module: account -#: code:addons/account/account.py:2296 +#: code:addons/account/account.py:2334 #, python-format msgid "You have a wrong expression \"%(...)s\" in your model !" msgstr "" @@ -6247,7 +6266,7 @@ msgid "Number of Days" msgstr "Số ngày" #. module: account -#: code:addons/account/account.py:1321 +#: code:addons/account/account.py:1357 #, python-format msgid "" "You cannot validate this journal entry because account \"%s\" does not " @@ -6395,7 +6414,7 @@ msgid "Models" msgstr "" #. module: account -#: code:addons/account/account_invoice.py:1091 +#: code:addons/account/account_invoice.py:1124 #, python-format msgid "" "You cannot cancel an invoice which is partially paid. You need to " @@ -6567,7 +6586,7 @@ msgid "You cannot create journal items on closed account." msgstr "" #. module: account -#: code:addons/account/account_invoice.py:606 +#: code:addons/account/account_invoice.py:633 #, python-format msgid "Invoice line account's company and invoice's compnay does not match." msgstr "" @@ -6588,7 +6607,7 @@ msgid "The related account currency if not equal to the company one." msgstr "The related account currency if not equal to the company one." #. module: account -#: code:addons/account/installer.py:48 +#: code:addons/account/installer.py:69 #, python-format msgid "Custom" msgstr "" @@ -6615,7 +6634,7 @@ msgid "Internal Transfers Account" msgstr "" #. module: account -#: code:addons/account/wizard/pos_box.py:33 +#: code:addons/account/wizard/pos_box.py:32 #, python-format msgid "Please check that the field 'Journal' is set on the Bank Statement" msgstr "" @@ -6641,7 +6660,7 @@ msgid "Power" msgstr "Power" #. module: account -#: code:addons/account/account.py:3427 +#: code:addons/account/account.py:3465 #, python-format msgid "Cannot generate an unused journal code." msgstr "" @@ -6717,12 +6736,12 @@ msgstr "" "children. In this case, the evaluation order is important." #. module: account -#: code:addons/account/account.py:1410 -#: code:addons/account/account.py:1415 -#: code:addons/account/account.py:1444 -#: code:addons/account/account.py:1451 -#: code:addons/account/account_invoice.py:983 -#: code:addons/account/account_move_line.py:1008 +#: code:addons/account/account.py:1448 +#: code:addons/account/account.py:1453 +#: code:addons/account/account.py:1482 +#: code:addons/account/account.py:1489 +#: code:addons/account/account_invoice.py:1015 +#: code:addons/account/account_move_line.py:1005 #: code:addons/account/wizard/account_automatic_reconcile.py:148 #: code:addons/account/wizard/account_fiscalyear_close.py:88 #: code:addons/account/wizard/account_fiscalyear_close.py:99 @@ -6807,7 +6826,9 @@ msgstr "" #: report:account.invoice:0 #: selection:account.invoice,type:0 #: selection:account.invoice.report,type:0 +#: code:addons/account/account_invoice.py:1160 #: selection:report.invoice.created,type:0 +#, python-format msgid "Supplier Refund" msgstr "Hoàn tiền cho Nhà cung cấp" @@ -6952,7 +6973,7 @@ msgstr "Analytic Entries Statistics" #. module: account #: code:addons/account/account_analytic_line.py:142 -#: code:addons/account/account_move_line.py:958 +#: code:addons/account/account_move_line.py:955 #, python-format msgid "Entries: " msgstr "Các bút toán: " @@ -7065,7 +7086,7 @@ msgstr "" #. module: account #: code:addons/account/account.py:1024 -#: code:addons/account/account_move_line.py:1108 +#: code:addons/account/account_move_line.py:1105 #, python-format msgid "Error !" msgstr "Lỗi !" @@ -7292,7 +7313,7 @@ msgid "" msgstr "" #. module: account -#: code:addons/account/account.py:2266 +#: code:addons/account/account.py:2304 #, python-format msgid "" "You can specify year, month and date in the name of the model using the " @@ -7371,7 +7392,7 @@ msgid "Done" msgstr "Hoàn tất" #. module: account -#: code:addons/account/account.py:1283 +#: code:addons/account/account.py:1319 #, python-format msgid "" "You cannot validate a non-balanced entry.\n" @@ -7667,7 +7688,7 @@ msgstr "Báo cáo" #. module: account #. openerp-web -#: code:addons/account/account_move_line.py:783 +#: code:addons/account/account_move_line.py:780 #: code:addons/account/static/src/js/account_move_reconciliation.js:90 #, python-format msgid "Warning" @@ -7733,7 +7754,7 @@ msgid "Use model" msgstr "Sử dụng mô hình" #. module: account -#: code:addons/account/account.py:1452 +#: code:addons/account/account.py:1490 #, python-format msgid "" "There is no default credit account defined \n" @@ -7784,7 +7805,7 @@ msgid "Root/View" msgstr "" #. module: account -#: code:addons/account/account.py:3168 +#: code:addons/account/account.py:3206 #, python-format msgid "OPEJ" msgstr "" @@ -7853,7 +7874,7 @@ msgid "Maturity Date" msgstr "" #. module: account -#: code:addons/account/account.py:3155 +#: code:addons/account/account.py:3193 #, python-format msgid "Sales Journal" msgstr "Sổ nhật ký Bán hàng" @@ -7864,7 +7885,7 @@ msgid "Invoice Tax" msgstr "Thuế Hóa đơn" #. module: account -#: code:addons/account/account_move_line.py:1188 +#: code:addons/account/account_move_line.py:1185 #, python-format msgid "No piece number !" msgstr "No piece number !" @@ -7903,7 +7924,7 @@ msgid "Sales Properties" msgstr "Các thuộc tính Bán hàng" #. module: account -#: code:addons/account/account.py:3503 +#: code:addons/account/account.py:3541 #, python-format msgid "" "You have to set a code for the bank account defined on the selected chart of " @@ -7928,7 +7949,7 @@ msgstr "Đến" #. module: account #: selection:account.move.line,centralisation:0 -#: code:addons/account/account.py:1503 +#: code:addons/account/account.py:1541 #, python-format msgid "Currency Adjustment" msgstr "" @@ -7960,7 +7981,7 @@ msgid "May" msgstr "Tháng Năm" #. module: account -#: code:addons/account/account_invoice.py:788 +#: code:addons/account/account_invoice.py:820 #, python-format msgid "Global taxes defined, but they are not in invoice lines !" msgstr "" @@ -8001,7 +8022,7 @@ msgstr "Post Journal Entries" #: view:account.config.settings:0 #: view:account.invoice:0 #: view:account.invoice.report:0 -#: code:addons/account/account_invoice.py:353 +#: code:addons/account/account_invoice.py:388 #, python-format msgid "Customer" msgstr "Khách hàng" @@ -8017,7 +8038,7 @@ msgstr "" #: selection:account.bank.accounts.wizard,account_type:0 #: selection:account.entries.report,type:0 #: selection:account.journal,type:0 -#: code:addons/account/account.py:3054 +#: code:addons/account/account.py:3092 #, python-format msgid "Cash" msgstr "Tiền mặt" @@ -8187,6 +8208,7 @@ msgstr "Đã sửa" #: code:addons/account/account.py:653 #: code:addons/account/account.py:656 #: code:addons/account/account.py:668 +#: code:addons/account/account.py:1031 #, python-format msgid "Warning !" msgstr "Cảnh báo !" @@ -8254,7 +8276,7 @@ msgid "Select a currency to apply on the invoice" msgstr "Chọn một loại tiền để áp dụng cho hóa đơn" #. module: account -#: code:addons/account/account_invoice.py:869 +#: code:addons/account/account_invoice.py:901 #, python-format msgid "No Invoice Lines !" msgstr "No Invoice Lines !" @@ -8279,7 +8301,7 @@ msgid "Tax Use In" msgstr "Thuế sử dụng trong" #. module: account -#: code:addons/account/account_bank_statement.py:381 +#: code:addons/account/account_bank_statement.py:382 #, python-format msgid "" "The statement balance is incorrect !\n" @@ -8287,7 +8309,7 @@ msgid "" msgstr "" #. module: account -#: code:addons/account/account_bank_statement.py:419 +#: code:addons/account/account_bank_statement.py:420 #, python-format msgid "The account entries lines are not in valid state." msgstr "The account entries lines are not in valid state." @@ -8331,7 +8353,7 @@ msgid "Associated Partner" msgstr "Đối tác Liên quan" #. module: account -#: code:addons/account/account_invoice.py:1434 +#: code:addons/account/account_invoice.py:1465 #, python-format msgid "You must first select a partner !" msgstr "You must first select a partner !" @@ -8412,13 +8434,13 @@ msgstr "" "tính toán các khoản thuế tiếp theo" #. module: account -#: code:addons/account/account.py:3158 +#: code:addons/account/account.py:3196 #, python-format msgid "Purchase Refund Journal" msgstr "Sổ nhật ký Hoàn tiền Mua hàng" #. module: account -#: code:addons/account/account.py:1297 +#: code:addons/account/account.py:1333 #, python-format msgid "Please define a sequence on the journal." msgstr "" @@ -8663,7 +8685,7 @@ msgid "${object.company_id.name} Invoice (Ref ${object.number or 'n/a'})" msgstr "" #. module: account -#: code:addons/account/account_move_line.py:1213 +#: code:addons/account/account_move_line.py:1210 #, python-format msgid "" "You cannot use this general account in this journal, check the tab 'Entry " @@ -8764,7 +8786,7 @@ msgid "The partner account used for this invoice." msgstr "The partner account used for this invoice." #. module: account -#: code:addons/account/account.py:3353 +#: code:addons/account/account.py:3391 #, python-format msgid "Tax %.2f%%" msgstr "" @@ -8782,7 +8804,7 @@ msgid "Payment Term Line" msgstr "Payment Term Line" #. module: account -#: code:addons/account/account.py:3156 +#: code:addons/account/account.py:3194 #, python-format msgid "Purchase Journal" msgstr "Purchase Journal" @@ -8953,7 +8975,7 @@ msgid "Journal Name" msgstr "Journal Name" #. module: account -#: code:addons/account/account_move_line.py:832 +#: code:addons/account/account_move_line.py:829 #, python-format msgid "Entry \"%s\" is not valid !" msgstr "Bút toán \"%s\" không hợp lệ !" @@ -9005,7 +9027,7 @@ msgstr "" "entry." #. module: account -#: code:addons/account/account_move_line.py:1009 +#: code:addons/account/account_move_line.py:1006 #, python-format msgid "The account move (%s) for centralisation has been confirmed." msgstr "" @@ -9067,7 +9089,7 @@ msgid "Reconciled entries" msgstr "Reconciled entries" #. module: account -#: code:addons/account/account.py:2296 +#: code:addons/account/account.py:2334 #, python-format msgid "Wrong model !" msgstr "" @@ -9089,7 +9111,7 @@ msgid "Print Account Partner Balance" msgstr "Print Account Partner Balance" #. module: account -#: code:addons/account/account_move_line.py:1124 +#: code:addons/account/account_move_line.py:1121 #, python-format msgid "" "You cannot do this modification on a reconciled entry. You can just change " @@ -9123,7 +9145,7 @@ msgstr "chưa biết" #. module: account #: field:account.fiscalyear.close,journal_id:0 -#: code:addons/account/account.py:3160 +#: code:addons/account/account.py:3198 #, python-format msgid "Opening Entries Journal" msgstr "Opening Entries Journal" @@ -9220,7 +9242,7 @@ msgid "Unit of Currency" msgstr "" #. module: account -#: code:addons/account/account.py:3157 +#: code:addons/account/account.py:3195 #, python-format msgid "Sales Refund Journal" msgstr "Sales Refund Journal" @@ -9286,13 +9308,13 @@ msgid "Purchase Tax(%)" msgstr "Thuế mua hàng(%)" #. module: account -#: code:addons/account/account_invoice.py:869 +#: code:addons/account/account_invoice.py:901 #, python-format msgid "Please create some invoice lines." msgstr "Please create some invoice lines." #. module: account -#: code:addons/account/wizard/pos_box.py:37 +#: code:addons/account/wizard/pos_box.py:36 #, python-format msgid "" "Please check that the field 'Internal Transfers Account' is set on the " @@ -9305,7 +9327,7 @@ msgid "Display Detail" msgstr "" #. module: account -#: code:addons/account/account.py:3165 +#: code:addons/account/account.py:3203 #, python-format msgid "SCNJ" msgstr "SCNJ" @@ -9467,8 +9489,8 @@ msgid "Receivable Account" msgstr "Tài khoản Phải thu" #. module: account -#: code:addons/account/account_move_line.py:774 -#: code:addons/account/account_move_line.py:827 +#: code:addons/account/account_move_line.py:771 +#: code:addons/account/account_move_line.py:824 #, python-format msgid "To reconcile the entries company should be the same for all entries." msgstr "" @@ -9569,7 +9591,7 @@ msgid "Move" msgstr "Move" #. module: account -#: code:addons/account/account_bank_statement.py:477 +#: code:addons/account/account_bank_statement.py:478 #: code:addons/account/wizard/account_period_close.py:51 #, python-format msgid "Invalid Action!" @@ -9666,7 +9688,7 @@ msgid "Balance :" msgstr "Số dư :" #. module: account -#: code:addons/account/account.py:1549 +#: code:addons/account/account.py:1587 #, python-format msgid "Cannot create moves for different companies." msgstr "" @@ -9757,7 +9779,7 @@ msgid "Immediate Payment" msgstr "" #. module: account -#: code:addons/account/account.py:1464 +#: code:addons/account/account.py:1502 #, python-format msgid " Centralisation" msgstr "" @@ -9846,7 +9868,7 @@ msgid "Unreconciled" msgstr "Chưa được đối soát" #. module: account -#: code:addons/account/account_invoice.py:890 +#: code:addons/account/account_invoice.py:922 #, python-format msgid "Bad total !" msgstr "Tổng không hợp lệ !" @@ -9938,7 +9960,7 @@ msgid "Comparison" msgstr "" #. module: account -#: code:addons/account/account_move_line.py:1122 +#: code:addons/account/account_move_line.py:1119 #, python-format msgid "" "You cannot do this modification on a confirmed entry. You can just change " @@ -10027,7 +10049,7 @@ msgid "Journal Entry Model" msgstr "Journal Entry Model" #. module: account -#: code:addons/account/account.py:1064 +#: code:addons/account/account.py:1073 #, python-format msgid "Start period should precede then end period." msgstr "" @@ -10329,6 +10351,7 @@ msgstr "Mở việc đối soát với ngân hàng" #. module: account #: field:account.account,company_id:0 +#: report:account.account.balance:0 #: field:account.aged.trial.balance,company_id:0 #: field:account.analytic.journal,company_id:0 #: field:account.balance.report,company_id:0 @@ -10344,7 +10367,9 @@ msgstr "Mở việc đối soát với ngân hàng" #: field:account.entries.report,company_id:0 #: field:account.fiscal.position,company_id:0 #: field:account.fiscalyear,company_id:0 +#: report:account.general.journal:0 #: field:account.general.journal,company_id:0 +#: report:account.general.ledger_landscape:0 #: field:account.installer,company_id:0 #: field:account.invoice,company_id:0 #: field:account.invoice.line,company_id:0 @@ -10353,6 +10378,7 @@ msgstr "Mở việc đối soát với ngân hàng" #: field:account.invoice.tax,company_id:0 #: field:account.journal,company_id:0 #: field:account.journal.period,company_id:0 +#: report:account.journal.period.print:0 #: field:account.model,company_id:0 #: field:account.move,company_id:0 #: field:account.move.line,company_id:0 @@ -10448,7 +10474,7 @@ msgid "" msgstr "" #. module: account -#: code:addons/account/account_move_line.py:1059 +#: code:addons/account/account_move_line.py:1056 #, python-format msgid "Unable to change tax!" msgstr "" @@ -10517,8 +10543,10 @@ msgstr "Accounts Fiscal Position" #: view:account.invoice:0 #: selection:account.invoice,type:0 #: selection:account.invoice.report,type:0 +#: code:addons/account/account_invoice.py:1158 #: model:process.process,name:account.process_process_supplierinvoiceprocess0 #: selection:report.invoice.created,type:0 +#, python-format msgid "Supplier Invoice" msgstr "Hóa đơn nhà cung cấp" @@ -10604,8 +10632,10 @@ msgid "" msgstr "" #. module: account +#: report:account.account.balance:0 #: selection:account.balance.report,display_account:0 #: selection:account.common.account.report,display_account:0 +#: report:account.general.ledger_landscape:0 #: selection:account.report.general.ledger,display_account:0 msgid "With movements" msgstr "With movements" @@ -10701,7 +10731,7 @@ msgid "Entries Sorted by" msgstr "" #. module: account -#: code:addons/account/account_invoice.py:1515 +#: code:addons/account/account_invoice.py:1546 #, python-format msgid "" "The selected unit of measure is not compatible with the unit of measure of " @@ -10782,6 +10812,8 @@ msgstr "Tìm kiếm hóa đơn" #: report:account.invoice:0 #: view:account.invoice:0 #: view:account.invoice.report:0 +#: code:addons/account/account_invoice.py:1159 +#, python-format msgid "Refund" msgstr "Hoàn tiền" @@ -10852,7 +10884,7 @@ msgid "Manual Invoice Taxes" msgstr "Manual Invoice Taxes" #. module: account -#: code:addons/account/account_invoice.py:550 +#: code:addons/account/account_invoice.py:573 #, python-format msgid "The payment term of supplier does not have a payment term line." msgstr "" diff --git a/addons/account/partner.py b/addons/account/partner.py index f582da6b765..a7df31b2f32 100644 --- a/addons/account/partner.py +++ b/addons/account/partner.py @@ -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_limit': fields.float('Payable Limit'), 'property_account_payable': fields.property( - 'account.account', type='many2one', relation='account.account', string="Account Payable", - view_load=True, domain="[('type', '=', 'payable')]", help="This account will be used instead of the default one as the payable account for the current partner", required=True), 'property_account_receivable': fields.property( - 'account.account', type='many2one', relation='account.account', string="Account Receivable", - view_load=True, domain="[('type', '=', 'receivable')]", help="This account will be used instead of the default one as the receivable account for the current partner", required=True), 'property_account_position': fields.property( - 'account.fiscal.position', type='many2one', relation='account.fiscal.position', string="Fiscal Position", - view_load=True, help="The fiscal position will determine taxes and accounts used for the partner.", ), 'property_payment_term': fields.property( - 'account.payment.term', type='many2one', relation='account.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"), 'property_supplier_payment_term': fields.property( - 'account.payment.term', type='many2one', relation='account.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"), 'ref_companies': fields.one2many('res.company', 'partner_id', 'Companies that refers to partner'), diff --git a/addons/account/product.py b/addons/account/product.py index 3df3ad9bd17..b7bffee43a9 100644 --- a/addons/account/product.py +++ b/addons/account/product.py @@ -25,18 +25,14 @@ class product_category(osv.osv): _inherit = "product.category" _columns = { 'property_account_income_categ': fields.property( - 'account.account', type='many2one', relation='account.account', string="Income Account", - view_load=True, help="This account will be used for invoices to value sales."), 'property_account_expense_categ': fields.property( - 'account.account', type='many2one', relation='account.account', string="Expense Account", - view_load=True, 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', 'Supplier Taxes', domain=[('parent_id', '=', False),('type_tax_use','in',['purchase','all'])]), 'property_account_income': fields.property( - 'account.account', type='many2one', relation='account.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."), 'property_account_expense': fields.property( - 'account.account', type='many2one', relation='account.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."), } diff --git a/addons/account/report/account_aged_partner_balance.py b/addons/account/report/account_aged_partner_balance.py index 897b8366b7a..3b000e40592 100644 --- a/addons/account/report/account_aged_partner_balance.py +++ b/addons/account/report/account_aged_partner_balance.py @@ -366,12 +366,13 @@ class aged_trial_report(report_sxw.rml_parse, common_report_header): return period or 0.0 def _get_partners(self,data): + # TODO: deprecated, to remove in trunk if data['form']['result_selection'] == 'customer': - return 'Receivable Accounts' + return self._translate('Receivable Accounts') elif data['form']['result_selection'] == 'supplier': - return 'Payable Accounts' + return self._translate('Payable Accounts') elif data['form']['result_selection'] == 'customer_supplier': - return 'Receivable and Payable Accounts' + return self._translate('Receivable and Payable Accounts') return '' report_sxw.report_sxw('report.account.aged_trial_balance', 'res.partner', diff --git a/addons/account/report/account_aged_partner_balance.rml b/addons/account/report/account_aged_partner_balance.rml index fb79ab0d199..5b5404e9c86 100644 --- a/addons/account/report/account_aged_partner_balance.rml +++ b/addons/account/report/account_aged_partner_balance.rml @@ -147,7 +147,9 @@ [[ data['form']['period_length'] ]] - [[ get_partners(data) ]] + Receivable Accounts[[ data['form']['result_selection'] == 'customer' or removeParentNode('para') ]] + Payable Accounts[[ data['form']['result_selection'] == 'supplier' or removeParentNode('para') ]] + Receivable and Payable Accounts[[ data['form']['result_selection'] == 'customer_supplier' or removeParentNode('para') ]] [[ data['form']['direction_selection'] ]] @@ -166,7 +168,8 @@ Partners - [[ data['form']['direction_selection'] == 'future' and 'Due' or 'Not due' ]] + Due[[ data['form']['direction_selection'] == 'future' and ' ' or removeParentNode('para') ]] + Not due[[ data['form']['direction_selection'] != 'future' and ' ' or removeParentNode('para') ]] [[ data['form']['4']['name'] ]] diff --git a/addons/account/report/account_balance.rml b/addons/account/report/account_balance.rml index 88980a9cd97..6ddfc238bff 100644 --- a/addons/account/report/account_balance.rml +++ b/addons/account/report/account_balance.rml @@ -211,8 +211,10 @@ - [[ data['model']=='account.account' and 'Company'or removeParentNode('para') ]] - [[ data['model']=='ir.ui.menu' and 'Chart of Accounts' or removeParentNode('para') ]] + + Company[[ data['model']=='account.account' and ' ' or removeParentNode('para') ]] + Chart of Accounts[[ data['model']=='ir.ui.menu' and ' ' or removeParentNode('para') ]] + Fiscal Year @@ -233,7 +235,11 @@ [[ get_fiscalyear(data) or '' ]] - [[ (data['form']['display_account']=='all' and 'All') or (data['form']['display_account']=='movement' and 'With movements') or 'With balance is not equal to 0']] + + All[[ data['form']['display_account']=='all' and ' ' or removeParentNode('para') ]] + With movements[[ data['form']['display_account']=='movement' and ' ' or removeParentNode('para') ]] + With balance is not equal to 0[[ data['form']['display_account']=='not_zero' and ' ' or removeParentNode('para') ]] + [[ data['form']['filter']=='filter_no' and get_filter(data) or removeParentNode('para') ]] [[ data['form']['filter']=='filter_date' or removeParentNode('blockTable') ]] diff --git a/addons/account/report/account_general_journal.rml b/addons/account/report/account_general_journal.rml index 4ad086d6bd4..dce30e59918 100644 --- a/addons/account/report/account_general_journal.rml +++ b/addons/account/report/account_general_journal.rml @@ -220,8 +220,8 @@ - [[ data['model']=='account.journal.period' and 'Company' or removeParentNode('para') ]] - [[ data['model']=='ir.ui.menu' and 'Chart of Accounts' or removeParentNode('para') ]] + Company[[ data['model']=='account.journal.period' and ' ' or removeParentNode('para') ]] + Chart of Accounts[[ data['model']=='ir.ui.menu' and ' ' or removeParentNode('para') ]] Fiscal Year Journals Filter By [[ data['form']['filter']!='filter_no' and get_filter(data) ]] diff --git a/addons/account/report/account_general_ledger_landscape.rml b/addons/account/report/account_general_ledger_landscape.rml index 7ae5db98f20..c5d24343148 100644 --- a/addons/account/report/account_general_ledger_landscape.rml +++ b/addons/account/report/account_general_ledger_landscape.rml @@ -360,9 +360,8 @@ - [[ data['model']=='account.account' and 'Company' or removeParentNode('para') ]] - [[ data['model']=='ir.ui.menu' and 'Chart of Accounts' or removeParentNode('para') ]] - + Company[[ data['model']=='account.account' and ' ' or removeParentNode('para') ]] + Chart of Accounts[[ data['model']=='ir.ui.menu' and ' ' or removeParentNode('para') ]] Fiscal Year @@ -395,7 +394,9 @@ [[', '.join([ lt or '' for lt in get_journal(data) ]) ]] - [[ (data['form']['display_account']=='all' and 'All') or (data['form']['display_account']=='movement' and 'With movements') or 'With balance is not equal to 0']] + All[[ data['form']['display_account']=='all' and ' ' or removeParentNode('para') ]] + With movements[[ data['form']['display_account']=='movement' and ' ' or removeParentNode('para') ]] + With balance is not equal to 0[[ data['form']['display_account']=='not_zero' and ' ' or removeParentNode('para') ]] [[ data['form']['filter']=='filter_no' and get_filter(data) or removeParentNode('para') ]] diff --git a/addons/account/report/account_journal.py b/addons/account/report/account_journal.py index 769a8335f55..97e19be4b0c 100644 --- a/addons/account/report/account_journal.py +++ b/addons/account/report/account_journal.py @@ -189,11 +189,12 @@ class journal_print(report_sxw.rml_parse, common_report_header): return data['form']['amount_currency'] def _get_sortby(self, data): + # TODO: deprecated, to remove in trunk if self.sort_selection == 'date': - return 'Date' + return self._translate('Date') elif self.sort_selection == 'ref': - return 'Reference Number' - return 'Date' + return self._translate('Reference Number') + 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.sale.purchase', 'account.journal.period', 'addons/account/report/account_journal_sale_purchase.rml', parser=journal_print, header='external') diff --git a/addons/account/report/account_journal.rml b/addons/account/report/account_journal.rml index fb203d4e664..6d606ed1937 100644 --- a/addons/account/report/account_journal.rml +++ b/addons/account/report/account_journal.rml @@ -186,8 +186,8 @@ - [[ data['model']=='account.journal.period'and 'Company' or removeParentNode('para') ]] - [[ data['model']=='ir.ui.menu' and 'Chart of Accounts' or removeParentNode('para') ]] + Company[[ data['model']=='account.journal.period'and ' ' or removeParentNode('para') ]] + Chart of Accounts[[ data['model']=='ir.ui.menu' and ' ' or removeParentNode('para') ]] Fiscal Year Journal Period @@ -199,8 +199,10 @@ [[ get_fiscalyear(data) or '' ]] [[ o.journal_id.name ]] [[ o.period_id.name ]] - [[ get_sortby(data) ]] - [[ get_target_move(data) ]] + + Date[[ data['form'].get('sort_selection', 'date') == 'date' and ' ' or removeParentNode('para') ]] + Reference Number[[ data['form'].get('sort_selection', 'date') == 'ref' and ' ' or removeParentNode('para') ]] + diff --git a/addons/account/report/account_partner_ledger.py b/addons/account/report/account_partner_ledger.py index 21c1ee3d846..d21323e02fc 100644 --- a/addons/account/report/account_partner_ledger.py +++ b/addons/account/report/account_partner_ledger.py @@ -267,12 +267,13 @@ class third_party_ledger(report_sxw.rml_parse, common_report_header): return result_tmp + result_init def _get_partners(self): + # TODO: deprecated, to remove in trunk if self.result_selection == 'customer': - return 'Receivable Accounts' + return _('Receivable Accounts') elif self.result_selection == 'supplier': - return 'Payable Accounts' + return _('Payable Accounts') elif self.result_selection == 'customer_supplier': - return 'Receivable and Payable Accounts' + return _('Receivable and Payable Accounts') return '' def _sum_currency_amount_account(self, account, form): diff --git a/addons/account/report/account_partner_ledger.rml b/addons/account/report/account_partner_ledger.rml index 0d7122369c6..48ed6d4afe3 100644 --- a/addons/account/report/account_partner_ledger.rml +++ b/addons/account/report/account_partner_ledger.rml @@ -423,7 +423,9 @@ - [[ get_partners() ]] + Receivable Accounts[[ data['form'].get('result_selection', 'customer') == 'customer' or removeParentNode('para') ]] + Payable Accounts[[ data['form'].get('result_selection', 'customer') == 'supplier' or removeParentNode('para') ]] + Receivable and Payable Accounts[[ data['form'].get('result_selection', 'customer') == 'customer_supplier' or removeParentNode('para') ]] [[ get_target_move(data) ]] diff --git a/addons/account/html/account_illu_01.png b/addons/account/static/description/account_illu_01.png similarity index 100% rename from addons/account/html/account_illu_01.png rename to addons/account/static/description/account_illu_01.png diff --git a/addons/account/html/account_illu_02.png b/addons/account/static/description/account_illu_02.png similarity index 100% rename from addons/account/html/account_illu_02.png rename to addons/account/static/description/account_illu_02.png diff --git a/addons/account/html/account_illu_03.png b/addons/account/static/description/account_illu_03.png similarity index 100% rename from addons/account/html/account_illu_03.png rename to addons/account/static/description/account_illu_03.png diff --git a/addons/account/html/account_sc_00.png b/addons/account/static/description/account_sc_00.png similarity index 100% rename from addons/account/html/account_sc_00.png rename to addons/account/static/description/account_sc_00.png diff --git a/addons/account/html/account_sc_01.png b/addons/account/static/description/account_sc_01.png similarity index 100% rename from addons/account/html/account_sc_01.png rename to addons/account/static/description/account_sc_01.png diff --git a/addons/account/html/account_sc_02.png b/addons/account/static/description/account_sc_02.png similarity index 100% rename from addons/account/html/account_sc_02.png rename to addons/account/static/description/account_sc_02.png diff --git a/addons/account/html/account_sc_03.png b/addons/account/static/description/account_sc_03.png similarity index 100% rename from addons/account/html/account_sc_03.png rename to addons/account/static/description/account_sc_03.png diff --git a/addons/account/html/account_sc_04.png b/addons/account/static/description/account_sc_04.png similarity index 100% rename from addons/account/html/account_sc_04.png rename to addons/account/static/description/account_sc_04.png diff --git a/addons/account/html/account_sc_05.png b/addons/account/static/description/account_sc_05.png similarity index 100% rename from addons/account/html/account_sc_05.png rename to addons/account/static/description/account_sc_05.png diff --git a/addons/account/html/account_sc_06.png b/addons/account/static/description/account_sc_06.png similarity index 100% rename from addons/account/html/account_sc_06.png rename to addons/account/static/description/account_sc_06.png diff --git a/addons/account/html/index.html b/addons/account/static/description/index.html similarity index 100% rename from addons/account/html/index.html rename to addons/account/static/description/index.html diff --git a/addons/account/html/sc00.png b/addons/account/static/description/sc00.png similarity index 100% rename from addons/account/html/sc00.png rename to addons/account/static/description/sc00.png diff --git a/addons/account/html/testimonial_sunil.jpg b/addons/account/static/description/testimonial_sunil.jpg similarity index 100% rename from addons/account/html/testimonial_sunil.jpg rename to addons/account/static/description/testimonial_sunil.jpg diff --git a/addons/account/static/src/js/account_move_line_quickadd.js b/addons/account/static/src/js/account_move_line_quickadd.js index 997b2b03bb6..0b904e19da6 100644 --- a/addons/account/static/src/js/account_move_line_quickadd.js +++ b/addons/account/static/src/js/account_move_line_quickadd.js @@ -84,7 +84,7 @@ openerp.account.quickadd = function (instance) { }, search_by_journal_period: function() { 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_period !== null) domain.push(["period_id", "=", self.current_period]); self.last_context["journal_id"] = self.current_journal === null ? false : self.current_journal; diff --git a/addons/account/wizard/account_report_common.py b/addons/account/wizard/account_report_common.py index c457140684a..871aea9e4d9 100644 --- a/addons/account/wizard/account_report_common.py +++ b/addons/account/wizard/account_report_common.py @@ -175,7 +175,7 @@ class account_common_report(osv.osv_memory): data['form'][field] = data['form'][field][0] 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']['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) diff --git a/addons/account_accountant/static/src/img/icon.png b/addons/account_accountant/static/description/icon.png similarity index 100% rename from addons/account_accountant/static/src/img/icon.png rename to addons/account_accountant/static/description/icon.png diff --git a/addons/account_analytic_analysis/i18n/ru.po b/addons/account_analytic_analysis/i18n/ru.po index 339d425c717..30313796af9 100644 --- a/addons/account_analytic_analysis/i18n/ru.po +++ b/addons/account_analytic_analysis/i18n/ru.po @@ -7,19 +7,19 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev_rc3\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2012-12-21 17:04+0000\n" -"PO-Revision-Date: 2013-05-31 07:35+0000\n" +"PO-Revision-Date: 2013-06-19 13:43+0000\n" "Last-Translator: Chertykov Denis \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-06-01 05:16+0000\n" -"X-Generator: Launchpad (build 16660)\n" +"X-Launchpad-Export-Date: 2013-06-20 05:17+0000\n" +"X-Generator: Launchpad (build 16673)\n" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "No order to invoice, create" -msgstr "" +msgstr "Нет заказа для счета, создать" #. module: account_analytic_analysis #: view:account.analytic.account:0 @@ -39,7 +39,7 @@ msgstr "Остаётся" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Contracts in progress" -msgstr "" +msgstr "Незавершенные контракты" #. module: account_analytic_analysis #: help:account.analytic.account,last_worked_invoiced_date:0 @@ -88,7 +88,7 @@ msgstr "Дата последнего счета расходов" #. module: account_analytic_analysis #: help:account.analytic.account,fix_price_to_invoice:0 msgid "Sum of quotations for this contract." -msgstr "" +msgstr "Сумма предложений по этому контракту." #. module: account_analytic_analysis #: help:account.analytic.account,ca_invoiced:0 @@ -98,18 +98,18 @@ msgstr "Итого сумма к оплате заказчику для этог #. module: account_analytic_analysis #: help:account.analytic.account,timesheet_ca_invoiced:0 msgid "Sum of timesheet lines invoiced for this contract." -msgstr "" +msgstr "Сумма позиций табеля выставленная в счет за этот контракт ." #. module: account_analytic_analysis -#: code:addons/account_analytic_analysis/account_analytic_analysis.py:466 +#: code:addons/account_analytic_analysis/account_analytic_analysis.py:464 #, python-format msgid "Sales Order Lines of %s" -msgstr "" +msgstr "Позиции заказа продаж %s" #. module: account_analytic_analysis #: help:account.analytic.account,revenue_per_hour:0 msgid "Computed using the formula: Invoiced Amount / Total Time" -msgstr "" +msgstr "Рассчитанный по формуле: Сумма по счетам / Итоговое время" #. module: account_analytic_analysis #: field:account_analytic_analysis.summary.month,account_id:0 @@ -126,7 +126,7 @@ msgstr "Партнёр" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Contracts that are not assigned to an account manager." -msgstr "" +msgstr "Контракты, которые не назначены бухгалтеру." #. module: account_analytic_analysis #: model:ir.actions.act_window,help:account_analytic_analysis.action_account_analytic_overdue @@ -161,6 +161,7 @@ msgstr "Управляющий счётом" #: help:account.analytic.account,remaining_hours_to_invoice:0 msgid "Computed using the formula: Maximum Time - Total Invoiced Time" msgstr "" +"Рассчитанный по формуле: Максимальное время - Всё время выставленное в счетах" #. module: account_analytic_analysis #: view:account.analytic.account:0 @@ -170,12 +171,12 @@ msgstr "Ожидается" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Contracts not assigned" -msgstr "" +msgstr "Контракты не назначены" #. module: account_analytic_analysis #: help:account.analytic.account,theorical_margin:0 msgid "Computed using the formula: Theoretical Revenue - Total Costs" -msgstr "" +msgstr "Рассчитанный по формуле: теоретическая выручка - общие издержки" #. module: account_analytic_analysis #: field:account.analytic.account,hours_qtt_invoiced:0 @@ -219,17 +220,17 @@ msgstr "" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Nothing to invoice, create" -msgstr "" +msgstr "Нечего выставить в счете, создать" #. module: account_analytic_analysis #: model:res.groups,name:account_analytic_analysis.group_template_required msgid "Mandatory use of templates in contracts" -msgstr "" +msgstr "Обязательное использование шаблонов в контрактах" #. module: account_analytic_analysis #: field:account.analytic.account,hours_quantity:0 msgid "Total Worked Time" -msgstr "" +msgstr "Всё отработанное время" #. module: account_analytic_analysis #: field:account.analytic.account,real_margin:0 @@ -249,12 +250,12 @@ msgstr "Вычисляется по формуле: (Реальная маржа #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "or view" -msgstr "" +msgstr "или вид" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Customer Contracts" -msgstr "" +msgstr "Контакты заказчика" #. module: account_analytic_analysis #: view:account.analytic.account:0 @@ -271,7 +272,7 @@ msgstr "Месяц" #: model:ir.actions.act_window,name:account_analytic_analysis.action_hr_tree_invoiced_all #: model:ir.ui.menu,name:account_analytic_analysis.menu_action_hr_tree_invoiced_all msgid "Time & Materials to Invoice" -msgstr "" +msgstr "Время и материалы в счет" #. module: account_analytic_analysis #: view:account.analytic.account:0 @@ -343,9 +344,10 @@ msgstr "К продлению" #: view:account.analytic.account:0 msgid "" "A contract in OpenERP is an analytic account having a partner set on it." -msgstr "" +msgstr "Контракт в OpenERP это аналитический счет с установленным партнером." #. module: account_analytic_analysis +#: view:account.analytic.account:0 #: model:ir.actions.act_window,name:account_analytic_analysis.action_sales_order msgid "Sales Orders" msgstr "Заказы продаж" @@ -412,7 +414,7 @@ msgstr "" #. module: account_analytic_analysis #: field:account.analytic.account,revenue_per_hour:0 msgid "Revenue per Time (real)" -msgstr "" +msgstr "Выручка за время (реальная)" #. module: account_analytic_analysis #: model:ir.actions.act_window,help:account_analytic_analysis.action_account_analytic_overdue_all @@ -578,7 +580,7 @@ msgstr "" #. module: account_analytic_analysis #: field:account.analytic.account,est_total:0 msgid "Total Estimation" -msgstr "" +msgstr "Общая оценка" #. module: account_analytic_analysis #: field:account.analytic.account,remaining_ca:0 diff --git a/addons/account_analytic_plans/account_analytic_plans_view.xml b/addons/account_analytic_plans/account_analytic_plans_view.xml index 7fb4091b45f..42b17ae06c3 100644 --- a/addons/account_analytic_plans/account_analytic_plans_view.xml +++ b/addons/account_analytic_plans/account_analytic_plans_view.xml @@ -248,9 +248,12 @@ account.analytic.default - + + 1 + + - + diff --git a/addons/account_anglo_saxon/__openerp__.py b/addons/account_anglo_saxon/__openerp__.py index 6482a110f1d..4fc15bba4f5 100644 --- a/addons/account_anglo_saxon/__openerp__.py +++ b/addons/account_anglo_saxon/__openerp__.py @@ -43,7 +43,8 @@ account.""", 'depends': ['product', 'purchase'], 'category': 'Accounting & Finance', 'demo': [], - 'data': ['product_view.xml',], + 'data': ['product_view.xml'], + 'test': ['test/anglo_saxon.yml', 'test/anglo_saxon_avg_fifo.yml'], 'auto_install': False, 'installable': True, } diff --git a/addons/account_anglo_saxon/docs/account_anglo_saxon.ods b/addons/account_anglo_saxon/docs/account_anglo_saxon.ods new file mode 100644 index 00000000000..91b1d84786d Binary files /dev/null and b/addons/account_anglo_saxon/docs/account_anglo_saxon.ods differ diff --git a/addons/account_anglo_saxon/docs/account_anglo_saxon.pdf b/addons/account_anglo_saxon/docs/account_anglo_saxon.pdf new file mode 100644 index 00000000000..f5250a0c11c Binary files /dev/null and b/addons/account_anglo_saxon/docs/account_anglo_saxon.pdf differ diff --git a/addons/account_anglo_saxon/invoice.py b/addons/account_anglo_saxon/invoice.py index f27d9b3ae72..8b31a48b92b 100644 --- a/addons/account_anglo_saxon/invoice.py +++ b/addons/account_anglo_saxon/invoice.py @@ -117,21 +117,27 @@ class account_invoice_line(osv.osv): for line in res: 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 - standard_price = 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: - price_diff = i_line.price_unit - standard_price - line.update({'price':standard_price * line['quantity']}) + 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 i_line.product_id.cost_method != 'standard' and i_line.purchase_line_id: + #for average/fifo/lifo costing method, fetch real cost price from incomming moves + 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({ - 'type':'src', + 'type': 'src', 'name': i_line.name[:64], - 'price_unit':price_diff, - 'quantity':line['quantity'], + 'price_unit': price_diff, + 'quantity': line['quantity'], 'price': price_diff * line['quantity'], - 'account_id':acc, - 'product_id':line['product_id'], - 'uos_id':line['uos_id'], - 'account_analytic_id':line['account_analytic_id'], - 'taxes':line.get('taxes',[]), + 'account_id': acc, + 'product_id': line['product_id'], + 'uos_id': line['uos_id'], + 'account_analytic_id': line['account_analytic_id'], + 'taxes': line.get('taxes', []), }) res += diff_res return res diff --git a/addons/account_anglo_saxon/product.py b/addons/account_anglo_saxon/product.py index b52d9ed3bbd..1c9e8ee3673 100644 --- a/addons/account_anglo_saxon/product.py +++ b/addons/account_anglo_saxon/product.py @@ -24,27 +24,21 @@ class product_category(osv.osv): _inherit = "product.category" _columns = { 'property_account_creditor_price_difference_categ': fields.property( - 'account.account', type='many2one', relation='account.account', string="Price Difference Account", - view_load=True, 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. 'property_account_income_categ': fields.property( - 'account.account', type='many2one', relation='account.account', string="Income Account", - view_load=True, help="This account will be used to value outgoing stock using sale price."), 'property_account_expense_categ': fields.property( - 'account.account', type='many2one', relation='account.account', string="Expense Account", - view_load=True, 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" _columns = { 'property_account_creditor_price_difference': fields.property( - 'account.account', type='many2one', relation='account.account', string="Price Difference Account", - view_load=True, 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. 'property_account_income': fields.property( - 'account.account', type='many2one', relation='account.account', string="Income Account", - view_load=True, help="This account will be used to value outgoing stock using sale price."), 'property_account_expense': fields.property( - 'account.account', type='many2one', relation='account.account', string="Expense Account", - view_load=True, help="This account will be used to value outgoing stock using cost price."), } diff --git a/addons/account_anglo_saxon/purchase.py b/addons/account_anglo_saxon/purchase.py index c10a2a97d80..fc36dab41c2 100644 --- a/addons/account_anglo_saxon/purchase.py +++ b/addons/account_anglo_saxon/purchase.py @@ -26,16 +26,15 @@ class purchase_order(osv.osv): _inherit = "purchase.order" _description = "Purchase Order" - def _prepare_inv_line(self, cr, uid, account_id, order_line, context=None): - line = super(purchase_order, self)._prepare_inv_line(cr, uid, account_id, order_line, context=context) + def _choose_account_from_po_line(self, cr, uid, order_line, context=None): + 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': acc_id = order_line.product_id.property_stock_account_input and order_line.product_id.property_stock_account_input.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 if acc_id: 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) - line.update({'account_id': new_account_id}) - return line + account_id = self.pool.get('account.fiscal.position').map_account(cr, uid, fpos, acc_id) + return account_id # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/account_anglo_saxon/test/anglo_saxon.yml b/addons/account_anglo_saxon/test/anglo_saxon.yml new file mode 100644 index 00000000000..6e9ebc0068e --- /dev/null +++ b/addons/account_anglo_saxon/test/anglo_saxon.yml @@ -0,0 +1,299 @@ +- + In order to test anglo_saxon Configure Different Accounts. +- + !record {model: account.account, id: account_anglo_stock_valuation}: + code: X3000 + name: Stock Valuation Account- (test) + parent_id: account.cas + type: other + user_type: account.data_account_type_asset +- + Configure Stock Interim account (Received). +- + !record {model: account.account, id: account_anglo_stock_input}: + code: X2800 + name: Stock Interim account (Received) + parent_id: account.cos + type: other + user_type: account.data_account_type_expense +- + Configure Stock Interim account (Delivered). +- + !record {model: account.account, id: account_anglo_stock_output}: + code: X2801 + name: Stock Interim account (Delivered) + parent_id: account.rev + type: other + user_type: account.data_account_type_income +- + Configure Price difference creditor Account. +- + !record {model: account.account, id: account_anglo_price_difference}: + code: X7095 + name: Price difference creditor Account + parent_id: account.cos + type: other + user_type: account.data_account_type_expense +- + Configure Cash Bank Account. +- + !record {model: account.account, id: account_anglo_cash}: + code: X5000 + name: Cash/Bank Account + parent_id: account.cash + type: other + user_type: account.data_account_type_asset +- + Configure Creditor Account Payable. +- + !record {model: account.account, id: account_anglo_payable}: + code: X440001 + name: Creditor Account Payable + parent_id: account.a_pay + type: other + user_type: account.data_account_type_payable +- + Configure Debtor Account Receivable. +- + !record {model: account.account, id: account_anglo_receivable}: + code: X400001 + name: Debtor Account Receivable + parent_id: account.a_recv + type: other + user_type: account.data_account_type_receivable +- + Configure Cost of Good sale Account. +- + !record {model: account.account, id: account_anglo_cogs}: + code: X7000 + name: Cost of goods sale account + parent_id: account.o_expense + type: other + user_type: account.data_account_type_expense +- + Configure Income Account. +- + !record {model: account.account, id: account_anglo_income}: + code: X8000 + name: Income Account + parent_id: account.o_income + type: other + user_type: account.data_account_type_income +- + I configure the account receivable of supplier +- + !record {model: res.partner, id: base.res_partner_3}: + property_account_payable: account_anglo_payable + property_account_receivable: account_anglo_receivable +- + I configure the account receivable of Customer. +- + !record {model: res.partner, id: base.res_partner_13}: + property_account_payable: account_anglo_payable + property_account_receivable: account_anglo_receivable +- + I configure the product category with stock valuation account. +- + !record {model: product.category, id: product.product_category_4}: + property_stock_valuation_account_id: account_anglo_stock_valuation +- + I configure the product with required accounts, and cost method = standard +- + !python {model: product.product}: | + self.write(cr, uid, [ref('product.product_product_3')], {'list_price': 20.00,'standard_price': 9,'categ_id': ref('product.product_category_4'),'valuation': 'real_time', + 'property_account_income': ref('account_anglo_income'),'property_account_expense': ref('account_anglo_cogs'), + 'property_account_creditor_price_difference': ref('account_anglo_price_difference'),'property_stock_account_input': ref('account_anglo_stock_input'), + 'property_stock_account_output': ref('account_anglo_stock_output'), 'cost_method': 'standard'}) +- + I create a draft Purchase Order. +- + !record {model: purchase.order, id: purchase_order_001}: + partner_id: base.res_partner_3 + location_id: stock.stock_location_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 diff --git a/addons/account_anglo_saxon/test/anglo_saxon_avg_fifo.yml b/addons/account_anglo_saxon/test/anglo_saxon_avg_fifo.yml new file mode 100644 index 00000000000..f7d52f4f5a8 --- /dev/null +++ b/addons/account_anglo_saxon/test/anglo_saxon_avg_fifo.yml @@ -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 diff --git a/addons/account_asset/static/src/img/icon.png b/addons/account_asset/static/description/icon.png similarity index 100% rename from addons/account_asset/static/src/img/icon.png rename to addons/account_asset/static/description/icon.png diff --git a/addons/account_cancel/i18n/vi.po b/addons/account_cancel/i18n/vi.po index 8198e802022..89a7feb7942 100644 --- a/addons/account_cancel/i18n/vi.po +++ b/addons/account_cancel/i18n/vi.po @@ -8,19 +8,19 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-12-21 17:05+0000\n" -"PO-Revision-Date: 2010-12-21 14:22+0000\n" -"Last-Translator: OpenERP Administrators \n" +"PO-Revision-Date: 2013-06-30 16:08+0000\n" +"Last-Translator: Hung Tran \n" "Language-Team: Vietnamese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-16 05:42+0000\n" -"X-Generator: Launchpad (build 16532)\n" +"X-Launchpad-Export-Date: 2013-07-01 05:14+0000\n" +"X-Generator: Launchpad (build 16692)\n" #. module: account_cancel #: view:account.invoice:0 msgid "Cancel" -msgstr "" +msgstr "Hủy bỏ" #~ msgid "Account Cancel" #~ msgstr "Hủy bỏ Tài khoản" diff --git a/addons/account_voucher/html/account_illu_01.png b/addons/account_voucher/static/description/account_illu_01.png similarity index 100% rename from addons/account_voucher/html/account_illu_01.png rename to addons/account_voucher/static/description/account_illu_01.png diff --git a/addons/account_voucher/html/account_sc_00.png b/addons/account_voucher/static/description/account_sc_00.png similarity index 100% rename from addons/account_voucher/html/account_sc_00.png rename to addons/account_voucher/static/description/account_sc_00.png diff --git a/addons/account_voucher/html/account_sc_02.png b/addons/account_voucher/static/description/account_sc_02.png similarity index 100% rename from addons/account_voucher/html/account_sc_02.png rename to addons/account_voucher/static/description/account_sc_02.png diff --git a/addons/account_voucher/html/account_sc_03.png b/addons/account_voucher/static/description/account_sc_03.png similarity index 100% rename from addons/account_voucher/html/account_sc_03.png rename to addons/account_voucher/static/description/account_sc_03.png diff --git a/addons/account_voucher/html/account_sc_04.png b/addons/account_voucher/static/description/account_sc_04.png similarity index 100% rename from addons/account_voucher/html/account_sc_04.png rename to addons/account_voucher/static/description/account_sc_04.png diff --git a/addons/account_voucher/html/account_sc_06.png b/addons/account_voucher/static/description/account_sc_06.png similarity index 100% rename from addons/account_voucher/html/account_sc_06.png rename to addons/account_voucher/static/description/account_sc_06.png diff --git a/addons/account_voucher/html/bazile.png b/addons/account_voucher/static/description/bazile.png similarity index 100% rename from addons/account_voucher/html/bazile.png rename to addons/account_voucher/static/description/bazile.png diff --git a/addons/account_voucher/static/src/img/icon.png b/addons/account_voucher/static/description/icon.png similarity index 100% rename from addons/account_voucher/static/src/img/icon.png rename to addons/account_voucher/static/description/icon.png diff --git a/addons/account_voucher/html/index.html b/addons/account_voucher/static/description/index.html similarity index 100% rename from addons/account_voucher/html/index.html rename to addons/account_voucher/static/description/index.html diff --git a/addons/account_voucher/html/testimonial_sunil.jpg b/addons/account_voucher/static/description/testimonial_sunil.jpg similarity index 100% rename from addons/account_voucher/html/testimonial_sunil.jpg rename to addons/account_voucher/static/description/testimonial_sunil.jpg diff --git a/addons/analytic/analytic.py b/addons/analytic/analytic.py index ce79c4d5ffb..df852181709 100644 --- a/addons/analytic/analytic.py +++ b/addons/analytic/analytic.py @@ -33,9 +33,9 @@ class account_analytic_account(osv.osv): _description = 'Analytic Account' _track = { 'state': { - '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_opened': lambda self, cr, uid, obj, ctx=None: obj['state'] == 'open', + '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_opened': lambda self, cr, uid, obj, ctx=None: obj.state == 'open', }, } diff --git a/addons/auth_oauth/controllers/main.py b/addons/auth_oauth/controllers/main.py index 62eb2e812cc..35a06871696 100644 --- a/addons/auth_oauth/controllers/main.py +++ b/addons/auth_oauth/controllers/main.py @@ -7,7 +7,8 @@ from werkzeug.exceptions import BadRequest import openerp 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.modules.registry import RegistryManager @@ -18,7 +19,7 @@ _logger = logging.getLogger(__name__) #---------------------------------------------------------- def fragment_to_query_string(func): @functools.wraps(func) - def wrapper(self, req, **kw): + def wrapper(self, **kw): if not kw: return """""" - return func(self, req, **kw) + return func(self, **kw) return wrapper #---------------------------------------------------------- # Controller #---------------------------------------------------------- -class OAuthController(oeweb.Controller): - _cp_path = '/auth_oauth' +class OAuthController(http.Controller): - @oeweb.jsonrequest - def list_providers(self, req, dbname): + @http.route('/auth_oauth/list_providers', type='json', auth='none') + def list_providers(self, dbname): try: registry = RegistryManager.get(dbname) with registry.cursor() as cr: @@ -51,9 +51,9 @@ class OAuthController(oeweb.Controller): l = [] return l - @oeweb.httprequest + @http.route('/auth_oauth/signin', type='http', auth='none') @fragment_to_query_string - def signin(self, req, **kw): + def signin(self, **kw): state = simplejson.loads(kw['state']) dbname = state['d'] provider = state['p'] @@ -71,7 +71,7 @@ class OAuthController(oeweb.Controller): url = '/#action=%s' % action elif 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: # auth_signup is not installed _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)) url = "/#action=login&oauth_error=2" - return set_cookie_and_redirect(req, url) + return set_cookie_and_redirect(url) - @oeweb.httprequest - def oea(self, req, **kw): + @http.route('/auth_oauth/oea', type='http', auth='none') + def oea(self, **kw): """login user via OpenERP Account provider""" dbname = kw.pop('db', None) if not dbname: - dbname = db_monodb(req) + dbname = db_monodb() if not dbname: return BadRequest() @@ -105,7 +105,7 @@ class OAuthController(oeweb.Controller): try: model, provider_id = IMD.get_object_reference(cr, SUPERUSER_ID, 'auth_oauth', 'provider_openerp') except ValueError: - return set_cookie_and_redirect(req, '/?db=%s' % dbname) + return set_cookie_and_redirect('/?db=%s' % dbname) assert model == 'auth.oauth.provider' state = { @@ -115,6 +115,6 @@ class OAuthController(oeweb.Controller): } kw['state'] = simplejson.dumps(state) - return self.signin(req, **kw) + return self.signin(**kw) # vim:expandtab:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/auth_oauth_signup/i18n/vi.po b/addons/auth_oauth_signup/i18n/vi.po new file mode 100644 index 00000000000..bdc3eff5b8d --- /dev/null +++ b/addons/auth_oauth_signup/i18n/vi.po @@ -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 , 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-12-21 17:05+0000\n" +"PO-Revision-Date: 2013-06-27 06:49+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Vietnamese \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" diff --git a/addons/auth_openid/controllers/main.py b/addons/auth_openid/controllers/main.py index 1fcc34c82a0..a4ef1bfa07b 100644 --- a/addons/auth_openid/controllers/main.py +++ b/addons/auth_openid/controllers/main.py @@ -38,6 +38,8 @@ import openerp from openerp import SUPERUSER_ID from openerp.modules.registry import RegistryManager 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 @@ -88,20 +90,19 @@ class GoogleAppsAwareConsumer(consumer.GenericConsumer): return super(GoogleAppsAwareConsumer, self).complete(message, endpoint, return_to) -class OpenIDController(openerp.addons.web.http.Controller): - _cp_path = '/auth_openid/login' +class OpenIDController(http.Controller): _store = filestore.FileOpenIDStore(_storedir) _REQUIRED_ATTRIBUTES = ['email'] _OPTIONAL_ATTRIBUTES = 'nickname fullname postcode country language timezone'.split() - def _add_extensions(self, request): - """Add extensions to the request""" + def _add_extensions(self, oidrequest): + """Add extensions to the oidrequest""" sreg_request = sreg.SRegRequest(required=self._REQUIRED_ATTRIBUTES, optional=self._OPTIONAL_ATTRIBUTES) - request.addExtension(sreg_request) + oidrequest.addExtension(sreg_request) ax_request = ax.FetchRequest() for alias in self._REQUIRED_ATTRIBUTES: @@ -111,7 +112,7 @@ class OpenIDController(openerp.addons.web.http.Controller): uri = utils.SREG2AX[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): attrs = {} @@ -133,58 +134,58 @@ class OpenIDController(openerp.addons.web.http.Controller): attrs[attr] = value return attrs - def _get_realm(self, req): - return req.httprequest.host_url + def _get_realm(self): + return request.httprequest.host_url - @openerp.addons.web.http.httprequest - def verify_direct(self, req, db, url): - result = self._verify(req, db, url) + @http.route('/auth_openid/login/verify_direct', type='http', auth='none') + def verify_direct(self, db, url): + result = self._verify(db, url) if 'error' in result: return werkzeug.exceptions.BadRequest(result['error']) if result['action'] == 'redirect': return werkzeug.utils.redirect(result['value']) return result['value'] - @openerp.addons.web.http.jsonrequest - def verify(self, req, db, url): - return self._verify(req, db, url) + @http.route('/auth_openid/login/verify', type='json', auth='none') + def verify(self, db, url): + return self._verify(db, url) - def _verify(self, req, db, url): - redirect_to = werkzeug.urls.Href(req.httprequest.host_url + 'auth_openid/login/process')(session_id=req.session_id) - realm = self._get_realm(req) + def _verify(self, db, url): + redirect_to = werkzeug.urls.Href(request.httprequest.host_url + 'auth_openid/login/process')(session_id=request.session_id) + realm = self._get_realm() session = dict(dbname=db, openid_url=url) # TODO add origin page ? oidconsumer = consumer.Consumer(session, self._store) try: - request = oidconsumer.begin(url) + oidrequest = oidconsumer.begin(url) except consumer.DiscoveryFailure, exc: fetch_error_string = 'Error in discovery: %s' % (str(exc[0]),) 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'} - req.session.openid_session = session - self._add_extensions(request) + request.session.openid_session = session + self._add_extensions(oidrequest) - if request.shouldSendRedirect(): - redirect_url = request.redirectURL(realm, redirect_to) - return {'action': 'redirect', 'value': redirect_url, 'session_id': req.session_id} + if oidrequest.shouldSendRedirect(): + redirect_url = oidrequest.redirectURL(realm, redirect_to) + return {'action': 'redirect', 'value': redirect_url, 'session_id': request.session_id} else: - form_html = request.htmlMarkup(realm, redirect_to) - return {'action': 'post', 'value': form_html, 'session_id': req.session_id} + form_html = oidrequest.htmlMarkup(realm, redirect_to) + return {'action': 'post', 'value': form_html, 'session_id': request.session_id} - @openerp.addons.web.http.httprequest - def process(self, req, **kw): - session = getattr(req.session, 'openid_session', None) + @http.route('/auth_openid/login/process', type='http', auth='none') + def process(self, **kw): + session = getattr(request.session, 'openid_session', None) if not session: - return set_cookie_and_redirect(req, '/') + return set_cookie_and_redirect('/') oidconsumer = consumer.Consumer(session, self._store, consumer_class=GoogleAppsAwareConsumer) - query = req.httprequest.args - info = oidconsumer.complete(query, req.httprequest.base_url) + query = request.httprequest.args + info = oidconsumer.complete(query, request.httprequest.base_url) display_identifier = info.getDisplayIdentifier() 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 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' @@ -241,11 +242,11 @@ class OpenIDController(openerp.addons.web.http.Controller): # information in a log. 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 - def status(self, req): - session = getattr(req.session, 'openid_session', {}) + @http.route('/auth_openid/login/status', type='json', auth='none') + def status(self): + session = getattr(request.session, 'openid_session', {}) return {'status': session.get('status'), 'message': session.get('message')} diff --git a/addons/auth_openid/i18n/vi.po b/addons/auth_openid/i18n/vi.po new file mode 100644 index 00000000000..d1040420132 --- /dev/null +++ b/addons/auth_openid/i18n/vi.po @@ -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 , 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-12-21 17:05+0000\n" +"PO-Revision-Date: 2013-06-27 16:29+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Vietnamese \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" diff --git a/addons/auth_signup/controllers/main.py b/addons/auth_signup/controllers/main.py index 924e1546862..8c61af1f03c 100644 --- a/addons/auth_signup/controllers/main.py +++ b/addons/auth_signup/controllers/main.py @@ -23,14 +23,15 @@ import logging import openerp from openerp.modules.registry import RegistryManager from ..res_users import SignupError +import openerp.addons.web.http as http +from openerp.addons.web.http import request _logger = logging.getLogger(__name__) -class Controller(openerp.addons.web.http.Controller): - _cp_path = '/auth_signup' +class Controller(http.Controller): - @openerp.addons.web.http.jsonrequest - def get_config(self, req, dbname): + @http.route('/auth_signup/get_config', type='json', auth="none") + def get_config(self, dbname): """ retrieve the module config (which features are enabled) for the login page """ registry = RegistryManager.get(dbname) with registry.cursor() as cr: @@ -41,8 +42,8 @@ class Controller(openerp.addons.web.http.Controller): } return config - @openerp.addons.web.http.jsonrequest - def retrieve(self, req, dbname, token): + @http.route('/auth_signup/retrieve', type='json', auth="user") + def retrieve(self, dbname, token): """ retrieve the user info (name, login or email) corresponding to a signup token """ registry = RegistryManager.get(dbname) 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) return user_info - @openerp.addons.web.http.jsonrequest - def signup(self, req, dbname, token, **values): + @http.route('/auth_signup/signup', type='json', auth="user") + def signup(self, dbname, token, **values): """ sign up a user (new or existing)""" try: - self._signup_with_values(req, dbname, token, values) + self._signup_with_values(dbname, token, values) except SignupError, e: return {'error': openerp.tools.exception_to_unicode(e)} return {} - def _signup_with_values(self, req, dbname, token, values): + def _signup_with_values(self, dbname, token, values): registry = RegistryManager.get(dbname) with registry.cursor() as cr: res_users = registry.get('res.users') res_users.signup(cr, openerp.SUPERUSER_ID, values, token) - @openerp.addons.web.http.jsonrequest - def reset_password(self, req, dbname, login): + @http.route('/auth_signup/reset_password', type='json', auth="user") + def reset_password(self, dbname, login): """ retrieve user, and perform reset password """ registry = RegistryManager.get(dbname) with registry.cursor() as cr: diff --git a/addons/auth_signup/i18n/vi.po b/addons/auth_signup/i18n/vi.po new file mode 100644 index 00000000000..a79bbcb7bb4 --- /dev/null +++ b/addons/auth_signup/i18n/vi.po @@ -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 , 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-12-21 17:05+0000\n" +"PO-Revision-Date: 2013-06-27 06:52+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Vietnamese \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" +"

A password reset was requested for the OpenERP account linked to this " +"email.

\n" +"\n" +"

You may change your password by following this link.

\n" +"\n" +"

Note: If you do not expect this, you can safely ignore this email.

" +msgstr "" +"\n" +"\\n\n" +"

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.

\\n\n" +"\\n\n" +"

Bạn có thể thay đổi mật khẩu thông qua đường dẫn này.

\\n\n" +"\\n\n" +"

Lưu ý: Nếu đây không phải chủ ý của bạn. Bạn có thể bỏ qua email này.

" + +#. 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 "" diff --git a/addons/auth_signup/i18n/zh_CN.po b/addons/auth_signup/i18n/zh_CN.po index aa8d9f952c1..497b872997f 100644 --- a/addons/auth_signup/i18n/zh_CN.po +++ b/addons/auth_signup/i18n/zh_CN.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-12-21 17:05+0000\n" -"PO-Revision-Date: 2013-04-16 04:33+0000\n" -"Last-Translator: Key \n" +"PO-Revision-Date: 2013-07-02 08:11+0000\n" +"Last-Translator: DWXXX \n" "Language-Team: Chinese (Simplified) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-04-17 05:15+0000\n" -"X-Generator: Launchpad (build 16567)\n" +"X-Launchpad-Export-Date: 2013-07-03 05:14+0000\n" +"X-Generator: Launchpad (build 16692)\n" #. module: auth_signup #: field:res.partner,signup_type:0 @@ -29,7 +29,7 @@ msgstr "允许外部用户登录" #. module: auth_signup #. 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 msgid "Confirm Password" msgstr "确认密码" @@ -37,7 +37,7 @@ msgstr "确认密码" #. module: auth_signup #: help:base.config.settings,auth_signup_uninvited:0 msgid "If unchecked, only invited users may sign up." -msgstr "" +msgstr "如果不勾选,只有被邀请用户才能注册。" #. module: auth_signup #: model:ir.model,name:auth_signup.model_base_config_settings @@ -45,15 +45,15 @@ msgid "base.config.settings" msgstr "base.config.settings" #. module: auth_signup -#: code:addons/auth_signup/res_users.py:265 +#: code:addons/auth_signup/res_users.py:266 #, python-format msgid "Cannot send email: user has no email address." -msgstr "" +msgstr "无法发送邮件:用户邮件地址为空。" #. module: auth_signup #. openerp-web -#: code:addons/auth_signup/static/src/xml/auth_signup.xml:24 -#: code:addons/auth_signup/static/src/xml/auth_signup.xml:28 +#: 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 "重设密码" @@ -70,7 +70,7 @@ msgstr "重置密码" #. module: auth_signup #. 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 msgid "Please enter a password and confirm it." msgstr "请输入密码并确认。" @@ -78,12 +78,12 @@ msgstr "请输入密码并确认。" #. module: auth_signup #: view:res.users:0 msgid "Send an email to the user to (re)set their password." -msgstr "" +msgstr "向用户发送重置密码邮件。" #. module: auth_signup #. 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:29 #, python-format msgid "Sign Up" msgstr "注册" @@ -119,10 +119,10 @@ 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 #, python-format msgid "Please enter a name." -msgstr "" +msgstr "请输入名字" #. module: auth_signup #: model:ir.model,name:auth_signup.model_res_users @@ -136,10 +136,10 @@ msgstr "注册 URL" #. module: auth_signup #. 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 msgid "Please enter a username." -msgstr "" +msgstr "请输入您的用户名" #. module: auth_signup #: selection:res.users,state:0 @@ -147,7 +147,7 @@ msgid "Active" msgstr "启用" #. module: auth_signup -#: code:addons/auth_signup/res_users.py:269 +#: code:addons/auth_signup/res_users.py:270 #, python-format msgid "" "Cannot send email: no outgoing email server configured.\n" @@ -170,10 +170,10 @@ msgstr "姓名" #. module: auth_signup #. 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 msgid "Please enter a username or email address." -msgstr "" +msgstr "请输入用户名和邮件地址" #. module: auth_signup #: selection:res.users,state:0 @@ -199,7 +199,7 @@ msgstr "" #. module: auth_signup #. 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 msgid "Log in" msgstr "登录" @@ -211,35 +211,35 @@ msgstr "注册令牌( Token )是有效的" #. module: auth_signup #. 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: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: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:173 #, python-format msgid "Login" msgstr "" #. module: auth_signup #. 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 msgid "Invalid signup token" msgstr "" #. module: auth_signup #. 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 msgid "Passwords do not match; please retype them." msgstr "" #. module: auth_signup #. openerp-web -#: code:addons/auth_signup/static/src/js/auth_signup.js:108 -#: code:addons/auth_signup/static/src/js/auth_signup.js:167 +#: 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 "" @@ -256,7 +256,7 @@ msgstr "" #. 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:30 #, python-format msgid "Back to Login" msgstr "返回登录页面" @@ -266,12 +266,12 @@ msgstr "返回登录页面" #: code:addons/auth_signup/static/src/xml/auth_signup.xml:22 #, python-format msgid "Sign up" -msgstr "" +msgstr "注册" #. module: auth_signup #: model:ir.model,name:auth_signup.model_res_partner msgid "Partner" -msgstr "业务伙伴" +msgstr "合作伙伴" #. module: auth_signup #: field:res.partner,signup_token:0 diff --git a/addons/base_calendar/base_calendar.py b/addons/base_calendar/base_calendar.py index 896349ec5e6..a9061c0afce 100644 --- a/addons/base_calendar/base_calendar.py +++ b/addons/base_calendar/base_calendar.py @@ -1510,7 +1510,7 @@ rule or repeating pattern of time to exclude from the recurring rule."), continue if r['class']=='private': 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): r[f] = [] else: diff --git a/addons/base_calendar/i18n/zh_CN.po b/addons/base_calendar/i18n/zh_CN.po index ed1cddd716b..a5ede7a80c9 100644 --- a/addons/base_calendar/i18n/zh_CN.po +++ b/addons/base_calendar/i18n/zh_CN.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-12-21 17:05+0000\n" -"PO-Revision-Date: 2012-11-28 16:50+0000\n" -"Last-Translator: Joshua Jan(SHINEIT) \n" +"PO-Revision-Date: 2013-06-29 05:34+0000\n" +"Last-Translator: David.Xu \n" "Language-Team: Chinese (Simplified) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-16 05:45+0000\n" -"X-Generator: Launchpad (build 16532)\n" +"X-Launchpad-Export-Date: 2013-06-30 05:56+0000\n" +"X-Generator: Launchpad (build 16692)\n" #. module: base_calendar #: selection:calendar.alarm,trigger_related:0 @@ -42,7 +42,7 @@ msgstr "这属性定义循环日程的日期/时间异常列表。" #: selection:calendar.todo,rrule_type:0 #: selection:crm.meeting,rrule_type:0 msgid "Week(s)" -msgstr "" +msgstr "周" #. module: base_calendar #: field:calendar.event,we:0 @@ -248,7 +248,7 @@ msgid "To" msgstr "到" #. module: base_calendar -#: code:addons/base_calendar/base_calendar.py:1260 +#: code:addons/base_calendar/base_calendar.py:1262 #, python-format msgid "Error!" msgstr "错误!" @@ -300,7 +300,7 @@ msgstr "与会者的参与状况" #. module: base_calendar #: view:crm.meeting:0 msgid "Mail To" -msgstr "" +msgstr "收信人" #. module: base_calendar #: field:crm.meeting,name:0 @@ -361,9 +361,9 @@ msgstr "保存复杂的摘要(消息数量,……等)。为了插入到看板视 #. module: base_calendar #: code:addons/base_calendar/base_calendar.py:399 #: 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:1460 +#: code:addons/base_calendar/base_calendar.py:1017 +#: code:addons/base_calendar/base_calendar.py:1462 #, python-format msgid "Warning!" msgstr "警告!" @@ -478,7 +478,7 @@ msgstr "日期" #. module: base_calendar #: field:crm.meeting,message_follower_ids:0 msgid "Followers" -msgstr "" +msgstr "关注者" #. module: base_calendar #: field:calendar.event,location:0 @@ -522,7 +522,7 @@ msgid "Event alarm information" msgstr "事件提醒信息" #. module: base_calendar -#: code:addons/base_calendar/base_calendar.py:1015 +#: code:addons/base_calendar/base_calendar.py:1017 #, python-format msgid "Count cannot be negative or 0." msgstr "" @@ -530,21 +530,21 @@ msgstr "" #. module: base_calendar #: field:crm.meeting,create_date:0 msgid "Creation Date" -msgstr "" +msgstr "创建日期" #. module: base_calendar #: view:crm.meeting:0 #: model:ir.model,name:base_calendar.model_crm_meeting #: model:res.request.link,name:base_calendar.request_link_meeting msgid "Meeting" -msgstr "" +msgstr "会议" #. module: base_calendar #: selection:calendar.event,rrule_type:0 #: selection:calendar.todo,rrule_type:0 #: selection:crm.meeting,rrule_type:0 msgid "Month(s)" -msgstr "" +msgstr "月" #. module: base_calendar #: view:calendar.event:0 @@ -566,7 +566,7 @@ msgstr "Caldav 服务的URL" #. module: base_calendar #: model:ir.model,name:base_calendar.model_mail_wizard_invite msgid "Invite wizard" -msgstr "" +msgstr "邀请向导" #. module: base_calendar #: selection:calendar.event,month_list:0 @@ -590,7 +590,7 @@ msgstr "周四" #. module: base_calendar #: view:crm.meeting:0 msgid "Meeting Details" -msgstr "" +msgstr "会议详情" #. module: base_calendar #: field:calendar.attendee,child_ids:0 @@ -601,21 +601,21 @@ msgstr "代表人" #: code:addons/base_calendar/crm_meeting.py:102 #, python-format msgid "The following contacts have no email address :" -msgstr "" +msgstr "下列联系人没有电子邮件地址:" #. module: base_calendar #: selection:calendar.event,rrule_type:0 #: selection:calendar.todo,rrule_type:0 #: selection:crm.meeting,rrule_type:0 msgid "Year(s)" -msgstr "" +msgstr "年" #. module: base_calendar #: view:crm.meeting.type:0 #: model:ir.actions.act_window,name:base_calendar.action_crm_meeting_type #: model:ir.ui.menu,name:base_calendar.menu_crm_meeting_type msgid "Meeting Types" -msgstr "" +msgstr "会议类型" #. module: base_calendar #: field:calendar.event,create_date:0 @@ -633,7 +633,7 @@ msgstr "全员可见" #. module: base_calendar #: view:crm.meeting:0 msgid "hours" -msgstr "" +msgstr "小时" #. module: base_calendar #: field:calendar.attendee,partner_id:0 @@ -655,7 +655,7 @@ msgstr "重复直到" #. module: base_calendar #: view:crm.meeting:0 msgid "Options" -msgstr "" +msgstr "选项" #. module: base_calendar #: selection:calendar.event,byday:0 @@ -694,7 +694,7 @@ msgstr "周二" #. module: base_calendar #: field:crm.meeting,categ_ids:0 msgid "Tags" -msgstr "" +msgstr "标签" #. module: base_calendar #: view:calendar.event:0 @@ -741,7 +741,7 @@ msgid "Declined" msgstr "已拒绝" #. module: base_calendar -#: code:addons/base_calendar/base_calendar.py:1460 +#: code:addons/base_calendar/base_calendar.py:1462 #, python-format msgid "Group by date is not supported, use the calendar view instead." msgstr "" @@ -1200,7 +1200,7 @@ msgid "Select Weekdays" msgstr "" #. 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.event,show_as:0 #: selection:calendar.todo,show_as:0 @@ -1453,7 +1453,7 @@ msgid "Weekday" msgstr "工作日" #. module: base_calendar -#: code:addons/base_calendar/base_calendar.py:1013 +#: code:addons/base_calendar/base_calendar.py:1015 #, python-format msgid "Interval cannot be negative." msgstr "" diff --git a/addons/base_calendar/static/src/img/icon.png b/addons/base_calendar/static/description/icon.png similarity index 100% rename from addons/base_calendar/static/src/img/icon.png rename to addons/base_calendar/static/description/icon.png diff --git a/addons/base_crypt/i18n/vi.po b/addons/base_crypt/i18n/vi.po index 7ab8f31bc3c..2265e70eb2e 100644 --- a/addons/base_crypt/i18n/vi.po +++ b/addons/base_crypt/i18n/vi.po @@ -8,19 +8,19 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-12-03 16:03+0000\n" -"PO-Revision-Date: 2011-07-20 09:55+0000\n" -"Last-Translator: OpenBMS JSC \n" +"PO-Revision-Date: 2013-06-30 16:09+0000\n" +"Last-Translator: Hung Tran \n" "Language-Team: Vietnamese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-03-16 05:49+0000\n" -"X-Generator: Launchpad (build 16532)\n" +"X-Launchpad-Export-Date: 2013-07-01 05:14+0000\n" +"X-Generator: Launchpad (build 16692)\n" #. module: base_crypt #: model:ir.model,name:base_crypt.model_res_users msgid "Users" -msgstr "" +msgstr "Người dùng" #, python-format #~ msgid "Error" diff --git a/addons/base_gengo/i18n/th.po b/addons/base_gengo/i18n/th.po new file mode 100644 index 00000000000..e0b5ba3e2fc --- /dev/null +++ b/addons/base_gengo/i18n/th.po @@ -0,0 +1,249 @@ +# Thai translation for openobject-addons +# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-12-21 17:05+0000\n" +"PO-Revision-Date: 2013-06-20 13:54+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Thai \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-06-21 05:36+0000\n" +"X-Generator: Launchpad (build 16677)\n" + +#. module: base_gengo +#: view:res.company:0 +msgid "Comments for Translator" +msgstr "" + +#. module: base_gengo +#: field:ir.translation,job_id:0 +msgid "Gengo Job ID" +msgstr "" + +#. module: base_gengo +#: code:addons/base_gengo/wizard/base_gengo_translations.py:114 +#, python-format +msgid "This language is not supported by the Gengo translation services." +msgstr "" + +#. module: base_gengo +#: field:res.company,gengo_comment:0 +msgid "Comments" +msgstr "ความคิดเห็น" + +#. module: base_gengo +#: field:res.company,gengo_private_key:0 +msgid "Gengo Private Key" +msgstr "" + +#. module: base_gengo +#: model:ir.model,name:base_gengo.model_base_gengo_translations +msgid "base.gengo.translations" +msgstr "base.gengo.translations" + +#. module: base_gengo +#: help:res.company,gengo_auto_approve:0 +msgid "Jobs are Automatically Approved by Gengo." +msgstr "" + +#. module: base_gengo +#: field:base.gengo.translations,lang_id:0 +msgid "Language" +msgstr "ภาษา" + +#. module: base_gengo +#: field:ir.translation,gengo_comment:0 +msgid "Comments & Activity Linked to Gengo" +msgstr "" + +#. module: base_gengo +#: code:addons/base_gengo/wizard/base_gengo_translations.py:124 +#, python-format +msgid "Gengo Sync Translation (Response)" +msgstr "" + +#. module: base_gengo +#: code:addons/base_gengo/wizard/base_gengo_translations.py:72 +#, python-format +msgid "" +"Gengo `Public Key` or `Private Key` are missing. Enter your Gengo " +"authentication parameters under `Settings > Companies > Gengo Parameters`." +msgstr "" + +#. module: base_gengo +#: selection:ir.translation,gengo_translation:0 +msgid "Translation By Machine" +msgstr "" + +#. module: base_gengo +#: code:addons/base_gengo/wizard/base_gengo_translations.py:155 +#, python-format +msgid "" +"%s\n" +"\n" +"--\n" +" Commented on %s by %s." +msgstr "" + +#. module: base_gengo +#: field:ir.translation,gengo_translation:0 +msgid "Gengo Translation Service Level" +msgstr "" + +#. module: base_gengo +#: constraint:ir.translation:0 +msgid "" +"The Gengo translation service selected is not supported for this language." +msgstr "" + +#. module: base_gengo +#: selection:ir.translation,gengo_translation:0 +msgid "Standard" +msgstr "" + +#. module: base_gengo +#: help:ir.translation,gengo_translation:0 +msgid "" +"You can select here the service level you want for an automatic translation " +"using Gengo." +msgstr "" + +#. module: base_gengo +#: field:base.gengo.translations,restart_send_job:0 +msgid "Restart Sending Job" +msgstr "" + +#. module: base_gengo +#: view:ir.translation:0 +msgid "To Approve In Gengo" +msgstr "" + +#. module: base_gengo +#: view:res.company:0 +msgid "Private Key" +msgstr "" + +#. module: base_gengo +#: view:res.company:0 +msgid "Public Key" +msgstr "" + +#. module: base_gengo +#: field:res.company,gengo_public_key:0 +msgid "Gengo Public Key" +msgstr "" + +#. module: base_gengo +#: code:addons/base_gengo/wizard/base_gengo_translations.py:123 +#, python-format +msgid "Gengo Sync Translation (Request)" +msgstr "" + +#. module: base_gengo +#: view:ir.translation:0 +msgid "Translations" +msgstr "" + +#. module: base_gengo +#: field:res.company,gengo_auto_approve:0 +msgid "Auto Approve Translation ?" +msgstr "" + +#. module: base_gengo +#: model:ir.actions.act_window,name:base_gengo.action_wizard_base_gengo_translations +#: model:ir.ui.menu,name:base_gengo.menu_action_wizard_base_gengo_translations +msgid "Gengo: Manual Request of Translation" +msgstr "" + +#. module: base_gengo +#: code:addons/base_gengo/ir_translation.py:62 +#: code:addons/base_gengo/wizard/base_gengo_translations.py:109 +#, python-format +msgid "Gengo Authentication Error" +msgstr "" + +#. module: base_gengo +#: model:ir.model,name:base_gengo.model_res_company +msgid "Companies" +msgstr "" + +#. module: base_gengo +#: view:ir.translation:0 +msgid "" +"Note: If the translation state is 'In Progress', it means that the " +"translation has to be approved to be uploaded in this system. You are " +"supposed to do that directly by using your Gengo Account" +msgstr "" + +#. module: base_gengo +#: code:addons/base_gengo/wizard/base_gengo_translations.py:82 +#, python-format +msgid "" +"Gengo connection failed with this message:\n" +"``%s``" +msgstr "" + +#. module: base_gengo +#: view:res.company:0 +msgid "Gengo Parameters" +msgstr "" + +#. module: base_gengo +#: view:base.gengo.translations:0 +msgid "Send" +msgstr "" + +#. module: base_gengo +#: selection:ir.translation,gengo_translation:0 +msgid "Ultra" +msgstr "" + +#. module: base_gengo +#: model:ir.model,name:base_gengo.model_ir_translation +msgid "ir.translation" +msgstr "" + +#. module: base_gengo +#: view:ir.translation:0 +msgid "Gengo Translation Service" +msgstr "" + +#. module: base_gengo +#: selection:ir.translation,gengo_translation:0 +msgid "Pro" +msgstr "" + +#. module: base_gengo +#: view:base.gengo.translations:0 +msgid "Gengo Request Form" +msgstr "" + +#. module: base_gengo +#: code:addons/base_gengo/wizard/base_gengo_translations.py:114 +#, python-format +msgid "Warning" +msgstr "" + +#. module: base_gengo +#: help:res.company,gengo_comment:0 +msgid "" +"This comment will be automatically be enclosed in each an every request sent " +"to Gengo" +msgstr "" + +#. module: base_gengo +#: view:base.gengo.translations:0 +msgid "Cancel" +msgstr "" + +#. module: base_gengo +#: view:base.gengo.translations:0 +msgid "or" +msgstr "" diff --git a/addons/base_setup/i18n/ru.po b/addons/base_setup/i18n/ru.po index 93f65355baa..ab26ce496d6 100644 --- a/addons/base_setup/i18n/ru.po +++ b/addons/base_setup/i18n/ru.po @@ -7,14 +7,14 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2012-12-21 17:05+0000\n" -"PO-Revision-Date: 2013-05-27 12:19+0000\n" -"Last-Translator: leksei \n" +"PO-Revision-Date: 2013-06-17 10:30+0000\n" +"Last-Translator: Chertykov Denis \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-05-28 05:17+0000\n" -"X-Generator: Launchpad (build 16640)\n" +"X-Launchpad-Export-Date: 2013-06-18 05:46+0000\n" +"X-Generator: Launchpad (build 16673)\n" #. module: base_setup #: view:sale.config.settings:0 @@ -92,7 +92,7 @@ msgstr "Общие настройки" #. module: base_setup #: selection:base.setup.terminology,partner:0 msgid "Donor" -msgstr "" +msgstr "Спонсор" #. module: base_setup #: view:base.config.settings:0 @@ -147,7 +147,7 @@ msgstr "res_config_contents" #. module: base_setup #: view:sale.config.settings:0 msgid "Customer Features" -msgstr "" +msgstr "Свойства заказчика" #. module: base_setup #: view:base.config.settings:0 @@ -157,7 +157,7 @@ msgstr "Импорт / Экспорт" #. module: base_setup #: view:sale.config.settings:0 msgid "Sale Features" -msgstr "" +msgstr "Свойства продаж" #. module: base_setup #: field:sale.config.settings,module_plugin_outlook:0 @@ -232,7 +232,7 @@ msgstr "" #. module: base_setup #: model:ir.model,name:base_setup.model_sale_config_settings msgid "sale.config.settings" -msgstr "" +msgstr "sale.config.settings" #. module: base_setup #: field:base.setup.terminology,partner:0 @@ -263,7 +263,7 @@ msgstr "" #. module: base_setup #: model:ir.model,name:base_setup.model_base_setup_terminology msgid "base.setup.terminology" -msgstr "" +msgstr "base.setup.terminology" #. module: base_setup #: selection:base.setup.terminology,partner:0 diff --git a/addons/base_setup/res_config.py b/addons/base_setup/res_config.py index 33c5aa863bf..6b8578bbf47 100644 --- a/addons/base_setup/res_config.py +++ b/addons/base_setup/res_config.py @@ -36,6 +36,8 @@ class base_config_settings(osv.osv_memory): 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_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): diff --git a/addons/base_setup/res_config_view.xml b/addons/base_setup/res_config_view.xml index 8c48f5d7a6b..73685be95df 100644 --- a/addons/base_setup/res_config_view.xml +++ b/addons/base_setup/res_config_view.xml @@ -81,6 +81,15 @@ + +
diff --git a/addons/board/__openerp__.py b/addons/board/__openerp__.py index e699e091176..87771b2f518 100644 --- a/addons/board/__openerp__.py +++ b/addons/board/__openerp__.py @@ -31,7 +31,7 @@ Lets the user create a custom dashboard. Allows users to create custom dashboard. """, 'author': 'OpenERP SA', - 'depends': ['base'], + 'depends': ['base', 'web'], 'data': [ 'security/ir.model.access.csv', 'board_view.xml', diff --git a/addons/claim_from_delivery/i18n/vi.po b/addons/claim_from_delivery/i18n/vi.po new file mode 100644 index 00000000000..f308bafb1ea --- /dev/null +++ b/addons/claim_from_delivery/i18n/vi.po @@ -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 , 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-12-21 17:05+0000\n" +"PO-Revision-Date: 2013-06-30 16:10+0000\n" +"Last-Translator: Hung Tran \n" +"Language-Team: Vietnamese \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 "" diff --git a/addons/contacts/i18n/ko.po b/addons/contacts/i18n/ko.po new file mode 100644 index 00000000000..19e46f9e0b0 --- /dev/null +++ b/addons/contacts/i18n/ko.po @@ -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 , 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-12-21 17:05+0000\n" +"PO-Revision-Date: 2013-06-28 09:32+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Korean \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 "" +"

\n" +" Click to add a contact in your address book.\n" +"

\n" +" OpenERP helps you easily track all activities related to\n" +" a customer; discussions, history of business opportunities,\n" +" documents, etc.\n" +"

\n" +" " +msgstr "" + +#. module: contacts +#: model:ir.actions.act_window,name:contacts.action_contacts +#: model:ir.ui.menu,name:contacts.menu_contacts +msgid "Contacts" +msgstr "연락처" diff --git a/addons/contacts/i18n/vi.po b/addons/contacts/i18n/vi.po new file mode 100644 index 00000000000..d404d947fe2 --- /dev/null +++ b/addons/contacts/i18n/vi.po @@ -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 , 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-12-21 17:05+0000\n" +"PO-Revision-Date: 2013-06-27 16:47+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Vietnamese \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 "" +"

\n" +" Click to add a contact in your address book.\n" +"

\n" +" OpenERP helps you easily track all activities related to\n" +" a customer; discussions, history of business opportunities,\n" +" documents, etc.\n" +"

\n" +" " +msgstr "" +"

\n" +" Nhấn để thêm liên lạc vào sổ địa chỉ.\n" +"

\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" +"

\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ệ" diff --git a/addons/contacts/static/src/img/icon.png b/addons/contacts/static/description/icon.png similarity index 100% rename from addons/contacts/static/src/img/icon.png rename to addons/contacts/static/description/icon.png diff --git a/addons/crm/crm.py b/addons/crm/crm.py index 4c9a60634a5..d1194508b71 100644 --- a/addons/crm/crm.py +++ b/addons/crm/crm.py @@ -222,17 +222,13 @@ class crm_case_section(osv.osv): return res def create(self, cr, uid, vals, context=None): - mail_alias = self.pool.get('mail.alias') - if not vals.get('alias_id'): - alias_name = vals.pop('alias_name', None) or vals.get('name') # prevent errors during copy() - alias_id = mail_alias.create_unique_alias(cr, uid, - {'alias_name': alias_name}, - model_name="crm.lead", - context=context) - 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 + if context is None: + context = {} + create_context = dict(context, alias_model_name='crm.lead', alias_parent_model_name=self._name) + section_id = super(crm_case_section, self).create(cr, uid, vals, context=create_context) + section = self.browse(cr, uid, section_id, context=context) + 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) + return section_id def unlink(self, cr, uid, ids, context=None): # Cascade-delete mail aliases as well, as they should not exist without the sales team. diff --git a/addons/crm/crm_case_section_view.xml b/addons/crm/crm_case_section_view.xml index be5611c03c4..c957311b47f 100644 --- a/addons/crm/crm_case_section_view.xml +++ b/addons/crm/crm_case_section_view.xml @@ -94,7 +94,7 @@

- %% + %%
@@ -168,17 +168,6 @@

-
-
@@ -187,12 +176,25 @@ - - + + diff --git a/addons/crm/crm_lead.py b/addons/crm/crm_lead.py index cedb7f75491..215b0bde670 100644 --- a/addons/crm/crm_lead.py +++ b/addons/crm/crm_lead.py @@ -77,12 +77,12 @@ class crm_lead(base_stage, format_address, osv.osv): _track = { 'state': { - '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_lost': lambda self, cr, uid, obj, ctx=None: obj['state'] == 'cancel', + '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_lost': lambda self, cr, uid, obj, ctx=None: obj.state == 'cancel', }, '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): if context is None: context = {} - if not vals.get('stage_id'): - ctx = context.copy() - if vals.get('section_id'): - ctx['default_section_id'] = vals['section_id'] - if vals.get('type'): - ctx['default_type'] = vals['type'] - vals['stage_id'] = self._get_default_stage_id(cr, uid, context=ctx) + if vals.get('type') and not context.get('default_type'): + context['default_type'] = vals.get('type') + if vals.get('section_id') and not context.get('default_section_id'): + context['default_section_id'] = vals.get('section_id') + # context: no_log, because subtype already handle this create_context = dict(context, mail_create_nolog=True) 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 vals = self._convert_opportunity_data(cr, uid, lead, customer, section_id, context=context) self.write(cr, uid, [lead.id], vals, context=context) - self.message_post(cr, uid, ids, body=_("Lead converted into an Opportunity"), subtype="crm.mt_lead_convert_to_opportunity", context=context) if user_ids or section_id: self.allocate_salesman(cr, uid, ids, user_ids, section_id, context=context) diff --git a/addons/crm/crm_lead_data.xml b/addons/crm/crm_lead_data.xml index 0979a94eb3f..92914542d9d 100644 --- a/addons/crm/crm_lead_data.xml +++ b/addons/crm/crm_lead_data.xml @@ -163,12 +163,6 @@ Opportunity created - - Lead to Opportunity - crm.lead - - Lead converted into an opportunity - Stage Changed crm.lead @@ -195,13 +189,6 @@ section_id - - Lead to Opportunity - - crm.case.section - - section_id - Opportunity Stage Changed crm.case.section diff --git a/addons/crm/crm_lead_demo.xml b/addons/crm/crm_lead_demo.xml index e7e6beae33e..4c6cf47c4f7 100644 --- a/addons/crm/crm_lead_demo.xml +++ b/addons/crm/crm_lead_demo.xml @@ -709,5 +709,6 @@ Andrew eval="[ ref('msg_case18_1'), ref('msg_case18_2')], True, {}" /> + diff --git a/addons/crm/crm_lead_view.xml b/addons/crm/crm_lead_view.xml index 6ddd06c1c90..df6a4a07a8e 100644 --- a/addons/crm/crm_lead_view.xml +++ b/addons/crm/crm_lead_view.xml @@ -601,7 +601,9 @@ 'default_email_to':'{$object.email or \'\'}', 'default_use_template': True, 'default_template_id': ref('crm.email_template_opportunity_mail'), - }"/> + }" + groups="base.group_sale_salesman" + /> @@ -617,6 +619,7 @@ if context.get('active_model') == 'crm.lead' and context.get('active_ids'): self.case_cancel(cr, uid, context['active_ids'], context=context) + diff --git a/addons/crm/crm_phonecall_menu.xml b/addons/crm/crm_phonecall_menu.xml index 2344604a294..f6f94547173 100644 --- a/addons/crm/crm_phonecall_menu.xml +++ b/addons/crm/crm_phonecall_menu.xml @@ -58,7 +58,7 @@ tree,calendar [] - {} + {'default_state': 'done'}

diff --git a/addons/crm/i18n/hu.po b/addons/crm/i18n/hu.po index 98313efb4f3..6673d2da235 100644 --- a/addons/crm/i18n/hu.po +++ b/addons/crm/i18n/hu.po @@ -7,14 +7,14 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2012-12-21 17:04+0000\n" -"PO-Revision-Date: 2013-04-13 08:42+0000\n" +"PO-Revision-Date: 2013-06-21 07:11+0000\n" "Last-Translator: krnkris \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-04-14 05:12+0000\n" -"X-Generator: Launchpad (build 16564)\n" +"X-Launchpad-Export-Date: 2013-06-22 05:36+0000\n" +"X-Generator: Launchpad (build 16677)\n" #. module: crm #: view:crm.lead.report:0 @@ -31,7 +31,7 @@ msgstr "" "létrehozását a bejövő levelekből." #. module: crm -#: code:addons/crm/crm_lead.py:881 +#: code:addons/crm/crm_lead.py:898 #: selection:crm.case.stage,type:0 #: view:crm.lead:0 #: selection:crm.lead,type:0 @@ -192,8 +192,8 @@ msgstr "" "direkt HTML formátumú ahhoz hogy beilleszthető legyen a kanban nézetekbe." #. module: crm -#: code:addons/crm/crm_lead.py:624 -#: code:addons/crm/crm_lead.py:744 +#: code:addons/crm/crm_lead.py:640 +#: code:addons/crm/crm_lead.py:761 #: code:addons/crm/crm_phonecall.py:280 #, python-format msgid "Warning!" @@ -304,7 +304,7 @@ msgid "Prospect Partner" msgstr "Leendő partner" #. module: crm -#: code:addons/crm/crm_lead.py:982 +#: code:addons/crm/crm_lead.py:1002 #, python-format msgid "No Subject" msgstr "Nincs tárgy" @@ -482,7 +482,7 @@ msgid "#Opportunities" msgstr "Lehetőségek száma" #. module: crm -#: code:addons/crm/crm_lead.py:624 +#: code:addons/crm/crm_lead.py:640 #, python-format msgid "" "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" #. module: crm -#: code:addons/crm/crm_lead.py:861 +#: code:addons/crm/crm_lead.py:878 #: model:crm.case.stage,name:crm.stage_lead2 #: selection:crm.case.stage,type:0 #: view:crm.lead:0 @@ -844,7 +844,7 @@ msgid "Exclusive" msgstr "Kizárólagos" #. module: crm -#: code:addons/crm/crm_lead.py:584 +#: code:addons/crm/crm_lead.py:600 #, python-format msgid "From %s : %s" msgstr "Ettől %s : %s" @@ -1016,7 +1016,7 @@ msgid "Next Action" msgstr "Következő művelet" #. module: crm -#: code:addons/crm/crm_lead.py:763 +#: code:addons/crm/crm_lead.py:780 #, python-format msgid "Partner set to %s." msgstr "Partner beállítva mint %s." @@ -1109,7 +1109,7 @@ msgid "Creation Date" msgstr "Létrehozás dátuma" #. module: crm -#: code:addons/crm/crm_lead.py:698 +#: code:addons/crm/crm_lead.py:715 #, python-format msgid "Lead converted into an Opportunity" msgstr "Tervezet lehetőséggé átalakítva lehetőséggé" @@ -1324,7 +1324,9 @@ msgid "Days to Close" msgstr "Lezárásig hátralévő napok" #. module: crm +#: code:addons/crm/crm_lead.py:1057 #: field:crm.case.section,complete_name:0 +#, python-format msgid "unknown" msgstr "Ismeretlen" @@ -1415,7 +1417,7 @@ msgid "Lead Description" msgstr "Érdeklődés leírása" #. module: crm -#: code:addons/crm/crm_lead.py:565 +#: code:addons/crm/crm_lead.py:581 #, python-format msgid "Merged opportunities" msgstr "Lehetőségek összefésülése" @@ -1989,7 +1991,7 @@ msgid "Leads" msgstr "Érdeklődők" #. module: crm -#: code:addons/crm/crm_lead.py:563 +#: code:addons/crm/crm_lead.py:579 #, python-format msgid "Merged leads" msgstr "Össztefésült érdeklődések" @@ -2085,7 +2087,6 @@ msgid "Global CC" msgstr "Globális CC /másolat/" #. module: crm -#: view:crm.lead:0 #: view:crm.phonecall:0 #: model:ir.actions.act_window,name:crm.crm_case_categ_phone0 #: 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 #: view:crm.lead:0 msgid "Unassigned Leads" -msgstr "Nem iktatott rdeklődések" +msgstr "Nem iktatott érdeklődések" #. module: crm #: model:mail.message.subtype,description:crm.mt_lead_won @@ -3100,7 +3101,7 @@ msgid "Working Hours" msgstr "Munkaórák" #. module: crm -#: code:addons/crm/crm_lead.py:968 +#: code:addons/crm/crm_lead.py:986 #: view:crm.lead:0 #: field:crm.lead2opportunity.partner,partner_id:0 #: field:crm.lead2opportunity.partner.mass,partner_id:0 diff --git a/addons/crm/res_partner.py b/addons/crm/res_partner.py index f25b1303c02..fca9222082d 100644 --- a/addons/crm/res_partner.py +++ b/addons/crm/res_partner.py @@ -56,7 +56,7 @@ class res_partner(osv.osv): 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): search_view = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'base', 'view_res_partner_filter') diff --git a/addons/crm/html/Stephan-Keller.jpg b/addons/crm/static/description/Stephan-Keller.jpg similarity index 100% rename from addons/crm/html/Stephan-Keller.jpg rename to addons/crm/static/description/Stephan-Keller.jpg diff --git a/addons/crm/html/claudia-sebastiani.jpg b/addons/crm/static/description/claudia-sebastiani.jpg similarity index 100% rename from addons/crm/html/claudia-sebastiani.jpg rename to addons/crm/static/description/claudia-sebastiani.jpg diff --git a/addons/crm/html/crm_game.png b/addons/crm/static/description/crm_game.png similarity index 100% rename from addons/crm/html/crm_game.png rename to addons/crm/static/description/crm_game.png diff --git a/addons/crm/html/crm_game_01.png b/addons/crm/static/description/crm_game_01.png similarity index 100% rename from addons/crm/html/crm_game_01.png rename to addons/crm/static/description/crm_game_01.png diff --git a/addons/crm/html/crm_game_02.png b/addons/crm/static/description/crm_game_02.png similarity index 100% rename from addons/crm/html/crm_game_02.png rename to addons/crm/static/description/crm_game_02.png diff --git a/addons/crm/html/crm_game_03.png b/addons/crm/static/description/crm_game_03.png similarity index 100% rename from addons/crm/html/crm_game_03.png rename to addons/crm/static/description/crm_game_03.png diff --git a/addons/crm/html/crm_linkedin.png b/addons/crm/static/description/crm_linkedin.png similarity index 100% rename from addons/crm/html/crm_linkedin.png rename to addons/crm/static/description/crm_linkedin.png diff --git a/addons/crm/html/crm_sc_01.jpg b/addons/crm/static/description/crm_sc_01.jpg similarity index 100% rename from addons/crm/html/crm_sc_01.jpg rename to addons/crm/static/description/crm_sc_01.jpg diff --git a/addons/crm/html/crm_sc_01.png b/addons/crm/static/description/crm_sc_01.png similarity index 100% rename from addons/crm/html/crm_sc_01.png rename to addons/crm/static/description/crm_sc_01.png diff --git a/addons/crm/html/crm_sc_02.png b/addons/crm/static/description/crm_sc_02.png similarity index 100% rename from addons/crm/html/crm_sc_02.png rename to addons/crm/static/description/crm_sc_02.png diff --git a/addons/crm/html/crm_sc_04a.png b/addons/crm/static/description/crm_sc_04a.png similarity index 100% rename from addons/crm/html/crm_sc_04a.png rename to addons/crm/static/description/crm_sc_04a.png diff --git a/addons/crm/html/crm_sc_04b.png b/addons/crm/static/description/crm_sc_04b.png similarity index 100% rename from addons/crm/html/crm_sc_04b.png rename to addons/crm/static/description/crm_sc_04b.png diff --git a/addons/crm/html/crm_sc_04c.png b/addons/crm/static/description/crm_sc_04c.png similarity index 100% rename from addons/crm/html/crm_sc_04c.png rename to addons/crm/static/description/crm_sc_04c.png diff --git a/addons/crm/html/crm_sc_04d.png b/addons/crm/static/description/crm_sc_04d.png similarity index 100% rename from addons/crm/html/crm_sc_04d.png rename to addons/crm/static/description/crm_sc_04d.png diff --git a/addons/crm/html/crm_sc_05.png b/addons/crm/static/description/crm_sc_05.png similarity index 100% rename from addons/crm/html/crm_sc_05.png rename to addons/crm/static/description/crm_sc_05.png diff --git a/addons/crm/html/crm_sc_06.png b/addons/crm/static/description/crm_sc_06.png similarity index 100% rename from addons/crm/html/crm_sc_06.png rename to addons/crm/static/description/crm_sc_06.png diff --git a/addons/crm/html/crm_sc_08.png b/addons/crm/static/description/crm_sc_08.png similarity index 100% rename from addons/crm/html/crm_sc_08.png rename to addons/crm/static/description/crm_sc_08.png diff --git a/addons/crm/html/crm_sc_agenda.png b/addons/crm/static/description/crm_sc_agenda.png similarity index 100% rename from addons/crm/html/crm_sc_agenda.png rename to addons/crm/static/description/crm_sc_agenda.png diff --git a/addons/crm/html/crm_sc_marketing.png b/addons/crm/static/description/crm_sc_marketing.png similarity index 100% rename from addons/crm/html/crm_sc_marketing.png rename to addons/crm/static/description/crm_sc_marketing.png diff --git a/addons/crm/static/src/img/icon.png b/addons/crm/static/description/icon.png similarity index 100% rename from addons/crm/static/src/img/icon.png rename to addons/crm/static/description/icon.png diff --git a/addons/crm/html/index.html b/addons/crm/static/description/index.html similarity index 100% rename from addons/crm/html/index.html rename to addons/crm/static/description/index.html diff --git a/addons/crm/wizard/crm_lead_to_opportunity_view.xml b/addons/crm/wizard/crm_lead_to_opportunity_view.xml index 4093df910d0..9ddd1fc701f 100644 --- a/addons/crm/wizard/crm_lead_to_opportunity_view.xml +++ b/addons/crm/wizard/crm_lead_to_opportunity_view.xml @@ -102,7 +102,9 @@ res_model="crm.lead2opportunity.partner.mass" src_model="crm.lead" view_mode="form" target="new" view_type="form" context="{'mass_convert' : True}" - view_id="view_crm_lead2opportunity_partner_mass"/> + view_id="view_crm_lead2opportunity_partner_mass" + groups="base.group_sale_salesman" + /> diff --git a/addons/crm/wizard/crm_merge_opportunities_view.xml b/addons/crm/wizard/crm_merge_opportunities_view.xml index 919d83cb9a7..60693c13e19 100644 --- a/addons/crm/wizard/crm_merge_opportunities_view.xml +++ b/addons/crm/wizard/crm_merge_opportunities_view.xml @@ -45,7 +45,9 @@ multi="True" key2="client_action_multi" name="Merge leads/opportunities" res_model="crm.merge.opportunity" src_model="crm.lead" - view_mode="form" target="new" view_type="form"/> + view_mode="form" target="new" view_type="form" + groups="base.group_sale_salesman" + /> diff --git a/addons/crm_partner_assign/__init__.py b/addons/crm_partner_assign/__init__.py index bb4a3bb53be..6b1315cef07 100644 --- a/addons/crm_partner_assign/__init__.py +++ b/addons/crm_partner_assign/__init__.py @@ -20,6 +20,7 @@ ############################################################################## import crm_partner_assign +import crm_lead import wizard import report diff --git a/addons/crm_partner_assign/__openerp__.py b/addons/crm_partner_assign/__openerp__.py index b9b21ca7a6a..37a8c5a3d6b 100644 --- a/addons/crm_partner_assign/__openerp__.py +++ b/addons/crm_partner_assign/__openerp__.py @@ -37,17 +37,23 @@ The most appropriate partner can be assigned. You can also use the geolocalization without using the GPS coordinates. """, 'author': 'OpenERP SA', - 'depends': ['crm', 'account'], + 'depends': ['crm', 'account', 'portal'], 'demo': ['res_partner_demo.xml'], 'data': [ 'security/ir.model.access.csv', 'res_partner_view.xml', 'wizard/crm_forward_to_partner_view.xml', + 'wizard/crm_channel_interested_view.xml', 'crm_lead_view.xml', 'crm_partner_assign_data.xml', + 'crm_portal_view.xml', + 'portal_data.xml', 'report/crm_lead_report_view.xml', 'report/crm_partner_report_view.xml', ], + 'js': [ + 'static/src/js/next.js', + ], 'test': ['test/partner_assign.yml'], 'installable': True, 'auto_install': False, diff --git a/addons/crm_partner_assign/crm_lead.py b/addons/crm_partner_assign/crm_lead.py new file mode 100644 index 00000000000..37f4b9aedff --- /dev/null +++ b/addons/crm_partner_assign/crm_lead.py @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2010 Tiny SPRL (). +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +from openerp.osv import osv +from openerp.tools.translate import _ + + +class crm_lead(osv.osv): + _inherit = 'crm.lead' + + def get_interested_action(self, cr, uid, interested, context=None): + try: + model, action_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'crm_partner_assign', 'crm_lead_channel_interested_act') + except ValueError: + raise osv.except_osv(_('Error!'), _("The CRM Channel Interested Action is missing")) + action = self.pool[model].read(cr, uid, action_id, context=context) + action_context = eval(action['context']) + action_context['interested'] = interested + action['context'] = str(action_context) + return action + + def case_interested(self, cr, uid, ids, context=None): + return self.get_interested_action(cr, uid, True, context=context) + + def case_disinterested(self, cr, uid, ids, context=None): + return self.get_interested_action(cr, uid, False, context=context) diff --git a/addons/crm_partner_assign/crm_lead_view.xml b/addons/crm_partner_assign/crm_lead_view.xml index 0d2837d6ca5..5c14680ee78 100644 --- a/addons/crm_partner_assign/crm_lead_view.xml +++ b/addons/crm_partner_assign/crm_lead_view.xml @@ -8,27 +8,33 @@ - + - - -

+

+ ( + + N + S + + E + W + ) +

+
+
- - - - -
+
- - - - -