diff --git a/addons/account/account_view.xml b/addons/account/account_view.xml index 758385d66cb..91c6d6608fd 100644 --- a/addons/account/account_view.xml +++ b/addons/account/account_view.xml @@ -612,6 +612,13 @@ + + + + +
diff --git a/addons/account_accountant/i18n/ja.po b/addons/account_accountant/i18n/ja.po index 9e2208e06cd..1da9c374c7f 100644 --- a/addons/account_accountant/i18n/ja.po +++ b/addons/account_accountant/i18n/ja.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:04+0000\n" -"PO-Revision-Date: 2012-04-13 22:35+0000\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2013-07-30 22:25+0000\n" +"Last-Translator: Masaki Yamaya \n" "Language-Team: Japanese \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:47+0000\n" -"X-Generator: Launchpad (build 16532)\n" +"X-Launchpad-Export-Date: 2013-07-31 05:16+0000\n" +"X-Generator: Launchpad (build 16718)\n" #. module: account_accountant #: model:ir.actions.client,name:account_accountant.action_client_account_menu msgid "Open Accounting Menu" -msgstr "" +msgstr "会計メニューを開く" #~ msgid "" #~ "\n" diff --git a/addons/account_asset/i18n/th.po b/addons/account_asset/i18n/th.po index fdc6c7b4754..cd7967a5eb2 100644 --- a/addons/account_asset/i18n/th.po +++ b/addons/account_asset/i18n/th.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:04+0000\n" -"PO-Revision-Date: 2013-05-15 10:09+0000\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2013-07-24 08:53+0000\n" +"Last-Translator: Sumonchai ( เหลา ) \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-05-16 05:12+0000\n" -"X-Generator: Launchpad (build 16626)\n" +"X-Launchpad-Export-Date: 2013-07-25 05:13+0000\n" +"X-Generator: Launchpad (build 16700)\n" #. module: account_asset #: view:account.asset.asset:0 @@ -42,7 +42,7 @@ msgstr "" #. module: account_asset #: view:asset.asset.report:0 msgid "Group By..." -msgstr "" +msgstr "จัดกลุ่มตาม..." #. module: account_asset #: field:asset.asset.report,gross_value:0 @@ -58,7 +58,7 @@ msgstr "" #: field:asset.asset.report,asset_id:0 #: model:ir.model,name:account_asset.model_account_asset_asset msgid "Asset" -msgstr "" +msgstr "สินทรัพย์" #. module: account_asset #: help:account.asset.asset,prorata:0 @@ -72,7 +72,7 @@ msgstr "" #: selection:account.asset.asset,method:0 #: selection:account.asset.category,method:0 msgid "Linear" -msgstr "" +msgstr "เชิงเส้น" #. module: account_asset #: field:account.asset.asset,company_id:0 @@ -80,24 +80,24 @@ msgstr "" #: view:asset.asset.report:0 #: field:asset.asset.report,company_id:0 msgid "Company" -msgstr "" +msgstr "บริษัท" #. module: account_asset #: view:asset.modify:0 msgid "Modify" -msgstr "" +msgstr "ปรับเปลี่ยน" #. module: account_asset #: selection:account.asset.asset,state:0 #: view:asset.asset.report:0 #: selection:asset.asset.report,state:0 msgid "Running" -msgstr "" +msgstr "กำลังทำงานอยู่" #. module: account_asset #: view:account.asset.asset:0 msgid "Set to Draft" -msgstr "" +msgstr "กำหนดให้เป็นแบบร่าง" #. module: account_asset #: view:asset.asset.report:0 @@ -110,7 +110,7 @@ msgstr "" #. module: account_asset #: field:asset.modify,name:0 msgid "Reason" -msgstr "" +msgstr "เหตุผล" #. module: account_asset #: field:account.asset.asset,method_progress_factor:0 @@ -122,7 +122,7 @@ msgstr "" #: model:ir.actions.act_window,name:account_asset.action_account_asset_asset_list_normal #: model:ir.ui.menu,name:account_asset.menu_action_account_asset_asset_list_normal msgid "Asset Categories" -msgstr "" +msgstr "หมวดหมู่สินทรัพย์" #. module: account_asset #: view:account.asset.asset:0 @@ -173,7 +173,7 @@ msgstr "" #: model:ir.ui.menu,name:account_asset.menu_finance_assets #: model:ir.ui.menu,name:account_asset.menu_finance_config_assets msgid "Assets" -msgstr "" +msgstr "สินทรัพย์" #. module: account_asset #: field:account.asset.category,account_depreciation_id:0 @@ -187,7 +187,7 @@ msgstr "" #: view:asset.modify:0 #: field:asset.modify,note:0 msgid "Notes" -msgstr "" +msgstr "บันทึกย่อ" #. module: account_asset #: field:account.asset.depreciation.line,move_id:0 @@ -221,7 +221,7 @@ msgstr "" #. module: account_asset #: field:account.asset.asset,code:0 msgid "Reference" -msgstr "" +msgstr "อ้างถึง" #. module: account_asset #: view:account.asset.asset:0 @@ -246,7 +246,7 @@ msgstr "" #: view:asset.asset.report:0 #: selection:asset.asset.report,state:0 msgid "Draft" -msgstr "" +msgstr "ฉบับร่าง" #. module: account_asset #: view:asset.asset.report:0 @@ -273,13 +273,13 @@ msgstr "" #. module: account_asset #: field:account.asset.category,account_analytic_id:0 msgid "Analytic account" -msgstr "" +msgstr "วิเคราะห์บัญชี" #. module: account_asset #: field:account.asset.asset,method:0 #: field:account.asset.category,method:0 msgid "Computation Method" -msgstr "" +msgstr "วิธีการคำนวณ" #. module: account_asset #: constraint:account.asset.asset:0 @@ -308,7 +308,7 @@ msgstr "" #. module: account_asset #: field:account.asset.asset,salvage_value:0 msgid "Salvage Value" -msgstr "" +msgstr "มูลค่าซาก" #. module: account_asset #: field:account.asset.asset,category_id:0 @@ -364,20 +364,20 @@ msgstr "" #: field:account.asset.category,method_time:0 #: field:account.asset.history,method_time:0 msgid "Time Method" -msgstr "" +msgstr "วิธีการจัดการเวลา" #. module: account_asset #: view:asset.depreciation.confirmation.wizard:0 #: view:asset.modify:0 msgid "or" -msgstr "" +msgstr "หรือ" #. module: account_asset #: field:account.asset.asset,note:0 #: field:account.asset.category,note:0 #: field:account.asset.history,note:0 msgid "Note" -msgstr "" +msgstr "บันทึกย่อ" #. module: account_asset #: help:account.asset.history,method_time:0 @@ -409,7 +409,7 @@ msgstr "" #. module: account_asset #: view:account.asset.asset:0 msgid "Closed" -msgstr "" +msgstr "ปิด" #. module: account_asset #: help:account.asset.asset,state:0 @@ -425,13 +425,13 @@ msgstr "" #: field:account.asset.asset,state:0 #: field:asset.asset.report,state:0 msgid "Status" -msgstr "" +msgstr "สถานะ" #. module: account_asset #: field:account.asset.asset,partner_id:0 #: field:asset.asset.report,partner_id:0 msgid "Partner" -msgstr "" +msgstr "พาร์ทเนอร์" #. module: account_asset #: view:asset.asset.report:0 @@ -451,7 +451,7 @@ msgstr "" #. module: account_asset #: field:account.asset.history,user_id:0 msgid "User" -msgstr "" +msgstr "ผู้ใช้" #. module: account_asset #: field:account.asset.category,account_asset_id:0 @@ -482,12 +482,12 @@ msgstr "" #. module: account_asset #: field:account.asset.asset,active:0 msgid "Active" -msgstr "" +msgstr "เปิดใช้งาน" #. module: account_asset #: field:account.asset.depreciation.line,parent_state:0 msgid "State of Asset" -msgstr "" +msgstr "สถานะของสินทรัพย์" #. module: account_asset #: field:account.asset.depreciation.line,name:0 @@ -498,12 +498,12 @@ msgstr "" #: view:account.asset.asset:0 #: field:account.asset.asset,history_ids:0 msgid "History" -msgstr "" +msgstr "ประวัติ" #. module: account_asset #: view:asset.depreciation.confirmation.wizard:0 msgid "Compute Asset" -msgstr "" +msgstr "คำนวณสินทรัพย์" #. module: account_asset #: field:asset.depreciation.confirmation.wizard,period_id:0 @@ -513,7 +513,7 @@ msgstr "" #. module: account_asset #: view:account.asset.asset:0 msgid "General" -msgstr "" +msgstr "ทั่วไป" #. module: account_asset #: field:account.asset.asset,prorata:0 @@ -524,7 +524,7 @@ msgstr "" #. module: account_asset #: model:ir.model,name:account_asset.model_account_invoice msgid "Invoice" -msgstr "" +msgstr "ใบแจ้งหนี้" #. module: account_asset #: view:account.asset.asset:0 @@ -535,13 +535,13 @@ msgstr "" #: view:asset.depreciation.confirmation.wizard:0 #: view:asset.modify:0 msgid "Cancel" -msgstr "" +msgstr "ยกเลิก" #. module: account_asset #: selection:account.asset.asset,state:0 #: selection:asset.asset.report,state:0 msgid "Close" -msgstr "" +msgstr "ปิด" #. module: account_asset #: model:ir.model,name:account_asset.model_account_move_line @@ -558,7 +558,7 @@ msgstr "" #: view:asset.asset.report:0 #: field:asset.asset.report,purchase_date:0 msgid "Purchase Date" -msgstr "" +msgstr "วันที่ซื้อ" #. module: account_asset #: selection:account.asset.asset,method:0 @@ -606,7 +606,7 @@ msgstr "" #. module: account_asset #: field:account.asset.asset,currency_id:0 msgid "Currency" -msgstr "" +msgstr "สกุลเงิน" #. module: account_asset #: field:account.asset.category,journal_id:0 @@ -637,7 +637,7 @@ msgstr "" #: view:asset.asset.report:0 #: field:asset.asset.report,move_check:0 msgid "Posted" -msgstr "" +msgstr "ลงบัญชีแล้ว" #. module: account_asset #: model:ir.actions.act_window,help:account_asset.action_asset_asset_report @@ -660,7 +660,7 @@ msgstr "" #. module: account_asset #: field:account.asset.category,name:0 msgid "Name" -msgstr "" +msgstr "ชื่อ" #. module: account_asset #: help:account.asset.category,open_asset:0 @@ -672,7 +672,7 @@ msgstr "" #. module: account_asset #: field:asset.asset.report,name:0 msgid "Year" -msgstr "" +msgstr "ปี" #. module: account_asset #: model:ir.model,name:account_asset.model_account_asset_depreciation_line @@ -693,7 +693,7 @@ msgid "Amount of Depreciation Lines" msgstr "" #. module: account_asset -#: code:addons/account_asset/wizard/wizard_asset_compute.py:49 +#: code:addons/account_asset/wizard/wizard_asset_compute.py:50 #, python-format msgid "Created Asset Moves" msgstr "" @@ -701,7 +701,7 @@ msgstr "" #. module: account_asset #: field:account.asset.depreciation.line,sequence:0 msgid "Sequence" -msgstr "" +msgstr "ลำดับ" #. module: account_asset #: help:account.asset.category,method_period:0 @@ -711,7 +711,7 @@ msgstr "" #. module: account_asset #: field:account.asset.history,date:0 msgid "Date" -msgstr "" +msgstr "วันที่" #. module: account_asset #: field:account.asset.asset,method_number:0 diff --git a/addons/account_bank_statement_extensions/i18n/ru.po b/addons/account_bank_statement_extensions/i18n/ru.po new file mode 100644 index 00000000000..61b054e7563 --- /dev/null +++ b/addons/account_bank_statement_extensions/i18n/ru.po @@ -0,0 +1,361 @@ +# Russian 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-08-05 10:40+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Russian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-08-06 04:47+0000\n" +"X-Generator: Launchpad (build 16718)\n" + +#. module: account_bank_statement_extensions +#: help:account.bank.statement.line.global,name:0 +msgid "Originator to Beneficiary Information" +msgstr "Информация от плательщика получателю" + +#. module: account_bank_statement_extensions +#: view:account.bank.statement.line:0 +#: selection:account.bank.statement.line,state:0 +msgid "Confirmed" +msgstr "Подтверждено" + +#. module: account_bank_statement_extensions +#: view:account.bank.statement:0 +#: view:account.bank.statement.line:0 +msgid "Glob. Id" +msgstr "" + +#. module: account_bank_statement_extensions +#: selection:account.bank.statement.line.global,type:0 +msgid "CODA" +msgstr "" + +#. module: account_bank_statement_extensions +#: field:account.bank.statement.line.global,parent_id:0 +msgid "Parent Code" +msgstr "Основной код" + +#. module: account_bank_statement_extensions +#: view:account.bank.statement.line:0 +msgid "Debit" +msgstr "Дебет" + +#. module: account_bank_statement_extensions +#: view:cancel.statement.line:0 +#: model:ir.actions.act_window,name:account_bank_statement_extensions.action_cancel_statement_line +#: model:ir.model,name:account_bank_statement_extensions.model_cancel_statement_line +msgid "Cancel selected statement lines" +msgstr "Отмена выбранных позиций выписки" + +#. module: account_bank_statement_extensions +#: field:account.bank.statement.line,val_date:0 +msgid "Value Date" +msgstr "Дата зачисления" + +#. module: account_bank_statement_extensions +#: view:account.bank.statement.line:0 +msgid "Group By..." +msgstr "Группировать по ..." + +#. module: account_bank_statement_extensions +#: view:account.bank.statement.line:0 +#: selection:account.bank.statement.line,state:0 +msgid "Draft" +msgstr "Черновик" + +#. module: account_bank_statement_extensions +#: view:account.bank.statement.line:0 +msgid "Statement" +msgstr "Выписка" + +#. module: account_bank_statement_extensions +#: view:confirm.statement.line:0 +#: model:ir.actions.act_window,name:account_bank_statement_extensions.action_confirm_statement_line +#: model:ir.model,name:account_bank_statement_extensions.model_confirm_statement_line +msgid "Confirm selected statement lines" +msgstr "Подтверждение выбранных позиций выписки" + +#. module: account_bank_statement_extensions +#: report:bank.statement.balance.report:0 +#: model:ir.actions.report.xml,name:account_bank_statement_extensions.bank_statement_balance_report +msgid "Bank Statement Balances Report" +msgstr "Отчет об остатках банковской выписки" + +#. module: account_bank_statement_extensions +#: view:cancel.statement.line:0 +msgid "Cancel Lines" +msgstr "Отменить позиции" + +#. module: account_bank_statement_extensions +#: view:account.bank.statement.line.global:0 +#: model:ir.model,name:account_bank_statement_extensions.model_account_bank_statement_line_global +msgid "Batch Payment Info" +msgstr "" + +#. module: account_bank_statement_extensions +#: field:account.bank.statement.line,state:0 +msgid "Status" +msgstr "Статус" + +#. module: account_bank_statement_extensions +#: code:addons/account_bank_statement_extensions/account_bank_statement.py:129 +#, python-format +msgid "" +"Delete operation not allowed. Please go to the associated bank " +"statement in order to delete and/or modify bank statement line." +msgstr "" +"Операция удаления запрещена. Пожалуйста, обратитесь к соответствующей " +"банковской выписке для удаления/изменения позиции." + +#. module: account_bank_statement_extensions +#: view:confirm.statement.line:0 +msgid "or" +msgstr "или" + +#. module: account_bank_statement_extensions +#: view:confirm.statement.line:0 +msgid "Confirm Lines" +msgstr "Подтвердить позиции" + +#. module: account_bank_statement_extensions +#: view:account.bank.statement.line.global:0 +msgid "Transactions" +msgstr "Операции" + +#. module: account_bank_statement_extensions +#: field:account.bank.statement.line.global,type:0 +msgid "Type" +msgstr "Тип" + +#. module: account_bank_statement_extensions +#: view:account.bank.statement.line:0 +#: report:bank.statement.balance.report:0 +msgid "Journal" +msgstr "Журнал" + +#. module: account_bank_statement_extensions +#: view:account.bank.statement.line:0 +msgid "Confirmed Statement Lines." +msgstr "Подтвержденные позиции выписки." + +#. module: account_bank_statement_extensions +#: view:account.bank.statement.line:0 +msgid "Credit Transactions." +msgstr "Операции по кредиту" + +#. module: account_bank_statement_extensions +#: model:ir.actions.act_window,help:account_bank_statement_extensions.action_cancel_statement_line +msgid "cancel selected statement lines." +msgstr "отменить выбранные позиции выписки" + +#. module: account_bank_statement_extensions +#: field:account.bank.statement.line,counterparty_number:0 +msgid "Counterparty Number" +msgstr "Число контрагентов" + +#. module: account_bank_statement_extensions +#: report:bank.statement.balance.report:0 +msgid "Closing Balance" +msgstr "Итоговый баланс" + +#. module: account_bank_statement_extensions +#: report:bank.statement.balance.report:0 +msgid "Date" +msgstr "Дата" + +#. module: account_bank_statement_extensions +#: view:account.bank.statement.line:0 +#: field:account.bank.statement.line,globalisation_amount:0 +msgid "Glob. Amount" +msgstr "" + +#. module: account_bank_statement_extensions +#: view:account.bank.statement.line:0 +msgid "Debit Transactions." +msgstr "Операции по дебету" + +#. module: account_bank_statement_extensions +#: view:account.bank.statement.line:0 +msgid "Extended Filters..." +msgstr "Расширенные фильтры..." + +#. module: account_bank_statement_extensions +#: view:confirm.statement.line:0 +msgid "Confirmed lines cannot be changed anymore." +msgstr "Нельзя изменить подтвержденные позиции." + +#. module: account_bank_statement_extensions +#: view:cancel.statement.line:0 +msgid "Are you sure you want to cancel the selected Bank Statement lines ?" +msgstr "" +"Вы уверены, что хотите отменить выбранные позиции банковской выписки ?" + +#. module: account_bank_statement_extensions +#: report:bank.statement.balance.report:0 +msgid "Name" +msgstr "Название" + +#. module: account_bank_statement_extensions +#: field:account.bank.statement.line.global,name:0 +msgid "OBI" +msgstr "Назначение" + +#. module: account_bank_statement_extensions +#: selection:account.bank.statement.line.global,type:0 +msgid "ISO 20022" +msgstr "ISO 20022" + +#. module: account_bank_statement_extensions +#: view:account.bank.statement.line:0 +msgid "Notes" +msgstr "Примечания" + +#. module: account_bank_statement_extensions +#: selection:account.bank.statement.line.global,type:0 +msgid "Manual" +msgstr "Ручной" + +#. module: account_bank_statement_extensions +#: view:account.bank.statement.line:0 +msgid "Bank Transaction" +msgstr "Банковские операции" + +#. module: account_bank_statement_extensions +#: view:account.bank.statement.line:0 +msgid "Credit" +msgstr "Кредит" + +#. module: account_bank_statement_extensions +#: field:account.bank.statement.line.global,amount:0 +msgid "Amount" +msgstr "Сумма" + +#. module: account_bank_statement_extensions +#: view:account.bank.statement.line:0 +msgid "Fin.Account" +msgstr "Фин. Счет" + +#. module: account_bank_statement_extensions +#: field:account.bank.statement.line,counterparty_currency:0 +msgid "Counterparty Currency" +msgstr "Валюта контрагента" + +#. module: account_bank_statement_extensions +#: field:account.bank.statement.line,counterparty_bic:0 +msgid "Counterparty BIC" +msgstr "БИК контрагента" + +#. module: account_bank_statement_extensions +#: field:account.bank.statement.line.global,child_ids:0 +msgid "Child Codes" +msgstr "Субкоды" + +#. module: account_bank_statement_extensions +#: view:account.bank.statement.line:0 +msgid "Search Bank Transactions" +msgstr "Поиск банковских операций" + +#. module: account_bank_statement_extensions +#: view:confirm.statement.line:0 +msgid "Are you sure you want to confirm the selected Bank Statement lines ?" +msgstr "" +"Вы уверены, что хотите, подтвердить выбранные позиции банковской выписки ?" + +#. module: account_bank_statement_extensions +#: help:account.bank.statement.line,globalisation_id:0 +msgid "" +"Code to identify transactions belonging to the same globalisation level " +"within a batch payment" +msgstr "" + +#. module: account_bank_statement_extensions +#: view:account.bank.statement.line:0 +msgid "Draft Statement Lines." +msgstr "Черновики позиций выписки." + +#. module: account_bank_statement_extensions +#: view:account.bank.statement.line:0 +msgid "Glob. Am." +msgstr "" + +#. module: account_bank_statement_extensions +#: model:ir.model,name:account_bank_statement_extensions.model_account_bank_statement_line +msgid "Bank Statement Line" +msgstr "Позиция банковской выписки" + +#. module: account_bank_statement_extensions +#: field:account.bank.statement.line.global,code:0 +msgid "Code" +msgstr "Код" + +#. module: account_bank_statement_extensions +#: field:account.bank.statement.line,counterparty_name:0 +msgid "Counterparty Name" +msgstr "Название контрагента" + +#. module: account_bank_statement_extensions +#: model:ir.model,name:account_bank_statement_extensions.model_res_partner_bank +msgid "Bank Accounts" +msgstr "Банковские счета" + +#. module: account_bank_statement_extensions +#: model:ir.model,name:account_bank_statement_extensions.model_account_bank_statement +msgid "Bank Statement" +msgstr "Банковская выписка" + +#. module: account_bank_statement_extensions +#: view:account.bank.statement.line:0 +msgid "Statement Line" +msgstr "Позиция выписки" + +#. module: account_bank_statement_extensions +#: sql_constraint:account.bank.statement.line.global:0 +msgid "The code must be unique !" +msgstr "Код должен быть уникальным !" + +#. module: account_bank_statement_extensions +#: field:account.bank.statement.line.global,bank_statement_line_ids:0 +#: model:ir.actions.act_window,name:account_bank_statement_extensions.action_bank_statement_line +#: model:ir.ui.menu,name:account_bank_statement_extensions.bank_statement_line +msgid "Bank Statement Lines" +msgstr "Позиции банковской выписки" + +#. module: account_bank_statement_extensions +#: code:addons/account_bank_statement_extensions/account_bank_statement.py:129 +#, python-format +msgid "Warning!" +msgstr "Внимание!" + +#. module: account_bank_statement_extensions +#: view:account.bank.statement.line.global:0 +msgid "Child Batch Payments" +msgstr "" + +#. module: account_bank_statement_extensions +#: view:confirm.statement.line:0 +msgid "Cancel" +msgstr "Отмена" + +#. module: account_bank_statement_extensions +#: view:account.bank.statement.line:0 +msgid "Statement Lines" +msgstr "Позиции выписки" + +#. module: account_bank_statement_extensions +#: view:account.bank.statement.line:0 +msgid "Total Amount" +msgstr "Итоговая сумма" + +#. module: account_bank_statement_extensions +#: field:account.bank.statement.line,globalisation_id:0 +msgid "Globalisation ID" +msgstr "" diff --git a/addons/account_budget/i18n/ja.po b/addons/account_budget/i18n/ja.po index f69a34b9a82..4dd1ba0298f 100644 --- a/addons/account_budget/i18n/ja.po +++ b/addons/account_budget/i18n/ja.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-06-13 17:16+0000\n" -"Last-Translator: Akira Hiyama \n" +"PO-Revision-Date: 2013-07-30 22:29+0000\n" +"Last-Translator: Masaki Yamaya \n" "Language-Team: Japanese \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:34+0000\n" -"X-Generator: Launchpad (build 16532)\n" +"X-Launchpad-Export-Date: 2013-07-31 05:16+0000\n" +"X-Generator: Launchpad (build 16718)\n" #. module: account_budget #: view:account.budget.analytic:0 @@ -418,7 +418,7 @@ msgstr "からの分析" #. module: account_budget #: view:crossovered.budget:0 msgid "Draft Budgets" -msgstr "ドラフト予算" +msgstr "予算案" #, python-format #~ msgid "The General Budget '%s' has no Accounts!" diff --git a/addons/account_cancel/i18n/uk.po b/addons/account_cancel/i18n/uk.po new file mode 100644 index 00000000000..5fbae627883 --- /dev/null +++ b/addons/account_cancel/i18n/uk.po @@ -0,0 +1,23 @@ +# Ukrainian 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-08-01 11:11+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Ukrainian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-08-02 05:38+0000\n" +"X-Generator: Launchpad (build 16718)\n" + +#. module: account_cancel +#: view:account.invoice:0 +msgid "Cancel" +msgstr "" diff --git a/addons/account_check_writing/i18n/bs.po b/addons/account_check_writing/i18n/bs.po new file mode 100644 index 00000000000..252798b016f --- /dev/null +++ b/addons/account_check_writing/i18n/bs.po @@ -0,0 +1,246 @@ +# Bosnian 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-08-08 22:05+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Bosnian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-08-09 05:06+0000\n" +"X-Generator: Launchpad (build 16723)\n" + +#. module: account_check_writing +#: selection:res.company,check_layout:0 +msgid "Check on Top" +msgstr "Ček na vrhu" + +#. module: account_check_writing +#: report:account.print.check.top:0 +msgid "Open Balance" +msgstr "Otvoreno saldo" + +#. module: account_check_writing +#: view:account.check.write:0 +#: view:account.voucher:0 +msgid "Print Check" +msgstr "Štampaj ček" + +#. module: account_check_writing +#: selection:res.company,check_layout:0 +msgid "Check in middle" +msgstr "Ćek u sredini" + +#. module: account_check_writing +#: help:res.company,check_layout:0 +msgid "" +"Check on top is compatible with Quicken, QuickBooks and Microsoft Money. " +"Check in middle is compatible with Peachtree, ACCPAC and DacEasy. Check on " +"bottom is compatible with Peachtree, ACCPAC and DacEasy only" +msgstr "" +"Ček na vrhu je kompatibilan sa Quicken, QuickBooks i Microsoft Money. Ček u " +"sredini je kompatibilan sa Peachtree, ACCPAC i DacEasy. Ček na dnu je " +"kompatibilan sa Peachtree, ACCPAC i DacEasy samo" + +#. module: account_check_writing +#: selection:res.company,check_layout:0 +msgid "Check on bottom" +msgstr "Ćek na dnu" + +#. module: account_check_writing +#: model:ir.actions.act_window,name:account_check_writing.action_account_check_write +msgid "Print Check in Batch" +msgstr "Štampaj čekove grupno" + +#. module: account_check_writing +#: code:addons/account_check_writing/wizard/account_check_batch_printing.py:59 +#, python-format +msgid "One of the printed check already got a number." +msgstr "Jedan od odštampanih čekova je već dobio broj." + +#. module: account_check_writing +#: help:account.journal,allow_check_writing:0 +msgid "Check this if the journal is to be used for writing checks." +msgstr "" +"Označite ovo ako će se za pisanje čekova koristiti dnevnik knjiženja." + +#. module: account_check_writing +#: field:account.journal,allow_check_writing:0 +msgid "Allow Check writing" +msgstr "Dozvoli pisanje čekova" + +#. module: account_check_writing +#: report:account.print.check.bottom:0 +#: report:account.print.check.middle:0 +#: report:account.print.check.top:0 +msgid "Description" +msgstr "Opis" + +#. module: account_check_writing +#: model:ir.model,name:account_check_writing.model_account_journal +msgid "Journal" +msgstr "Dnevnik knjiženja" + +#. module: account_check_writing +#: model:ir.actions.act_window,name:account_check_writing.action_write_check +#: model:ir.ui.menu,name:account_check_writing.menu_action_write_check +msgid "Write Checks" +msgstr "Piši čekove" + +#. module: account_check_writing +#: report:account.print.check.bottom:0 +#: report:account.print.check.middle:0 +#: report:account.print.check.top:0 +msgid "Discount" +msgstr "Popust" + +#. module: account_check_writing +#: report:account.print.check.bottom:0 +#: report:account.print.check.middle:0 +#: report:account.print.check.top:0 +msgid "Original Amount" +msgstr "Originalni iznos" + +#. module: account_check_writing +#: field:res.company,check_layout:0 +msgid "Check Layout" +msgstr "Raspored čeka" + +#. module: account_check_writing +#: field:account.voucher,allow_check:0 +msgid "Allow Check Writing" +msgstr "Dozvoli pisanje čeka" + +#. module: account_check_writing +#: report:account.print.check.bottom:0 +#: report:account.print.check.middle:0 +#: report:account.print.check.top:0 +msgid "Payment" +msgstr "Plaćanje" + +#. module: account_check_writing +#: field:account.journal,use_preprint_check:0 +msgid "Use Preprinted Check" +msgstr "Koristi pred-odštampane čekove" + +#. module: account_check_writing +#: model:ir.actions.report.xml,name:account_check_writing.account_print_check_bottom +msgid "Print Check (Bottom)" +msgstr "Štampaj ček (donji)" + +#. module: account_check_writing +#: model:ir.actions.act_window,help:account_check_writing.action_write_check +msgid "" +"

