diff --git a/addons/account/i18n/ru.po b/addons/account/i18n/ru.po
index e3b3f080365..c666e4dcf2e 100644
--- a/addons/account/i18n/ru.po
+++ b/addons/account/i18n/ru.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:04+0000\n"
-"PO-Revision-Date: 2013-06-19 11:49+0000\n"
+"PO-Revision-Date: 2013-07-02 06:32+0000\n"
"Last-Translator: Chertykov Denis
\n" +" Không tìm thấy mục nhật ký.\n" +"
\n" +" " #. module: account -#: code:addons/account/account.py:1639 +#: code:addons/account/account.py:1677 #, python-format msgid "" "You cannot unreconcile journal items if they has been generated by the " @@ -977,7 +983,7 @@ msgstr "Đến hạn" #. module: account #: field:account.config.settings,purchase_journal_id:0 msgid "Purchase journal" -msgstr "" +msgstr "Nhật ký mua hàng" #. module: account #: model:mail.message.subtype,description:account.mt_invoice_paid @@ -1017,7 +1023,7 @@ msgid "Liability" msgstr "Liability" #. module: account -#: code:addons/account/account_invoice.py:867 +#: code:addons/account/account_invoice.py:899 #, python-format msgid "Please define sequence on the journal related to this invoice." msgstr "" @@ -1088,13 +1094,13 @@ msgstr "Mã" #. module: account #: view:account.config.settings:0 msgid "Features" -msgstr "" +msgstr "Tính năng" #. module: account -#: code:addons/account/account.py:2308 -#: code:addons/account/account_bank_statement.py:423 -#: code:addons/account/account_invoice.py:74 -#: code:addons/account/account_invoice.py:744 +#: code:addons/account/account.py:2346 +#: code:addons/account/account_bank_statement.py:424 +#: code:addons/account/account_invoice.py:77 +#: code:addons/account/account_invoice.py:775 #: code:addons/account/account_move_line.py:195 #, python-format msgid "No Analytic Journal !" @@ -1220,7 +1226,7 @@ msgstr "" #. module: account #: model:account.account.type,name:account.data_account_type_bank #: selection:account.bank.accounts.wizard,account_type:0 -#: code:addons/account/account.py:3054 +#: code:addons/account/account.py:3092 #, python-format msgid "Bank" msgstr "Ngân hàng" @@ -1309,7 +1315,7 @@ msgstr "Outgoing Currencies Rate" #: view:account.analytic.account:0 #: field:account.config.settings,chart_template_id:0 msgid "Template" -msgstr "" +msgstr "Mẫu" #. module: account #: selection:account.analytic.journal,type:0 @@ -1401,7 +1407,7 @@ msgstr "Mức" #: code:addons/account/wizard/account_change_currency.py:38 #, python-format msgid "You can only change currency for Draft Invoice." -msgstr "" +msgstr "Bạn chỉ có thể thay đổi đồng tiền cho dự thảo hóa đơn" #. module: account #: report:account.invoice:0 @@ -1427,7 +1433,7 @@ msgstr "Chọn một chu kỳ bắt đầu và một chu kỳ kết thúc" #: model:account.financial.report,name:account.account_financial_report_profitandloss0 #: model:ir.actions.act_window,name:account.action_account_report_pl msgid "Profit and Loss" -msgstr "" +msgstr "Lãi và lỗ" #. module: account #: model:ir.model,name:account.model_account_account_template @@ -1500,7 +1506,7 @@ msgstr "" #. module: account #: field:account.invoice.report,state:0 msgid "Invoice Status" -msgstr "" +msgstr "Tình trạng hóa đơn" #. module: account #: view:account.bank.statement:0 @@ -1522,18 +1528,20 @@ msgstr "Khoản phải thu" #: code:addons/account/account.py:768 #, python-format msgid "%s (copy)" -msgstr "" +msgstr "%s (sao chép)" #. module: account +#: report:account.account.balance:0 #: selection:account.balance.report,display_account:0 #: selection:account.common.account.report,display_account:0 +#: report:account.general.ledger_landscape:0 #: selection:account.partner.balance,display_partner:0 #: selection:account.report.general.ledger,display_account:0 msgid "With balance is not equal to 0" msgstr "With balance is not equal to 0" #. module: account -#: code:addons/account/account.py:1445 +#: code:addons/account/account.py:1483 #, python-format msgid "" "There is no default debit account defined \n" @@ -1601,7 +1609,7 @@ msgstr "" #. module: account #: view:account.config.settings:0 msgid "eInvoicing & Payments" -msgstr "" +msgstr "Hóa đơn điện tử & Thanh toán" #. module: account #: view:account.analytic.cost.ledger.journal.report:0 @@ -1640,7 +1648,7 @@ msgstr "Case Code" #. module: account #: field:account.config.settings,company_footer:0 msgid "Bank accounts footer preview" -msgstr "" +msgstr "Xem trước lề dưới tài khoản ngân hàng" #. module: account #: selection:account.account,type:0 @@ -1681,7 +1689,7 @@ msgstr "Không bị thuế" #. module: account #: view:account.journal:0 msgid "Advanced Settings" -msgstr "" +msgstr "Thiết lập nâng cao" #. module: account #: view:account.bank.statement:0 @@ -1756,8 +1764,10 @@ msgstr "" #: view:account.invoice:0 #: view:account.invoice.report:0 #: field:account.move.line,invoice:0 +#: code:addons/account/account_invoice.py:1157 #: model:ir.model,name:account.model_account_invoice #: model:res.request.link,name:account.req_link_invoice +#, python-format msgid "Invoice" msgstr "Hóa đơn" @@ -1810,7 +1820,7 @@ msgstr "Doanh số theo loại tài khoản" #: model:account.payment.term,name:account.account_payment_term_15days #: model:account.payment.term,note:account.account_payment_term_15days msgid "15 Days" -msgstr "" +msgstr "15 ngày" #. module: account #: model:ir.ui.menu,name:account.periodical_processing_invoicing @@ -1832,7 +1842,7 @@ msgid "" msgstr "" #. module: account -#: code:addons/account/account_move_line.py:857 +#: code:addons/account/account_move_line.py:854 #, python-format msgid "Some entries are already reconciled." msgstr "" @@ -1880,7 +1890,7 @@ msgstr "nếu thiết lập này bị sai. bạn có thể ẩn nó thay vì xó #. module: account #: field:account.report.general.ledger,sortby:0 msgid "Sort by" -msgstr "" +msgstr "Xếp theo" #. module: account #: model:ir.actions.act_window,name:account.act_account_partner_account_move_all @@ -1948,12 +1958,12 @@ msgstr "Draft statement" #. module: account #: model:mail.message.subtype,description:account.mt_invoice_validated msgid "Invoice validated" -msgstr "" +msgstr "Hóa đơn đã xác nhận" #. module: account #: field:account.config.settings,module_account_check_writing:0 msgid "Pay your suppliers by check" -msgstr "" +msgstr "Trả tiền cho NCC bằng séc" #. module: account #: field:account.move.line.reconcile,credit:0 @@ -1984,36 +1994,36 @@ msgstr "" #: code:addons/account/account.py:634 #: code:addons/account/account.py:636 #: code:addons/account/account.py:930 -#: code:addons/account/account.py:1062 -#: code:addons/account/account.py:1064 -#: code:addons/account/account.py:1103 -#: code:addons/account/account.py:1283 -#: code:addons/account/account.py:1297 -#: code:addons/account/account.py:1320 -#: code:addons/account/account.py:1327 -#: code:addons/account/account.py:1549 -#: code:addons/account/account.py:1553 -#: code:addons/account/account.py:1639 -#: code:addons/account/account.py:2320 -#: code:addons/account/account.py:2640 -#: code:addons/account/account.py:3427 +#: code:addons/account/account.py:1071 +#: code:addons/account/account.py:1073 +#: code:addons/account/account.py:1116 +#: code:addons/account/account.py:1319 +#: code:addons/account/account.py:1333 +#: code:addons/account/account.py:1356 +#: code:addons/account/account.py:1363 +#: code:addons/account/account.py:1587 +#: code:addons/account/account.py:1591 +#: code:addons/account/account.py:1677 +#: code:addons/account/account.py:2358 +#: code:addons/account/account.py:2678 +#: code:addons/account/account.py:3465 #: code:addons/account/account_analytic_line.py:89 #: code:addons/account/account_analytic_line.py:98 -#: code:addons/account/account_bank_statement.py:367 -#: code:addons/account/account_bank_statement.py:380 -#: code:addons/account/account_bank_statement.py:418 +#: code:addons/account/account_bank_statement.py:368 +#: code:addons/account/account_bank_statement.py:381 +#: code:addons/account/account_bank_statement.py:419 #: code:addons/account/account_cash_statement.py:256 #: code:addons/account/account_cash_statement.py:300 -#: code:addons/account/account_invoice.py:867 -#: code:addons/account/account_invoice.py:901 -#: code:addons/account/account_invoice.py:1091 -#: code:addons/account/account_move_line.py:578 -#: code:addons/account/account_move_line.py:831 +#: code:addons/account/account_invoice.py:899 +#: code:addons/account/account_invoice.py:933 +#: code:addons/account/account_invoice.py:1124 +#: code:addons/account/account_move_line.py:579 +#: code:addons/account/account_move_line.py:828 +#: code:addons/account/account_move_line.py:851 #: code:addons/account/account_move_line.py:854 -#: code:addons/account/account_move_line.py:857 -#: code:addons/account/account_move_line.py:1122 -#: code:addons/account/account_move_line.py:1124 -#: code:addons/account/account_move_line.py:1159 +#: code:addons/account/account_move_line.py:1119 +#: code:addons/account/account_move_line.py:1121 +#: code:addons/account/account_move_line.py:1156 #: code:addons/account/report/common_report_header.py:92 #: code:addons/account/wizard/account_change_currency.py:38 #: code:addons/account/wizard/account_change_currency.py:59 @@ -2027,11 +2037,11 @@ msgstr "" #: code:addons/account/wizard/account_report_common.py:158 #: code:addons/account/wizard/account_report_common.py:164 #: code:addons/account/wizard/account_use_model.py:44 -#: code:addons/account/wizard/pos_box.py:32 -#: code:addons/account/wizard/pos_box.py:36 +#: code:addons/account/wizard/pos_box.py:31 +#: code:addons/account/wizard/pos_box.py:35 #, python-format msgid "Error!" -msgstr "" +msgstr "Lỗi!" #. module: account #: model:ir.actions.act_window,help:account.action_invoice_tree2 @@ -2070,7 +2080,7 @@ msgid "period close" msgstr "đóng chu kỳ" #. module: account -#: code:addons/account/account.py:1049 +#: code:addons/account/account.py:1058 #, python-format msgid "" "This journal already contains items for this period, therefore you cannot " @@ -2085,7 +2095,7 @@ msgstr "Entries By Line" #. module: account #: field:account.vat.declaration,based_on:0 msgid "Based on" -msgstr "" +msgstr "Dựa trên" #. module: account #: model:ir.actions.act_window,help:account.action_bank_statement_tree @@ -2133,7 +2143,7 @@ msgstr "Phân tích ngân quỹ" #. module: account #: model:ir.actions.report.xml,name:account.account_journal_sale_purchase msgid "Sale/Purchase Journal" -msgstr "" +msgstr "Nhật ký Mua/Bán hàng" #. module: account #: view:account.analytic.account:0 @@ -2142,7 +2152,7 @@ msgid "Analytic account" msgstr "Tài khoản phân tích" #. module: account -#: code:addons/account/account_bank_statement.py:405 +#: code:addons/account/account_bank_statement.py:406 #, python-format msgid "Please verify that an account is defined in the journal." msgstr "Vui lòng kiểm tra việc gán một tài khoản cho sổ nhật ký này." @@ -2156,7 +2166,7 @@ msgstr "Hợp lệ" #: field:account.bank.statement,message_follower_ids:0 #: field:account.invoice,message_follower_ids:0 msgid "Followers" -msgstr "" +msgstr "Người theo dõi" #. module: account #: model:ir.actions.act_window,name:account.action_account_print_journal @@ -2185,14 +2195,14 @@ msgstr "Account Aged Trial balance Report" #. module: account #: view:account.fiscalyear.close.state:0 msgid "Close Fiscal Year" -msgstr "" +msgstr "Đóng năm tài khóa" #. module: account #. openerp-web #: code:addons/account/static/src/xml/account_move_line_quickadd.xml:14 #, python-format msgid "Journal :" -msgstr "" +msgstr "Nhật ký:" #. module: account #: sql_constraint:account.fiscal.position.tax:0 @@ -2209,12 +2219,12 @@ msgstr "Định nghĩa thuế" #: view:account.config.settings:0 #: model:ir.actions.act_window,name:account.action_account_config msgid "Configure Accounting" -msgstr "" +msgstr "Cấu hình kế toán" #. module: account #: field:account.invoice.report,uom_name:0 msgid "Reference Unit of Measure" -msgstr "" +msgstr "Tham chiếu đơn vị tính" #. module: account #: help:account.journal,allow_date:0 @@ -2230,12 +2240,12 @@ msgstr "" #: code:addons/account/static/src/xml/account_move_reconciliation.xml:8 #, python-format msgid "Good job!" -msgstr "" +msgstr "Tốt lắm!" #. module: account #: field:account.config.settings,module_account_asset:0 msgid "Assets management" -msgstr "" +msgstr "Quản lý tài sản" #. module: account #: view:account.account:0 @@ -2244,7 +2254,9 @@ msgstr "" #: selection:account.common.partner.report,result_selection:0 #: selection:account.partner.balance,result_selection:0 #: selection:account.partner.ledger,result_selection:0 +#: report:account.third_party_ledger:0 #: code:addons/account/report/account_partner_balance.py:299 +#: code:addons/account/report/account_partner_ledger.py:274 #, python-format msgid "Payable Accounts" msgstr "Các tài khoản phải trả" @@ -2411,7 +2423,7 @@ msgstr "Search Chart of Account Templates" #. module: account #: report:account.invoice:0 msgid "Customer Code" -msgstr "" +msgstr "Mã khách hàng" #. module: account #: view:account.account.type:0 @@ -2554,7 +2566,7 @@ msgid "Create an Account Based on this Template" msgstr "Tạo một Tài khoản dựa trên mẫu này" #. module: account -#: code:addons/account/account_invoice.py:901 +#: code:addons/account/account_invoice.py:933 #, python-format msgid "" "Cannot create the invoice.\n" @@ -2575,7 +2587,7 @@ msgid "Main Sequence" msgstr "Main Sequence" #. module: account -#: code:addons/account/account_bank_statement.py:477 +#: code:addons/account/account_bank_statement.py:478 #, python-format msgid "" "In order to delete a bank statement, you must first cancel it to delete " @@ -2599,7 +2611,7 @@ msgid "Fiscal Positions" msgstr "Fiscal Positions" #. module: account -#: code:addons/account/account_move_line.py:578 +#: code:addons/account/account_move_line.py:579 #, python-format msgid "You cannot create journal items on a closed account %s %s." msgstr "" @@ -2707,7 +2719,7 @@ msgid "Account Model Entries" msgstr "Account Model Entries" #. module: account -#: code:addons/account/account.py:3164 +#: code:addons/account/account.py:3202 #, python-format msgid "EXJ" msgstr "EXJ" @@ -2823,21 +2835,20 @@ msgid "Accounts" msgstr "Các tài khoản" #. module: account -#: code:addons/account/account.py:3503 -#: code:addons/account/account_bank_statement.py:404 -#: code:addons/account/account_invoice.py:378 -#: code:addons/account/account_invoice.py:484 -#: code:addons/account/account_invoice.py:582 -#: code:addons/account/account_invoice.py:597 -#: code:addons/account/account_invoice.py:605 -#: code:addons/account/account_invoice.py:627 -#: code:addons/account/account_move_line.py:535 +#: code:addons/account/account.py:3541 +#: code:addons/account/account_bank_statement.py:405 +#: code:addons/account/account_invoice.py:507 +#: code:addons/account/account_invoice.py:609 +#: code:addons/account/account_invoice.py:624 +#: code:addons/account/account_invoice.py:632 +#: code:addons/account/account_invoice.py:657 +#: code:addons/account/account_move_line.py:536 #, python-format msgid "Configuration Error!" msgstr "Lỗi cấu hình!" #. module: account -#: code:addons/account/account_bank_statement.py:433 +#: code:addons/account/account_bank_statement.py:434 #, python-format msgid "Statement %s confirmed, journal items were created." msgstr "" @@ -3030,7 +3041,7 @@ msgid "" msgstr "" #. module: account -#: code:addons/account/account.py:1062 +#: code:addons/account/account.py:1071 #, python-format msgid "You should choose the periods that belong to the same company." msgstr "" @@ -3043,7 +3054,7 @@ msgid "Sales by Account" msgstr "Doanh thu theo tài khoản" #. module: account -#: code:addons/account/account.py:1411 +#: code:addons/account/account.py:1449 #, python-format msgid "You cannot delete a posted journal entry \"%s\"." msgstr "" @@ -3059,8 +3070,8 @@ msgid "Sale journal" msgstr "" #. module: account -#: code:addons/account/account.py:2308 -#: code:addons/account/account_invoice.py:744 +#: code:addons/account/account.py:2346 +#: code:addons/account/account_invoice.py:775 #: code:addons/account/account_move_line.py:195 #, python-format msgid "You have to define an analytic journal on the '%s' journal!" @@ -3227,7 +3238,7 @@ msgid "Fiscal Position" msgstr "Fiscal Position" #. module: account -#: code:addons/account/account_invoice.py:791 +#: code:addons/account/account_invoice.py:823 #, python-format msgid "" "Tax base different!\n" @@ -3325,7 +3336,7 @@ msgstr "" "always use the rate at date." #. module: account -#: code:addons/account/account.py:2640 +#: code:addons/account/account.py:2678 #, python-format msgid "There is no parent code for the template account." msgstr "" @@ -3388,8 +3399,8 @@ msgid "View" msgstr "View" #. module: account -#: code:addons/account/account.py:3422 -#: code:addons/account/account_bank.py:95 +#: code:addons/account/account.py:3460 +#: code:addons/account/account_bank.py:94 #, python-format msgid "BNK" msgstr "BNK" @@ -3659,7 +3670,7 @@ msgstr "" "have the same references than the statement itself" #. module: account -#: code:addons/account/account_invoice.py:984 +#: code:addons/account/account_invoice.py:1016 #, python-format msgid "" "You cannot create an invoice on a centralized journal. Uncheck the " @@ -3674,7 +3685,7 @@ msgid "Starting Balance" msgstr "Số dư ban đầu" #. module: account -#: code:addons/account/account_invoice.py:1434 +#: code:addons/account/account_invoice.py:1465 #, python-format msgid "No Partner Defined !" msgstr "Không có đối tác được định nghĩa" @@ -3728,7 +3739,7 @@ msgid "" msgstr "" #. module: account -#: code:addons/account/account_move_line.py:535 +#: code:addons/account/account_move_line.py:536 #, python-format msgid "" "Cannot find any account journal of %s type for this company.\n" @@ -3878,7 +3889,7 @@ msgid "Period Length (days)" msgstr "" #. module: account -#: code:addons/account/account.py:1327 +#: code:addons/account/account.py:1363 #, python-format msgid "" "You cannot modify a posted entry of this journal.\n" @@ -3947,9 +3958,13 @@ msgid "VAT :" msgstr "Thuế GTGT :" #. module: account +#: report:account.account.balance:0 #: report:account.central.journal:0 #: view:account.config.settings:0 +#: report:account.general.journal:0 #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 +#: report:account.journal.period.print:0 #: report:account.partner.balance:0 #: report:account.third_party_ledger:0 #: report:account.third_party_ledger_other:0 @@ -4041,7 +4056,7 @@ msgid "Chart of Accounts Template" msgstr "Hoạch đồ Kế toán Mẫu" #. module: account -#: code:addons/account/account.py:2320 +#: code:addons/account/account.py:2358 #, python-format msgid "" "Maturity date of entry line generated by model line '%s' of model '%s' is " @@ -4053,8 +4068,10 @@ msgstr "" "Hãy xác định đối tác trên nó" #. module: account +#: report:account.account.balance:0 #: selection:account.balance.report,display_account:0 #: selection:account.common.account.report,display_account:0 +#: report:account.general.ledger_landscape:0 #: selection:account.report.general.ledger,display_account:0 #: selection:account.tax,type_tax_use:0 #: selection:account.tax.template,type_tax_use:0 @@ -4213,7 +4230,7 @@ msgid "Name" msgstr "Tên" #. module: account -#: code:addons/account/installer.py:94 +#: code:addons/account/installer.py:115 #, python-format msgid "No unconfigured company !" msgstr "" @@ -4284,8 +4301,8 @@ msgid "" msgstr "" #. module: account -#: code:addons/account/account_move_line.py:1061 -#: code:addons/account/account_move_line.py:1146 +#: code:addons/account/account_move_line.py:1058 +#: code:addons/account/account_move_line.py:1143 #, python-format msgid "You cannot use an inactive account." msgstr "" @@ -4315,7 +4332,7 @@ msgid "Consolidated Children" msgstr "Consolidated Children" #. module: account -#: code:addons/account/account_invoice.py:550 +#: code:addons/account/account_invoice.py:573 #: code:addons/account/wizard/account_invoice_refund.py:146 #, python-format msgid "Insufficient Data!" @@ -4523,7 +4540,7 @@ msgid "Cancel the Selected Invoices" msgstr "Hủy bỏ các hóa đơn được chọn" #. module: account -#: code:addons/account/account_bank_statement.py:423 +#: code:addons/account/account_bank_statement.py:424 #, python-format msgid "You have to assign an analytic journal on the '%s' journal!" msgstr "" @@ -4590,8 +4607,8 @@ msgid "Supplier invoice sequence" msgstr "" #. module: account -#: code:addons/account/account_invoice.py:583 -#: code:addons/account/account_invoice.py:598 +#: code:addons/account/account_invoice.py:610 +#: code:addons/account/account_invoice.py:625 #, python-format msgid "" "Cannot find a chart of account, you should create one from Settings\\" @@ -4654,7 +4671,7 @@ msgid "Account Base Code" msgstr "Account Base Code" #. module: account -#: code:addons/account/account_move_line.py:867 +#: code:addons/account/account_move_line.py:864 #, python-format msgid "" "You have to provide an account for the write off/exchange difference entry." @@ -4720,7 +4737,7 @@ msgid "Statement from invoice or payment" msgstr "Statement from invoice or payment" #. module: account -#: code:addons/account/installer.py:94 +#: code:addons/account/installer.py:115 #, python-format msgid "" "There is currently no company without chart of account. The wizard will " @@ -4774,7 +4791,7 @@ msgid "Bank statements are entered in the system." msgstr "Bank statements are entered in the system." #. module: account -#: code:addons/account/wizard/account_reconcile.py:121 +#: code:addons/account/wizard/account_reconcile.py:122 #, python-format msgid "Reconcile Writeoff" msgstr "Reconcile Writeoff" @@ -4864,7 +4881,7 @@ msgid "" msgstr "" #. module: account -#: code:addons/account/account_invoice.py:627 +#: code:addons/account/account_invoice.py:658 #, python-format msgid "" "Cannot find any account journal of %s type for this company.\n" @@ -4879,7 +4896,7 @@ msgid "Based On" msgstr "Dựa trên" #. module: account -#: code:addons/account/account.py:3166 +#: code:addons/account/account.py:3204 #, python-format msgid "ECNJ" msgstr "ECNJ" @@ -4945,7 +4962,7 @@ msgid "" msgstr "" #. module: account -#: code:addons/account/account.py:3356 +#: code:addons/account/account.py:3394 #, python-format msgid "Purchase Tax %.2f%%" msgstr "" @@ -5019,7 +5036,7 @@ msgid "" msgstr "" #. module: account -#: code:addons/account/account.py:3167 +#: code:addons/account/account.py:3205 #, python-format msgid "MISC" msgstr "" @@ -5188,7 +5205,7 @@ msgid "Tax Application" msgstr "Tax Application" #. module: account -#: code:addons/account/account_invoice.py:890 +#: code:addons/account/account_invoice.py:922 #, python-format msgid "" "Please verify the price of the invoice !\n" @@ -5362,7 +5379,7 @@ msgid "Target Moves" msgstr "Target Moves" #. module: account -#: code:addons/account/account.py:1416 +#: code:addons/account/account.py:1454 #, python-format msgid "" "Move cannot be deleted if linked to an invoice. (Invoice: %s - Move ID:%s)" @@ -5443,7 +5460,7 @@ msgid "Internal Name" msgstr "Tên nội bộ" #. module: account -#: code:addons/account/account_move_line.py:1188 +#: code:addons/account/account_move_line.py:1185 #, python-format msgid "" "Cannot create an automatic sequence for this piece.\n" @@ -5515,7 +5532,7 @@ msgid "Compute Code (if type=code)" msgstr "Compute Code (if type=code)" #. module: account -#: code:addons/account/account_invoice.py:485 +#: code:addons/account/account_invoice.py:508 #, python-format msgid "" "Cannot find a chart of accounts for this company, you should create one." @@ -5646,7 +5663,7 @@ msgid "Recompute taxes and total" msgstr "" #. module: account -#: code:addons/account/account.py:1103 +#: code:addons/account/account.py:1116 #, python-format msgid "You cannot modify/delete a journal with entries for this period." msgstr "" @@ -5676,7 +5693,7 @@ msgid "Amount Computation" msgstr "Tính toán giá trị" #. module: account -#: code:addons/account/account_move_line.py:1108 +#: code:addons/account/account_move_line.py:1105 #, python-format msgid "You can not add/modify entries in a closed period %s of journal %s." msgstr "" @@ -5976,7 +5993,7 @@ msgid "Fixed Amount" msgstr "Giá trị cố định" #. module: account -#: code:addons/account/account_move_line.py:1059 +#: code:addons/account/account_move_line.py:1056 #, python-format msgid "You cannot change the tax, you should remove and recreate lines." msgstr "" @@ -6027,14 +6044,14 @@ msgid "Child Accounts" msgstr "Tài khoản con" #. module: account -#: code:addons/account/account_move_line.py:1120 +#: code:addons/account/account_move_line.py:1117 #, python-format msgid "Move name (id): %s (%s)" msgstr "" #. module: account #: view:account.move.line.reconcile:0 -#: code:addons/account/account_move_line.py:882 +#: code:addons/account/account_move_line.py:879 #, python-format msgid "Write-Off" msgstr "Miễn bỏ" @@ -6060,7 +6077,7 @@ msgstr "Income" #: view:account.config.settings:0 #: view:account.invoice:0 #: view:account.invoice.report:0 -#: code:addons/account/account_invoice.py:355 +#: code:addons/account/account_invoice.py:390 #, python-format msgid "Supplier" msgstr "Nhà cung cấp" @@ -6080,7 +6097,7 @@ msgid "Account n°" msgstr "Tài khoản số" #. module: account -#: code:addons/account/account_invoice.py:92 +#: code:addons/account/account_invoice.py:95 #, python-format msgid "Free Reference" msgstr "Tham chiếu tự do" @@ -6090,7 +6107,9 @@ msgstr "Tham chiếu tự do" #: selection:account.common.partner.report,result_selection:0 #: selection:account.partner.balance,result_selection:0 #: selection:account.partner.ledger,result_selection:0 +#: report:account.third_party_ledger:0 #: code:addons/account/report/account_partner_balance.py:301 +#: code:addons/account/report/account_partner_ledger.py:276 #, python-format msgid "Receivable and Payable Accounts" msgstr "Các Tài khoản Phải thu và Phải trả" @@ -6199,7 +6218,7 @@ msgid "Filter by" msgstr "Lọc theo" #. module: account -#: code:addons/account/account.py:2296 +#: code:addons/account/account.py:2334 #, python-format msgid "You have a wrong expression \"%(...)s\" in your model !" msgstr "" @@ -6247,7 +6266,7 @@ msgid "Number of Days" msgstr "Số ngày" #. module: account -#: code:addons/account/account.py:1321 +#: code:addons/account/account.py:1357 #, python-format msgid "" "You cannot validate this journal entry because account \"%s\" does not " @@ -6395,7 +6414,7 @@ msgid "Models" msgstr "" #. module: account -#: code:addons/account/account_invoice.py:1091 +#: code:addons/account/account_invoice.py:1124 #, python-format msgid "" "You cannot cancel an invoice which is partially paid. You need to " @@ -6567,7 +6586,7 @@ msgid "You cannot create journal items on closed account." msgstr "" #. module: account -#: code:addons/account/account_invoice.py:606 +#: code:addons/account/account_invoice.py:633 #, python-format msgid "Invoice line account's company and invoice's compnay does not match." msgstr "" @@ -6588,7 +6607,7 @@ msgid "The related account currency if not equal to the company one." msgstr "The related account currency if not equal to the company one." #. module: account -#: code:addons/account/installer.py:48 +#: code:addons/account/installer.py:69 #, python-format msgid "Custom" msgstr "" @@ -6615,7 +6634,7 @@ msgid "Internal Transfers Account" msgstr "" #. module: account -#: code:addons/account/wizard/pos_box.py:33 +#: code:addons/account/wizard/pos_box.py:32 #, python-format msgid "Please check that the field 'Journal' is set on the Bank Statement" msgstr "" @@ -6641,7 +6660,7 @@ msgid "Power" msgstr "Power" #. module: account -#: code:addons/account/account.py:3427 +#: code:addons/account/account.py:3465 #, python-format msgid "Cannot generate an unused journal code." msgstr "" @@ -6717,12 +6736,12 @@ msgstr "" "children. In this case, the evaluation order is important." #. module: account -#: code:addons/account/account.py:1410 -#: code:addons/account/account.py:1415 -#: code:addons/account/account.py:1444 -#: code:addons/account/account.py:1451 -#: code:addons/account/account_invoice.py:983 -#: code:addons/account/account_move_line.py:1008 +#: code:addons/account/account.py:1448 +#: code:addons/account/account.py:1453 +#: code:addons/account/account.py:1482 +#: code:addons/account/account.py:1489 +#: code:addons/account/account_invoice.py:1015 +#: code:addons/account/account_move_line.py:1005 #: code:addons/account/wizard/account_automatic_reconcile.py:148 #: code:addons/account/wizard/account_fiscalyear_close.py:88 #: code:addons/account/wizard/account_fiscalyear_close.py:99 @@ -6807,7 +6826,9 @@ msgstr "" #: report:account.invoice:0 #: selection:account.invoice,type:0 #: selection:account.invoice.report,type:0 +#: code:addons/account/account_invoice.py:1160 #: selection:report.invoice.created,type:0 +#, python-format msgid "Supplier Refund" msgstr "Hoàn tiền cho Nhà cung cấp" @@ -6952,7 +6973,7 @@ msgstr "Analytic Entries Statistics" #. module: account #: code:addons/account/account_analytic_line.py:142 -#: code:addons/account/account_move_line.py:958 +#: code:addons/account/account_move_line.py:955 #, python-format msgid "Entries: " msgstr "Các bút toán: " @@ -7065,7 +7086,7 @@ msgstr "" #. module: account #: code:addons/account/account.py:1024 -#: code:addons/account/account_move_line.py:1108 +#: code:addons/account/account_move_line.py:1105 #, python-format msgid "Error !" msgstr "Lỗi !" @@ -7292,7 +7313,7 @@ msgid "" msgstr "" #. module: account -#: code:addons/account/account.py:2266 +#: code:addons/account/account.py:2304 #, python-format msgid "" "You can specify year, month and date in the name of the model using the " @@ -7371,7 +7392,7 @@ msgid "Done" msgstr "Hoàn tất" #. module: account -#: code:addons/account/account.py:1283 +#: code:addons/account/account.py:1319 #, python-format msgid "" "You cannot validate a non-balanced entry.\n" @@ -7667,7 +7688,7 @@ msgstr "Báo cáo" #. module: account #. openerp-web -#: code:addons/account/account_move_line.py:783 +#: code:addons/account/account_move_line.py:780 #: code:addons/account/static/src/js/account_move_reconciliation.js:90 #, python-format msgid "Warning" @@ -7733,7 +7754,7 @@ msgid "Use model" msgstr "Sử dụng mô hình" #. module: account -#: code:addons/account/account.py:1452 +#: code:addons/account/account.py:1490 #, python-format msgid "" "There is no default credit account defined \n" @@ -7784,7 +7805,7 @@ msgid "Root/View" msgstr "" #. module: account -#: code:addons/account/account.py:3168 +#: code:addons/account/account.py:3206 #, python-format msgid "OPEJ" msgstr "" @@ -7853,7 +7874,7 @@ msgid "Maturity Date" msgstr "" #. module: account -#: code:addons/account/account.py:3155 +#: code:addons/account/account.py:3193 #, python-format msgid "Sales Journal" msgstr "Sổ nhật ký Bán hàng" @@ -7864,7 +7885,7 @@ msgid "Invoice Tax" msgstr "Thuế Hóa đơn" #. module: account -#: code:addons/account/account_move_line.py:1188 +#: code:addons/account/account_move_line.py:1185 #, python-format msgid "No piece number !" msgstr "No piece number !" @@ -7903,7 +7924,7 @@ msgid "Sales Properties" msgstr "Các thuộc tính Bán hàng" #. module: account -#: code:addons/account/account.py:3503 +#: code:addons/account/account.py:3541 #, python-format msgid "" "You have to set a code for the bank account defined on the selected chart of " @@ -7928,7 +7949,7 @@ msgstr "Đến" #. module: account #: selection:account.move.line,centralisation:0 -#: code:addons/account/account.py:1503 +#: code:addons/account/account.py:1541 #, python-format msgid "Currency Adjustment" msgstr "" @@ -7960,7 +7981,7 @@ msgid "May" msgstr "Tháng Năm" #. module: account -#: code:addons/account/account_invoice.py:788 +#: code:addons/account/account_invoice.py:820 #, python-format msgid "Global taxes defined, but they are not in invoice lines !" msgstr "" @@ -8001,7 +8022,7 @@ msgstr "Post Journal Entries" #: view:account.config.settings:0 #: view:account.invoice:0 #: view:account.invoice.report:0 -#: code:addons/account/account_invoice.py:353 +#: code:addons/account/account_invoice.py:388 #, python-format msgid "Customer" msgstr "Khách hàng" @@ -8017,7 +8038,7 @@ msgstr "" #: selection:account.bank.accounts.wizard,account_type:0 #: selection:account.entries.report,type:0 #: selection:account.journal,type:0 -#: code:addons/account/account.py:3054 +#: code:addons/account/account.py:3092 #, python-format msgid "Cash" msgstr "Tiền mặt" @@ -8187,6 +8208,7 @@ msgstr "Đã sửa" #: code:addons/account/account.py:653 #: code:addons/account/account.py:656 #: code:addons/account/account.py:668 +#: code:addons/account/account.py:1031 #, python-format msgid "Warning !" msgstr "Cảnh báo !" @@ -8254,7 +8276,7 @@ msgid "Select a currency to apply on the invoice" msgstr "Chọn một loại tiền để áp dụng cho hóa đơn" #. module: account -#: code:addons/account/account_invoice.py:869 +#: code:addons/account/account_invoice.py:901 #, python-format msgid "No Invoice Lines !" msgstr "No Invoice Lines !" @@ -8279,7 +8301,7 @@ msgid "Tax Use In" msgstr "Thuế sử dụng trong" #. module: account -#: code:addons/account/account_bank_statement.py:381 +#: code:addons/account/account_bank_statement.py:382 #, python-format msgid "" "The statement balance is incorrect !\n" @@ -8287,7 +8309,7 @@ msgid "" msgstr "" #. module: account -#: code:addons/account/account_bank_statement.py:419 +#: code:addons/account/account_bank_statement.py:420 #, python-format msgid "The account entries lines are not in valid state." msgstr "The account entries lines are not in valid state." @@ -8331,7 +8353,7 @@ msgid "Associated Partner" msgstr "Đối tác Liên quan" #. module: account -#: code:addons/account/account_invoice.py:1434 +#: code:addons/account/account_invoice.py:1465 #, python-format msgid "You must first select a partner !" msgstr "You must first select a partner !" @@ -8412,13 +8434,13 @@ msgstr "" "tính toán các khoản thuế tiếp theo" #. module: account -#: code:addons/account/account.py:3158 +#: code:addons/account/account.py:3196 #, python-format msgid "Purchase Refund Journal" msgstr "Sổ nhật ký Hoàn tiền Mua hàng" #. module: account -#: code:addons/account/account.py:1297 +#: code:addons/account/account.py:1333 #, python-format msgid "Please define a sequence on the journal." msgstr "" @@ -8663,7 +8685,7 @@ msgid "${object.company_id.name} Invoice (Ref ${object.number or 'n/a'})" msgstr "" #. module: account -#: code:addons/account/account_move_line.py:1213 +#: code:addons/account/account_move_line.py:1210 #, python-format msgid "" "You cannot use this general account in this journal, check the tab 'Entry " @@ -8764,7 +8786,7 @@ msgid "The partner account used for this invoice." msgstr "The partner account used for this invoice." #. module: account -#: code:addons/account/account.py:3353 +#: code:addons/account/account.py:3391 #, python-format msgid "Tax %.2f%%" msgstr "" @@ -8782,7 +8804,7 @@ msgid "Payment Term Line" msgstr "Payment Term Line" #. module: account -#: code:addons/account/account.py:3156 +#: code:addons/account/account.py:3194 #, python-format msgid "Purchase Journal" msgstr "Purchase Journal" @@ -8953,7 +8975,7 @@ msgid "Journal Name" msgstr "Journal Name" #. module: account -#: code:addons/account/account_move_line.py:832 +#: code:addons/account/account_move_line.py:829 #, python-format msgid "Entry \"%s\" is not valid !" msgstr "Bút toán \"%s\" không hợp lệ !" @@ -9005,7 +9027,7 @@ msgstr "" "entry." #. module: account -#: code:addons/account/account_move_line.py:1009 +#: code:addons/account/account_move_line.py:1006 #, python-format msgid "The account move (%s) for centralisation has been confirmed." msgstr "" @@ -9067,7 +9089,7 @@ msgid "Reconciled entries" msgstr "Reconciled entries" #. module: account -#: code:addons/account/account.py:2296 +#: code:addons/account/account.py:2334 #, python-format msgid "Wrong model !" msgstr "" @@ -9089,7 +9111,7 @@ msgid "Print Account Partner Balance" msgstr "Print Account Partner Balance" #. module: account -#: code:addons/account/account_move_line.py:1124 +#: code:addons/account/account_move_line.py:1121 #, python-format msgid "" "You cannot do this modification on a reconciled entry. You can just change " @@ -9123,7 +9145,7 @@ msgstr "chưa biết" #. module: account #: field:account.fiscalyear.close,journal_id:0 -#: code:addons/account/account.py:3160 +#: code:addons/account/account.py:3198 #, python-format msgid "Opening Entries Journal" msgstr "Opening Entries Journal" @@ -9220,7 +9242,7 @@ msgid "Unit of Currency" msgstr "" #. module: account -#: code:addons/account/account.py:3157 +#: code:addons/account/account.py:3195 #, python-format msgid "Sales Refund Journal" msgstr "Sales Refund Journal" @@ -9286,13 +9308,13 @@ msgid "Purchase Tax(%)" msgstr "Thuế mua hàng(%)" #. module: account -#: code:addons/account/account_invoice.py:869 +#: code:addons/account/account_invoice.py:901 #, python-format msgid "Please create some invoice lines." msgstr "Please create some invoice lines." #. module: account -#: code:addons/account/wizard/pos_box.py:37 +#: code:addons/account/wizard/pos_box.py:36 #, python-format msgid "" "Please check that the field 'Internal Transfers Account' is set on the " @@ -9305,7 +9327,7 @@ msgid "Display Detail" msgstr "" #. module: account -#: code:addons/account/account.py:3165 +#: code:addons/account/account.py:3203 #, python-format msgid "SCNJ" msgstr "SCNJ" @@ -9467,8 +9489,8 @@ msgid "Receivable Account" msgstr "Tài khoản Phải thu" #. module: account -#: code:addons/account/account_move_line.py:774 -#: code:addons/account/account_move_line.py:827 +#: code:addons/account/account_move_line.py:771 +#: code:addons/account/account_move_line.py:824 #, python-format msgid "To reconcile the entries company should be the same for all entries." msgstr "" @@ -9569,7 +9591,7 @@ msgid "Move" msgstr "Move" #. module: account -#: code:addons/account/account_bank_statement.py:477 +#: code:addons/account/account_bank_statement.py:478 #: code:addons/account/wizard/account_period_close.py:51 #, python-format msgid "Invalid Action!" @@ -9666,7 +9688,7 @@ msgid "Balance :" msgstr "Số dư :" #. module: account -#: code:addons/account/account.py:1549 +#: code:addons/account/account.py:1587 #, python-format msgid "Cannot create moves for different companies." msgstr "" @@ -9757,7 +9779,7 @@ msgid "Immediate Payment" msgstr "" #. module: account -#: code:addons/account/account.py:1464 +#: code:addons/account/account.py:1502 #, python-format msgid " Centralisation" msgstr "" @@ -9846,7 +9868,7 @@ msgid "Unreconciled" msgstr "Chưa được đối soát" #. module: account -#: code:addons/account/account_invoice.py:890 +#: code:addons/account/account_invoice.py:922 #, python-format msgid "Bad total !" msgstr "Tổng không hợp lệ !" @@ -9938,7 +9960,7 @@ msgid "Comparison" msgstr "" #. module: account -#: code:addons/account/account_move_line.py:1122 +#: code:addons/account/account_move_line.py:1119 #, python-format msgid "" "You cannot do this modification on a confirmed entry. You can just change " @@ -10027,7 +10049,7 @@ msgid "Journal Entry Model" msgstr "Journal Entry Model" #. module: account -#: code:addons/account/account.py:1064 +#: code:addons/account/account.py:1073 #, python-format msgid "Start period should precede then end period." msgstr "" @@ -10329,6 +10351,7 @@ msgstr "Mở việc đối soát với ngân hàng" #. module: account #: field:account.account,company_id:0 +#: report:account.account.balance:0 #: field:account.aged.trial.balance,company_id:0 #: field:account.analytic.journal,company_id:0 #: field:account.balance.report,company_id:0 @@ -10344,7 +10367,9 @@ msgstr "Mở việc đối soát với ngân hàng" #: field:account.entries.report,company_id:0 #: field:account.fiscal.position,company_id:0 #: field:account.fiscalyear,company_id:0 +#: report:account.general.journal:0 #: field:account.general.journal,company_id:0 +#: report:account.general.ledger_landscape:0 #: field:account.installer,company_id:0 #: field:account.invoice,company_id:0 #: field:account.invoice.line,company_id:0 @@ -10353,6 +10378,7 @@ msgstr "Mở việc đối soát với ngân hàng" #: field:account.invoice.tax,company_id:0 #: field:account.journal,company_id:0 #: field:account.journal.period,company_id:0 +#: report:account.journal.period.print:0 #: field:account.model,company_id:0 #: field:account.move,company_id:0 #: field:account.move.line,company_id:0 @@ -10448,7 +10474,7 @@ msgid "" msgstr "" #. module: account -#: code:addons/account/account_move_line.py:1059 +#: code:addons/account/account_move_line.py:1056 #, python-format msgid "Unable to change tax!" msgstr "" @@ -10517,8 +10543,10 @@ msgstr "Accounts Fiscal Position" #: view:account.invoice:0 #: selection:account.invoice,type:0 #: selection:account.invoice.report,type:0 +#: code:addons/account/account_invoice.py:1158 #: model:process.process,name:account.process_process_supplierinvoiceprocess0 #: selection:report.invoice.created,type:0 +#, python-format msgid "Supplier Invoice" msgstr "Hóa đơn nhà cung cấp" @@ -10604,8 +10632,10 @@ msgid "" msgstr "" #. module: account +#: report:account.account.balance:0 #: selection:account.balance.report,display_account:0 #: selection:account.common.account.report,display_account:0 +#: report:account.general.ledger_landscape:0 #: selection:account.report.general.ledger,display_account:0 msgid "With movements" msgstr "With movements" @@ -10701,7 +10731,7 @@ msgid "Entries Sorted by" msgstr "" #. module: account -#: code:addons/account/account_invoice.py:1515 +#: code:addons/account/account_invoice.py:1546 #, python-format msgid "" "The selected unit of measure is not compatible with the unit of measure of " @@ -10782,6 +10812,8 @@ msgstr "Tìm kiếm hóa đơn" #: report:account.invoice:0 #: view:account.invoice:0 #: view:account.invoice.report:0 +#: code:addons/account/account_invoice.py:1159 +#, python-format msgid "Refund" msgstr "Hoàn tiền" @@ -10852,7 +10884,7 @@ msgid "Manual Invoice Taxes" msgstr "Manual Invoice Taxes" #. module: account -#: code:addons/account/account_invoice.py:550 +#: code:addons/account/account_invoice.py:573 #, python-format msgid "The payment term of supplier does not have a payment term line." msgstr "" diff --git a/addons/account/report/account_aged_partner_balance.py b/addons/account/report/account_aged_partner_balance.py index 897b8366b7a..3b000e40592 100644 --- a/addons/account/report/account_aged_partner_balance.py +++ b/addons/account/report/account_aged_partner_balance.py @@ -366,12 +366,13 @@ class aged_trial_report(report_sxw.rml_parse, common_report_header): return period or 0.0 def _get_partners(self,data): + # TODO: deprecated, to remove in trunk if data['form']['result_selection'] == 'customer': - return 'Receivable Accounts' + return self._translate('Receivable Accounts') elif data['form']['result_selection'] == 'supplier': - return 'Payable Accounts' + return self._translate('Payable Accounts') elif data['form']['result_selection'] == 'customer_supplier': - return 'Receivable and Payable Accounts' + return self._translate('Receivable and Payable Accounts') return '' report_sxw.report_sxw('report.account.aged_trial_balance', 'res.partner', diff --git a/addons/account/report/account_aged_partner_balance.rml b/addons/account/report/account_aged_partner_balance.rml index fb79ab0d199..5b5404e9c86 100644 --- a/addons/account/report/account_aged_partner_balance.rml +++ b/addons/account/report/account_aged_partner_balance.rml @@ -147,7 +147,9 @@A password reset was requested for the OpenERP account linked to this " +"email.
\n" +"\n" +"You may change your password by following this link.
\n" +"\n" +"Note: If you do not expect this, you can safely ignore this email.
" +msgstr "" +"\n" +"\\n\n" +"Bạn có một yêu cầu reset mật khẩu từ tài khoản OpenERPA gắn với email " +"này.
\\n\n" +"\\n\n" +"Bạn có thể thay đổi mật khẩu thông qua đường dẫn này.
\\n\n" +"\\n\n" +"Lưu ý: Nếu đây không phải chủ ý của bạn. Bạn có thể bỏ qua email này.
" + +#. module: auth_signup +#. openerp-web +#: code:addons/auth_signup/static/src/js/auth_signup.js:114 +#, python-format +msgid "Please enter a name." +msgstr "Xin nhập tên." + +#. module: auth_signup +#: model:ir.model,name:auth_signup.model_res_users +msgid "Users" +msgstr "Người dùng" + +#. module: auth_signup +#: field:res.partner,signup_url:0 +msgid "Signup URL" +msgstr "" + +#. module: auth_signup +#. openerp-web +#: code:addons/auth_signup/static/src/js/auth_signup.js:117 +#, python-format +msgid "Please enter a username." +msgstr "" + +#. module: auth_signup +#: selection:res.users,state:0 +msgid "Active" +msgstr "" + +#. module: auth_signup +#: code:addons/auth_signup/res_users.py:270 +#, python-format +msgid "" +"Cannot send email: no outgoing email server configured.\n" +"You can configure it under Settings/General Settings." +msgstr "" + +#. module: auth_signup +#. openerp-web +#: code:addons/auth_signup/static/src/xml/auth_signup.xml:12 +#, python-format +msgid "Username" +msgstr "" + +#. module: auth_signup +#. openerp-web +#: code:addons/auth_signup/static/src/xml/auth_signup.xml:8 +#, python-format +msgid "Name" +msgstr "" + +#. module: auth_signup +#. openerp-web +#: code:addons/auth_signup/static/src/js/auth_signup.js:173 +#, python-format +msgid "Please enter a username or email address." +msgstr "" + +#. module: auth_signup +#: selection:res.users,state:0 +msgid "Resetting Password" +msgstr "" + +#. module: auth_signup +#. openerp-web +#: code:addons/auth_signup/static/src/xml/auth_signup.xml:13 +#, python-format +msgid "Username (Email)" +msgstr "" + +#. module: auth_signup +#: field:res.partner,signup_expiration:0 +msgid "Signup Expiration" +msgstr "" + +#. module: auth_signup +#: help:base.config.settings,auth_signup_reset_password:0 +msgid "This allows users to trigger a password reset from the Login page." +msgstr "" + +#. module: auth_signup +#. openerp-web +#: code:addons/auth_signup/static/src/xml/auth_signup.xml:25 +#, python-format +msgid "Log in" +msgstr "" + +#. module: auth_signup +#: field:res.partner,signup_valid:0 +msgid "Signup Token is Valid" +msgstr "" + +#. module: auth_signup +#. openerp-web +#: code:addons/auth_signup/static/src/js/auth_signup.js:111 +#: code:addons/auth_signup/static/src/js/auth_signup.js:114 +#: code:addons/auth_signup/static/src/js/auth_signup.js:117 +#: code:addons/auth_signup/static/src/js/auth_signup.js:120 +#: code:addons/auth_signup/static/src/js/auth_signup.js:123 +#: code:addons/auth_signup/static/src/js/auth_signup.js:170 +#: code:addons/auth_signup/static/src/js/auth_signup.js:173 +#, python-format +msgid "Login" +msgstr "" + +#. module: auth_signup +#. openerp-web +#: code:addons/auth_signup/static/src/js/auth_signup.js:97 +#, python-format +msgid "Invalid signup token" +msgstr "" + +#. module: auth_signup +#. openerp-web +#: code:addons/auth_signup/static/src/js/auth_signup.js:123 +#, python-format +msgid "Passwords do not match; please retype them." +msgstr "" + +#. module: auth_signup +#. openerp-web +#: code:addons/auth_signup/static/src/js/auth_signup.js:111 +#: code:addons/auth_signup/static/src/js/auth_signup.js:170 +#, python-format +msgid "No database selected !" +msgstr "" + +#. module: auth_signup +#: view:res.users:0 +msgid "Reset Password" +msgstr "" + +#. module: auth_signup +#: field:base.config.settings,auth_signup_reset_password:0 +msgid "Enable password reset from Login page" +msgstr "" + +#. module: auth_signup +#. openerp-web +#: code:addons/auth_signup/static/src/xml/auth_signup.xml:30 +#, python-format +msgid "Back to Login" +msgstr "" + +#. module: auth_signup +#. openerp-web +#: code:addons/auth_signup/static/src/xml/auth_signup.xml:22 +#, python-format +msgid "Sign up" +msgstr "" + +#. module: auth_signup +#: model:ir.model,name:auth_signup.model_res_partner +msgid "Partner" +msgstr "" + +#. module: auth_signup +#: field:res.partner,signup_token:0 +msgid "Signup Token" +msgstr "" diff --git a/addons/auth_signup/i18n/zh_CN.po b/addons/auth_signup/i18n/zh_CN.po index aa8d9f952c1..497b872997f 100644 --- a/addons/auth_signup/i18n/zh_CN.po +++ b/addons/auth_signup/i18n/zh_CN.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME\n" +" Click to add a contact in your address book.\n" +"
\n" +" OpenERP helps you easily track all activities related to\n" +" a customer; discussions, history of business opportunities,\n" +" documents, etc.\n" +"
\n" +" " +msgstr "" + +#. module: contacts +#: model:ir.actions.act_window,name:contacts.action_contacts +#: model:ir.ui.menu,name:contacts.menu_contacts +msgid "Contacts" +msgstr "연락처" diff --git a/addons/contacts/i18n/vi.po b/addons/contacts/i18n/vi.po new file mode 100644 index 00000000000..d404d947fe2 --- /dev/null +++ b/addons/contacts/i18n/vi.po @@ -0,0 +1,45 @@ +# Vietnamese translation for openobject-addons +# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR\n" +" Click to add a contact in your address book.\n" +"
\n" +" OpenERP helps you easily track all activities related to\n" +" a customer; discussions, history of business opportunities,\n" +" documents, etc.\n" +"
\n" +" " +msgstr "" +"\n" +" Nhấn để thêm liên lạc vào sổ địa chỉ.\n" +"
\n" +" OpenERP giúp bạn theo dõi các hoạt động liên quan tới\n" +" một khách hàng; thảo luận, lịch sử cơ hội kinh doanh,\n" +" tài liệu v.v....\n" +"
\n" +" " + +#. module: contacts +#: model:ir.actions.act_window,name:contacts.action_contacts +#: model:ir.ui.menu,name:contacts.menu_contacts +msgid "Contacts" +msgstr "Liên hệ" diff --git a/addons/contacts/static/src/img/icon.png b/addons/contacts/static/description/icon.png similarity index 100% rename from addons/contacts/static/src/img/icon.png rename to addons/contacts/static/description/icon.png diff --git a/addons/crm/crm_lead.py b/addons/crm/crm_lead.py index 1070af22b3c..af02e3be1bf 100644 --- a/addons/crm/crm_lead.py +++ b/addons/crm/crm_lead.py @@ -19,7 +19,6 @@ # ############################################################################## -from openerp.addons.base_status.base_stage import base_stage import crm from datetime import datetime from operator import itemgetter @@ -68,7 +67,7 @@ CRM_LEAD_PENDING_STATES = ( crm.AVAILABLE_STATES[4][0], # Pending ) -class crm_lead(base_stage, format_address, osv.osv): +class crm_lead(format_address, osv.osv): """ CRM Lead Case """ _name = "crm.lead" _description = "Lead/Opportunity" @@ -93,20 +92,6 @@ class crm_lead(base_stage, format_address, osv.osv): context['empty_list_help_document_name'] = _("leads") return super(crm_lead, self).get_empty_list_help(cr, uid, help, context=context) - def create(self, cr, uid, vals, context=None): - if context is None: - context = {} - if not vals.get('stage_id'): - ctx = context.copy() - if vals.get('section_id'): - ctx['default_section_id'] = vals['section_id'] - if vals.get('type'): - ctx['default_type'] = vals['type'] - vals['stage_id'] = self._get_default_stage_id(cr, uid, context=ctx) - # context: no_log, because subtype already handle this - create_context = dict(context, mail_create_nolog=True) - return super(crm_lead, self).create(cr, uid, vals, context=create_context) - def _get_default_section_id(self, cr, uid, context=None): """ Gives default section by checking if present in the context """ return self._resolve_section_id_from_context(cr, uid, context=context) or False @@ -126,8 +111,7 @@ class crm_lead(base_stage, format_address, osv.osv): if type(context.get('default_section_id')) in (int, long): return context.get('default_section_id') if isinstance(context.get('default_section_id'), basestring): - section_name = context['default_section_id'] - section_ids = self.pool.get('crm.case.section').name_search(cr, uid, name=section_name, context=context) + section_ids = self.pool.get('crm.case.section').name_search(cr, uid, name=context['default_section_id'], context=context) if len(section_ids) == 1: return int(section_ids[0][0]) return None @@ -326,8 +310,7 @@ class crm_lead(base_stage, format_address, osv.osv): _defaults = { 'active': 1, 'type': 'lead', - 'user_id': lambda s, cr, uid, c: s._get_default_user(cr, uid, c), - 'email_from': lambda s, cr, uid, c: s._get_default_email(cr, uid, c), + 'user_id': lambda s, cr, uid, c: uid, 'stage_id': lambda s, cr, uid, c: s._get_default_stage_id(cr, uid, c), 'section_id': lambda s, cr, uid, c: s._get_default_section_id(cr, uid, c), 'company_id': lambda s, cr, uid, c: s.pool.get('res.company')._company_default_get(cr, uid, 'crm.lead', context=c), @@ -341,30 +324,29 @@ class crm_lead(base_stage, format_address, osv.osv): def onchange_stage_id(self, cr, uid, ids, stage_id, context=None): if not stage_id: - return {'value':{}} + return {'value': {}} stage = self.pool.get('crm.case.stage').browse(cr, uid, stage_id, context) if not stage.on_change: - return {'value':{}} - return {'value':{'probability': stage.probability}} + return {'value': {}} + return {'value': {'probability': stage.probability}} - def on_change_partner(self, cr, uid, ids, partner_id, context=None): - result = {} + def on_change_partner_id(self, cr, uid, ids, partner_id, context=None): values = {} if partner_id: partner = self.pool.get('res.partner').browse(cr, uid, partner_id, context=context) values = { - 'partner_name' : partner.name, - 'street' : partner.street, - 'street2' : partner.street2, - 'city' : partner.city, - 'state_id' : partner.state_id and partner.state_id.id or False, - 'country_id' : partner.country_id and partner.country_id.id or False, - 'email_from' : partner.email, - 'phone' : partner.phone, - 'mobile' : partner.mobile, - 'fax' : partner.fax, + 'partner_name': partner.name, + 'street': partner.street, + 'street2': partner.street2, + 'city': partner.city, + 'state_id': partner.state_id and partner.state_id.id or False, + 'country_id': partner.country_id and partner.country_id.id or False, + 'email_from': partner.email, + 'phone': partner.phone, + 'mobile': partner.mobile, + 'fax': partner.fax, } - return {'value' : values} + return {'value': values} def on_change_user(self, cr, uid, ids, user_id, context=None): """ When changing the user, also set a section_id or restrict section id @@ -405,7 +387,7 @@ class crm_lead(base_stage, format_address, osv.osv): # collect all section_ids section_ids = [] types = ['both'] - if not cases : + if not cases: type = context.get('default_type') types += [type] if section_id: @@ -433,24 +415,18 @@ class crm_lead(base_stage, format_address, osv.osv): return stage_ids[0] return False - def case_cancel(self, cr, uid, ids, context=None): - """ Overrides case_cancel from base_stage to set probability """ - res = super(crm_lead, self).case_cancel(cr, uid, ids, context=context) - self.write(cr, uid, ids, {'probability' : 0.0}, context=context) - return res - - def case_reset(self, cr, uid, ids, context=None): - """ Overrides case_reset from base_stage to set probability """ - res = super(crm_lead, self).case_reset(cr, uid, ids, context=context) - self.write(cr, uid, ids, {'probability': 0.0}, context=context) - return res + 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) if stage_id: - self.case_set(cr, uid, [lead.id], values_to_update={'probability': 0.0}, new_stage_id=stage_id, context=context) + self.stage_set(cr, uid, [lead.id], stage_id, context=context) return True def case_mark_won(self, cr, uid, ids, context=None): @@ -458,7 +434,21 @@ class crm_lead(base_stage, format_address, osv.osv): 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) if stage_id: - self.case_set(cr, uid, [lead.id], values_to_update={'probability': 100.0}, new_stage_id=stage_id, context=context) + self.stage_set(cr, uid, [lead.id], stage_id, context=context) + return True + + 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 set_priority(self, cr, uid, ids, priority): @@ -932,12 +922,22 @@ class crm_lead(base_stage, format_address, osv.osv): } return res + def create(self, cr, uid, vals, context=None): + if context is None: + context = {} + if vals.get('type') and not context.get('default_type'): + context['default_type'] = vals.get('type') + if vals.get('section_id') and not context.get('default_section_id'): + context['default_section_id'] = vals.get('section_id') + + # context: no_log, because subtype already handle this + create_context = dict(context, mail_create_nolog=True) + return super(crm_lead, self).create(cr, uid, vals, context=create_context) + def write(self, cr, uid, ids, vals, context=None): if vals.get('stage_id') and not vals.get('probability'): - # change probability of lead(s) if required by stage - stage = self.pool.get('crm.case.stage').browse(cr, uid, vals['stage_id'], context=context) - if stage.on_change: - vals['probability'] = stage.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): @@ -1024,7 +1024,7 @@ class crm_lead(base_stage, format_address, osv.osv): 'user_id': False, } if msg.get('author_id'): - defaults.update(self.on_change_partner(cr, uid, None, msg.get('author_id'), context=context)['value']) + defaults.update(self.on_change_partner_id(cr, uid, None, msg.get('author_id'), context=context)['value']) if msg.get('priority') in dict(crm.AVAILABLE_PRIORITIES): defaults['priority'] = msg.get('priority') defaults.update(custom_values) diff --git a/addons/crm/crm_lead_demo.xml b/addons/crm/crm_lead_demo.xml index e7e6beae33e..3917fadbd32 100644 --- a/addons/crm/crm_lead_demo.xml +++ b/addons/crm/crm_lead_demo.xml @@ -263,13 +263,6 @@ Andrew
diff --git a/addons/crm/doc/changelog.rst b/addons/crm/doc/changelog.rst
new file mode 100644
index 00000000000..cb1602a8d39
--- /dev/null
+++ b/addons/crm/doc/changelog.rst
@@ -0,0 +1,11 @@
+.. _changelog:
+
+Changelog
+=========
+
+`trunk (saas-2)`
+----------------
+
+- ``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
new file mode 100644
index 00000000000..d70e045befe
--- /dev/null
+++ b/addons/crm/doc/index.rst
@@ -0,0 +1,13 @@
+CRM module documentation
+========================
+
+CRM documentation topics
+'''''''''''''''''''''''''
+
+Changelog
+'''''''''
+
+.. toctree::
+ :maxdepth: 1
+
+ changelog.rst
diff --git a/addons/crm/res_partner.py b/addons/crm/res_partner.py
index f25b1303c02..fca9222082d 100644
--- a/addons/crm/res_partner.py
+++ b/addons/crm/res_partner.py
@@ -56,7 +56,7 @@ class res_partner(osv.osv):
default.update({'opportunity_ids': [], 'meeting_ids' : [], 'phonecall_ids' : []})
- super(res_partner, self).copy(cr, uid, record_id, default, context)
+ return super(res_partner, self).copy(cr, uid, record_id, default, context)
def redirect_partner_form(self, cr, uid, partner_id, context=None):
search_view = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'base', 'view_res_partner_filter')
diff --git a/addons/crm/html/Stephan-Keller.jpg b/addons/crm/static/description/Stephan-Keller.jpg
similarity index 100%
rename from addons/crm/html/Stephan-Keller.jpg
rename to addons/crm/static/description/Stephan-Keller.jpg
diff --git a/addons/crm/html/claudia-sebastiani.jpg b/addons/crm/static/description/claudia-sebastiani.jpg
similarity index 100%
rename from addons/crm/html/claudia-sebastiani.jpg
rename to addons/crm/static/description/claudia-sebastiani.jpg
diff --git a/addons/crm/html/crm_game.png b/addons/crm/static/description/crm_game.png
similarity index 100%
rename from addons/crm/html/crm_game.png
rename to addons/crm/static/description/crm_game.png
diff --git a/addons/crm/html/crm_game_01.png b/addons/crm/static/description/crm_game_01.png
similarity index 100%
rename from addons/crm/html/crm_game_01.png
rename to addons/crm/static/description/crm_game_01.png
diff --git a/addons/crm/html/crm_game_02.png b/addons/crm/static/description/crm_game_02.png
similarity index 100%
rename from addons/crm/html/crm_game_02.png
rename to addons/crm/static/description/crm_game_02.png
diff --git a/addons/crm/html/crm_game_03.png b/addons/crm/static/description/crm_game_03.png
similarity index 100%
rename from addons/crm/html/crm_game_03.png
rename to addons/crm/static/description/crm_game_03.png
diff --git a/addons/crm/html/crm_linkedin.png b/addons/crm/static/description/crm_linkedin.png
similarity index 100%
rename from addons/crm/html/crm_linkedin.png
rename to addons/crm/static/description/crm_linkedin.png
diff --git a/addons/crm/html/crm_sc_01.jpg b/addons/crm/static/description/crm_sc_01.jpg
similarity index 100%
rename from addons/crm/html/crm_sc_01.jpg
rename to addons/crm/static/description/crm_sc_01.jpg
diff --git a/addons/crm/html/crm_sc_01.png b/addons/crm/static/description/crm_sc_01.png
similarity index 100%
rename from addons/crm/html/crm_sc_01.png
rename to addons/crm/static/description/crm_sc_01.png
diff --git a/addons/crm/html/crm_sc_02.png b/addons/crm/static/description/crm_sc_02.png
similarity index 100%
rename from addons/crm/html/crm_sc_02.png
rename to addons/crm/static/description/crm_sc_02.png
diff --git a/addons/crm/html/crm_sc_04a.png b/addons/crm/static/description/crm_sc_04a.png
similarity index 100%
rename from addons/crm/html/crm_sc_04a.png
rename to addons/crm/static/description/crm_sc_04a.png
diff --git a/addons/crm/html/crm_sc_04b.png b/addons/crm/static/description/crm_sc_04b.png
similarity index 100%
rename from addons/crm/html/crm_sc_04b.png
rename to addons/crm/static/description/crm_sc_04b.png
diff --git a/addons/crm/html/crm_sc_04c.png b/addons/crm/static/description/crm_sc_04c.png
similarity index 100%
rename from addons/crm/html/crm_sc_04c.png
rename to addons/crm/static/description/crm_sc_04c.png
diff --git a/addons/crm/html/crm_sc_04d.png b/addons/crm/static/description/crm_sc_04d.png
similarity index 100%
rename from addons/crm/html/crm_sc_04d.png
rename to addons/crm/static/description/crm_sc_04d.png
diff --git a/addons/crm/html/crm_sc_05.png b/addons/crm/static/description/crm_sc_05.png
similarity index 100%
rename from addons/crm/html/crm_sc_05.png
rename to addons/crm/static/description/crm_sc_05.png
diff --git a/addons/crm/html/crm_sc_06.png b/addons/crm/static/description/crm_sc_06.png
similarity index 100%
rename from addons/crm/html/crm_sc_06.png
rename to addons/crm/static/description/crm_sc_06.png
diff --git a/addons/crm/html/crm_sc_08.png b/addons/crm/static/description/crm_sc_08.png
similarity index 100%
rename from addons/crm/html/crm_sc_08.png
rename to addons/crm/static/description/crm_sc_08.png
diff --git a/addons/crm/html/crm_sc_agenda.png b/addons/crm/static/description/crm_sc_agenda.png
similarity index 100%
rename from addons/crm/html/crm_sc_agenda.png
rename to addons/crm/static/description/crm_sc_agenda.png
diff --git a/addons/crm/html/crm_sc_marketing.png b/addons/crm/static/description/crm_sc_marketing.png
similarity index 100%
rename from addons/crm/html/crm_sc_marketing.png
rename to addons/crm/static/description/crm_sc_marketing.png
diff --git a/addons/crm/static/src/img/icon.png b/addons/crm/static/description/icon.png
similarity index 100%
rename from addons/crm/static/src/img/icon.png
rename to addons/crm/static/description/icon.png
diff --git a/addons/crm/html/index.html b/addons/crm/static/description/index.html
similarity index 100%
rename from addons/crm/html/index.html
rename to addons/crm/static/description/index.html
diff --git a/addons/crm/test/crm_lead_cancel.yml b/addons/crm/test/crm_lead_cancel.yml
index 8749675bf23..0f8d9ba1df9 100644
--- a/addons/crm/test/crm_lead_cancel.yml
+++ b/addons/crm/test/crm_lead_cancel.yml
@@ -4,37 +4,6 @@
!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})
- self.case_cancel(cr, uid, [ref("crm_case_1")])
--
- I check cancelled lead.
--
- !python {model: crm.lead}: |
- lead = self.browse(cr, uid, ref('crm_case_1'))
- assert lead.stage_id.id == ref('crm.stage_lead7'), "Stage should be 'Dead' and is %s." % (lead.stage_id.name)
- assert lead.state == 'cancel', "Opportunity is not in 'cancel' state."
- assert lead.probability == 0.0, 'Opportunity is probably wrong and should be 0.0.'
--
- I reset cancelled lead into unqualified lead.
--
- !python {model: crm.lead}: |
- self.case_reset(cr, uid, [ref("crm_case_1")])
--
- I check unqualified lead after reset.
--
- !assert {model: crm.lead, id: crm.crm_case_1, string: Lead is in draft state}:
- - state == "draft"
--
- I re-open the lead
--
- !python {model: crm.lead}: |
- self.case_open(cr, uid, [ref("crm_case_1")])
--
- I check stage and state of the re-opened lead
--
- !python {model: crm.lead}: |
- lead = self.browse(cr, uid, ref('crm.crm_case_1'))
- assert lead.stage_id.id == ref('crm.stage_lead2'), "Opportunity stage should be 'Qualification'."
- assert lead.state == 'open', "Opportunity should be in 'open' state."
-
I escalate the lead to parent team.
-
diff --git a/addons/crm/test/crm_lead_onchange.yml b/addons/crm/test/crm_lead_onchange.yml
index 9154ffdf513..45e140e890e 100644
--- a/addons/crm/test/crm_lead_onchange.yml
+++ b/addons/crm/test/crm_lead_onchange.yml
@@ -20,9 +20,4 @@
-
!record {model: crm.phonecall, id: crm_phonecall_5}:
name: 'Bad time'
- partner_id: base.res_partner_5
--
- I set the next stage to "New" for the lead.
--
- !python {model: crm.lead}: |
- self.stage_next(cr, uid, [ref("crm_case_4")], context={'stage_type': 'lead'})
+ partner_id: base.res_partner_5
\ No newline at end of file
diff --git a/addons/crm/test/lead2opportunity2win.yml b/addons/crm/test/lead2opportunity2win.yml
index 94e7149ef77..23545c61bc1 100644
--- a/addons/crm/test/lead2opportunity2win.yml
+++ b/addons/crm/test/lead2opportunity2win.yml
@@ -1,25 +1,15 @@
-
In order to test the conversion of a lead into a opportunity,
--
- I open a lead.
--
- !python {model: crm.lead}: |
- self.case_open(cr, uid, [ref("crm_case_4")])
--
- I check if the lead state is "Open".
--
- !assert {model: crm.lead, id: crm.crm_case_4, string: Lead state is Open}:
- - state == "open"
-
I convert lead into opportunity for exiting customer.
-
!python {model: crm.lead}: |
- self.convert_opportunity(cr, uid ,[ref("crm_case_4")], ref("base.res_partner_2"))
+ self.convert_opportunity(cr, uid ,[ref("crm_case_1")], ref("base.res_partner_2"))
-
I check details of converted opportunity.
-
!python {model: crm.lead}: |
- lead = self.browse(cr, uid, ref('crm_case_4'))
+ lead = self.browse(cr, uid, ref('crm_case_1'))
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!'
@@ -28,7 +18,7 @@
-
!python {model: crm.opportunity2phonecall}: |
import time
- context.update({'active_model': 'crm.lead', 'active_ids': [ref('crm_case_4')]})
+ context.update({'active_model': 'crm.lead', 'active_ids': [ref('crm_case_1')]})
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)
@@ -36,28 +26,28 @@
I check that phonecall is scheduled for that opportunity.
-
!python {model: crm.phonecall}: |
- ids = self.search(cr, uid, [('opportunity_id', '=', ref('crm_case_4'))])
+ ids = self.search(cr, uid, [('opportunity_id', '=', ref('crm_case_1'))])
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_4')])
+ self.action_makeMeeting(cr, uid, [ref('crm_case_1')])
-
After communicated with customer, I put some notes with contract details.
-
!python {model: crm.lead}: |
- self.message_post(cr, uid, [ref('crm_case_4')], 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_1')], 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_4")])
+ self.case_mark_won(cr, uid, [ref("crm_case_1")])
-
I check details of the opportunity after having won the opportunity.
-
!python {model: crm.lead}: |
- lead = self.browse(cr, uid, ref('crm_case_4'))
+ lead = self.browse(cr, uid, ref('crm_case_1'))
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.probability == 100.0, "Revenue probability should be 100.0!"
@@ -104,7 +94,6 @@
-
!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_claim/crm_claim.py b/addons/crm_claim/crm_claim.py
index 774571b0314..1e3ed2faad1 100644
--- a/addons/crm_claim/crm_claim.py
+++ b/addons/crm_claim/crm_claim.py
@@ -19,20 +19,12 @@
#
##############################################################################
-from openerp.addons.base_status.base_stage import base_stage
-import binascii
from openerp.addons.crm import crm
from openerp.osv import fields, osv
-import time
from openerp import tools
from openerp.tools.translate import _
from openerp.tools import html2plaintext
-CRM_CLAIM_PENDING_STATES = (
- crm.AVAILABLE_STATES[2][0], # Cancelled
- crm.AVAILABLE_STATES[3][0], # Done
- crm.AVAILABLE_STATES[4][0], # Pending
-)
class crm_claim_stage(osv.osv):
""" Model for claim stages. This models the main stages of a claim
@@ -51,8 +43,6 @@ class crm_claim_stage(osv.osv):
'section_ids':fields.many2many('crm.case.section', 'section_claim_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(crm.AVAILABLE_STATES, 'Status', required=True, help="The related status for the stage. 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 will be automatically have the 'closed' status."),
- 'case_refused': fields.boolean('Refused stage',
- help='Refused stages are specific stages for done.'),
'case_default': fields.boolean('Common to All Teams',
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('Hide in Views when Empty',
@@ -63,10 +53,9 @@ class crm_claim_stage(osv.osv):
'sequence': lambda *args: 1,
'state': 'draft',
'fold': False,
- 'case_refused': False,
}
-class crm_claim(base_stage, osv.osv):
+class crm_claim(osv.osv):
""" Crm claim
"""
_name = "crm.claim"
@@ -74,6 +63,15 @@ class crm_claim(base_stage, osv.osv):
_order = "priority,date desc"
_inherit = ['mail.thread']
+ def _get_default_section_id(self, cr, uid, context=None):
+ """ Gives default section by checking if present in the context """
+ return self.pool.get('crm.lead')._resolve_section_id_from_context(cr, uid, context=context) or False
+
+ 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)
+
_columns = {
'id': fields.integer('ID', readonly=True),
'name': fields.char('Claim Subject', size=128, required=True),
@@ -117,15 +115,13 @@ class crm_claim(base_stage, osv.osv):
}
_defaults = {
- 'user_id': lambda s, cr, uid, c: s._get_default_user(cr, uid, c),
- 'partner_id': lambda s, cr, uid, c: s._get_default_partner(cr, uid, c),
- 'email_from': lambda s, cr, uid, c: s._get_default_email(cr, uid, c),
+ 'user_id': lambda s, cr, uid, c: uid,
'section_id': lambda s, cr, uid, c: s._get_default_section_id(cr, uid, c),
- 'date': fields.datetime.now,
+ 'date': fields.datetime.now(),
'company_id': lambda s, cr, uid, c: s.pool.get('res.company')._company_default_get(cr, uid, 'crm.case', context=c),
'priority': lambda *a: crm.AVAILABLE_PRIORITIES[2][0],
'active': lambda *a: 1,
- 'stage_id':lambda s, cr, uid, c: s._get_default_stage_id(cr, uid, c)
+ 'stage_id': lambda s, cr, uid, c: s._get_default_stage_id(cr, uid, c)
}
def stage_find(self, cr, uid, cases, section_id, domain=[], order='sequence', context=None):
@@ -158,27 +154,24 @@ class crm_claim(base_stage, osv.osv):
return stage_ids[0]
return False
- def case_refuse(self, cr, uid, ids, context=None):
- """ Mark the case as refused: state=done and case_refused=True """
- for lead in self.browse(cr, uid, ids):
- stage_id = self.stage_find(cr, uid, [lead], lead.section_id.id or False, ['&', ('state', '=', 'done'), ('case_refused', '=', True)], context=context)
- if stage_id:
- self.case_set(cr, uid, [lead.id], values_to_update={}, new_stage_id=stage_id, context=context)
- return True
-
- def onchange_partner_id(self, cr, uid, ids, part, email=False):
+ def onchange_partner_id(self, cr, uid, ids, partner_id, email=False, context=None):
"""This function returns value of partner address based on partner
- :param part: Partner's id
:param email: ignored
"""
- if not part:
- return {'value': {'email_from': False,
- 'partner_phone': False
- }
- }
- address = self.pool.get('res.partner').browse(cr, uid, part)
+ if not partner_id:
+ return {'value': {'email_from': False, 'partner_phone': False}}
+ address = self.pool.get('res.partner').browse(cr, uid, partner_id, context=context)
return {'value': {'email_from': address.email, 'partner_phone': address.phone}}
+ def create(self, cr, uid, vals, context=None):
+ if context is None:
+ context = {}
+ if vals.get('section_id') and not context.get('default_section_id'):
+ context['default_section_id'] = vals.get('section_id')
+
+ # context: no_log, because subtype already handle this
+ return super(crm_claim, self).create(cr, uid, vals, context=context)
+
# -------------------------------------------------------
# Mail gateway
# -------------------------------------------------------
diff --git a/addons/crm_claim/crm_claim_view.xml b/addons/crm_claim/crm_claim_view.xml
index 0d2d8b391e7..28d0f7c731c 100644
--- a/addons/crm_claim/crm_claim_view.xml
+++ b/addons/crm_claim/crm_claim_view.xml
@@ -52,7 +52,6 @@