\n" +" Click to create a new check. \n" +"

\n" +" The check payment form allows you to track the payment you " +"do\n" +" to your suppliers using checks. When you select a supplier, " +"the\n" +" payment method and an amount for the payment, OpenERP will\n" +" propose to reconcile your payment with the open supplier\n" +" invoices or bills.\n" +"

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

\n" +" Kliknite da kreirate nove čekove. \n" +"

\n" +" Forma plaćanje čekom omogućava vam da pratite plaćanja koja " +"izvršavate\n" +" vašim dobavljačima koristeći čekove. Kada odaberete " +"dobavljača,\n" +" metodu plaćanja i iznos za plaćanje, OpenERP će predložiti " +"da izravna\n" +" vašu uplatu sa otvorenom fakturom ili računom dobavljača.\n" +"

\n" +" " + +#. module: account_check_writing +#: report:account.print.check.bottom:0 +#: report:account.print.check.middle:0 +#: report:account.print.check.top:0 +msgid "Due Date" +msgstr "Datum dospijeća" + +#. module: account_check_writing +#: model:ir.actions.report.xml,name:account_check_writing.account_print_check_middle +msgid "Print Check (Middle)" +msgstr "Štampaj ček (srednji)" + +#. module: account_check_writing +#: model:ir.model,name:account_check_writing.model_res_company +msgid "Companies" +msgstr "Kompanije" + +#. module: account_check_writing +#: code:addons/account_check_writing/wizard/account_check_batch_printing.py:59 +#, python-format +msgid "Error!" +msgstr "Greška!" + +#. module: account_check_writing +#: help:account.check.write,check_number:0 +msgid "The number of the next check number to be printed." +msgstr "Broj sljedećeg čeka za štampanje." + +#. module: account_check_writing +#: report:account.print.check.bottom:0 +#: report:account.print.check.middle:0 +msgid "Balance Due" +msgstr "Saldo valute" + +#. module: account_check_writing +#: model:ir.actions.report.xml,name:account_check_writing.account_print_check_top +msgid "Print Check (Top)" +msgstr "Štampaj ček (na vrhu)" + +#. module: account_check_writing +#: report:account.print.check.bottom:0 +#: report:account.print.check.middle:0 +#: report:account.print.check.top:0 +msgid "Check Amount" +msgstr "Iznos čeka" + +#. module: account_check_writing +#: model:ir.model,name:account_check_writing.model_account_voucher +msgid "Accounting Voucher" +msgstr "Računovodstveni vaučer" + +#. module: account_check_writing +#: view:account.check.write:0 +msgid "or" +msgstr "ili" + +#. module: account_check_writing +#: field:account.voucher,amount_in_word:0 +msgid "Amount in Word" +msgstr "Pisani iznos" + +#. module: account_check_writing +#: model:ir.model,name:account_check_writing.model_account_check_write +msgid "Prin Check in Batch" +msgstr "Štampaj čekove grupno" + +#. module: account_check_writing +#: view:account.check.write:0 +msgid "Cancel" +msgstr "Otkaži" + +#. module: account_check_writing +#: field:account.check.write,check_number:0 +msgid "Next Check Number" +msgstr "Sljedeći broj čeka" + +#. module: account_check_writing +#: view:account.check.write:0 +msgid "Check" +msgstr "Ček" diff --git a/addons/base_status/__init__.py b/addons/base_status/__init__.py index e4107f90a37..ea9d738e614 100644 --- a/addons/base_status/__init__.py +++ b/addons/base_status/__init__.py @@ -20,6 +20,5 @@ ############################################################################## import base_state -import base_stage # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/base_status/__openerp__.py b/addons/base_status/__openerp__.py index 79b6dd2016c..b3936ec10cb 100644 --- a/addons/base_status/__openerp__.py +++ b/addons/base_status/__openerp__.py @@ -24,11 +24,10 @@ 'version': '1.0', 'category': 'Hidden', 'description': """ -This module handles state and stage. It is derived from the crm_base and crm_case classes from crm. -=================================================================================================== +This module handles state. It is derived from the crm_base and crm_case classes from crm. +========================================================================================== * ``base_state``: state management - * ``base_stage``: stage management """, 'author': 'OpenERP SA', 'website': 'http://www.openerp.com', diff --git a/addons/base_status/base_stage.py b/addons/base_status/base_stage.py deleted file mode 100644 index edf9db166af..00000000000 --- a/addons/base_status/base_stage.py +++ /dev/null @@ -1,264 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# OpenERP, Open Source Management Solution -# Copyright (C) 2004-today OpenERP SA () -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## - -from openerp.osv import fields, osv -from openerp.tools.translate import _ - -class base_stage(object): - """ Base utility mixin class for objects willing to manage their stages. - Object that inherit from this class should inherit from mailgate.thread - to have access to the mail gateway, as well as Chatter. Objects - subclassing this class should define the following colums: - - ``date_open`` (datetime field) - - ``date_closed`` (datetime field) - - ``user_id`` (many2one to res.users) - - ``partner_id`` (many2one to res.partner) - - ``stage_id`` (many2one to a stage definition model) - - ``state`` (selection field, related to the stage_id.state) - """ - - def _get_default_partner(self, cr, uid, context=None): - """ Gives id of partner for current user - :param context: if portal not in context returns False - """ - if context is None: - context = {} - if context.get('portal'): - user = self.pool.get('res.users').browse(cr, uid, uid, context=context) - return user.partner_id.id - return False - - def _get_default_email(self, cr, uid, context=None): - """ Gives default email address for current user - :param context: if portal not in context returns False - """ - if context is None: - context = {} - if context.get('portal'): - user = self.pool.get('res.users').browse(cr, uid, uid, context=context) - return user.email - return False - - def _get_default_user(self, cr, uid, context=None): - """ Gives current user id - :param context: if portal not in context returns False - """ - if context is None: - context = {} - if not context or context.get('portal'): - return False - return uid - - def onchange_partner_address_id(self, cr, uid, ids, add, email=False, context=None): - """ This function returns value of partner email based on Partner Address - :param add: Id of Partner's address - :param email: Partner's email ID - """ - data = {'value': {'email_from': False, 'phone':False}} - if add: - address = self.pool.get('res.partner').browse(cr, uid, add) - data['value'] = {'partner_name': address and address.name or False, - 'email_from': address and address.email or False, - 'phone': address and address.phone or False, - 'street': address and address.street or False, - 'street2': address and address.street2 or False, - 'city': address and address.city or False, - 'state_id': address.state_id and address.state_id.id or False, - 'zip': address and address.zip or False, - 'country_id': address.country_id and address.country_id.id or False, - } - fields = self.fields_get(cr, uid, context=context or {}) - for key in data['value'].keys(): - if key not in fields: - del data['value'][key] - return data - - def onchange_partner_id(self, cr, uid, ids, part, email=False): - """ This function returns value of partner address based on partner - :param part: Partner's id - :param email: Partner's email ID - """ - data={} - if part: - addr = self.pool.get('res.partner').address_get(cr, uid, [part], ['contact']) - data.update(self.onchange_partner_address_id(cr, uid, ids, addr['contact'])['value']) - return {'value': data} - - def _get_default_section_id(self, cr, uid, context=None): - """ Gives default section """ - return False - - def _get_default_stage_id(self, cr, uid, context=None): - """ Gives default stage_id """ - return self.stage_find(cr, uid, [], None, [('state', '=', 'draft')], context=context) - - def stage_find(self, cr, uid, cases, section_id, domain=[], order='sequence', context=None): - """ Find stage, with a given (optional) domain on the search, - ordered by the order parameter. If several stages match the - search criterions, the first one will be returned, according - to the requested search order. - This method is meant to be overriden by subclasses. That way - specific behaviors can be achieved for every class inheriting - from base_stage. - - :param cases: browse_record of cases - :param section_id: section limitating the search, given for - a generic search (for example default search). - A section models concepts such as Sales team - (for CRM), ou departments (for HR). - :param domain: a domain on the search of stages - :param order: order of the search - """ - return False - - def stage_set_with_state_name(self, cr, uid, cases, state_name, context=None): - """ Set a new stage, with a state_name instead of a stage_id - :param cases: browse_record of cases - """ - if isinstance(cases, (int, long)): - cases = self.browse(cr, uid, cases, context=context) - for case in cases: - stage_id = self.stage_find(cr, uid, [case], None, [('state', '=', state_name)], context=context) - if stage_id: - self.stage_set(cr, uid, [case.id], stage_id, context=context) - return True - - def stage_set(self, cr, uid, ids, stage_id, context=None): - """ Set the new stage. This methods is the right method to call - when changing states. It also checks whether an onchange is - defined, and execute it. - """ - value = {} - if hasattr(self, 'onchange_stage_id'): - value = self.onchange_stage_id(cr, uid, ids, stage_id, context=context)['value'] - value['stage_id'] = stage_id - return self.write(cr, uid, ids, value, context=context) - - def stage_change(self, cr, uid, ids, op, order, context=None): - """ Change the stage and take the next one, based on a condition - writen for the 'sequence' field and an operator. This methods - checks whether the case has a current stage, and takes its - sequence. Otherwise, a default 0 sequence is chosen and this - method will therefore choose the first available stage. - For example if op is '>' and current stage has a sequence of - 10, this will call stage_find, with [('sequence', '>', '10')]. - """ - for case in self.browse(cr, uid, ids, context=context): - seq = 0 - if case.stage_id: - seq = case.stage_id.sequence or 0 - section_id = None - next_stage_id = self.stage_find(cr, uid, [case], None, [('sequence', op, seq)],order, context=context) - if next_stage_id: - return self.stage_set(cr, uid, [case.id], next_stage_id, context=context) - return False - - def stage_next(self, cr, uid, ids, context=None): - """ This function computes next stage for case from its current stage - using available stage for that case type - """ - return self.stage_change(cr, uid, ids, '>','sequence', context) - - def stage_previous(self, cr, uid, ids, context=None): - """ This function computes previous stage for case from its current - stage using available stage for that case type - """ - return self.stage_change(cr, uid, ids, '<', 'sequence desc', context) - - def copy(self, cr, uid, id, default=None, context=None): - """ Overrides orm copy method to avoid copying messages, - as well as date_closed and date_open columns if they - exist.""" - if default is None: - default = {} - - if hasattr(self, '_columns'): - if self._columns.get('date_closed'): - default.update({ 'date_closed': False, }) - if self._columns.get('date_open'): - default.update({ 'date_open': False }) - return super(base_stage, self).copy(cr, uid, id, default, context=context) - - def case_escalate(self, cr, uid, ids, context=None): - """ Escalates case to parent level """ - for case in self.browse(cr, uid, ids, context=context): - data = {'active': True} - if case.section_id.parent_id: - data['section_id'] = case.section_id.parent_id.id - if case.section_id.parent_id.change_responsible: - if case.section_id.parent_id.user_id: - data['user_id'] = case.section_id.parent_id.user_id.id - else: - raise osv.except_osv(_('Error!'), _("You are already at the top level of your sales-team category.\nTherefore you cannot escalate furthermore.")) - self.write(cr, uid, [case.id], data, context=context) - return True - - def case_open(self, cr, uid, ids, context=None): - """ Opens case """ - cases = self.browse(cr, uid, ids, context=context) - for case in cases: - data = {'active': True} - if not case.user_id: - data['user_id'] = uid - self.case_set(cr, uid, [case.id], 'open', data, context=context) - return True - - def case_close(self, cr, uid, ids, context=None): - """ Closes case """ - return self.case_set(cr, uid, ids, 'done', {'active': True, 'date_closed': fields.datetime.now()}, context=context) - - def case_cancel(self, cr, uid, ids, context=None): - """ Cancels case """ - return self.case_set(cr, uid, ids, 'cancel', {'active': True}, context=context) - - def case_pending(self, cr, uid, ids, context=None): - """ Set case as pending """ - return self.case_set(cr, uid, ids, 'pending', {'active': True}, context=context) - - def case_reset(self, cr, uid, ids, context=None): - """ Resets case as draft """ - return self.case_set(cr, uid, ids, 'draft', {'active': True}, context=context) - - def case_set(self, cr, uid, ids, new_state_name=None, values_to_update=None, new_stage_id=None, context=None): - """ Generic method for setting case. This methods wraps the update - of the record. - - :params new_state_name: the new state of the record; this method - will call ``stage_set_with_state_name`` - that will find the stage matching the - new state, using the ``stage_find`` method. - :params new_stage_id: alternatively, you may directly give the - new stage of the record - :params state_name: the new value of the state, such as - 'draft' or 'close'. - :params update_values: values that will be added with the state - update when writing values to the record. - """ - cases = self.browse(cr, uid, ids, context=context) - # 1. update the stage - if new_state_name: - self.stage_set_with_state_name(cr, uid, cases, new_state_name, context=context) - elif not (new_stage_id is None): - self.stage_set(cr, uid, ids, new_stage_id, context=context) - # 2. update values - if values_to_update: - self.write(cr, uid, ids, values_to_update, context=context) - return True diff --git a/addons/base_status/i18n/bs.po b/addons/base_status/i18n/bs.po new file mode 100644 index 00000000000..0fdd8821dd2 --- /dev/null +++ b/addons/base_status/i18n/bs.po @@ -0,0 +1,80 @@ +# Bosnian 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-08-08 22:20+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Bosnian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-08-09 05:06+0000\n" +"X-Generator: Launchpad (build 16723)\n" + +#. module: base_status +#: code:addons/base_status/base_state.py:107 +#, python-format +msgid "Error !" +msgstr "Greška !" + +#. module: base_status +#: code:addons/base_status/base_state.py:166 +#, python-format +msgid "%s has been opened." +msgstr "%s je bio otvoren." + +#. module: base_status +#: code:addons/base_status/base_state.py:199 +#, python-format +msgid "%s has been renewed." +msgstr "%s je bio obnovljen." + +#. module: base_status +#: code:addons/base_status/base_stage.py:210 +#, python-format +msgid "Error!" +msgstr "Greška!" + +#. module: base_status +#: code:addons/base_status/base_state.py:107 +#, python-format +msgid "" +"You can not escalate, you are already at the top level regarding your sales-" +"team category." +msgstr "" +"Ne možete eskalirati, već ste na najvišem nivou u odnosu na kategoriju " +"prodajnog tima." + +#. module: base_status +#: code:addons/base_status/base_state.py:193 +#, python-format +msgid "%s is now pending." +msgstr "%s je sad Na čekanju." + +#. module: base_status +#: code:addons/base_status/base_state.py:187 +#, python-format +msgid "%s has been canceled." +msgstr "%s je bio otkazan." + +#. module: base_status +#: code:addons/base_status/base_stage.py:210 +#, python-format +msgid "" +"You are already at the top level of your sales-team category.\n" +"Therefore you cannot escalate furthermore." +msgstr "" +"Već ste na najvišem nivou vaše kategorije prodajnog tima.\n" +"Zato ne možete dalje eskalirati." + +#. module: base_status +#: code:addons/base_status/base_state.py:181 +#, python-format +msgid "%s has been closed." +msgstr "%s je bio zatvoren." diff --git a/addons/crm/__openerp__.py b/addons/crm/__openerp__.py index e7ab7df27ea..3e6b55006fa 100644 --- a/addons/crm/__openerp__.py +++ b/addons/crm/__openerp__.py @@ -116,6 +116,7 @@ Dashboard for CRM will include: 'test/crm_lead_onchange.yml', 'test/crm_lead_copy.yml', 'test/crm_lead_unlink.yml', + 'test/crm_lead_find_stage.yml', ], 'css': [ 'static/src/css/crm.css' diff --git a/addons/crm/board_crm_view.xml b/addons/crm/board_crm_view.xml index 19baa5a5709..6bbd450ca38 100644 --- a/addons/crm/board_crm_view.xml +++ b/addons/crm/board_crm_view.xml @@ -19,7 +19,11 @@ form graph,tree,form - [('state', 'not in', ('done', 'cancel')), ('type', '=', 'opportunity')] + + ['|', + '!', '&', ('probability', '=', 100), ('stage_id.on_change', '=', 1), + '!', '&', ('probability', '=', 0), ('stage_id.sequence', '!=', 1), + ('type', '=', 'opportunity')] {'search_default_Stage':1} @@ -43,8 +47,9 @@ form graph,tree,form - [('state','!=','cancel'),('opening_date','>',context_today().strftime("%Y-%m-%d"))] - {'search_default_Stage':1} + + ['!', '&', ('probability', '=', 0), ('stage_id.sequence', '!=', 1)] + {'search_default_user': 1, 'search_default_Stage': 1} diff --git a/addons/crm/crm.py b/addons/crm/crm.py index d1194508b71..04a17b9dbc0 100644 --- a/addons/crm/crm.py +++ b/addons/crm/crm.py @@ -26,15 +26,6 @@ from openerp import tools from openerp.osv import fields from openerp.osv import osv -MAX_LEVEL = 15 -AVAILABLE_STATES = [ - ('draft', 'New'), - ('cancel', 'Cancelled'), - ('open', 'In Progress'), - ('pending', 'Pending'), - ('done', 'Closed') -] - AVAILABLE_PRIORITIES = [ ('1', 'Highest'), ('2', 'High'), @@ -72,16 +63,13 @@ class crm_case_stage(osv.osv): 'probability': fields.float('Probability (%)', required=True, help="This percentage depicts the default/average probability of the Case for this stage to be a success"), 'on_change': fields.boolean('Change Probability Automatically', help="Setting this stage will change the probability automatically on the opportunity."), 'requirements': fields.text('Requirements'), - 'section_ids':fields.many2many('crm.case.section', 'section_stage_rel', 'stage_id', 'section_id', string='Sections', + 'section_ids': fields.many2many('crm.case.section', 'section_stage_rel', 'stage_id', 'section_id', string='Sections', help="Link between stages and sales teams. When set, this limitate the current stage to the selected sales teams."), - 'state': fields.selection(AVAILABLE_STATES, 'Related Status', required=True, - help="The status of your document will automatically change regarding the selected stage. " \ - "For example, if a stage is related to the status 'Close', when your document reaches this stage, it is automatically closed."), 'case_default': fields.boolean('Default to New Sales Team', help="If you check this field, this stage will be proposed by default on each sales team. It will not assign this stage to existing teams."), 'fold': fields.boolean('Fold by Default', help="This stage is not visible, for example in status bar or kanban view, when there are no records in that stage to display."), - 'type': fields.selection([ ('lead','Lead'), + 'type': fields.selection([('lead', 'Lead'), ('opportunity', 'Opportunity'), ('both', 'Both')], string='Type', size=16, required=True, @@ -91,7 +79,7 @@ class crm_case_stage(osv.osv): _defaults = { 'sequence': lambda *args: 1, 'probability': lambda *args: 0.0, - 'state': 'open', + 'on_change': True, 'fold': False, 'type': 'both', 'case_default': True, diff --git a/addons/crm/crm_action_rule_demo.xml b/addons/crm/crm_action_rule_demo.xml index 7204f666db5..8eac91c06e2 100644 --- a/addons/crm/crm_action_rule_demo.xml +++ b/addons/crm/crm_action_rule_demo.xml @@ -5,7 +5,7 @@ Draft Leads crm.lead - [('state','=','draft')] + [('stage_id.sequence', '=', 1)] @@ -14,13 +14,7 @@ True ir.actions.server email - object.user_id.email - Reminder on Lead: [[object.id ]] [[object.partner_id and 'of ' +object.partner_id.name or '']] - Warning unprocessed incoming lead is more than 5 day old. -Name: [[object.name ]] -ID: [[object.id ]] -Description: [[object.description]] - + Set Auto Reminder on leads which are not open since 5 days. diff --git a/addons/crm/crm_lead.py b/addons/crm/crm_lead.py index af02e3be1bf..65d096c6a51 100644 --- a/addons/crm/crm_lead.py +++ b/addons/crm/crm_lead.py @@ -22,14 +22,13 @@ import crm from datetime import datetime from operator import itemgetter -from openerp.osv import fields, osv, orm -import time + from openerp import SUPERUSER_ID from openerp import tools -from openerp.tools.translate import _ -from openerp.tools import html2plaintext - from openerp.addons.base.res.res_partner import format_address +from openerp.osv import fields, osv, orm +from openerp.tools import html2plaintext +from openerp.tools.translate import _ CRM_LEAD_FIELDS_TO_MERGE = ['name', 'partner_id', @@ -61,11 +60,7 @@ CRM_LEAD_FIELDS_TO_MERGE = ['name', 'email_from', 'email_cc', 'partner_name'] -CRM_LEAD_PENDING_STATES = ( - crm.AVAILABLE_STATES[2][0], # Cancelled - crm.AVAILABLE_STATES[3][0], # Done - crm.AVAILABLE_STATES[4][0], # Pending -) + class crm_lead(format_address, osv.osv): """ CRM Lead Case """ @@ -75,13 +70,11 @@ class crm_lead(format_address, osv.osv): _inherit = ['mail.thread', 'ir.needaction_mixin'] _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', - }, 'stage_id': { - 'crm.mt_lead_stage': lambda self, cr, uid, obj, ctx=None: obj.state not in ['new', 'draft', 'cancel', 'done'], + 'crm.mt_lead_create': lambda self, cr, uid, obj, ctx=None: obj.probability == 0 and obj.stage_id and obj.stage_id.sequence == 1, + 'crm.mt_lead_stage': lambda self, cr, uid, obj, ctx=None: (obj.stage_id and obj.stage_id.sequence != 1) and obj.probability < 100, + 'crm.mt_lead_won': lambda self, cr, uid, obj, ctx=None: obj.probability == 100 and obj.stage_id and obj.stage_id.on_change, + 'crm.mt_lead_lost': lambda self, cr, uid, obj, ctx=None: obj.probability == 0 and obj.stage_id and obj.stage_id.sequence != 1, }, } @@ -99,7 +92,7 @@ class crm_lead(format_address, osv.osv): def _get_default_stage_id(self, cr, uid, context=None): """ Gives default stage_id """ section_id = self._get_default_section_id(cr, uid, context=context) - return self.stage_find(cr, uid, [], section_id, [('state', '=', 'draft')], context=context) + return self.stage_find(cr, uid, [], section_id, [('sequence', '=', '1')], context=context) def _resolve_section_id_from_context(self, cr, uid, context=None): """ Returns ID of section based on the value of 'section_id' @@ -150,7 +143,7 @@ class crm_lead(format_address, osv.osv): stage_ids = stage_obj._search(cr, uid, search_domain, order=order, access_rights_uid=access_rights_uid, context=context) result = stage_obj.name_get(cr, access_rights_uid, stage_ids, context=context) # restore order of the search - result.sort(lambda x,y: cmp(stage_ids.index(x[0]), stage_ids.index(y[0]))) + result.sort(lambda x, y: cmp(stage_ids.index(x[0]), stage_ids.index(y[0]))) fold = {} for stage in stage_obj.browse(cr, access_rights_uid, stage_ids, context=context): @@ -158,7 +151,7 @@ class crm_lead(format_address, osv.osv): return result, fold def fields_view_get(self, cr, user, view_id=None, view_type='form', context=None, toolbar=False, submenu=False): - res = super(crm_lead,self).fields_view_get(cr, user, view_id, view_type, context, toolbar=toolbar, submenu=submenu) + res = super(crm_lead, self).fields_view_get(cr, user, view_id, view_type, context, toolbar=toolbar, submenu=submenu) if view_type == 'form': res['arch'] = self.fields_view_get_address(cr, user, res['arch'], context=context) return res @@ -220,17 +213,6 @@ class crm_lead(format_address, osv.osv): res[lead.id][field] = abs(int(duration)) return res - def _history_search(self, cr, uid, obj, name, args, context=None): - res = [] - msg_obj = self.pool.get('mail.message') - message_ids = msg_obj.search(cr, uid, [('email_from','!=',False), ('subject', args[0][1], args[0][2])], context=context) - lead_ids = self.search(cr, uid, [('message_ids', 'in', message_ids)], context=context) - - if lead_ids: - return [('id', 'in', lead_ids)] - else: - return [('id', '=', '0')] - _columns = { 'partner_id': fields.many2one('res.partner', 'Partner', ondelete='set null', track_visibility='onchange', select=True, help="Linked partner (optional). Usually created when converting the lead."), @@ -243,10 +225,10 @@ class crm_lead(format_address, osv.osv): 'email_from': fields.char('Email', size=128, help="Email address of the contact", select=1), 'section_id': fields.many2one('crm.case.section', 'Sales Team', select=True, track_visibility='onchange', help='When sending mails, the default email address is taken from the sales team.'), - 'create_date': fields.datetime('Creation Date' , readonly=True), - 'email_cc': fields.text('Global CC', size=252 , help="These email addresses will be added to the CC field of all inbound and outbound emails for this record before being sent. Separate multiple email addresses with a comma"), + 'create_date': fields.datetime('Creation Date', readonly=True), + 'email_cc': fields.text('Global CC', help="These email addresses will be added to the CC field of all inbound and outbound emails for this record before being sent. Separate multiple email addresses with a comma"), 'description': fields.text('Notes'), - 'write_date': fields.datetime('Update Date' , readonly=True), + 'write_date': fields.datetime('Update Date', readonly=True), 'categ_ids': fields.many2many('crm.case.categ', 'crm_lead_category_rel', 'lead_id', 'category_id', 'Categories', \ domain="['|',('section_id','=',section_id),('section_id','=',False), ('object_id.model', '=', 'crm.lead')]"), 'type_id': fields.many2one('crm.case.resource.type', 'Campaign', \ @@ -264,17 +246,15 @@ class crm_lead(format_address, osv.osv): domain="['&', ('section_ids', '=', section_id), '|', ('type', '=', type), ('type', '=', 'both')]"), 'user_id': fields.many2one('res.users', 'Salesperson', select=True, track_visibility='onchange'), 'referred': fields.char('Referred By', size=64), - 'date_open': fields.datetime('Opened', readonly=True), + 'date_open': fields.datetime('Assigned', readonly=True), 'day_open': fields.function(_compute_day, string='Days to Open', \ multi='day_open', type="float", store=True), 'day_close': fields.function(_compute_day, string='Days to Close', \ multi='day_close', type="float", store=True), - 'state': fields.related('stage_id', 'state', type="selection", store=True, - selection=crm.AVAILABLE_STATES, string="Status", readonly=True, - help='The Status is set to \'Draft\', when a case is created. If the case is in progress the Status is set to \'Open\'. When the case is over, the Status is set to \'Done\'. If the case needs to be reviewed then the Status is set to \'Pending\'.'), + 'date_last_stage_update': fields.datetime('Last Stage Update', select=True), # Only used for type opportunity - 'probability': fields.float('Success Rate (%)',group_operator="avg"), + 'probability': fields.float('Success Rate (%)', group_operator="avg"), 'planned_revenue': fields.float('Expected Revenue', track_visibility='always'), 'ref': fields.reference('Reference', selection=crm._links_get, size=128), 'ref2': fields.reference('Reference 2', selection=crm._links_get, size=128), @@ -316,6 +296,7 @@ class crm_lead(format_address, osv.osv): 'company_id': lambda s, cr, uid, c: s.pool.get('res.company')._company_default_get(cr, uid, 'crm.lead', context=c), 'priority': lambda *a: crm.AVAILABLE_PRIORITIES[2][0], 'color': 0, + 'date_last_stage_update': fields.datetime.now(), } _sql_constraints = [ @@ -325,7 +306,7 @@ class crm_lead(format_address, osv.osv): def onchange_stage_id(self, cr, uid, ids, stage_id, context=None): if not stage_id: return {'value': {}} - stage = self.pool.get('crm.case.stage').browse(cr, uid, stage_id, context) + stage = self.pool.get('crm.case.stage').browse(cr, uid, stage_id, context=context) if not stage.on_change: return {'value': {}} return {'value': {'probability': stage.probability}} @@ -358,22 +339,6 @@ class crm_lead(format_address, osv.osv): section_id = section_ids[0] return {'value': {'section_id': section_id}} - def _check(self, cr, uid, ids=False, context=None): - """ Override of the base.stage method. - Function called by the scheduler to process cases for date actions - Only works on not done and cancelled cases - """ - cr.execute('select * from crm_case \ - where (date_action_last<%s or date_action_last is null) \ - and (date_action_next<=%s or date_action_next is null) \ - and state not in (\'cancel\',\'done\')', - (time.strftime("%Y-%m-%d %H:%M:%S"), - time.strftime('%Y-%m-%d %H:%M:%S'))) - - ids2 = map(lambda x: x[0], cr.fetchall() or []) - cases = self.browse(cr, uid, ids2, context=context) - return self._action(cr, uid, cases, False, context=context) - def stage_find(self, cr, uid, cases, section_id, domain=None, order='sequence', context=None): """ Override of the base.stage method Parameter of the stage search taken from the lead: @@ -385,16 +350,16 @@ class crm_lead(format_address, osv.osv): if isinstance(cases, (int, long)): cases = self.browse(cr, uid, cases, context=context) # collect all section_ids - section_ids = [] + section_ids = set() types = ['both'] if not cases: - type = context.get('default_type') - types += [type] + ctx_type = context.get('default_type') + types += [ctx_type] if section_id: - section_ids.append(section_id) + section_ids.add(section_id) for lead in cases: if lead.section_id: - section_ids.append(lead.section_id.id) + section_ids.add(lead.section_id.id) if lead.type not in types: types.append(lead.type) # OR all section_ids and OR with case_default @@ -403,8 +368,7 @@ class crm_lead(format_address, osv.osv): search_domain += [('|')] * len(section_ids) for section_id in section_ids: search_domain.append(('section_ids', '=', section_id)) - else: - search_domain.append(('case_default', '=', True)) + search_domain.append(('case_default', '=', True)) # AND with cases types search_domain.append(('type', 'in', types)) # AND with the domain in parameter @@ -415,27 +379,29 @@ class crm_lead(format_address, osv.osv): return stage_ids[0] return False - def stage_set(self, cr, uid, ids, stage_id, context=None): - """ Set the new stage. Now just writes the stage. - TDE TODO: remove me when removing state - """ - return self.write(cr, uid, ids, {'stage_id': stage_id}, context=context) - def case_mark_lost(self, cr, uid, ids, context=None): """ Mark the case as lost: state=cancel and probability=0 """ for lead in self.browse(cr, uid, ids): - stage_id = self.stage_find(cr, uid, [lead], lead.section_id.id or False, [('probability', '=', 0.0),('on_change','=',True)], context=context) + stage_id = self.stage_find(cr, uid, [lead], lead.section_id.id or False, [('probability', '=', 0.0), ('on_change', '=', True), ('sequence', '>', 1)], context=context) if stage_id: - self.stage_set(cr, uid, [lead.id], stage_id, context=context) - return True + return self.write(cr, uid, [lead.id], {'stage_id': stage_id}, context=context) + else: + raise osv.except_osv(_('Warning!'), + _('To relieve your sales pipe and group all Lost opportunities, configure one of your sales stage as follow:\n' + 'probability = 0 %, select "Change Probability Automatically".\n' + 'Create a specific stage or edit an existing one by editing columns of your opportunity pipe.')) def case_mark_won(self, cr, uid, ids, context=None): """ Mark the case as won: state=done and probability=100 """ for lead in self.browse(cr, uid, ids): - stage_id = self.stage_find(cr, uid, [lead], lead.section_id.id or False, [('probability', '=', 100.0),('on_change','=',True)], context=context) + stage_id = self.stage_find(cr, uid, [lead], lead.section_id.id or False, [('probability', '=', 100.0), ('on_change', '=', True), ('sequence', '>', 1)], context=context) if stage_id: - self.stage_set(cr, uid, [lead.id], stage_id, context=context) - return True + return self.write(cr, uid, [lead.id], {'stage_id': stage_id}, context=context) + else: + raise osv.except_osv(_('Warning!'), + _('To relieve your sales pipe and group all Won opportunities, configure one of your sales stage as follow:\n' + 'probability = 100 % and select "Change Probability Automatically".\n' + 'Create a specific stage or edit an existing one by editing columns of your opportunity pipe.')) def case_escalate(self, cr, uid, ids, context=None): """ Escalates case to parent level """ @@ -451,20 +417,20 @@ class crm_lead(format_address, osv.osv): self.write(cr, uid, [case.id], data, context=context) return True - def set_priority(self, cr, uid, ids, priority): + def set_priority(self, cr, uid, ids, priority, context=None): """ Set lead priority """ - return self.write(cr, uid, ids, {'priority' : priority}) + return self.write(cr, uid, ids, {'priority': priority}, context=context) def set_high_priority(self, cr, uid, ids, context=None): """ Set lead priority to high """ - return self.set_priority(cr, uid, ids, '1') + return self.set_priority(cr, uid, ids, '1', context=context) def set_normal_priority(self, cr, uid, ids, context=None): """ Set lead priority to normal """ - return self.set_priority(cr, uid, ids, '3') + return self.set_priority(cr, uid, ids, '3', context=context) def _merge_get_result_type(self, cr, uid, opps, context=None): """ @@ -621,7 +587,7 @@ class crm_lead(format_address, osv.osv): attachment.write(values) return True - def merge_opportunity(self, cr, uid, ids, context=None): + def merge_opportunity(self, cr, uid, ids, user_id=False, section_id=False, context=None): """ Different cases of merge: - merge leads together = 1 new lead @@ -640,7 +606,8 @@ class crm_lead(format_address, osv.osv): sequenced_opps = [] for opportunity in opportunities: sequence = -1 - if opportunity.stage_id and opportunity.stage_id.state != 'cancel': + # TDE: was "if opportunity.stage_id and opportunity.stage_id.state != 'cancel':" + if opportunity.probability == 0 and opportunity.stage_id and opportunity.stage_id.sequence != 1 and opportunity.stage_id.fold: sequence = opportunity.stage_id.sequence sequenced_opps.append(((int(sequence != -1 and opportunity.type == 'opportunity'), sequence, -opportunity.id), opportunity)) @@ -655,6 +622,11 @@ class crm_lead(format_address, osv.osv): fields = list(CRM_LEAD_FIELDS_TO_MERGE) merged_data = self._merge_data(cr, uid, ids, highest, fields, context=context) + if user_id: + merged_data['user_id'] = user_id + if section_id: + merged_data['section_id'] = section_id + # Merge messages and attachements into the first opportunity self._merge_opportunity_history(cr, uid, highest.id, tail_opportunities, context=context) self._merge_opportunity_attachments(cr, uid, highest.id, tail_opportunities, context=context) @@ -696,7 +668,7 @@ class crm_lead(format_address, osv.osv): 'phone': customer and customer.phone or lead.phone, } if not lead.stage_id or lead.stage_id.type=='lead': - val['stage_id'] = self.stage_find(cr, uid, [lead], section_id, [('state', '=', 'draft'),('type', 'in', ('opportunity','both'))], context=context) + val['stage_id'] = self.stage_find(cr, uid, [lead], section_id, [('sequence', '=', '1'), ('type', 'in', ('opportunity','both'))], context=context) return val def convert_opportunity(self, cr, uid, ids, partner_id, user_ids=False, section_id=False, context=None): @@ -705,7 +677,8 @@ class crm_lead(format_address, osv.osv): partner = self.pool.get('res.partner') customer = partner.browse(cr, uid, partner_id, context=context) for lead in self.browse(cr, uid, ids, context=context): - if lead.state in ('done', 'cancel'): + # TDE: was if lead.state in ('done', 'cancel'): + if (lead.probability == '100') or (lead.probability == '0' and lead.stage_id.sequence != '1'): continue vals = self._convert_opportunity_data(cr, uid, lead, customer, section_id, context=context) self.write(cr, uid, [lead.id], vals, context=context) @@ -935,47 +908,15 @@ class crm_lead(format_address, osv.osv): return super(crm_lead, self).create(cr, uid, vals, context=create_context) def write(self, cr, uid, ids, vals, context=None): + # stage change: update date_last_stage_update + if 'stage_id' in vals: + vals['date_last_stage_update'] = fields.datetime.now() + # stage change with new stage: update probability if vals.get('stage_id') and not vals.get('probability'): onchange_stage_values = self.onchange_stage_id(cr, uid, ids, vals.get('stage_id'), context=context)['value'] vals.update(onchange_stage_values) return super(crm_lead, self).write(cr, uid, ids, vals, context=context) - def new_mail_send(self, cr, uid, ids, context=None): - ''' - This function opens a window to compose an email, with the edi sale template message loaded by default - ''' - assert len(ids) == 1, 'This option should only be used for a single id at a time.' - ir_model_data = self.pool.get('ir.model.data') - try: - template_id = ir_model_data.get_object_reference(cr, uid, 'crm', 'email_template_opportunity_mail')[1] - except ValueError: - template_id = False - try: - compose_form_id = ir_model_data.get_object_reference(cr, uid, 'mail', 'email_compose_message_wizard_form')[1] - except ValueError: - compose_form_id = False - if context is None: - context = {} - ctx = context.copy() - ctx.update({ - 'default_model': 'crm.lead', - 'default_res_id': ids[0], - 'default_use_template': bool(template_id), - 'default_template_id': template_id, - 'default_composition_mode': 'comment', - }) - return { - 'name': _('Compose Email'), - 'type': 'ir.actions.act_window', - 'view_type': 'form', - 'view_mode': 'form', - 'res_model': 'mail.compose.message', - 'views': [(compose_form_id, 'form')], - 'view_id': compose_form_id, - 'target': 'new', - 'context': ctx, - } - # ---------------------------------------- # Mail Gateway # ---------------------------------------- diff --git a/addons/crm/crm_lead_data.xml b/addons/crm/crm_lead_data.xml index 92914542d9d..3c299fef704 100644 --- a/addons/crm/crm_lead_data.xml +++ b/addons/crm/crm_lead_data.xml @@ -5,71 +5,57 @@ New - - draft - - + 1 + 0 + 1 + 1 both - Opportunity - - open - - - lead - - Dead - - - cancel - - + 1 + 0 + 1 + 30 lead Qualification - - open - - + 1 + 20 + 1 + 40 opportunity Proposition - - open - - + 1 + 40 + 50 opportunity Negotiation - - open - - + 1 + 60 + 60 opportunity Won - - - done - - - + 1 + 100 + 1 + 70 opportunity - + Lost - - - - cancel - - + 1 + 1 + 0 + 1 + 80 opportunity @@ -77,7 +63,7 @@ + (4, ref('stage_lead7'))]"/> @@ -161,7 +147,7 @@ Lead Created crm.lead - Opportunity created + Lead created Stage Changed @@ -220,6 +206,20 @@ ${not object.partner_id and object.email_from} + + Reminder to User + + + admin@example.com + ${object.user_id != False and object.user_id.email} + Reminder on Lead: ${object.id} from ${object.partner_id != False and object.partner_id.name or object.contact_name} + This opportunity did not have any activity since at least 5 days. Here are some details:

+
    +
  • Name: ${object.name}
  • +
  • ID: ${object.id}
  • +
  • Description: ${object.description}
  • +
]]>
+
diff --git a/addons/crm/crm_lead_demo.xml b/addons/crm/crm_lead_demo.xml index 3917fadbd32..dab17888d7a 100644 --- a/addons/crm/crm_lead_demo.xml +++ b/addons/crm/crm_lead_demo.xml @@ -6,9 +6,9 @@ lead Plan to Attend a Training - Jason Dunagan + Jacques Dunagan Le Club SARL - jason@leclub.fr + jdunagan@leclub.fr Training Manager 73, rue Léon Dierx @@ -20,14 +20,25 @@ 1 - + Hello, -I am Jason from Le Club SARL. -I am intertested to attend a training organized in your company. -Can you send me the details ? - +I am Jacques from Le Club SARL. +I am interested to attend a training organized in your company. +Could you please send me the details ? + + + + + + Inquiry + crm.lead + + Hello,
+ I am Jacques from Le Club SARL. I am interested to attend a training organized in your company.
+ Can you send me the details ?

]]>
+ email
@@ -44,10 +55,20 @@ Can you send me the details ?
4 - + - + + + + + + Need Details + crm.lead + + + Want to know features and benefits to use the new software. + comment @@ -65,8 +86,10 @@ Can you send me the details ? 2 - - + + + + @@ -82,10 +105,12 @@ Can you send me the details ? 3 - - - - + + + + + + @@ -105,8 +130,8 @@ Can you send me the details ? 3 - - + + Hi, Can you send me a quotation for 20 computers with speakers? @@ -116,7 +141,6 @@ Purchase Manager Stonage IT, Franklinville Contact: +1 813 494 5005 - @@ -134,9 +158,8 @@ Contact: +1 813 494 5005 3 - + - @@ -153,9 +176,8 @@ Contact: +1 813 494 5005 5 - - - + + @@ -173,9 +195,8 @@ Contact: +1 813 494 5005 4 - - - + + @@ -193,12 +214,8 @@ Contact: +1 813 494 5005 2 - + - - - - @@ -215,14 +232,13 @@ Contact: +1 813 494 5005 2 - + Hi, I would like to know more about specification and cost of laptops of your company. Thanks, Andrew - @@ -239,9 +255,8 @@ Andrew 3 - + - @@ -258,15 +273,23 @@ Andrew 2 - - - + + + + + @@ -289,8 +312,7 @@ Andrew Meeting for pricing information. - - + @@ -316,7 +338,6 @@ Andrew - @@ -337,10 +358,12 @@ Andrew Call to ask system requirement - - + + + + opportunity @@ -362,8 +385,7 @@ Andrew Convert to quote - - + @@ -388,10 +410,12 @@ Andrew Send price list regarding our interventions - - + + + + opportunity @@ -413,9 +437,12 @@ Andrew Call to define real needs about training - + + + + opportunity @@ -437,8 +464,7 @@ Andrew Ask for the good receprion of the proposition - - + @@ -455,8 +481,7 @@ Andrew 2 - - + @@ -470,8 +495,7 @@ Andrew 3 - - + @@ -489,8 +513,7 @@ Andrew 3 - - + @@ -505,8 +528,7 @@ Andrew 5 - - + @@ -525,8 +547,7 @@ Andrew - - + @@ -549,8 +570,7 @@ Andrew Conf call with technical service - - + @@ -574,21 +594,10 @@ Andrew Send Catalogue by Email - - - + + - - - - - - - - - - bWlncmF0aW9uIHRlc3Q= @@ -682,26 +691,9 @@ Andrew - - Inquiry - crm.lead - - Hello,
- I am Jason from Le Club SARL. I am interested to attend a training organized in your company.
- Can you send me the details ?

]]>
- email -
- - Need Details - crm.lead - - Want to know features and benefits to use the new software. - comment - - diff --git a/addons/crm/crm_lead_view.xml b/addons/crm/crm_lead_view.xml index cb4302166a1..849cecaac85 100644 --- a/addons/crm/crm_lead_view.xml +++ b/addons/crm/crm_lead_view.xml @@ -12,9 +12,10 @@ crm.case.stage - - + + + @@ -94,7 +95,8 @@
@@ -173,20 +169,24 @@ - - - - - - - - - + + + + + + + + + + + + + @@ -216,7 +216,7 @@ Leads crm.lead - + @@ -228,7 +228,7 @@ - + @@ -258,7 +258,6 @@ crm.lead - @@ -331,16 +330,17 @@ - - - - + - + help="Leads that are assigned to any sales teams I am member of"/> +
-
-
@@ -408,7 +407,7 @@ @@ -430,7 +429,8 @@ @@ -481,7 +481,6 @@ - @@ -511,7 +510,7 @@ Opportunities Tree crm.lead - + @@ -529,7 +528,8 @@ - + + @@ -546,15 +546,19 @@ + + - - - - - - + + + + + diff --git a/addons/crm/crm_view.xml b/addons/crm/crm_view.xml index a84ae553b4a..d0dcc07fcb0 100644 --- a/addons/crm/crm_view.xml +++ b/addons/crm/crm_view.xml @@ -80,7 +80,6 @@ - @@ -96,7 +95,6 @@ - diff --git a/addons/crm/doc/changelog.rst b/addons/crm/doc/changelog.rst index cb1602a8d39..e9bd1980956 100644 --- a/addons/crm/doc/changelog.rst +++ b/addons/crm/doc/changelog.rst @@ -6,6 +6,12 @@ Changelog `trunk (saas-2)` ---------------- +- Stage/state update + + - ``crm.lead``: removed ``state`` field. Added ``date_last_stage_update`` field + holding last stage_id modification. Updated reports. + - ``crm.case.stage``: removed ``state`` field. + - ``crm``, ``crm_claim``: removed inheritance from ``base_stage`` class. Missing methods have been added into ``crm`` and ``crm_claim``. Also removed inheritance in ``crm_helpdesk`` because it uses states, not stages. \ No newline at end of file diff --git a/addons/crm/doc/index.rst b/addons/crm/doc/index.rst index d70e045befe..f98ca145a56 100644 --- a/addons/crm/doc/index.rst +++ b/addons/crm/doc/index.rst @@ -4,6 +4,11 @@ CRM module documentation CRM documentation topics ''''''''''''''''''''''''' +.. toctree:: + :maxdepth: 1 + + stage_status.rst + Changelog ''''''''' diff --git a/addons/crm/doc/stage_status.rst b/addons/crm/doc/stage_status.rst new file mode 100644 index 00000000000..ca5d3d3d6e1 --- /dev/null +++ b/addons/crm/doc/stage_status.rst @@ -0,0 +1,61 @@ +.. _stage_status: + +Stage and Status +================ + +.. versionchanged:: 8.0 saas-2 state/stage cleaning + +Stage ++++++ + +This revision removed the concept of state on crm.lead objects. The ``state`` +field has been totally removed and replaced by stages, using ``stage_id``. The +following models are impacted: + + - ``crm.lead`` now use only stages. However conventions still exist about + 'New', 'Won' and 'Lost' stages. Those conventions are: + + - ``new``: ``stage_id and stage_id.sequence = 1`` + - ``won``: ``stage_id and stage_id.probability = 100 and stage_id.on_change = True`` + - ``lost``: ``stage_id and stage_id.probability = 0 and stage_id.on_change = True + and stage_id.sequence != 1`` + + - ``crm.case.stage`` do not have any ``state`` field anymore. + - ``crm.lead.report`` do not have any ``state`` field anymore. + +By default a newly created lead is in a new stage. It means that it will +fetch the stage having ``sequence = 1``. Stage mangement is done using the +kanban view or the clikable statusbar. It is not done using buttons anymore. + +Stage analysis +++++++++++++++ + +Stage analysis can be performed using the newly introduced ``date_last_stage_update`` +datetime field. This field is updated everytime ``stage_id`` is updated. + +``crm.lead.report`` model also uses the ``date_last_stage_update`` field. +This allows to group and analyse the time spend in the various stages. + +Open / Assignation date ++++++++++++++++++++++++ + +The ``date_open`` field meaning has been updated. It is now set when the ``user_id`` +(responsible) is set. It is therefore the assignation date. + +Subtypes +++++++++ + +The following subtypes are triggered on ``crm.lead``: + + - ``mt_lead_create``: new leads. Condition: ``obj.probability == 0 and obj.stage_id + and obj.stage_id.sequence == 1`` + - ``mt_lead_stage``: stage changed. Condition: ``(obj.stage_id and obj.stage_id.sequence != 1) + and obj.probability < 100`` + - ``mt_lead_won``: lead/oportunity is won. condition: `` obj.probability == 100 + and obj.stage_id and obj.stage_id.on_change`` + - ``mt_lead_lost``: lead/opportunity is lost. Condition: ``obj.probability == 0 + and obj.stage_id and obj.stage_id.sequence != 1'`` + + +Those subtypes are also available on the ``crm.case.section`` model and are used +for the auto subscription. diff --git a/addons/crm/i18n/es_AR.po b/addons/crm/i18n/es_AR.po index 7b09f194742..818abeae08a 100644 --- a/addons/crm/i18n/es_AR.po +++ b/addons/crm/i18n/es_AR.po @@ -1,25 +1,26 @@ -# Translation of OpenERP Server. -# This file contains the translation of the following modules: -# * crm +# Spanish (Argentina) translation for openobject-addons +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2012. # msgid "" msgstr "" -"Project-Id-Version: OpenERP Server 5.0.0\n" -"Report-Msgid-Bugs-To: support@openerp.com\n" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-12-21 17:04+0000\n" -"PO-Revision-Date: 2009-09-15 15:45+0000\n" -"Last-Translator: Silvana Herrera \n" -"Language-Team: \n" +"PO-Revision-Date: 2013-08-13 02:17+0000\n" +"Last-Translator: Laureano Kloss \n" +"Language-Team: Spanish (Argentina) \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:09+0000\n" -"X-Generator: Launchpad (build 16532)\n" +"X-Launchpad-Export-Date: 2013-08-13 05:00+0000\n" +"X-Generator: Launchpad (build 16723)\n" #. module: crm #: view:crm.lead.report:0 msgid "# Leads" -msgstr "" +msgstr "# Iniciativas" #. module: crm #: help:sale.config.settings,fetchmail_lead:0 @@ -27,9 +28,11 @@ msgid "" "Allows you to configure your incoming mail server, and create leads from " "incoming emails." msgstr "" +"Le permite configurar su servidor de correo entrante y crear iniciativas " +"desde los correos entrantes." #. 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 @@ -37,13 +40,13 @@ msgstr "" #: selection:crm.lead.report,type:0 #, python-format msgid "Lead" -msgstr "" +msgstr "Iniciativa" #. module: crm #: view:crm.lead:0 #: field:crm.lead,title:0 msgid "Title" -msgstr "" +msgstr "Denominación" #. module: crm #: model:ir.actions.server,message:crm.action_email_reminder_lead @@ -54,40 +57,45 @@ msgid "" "Description: [[object.description]]\n" " " msgstr "" +"Advertencia: Una iniciativa entrante está sin procesar más de 5 días.\n" +"Nombre: [[object.name ]]\n" +"ID: [[object.id ]]\n" +"Descripción: [[object.description]]\n" +" " #. module: crm #: field:crm.opportunity2phonecall,action:0 #: field:crm.phonecall2phonecall,action:0 msgid "Action" -msgstr "" +msgstr "Acción" #. module: crm #: model:ir.actions.server,name:crm.action_set_team_sales_department msgid "Set team to Sales Department" -msgstr "" +msgstr "Establecer como equipo al Departamento de ventas" #. module: crm #: view:crm.lead2opportunity.partner.mass:0 msgid "Select Opportunities" -msgstr "" +msgstr "Seleccionar oportunidades" #. module: crm #: model:res.groups,name:crm.group_fund_raising #: field:sale.config.settings,group_fund_raising:0 msgid "Manage Fund Raising" -msgstr "" +msgstr "Administrar recaudación de fondos" #. module: crm #: view:crm.lead.report:0 #: field:crm.phonecall.report,delay_close:0 msgid "Delay to close" -msgstr "" +msgstr "Demora para cerrar" #. module: crm #: view:crm.case.stage:0 #: field:crm.case.stage,name:0 msgid "Stage Name" -msgstr "" +msgstr "Nombre de etapa" #. module: crm #: view:crm.lead:0 @@ -95,52 +103,52 @@ msgstr "" #: view:crm.lead.report:0 #: view:crm.phonecall.report:0 msgid "Salesperson" -msgstr "" +msgstr "Comercial" #. module: crm #: model:ir.model,name:crm.model_crm_lead_report msgid "CRM Lead Analysis" -msgstr "" +msgstr "Análisis Iniciativas CRM" #. module: crm #: view:crm.lead.report:0 #: view:crm.phonecall.report:0 #: field:crm.phonecall.report,day:0 msgid "Day" -msgstr "" +msgstr "Día" #. module: crm #: view:crm.lead:0 msgid "Company Name" -msgstr "" +msgstr "Nombre de la compañía" #. module: crm #: model:crm.case.categ,name:crm.categ_oppor6 msgid "Training" -msgstr "" +msgstr "Formación" #. module: crm #: model:ir.actions.act_window,name:crm.crm_lead_categ_action #: model:ir.ui.menu,name:crm.menu_crm_lead_categ msgid "Sales Tags" -msgstr "" +msgstr "Etiquetas de ventas" #. module: crm #: view:crm.lead.report:0 msgid "Exp. Closing" -msgstr "" +msgstr "Cierre Esperado" #. module: crm #: help:crm.case.section,message_unread:0 #: help:crm.lead,message_unread:0 #: help:crm.phonecall,message_unread:0 msgid "If checked new messages require your attention." -msgstr "" +msgstr "Si está marcado, los nuevos mensajes requerirán su atención" #. module: crm #: help:crm.lead.report,creation_day:0 msgid "Creation day" -msgstr "" +msgstr "Fecha creación" #. module: crm #: field:crm.segmentation.line,name:0 @@ -151,7 +159,7 @@ msgstr "Nombre de regla" #: code:addons/crm/crm_phonecall.py:280 #, python-format msgid "It's only possible to convert one phonecall at a time." -msgstr "" +msgstr "Sólo es posible convertir una llamada telefónica cada vez." #. module: crm #: view:crm.case.resource.type:0 @@ -161,17 +169,17 @@ msgstr "" #: field:crm.lead.report,type_id:0 #: model:ir.model,name:crm.model_crm_case_resource_type msgid "Campaign" -msgstr "" +msgstr "Campaña" #. module: crm #: view:crm.lead:0 msgid "Search Opportunities" -msgstr "" +msgstr "Busqueda de oportunidades" #. module: crm #: help:crm.lead.report,deadline_month:0 msgid "Expected closing month" -msgstr "" +msgstr "Mes esperado de cierre" #. module: crm #: help:crm.case.section,message_summary:0 @@ -181,14 +189,17 @@ msgid "" "Holds the Chatter summary (number of messages, ...). This summary is " "directly in html format in order to be inserted in kanban views." msgstr "" +"Contiene el resumen del chatter (nº de mensajes, ...). Este resumen está " +"generado directamente en formato HTML para poder ser insertado en las vistas " +"kanban." #. 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!" -msgstr "" +msgstr "Alerta!" #. module: crm #: view:crm.lead:0 @@ -203,46 +214,46 @@ msgstr "" #: model:ir.model,name:crm.model_res_partner #: model:process.node,name:crm.process_node_partner0 msgid "Partner" -msgstr "Partner" +msgstr "Empresa" #. module: crm #: view:crm.phonecall:0 #: model:ir.actions.act_window,name:crm.phonecall_to_phonecall_act msgid "Schedule Other Call" -msgstr "" +msgstr "Planificar otra llamada" #. module: crm #: code:addons/crm/crm_phonecall.py:209 #: view:crm.phonecall:0 #, python-format msgid "Phone Call" -msgstr "" +msgstr "Llamada de teléfono" #. module: crm #: field:crm.lead,opt_out:0 msgid "Opt-Out" -msgstr "" +msgstr "No acepta recibir mensajes" #. module: crm #: view:crm.lead:0 #: field:crm.lead,state_id:0 msgid "State" -msgstr "" +msgstr "Estado" #. module: crm #: field:res.partner,meeting_count:0 msgid "# Meetings" -msgstr "" +msgstr "Nº reuniones" #. module: crm #: model:ir.actions.server,name:crm.action_email_reminder_lead msgid "Reminder to User" -msgstr "" +msgstr "Recordatorio al usuario" #. module: crm #: field:crm.segmentation,segmentation_line:0 msgid "Criteria" -msgstr "Criterios" +msgstr "Criterio" #. module: crm #: view:crm.segmentation:0 @@ -252,26 +263,28 @@ msgstr "Respuestas excluidas:" #. module: crm #: model:ir.model,name:crm.model_crm_merge_opportunity msgid "Merge opportunities" -msgstr "" +msgstr "Fusionar oportunidades" #. module: crm #: view:crm.lead.report:0 #: model:ir.actions.act_window,name:crm.action_report_crm_lead #: model:ir.ui.menu,name:crm.menu_report_crm_leads_tree msgid "Leads Analysis" -msgstr "" +msgstr "Análisis de iniciativas" #. module: crm #: code:addons/crm/crm_lead.py:1010 #, python-format msgid "%s a call for the %s." msgstr "" +"Copy text \t\r\n" +"%s una llamada para el %s." #. module: crm #: model:ir.actions.act_window,name:crm.crm_case_resource_type_act #: model:ir.ui.menu,name:crm.menu_crm_case_resource_type_act msgid "Campaigns" -msgstr "" +msgstr "Campañas" #. module: crm #: view:crm.lead:0 @@ -286,6 +299,9 @@ msgid "" "If opt-out is checked, this contact has refused to receive emails or " "unsubscribed to a campaign." msgstr "" +"Si se marca la casilla 'No acepta recibir mensajes', este contacto ha " +"rehusado recibir correos electrónicos o ha eliminado su suscripción a una " +"campaña." #. module: crm #: model:process.transition,name:crm.process_transition_leadpartner0 @@ -293,15 +309,15 @@ msgid "Prospect Partner" msgstr "" #. module: crm -#: code:addons/crm/crm_lead.py:982 +#: code:addons/crm/crm_lead.py:1002 #, python-format msgid "No Subject" -msgstr "" +msgstr "Sin título" #. module: crm #: field:crm.lead,contact_name:0 msgid "Contact Name" -msgstr "" +msgstr "Nombre del contacto" #. module: crm #: help:crm.segmentation,categ_id:0 @@ -309,7 +325,7 @@ msgid "" "The partner category that will be added to partners that match the " "segmentation criterions after computation." msgstr "" -"La categoría del partner que será añadida a las empresas que cumplan los " +"La categoría del partner será añadida a las empresas que cumplan los " "criterios de segmentación después del cálculo." #. module: crm @@ -325,40 +341,50 @@ msgid "" "

\n" " " msgstr "" +"

\n" +"Pulse para definir una nueva segmentación de clientes.\n" +"

\n" +"Cree categorías específicas que puede asignar a sus contactos para " +"administrar mejor sus interacciones con ellos. La herramienta de " +"segmentación es capaz de asignar categorías a los contactos de acuerdo a los " +"criterios que establezca.\n" +"

\n" +" " #. module: crm #: field:crm.opportunity2phonecall,contact_name:0 #: field:crm.phonecall,partner_id:0 #: field:crm.phonecall2phonecall,contact_name:0 msgid "Contact" -msgstr "" +msgstr "Contacto" #. module: crm #: help:crm.case.section,change_responsible:0 msgid "" "When escalating to this team override the salesman with the team leader." msgstr "" +"Al escalar a este equipo sobreescribir al comercial con el jefe de equipo." #. module: crm #: model:process.transition,name:crm.process_transition_opportunitymeeting0 msgid "Opportunity Meeting" -msgstr "" +msgstr "Reunión de oportunidad" #. module: crm #: help:crm.lead.report,delay_close:0 #: help:crm.phonecall.report,delay_close:0 msgid "Number of Days to close the case" -msgstr "" +msgstr "Número de días para cerrar el caso" #. module: crm #: model:process.node,note:crm.process_node_opportunities0 msgid "When a real project/opportunity is detected" -msgstr "" +msgstr "Cuando un proyecto/oportunidad es detectado" #. module: crm #: field:res.partner,opportunity_ids:0 msgid "Leads and Opportunities" -msgstr "" +msgstr "Iniciativas y oportunidades" #. module: crm #: model:ir.actions.act_window,help:crm.relate_partner_opportunities @@ -377,12 +403,23 @@ msgid "" "

\n" " " msgstr "" +"

\n" +"Pulse para crear una oportunidad relacionada con este cliente.\n" +"

\n" +"Use las oportunidades para seguir la pista al flujo de sus ventas, seguir " +"una venta potencial y prever mejor sus futuros ingresos.\n" +"

\n" +"Podrá planificar reuniones y llamadas telefónicas desde las oportunidades, " +"convertirlas en ofertas, adjuntar documentos relacionados, rastrear todas " +"las discusiones, y mucho más.\n" +"

\n" +" " #. module: crm #: model:crm.case.stage,name:crm.stage_lead7 #: view:crm.lead:0 msgid "Dead" -msgstr "" +msgstr "Muerta" #. module: crm #: field:crm.case.section,message_unread:0 @@ -390,7 +427,7 @@ msgstr "" #: field:crm.lead,message_unread:0 #: field:crm.phonecall,message_unread:0 msgid "Unread Messages" -msgstr "" +msgstr "Mensajes no leídos" #. module: crm #: view:crm.segmentation:0 @@ -404,17 +441,17 @@ msgstr "Segmentación" #: selection:crm.lead2opportunity.partner.mass,action:0 #: selection:crm.partner.binding,action:0 msgid "Link to an existing customer" -msgstr "" +msgstr "Enlace a cliente existente" #. module: crm #: field:crm.lead,write_date:0 msgid "Update Date" -msgstr "" +msgstr "Actualizar fecha" #. module: crm #: field:crm.case.section,user_id:0 msgid "Team Leader" -msgstr "" +msgstr "Jefe de equipo" #. module: crm #: help:crm.case.stage,probability:0 @@ -422,6 +459,8 @@ msgid "" "This percentage depicts the default/average probability of the Case for this " "stage to be a success" msgstr "" +"Este porcentaje representa la probabilidad por defecto / media para que los " +"casos de esta etapa tengan éxito." #. module: crm #: view:crm.lead:0 @@ -436,24 +475,27 @@ msgstr "Categoría" #. module: crm #: view:crm.lead.report:0 msgid "#Opportunities" -msgstr "" +msgstr "# Oportunidades" #. 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." msgstr "" +"Seleccione más de un elemento (iniciativa u oportunidad) desde la vista " +"lista." #. module: crm #: view:crm.lead:0 msgid "Leads that are assigned to one of the sale teams I manage, or to me" msgstr "" +"Iniciativas asignadas a uno de los equipos que gestiono, o a mí mismo" #. module: crm #: field:crm.lead,partner_address_email:0 msgid "Partner Contact Email" -msgstr "" +msgstr "Dirección de correo del contacto de la empresa" #. module: crm #: model:ir.actions.act_window,help:crm.crm_case_section_act @@ -467,11 +509,19 @@ msgid "" "

\n" " " msgstr "" +"

\n" +"Pulse para definir un nuevo equipo de ventas.\n" +"

\n" +"Use los equipos de venta para organizar a los diferentes comerciales o " +"departamentos en equipos separados. Cada equipo trabajará en su propia lista " +"de oportunidades.\n" +"

\n" +" " #. module: crm #: model:process.transition,note:crm.process_transition_opportunitymeeting0 msgid "Normal or phone meeting for opportunity" -msgstr "" +msgstr "Reunión o conferencia telefónica para oportunidad" #. module: crm #: field:crm.lead,state:0 @@ -480,12 +530,12 @@ msgstr "" #: view:crm.phonecall.report:0 #: field:crm.phonecall.report,state:0 msgid "Status" -msgstr "" +msgstr "Estado" #. module: crm #: view:crm.lead2opportunity.partner:0 msgid "Create Opportunity" -msgstr "" +msgstr "Crear oportunidad" #. module: crm #: view:sale.config.settings:0 @@ -706,7 +756,7 @@ msgid "Statistics Dashboard" msgstr "" #. 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 @@ -766,7 +816,7 @@ msgid "Exclusive" msgstr "Exclusivo" #. module: crm -#: code:addons/crm/crm_lead.py:584 +#: code:addons/crm/crm_lead.py:600 #, python-format msgid "From %s : %s" msgstr "" @@ -934,7 +984,7 @@ msgid "Next Action" msgstr "Próxima acción" #. module: crm -#: code:addons/crm/crm_lead.py:763 +#: code:addons/crm/crm_lead.py:780 #, python-format msgid "Partner set to %s." msgstr "" @@ -1024,7 +1074,7 @@ msgid "Creation Date" msgstr "Fecha de creación" #. 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 "" @@ -1213,7 +1263,9 @@ msgid "Days to Close" msgstr "" #. module: crm +#: code:addons/crm/crm_lead.py:1057 #: field:crm.case.section,complete_name:0 +#, python-format msgid "unknown" msgstr "" @@ -1296,7 +1348,7 @@ msgid "Lead Description" msgstr "" #. module: crm -#: code:addons/crm/crm_lead.py:565 +#: code:addons/crm/crm_lead.py:581 #, python-format msgid "Merged opportunities" msgstr "" @@ -1856,7 +1908,7 @@ msgid "Leads" msgstr "" #. module: crm -#: code:addons/crm/crm_lead.py:563 +#: code:addons/crm/crm_lead.py:579 #, python-format msgid "Merged leads" msgstr "" @@ -1950,7 +2002,6 @@ msgid "Global CC" msgstr "" #. 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 @@ -2878,7 +2929,7 @@ msgid "Working Hours" msgstr "" #. 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/i18n/hu.po b/addons/crm/i18n/hu.po index 0289fac77cf..791273361eb 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-07-09 07:36+0000\n" +"PO-Revision-Date: 2013-07-25 13:52+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-07-10 05:25+0000\n" -"X-Generator: Launchpad (build 16696)\n" +"X-Launchpad-Export-Date: 2013-07-26 05:14+0000\n" +"X-Generator: Launchpad (build 16700)\n" #. module: crm #: model:crm.case.stage,name:crm.stage_lead3 @@ -241,7 +241,7 @@ msgstr "Kilép" #: view:crm.lead:0 #: field:crm.lead,state_id:0 msgid "State" -msgstr "Állapot" +msgstr "Állam/Megye" #. module: crm #: field:res.partner,meeting_count:0 diff --git a/addons/crm/i18n/th.po b/addons/crm/i18n/th.po index 082ed1efa6d..99c347c9ed3 100644 --- a/addons/crm/i18n/th.po +++ b/addons/crm/i18n/th.po @@ -8,29 +8,29 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-12-21 17:04+0000\n" -"PO-Revision-Date: 2011-01-16 16:48+0000\n" -"Last-Translator: Rungsan Suyala \n" +"PO-Revision-Date: 2013-07-24 09:15+0000\n" +"Last-Translator: Supakorn S \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-03-16 05:09+0000\n" -"X-Generator: Launchpad (build 16532)\n" +"X-Launchpad-Export-Date: 2013-07-25 05:13+0000\n" +"X-Generator: Launchpad (build 16700)\n" #. module: crm #: view:crm.lead.report:0 msgid "# Leads" -msgstr "" +msgstr "เป้าหมาย" #. module: crm #: help:sale.config.settings,fetchmail_lead:0 msgid "" "Allows you to configure your incoming mail server, and create leads from " "incoming emails." -msgstr "" +msgstr "อนุญาตให้ปรับแต่งเมลเซิฟเวอร์ขาเข้า และสร้างเป้าหมายจากเมลที่เข้ามา" #. 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 @@ -38,7 +38,7 @@ msgstr "" #: selection:crm.lead.report,type:0 #, python-format msgid "Lead" -msgstr "" +msgstr "ผู้นำ" #. module: crm #: view:crm.lead:0 @@ -55,22 +55,27 @@ msgid "" "Description: [[object.description]]\n" " " msgstr "" +"คำเตือน มีเป้าหมายที่ไม่ได้ประมวลผลที่เก่ากว่า 5 วัน\n" +"ชื่อ:\n" +"ID:\n" +"รายละเอียด:\n" +" " #. module: crm #: field:crm.opportunity2phonecall,action:0 #: field:crm.phonecall2phonecall,action:0 msgid "Action" -msgstr "" +msgstr "การกระทำ" #. module: crm #: model:ir.actions.server,name:crm.action_set_team_sales_department msgid "Set team to Sales Department" -msgstr "" +msgstr "ตั้งทีมในแผนกขาย" #. module: crm #: view:crm.lead2opportunity.partner.mass:0 msgid "Select Opportunities" -msgstr "" +msgstr "เลือกโอกาส" #. module: crm #: model:res.groups,name:crm.group_fund_raising @@ -96,12 +101,12 @@ msgstr "ชื่อขั้นตอน" #: view:crm.lead.report:0 #: view:crm.phonecall.report:0 msgid "Salesperson" -msgstr "" +msgstr "พนักงานขาย" #. module: crm #: model:ir.model,name:crm.model_crm_lead_report msgid "CRM Lead Analysis" -msgstr "" +msgstr "วิเคราะห์เป้าหมาย" #. module: crm #: view:crm.lead.report:0 @@ -113,12 +118,12 @@ msgstr "วัน" #. module: crm #: view:crm.lead:0 msgid "Company Name" -msgstr "" +msgstr "ชื่อบริษัท" #. module: crm #: model:crm.case.categ,name:crm.categ_oppor6 msgid "Training" -msgstr "" +msgstr "หลักสูตรอบรม" #. module: crm #: model:ir.actions.act_window,name:crm.crm_lead_categ_action @@ -136,7 +141,7 @@ msgstr "" #: help:crm.lead,message_unread:0 #: help:crm.phonecall,message_unread:0 msgid "If checked new messages require your attention." -msgstr "" +msgstr "ถ้าการตรวจสอบข้อความใหม่ให้ระบุความสนใจของคุณ" #. module: crm #: help:crm.lead.report,creation_day:0 @@ -167,7 +172,7 @@ msgstr "แคมเปญ" #. module: crm #: view:crm.lead:0 msgid "Search Opportunities" -msgstr "" +msgstr "ค้นหาโอกาส" #. module: crm #: help:crm.lead.report,deadline_month:0 @@ -184,8 +189,8 @@ msgid "" msgstr "" #. 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!" @@ -228,12 +233,12 @@ msgstr "" #: view:crm.lead:0 #: field:crm.lead,state_id:0 msgid "State" -msgstr "" +msgstr "สถานะ" #. module: crm #: field:res.partner,meeting_count:0 msgid "# Meetings" -msgstr "" +msgstr "ประชุม" #. module: crm #: model:ir.actions.server,name:crm.action_email_reminder_lead @@ -253,14 +258,14 @@ msgstr "คำตอบไม่รวม :" #. module: crm #: model:ir.model,name:crm.model_crm_merge_opportunity msgid "Merge opportunities" -msgstr "" +msgstr "รวมโอกาส" #. module: crm #: view:crm.lead.report:0 #: model:ir.actions.act_window,name:crm.action_report_crm_lead #: model:ir.ui.menu,name:crm.menu_report_crm_leads_tree msgid "Leads Analysis" -msgstr "การวิเคราะห์ Lead" +msgstr "การวิเคราะห์เป้าหมาย" #. module: crm #: code:addons/crm/crm_lead.py:1010 @@ -294,10 +299,10 @@ msgid "Prospect Partner" msgstr "" #. module: crm -#: code:addons/crm/crm_lead.py:982 +#: code:addons/crm/crm_lead.py:1002 #, python-format msgid "No Subject" -msgstr "" +msgstr "ไม่มีชื่อเรื่อง" #. module: crm #: field:crm.lead,contact_name:0 @@ -330,7 +335,7 @@ msgstr "" #: field:crm.phonecall,partner_id:0 #: field:crm.phonecall2phonecall,contact_name:0 msgid "Contact" -msgstr "ชื่อผู้ติดต่อ" +msgstr "รายชื่อ" #. module: crm #: help:crm.case.section,change_responsible:0 @@ -357,7 +362,7 @@ msgstr "" #. module: crm #: field:res.partner,opportunity_ids:0 msgid "Leads and Opportunities" -msgstr "" +msgstr "เป้าหมายและโอกาส" #. module: crm #: model:ir.actions.act_window,help:crm.relate_partner_opportunities @@ -381,7 +386,7 @@ msgstr "" #: model:crm.case.stage,name:crm.stage_lead7 #: view:crm.lead:0 msgid "Dead" -msgstr "" +msgstr "ไม่สำเร็จ" #. module: crm #: field:crm.case.section,message_unread:0 @@ -389,7 +394,7 @@ msgstr "" #: field:crm.lead,message_unread:0 #: field:crm.phonecall,message_unread:0 msgid "Unread Messages" -msgstr "" +msgstr "ข้อความที่ยังไม่ได้อ่าน" #. module: crm #: view:crm.segmentation:0 @@ -403,7 +408,7 @@ msgstr "" #: selection:crm.lead2opportunity.partner.mass,action:0 #: selection:crm.partner.binding,action:0 msgid "Link to an existing customer" -msgstr "" +msgstr "เชื่อมโยงกับลูกค้าที่มีอยู่" #. module: crm #: field:crm.lead,write_date:0 @@ -413,7 +418,7 @@ msgstr "วันที่ปรับปรุง" #. module: crm #: field:crm.case.section,user_id:0 msgid "Team Leader" -msgstr "" +msgstr "หัวหน้าทีม" #. module: crm #: help:crm.case.stage,probability:0 @@ -435,10 +440,10 @@ msgstr "ประเภท" #. module: crm #: view:crm.lead.report:0 msgid "#Opportunities" -msgstr "" +msgstr "โอกาส" #. 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." @@ -479,12 +484,12 @@ msgstr "" #: view:crm.phonecall.report:0 #: field:crm.phonecall.report,state:0 msgid "Status" -msgstr "" +msgstr "สถานะ" #. module: crm #: view:crm.lead2opportunity.partner:0 msgid "Create Opportunity" -msgstr "" +msgstr "สร้างโอกาส" #. module: crm #: view:sale.config.settings:0 @@ -504,7 +509,7 @@ msgstr "" #. module: crm #: model:mail.message.subtype,description:crm.mt_lead_stage msgid "Stage changed" -msgstr "" +msgstr "เปลี่ยนแปลงสถานะ" #. module: crm #: selection:crm.lead.report,creation_month:0 @@ -521,12 +526,12 @@ msgstr "ไม่ได้ทำงานอยู่" #. module: crm #: field:crm.lead.report,planned_revenue:0 msgid "Planned Revenue" -msgstr "" +msgstr "รายได้ตามแผน" #. module: crm #: field:crm.lead,planned_revenue:0 msgid "Expected Revenue" -msgstr "" +msgstr "เป้าหมายรายได้" #. module: crm #: selection:crm.lead.report,creation_month:0 @@ -560,7 +565,7 @@ msgstr "สรุป" #. module: crm #: view:crm.merge.opportunity:0 msgid "Merge" -msgstr "" +msgstr "รวม" #. module: crm #: model:email.template,subject:crm.email_template_opportunity_mail @@ -592,7 +597,7 @@ msgstr "" #. module: crm #: view:crm.phonecall.report:0 msgid "#Phone calls" -msgstr "" +msgstr "การโทร" #. module: crm #: sql_constraint:crm.case.section:0 @@ -609,7 +614,7 @@ msgstr "" #: view:crm.lead:0 #: selection:crm.lead,state:0 msgid "In Progress" -msgstr "" +msgstr "กำลังดำเนินการ" #. module: crm #: model:ir.actions.act_window,help:crm.crm_phonecall_categ_action @@ -640,7 +645,7 @@ msgstr "" #: field:crm.case.section,resource_calendar_id:0 #: model:ir.ui.menu,name:crm.menu_action_resource_calendar_form msgid "Working Time" -msgstr "" +msgstr "เวลาทำงาน" #. module: crm #: view:crm.segmentation.line:0 @@ -651,7 +656,7 @@ msgstr "" #: model:ir.actions.act_window,name:crm.action_report_crm_phonecall #: model:ir.ui.menu,name:crm.menu_report_crm_phonecalls_tree msgid "Phone Calls Analysis" -msgstr "" +msgstr "วิเคราะห์การใช้โทรศัพท์" #. module: crm #: view:crm.lead:0 @@ -667,17 +672,17 @@ msgstr "" #. module: crm #: field:crm.lead,company_currency:0 msgid "Currency" -msgstr "" +msgstr "สกุลเงิน" #. module: crm #: field:crm.lead.report,probable_revenue:0 msgid "Probable Revenue" -msgstr "" +msgstr "รายได้ที่น่าจะเป็น" #. module: crm #: help:crm.lead.report,creation_month:0 msgid "Creation month" -msgstr "" +msgstr "เดือนที่สร้าง" #. module: crm #: help:crm.segmentation,name:0 @@ -687,7 +692,7 @@ msgstr "" #. module: crm #: field:crm.case.stage,probability:0 msgid "Probability (%)" -msgstr "" +msgstr "คาดว่า" #. module: crm #: sql_constraint:crm.lead:0 @@ -697,15 +702,15 @@ msgstr "" #. module: crm #: view:crm.lead:0 msgid "Leads Generation" -msgstr "" +msgstr "การสร้างเป้าหมาย" #. module: crm #: view:board.board:0 msgid "Statistics Dashboard" -msgstr "" +msgstr "แดชบอร์ดสถิติ" #. 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 @@ -716,37 +721,37 @@ msgstr "" #: field:res.partner,opportunity_count:0 #, python-format msgid "Opportunity" -msgstr "" +msgstr "โอกาส" #. module: crm #: model:crm.case.resource.type,name:crm.type_lead7 msgid "Television" -msgstr "" +msgstr "โทรทัศน์" #. module: crm #: model:ir.actions.act_window,name:crm.action_crm_send_mass_convert msgid "Convert to opportunities" -msgstr "" +msgstr "แปลงเป็นโอกาส" #. module: crm #: model:ir.model,name:crm.model_sale_config_settings msgid "sale.config.settings" -msgstr "" +msgstr "ตั้งค่าระบบงานขาย" #. module: crm #: view:crm.segmentation:0 msgid "Stop Process" -msgstr "" +msgstr "หยุดการทำงาน" #. module: crm #: field:crm.case.section,alias_id:0 msgid "Alias" -msgstr "" +msgstr "ชื่อแทน" #. module: crm #: view:crm.phonecall:0 msgid "Search Phonecalls" -msgstr "" +msgstr "ค้นหาการโทรศัพท์" #. module: crm #: view:crm.lead.report:0 @@ -757,15 +762,15 @@ msgstr "" #. module: crm #: field:calendar.attendee,categ_id:0 msgid "Event Type" -msgstr "" +msgstr "ชนิดเหตุการณ์" #. module: crm #: field:crm.segmentation,exclusif:0 msgid "Exclusive" -msgstr "" +msgstr "พิเศษ" #. module: crm -#: code:addons/crm/crm_lead.py:584 +#: code:addons/crm/crm_lead.py:600 #, python-format msgid "From %s : %s" msgstr "" @@ -773,7 +778,7 @@ msgstr "" #. module: crm #: view:crm.lead2opportunity.partner.mass:0 msgid "Convert to Opportunities" -msgstr "" +msgstr "แปลงเป็นโอกาส" #. module: crm #: view:crm.lead2opportunity.partner:0 @@ -782,18 +787,18 @@ msgstr "" #: view:crm.opportunity2phonecall:0 #: view:crm.phonecall2phonecall:0 msgid "or" -msgstr "" +msgstr "หรือ" #. module: crm #: field:crm.lead.report,create_date:0 #: field:crm.phonecall.report,create_date:0 msgid "Create Date" -msgstr "" +msgstr "วันที่สร้าง" #. module: crm #: field:crm.lead,ref2:0 msgid "Reference 2" -msgstr "" +msgstr "อ้างอิงที่ 2" #. module: crm #: help:crm.case.stage,section_ids:0 @@ -801,22 +806,24 @@ msgid "" "Link between stages and sales teams. When set, this limitate the current " "stage to the selected sales teams." msgstr "" +"เชื่อมโยงระหว่างสถานะและทีมขาย " +"เมื่อตั้งแล้วจะจำกัดสถานะปัจจุบันสำหรับทีมขายที่เลือก" #. module: crm #: view:crm.case.stage:0 #: field:crm.case.stage,requirements:0 msgid "Requirements" -msgstr "" +msgstr "ความต้องการ" #. module: crm #: field:crm.lead,zip:0 msgid "Zip" -msgstr "" +msgstr "รหัสไปรษณีย์" #. module: crm #: view:crm.phonecall:0 msgid "Unassigned Phonecalls" -msgstr "" +msgstr "การโทรศัพท์ที่ไม่ได้กำหนดใด ๆ" #. module: crm #: view:crm.lead:0 @@ -829,17 +836,17 @@ msgstr "" #: model:process.node,name:crm.process_node_opportunities0 #: view:res.partner:0 msgid "Opportunities" -msgstr "" +msgstr "โอกาส" #. module: crm #: field:crm.segmentation,categ_id:0 msgid "Partner Category" -msgstr "" +msgstr "ประเภทบริษัทคู่ค้า" #. module: crm #: field:crm.lead,probability:0 msgid "Success Rate (%)" -msgstr "" +msgstr "อัตราการสำเสร็จ" #. module: crm #: field:crm.segmentation,sales_purchase_active:0 @@ -849,12 +856,12 @@ msgstr "" #. module: crm #: model:crm.case.categ,name:crm.categ_phone2 msgid "Outbound" -msgstr "" +msgstr "ขาออก" #. module: crm #: view:crm.lead:0 msgid "Mark Won" -msgstr "" +msgstr "เราทำได้สำเร็จ" #. module: crm #: model:ir.filters,name:crm.filter_usa_lead @@ -864,24 +871,24 @@ msgstr "" #. module: crm #: view:crm.lead:0 msgid "Mark Lost" -msgstr "" +msgstr "เราไม่สามารถทำได้" #. module: crm #: model:ir.filters,name:crm.filter_draft_lead msgid "Draft Leads" -msgstr "" +msgstr "โอกาสที่ยังเป็นฉบับร่าง" #. module: crm #: selection:crm.lead.report,creation_month:0 #: selection:crm.lead.report,deadline_month:0 #: selection:crm.phonecall.report,month:0 msgid "March" -msgstr "" +msgstr "มีนาคม" #. module: crm #: view:crm.lead:0 msgid "Send Email" -msgstr "" +msgstr "ส่งอีเมล" #. module: crm #: code:addons/crm/wizard/crm_lead_to_opportunity.py:89 @@ -892,18 +899,18 @@ msgstr "คำเตือน !" #. module: crm #: field:crm.lead,day_open:0 msgid "Days to Open" -msgstr "" +msgstr "วันที่จะเปิด" #. module: crm #: field:crm.lead,mobile:0 #: field:crm.phonecall,partner_mobile:0 msgid "Mobile" -msgstr "" +msgstr "มือถือ" #. module: crm #: field:crm.lead,ref:0 msgid "Reference" -msgstr "" +msgstr "อ้างอิง" #. module: crm #: view:crm.lead:0 @@ -923,17 +930,17 @@ msgstr "" #: view:res.partner:0 #: field:res.partner,meeting_ids:0 msgid "Meetings" -msgstr "" +msgstr "การประชุม" #. module: crm #: field:crm.lead,date_action_next:0 #: field:crm.lead,title_action:0 #: field:crm.phonecall,date_action_next:0 msgid "Next Action" -msgstr "" +msgstr "การกระทำต่อไป" #. module: crm -#: code:addons/crm/crm_lead.py:763 +#: code:addons/crm/crm_lead.py:780 #, python-format msgid "Partner set to %s." msgstr "" @@ -943,22 +950,22 @@ msgstr "" #: selection:crm.phonecall,state:0 #: selection:crm.phonecall.report,state:0 msgid "Draft" -msgstr "" +msgstr "ฉบับร่าง" #. module: crm #: view:crm.segmentation:0 msgid "Partner Segmentations" -msgstr "" +msgstr "การจำแนกคู่ค้า" #. module: crm #: view:crm.lead.report:0 msgid "Show only opportunity" -msgstr "" +msgstr "แสดงโอกาสเท่านั้น" #. module: crm #: field:crm.lead,name:0 msgid "Subject" -msgstr "" +msgstr "ชื่อเรื่อง" #. module: crm #: view:crm.lead:0 @@ -968,7 +975,7 @@ msgstr "" #. module: crm #: view:crm.lead:0 msgid "Show Sales Team" -msgstr "" +msgstr "แสดงทีมขาย" #. module: crm #: help:sale.config.settings,module_crm_claim:0 @@ -981,7 +988,7 @@ msgstr "" #: model:crm.case.stage,name:crm.stage_lead6 #: view:crm.lead:0 msgid "Won" -msgstr "" +msgstr "ชนะ" #. module: crm #: field:crm.lead.report,delay_expected:0 @@ -991,7 +998,7 @@ msgstr "" #. module: crm #: model:crm.case.section,name:crm.section_sales_department msgid "Sales Department" -msgstr "" +msgstr "ฝ่ายขาย" #. module: crm #: field:crm.case.stage,type:0 @@ -999,7 +1006,7 @@ msgstr "" #: field:crm.lead.report,type:0 #: view:crm.opportunity2phonecall:0 msgid "Type" -msgstr "" +msgstr "ประเภท" #. module: crm #: view:crm.segmentation:0 @@ -1012,7 +1019,7 @@ msgstr "" #: selection:crm.phonecall,priority:0 #: selection:crm.phonecall.report,priority:0 msgid "Lowest" -msgstr "" +msgstr "ต่ำสุด" #. module: crm #: field:crm.lead,create_date:0 @@ -1020,18 +1027,18 @@ msgstr "" #: field:crm.phonecall,create_date:0 #: field:crm.phonecall.report,creation_date:0 msgid "Creation Date" -msgstr "" +msgstr "วันที่สร้าง" #. 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 "" +msgstr "แปลงเป้าหมายเป็นโอกาสแล้ว" #. module: crm #: selection:crm.segmentation.line,expr_name:0 msgid "Purchase Amount" -msgstr "" +msgstr "จำนวนที่สั่งซื้อ" #. module: crm #: view:crm.phonecall.report:0 @@ -1045,22 +1052,22 @@ msgstr "" #: view:crm.lead.report:0 #: field:crm.lead.report,stage_id:0 msgid "Stage" -msgstr "" +msgstr "สถานะ" #. module: crm #: view:crm.phonecall.report:0 msgid "Phone Calls that are assigned to me" -msgstr "" +msgstr "การโทรที่ได้รับมอบหมาย" #. module: crm #: field:crm.lead,user_login:0 msgid "User Login" -msgstr "" +msgstr "ผู้ใช้เข้าสู่ระบบ" #. module: crm #: view:crm.phonecall.report:0 msgid "Phone calls which are in pending state" -msgstr "" +msgstr "การโทรที่ค้างอยู่" #. module: crm #: view:crm.case.section:0 @@ -1070,7 +1077,7 @@ msgstr "" #: model:ir.actions.act_window,name:crm.crm_lead_stage_act #: model:ir.ui.menu,name:crm.menu_crm_lead_stage_act msgid "Stages" -msgstr "" +msgstr "ขั้นตอน" #. module: crm #: help:sale.config.settings,module_crm_helpdesk:0 @@ -1082,12 +1089,12 @@ msgstr "" #. module: crm #: view:crm.lead:0 msgid "Delete" -msgstr "" +msgstr "ลบ" #. module: crm #: model:mail.message.subtype,description:crm.mt_lead_create msgid "Opportunity created" -msgstr "" +msgstr "โอกาสได้ถูกสร้างแล้ว" #. module: crm #: view:crm.lead:0 @@ -1099,7 +1106,7 @@ msgstr "" #: selection:crm.lead.report,deadline_month:0 #: selection:crm.phonecall.report,month:0 msgid "September" -msgstr "" +msgstr "กันยายน" #. module: crm #: model:ir.actions.act_window,help:crm.crm_case_category_act_oppor11 @@ -1127,7 +1134,7 @@ msgstr "" msgid "" "Setting this stage will change the probability automatically on the " "opportunity." -msgstr "" +msgstr "การตั้งค่าในขั้นตอนนี้จะเปลี่ยนความน่าจะเป็นโดยอัตโนมัติเมื่อมีโอกาส" #. module: crm #: view:crm.lead:0 @@ -1137,28 +1144,28 @@ msgstr "" #. module: crm #: model:ir.ui.menu,name:crm.menu_crm_payment_mode_act msgid "Payment Modes" -msgstr "" +msgstr "รูปแบบการชำระเงิน" #. module: crm #: field:crm.lead.report,opening_date:0 #: field:crm.phonecall.report,opening_date:0 msgid "Opening Date" -msgstr "" +msgstr "วันที่เปิด" #. module: crm #: help:crm.phonecall,duration:0 msgid "Duration in Minutes" -msgstr "" +msgstr "ระยะเวลา (นาที)" #. module: crm #: field:crm.case.channel,name:0 msgid "Channel Name" -msgstr "" +msgstr "ช่องทาง" #. module: crm #: help:crm.lead.report,deadline_day:0 msgid "Expected closing day" -msgstr "" +msgstr "วันที่คาดว่าจะปิด" #. module: crm #: help:crm.case.section,active:0 @@ -1166,6 +1173,8 @@ msgid "" "If the active field is set to true, it will allow you to hide the sales team " "without removing it." msgstr "" +"ถ้าเขตข้อมูลที่ใช้งานอยู่จะถูกกำหนดเป็นจริง " +"จะทำให้คุณสามารถซ่อนทีมขายโดยไม่ลบออก" #. module: crm #: help:crm.case.stage,case_default:0 @@ -1173,6 +1182,8 @@ msgid "" "If you check this field, this stage will be proposed by default on each " "sales team. It will not assign this stage to existing teams." msgstr "" +"หากเลือกตัวเลือกนี้ ในขั้นตอนนี้จะได้รับการเสนอโดยเริ่มต้นในแต่ละทีมขาย " +"มันจะไม่ได้กำหนดในขั้นตอนนี้ไปยังทีมงานที่มีอยู่" #. module: crm #: help:crm.case.stage,type:0 @@ -1185,7 +1196,7 @@ msgstr "" #: model:mail.message.subtype,name:crm.mt_lead_create #: model:mail.message.subtype,name:crm.mt_salesteam_lead msgid "Lead Created" -msgstr "" +msgstr "เป้าหมายถูกสร้างแล้ว" #. module: crm #: help:crm.segmentation,sales_purchase_active:0 @@ -1197,29 +1208,31 @@ msgstr "" #. module: crm #: field:crm.segmentation,state:0 msgid "Execution Status" -msgstr "" +msgstr "สถานะการทำงาน" #. module: crm #: view:crm.opportunity2phonecall:0 msgid "Log call" -msgstr "" +msgstr "บันทึกการโทร" #. module: crm #: field:crm.lead,day_close:0 msgid "Days to Close" -msgstr "" +msgstr "วันที่จะปิด" #. module: crm +#: code:addons/crm/crm_lead.py:1057 #: field:crm.case.section,complete_name:0 +#, python-format msgid "unknown" -msgstr "" +msgstr "ไม่มีข้อมูล" #. module: crm #: field:crm.case.section,message_is_follower:0 #: field:crm.lead,message_is_follower:0 #: field:crm.phonecall,message_is_follower:0 msgid "Is a Follower" -msgstr "" +msgstr "เป็นผู้ติดตาม" #. module: crm #: field:crm.opportunity2phonecall,date:0 @@ -1227,28 +1240,28 @@ msgstr "" #: field:crm.phonecall,date:0 #: field:crm.phonecall2phonecall,date:0 msgid "Date" -msgstr "" +msgstr "วันที่" #. module: crm #: model:crm.case.section,name:crm.crm_case_section_4 msgid "Online Support" -msgstr "" +msgstr "การสนับสนุนออนไลน์" #. module: crm #: view:crm.lead.report:0 #: view:crm.phonecall.report:0 msgid "Extended Filters..." -msgstr "" +msgstr "ตัวกรองเพิ่มเติม" #. module: crm #: view:crm.phonecall.report:0 msgid "Phone calls which are in closed state" -msgstr "" +msgstr "การโทรที่ปิดแล้ว" #. module: crm #: view:crm.phonecall.report:0 msgid "Search" -msgstr "" +msgstr "ค้นหา" #. module: crm #: help:crm.lead,state:0 @@ -1262,12 +1275,12 @@ msgstr "" #. module: crm #: model:crm.case.section,name:crm.crm_case_section_1 msgid "Sales Marketing Department" -msgstr "" +msgstr "ฝ่ายขายและการตลาด" #. module: crm #: view:crm.phonecall.report:0 msgid "Date of call" -msgstr "" +msgstr "วันที่โทร" #. module: crm #: help:crm.lead,section_id:0 @@ -1293,45 +1306,45 @@ msgid "Lead Description" msgstr "" #. module: crm -#: code:addons/crm/crm_lead.py:565 +#: code:addons/crm/crm_lead.py:581 #, python-format msgid "Merged opportunities" -msgstr "" +msgstr "โอกาสที่รวมแล้ว" #. module: crm #: model:crm.case.categ,name:crm.categ_oppor7 msgid "Consulting" -msgstr "" +msgstr "ให้คำปรึกษา" #. module: crm #: field:crm.case.section,code:0 msgid "Code" -msgstr "" +msgstr "รหัส" #. module: crm #: view:sale.config.settings:0 msgid "Features" -msgstr "" +msgstr "คุณสมบัติ" #. module: crm #: field:crm.case.section,child_ids:0 msgid "Child Teams" -msgstr "" +msgstr "ทีมลูก" #. module: crm #: view:crm.phonecall.report:0 msgid "Phone calls which are in draft and open state" -msgstr "" +msgstr "การโทรที่เป็นฉบับร่างและเปิด" #. module: crm #: field:crm.lead2opportunity.partner.mass,user_ids:0 msgid "Salesmen" -msgstr "" +msgstr "พนักงานขาย" #. module: crm #: view:crm.lead:0 msgid "References" -msgstr "" +msgstr "อ้างอิง" #. module: crm #: view:crm.lead2opportunity.partner:0 @@ -1341,7 +1354,7 @@ msgstr "" #: view:crm.phonecall:0 #: view:crm.phonecall2phonecall:0 msgid "Cancel" -msgstr "" +msgstr "ยกเลิก" #. module: crm #: view:crm.lead:0 @@ -1351,7 +1364,7 @@ msgstr "" #. module: crm #: model:crm.case.categ,name:crm.categ_oppor4 msgid "Information" -msgstr "" +msgstr "ข้อมูล" #. module: crm #: view:crm.lead.report:0 @@ -1361,36 +1374,36 @@ msgstr "" #. module: crm #: view:crm.phonecall:0 msgid "To Do" -msgstr "" +msgstr "สิ่งที่จะทำ" #. module: crm #: model:mail.message.subtype,description:crm.mt_lead_lost msgid "Opportunity lost" -msgstr "" +msgstr "โอกาสที่พลาด" #. module: crm #: field:crm.lead2opportunity.partner,action:0 #: field:crm.lead2opportunity.partner.mass,action:0 #: field:crm.partner.binding,action:0 msgid "Related Customer" -msgstr "" +msgstr "ลูกค้าที่เกี่ยวข้อง" #. module: crm #: model:crm.case.categ,name:crm.categ_oppor8 msgid "Other" -msgstr "" +msgstr "อื่น ๆ" #. module: crm #: field:crm.phonecall,opportunity_id:0 #: model:ir.model,name:crm.model_crm_lead msgid "Lead/Opportunity" -msgstr "" +msgstr "เป้าหมาย / โอกาส" #. module: crm #: model:ir.actions.act_window,name:crm.action_merge_opportunities #: model:ir.actions.act_window,name:crm.merge_opportunity_act msgid "Merge leads/opportunities" -msgstr "" +msgstr "รวมเป้าหมาย / โอกาส" #. module: crm #: help:crm.case.stage,sequence:0 @@ -1400,7 +1413,7 @@ msgstr "" #. module: crm #: model:ir.actions.act_window,name:crm.crm_phonecall_categ_action msgid "Phonecall Categories" -msgstr "" +msgstr "ประเภทการโทร" #. module: crm #: view:crm.lead.report:0 @@ -1410,12 +1423,12 @@ msgstr "" #. module: crm #: model:ir.model,name:crm.model_res_users msgid "Users" -msgstr "" +msgstr "ผู้ใช้งาน" #. module: crm #: model:mail.message.subtype,name:crm.mt_lead_stage msgid "Stage Changed" -msgstr "" +msgstr "สถานะเปลี่ยนแปลง" #. module: crm #: field:crm.case.stage,section_ids:0 @@ -1431,18 +1444,18 @@ msgstr "" #: selection:crm.opportunity2phonecall,action:0 #: selection:crm.phonecall2phonecall,action:0 msgid "Log a call" -msgstr "" +msgstr "บันทึกการโทร" #. module: crm #: selection:crm.segmentation.line,expr_name:0 msgid "Sale Amount" -msgstr "" +msgstr "ยอดขาย" #. module: crm #: view:crm.phonecall.report:0 #: model:ir.actions.act_window,name:crm.act_crm_opportunity_crm_phonecall_new msgid "Phone calls" -msgstr "" +msgstr "การโทรศัพท์" #. module: crm #: model:ir.actions.act_window,help:crm.action_report_crm_opportunity @@ -1459,7 +1472,7 @@ msgstr "" #: field:crm.payment.mode,name:0 #: field:crm.segmentation,name:0 msgid "Name" -msgstr "" +msgstr "ชื่อ" #. module: crm #: view:crm.lead.report:0 @@ -1470,7 +1483,7 @@ msgstr "" #: field:crm.lead.report,date_closed:0 #: field:crm.phonecall.report,date_closed:0 msgid "Close Date" -msgstr "" +msgstr "วันปิด" #. module: crm #: view:crm.lead.report:0 @@ -1482,18 +1495,18 @@ msgstr "" #: help:crm.lead,message_ids:0 #: help:crm.phonecall,message_ids:0 msgid "Messages and communication history" -msgstr "" +msgstr "ข้อความและประวัติการติดต่อ" #. module: crm #: view:crm.lead:0 msgid "Show Countries" -msgstr "" +msgstr "แสดงประเทศ" #. module: crm #: view:crm.lead:0 #: view:crm.phonecall:0 msgid "Creation" -msgstr "" +msgstr "การสร้าง" #. module: crm #: selection:crm.lead,priority:0 @@ -1501,7 +1514,7 @@ msgstr "" #: selection:crm.phonecall,priority:0 #: selection:crm.phonecall.report,priority:0 msgid "High" -msgstr "" +msgstr "สูง" #. module: crm #: model:process.node,note:crm.process_node_partner0 @@ -1529,7 +1542,7 @@ msgstr "" #: view:crm.phonecall:0 #: view:crm.phonecall.report:0 msgid "Group By..." -msgstr "" +msgstr "จัดกลุ่มตาม..." #. module: crm #: view:crm.merge.opportunity:0 @@ -1598,7 +1611,7 @@ msgstr "" #. module: crm #: model:crm.case.categ,name:crm.categ_oppor3 msgid "Services" -msgstr "" +msgstr "บริการ" #. module: crm #: selection:crm.lead,priority:0 @@ -1606,7 +1619,7 @@ msgstr "" #: selection:crm.phonecall,priority:0 #: selection:crm.phonecall.report,priority:0 msgid "Highest" -msgstr "" +msgstr "สูงสุด" #. module: crm #: help:crm.lead.report,creation_year:0 @@ -1617,12 +1630,12 @@ msgstr "" #: view:crm.case.section:0 #: field:crm.lead,description:0 msgid "Notes" -msgstr "" +msgstr "บันทึก" #. module: crm #: field:crm.segmentation.line,expr_value:0 msgid "Value" -msgstr "" +msgstr "มูลค่า" #. module: crm #: field:crm.lead,partner_name:0 @@ -1632,12 +1645,12 @@ msgstr "" #. module: crm #: field:crm.case.section,reply_to:0 msgid "Reply-To" -msgstr "" +msgstr "ตอบกลับไปยัง" #. module: crm #: view:crm.lead:0 msgid "Display" -msgstr "" +msgstr "แสดงผล" #. module: crm #: view:board.board:0 @@ -1655,7 +1668,7 @@ msgstr "" #: model:ir.model,name:crm.model_crm_case_channel #: model:ir.ui.menu,name:crm.menu_crm_case_channel msgid "Channels" -msgstr "" +msgstr "ช่อง" #. module: crm #: view:crm.phonecall:0 @@ -1663,12 +1676,12 @@ msgstr "" #: view:crm.phonecall.report:0 #: selection:crm.phonecall.report,state:0 msgid "Held" -msgstr "" +msgstr "ถูกพักรอแล้ว" #. module: crm #: view:crm.lead:0 msgid "Extra Info" -msgstr "" +msgstr "ข้อมูลเพิ่มเติม" #. module: crm #: view:crm.lead:0 @@ -1678,7 +1691,7 @@ msgstr "" #. module: crm #: view:crm.lead:0 msgid "Edit..." -msgstr "" +msgstr "แก้ไข..." #. module: crm #: model:crm.case.resource.type,name:crm.type_lead5 @@ -1699,7 +1712,7 @@ msgstr "" #: view:crm.phonecall.report:0 #: field:crm.phonecall.report,priority:0 msgid "Priority" -msgstr "" +msgstr "ความสำคัญ" #. module: crm #: model:ir.model,name:crm.model_crm_lead2opportunity_partner @@ -1732,7 +1745,7 @@ msgstr "" #: model:ir.actions.act_window,name:crm.open_board_statistical_dash #: model:ir.ui.menu,name:crm.menu_board_statistics_dash msgid "CRM" -msgstr "" +msgstr "CRM" #. module: crm #: model:ir.actions.act_window,name:crm.crm_segmentation_tree-act @@ -1748,12 +1761,12 @@ msgstr "" #. module: crm #: model:crm.case.resource.type,name:crm.type_lead1 msgid "Telesales" -msgstr "" +msgstr "การขายทางโทรศัพท์" #. module: crm #: view:crm.lead:0 msgid "Leads Assigned to Me or My Team(s)" -msgstr "" +msgstr "เป้าหมายที่ได้รับมอบหมาย" #. module: crm #: model:ir.model,name:crm.model_crm_segmentation_line @@ -1764,17 +1777,17 @@ msgstr "" #: view:crm.opportunity2phonecall:0 #: view:crm.phonecall2phonecall:0 msgid "Planned Date" -msgstr "" +msgstr "วันที่ตามแผน" #. module: crm #: view:crm.lead:0 msgid "Expected Revenues" -msgstr "" +msgstr "รายได้ที่คาดหวัง" #. module: crm #: view:crm.lead:0 msgid "Referrer" -msgstr "" +msgstr "ที่อ้างถึง" #. module: crm #: help:crm.lead,type:0 @@ -1787,29 +1800,29 @@ msgstr "" #: selection:crm.lead.report,deadline_month:0 #: selection:crm.phonecall.report,month:0 msgid "July" -msgstr "" +msgstr "กรกฎาคม" #. module: crm #: view:crm.lead:0 msgid "Lead / Customer" -msgstr "" +msgstr "เป้าหมาย / ลูกค้า" #. module: crm #: model:crm.case.section,name:crm.crm_case_section_2 msgid "Support Department" -msgstr "" +msgstr "แผนกบริการ" #. module: crm #: view:crm.lead.report:0 msgid "Show only lead" -msgstr "" +msgstr "แสดงเฉพาะเป้าหมาย" #. module: crm #: model:ir.actions.act_window,name:crm.crm_case_section_act #: model:ir.model,name:crm.model_crm_case_section #: model:ir.ui.menu,name:crm.menu_crm_case_section_act msgid "Sales Teams" -msgstr "" +msgstr "ทีมขาย" #. module: crm #: field:crm.case.stage,case_default:0 @@ -1819,7 +1832,7 @@ msgstr "" #. module: crm #: view:crm.lead:0 msgid "Team" -msgstr "" +msgstr "ทีม" #. module: crm #: view:crm.lead.report:0 @@ -1835,14 +1848,14 @@ msgstr "" #. module: crm #: field:crm.lead.report,probability:0 msgid "Probability" -msgstr "" +msgstr "ความน่าจะเป็น" #. module: crm #: view:crm.lead.report:0 #: view:crm.phonecall.report:0 #: field:crm.phonecall.report,month:0 msgid "Month" -msgstr "" +msgstr "เดือน" #. module: crm #: view:crm.lead:0 @@ -1850,18 +1863,18 @@ msgstr "" #: model:ir.ui.menu,name:crm.menu_crm_leads #: model:process.node,name:crm.process_node_leads0 msgid "Leads" -msgstr "" +msgstr "เป้าหมาย" #. module: crm -#: code:addons/crm/crm_lead.py:563 +#: code:addons/crm/crm_lead.py:579 #, python-format msgid "Merged leads" -msgstr "" +msgstr "รวมเป้าหมาย" #. module: crm #: model:crm.case.categ,name:crm.categ_oppor5 msgid "Design" -msgstr "" +msgstr "ออกแบบ" #. module: crm #: selection:crm.lead2opportunity.partner,name:0 @@ -1873,18 +1886,18 @@ msgstr "" #: view:crm.phonecall.report:0 #: selection:crm.phonecall.report,state:0 msgid "Todo" -msgstr "" +msgstr "สิ่งที่จะทำ" #. module: crm #: model:mail.message.subtype,name:crm.mt_lead_convert_to_opportunity #: model:mail.message.subtype,name:crm.mt_salesteam_lead_opportunity msgid "Lead to Opportunity" -msgstr "" +msgstr "เป้าหมายเป็นโอกาส" #. module: crm #: field:crm.lead,user_email:0 msgid "User Email" -msgstr "" +msgstr "อีเมลของผู้ใช้" #. module: crm #: help:crm.lead,partner_name:0 @@ -1897,7 +1910,7 @@ msgstr "" #: field:crm.opportunity2phonecall,note:0 #: field:crm.phonecall2phonecall,note:0 msgid "Note" -msgstr "" +msgstr "บันทึก" #. module: crm #: selection:crm.lead,priority:0 @@ -1905,7 +1918,7 @@ msgstr "" #: selection:crm.phonecall,priority:0 #: selection:crm.phonecall.report,priority:0 msgid "Low" -msgstr "" +msgstr "ต่ำ" #. module: crm #: selection:crm.case.stage,state:0 @@ -1915,7 +1928,7 @@ msgstr "" #: selection:crm.lead.report,state:0 #: field:crm.phonecall,date_closed:0 msgid "Closed" -msgstr "" +msgstr "ปิดแล้ว" #. module: crm #: view:crm.lead:0 @@ -1934,7 +1947,7 @@ msgstr "" #: selection:crm.lead.report,state:0 #: selection:crm.phonecall.report,state:0 msgid "Pending" -msgstr "" +msgstr "รอดำเนินการ" #. module: crm #: model:process.transition,name:crm.process_transition_leadopportunity0 @@ -1947,18 +1960,17 @@ msgid "Global CC" msgstr "" #. 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 #: model:ir.ui.menu,name:crm.menu_crm_config_phonecall msgid "Phone Calls" -msgstr "" +msgstr "การโทร" #. module: crm #: view:crm.case.stage:0 msgid "Stage Search" -msgstr "" +msgstr "ค้นหาตามสถานะ" #. module: crm #: help:crm.lead.report,delay_open:0 @@ -1973,7 +1985,7 @@ msgstr "" #: field:crm.phonecall,partner_phone:0 #: field:crm.phonecall2phonecall,phone:0 msgid "Phone" -msgstr "" +msgstr "โทรศัพท์" #. module: crm #: field:crm.case.channel,active:0 @@ -1981,7 +1993,7 @@ msgstr "" #: field:crm.lead,active:0 #: field:crm.phonecall,active:0 msgid "Active" -msgstr "" +msgstr "เปิดใช้งาน" #. module: crm #: selection:crm.segmentation.line,operator:0 @@ -1991,7 +2003,7 @@ msgstr "" #. module: crm #: view:crm.lead:0 msgid "Send Mail" -msgstr "" +msgstr "ส่งเมล์" #. module: crm #: selection:crm.lead2opportunity.partner,action:0 @@ -2008,7 +2020,7 @@ msgstr "" #. module: crm #: model:crm.case.categ,name:crm.categ_oppor2 msgid "Software" -msgstr "" +msgstr "ซอฟต์แวร์" #. module: crm #: field:crm.case.section,change_responsible:0 @@ -2025,51 +2037,51 @@ msgstr "การวิเคราะห์โอกาส" #. module: crm #: view:crm.lead:0 msgid "Misc" -msgstr "" +msgstr "เบ็ดเตล็ด" #. module: crm #: view:crm.lead:0 #: view:crm.lead.report:0 #: selection:crm.lead.report,state:0 msgid "Open" -msgstr "" +msgstr "เปิด" #. module: crm #: view:crm.lead:0 #: field:crm.lead,city:0 msgid "City" -msgstr "" +msgstr "จังหวัด" #. module: crm #: selection:crm.case.stage,type:0 msgid "Both" -msgstr "" +msgstr "ทั้งสองอย่าง" #. module: crm #: view:crm.phonecall:0 msgid "Call Done" -msgstr "" +msgstr "โทรแล้ว" #. module: crm #: view:crm.phonecall:0 #: field:crm.phonecall,user_id:0 msgid "Responsible" -msgstr "" +msgstr "รับผิดชอบ" #. module: crm #: model:crm.case.section,name:crm.crm_case_section_3 msgid "Direct Marketing" -msgstr "" +msgstr "ขายตรง" #. module: crm #: model:crm.case.categ,name:crm.categ_oppor1 msgid "Product" -msgstr "" +msgstr "ผลิตภัณฑ์" #. module: crm #: field:crm.lead.report,creation_year:0 msgid "Creation Year" -msgstr "" +msgstr "ปีที่สร้าง" #. module: crm #: view:crm.lead2opportunity.partner.mass:0 @@ -2086,7 +2098,7 @@ msgstr "" #. module: crm #: view:crm.lead:0 msgid "Address" -msgstr "" +msgstr "ที่อยู่" #. module: crm #: help:crm.case.section,alias_id:0 @@ -2103,7 +2115,7 @@ msgstr "" #. module: crm #: view:crm.lead:0 msgid "Search Leads" -msgstr "" +msgstr "ค้นหา" #. module: crm #: view:crm.lead.report:0 @@ -2116,12 +2128,12 @@ msgstr "" #: model:ir.actions.act_window,name:crm.crm_case_categ_phone_outgoing0 #: model:ir.ui.menu,name:crm.menu_crm_case_phone_outbound msgid "Scheduled Calls" -msgstr "" +msgstr "การโทรที่ได้ววางแผนไว้" #. module: crm #: field:crm.lead,id:0 msgid "ID" -msgstr "" +msgstr "ID" #. module: crm #: help:crm.lead,type_id:0 @@ -2143,32 +2155,32 @@ msgstr "" #. module: crm #: view:crm.segmentation:0 msgid "Continue Process" -msgstr "" +msgstr "ทำงานต่อ" #. module: crm #: selection:crm.lead2opportunity.partner,name:0 #: selection:crm.lead2opportunity.partner.mass,name:0 #: model:ir.actions.act_window,name:crm.action_crm_lead2opportunity_partner msgid "Convert to opportunity" -msgstr "" +msgstr "แปลงเป็นโอกาส" #. module: crm #: field:crm.opportunity2phonecall,user_id:0 #: field:crm.phonecall2phonecall,user_id:0 msgid "Assign To" -msgstr "" +msgstr "มอบหมายถึง" #. module: crm #: field:crm.lead,date_action_last:0 #: field:crm.phonecall,date_action_last:0 msgid "Last Action" -msgstr "" +msgstr "การกระทำล่าสุด" #. module: crm #: field:crm.phonecall,duration:0 #: field:crm.phonecall.report,duration:0 msgid "Duration" -msgstr "" +msgstr "ระยะเวลา" #. module: crm #: model:ir.actions.act_window,help:crm.crm_case_categ_phone_outgoing0 @@ -2207,17 +2219,17 @@ msgstr "" #. module: crm #: model:crm.case.resource.type,name:crm.type_lead6 msgid "Banner Ads" -msgstr "" +msgstr "ป้ายโฆษณา" #. module: crm #: field:crm.merge.opportunity,opportunity_ids:0 msgid "Leads/Opportunities" -msgstr "" +msgstr "เป้าหมาย / โอกาส" #. module: crm #: field:crm.lead,fax:0 msgid "Fax" -msgstr "" +msgstr "แฟกซ์" #. module: crm #: field:crm.lead,company_id:0 @@ -2227,12 +2239,12 @@ msgstr "" #: view:crm.phonecall.report:0 #: field:crm.phonecall.report,company_id:0 msgid "Company" -msgstr "" +msgstr "บริษัท" #. module: crm #: selection:crm.segmentation,state:0 msgid "Running" -msgstr "" +msgstr "กำลังทำงานอยู่" #. module: crm #: model:mail.message.subtype,description:crm.mt_lead_convert_to_opportunity @@ -2242,50 +2254,50 @@ msgstr "" #. module: crm #: view:crm.lead:0 msgid "Unassigned Leads" -msgstr "" +msgstr "เป้าหมายที่ยังไม่ได้มีการมอบหมาย" #. module: crm #: model:mail.message.subtype,description:crm.mt_lead_won msgid "Opportunity won" -msgstr "" +msgstr "โอกาสสำเร็จแล้ว" #. module: crm #: field:crm.case.categ,object_id:0 msgid "Object Name" -msgstr "" +msgstr "ชื่อออปเจ็กต์" #. module: crm #: view:crm.phonecall:0 msgid "Phone Calls Assigned to Me or My Team(s)" -msgstr "" +msgstr "การโทรที่ได้รับมอบหมาย" #. module: crm #: view:crm.lead:0 msgid "Reset" -msgstr "" +msgstr "คืนค่าเดิม" #. module: crm #: view:sale.config.settings:0 msgid "After-Sale Services" -msgstr "" +msgstr "บริการหลังการขาย" #. module: crm #: field:crm.case.section,message_ids:0 #: field:crm.lead,message_ids:0 #: field:crm.phonecall,message_ids:0 msgid "Messages" -msgstr "" +msgstr "ข้อความ" #. module: crm #: help:crm.lead,channel_id:0 msgid "Communication channel (mail, direct, phone, ...)" -msgstr "" +msgstr "ช่องทางการติดต่อ (จดหมาย,โดยตรง,โทรศัพท์,...)" #. module: crm #: field:crm.opportunity2phonecall,name:0 #: field:crm.phonecall2phonecall,name:0 msgid "Call summary" -msgstr "" +msgstr "สรุปการโทร" #. module: crm #: selection:crm.case.stage,state:0 @@ -2294,12 +2306,12 @@ msgstr "" #: selection:crm.phonecall,state:0 #: selection:crm.phonecall.report,state:0 msgid "Cancelled" -msgstr "" +msgstr "ยกเลิกแล้ว" #. module: crm #: field:crm.lead,color:0 msgid "Color Index" -msgstr "" +msgstr "ดัชนีสี" #. module: crm #: model:ir.actions.act_window,help:crm.action_report_crm_phonecall @@ -2318,33 +2330,33 @@ msgstr "" #. module: crm #: field:crm.case.stage,state:0 msgid "Related Status" -msgstr "" +msgstr "สถานะที่เกี่ยวข้อง" #. module: crm #: field:crm.phonecall,name:0 msgid "Call Summary" -msgstr "" +msgstr "สรุปการโทร" #. module: crm #: field:crm.segmentation.line,expr_operator:0 msgid "Operator" -msgstr "" +msgstr "ผู้ปฏิบัติการ" #. module: crm #: view:crm.lead:0 #: model:ir.actions.act_window,name:crm.opportunity2phonecall_act msgid "Schedule/Log Call" -msgstr "" +msgstr "แผน/บันทึกการโทร" #. module: crm #: view:crm.merge.opportunity:0 msgid "Select Leads/Opportunities" -msgstr "" +msgstr "เลือกเป้าหมาย / โอกาส" #. module: crm #: selection:crm.phonecall,state:0 msgid "Confirmed" -msgstr "" +msgstr "ยืนยันแล้ว" #. module: crm #: model:ir.model,name:crm.model_crm_partner_binding @@ -2359,17 +2371,17 @@ msgstr "" #. module: crm #: view:crm.phonecall:0 msgid "Confirm" -msgstr "" +msgstr "ยืนยัน" #. module: crm #: view:crm.lead:0 msgid "Unread messages" -msgstr "" +msgstr "ข้อความที่ยังไม่ได้อ่าน" #. module: crm #: field:crm.phonecall.report,section_id:0 msgid "Section" -msgstr "" +msgstr "หัวข้อ" #. module: crm #: selection:crm.segmentation.line,operator:0 @@ -2381,7 +2393,7 @@ msgstr "" #: field:crm.lead,message_follower_ids:0 #: field:crm.phonecall,message_follower_ids:0 msgid "Followers" -msgstr "" +msgstr "ผู้ติดตาม" #. module: crm #: model:ir.actions.act_window,help:crm.crm_case_category_act_leads_all @@ -2404,14 +2416,14 @@ msgstr "" #. module: crm #: field:sale.config.settings,fetchmail_lead:0 msgid "Create leads from incoming mails" -msgstr "" +msgstr "สร้างเป้าหมายจากโทรศัพท์ที่เข้ามา" #. module: crm #: view:crm.lead:0 #: field:crm.lead,email_from:0 #: field:crm.phonecall,email_from:0 msgid "Email" -msgstr "" +msgstr "อีเมล" #. module: crm #: view:crm.case.channel:0 @@ -2420,19 +2432,19 @@ msgstr "" #: view:crm.lead.report:0 #: field:crm.lead.report,channel_id:0 msgid "Channel" -msgstr "" +msgstr "ช่องทาง" #. module: crm #: view:crm.opportunity2phonecall:0 #: view:crm.phonecall2phonecall:0 msgid "Schedule Call" -msgstr "" +msgstr "แผนการโทร" #. module: crm #: view:crm.lead.report:0 #: view:crm.phonecall.report:0 msgid "My Sales Team(s)" -msgstr "" +msgstr "ทีมขายของฉัน" #. module: crm #: help:crm.segmentation,exclusif:0 @@ -2446,12 +2458,12 @@ msgstr "" #. module: crm #: model:process.transition,note:crm.process_transition_leadopportunity0 msgid "Creating business opportunities from Leads" -msgstr "" +msgstr "สร้างโอกาสจากเป้าหมาย" #. module: crm #: model:crm.case.resource.type,name:crm.type_lead3 msgid "Email Campaign - Products" -msgstr "" +msgstr "อีเมลแคมเปญ - สินค้า" #. module: crm #: model:ir.actions.act_window,help:crm.crm_case_categ_phone_incoming0 @@ -2479,7 +2491,7 @@ msgstr "" #. module: crm #: view:res.partner:0 msgid "Calls" -msgstr "" +msgstr "การคุยสาย" #. module: crm #: field:crm.case.stage,on_change:0 @@ -2489,12 +2501,12 @@ msgstr "" #. module: crm #: view:crm.phonecall.report:0 msgid "My Phone Calls" -msgstr "" +msgstr "การโทรของฉัน" #. module: crm #: model:crm.case.stage,name:crm.stage_lead3 msgid "Qualification" -msgstr "" +msgstr "คุณสมบัติ" #. module: crm #: field:crm.lead2opportunity.partner,name:0 @@ -2522,13 +2534,13 @@ msgstr "" #: selection:crm.lead.report,deadline_month:0 #: selection:crm.phonecall.report,month:0 msgid "August" -msgstr "" +msgstr "สิงหาคม" #. module: crm #: model:mail.message.subtype,name:crm.mt_lead_lost #: model:mail.message.subtype,name:crm.mt_salesteam_lead_lost msgid "Opportunity Lost" -msgstr "" +msgstr "โอกาสที่ล้มเหลว" #. module: crm #: field:crm.lead.report,deadline_month:0 @@ -2540,12 +2552,12 @@ msgstr "" #: selection:crm.lead.report,deadline_month:0 #: selection:crm.phonecall.report,month:0 msgid "December" -msgstr "" +msgstr "ธันวาคม" #. module: crm #: view:crm.phonecall:0 msgid "Date of Call" -msgstr "" +msgstr "วันที่โทร" #. module: crm #: view:crm.lead:0 @@ -2566,7 +2578,7 @@ msgstr "" #. module: crm #: view:crm.lead:0 msgid "Schedule Meeting" -msgstr "" +msgstr "ตารางเวลาการประชุม" #. module: crm #: field:crm.lead.report,deadline_year:0 @@ -2582,24 +2594,24 @@ msgstr "" #: field:crm.lead,date_open:0 #: field:crm.phonecall,date_open:0 msgid "Opened" -msgstr "" +msgstr "เปิดแล้ว" #. module: crm #: view:crm.case.section:0 #: field:crm.case.section,member_ids:0 msgid "Team Members" -msgstr "" +msgstr "สมาชิกในทีม" #. module: crm #: view:crm.opportunity2phonecall:0 #: view:crm.phonecall2phonecall:0 msgid "Schedule/Log a Call" -msgstr "" +msgstr "ตาราง / บันทึกการโทร" #. module: crm #: field:crm.lead,planned_cost:0 msgid "Planned Costs" -msgstr "" +msgstr "ต้นทุนที่วางแผนไว้" #. module: crm #: help:crm.lead,date_deadline:0 @@ -2618,18 +2630,18 @@ msgstr "" #: model:ir.actions.act_window,name:crm.crm_case_categ_phone_incoming0 #: model:ir.ui.menu,name:crm.menu_crm_case_phone_inbound msgid "Logged Calls" -msgstr "" +msgstr "บันทึกการใช้โทรศัพท์" #. module: crm #: model:mail.message.subtype,name:crm.mt_lead_won #: model:mail.message.subtype,name:crm.mt_salesteam_lead_won msgid "Opportunity Won" -msgstr "" +msgstr "โอกาสสำเร็จแล้ว" #. module: crm #: model:ir.actions.act_window,name:crm.crm_case_section_act_tree msgid "Cases by Sales Team" -msgstr "" +msgstr "เรื่องโดยทีมขาย" #. module: crm #: view:crm.lead:0 @@ -2637,12 +2649,12 @@ msgstr "" #: model:ir.model,name:crm.model_crm_meeting #: model:process.node,name:crm.process_node_meeting0 msgid "Meeting" -msgstr "" +msgstr "การประชุม" #. module: crm #: model:ir.model,name:crm.model_crm_case_categ msgid "Category of Case" -msgstr "" +msgstr "หมวดของเรื่อง" #. module: crm #: view:board.board:0 @@ -2655,17 +2667,17 @@ msgstr "" #: selection:crm.phonecall,priority:0 #: selection:crm.phonecall.report,priority:0 msgid "Normal" -msgstr "" +msgstr "ปกติ" #. module: crm #: field:crm.lead,street2:0 msgid "Street2" -msgstr "" +msgstr "ตำบล" #. module: crm #: field:sale.config.settings,module_crm_helpdesk:0 msgid "Manage Helpdesk and Support" -msgstr "" +msgstr "จัดการการสนับสนุน" #. module: crm #: field:crm.lead.report,delay_open:0 @@ -2676,47 +2688,47 @@ msgstr "" #: field:crm.lead.report,user_id:0 #: field:crm.phonecall.report,user_id:0 msgid "User" -msgstr "" +msgstr "ผู้ใช้" #. module: crm #: selection:crm.lead.report,creation_month:0 #: selection:crm.lead.report,deadline_month:0 #: selection:crm.phonecall.report,month:0 msgid "November" -msgstr "" +msgstr "พฤศจิกายน" #. module: crm #: view:crm.lead.report:0 #: model:ir.actions.act_window,name:crm.act_opportunity_stage msgid "Opportunities By Stage" -msgstr "" +msgstr "โอกาสโดยขั้นตอน" #. module: crm #: selection:crm.lead.report,creation_month:0 #: selection:crm.lead.report,deadline_month:0 #: selection:crm.phonecall.report,month:0 msgid "January" -msgstr "" +msgstr "มกราคม" #. module: crm #: model:process.process,name:crm.process_process_contractprocess0 msgid "Contract" -msgstr "" +msgstr "สัญญา" #. module: crm #: model:crm.case.resource.type,name:crm.type_lead4 msgid "Twitter Ads" -msgstr "" +msgstr "โฆษณา Twitter" #. module: crm #: field:crm.lead.report,creation_day:0 msgid "Creation Day" -msgstr "" +msgstr "วันที่สร้าง" #. module: crm #: view:crm.lead.report:0 msgid "Planned Revenues" -msgstr "" +msgstr "เป้าหมายรายได้" #. module: crm #: view:crm.lead:0 @@ -2737,17 +2749,17 @@ msgstr "" #: selection:crm.opportunity2phonecall,action:0 #: selection:crm.phonecall2phonecall,action:0 msgid "Schedule a call" -msgstr "" +msgstr "วางแผนการโทร" #. module: crm #: view:crm.lead:0 msgid "Categorization" -msgstr "" +msgstr "การจัดประเภท" #. module: crm #: view:crm.phonecall2phonecall:0 msgid "Log Call" -msgstr "" +msgstr "บันทึกการโทร" #. module: crm #: help:sale.config.settings,group_fund_raising:0 @@ -2758,7 +2770,7 @@ msgstr "" #: field:crm.meeting,phonecall_id:0 #: model:ir.model,name:crm.model_crm_phonecall msgid "Phonecall" -msgstr "" +msgstr "การโทร" #. module: crm #: view:crm.phonecall.report:0 @@ -2768,12 +2780,12 @@ msgstr "" #. module: crm #: view:crm.lead:0 msgid "Create date" -msgstr "" +msgstr "วันที่สร้าง" #. module: crm #: view:crm.lead:0 msgid "at" -msgstr "" +msgstr "ที่" #. module: crm #: model:crm.case.stage,name:crm.stage_lead1 @@ -2782,19 +2794,19 @@ msgstr "" #: selection:crm.lead,state:0 #: view:crm.lead.report:0 msgid "New" -msgstr "" +msgstr "ใหม่" #. module: crm #: field:crm.lead,function:0 msgid "Function" -msgstr "" +msgstr "ฟังก์ชั่น" #. module: crm #: field:crm.case.section,note:0 #: field:crm.phonecall,description:0 #: field:crm.segmentation,description:0 msgid "Description" -msgstr "" +msgstr "รายละเอียด" #. module: crm #: field:crm.case.categ,section_id:0 @@ -2813,14 +2825,14 @@ msgstr "" #: field:crm.phonecall2phonecall,section_id:0 #: field:res.partner,section_id:0 msgid "Sales Team" -msgstr "" +msgstr "ทีมขาย" #. module: crm #: selection:crm.lead.report,creation_month:0 #: selection:crm.lead.report,deadline_month:0 #: selection:crm.phonecall.report,month:0 msgid "May" -msgstr "" +msgstr "พฤษภาคม" #. module: crm #: model:ir.actions.act_window,help:crm.crm_case_channel_action @@ -2842,27 +2854,27 @@ msgstr "" #. module: crm #: view:crm.lead:0 msgid "Internal Notes" -msgstr "" +msgstr "บันทึกภายใน" #. module: crm #: view:crm.lead:0 msgid "New Opportunities" -msgstr "" +msgstr "โอกาสใหม่" #. module: crm #: field:crm.segmentation.line,operator:0 msgid "Mandatory / Optional" -msgstr "" +msgstr "บังคับ / เพิ่มเติม" #. module: crm #: field:crm.lead,street:0 msgid "Street" -msgstr "" +msgstr "ที่อยู่" #. module: crm #: field:crm.lead,referred:0 msgid "Referred By" -msgstr "" +msgstr "อ้างอิงโดย" #. module: crm #: view:crm.phonecall:0 @@ -2872,35 +2884,35 @@ msgstr "" #. module: crm #: field:crm.case.section,working_hours:0 msgid "Working Hours" -msgstr "" +msgstr "ชั่วโมงทำงาน" #. 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 #: field:crm.partner.binding,partner_id:0 #, python-format msgid "Customer" -msgstr "" +msgstr "ลูกค้า" #. module: crm #: selection:crm.lead.report,creation_month:0 #: selection:crm.lead.report,deadline_month:0 #: selection:crm.phonecall.report,month:0 msgid "February" -msgstr "" +msgstr "กุมภาพันธ์" #. module: crm #: view:crm.phonecall:0 msgid "Schedule a Meeting" -msgstr "" +msgstr "วางแผนการประชุม" #. module: crm #: model:crm.case.stage,name:crm.stage_lead8 #: view:crm.lead:0 msgid "Lost" -msgstr "" +msgstr "ไม่สำเร็จ" #. module: crm #: code:addons/crm/wizard/crm_lead_to_opportunity.py:89 @@ -2914,7 +2926,7 @@ msgstr "" #: view:crm.lead.report:0 #: field:crm.lead.report,country_id:0 msgid "Country" -msgstr "" +msgstr "ประเทศ" #. module: crm #: view:crm.lead:0 @@ -2922,7 +2934,7 @@ msgstr "" #: view:crm.lead2opportunity.partner.mass:0 #: view:crm.phonecall:0 msgid "Convert to Opportunity" -msgstr "" +msgstr "แปลงเป็นโอกาส" #. module: crm #: help:crm.phonecall,email_from:0 @@ -2934,17 +2946,17 @@ msgstr "คนเหล่านี้จะได้รับอีเมล์ #: selection:crm.lead.report,deadline_month:0 #: selection:crm.phonecall.report,month:0 msgid "April" -msgstr "" +msgstr "เมษายน" #. module: crm #: field:crm.case.resource.type,name:0 msgid "Campaign Name" -msgstr "" +msgstr "ชื่อแคมเปญ" #. module: crm #: view:crm.segmentation:0 msgid "Profiling" -msgstr "" +msgstr "ทำประวัติย่อ" #. module: crm #: model:ir.model,name:crm.model_crm_phonecall_report @@ -2954,7 +2966,7 @@ msgstr "" #. module: crm #: model:crm.case.stage,name:crm.stage_lead5 msgid "Negotiation" -msgstr "" +msgstr "กำลังเจรจา" #. module: crm #: model:ir.model,name:crm.model_crm_phonecall2phonecall @@ -2964,40 +2976,40 @@ msgstr "" #. module: crm #: field:crm.case.stage,sequence:0 msgid "Sequence" -msgstr "" +msgstr "ลำดับ" #. module: crm #: field:crm.segmentation.line,expr_name:0 msgid "Control Variable" -msgstr "" +msgstr "ตัวแปรควบคุม" #. module: crm #: model:crm.case.stage,name:crm.stage_lead4 msgid "Proposition" -msgstr "" +msgstr "ข้อเสนอ" #. module: crm #: view:crm.phonecall:0 #: field:res.partner,phonecall_ids:0 msgid "Phonecalls" -msgstr "" +msgstr "การโทร" #. module: crm #: view:crm.lead.report:0 #: view:crm.phonecall.report:0 #: field:crm.phonecall.report,name:0 msgid "Year" -msgstr "" +msgstr "ปี" #. module: crm #: model:crm.case.resource.type,name:crm.type_lead8 msgid "Newsletter" -msgstr "" +msgstr "ข่าวสาร" #. module: crm #: model:mail.message.subtype,name:crm.mt_salesteam_lead_stage msgid "Opportunity Stage Changed" -msgstr "" +msgstr "เปลี่ยนสถานะของโอกาสแล้ว" #. module: crm #: model:ir.actions.act_window,help:crm.crm_lead_stage_act diff --git a/addons/crm/i18n/zh_CN.po b/addons/crm/i18n/zh_CN.po index d7182841d8b..aaac89319a8 100644 --- a/addons/crm/i18n/zh_CN.po +++ b/addons/crm/i18n/zh_CN.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: 2012-12-19 07:22+0000\n" -"Last-Translator: Wei \"oldrev\" Li \n" +"PO-Revision-Date: 2013-08-06 09:41+0000\n" +"Last-Translator: fanvil \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-03-16 05:10+0000\n" -"X-Generator: Launchpad (build 16532)\n" +"X-Launchpad-Export-Date: 2013-08-07 04:46+0000\n" +"X-Generator: Launchpad (build 16721)\n" #. module: crm #: view:crm.lead.report:0 @@ -29,7 +29,7 @@ msgid "" msgstr "允许你设置接收邮件服务器,并从收到的邮件中创建线索" #. 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 @@ -54,6 +54,11 @@ msgid "" "Description: [[object.description]]\n" " " msgstr "" +"警告收到的新线索已超过5天未处理\n" +"名称:[[object.name]]\n" +"编号:[[object.id]]\n" +"描述:[[object.description]]\n" +" " #. module: crm #: field:crm.opportunity2phonecall,action:0 @@ -64,7 +69,7 @@ msgstr "动作" #. module: crm #: model:ir.actions.server,name:crm.action_set_team_sales_department msgid "Set team to Sales Department" -msgstr "" +msgstr "设置团队 到销售部" #. module: crm #: view:crm.lead2opportunity.partner.mass:0 @@ -151,7 +156,7 @@ msgstr "规则名称" #: code:addons/crm/crm_phonecall.py:280 #, python-format msgid "It's only possible to convert one phonecall at a time." -msgstr "" +msgstr "每次只能转换一个电话呼叫" #. module: crm #: view:crm.case.resource.type:0 @@ -180,11 +185,11 @@ msgstr "预计结束月份" msgid "" "Holds the Chatter summary (number of messages, ...). This summary is " "directly in html format in order to be inserted in kanban views." -msgstr "" +msgstr "保留复杂的摘要(消息数量,……等)。这一摘要直接是是HTML格式,以便插入到看板视图。" #. 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!" @@ -232,7 +237,7 @@ msgstr "状态" #. module: crm #: field:res.partner,meeting_count:0 msgid "# Meetings" -msgstr "" +msgstr "#会议" #. module: crm #: model:ir.actions.server,name:crm.action_email_reminder_lead @@ -252,7 +257,7 @@ msgstr "排除的答案:" #. module: crm #: model:ir.model,name:crm.model_crm_merge_opportunity msgid "Merge opportunities" -msgstr "" +msgstr "合并商机" #. module: crm #: view:crm.lead.report:0 @@ -265,7 +270,7 @@ msgstr "线索分析" #: code:addons/crm/crm_lead.py:1010 #, python-format msgid "%s a call for the %s." -msgstr "" +msgstr "%s 一个电话 为了 %s." #. module: crm #: model:ir.actions.act_window,name:crm.crm_case_resource_type_act @@ -293,7 +298,7 @@ msgid "Prospect Partner" msgstr "潜在业务伙伴" #. module: crm -#: code:addons/crm/crm_lead.py:982 +#: code:addons/crm/crm_lead.py:1002 #, python-format msgid "No Subject" msgstr "无主题" @@ -323,6 +328,18 @@ msgid "" "

\n" " " msgstr "" +"

\n" +" " +"点击创建新客户分组\n" +"

\n" +" " +"创建指定的分类用于赋值给你的联系人\n" +" " +"以便更好管理你和他们的联系。分组工具\n" +" " +"可以根据你预设的条件给联系人分配组。\n" +"

\n" +" " #. module: crm #: field:crm.opportunity2phonecall,contact_name:0 @@ -445,16 +462,16 @@ msgid "#Opportunities" msgstr "#商机" #. 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." -msgstr "" +msgstr "请从列表视图中选择一个以上元素(线索或机会)。" #. module: crm #: view:crm.lead:0 msgid "Leads that are assigned to one of the sale teams I manage, or to me" -msgstr "" +msgstr "分配给我锁管理的某个销售队伍,或给我的线索。" #. module: crm #: field:crm.lead,partner_address_email:0 @@ -473,6 +490,16 @@ msgid "" "

\n" " " msgstr "" +"

\n" +" " +"点击创建新的销售团队\n" +"

\n" +" " +"使用销售团队,把不同销售员或部门组织成独立的团队。\n" +" " +"每个团队会使用自己的商机列表工作。\n" +"

\n" +" " #. module: crm #: model:process.transition,note:crm.process_transition_opportunitymeeting0 @@ -511,7 +538,7 @@ msgstr "邮件" #. module: crm #: model:mail.message.subtype,description:crm.mt_lead_stage msgid "Stage changed" -msgstr "" +msgstr "任务阶段已改变" #. module: crm #: selection:crm.lead.report,creation_month:0 @@ -556,6 +583,7 @@ msgid "" " If the call needs to be done then the status is set " "to 'Not Held'." msgstr "" +"当一个案子新建时,状态被设为‘待处理’,当案子进行中,状态被设为‘打开’,当电话结束,状态被设为‘挂起’。如果需要电话,状态设为‘未挂起’" #. module: crm #: field:crm.case.section,message_summary:0 @@ -572,7 +600,7 @@ msgstr "合并" #. module: crm #: model:email.template,subject:crm.email_template_opportunity_mail msgid "Opportunity ${object.name | h})" -msgstr "" +msgstr "商机${object.name | h})" #. module: crm #: view:crm.case.categ:0 @@ -590,6 +618,8 @@ msgid "" "Reminder on Lead: [[object.id ]] [[object.partner_id and 'of ' " "+object.partner_id.name or '']]" msgstr "" +"线索:[[object.id ]] [[object.partner_id and 'of ' +object.partner_id.name or " +"'']]的提醒" #. module: crm #: view:crm.segmentation:0 @@ -630,6 +660,13 @@ msgid "" "

\n" " " msgstr "" +"

\n" +" 点击创建新类型\n" +"

\n" +" " +"创建指定的电话类型,更好地定义系统中记录的电话类型\n" +"

\n" +" " #. module: crm #: help:crm.case.section,reply_to:0 @@ -712,7 +749,7 @@ msgid "Statistics Dashboard" msgstr "统计控制台" #. 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 @@ -738,7 +775,7 @@ msgstr "转为商机" #. module: crm #: model:ir.model,name:crm.model_sale_config_settings msgid "sale.config.settings" -msgstr "" +msgstr "sale.config.settings" #. module: crm #: view:crm.segmentation:0 @@ -759,7 +796,7 @@ msgstr "查询电话访问" #: view:crm.lead.report:0 msgid "" "Leads/Opportunities that are assigned to one of the sale teams I manage" -msgstr "" +msgstr "分配给我所管理的某个销售团队的线索/商机。" #. module: crm #: field:calendar.attendee,categ_id:0 @@ -772,7 +809,7 @@ msgid "Exclusive" msgstr "唯一的" #. module: crm -#: code:addons/crm/crm_lead.py:584 +#: code:addons/crm/crm_lead.py:600 #, python-format msgid "From %s : %s" msgstr "发自: %s:%s" @@ -807,7 +844,7 @@ msgstr "参考2" msgid "" "Link between stages and sales teams. When set, this limitate the current " "stage to the selected sales teams." -msgstr "" +msgstr "在阶段和销售团队之间建立链接。设置后将限制此阶段只能用于被选中的销售团队。" #. module: crm #: view:crm.case.stage:0 @@ -866,7 +903,7 @@ msgstr "标记为已赢得" #. module: crm #: model:ir.filters,name:crm.filter_usa_lead msgid "Leads from USA" -msgstr "" +msgstr "来自USA的线索" #. module: crm #: view:crm.lead:0 @@ -917,7 +954,7 @@ msgstr "参考" msgid "" "Opportunities that are assigned to either me or one of the sale teams I " "manage" -msgstr "" +msgstr "分配给我或者我管理的某个销售团队的商机。" #. module: crm #: help:crm.case.section,resource_calendar_id:0 @@ -940,10 +977,10 @@ msgid "Next Action" msgstr "下一动作" #. module: crm -#: code:addons/crm/crm_lead.py:763 +#: code:addons/crm/crm_lead.py:780 #, python-format msgid "Partner set to %s." -msgstr "" +msgstr "业务伙伴 设给 %s." #. module: crm #: selection:crm.lead.report,state:0 @@ -983,6 +1020,8 @@ msgid "" "Allows you to track your customers/suppliers claims and grievances.\n" " This installs the module crm_claim." msgstr "" +"允许你记录客户/供应商的索赔和抱怨。\n" +" 将安装crm_claim模块" #. module: crm #: model:crm.case.stage,name:crm.stage_lead6 @@ -1030,10 +1069,10 @@ msgid "Creation Date" msgstr "创建日期" #. 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 "" +msgstr "线索 已转换成商机" #. module: crm #: selection:crm.segmentation.line,expr_name:0 @@ -1094,7 +1133,7 @@ msgstr "删除" #. module: crm #: model:mail.message.subtype,description:crm.mt_lead_create msgid "Opportunity created" -msgstr "" +msgstr "商机已创建" #. module: crm #: view:crm.lead:0 @@ -1123,6 +1162,17 @@ msgid "" "

\n" " " msgstr "" +"

\n" +" 点击创建新的商机\n" +"

\n" +" OpenERP帮你记录你的销售管道\n" +" 跟踪潜在销售并更好地预测未来收益\n" +"

\n" +" 你可以对商机安排会议或电话,\n" +" 将他们转化成报价单,附上相关\n" +" 文档,跟踪所有的讨论等等。\n" +"

\n" +" " #. module: crm #: field:crm.segmentation,partner_id:0 @@ -1186,13 +1236,13 @@ msgstr "如果你勾选了这里,这个阶段会作为每个销售团队的默 msgid "" "This field is used to distinguish stages related to Leads from stages " "related to Opportunities, or to specify stages available for both types." -msgstr "" +msgstr "此域用于区分用于线索的阶段和用于商机的阶段,或者指示同时可用于两个类型。" #. module: crm #: model:mail.message.subtype,name:crm.mt_lead_create #: model:mail.message.subtype,name:crm.mt_salesteam_lead msgid "Lead Created" -msgstr "" +msgstr "线索已创建" #. module: crm #: help:crm.segmentation,sales_purchase_active:0 @@ -1217,7 +1267,9 @@ msgid "Days to Close" msgstr "结束日期" #. module: crm +#: code:addons/crm/crm_lead.py:1057 #: field:crm.case.section,complete_name:0 +#, python-format msgid "unknown" msgstr "未知" @@ -1264,7 +1316,7 @@ msgid "" "progress the Status is set to 'Open'. When the case is over, the Status is " "set to 'Done'. If the case needs to be reviewed then the Status is set to " "'Pending'." -msgstr "" +msgstr "当一个创建时,状态设为‘草稿’。如果此案在进行中,被设为‘打开‘。当案子结束,状态被设为’结束‘。如果需要被审阅,状态被设为’等待‘" #. module: crm #: model:crm.case.section,name:crm.crm_case_section_1 @@ -1287,7 +1339,7 @@ msgstr "发送邮件的时候,默认的邮件地址来自销售团队。" msgid "" "Phone Calls Assigned to the current user or with a team having the current " "user as team leader" -msgstr "" +msgstr "被分配给当前用户或者当前用户领导的销售团队的电话沟通任务。" #. module: crm #: view:crm.segmentation:0 @@ -1300,7 +1352,7 @@ msgid "Lead Description" msgstr "销售线索描述" #. module: crm -#: code:addons/crm/crm_lead.py:565 +#: code:addons/crm/crm_lead.py:581 #, python-format msgid "Merged opportunities" msgstr "合并商机" @@ -1373,7 +1425,7 @@ msgstr "待办事项" #. module: crm #: model:mail.message.subtype,description:crm.mt_lead_lost msgid "Opportunity lost" -msgstr "" +msgstr "丢掉的商机" #. module: crm #: field:crm.lead2opportunity.partner,action:0 @@ -1422,7 +1474,7 @@ msgstr "用户" #. module: crm #: model:mail.message.subtype,name:crm.mt_lead_stage msgid "Stage Changed" -msgstr "" +msgstr "阶段已改变" #. module: crm #: field:crm.case.stage,section_ids:0 @@ -1495,7 +1547,7 @@ msgstr "信息和通信历史记录" #. module: crm #: view:crm.lead:0 msgid "Show Countries" -msgstr "" +msgstr "显示国家" #. module: crm #: view:crm.lead:0 @@ -1567,7 +1619,7 @@ msgid "" "The status of your document will automatically change regarding the selected " "stage. For example, if a stage is related to the status 'Close', when your " "document reaches this stage, it is automatically closed." -msgstr "" +msgstr "文档的状态会根据选中的阶段自动改变。如果一个阶段关联了‘关闭’状态,当文档到达这个阶段就自动被关闭。" #. module: crm #: view:crm.lead2opportunity.partner.mass:0 @@ -1588,7 +1640,7 @@ msgstr "通话月份" #: code:addons/crm/crm_phonecall.py:290 #, python-format msgid "Partner has been created." -msgstr "" +msgstr "合作伙伴已创建" #. module: crm #: field:sale.config.settings,module_crm_claim:0 @@ -1602,6 +1654,7 @@ msgid "" "the treatment delays or number of leads per state. You can sort out your " "leads analysis by different groups to get accurate grained analysis." msgstr "" +"线索分析允许你检查不同的关联CRM的信息,例如延迟或每个状态的线索的数量。你可以使用不同的分组对线索分析进行整理已获得精确细致的分析结果。" #. module: crm #: model:crm.case.categ,name:crm.categ_oppor3 @@ -1822,7 +1875,7 @@ msgstr "销售团队" #. module: crm #: field:crm.case.stage,case_default:0 msgid "Default to New Sales Team" -msgstr "" +msgstr "默认分配给新建销售团队" #. module: crm #: view:crm.lead:0 @@ -1861,10 +1914,10 @@ msgid "Leads" msgstr "线索" #. module: crm -#: code:addons/crm/crm_lead.py:563 +#: code:addons/crm/crm_lead.py:579 #, python-format msgid "Merged leads" -msgstr "" +msgstr "合并的线索" #. module: crm #: model:crm.case.categ,name:crm.categ_oppor5 @@ -1887,7 +1940,7 @@ msgstr "待办" #: model:mail.message.subtype,name:crm.mt_lead_convert_to_opportunity #: model:mail.message.subtype,name:crm.mt_salesteam_lead_opportunity msgid "Lead to Opportunity" -msgstr "" +msgstr "线索到商机" #. module: crm #: field:crm.lead,user_email:0 @@ -1955,7 +2008,6 @@ msgid "Global CC" msgstr "完整抄送" #. 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 @@ -2089,7 +2141,7 @@ msgstr "转换选项" msgid "" "Follow this salesteam to automatically track the events associated to users " "of this team." -msgstr "" +msgstr "跟踪此销售团队,自动跟踪此团队中用户关联的事件。" #. module: crm #: view:crm.lead:0 @@ -2101,7 +2153,7 @@ msgstr "地址" msgid "" "The email address associated with this team. New emails received will " "automatically create new leads assigned to the team." -msgstr "" +msgstr "此邮件地址关联此团队。收到的新邮件将自动创建线索并分配给此团队。" #. module: crm #: view:crm.lead:0 @@ -2193,13 +2245,24 @@ msgid "" "

\n" " " msgstr "" +"

\n" +" 点击安排一个销售电话\n" +"

\n" +" " +"OpenERP允许你容易地定义销售团队要打的\n" +" 电话并根据跟踪处理。 " +" \n" +"

\n" +" 你可以使用导入功能来导入新列表\n" +"

\n" +" " #. module: crm #: help:crm.case.stage,fold:0 msgid "" "This stage is not visible, for example in status bar or kanban view, when " "there are no records in that stage to display." -msgstr "" +msgstr "此阶段无记录可显示时,在状态栏或看板视图等处不可见。" #. module: crm #: field:crm.lead.report,nbr:0 @@ -2245,7 +2308,7 @@ msgstr "运行中" #. module: crm #: model:mail.message.subtype,description:crm.mt_lead_convert_to_opportunity msgid "Lead converted into an opportunity" -msgstr "" +msgstr "装换成商机的线索" #. module: crm #: view:crm.lead:0 @@ -2255,7 +2318,7 @@ msgstr "未分配的线索" #. module: crm #: model:mail.message.subtype,description:crm.mt_lead_won msgid "Opportunity won" -msgstr "" +msgstr "获胜的商机" #. module: crm #: field:crm.case.categ,object_id:0 @@ -2321,7 +2384,7 @@ msgstr "在这报表中,你能分析你的销售团队在电话访问上的业 #. module: crm #: field:crm.case.stage,fold:0 msgid "Fold by Default" -msgstr "" +msgstr "默认折叠" #. module: crm #: field:crm.case.stage,state:0 @@ -2357,7 +2420,7 @@ msgstr "已确认" #. module: crm #: model:ir.model,name:crm.model_crm_partner_binding msgid "Handle partner binding or generation in CRM wizards." -msgstr "" +msgstr "在CRM向导中处理合作伙伴的绑定或生成。" #. module: crm #: model:ir.actions.act_window,name:crm.act_oppor_stage_user @@ -2408,11 +2471,23 @@ msgid "" "

\n" " " msgstr "" +"

\n" +" 点击创建一个未验证的线索。\n" +"

\n" +" 如果你在创建一个商机或者客户前\n" +" 需要验证,使用线索。可以是一张收到的\n" +" 名片,网站上收到的一个联系方式,或者\n" +" 你导入系统的一个文件数据。\n" +"

\n" +" 一旦被确定,线索可以被装换成商机\n" +" 以及/或者你的地址簿中的新客户。\n" +"

\n" +" " #. module: crm #: field:sale.config.settings,fetchmail_lead:0 msgid "Create leads from incoming mails" -msgstr "" +msgstr "从收到的邮件创建线索" #. module: crm #: view:crm.lead:0 @@ -2480,6 +2555,19 @@ msgid "" "

\n" " " msgstr "" +"

\n" +" 点击创建电话总结\n" +"

\n" +" OpenERP " +"允许你快速记录打入的电话,用来\n" +" " +"跟踪与用户沟通的历史,或通知另一个销售团队。\n" +"

\n" +" " +"为了跟踪处理一个电话,你可以触发请求另一次电话,\n" +" 一次会议或者一个商机。\n" +"

\n" +" " #. module: crm #: model:process.node,note:crm.process_node_leads0 @@ -2526,6 +2614,20 @@ msgid "" "

\n" " " msgstr "" +"

\n" +" " +"点击新建一个销售标签\n" +"

\n" +" " +"创建指定的适合公司活动的标签\n" +" " +"用于更好地分析你的线索和商机。\n" +" " +"标签分类可以反映你的商品结构或者\n" +" " +"不同的销售类型。\n" +"

\n" +" " #. module: crm #: selection:crm.lead.report,creation_month:0 @@ -2538,7 +2640,7 @@ msgstr "8月" #: model:mail.message.subtype,name:crm.mt_lead_lost #: model:mail.message.subtype,name:crm.mt_salesteam_lead_lost msgid "Opportunity Lost" -msgstr "" +msgstr "丢失的商机" #. module: crm #: field:crm.lead.report,deadline_month:0 @@ -2634,7 +2736,7 @@ msgstr "通话日志" #: model:mail.message.subtype,name:crm.mt_lead_won #: model:mail.message.subtype,name:crm.mt_salesteam_lead_won msgid "Opportunity Won" -msgstr "" +msgstr "获胜的商机" #. module: crm #: model:ir.actions.act_window,name:crm.crm_case_section_act_tree @@ -2773,7 +2875,7 @@ msgstr "电话访问" #. module: crm #: view:crm.phonecall.report:0 msgid "Phone calls that are assigned to one of the sale teams I manage" -msgstr "" +msgstr "分配给某个我所管理的销售团队的电话。" #. module: crm #: view:crm.lead:0 @@ -2783,7 +2885,7 @@ msgstr "发现日期" #. module: crm #: view:crm.lead:0 msgid "at" -msgstr "" +msgstr "在" #. module: crm #: model:crm.case.stage,name:crm.stage_lead1 @@ -2848,6 +2950,19 @@ msgid "" "

\n" " " msgstr "" +"

\n" +" " +"点击定义一个新渠道\n" +"

\n" +" " +"使用渠道来记录你的线索和商机的来源。\n" +" " +"主要用于市场工作相关的销售分析报告。\n" +"

\n" +" " +"渠道例子:公司网站,电话,市场活动,经销商等\n" +"

\n" +" " #. module: crm #: view:crm.lead:0 @@ -2885,7 +3000,7 @@ msgid "Working Hours" msgstr "工作时间" #. 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 @@ -3007,7 +3122,7 @@ msgstr "时事通信" #. module: crm #: model:mail.message.subtype,name:crm.mt_salesteam_lead_stage msgid "Opportunity Stage Changed" -msgstr "" +msgstr "商机状态已改变" #. module: crm #: model:ir.actions.act_window,help:crm.crm_lead_stage_act @@ -3021,6 +3136,16 @@ msgid "" "

\n" " " msgstr "" +"

\n" +" " +"点击设置你的线索/商机管道的新阶段。\n" +"

\n" +" " +"阶段允许销售人员记录特定的线索或商机\n" +" " +"在销售循环中的位置。\n" +"

\n" +" " #~ msgid "My Draft " #~ msgstr "我的草稿 " diff --git a/addons/crm/report/crm_lead_report.py b/addons/crm/report/crm_lead_report.py index d12facd66a0..ac1e10a84c6 100644 --- a/addons/crm/report/crm_lead_report.py +++ b/addons/crm/report/crm_lead_report.py @@ -19,17 +19,9 @@ # ############################################################################## -from openerp.osv import fields,osv +from openerp.osv import fields, osv from openerp import tools -from .. import crm - -AVAILABLE_STATES = [ - ('draft','Draft'), - ('open','Open'), - ('cancel', 'Cancelled'), - ('done', 'Closed'), - ('pending','Pending') -] +from openerp.addons.crm import crm MONTHS = [ ('01', 'January'), @@ -66,11 +58,12 @@ class crm_lead_report(osv.osv): # other date fields 'create_date': fields.datetime('Create Date', readonly=True), - 'opening_date': fields.date('Opening Date', readonly=True), + 'opening_date': fields.date('Assignation Date', readonly=True), 'date_closed': fields.date('Close Date', readonly=True), + 'date_last_stage_update': fields.datetime('Last Stage Update', readonly=True), # durations - 'delay_open': fields.float('Delay to Open',digits=(16,2),readonly=True, group_operator="avg",help="Number of Days to open the case"), + 'delay_open': fields.float('Delay to Assign',digits=(16,2),readonly=True, group_operator="avg",help="Number of Days to open the case"), 'delay_close': fields.float('Delay to Close',digits=(16,2),readonly=True, group_operator="avg",help="Number of Days to close the case"), 'delay_expected': fields.float('Overpassed Deadline',digits=(16,2),readonly=True, group_operator="avg"), @@ -79,7 +72,6 @@ class crm_lead_report(osv.osv): 'section_id':fields.many2one('crm.case.section', 'Sales Team', readonly=True), 'channel_id':fields.many2one('crm.case.channel', 'Channel', readonly=True), 'type_id':fields.many2one('crm.case.resource.type', 'Campaign', readonly=True), - 'state': fields.selection(AVAILABLE_STATES, 'Status', size=16, readonly=True), 'company_id': fields.many2one('res.company', 'Company', readonly=True), 'probability': fields.float('Probability',digits=(16,2),readonly=True, group_operator="avg"), 'planned_revenue': fields.float('Planned Revenue',digits=(16,2),readonly=True), @@ -94,10 +86,7 @@ class crm_lead_report(osv.osv): ('opportunity','Opportunity'), ],'Type', help="Type is used to separate Leads and Opportunities"), } - - - - + def init(self, cr): """ @@ -109,7 +98,6 @@ class crm_lead_report(osv.osv): CREATE OR REPLACE VIEW crm_lead_report AS ( SELECT id, - to_char(c.date_deadline, 'YYYY') as deadline_year, to_char(c.date_deadline, 'MM') as deadline_month, to_char(c.date_deadline, 'YYYY-MM-DD') as deadline_day, @@ -121,7 +109,8 @@ class crm_lead_report(osv.osv): to_char(c.date_open, 'YYYY-MM-DD') as opening_date, to_char(c.date_closed, 'YYYY-mm-dd') as date_closed, - c.state, + date_trunc('day',c.date_last_stage_update) as date_last_stage_update, + c.user_id, c.probability, c.stage_id, diff --git a/addons/crm/report/crm_lead_report_view.xml b/addons/crm/report/crm_lead_report_view.xml index 09853c6379e..95cf1d4b7b0 100644 --- a/addons/crm/report/crm_lead_report_view.xml +++ b/addons/crm/report/crm_lead_report_view.xml @@ -13,7 +13,7 @@ - + @@ -69,10 +69,12 @@ - - - - + + + @@ -120,6 +122,7 @@ +
@@ -131,7 +134,7 @@ crm.lead.report.tree crm.lead.report - + @@ -141,7 +144,6 @@ - @@ -150,8 +152,9 @@ - + + diff --git a/addons/crm/report/crm_phonecall_report.py b/addons/crm/report/crm_phonecall_report.py index 77195097965..fba095f1174 100644 --- a/addons/crm/report/crm_phonecall_report.py +++ b/addons/crm/report/crm_phonecall_report.py @@ -19,16 +19,16 @@ # ############################################################################## -from openerp.osv import fields,osv from openerp import tools -from .. import crm +from openerp.addons.crm import crm +from openerp.osv import fields, osv AVAILABLE_STATES = [ - ('draft','Draft'), - ('open','Todo'), + ('draft', 'Draft'), + ('open', 'Todo'), ('cancel', 'Cancelled'), ('done', 'Held'), - ('pending','Pending') + ('pending', 'Pending') ] diff --git a/addons/crm/report/crm_phonecall_report_view.xml b/addons/crm/report/crm_phonecall_report_view.xml index aa2162d163a..52ecd2d13b3 100644 --- a/addons/crm/report/crm_phonecall_report_view.xml +++ b/addons/crm/report/crm_phonecall_report_view.xml @@ -23,7 +23,7 @@ - + diff --git a/addons/crm/res_partner.py b/addons/crm/res_partner.py index fca9222082d..9cf2dc2088f 100644 --- a/addons/crm/res_partner.py +++ b/addons/crm/res_partner.py @@ -41,7 +41,7 @@ class res_partner(osv.osv): _columns = { 'section_id': fields.many2one('crm.case.section', 'Sales Team'), 'opportunity_ids': fields.one2many('crm.lead', 'partner_id',\ - 'Leads and Opportunities', domain=[('state','in', ('draft','open','pending'))]), + 'Leads and Opportunities', domain=[('probability' 'not in', ['0', '100'])]), 'meeting_ids': fields.many2many('crm.meeting', 'crm_meeting_partner_rel','partner_id', 'meeting_id', 'Meetings'), 'phonecall_ids': fields.one2many('crm.phonecall', 'partner_id',\ @@ -87,7 +87,6 @@ class res_partner(osv.osv): 'probability' : probability, 'partner_id' : partner_id, 'categ_ids' : categ_ids and categ_ids[0:1] or [], - 'state' :'draft', 'type': 'opportunity' }, context=context) opportunity_ids[partner_id] = opportunity_id diff --git a/addons/crm/test/crm_lead_cancel.yml b/addons/crm/test/crm_lead_cancel.yml index 0f8d9ba1df9..127fe4d6726 100644 --- a/addons/crm/test/crm_lead_cancel.yml +++ b/addons/crm/test/crm_lead_cancel.yml @@ -1,9 +1,14 @@ - - I set a new sale team (with Marketing at parent) and I cancel unqualified lead . + I set a new sale team (with Marketing at parent) . - !python {model: crm.lead}: | section_id = self.pool.get('crm.case.section').create(cr, uid, {'name': "Phone Marketing", 'parent_id': ref("crm.crm_case_section_2")}) self.write(cr, uid, [ref("crm_case_1")], {'section_id': section_id}) +- + I check unqualified lead . +- + !assert {model: crm.lead, id: crm.crm_case_1, string: Lead is in new stage}: + - stage_id.sequence == 1 - I escalate the lead to parent team. - diff --git a/addons/crm/test/crm_lead_find_stage.yml b/addons/crm/test/crm_lead_find_stage.yml new file mode 100644 index 00000000000..b8a11a4af9e --- /dev/null +++ b/addons/crm/test/crm_lead_find_stage.yml @@ -0,0 +1,43 @@ +- + I create a new lead. +- + !record {model: crm.lead, id: test_crm_lead_new}: + type: 'lead' + name: 'Test lead new' + partner_id: base.res_partner_1 + description: This is the description of the test new lead. + section_id: crm.section_sales_department +- + I check default stage of lead. +- + !python {model: crm.lead}: | + stage = self.pool.get('crm.case.stage').search_read(cr,uid,[('sequence','=',1)],['id'],context)[0] + lead = self.browse(cr, uid, ref('test_crm_lead_new')) + stage_id = self.stage_find(cr, uid , [lead], lead.section_id.id or False,[], context) + assert stage_id == stage['id'], "Default stage of lead is incorrect!" +- + I change type from lead to opportunity. +- + !python {model: crm.lead}: | + self.convert_opportunity(cr, uid ,[ref("test_crm_lead_new")], ref("base.res_partner_2")) +- + Now I check default stage after change type. +- + !python {model: crm.lead}: | + stage = self.pool.get('crm.case.stage').search_read(cr,uid,[('sequence','=',1)],['id'],context)[0] + opp = self.browse(cr, uid, ref('test_crm_lead_new')) + stage_id = self.stage_find(cr, uid , [opp], opp.section_id.id or False,[], context) + assert stage_id == stage['id'], "Default stage of opportunity is incorrect!" +- + Now I change the stage of opportunity to won. +- + !python {model: crm.lead}: | + self.case_mark_won(cr, uid, [ref("test_crm_lead_new")]) +- + I check statge of opp should won, after change stage. +- + !python {model: crm.lead}: | + opp = self.browse(cr, uid, ref('test_crm_lead_new')) + stage_id = self.stage_find(cr, uid , [opp], opp.section_id.id or False,[('probability','=',100.0)], context) + assert stage_id == opp.stage_id.id, "Stage of opportunity is incorrect!" + diff --git a/addons/crm/test/crm_lead_merge.yml b/addons/crm/test/crm_lead_merge.yml index b14f9272df9..fb166e0486f 100644 --- a/addons/crm/test/crm_lead_merge.yml +++ b/addons/crm/test/crm_lead_merge.yml @@ -2,29 +2,29 @@ - During a mixed merge (involving leads and opps), data should be handled a certain way following their type (m2o, m2m, text, ...) Start by creating two leads and an opp. - - !record {model: crm.lead, id: test_crm_lead_01}: - type: 'lead' - name: 'Test lead 1' - partner_id: base.res_partner_1 - stage_id: stage_lead1 - description: This is the description of the test lead 1. -- - !record {model: crm.lead, id: test_crm_lead_02}: - type: 'lead' - name: 'Test lead 2' - partner_id: base.res_partner_3 - stage_id: stage_lead1 - description: This is the description of the test lead 2. -- - !record {model: crm.lead, id: test_crm_opp_01}: + !record {model: crm.lead, id: test_crm_opp_1}: type: 'opportunity' name: 'Test opportunity 1' partner_id: base.res_partner_5 stage_id: stage_lead1 description: This is the description of the test opp 1. +- + !record {model: crm.lead, id: test_crm_lead_first}: + type: 'lead' + name: 'Test lead first' + partner_id: base.res_partner_1 + stage_id: stage_lead1 + description: This is the description of the test lead first. +- + !record {model: crm.lead, id: test_crm_lead_second}: + type: 'lead' + name: 'Test lead second' + partner_id: base.res_partner_1 + stage_id: stage_lead1 + description: This is the description of the test lead second. - !python {model: crm.lead}: | - lead_ids = [ref('test_crm_lead_01'), ref('test_crm_lead_02'), ref('test_crm_opp_01')] + lead_ids = [ref('test_crm_opp_1'), ref('test_crm_lead_first'), ref('test_crm_lead_second')] context.update({'active_model': 'crm.lead', 'active_ids': lead_ids, 'active_id': lead_ids[0]}) - I create a merge wizard and merge the leads and opp together in the first item of the list. @@ -38,18 +38,19 @@ - !python {model: crm.lead}: | merge_id = self.search(cr, uid, [('name', '=', 'Test opportunity 1'), ('partner_id','=', ref("base.res_partner_5"))]) + assert merge_id, 'Fail to create merge opportunity wizard' merge_result = self.browse(cr, uid, merge_id)[0] - assert merge_result.description == 'This is the description of the test opp 1.\n\nThis is the description of the test lead 1.\n\nThis is the description of the test lead 2.', 'Description mismatch: when merging leads/opps with different text values, these values should get concatenated and separated with line returns' + assert merge_result.description == 'This is the description of the test opp 1.\n\nThis is the description of the test lead first.\n\nThis is the description of the test lead second.', 'Description mismatch: when merging leads/opps with different text values, these values should get concatenated and separated with line returns' assert merge_result.type == 'opportunity', 'Type mismatch: when at least one opp in involved in the merge, the result should be a new opp (instead of %s)' % merge_result.type - The other (tailing) leads/opps shouldn't exist anymore. - !python {model: crm.lead}: | - tailing_lead = self.search(cr, uid, [('id', '=', ref('test_crm_lead_01'))]) - assert not tailing_lead, 'This tailing lead (id %s) should not exist anymore' % ref('test_crm_lead_02') + tailing_lead = self.search(cr, uid, [('id', '=', ref('test_crm_lead_first'))]) + assert not tailing_lead, 'This tailing lead (id %s) should not exist anymore' % ref('test_crm_lead_second') - tailing_opp = self.search(cr, uid, [('id', '=', ref('test_crm_lead_02'))]) + tailing_opp = self.search(cr, uid, [('id', '=', ref('test_crm_lead_second'))]) assert not tailing_opp, 'This tailing opp (id %s) should not exist anymore' % ref('test_crm_opp_01') - I want to test leads merge. Start by creating two leads (with the same partner). @@ -122,4 +123,4 @@ assert merge_result.partner_id.id == ref("base.res_partner_5"), 'Partner mismatch' assert merge_result.type == 'opportunity', 'Type mismatch: when opps get merged together, the result should be a new opp (instead of %s)' % merge_result.type tailing_opp = self.search(cr, uid, [('id', '=', ref('test_crm_opp_03'))]) - assert not tailing_opp, 'This tailing opp (id %s) should not exist anymore' % ref('test_crm_opp_03') \ No newline at end of file + assert not tailing_opp, 'This tailing opp (id %s) should not exist anymore' % ref('test_crm_opp_03') diff --git a/addons/crm/test/crm_lead_onchange.yml b/addons/crm/test/crm_lead_onchange.yml index 45e140e890e..d4843ec57e4 100644 --- a/addons/crm/test/crm_lead_onchange.yml +++ b/addons/crm/test/crm_lead_onchange.yml @@ -6,14 +6,13 @@ partner_id: base.res_partner_2 type: opportunity stage_id: crm.stage_lead1 - state: draft - I create a lead record to call a mailing opt-out onchange method. - !record {model: crm.lead, id: crm_case_18}: name: 'Need 20 Days of Consultancy' type: opportunity - state: draft + stage_id: crm.stage_lead1 opt_out: True - I create a phonecall record to call a partner onchange method. diff --git a/addons/crm/test/lead2opportunity2win.yml b/addons/crm/test/lead2opportunity2win.yml index 23545c61bc1..003848c6ee7 100644 --- a/addons/crm/test/lead2opportunity2win.yml +++ b/addons/crm/test/lead2opportunity2win.yml @@ -1,15 +1,25 @@ - In order to test the conversion of a lead into a opportunity, +- + I set lead to open stage. +- + !python {model: crm.lead}: | + self.write(cr, uid, [ref("crm_case_3")],{'stage_id':ref("stage_lead1")}) +- + I check if the lead stage is "Open". +- + !assert {model: crm.lead, id: crm.crm_case_3, string: Lead stage is Open}: + - stage_id.sequence == 1 - I convert lead into opportunity for exiting customer. - !python {model: crm.lead}: | - self.convert_opportunity(cr, uid ,[ref("crm_case_1")], ref("base.res_partner_2")) + self.convert_opportunity(cr, uid ,[ref("crm_case_3")], ref("base.res_partner_2")) - I check details of converted opportunity. - !python {model: crm.lead}: | - lead = self.browse(cr, uid, ref('crm_case_1')) + lead = self.browse(cr, uid, ref('crm_case_3')) assert lead.type == 'opportunity', 'Lead is not converted to opportunity!' assert lead.partner_id.id == ref("base.res_partner_2"), 'Partner mismatch!' assert lead.stage_id.id == ref("stage_lead1"), 'Stage of opportunity is incorrect!' @@ -18,7 +28,7 @@ - !python {model: crm.opportunity2phonecall}: | import time - context.update({'active_model': 'crm.lead', 'active_ids': [ref('crm_case_1')]}) + context.update({'active_model': 'crm.lead', 'active_ids': [ref('crm_case_3')]}) call_id = self.create(cr, uid, {'date': time.strftime('%Y-%m-%d %H:%M:%S'), 'name': "Bonjour M. Jean, Comment allez-vous? J'ai bien reçu votre demande, pourrions-nous en parler quelques minutes?"}, context=context) self.action_schedule(cr, uid, [call_id], context=context) @@ -26,46 +36,46 @@ I check that phonecall is scheduled for that opportunity. - !python {model: crm.phonecall}: | - ids = self.search(cr, uid, [('opportunity_id', '=', ref('crm_case_1'))]) + ids = self.search(cr, uid, [('opportunity_id', '=', ref('crm_case_3'))]) assert len(ids), 'Phonecall is not scheduled' - Now I schedule meeting with customer. - !python {model: crm.lead}: | - self.action_makeMeeting(cr, uid, [ref('crm_case_1')]) + self.action_makeMeeting(cr, uid, [ref('crm_case_3')]) - After communicated with customer, I put some notes with contract details. - !python {model: crm.lead}: | - self.message_post(cr, uid, [ref('crm_case_1')], subject='Test note', body='Détails envoyés par le client sur ​​le FAX pour la qualité') + self.message_post(cr, uid, [ref('crm_case_3')], subject='Test note', body='Détails envoyés par le client sur ​​le FAX pour la qualité') - I win this opportunity - !python {model: crm.lead}: | - self.case_mark_won(cr, uid, [ref("crm_case_1")]) + self.case_mark_won(cr, uid, [ref("crm_case_3")]) - I check details of the opportunity after having won the opportunity. - !python {model: crm.lead}: | - lead = self.browse(cr, uid, ref('crm_case_1')) + lead = self.browse(cr, uid, ref('crm_case_3')) assert lead.stage_id.id == ref('crm.stage_lead6'), "Opportunity stage should be 'Won'." - assert lead.state == 'done', "Opportunity is not in 'done' state!" + assert lead.stage_id.probability == 100.0, "Opportunity is not 'done'" assert lead.probability == 100.0, "Revenue probability should be 100.0!" - I convert mass lead into opportunity customer. - !python {model: crm.lead2opportunity.partner.mass}: | - context.update({'active_model': 'crm.lead', 'active_ids': [ref("crm_case_11"), ref("crm_case_2")], 'active_id': ref("crm_case_11")}) + context.update({'active_model': 'crm.lead', 'active_ids': [ref("crm_case_13"), ref("crm_case_2")], 'active_id': ref("crm_case_13")}) id = self.create(cr, uid, {'user_ids': [(6, 0, [ref('base.user_root')])], 'section_id': ref('crm.section_sales_department')}, context=context) self.mass_convert(cr, uid, [id], context=context) - Now I check first lead converted on opportunity. - !python {model: crm.lead}: | - opp = self.browse(cr, uid, ref('crm_case_11')) - assert opp.name == "Need estimated cost for new project", "Opportunity name not correct" + opp = self.browse(cr, uid, ref('crm_case_13')) + assert opp.name == "Plan to buy 60 keyboards and mouses", "Opportunity name not correct" assert opp.type == 'opportunity', 'Lead is not converted to opportunity!' - expected_partner = "Thomas Passot" + expected_partner = "Will McEncroe" assert opp.partner_id.name == expected_partner, 'Partner mismatch! %s vs %s' % (opp.partner_id.name, expected_partner) assert opp.stage_id.id == ref("stage_lead1"), 'Stage of probability is incorrect!' - @@ -86,14 +96,15 @@ - !python {model: crm.lead}: | lead = self.browse(cr, uid, ref('crm_case_2')) - assert lead.stage_id.id == ref('crm.stage_lead8'), "Opportunity stage should be 'Lost'." - assert lead.state == 'cancel', "Lost opportunity is not in 'cancel' state!" + assert lead.stage_id.id == ref('crm.stage_lead7'), "Opportunity stage should be 'Lost'." + assert lead.stage_id.sequence != 1 and lead.stage_id.probability == 0.0, "Lost opportunity is not in 'cancel' state!" assert lead.probability == 0.0, "Revenue probability should be 0.0!" - I confirm review needs meeting. - !python {model: crm.meeting}: | context.update({'active_model': 'crm.meeting'}) + self.case_open(cr, uid, [ref('base_calendar.crm_meeting_4')]) - I invite a user for meeting. - diff --git a/addons/crm/wizard/crm_lead_to_opportunity.py b/addons/crm/wizard/crm_lead_to_opportunity.py index 3c847ade42a..d954e0486cc 100644 --- a/addons/crm/wizard/crm_lead_to_opportunity.py +++ b/addons/crm/wizard/crm_lead_to_opportunity.py @@ -21,7 +21,6 @@ from openerp.osv import fields, osv from openerp.tools.translate import _ -from openerp import tools import re class crm_lead2opportunity_partner(osv.osv_memory): @@ -35,6 +34,8 @@ class crm_lead2opportunity_partner(osv.osv_memory): ('merge', 'Merge with existing opportunities') ], 'Conversion Action', required=True), 'opportunity_ids': fields.many2many('crm.lead', string='Opportunities'), + 'user_id': fields.many2one('res.users', 'Salesperson', select=True), + 'section_id': fields.many2one('crm.case.section', 'Sales Team', select=True), } def default_get(self, cr, uid, fields, context=None): @@ -58,11 +59,11 @@ class crm_lead2opportunity_partner(osv.osv_memory): if partner_id: # Search for opportunities that have the same partner and that arent done or cancelled - ids = lead_obj.search(cr, uid, [('partner_id', '=', partner_id), ('state', '!=', 'done')]) + ids = lead_obj.search(cr, uid, [('partner_id', '=', partner_id), ('probability', '<', '100')]) for id in ids: tomerge.add(id) if email: - ids = lead_obj.search(cr, uid, [('email_from', 'ilike', email[0]), ('state', '!=', 'done')]) + ids = lead_obj.search(cr, uid, [('email_from', 'ilike', email[0]), ('probability', '<', '100')]) for id in ids: tomerge.add(id) @@ -74,9 +75,27 @@ class crm_lead2opportunity_partner(osv.osv_memory): res.update({'name' : len(tomerge) >= 2 and 'merge' or 'convert'}) if 'opportunity_ids' in fields and len(tomerge) >= 2: res.update({'opportunity_ids': list(tomerge)}) - + if lead.user_id: + res.update({'user_id': lead.user_id.id}) + if lead.section_id: + res.update({'section_id': lead.section_id.id}) return res + def on_change_user(self, cr, uid, ids, user_id, section_id, context=None): + """ When changing the user, also set a section_id or restrict section id + to the ones user_id is member of. """ + if user_id: + if section_id: + user_in_section = self.pool.get('crm.case.section').search(cr, uid, [('id', '=', section_id), '|', ('user_id', '=', user_id), ('member_ids', '=', user_id)], context=context, count=True) + else: + user_in_section = False + if not user_in_section: + section_id = False + section_ids = self.pool.get('crm.case.section').search(cr, uid, ['|', ('user_id', '=', user_id), ('member_ids', '=', user_id)], context=context) + if section_ids: + section_id = section_ids[0] + return {'value': {'section_id': section_id}} + def view_init(self, cr, uid, fields, context=None): """ Check some preconditions before the wizard executes. @@ -85,8 +104,8 @@ class crm_lead2opportunity_partner(osv.osv_memory): context = {} lead_obj = self.pool.get('crm.lead') for lead in lead_obj.browse(cr, uid, context.get('active_ids', []), context=context): - if lead.state in ['done', 'cancel']: - raise osv.except_osv(_("Warning!"), _("Closed/Cancelled leads cannot be converted into opportunities.")) + if lead.probability == 100: + raise osv.except_osv(_("Warning!"), _("Closed/Dead leads cannot be converted into opportunities.")) return False def _convert_opportunity(self, cr, uid, ids, vals, context=None): @@ -118,15 +137,15 @@ class crm_lead2opportunity_partner(osv.osv_memory): w = self.browse(cr, uid, ids, context=context)[0] opp_ids = [o.id for o in w.opportunity_ids] if w.name == 'merge': - lead_id = self.pool.get('crm.lead').merge_opportunity(cr, uid, opp_ids, context=context) + lead_id = self.pool.get('crm.lead').merge_opportunity(cr, uid, opp_ids, w.user_id.id, w.section_id.id, context=context) lead_ids = [lead_id] lead = self.pool.get('crm.lead').read(cr, uid, lead_id, ['type'], context=context) if lead['type'] == "lead": context.update({'active_ids': lead_ids}) - self._convert_opportunity(cr, uid, ids, {'lead_ids': lead_ids}, context=context) + self._convert_opportunity(cr, uid, ids, {'lead_ids': lead_ids, 'user_ids': [w.user_id.id], 'section_id': w.section_id.id}, context=context) else: lead_ids = context.get('active_ids', []) - self._convert_opportunity(cr, uid, ids, {'lead_ids': lead_ids}, context=context) + self._convert_opportunity(cr, uid, ids, {'lead_ids': lead_ids, 'user_ids': [w.user_id.id], 'section_id': w.section_id.id}, context=context) return self.pool.get('crm.lead').redirect_opportunity_view(cr, uid, lead_ids[0], context=context) diff --git a/addons/crm/wizard/crm_lead_to_opportunity_view.xml b/addons/crm/wizard/crm_lead_to_opportunity_view.xml index 9ddd1fc701f..4f6522c27de 100644 --- a/addons/crm/wizard/crm_lead_to_opportunity_view.xml +++ b/addons/crm/wizard/crm_lead_to_opportunity_view.xml @@ -10,6 +10,10 @@ + + + + @@ -56,6 +60,10 @@ attrs="{'required': [('action', '=', 'exist')], 'invisible':[('action','!=','exist')]}" class="oe_inline"/> + + + + @@ -72,12 +80,6 @@ - - - - - -
- - -
-

- Higher is the value, higher is the probability for this partner to get more leads. -

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