summaryrefslogtreecommitdiff
path: root/addons
diff options
context:
space:
mode:
authorChristophe Simonis <chs@odoo.com>2019-03-21 13:58:37 +0100
committerChristophe Simonis <chs@odoo.com>2019-03-21 13:58:37 +0100
commit4eff0af02ef2c182793fce5f32d2d15f53a5fba7 (patch)
tree8790e0051f631240562a9408ccd5e2a5cd64782b /addons
parent45e3e432a3621cf03a38ce48562eb967f1ff76e0 (diff)
parent6878c9f3424f27df9b07a665f9c0f5ef6e254996 (diff)
[MERGE] forward port branch saas-12.1 up to 6878c9f3424
Diffstat (limited to 'addons')
-rw-r--r--addons/account/i18n/es.po17
-rw-r--r--addons/account/i18n/mn.po1236
-rw-r--r--addons/account/i18n/nl.po41
-rw-r--r--addons/account/i18n/ro.po54
-rw-r--r--addons/account/i18n/ru.po7
-rw-r--r--addons/account/i18n/tr.po46
-rw-r--r--addons/account/i18n/zh_CN.po16
-rw-r--r--addons/account/models/account_invoice.py18
-rw-r--r--addons/account/models/account_move.py3
-rw-r--r--addons/account/tests/test_account_supplier_invoice.py35
-rw-r--r--addons/account_analytic_default/i18n/mn.po15
-rw-r--r--addons/account_bank_statement_import/i18n/es.po5
-rw-r--r--addons/account_bank_statement_import/i18n/mn.po35
-rw-r--r--addons/account_bank_statement_import/i18n/nl.po2
-rw-r--r--addons/account_check_printing/i18n/uk.po2
-rw-r--r--addons/account_payment/i18n/ro.po14
-rw-r--r--addons/account_voucher/i18n/mn.po2
-rw-r--r--addons/account_voucher/i18n/tr.po2
-rw-r--r--addons/analytic/i18n/mn.po6
-rw-r--r--addons/analytic/i18n/tr.po2
-rw-r--r--addons/barcodes/static/src/js/barcode_events.js37
-rw-r--r--addons/barcodes/static/tests/barcode_mobile_tests.js74
-rw-r--r--addons/barcodes/views/barcodes_templates.xml6
-rw-r--r--addons/hr_holidays/models/hr_leave.py5
-rw-r--r--addons/hr_payroll/models/hr_benefit.py16
-rw-r--r--addons/hr_payroll/models/hr_employee.py32
-rw-r--r--addons/hr_payroll/tests/test_benefit.py120
-rw-r--r--addons/hr_payroll/tests/test_multi_contract.py1
-rw-r--r--addons/hw_screen/static/src/js/worker.js4
-rw-r--r--addons/hw_screen/views/pos_display.html2
-rw-r--r--addons/l10n_fr_fec/wizard/account_fr_fec.py14
-rw-r--r--addons/l10n_mx/data/account_tax_data.xml2
-rw-r--r--addons/link_tracker/models/link_tracker.py4
-rw-r--r--addons/mail/models/ir_attachment.py2
-rw-r--r--addons/mrp/models/mrp_abstract_workorder.py3
-rw-r--r--addons/mrp/tests/test_stock.py111
-rw-r--r--addons/payment/models/payment_acquirer.py2
-rw-r--r--addons/payment/static/src/js/payment_processing.js10
-rw-r--r--addons/point_of_sale/models/pos_order.py1
-rw-r--r--addons/point_of_sale/static/src/css/customer_facing_display.css1
-rw-r--r--addons/point_of_sale/static/src/css/pos.css3
-rw-r--r--addons/point_of_sale/static/src/scss/customer_facing_display.scss1
-rw-r--r--addons/portal/wizard/portal_wizard.py2
-rw-r--r--addons/product/models/product_pricelist.py32
-rw-r--r--addons/project/views/project_portal_templates.xml2
-rw-r--r--addons/purchase/report/purchase_bill.py2
-rw-r--r--addons/sale_timesheet/models/sale_order.py5
-rw-r--r--addons/stock/models/stock_traceability.py7
-rw-r--r--addons/web/static/lib/qweb/qweb2.js2
-rw-r--r--addons/web/static/src/js/views/form/form_renderer.js9
-rw-r--r--addons/web/static/src/js/views/pivot/pivot_model.js18
-rw-r--r--addons/web/static/tests/views/pivot_tests.js38
-rw-r--r--addons/web_editor/static/src/js/wysiwyg_snippets/snippets.options.js28
-rw-r--r--addons/website/models/ir_http.py17
-rw-r--r--addons/website/models/ir_rule.py10
-rw-r--r--addons/website/static/src/js/editor/snippets.options.js4
-rw-r--r--addons/website/views/website_views.xml1
-rw-r--r--addons/website_blog/static/src/js/website_blog.js2
-rw-r--r--addons/website_blog/views/website_blog_templates.xml2
-rw-r--r--addons/website_event/controllers/main.py5
-rw-r--r--addons/website_links/static/src/js/test_ui_flow.js6
-rw-r--r--addons/website_links/static/src/js/website_links_charts.js1
-rw-r--r--addons/website_links/tests/test_ui.py2
-rw-r--r--addons/website_links/views/website_links_template.xml2
-rw-r--r--addons/website_sale/__init__.py14
-rw-r--r--addons/website_sale/__manifest__.py1
-rw-r--r--addons/website_sale/data/data.xml2
-rw-r--r--addons/website_sale/data/demo.xml1
-rw-r--r--addons/website_sale/models/product.py60
-rw-r--r--addons/website_sale/models/res_partner.py7
-rw-r--r--addons/website_sale/models/website.py64
-rw-r--r--addons/website_sale/security/website_sale.xml27
-rw-r--r--addons/website_sale/tests/test_website_sale_pricelist.py312
-rw-r--r--addons/website_sale/views/product_views.xml2
-rw-r--r--addons/website_sale/views/templates.xml3
75 files changed, 1956 insertions, 743 deletions
diff --git a/addons/account/i18n/es.po b/addons/account/i18n/es.po
index 91bec89e08e..3d981a5b183 100644
--- a/addons/account/i18n/es.po
+++ b/addons/account/i18n/es.po
@@ -30,7 +30,7 @@
# Ana Juaristi <ajuaristio@gmail.com>, 2018
# Manuel Vázquez Acosta <mva.led@gmail.com>, 2018
# Javier Ramirez <elbomba887@gmail.com>, 2018
-# e2f_EPV Translator <e2f_EPV@outlook.com>, 2018
+# 966ff43e6966712895a590e7320ca288, 2018
# Christopher Ormaza <chris.ormaza@gmail.com>, 2018
# Alejandro Die Sanchis <marketing@domatix.com>, 2018
# Angel Moya - PESOL <angel.moya@pesol.es>, 2018
@@ -40,7 +40,7 @@
# Cris Martin <cristina.marrod@gmail.com>, 2018
# Mateo Tibaquirá Palacios <nestormateo@gmail.com>, 2019
# Carlos Lopez <celm1990@hotmail.com>, 2019
-# e2f_es_ t7 <e2f_es_t7@outlook.com>, 2019
+# 36700cd705c35e1852bdffcd0b296648, 2019
# Pilar Marín <pilar@odooperu.pe>, 2019
# Cristian Salamea <ovnicraft@gmail.com>, 2019
# Pedro M. Baeza <pedro.baeza@gmail.com>, 2019
@@ -73,6 +73,7 @@
# Luis Marin <marin.guadarrama@gmail.com>, 2019
# Edilianny Sánchez <esanchez@vauxoo.com>, 2019
# Gabriel Umana <gabriel.umana@delfixcr.com>, 2019
+# Jesse Garza <jga@odoo.com>, 2019
#
msgid ""
msgstr ""
@@ -2305,7 +2306,7 @@ msgstr "Preconfiguración del asiento de conciliación bancaria"
#: model:ir.model.fields,field_description:account.field_res_company__account_bank_reconciliation_start
#: model:ir.model.fields,field_description:account.field_res_config_settings__account_bank_reconciliation_start
msgid "Bank Reconciliation Threshold"
-msgstr ""
+msgstr "Fecha de corte para conciliaciones"
#. module: account
#: model:ir.model,name:account.model_account_bank_statement
@@ -2328,7 +2329,7 @@ msgstr "Caja Bancaria"
#. module: account
#: model:ir.model,name:account.model_account_bank_statement_closebalance
msgid "Bank Statement Closing Balance"
-msgstr ""
+msgstr "Saldo final del extracto bancario"
#. module: account
#: model:ir.model,name:account.model_account_bank_statement_line
@@ -2356,6 +2357,7 @@ msgstr "Cuenta bancaria usada en esta transacción"
msgid ""
"Bank account type: Normal or IBAN. Inferred from the bank account number."
msgstr ""
+"Tipo de cuenta bancaria: Normal o IBAN. Se infiere del número de cuenta."
#. module: account
#: model:account.account.type,name:account.data_account_type_liquidity
@@ -2365,7 +2367,7 @@ msgstr "Banco y caja"
#. module: account
#: model:ir.model,name:account.model_account_setup_bank_manual_config
msgid "Bank setup manual config"
-msgstr ""
+msgstr "Configuración manual de datos bancarios"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_move_line__statement_line_id
@@ -2832,6 +2834,9 @@ msgid ""
"Changing your company name is not allowed once invoices have been issued for"
" your account. Please contact us directly for this operation."
msgstr ""
+"Cambiar el nombre de la compañía no está permitido una vez que se han "
+"emitido facturas para su cuenta. Por favor contáctenos para realizar esta "
+"operación."
#. module: account
#: code:addons/account/controllers/portal.py:106
@@ -2989,6 +2994,8 @@ msgid ""
"Choose how you want to credit this invoice. You cannot Modify and Cancel if "
"the invoice is already reconciled"
msgstr ""
+"Elija cómo quiere acreditar esta factura. No puede modificarla o cancelarla "
+"si la factura ya fue conciliada"
#. module: account
#: model_terms:ir.actions.act_window,help:account.actions_account_fiscal_year
diff --git a/addons/account/i18n/mn.po b/addons/account/i18n/mn.po
index 617e63fbdca..ffec592db1d 100644
--- a/addons/account/i18n/mn.po
+++ b/addons/account/i18n/mn.po
@@ -42,6 +42,11 @@ msgid ""
" * The 'Paid' status is set automatically when the invoice is paid. Its related journal entries may or may not be reconciled.\n"
" * The 'Cancelled' status is used when user cancel invoice."
msgstr ""
+" * 'Ноорог' - Хэрэглэгчийн үүсгэсэн шинэ нэхэмжлэл нь батлагдахаасаа өмнө ийм төлөвтэй байна.\n"
+" * 'Нээлттэй' - Хэрэглэгч нэхэмжлэл үүсгээд батласны дараа буюу тухайн нэхэмжлэл нь дугаартай болсон үед ийм төлөвтэй байна. Нэхэмжлэл бүрэн төлөгдтөл Нээлттэй төлөвтэй хэвээр байх юм.\n"
+" * 'Төлөгдөж буй' - Банкны ижилсүүлэлт шаардахаар тохируулагдсан журналаар тус нэхэмжлэлийг бүрэн төлөлт хийсэн бөгөөд банкны гүйлгээний бүртгэлд хараахан бүртгэгдээгүй байх үед нэхэмжлэл ийм төлөвтэй байх юм.\n"
+" * 'Төлөгдсөн' - Нэхэмжлэлийн төлбөр бүрэн барагдсан үед ийм төлөвт шилжинэ. Нэхэмжлэл төлөгдсөн эсэх нь журналын бичилтийг холболт хийхтэй шууд холбоотой юм.\n"
+" * 'Цуцлагдсан' - Хэрэглэгч нэхэмжлэлийг цуцлавал ийм төлөвт шилжинэ."
#. module: account
#: model:ir.model.fields,field_description:account.field_account_chart_template__code_digits
@@ -86,7 +91,7 @@ msgstr "%s (хуулбар)"
#: code:addons/account/models/account.py:695
#, python-format
msgid "%s Sequence"
-msgstr ""
+msgstr "%s дараалал"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.report_invoice_document
@@ -116,7 +121,7 @@ msgstr "15 хоног дотор"
#. module: account
#: model:account.payment.term,name:account.account_payment_term_2months
msgid "2 Months"
-msgstr ""
+msgstr "2 сар"
#. module: account
#: model:account.payment.term,name:account.account_payment_term_net
@@ -131,7 +136,7 @@ msgstr "30% Урьдчилгаа, Дараа сарын төгсгөл"
#. module: account
#: model:account.payment.term,name:account.account_payment_term_45days
msgid "45 Days"
-msgstr ""
+msgstr "45 хоногт"
#. module: account
#: code:addons/account/models/account.py:693
@@ -159,6 +164,22 @@ msgid ""
" </p>\n"
"</div>\n"
msgstr ""
+"<?xml version=\"1.0\"?>\n"
+"<div style=\"margin: 0px; padding: 0px;\">\n"
+" <p style=\"margin: 0px; padding: 0px; font-size: 13px;\">\n"
+" Хүндэт ${object.partner_id.name}<br/><br/>\n"
+" Төлбөр төлсөнд талархал илэрхийлье.\n"
+" Энэ бол таны төлбөрийн баримт нь <strong>${(object.name or '').replace('/','-')}</strong> дугаартайгаар\n"
+" <strong>${format_amount(object.amount, object.currency_id)}</strong> дүнгээр ${object.company_id.name} компанид бүртгэгдлээ.\n"
+" <br/><br/>\n"
+" Хэрэв танд ямар нэг асуулт байвал эргэлзэх зүйлгүйгээр бидэнтэй холбоо барина уу.\n"
+" <br/><br/>\n"
+" Хүндэтгэсэн,<br/>\n"
+" % if user and user.signature:\n"
+" ${user.signature | safe}\n"
+" % endif\n"
+" </p>\n"
+"</div>\n"
#. module: account
#: model:mail.template,body_html:account.email_template_edi_invoice
@@ -192,22 +213,50 @@ msgid ""
"</div>\n"
" "
msgstr ""
+"<div style=\"margin: 0px; padding: 0px;\">\n"
+" <p style=\"margin: 0px; padding: 0px; font-size: 13px;\">\n"
+" Эрхэм ${object.partner_id.name}\n"
+" % if object.partner_id.parent_id:\n"
+" (${object.partner_id.parent_id.name})\n"
+" % endif\n"
+" <br/><br/>\n"
+" Энэ бол танд ирж буй \n"
+" % if object.number:\n"
+" нэхэмжлэл <strong>${object.number}</strong>\n"
+" % else:\n"
+" нэхэмжлэл\n"
+" %endif\n"
+" % if object.origin:\n"
+" (холбогдох эх баримт: ${object.origin})\n"
+" % endif\n"
+" бөгөөд үнийн дүн нь <strong>${format_amount(object.amount_total, object.currency_id)}</strong> болно.\n"
+" Нэхэмжилж буй компани: ${object.company_id.name}.\n"
+" % if object.state=='paid':\n"
+" Нэхэмжлэлийн төлбөр бүрэн хийгдсэн байна.\n"
+" % else:\n"
+" Төлбөрөө хурдан шуурхай төлөх гэж байгаад тань баярлалаа.\n"
+" % endif\n"
+" <br/><br/>\n"
+" Хэрэв танд ямар нэг асуулт байвал эргэлзэх зүйлгүйгээр бидэнтэй холбоо барина уу.\n"
+" </p>\n"
+"</div>\n"
+" "
#. module: account
#: model_terms:ir.ui.view,arch_db:account.portal_my_home_menu_invoice
msgid "<em>Draft Invoice</em>"
-msgstr ""
+msgstr "<em>Ноорог нэхэмжлэл</em>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.account_move_line_view_kanban
#: model_terms:ir.ui.view,arch_db:account.view_account_move_kanban
msgid "<i class=\"fa fa-clock-o\" aria-label=\"Date\" role=\"img\" title=\"Date\"/>"
-msgstr ""
+msgstr "<i class=\"fa fa-clock-o\" aria-label=\"Огноо\" role=\"img\" title=\"Огноо\"/>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.view_account_payment_kanban
msgid "<i class=\"fa fa-clock-o\" role=\"img\" aria-label=\"Date\" title=\"Date\"/>"
-msgstr ""
+msgstr "<i class=\"fa fa-clock-o\" role=\"img\" aria-label=\"Огноо\" title=\"Огноо\"/>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.portal_invoice_page
@@ -219,18 +268,19 @@ msgstr ""
msgid ""
"<i class=\"fa fa-ellipsis-v\" aria-label=\"Selection\" role=\"img\" "
"title=\"Selection\"/>"
-msgstr ""
+msgstr "<i class=\"fa fa-ellipsis-v\" aria-label=\"Сонголт\" role=\"img\" title=\"Сонголт\"/>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.portal_invoice_page
msgid "<i class=\"fa fa-fw fa-comments\"/><b>Send message</b>"
-msgstr ""
+msgstr "<i class=\"fa fa-fw fa-comments\"/><b>Зурвас илгээх</b>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.view_account_journal_form
msgid ""
"<i class=\"fa fa-fw o_button_icon fa-arrow-right\"/> Configure Email Servers"
msgstr ""
+"<i class=\"fa fa-fw o_button_icon fa-arrow-right\"/> Имэйл сервер тохируулах"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.portal_invoice_page
@@ -244,6 +294,8 @@ msgid ""
"<p>You can control the invoice from your vendor based on what you purchased "
"or received.</p>"
msgstr ""
+"<p>Та нийлүүлэгчийн нэхэмжлэлийг бүртгэхдээ захиалсан тоонд тулгуурлах эсвэл"
+" хүлээн авсан тоонд туулгуурлах эсэхээ тохируулах боломжтой.</p>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.account_invoice_send_wizard_form
@@ -254,6 +306,11 @@ msgid ""
" </span>\n"
" <span>Followers of the document and</span>"
msgstr ""
+"<span attrs=\"{'invisible': [('composition_mode', '!=', 'mass_mail')]}\">\n"
+" <span>Сонгосон өгөгдлүүд бүхий</span>\n"
+" <span>баримтуудын дагагч нарт</span>\n"
+" <strong>Масс имэйл илгээнэ</strong>\n"
+" </span>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.portal_my_invoices
@@ -262,6 +319,9 @@ msgid ""
" aria-label=\"Opened\" title=\"Opened\" role=\"img\"/><span class=\"d-none d"
"-md-inline\"> Waiting for Payment</span></span>"
msgstr ""
+"<span class=\"badge badge-pill badge-info\"><i class=\"fa fa-fw fa-clock-o\""
+" aria-label=\"Нээлттэй\" title=\"Opened\" role=\"img\"/><span class=\"d-none"
+" d-md-inline\"> Төлбөрийг хүлээж буй</span></span>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.portal_my_invoices
@@ -270,6 +330,9 @@ msgid ""
"check\" aria-label=\"Paid\" title=\"Paid\" role=\"img\"/><span "
"class=\"d-none d-md-inline\"> Paid</span></span>"
msgstr ""
+"<span class=\"badge badge-pill badge-success\"><i class=\"fa fa-fw fa-"
+"check\" aria-label=\"Төлөгдсөн\" title=\"Төлөгдсөн\" role=\"img\"/><span "
+"class=\"d-none d-md-inline\"> Төлөгдсөн</span></span>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.portal_my_invoices
@@ -278,6 +341,9 @@ msgid ""
"remove\" aria-label=\"Cancelled\" title=\"Cancelled\" role=\"img\"/><span "
"class=\"d-none d-md-inline\"> Cancelled</span></span>"
msgstr ""
+"<span class=\"badge badge-pill badge-warning\"><i class=\"fa fa-fw fa-"
+"remove\" aria-label=\"Цуцлагдсан\" title=\"Цуцлагдсан\" role=\"img\"/><span "
+"class=\"d-none d-md-inline\"> Цуцлагдсан</span></span>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
@@ -293,6 +359,8 @@ msgid ""
"<span class=\"fa fa-lg fa-building-o\" title=\"Values set here are company-"
"specific.\"/>"
msgstr ""
+"<span class=\"fa fa-lg fa-building-o\" title=\"Эдгээр утгууд нь зөвхөн "
+"тухайн компаны хувьд хадгалагдана.\"/>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.invoice_supplier_form
@@ -303,6 +371,11 @@ msgid ""
" <span class=\"o_form_label\" attrs=\"{'invisible': ['|',('state', '=', 'draft'), ('type','!=','in_invoice')]}\">Bill </span>\n"
" <span class=\"o_form_label\" attrs=\"{'invisible': ['|',('state', '=', 'draft'), ('type','!=','in_refund')]}\">Credit Note </span>"
msgstr ""
+"<span class=\"o_form_label\" attrs=\"{'invisible': ['|',('state','!=','draft'), ('type','!=','in_invoice')]}\">Ноорог нэхэмжлэл</span>\n"
+" <span class=\"o_form_label\" attrs=\"{'invisible': [('sequence_number_next_prefix','=',False)]}\">- Анхны дугаар:</span>\n"
+" <span class=\"o_form_label\" attrs=\"{'invisible': ['|',('state','!=','draft'), ('type','!=','in_refund')]}\">Ноорог буцаалтын нэхэмжлэл</span>\n"
+" <span class=\"o_form_label\" attrs=\"{'invisible': ['|',('state', '=', 'draft'), ('type','!=','in_invoice')]}\">Нэхэмжлэл </span>\n"
+" <span class=\"o_form_label\" attrs=\"{'invisible': ['|',('state', '=', 'draft'), ('type','!=','in_refund')]}\">Буцаалтын нэхэмжлэл </span>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.invoice_form
@@ -311,6 +384,9 @@ msgid ""
"['|',('state','=','draft'), ('type','!=','out_refund')]}\">Credit "
"Note</span>"
msgstr ""
+"<span class=\"o_form_label\" attrs=\"{'invisible': "
+"['|',('state','=','draft'), ('type','!=','out_refund')]}\">Буцаалтын "
+"нэхэмжлэл</span>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.view_account_reconcile_model_form
@@ -318,6 +394,8 @@ msgid ""
"<span class=\"o_form_label\" attrs=\"{'invisible': [('match_amount', '!=', "
"'between')]}\">and</span>"
msgstr ""
+"<span class=\"o_form_label\" attrs=\"{'invisible': [('match_amount', '!=', "
+"'between')]}\">бөгөөд</span>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.validate_account_move_view
@@ -325,6 +403,8 @@ msgid ""
"<span class=\"o_form_label\">All selected journal entries will be validated "
"and posted. You won't be able to modify them afterwards.</span>"
msgstr ""
+"<span class=\"o_form_label\">Сонгосон бүх ажил гүйлгээнүүд батлагдсан байх "
+"болно. Ингэсний дараа та тэдгээрийг засаж өөрчлөх боломжгүйд хүрнэ.</span>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
@@ -337,6 +417,8 @@ msgid ""
"<span class=\"o_form_label\">Default Taxes</span>\n"
" <span class=\"fa fa-lg fa-building-o\" title=\"Values set here are company-specific.\" aria-label=\"Values set here are company-specific.\" groups=\"base.group_multi_company\" role=\"img\"/>"
msgstr ""
+"<span class=\"o_form_label\">Үндсэн татвар</span>\n"
+" <span class=\"fa fa-lg fa-building-o\" title=\"Эдгээр утгууд нь зөвхөн тухайн компаны хувьд хадгалагдана.\" aria-label=\"Эдгээр утгууд нь зөвхөн тухайн компаны хувьд хадгалагдана.\" groups=\"base.group_multi_company\" role=\"img\"/>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
@@ -344,6 +426,8 @@ msgid ""
"<span class=\"o_form_label\">Fiscal Localization</span>\n"
" <span class=\"fa fa-lg fa-building-o\" title=\"Values set here are company-specific.\" aria-label=\"Values set here are company-specific.\" groups=\"base.group_multi_company\" role=\"img\"/>"
msgstr ""
+"<span class=\"o_form_label\">Татварын тайлан тохируулалт</span>\n"
+" <span class=\"fa fa-lg fa-building-o\" title=\"Эдгээр утгууд нь зөвхөн тухайн компаны хувьд хадгалагдана.\" aria-label=\"Эдгээр утгууд нь зөвхөн тухайн компаны хувьд хадгалагдана.\" groups=\"base.group_multi_company\" role=\"img\"/>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
@@ -351,16 +435,18 @@ msgid ""
"<span class=\"o_form_label\">Main Currency</span>\n"
" <span class=\"fa fa-lg fa-building-o\" title=\"Values set here are company-specific.\" aria-label=\"Values set here are company-specific.\" groups=\"base.group_multi_company\" role=\"img\"/>"
msgstr ""
+"<span class=\"o_form_label\">Үндсэн валют</span>\n"
+" <span class=\"fa fa-lg fa-building-o\" title=\"Эдгээр утгууд нь зөвхөн тухайн компаны хувьд хадгалагдана.\" aria-label=\"Эдгээр утгууд нь зөвхөн тухайн компаны хувьд хадгалагдана.\" groups=\"base.group_multi_company\" role=\"img\"/>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
msgid "<span class=\"o_form_label\">Rounding Method</span>"
-msgstr ""
+msgstr "<span class=\"o_form_label\">Бүхэлчлэх арга</span>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.view_payment_term_line_form
msgid "<span class=\"o_form_label\">of the month</span>"
-msgstr ""
+msgstr "<span class=\"o_form_label\">нэхэмжилсэн сарын</span>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.partner_view_buttons
@@ -373,6 +459,8 @@ msgid ""
"<span class=\"text-muted\">Only journals not yet linked to a bank account "
"are proposed</span>"
msgstr ""
+"<span class=\"text-muted\">Банкны данстай хараахан холбогдоогүй байгаа "
+"журналуудыг ялган цуглуулсан байна</span>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.report_invoice_document
@@ -380,31 +468,33 @@ msgid ""
"<span groups=\"account.group_show_line_subtotals_tax_excluded\">Amount</span>\n"
" <span groups=\"account.group_show_line_subtotals_tax_included\">Total Price</span>"
msgstr ""
+"<span groups=\"account.group_show_line_subtotals_tax_excluded\">Дүн</span>\n"
+" <span groups=\"account.group_show_line_subtotals_tax_included\">Нийт үнэ</span>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.account_journal_dashboard_kanban_view
msgid "<span name=\"button_import_placeholder\"/> Statements"
-msgstr ""
+msgstr "<span name=\"button_import_placeholder\"/> Банкны хуулга"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.account_journal_dashboard_kanban_view
msgid "<span role=\"separator\">New</span>"
-msgstr ""
+msgstr "<span role=\"separator\">Шинэ</span>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.account_journal_dashboard_kanban_view
msgid "<span role=\"separator\">Reconciliation</span>"
-msgstr ""
+msgstr "<span role=\"separator\">Тулгалт</span>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.account_journal_dashboard_kanban_view
msgid "<span role=\"separator\">View</span>"
-msgstr ""
+msgstr "<span role=\"separator\">Харах</span>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.account_journal_dashboard_kanban_view
msgid "<span title=\"Balance in Odoo\">Balance in General Ledger</span>"
-msgstr ""
+msgstr "<span title=\"Odoo дахь баланс\">Ерөнхий журнал дахь Баланс</span>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.account_journal_dashboard_kanban_view
@@ -424,17 +514,17 @@ msgstr "<span> Хэн рүү </span>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.report_payment_receipt_document
msgid "<span>Amount Paid</span>"
-msgstr ""
+msgstr "<span>Төлсөн дүн</span>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.report_payment_receipt_document
msgid "<span>Balance</span>"
-msgstr ""
+msgstr "<span>Үлдэгдэл</span>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.report_invoice_document
msgid "<span>Description</span>"
-msgstr ""
+msgstr "<span>Тодорхойлолт</span>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.report_invoice_document
@@ -444,17 +534,17 @@ msgstr ""
#. module: account
#: model_terms:ir.ui.view,arch_db:account.account_journal_dashboard_kanban_view
msgid "<span>Import Bills</span>"
-msgstr ""
+msgstr "<span>Нэхэмжлэл импорт</span>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.report_payment_receipt_document
msgid "<span>Invoice Date</span>"
-msgstr ""
+msgstr "<span>Нэхэмжилсэн огноо</span>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.report_payment_receipt_document
msgid "<span>Invoice Number</span>"
-msgstr ""
+msgstr "<span>Нэхэмжлэлийн дугаар</span>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.account_journal_dashboard_kanban_view
@@ -484,12 +574,12 @@ msgstr "<span>Ажилбар</span>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.report_payment_receipt_document
msgid "<span>Original Amount</span>"
-msgstr ""
+msgstr "<span>Анхны дүн</span>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.report_invoice_document
msgid "<span>Quantity</span>"
-msgstr ""
+msgstr "<span>Тоо хэмжээ</span>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.account_journal_dashboard_kanban_view
@@ -499,17 +589,17 @@ msgstr "<span>Тайлангууд</span>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.report_invoice_document
msgid "<span>Source Document</span>"
-msgstr ""
+msgstr "<span>Эх баримт</span>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.report_invoice_document
msgid "<span>Taxes</span>"
-msgstr ""
+msgstr "<span>Татвар</span>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.report_invoice_document
msgid "<span>Unit Price</span>"
-msgstr ""
+msgstr "<span>Нэгж үнэ</span>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.account_journal_dashboard_kanban_view
@@ -527,6 +617,8 @@ msgid ""
"<strong class=\"text-center\">Scan me with your banking "
"app.</strong><br/><br/>"
msgstr ""
+"<strong class=\"text-center\">Банкны апп-аараа энэ кодыг уншуулна "
+"уу.</strong><br/><br/>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.report_invoice_document
@@ -534,6 +626,8 @@ msgid ""
"<strong class=\"text-center\">The SEPA QR Code informations are not set "
"correctly.</strong><br/>"
msgstr ""
+"<strong class=\"text-center\">SEPA QR Code-ын мэдээлэл зөв тохируулагдаагүй "
+"байна.</strong><br/>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.portal_invoice_page
@@ -671,7 +765,7 @@ msgstr "Төлбөрийн нөхцөл нь зөвхөн нэг Баланс т
#: code:addons/account/models/account.py:861
#, python-format
msgid "A bank account can belong to only one journal."
-msgstr ""
+msgstr "Банкны журнал зөвхөн нэг л журналд холбогдсон байх ёстой."
#. module: account
#: model_terms:ir.actions.act_window,help:account.action_bank_statement_tree
@@ -688,6 +782,8 @@ msgstr ""
#: model_terms:ir.actions.act_window,help:account.action_bank_statement_line
msgid "A bank statement line is a financial transaction on a bank account"
msgstr ""
+"Банкны хуулганы мөр бүр нь банкны дансанд хийгдэж буй санхүүгийн гүйлгээг "
+"илэрхийлнэ"
#. module: account
#: model_terms:ir.actions.act_window,help:account.action_move_journal_line
@@ -716,6 +812,9 @@ msgid ""
"posted. Those will be posted automatically after performing the bank "
"reconciliation."
msgstr ""
+"Төлбөрийн журнал дээр журналын бичилтүүдийг банкны хуулга талаас холбож "
+"баталгаажуулах тохиргоо хийгдсэн үед тэгдээгийг гараар баталгаажуулах "
+"боломжгүй байна. Банкны хуулга тулгалт хийх үед автоматаар батлагдана."
#. module: account
#: code:addons/account/models/reconciliation_widget.py:692
@@ -750,7 +849,7 @@ msgstr ""
#. module: account
#: sql_constraint:account.fiscal.position.tax:0
msgid "A tax fiscal position could be defined only one time on same taxes."
-msgstr ""
+msgstr "Татварын тайлангийн тохируулганд нэг татвар нэг л удаа ашиглагдана."
#. module: account
#: model:res.groups,name:account.group_warning_account
@@ -793,11 +892,13 @@ msgid ""
"Account %s (%s) does not allow reconciliation. First change the "
"configuration of this account to allow it."
msgstr ""
+"%s (%s) данс тулгалт хийхийг зөвшөөрөөгүй байна. Эхлээд дансны тохиргоо дээр"
+" энэ үйлдлийг зөвшөөрч тохируулах хэрэгтэй."
#. module: account
#: model:ir.model,name:account.model_account_cash_rounding
msgid "Account Cash Rounding"
-msgstr ""
+msgstr "Бэлэн мөнгө тоймчлол"
#. module: account
#: model:ir.model,name:account.model_account_chart_template
@@ -846,12 +947,12 @@ msgstr "Данс Эзэмшигч"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_setup_bank_manual_config__acc_holder_name
msgid "Account Holder Name"
-msgstr ""
+msgstr "Данс эзэмшигчийн нэр"
#. module: account
#: model:ir.model,name:account.model_account_invoice_send
msgid "Account Invoice Send"
-msgstr ""
+msgstr "Нэхэмжлэл илгээгдсэн"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_setup_bank_manual_config__journal_id
@@ -865,7 +966,7 @@ msgstr "Санхүүгийн журнал"
#. module: account
#: model:ir.model,name:account.model_report_account_report_journal
msgid "Account Journal Report"
-msgstr ""
+msgstr "Санхүүгийн журналын тайлан"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_fiscal_position__account_ids
@@ -911,7 +1012,7 @@ msgstr "Авлагын данс"
#. module: account
#: model:ir.model,name:account.model_account_reconciliation_widget
msgid "Account Reconciliation widget"
-msgstr ""
+msgstr "Дансны тулгалтын модел"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_fiscal_position_account_template__account_src_id
@@ -952,7 +1053,7 @@ msgstr "Санхүүгийн татварын үлгэр"
#. module: account
#: model:ir.model.fields,field_description:account.field_res_config_settings__module_account_taxcloud
msgid "Account TaxCloud"
-msgstr ""
+msgstr "TaxCloud"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.view_account_chart_template_seacrh
@@ -1015,12 +1116,12 @@ msgstr "Дансны тулгалтыг салгах"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.view_account_group_search
msgid "Account group"
-msgstr ""
+msgstr "Дансны бүлэг"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.view_account_group_search
msgid "Account groups"
-msgstr ""
+msgstr "Дансны бүлэг"
#. module: account
#: model:ir.model.fields,help:account.field_account_setup_bank_manual_config__acc_holder_name
@@ -1028,6 +1129,8 @@ msgid ""
"Account holder name, in case it is different than the name of the Account "
"Holder"
msgstr ""
+"Данс эзэмшигчийн нэр, Данс эзэмшигчийн бүртгэлтэй нэр нь Odoo дээрх нэрээс "
+"өөр байх тохиолдолд энэ талбарыг ашиглана"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_fiscal_position_account__account_src_id
@@ -1037,7 +1140,7 @@ msgstr "Бараан дээрх Данс"
#. module: account
#: model:ir.model,name:account.model_report_account_report_invoice_with_payments
msgid "Account report with payment lines"
-msgstr ""
+msgstr "Төлбөр төлөлттэй холбоотой тайлан"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_account_template__tag_ids
@@ -1081,6 +1184,8 @@ msgid ""
"Account that will be set on lines created in cash basis journal entry and "
"used to keep track of the tax base amount."
msgstr ""
+"Мөнгөн суурьт ажил гүйлгээ бүртгэх үед ашиглагдах данс бөгөөд энэхүү дансаар"
+" татвар ногдох дүнг мөшгиж болно."
#. module: account
#: model:ir.model.fields,field_description:account.field_account_fiscal_position_account__account_dest_id
@@ -1102,7 +1207,7 @@ msgstr ""
#: model:ir.cron,cron_name:account.ir_cron_reverse_entry
#: model:ir.cron,name:account.ir_cron_reverse_entry
msgid "Account; Reverse entries"
-msgstr ""
+msgstr "Санхүү -> Урвуу гүйлгээ"
#. module: account
#: model:ir.model.fields,field_description:account.field_res_config_settings__module_account_accountant
@@ -1166,12 +1271,12 @@ msgstr "Дансны харгалзаа"
#. module: account
#: model:ir.model,name:account.model_account_fiscal_position_account_template
msgid "Accounts Mapping Template of Fiscal Position"
-msgstr ""
+msgstr "Татварын тайлан тохируулга дахь дансны загварын харгалзаа"
#. module: account
#: model:ir.model,name:account.model_account_fiscal_position_account
msgid "Accounts Mapping of Fiscal Position"
-msgstr ""
+msgstr "Татварын тайлан тохируулга дахь дансны харгалзаа"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_bank_statement__message_needaction
@@ -1235,32 +1340,32 @@ msgstr "Буцаалт нэмэх"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice_send__add_sign
msgid "Add Sign"
-msgstr ""
+msgstr "Гарын үсэг нэмэх"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.onboarding_bank_account_step
msgid "Add a bank"
-msgstr ""
+msgstr "Банк нэмэх"
#. module: account
#: model_terms:ir.actions.act_window,help:account.action_account_journal_form
msgid "Add a journal"
-msgstr ""
+msgstr "Журнал нэмэх"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.invoice_form
msgid "Add a line"
-msgstr ""
+msgstr "Мөр нэмэх"
#. module: account
#: model_terms:ir.actions.act_window,help:account.action_account_form
msgid "Add a new account"
-msgstr ""
+msgstr "Шинэ данс нэмэх"
#. module: account
#: model_terms:ir.actions.act_window,help:account.account_tag_action
msgid "Add a new tag"
-msgstr ""
+msgstr "Шинэ пайз нэмэх"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.invoice_form
@@ -1270,12 +1375,12 @@ msgstr ""
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
msgid "Add a payment QR code to your invoices"
-msgstr ""
+msgstr "Өөрийн нэхэмжлэлдээ төлбөрийн QR код нэмэх"
#. module: account
#: selection:account.cash.rounding,strategy:0
msgid "Add a rounding line"
-msgstr ""
+msgstr "Мөнгөний нарийвчлалын мөр нэмэх"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_reconcile_model__has_second_line
@@ -1296,6 +1401,9 @@ msgid ""
" with their mobile banking application. EPC QR codes are used by many "
"European banks to process SEPA payments."
msgstr ""
+"Та нэхэмжлэлдээ EPC QR код нэмсэнээр танай харилцагч банкны мобайт апп "
+"ашиглан төлбөрөө хялбарханаар төлөх боломжтой юм. EPC QR код нь европын "
+"банкуудад түгээмэл ашиглагддаг SEPA төлбөрийн технологи юм."
#. module: account
#: model_terms:ir.ui.view,arch_db:account.view_move_form
@@ -1327,7 +1435,7 @@ msgstr "Нэмэлт тэмдэглэлүүд..."
#: selection:account.tax,type_tax_use:0
#: selection:account.tax.template,type_tax_use:0
msgid "Adjustment"
-msgstr ""
+msgstr "Тохируулга"
#. module: account
#: model:ir.model.fields,field_description:account.field_tax_adjustments_wizard__tax_id
@@ -1368,7 +1476,7 @@ msgstr "Харилцагчийн балансын насжилт"
#. module: account
#: model:ir.model,name:account.model_report_account_report_agedpartnerbalance
msgid "Aged Partner Balance Report"
-msgstr ""
+msgstr "Харилцагчийн үлдэгдэл насжилтын тайлан"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_journal__alias_id
@@ -1378,7 +1486,7 @@ msgstr "Хуурмаг нэр"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_journal__alias_name
msgid "Alias Name for Vendor Bills"
-msgstr ""
+msgstr "Нийлүүлэгчийн нэхэмжлэлийн имэйл нэр"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_journal__alias_domain
@@ -1454,7 +1562,7 @@ msgstr "Бүх нэхэмжлэл болон төлбөрийг тулгахыг
#. module: account
#: model:ir.model.fields,field_description:account.field_res_config_settings__module_product_margin
msgid "Allow Product Margin"
-msgstr ""
+msgstr "Барааны ашиг хянах"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_account__reconcile
@@ -1469,22 +1577,26 @@ msgstr "Чек хэвлэх болон урьдчилгаа хадгаламжи
#. module: account
#: model:res.groups,name:account.group_cash_rounding
msgid "Allow the cash rounding management"
-msgstr ""
+msgstr "Мөнгөний нарийвчлал удирдлагыг идэвхижүүлэх"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
msgid "Allow to configure taxes using cash basis"
-msgstr ""
+msgstr "Мөнгөн суурьтай татвар тооцоолол тохируулгыг идэвхижүүлэх"
#. module: account
#: model:res.groups,name:account.group_fiscal_year
msgid "Allow to define fiscal years of more or less than a year"
msgstr ""
+"Санхүүгийн жилийглендарын жилээс их эсвэл багаар тогтоох боломжыг "
+"идэвхижүүлэх"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
msgid "Allows to tag analytic entries and to manage analytic distributions"
msgstr ""
+"Шинжилгээний дансны пайз ашиглан бүлгийн шинжилгээ хийх боломжыг "
+"идэвхижүүлэх"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
@@ -1520,12 +1632,12 @@ msgstr "Дүн"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice_line__price_total
msgid "Amount (with Taxes)"
-msgstr ""
+msgstr "Дүн (татвартай)"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice_line__price_subtotal
msgid "Amount (without Taxes)"
-msgstr ""
+msgstr "Дүн (татваргүй)"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_bank_statement_line__amount_currency
@@ -1536,7 +1648,7 @@ msgstr "Валютаарх дүн"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice_tax__amount_rounding
msgid "Amount Delta"
-msgstr ""
+msgstr "Тоймчлох утга"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice__residual
@@ -1559,31 +1671,31 @@ msgstr "Төлөх дүн нэхэмжлэлийн валютаар"
#: model:ir.model.fields,field_description:account.field_account_reconcile_model__match_total_amount
#: model:ir.model.fields,field_description:account.field_account_reconcile_model_template__match_total_amount
msgid "Amount Matching"
-msgstr ""
+msgstr "Тулгалт хийх дүн"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_reconcile_model__match_total_amount_param
#: model:ir.model.fields,field_description:account.field_account_reconcile_model_template__match_total_amount_param
msgid "Amount Matching %"
-msgstr ""
+msgstr "Тулгалт хийх дүн %"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_reconcile_model__match_amount_max
#: model:ir.model.fields,field_description:account.field_account_reconcile_model_template__match_amount_max
msgid "Amount Max Parameter"
-msgstr ""
+msgstr "Тулгах дүнгийн дээд хязгаар"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_reconcile_model__match_amount_min
#: model:ir.model.fields,field_description:account.field_account_reconcile_model_template__match_amount_min
msgid "Amount Min Parameter"
-msgstr ""
+msgstr "Тулгах дүнгийн доод хязгаар"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_reconcile_model__match_nature
#: model:ir.model.fields,field_description:account.field_account_reconcile_model_template__match_nature
msgid "Amount Nature"
-msgstr ""
+msgstr "Тулгалтын хамрах хүрээ"
#. module: account
#: selection:account.reconcile.model,match_nature:0
@@ -1595,13 +1707,13 @@ msgstr "Төлсөн дүн"
#: selection:account.reconcile.model,match_nature:0
#: selection:account.reconcile.model.template,match_nature:0
msgid "Amount Paid/Received"
-msgstr ""
+msgstr "Гаргасан төлбөр/Хүлээн авсан төлбөрийн дүн"
#. module: account
#: selection:account.reconcile.model,match_nature:0
#: selection:account.reconcile.model.template,match_nature:0
msgid "Amount Received"
-msgstr ""
+msgstr "Хүлээн авсан төлбөрийн дүн"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice_line__price_subtotal_signed
@@ -1611,7 +1723,7 @@ msgstr "Дүн тэмдэгтэй"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice_tax__amount_total
msgid "Amount Total"
-msgstr ""
+msgstr "Нийт дүн"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_reconcile_model__amount_type
@@ -1646,7 +1758,7 @@ msgstr "Дүн:"
#: sql_constraint:account.fiscal.position.account:0
msgid ""
"An account fiscal position could be defined only one time on same accounts."
-msgstr ""
+msgstr "Татварын тайлан тохируулганд нэг данс нэг л удаа ашиглагдана."
#. module: account
#: model_terms:ir.actions.act_window,help:account.action_account_form
@@ -1702,7 +1814,7 @@ msgstr "Шинжилгээний данс"
#: model:ir.ui.menu,name:account.account_analytic_group_menu
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
msgid "Analytic Account Groups"
-msgstr ""
+msgstr "Шинжилгээний дансны бүлэг"
#. module: account
#: model:ir.model.fields,field_description:account.field_res_config_settings__group_analytic_accounting
@@ -1754,7 +1866,7 @@ msgstr "Шинжилгээний Пайзууд"
#: code:addons/account/static/src/xml/account_reconciliation.xml:193
#, python-format
msgid "Analytic Tags."
-msgstr ""
+msgstr "Шинжилгээний пайз"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice_tax__account_analytic_id
@@ -1798,7 +1910,7 @@ msgstr "Журналын кредит гүйлгээний мөрөнд хэрэ
#. module: account
#: selection:tax.adjustments.wizard,adjustment_type:0
msgid "Applied on debit journal item"
-msgstr ""
+msgstr "Дебет журналын бичилтэнд хэрэгжинэ"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.account_invoice_onboarding_invoice_layout_form
@@ -1818,6 +1930,8 @@ msgstr "Энэ санхүүгийн харгалзааг автоматаар х
#: model:ir.model.fields,help:account.field_account_fiscal_position_template__country_group_id
msgid "Apply only if delivery or invoicing country match the group."
msgstr ""
+"Энэхүү бүлэгт хамрагдах улс орны харилцагчидад хүргэлт хийх эсвэл нэхэмжлэл "
+"бүртгэх үед энэ татварын тохируулга ашиглагдана."
#. module: account
#: model:ir.model.fields,help:account.field_account_fiscal_position__country_id
@@ -1834,7 +1948,7 @@ msgstr "Харилцагч нь зөвхөн НӨАТ дугаартай байÐ
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
msgid "Apply right VAT rates for digital products sold in EU"
-msgstr ""
+msgstr "Европд дижитал бараа зарахад тохирох зөв татварын хувь ашиглах"
#. module: account
#: selection:res.company,fiscalyear_last_month:0
@@ -1851,7 +1965,7 @@ msgstr "Архивласан"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.invoice_supplier_form
msgid "Ask for a Credit Note"
-msgstr ""
+msgstr "Буцаалтын нэхэмжлэл үүсгэх"
#. module: account
#: selection:account.account.type,internal_group:0
@@ -1876,12 +1990,12 @@ msgstr "Холбогдох Дансны Үлгэр"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_journal__at_least_one_inbound
msgid "At Least One Inbound"
-msgstr ""
+msgstr "Төлбөр хүлээн авах сувагтай"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_journal__at_least_one_outbound
msgid "At Least One Outbound"
-msgstr ""
+msgstr "Төлбөр илгээх сувагтай"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.account_invoice_send_wizard_form
@@ -1941,7 +2055,7 @@ msgstr ""
#. module: account
#: model:ir.model.fields,help:account.field_account_invoice__vendor_bill_id
msgid "Auto-complete from a past bill."
-msgstr ""
+msgstr "Өнгөрсөн нэхэмжлэлээс автоматаар бөглөгдөх."
#. module: account
#: model_terms:ir.ui.view,arch_db:account.invoice_supplier_form
@@ -1952,49 +2066,50 @@ msgstr "Автомат-таних"
#: model:ir.model.fields,field_description:account.field_account_reconcile_model__auto_reconcile
#: model:ir.model.fields,field_description:account.field_account_reconcile_model_template__auto_reconcile
msgid "Auto-validate"
-msgstr ""
+msgstr "Автомат-батлах"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
msgid "Autocomplete Vendor Bills (OCR + AI)"
-msgstr ""
+msgstr "Нийлүүлэгчийн нэхэмжлэл автоматаар бөглөх (OCR + AI)"
#. module: account
#: model:ir.model.fields,field_description:account.field_res_config_settings__module_account_invoice_extract
msgid "Automate Bill Processing"
-msgstr ""
+msgstr "Автомат нэхэмжлэл боловсруулалт"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
msgid "Automate deferred revenues entries for multi-year contracts"
msgstr ""
+"Урт хугацааны гэрээний дагуу урьдчилж тооцсон орлогыг автоматаар бүртгэх"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
msgid "Automated Entries"
-msgstr ""
+msgstr "Автомат гүйлгээ"
#. module: account
#: code:addons/account/models/company.py:430
#, python-format
msgid "Automatic Balancing Line"
-msgstr ""
+msgstr "Автомат нээлтийн үлдэгдлийн бичилт"
#. module: account
#: model:ir.model.fields,field_description:account.field_res_config_settings__module_currency_rate_live
msgid "Automatic Currency Rates"
-msgstr ""
+msgstr "Автомат ханш бүртгэл"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
msgid "Automatic Import"
-msgstr ""
+msgstr "Автомат импорт"
#. module: account
#: code:addons/account/models/account_move.py:390
#, python-format
msgid "Automatic reversal of: %s"
-msgstr ""
+msgstr "%s-ын автомат урвуу гүйлгээ"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice_report__price_average
@@ -2004,7 +2119,7 @@ msgstr "Дундаж Үнэ"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice_report__user_currency_price_average
msgid "Average Price in Currency"
-msgstr ""
+msgstr "Валютаарх дундаж үнэ"
#. module: account
#: code:addons/account/models/chart_template.py:419
@@ -2026,7 +2141,7 @@ msgstr "Баланс"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_move_line__balance_cash_basis
msgid "Balance Cash Basis"
-msgstr ""
+msgstr "Мөнгөн суурьт баланс"
#. module: account
#: model:ir.model.fields,help:account.field_account_bank_statement__balance_end
@@ -2048,7 +2163,7 @@ msgstr "Банк"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
msgid "Bank &amp; Cash"
-msgstr ""
+msgstr "Банк &amp; Касс"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_bank_statement_line__bank_account_id
@@ -2065,7 +2180,7 @@ msgstr "Банкны данс"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.view_account_bank_journal_form
msgid "Bank Account Name"
-msgstr ""
+msgstr "Банкны дансны нэр"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_bank_statement_line__account_number
@@ -2079,6 +2194,9 @@ msgid ""
"account if this is a Customer Invoice or Vendor Credit Note, otherwise a "
"Partner bank account number."
msgstr ""
+"Нэхэмжлэлийн төлбөр шилжүүлэх банкны дансны дугаар. Хэрэв захиалагчийн "
+"нэхэмжлэл эсвэл нийлүүлэгчийн буцаалтын нэхэмжлэл бол энд компаны өөрийн "
+"банкны данс байх ба бусад тохиолдолд харилцагчийн банкны данс сонгогдоно."
#. module: account
#: model:ir.actions.act_window,name:account.action_account_bank_journal_form
@@ -2134,7 +2252,7 @@ msgstr "Хөдөлгөөний Урьдчилсан тохируулгаарх Ð
#: model:ir.model.fields,field_description:account.field_res_company__account_bank_reconciliation_start
#: model:ir.model.fields,field_description:account.field_res_config_settings__account_bank_reconciliation_start
msgid "Bank Reconciliation Threshold"
-msgstr ""
+msgstr "Банкны тулгалтын эхлэх цэг"
#. module: account
#: model:ir.model,name:account.model_account_bank_statement
@@ -2147,17 +2265,17 @@ msgstr "Банкны хуулга"
#: code:addons/account/models/account_bank_statement.py:602
#, python-format
msgid "Bank Statement %s"
-msgstr ""
+msgstr "Банкны хуулга %s"
#. module: account
#: model:ir.model,name:account.model_account_bank_statement_cashbox
msgid "Bank Statement Cashbox"
-msgstr ""
+msgstr "Банкны хуулгын мөнгөний сав"
#. module: account
#: model:ir.model,name:account.model_account_bank_statement_closebalance
msgid "Bank Statement Closing Balance"
-msgstr ""
+msgstr "Банкны хуулгын хаалтын үлдэгдэл"
#. module: account
#: model:ir.model,name:account.model_account_bank_statement_line
@@ -2178,13 +2296,14 @@ msgstr "Банкны хуулгууд"
#. module: account
#: model:ir.model.fields,help:account.field_account_bank_statement_line__bank_account_id
msgid "Bank account that was used in this transaction."
-msgstr ""
+msgstr "Энэ гүйлгээнд ашиглагдсан банкны данс."
#. module: account
#: model:ir.model.fields,help:account.field_account_setup_bank_manual_config__acc_type
msgid ""
"Bank account type: Normal or IBAN. Inferred from the bank account number."
msgstr ""
+"Банкны дансны төрөл: Энгийн эсвэл IBAN. Банкны дансны дугаараар ялгагддаг."
#. module: account
#: model:account.account.type,name:account.data_account_type_liquidity
@@ -2194,7 +2313,7 @@ msgstr "Касс болон харилцах"
#. module: account
#: model:ir.model,name:account.model_account_setup_bank_manual_config
msgid "Bank setup manual config"
-msgstr ""
+msgstr "Банкны данс тохируулга"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_move_line__statement_line_id
@@ -2210,7 +2329,7 @@ msgstr "Банкны хуулгууд"
#: code:addons/account/models/account_journal_dashboard.py:36
#, python-format
msgid "Bank: Balance"
-msgstr ""
+msgstr "Банк: Үлдэгдэл"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice_tax__base
@@ -2227,25 +2346,25 @@ msgstr "Суурь Дүн"
#: model:ir.model.fields,field_description:account.field_account_tax__cash_basis_base_account_id
#: model:ir.model.fields,field_description:account.field_account_tax_template__cash_basis_base_account_id
msgid "Base Tax Received Account"
-msgstr ""
+msgstr "Мөнгөн суурьт татварын данс"
#. module: account
#: code:addons/account/models/company.py:19
#, python-format
msgid "Based on Customer"
-msgstr ""
+msgstr "Захиалагч дээр суурилсан"
#. module: account
#: selection:account.tax,tax_exigibility:0
#: selection:account.tax.template,tax_exigibility:0
msgid "Based on Invoice"
-msgstr ""
+msgstr "Нэхэмжлэл дээр суурилсан"
#. module: account
#: code:addons/account/models/company.py:19
#, python-format
msgid "Based on Invoice Number"
-msgstr ""
+msgstr "Нэхэмжлэлийн дугаар дээр суурилсан"
#. module: account
#: model:ir.model.fields,help:account.field_account_tax__tax_exigibility
@@ -2254,17 +2373,19 @@ msgid ""
"Based on Invoice: the tax is due as soon as the invoice is validated.\n"
"Based on Payment: the tax is due as soon as the payment of the invoice is received."
msgstr ""
+"Нэхэмжлэл дээр суурилсан: нэхэмжэл батлагдахад татвар хүлээн зөвшөөрөгдөнө.\n"
+"Төлөлт дээр суурилсан: нэхэмжлэлийн төлбөр бүртгэгдэх үед татвар хүлээн зөвшөөрөгдөнө."
#. module: account
#: selection:account.tax,tax_exigibility:0
#: selection:account.tax.template,tax_exigibility:0
msgid "Based on Payment"
-msgstr ""
+msgstr "Төлөлт дээр суурилсан"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
msgid "Batch Payments"
-msgstr ""
+msgstr "Багц төлөлт"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_journal__belongs_to_company
@@ -2296,7 +2417,7 @@ msgstr "Тооцоо"
#. module: account
#: model:res.groups,name:account.group_account_manager
msgid "Billing Manager"
-msgstr ""
+msgstr "Нэхэмжлэлийн менежер"
#. module: account
#: model:ir.actions.server,name:account.action_invoice_tree2
@@ -2399,12 +2520,12 @@ msgstr ""
#: code:addons/account/models/chart_template.py:422
#, python-format
msgid "CABA"
-msgstr ""
+msgstr "CABA"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
msgid "CAMT Import"
-msgstr ""
+msgstr "CAMT импорт"
#. module: account
#: model:account.incoterms,name:account.incoterm_CIP
@@ -2429,7 +2550,7 @@ msgstr "ӨРТӨГ, ДААТГАЛ БА ТЭЭВЭРЛЭЛТ"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
msgid "CSV Import"
-msgstr ""
+msgstr "CSV импорт"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_chart_template__visible
@@ -2461,7 +2582,7 @@ msgstr "Цуцлах"
#. module: account
#: selection:account.invoice.refund,filter_refund:0
msgid "Cancel: create credit note and reconcile"
-msgstr ""
+msgstr "Цуцлах: буцаалтын нэхэмжлэл үүсгэж тулгалт хийх"
#. module: account
#: selection:account.invoice,state:0 selection:account.invoice.report,state:0
@@ -2482,12 +2603,15 @@ msgid ""
"invoice should be unreconciled first, then only you can add credit note for "
"this invoice."
msgstr ""
+"Ямар нэг төлөлттэй холболт хийсэн нэхэмжлэлд буцаалт хийх боломжгүй. Та "
+"зөвхөн эхлээд нэхэмжлэл холболтыг салгасан цагт л буцаалтын нэхэмжлэл "
+"бүртгэх боломжтой."
#. module: account
#: code:addons/account/wizard/account_invoice_refund.py:54
#, python-format
msgid "Cannot create credit note for the draft/cancelled invoice."
-msgstr ""
+msgstr "Ноорог эсвэл цуцлагдсан нэхэмжлэлд буцаалт бүртгэх боломжгүй."
#. module: account
#: code:addons/account/models/account_move.py:349
@@ -2542,23 +2666,23 @@ msgstr "Мөнгөн суурь"
#. module: account
#: model:ir.model.fields,field_description:account.field_res_company__tax_cash_basis_journal_id
msgid "Cash Basis Journal"
-msgstr ""
+msgstr "Мөнгөн суурьт журнал"
#. module: account
#: code:addons/account/models/chart_template.py:422
#, python-format
msgid "Cash Basis Tax Journal"
-msgstr ""
+msgstr "Мөнгөн суурьт татварын журнал"
#. module: account
#: model:ir.model,name:account.model_cash_box_in
msgid "Cash Box In"
-msgstr ""
+msgstr "Мөнгө нэмэгдүүлэх"
#. module: account
#: model:ir.model,name:account.model_cash_box_out
msgid "Cash Box Out"
-msgstr ""
+msgstr "Мөнгө хорогдуулах"
#. module: account
#: code:addons/account/models/account_bank_statement.py:212
@@ -2580,19 +2704,19 @@ msgstr "Кассын бүртгэлүүд"
#. module: account
#: model:ir.model.fields,field_description:account.field_res_config_settings__group_cash_rounding
msgid "Cash Rounding"
-msgstr ""
+msgstr "Кассын бүхэлчлэл"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice__cash_rounding_id
msgid "Cash Rounding Method"
-msgstr ""
+msgstr "Кассын бүхэлчлэх арга"
#. module: account
#: model:ir.actions.act_window,name:account.rounding_list_action
#: model:ir.ui.menu,name:account.menu_action_rounding_form_view
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
msgid "Cash Roundings"
-msgstr ""
+msgstr "Кассын бүхэлчлэл"
#. module: account
#: code:addons/account/models/account_bank_statement.py:187
@@ -2604,7 +2728,7 @@ msgstr "Тоолж үзэхэд кассын зөрүү илэрлээ (%s)"
#: code:addons/account/models/account_journal_dashboard.py:34
#, python-format
msgid "Cash: Balance"
-msgstr ""
+msgstr "Касс: Үлдэгдэл"
#. module: account
#: model:ir.model,name:account.model_account_cashbox_line
@@ -2636,7 +2760,7 @@ msgstr "Орлогын дансны ангилал"
#: model:ir.model.fields,help:account.field_account_payment__writeoff_label
#: model:ir.model.fields,help:account.field_account_register_payments__writeoff_label
msgid "Change label of the counterpart that will hold the payment difference"
-msgstr ""
+msgstr "Төлбөрийн зөрүүг хаахтай холбоотой товч тайлбар"
#. module: account
#: code:addons/account/controllers/portal.py:103
@@ -2655,6 +2779,8 @@ msgid ""
"Changing your company name is not allowed once invoices have been issued for"
" your account. Please contact us directly for this operation."
msgstr ""
+"Нэхэмжлэл танай санхүү бүртгэлд тусгагдсанаас хойш та өөрийн компаны нэрийг "
+"өөрчлөх боломжгүй. Үүний тулд бидэнтэй шууд холбогдоно уу."
#. module: account
#: code:addons/account/controllers/portal.py:106
@@ -2708,7 +2834,7 @@ msgstr "Дансны төлөвлөгөөний үлгэр"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.onboarding_chart_of_account_step
msgid "Chart of account set."
-msgstr ""
+msgstr "Дансны мод суулгах."
#. module: account
#: model_terms:ir.ui.view,arch_db:account.view_account_list
@@ -2740,6 +2866,8 @@ msgid ""
"Check this box if you don't want to share the same sequence for invoices and"
" credit notes made from this journal"
msgstr ""
+"Үүнийг сонгосноор энэхүү журналд бүртгэгдэх нэхэмжлэл болон буцаалтууд нь "
+"дахин давтагдашгүй дугаарлалттай байх болно"
#. module: account
#: model:ir.model.fields,help:account.field_account_journal__update_posted
@@ -2797,14 +2925,14 @@ msgstr "Дансны үлгэрийг сонгоно уу"
#: model_terms:ir.ui.view,arch_db:account.account_invoice_onboarding_sale_tax_form
#: model_terms:ir.ui.view,arch_db:account.onboarding_sale_tax_step
msgid "Choose a default sales tax for your products."
-msgstr ""
+msgstr "Бараандаа байнга ашиглагдах борлуулалтын татвар тохируулна уу."
#. module: account
#. openerp-web
#: code:addons/account/static/src/xml/account_reconciliation.xml:137
#, python-format
msgid "Choose counterpart or Create Write-off"
-msgstr ""
+msgstr "Холбох гүйлгээг сонго эсвэл зөрүүг хаах бичилт үүсгэнэ үү"
#. module: account
#: model:ir.model.fields,help:account.field_account_invoice_refund__filter_refund
@@ -2812,25 +2940,27 @@ msgid ""
"Choose how you want to credit this invoice. You cannot Modify and Cancel if "
"the invoice is already reconciled"
msgstr ""
+"Энэ нэхэмжлэлийг хэрхэн буцаахаа сонгоно уу. Хэрэв уг нэхэмжлэлд төлөлт "
+"хийгдсэн байвал Засах болон Цуцлах аргууд ажиллахгүй"
#. module: account
#: model_terms:ir.actions.act_window,help:account.actions_account_fiscal_year
msgid "Click here to create a new fiscal year."
-msgstr ""
+msgstr "Энд дарж шинэ санхүүгийн жил үүсгэнэ."
#. module: account
#. openerp-web
#: code:addons/account/static/src/js/tour.js:19
#, python-format
msgid "Click to <b>send the invoice by email.</b>"
-msgstr ""
+msgstr "Энд дарж <b>нэхэмжлэлийг имэйлээр илгээнэ.</b>"
#. module: account
#. openerp-web
#: code:addons/account/static/src/js/tour.js:23
#, python-format
msgid "Click to <b>send the invoice.</b>"
-msgstr ""
+msgstr "Энд дарж <b>нэхэмжлэлийг илгээнэ.</b>"
#. module: account
#. openerp-web
@@ -2840,13 +2970,15 @@ msgid ""
"Click to <b>validate your invoice.</b> A reference will be assigned to this "
"invoice and you will not be able to modify it anymore."
msgstr ""
+"Энд дарж <b>нэхэмжлэлээ баталгаажуулна.</b> Ингэснээр нэхэмжлэлд дугаар "
+"оноогдох бөгөөд та нэхэмжлэлээ засаж өөрчлөх боломжгүй болно."
#. module: account
#. openerp-web
#: code:addons/account/static/src/xml/account_reconciliation.xml:17
#, python-format
msgid "Click to Rename"
-msgstr ""
+msgstr "Энд дарж нэр өөрчилнө"
#. module: account
#. openerp-web
@@ -2860,7 +2992,7 @@ msgstr "Хаах"
#: code:addons/account/static/src/xml/account_reconciliation.xml:66
#, python-format
msgid "Close statement"
-msgstr ""
+msgstr "Хуулга хаах"
#. module: account
#: selection:res.company,account_dashboard_onboarding_state:0
@@ -2889,7 +3021,7 @@ msgstr "Код"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_group__code_prefix
msgid "Code Prefix"
-msgstr ""
+msgstr "Кодын угтвар"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_cashbox_line__coin_value
@@ -2909,6 +3041,8 @@ msgid ""
"Collect information and produce statistics on the trade in goods in Europe "
"with intrastat."
msgstr ""
+"Europe intrastat систем ашиглан барааны зах зээлийн мэдээлэл цуглуулж дүн "
+"шинжилгээ хийх."
#. module: account
#: model:ir.model.fields,field_description:account.field_account_account_tag__color
@@ -2927,11 +3061,12 @@ msgstr "Худалдааны Этгээд"
#, python-format
msgid "Commercial partner and vendor account owners must be identical."
msgstr ""
+"Албан ёсны харилцагч ба нийлүүлэгчийн дансны эзэмшигч хоёр ижил байх ёстой."
#. module: account
#: model:ir.model,name:account.model_account_common_journal_report
msgid "Common Journal Report"
-msgstr ""
+msgstr "Ерөнхий журналын тайлан"
#. module: account
#: model:ir.actions.act_window,name:account.action_account_common_menu
@@ -3014,7 +3149,7 @@ msgstr "Татваруудын Олонлогийг Гүйцээнэ үү"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice_send__composer_id
msgid "Composer"
-msgstr ""
+msgstr "Илгээгч"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice_send__composition_mode
@@ -3024,7 +3159,7 @@ msgstr "Үүсгэх горим"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
msgid "Compute tax rates based on U.S. ZIP codes"
-msgstr ""
+msgstr "U.S. зип кодноос хамааруулж татварын дүнг тооцох"
#. module: account
#: model:ir.model.fields,help:account.field_account_move_line__counterpart
@@ -3043,7 +3178,7 @@ msgstr "Тооцоолсон Баланс"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.view_account_reconcile_model_form
msgid "Conditions on Bank Statement Line"
-msgstr ""
+msgstr "Банкны хуулганы мөрийн шалгуур"
#. module: account
#: model:ir.model,name:account.model_res_config_settings
@@ -3094,7 +3229,7 @@ msgstr "Нэхэмжлэл батлах"
#. module: account
#: model:ir.actions.server,name:account.action_account_confirm_payments
msgid "Confirm Payments"
-msgstr ""
+msgstr "Төлбөр батлах"
#. module: account
#: model:ir.model,name:account.model_account_invoice_confirm
@@ -3120,12 +3255,12 @@ msgstr ""
#: code:addons/account/static/src/xml/account_reconciliation.xml:54
#, python-format
msgid "Congrats, you're all done!"
-msgstr ""
+msgstr "Баяр хүргэе, та ажлаа дуусгалаа!"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.account_invoice_onboarding_panel
msgid "Congratulations! You are all set."
-msgstr ""
+msgstr "Баяр хүргэе! Та бүхнийг тохирууллаа."
#. module: account
#: model:ir.model,name:account.model_res_partner
@@ -3156,7 +3291,7 @@ msgstr "Агуулга"
#: model:ir.model.fields,field_description:account.field_res_partner__contracts_count
#: model:ir.model.fields,field_description:account.field_res_users__contracts_count
msgid "Contracts Count"
-msgstr ""
+msgstr "Гэрээний тоо"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.view_account_journal_form
@@ -3170,6 +3305,8 @@ msgid ""
"Correction of <a href=# data-oe-model=account.invoice data-oe-"
"id=%d>%s</a><br>Reason: %s"
msgstr ""
+"Буцаалтын <a href=# data-oe-model=account.invoice data-oe-"
+"id=%d>%s</a><br>Шалтгаан: %s"
#. module: account
#: model:account.account.type,name:account.data_account_type_direct_costs
@@ -3183,6 +3320,8 @@ msgid ""
"Could not install new chart of account as there are already accounting "
"entries existing."
msgstr ""
+"Ямар нэг ажил гүйлгээ бүртгэгдсэний дараа дансны мод шинээр суулгах "
+"боломжгүй."
#. module: account
#: model:ir.model.fields,field_description:account.field_account_move_line__counterpart
@@ -3197,7 +3336,7 @@ msgstr "Харьцсан Данс"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.view_account_reconcile_model_form
msgid "Counterpart Values"
-msgstr ""
+msgstr "Харьцсан дүн"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_fiscal_position__country_id
@@ -3220,84 +3359,84 @@ msgstr "Үүсгэх"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_setup_bank_manual_config__create_or_link_option
msgid "Create Or Link Option"
-msgstr ""
+msgstr "Үүсгэх эсвэл утга холбох"
#. module: account
#: code:addons/account/models/company.py:292
#, python-format
msgid "Create a Bank Account"
-msgstr ""
+msgstr "Банкны данс үүсгэх"
#. module: account
#: model_terms:ir.actions.act_window,help:account.action_account_bank_journal_form
msgid "Create a bank account"
-msgstr ""
+msgstr "Банкны данс үүсгэх"
#. module: account
#: model_terms:ir.actions.act_window,help:account.action_invoice_out_refund
msgid "Create a credit note"
-msgstr ""
+msgstr "Буцаалтын нэхэмжлэл үүсгэх"
#. module: account
#: model_terms:ir.actions.act_window,help:account.action_invoice_tree1
msgid "Create a customer invoice"
-msgstr ""
+msgstr "Захиалагчийн нэхэмжлэл үүсгэх"
#. module: account
#: selection:account.invoice.refund,filter_refund:0
msgid "Create a draft credit note"
-msgstr ""
+msgstr "Ноорог буцаалт үүсгэх"
#. module: account
#: model_terms:ir.actions.act_window,help:account.action_move_journal_line
msgid "Create a journal entry"
-msgstr ""
+msgstr "Ажил гүйлгээ үүсгэх"
#. module: account
#: model_terms:ir.actions.act_window,help:account.action_account_group_tree
msgid "Create a new account group"
-msgstr ""
+msgstr "Шинэ дансны бүлэг үүсгэх"
#. module: account
#: model_terms:ir.actions.act_window,help:account.action_view_bank_statement_tree
msgid "Create a new cash log"
-msgstr ""
+msgstr "Шинэ кассын бүртгэл нээх"
#. module: account
#: model_terms:ir.actions.act_window,help:account.action_account_fiscal_position_form
#: model_terms:ir.actions.act_window,help:account.action_account_fiscal_position_template_form
msgid "Create a new fiscal position"
-msgstr ""
+msgstr "Татварын тайлангийн тохируулга үүсгэх"
#. module: account
#: model_terms:ir.actions.act_window,help:account.action_incoterms_tree
msgid "Create a new incoterm"
-msgstr ""
+msgstr "Инкотерм шинээр бүртгэх"
#. module: account
#: model_terms:ir.actions.act_window,help:account.product_product_action_purchasable
msgid "Create a new purchasable product"
-msgstr ""
+msgstr "Худалдан авдаг бараа шинээр бүртгэх"
#. module: account
#: model_terms:ir.actions.act_window,help:account.action_account_reconcile_model
msgid "Create a new reconciliation model"
-msgstr ""
+msgstr "Тулгалтын загвар шинээр бүртгэх"
#. module: account
#: model_terms:ir.actions.act_window,help:account.product_product_action_sellable
msgid "Create a new sellable product"
-msgstr ""
+msgstr "Борлуулах бараа шинээр бүртгэх"
#. module: account
#: model_terms:ir.actions.act_window,help:account.action_tax_form
msgid "Create a new tax"
-msgstr ""
+msgstr "Татвар шинээр бүртгэх"
#. module: account
#: model_terms:ir.actions.act_window,help:account.action_invoice_in_refund
msgid "Create a vendor credit note"
-msgstr ""
+msgstr "Нийлүүлэгчийн буцаалт бүртгэх"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.tax_adjustments_wizard
@@ -3322,6 +3461,8 @@ msgid ""
"Create invoices, register payments and keep track of the discussions with "
"your customers."
msgstr ""
+"Та захиалагчийн нэхэмжлэл үүсгэж, төлөлт бүртгэх болон тэдний санал "
+"хүсэлтийг бүртгэж хянах боломжтой."
#. module: account
#. openerp-web
@@ -3333,12 +3474,12 @@ msgstr "Модель үүсгэх"
#. module: account
#: selection:account.setup.bank.manual.config,create_or_link_option:0
msgid "Create new journal"
-msgstr ""
+msgstr "Журнал шинээр бүртгэх"
#. module: account
#: model_terms:ir.actions.act_window,help:account.rounding_list_action
msgid "Create the first cash rounding"
-msgstr ""
+msgstr "мөнгөний бүхэлчлэлийг шинээр бүртгэх"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_account__create_uid
@@ -3473,7 +3614,7 @@ msgstr "Мөнгөн суурьт кредит"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice_refund__filter_refund
msgid "Credit Method"
-msgstr ""
+msgstr "Буцаалтын хэлбэр"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_partial_reconcile__credit_move_id
@@ -3616,7 +3757,7 @@ msgstr "Захиалагч"
#: code:addons/account/models/account_payment.py:769
#, python-format
msgid "Customer Credit Note"
-msgstr ""
+msgstr "Захиалагчийн буцаалт"
#. module: account
#: selection:account.invoice,type:0 selection:account.invoice.report,type:0
@@ -3675,7 +3816,7 @@ msgstr "Өөриймшүүлэх"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.onboarding_invoice_layout_step
msgid "Customize the look of your invoices."
-msgstr ""
+msgstr "Нэхэмжлэлийнхээ харагдах байдлыг өөриймшүүлэх"
#. module: account
#: model:account.incoterms,name:account.incoterm_DAF
@@ -3715,7 +3856,7 @@ msgstr "ХӨЛӨГ ОНГОЦОН ДЭЭР НИЙЛҮҮЛСЭН"
#. module: account
#: selection:account.cash.rounding,rounding_method:0
msgid "DOWN"
-msgstr ""
+msgstr "ДОТОГШ"
#. module: account
#. openerp-web
@@ -3742,7 +3883,7 @@ msgstr "Огноо"
msgid ""
"Date at which the opening entry of this company's accounting has been "
"posted."
-msgstr ""
+msgstr "Энэ компаны нээлтийн ажил гүйлгээний батлагдсан огноо."
#. module: account
#: model:ir.model.fields,help:account.field_account_financial_year_op__opening_date
@@ -3750,11 +3891,13 @@ msgid ""
"Date from which the accounting is managed in Odoo. It is the date of the "
"opening entry."
msgstr ""
+"Odoo-д санхүү бүртгэлээ хөтлөж эхэлсэн огноо. Энэ бол нээлтийн ажил "
+"гүйлгээний огноо юм."
#. module: account
#: model:ir.model.fields,help:account.field_account_move__reverse_date
msgid "Date of the reverse accounting entry."
-msgstr ""
+msgstr "Урвуу ажил гүйлгээний огноо."
#. module: account
#. openerp-web
@@ -3772,7 +3915,7 @@ msgstr "Огноо"
#: model:ir.model.fields,field_description:account.field_account_payment_term_line__day_of_the_month
#: model_terms:ir.ui.view,arch_db:account.view_payment_term_line_tree
msgid "Day of the month"
-msgstr ""
+msgstr "Сарын өдөр"
#. module: account
#: model:ir.model.fields,help:account.field_account_payment_term_line__day_of_the_month
@@ -3782,6 +3925,9 @@ msgid ""
"greater than the last day of a month, this number will instead select the "
"last day of this month."
msgstr ""
+"Нэхэмжлэл төлөгдөх ёстой сарын өдөр. Хэрэв 0 эсвэл хасах утга оруулвал энэ "
+"утга ашиглагдахгүй буюу ямар нэг өдрийг илэрхийлэхгүй. Хэрэв сарын сүүлийн "
+"хоногоос их тоо өгөгдвөл сарын сүүлийн өдрөөр солигдож ашиглагдана."
#. module: account
#: code:addons/account/models/company.py:51
@@ -3812,12 +3958,12 @@ msgstr "Дебит"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_move_line__debit_cash_basis
msgid "Debit Cash Basis"
-msgstr ""
+msgstr "Мөнгөн суурьт дебет"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_partial_reconcile__debit_move_id
msgid "Debit Move"
-msgstr ""
+msgstr "Дебет бичилт"
#. module: account
#: model:ir.model.fields,field_description:account.field_tax_adjustments_wizard__debit_account_id
@@ -3837,12 +3983,12 @@ msgstr "12-р сар"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_journal__refund_sequence
msgid "Dedicated Credit Note Sequence"
-msgstr ""
+msgstr "Буцаалтын тусдаа дугаарлалт"
#. module: account
#: model:ir.model.fields,field_description:account.field_res_company__invoice_reference_type
msgid "Default Communication Type"
-msgstr ""
+msgstr "Байнга хэрэглэгдэх харилцааны төрөл"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_journal__default_credit_account_id
@@ -3868,7 +4014,7 @@ msgstr "Худалдан авалтын татварын анхны утга"
#. module: account
#: model:ir.model.fields,help:account.field_res_config_settings__invoice_reference_type
msgid "Default Reference Type on Invoices."
-msgstr ""
+msgstr "Нэхэмжлэлийн байнгын лавлагааны төрөл"
#. module: account
#: model:ir.model.fields,field_description:account.field_res_company__account_sale_tax_id
@@ -3879,7 +4025,7 @@ msgstr "Борлуулалтын Татварын Анхны Утга"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
msgid "Default Sending Options"
-msgstr ""
+msgstr "Нэхэмжлэл илгээх тохиргоо"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_account__tax_ids
@@ -3893,54 +4039,55 @@ msgstr "Үндсэн татвар"
#: model:ir.model.fields,field_description:account.field_res_company__incoterm_id
#: model:ir.model.fields,field_description:account.field_res_config_settings__incoterm_id
msgid "Default incoterm"
-msgstr ""
+msgstr "Байнга ашиглах инкотерм"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
msgid "Default payment communication on customer invoices"
-msgstr ""
+msgstr "Захиалагчийн нэхэмжлэл дээр байнга хэрэглэгдэх төлбөрийн суваг"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
msgid "Default taxes applied to local transactions"
-msgstr ""
+msgstr "Улс доторх гүйлгээнд байнга ашиглагдах татварууд"
#. module: account
#: model:ir.model.fields,help:account.field_product_product__supplier_taxes_id
#: model:ir.model.fields,help:account.field_product_template__supplier_taxes_id
msgid "Default taxes used when buying the product."
-msgstr ""
+msgstr "Бараа худалдан авахад байнга ашиглагдах татварууд."
#. module: account
#: model:ir.model.fields,help:account.field_product_product__taxes_id
#: model:ir.model.fields,help:account.field_product_template__taxes_id
msgid "Default taxes used when selling the product."
-msgstr ""
+msgstr "Бараа зарах үед байнга ашиглагдах татварууд."
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
msgid "Deferred Revenues Management"
-msgstr ""
+msgstr "Урьдчилж тооцсон орлогын удирдлага"
#. module: account
#: model_terms:ir.actions.act_window,help:account.action_account_type_form
msgid "Define a new account type"
-msgstr ""
+msgstr "Шинэ дансны төрөл зарлах"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
msgid "Define the smallest coinage of the currency used to pay by cash."
msgstr ""
+"Бэлнээр төлөх үед ашиглагдах мөнгөний хамгийн бага нэгжийг тодорхойлох."
#. module: account
#: model_terms:ir.ui.view,arch_db:account.onboarding_fiscal_year_step
msgid "Define your fiscal years opening &amp; closing dates."
-msgstr ""
+msgstr "Санхүүгийн жилийнхээ эхлэх болон төгсөх огноог тохируулна уу."
#. module: account
#: model:ir.model.fields,help:account.field_account_journal__bank_statements_source
msgid "Defines how the bank statements will be registered"
-msgstr ""
+msgstr "Банкны хуулга хэрхэн бүртгэгдэхийг тодорхойлно"
#. module: account
#: model:ir.model.fields,help:account.field_account_invoice__cash_rounding_id
@@ -3948,6 +4095,7 @@ msgid ""
"Defines the smallest coinage of the currency that can be used to pay by "
"cash."
msgstr ""
+"Бэлнээр төлөх үед ашиглагдах мөнгөний хамгийн бага нэгжийг тодорхойлох."
#. module: account
#: model_terms:ir.ui.view,arch_db:account.view_account_tax_template_form
@@ -4011,7 +4159,7 @@ msgstr "Нэхэмжлэл дээрх тодорхойлолт"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_payment__destination_account_id
msgid "Destination Account"
-msgstr ""
+msgstr "Очих данс"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_fiscal_position__auto_apply
@@ -4027,6 +4175,9 @@ msgid ""
"used by itself, however it can still be used in a group. 'adjustment' is "
"used to perform tax adjustment."
msgstr ""
+"Татварууд хаана хэрэглэгдэхийг тодорхойлно. Тухайлбал : 'Хоосон' гэдэг нь "
+"тухайн татварыг шууд сонгож ашиглахгүй хэдий ч татварын бүлэгт багтсаар байх"
+" болно. 'Тохируулга' гэдэг нь ашиглагдсан татваруудыг солих үед ашиглагдана."
#. module: account
#: model:ir.model.fields,field_description:account.field_account_bank_statement__difference
@@ -4050,7 +4201,7 @@ msgstr "Тооцоолсон эцсийн баланс болон тааруул
#. module: account
#: model:ir.model,name:account.model_digest_digest
msgid "Digest"
-msgstr ""
+msgstr "Эзэмшилт"
#. module: account
#: model:ir.model.fields,help:account.field_res_config_settings__group_products_in_bills
@@ -4058,17 +4209,21 @@ msgid ""
"Disable this option to use a simplified versions of vendor bills, where "
"products are hidden."
msgstr ""
+"Үүнийг идэвхигүй болгосноор барааны нэр төрөл агуулаагүй энгийн хувилбар "
+"бүхий худалдан авалтын нэхэмжлэл ашиглах боломжтой болно."
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
msgid ""
"Disable to have a simplified view of vendor bills, without the products."
msgstr ""
+"Үүнийг идэвхигүй болгосноор барааны мэдээлэл агуулаагүй энгийн харагдац "
+"бүхий худалдан авалтын нэхэмжлэл ашиглах болно."
#. module: account
#: model_terms:ir.ui.view,arch_db:account.invoice_form
msgid "Disc (%)"
-msgstr ""
+msgstr "Хөнг (%)"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice_line__discount
@@ -4142,7 +4297,7 @@ msgstr "Дэлгэцийн Нэр"
#: model:ir.model.fields,field_description:account.field_res_company__qr_code
#: model:ir.model.fields,field_description:account.field_res_config_settings__qr_code
msgid "Display SEPA QR code"
-msgstr ""
+msgstr "SEPA QR код харуулах"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice_line__display_type
@@ -4159,6 +4314,7 @@ msgstr "Нэхэмжлэл дээр харуулах"
#, python-format
msgid "Do not have access, skip this data for user's digest email"
msgstr ""
+"Хандах эрх алга, энэ өгөгдлийг мэдээ илгээх имэйл жагсаалт руу хийхгүй"
#. module: account
#: model:ir.model.fields,help:account.field_account_invoice_send__auto_delete_message
@@ -4197,7 +4353,7 @@ msgstr "Ноорог"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.invoice_form
msgid "Draft Credit Note"
-msgstr ""
+msgstr "Ноорог буцаалтын нэхэмжлэл"
#. module: account
#: code:addons/account/models/account_invoice.py:496
@@ -4226,7 +4382,7 @@ msgstr "Төлбөр"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice_report__residual
msgid "Due Amount"
-msgstr ""
+msgstr "Төлбөрийн үлдэгдэл"
#. module: account
#. openerp-web
@@ -4259,7 +4415,7 @@ msgstr "Төлөх огноо"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.view_payment_term_line_form
msgid "Due the"
-msgstr ""
+msgstr "Төлөх нь"
#. module: account
#: code:addons/account/models/account_invoice.py:1285
@@ -4268,16 +4424,19 @@ msgid ""
"Duplicated vendor reference detected. You probably encoded twice the same "
"vendor bill/credit note."
msgstr ""
+"Нийлүүлэгчийн лавлагааны давхцал үүслээ. Та магадгүй нийлүүлэгчийн нэхэмжлэл"
+" эсвэл буцаалтын ижил лавлагааны дугаарыг хоёр удаа ашиглах гэж оролдож "
+"байна."
#. module: account
#: model:ir.model.fields,field_description:account.field_res_config_settings__module_account_reports
msgid "Dynamic Reports"
-msgstr ""
+msgstr "Динамик тайлан"
#. module: account
#: model:ir.model.fields,field_description:account.field_res_config_settings__module_l10n_eu_service
msgid "EU Digital Goods VAT"
-msgstr ""
+msgstr "EU дижитал барааны НӨАТ"
#. module: account
#: model:account.incoterms,name:account.incoterm_EXW
@@ -4320,12 +4479,12 @@ msgstr ""
#. module: account
#: model:ir.model.fields,field_description:account.field_res_company__invoice_is_email
msgid "Email by default"
-msgstr ""
+msgstr "Байнга хэрэглэгдэх имэйл хаяг"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.view_account_journal_form
msgid "Email your Vendor Bills"
-msgstr ""
+msgstr "Таны нийлүүлэгчийн нэхэмжлэлийн имэйл хаяг"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_common_journal_report__date_to
@@ -4353,7 +4512,7 @@ msgstr "Кассын хайрцагийг төгсгөх"
#. module: account
#: model:ir.model.fields,help:account.field_account_fiscal_year__date_to
msgid "Ending Date, included in the fiscal year."
-msgstr ""
+msgstr "Санхүүгийн жилийн дуусах огноо."
#. module: account
#: model:ir.actions.act_window,name:account.action_move_line_form
@@ -4369,7 +4528,7 @@ msgstr "Бичилтүүдийн эрэмбэлсэн талбар"
#: code:addons/account/models/account_move.py:903
#, python-format
msgid "Entries are not from the same account."
-msgstr ""
+msgstr "Гүйлгээнүүд ялгаатай данстай байна."
#. module: account
#: model_terms:ir.ui.view,arch_db:account.account_journal_dashboard_kanban_view
@@ -4420,7 +4579,7 @@ msgstr "Солилцооны Олз, Алдагдлын Журнал"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_full_reconcile__exchange_move_id
msgid "Exchange Move"
-msgstr ""
+msgstr "Ханшийн зөрүүний гүйлгээ"
#. module: account
#: model:ir.model.fields,field_description:account.field_res_company__expects_chart_of_accounts
@@ -4931,7 +5090,7 @@ msgstr "Нэхэмжлэлтэй"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice__has_outstanding
msgid "Has Outstanding"
-msgstr ""
+msgstr "Бууруулах гүйлгээ байгаа эсэх"
#. module: account
#: model:ir.model.fields,field_description:account.field_res_partner__has_unreconciled_entries
@@ -5157,18 +5316,23 @@ msgid ""
"If you check this box, you will be able to collect payments using SEPA "
"Direct Debit mandates."
msgstr ""
+"Хэрэв үүнийг сонговол та SEPA Direct Debit систем ашиглан төлбөр төлөлтийн "
+"мэдээлэл цуглуулах боломжтой болно."
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
msgid ""
"If you check this box, you will be able to register your payment using SEPA."
msgstr ""
+"Хэрэв үүнийг сонговол та SEPA ашиглаг төлбөр төлөлт бүртгэх боломжтой болно."
#. module: account
#: model_terms:ir.actions.act_window,help:account.open_account_journal_dashboard_kanban
msgid ""
"If you have not installed a chart of account, please install one first.<br>"
msgstr ""
+"Хэрэв та дансны мод хараахан суулгаагүй байгаа бол эхлээд нэгийг суулгана "
+"уу.<br>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.account_unreconcile_view
@@ -5187,6 +5351,11 @@ msgid ""
" date empty, it means direct payment. The payment terms may compute several "
"due dates, for example 50% now, 50% in one month."
msgstr ""
+"Хэрэв та төлбөрийн нөхцөл ашиглавал, ажил гүйлгээний төлбөр төлөх эцсийн "
+"огноог систем автоматаар тооцоолж бүртгэнэ. Хэрэв та төлбөрийн нөхцөл болон "
+"төлөх эцсийн огноог хоосон орхивол, төлбөр шууд төлөгдөх ёстой гэсэн үг юм. "
+"Төлбөрийн нөхцөлөөс хамаарч хэд хэдэн төлбөрийн огноо үүсч болно, жишээ нь "
+"50%-г одоо төлөөд 50%-г сарын дараа төлөх гэх мэт."
#. module: account
#: model:ir.model.fields,help:account.field_account_invoice__date_due
@@ -5197,6 +5366,13 @@ msgid ""
" due date, make sure that the payment term is not set on the invoice. If you"
" keep the Payment terms and the due date empty, it means direct payment."
msgstr ""
+"Хэрэв та төлбөрийн нөхцөл ашиглавал, ажил гүйлгээний төлбөр төлөх эцсийн "
+"огноог систем автоматаар тооцоолж бүртгэнэ. Төлбөрийн нөхцөлөөс хамаарч хэд "
+"хэдэн төлбөрийн огноо үүсч болно, жишээ нь 50%-г одоо төлөөд 50%-г сарын "
+"дараа төлөх гэх мэт. Гэхдээ та тодорхой нэг огноонд төлбөр төлөгдөх "
+"ёстойгоор байлгахыг хүсвэл нэхэмжлэл дээр ямар нэг төлбөрийн нөхцөл "
+"сонгоогүй байх ёстой. Хэрэв та төлбөрийн нөхцөл болон төлөх эцсийн огноог "
+"хоосон орхивол, төлбөр шууд төлөгдөх ёстой гэсэн үг юм. "
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
@@ -5207,6 +5383,12 @@ msgid ""
"telecommunications, and services that are electronically supplied instead of"
" shipped. Gift cards sent online are not included in the definition."
msgstr ""
+"Хэрэв европын захиалагчдад ямар нэг дижитал бараа зарж байвал, та "
+"захиалагчын байршилаас хамаарсан НӨАТ-г тооцох ёстой. Энэ дүрэм нь та өөрөө "
+"хаана байрлалтайгаас үл хамаарах юм. Дижитал бараа гэдэг бол нэвтрүүлэг "
+"цацах, утсан харилцаа холбоо, электрон хэлбэрээр хүргэгддэг үйлчилгээ "
+"зэргээр тодорхойлогдоно. Харин бэлгийн карт онлайнаар илгээх нь энэ төрөл "
+"зүйлд хамаарахгүй."
#. module: account
#: model:ir.model.fields,help:account.field_account_invoice_line__product_image
@@ -5237,12 +5419,12 @@ msgstr ".qif файлыг импортлох"
#. module: account
#: model:ir.actions.act_window,name:account.account_invoice_import_wizard_action
msgid "Import Vendor Bills"
-msgstr ""
+msgstr "Нийлүүлэгчийн нэхэмжлэл импорт"
#. module: account
#: model:ir.model,name:account.model_account_invoice_import_wizard
msgid "Import Your Vendor Bills from Files."
-msgstr ""
+msgstr "Файлаас нийлүүлэгчийн нэхэмжлэл импорт хийх."
#. module: account
#: model:ir.model.fields,field_description:account.field_res_config_settings__module_account_bank_statement_import_csv
@@ -5257,38 +5439,38 @@ msgstr ".ofx файл импортлох"
#. module: account
#: model:ir.model.fields,field_description:account.field_res_config_settings__module_account_bank_statement_import_camt
msgid "Import in CAMT.053 format"
-msgstr ""
+msgstr "CAMT.053 файл импортлох"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
msgid "Import your bank statements automatically"
-msgstr ""
+msgstr "Банкны хуулга автоматаар импортлох"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
msgid "Import your bank statements in CAMT.053"
-msgstr ""
+msgstr "CAMT.053 форматаар банкны хуулга импортлох"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
msgid "Import your bank statements in CSV"
-msgstr ""
+msgstr "CSV форматаар банкны хуулга импортлох"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
msgid "Import your bank statements in OFX"
-msgstr ""
+msgstr "OFX форматаар банкны хуулга импортлох"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
msgid "Import your bank statements in QIF"
-msgstr ""
+msgstr "QIF форматаар банкны хуулга импортлох"
#. module: account
#: selection:account.invoice,state:0
#: model_terms:ir.ui.view,arch_db:account.view_account_invoice_filter
msgid "In Payment"
-msgstr ""
+msgstr "Төлбөгдөж буй"
#. module: account
#: code:addons/account/models/account_bank_statement.py:355
@@ -5413,6 +5595,8 @@ msgid ""
"Incoterms are used to divide transaction costs and responsibilities between "
"buyer and seller."
msgstr ""
+"Худалдааны нөхцөл нь тээврийн зардлыг худалдан авагч тал эсвэл нийлүүлэгч "
+"тал даах эсвэл хувааж даах зэргийг тодорхойлдог нийтлэг ойлголтууд юм."
#. module: account
#. openerp-web
@@ -5519,7 +5703,7 @@ msgstr "Буруу \"Zip Муж\", зөв тохируулна уу."
#: code:addons/account/models/company.py:106
#, python-format
msgid "Invalid fiscal year last day"
-msgstr ""
+msgstr "Санхүүгийн жилийн сүүлийн өдөр буруу байна"
#. module: account
#: code:addons/account/models/account_invoice.py:1358
@@ -5621,7 +5805,7 @@ msgstr "Татварын нэхэмжлэл"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice__refund_invoice_id
msgid "Invoice for which this invoice is the credit note"
-msgstr ""
+msgstr "Уг буцаалтын нэхэмжлэлийн эх нэхэмжлэл"
#. module: account
#: code:addons/account/models/account_invoice.py:884
@@ -5633,7 +5817,7 @@ msgstr "Нэхэмжлэлийг ноороглохын тулд эхлээд ц
#: code:addons/account/models/account_invoice.py:908
#, python-format
msgid "Invoice must be in draft state in order to validate it."
-msgstr ""
+msgstr "Нэхэмжлэлийг батлахын тулд ноорог төлөвтэй байх ёстой."
#. module: account
#: code:addons/account/models/account_invoice.py:935
@@ -5668,6 +5852,8 @@ msgid ""
"Invoice_${(object.number or '').replace('/','_')}${object.state == 'draft' "
"and '_draft' or ''}"
msgstr ""
+"Нэхэмжлэл_${(object.number or '').replace('/','_')}${object.state == 'draft'"
+" and '_draft' or ''}"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.view_account_invoice_report_search
@@ -5790,7 +5976,7 @@ msgstr "Татвар үнийн дүнд шингэсэн эсэх"
#. module: account
#: model:ir.model.fields,help:account.field_account_invoice_line__is_rounding_line
msgid "Is a rounding line in case of cash rounding."
-msgstr ""
+msgstr "Мөнгөн нарийвчлалын улмаас үүссэн нэхэмжлэлийн мөр эсэх."
#. module: account
#: model:ir.model.fields,field_description:account.field_account_bank_statement__is_difference_zero
@@ -5812,7 +5998,7 @@ msgstr "Энэ бол дебит гүйлгээний үндсэн данс"
#. module: account
#: model:ir.model.fields,help:account.field_account_journal__alias_name
msgid "It creates draft vendor bill by sending an email."
-msgstr ""
+msgstr "Имэйл илгээснээр нийлүүлэгчийн ноорог нэхэмжлэл бүртгэгдэнэ."
#. module: account
#: model:ir.model.fields,help:account.field_account_invoice__reconciled
@@ -5997,12 +6183,12 @@ msgstr "Таарах дугаар тохируулаагүй журналийн
msgid ""
"Journal where the opening entry of this company's accounting has been "
"posted."
-msgstr ""
+msgstr "Компаны санхүүгийн нээлтийн ажил гүйлгээ бүртгэгдсэн журнал."
#. module: account
#: model:ir.model.fields,help:account.field_account_invoice_import_wizard__journal_id
msgid "Journal where to generate the bills"
-msgstr ""
+msgstr "Нэхэмжлэл бүртгэх журнал"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_bank_statement_line__journal_currency_id
@@ -6023,7 +6209,7 @@ msgstr "Журнал"
#. module: account
#: model:ir.actions.report,name:account.action_report_journal
msgid "Journals Audit"
-msgstr ""
+msgstr "Журналын аудит"
#. module: account
#: selection:res.company,fiscalyear_last_month:0
@@ -6090,6 +6276,7 @@ msgstr "Нээлттэй үлдээ"
msgid ""
"Keep this field empty to use the default value from the product category."
msgstr ""
+"Барааны ангилал дээрх тохиргооноос авч ашиглах бол энэ талбарыг хоосон орхи."
#. module: account
#: model:ir.model.fields,help:account.field_product_product__property_account_expense_id
@@ -6099,11 +6286,14 @@ msgid ""
" anglo-saxon accounting with automated valuation method is configured, the "
"expense account on the product category will be used."
msgstr ""
+"Барааны ангилал дээрх тохиргооноос авч ашиглах бол энэ талбарыг хоосон орхи."
+" Хэрэв Anglo-Saxon-ыг автомат гүйлгээ бүртгэх тохиргоотойгоор ашиглаж байвал"
+" барааны ангилал дээрх зардлын данс ашиглагдана."
#. module: account
#: model:ir.model.fields,field_description:account.field_digest_digest__kpi_account_total_revenue_value
msgid "Kpi Account Total Revenue Value"
-msgstr ""
+msgstr "Нийт орлогыг тодорхойлох KPI данс"
#. module: account
#. openerp-web
@@ -6125,7 +6315,7 @@ msgstr "Гүйлгээний утга"
#: model:ir.model.fields,field_description:account.field_account_reconcile_model__match_label_param
#: model:ir.model.fields,field_description:account.field_account_reconcile_model_template__match_label_param
msgid "Label Parameter"
-msgstr ""
+msgstr "Гүйлгээний утгын нөхцөл"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_tax__description
@@ -6200,7 +6390,7 @@ msgstr "Сүүлийн засвар хийсэн огноо"
#: code:addons/account/static/src/xml/account_reconciliation.xml:125
#, python-format
msgid "Last Reconciliation:"
-msgstr ""
+msgstr "Сүүлд тулгагдсан:"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_account__write_uid
@@ -6376,7 +6566,7 @@ msgstr "Бага Төлбөр"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
msgid "Let your customers pay their invoices online"
-msgstr ""
+msgstr "Та өөрийн захиалагчдыг нэхэмжлэлээ онлайнаар төлөхийг зөвшөөрөх"
#. module: account
#: selection:account.account.type,internal_group:0
@@ -6387,22 +6577,22 @@ msgstr "Эх үүсвэр"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice_report__nbr
msgid "Line Count"
-msgstr ""
+msgstr "Мөрийн тоо"
#. module: account
#: model:ir.model.fields,field_description:account.field_res_config_settings__show_line_subtotals_tax_selection
msgid "Line Subtotals Tax Display"
-msgstr ""
+msgstr "Нэхэмжлэлийн мөрийн татварын байдал"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
msgid "Line subtotals tax display"
-msgstr ""
+msgstr "Нэхэмжлэлийн мөрийн татварын байдал"
#. module: account
#: selection:account.setup.bank.manual.config,create_or_link_option:0
msgid "Link to an existing journal"
-msgstr ""
+msgstr "Бэлэн байгаа журналтай холбох"
#. module: account
#: model:ir.model.fields,help:account.field_account_invoice__move_id
@@ -6486,7 +6676,7 @@ msgstr "БУСАД"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice_send__mail_activity_type_id
msgid "Mail Activity Type"
-msgstr ""
+msgstr "Имэйл ажилбарын төрөл"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice_send__mailing_list_ids
@@ -6537,6 +6727,9 @@ msgid ""
"Electronic: Get paid automatically through a payment acquirer by requesting a transaction on a card saved by the customer when buying or subscribing online (payment token).\n"
"Batch Deposit: Encase several customer checks at once by generating a batch deposit to submit to your bank. When encoding the bank statement in Odoo,you are suggested to reconcile the transaction with the batch deposit. Enable this option from the settings."
msgstr ""
+"Гараар: Бэлэн мөнгөөр төлөгдөх эсвэл Odoo системээс гадуур ямар нэг төлбөрийн хэрэгслээр төлөгдөх.\n"
+"Электрон: Ямар нэг онлайн төлбөрийн хэрэгсэлээр төлөлт хийх үед автоматаар захиалагчийн гүйлгээ бүртгэгдэх (төлбөрийн token).\n"
+"Багц төлбөр: Захиалагч хэд хэдэн төлөлтийг нэгтгэн банкнаар нэг төлбөр шилжүүлэх тохиолдол. Odoo-д банкны гүйлгээ хөтлөгдөх үед танд холбогдох нэхэмжлэлүүдийг сонгож тулгах боломж олгогдоно. Энэ боломжыг тохиргооноос идэвхижүүлээрэй."
#. module: account
#: model:ir.model.fields,help:account.field_account_abstract_payment__payment_method_id
@@ -6549,6 +6742,11 @@ msgid ""
"Batch Deposit: Encase several customer checks at once by generating a batch deposit to submit to your bank. When encoding the bank statement in Odoo, you are suggested to reconcile the transaction with the batch deposit.To enable batch deposit, module account_batch_payment must be installed.\n"
"SEPA Credit Transfer: Pay bill from a SEPA Credit Transfer file you submit to your bank. To enable sepa credit transfer, module account_sepa must be installed "
msgstr ""
+"Гараар: Бэлэн мөнгөөр төлөгдөх эсвэл Odoo системээс гадуур ямар нэг төлбөрийн хэрэгслээр төлөгдөх.\n"
+"Электрон: Ямар нэг онлайн төлбөрийн хэрэгсэлээр төлөлт хийх үед автоматаар захиалагчийн гүйлгээ бүртгэгдэх (төлбөрийн token).\n"
+"Чек: Нэхэмжлэлийг чекээр төлж төлбөрийн баримтыг Odoo-с хэвлэх.\n"
+"Багц төлбөр: Захиалагч хэд хэдэн төлөлтийг нэгтгэн банкнаар нэг төлбөр шилжүүлэх тохиолдол. Odoo-д банкны гүйлгээ хөтлөгдөх үед танд холбогдох нэхэмжлэлүүдийг сонгож тулгах боломж олгогдоно. Багц төлөлт бүртгэх боломжыг идэвхижүүлэхийн тулд account_batch_payment модуль суулгах шаардлагатай.\n"
+"SEPA Credit Transfer: SEPA Credit Transfer систем ашиглан нэхэмжлэлийн төлбөрийг банк руу дамжуулах. Үүний тулд account_sepa модуль суулгах шаардлагатай. "
#. module: account
#: model:ir.model.fields,help:account.field_account_journal__outbound_payment_method_ids
@@ -6557,6 +6755,9 @@ msgid ""
"Check:Pay bill by check and print it from Odoo.\n"
"SEPA Credit Transfer: Pay bill from a SEPA Credit Transfer file you submit to your bank. Enable this option from the settings."
msgstr ""
+"Гараар: Бэлэн мөнгөөр төлөгдөх эсвэл Odoo системээс гадуур ямар нэг төлбөрийн хэрэгслээр төлөгдөх.\n"
+"Чек: Нэхэмжлэлийг чекээр төлж төлбөрийн баримтыг Odoo-с хэвлэх.\n"
+"SEPA Credit Transfer: SEPA Credit Transfer систем ашиглан нэхэмжлэлийн төлбөрийг банк руу дамжуулах. Үүний тулд account_sepa модуль суулгах шаардлагатай. "
#. module: account
#: selection:account.reconcile.model,rule_type:0
@@ -6565,7 +6766,7 @@ msgstr ""
#: code:addons/account/models/chart_template.py:981
#, python-format
msgid "Manually create a write-off on clicked button."
-msgstr ""
+msgstr "Товч дарж гараар зөрүү хаах бичилт үүсгэх."
#. module: account
#: selection:res.company,fiscalyear_last_month:0
@@ -6603,7 +6804,7 @@ msgstr "Масс мэйлийн нэр"
#: selection:account.reconcile.model,match_label:0
#: selection:account.reconcile.model.template,match_label:0
msgid "Match Regex"
-msgstr ""
+msgstr "Regex нөхцөл"
#. module: account
#: selection:account.reconcile.model,rule_type:0
@@ -6731,16 +6932,17 @@ msgstr "Бусад Ажилбар"
#: sql_constraint:account.invoice.line:0
msgid "Missing required account on accountable invoice line."
msgstr ""
+"Санхүүд холбогдох нэхэмжлэлийн мөр дээр шаардлагатай данс дутуу байна."
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice_send__moderator_id
msgid "Moderated By"
-msgstr ""
+msgstr "Зохицуулагч"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice_send__moderation_status
msgid "Moderation Status"
-msgstr ""
+msgstr "Зохицуулалтын төлөв"
#. module: account
#. openerp-web
@@ -6752,17 +6954,17 @@ msgstr "Моделийг засварлах"
#. module: account
#: selection:account.cash.rounding,strategy:0
msgid "Modify tax amount"
-msgstr ""
+msgstr "Татварын дүнг засах"
#. module: account
#: selection:account.invoice.refund,filter_refund:0
msgid "Modify: create credit note, reconcile and create a new draft invoice"
-msgstr ""
+msgstr "Засварлах: буцаалт үүсгэж холбоод шинээр ноорог нэхэмжлэл үүсгэнэ"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
msgid "Monitor your product margins from invoices"
-msgstr ""
+msgstr "Нэхэмжлэл дээр барааны ашгийг харах"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.report_journal
@@ -6779,12 +6981,12 @@ msgstr "Хөдөлгөөний мөрүүд"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_bank_statement__move_line_count
msgid "Move Line Count"
-msgstr ""
+msgstr "Гүйлгээний мөрийн тоо"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_payment__move_reconciled
msgid "Move Reconciled"
-msgstr ""
+msgstr "Тулгагдсан гүйлгээ"
#. module: account
#: code:addons/account/models/account_move.py:1134
@@ -6797,7 +6999,7 @@ msgstr "Гүйлгээний нэр (id): %s (%s)"
#: model:ir.model.fields,field_description:account.field_account_payment__multi
#: model:ir.model.fields,field_description:account.field_account_register_payments__multi
msgid "Multi"
-msgstr ""
+msgstr "Олон"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
@@ -6853,7 +7055,7 @@ msgstr "Гүйлгээний утга"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
msgid "Navigate easily through reports and see what is behind the numbers"
-msgstr ""
+msgstr "Санхүү бүртгэлтэй холбоотой дэлгэрэнгүй тайлан ашиглах"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice_send__needaction
@@ -6864,7 +7066,7 @@ msgstr "Үйлдэл Шаардлагатай"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice_send__need_moderation
msgid "Need moderation"
-msgstr ""
+msgstr "Зохицуулалт шаардлагатай"
#. module: account
#. openerp-web
@@ -6944,6 +7146,8 @@ msgid ""
"No account was found to create the invoice, be sure you have installed a "
"chart of account."
msgstr ""
+"Нэхэмжлэл үүсгэхэд шаардагдах данс олдсонгүй, дансны мод суулгасан эсэхээ "
+"нягтална уу."
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice_send__no_auto_thread
@@ -7019,6 +7223,8 @@ msgid ""
"Note that the easiest way to create a credit note is to do it directly\n"
" from the customer invoice."
msgstr ""
+"Захиалагчийн нэхэмжлэлийн дэлгэцээс шууд буцаалтын нэхэмжлэлийг\n"
+" хялбархан бүртгэх арга байдгыг анхаарна уу."
#. module: account
#: model_terms:ir.actions.act_window,help:account.action_invoice_in_refund
@@ -7026,6 +7232,8 @@ msgid ""
"Note that the easiest way to create a vendor credit note it to do it "
"directly from the vendor bill."
msgstr ""
+"Нийлүүлэгчийн нэхэмжлэлийн дэлгэцээс шууд буцаалтын нэхэмжлэлийг хялбархан "
+"бүртгэх арга байдгыг анхаарна уу."
#. module: account
#: model:ir.model.fields,field_description:account.field_account_bank_statement_line__note
@@ -7122,7 +7330,7 @@ msgstr "Уншаагүй зурвасын тоо"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
msgid "OFX Import"
-msgstr ""
+msgstr "OFX импорт"
#. module: account
#: selection:res.company,fiscalyear_last_month:0
@@ -7155,7 +7363,7 @@ msgstr "Хуучин татвар"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.view_payment_term_line_form
msgid "On the"
-msgstr ""
+msgstr "Өдөр"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.account_invoice_confirm_view
@@ -7176,18 +7384,21 @@ msgid ""
"Once installed, set 'Bank Feeds' to 'File Import' in bank account "
"settings.This adds a button to import from the Accounting dashboard."
msgstr ""
+"Үүнийг суулгаснаар банкны журнал дээр Банкны гүйлгээг файлаас импортлох "
+"тохиргоо хийгдэнэ. Мөн Санхүүгийн хянах самбар дээр импорт хийх товч "
+"нэмэгдэнэ."
#. module: account
#: code:addons/account/models/account_payment.py:599
#, python-format
msgid "Only a draft payment can be posted."
-msgstr ""
+msgstr "Зөвхөн ноорог гүйлгээнүүд батлагдана."
#. module: account
#: code:addons/account/models/chart_template.py:197
#, python-format
msgid "Only administrators can load a charf of accounts"
-msgstr ""
+msgstr "Зөвхөн админ хэрэглэгч дансны мод ачааллах боломжтой"
#. module: account
#: model:ir.model.fields,help:account.field_res_company__period_lock_date
@@ -7293,6 +7504,10 @@ msgid ""
"otherwise it would make a gap in the numbering. You should book an entry and"
" make a regular revert of it in case you want to cancel it."
msgstr ""
+"Зөвшөөрөгдөөгүй үйлдэл. Таны банкны хуулга дахь гүйлгээний мөр дээр дугаар "
+"(%s) оногдсоноос хойш та үүнийг дахин ямар нэг журналын бичилттэй тулгалт "
+"хийх боломжгүй. Эс бөгөөс дугаарлалтын цоорхой үүснэ. Хэрэв та энэ гүйлгээг "
+"цуцлахыг хүсвэл ердөө эсрэг гүйлгээ гараар бүртгэхэд болно."
#. module: account
#: model_terms:ir.ui.view,arch_db:account.account_journal_dashboard_kanban_view
@@ -7326,6 +7541,9 @@ msgid ""
"href=#id=%s&model=account.journal>email alias</a> to allow draft vendor "
"bills to be created upon reception of an email."
msgstr ""
+"Эсвэл <a data-oe-id=%s data-oe-model=\"account.journal\" "
+"href=#id=%s&model=account.journal> имэйл alias</a> тохируулж ирсэн имэйлээр "
+"нийлүүлэгчийн ноорог нэхэмжлэл бүртгэдэг байх боломжтой."
#. module: account
#: code:addons/account/models/account_invoice.py:707
@@ -7334,6 +7552,8 @@ msgid ""
"Or share the email %s to your vendors: bills will be created automatically "
"upon mail reception."
msgstr ""
+"Эсвэл %s имэйлийг өөрийн нийлүүлэгчиддээ түгээснээр, ирсэн имэйлийн дагуу "
+"нийлүүлэгчийн нэхэмжлэл автоматаар бүртгэгдэнэ."
#. module: account
#: code:addons/account/models/account_invoice.py:709
@@ -7342,6 +7562,8 @@ msgid ""
"Or share the emails %s to your vendors: bills will be created automatically "
"upon mail reception."
msgstr ""
+"Эсвэл %s имэйлийг өөрийн нийлүүлэгчиддээ түгээснээр, ирсэн имэйлийн дагуу "
+"нийлүүлэгчийн нэхэмжлэл автоматаар бүртгэгдэнэ."
#. module: account
#: model:ir.model.fields,field_description:account.field_account_move_line__payment_id
@@ -7384,7 +7606,7 @@ msgstr "Нөөцийн Үнэлгээний Гарах Данс"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice__outstanding_credits_debits_widget
msgid "Outstanding Credits Debits Widget"
-msgstr ""
+msgstr "Холбох боломжтой кредит, дебетүүд"
#. module: account
#: code:addons/account/models/account_invoice.py:133
@@ -7469,12 +7691,12 @@ msgstr "Эцэг зурвас"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_group__parent_path
msgid "Parent Path"
-msgstr ""
+msgstr "Эцэг зам"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_move_line__parent_state
msgid "Parent State"
-msgstr ""
+msgstr "Эцэг төлөв"
#. module: account
#: model:ir.model,name:account.model_account_partial_reconcile
@@ -7513,24 +7735,24 @@ msgstr "Харилцагч Компани"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice_report__country_id
msgid "Partner Company's Country"
-msgstr ""
+msgstr "Харилцагч компаны улс"
#. module: account
#: model:ir.model.fields,field_description:account.field_res_partner__contract_ids
#: model:ir.model.fields,field_description:account.field_res_users__contract_ids
msgid "Partner Contracts"
-msgstr ""
+msgstr "Харилцагчийн холбогдох хаяг"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_reconcile_model__match_partner
#: model:ir.model.fields,field_description:account.field_account_reconcile_model_template__match_partner
msgid "Partner Is Set"
-msgstr ""
+msgstr "Тулгалт хийх харилцагч"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.view_account_reconcile_model_form
msgid "Partner Is Set & Matches"
-msgstr ""
+msgstr "Тулгалт хийж харгалзуулах харилцагч"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_bank_statement_line__partner_name
@@ -7542,7 +7764,7 @@ msgstr "Харилцагчийн нэр"
#: model:ir.model.fields,field_description:account.field_account_payment__partner_type
#: model:ir.model.fields,field_description:account.field_account_register_payments__partner_type
msgid "Partner Type"
-msgstr ""
+msgstr "Харилцагчийн төрөл"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice_send__needaction_partner_ids
@@ -7558,7 +7780,7 @@ msgstr "Өнгөрсөн"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
msgid "Pay your bills in one-click using Euro SEPA Service"
-msgstr ""
+msgstr "Euro SEPA үйлчилгээ ашиглан ганц товч даралтаар нэхэмжлэлээ төлөх"
#. module: account
#: model:account.account.type,name:account.data_account_type_payable
@@ -7615,7 +7837,7 @@ msgstr "Төлбөргийн Зөрүү"
#: model:ir.model.fields,field_description:account.field_account_payment__payment_difference_handling
#: model:ir.model.fields,field_description:account.field_account_register_payments__payment_difference_handling
msgid "Payment Difference Handling"
-msgstr ""
+msgstr "Төлбөрийн зөрүүг шийдвэрлэх"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_abstract_payment__journal_id
@@ -7627,7 +7849,7 @@ msgstr "Төлбөрийн Журнал"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.view_account_payment_form
msgid "Payment Matching"
-msgstr ""
+msgstr "Төлбөр харгалзуулалт"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.view_account_payment_search
@@ -7667,12 +7889,12 @@ msgstr "Төлбөрийн Гүйлгээний Мөрүүд"
#. module: account
#: model:ir.actions.report,name:account.action_report_payment_receipt
msgid "Payment Receipt"
-msgstr ""
+msgstr "Төлбөрийн баримт"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.report_payment_receipt_document
msgid "Payment Receipt:"
-msgstr ""
+msgstr "Төлбөрийн баримт:"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice__reference
@@ -7704,7 +7926,7 @@ msgstr "Төлбөрийн Нөхцөл"
#. module: account
#: model:ir.model,name:account.model_account_payment_term_line
msgid "Payment Terms Line"
-msgstr ""
+msgstr "Төлбөрийн нөхцлийн мөр"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_abstract_payment__payment_type
@@ -7722,37 +7944,37 @@ msgstr "Захиалагчид зориулсан төлбөрийн нөхцлÐ
#. module: account
#: model:account.payment.term,note:account.account_payment_term_15days
msgid "Payment terms: 15 Days"
-msgstr ""
+msgstr "Төлбөрийн нөхцөл: 15 хоног"
#. module: account
#: model:account.payment.term,note:account.account_payment_term_2months
msgid "Payment terms: 2 Months"
-msgstr ""
+msgstr "Төлбөрийн нөхцөл: 2 сар"
#. module: account
#: model:account.payment.term,note:account.account_payment_term_net
msgid "Payment terms: 30 Net Days"
-msgstr ""
+msgstr "Төлбөрийн нөхцөл: цэвэр 30 хоног"
#. module: account
#: model:account.payment.term,note:account.account_payment_term_advance
msgid "Payment terms: 30% Advance End of Following Month"
-msgstr ""
+msgstr "Төлбөрийн нөхцөл: Дараа сарын төгсгөлд 30% урьдчилгаа"
#. module: account
#: model:account.payment.term,note:account.account_payment_term_45days
msgid "Payment terms: 45 Days"
-msgstr ""
+msgstr "Төлбөрийн нөхцөл: 45 хоног"
#. module: account
#: model:account.payment.term,note:account.account_payment_term
msgid "Payment terms: End of Following Month"
-msgstr ""
+msgstr "Төлбөрийн нөхцөл: Дараа сарын төгсгөл"
#. module: account
#: model:account.payment.term,note:account.account_payment_term_immediate
msgid "Payment terms: Immediate Payment"
-msgstr ""
+msgstr "Төлбөрийн нөхцөл: Шууд төлбөр"
#. module: account
#: model:ir.model.fields,help:account.field_account_move_line__payment_id
@@ -7780,7 +8002,7 @@ msgstr "Тохирох Төлбөрүүд"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice__payments_widget
msgid "Payments Widget"
-msgstr ""
+msgstr "Төлбөрийн цонх"
#. module: account
#: model_terms:ir.actions.act_window,help:account.action_account_payments
@@ -7789,7 +8011,7 @@ msgstr ""
msgid ""
"Payments are used to register liquidity movements. You can process those "
"payments by your own means or by using installed facilities."
-msgstr ""
+msgstr "Эздийн өмчийн өөрчлөлт бүртгэхэд зориулсан төлбөр."
#. module: account
#: model:ir.actions.act_window,name:account.action_invoice_tree_pending_invoice
@@ -7834,7 +8056,7 @@ msgstr "Балансын хувь"
#: code:addons/account/models/account_invoice.py:2018
#, python-format
msgid "Percentages on the Payment Terms lines must be between 0 and 100."
-msgstr ""
+msgstr "Төлбөрийн нөхцлийн мөр дээрх хувь нь 0 ээс 100 ын хооронд байна."
#. module: account
#: model_terms:ir.ui.view,arch_db:account.view_account_invoice_filter
@@ -7856,7 +8078,7 @@ msgstr "Төлөвлөсөн"
#: code:addons/account/models/account_invoice.py:1187
#, python-format
msgid "Please add at least one invoice line."
-msgstr ""
+msgstr "Дор хаяж нэг нэхэмжлэлийн мөр нэмнэ үү."
#. module: account
#: code:addons/account/wizard/pos_box.py:27
@@ -7874,7 +8096,7 @@ msgstr "'Шилжүүлэх Данс' талбар компани дээр тоÑ
#: code:addons/account/models/account_invoice.py:1309
#, python-format
msgid "Please define a sequence for the credit notes"
-msgstr ""
+msgstr "Буцаалтын нэхэмжлэлд зориулж дугаарлалтын дүрэм тодорхойлно уу"
#. module: account
#: code:addons/account/models/account_invoice.py:1314
@@ -7896,11 +8118,13 @@ msgid ""
"Please install a chart of accounts or create a miscellaneous journal before "
"proceeding."
msgstr ""
+"Энэ үйлдлийг хийхээс өмнө дансны мод суулгах эсвэл ерөнхий зориулалттай ямар"
+" нэг журнал үүссгэнэ үү."
#. module: account
#: model_terms:ir.ui.view,arch_db:account.report_invoice_document
msgid "Please use the following communication for your payment :"
-msgstr ""
+msgstr "Та төлбөр төлөхдөө дараах хэрэгслүүдээс сонгоно уу:"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice__access_url
@@ -7920,7 +8144,7 @@ msgstr "Бүх Бичилтийг Батлах"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_journal__post_at_bank_rec
msgid "Post At Bank Reconciliation"
-msgstr ""
+msgstr "Банкны тулгалтаар баталгаажуулах"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.view_account_payment_from_invoices
@@ -7971,12 +8195,12 @@ msgstr "Төв кассын дансны угтвар"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_chart_template__transfer_account_code_prefix
msgid "Prefix of the main transfer accounts"
-msgstr ""
+msgstr "Мөнгөн шилжүүлгийн дансны угтвар"
#. module: account
#: model:ir.model.fields,field_description:account.field_res_company__transfer_account_code_prefix
msgid "Prefix of the transfer accounts"
-msgstr ""
+msgstr "Шилжүүлгийн дансны угтвар"
#. module: account
#: model:account.account.type,name:account.data_account_type_prepayments
@@ -7997,7 +8221,7 @@ msgstr "Урьдчилан харах"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.account_invoice_send_wizard_form
msgid "Preview as a PDF"
-msgstr ""
+msgstr "PDF-р урьдчилж харах"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.invoice_form
@@ -8026,12 +8250,12 @@ msgstr ""
#. module: account
#: model:ir.model.fields,field_description:account.field_res_company__invoice_is_print
msgid "Print by default"
-msgstr ""
+msgstr "Байнга хэвлэгдэх"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
msgid "Print checks to pay your vendors"
-msgstr ""
+msgstr "Нийлүүлэгчиддээ төлөх төлбөрийн чекийг хэвлэх"
#. module: account
#: model:ir.model,name:account.model_product_product
@@ -8093,6 +8317,8 @@ msgid ""
"Programmation Error: Can't call _get_invoice_matching_query() for different "
"rules than 'invoice_matching'"
msgstr ""
+"Програмын алдаа: _get_invoice_matching_query() функцыг 'invoice_matching'-с "
+"өөр дүрмээр дуудах боломжгүй."
#. module: account
#: code:addons/account/models/account_reconcile_model.py:505
@@ -8101,6 +8327,8 @@ msgid ""
"Programmation Error: Can't call _get_wo_suggestion_query() for different "
"rules than 'writeoff_suggestion'"
msgstr ""
+"Програмын алдаа: _get_wo_suggestion_query() функцыг 'writeoff_suggestion'-с "
+"өөр дүрмээр дуудах боломжгүй."
#. module: account
#: code:addons/account/models/account_payment.py:282
@@ -8108,6 +8336,8 @@ msgstr ""
msgid ""
"Programming error: wizard action executed without active_ids in context."
msgstr ""
+"Програмын алдаа: active_ids утга context-д өгөгдөлгүйгээр wizard дуудагдсан "
+"байна."
#. module: account
#: model_terms:ir.ui.view,arch_db:account.view_account_chart_template_form
@@ -8154,7 +8384,7 @@ msgstr "Python код"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
msgid "QIF Import"
-msgstr ""
+msgstr "QIF импорт"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice_line__quantity
@@ -8170,7 +8400,7 @@ msgstr "Тоо хэмжээ:"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice_send__rating_value
msgid "Rating Value"
-msgstr ""
+msgstr "Үнэлсэн утга"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice_refund__description
@@ -8205,7 +8435,7 @@ msgstr "Авлагын данс"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice_report__account_id
msgid "Receivable/Payable Account"
-msgstr ""
+msgstr "Авлага/Өглөгийн данс"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.product_template_form_view
@@ -8224,7 +8454,7 @@ msgstr "Мөнгө Хүлээн авах"
#: model:ir.model.fields,field_description:account.field_account_payment__partner_bank_account_id
#: model:ir.model.fields,field_description:account.field_account_register_payments__partner_bank_account_id
msgid "Recipient Bank Account"
-msgstr ""
+msgstr "Хүлээн авах банкны данс"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.account_invoice_send_wizard_form
@@ -8234,7 +8464,7 @@ msgstr "Хүлээн авагчид"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_move_line__recompute_tax_line
msgid "Recompute Tax Line"
-msgstr ""
+msgstr "Татварын мөрийг шинэчлэх"
#. module: account
#. openerp-web
@@ -8255,7 +8485,7 @@ msgstr "Бичилтүүдийг тулгах"
#. module: account
#: model:ir.model,name:account.model_account_reconcile_model_template
msgid "Reconcile Model Template"
-msgstr ""
+msgstr "Тулгалт хийх модел загвар"
#. module: account
#: selection:account.payment,state:0
@@ -8267,7 +8497,7 @@ msgstr "Тулгагдсан"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_payment__reconciled_invoice_ids
msgid "Reconciled Invoices"
-msgstr ""
+msgstr "Тулгагдсан нэхэмжлэл"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.view_move_form
@@ -8306,13 +8536,13 @@ msgstr ""
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
msgid "Record transactions in foreign currencies"
-msgstr ""
+msgstr "Гадаад валютын гүйлгээ бүртгэх"
#. module: account
#: code:addons/account/models/account.py:937
#, python-format
msgid "Recursion found for tax '%s'."
-msgstr ""
+msgstr "'%s' татварын хувьд рекурсив хамаарал илэрлээ."
#. module: account
#. openerp-web
@@ -8370,7 +8600,7 @@ msgstr "Төлбөр Буцаалт"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice__refund_invoice_ids
msgid "Refund Invoices"
-msgstr ""
+msgstr "Буцаалтын нэхэмжлэл"
#. module: account
#: model:ir.actions.act_window,name:account.action_account_invoice_payment
@@ -8391,14 +8621,14 @@ msgstr "Төлбөр Бүртгэх"
#. module: account
#: model_terms:ir.actions.act_window,help:account.action_bank_statement_tree
msgid "Register a bank statement"
-msgstr ""
+msgstr "Банкны хуулга бүртгэх"
#. module: account
#: model_terms:ir.actions.act_window,help:account.action_account_payments
#: model_terms:ir.actions.act_window,help:account.action_account_payments_payable
#: model_terms:ir.actions.act_window,help:account.action_account_payments_transfer
msgid "Register a payment"
-msgstr ""
+msgstr "Төлбөр бүртгэх"
#. module: account
#: selection:account.account.type,type:0
@@ -8418,7 +8648,7 @@ msgstr "Холбогдох Баримтын Модель"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice_send__rating_ids
msgid "Related ratings"
-msgstr ""
+msgstr "Холбоотой үнэлгээ"
#. module: account
#: model:ir.model.fields,help:account.field_account_invoice__residual_company_signed
@@ -8468,12 +8698,12 @@ msgstr "Тайлан"
#. module: account
#: model:ir.model.fields,help:account.field_account_cash_rounding__rounding
msgid "Represent the non-zero value smallest coinage (for example, 0.05)."
-msgstr ""
+msgstr "Хамгийн бага 0-с их мөнгөний утга (жишээ нь 0.05)."
#. module: account
#: model:ir.model.fields,field_description:account.field_account_setup_bank_manual_config__res_partner_bank_id
msgid "Res Partner Bank"
-msgstr ""
+msgstr "Харилцагчийн банкны данс"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.invoice_form
@@ -8501,7 +8731,7 @@ msgstr "Үлдэгдэл дүн валютаар"
#: code:addons/account/models/account_journal_dashboard.py:32
#, python-format
msgid "Residual amount"
-msgstr ""
+msgstr "Үлдэгдэл дүн"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_bank_statement__user_id
@@ -8518,20 +8748,20 @@ msgstr "Хариуцагч хэрэглэгч"
#: model:ir.model.fields,field_description:account.field_account_reconcile_model__match_partner_category_ids
#: model:ir.model.fields,field_description:account.field_account_reconcile_model_template__match_partner_category_ids
msgid "Restrict Partner Categories to"
-msgstr ""
+msgstr "Харилцагчын ангилалаар хязгаарлах нь"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_reconcile_model__match_partner_ids
#: model:ir.model.fields,field_description:account.field_account_reconcile_model_template__match_partner_ids
msgid "Restrict Partners to"
-msgstr ""
+msgstr "Харилцагчаар хязгаарлах нь"
#. module: account
#: model:ir.model.fields,help:account.field_account_reconcile_model__match_same_currency
#: model:ir.model.fields,help:account.field_account_reconcile_model_template__match_same_currency
msgid ""
"Restrict to propositions having the same currency as the statement line."
-msgstr ""
+msgstr "Зөвхөн ижил валюттай гүйлгээний мөрүүдийг тулгах эсэх"
#. module: account
#: model:ir.model.fields,field_description:account.field_digest_digest__kpi_account_total_revenue
@@ -8546,12 +8776,12 @@ msgstr "Орлого Таних"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice_report__account_line_id
msgid "Revenue/Expense Account"
-msgstr ""
+msgstr "Орлого/Зардлын данс"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_move__reverse_date
msgid "Reversal Date"
-msgstr ""
+msgstr "Эсрэг бичилтийн огноо"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_move_reversal__date
@@ -8562,12 +8792,12 @@ msgstr "Буцаасан огноо"
#: code:addons/account/models/account_move.py:390
#, python-format
msgid "Reversal of: %s"
-msgstr ""
+msgstr "%s-н эсрэг бичилт"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_move__auto_reverse
msgid "Reverse Automatically"
-msgstr ""
+msgstr "Автоматаар эсрэг бичих"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_move__reverse_entry_id
@@ -8586,7 +8816,7 @@ msgstr "Буцаалтын Гүйлгээ"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.view_move_form
msgid "Reversed entry"
-msgstr ""
+msgstr "Эсрэг гүйлгээ"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.onboarding_chart_of_account_step
@@ -8606,12 +8836,12 @@ msgstr "Мөрөөр тоймлох"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.rounding_form_view
msgid "Rounding Form"
-msgstr ""
+msgstr "Бүхэлчлэх хэлбэр"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice_line__is_rounding_line
msgid "Rounding Line"
-msgstr ""
+msgstr "Тоймчлолын мөр"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_cash_rounding__rounding_method
@@ -8626,12 +8856,12 @@ msgstr "Тоймлох Нарийвчлал"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_cash_rounding__strategy
msgid "Rounding Strategy"
-msgstr ""
+msgstr "Тоймлох стратеги"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.rounding_tree_view
msgid "Rounding Tree"
-msgstr ""
+msgstr "Тоймлолын жагсаалт"
#. module: account
#. openerp-web
@@ -8643,17 +8873,17 @@ msgstr "Ажиллуулах"
#. module: account
#: model:ir.model.fields,field_description:account.field_res_config_settings__module_account_sepa
msgid "SEPA Credit Transfer (SCT)"
-msgstr ""
+msgstr "SEPA кредит гүйлгээ (SCT)"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
msgid "SEPA Direct Debit (SDD)"
-msgstr ""
+msgstr "SEPA дебет гүйлгээ (SDD)"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
msgid "SEPA QR Code"
-msgstr ""
+msgstr "SEPA QR код"
#. module: account
#: selection:account.journal,type:0
@@ -8674,12 +8904,12 @@ msgstr "Борлуулалт"
#: model_terms:ir.ui.view,arch_db:account.account_invoice_onboarding_sale_tax_form
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
msgid "Sales Tax"
-msgstr ""
+msgstr "Борлуулалтын татвар"
#. module: account
#: model:ir.actions.act_window,name:account.action_open_account_onboarding_sale_tax
msgid "Sales tax"
-msgstr ""
+msgstr "Борлуулалтын татвар"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice__user_id
@@ -8693,35 +8923,35 @@ msgstr "Борлуулагч"
#: model:ir.model.fields,field_description:account.field_account_reconcile_model__match_same_currency
#: model:ir.model.fields,field_description:account.field_account_reconcile_model_template__match_same_currency
msgid "Same Currency Matching"
-msgstr ""
+msgstr "Ижил валютаар тулгах"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.onboarding_sample_invoice_step
msgid "Sample Invoice"
-msgstr ""
+msgstr "Жишээ нэхэмжлэл"
#. module: account
#: code:addons/account/models/company.py:485
#, python-format
msgid "Sample invoice"
-msgstr ""
+msgstr "Жишээ нэхэмжлэл"
#. module: account
#: code:addons/account/models/company.py:491
#, python-format
msgid "Sample invoice line name"
-msgstr ""
+msgstr "Жишээ нэхэмжлэлийн мөрийн нэр"
#. module: account
#: code:addons/account/models/company.py:498
#, python-format
msgid "Sample invoice line name 2"
-msgstr ""
+msgstr "Жишээ нэхэмжлэлийн мөрийн нэр 2"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.onboarding_sample_invoice_step
msgid "Sample invoice sent!"
-msgstr ""
+msgstr "Жишээ нэхэмжлэл илгээгдсэн!"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_setup_bank_manual_config__sanitized_acc_number
@@ -8748,7 +8978,7 @@ msgstr "Шинэ үлгэр болгож хадгалах"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
msgid "Save this page and come back here to set up the feature."
-msgstr ""
+msgstr "Энэ хуудсыг хадгалаад дахин ачаалласнаар шинэ боломжууд нэмэгдэнэ."
#. module: account
#: model_terms:ir.ui.view,arch_db:account.view_account_journal_search
@@ -8778,7 +9008,7 @@ msgstr "Дансны Төлөвлөгөөний Үлгэр Хайх"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.view_account_position_filter
msgid "Search Fiscal Positions"
-msgstr ""
+msgstr "Татварын тохируулга хайх"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.view_account_invoice_filter
@@ -8826,7 +9056,7 @@ msgstr "Хоёрдох Шинжилгээний Данс"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_reconcile_model__second_analytic_tag_ids
msgid "Second Analytic Tags"
-msgstr ""
+msgstr "Хоёрдох шинжилгээний пайз"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_reconcile_model__second_journal_id
@@ -8848,19 +9078,19 @@ msgstr "Хоёрдох Татвар"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_reconcile_model__second_tax_amount_type
msgid "Second Tax Amount Type"
-msgstr ""
+msgstr "Хоёрдох татварын дүнгийн төрөл"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_reconcile_model__force_second_tax_included
#: model:ir.model.fields,field_description:account.field_account_reconcile_model_template__force_second_tax_included
msgid "Second Tax Included in Price"
-msgstr ""
+msgstr "Хоёрдох татвар үнэд шингэсэн"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_reconcile_model__second_amount
#: model:ir.model.fields,field_description:account.field_account_reconcile_model_template__second_amount
msgid "Second Write-off Amount"
-msgstr ""
+msgstr "Хоёрдох хааж бичих дүн"
#. module: account
#: selection:account.invoice.line,display_type:0
@@ -8896,12 +9126,14 @@ msgstr "Харилцагчийг эсвэл харьцсан талыг сонг
#. module: account
#: model_terms:ir.ui.view,arch_db:account.invoice_supplier_form
msgid "Select an old vendor bill"
-msgstr ""
+msgstr "Хуучин нэхэмжлэлийг сонго"
#. module: account
#: model:ir.model.fields,help:account.field_account_payment_term_line__value
msgid "Select here the kind of valuation related to this payment terms line."
msgstr ""
+"Тухайн төлбөрийн нөхцлийн мөрийн дүнг хэрхэн тооцоолох хэлбэрийг энд "
+"сонгоно."
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
@@ -8909,6 +9141,8 @@ msgid ""
"Select this if the taxes should use cash basis, which will create an entry "
"for such taxes on a given account during reconciliation."
msgstr ""
+"Хэрэв татварууд мөнгөн суурьтай байх ёстой бол үүнийг сонго, ингэснээр "
+"татварын санхүүгийн бичилт нь төлбөр тулгагдах үед үүснэ."
#. module: account
#: code:addons/account/wizard/account_invoice_state.py:21
@@ -8916,6 +9150,8 @@ msgstr ""
msgid ""
"Selected invoice(s) cannot be confirmed as they are not in 'Draft' state."
msgstr ""
+"Сонгогдсон нэхэмжлэл нь 'Ноорог'-с өөр төлөвтэй байгаа тал батлах боломжгүй "
+"байна."
#. module: account
#: model:ir.model.fields,help:account.field_res_partner__invoice_warn
@@ -8939,7 +9175,7 @@ msgstr "Илгээх"
#: model_terms:ir.ui.view,arch_db:account.account_invoice_send_wizard_form
#: model_terms:ir.ui.view,arch_db:account.invoice_form
msgid "Send & Print"
-msgstr ""
+msgstr "Илгээх & Хэвлэх"
#. module: account
#: model:ir.model.fields,field_description:account.field_res_config_settings__invoice_is_email
@@ -8950,7 +9186,7 @@ msgstr "Эмэйл илгээх"
#: code:addons/account/models/account_invoice.py:622
#, python-format
msgid "Send Invoice"
-msgstr ""
+msgstr "Нэхэмжлэл илгээх"
#. module: account
#: selection:account.abstract.payment,payment_type:0
@@ -8962,17 +9198,17 @@ msgstr "Мөнгө Илгээх"
#. module: account
#: model:ir.actions.act_window,name:account.account_send_payment_receipt_by_email_action
msgid "Send Receipt By Email"
-msgstr ""
+msgstr "Төлбөрийн баримт имэйлээр илгээх"
#. module: account
#: model:ir.actions.act_window,name:account.action_open_account_onboarding_sample_invoice
msgid "Send a sample invoice"
-msgstr ""
+msgstr "Жишээ нэхэмжлэл илгээх"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.onboarding_sample_invoice_step
msgid "Send an invoice to test the customer portal."
-msgstr ""
+msgstr "Харилцагчийн портал хандалтыг шалгах үүднээс нэхэмжлэл илгээх."
#. module: account
#: model_terms:ir.ui.view,arch_db:account.onboarding_sample_invoice_step
@@ -9014,7 +9250,7 @@ msgstr "Дараалал"
#: code:addons/account/static/src/xml/account_reconciliation.xml:249
#, python-format
msgid "Set"
-msgstr ""
+msgstr "Тохируулах"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.view_account_payment_form
@@ -9025,11 +9261,15 @@ msgstr "Ноороглох"
#: model:ir.model.fields,help:account.field_account_account_tag__active
msgid "Set active to false to hide the Account Tag without removing it."
msgstr ""
+"Идэвхитэй талбарыг үгүй утгаар тэмдэглэснээр Дансны пайзыг устгалгүйгээр "
+"нуух боломжтой."
#. module: account
#: model:ir.model.fields,help:account.field_account_journal__active
msgid "Set active to false to hide the Journal without removing it."
msgstr ""
+"Идэвхитэй талбарыг үгүй утгаар тэмдэглэснээр журналыг устгалгүйгээр нуух "
+"боломжтой."
#. module: account
#: model:ir.model.fields,help:account.field_account_tax__active
@@ -9040,7 +9280,7 @@ msgstr "Татварыг устгалгүйгээр нуухын тулд идэ
#. module: account
#: model_terms:ir.ui.view,arch_db:account.onboarding_sale_tax_step
msgid "Set taxes"
-msgstr ""
+msgstr "Татвар тохируулах"
#. module: account
#: model:ir.model.fields,help:account.field_account_chart_template__visible
@@ -9079,17 +9319,18 @@ msgstr "Тохируулах"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.onboarding_bank_account_step
msgid "Setup your bank account to sync bank feeds."
-msgstr ""
+msgstr "Банкны дансаа банкны гүйлгээтэй ижилсүүлэх байдлаар тохируулна уу."
#. module: account
#: model_terms:ir.ui.view,arch_db:account.onboarding_chart_of_account_step
msgid "Setup your chart of accounts and record initial balances."
-msgstr ""
+msgstr "Дансны модоо тохируулаад эхний үлдэгдлээ бүртгэнэ үү."
#. module: account
#: model_terms:ir.ui.view,arch_db:account.dashboard_onboarding_company_step
msgid "Setup your company's data for reports headers."
msgstr ""
+"Тайлан баримтыг толгойн загвар дээр компаныхаа мэдээллийг тохируулна уу."
#. module: account
#: model:ir.actions.server,name:account.model_account_invoice_action_share
@@ -9104,24 +9345,24 @@ msgstr "Богино код"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_register_payments__show_communication_field
msgid "Show Communication Field"
-msgstr ""
+msgstr "Харилцаа холбооны талбар харуулах"
#. module: account
#: model:res.groups,name:account.group_account_user
msgid "Show Full Accounting Features"
-msgstr ""
+msgstr "Санхүү бүртгэлийн бүрэн боломжуудыг нээх"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_abstract_payment__show_partner_bank_account
#: model:ir.model.fields,field_description:account.field_account_payment__show_partner_bank_account
#: model:ir.model.fields,field_description:account.field_account_register_payments__show_partner_bank_account
msgid "Show Partner Bank Account"
-msgstr ""
+msgstr "Харилцагчийн банкны данс харуулах"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.view_account_tax_search
msgid "Show active taxes"
-msgstr ""
+msgstr "Идэвхитэй татвар харуулах"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.view_account_invoice_filter
@@ -9132,7 +9373,7 @@ msgstr "Өнөөдрөөс өмнө дараагийн арга хэмжээг Ñ
#. module: account
#: model_terms:ir.ui.view,arch_db:account.view_account_tax_search
msgid "Show inactive taxes"
-msgstr ""
+msgstr "Идэвхигүй татварыг харуулах"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_journal__show_on_dashboard
@@ -9142,7 +9383,7 @@ msgstr "Журналыг хянах самбарт харуулах"
#. module: account
#: model:ir.model.fields,field_description:account.field_res_config_settings__group_show_line_subtotals_tax_included
msgid "Show line subtotals with taxes (B2C)"
-msgstr ""
+msgstr "Нэхэмжлэлийн мөрийн үнийн дүнд татвар шингэсэн байх (B2C)"
#. module: account
#: model:res.groups,comment:account.group_show_line_subtotals_tax_included
@@ -9178,7 +9419,7 @@ msgstr ""
#: code:addons/account/static/src/js/reconciliation/reconciliation_renderer.js:780
#, python-format
msgid "Some fields are undefined"
-msgstr ""
+msgstr "Зарим талбарууд зарлагдаагүй байна"
#. module: account
#: model:ir.model.fields,help:account.field_account_setup_bank_manual_config__bank_bic
@@ -9194,14 +9435,14 @@ msgstr "Эх Баримт"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice__source_email
msgid "Source Email"
-msgstr ""
+msgstr "Эх имэйл"
#. module: account
#: model:ir.model.fields,help:account.field_account_cash_rounding__strategy
msgid ""
"Specify which way will be used to round the invoice amount to the rounding "
"precision"
-msgstr ""
+msgstr "Нэхэмжлэлийн дүнд оронгийн нарийвчлал хийх арга хэлбэрийг зааж"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice_send__starred
@@ -9219,7 +9460,7 @@ msgstr "Эхлэх Огноо"
#. module: account
#: model:ir.model.fields,help:account.field_account_fiscal_year__date_from
msgid "Start Date, included in the fiscal year."
-msgstr ""
+msgstr "Эхлэх огноо, санхүүгийн жилд багтана."
#. module: account
#: model:ir.model.fields,field_description:account.field_account_bank_statement__balance_start
@@ -9239,47 +9480,47 @@ msgstr "Муж"
#. module: account
#: model:ir.model.fields,field_description:account.field_res_company__account_dashboard_onboarding_state
msgid "State of the account dashboard onboarding panel"
-msgstr ""
+msgstr "Санхүүгийн хянах самбар тохируулалтын төлөв"
#. module: account
#: model:ir.model.fields,field_description:account.field_res_company__account_invoice_onboarding_state
msgid "State of the account invoice onboarding panel"
-msgstr ""
+msgstr "Нэхэмжлэлийн хянах самбар тохируулалтын төлөв"
#. module: account
#: model:ir.model.fields,field_description:account.field_res_company__account_setup_bank_data_state
msgid "State of the onboarding bank data step"
-msgstr ""
+msgstr "Банкны өгөгдөл тохируулгын төлөв"
#. module: account
#: model:ir.model.fields,field_description:account.field_res_company__account_setup_coa_state
msgid "State of the onboarding charts of account step"
-msgstr ""
+msgstr "Дансны мод тохируулалтын төлөв"
#. module: account
#: model:ir.model.fields,field_description:account.field_res_company__account_setup_fy_data_state
msgid "State of the onboarding fiscal year step"
-msgstr ""
+msgstr "Санхүүгийн жил тохируулалтын төлөв"
#. module: account
#: model:ir.model.fields,field_description:account.field_res_company__account_onboarding_invoice_layout_state
msgid "State of the onboarding invoice layout step"
-msgstr ""
+msgstr "Нэхэмжлэлийн баримтын загвар тохируулалтын төлөв"
#. module: account
#: model:ir.model.fields,field_description:account.field_res_company__account_onboarding_sale_tax_state
msgid "State of the onboarding sale tax step"
-msgstr ""
+msgstr "Борлуулалтын татвар тохируулалтын төлөв"
#. module: account
#: model:ir.model.fields,field_description:account.field_res_company__account_onboarding_sample_invoice_state
msgid "State of the onboarding sample invoice step"
-msgstr ""
+msgstr "Жишээ нэхэмжлэл тохируулалтын төлөв"
#. module: account
#: model:ir.model.fields,help:account.field_account_move_line__parent_state
msgid "State of the parent account.move"
-msgstr ""
+msgstr "Толгой account.move -ын төлөв"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_bank_statement_line__statement_id
@@ -9320,7 +9561,7 @@ msgstr "Төлөв"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_fiscal_position__states_count
msgid "States Count"
-msgstr ""
+msgstr "Мужын тоо"
#. module: account
#: code:addons/account/controllers/portal.py:41
@@ -9352,7 +9593,7 @@ msgstr ""
#: model_terms:ir.ui.view,arch_db:account.onboarding_fiscal_year_step
#: model_terms:ir.ui.view,arch_db:account.onboarding_sale_tax_step
msgid "Step Completed!"
-msgstr ""
+msgstr "Алхам дууссан!"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice_send__subject
@@ -9380,19 +9621,19 @@ msgstr "Дэд төрөл"
#: code:addons/account/models/chart_template.py:982
#, python-format
msgid "Suggest a write-off."
-msgstr ""
+msgstr "Зөрүүг хааж бичих үүсгэхийг санал болгох"
#. module: account
#: selection:account.reconcile.model,rule_type:0
#: code:addons/account/models/account_reconcile_model.py:20
#, python-format
msgid "Suggest counterpart values."
-msgstr ""
+msgstr "Зөрүү хаах бэлэн загвараас санал болгох"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
msgid "Supplier Payments"
-msgstr ""
+msgstr "Нийлүүлэгчийн төлөлт"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_account__tag_ids
@@ -9446,7 +9687,7 @@ msgstr "Татварын данс"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_tax__refund_account_id
msgid "Tax Account on Credit Notes"
-msgstr ""
+msgstr "Буцаалтын нэхэмжлэлийн татварын данс"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_tax_template__refund_account_id
@@ -9457,12 +9698,12 @@ msgstr "Буцаалт дээрх татварын данс"
#: model:ir.actions.act_window,name:account.tax_adjustments_form
#: model:ir.ui.menu,name:account.menu_action_tax_adjustment
msgid "Tax Adjustments"
-msgstr ""
+msgstr "Татварын өөрчлөлт"
#. module: account
#: model:ir.model,name:account.model_tax_adjustments_wizard
msgid "Tax Adjustments Wizard"
-msgstr ""
+msgstr "Татвар өөрчлөх визард"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice_line__price_tax
@@ -9474,7 +9715,7 @@ msgstr "Татварын дүн"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_reconcile_model__tax_amount_type
msgid "Tax Amount Type"
-msgstr ""
+msgstr "Татварын үнийн төрөл"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.view_account_tax_search
@@ -9516,13 +9757,13 @@ msgstr "Татварын тайлбар"
#: model:ir.model.fields,field_description:account.field_account_tax__tax_exigibility
#: model:ir.model.fields,field_description:account.field_account_tax_template__tax_exigibility
msgid "Tax Due"
-msgstr ""
+msgstr "Татвар хэрэгжилт"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.invoice_supplier_tree
#: model_terms:ir.ui.view,arch_db:account.invoice_tree
msgid "Tax Excluded"
-msgstr ""
+msgstr "Татвар шингээгүй"
#. module: account
#: model:ir.model,name:account.model_account_tax_group
@@ -9538,7 +9779,7 @@ msgstr "Татварын бүлэг"
#: model:ir.model.fields,field_description:account.field_account_reconcile_model_template__force_tax_included
#, python-format
msgid "Tax Included in Price"
-msgstr ""
+msgstr "Татвар үнийн дүнд шингэсэн"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice__tax_line_ids
@@ -9555,12 +9796,12 @@ msgstr "Татварын харгалзаа"
#. module: account
#: model:ir.model,name:account.model_account_fiscal_position_tax_template
msgid "Tax Mapping Template of Fiscal Position"
-msgstr ""
+msgstr "Татварын тохируулгын харгалзааны загвар"
#. module: account
#: model:ir.model,name:account.model_account_fiscal_position_tax
msgid "Tax Mapping of Fiscal Position"
-msgstr ""
+msgstr "Татварын тохируулгын харгалзаа"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_tax__name
@@ -9603,7 +9844,7 @@ msgstr "Татварын үлгэр"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_move__tax_type_domain
msgid "Tax Type Domain"
-msgstr ""
+msgstr "Татварын төрөл шүүлт"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice__amount_by_group
@@ -9613,7 +9854,7 @@ msgstr ""
#. module: account
#: model:ir.model.fields,field_description:account.field_res_config_settings__tax_calculation_rounding_method
msgid "Tax calculation rounding method"
-msgstr ""
+msgstr "Татвар тооцооллын тоймлох арга"
#. module: account
#: model:res.groups,name:account.group_show_line_subtotals_tax_excluded
@@ -9643,17 +9884,17 @@ msgstr "Хэрэглэх Татвар"
#. module: account
#: selection:res.config.settings,show_line_subtotals_tax_selection:0
msgid "Tax-Excluded"
-msgstr ""
+msgstr "Татвар шингээгүй"
#. module: account
#: selection:res.config.settings,show_line_subtotals_tax_selection:0
msgid "Tax-Included"
-msgstr ""
+msgstr "Татвар шингэсэн"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
msgid "TaxCloud"
-msgstr ""
+msgstr "TaxCloud"
#. module: account
#: selection:account.account.tag,applicability:0
@@ -9673,7 +9914,7 @@ msgstr "Татварууд"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.view_move_form
msgid "Taxes Applied"
-msgstr ""
+msgstr "Татвар хэрэгжсэн"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.view_account_position_template_form
@@ -9695,7 +9936,7 @@ msgstr "Борлуулалтад хэрэглэгддэг татвар"
msgid ""
"Taxes, fiscal positions, chart of accounts &amp; legal statements for your "
"country"
-msgstr ""
+msgstr "Танай улсын татвар, татварын тохируулга, дансны мод &amp; тайлангууд"
#. module: account
#: model:ir.model.fields,help:account.field_account_payment__invoice_ids
@@ -9704,6 +9945,9 @@ msgid ""
" This does not especially correspond to the invoices reconciled with the payment,\n"
" as it can have been generated first, and reconciled later"
msgstr ""
+"Төлбөртэй холбоотой нэхэмжлэлүүдийг агуулсан техникийн талбар.\n"
+" Энэ нь уг төлбөр тухайн нэхэмжлэлээс үүссэн байх албагүй бөгөөд,\n"
+" эхлээд төлбөр нь бүртгэгдээд дараа нь нэхэмжлэлтэй тулгалт хийсэн байх боломжтой"
#. module: account
#: model:ir.model.fields,help:account.field_account_invoice_line__display_type
@@ -9759,6 +10003,8 @@ msgid ""
"Technical field indicating if the user selected invoices from multiple "
"partners or from different types."
msgstr ""
+"Энэ техникийн талбар нь хэрэглэгч нэгээс олон нэхэмжлэл түүвэрлэн сонгосон "
+"эсэхийг илтгэнэ."
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice_refund__refund_only
@@ -9785,6 +10031,8 @@ msgid ""
"Technical field used inside the view to make the force_second_tax_included "
"field invisible if the tax is a group."
msgstr ""
+"Энэ техникийн талбар нь force_second_tax_included талбарыг дэлгэцэнд "
+"харагдуулах эсэхийг тодорхойлно."
#. module: account
#: model:ir.model.fields,help:account.field_account_reconcile_model__is_second_tax_price_included
@@ -9792,6 +10040,9 @@ msgid ""
"Technical field used inside the view to make the force_second_tax_included "
"field readonly if the tax is already price included."
msgstr ""
+"Энэ техникийн талбар нь хэрэв татвар үнийн дүнд шингэсэн байвал "
+"force_second_tax_included талбар засах боломжгүйгээр харагдаж байх эсэхийг "
+"тодорхойлно."
#. module: account
#: model:ir.model.fields,help:account.field_account_reconcile_model__tax_amount_type
@@ -9799,6 +10050,8 @@ msgid ""
"Technical field used inside the view to make the force_tax_included field "
"invisible if the tax is a group."
msgstr ""
+"Энэ техникийн талбар нь хэрэв татвар нь бүлэгтэй байвал force_tax_included "
+"талбар харагдахгүй байх эсэхийг тодорхойлно."
#. module: account
#: model:ir.model.fields,help:account.field_account_reconcile_model__is_tax_price_included
@@ -9806,6 +10059,9 @@ msgid ""
"Technical field used inside the view to make the force_tax_included field "
"readonly if the tax is already price included."
msgstr ""
+"Энэ техникийн талбар нь хэрэв татвар үнийн дүнд шингэсэн байвал "
+"force_tax_included талбар засах боломжгүйгээр харагдаж байх эсэхийг "
+"тодорхойлно."
#. module: account
#: model:ir.model.fields,help:account.field_account_abstract_payment__payment_method_code
@@ -9823,11 +10079,15 @@ msgid ""
"Technical field used to determine at which date this reconciliation needs to"
" be shown on the aged receivable/payable reports."
msgstr ""
+"Энэ техникийн талбар нь авлага/өглөгийн насжилтын тайлан дээр аль огноо "
+"хүртэл тулгалт хийх шаардлагатайг илэрхийлнэ."
#. module: account
#: model:ir.model.fields,help:account.field_account_move__tax_type_domain
msgid "Technical field used to have a dynamic taxes domain on the form view."
msgstr ""
+"Энэ техникийн талбар нь форм дэлгэц дээр динамик татварын шүүлт бий болгоход"
+" ашиглагдана."
#. module: account
#: model:ir.model.fields,help:account.field_account_abstract_payment__hide_payment_method
@@ -9847,6 +10107,9 @@ msgid ""
"This is needed when cancelling the source: it will post the inverse journal "
"entry to cancel that part too."
msgstr ""
+"Энэ техникийн талбар нь мөнгөн суурьт татварын тулгалтын ул мөрийг "
+"хадгалахад хэрэглэгдэнэ. Эх баримтыг цуцлах үед энэ ул мөр хэрэг болно: "
+"эсрэг гүйлгээ үүсгэж мөнгөн суурьт татварыг бууруулна. "
#. module: account
#: model:ir.model.fields,help:account.field_account_move_line__recompute_tax_line
@@ -9854,6 +10117,8 @@ msgid ""
"Technical field used to know if the tax_ids field has been modified in the "
"UI."
msgstr ""
+"Энэ техникийн талбар нь tax_ids талбарын утгыг хэрэглэгч дэлгэцнээс "
+"өөрчилсөн эсэхийг илэрхийлнэ."
#. module: account
#: model:ir.model.fields,help:account.field_account_abstract_payment__show_partner_bank_account
@@ -9863,6 +10128,8 @@ msgid ""
"Technical field used to know whether the field `partner_bank_account_id` "
"needs to be displayed or not in the payments form views"
msgstr ""
+"Энэ техникийн талбар нь төлбөрийн форм харагдац дээр "
+"'partner_bank_account_id' харуулах үгүй эсэхийг тодорхойлно"
#. module: account
#: model:ir.model.fields,help:account.field_account_move_line__tax_exigible
@@ -9872,6 +10139,11 @@ msgid ""
"items are directly exigible, but with the feature cash_basis on taxes, some "
"will become exigible only when the payment is recorded."
msgstr ""
+"Энэ техникийн талбар нь татварын мөрийг татварын тайланд тусах үгүй эсэхийг "
+"тогтооно. Бүх журналын бичилтүүд шинээр үүсэхдээ татварын тайланд тусахаар "
+"тэмдэглэгдсэн байдаг. Гэвч мөнгөн суурьт татвар бүртгэх боломжыг "
+"идэвхижүүлсэн үед зарим гүйлгээнүүд зөвхөн төлбөр төлөгдсөн үед л татварын "
+"тайланд тусна."
#. module: account
#: model:ir.model.fields,help:account.field_account_bank_statement_line__account_number
@@ -9879,6 +10151,8 @@ msgid ""
"Technical field used to store the bank account number before its creation, "
"upon the line's processing"
msgstr ""
+"Энэ техникийн талбар нь банкны дансны дугаарын бүртгэлийг үүсгэхээс өмнө "
+"харуулахад ашиглагдана"
#. module: account
#: model:ir.model.fields,help:account.field_account_move_line__tax_line_grouping_key
@@ -9887,6 +10161,8 @@ msgid ""
"lines (in account.move form view) between the moment the user changed it and"
" the moment the ORM reflects that change in its one2many"
msgstr ""
+"Энэ техникийн талбар нь татварын мөрийг шинэчлэн тооцоолох үед хуучин утгыг "
+"хадгалахад ашиглагдана. "
#. module: account
#: model:ir.model.fields,field_description:account.field_res_config_settings__chart_template_id
@@ -9938,6 +10214,8 @@ msgid ""
"The 'Internal Group' is used to filter accounts based on the internal group "
"set on the account type."
msgstr ""
+"'Дотоод бүлэг' гэлэг нь дансдыг дотоод гэх тодотголтой дансны төрлөөр шүүх "
+"үед хэрэглэгдэнэ."
#. module: account
#: model:ir.model.fields,help:account.field_account_account__internal_type
@@ -9955,7 +10233,7 @@ msgstr ""
#: code:addons/account/models/account_move.py:1051
#, python-format
msgid "The account %s (%s) is deprecated."
-msgstr ""
+msgstr "%s (%s) данс ашиглагдахаа больсон."
#. module: account
#: code:addons/account/models/account_invoice.py:536
@@ -9963,7 +10241,7 @@ msgstr ""
msgid ""
"The account selected for payment does not belong to the same company as this"
" invoice."
-msgstr ""
+msgstr "Төлбөрийн банкны данс нь тухайн компаны данс биш байна."
#. module: account
#: model:ir.model.fields,help:account.field_account_setup_bank_manual_config__journal_id
@@ -9976,7 +10254,7 @@ msgstr "Энэ банкны дансанд харгалзах санхүүгий
msgid ""
"The accounting journal where automatic exchange differences will be "
"registered"
-msgstr ""
+msgstr "Автоматаар валютын ханшийн зөрүүний бичилт бүртгэх санхүүгийн журнал"
#. module: account
#. openerp-web
@@ -10007,7 +10285,7 @@ msgstr "Хоёрдогч валютаарх дүн Дебит үед хасах,
#: code:addons/account/models/account_bank_statement.py:319
#, python-format
msgid "The amount of a cash transaction cannot be 0."
-msgstr ""
+msgstr "Бэлнээрх гүйлгээний дүн 0 байж боллохгүй."
#. module: account
#: code:addons/account/models/account.py:939
@@ -10016,6 +10294,8 @@ msgid ""
"The application scope of taxes in a group must be either the same as the "
"group or left empty."
msgstr ""
+"Дэд татваруудын татварын хэрэглээ нь толгой татварынхтай ижил байх эсвэл "
+"хоосон утгатай байх ёстой."
#. module: account
#: code:addons/account/models/account.py:558
@@ -10032,6 +10312,9 @@ msgid ""
" This is useful if you install accounting after having used invoicing for some time and\n"
" don't want to reconcile all the past payments with bank statements."
msgstr ""
+"Банкны хуулга тулгах цонх нь цаашид энэ огнооноос өмнөх гүйлгээг тулгахыг санал болгохгүй.\n"
+" Хэрэв та нэхэмжлэлийн модулийг ашиглаж байгаад дараа нь санхүүгийн модуль суулгасан бөгөөд\n"
+" суулгахаас өмнө хугацааны төлбөрийг тулгахыг хүсэхгүй байвал энэ талбар танд тусална."
#. module: account
#: model:ir.model.fields,help:account.field_res_config_settings__account_bank_reconciliation_start
@@ -10040,6 +10323,9 @@ msgid ""
" This is useful if you install accounting after having used invoicing for some time and\n"
" don't want to reconcile all the past payments with bank statements."
msgstr ""
+"Банкны хуулга тулгах цонх нь цаашид энэ огнооноос өмнөх гүйлгээг тулгахыг санал болгохгүй.\n"
+" Хэрэв та нэхэмжлэлийн модулийг ашиглаж байгаад дараа нь санхүүгийн модуль суулгасан бөгөөд\n"
+" суулгахаас өмнө хугацааны төлбөрийг тулгахыг хүсэхгүй байвал энэ талбар танд тусална."
#. module: account
#: model:ir.model.fields,help:account.field_account_move_line__statement_id
@@ -10053,6 +10339,8 @@ msgid ""
"The cash rounding cannot be computed because the difference must be added on the biggest tax found and no tax are specified.\n"
"Please set up a tax or change the cash rounding method."
msgstr ""
+"Оронгийн нарийвчлалын зөрүү дүн татварын мөр дээр нэмэгдэх ёстой. Гэтэл ямар нэг татвар сонгоогүй байгаа тул мөнгөний бүхэлчлэл хийх боломжгүй байна.\n"
+"Ямар нэг татвар сонгох эсвэл мөнгөний бүхэлчлэл хийх аргаа өөрчилнө үү."
#. module: account
#: model:ir.model.fields,help:account.field_res_company__chart_template_id
@@ -10087,6 +10375,8 @@ msgid ""
"The currency of the bank statement line must be different than the statement"
" currency."
msgstr ""
+"Касс, банкны хуулгын гүйлгээний мөр дээрх валют нь хуулга дээрх үндсэн "
+"валютаас өөр байх ёстой."
#. module: account
#: code:addons/account/models/account.py:549
@@ -10095,6 +10385,8 @@ msgid ""
"The currency of the journal should be the same than the default credit "
"account."
msgstr ""
+"Журнал дээр тохируулсан валют нь журналын үндсэн кредит дансны валюттай ижил"
+" байх ёстой."
#. module: account
#: code:addons/account/models/account.py:551
@@ -10103,6 +10395,8 @@ msgid ""
"The currency of the journal should be the same than the default debit "
"account."
msgstr ""
+"Журнал дээр тохируулсан валют нь журналын үндсэн дебет дансны валюттай ижил "
+"байх ёстой."
#. module: account
#: model:ir.model.fields,help:account.field_account_journal__currency_id
@@ -10113,7 +10407,7 @@ msgstr "Тухайн журналд гүйлгээ бичихэд хэрэглэ
#: code:addons/account/models/account_invoice.py:2024
#, python-format
msgid "The day of the month used for this term must be stricly positive."
-msgstr ""
+msgstr "Энэхүү төлбөрийн нөхцөлийн мөрний хэрэгжих сарын өдөр"
#. module: account
#: code:addons/account/models/account_bank_statement.py:193
@@ -10129,7 +10423,7 @@ msgstr ""
#: code:addons/account/models/account_fiscal_year.py:42
#, python-format
msgid "The ending date must not be prior to the starting date."
-msgstr ""
+msgstr "Дуусах огноо нь эхлэх огнооноос эрт байж болохгүй."
#. module: account
#: model:ir.model.fields,help:account.field_product_category__property_account_expense_categ_id
@@ -10139,6 +10433,9 @@ msgid ""
"expense (Cost of Goods Sold account) is recognized at the customer invoice "
"validation."
msgstr ""
+"Нийлүүлэгчийн нэхэмжлэл бүртгэж батлах үед зардал бүртгэгдэнэ. Anglo-Saxon "
+"бүртгэлийн байнгын системийн арга хэрэглэж буй үед зардал нь (Борлуулсан "
+"барааны өртөг) захиалагчын нэхэмжлэл батлагдах үед бүртгэгдэнэ."
#. module: account
#: code:addons/account/models/account_invoice.py:906
@@ -10147,6 +10444,8 @@ msgid ""
"The field Vendor is required, please complete it to validate the Vendor "
"Bill."
msgstr ""
+"Нийлүүлэгч сонгогдох шаардлагатай, Нийлүүлэгчийн нэхэмжлэл батлахын тулд "
+"бүртгэлийг гүйцээнэ үү!"
#. module: account
#: model:ir.model.fields,help:account.field_res_partner__property_account_position_id
@@ -10154,6 +10453,8 @@ msgstr ""
msgid ""
"The fiscal position determines the taxes/accounts used for this contact."
msgstr ""
+"Татварын тайлангийн тохиргоо нь энэхүү харилцах хаягт байнга хэрэглэгдэх "
+"татвар болон дансуудыг тодорхойлно."
#. module: account
#: code:addons/account/models/account.py:564
@@ -10176,13 +10477,13 @@ msgstr "Энэ журналийн бичилтүүдийн нэр нь энэ у
msgid ""
"The journal entry containing the initial balance of all this company's "
"accounts."
-msgstr ""
+msgstr "Энэ компаны данснуудыг эхний үлдэгдлийг агуулж буй ажил гүйлгээ."
#. module: account
#: code:addons/account/models/account_invoice.py:1935
#, python-format
msgid "The last line of a Payment Term should have the Balance type."
-msgstr ""
+msgstr "Төлбөрийн нөхцөлийн сүүлийн мөр нь Үлдэгдэл төрөлтэй байх ёстой."
#. module: account
#: model_terms:ir.ui.view,arch_db:account.view_payment_term_form
@@ -10198,6 +10499,8 @@ msgstr ""
#, python-format
msgid "The lock date for advisors is irreversible and can't be removed."
msgstr ""
+"Санхүүгийн удирдлагын хэмжээнд огноо түгжих үйлдэл нь буцаах цуцлах "
+"боломжгүй үйлдэл юм."
#. module: account
#: model:ir.model.fields,help:account.field_account_move_line__move_id
@@ -10215,22 +10518,25 @@ msgstr "Дансны гүйлгээний мөрүүд дээр хэрэглэг
msgid ""
"The new lock date for advisors must be set after the previous lock date."
msgstr ""
+"Санхүүгийн удирдлагын хэмжээнд түгжих огноо нь өмнө түгжсэн огнооноос хойшхи"
+" огноо байх ёстой."
#. module: account
#: model:ir.model.fields,help:account.field_account_journal__refund_sequence_number_next
msgid "The next sequence number will be used for the next credit note."
-msgstr ""
+msgstr "Дараагийн буцаалтын нэхэмжлэл дээр ашиглагдах дараагийн дугаар"
#. module: account
#: model:ir.model.fields,help:account.field_account_journal__sequence_number_next
msgid "The next sequence number will be used for the next invoice."
-msgstr ""
+msgstr "Дараагийн нэхэмжлэл дээр ашиглагдах дараагийн дугаар"
#. module: account
#: code:addons/account/models/account_invoice.py:2026
#, python-format
msgid "The number of days used for a payment term cannot be negative."
msgstr ""
+"Төлбөрийн нөхцөл дээр ашиглагдах өдрийн тоо сөрөг утгатай байж болохгүй."
#. module: account
#: model:ir.model.fields,help:account.field_account_bank_statement_line__currency_id
@@ -10269,12 +10575,14 @@ msgstr ""
msgid ""
"The partners of the journal's company and the related bank account mismatch."
msgstr ""
+"Журналын компани дээрх харилцагч нь холбогдох банзны данстай тохирохгүй "
+"байна."
#. module: account
#: code:addons/account/models/account_payment.py:118
#, python-format
msgid "The payment amount cannot be negative."
-msgstr ""
+msgstr "Төлбөрийн дүн сөрөг утгатай байж болохгүй."
#. module: account
#: code:addons/account/models/account_payment.py:602
@@ -10288,6 +10596,8 @@ msgid ""
"The payment communication that will be automatically populated once the "
"invoice validation. You can also write a free communication."
msgstr ""
+"Нэхэмжлэл батлагдах үед төлбөрийн холбогдол автоматаар байршина. Мөн та "
+"хүсвэл өөрийн дурын холбогдолыг бичиж болно."
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
@@ -10295,6 +10605,8 @@ msgid ""
"The payments which have not been matched with a bank statement will not be "
"shown in bank reconciliation data if they were made before this date."
msgstr ""
+"Энэхүү огнооноос өмнө бүртгэгдсэн төлөлтүүд байвал хэдий тулгагдаагүй байсан"
+" ч энэхүү банкны тулгалтын дэлгэцэнд харагдахгүй."
#. module: account
#: model:ir.model.fields,help:account.field_account_reconcile_model__match_partner_category_ids
@@ -10303,6 +10615,8 @@ msgid ""
"The reconciliation model will only be applied to the selected "
"customer/vendor categories."
msgstr ""
+"Энэхүү тулгалтын загвар нь зөвхөн сонгогдсон ангилалд хамаарах "
+"харилцагч/нийлүүлэгчийн тохиолдолд ашиглагдана."
#. module: account
#: model:ir.model.fields,help:account.field_account_reconcile_model__match_partner_ids
@@ -10311,6 +10625,8 @@ msgid ""
"The reconciliation model will only be applied to the selected "
"customers/vendors."
msgstr ""
+"Энэхүү тулгалтын загвар нь зөвхөн сонгогдсон харилцагч/нийлүүлэгчийн "
+"тохиолдолд ашиглагдана."
#. module: account
#: model:ir.model.fields,help:account.field_account_reconcile_model__match_nature
@@ -10321,6 +10637,10 @@ msgid ""
" * Amount Paid: Only applied when paying an amount.\n"
" * Amount Paid/Received: Applied in both cases."
msgstr ""
+"Тулгалтын загвар нь зөвхөн нь дараахаас сонгосон төрлийн гүйлгээнд хэрэгжинэ:\n"
+" * Хүлээн авсан төлбөр: Зөвхөн мөнгө хүлээн авах үед хэрэгжинэ.\n"
+" * Төлсөн төлбөр: Зөвхөн мөнгө төлж зарлагадах үед хэрэгжинэ.\n"
+" * Төлсөн/Хүлээн авсан төлбөр: Аль аль тохиолдолд хэрэгжинэ."
#. module: account
#: model:ir.model.fields,help:account.field_account_reconcile_model__match_partner
@@ -10328,6 +10648,8 @@ msgstr ""
msgid ""
"The reconciliation model will only be applied when a customer/vendor is set."
msgstr ""
+"Энэхүү тулгалтын загвар нь зөвхөн сонгогдсон харилцагч/нийлүүлэгчийн "
+"тохиолдолд ашиглагдана."
#. module: account
#: model:ir.model.fields,help:account.field_account_reconcile_model__match_amount
@@ -10336,6 +10658,8 @@ msgid ""
"The reconciliation model will only be applied when the amount being lower "
"than, greater than or between specified amount(s)."
msgstr ""
+"Гүйлгээний дүн энэ утгаас бага, их эсвэл хооронд байх үед энэхүү тулгалтын "
+"загвар хэрэгжинэ."
#. module: account
#: model:ir.model.fields,help:account.field_account_reconcile_model__match_label
@@ -10346,13 +10670,17 @@ msgid ""
" * Not Contains: Negation of \"Contains\".\n"
" * Match Regex: Define your own regular expression."
msgstr ""
+"Тулгалтын загвар нь зөвхөн дараахаас сонгосон нөхцөл бүхий гүйлгээний утгатай байх үед хэрэгжинэ:\n"
+" * Агуулсан: Гүйлгээний утга нь өгөгдсөн үгийг заавал агуулсан байх ёстой (үсгийн том жижиг ялгаа хамаарахгүй).\n"
+" * Агуулахгүй: \"Агуулсан\" нөхцөлийн эсрэг.\n"
+" * Regex шалгах: Та өөрийн шалгах нөхцөл бүхий regex ашиглах боломжтой."
#. module: account
#: model:ir.model.fields,help:account.field_account_reconcile_model__match_journal_ids
#: model:ir.model.fields,help:account.field_account_reconcile_model_template__match_journal_ids
msgid ""
"The reconciliation model will only be available from the selected journals."
-msgstr ""
+msgstr "Тулгалтын загвар нь зөвхөн энэ журналд хэрэгжинэ."
#. module: account
#: model:ir.model.fields,help:account.field_account_move_line__amount_residual_currency
@@ -10386,6 +10714,8 @@ msgid ""
"The selected unit of measure has to be in the same category as the product "
"unit of measure."
msgstr ""
+"Сонгосон хэмжих нэгж нь барааны хэмжих нэгжтэй ижил ангилалын нэгж байх "
+"ёстой."
#. module: account
#: model:ir.model.fields,help:account.field_account_tax__sequence
@@ -10404,6 +10734,8 @@ msgid ""
"The sum of total residual amount propositions matches the statement line "
"amount under this percentage."
msgstr ""
+"Төлбөрийн мөр дээрх дүн нь тулгалт хийж буй төлбөрийн үлдэгдлийн хэдээс "
+"багагүй хувийг хангаж байвал тулгалт хийх тухай."
#. module: account
#: model:ir.model.fields,help:account.field_account_reconcile_model__match_total_amount
@@ -10412,16 +10744,20 @@ msgid ""
"The sum of total residual amount propositions matches the statement line "
"amount."
msgstr ""
+"Төлбөрийн мөр дээрх дүн нь тулгалт хийж буй төлбөрийн үлдэгдлийн хэдээс "
+"багагүй байвал тулгалт хийх тухай."
#. module: account
#: model:ir.model.fields,help:account.field_account_cash_rounding__rounding_method
msgid "The tie-breaking rule used for float rounding operations"
-msgstr ""
+msgstr "Төлбөрийн дүнг тулгахад үүсэх зөрүүг тоймчлох утга"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.portal_my_invoices
msgid "There are currently no invoices and payments for your account."
msgstr ""
+"Танай санхүү бүртгэлд одоогоор ямар нэг нэхэмжлэл болон төлбөр бүртгэгдээгүй"
+" байна."
#. module: account
#: code:addons/account/models/company.py:264
@@ -10440,6 +10776,8 @@ msgid ""
"There is no Transfer Account defined in the accounting settings. Please "
"define one to be able to confirm this transfer."
msgstr ""
+"Санхүүгийн тохиргоонд мөнгө шилжүүлгийн түр данс тохируулагдаагүй байна. "
+"Шилжүүлгийн хийхийн тулд уг дансыг эхлээд тохируулна уу."
#. module: account
#: code:addons/account/models/account_bank_statement.py:181
@@ -10477,12 +10815,12 @@ msgstr "Тулгах зүйлс алга."
#. module: account
#: model_terms:ir.ui.view,arch_db:account.portal_invoice_error
msgid "There was an error processing this page."
-msgstr ""
+msgstr "Энэ хуудсыг харуулахад алдаа үүслээ."
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
msgid "These taxes are set in any new product created."
-msgstr ""
+msgstr "Эдгээр татварууд шинээр бараа бүртгэх үед сонгогдоно."
#. module: account
#: model:ir.model.fields,help:account.field_account_account_template__user_type_id
@@ -10522,7 +10860,7 @@ msgstr ""
#. module: account
#: model:ir.model.fields,help:account.field_product_category__property_account_income_categ_id
msgid "This account will be used when validating a customer invoice."
-msgstr ""
+msgstr "Энэ данс нь захиалагчийн нэхэмжлэл батлагдах үед ашиглагдана."
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
@@ -10531,6 +10869,9 @@ msgid ""
" master budgets and the budgets are defined, the project managers can set "
"the planned amount on each analytic account."
msgstr ""
+"Төсөв болон аналитик санхүүг хослуулан ашиглах боломж олгоно. Төсөв болон "
+"мастер төсөв тодорхойлсноор төслийн менежерүүд шинжилгээний данс бүр дээр "
+"дүн төлөвлөж оруулах боломжтой болно."
#. module: account
#: model:ir.model.fields,help:account.field_res_config_settings__module_account_batch_payment
@@ -10538,6 +10879,8 @@ msgid ""
"This allows you grouping payments into a single batch and eases the reconciliation process.\n"
"-This installs the account_batch_payment module."
msgstr ""
+"Энэ нь төлбөрүүдийг багц болгон нэгтгэснээр тулгалтын процессыг хялбарчилна.\n"
+"-Ингэхийн тулд account_batch_payment модуль суугдах болно."
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
@@ -10546,6 +10889,9 @@ msgid ""
"keeps track of the depreciation occurred on those assets, and creates "
"account move for those depreciation lines."
msgstr ""
+"Энэ нь компаны эзэмшиж буй үндсэн хөрөнгүүдийг бүртгэн удирдах боломж "
+"олгоно. Тэдгээр хөрөнгүүдийн элэгдэлийг төлөвлөх, элэгдлийн санхүүгийн ажил "
+"гүйлгээ бүртгэх боломжтой."
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
@@ -10554,6 +10900,10 @@ msgid ""
"keeps track of the installments occurred on those revenue recognitions, and "
"creates account moves for those installment lines."
msgstr ""
+"Энэ нь барааны урьдчилсан борлуулалтын бүртгэлийг хөтлөх удирдах боломжыг "
+"олгоно. Урьдчилж тооцсон борлуулалтыг үе шаттайгаар хэсэгчлэн борлуулалтын "
+"орлогоор хүлээн зөвшөөрч тухай бүрд нь санхүүгийн ажил гүйлгээ бүртгэх "
+"боломжтой."
#. module: account
#: model:ir.model.fields,help:account.field_account_chart_template__complete_tax_set
@@ -10574,11 +10924,15 @@ msgid ""
"This customer invoice credit note has been created from: <a href=# data-oe-"
"model=account.invoice data-oe-id=%d>%s</a><br>Reason: %s"
msgstr ""
+"Энэ захиалагчийн буцаалтын нэхэмжлэл нь дараах нэхэмжлэлээс үүссэн: <a "
+"href=# data-oe-model=account.invoice data-oe-id=%d>%s</a><br>Буцаалтын "
+"шалтгаан: %s"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
msgid "This feature is useful if you issue a high amounts of invoices."
msgstr ""
+"Хэрэв та их тооны нэхэмжлэл бүртгэдэг бол энэ боломж танд хэрэг болно."
#. module: account
#: model:ir.model.fields,help:account.field_account_journal__refund_sequence_id
@@ -10586,6 +10940,8 @@ msgid ""
"This field contains the information related to the numbering of the credit "
"note entries of this journal."
msgstr ""
+"Энэ талбар нь уг журналд хичнээн буцаалтын нэхэмжлэл бүртгэгдсэн тухай "
+"мэдээллийг агуулна."
#. module: account
#: model:ir.model.fields,help:account.field_account_journal__sequence_id
@@ -10625,7 +10981,7 @@ msgstr ""
#. module: account
#: model_terms:ir.actions.act_window,help:account.open_account_journal_dashboard_kanban
msgid "This is the accounting dashboard"
-msgstr ""
+msgstr "Энэ бол санхүүгийн хянах самбар"
#. module: account
#: code:addons/account/models/account.py:627
@@ -10653,6 +11009,7 @@ msgstr ""
msgid ""
"This method should only be called to process a single invoice's payment."
msgstr ""
+"Энэ төлбөрийн аргыг зөвхөн нэг нэхэмжлэл төлөлт дээр хэрэгжүүлэх боломжтой."
#. module: account
#: model:ir.model.fields,help:account.field_account_account_template__chart_template_id
@@ -10685,6 +11042,9 @@ msgid ""
"This parameter will be bypassed in case of a statement line communication "
"matching exactly existing entries"
msgstr ""
+"Хуулга дээрх гүйлгээ нь ямар нэг өмнө нь бүртгэгдсэн ажил гүйлгээтэй "
+"харгалзан таарч тохирч байвал энэхүү өгөгдлийг үл харгалзан тулгалт "
+"хийгдэнэ."
#. module: account
#. openerp-web
@@ -10710,6 +11070,8 @@ msgid ""
"This payment term will be used instead of the default one for sales orders "
"and customer invoices"
msgstr ""
+"Энэ төлбөрийн нөхцөлийг борлуулалтын захиалга болон нэхэмжлэл дээрх байнга "
+"хэрэглэгддэг төлбөрийн нөхцөлийн оронд сольж хэрэглэнэ."
#. module: account
#: model:ir.model.fields,help:account.field_account_bank_statement_line__account_id
@@ -10729,6 +11091,9 @@ msgid ""
"This vendor bill credit note has been created from: <a href=# data-oe-"
"model=account.invoice data-oe-id=%d>%s</a><br>Reason: %s"
msgstr ""
+"Энэ нийлүүлэгчийн буцаалтын нэхэмжлэл нь дараахаас холбогдолтойгоор үүссэн: "
+"<a href=# data-oe-model=account.invoice data-oe-id=%d>%s</a><br>Буцаах "
+"шалтгаан: %s"
#. module: account
#: model_terms:ir.actions.act_window,help:account.action_validate_account_move
@@ -10768,13 +11133,15 @@ msgstr "Төлөх"
#, python-format
msgid "To reconcile the entries company should be the same for all entries."
msgstr ""
+"Зөвхөн нэг ижил компанид харьяалагдах гүйлгээнүүдийг хооронд нь холбож "
+"тулгах боломжтой."
#. module: account
#. openerp-web
#: code:addons/account/static/src/xml/account_reconciliation.xml:169
#, python-format
msgid "To speed up reconciliation, define"
-msgstr ""
+msgstr "Тулгалтыг хурдасгахын тулд үүнийг тодорхойлно"
#. module: account
#: selection:account.invoice,activity_state:0
@@ -10806,7 +11173,7 @@ msgstr "Нийт дүн"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.view_move_line_tax_audit_tree
msgid "Total Base Amount"
-msgstr ""
+msgstr "Нийт суурь үнэ"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.view_move_form
@@ -10846,12 +11213,13 @@ msgstr "Нийт үлдэгдэл"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice_report__user_currency_price_total
msgid "Total Without Tax in Currency"
-msgstr ""
+msgstr "Валютаарх татваргүй нийт"
#. module: account
#: model:ir.model.fields,help:account.field_account_invoice_line__price_subtotal_signed
msgid "Total amount in the currency of the company, negative for credit note."
msgstr ""
+"Компаны үндсэн валютаарх нийлбэр дүн, буцаалтын тохиолдолд хасах утгатай."
#. module: account
#: model:ir.model.fields,help:account.field_account_invoice__amount_total_company_signed
@@ -10874,12 +11242,12 @@ msgstr "Энэ захиалагчийн авах нийт авлагын дүн.
#. module: account
#: model:ir.model.fields,help:account.field_account_invoice_line__price_total
msgid "Total amount with taxes"
-msgstr ""
+msgstr "Татвартай нийт дүн"
#. module: account
#: model:ir.model.fields,help:account.field_account_invoice_line__price_subtotal
msgid "Total amount without taxes"
-msgstr ""
+msgstr "Татваргүй нийт дүн"
#. module: account
#: model:ir.model.fields,help:account.field_res_partner__debit
@@ -10905,7 +11273,7 @@ msgstr "Гүйлгээний мөрүүдийн дүн"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
msgid "Track costs &amp; revenues by project, department, etc."
-msgstr ""
+msgstr "Төсөл, алба нэгжээр зардал &amp; урьдчилсан орлогыг мөрших."
#. module: account
#: model:ir.model.fields,help:account.field_account_invoice_send__tracking_value_ids
@@ -10981,13 +11349,13 @@ msgstr "Төрөл"
#. module: account
#: selection:account.cash.rounding,rounding_method:0
msgid "UP"
-msgstr ""
+msgstr "ДЭЭШ"
#. module: account
#: code:addons/account/models/account.py:405
#, python-format
msgid "Undefined Yet"
-msgstr ""
+msgstr "Хараахан тодорхойгүй"
#. module: account
#: code:addons/account/models/company.py:386
@@ -11100,19 +11468,19 @@ msgstr "Татваргүй Нийт дүн"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
msgid "Update exchange rates automatically"
-msgstr ""
+msgstr "Валютын ханш автоматаар шинэчлэх"
#. module: account
#. openerp-web
#: code:addons/account/static/src/xml/bills_tree_upload_views.xml:5
#, python-format
msgid "Upload"
-msgstr ""
+msgstr "Оруулах"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.account_invoice_import_wizard_form_view
msgid "Upload Files"
-msgstr ""
+msgstr "Файл оруулах"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_chart_template__use_anglo_saxon
@@ -11127,7 +11495,7 @@ msgstr "Мөнгөн Суурийг Хэрэглэх"
#. module: account
#: model:ir.model.fields,field_description:account.field_res_config_settings__module_account_sepa_direct_debit
msgid "Use SEPA Direct Debit"
-msgstr ""
+msgstr "SEPA дебет үйлчилгээ ашиглах"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_move_reversal__journal_id
@@ -11147,17 +11515,19 @@ msgstr "Англо-Саксон НББ-г хэрэглэх"
#. module: account
#: model:ir.model.fields,field_description:account.field_res_config_settings__module_account_batch_payment
msgid "Use batch payments"
-msgstr ""
+msgstr "Багц төлбөр ашиглах"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
msgid "Use budgets to compare actual with expected revenues and costs"
msgstr ""
+"Төсвийн бүртгэл хийж төлөвлөсөн зардал болон урьдчилсан орлогыг гүйцэтгэлтэй"
+" нь харьцуулах"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
msgid "Use depreciation boards, automate amortization entries"
-msgstr ""
+msgstr "Элэгдлийн самбар ашиглан автоматаар элэгдлийг урьдчилан төлөвлөх"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
@@ -11167,12 +11537,12 @@ msgstr "Мөшгөлтийн төвшин болон төлөвлөгөөт ар
#. module: account
#: model:ir.model.fields,field_description:account.field_res_config_settings__group_products_in_bills
msgid "Use products in vendor bills"
-msgstr ""
+msgstr "Нийлүүлэгчийн нэхэмжлэл дээр бараа сонгох"
#. module: account
#: model:res.groups,name:account.group_products_in_bills
msgid "Use products on vendor bills"
-msgstr ""
+msgstr "Нийлүүлэгчийн нэхэмжлэл дээр бараа сонгох"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice_send__template_id
@@ -11187,6 +11557,9 @@ msgid ""
" with the current invoice. A new draft invoice will be created\n"
" so that you can edit it."
msgstr ""
+"Үүнийг сонгосноор нэхэмжлэлийг цуцлан шинэ нэхэмжлэл бүртгэнэ.\n"
+" Буцаалтын нэхэмжлэл үүсч батлагдаад эх нэхэмжлэлийг хааж тулгагдана.\n"
+" Улмаар ноорог нэхэмжлэл шинээр үүсэс ба та түүнийг засаж өөрчлөх боломжтой."
#. module: account
#: model_terms:ir.ui.view,arch_db:account.view_account_invoice_refund
@@ -11283,6 +11656,8 @@ msgid ""
"Validate the statement line automatically (reconciliation based on your "
"rule)."
msgstr ""
+"Банкны хуулганы гүйлгээг автоматаар батлах (таны тулгалт хийх дүрэм дээр "
+"тулгуурлана)."
#. module: account
#: selection:account.bank.statement,state:0
@@ -11440,6 +11815,8 @@ msgid ""
"We cannot find a chart of accounts for this company, you should configure it. \n"
"Please go to Account Configuration and select or install a fiscal localization."
msgstr ""
+"Энэ компанид дансны мод суугаагүй байна. та үүнийг тохируулах ёстой.\n"
+"Санхүүгийн тохиргоо хэсэгт очоод дансны мод сонгож суулгана уу."
#. module: account
#: code:addons/account/models/company.py:480
@@ -11448,6 +11825,8 @@ msgid ""
"We cannot find any journal for this company. You should create one.\n"
"Please go to Configuration > Journals."
msgstr ""
+"Энэ компанид журнал олдсонгүй. Та нэгийг үүсгэх хэрэгтэй.\n"
+"Тохиргоо > Журнал цэс рүү очино уу."
#. module: account
#: model:ir.model.fields,field_description:account.field_account_bank_statement__website_message_ids
@@ -11469,6 +11848,8 @@ msgid ""
"When receiving an email with a bill, or uploading scanned bills, Odoo will "
"parse them (OCR) and auto-complete (AI) Draft Bills to validate."
msgstr ""
+"Имэйлээр нэхэмжлэл хүлээн авах эсвэл сканнердаж оруулах үед Odoo систем "
+"түүнийг задалж уншаад автоматаар (AI) ноорог нэхэмжлэл бүртгэж батлана."
#. module: account
#: model:ir.model.fields,help:account.field_account_journal__post_at_bank_rec
@@ -11477,6 +11858,9 @@ msgid ""
"draft state, so that the related journal entries are only posted when "
"performing bank reconciliation."
msgstr ""
+"Энэ журналд бүртгэгдсэн төлбөр төлөлтийн гүйлгээнүүд ноорог төлөвтэй байх ба"
+" банкны хуулгатай ижилсүүлэлт буюу тулгалт хийсний эцэст батлагдсан төлөвт "
+"шилжинэ."
#. module: account
#: model:ir.model.fields,help:account.field_account_invoice_send__is_log
@@ -11491,7 +11875,7 @@ msgstr "Энэ журналь хянах самбарт харагдах эсэÑ
#. module: account
#: model:ir.model.fields,help:account.field_account_setup_bank_manual_config__new_journal_name
msgid "Will be used to name the Journal related to this bank account"
-msgstr ""
+msgstr "Энэ банкны данстай харгалзах журналын нэрээр ашиглагдана"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_common_journal_report__amount_currency
@@ -11526,7 +11910,7 @@ msgstr "Буруу кредит эсвэл дебит дүн бүхий данс
#: code:addons/account/models/account_move.py:899
#, python-format
msgid "You are trying to reconcile some entries that are already reconciled."
-msgstr ""
+msgstr "Та аль хэдийнээ тулгагдсан бичилтийг дахин тулгах гэж оролдож байна."
#. module: account
#: model:ir.model.fields,help:account.field_account_move_line__blocked
@@ -11542,6 +11926,8 @@ msgstr ""
#: model:ir.model.fields,help:account.field_account_invoice_line__partner_id
msgid "You can find a contact by its Name, TIN, Email or Internal Reference."
msgstr ""
+"Та харилцах хаягыг Нэр, ТТД, Имэйл болон дотоод дугаараар хайж олох "
+"боломжтой."
#. module: account
#: code:addons/account/models/account_invoice.py:1983
@@ -11550,6 +11936,8 @@ msgid ""
"You can not delete payment terms as other records still reference it. "
"However, you can archive it."
msgstr ""
+"Та аль хэдийнээ гүйлгээнд ашиглагдсан төлбөрийн нөхцөлийг устгах боломжгүй. "
+"Үүнийг оронд идэвхигүй болгоно уу."
#. module: account
#: code:addons/account/models/account_fiscal_year.py:55
@@ -11558,6 +11946,8 @@ msgid ""
"You can not have an overlap between two fiscal years, please correct the "
"start and/or end dates of your fiscal years."
msgstr ""
+"Хоёр санхүүгийн жил огтолцож болохгүй, та тэдгээрийн эхлэх болон дуусах "
+"огноог давхацуулахгүйгээр тааруулна уу."
#. module: account
#: code:addons/account/models/account_invoice.py:1827
@@ -11578,6 +11968,9 @@ msgid ""
"invoices, once validated, to help the customer to refer to that particular "
"invoice when making the payment."
msgstr ""
+"Та захиалагчийн нэхэмжлэл дээр байнга хэрэгжих төлбөрийн лавлагааг энд "
+"тохируулах боломжтой. Нэхэмжлэл батлагдсаны дараа энэхүү лавлагааг ашиглан "
+"төлбөр төлөлтийг уг нэхэмжлэлтэй харгалзуулж холбох боломжтой болно."
#. module: account
#: code:addons/account/models/account_move.py:361
@@ -11603,6 +11996,8 @@ msgid ""
"You cannot change the currency of the company since some journal items "
"already exist"
msgstr ""
+"Ямар нэг ажил гүйлгээ бүртгэгдсэнээс хойш компаны үндсэн валютыг өөрчлөх "
+"боломжгүй"
#. module: account
#: code:addons/account/models/account.py:317
@@ -11619,6 +12014,8 @@ msgid ""
"You cannot create journal items with a secondary currency without filling "
"both 'currency' and 'amount currency' fields."
msgstr ""
+"Гадаад валюттай журналд гүйлгээ бүртгэхдээ заавал валют болон валютын дүн "
+"талбаруудыг бүртгэх ёстой."
#. module: account
#: code:addons/account/models/company.py:187
@@ -11627,12 +12024,15 @@ msgid ""
"You cannot define stricter conditions on advisors than on users. Please make"
" sure that the lock date on advisor is set before the lock date for users."
msgstr ""
+"Та санхүүгийн удирдлах эрхэнд санхүүгийн хэрэглэгч эрхээс илүү хатуу эрх "
+"тохируулж болохгүй. Удирдлын хэмжээнд түгжих огноо нь хэрэглэгчийн хэмжээнд "
+"түгжих огноогоос өмнөх огноо байх ёстойг анхаарна уу."
#. module: account
#: code:addons/account/models/account_payment.py:583
#, python-format
msgid "You cannot delete a payment that is already posted."
-msgstr ""
+msgstr "Та батлагдсан төлбөрийг устгах боломжгүй."
#. module: account
#: code:addons/account/models/account_invoice.py:744
@@ -11653,6 +12053,8 @@ msgid ""
"You cannot delete an invoice which is not draft or cancelled. You should "
"create a credit note instead."
msgstr ""
+"Та зөвхөн ноорог эсвэл цуцлагдсан төлөвтэй нэхэмжлэлийг устгах боломжтой. "
+"Харин энэ нэхэмжлэлийг устгахын оронд буцаалт үүсгэнэ үү."
#. module: account
#: code:addons/account/models/res_config_settings.py:147
@@ -11661,6 +12063,9 @@ msgid ""
"You cannot disable this setting because some of your taxes are cash basis. "
"Modify your taxes first before disabling this setting."
msgstr ""
+"Та энэ тохиргоог болиулах боломжгүй. Учир нь аль хэдийнээ зарим мөнгөн "
+"суурьт татварын гүйлгээ бүртгэгдсэн байна. Энэ тохиргоог болиулахын тулд "
+"эхлээд ийм татварын гүйлгээнүүдийг засварлах хэрэгтэй."
#. module: account
#: code:addons/account/models/account_move.py:1136
@@ -11689,6 +12094,8 @@ msgid ""
"You cannot have a receivable/payable account that is not reconcilable. "
"(account code: %s)"
msgstr ""
+"Тулгагдахгүй тохиргоотойгоор авлага/өглөгийн дансыг ашиглах боломжгүй. "
+"(дансны код: %s)"
#. module: account
#: code:addons/account/models/account.py:76
@@ -11707,6 +12114,8 @@ msgid ""
"You cannot lock a period that is not finished yet. Please make sure that the"
" lock date for advisors is not set after the last day of the previous month."
msgstr ""
+"Та сарын өдөр өнгөрч дуусаагүй байхад мөчлөг түгжих боломжгүй. Сүүлийн сарын"
+" хамгийн сүүлийн өдрөөс хойшхи огноогоор түгжиж болохгүйг анхаарна уу."
#. module: account
#. openerp-web
@@ -11720,6 +12129,8 @@ msgstr "Авлага болон өглөгийн дансдаас мөрүүди
#, python-format
msgid "You cannot modify a journal entry linked to a posted payment."
msgstr ""
+"Энэхүү гүйлгээ нь ямар нэг батлагдсан төлөлттэй холбогдсон үед та засаж "
+"өөрчлөх боломжгүй."
#. module: account
#: code:addons/account/models/account_move.py:322
@@ -11746,7 +12157,7 @@ msgstr ""
#, python-format
msgid ""
"You cannot perform this action on an account that contains journal items."
-msgstr ""
+msgstr "Та ажил гүйлгээ бүртгэгдсэн дансанд ийм үйлдэл хийх боломжгүй."
#. module: account
#: code:addons/account/wizard/pos_box.py:36
@@ -11758,7 +12169,7 @@ msgstr "Хаагдсан банкны хуулга руу мөнгө хийх/а
#: code:addons/account/models/account.py:651
#, python-format
msgid "You cannot remove the bank account from the journal once set."
-msgstr ""
+msgstr "Журнал дээр нэгэнт тохируулагдсан банкны дансыг арилгах боломжгүй."
#. module: account
#: code:addons/account/models/account.py:339
@@ -11777,6 +12188,8 @@ msgid ""
"You cannot set a currency on this account as it already has some journal "
"entries having a different foreign currency."
msgstr ""
+"Энэ дансанд аль хэдийнээ ялгаатай валютын гүйлгээнүүд бүртгэгдсэн тул та уг "
+"дансанд ямар нэг валют тохируулах боломжгүй."
#. module: account
#: code:addons/account/models/account.py:301
@@ -11785,12 +12198,14 @@ msgid ""
"You cannot switch an account to prevent the reconciliation if some partial "
"reconciliations are still pending."
msgstr ""
+"Энэ дансанд ямар нэг дутуу тулгагдсан гүйлгээ бүртгэлтэй байгаа тул та "
+"дансны тулгалт хийх тохиргоог өөрчлөх боломжгүй байна."
#. module: account
#: code:addons/account/models/account_move.py:1102
#, python-format
msgid "You cannot use a deprecated account."
-msgstr ""
+msgstr "Та хэрэгцээгүй болсон дансыг ашиглах боломжгүй."
#. module: account
#: code:addons/account/models/account_move.py:1061
@@ -11810,6 +12225,8 @@ msgid ""
"You cannot validate an invoice with a negative total amount. You should "
"create a credit note instead."
msgstr ""
+"Та хасах утга бүхий нийт дүнтэй нэхэмжлэлийг батлах боломжгүй. Үүний оронд "
+"буцаалтын нэхэмжлэл үүсгэнэ үү."
#. module: account
#: model_terms:ir.ui.view,arch_db:account.invoice_form
@@ -11831,18 +12248,19 @@ msgid ""
"You have to define an 'Internal Transfer Account' in your cash register's "
"journal."
msgstr ""
+"Та кассын бүртгэлийн журнал дээр 'Дотоод шилжүүлгийн данс' тохируулна уу."
#. module: account
#: code:addons/account/models/account.py:147
#, python-format
msgid "You must first define an opening move."
-msgstr ""
+msgstr "Эхлээд та нээлтийн ажил гүйлгээ бүртгэх хэрэгтэй."
#. module: account
#: code:addons/account/models/account_invoice.py:1726
#, python-format
msgid "You must first select a partner."
-msgstr ""
+msgstr "Та эхлээд харилцагч сонгох ёстой."
#. module: account
#. openerp-web
@@ -11935,27 +12353,27 @@ msgstr "код"
#. module: account
#: selection:account.payment.term.line,option:0
msgid "day(s) after the end of the invoice month"
-msgstr ""
+msgstr "Нэхэмжилсэн сарын эцсээс хойшхи хоногийн тоо"
#. module: account
#: selection:account.payment.term.line,option:0
msgid "day(s) after the invoice date"
-msgstr ""
+msgstr "Нэхэмжилсэн огноогоос хойшхи өдрийн тоо"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.setup_bank_account_wizard
msgid "e.g BE15001559627230"
-msgstr ""
+msgstr "ж.ш BE15001559627230"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.setup_bank_account_wizard
msgid "e.g Bank of America"
-msgstr ""
+msgstr "ж.ш Америкын банк"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.setup_bank_account_wizard
msgid "e.g Checking account"
-msgstr ""
+msgstr "ж.ш Чекийн данс"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.view_account_reconcile_model_form
@@ -11979,17 +12397,17 @@ msgstr "байна. Энэ баримтыг хуваарилж төлсөнөөÑ
#: code:addons/account/static/src/xml/account_reconciliation.xml:320
#, python-format
msgid "have been reconciled automatically."
-msgstr ""
+msgstr "автоматаар тулгагдсан."
#. module: account
#: selection:account.payment.term.line,option:0
msgid "of the current month"
-msgstr ""
+msgstr "тухайн сарын"
#. module: account
#: selection:account.payment.term.line,option:0
msgid "of the following month"
-msgstr ""
+msgstr "Дараагийн сарын"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.invoice_supplier_form
@@ -12006,7 +12424,7 @@ msgstr "хэтэрсэн төлбөр"
#: code:addons/account/static/src/xml/account_reconciliation.xml:169
#, python-format
msgid "reconciliation models"
-msgstr ""
+msgstr "тулгалтын загвар"
#. module: account
#. openerp-web
@@ -12027,7 +12445,7 @@ msgstr "гүйлгээний секунд."
#: code:addons/account/static/src/xml/account_reconciliation.xml:321
#, python-format
msgid "statement lines"
-msgstr ""
+msgstr "гүйлгээний мөрүүд"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.view_partner_property_form
@@ -12039,7 +12457,7 @@ msgstr "эцэг компани"
#: code:addons/account/static/src/xml/account_reconciliation.xml:55
#, python-format
msgid "transactions in"
-msgstr ""
+msgstr "гүйлгээг дараах хугацаанд тулгалт хийсэн"
#. module: account
#: model:ir.model.fields,help:account.field_account_invoice__amount_by_group
diff --git a/addons/account/i18n/nl.po b/addons/account/i18n/nl.po
index 0491df8b8ec..703fe0a0bd6 100644
--- a/addons/account/i18n/nl.po
+++ b/addons/account/i18n/nl.po
@@ -45,7 +45,7 @@ msgid ""
" * The 'Cancelled' status is used when user cancel invoice."
msgstr ""
" * De 'Concept' status wordt gebruikt wanneer een gebruiker een nieuwe factuur aan het ingeven is. Deze factuur werd nog niet bevestigd.\n"
-" * De 'Open' status wordt gebruikt wanneer de gebruiker een factuur aanmaakt, een nieuwe factuurnummer wordt gegenereerd. De factuur blijft open tot deze betaald is.\n"
+" * De 'Open' status wordt gebruikt wanneer de gebruiker een factuur aanmaakt, er wordt een nieuwe factuurnummer gegenereerd. De factuur blijft open tot deze betaald is.\n"
" * De 'In betaling' status wordt gebruikt wanneer betalingen werden ontvangen, voor de gehele factuur of een gedeelte ervan, in een dagboek dat enkel werd ingesteld voor bank transacties en sommige nog niet werden afgeletterd.\n"
" * De 'Betaald' status wordt automatisch ingesteld wanneer de factuur betaald is. De gerelateerde boekingen kunnen zowel reeds afgeletterd zijn als niet afgeletterd zijn.\n"
" * De 'Geannuleerd' status wordt gebruikt wanneer de gebruiker de factuur annuleert."
@@ -171,7 +171,7 @@ msgstr ""
" Beste${object.partner_id.name}<br/><br/>\n"
" Bedankt voor uw betaling\n"
" Hierbij sturen wij u het afschrift van de betaling <strong>${(object.name or '').replace('/','-')}</strong> voor het bedrag van\n"
-" tot <strong>${format_amount(object.amount, object.currency_id)}</strong> van ${object.company_id.name}.\n"
+" <strong>${format_amount(object.amount, object.currency_id)}</strong> van ${object.company_id.name}.\n"
" <br/><br/>\n"
" Twijfel zeker niet om ons te contacteren indien u nog verdere vragen heeft.\n"
" <br/><br/>\n"
@@ -228,7 +228,7 @@ msgstr ""
" factuur\n"
" %endif\n"
" % if object.origin:\n"
-" (with reference: ${object.origin})\n"
+" (met referentie: ${object.origin})\n"
" % endif\n"
" voor een bedrag van <strong>${format_amount(object.amount_total, object.currency_id)}</strong>\n"
" ten aanzien van ${object.company_id.name}.\n"
@@ -1411,8 +1411,8 @@ msgid ""
msgstr ""
"Voeg een EPC QR codering toe aan uw facturen. Dit stelt uw klanten in staat "
"om onmiddellijk over te gaan tot betaling via hun mobiele bank applicaties. "
-"EPC QR codering worden gebruikt door de meerderheid van Europese banken voor"
-" de verwerking van de SEPA verrichtingen."
+"EPC QR coderingen worden gebruikt door de meerderheid van Europese banken "
+"voor de verwerking van de SEPA verrichtingen."
#. module: account
#: model_terms:ir.ui.view,arch_db:account.view_move_form
@@ -5277,8 +5277,9 @@ msgid ""
" type and recipient bank account in the generated payments. If disabled,\n"
" a distinct payment will be generated for each invoice."
msgstr ""
-"Indien geactiveerd, groepeert facturen volgens commerciële relatie, factuurrekening, aard en herkomst bankrekening in de verwerkte betalingen. \n"
-"Indien gedeactiveerd, genereert een aparte betaling per factuur. "
+"Indien geactiveerd, groepeert dit facturen volgens commerciële relatie, factuurrekening, aard en herkomst van de bankrekening in de verwerkte betalingen. \n"
+"Indien gedeactiveerd, \n"
+"genereert het een aparte betaling per factuur. "
#. module: account
#: model:ir.model.fields,help:account.field_account_tax__include_base_amount
@@ -6324,7 +6325,7 @@ msgid ""
"expense account on the product category will be used."
msgstr ""
"Laat dit veld leeg om de standaard waarde uit de productcategorie te "
-"gebruiken. Bij anlgo-saksische boekhouding met realtime waardering, zal de "
+"gebruiken. Bij anglo-saksische boekhouding met realtime waardering, zal de "
"kostenrekening op de productcategorie gebruikt worden."
#. module: account
@@ -6781,11 +6782,11 @@ msgid ""
"Batch Deposit: Encase several customer checks at once by generating a batch deposit to submit to your bank. When encoding the bank statement in Odoo, you are suggested to reconcile the transaction with the batch deposit.To enable batch deposit, module account_batch_payment must be installed.\n"
"SEPA Credit Transfer: Pay bill from a SEPA Credit Transfer file you submit to your bank. To enable sepa credit transfer, module account_sepa must be installed "
msgstr ""
-"Handmatig: Krijg betaald met contant geld, cheques of een andere methode buiten Odoo om\n"
+"Handmatig: Krijg betaald met contant geld, cheques of een andere methode buiten Odoo om.\n"
"Elektronisch: Betaal automatisch via een betalingsverwerker door een transactie aan te vragen op een door de klant opgeslagen kaart bij het online kopen of abonneren van (betalingstoken).\n"
"Cheque: Betaal factuur met een cheque en druk deze af in Odoo\n"
"Batch Deposito: Verzamel meerdere klantcheques tegelijk door een batch deposito te genereren om bij uw bank in te dienen. Wanneer u de bankafschriften in Odoo ingeeft, wordt u voorgesteld om de transactie af te letteren met de batchafbetaling. Schakel deze optie in bij instellingen.\n"
-"SEPA overschrijving: Betaal de factuur met een SEPA verschrijvingsbestand welke je upload bij de bank. Om SEPA te activeren dient te module ccount_sepa worden geïnstalleerd."
+"SEPA overschrijving: Betaal de factuur met een SEPA overschrijvingsbestand welke je upload bij de bank. Om SEPA te activeren dient te module account_sepa worden geïnstalleerd."
#. module: account
#: model:ir.model.fields,help:account.field_account_journal__outbound_payment_method_ids
@@ -7545,7 +7546,7 @@ msgid ""
"otherwise it would make a gap in the numbering. You should book an entry and"
" make a regular revert of it in case you want to cancel it."
msgstr ""
-"Bewerking niet toegelaten. Aangezien u bankafschriftregel reeds een nummer "
+"Bewerking niet toegelaten. Aangezien uw bankafschriftregel reeds een nummer "
"(%s) heeft gekregen, kunt u het niet compleet afletteren tegen bestaande "
"boekingen anders ontstaat er een gat in de nummering. U kan de boeking maken"
" en terugzetten wanneer u deze wil annuleren."
@@ -8377,7 +8378,7 @@ msgid ""
"Programmation Error: Can't call _get_wo_suggestion_query() for different "
"rules than 'writeoff_suggestion'"
msgstr ""
-"Programmatie Error: kan niet aangeroepen worden _get_wo_suggestion_query() "
+"Programmatie Error: _get_wo_suggestion_query() kan niet aangeroepen worden "
"voor een andere regel dan 'writeoff_suggestion'"
#. module: account
@@ -10381,7 +10382,7 @@ msgid ""
" don't want to reconcile all the past payments with bank statements."
msgstr ""
"De bank afletterfunctie zal niet vragen om de betalingen af te letteren welke ouder zijn dan deze datum.\n"
-"Dit is zinvol als u boekhouding installeerde nadat u facturatie reeds geruime tijd in gebruik had en\n"
+"Dit is zinvol als u de boekhouding applicatie installeerde nadat u facturatie reeds geruime tijd in gebruik had en\n"
"niet wil afletteren van oudere betalingen met bankafschriften."
#. module: account
@@ -10392,8 +10393,8 @@ msgid ""
" don't want to reconcile all the past payments with bank statements."
msgstr ""
"De bank afletterfunctie zal niet vragen om de betalingen af te letteren welke ouder zijn dan deze datum.\n"
-"Dit is zinvol als u boekhouding installeerde nadat u facturatie reeds geruime tijd in gebruik had en\n"
-"niet wil afletteren van oudere betalingen met bankafschriften."
+"Dit is zinvol als u de boekhouding applicatie installeerde nadat u facturatie reeds geruime tijd in gebruik had en\n"
+" oudere betalingen niet wil afletteren met bankafschriften."
#. module: account
#: model:ir.model.fields,help:account.field_account_move_line__statement_id
@@ -10710,7 +10711,7 @@ msgid ""
" * Amount Paid: Only applied when paying an amount.\n"
" * Amount Paid/Received: Applied in both cases."
msgstr ""
-"Het reconsiliatie model zal enkel toegepast worden op het geselecteerde verrchting type:\n"
+"Het afletter model zal enkel toegepast worden op het geselecteerde verrichting type:\n"
" * Ontvangen bedrag: Enkel toegepast indien bedrag ontvangen.\n"
" * Bedrag betaald: Enkel toegepast indien bedrag betaald.\n"
" * Bedrag betaald/ontvangen: Toegepast in beide gevallen."
@@ -10743,9 +10744,9 @@ msgid ""
" * Not Contains: Negation of \"Contains\".\n"
" * Match Regex: Define your own regular expression."
msgstr ""
-"Het reconsilliatie model zal enkel toegepast worden indien de label:\n"
-" * Bevatten: De voorgestelde label zal de string bevatten (hoofdletter gevoelig).\n"
-" * Niet Bevatten: Negatie van \"Bevatten\".\n"
+"Het aflettermodel zal enkel toegepast worden indien het label:\n"
+" * Bevat: De voorgestelde label zal de string bevatten (hoofdletter gevoelig).\n"
+" * Bevat niet: Negatie van \"Bevat\".\n"
" * Match Regex: Definieer uw eigen reguliere expressie."
#. module: account
@@ -10957,7 +10958,7 @@ msgid ""
"-This installs the account_batch_payment module."
msgstr ""
"Dit stelt u in staat om groepsbetalingen uit te voeren in een enkele beweging en dit vereenvoudigd het reconsilliatie proces.\n"
-"- Dit installeerd de account_batch_payment module. "
+"- Dit installeert de account_batch_payment module. "
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
diff --git a/addons/account/i18n/ro.po b/addons/account/i18n/ro.po
index a8b2c9271da..ceb40c2496c 100644
--- a/addons/account/i18n/ro.po
+++ b/addons/account/i18n/ro.po
@@ -187,7 +187,7 @@ msgstr ""
#. module: account
#: model_terms:ir.ui.view,arch_db:account.portal_my_home_menu_invoice
msgid "<em>Draft Invoice</em>"
-msgstr ""
+msgstr "<em>Factură ciornă"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.account_move_line_view_kanban
@@ -215,7 +215,7 @@ msgstr ""
#. module: account
#: model_terms:ir.ui.view,arch_db:account.portal_invoice_page
msgid "<i class=\"fa fa-fw fa-comments\"/><b>Send message</b>"
-msgstr ""
+msgstr "<i class=\"fa fa-fw fa-comments\"/><b>Trimiteți un mesaj</b>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.view_account_journal_form
@@ -253,6 +253,9 @@ msgid ""
" aria-label=\"Opened\" title=\"Opened\" role=\"img\"/><span class=\"d-none d"
"-md-inline\"> Waiting for Payment</span></span>"
msgstr ""
+"<span class=\"badge badge-pill badge-info\"><i class=\"fa fa-fw fa-clock-o\""
+" aria-label=\"Opened\" title=\"Opened\" role=\"img\"/><span class=\"d-none d"
+"-md-inline\">Se așteaptă plata</span></span>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.portal_my_invoices
@@ -425,7 +428,7 @@ msgstr ""
#. module: account
#: model_terms:ir.ui.view,arch_db:account.report_invoice_document
msgid "<span>Description</span>"
-msgstr ""
+msgstr "<span>Descriere</span>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.report_invoice_document
@@ -480,7 +483,7 @@ msgstr ""
#. module: account
#: model_terms:ir.ui.view,arch_db:account.report_invoice_document
msgid "<span>Quantity</span>"
-msgstr ""
+msgstr "<span>Cantitate</span>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.account_journal_dashboard_kanban_view
@@ -529,7 +532,7 @@ msgstr ""
#. module: account
#: model_terms:ir.ui.view,arch_db:account.portal_invoice_page
msgid "<strong class=\"text-muted\">Your Contact</strong>"
-msgstr ""
+msgstr "<strong class=\"text-muted\">Contactul dvs.</strong>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.report_invoice_document_with_payments
@@ -1125,7 +1128,7 @@ msgstr "Înregistrări contabile"
#. module: account
#: model:ir.actions.act_window,name:account.open_account_journal_dashboard_kanban
msgid "Accounting Overview"
-msgstr ""
+msgstr "Contabilitate generală"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.view_partner_property_form
@@ -1226,7 +1229,7 @@ msgstr ""
#. module: account
#: model_terms:ir.ui.view,arch_db:account.onboarding_bank_account_step
msgid "Add a bank"
-msgstr ""
+msgstr "Adaugă o bancă"
#. module: account
#: model_terms:ir.actions.act_window,help:account.action_account_journal_form
@@ -1236,7 +1239,7 @@ msgstr ""
#. module: account
#: model_terms:ir.ui.view,arch_db:account.invoice_form
msgid "Add a line"
-msgstr ""
+msgstr "Adăugați o linie"
#. module: account
#: model_terms:ir.actions.act_window,help:account.action_account_form
@@ -1251,7 +1254,7 @@ msgstr ""
#. module: account
#: model_terms:ir.ui.view,arch_db:account.invoice_form
msgid "Add a note"
-msgstr ""
+msgstr "Adaugă o notă"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
@@ -1507,12 +1510,12 @@ msgstr "Valoare"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice_line__price_total
msgid "Amount (with Taxes)"
-msgstr ""
+msgstr "Valoare (cu taxe)"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice_line__price_subtotal
msgid "Amount (without Taxes)"
-msgstr ""
+msgstr "Valoare (fără taxe)"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_bank_statement_line__amount_currency
@@ -2308,7 +2311,7 @@ msgstr "Facturile de plată"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.account_journal_dashboard_kanban_view
msgid "Bills to Validate"
-msgstr ""
+msgstr "Facturi de validat"
#. module: account
#: code:addons/account/models/account_journal_dashboard.py:178
@@ -3051,7 +3054,7 @@ msgstr "Configurare"
#: code:addons/account/static/src/js/section_and_note_fields_backend.js:102
#, python-format
msgid "Configure a product"
-msgstr ""
+msgstr "Configurați un produs"
#. module: account
#: model:ir.actions.act_window,name:account.action_open_account_onboarding_invoice_layout
@@ -3314,7 +3317,7 @@ msgstr "Creează model"
#. module: account
#: selection:account.setup.bank.manual.config,create_or_link_option:0
msgid "Create new journal"
-msgstr ""
+msgstr "Creați un jurnal nou"
#. module: account
#: model_terms:ir.actions.act_window,help:account.rounding_list_action
@@ -3917,7 +3920,7 @@ msgstr ""
#. module: account
#: model_terms:ir.ui.view,arch_db:account.onboarding_fiscal_year_step
msgid "Define your fiscal years opening &amp; closing dates."
-msgstr ""
+msgstr "Definiți datele de deschidere și de închidere a anului fiscal."
#. module: account
#: model:ir.model.fields,help:account.field_account_journal__bank_statements_source
@@ -4032,7 +4035,7 @@ msgstr ""
#. module: account
#: model:ir.model,name:account.model_digest_digest
msgid "Digest"
-msgstr ""
+msgstr "Rezumat"
#. module: account
#: model:ir.model.fields,help:account.field_res_config_settings__group_products_in_bills
@@ -5205,12 +5208,12 @@ msgstr ""
#. module: account
#: model:ir.actions.act_window,name:account.account_invoice_import_wizard_action
msgid "Import Vendor Bills"
-msgstr ""
+msgstr "Importați facturile furnizorului"
#. module: account
#: model:ir.model,name:account.model_account_invoice_import_wizard
msgid "Import Your Vendor Bills from Files."
-msgstr ""
+msgstr "Importați facturile furnizorului din fișiere."
#. module: account
#: model:ir.model.fields,field_description:account.field_res_config_settings__module_account_bank_statement_import_csv
@@ -5629,6 +5632,8 @@ msgid ""
"Invoice_${(object.number or '').replace('/','_')}${object.state == 'draft' "
"and '_draft' or ''}"
msgstr ""
+"Factură_${(object.number or '').replace('/','_')}${object.state == 'draft' "
+"and '_ciornă' or ''}"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.view_account_invoice_report_search
@@ -5688,7 +5693,7 @@ msgstr ""
#. module: account
#: model_terms:ir.ui.view,arch_db:account.account_journal_dashboard_kanban_view
msgid "Invoices to Validate"
-msgstr ""
+msgstr "Facturi de validat"
#. module: account
#: model:ir.model.fields,help:account.field_account_payment__reconciled_invoice_ids
@@ -6357,7 +6362,7 @@ msgstr ""
#. module: account
#: selection:account.setup.bank.manual.config,create_or_link_option:0
msgid "Link to an existing journal"
-msgstr ""
+msgstr "Legați de un jurnal existent"
#. module: account
#: model:ir.model.fields,help:account.field_account_invoice__move_id
@@ -8081,7 +8086,7 @@ msgstr "Achiziție"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.invoice_supplier_form
msgid "Purchase Representative"
-msgstr ""
+msgstr "Responsabil achiziție"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
@@ -9030,17 +9035,17 @@ msgstr ""
#. module: account
#: model_terms:ir.ui.view,arch_db:account.onboarding_bank_account_step
msgid "Setup your bank account to sync bank feeds."
-msgstr ""
+msgstr "Configurați contul dvs. bancar pentru a sincroniza fluxurile bancare."
#. module: account
#: model_terms:ir.ui.view,arch_db:account.onboarding_chart_of_account_step
msgid "Setup your chart of accounts and record initial balances."
-msgstr ""
+msgstr "Configurați planul de conturi și înregistrați soldurile inițiale."
#. module: account
#: model_terms:ir.ui.view,arch_db:account.dashboard_onboarding_company_step
msgid "Setup your company's data for reports headers."
-msgstr ""
+msgstr "Configurați datele companiei pentru anteturile de rapoarte."
#. module: account
#: model:ir.actions.server,name:account.model_account_invoice_action_share
@@ -11519,6 +11524,7 @@ msgid ""
"You cannot change the currency of the company since some journal items "
"already exist"
msgstr ""
+"Nu puteți schimba moneda companiei deoarece există deja articole de jurnale"
#. module: account
#: code:addons/account/models/account.py:317
diff --git a/addons/account/i18n/ru.po b/addons/account/i18n/ru.po
index e26f26e9ed7..303e739d7bd 100644
--- a/addons/account/i18n/ru.po
+++ b/addons/account/i18n/ru.po
@@ -37,6 +37,7 @@
# Collex100, 2019
# Sergo S, 2019
# Vasiliy Korobatov <korobatov@gmail.com>, 2019
+# Oleg Kuryan <oleg@ventor.tech>, 2019
#
msgid ""
msgstr ""
@@ -44,7 +45,7 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-01-16 07:59+0000\n"
"PO-Revision-Date: 2016-08-05 12:55+0000\n"
-"Last-Translator: Vasiliy Korobatov <korobatov@gmail.com>, 2019\n"
+"Last-Translator: Oleg Kuryan <oleg@ventor.tech>, 2019\n"
"Language-Team: Russian (https://www.transifex.com/odoo/teams/41243/ru/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -3693,7 +3694,7 @@ msgstr "Платежи заказчиков"
#. module: account
#: model:ir.model.fields,help:account.field_account_invoice__access_url
msgid "Customer Portal URL"
-msgstr ""
+msgstr "Ссылка на портал клиента"
#. module: account
#: model:ir.model.fields,field_description:account.field_product_product__taxes_id
@@ -7960,7 +7961,7 @@ msgstr ""
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice__access_url
msgid "Portal Access URL"
-msgstr ""
+msgstr "Ссылка для доступа в портал"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.view_move_form
diff --git a/addons/account/i18n/tr.po b/addons/account/i18n/tr.po
index 0e0adc23c2b..bfea215d4e2 100644
--- a/addons/account/i18n/tr.po
+++ b/addons/account/i18n/tr.po
@@ -204,12 +204,12 @@ msgstr "Taslak Fatura"
#: model_terms:ir.ui.view,arch_db:account.account_move_line_view_kanban
#: model_terms:ir.ui.view,arch_db:account.view_account_move_kanban
msgid "<i class=\"fa fa-clock-o\" aria-label=\"Date\" role=\"img\" title=\"Date\"/>"
-msgstr ""
+msgstr "<i class=\"fa fa-clock-o\" aria-label=\"Date\" role=\"img\" title=\"Date\"/>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.view_account_payment_kanban
msgid "<i class=\"fa fa-clock-o\" role=\"img\" aria-label=\"Date\" title=\"Date\"/>"
-msgstr ""
+msgstr "<i class=\"fa fa-clock-o\" role=\"img\" aria-label=\"Date\" title=\"Date\"/>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.portal_invoice_page
@@ -222,6 +222,8 @@ msgid ""
"<i class=\"fa fa-ellipsis-v\" aria-label=\"Selection\" role=\"img\" "
"title=\"Selection\"/>"
msgstr ""
+"<i class=\"fa fa-ellipsis-v\" aria-label=\"Selection\" role=\"img\" "
+"title=\"Selection\"/>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.portal_invoice_page
@@ -264,6 +266,9 @@ msgid ""
" aria-label=\"Opened\" title=\"Opened\" role=\"img\"/><span class=\"d-none d"
"-md-inline\"> Waiting for Payment</span></span>"
msgstr ""
+"<span class=\"badge badge-pill badge-info\"><i class=\"fa fa-fw fa-clock-o\""
+" aria-label=\"Opened\" title=\"Opened\" role=\"img\"/><span class=\"d-none d"
+"-md-inline\"> Ödeme Bekleniyor</span></span>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.portal_my_invoices
@@ -288,6 +293,9 @@ msgid ""
"specific.\" aria-label=\"Values set here are company-specific.\" "
"groups=\"base.group_multi_company\" role=\"img\"/>"
msgstr ""
+"<span class=\"fa fa-lg fa-building-o\" title=\"Values set here are company-"
+"specific.\" aria-label=\"Values set here are company-specific.\" "
+"groups=\"base.group_multi_company\" role=\"img\"/>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
@@ -295,6 +303,8 @@ msgid ""
"<span class=\"fa fa-lg fa-building-o\" title=\"Values set here are company-"
"specific.\"/>"
msgstr ""
+"<span class=\"fa fa-lg fa-building-o\" title=\"Values set here are company-"
+"specific.\"/>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.invoice_supplier_form
@@ -386,6 +396,8 @@ msgid ""
"<span class=\"text-muted\">Only journals not yet linked to a bank account "
"are proposed</span>"
msgstr ""
+"<span class=\"text-muted\">Sadece henüz bir banka hesabına bağlı olmayan "
+"yevmiye önerilmektedir</span>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.report_invoice_document
@@ -499,7 +511,7 @@ msgstr "<span>İşlemler</span>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.report_payment_receipt_document
msgid "<span>Original Amount</span>"
-msgstr ""
+msgstr "<span>Orijinal Tutar</span>"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.report_invoice_document
@@ -686,7 +698,7 @@ msgstr "Bir Ödeme Vadesi, Bakiye tipinin sadece bir satırına sahip olmalı."
#: code:addons/account/models/account.py:861
#, python-format
msgid "A bank account can belong to only one journal."
-msgstr ""
+msgstr "Bir banka hesabı yalnızca bir yevmiye ait olabilir."
#. module: account
#: model_terms:ir.actions.act_window,help:account.action_bank_statement_tree
@@ -1343,7 +1355,7 @@ msgstr "Ek notlar..."
#: selection:account.tax,type_tax_use:0
#: selection:account.tax.template,type_tax_use:0
msgid "Adjustment"
-msgstr ""
+msgstr "Düzeltme"
#. module: account
#: model:ir.model.fields,field_description:account.field_tax_adjustments_wizard__tax_id
@@ -1717,7 +1729,7 @@ msgstr "Analitik Hesap"
#: model:ir.ui.menu,name:account.account_analytic_group_menu
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
msgid "Analytic Account Groups"
-msgstr ""
+msgstr "Analitik Hesap Grupları"
#. module: account
#: model:ir.model.fields,field_description:account.field_res_config_settings__group_analytic_accounting
@@ -2263,7 +2275,7 @@ msgstr "Faturaya dayalı"
#: code:addons/account/models/company.py:19
#, python-format
msgid "Based on Invoice Number"
-msgstr ""
+msgstr "Fatura Numarasına Göre"
#. module: account
#: model:ir.model.fields,help:account.field_account_tax__tax_exigibility
@@ -2838,7 +2850,7 @@ msgstr ""
#. module: account
#: model_terms:ir.actions.act_window,help:account.actions_account_fiscal_year
msgid "Click here to create a new fiscal year."
-msgstr ""
+msgstr "Yeni bir mali yıl oluşturmak için buraya tıklayın."
#. module: account
#. openerp-web
@@ -2870,7 +2882,7 @@ msgstr ""
#: code:addons/account/static/src/xml/account_reconciliation.xml:17
#, python-format
msgid "Click to Rename"
-msgstr ""
+msgstr "Yeniden Adlandırma için Tıklayın"
#. module: account
#. openerp-web
@@ -3088,7 +3100,7 @@ msgstr "Yapılandır"
#: code:addons/account/static/src/js/section_and_note_fields_backend.js:102
#, python-format
msgid "Configure a product"
-msgstr ""
+msgstr "Bir Ürünü Yapılandır"
#. module: account
#: model:ir.actions.act_window,name:account.action_open_account_onboarding_invoice_layout
@@ -3218,7 +3230,7 @@ msgstr "Karşı Hesap"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.view_account_reconcile_model_form
msgid "Counterpart Values"
-msgstr ""
+msgstr "Karşı Değerler"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_fiscal_position__country_id
@@ -5277,7 +5289,7 @@ msgstr ".qif biçiminde içe aktar"
#. module: account
#: model:ir.actions.act_window,name:account.account_invoice_import_wizard_action
msgid "Import Vendor Bills"
-msgstr ""
+msgstr "Tedarikçi Faturalarını İçe Aktar"
#. module: account
#: model:ir.model,name:account.model_account_invoice_import_wizard
@@ -5791,7 +5803,7 @@ msgstr "Faturalama"
#: selection:account.reconcile.model,match_amount:0
#: selection:account.reconcile.model.template,match_amount:0
msgid "Is Between"
-msgstr ""
+msgstr "Arasında"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_bank_statement__message_is_follower
@@ -5804,13 +5816,13 @@ msgstr "Takipçi mi"
#: selection:account.reconcile.model,match_amount:0
#: selection:account.reconcile.model.template,match_amount:0
msgid "Is Greater Than"
-msgstr ""
+msgstr "Büyüktür"
#. module: account
#: selection:account.reconcile.model,match_amount:0
#: selection:account.reconcile.model.template,match_amount:0
msgid "Is Lower Than"
-msgstr ""
+msgstr "Küçüktür"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_invoice_send__printed
@@ -7039,7 +7051,7 @@ msgstr "Normal Borçlu"
#: selection:account.reconcile.model,match_label:0
#: selection:account.reconcile.model.template,match_label:0
msgid "Not Contains"
-msgstr ""
+msgstr "İçermez"
#. module: account
#: selection:res.company,account_dashboard_onboarding_state:0
@@ -8607,7 +8619,7 @@ msgstr ""
#. module: account
#: model:ir.model.fields,field_description:account.field_account_move__reverse_date
msgid "Reversal Date"
-msgstr ""
+msgstr "Ters Tarih"
#. module: account
#: model:ir.model.fields,field_description:account.field_account_move_reversal__date
diff --git a/addons/account/i18n/zh_CN.po b/addons/account/i18n/zh_CN.po
index 0ba0ee0df10..bf62679cd61 100644
--- a/addons/account/i18n/zh_CN.po
+++ b/addons/account/i18n/zh_CN.po
@@ -36,7 +36,7 @@
# sunny sun <sunxiaoxia@inspur.com>, 2018
# Maie <m@maie.name>, 2018
# liulixia <liu.lixia@elico-corp.com>, 2018
-# e2f_cn r14 <e2f_cn_r14@outlook.com>, 2018
+# 0023d6d916c2d56e4d76ed7a6e80ad5b, 2018
# John Lin <linyinhuan@139.com>, 2018
# xiaobin wu <bd5dml@gmail.com>, 2018
# Henry Zhou <zhouhenry@live.com>, 2018
@@ -48,10 +48,9 @@
# e2f <projects@e2f.com>, 2019
# Siyuan Gu <siyuancn@hotmail.com>, 2019
# 山西清水欧度(QQ:54773801) <54773801@qq.com>, 2019
-# e2f_cn c7 <e2f_cn_c7@outlook.com>, 2019
+# bf2549c5415a9287249cba2b8a5823c7, 2019
# p too <totopo@163.com>, 2019
# snow wang <147156565@qq.com>, 2019
-# 开阖软件 Jeff Wang <jeff@osbzr.com>, 2019
# 苏州远鼎 <tiexinliu@126.com>, 2019
# waveyeung <waveyeung@qq.com>, 2019
# 老窦 北京 <2662059195@qq.com>, 2019
@@ -74,6 +73,7 @@
# xu xiaohu <xu.xiaohu@gmail.com>, 2019
# inspur qiuguodong <qiuguodong@inspur.com>, 2019
# Jerry Pan <panjianyu@inspur.com>, 2019
+# 开阖软件 Jeff Wang <jeff@osbzr.com>, 2019
#
msgid ""
msgstr ""
@@ -81,7 +81,7 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-01-16 07:59+0000\n"
"PO-Revision-Date: 2016-08-05 12:55+0000\n"
-"Last-Translator: Jerry Pan <panjianyu@inspur.com>, 2019\n"
+"Last-Translator: 开阖软件 Jeff Wang <jeff@osbzr.com>, 2019\n"
"Language-Team: Chinese (China) (https://www.transifex.com/odoo/teams/41243/zh_CN/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -873,7 +873,7 @@ msgstr "选定的语句行已经与帐户移动相协调。"
#. module: account
#: sql_constraint:account.fiscal.position.tax:0
msgid "A tax fiscal position could be defined only one time on same taxes."
-msgstr ""
+msgstr "一种税只能定义一个替换规则"
#. module: account
#: model:res.groups,name:account.group_warning_account
@@ -5547,7 +5547,7 @@ msgstr "无效的\"Zip Range\",请正确的配置"
#: code:addons/account/models/company.py:106
#, python-format
msgid "Invalid fiscal year last day"
-msgstr ""
+msgstr "会计年度最后一天无效"
#. module: account
#: code:addons/account/models/account_invoice.py:1358
@@ -10559,6 +10559,8 @@ msgid ""
"This customer invoice credit note has been created from: <a href=# data-oe-"
"model=account.invoice data-oe-id=%d>%s</a><br>Reason: %s"
msgstr ""
+"客户红字发票已生成,原发票: <a href=# data-oe-model=account.invoice data-oe-"
+"id=%d>%s</a><br>原因: %s"
#. module: account
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
@@ -10693,6 +10695,8 @@ msgid ""
"This vendor bill credit note has been created from: <a href=# data-oe-"
"model=account.invoice data-oe-id=%d>%s</a><br>Reason: %s"
msgstr ""
+"供应商红字发票已生成。原发票:<a href=# data-oe-model=account.invoice data-oe-"
+"id=%d>%s</a><br>原因: %s"
#. module: account
#: model_terms:ir.actions.act_window,help:account.action_validate_account_move
diff --git a/addons/account/models/account_invoice.py b/addons/account/models/account_invoice.py
index ea88cd0275e..fbbde7737b1 100644
--- a/addons/account/models/account_invoice.py
+++ b/addons/account/models/account_invoice.py
@@ -590,13 +590,16 @@ class AccountInvoice(models.Model):
if res.get('type', False) not in ('out_invoice', 'in_refund') or not 'company_id' in res:
return res
- company = self.env['res.company'].browse(res['company_id'])
- if company.partner_id:
- partner_bank_result = self.env['res.partner.bank'].search([('partner_id', '=', company.partner_id.id)], limit=1)
- if partner_bank_result:
- res['partner_bank_id'] = partner_bank_result.id
+ partner_bank_result = self._get_partner_bank_id(res['company_id'])
+ if partner_bank_result:
+ res['partner_bank_id'] = partner_bank_result.id
return res
+ def _get_partner_bank_id(self, company_id):
+ company = self.env['res.company'].browse(company_id)
+ if company.partner_id:
+ return self.env['res.partner.bank'].search([('partner_id', '=', company.partner_id.id)], limit=1)
+
@api.model
def fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False):
def get_view_id(xid, name):
@@ -1534,6 +1537,11 @@ class AccountInvoice(models.Model):
values['payment_term_id'] = False
values['refund_invoice_id'] = invoice.id
+ if values['type'] == 'in_refund':
+ partner_bank_result = self._get_partner_bank_id(values['company_id'])
+ if partner_bank_result:
+ values['partner_bank_id'] = partner_bank_result.id
+
if date:
values['date'] = date
if description:
diff --git a/addons/account/models/account_move.py b/addons/account/models/account_move.py
index 605c09784a3..8c64fd7cf84 100644
--- a/addons/account/models/account_move.py
+++ b/addons/account/models/account_move.py
@@ -304,8 +304,9 @@ class AccountMove(models.Model):
@api.multi
def post(self):
self._post_validate()
+ # Create the analytic lines in batch is faster as it leads to less cache invalidation.
+ self.mapped('line_ids').create_analytic_lines()
for move in self:
- move.line_ids.create_analytic_lines()
if move.name == '/':
new_name = False
journal = move.journal_id
diff --git a/addons/account/tests/test_account_supplier_invoice.py b/addons/account/tests/test_account_supplier_invoice.py
index d1a6ef46902..60979f81b1a 100644
--- a/addons/account/tests/test_account_supplier_invoice.py
+++ b/addons/account/tests/test_account_supplier_invoice.py
@@ -108,3 +108,38 @@ class TestAccountSupplierInvoice(AccountingTestCase):
#I cancel the account move which is in posted state and verifies that it gives warning message
with self.assertRaises(Warning):
invoice.move_id.button_cancel()
+
+ def test_vendor_bill_refund(self):
+ invoice_account = self.env['account.account'].search(
+ [('user_type_id', '=', self.env.ref('account.data_account_type_receivable').id)], limit=1)
+ invoice_line_account = self.env['account.account'].search(
+ [('user_type_id', '=', self.env.ref('account.data_account_type_expenses').id)], limit=1)
+
+ if self.env.ref('base.main_partner').bank_account_count > 0:
+ bank = self.env['res.partner.bank'].search([('partner_id', '=', self.env.ref('base.main_partner').id)], limit=1)
+
+ else:
+ bank = self.env['res.partner.bank'].create({
+ 'acc_number': '12345678910',
+ 'partner_id': self.env.ref('base.main_partner').id,
+ })
+
+ invoice_id = self.env['account.invoice'].create({
+ 'name': 'invoice test refund',
+ 'partner_id': self.env.ref("base.res_partner_2").id,
+ 'account_id': invoice_account.id,
+ 'currency_id': self.env.ref('base.USD').id,
+ 'type': 'in_invoice',
+ })
+ self.env['account.invoice.line'].create({
+ 'product_id': self.env.ref("product.product_product_4").id,
+ 'quantity': 1,
+ 'price_unit': 15.0,
+ 'invoice_id': invoice_id.id,
+ 'name': 'something',
+ 'account_id': invoice_line_account.id,
+ })
+
+ refund_invoices = invoice_id.refund()
+
+ self.assertEqual(refund_invoices.partner_bank_id, bank)
diff --git a/addons/account_analytic_default/i18n/mn.po b/addons/account_analytic_default/i18n/mn.po
index ec3c0f7616b..06ddb0d30c8 100644
--- a/addons/account_analytic_default/i18n/mn.po
+++ b/addons/account_analytic_default/i18n/mn.po
@@ -7,13 +7,15 @@
# nasaaskii <nasaaskii@gmail.com>, 2018
# Khishigbat Ganbold <khishigbat@asterisk-tech.mn>, 2018
# Onii Onii <onii0223@yahoo.com>, 2018
+# Baskhuu Lodoikhuu <baskhuujacara@gmail.com>, 2019
+#
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server saas~11.2\n"
+"Project-Id-Version: Odoo Server saas~11.5\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-03-22 14:10+0000\n"
-"PO-Revision-Date: 2018-03-22 14:10+0000\n"
-"Last-Translator: Onii Onii <onii0223@yahoo.com>, 2018\n"
+"POT-Creation-Date: 2018-09-18 09:49+0000\n"
+"PO-Revision-Date: 2016-08-05 12:55+0000\n"
+"Last-Translator: Baskhuu Lodoikhuu <baskhuujacara@gmail.com>, 2019\n"
"Language-Team: Mongolian (https://www.transifex.com/odoo/teams/41243/mn/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -48,6 +50,8 @@ msgid ""
"An analytic default requires at least an analytic account or an analytic "
"tag."
msgstr ""
+"Байнга хэрэглэгдэх аналитик гэдэгт аналитик данс эсвэл аналитик пайзыг "
+"хэрэглэнэ."
#. module: account_analytic_default
#: model:ir.model.fields,field_description:account_analytic_default.field_account_analytic_default__analytic_id
@@ -70,7 +74,6 @@ msgstr "Шинжилгээний тархалт"
#. module: account_analytic_default
#: model:ir.actions.act_window,name:account_analytic_default.action_product_default_list
-#: model:ir.actions.act_window,name:account_analytic_default.analytic_rule_action_partner
#: model:ir.actions.act_window,name:account_analytic_default.analytic_rule_action_user
msgid "Analytic Rules"
msgstr "Шинжилгээний дүрмүүд"
@@ -104,7 +107,7 @@ msgstr "Үүсгэсэн"
#. module: account_analytic_default
#: model_terms:ir.ui.view,arch_db:account_analytic_default.res_config_settings_view_form
msgid "Default Analytic Values"
-msgstr ""
+msgstr "Шинжилгээний анхны утгууд"
#. module: account_analytic_default
#: model:ir.model.fields,help:account_analytic_default.field_account_analytic_default__date_stop
diff --git a/addons/account_bank_statement_import/i18n/es.po b/addons/account_bank_statement_import/i18n/es.po
index 793b92740d1..a4704a6ea6f 100644
--- a/addons/account_bank_statement_import/i18n/es.po
+++ b/addons/account_bank_statement_import/i18n/es.po
@@ -24,6 +24,7 @@
# Jesús Alan Ramos Rodríguez <alan.ramos@jarsa.com.mx>, 2018
# Pedro M. Baeza <pedro.baeza@gmail.com>, 2019
# Gabriel Umaña <gabriel.umana@delfixcr.com>, 2019
+# Jesse Garza <jga@odoo.com>, 2019
#
msgid ""
msgstr ""
@@ -31,7 +32,7 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-09-21 13:17+0000\n"
"PO-Revision-Date: 2016-08-05 12:55+0000\n"
-"Last-Translator: Gabriel Umaña <gabriel.umana@delfixcr.com>, 2019\n"
+"Last-Translator: Jesse Garza <jga@odoo.com>, 2019\n"
"Language-Team: Spanish (https://www.transifex.com/odoo/teams/41243/es/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -160,7 +161,7 @@ msgstr "Línea de extracto bancario"
#. module: account_bank_statement_import
#: model:ir.model,name:account_bank_statement_import.model_account_setup_bank_manual_config
msgid "Bank setup manual config"
-msgstr ""
+msgstr "Configuración manual de datos bancarios"
#. module: account_bank_statement_import
#: model:ir.model.fields,field_description:account_bank_statement_import.field_account_bank_statement_import_journal_creation__belongs_to_company
diff --git a/addons/account_bank_statement_import/i18n/mn.po b/addons/account_bank_statement_import/i18n/mn.po
index 481f137662a..393c5cb5148 100644
--- a/addons/account_bank_statement_import/i18n/mn.po
+++ b/addons/account_bank_statement_import/i18n/mn.po
@@ -82,7 +82,7 @@ msgstr "Хуурмаг нэр"
#. module: account_bank_statement_import
#: model:ir.model.fields,field_description:account_bank_statement_import.field_account_bank_statement_import_journal_creation__alias_name
msgid "Alias Name for Vendor Bills"
-msgstr ""
+msgstr "Нийлүүлэгчийн нэхэмжлэлийн имэйл нэр"
#. module: account_bank_statement_import
#: model:ir.model.fields,field_description:account_bank_statement_import.field_account_bank_statement_import_journal_creation__alias_domain
@@ -103,12 +103,12 @@ msgstr "Аль хэдийнээ импорт хийгдсэн мөрүүд"
#. module: account_bank_statement_import
#: model:ir.model.fields,field_description:account_bank_statement_import.field_account_bank_statement_import_journal_creation__at_least_one_inbound
msgid "At Least One Inbound"
-msgstr ""
+msgstr "Төлбөр хүлээн авах сувагтай"
#. module: account_bank_statement_import
#: model:ir.model.fields,field_description:account_bank_statement_import.field_account_bank_statement_import_journal_creation__at_least_one_outbound
msgid "At Least One Outbound"
-msgstr ""
+msgstr "Төлбөр илгээх сувагтай"
#. module: account_bank_statement_import
#: code:addons/account_bank_statement_import/account_bank_statement_import.py:82
@@ -145,7 +145,7 @@ msgstr "Банкны хуулгын мөр"
#. module: account_bank_statement_import
#: model:ir.model,name:account_bank_statement_import.model_account_setup_bank_manual_config
msgid "Bank setup manual config"
-msgstr ""
+msgstr "Банкны данс тохируулга"
#. module: account_bank_statement_import
#: model:ir.model.fields,field_description:account_bank_statement_import.field_account_bank_statement_import_journal_creation__belongs_to_company
@@ -174,6 +174,8 @@ msgid ""
"Check this box if you don't want to share the same sequence for invoices and"
" credit notes made from this journal"
msgstr ""
+"Үүнийг сонгосноор энэхүү журналд бүртгэгдэх нэхэмжлэл болон буцаалтууд нь "
+"дахин давтагдашгүй дугаарлалттай байх болно"
#. module: account_bank_statement_import
#: model:ir.model.fields,help:account_bank_statement_import.field_account_bank_statement_import_journal_creation__update_posted
@@ -244,7 +246,7 @@ msgstr "Валют"
#. module: account_bank_statement_import
#: model:ir.model.fields,field_description:account_bank_statement_import.field_account_bank_statement_import_journal_creation__refund_sequence
msgid "Dedicated Credit Note Sequence"
-msgstr ""
+msgstr "Буцаалтын тусдаа дугаарлалт"
#. module: account_bank_statement_import
#: model:ir.model.fields,field_description:account_bank_statement_import.field_account_bank_statement_import_journal_creation__default_credit_account_id
@@ -259,7 +261,7 @@ msgstr "Үндсэн дебит данс"
#. module: account_bank_statement_import
#: model:ir.model.fields,help:account_bank_statement_import.field_account_bank_statement_import_journal_creation__bank_statements_source
msgid "Defines how the bank statements will be registered"
-msgstr ""
+msgstr "Банкны хуулга хэрхэн бүртгэгдэхийг тодорхойлно"
#. module: account_bank_statement_import
#: model:ir.model.fields,field_description:account_bank_statement_import.field_account_bank_statement_import__display_name
@@ -368,7 +370,7 @@ msgstr "Энэ бол дебит гүйлгээний үндсэн данс"
#. module: account_bank_statement_import
#: model:ir.model.fields,help:account_bank_statement_import.field_account_bank_statement_import_journal_creation__alias_name
msgid "It creates draft vendor bill by sending an email."
-msgstr ""
+msgstr "Имэйл илгээснээр нийлүүлэгчийн ноорог нэхэмжлэл бүртгэгдэнэ."
#. module: account_bank_statement_import
#: model:ir.model,name:account_bank_statement_import.model_account_journal
@@ -442,6 +444,9 @@ msgid ""
"Electronic: Get paid automatically through a payment acquirer by requesting a transaction on a card saved by the customer when buying or subscribing online (payment token).\n"
"Batch Deposit: Encase several customer checks at once by generating a batch deposit to submit to your bank. When encoding the bank statement in Odoo,you are suggested to reconcile the transaction with the batch deposit. Enable this option from the settings."
msgstr ""
+"Гараар: Бэлэн мөнгөөр төлөгдөх эсвэл Odoo системээс гадуур ямар нэг төлбөрийн хэрэгслээр төлөгдөх.\n"
+"Электрон: Ямар нэг онлайн төлбөрийн хэрэгсэлээр төлөлт хийх үед автоматаар захиалагчийн гүйлгээ бүртгэгдэх (төлбөрийн token).\n"
+"Багц төлбөр: Захиалагч хэд хэдэн төлөлтийг нэгтгэн банкнаар нэг төлбөр шилжүүлэх тохиолдол. Odoo-д банкны гүйлгээ хөтлөгдөх үед танд холбогдох нэхэмжлэлүүдийг сонгож тулгах боломж олгогдоно. Энэ боломжыг тохиргооноос идэвхижүүлээрэй."
#. module: account_bank_statement_import
#: model:ir.model.fields,help:account_bank_statement_import.field_account_bank_statement_import_journal_creation__outbound_payment_method_ids
@@ -450,6 +455,9 @@ msgid ""
"Check:Pay bill by check and print it from Odoo.\n"
"SEPA Credit Transfer: Pay bill from a SEPA Credit Transfer file you submit to your bank. Enable this option from the settings."
msgstr ""
+"Гараар: Бэлэн мөнгөөр төлөгдөх эсвэл Odoo системээс гадуур ямар нэг төлбөрийн хэрэгслээр төлөгдөх.\n"
+"Чек: Нэхэмжлэлийг чекээр төлж төлбөрийн баримтыг Odoo-с хэвлэх.\n"
+"SEPA Credit Transfer: SEPA Credit Transfer систем ашиглан нэхэмжлэлийн төлбөрийг банк руу дамжуулах. Үүний тулд account_sepa модуль суулгах шаардлагатай. "
#. module: account_bank_statement_import
#: model:ir.model.fields,field_description:account_bank_statement_import.field_account_bank_statement_import_journal_creation__sequence_number_next
@@ -470,7 +478,7 @@ msgstr "OK"
#. module: account_bank_statement_import
#: model:ir.model.fields,field_description:account_bank_statement_import.field_account_bank_statement_import_journal_creation__post_at_bank_rec
msgid "Post At Bank Reconciliation"
-msgstr ""
+msgstr "Банкны тулгалтаар баталгаажуулах"
#. module: account_bank_statement_import
#: model:ir.model.fields,field_description:account_bank_statement_import.field_account_bank_statement_import_journal_creation__profit_account_id
@@ -504,6 +512,8 @@ msgstr "Дараалал"
#: model:ir.model.fields,help:account_bank_statement_import.field_account_bank_statement_import_journal_creation__active
msgid "Set active to false to hide the Journal without removing it."
msgstr ""
+"Идэвхитэй талбарыг үгүй утгаар тэмдэглэснээр журналыг устгалгүйгээр нуух "
+"боломжтой."
#. module: account_bank_statement_import
#: model:ir.model.fields,field_description:account_bank_statement_import.field_account_bank_statement_import_journal_creation__code
@@ -553,12 +563,12 @@ msgstr "Энэ журналийн бичилтүүдийн нэр нь энэ у
#. module: account_bank_statement_import
#: model:ir.model.fields,help:account_bank_statement_import.field_account_bank_statement_import_journal_creation__refund_sequence_number_next
msgid "The next sequence number will be used for the next credit note."
-msgstr ""
+msgstr "Дараагийн буцаалтын нэхэмжлэл дээр ашиглагдах дараагийн дугаар"
#. module: account_bank_statement_import
#: model:ir.model.fields,help:account_bank_statement_import.field_account_bank_statement_import_journal_creation__sequence_number_next
msgid "The next sequence number will be used for the next invoice."
-msgstr ""
+msgstr "Дараагийн нэхэмжлэл дээр ашиглагдах дараагийн дугаар"
#. module: account_bank_statement_import
#: model:ir.model.fields,help:account_bank_statement_import.field_account_bank_statement_import_journal_creation__refund_sequence_id
@@ -566,6 +576,8 @@ msgid ""
"This field contains the information related to the numbering of the credit "
"note entries of this journal."
msgstr ""
+"Энэ талбар нь уг журналд хичнээн буцаалтын нэхэмжлэл бүртгэгдсэн тухай "
+"мэдээллийг агуулна."
#. module: account_bank_statement_import
#: model:ir.model.fields,help:account_bank_statement_import.field_account_bank_statement_import_journal_creation__sequence_id
@@ -623,6 +635,9 @@ msgid ""
"draft state, so that the related journal entries are only posted when "
"performing bank reconciliation."
msgstr ""
+"Энэ журналд бүртгэгдсэн төлбөр төлөлтийн гүйлгээнүүд ноорог төлөвтэй байх ба"
+" банкны хуулгатай ижилсүүлэлт буюу тулгалт хийсний эцэст батлагдсан төлөвт "
+"шилжинэ."
#. module: account_bank_statement_import
#: model:ir.model.fields,help:account_bank_statement_import.field_account_bank_statement_import_journal_creation__show_on_dashboard
diff --git a/addons/account_bank_statement_import/i18n/nl.po b/addons/account_bank_statement_import/i18n/nl.po
index 158499b72d7..30095ea77bd 100644
--- a/addons/account_bank_statement_import/i18n/nl.po
+++ b/addons/account_bank_statement_import/i18n/nl.po
@@ -451,7 +451,7 @@ msgid ""
"Electronic: Get paid automatically through a payment acquirer by requesting a transaction on a card saved by the customer when buying or subscribing online (payment token).\n"
"Batch Deposit: Encase several customer checks at once by generating a batch deposit to submit to your bank. When encoding the bank statement in Odoo,you are suggested to reconcile the transaction with the batch deposit. Enable this option from the settings."
msgstr ""
-"Handmatig: Krijg betaald met contant geld, cheques of een andere methode buiten Odoo om\n"
+"Handmatig: Krijg betaald met contant geld, cheques of een andere methode buiten Odoo om.\n"
"Elektronisch: Betaal automatisch via een betalingsverwerver door een transactie aan te vragen op een door de klant opgeslagen kaart bij het online kopen of abonneren van (betalingstoken).\n"
"Batch Deposito: Verzamel meerdere klantcheques tegelijk door een batch deposito te genereren om bij uw bank in te dienen. Wanneer u de bankafschriften in Odoo ingeeft, wordt u voorgesteld om de transactie af te letteren met de batchafbetaling. Schakel deze optie in bij instellingen."
diff --git a/addons/account_check_printing/i18n/uk.po b/addons/account_check_printing/i18n/uk.po
index a8f0cbdbfe2..1fba2a0b551 100644
--- a/addons/account_check_printing/i18n/uk.po
+++ b/addons/account_check_printing/i18n/uk.po
@@ -68,7 +68,7 @@ msgstr "Скасувати"
#: model:ir.model.fields,field_description:account_check_printing.field_res_company__account_check_printing_layout
#: model:ir.model.fields,field_description:account_check_printing.field_res_config_settings__account_check_printing_layout
msgid "Check Layout"
-msgstr "Перевірити компонування"
+msgstr "Шаблон чеку"
#. module: account_check_printing
#: model:ir.model.fields,field_description:account_check_printing.field_res_company__account_check_printing_margin_left
diff --git a/addons/account_payment/i18n/ro.po b/addons/account_payment/i18n/ro.po
index b818e4d8f6e..03b26659089 100644
--- a/addons/account_payment/i18n/ro.po
+++ b/addons/account_payment/i18n/ro.po
@@ -3,14 +3,17 @@
# * account_payment
#
# Translators:
-# Martin Trigaux, 2018
+# Cozmin Candea <office@terrabit.ro>, 2018
+# Martin Trigaux, 2019
+# Dorin Hongu <dhongu@gmail.com>, 2019
+#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server saas~11.5\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-09-18 09:49+0000\n"
-"PO-Revision-Date: 2018-09-18 09:49+0000\n"
-"Last-Translator: Martin Trigaux, 2018\n"
+"PO-Revision-Date: 2017-12-13 14:50+0000\n"
+"Last-Translator: Dorin Hongu <dhongu@gmail.com>, 2019\n"
"Language-Team: Romanian (https://www.transifex.com/odoo/teams/41243/ro/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -71,6 +74,9 @@ msgid ""
"clock-o\"/><span class=\"d-none d-md-inline\"> Waiting for "
"Payment</span></span>"
msgstr ""
+"<span class=\"badge badge-pill badge-info\"><i class=\"fa fa-fw fa-"
+"clock-o\"/><span class=\"d-none d-md-inline\">Se așteaptă "
+"plata</span></span>"
#. module: account_payment
#: model_terms:ir.ui.view,arch_db:account_payment.portal_my_invoices_payment
@@ -128,7 +134,7 @@ msgstr ""
#. module: account_payment
#: model_terms:ir.ui.view,arch_db:account_payment.portal_invoice_payment
msgid "Pay with"
-msgstr ""
+msgstr "Plata cu"
#. module: account_payment
#: model:ir.model,name:account_payment.model_payment_transaction
diff --git a/addons/account_voucher/i18n/mn.po b/addons/account_voucher/i18n/mn.po
index 3424f08f698..1b5467015bc 100644
--- a/addons/account_voucher/i18n/mn.po
+++ b/addons/account_voucher/i18n/mn.po
@@ -696,4 +696,4 @@ msgstr ""
#: code:addons/account_voucher/models/account_voucher.py:457
#, python-format
msgid "You must first select a partner."
-msgstr ""
+msgstr "Та эхлээд харилцагч сонгох ёстой."
diff --git a/addons/account_voucher/i18n/tr.po b/addons/account_voucher/i18n/tr.po
index 7f0311c836e..6dd939094d4 100644
--- a/addons/account_voucher/i18n/tr.po
+++ b/addons/account_voucher/i18n/tr.po
@@ -68,7 +68,7 @@ msgstr "Muhasebe Fişi"
#. module: account_voucher
#: model:ir.model,name:account_voucher.model_account_voucher_line
msgid "Accounting Voucher Line"
-msgstr ""
+msgstr "Muhasebe Makbuz Satırı"
#. module: account_voucher
#: model:ir.model.fields,field_description:account_voucher.field_account_voucher__message_needaction
diff --git a/addons/analytic/i18n/mn.po b/addons/analytic/i18n/mn.po
index e05c2265e18..b75578db528 100644
--- a/addons/analytic/i18n/mn.po
+++ b/addons/analytic/i18n/mn.po
@@ -44,7 +44,7 @@ msgstr ""
#. module: analytic
#: model_terms:ir.actions.act_window,help:analytic.account_analytic_tag_action
msgid "Add a new tag"
-msgstr ""
+msgstr "Шинэ пайз нэмэх"
#. module: analytic
#: model:ir.model.fields,field_description:analytic.field_account_analytic_line__amount
@@ -73,7 +73,7 @@ msgstr ""
#: model_terms:ir.ui.view,arch_db:analytic.account_analytic_group_form_view
#: model_terms:ir.ui.view,arch_db:analytic.account_analytic_group_tree_view
msgid "Analytic Account Groups"
-msgstr ""
+msgstr "Шинжилгээний дансны бүлэг"
#. module: analytic
#: model:res.groups,name:analytic.group_analytic_accounting
@@ -450,7 +450,7 @@ msgstr "Эцэг"
#. module: analytic
#: model:ir.model.fields,field_description:analytic.field_account_analytic_group__parent_path
msgid "Parent Path"
-msgstr ""
+msgstr "Эцэг зам"
#. module: analytic
#: model:ir.model.fields,field_description:analytic.field_account_analytic_distribution__tag_id
diff --git a/addons/analytic/i18n/tr.po b/addons/analytic/i18n/tr.po
index dfb45f30daf..4baf8637461 100644
--- a/addons/analytic/i18n/tr.po
+++ b/addons/analytic/i18n/tr.po
@@ -80,7 +80,7 @@ msgstr ""
#: model_terms:ir.ui.view,arch_db:analytic.account_analytic_group_form_view
#: model_terms:ir.ui.view,arch_db:analytic.account_analytic_group_tree_view
msgid "Analytic Account Groups"
-msgstr ""
+msgstr "Analitik Hesap Grupları"
#. module: analytic
#: model:res.groups,name:analytic.group_analytic_accounting
diff --git a/addons/barcodes/static/src/js/barcode_events.js b/addons/barcodes/static/src/js/barcode_events.js
index bb28a8e1085..70463cd590e 100644
--- a/addons/barcodes/static/src/js/barcode_events.js
+++ b/addons/barcodes/static/src/js/barcode_events.js
@@ -56,20 +56,18 @@ var BarcodeEvents = core.Class.extend(mixins.PropertiesMixin, {
this.isChromeMobile = isMobile && navigator.userAgent.match(/Chrome/i);
// Creates an input who will receive the barcode scanner value.
- if (this.isChromeMobile) {
- this.$barcodeInput = $('<input/>', {
- name: 'barcode',
- type: 'text',
- css: {
- 'position': 'fixed',
- 'top': '50%',
- 'transform': 'translateY(-50%)',
- 'z-index': '-1',
- },
- });
- // Avoid to show autocomplete for a non appearing input
- this.$barcodeInput.attr('autocomplete', 'off');
- }
+ this.$barcodeInput = $('<input/>', {
+ name: 'barcode',
+ type: 'text',
+ css: {
+ 'position': 'fixed',
+ 'top': '50%',
+ 'transform': 'translateY(-50%)',
+ 'z-index': '-1',
+ },
+ });
+ // Avoid to show autocomplete for a non appearing input
+ this.$barcodeInput.attr('autocomplete', 'off');
this.__blurBarcodeInput = _.debounce(this._blurBarcodeInput, this.inputTimeOut);
},
@@ -220,7 +218,8 @@ var BarcodeEvents = core.Class.extend(mixins.PropertiesMixin, {
* @param {jQuery.Event} e keydown event
*/
_listenBarcodeScanner: function (e) {
- if (!$('input:text:focus, input[type=number]:focus, textarea:focus, [contenteditable]:focus').length) {
+ if ($(document.activeElement).not('input:text, textarea, [contenteditable], ' +
+ '[type="email"], [type="number"], [type="password"], [type="tel"]').length) {
$('body').append(this.$barcodeInput);
this.$barcodeInput.focus();
}
@@ -263,11 +262,9 @@ var BarcodeEvents = core.Class.extend(mixins.PropertiesMixin, {
* @private
*/
_blurBarcodeInput: function () {
- if (this.$barcodeInput) {
- // Close the virtual keyboard on mobile browsers
- // FIXME: actually we can't prevent keyboard from opening
- this.$barcodeInput.val('').blur();
- }
+ // Close the virtual keyboard on mobile browsers
+ // FIXME: actually we can't prevent keyboard from opening
+ this.$barcodeInput.val('').blur();
},
start: function(prevent_key_repeat){
diff --git a/addons/barcodes/static/tests/barcode_mobile_tests.js b/addons/barcodes/static/tests/barcode_mobile_tests.js
new file mode 100644
index 00000000000..cb26da64c74
--- /dev/null
+++ b/addons/barcodes/static/tests/barcode_mobile_tests.js
@@ -0,0 +1,74 @@
+odoo.define('barcodes.barcode_mobile_tests', function () {
+ "use strict";
+
+ QUnit.module('Barcodes', {}, function () {
+
+ QUnit.module('Barcodes Mobile');
+
+ QUnit.test('barcode field automatically focus behavior', function (assert) {
+ assert.expect(10);
+
+ // Mock Chrome mobile environment
+ var barcodeEvents = odoo.__DEBUG__.services["barcodes.BarcodeEvents"].BarcodeEvents;
+ var __isChromeMobile = barcodeEvents.isChromeMobile;
+ barcodeEvents.isChromeMobile = true;
+ // Rebind keyboard events
+ barcodeEvents.stop();
+ barcodeEvents.start();
+
+ var $form = $(
+ '<form>' +
+ '<input name="email" type="email"/>' +
+ '<input name="number" type="number"/>' +
+ '<input name="password" type="password"/>' +
+ '<input name="tel" type="tel"/>' +
+ '<input name="text"/>' +
+ '<input name="explicit_text" type="text"/>' +
+ '<textarea></textarea>' +
+ '<div contenteditable="true"></div>' +
+ '<select name="select">' +
+ '<option value="option1">Option 1</option>' +
+ '<option value="option2">Option 2</option>' +
+ '</select>' +
+ '</form>');
+ $('#qunit-fixture').append($form);
+
+ // Some elements doesn't need to keep the focus
+ $('body').keydown();
+ assert.strictEqual(document.activeElement.name, 'barcode',
+ "hidden barcode input should have the focus");
+
+ var $element = $form.find('select');
+ $element.focus().keydown();
+ assert.strictEqual(document.activeElement.name, 'barcode',
+ "hidden barcode input should have the focus");
+
+ // Those elements absolutely need to keep the focus:
+ // inputs elements:
+ var keepFocusedElements = ['email', 'number', 'password', 'tel',
+ 'text', 'explicit_text'];
+ for (var i = 0; i < keepFocusedElements.length; ++i) {
+ $element = $form.find('input[name=' + keepFocusedElements[i] + ']');
+ $element.focus().keydown();
+ assert.strictEqual(document.activeElement, $element[0],
+ "input " + keepFocusedElements[i] + " should keep focus");
+ }
+ // textarea element
+ $element = $form.find('textarea');
+ $element.focus().keydown();
+ assert.strictEqual(document.activeElement, $element[0],
+ "textarea should keep focus");
+ // contenteditable elements
+ $element = $form.find('[contenteditable=true]');
+ $element.focus().keydown();
+ assert.strictEqual(document.activeElement, $element[0],
+ "contenteditable should keep focus");
+
+ $('#qunit-fixture').empty();
+ barcodeEvents.isChromeMobile = __isChromeMobile;
+ // Rebind keyboard events
+ barcodeEvents.stop();
+ barcodeEvents.start();
+ });
+ });
+ });
diff --git a/addons/barcodes/views/barcodes_templates.xml b/addons/barcodes/views/barcodes_templates.xml
index cb16a40c178..45b77bd3301 100644
--- a/addons/barcodes/views/barcodes_templates.xml
+++ b/addons/barcodes/views/barcodes_templates.xml
@@ -16,4 +16,10 @@
</xpath>
</template>
+ <template id="qunit_mobile_suite" name="barcode_mobile_tests" inherit_id="web.qunit_mobile_suite">
+ <xpath expr="//t[@t-set='head']" position="inside">
+ <script type="text/javascript" src="/barcodes/static/tests/barcode_mobile_tests.js"></script>
+ </xpath>
+ </template>
+
</odoo>
diff --git a/addons/hr_holidays/models/hr_leave.py b/addons/hr_holidays/models/hr_leave.py
index 395bc0e72c6..bf05ec67fb9 100644
--- a/addons/hr_holidays/models/hr_leave.py
+++ b/addons/hr_holidays/models/hr_leave.py
@@ -9,7 +9,7 @@ import math
from datetime import datetime, time
from pytz import timezone, UTC
-from odoo import api, fields, models, tools
+from odoo import api, fields, models, tools, SUPERUSER_ID
from odoo.addons.resource.models.resource import float_to_time, HOURS_PER_DAY
from odoo.exceptions import AccessError, UserError, ValidationError
from odoo.tools import float_compare
@@ -745,6 +745,9 @@ class HolidaysRequest(models.Model):
def _check_approval_update(self, state):
""" Check if target state is achievable. """
+ if self.env.user.id == SUPERUSER_ID:
+ return
+
current_employee = self.env['hr.employee'].search([('user_id', '=', self.env.uid)], limit=1)
is_team_leader = self.env.user.has_group('hr_holidays.group_hr_holidays_team_leader')
is_officer = self.env.user.has_group('hr_holidays.group_hr_holidays_user')
diff --git a/addons/hr_payroll/models/hr_benefit.py b/addons/hr_payroll/models/hr_benefit.py
index f75e115108d..b086a8f4bf8 100644
--- a/addons/hr_payroll/models/hr_benefit.py
+++ b/addons/hr_payroll/models/hr_benefit.py
@@ -143,7 +143,9 @@ class HrBenefit(models.Model):
r['employee_id'][0],
r['benefit_type_id'][0] if r['benefit_type_id'] else False,
) for r in month_recs}
- new_vals = [v for v in vals_list if (v['date_start'].replace(tzinfo=None), v['date_stop'].replace(tzinfo=None), v['employee_id'], v['benefit_type_id']) not in existing_entries]
+ assert all(v['date_start'].tzinfo is None for v in vals_list)
+ assert all(v['date_stop'].tzinfo is None for v in vals_list)
+ new_vals = [v for v in vals_list if (v['date_start'], v['date_stop'], v['employee_id'], v['benefit_type_id']) not in existing_entries]
# Remove duplicates from vals_list, shouldn't be necessary from saas-12.2
unique_new_vals = set()
for values in new_vals:
@@ -188,8 +190,6 @@ class HrBenefit(models.Model):
if benefit.date_start.date() == benefit.date_stop.date():
new_benefits |= benefit
else:
- tz = pytz.timezone(benefit.employee_id.tz)
- benefit_start, benefit_stop = tz.localize(benefit.date_start), tz.localize(benefit.date_stop)
values = {
'name': benefit.name,
'employee_id': benefit.employee_id.id,
@@ -198,9 +198,9 @@ class HrBenefit(models.Model):
}
benefit_state = benefit.state
benefits_to_unlink |= benefit
- for start, stop in _split_range_by_day(benefit_start, benefit_stop):
- values['date_start'] = start.astimezone(pytz.utc)
- values['date_stop'] = stop.astimezone(pytz.utc)
+ for start, stop in _split_range_by_day(benefit.date_start, benefit.date_stop):
+ values['date_start'] = start
+ values['date_stop'] = stop
new_benefit = self.create(values)
# Write the state after the creation due to the ir.rule on benefit state
new_benefit.state = benefit_state
@@ -249,8 +249,8 @@ class HrBenefit(models.Model):
def _duplicate_to_calendar_attendance(self):
mapped_data = {
benefit: [
- pytz.utc.localize(benefit.date_start).astimezone(pytz.timezone(benefit.employee_id.tz)), # Start date
- pytz.utc.localize(benefit.date_stop).astimezone(pytz.timezone(benefit.employee_id.tz)) # End date
+ benefit.date_start,
+ benefit.date_stop,
] for benefit in self
}
diff --git a/addons/hr_payroll/models/hr_employee.py b/addons/hr_payroll/models/hr_employee.py
index 527f70c41ad..8cfe680b2bf 100644
--- a/addons/hr_payroll/models/hr_employee.py
+++ b/addons/hr_payroll/models/hr_employee.py
@@ -1,11 +1,11 @@
# -*- coding:utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
-from odoo import api, fields, models, _
-from odoo.addons.resource.models.resource import Intervals
-from datetime import datetime, timedelta
+from datetime import datetime
import pytz
+from odoo import api, fields, models
+
class HrEmployee(models.Model):
_inherit = 'hr.employee'
@@ -44,17 +44,10 @@ class HrEmployee(models.Model):
@api.model
def generate_benefit(self, date_start, date_stop):
- def _format_datetime(date):
- fmt = '%Y-%m-%d %H:%M:%S'
- date = datetime.strptime(date, fmt) if isinstance(date, str) else date
- return date.replace(tzinfo=pytz.utc) if not date.tzinfo else date
-
+ date_start = fields.Datetime.to_datetime(date_start)
+ date_stop = fields.Datetime.to_datetime(date_stop)
attendance_type = self.env.ref('hr_payroll.benefit_type_attendance')
vals_list = []
- leaves = self.env['hr.leave']
-
- date_start = _format_datetime(date_start)
- date_stop = _format_datetime(date_stop)
current_contracts = self.env['hr.employee']._get_all_contracts(date_start, date_stop, states=['open', 'pending', 'close'])
current_employees = current_contracts.mapped('employee_id')
@@ -64,13 +57,12 @@ class HrEmployee(models.Model):
mapped_data[contract.employee_id] |= contract
for employee, contracts in mapped_data.items():
-
# Approved leaves
emp_leaves = employee.resource_calendar_id.leave_ids.filtered(
lambda r:
r.resource_id == employee.resource_id and
- r.date_from.replace(tzinfo=pytz.utc) <= date_stop and
- r.date_to.replace(tzinfo=pytz.utc) >= date_start
+ r.date_from <= date_stop and
+ r.date_to >= date_start
)
global_leaves = employee.resource_calendar_id.global_leave_ids
@@ -78,9 +70,8 @@ class HrEmployee(models.Model):
vals_list.extend(employee_leaves._get_benefits_values())
for contract in contracts:
-
- date_start_benefits = max(date_start, datetime.combine(contract.date_start, datetime.min.time()).replace(tzinfo=pytz.utc))
- date_stop_benefits = min(date_stop, datetime.combine(contract.date_end or datetime.max.date(), datetime.max.time()).replace(tzinfo=pytz.utc))
+ date_start_benefits = max(date_start, fields.Datetime.to_datetime(contract.date_start)).replace(tzinfo=pytz.utc)
+ date_stop_benefits = min(date_stop, datetime.combine(contract.date_end or datetime.max.date(), datetime.max.time())).replace(tzinfo=pytz.utc)
calendar = contract.resource_calendar_id
resource = employee.resource_id
@@ -88,10 +79,11 @@ class HrEmployee(models.Model):
# Attendances
for interval in attendances:
benefit_type_id = interval[2].mapped('benefit_type_id')[:1] or attendance_type
+ # All benefits generated here are using datetimes converted from the employee's timezone
vals_list += [{
'name': "%s: %s" % (benefit_type_id.name, employee.name),
- 'date_start': interval[0].astimezone(pytz.utc),
- 'date_stop': interval[1].astimezone(pytz.utc),
+ 'date_start': interval[0].astimezone(pytz.utc).replace(tzinfo=None),
+ 'date_stop': interval[1].astimezone(pytz.utc).replace(tzinfo=None),
'benefit_type_id': benefit_type_id.id,
'employee_id': employee.id,
'contract_id': contract.id,
diff --git a/addons/hr_payroll/tests/test_benefit.py b/addons/hr_payroll/tests/test_benefit.py
index 3100ff6db43..c31e58eb780 100644
--- a/addons/hr_payroll/tests/test_benefit.py
+++ b/addons/hr_payroll/tests/test_benefit.py
@@ -1,8 +1,10 @@
# # -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
-import pytz
+from datetime import datetime
from dateutil.relativedelta import relativedelta
+import pytz
+
from odoo.fields import Datetime, Date
from odoo.tests.common import tagged
from odoo.addons.hr_payroll.tests.common import TestPayslipBase
@@ -10,15 +12,14 @@ from odoo.addons.hr_payroll.tests.common import TestPayslipBase
@tagged('benefit')
class TestBenefit(TestPayslipBase):
-
def setUp(self):
super(TestBenefit, self).setUp()
self.tz = pytz.timezone(self.richard_emp.tz)
- self.start = self.to_datetime_tz('2015-11-01 01:00:00')
- self.end = self.to_datetime_tz('2015-11-30 23:59:59')
+ self.start = datetime(2015, 11, 1, 1, 0, 0)
+ self.end = datetime(2015, 11, 30, 23, 59, 59)
self.resource_calendar_id = self.env['resource.calendar'].create({'name': 'Zboub'})
contract = self.env['hr.contract'].create({
- 'date_start': self.start - relativedelta(days=5),
+ 'date_start': self.start.date() - relativedelta(days=5),
'name': 'dodo',
'resource_calendar_id': self.resource_calendar_id.id,
'wage': 1000,
@@ -34,24 +35,6 @@ class TestBenefit(TestPayslipBase):
'code': 'WORK200'
})
- def to_datetime_tz(self, datetime_str, tz=None):
- tz = tz or self.tz
- return tz.localize(Datetime.to_datetime(datetime_str))
-
- def assertDatetimeTzEqual(self, value, target, tz=None):
- """
- Assert equality between two dates.
- :param value: timezone naive datetime
- :param target: datetime string
- :param tz: timezone to interpret the tartget string
- :raises AssertionError: raises exception if the two dates are not equal
- """
- tz = tz or self.tz
- self.assertEqual(
- pytz.utc.localize(value).astimezone(tz),
- self.to_datetime_tz(target, tz=tz)
- )
-
def test_no_duplicate(self):
self.richard_emp.generate_benefit(self.start, self.end)
pou1 = self.env['hr.benefit'].search_count([])
@@ -60,16 +43,14 @@ class TestBenefit(TestPayslipBase):
self.assertEqual(pou1, pou2, "Benefits should not be duplicated")
def test_benefit(self):
-
self.richard_emp.generate_benefit(self.start, self.end)
-
- attendance_nb = len(self.resource_calendar_id._attendance_intervals(self.start, self.end))
+ attendance_nb = len(self.resource_calendar_id._attendance_intervals(self.start.replace(tzinfo=pytz.utc), self.end.replace(tzinfo=pytz.utc)))
benefit_nb = self.env['hr.benefit'].search_count([('employee_id', '=', self.richard_emp.id)])
self.assertEqual(attendance_nb, benefit_nb, "One benefit should be generated for each calendar attendance")
def test_split_benefit_by_day(self):
- start = self.to_datetime_tz('2015-11-01 09:00:00')
- end = self.to_datetime_tz('2015-11-03 18:00:00')
+ start = datetime(2015, 11, 1, 9, 0, 0)
+ end = datetime(2015, 11, 3, 18, 0, 0)
# Benefit of type attendance should be split in three
benefit = self.env['hr.benefit'].create({
@@ -83,18 +64,18 @@ class TestBenefit(TestPayslipBase):
benefits = benefit._split_by_day()
self.assertEqual(len(benefits), 3, "Benefit should be split in three")
- self.assertDatetimeTzEqual(benefits[0].date_start, '2015-11-01 09:00:00')
- self.assertDatetimeTzEqual(benefits[0].date_stop, '2015-11-01 23:59:59')
+ self.assertEqual(benefits[0].date_start, datetime(2015, 11, 1, 9, 0, 0))
+ self.assertEqual(benefits[0].date_stop, datetime(2015, 11, 1, 23, 59, 59))
- self.assertDatetimeTzEqual(benefits[1].date_start, '2015-11-02 00:00:00')
- self.assertDatetimeTzEqual(benefits[1].date_stop, '2015-11-02 23:59:59')
+ self.assertEqual(benefits[1].date_start, datetime(2015, 11, 2, 0, 0, 0))
+ self.assertEqual(benefits[1].date_stop, datetime(2015, 11, 2, 23, 59, 59))
- self.assertDatetimeTzEqual(benefits[2].date_start, '2015-11-03 00:00:00')
- self.assertDatetimeTzEqual(benefits[2].date_stop, '2015-11-03 18:00:00')
+ self.assertEqual(benefits[2].date_start, datetime(2015, 11, 3, 0, 0, 0))
+ self.assertEqual(benefits[2].date_stop, datetime(2015, 11, 3, 18, 0, 0))
# Test with end at mid-night -> should not create benefit starting and ending at the same time (at 00:00)
- start = self.to_datetime_tz('2013-11-01 00:00:00')
- end = self.to_datetime_tz('2013-11-04 00:00:00')
+ start = datetime(2013, 11, 1, 0, 0, 0)
+ end = datetime(2013, 11, 4, 0, 0, 0)
benefit = self.env['hr.benefit'].create({
'name': '1',
@@ -105,19 +86,18 @@ class TestBenefit(TestPayslipBase):
})
benefits = benefit._split_by_day()
self.assertEqual(len(benefits), 3, "Benefit should be split in three")
- self.assertDatetimeTzEqual(benefits[0].date_start, '2013-11-01 00:00:00')
- self.assertDatetimeTzEqual(benefits[0].date_stop, '2013-11-01 23:59:59')
+ self.assertEqual(benefits[0].date_start, datetime(2013, 11, 1, 0, 0, 0))
+ self.assertEqual(benefits[0].date_stop, datetime(2013, 11, 1, 23, 59, 59))
- self.assertDatetimeTzEqual(benefits[1].date_start, '2013-11-02 00:00:00')
- self.assertDatetimeTzEqual(benefits[1].date_stop, '2013-11-02 23:59:59')
+ self.assertEqual(benefits[1].date_start, datetime(2013, 11, 2, 0, 0, 0))
+ self.assertEqual(benefits[1].date_stop, datetime(2013, 11, 2, 23, 59, 59))
- self.assertDatetimeTzEqual(benefits[2].date_start, '2013-11-03 00:00:00')
- self.assertDatetimeTzEqual(benefits[2].date_stop, '2013-11-03 23:59:59')
+ self.assertEqual(benefits[2].date_start, datetime(2013, 11, 3, 0, 0, 0))
+ self.assertEqual(benefits[2].date_stop, datetime(2013, 11, 3, 23, 59, 59))
def test_approve_multiple_day_benefit(self):
-
- start = self.to_datetime_tz('2015-11-01 09:00:00')
- end = self.to_datetime_tz('2015-11-03 18:00:00')
+ start = datetime(2015, 11, 1, 9, 0, 0)
+ end = datetime(2015, 11, 3, 18, 0, 0)
# Benefit of type attendance should be split in three
benefit = self.env['hr.benefit'].create({
@@ -134,8 +114,8 @@ class TestBenefit(TestPayslipBase):
self.assertEqual(len(benefits), 3, "Benefit should be split in three")
def test_duplicate_global_benefit_to_attendance(self):
- start = self.to_datetime_tz('2015-11-01 09:00:00')
- end = self.to_datetime_tz('2015-11-03 18:00:00')
+ start = datetime(2015, 11, 1, 9, 0, 0)
+ end = datetime(2015, 11, 3, 18, 0, 0)
benef = self.env['hr.benefit'].create({
'name': '1',
@@ -153,8 +133,8 @@ class TestBenefit(TestPayslipBase):
self.assertEqual(attendance_nb, 0, "It should not duplicate the 'normal/global' benefit type")
def test_duplicate_benefit_to_attendance(self):
- start = self.to_datetime_tz('2015-11-01 09:00:00')
- end = self.to_datetime_tz('2015-11-03 18:00:00')
+ start = datetime(2015, 11, 1, 9, 0, 0)
+ end = datetime(2015, 11, 3, 18, 0, 0)
# Benefit (not leave) should be split in three attendance
benef = self.env['hr.benefit'].create({
@@ -191,8 +171,8 @@ class TestBenefit(TestPayslipBase):
]))
def test_create_benefit_leave(self):
- start = self.to_datetime_tz('2015-11-01 09:00:00')
- end = self.to_datetime_tz('2015-11-03 18:00:00')
+ start = datetime(2015, 11, 1, 9, 0, 0)
+ end = datetime(2015, 11, 3, 18, 0, 0)
benef = self.env['hr.benefit'].create({
'name': 'Richard leave from benef',
@@ -208,8 +188,8 @@ class TestBenefit(TestPayslipBase):
self.assertEqual(calendar_leave.benefit_type_id, benef.benefit_type_id, "It should have the same benefit type")
def test_validate_conflict_benefit(self):
- start = self.to_datetime_tz('2015-11-01 09:00:00')
- end = self.to_datetime_tz('2015-11-01 13:00:00')
+ start = datetime(2015, 11, 1, 9, 0, 0)
+ end = datetime(2015, 11, 1, 13, 0, 0)
benef1 = self.env['hr.benefit'].create({
'name': '1',
'employee_id': self.richard_emp.id,
@@ -261,8 +241,8 @@ class TestBenefit(TestPayslipBase):
self.assertFalse(benef1.action_validate(), "It should not validate benefits without a type")
def test_approve_leave_benefit(self):
- start = self.to_datetime_tz('2015-11-01 09:00:00')
- end = self.to_datetime_tz('2015-11-03 13:00:00')
+ start = datetime(2015, 11, 1, 9, 0, 0)
+ end = datetime(2015, 11, 3, 13, 0, 0)
leave = self.env['hr.leave'].create({
'name': 'Doctor Appointment',
'employee_id': self.richard_emp.id,
@@ -283,13 +263,13 @@ class TestBenefit(TestPayslipBase):
leave.action_approve()
new_leave_benef = self.env['hr.benefit'].search([
- ('date_start', '=', Datetime.to_datetime('2015-11-01 09:00:00')),
- ('date_stop', '=', Datetime.to_datetime('2015-11-02 09:00:00')),
+ ('date_start', '=', Datetime.to_datetime(datetime(2015, 11, 1, 9, 0, 0))),
+ ('date_stop', '=', Datetime.to_datetime(datetime(2015, 11, 2, 9, 0, 0))),
('benefit_type_id.is_leave', '=', True)
])
new_benef = self.env['hr.benefit'].search([
- ('date_start', '=', Datetime.to_datetime('2015-11-02 09:00:01')),
+ ('date_start', '=', Datetime.to_datetime(datetime(2015, 11, 2, 9, 0, 1))),
('date_stop', '=', end),
('benefit_type_id.is_leave', '=', False)
])
@@ -300,8 +280,8 @@ class TestBenefit(TestPayslipBase):
self.assertTrue((new_benef | new_leave_benef).action_validate(), "It should be able to validate the benefits")
def test_refuse_leave_benefit(self):
- start = self.to_datetime_tz('2015-11-01 09:00:00')
- end = self.to_datetime_tz('2015-11-03 13:00:00')
+ start = datetime(2015, 11, 1, 9, 0, 0)
+ end = datetime(2015, 11, 3, 13, 0, 0)
leave = self.env['hr.leave'].create({
'name': 'Doctor Appointment',
'employee_id': self.richard_emp.id,
@@ -330,8 +310,8 @@ class TestBenefit(TestPayslipBase):
self.assertEqual(data['hours'], 168.0)
def test_time_extra_benefit(self):
- start = self.to_datetime_tz('2015-11-01 10:00:00')
- end = self.to_datetime_tz('2015-11-01 17:00:00')
+ start = datetime(2015, 11, 1, 10, 0, 0)
+ end = datetime(2015, 11, 1, 17, 0, 0)
benef = self.env['hr.benefit'].create({
'name': '1',
'employee_id': self.richard_emp.id,
@@ -346,8 +326,8 @@ class TestBenefit(TestPayslipBase):
def test_time_week_leave_benefit(self):
# /!\ this is a week day => it exists an calendar attendance at this time
- start = self.to_datetime_tz('2015-11-02 10:00:00', tz=pytz.utc)
- end = self.to_datetime_tz('2015-11-02 17:00:00', tz=pytz.utc)
+ start = datetime(2015, 11, 2, 10, 0, 0)
+ end = datetime(2015, 11, 2, 17, 0, 0)
leave_benef = self.env['hr.benefit'].create({
'name': '1leave',
'employee_id': self.richard_emp.id,
@@ -362,8 +342,8 @@ class TestBenefit(TestPayslipBase):
def test_time_weekend_leave_benefit(self):
# /!\ this is in the weekend => no calendar attendance at this time
- start = self.to_datetime_tz('2015-11-01 10:00:00', tz=pytz.utc)
- end = self.to_datetime_tz('2015-11-01 17:00:00', tz=pytz.utc)
+ start = datetime(2015, 11, 1, 10, 0, 0)
+ end = datetime(2015, 11, 1, 17, 0, 0)
leave_benef = self.env['hr.benefit'].create({
'name': '1leave',
'employee_id': self.richard_emp.id,
@@ -378,8 +358,8 @@ class TestBenefit(TestPayslipBase):
def test_payslip_generation_with_leave(self):
# /!\ this is a week day => it exists an calendar attendance at this time
- start = self.to_datetime_tz('2015-11-02 10:00:00', tz=pytz.utc)
- end = self.to_datetime_tz('2015-11-02 17:00:00', tz=pytz.utc)
+ start = datetime(2015, 11, 2, 10, 0, 0)
+ end = datetime(2015, 11, 2, 17, 0, 0)
leave_benef = self.env['hr.benefit'].create({
'name': '1leave',
'employee_id': self.richard_emp.id,
@@ -402,8 +382,8 @@ class TestBenefit(TestPayslipBase):
def test_payslip_generation_with_extra_work(self):
# /!\ this is in the weekend (Sunday) => no calendar attendance at this time
- start = self.to_datetime_tz('2015-11-01 10:00:00', tz=pytz.utc)
- end = self.to_datetime_tz('2015-11-01 17:00:00', tz=pytz.utc)
+ start = datetime(2015, 11, 1, 10, 0, 0)
+ end = datetime(2015, 11, 1, 17, 0, 0)
benef = self.env['hr.benefit'].create({
'name': 'Extra',
'employee_id': self.richard_emp.id,
diff --git a/addons/hr_payroll/tests/test_multi_contract.py b/addons/hr_payroll/tests/test_multi_contract.py
index 75f07871e45..a131b248178 100644
--- a/addons/hr_payroll/tests/test_multi_contract.py
+++ b/addons/hr_payroll/tests/test_multi_contract.py
@@ -74,7 +74,6 @@ class TestPayslipMultiContract(TestPayslipContractBase):
start = datetime.strptime('2015-11-05 07:00:00', '%Y-%m-%d %H:%M:%S')
end = datetime.strptime('2015-12-15 18:00:00', '%Y-%m-%d %H:%M:%S')
self.contract_cdi.write({'date_start': datetime.strptime('2015-12-30', '%Y-%m-%d').date()})
- print(self.contract_cdi.date_start, 'test')
# begins during contract, ends after contract
leave = self.create_leave(start, end)
leave.action_approve()
diff --git a/addons/hw_screen/static/src/js/worker.js b/addons/hw_screen/static/src/js/worker.js
index 9f181e650a6..4031e85cf52 100644
--- a/addons/hw_screen/static/src/js/worker.js
+++ b/addons/hw_screen/static/src/js/worker.js
@@ -35,8 +35,8 @@
$("head").append($parsedHTML.find(".resources").html());
}
- $(".container").html($parsedHTML.find('.pos-customer_facing_display').html());
- $(".container").attr('class', 'container').addClass($parsedHTML.find('.pos-customer_facing_display').attr('class'));
+ $(".container-fluid").html($parsedHTML.find('.pos-customer_facing_display').html());
+ $(".container-fluid").attr('class', 'container-fluid').addClass($parsedHTML.find('.pos-customer_facing_display').attr('class'));
var d = $('.pos_orderlines_list');
d.scrollTop(d.prop("scrollHeight"));
diff --git a/addons/hw_screen/views/pos_display.html b/addons/hw_screen/views/pos_display.html
index b36cfac24ba..202cb33e8ea 100644
--- a/addons/hw_screen/views/pos_display.html
+++ b/addons/hw_screen/views/pos_display.html
@@ -39,7 +39,7 @@
</style>
</head>
<body>
- <div class="container">
+ <div class="container-fluid">
<div class="text-center pt-5">
<img style="width: 150px;" src="/web/static/src/img/logo_inverse_white_206px.png">
<p class="mt-3" style="color: #fff;font-size: 30px;">IoTBox</p>
diff --git a/addons/l10n_fr_fec/wizard/account_fr_fec.py b/addons/l10n_fr_fec/wizard/account_fr_fec.py
index d91f4858c88..0a6459a0953 100644
--- a/addons/l10n_fr_fec/wizard/account_fr_fec.py
+++ b/addons/l10n_fr_fec/wizard/account_fr_fec.py
@@ -8,7 +8,7 @@ import io
from odoo import api, fields, models, _
from odoo.exceptions import Warning
-from odoo.tools import pycompat
+from odoo.tools import float_is_zero, pycompat
class AccountFrFec(models.TransientModel):
@@ -182,14 +182,16 @@ class AccountFrFec(models.TransientModel):
sql_query += '''
GROUP BY aml.account_id, aat.type
- HAVING sum(aml.balance) != 0
+ HAVING round(sum(aml.balance), %s) != 0
AND aat.type not in ('receivable', 'payable')
'''
formatted_date_from = fields.Date.to_string(self.date_from).replace('-', '')
date_from = self.date_from
formatted_date_year = date_from.year
+ currency_digits = 2
+
self._cr.execute(
- sql_query, (formatted_date_year, formatted_date_from, formatted_date_from, formatted_date_from, self.date_from, company.id))
+ sql_query, (formatted_date_year, formatted_date_from, formatted_date_from, formatted_date_from, self.date_from, company.id, currency_digits))
for row in self._cr.fetchall():
listrow = list(row)
@@ -202,6 +204,8 @@ class AccountFrFec(models.TransientModel):
current_amount = float(listrow[11].replace(',', '.')) - float(listrow[12].replace(',', '.'))
unaffected_earnings_amount = float(unaffected_earnings_results[11].replace(',', '.')) - float(unaffected_earnings_results[12].replace(',', '.'))
listrow_amount = current_amount + unaffected_earnings_amount
+ if float_is_zero(listrow_amount, precision_digits=currency_digits):
+ continue
if listrow_amount > 0:
listrow[11] = str(listrow_amount).replace('.', ',')
listrow[12] = '0,00'
@@ -269,11 +273,11 @@ class AccountFrFec(models.TransientModel):
sql_query += '''
GROUP BY aml.account_id, aat.type, rp.ref, rp.id
- HAVING sum(aml.balance) != 0
+ HAVING round(sum(aml.balance), %s) != 0
AND aat.type in ('receivable', 'payable')
'''
self._cr.execute(
- sql_query, (formatted_date_year, formatted_date_from, formatted_date_from, formatted_date_from, self.date_from, company.id))
+ sql_query, (formatted_date_year, formatted_date_from, formatted_date_from, formatted_date_from, self.date_from, company.id, currency_digits))
for row in self._cr.fetchall():
listrow = list(row)
diff --git a/addons/l10n_mx/data/account_tax_data.xml b/addons/l10n_mx/data/account_tax_data.xml
index 13f78068494..12555ba9ed4 100644
--- a/addons/l10n_mx/data/account_tax_data.xml
+++ b/addons/l10n_mx/data/account_tax_data.xml
@@ -208,6 +208,7 @@
<field name="tax_exigibility">on_payment</field>
<field name="cash_basis_account_id" ref="cuenta118_01"/>
<field name="tag_ids" eval="[(6,0,[ref('tag_diot_8')])]"/>
+ <field name="sequence" eval="10"/>
</record>
<record id="tax17" model="account.tax.template">
@@ -223,6 +224,7 @@
<field name="tax_group_id" ref="tax_group_iva_8"/>
<field name="tax_exigibility">on_payment</field>
<field name="cash_basis_account_id" ref="cuenta208_01"/>
+ <field name="sequence" eval="10"/>
</record>
</data>
</odoo>
diff --git a/addons/link_tracker/models/link_tracker.py b/addons/link_tracker/models/link_tracker.py
index 645171c8279..2e565a06691 100644
--- a/addons/link_tracker/models/link_tracker.py
+++ b/addons/link_tracker/models/link_tracker.py
@@ -185,11 +185,11 @@ class LinkTracker(models.Model):
@api.model
def recent_links(self, filter, limit):
if filter == 'newest':
- return self.search_read([], order='create_date DESC', limit=limit)
+ return self.search_read([], order='create_date DESC, id DESC', limit=limit)
elif filter == 'most-clicked':
return self.search_read([('count', '!=', 0)], order='count DESC', limit=limit)
elif filter == 'recently-used':
- return self.search_read([('count', '!=', 0)], order='write_date DESC', limit=limit)
+ return self.search_read([('count', '!=', 0)], order='write_date DESC, id DESC', limit=limit)
else:
return {'Error': "This filter doesn't exist."}
diff --git a/addons/mail/models/ir_attachment.py b/addons/mail/models/ir_attachment.py
index acc14b2b6f9..4330059c495 100644
--- a/addons/mail/models/ir_attachment.py
+++ b/addons/mail/models/ir_attachment.py
@@ -23,5 +23,5 @@ class IrAttachment(models.Model):
related_record = self.env[self.res_model].browse(self.res_id)
# message_main_attachment_id field can be empty, that's why we compare to False;
# we are just checking that it exists on the model before writing it
- if hasattr(related_record, 'message_main_attachment_id'):
+ if related_record and hasattr(related_record, 'message_main_attachment_id'):
related_record.message_main_attachment_id = self
diff --git a/addons/mrp/models/mrp_abstract_workorder.py b/addons/mrp/models/mrp_abstract_workorder.py
index 9d4667cf542..50f4935375c 100644
--- a/addons/mrp/models/mrp_abstract_workorder.py
+++ b/addons/mrp/models/mrp_abstract_workorder.py
@@ -197,6 +197,7 @@ class MrpAbstractWorkorder(models.AbstractModel):
move_line.product_uom_qty += self.qty_producing
move_line.qty_done += self.qty_producing
else:
+ location_dest_id = production_move.location_dest_id.get_putaway_strategy(self.product_id).id or production_move.location_dest_id.id
move_line.create({
'move_id': production_move.id,
'product_id': production_move.product_id.id,
@@ -205,7 +206,7 @@ class MrpAbstractWorkorder(models.AbstractModel):
'product_uom_id': self.product_uom_id.id,
'qty_done': self.qty_producing,
'location_id': production_move.location_id.id,
- 'location_dest_id': production_move.location_dest_id.id,
+ 'location_dest_id': location_dest_id,
})
else:
rounding = production_move.product_uom.rounding
diff --git a/addons/mrp/tests/test_stock.py b/addons/mrp/tests/test_stock.py
index da3db148b68..a83855a8303 100644
--- a/addons/mrp/tests/test_stock.py
+++ b/addons/mrp/tests/test_stock.py
@@ -7,6 +7,52 @@ from odoo.tests import Form
class TestWarehouse(common.TestMrpCommon):
+ def setUp(self):
+ super(TestWarehouse, self).setUp()
+
+ self.stock_location = self.env.ref('stock.stock_location_stock')
+ self.depot_location = self.env['stock.location'].create({
+ 'name': 'Depot',
+ 'usage': 'internal',
+ 'location_id': self.stock_location.id,
+ })
+ putaway = self.env['product.putaway'].create({
+ 'name': 'putaway stock->depot',
+ 'fixed_location_ids': [(0, 0, {
+ 'category_id': self.env.ref('product.product_category_all').id,
+ 'fixed_location_id': self.depot_location.id,
+ })]
+ })
+ self.stock_location.write({
+ 'putaway_strategy_id': putaway.id,
+ })
+
+ self.laptop = self.env.ref("product.product_product_25")
+ graphics_card = self.env.ref("product.product_product_24")
+ unit = self.env.ref("uom.product_uom_unit")
+ mrp_routing = self.env.ref("mrp.mrp_routing_0")
+
+ self.bom_laptop = self.env['mrp.bom'].create({
+ 'product_tmpl_id': self.laptop.product_tmpl_id.id,
+ 'product_qty': 1,
+ 'product_uom_id': unit.id,
+ 'bom_line_ids': [(0, 0, {
+ 'product_id': graphics_card.id,
+ 'product_qty': 1,
+ 'product_uom_id': unit.id
+ })],
+ 'routing_id': mrp_routing.id
+ })
+
+ def new_mo_laptop(self):
+ form = Form(self.env['mrp.production'])
+ form.product_id = self.laptop
+ form.product_qty = 1
+ form.bom_id = self.bom_laptop
+ p = form.save()
+ p.action_confirm()
+ p.action_assign()
+ return p
def test_manufacturing_route(self):
warehouse_1_stock_manager = self.warehouse_1.sudo(self.user_stock_manager)
@@ -103,6 +149,71 @@ class TestWarehouse(common.TestMrpCommon):
# scrap_move = production_3.move_raw_ids.filtered(lambda x: x.product_id == self.product_2 and x.scrapped)
# self.assertTrue(scrap_move, "There are no any scrap move created for production order.")
+ def test_putaway_after_manufacturing_1(self):
+ """ This test checks a manufactured product without tracking will go to
+ location defined in putaway strategy.
+ """
+ mo_laptop = self.new_mo_laptop()
+
+ mo_laptop.button_plan()
+ workorder = mo_laptop.workorder_ids[0]
+
+ workorder.button_start()
+ workorder.record_production()
+ mo_laptop.button_mark_done()
+
+ # We check if the laptop go in the depot and not in the stock
+ move = mo_laptop.move_finished_ids
+ location_dest = move.move_line_ids.location_dest_id
+ self.assertEqual(location_dest.id, self.depot_location.id)
+ self.assertNotEqual(location_dest.id, self.stock_location.id)
+
+ def test_putaway_after_manufacturing_2(self):
+ """ This test checks a tracked manufactured product will go to location
+ defined in putaway strategy.
+ """
+ self.laptop.tracking = 'serial'
+ mo_laptop = self.new_mo_laptop()
+
+ mo_laptop.button_plan()
+ workorder = mo_laptop.workorder_ids[0]
+
+ workorder.button_start()
+ serial = self.env['stock.production.lot'].create({'product_id': self.laptop.id})
+ workorder.final_lot_id = serial
+ workorder.record_production()
+ mo_laptop.button_mark_done()
+
+ # We check if the laptop go in the depot and not in the stock
+ move = mo_laptop.move_finished_ids
+ location_dest = move.move_line_ids.location_dest_id
+ self.assertEqual(location_dest.id, self.depot_location.id)
+ self.assertNotEqual(location_dest.id, self.stock_location.id)
+
+ def test_putaway_after_manufacturing_3(self):
+ """ This test checks a tracked manufactured product will go to location
+ defined in putaway strategy when the production is recorded with
+ product.produce wizard.
+ """
+ self.laptop.tracking = 'serial'
+ mo_laptop = self.new_mo_laptop()
+ serial = self.env['stock.production.lot'].create({'product_id': self.laptop.id})
+
+ product_produce = self.env['mrp.product.produce'].with_context({
+ 'active_id': mo_laptop.id,
+ 'active_ids': [mo_laptop.id],
+ }).create({
+ 'product_qty': 1.0,
+ 'lot_id': serial.id,
+ })
+ product_produce.do_produce()
+ mo_laptop.button_mark_done()
+
+ # We check if the laptop go in the depot and not in the stock
+ move = mo_laptop.move_finished_ids
+ location_dest = move.move_line_ids.location_dest_id
+ self.assertEqual(location_dest.id, self.depot_location.id)
+ self.assertNotEqual(location_dest.id, self.stock_location.id)
class TestKitPicking(common.TestMrpCommon):
def setUp(self):
diff --git a/addons/payment/models/payment_acquirer.py b/addons/payment/models/payment_acquirer.py
index 262273d76d1..0f2ce5d222a 100644
--- a/addons/payment/models/payment_acquirer.py
+++ b/addons/payment/models/payment_acquirer.py
@@ -355,6 +355,7 @@ class PaymentAcquirer(models.Model):
if values is None:
values = {}
+ values.setdefault('return_url', '/payment/process')
# reference and amount
values.setdefault('reference', reference)
amount = float_round(amount, 2)
@@ -446,7 +447,6 @@ class PaymentAcquirer(models.Model):
'context': self._context,
'type': values.get('type') or 'form',
})
- values.setdefault('return_url', False)
_logger.info('payment.acquirer.render: <%s> values rendered for form payment:\n%s', self.provider, pprint.pformat(values))
return self.view_template_id.render(values, engine='ir.qweb')
diff --git a/addons/payment/static/src/js/payment_processing.js b/addons/payment/static/src/js/payment_processing.js
index 3497297d665..4397bf134f1 100644
--- a/addons/payment/static/src/js/payment_processing.js
+++ b/addons/payment/static/src/js/payment_processing.js
@@ -81,14 +81,16 @@ odoo.define('payment.processing', function (require) {
'tx_cancel': [],
'tx_error': [],
};
+
+ if (transactions.length > 0 && transactions[0].acquirer_provider == 'transfer') {
+ window.location = transactions[0].return_url;
+ return;
+ }
+
// group the transaction according to their state
transactions.forEach(function (tx) {
var key = 'tx_' + tx.state;
if(key in render_values) {
- if (tx.acquirer_provider === 'transfer') {
- window.location = tx.return_url;
- return;
- }
render_values[key].push(tx);
}
});
diff --git a/addons/point_of_sale/models/pos_order.py b/addons/point_of_sale/models/pos_order.py
index 1101c9137c1..548126af642 100644
--- a/addons/point_of_sale/models/pos_order.py
+++ b/addons/point_of_sale/models/pos_order.py
@@ -895,6 +895,7 @@ class PosOrder(models.Model):
for pack_lot in pack_lots:
lot_id, qty = pack_lot['lot_id'], pack_lot['qty']
self.env['stock.move.line'].create({
+ 'picking_id': move.picking_id.id,
'move_id': move.id,
'product_id': move.product_id.id,
'product_uom_id': move.product_uom.id,
diff --git a/addons/point_of_sale/static/src/css/customer_facing_display.css b/addons/point_of_sale/static/src/css/customer_facing_display.css
index e8e97cf4c7e..2d572060342 100644
--- a/addons/point_of_sale/static/src/css/customer_facing_display.css
+++ b/addons/point_of_sale/static/src/css/customer_facing_display.css
@@ -35,6 +35,7 @@ body .pos-customer_facing_display {
font-weight: 300;
width: 100%;
height: 100%;
+ padding: 0;
-webkit-display: flex;
-moz-display: flex;
-ms-display: flex;
diff --git a/addons/point_of_sale/static/src/css/pos.css b/addons/point_of_sale/static/src/css/pos.css
index 8fefe02fa09..0e8fb74e92c 100644
--- a/addons/point_of_sale/static/src/css/pos.css
+++ b/addons/point_of_sale/static/src/css/pos.css
@@ -731,7 +731,7 @@ td {
border-top-right-radius: 4px;
}
.pos .numpad button {
- float: left;
+ float: left/*rtl:ignore*/; /* rtlcss forced to keep ltr */
height: 54px;
width: 54px;
font-weight: bold;
@@ -2321,6 +2321,7 @@ td {
margin-right: 3px;
}
.pos .popup-numpad {
+ direction: ltr/*rtl:ignore*/; /* rtlcss forced to keep ltr */
margin: 12px auto;
text-align: center;
width: 254px;
diff --git a/addons/point_of_sale/static/src/scss/customer_facing_display.scss b/addons/point_of_sale/static/src/scss/customer_facing_display.scss
index 766ac34cb1e..25e0a0bc324 100644
--- a/addons/point_of_sale/static/src/scss/customer_facing_display.scss
+++ b/addons/point_of_sale/static/src/scss/customer_facing_display.scss
@@ -95,6 +95,7 @@ body {
font-weight: 300;
width: 100%;
height: 100%;
+ padding: 0;
@include flex-display;
@include flex-direction(row);
diff --git a/addons/portal/wizard/portal_wizard.py b/addons/portal/wizard/portal_wizard.py
index 2f17441f451..8ac87a59ee6 100644
--- a/addons/portal/wizard/portal_wizard.py
+++ b/addons/portal/wizard/portal_wizard.py
@@ -87,7 +87,7 @@ class PortalWizardUser(models.TransientModel):
partners_error_empty |= wizard_user.partner_id
elif email in emails:
partners_error_emails |= wizard_user.partner_id
- user = self.env['res.users'].sudo().with_context(active_test=False).search([('login', '=', email)])
+ user = self.env['res.users'].sudo().with_context(active_test=False).search([('login', '=ilike', email)])
if user:
partners_error_user |= wizard_user.partner_id
emails.append(email)
diff --git a/addons/product/models/product_pricelist.py b/addons/product/models/product_pricelist.py
index 5f40c360d23..de1fd231b8f 100644
--- a/addons/product/models/product_pricelist.py
+++ b/addons/product/models/product_pricelist.py
@@ -308,6 +308,7 @@ class Pricelist(models.Model):
return pricelist.get_products_price(
list(zip(**products_by_qty_by_partner)))
+ # DEPRECATED (Not used anymore, see d39d583b2) -> Remove me in master (saas12.3)
def _get_partner_pricelist(self, partner_id, company_id=None):
""" Retrieve the applicable pricelist for a given partner in a given company.
@@ -317,34 +318,53 @@ class Pricelist(models.Model):
res = self._get_partner_pricelist_multi([partner_id], company_id)
return res[partner_id].id
+ def _get_partner_pricelist_multi_search_domain_hook(self):
+ return []
+
+ def _get_partner_pricelist_multi_filter_hook(self):
+ return self
+
def _get_partner_pricelist_multi(self, partner_ids, company_id=None):
""" Retrieve the applicable pricelist for given partners in a given company.
+ It will return the first found pricelist in this order:
+ First, the pricelist of the specific property (res_id set), this one
+ is created when saving a pricelist on the partner form view.
+ Else, it will return the pricelist of the partner country group
+ Else, it will return the generic property (res_id not set), this one
+ is created on the company creation.
+ Else, it will return the first available pricelist
+
:param company_id: if passed, used for looking up properties,
instead of current user's company
:return: a dict {partner_id: pricelist}
"""
- Partner = self.env['res.partner']
+ # `partner_ids` might be ID from inactive uers. We should use active_test
+ # as we will do a search() later (real case for website public user).
+ Partner = self.env['res.partner'].with_context(active_test=False)
+
Property = self.env['ir.property'].with_context(force_company=company_id or self.env.user.company_id.id)
Pricelist = self.env['product.pricelist']
+ pl_domain = self._get_partner_pricelist_multi_search_domain_hook()
- # retrieve values of property
+ # if no specific property, try to find a fitting pricelist
result = Property.get_multi('property_product_pricelist', Partner._name, partner_ids)
- remaining_partner_ids = [pid for pid, val in result.items() if not val]
+ remaining_partner_ids = [pid for pid, val in result.items() if not val or
+ not val._get_partner_pricelist_multi_filter_hook()]
if remaining_partner_ids:
# get fallback pricelist when no pricelist for a given country
pl_fallback = (
- Pricelist.search([('country_group_ids', '=', False)], limit=1) or
+ Pricelist.search(pl_domain + [('country_group_ids', '=', False)], limit=1) or
Property.get('property_product_pricelist', 'res.partner') or
- Pricelist.search([], limit=1)
+ Pricelist.search(pl_domain, limit=1)
)
# group partners by country, and find a pricelist for each country
domain = [('id', 'in', remaining_partner_ids)]
groups = Partner.read_group(domain, ['country_id'], ['country_id'])
for group in groups:
country_id = group['country_id'] and group['country_id'][0]
- pl = Pricelist.search([('country_group_ids.country_ids', '=', country_id)], limit=1)
+ pl = Pricelist.search(pl_domain + [('country_group_ids.country_ids', '=', country_id)], limit=1)
pl = pl or pl_fallback
for pid in Partner.search(group['__domain']).ids:
result[pid] = pl
diff --git a/addons/project/views/project_portal_templates.xml b/addons/project/views/project_portal_templates.xml
index db82de63fe8..14498944913 100644
--- a/addons/project/views/project_portal_templates.xml
+++ b/addons/project/views/project_portal_templates.xml
@@ -238,7 +238,7 @@
<div class="row">
<div t-attf-class="col {{'col-lg-6' if not task.description else 'col-lg-12'}}">
<ul class="list-group">
- <a class="list-group-item list-group-item-action d-flex align-items-center oe_attachments py-1 px-2" t-foreach='task.attachment_ids' t-as='attachment' t-attf-href="/web/content/#{attachment.id}" target="_blank">
+ <a class="list-group-item list-group-item-action d-flex align-items-center oe_attachments py-1 px-2" t-foreach='task.attachment_ids' t-as='attachment' t-attf-href="/web/content/#{attachment.id}" target="_blank" data-no-post-process="">
<div class='oe_attachment_embedded o_image o_image_small mr-2 mr-lg-3' t-att-title="attachment.name" t-att-data-mimetype="attachment.mimetype" t-attf-data-src="/web/image/#{attachment.id}/50x40"/>
<div class='oe_attachment_name text-truncate'><t t-esc='attachment.name'/></div>
</a>
diff --git a/addons/purchase/report/purchase_bill.py b/addons/purchase/report/purchase_bill.py
index a16ff44b60c..036309e8e29 100644
--- a/addons/purchase/report/purchase_bill.py
+++ b/addons/purchase/report/purchase_bill.py
@@ -30,7 +30,7 @@ class PurchaseBillUnion(models.Model):
id as vendor_bill_id, NULL as purchase_order_id
FROM account_invoice
WHERE
- type='in_invoice' and state in ('open','in_payment','paid','cancel')
+ type='in_invoice' and COALESCE(number, '') != ''
UNION
SELECT
-id, name, partner_ref, partner_id, date_order::date as date, amount_untaxed as amount, currency_id, company_id,
diff --git a/addons/sale_timesheet/models/sale_order.py b/addons/sale_timesheet/models/sale_order.py
index 75e7953e903..c76798bce10 100644
--- a/addons/sale_timesheet/models/sale_order.py
+++ b/addons/sale_timesheet/models/sale_order.py
@@ -51,7 +51,10 @@ class SaleOrder(models.Model):
def _action_confirm(self):
""" On SO confirmation, some lines should generate a task or a project. """
result = super(SaleOrder, self)._action_confirm()
- self.mapped('order_line').sudo().with_context(default_company_id=self.company_id.id)._timesheet_service_generation()
+ self.mapped('order_line').sudo().with_context(
+ default_company_id=self.company_id.id,
+ force_company=self.company_id.id,
+ )._timesheet_service_generation()
return result
@api.multi
diff --git a/addons/stock/models/stock_traceability.py b/addons/stock/models/stock_traceability.py
index 2a30571b539..b1345bed60f 100644
--- a/addons/stock/models/stock_traceability.py
+++ b/addons/stock/models/stock_traceability.py
@@ -81,10 +81,11 @@ class MrpStockReport(models.TransientModel):
res_model = ''
ref = ''
res_id = False
- if move_line.picking_id:
+ picking_id = move_line.picking_id or move_line.move_id.picking_id
+ if picking_id:
res_model = 'stock.picking'
- res_id = move_line.picking_id.id
- ref = move_line.picking_id.name
+ res_id = picking_id.id
+ ref = picking_id.name
elif move_line.move_id.inventory_id:
res_model = 'stock.inventory'
res_id = move_line.move_id.inventory_id.id
diff --git a/addons/web/static/lib/qweb/qweb2.js b/addons/web/static/lib/qweb/qweb2.js
index 72e65f985a8..5126138bc36 100644
--- a/addons/web/static/lib/qweb/qweb2.js
+++ b/addons/web/static/lib/qweb/qweb2.js
@@ -173,7 +173,7 @@ var QWeb2 = {
new_dict[as_first] = index === 0;
new_dict[as_last] = index + 1 === size;
new_dict[as_parity] = (index % 2 == 1 ? 'odd' : 'even');
- if (cur.constructor === Object) {
+ if (cur && cur.constructor === Object) {
this.extend(new_dict, cur);
}
new_dict[as] = cur;
diff --git a/addons/web/static/src/js/views/form/form_renderer.js b/addons/web/static/src/js/views/form/form_renderer.js
index ca26d7e90ad..a10e75f1944 100644
--- a/addons/web/static/src/js/views/form/form_renderer.js
+++ b/addons/web/static/src/js/views/form/form_renderer.js
@@ -370,7 +370,7 @@ var FormRenderer = BasicRenderer.extend({
var visible_buttons = buttons_partition[1];
// Get the unfolded buttons according to window size
- var nb_buttons = [2, 2, 4, 6][config.device.size_class] || 7;
+ var nb_buttons = this._renderButtonBoxNbButtons();
var unfolded_buttons = visible_buttons.slice(0, nb_buttons).concat(invisible_buttons);
// Get the folded buttons
@@ -411,6 +411,13 @@ var FormRenderer = BasicRenderer.extend({
return $result;
},
/**
+ * @private
+ * @returns {integer}
+ */
+ _renderButtonBoxNbButtons: function () {
+ return [2, 2, 4, 6][config.device.size_class] || 7;
+ },
+ /**
* @private
* @param {Object} node
* @returns {jQueryElement}
diff --git a/addons/web/static/src/js/views/pivot/pivot_model.js b/addons/web/static/src/js/views/pivot/pivot_model.js
index 88d0aee83b8..5758b906421 100644
--- a/addons/web/static/src/js/views/pivot/pivot_model.js
+++ b/addons/web/static/src/js/views/pivot/pivot_model.js
@@ -440,12 +440,10 @@ var PivotModel = AbstractModel.extend({
// if we don't have the key 'groupBy' in params. In that case,
// we want to have the full open state for the groupbys.
self._updateTree(old_row.root, self.data.main_row.root);
- self._updateMainGroupBys(old_row, self.data.main_row);
}
if (!('pivot_column_groupby' in (params.context || {}))) {
self._updateTree(old_col.root, self.data.main_col.root);
- self._updateMainGroupBys(old_col, self.data.main_col);
}
});
},
@@ -986,7 +984,8 @@ var PivotModel = AbstractModel.extend({
});
var index = 0;
- var rowGroupBys = !_.isEmpty(this.data.groupedBy) ? this.data.groupedBy : this.initialRowGroupBys;
+ var rowGroupBys = !_.isEmpty(this.data.groupedBy) ? this.data.groupedBy : this.initialRowGroupBys.slice();
+ this.data.groupedBy = rowGroupBys;
var colGroupBys = this.data.colGroupBys;
var dataPoint, row, col, attrs, cell_value;
var main_row_header, main_col_header;
@@ -1119,19 +1118,6 @@ var PivotModel = AbstractModel.extend({
}
},
/**
- * Updates the groupBys that the main[row | col] holds
- *
- * @private
- * @param {Object} old: The main abstract header before reload
- * @param {Object} main: The main abstract header after reload
- *
- */
- _updateMainGroupBys: function (old, main) {
- var new_groupby_length = this._getHeaderDepth(main.root) - 1;
- var new_groupby_list = old.root.groupbys.slice(0, new_groupby_length);
- main.root.groupbys = new_groupby_list;
- },
- /**
* @param {Object} old_tree
* @param {Object} new_tree
*/
diff --git a/addons/web/static/tests/views/pivot_tests.js b/addons/web/static/tests/views/pivot_tests.js
index ccbf24895dd..5dbc03e1a2b 100644
--- a/addons/web/static/tests/views/pivot_tests.js
+++ b/addons/web/static/tests/views/pivot_tests.js
@@ -1096,7 +1096,7 @@ QUnit.module('Views', {
pivot.destroy();
});
- QUnit.skip('Reload, group by columns, reload', function (assert) {
+ QUnit.test('Reload, group by columns, reload', function (assert) {
assert.expect(2);
var pivot = createView({
@@ -1118,7 +1118,7 @@ QUnit.module('Views', {
pivot_row_groupby: []};
// Check that column groupbys were not lost
- assert.deepEqual(pivot.getContext(), expectedContext,
+ assert.deepEqual(pivot.getOwnedQueryParams(), {context: expectedContext},
'Column groupby not lost after first reload');
// Set a column groupby
@@ -1132,12 +1132,44 @@ QUnit.module('Views', {
pivot_measures: ['__count'],
pivot_row_groupby: []};
- assert.deepEqual(pivot.getContext(), expectedContext,
+ assert.deepEqual(pivot.getOwnedQueryParams(), {context: expectedContext},
'Column groupby not lost after second reload');
pivot.destroy();
});
+ QUnit.test('Empty results keep groupbys', function (assert) {
+ assert.expect(2);
+
+ var pivot = createView({
+ View: PivotView,
+ model: "partner",
+ data: this.data,
+ arch: '<pivot/>',
+ });
+
+ // Set a column groupby
+ pivot.$('thead .o_pivot_header_cell_closed').click();
+ pivot.$('.o_field_selection .dropdown-item[data-field=customer]').click();
+
+ // Set a domain for empty results
+ pivot.update({domain: [['id', '=', false]]});
+
+ var expectedContext = {pivot_column_groupby: ['customer'],
+ pivot_measures: ['__count'],
+ pivot_row_groupby: []};
+ assert.deepEqual(pivot.getOwnedQueryParams(), {context: expectedContext},
+ 'Column groupby not lost after empty results');
+
+ // Set a domain for not empty results
+ pivot.update({domain: [['product_id', '=', 37]]});
+
+ assert.deepEqual(pivot.getOwnedQueryParams(), {context: expectedContext},
+ 'Column groupby not lost after reload after empty results');
+
+ pivot.destroy();
+ });
+
QUnit.test('correctly uses pivot_ keys from the context', function (assert) {
assert.expect(7);
diff --git a/addons/web_editor/static/src/js/wysiwyg_snippets/snippets.options.js b/addons/web_editor/static/src/js/wysiwyg_snippets/snippets.options.js
index 0d2bd5a6e79..2f009feb075 100644
--- a/addons/web_editor/static/src/js/wysiwyg_snippets/snippets.options.js
+++ b/addons/web_editor/static/src/js/wysiwyg_snippets/snippets.options.js
@@ -132,7 +132,7 @@ var SnippetOption = Widget.extend({
* @param {jQuery} $opt - the related DOMElement option
*/
selectClass: function (previewMode, value, $opt) {
- var $group = $opt && $opt.closest('.dropdown-submenu');
+ var $group = $opt && $opt.parents('.dropdown-submenu').last();
if (!$group || !$group.length) {
$group = this.$el;
}
@@ -295,13 +295,29 @@ var SnippetOption = Widget.extend({
})
.addClass('active');
- _processSelectClassElements(this.$el);
+ // Get submenus which are not inside submenus
+ var $submenus = this.$el.find('.dropdown-submenu')
+ .addBack('.dropdown-submenu')
+ .not('.dropdown-submenu .dropdown-submenu');
- function _processSelectClassElements($el) {
+ // Add unique active class for each submenu active item
+ _.each($submenus, function (submenu) {
+ var $elements = _getSelectClassElements($(submenu));
+ _processSelectClassElements($elements);
+ });
+
+ // Add unique active class for out-of-submenu active item
+ var $externalElements = _getSelectClassElements(this.$el)
+ .not('.dropdown-submenu *, .dropdown-submenu');
+ _processSelectClassElements($externalElements);
+
+ function _getSelectClassElements($el) {
+ return $el.find('[data-select-class]')
+ .addBack('[data-select-class]');
+ }
+ function _processSelectClassElements($elements) {
var maxNbClasses = -1;
- $el.find('[data-select-class]')
- .addBack('[data-select-class]')
- .removeClass('active')
+ $elements.removeClass('active')
.filter(function () {
var className = $(this).data('selectClass');
var nbClasses = className ? className.split(' ').length : 0;
diff --git a/addons/website/models/ir_http.py b/addons/website/models/ir_http.py
index e7c805a60bd..b5809926cdc 100644
--- a/addons/website/models/ir_http.py
+++ b/addons/website/models/ir_http.py
@@ -42,6 +42,23 @@ def sitemap_qs2dom(qs, route, field='name'):
return dom
+def get_request_website():
+ """ Return the website set on `request` if called in a frontend context
+ (website=True on route).
+ This method can typically be used to check if we are in the frontend.
+
+ This method is easy to mock during python tests to simulate frontend
+ context, rather than mocking every method accessing request.website.
+
+ Don't import directly the method or it won't be mocked during tests, do:
+ ```
+ from odoo.addons.website.models import ir_http
+ my_var = ir_http.get_request_website()
+ ```
+ """
+ return request and getattr(request, 'website', False) or False
+
+
class Http(models.AbstractModel):
_inherit = 'ir.http'
diff --git a/addons/website/models/ir_rule.py b/addons/website/models/ir_rule.py
index ba5e07128ee..a11ddef1e53 100644
--- a/addons/website/models/ir_rule.py
+++ b/addons/website/models/ir_rule.py
@@ -1,5 +1,6 @@
# coding: utf-8
from odoo import api, models
+from odoo.addons.website.models import ir_http
class IrRule(models.Model):
@@ -8,7 +9,14 @@ class IrRule(models.Model):
@api.model
def _eval_context(self):
res = super(IrRule, self)._eval_context()
- res['website_id'] = self.env['website'].get_current_website().id
+
+ # We need is_frontend to avoid showing website's company items in backend
+ # (that could be different than current company). We can't use
+ # `get_current_website(falback=False)` as it could also return a website
+ # in backend (if domain set & match)..
+ is_frontend = ir_http.get_request_website()
+ Website = self.env['website']
+ res['website'] = is_frontend and Website.get_current_website() or Website
return res
def _compute_domain_keys(self):
diff --git a/addons/website/static/src/js/editor/snippets.options.js b/addons/website/static/src/js/editor/snippets.options.js
index f51dda964db..078bccc9f42 100644
--- a/addons/website/static/src/js/editor/snippets.options.js
+++ b/addons/website/static/src/js/editor/snippets.options.js
@@ -642,11 +642,11 @@ var FacebookPageDialog = weWidgets.Dialog.extend({
*/
_renderPreview: function () {
var self = this;
- var match = this.fbData.href.match(/^(?:https?:\/\/)?(?:www\.)?(?:fb|facebook)\.com\/(\w+)/);
+ var match = this.fbData.href.match(/^(?:https?:\/\/)?(?:www\.)?(?:fb|facebook)\.com\/(?:([\w.]+)|[^/?#]+-([0-9]{15,16}))(?:$|[\/?# ])/);
if (match) {
// Check if the page exists on Facebook or not
$.ajax({
- url: 'https://graph.facebook.com/' + match[1] + '/picture',
+ url: 'https://graph.facebook.com/' + (match[2] || match[1]) + '/picture',
statusCode: {
200: function () {
self._toggleWarning(true);
diff --git a/addons/website/views/website_views.xml b/addons/website/views/website_views.xml
index 5a067e59bcf..a8e69029094 100644
--- a/addons/website/views/website_views.xml
+++ b/addons/website/views/website_views.xml
@@ -13,6 +13,7 @@
<field name="type">ir.actions.act_window</field>
<field name="res_model">ir.module.module</field>
<field name="view_mode">kanban,tree,form</field>
+ <field name="domain">['!', ('name', '=like', 'theme_%')]</field>
<field name="context" eval="{'search_default_category_id': ref('base.module_category_website')}"/>
</record>
diff --git a/addons/website_blog/static/src/js/website_blog.js b/addons/website_blog/static/src/js/website_blog.js
index 9d2af1a3bbc..14a760525e7 100644
--- a/addons/website_blog/static/src/js/website_blog.js
+++ b/addons/website_blog/static/src/js/website_blog.js
@@ -98,7 +98,7 @@ sAnimations.registry.websiteBlog = sAnimations.Class.extend({
url = 'https://plus.google.com/share?url=' + window.location.href;
}
} else {
- var blogPost = $element.parents('[name="blogPost"]');
+ var blogPost = $element.parents('[name="blog_post"]');
var blogPostTitle = blogPost.find('.o_blog_post_title').html() || '';
var blogArticleLink = blogPost.find('.o_blog_post_title').parent('a').attr('href');
if ($element.hasClass('o_twitter')) {
diff --git a/addons/website_blog/views/website_blog_templates.xml b/addons/website_blog/views/website_blog_templates.xml
index 8e92cab712e..8c5724945d7 100644
--- a/addons/website_blog/views/website_blog_templates.xml
+++ b/addons/website_blog/views/website_blog_templates.xml
@@ -207,7 +207,7 @@
<template id="opt_blog_post_grid_layout" name="Grid view"
customize_show="True" active="False" inherit_id="website_blog.blog_post_short">
<xpath expr="//div[@id='main_column']" position="attributes">
- <attribute name="class" separator=" " add="d-flex" />
+ <attribute name="class" separator=" " add="d-flex flex-wrap" />
</xpath>
<xpath expr="//div[@name='blog_post']" position="attributes">
<attribute name="class" add="col-md-5 o_grid" separator=" "/>
diff --git a/addons/website_event/controllers/main.py b/addons/website_event/controllers/main.py
index 1174f91d40e..0280dbd71c7 100644
--- a/addons/website_event/controllers/main.py
+++ b/addons/website_event/controllers/main.py
@@ -181,7 +181,10 @@ class WebsiteEventController(http.Controller):
def event_register(self, event, **post):
if not event.can_access_from_current_website():
raise werkzeug.exceptions.NotFound()
-
+ if not request.context.get('pricelist'):
+ pricelist = request.website.get_current_pricelist()
+ if pricelist:
+ event = event.with_context(pricelist=pricelist.id)
values = {
'event': event,
'main_object': event,
diff --git a/addons/website_links/static/src/js/test_ui_flow.js b/addons/website_links/static/src/js/test_ui_flow.js
index 4d8c7def0f9..584fc38c65d 100644
--- a/addons/website_links/static/src/js/test_ui_flow.js
+++ b/addons/website_links/static/src/js/test_ui_flow.js
@@ -53,8 +53,12 @@ tour.register('website_links_tour', {
},
// 3. Check that counter got incremented and charts are correctly displayed
{
+ content: "filter recently used links",
+ trigger: '#filter-recently-used-links',
+ },
+ {
content: "visit link stats page",
- trigger: '#o_website_links_recent_links a:containsExact("Stats"):first()',
+ trigger: '#o_website_links_recent_links a:containsExact("Stats"):first',
},
{
content: "check click number and ensure graphs are initialized",
diff --git a/addons/website_links/static/src/js/website_links_charts.js b/addons/website_links/static/src/js/website_links_charts.js
index bd2e3ba2747..64da6aa6388 100644
--- a/addons/website_links/static/src/js/website_links_charts.js
+++ b/addons/website_links/static/src/js/website_links_charts.js
@@ -183,6 +183,7 @@ sAnimations.registry.websiteLinksCharts = sAnimations.Class.extend({
$('#all_time_charts').prepend(_t("There is no data to show"));
$('#last_month_charts').prepend(_t("There is no data to show"));
$('#last_week_charts').prepend(_t("There is no data to show"));
+ return;
}
var formattedClicksByDay = {};
diff --git a/addons/website_links/tests/test_ui.py b/addons/website_links/tests/test_ui.py
index 58a697ef7a1..6a8e317eab1 100644
--- a/addons/website_links/tests/test_ui.py
+++ b/addons/website_links/tests/test_ui.py
@@ -1,13 +1,11 @@
# Part of Odoo. See LICENSE file for full copyright and licensing details.
import odoo.tests
-import unittest
@odoo.tests.common.tagged('post_install', '-at_install')
class TestUi(odoo.tests.HttpCase):
- @unittest.skip("Race condition on runbot or on local with Docker. Merging the test skipped for history purpose as the tour has been reviewed.")
def test_01_test_ui(self):
self.env['link.tracker'].create({
'campaign_id': 2,
diff --git a/addons/website_links/views/website_links_template.xml b/addons/website_links/views/website_links_template.xml
index aca362bc40c..626ec232e53 100644
--- a/addons/website_links/views/website_links_template.xml
+++ b/addons/website_links/views/website_links_template.xml
@@ -87,7 +87,7 @@
</div>
<h2 class="o_page_header">Your tracked links
- <small class="float-right d-none d-md-block mt16" id="filters">
+ <small class="float-right d-none d-md-block" id="filters">
<ul class="nav nav-tabs nav-tabs-inline graph-tabs" role="tablist">
<li class="nav-item"><a aria-controls="filter-newest-links" href="#" class="nav-link active" id="filter-newest-links" role="tab" data-toggle="tab">Newest</a></li>
<li class="nav-item"><a aria-controls="filter-most-clicked-links" href="#" class="nav-link" id="filter-most-clicked-links" role="tab" data-toggle="tab">Most Clicked</a></li>
diff --git a/addons/website_sale/__init__.py b/addons/website_sale/__init__.py
index 5e8764bb37f..03800bab040 100644
--- a/addons/website_sale/__init__.py
+++ b/addons/website_sale/__init__.py
@@ -1,7 +1,19 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
-
+from odoo import api, SUPERUSER_ID
from . import controllers
from . import models
from . import wizard
from . import report
+
+
+def uninstall_hook(cr, registry):
+ ''' Need to reenable the `product` pricelist multi-company rule that were
+ disabled to be 'overriden' for multi-website purpose
+ '''
+ env = api.Environment(cr, SUPERUSER_ID, {})
+ pl_rule = env.ref('product.product_pricelist_comp_rule', raise_if_not_found=False)
+ pl_item_rule = env.ref('product.product_pricelist_item_comp_rule', raise_if_not_found=False)
+ multi_company_rules = pl_rule or env['ir.rule']
+ multi_company_rules += pl_item_rule or env['ir.rule']
+ multi_company_rules.write({'active': True})
diff --git a/addons/website_sale/__manifest__.py b/addons/website_sale/__manifest__.py
index 91ce59ec5eb..b07dc32747b 100644
--- a/addons/website_sale/__manifest__.py
+++ b/addons/website_sale/__manifest__.py
@@ -30,4 +30,5 @@
'qweb': ['static/src/xml/*.xml'],
'installable': True,
'application': True,
+ 'uninstall_hook': 'uninstall_hook',
}
diff --git a/addons/website_sale/data/data.xml b/addons/website_sale/data/data.xml
index 4c56e978edb..7d70a0b45eb 100644
--- a/addons/website_sale/data/data.xml
+++ b/addons/website_sale/data/data.xml
@@ -37,7 +37,7 @@
<record model="product.pricelist" id="product.list0">
<field name="selectable" eval="False" />
- <field name="website_id" ref="website.default_website" />
+ <field name="website_id" eval="False"/>
</record>
</data>
<data>
diff --git a/addons/website_sale/data/demo.xml b/addons/website_sale/data/demo.xml
index 293e1563e12..49b94a1701b 100644
--- a/addons/website_sale/data/demo.xml
+++ b/addons/website_sale/data/demo.xml
@@ -224,7 +224,6 @@
<record model="product.pricelist" id="product.list0">
<field name="selectable" eval="True" />
- <field name="website_id" ref="website.default_website" />
<field name="sequence">3</field>
<field name="currency_id" ref="base.USD"/>
</record>
diff --git a/addons/website_sale/models/product.py b/addons/website_sale/models/product.py
index c1086108f73..54eb4bce462 100644
--- a/addons/website_sale/models/product.py
+++ b/addons/website_sale/models/product.py
@@ -3,6 +3,7 @@
from odoo import api, fields, models, tools, _
from odoo.addons import decimal_precision as dp
+from odoo.addons.website.models import ir_http
from odoo.tools.translate import html_translate
from odoo.osv import expression
@@ -19,14 +20,17 @@ class ProductPricelist(models.Model):
_inherit = "product.pricelist"
def _default_website(self):
- return self.env['website'].search([], limit=1)
+ """ Find the first company's website, if there is one. """
+ company_id = self.env.user.company_id.id
+ domain = [('company_id', '=', company_id)]
+ return self.env['website'].search(domain, limit=1)
- website_id = fields.Many2one('website', string="website", default=_default_website)
+ website_id = fields.Many2one('website', string="Website", default=_default_website)
code = fields.Char(string='E-commerce Promotional Code', groups="base.group_user")
selectable = fields.Boolean(help="Allow the end user to choose this price list")
def clear_cache(self):
- # website._get_pl() is cached to avoid to recompute at each request the
+ # website._get_pl_partner_order() is cached to avoid to recompute at each request the
# list of available pricelists. So, we need to invalidate the cache when
# we change the config of website price list to force to recompute.
website = self.env['website']
@@ -50,6 +54,56 @@ class ProductPricelist(models.Model):
self.clear_cache()
return res
+ def _get_partner_pricelist_multi_search_domain_hook(self):
+ domain = super(ProductPricelist, self)._get_partner_pricelist_multi_search_domain_hook()
+ website = ir_http.get_request_website()
+ if website:
+ domain += self._get_website_pricelists_domain(website.id)
+ return domain
+
+ def _get_partner_pricelist_multi_filter_hook(self):
+ res = super(ProductPricelist, self)._get_partner_pricelist_multi_filter_hook()
+ website = ir_http.get_request_website()
+ if website:
+ res = res.filtered(lambda pl: pl._is_available_on_website(website.id))
+ return res
+
+ @api.multi
+ def _is_available_on_website(self, website_id):
+ """ To be able to be used on a website, a pricelist should either:
+ - Have its `website_id` set to current website (specific pricelist).
+ - Have no `website_id` set and should be `selectable` (generic pricelist)
+ or should have a `code` (generic promotion).
+
+ Note: A pricelist without a website_id, not selectable and without a
+ code is a backend pricelist.
+
+ Change in this method should be reflected in `_get_website_pricelists_domain`.
+ """
+ self.ensure_one()
+ return self.website_id.id == website_id or (not self.website_id and (self.selectable or self.code))
+
+ def _get_website_pricelists_domain(self, website_id):
+ ''' Check above `_is_available_on_website` for explanation.
+ Change in this method should be reflected in `_is_available_on_website`.
+ '''
+ return [
+ '|', ('website_id', '=', website_id),
+ '&', ('website_id', '=', False),
+ '|', ('selectable', '=', True), ('code', '!=', False),
+ ]
+
+ def _get_partner_pricelist_multi(self, partner_ids, company_id=None):
+ ''' If `property_product_pricelist` is read from website, we should use
+ the website's company and not the user's one.
+ Passing a `company_id` to super will avoid using the current user's
+ company.
+ '''
+ website = ir_http.get_request_website()
+ if not company_id and website:
+ company_id = website.company_id.id
+ return super(ProductPricelist, self)._get_partner_pricelist_multi(partner_ids, company_id)
+
class ProductPublicCategory(models.Model):
_name = "product.public.category"
diff --git a/addons/website_sale/models/res_partner.py b/addons/website_sale/models/res_partner.py
index 8a9980240c7..7bfa8911180 100644
--- a/addons/website_sale/models/res_partner.py
+++ b/addons/website_sale/models/res_partner.py
@@ -2,7 +2,7 @@
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import api, fields, models
-from odoo.http import request
+from odoo.addons.website.models import ir_http
class ResPartner(models.Model):
@@ -16,10 +16,11 @@ class ResPartner(models.Model):
for partner in self:
is_public = any([u._is_public()
for u in partner.with_context(active_test=False).user_ids])
- if request and hasattr(request, 'website') and not is_public:
+ website = ir_http.get_request_website()
+ if website and not is_public:
partner.last_website_so_id = SaleOrder.search([
('partner_id', '=', partner.id),
- ('website_id', '=', request.website.id),
+ ('website_id', '=', website.id),
('state', '=', 'draft'),
], order='write_date desc', limit=1)
else:
diff --git a/addons/website_sale/models/website.py b/addons/website_sale/models/website.py
index f649bf020f3..6344a0bdd87 100644
--- a/addons/website_sale/models/website.py
+++ b/addons/website_sale/models/website.py
@@ -6,6 +6,7 @@ import logging
from odoo import api, fields, models, tools
from odoo.http import request
+from odoo.addons.website.models import ir_http
_logger = logging.getLogger(__name__)
@@ -41,7 +42,12 @@ class Website(models.Model):
@api.one
def _compute_pricelist_ids(self):
- self.pricelist_ids = self.env["product.pricelist"].search([("website_id", "=", self.id)])
+ """ Return the pricelists that can be used directly or indirectly on
+ the website.
+ """
+ Pricelist = self.env["product.pricelist"]
+ domain = Pricelist._get_website_pricelists_domain(self.id)
+ self.pricelist_ids = Pricelist.search(domain)
@api.multi
def _compute_pricelist_id(self):
@@ -64,57 +70,77 @@ class Website(models.Model):
:param int order_pl: the current cart pricelist
:returns: list of pricelist ids
"""
+ def _check_show_visible(pl):
+ """ If `show_visible` is True, we will only show the pricelist if
+ one of this condition is met:
+ - The pricelist is `selectable`.
+ - The pricelist is either the currently used pricelist or the
+ current cart pricelist, we should consider it as available even if
+ it might not be website compliant (eg: it is not selectable anymore,
+ it is a backend pricelist, it is not active anymore..).
+ """
+ return (not show_visible or pl.selectable or pl.id in (current_pl, order_pl))
+
+ # Note: 1. pricelists from all_pl are already website compliant (went through
+ # `_get_website_pricelists_domain`)
+ # 2. do not read `property_product_pricelist` here as `_get_pl_partner_order`
+ # is cached and the result of this method will be impacted by that field value.
+ # Pass it through `partner_pl` parameter instead to invalidate the cache.
+
+ # If there is a GeoIP country, find a pricelist for it
+ self.ensure_one()
pricelists = self.env['product.pricelist']
if country_code:
for cgroup in self.env['res.country.group'].search([('country_ids.code', '=', country_code)]):
- for group_pricelists in cgroup.pricelist_ids:
- if not show_visible or group_pricelists.selectable or group_pricelists.id in (current_pl, order_pl):
- pricelists |= group_pricelists
+ pricelists |= cgroup.pricelist_ids.filtered(
+ lambda pl: pl._is_available_on_website(self.id) and _check_show_visible(pl)
+ )
- partner = self.env.user.partner_id
- is_public = self.user_id.id == self.env.user.id
- if not is_public and (not pricelists or (partner_pl or partner.property_product_pricelist.id) != website_pl):
- if partner.property_product_pricelist.website_id:
- pricelists |= partner.property_product_pricelist
+ # no GeoIP or no pricelist for this country
+ if not country_code or not pricelists:
+ pricelists |= all_pl.filtered(lambda pl: _check_show_visible(pl))
- if not pricelists: # no pricelist for this country, or no GeoIP
- pricelists |= all_pl.filtered(lambda pl: not show_visible or pl.selectable or pl.id in (current_pl, order_pl))
- if not show_visible and not country_code:
- pricelists |= all_pl.filtered(lambda pl: pl.sudo().code)
+ # if logged in, add partner pl (which is `property_product_pricelist`, might not be website compliant)
+ is_public = self.user_id.id == self.env.user.id
+ if not is_public:
+ pricelists |= pricelists.browse(partner_pl).filtered(lambda pl: pl._is_available_on_website(self.id) and _check_show_visible(pl))
# This method is cached, must not return records! See also #8795
return pricelists.ids
+ # DEPRECATED (Not used anymore) -> Remove me in master (saas12.3)
def _get_pl(self, country_code, show_visible, website_pl, current_pl, all_pl):
pl_ids = self._get_pl_partner_order(country_code, show_visible, website_pl, current_pl, all_pl)
return self.env['product.pricelist'].browse(pl_ids)
- def get_pricelist_available(self, show_visible=False):
-
+ def _get_pricelist_available(self, req, show_visible=False):
""" Return the list of pricelists that can be used on website for the current user.
Country restrictions will be detected with GeoIP (if installed).
:param bool show_visible: if True, we don't display pricelist where selectable is False (Eg: Code promo)
:returns: pricelist recordset
"""
- website = request and hasattr(request, 'website') and request.website or None
+ website = ir_http.get_request_website()
if not website:
if self.env.context.get('website_id'):
website = self.browse(self.env.context['website_id'])
else:
# In the weird case we are coming from the backend (https://github.com/odoo/odoo/issues/20245)
website = len(self) == 1 and self or self.search([], limit=1)
- isocountry = request and request.session.geoip and request.session.geoip.get('country_code') or False
+ isocountry = req and req.session.geoip and req.session.geoip.get('country_code') or False
partner = self.env.user.partner_id
last_order_pl = partner.last_website_so_id.pricelist_id
- partner_pl = partner.property_product_pricelist
+ partner_pl = partner.sudo(user=self.env.user).property_product_pricelist
pricelists = website._get_pl_partner_order(isocountry, show_visible,
website.user_id.sudo().partner_id.property_product_pricelist.id,
- request and request.session.get('website_sale_current_pl') or None,
+ req and req.session.get('website_sale_current_pl') or None,
website.pricelist_ids,
partner_pl=partner_pl and partner_pl.id or None,
order_pl=last_order_pl and last_order_pl.id or None)
return self.env['product.pricelist'].browse(pricelists)
+ def get_pricelist_available(self, show_visible=False):
+ return self._get_pricelist_available(request, show_visible)
+
def is_pricelist_available(self, pl_id):
""" Return a boolean to specify if a specific pricelist can be manually set on the website.
Warning: It check only if pricelist is in the 'selectable' pricelists or the current pricelist.
diff --git a/addons/website_sale/security/website_sale.xml b/addons/website_sale/security/website_sale.xml
index 5d73c4d38b7..0af26e6d7d7 100644
--- a/addons/website_sale/security/website_sale.xml
+++ b/addons/website_sale/security/website_sale.xml
@@ -52,6 +52,31 @@
<field name="implied_ids" eval="[(4, ref('sale.group_delivery_invoice_address'))]"/>
</record>
-
+ <!--
+ Multi-company/Multi-website compliant:
+ We can't add a condition on domain_force without losing `product`
+ ir.rule domain_force. It is better to disabled them to be able to
+ reenable them on `website_sale` uninstall.
+ Don't override domain_force or we will need to hardcode the original
+ domain in `uninstall_hook` rather than just reenabling records.
+ -->
+ <record id="product.product_pricelist_comp_rule" model="ir.rule">
+ <field name="active" eval="False"/>
+ </record>
+ <record id="product.product_pricelist_item_comp_rule" model="ir.rule">
+ <field name="active" eval="False"/>
+ </record>
+ <record id="product_pricelist_comp_rule" model="ir.rule">
+ <field name="name">product pricelist company rule</field>
+ <field name="model_id" ref="product.model_product_pricelist"/>
+ <field name="global" eval="True"/>
+ <field name="domain_force">[('company_id','in',(False,user.company_id.id,website.company_id.id))]</field>
+ </record>
+ <record id="product_pricelist_item_comp_rule" model="ir.rule">
+ <field name="name">product pricelist item company rule</field>
+ <field name="model_id" ref="product.model_product_pricelist_item"/>
+ <field name="global" eval="True"/>
+ <field name="domain_force">[('company_id','in',(False,user.company_id.id,website.company_id.id))]</field>
+ </record>
</odoo>
diff --git a/addons/website_sale/tests/test_website_sale_pricelist.py b/addons/website_sale/tests/test_website_sale_pricelist.py
index a9a5c4981b5..eb3b9d5d1f6 100644
--- a/addons/website_sale/tests/test_website_sale_pricelist.py
+++ b/addons/website_sale/tests/test_website_sale_pricelist.py
@@ -4,7 +4,25 @@ try:
from unittest.mock import patch
except ImportError:
from mock import patch
-from odoo.tests.common import TransactionCase
+from odoo.tests.common import HttpCase, TransactionCase
+
+''' /!\/!\
+Calling `get_pricelist_available` after setting `property_product_pricelist` on
+a partner will not work as expected. That field will change the output of
+`get_pricelist_available` but modifying it will not invalidate the cache.
+Thus, tests should not do:
+
+ self.env.user.partner_id.property_product_pricelist = my_pricelist
+ pls = self.get_pricelist_available()
+ self.assertEqual(...)
+ self.env.user.partner_id.property_product_pricelist = another_pricelist
+ pls = self.get_pricelist_available()
+ self.assertEqual(...)
+
+as `_get_pl_partner_order` cache won't be invalidate between the calls, output
+won't be the one expected and tests will actually not test anything.
+Try to keep one call to `get_pricelist_available` by test method.
+'''
class TestWebsitePriceList(TransactionCase):
@@ -47,14 +65,14 @@ class TestWebsitePriceList(TransactionCase):
self.addCleanup(patcher.stop)
def get_pl(self, show, current_pl, country):
- pls = self.website._get_pl(
+ pl_ids = self.website._get_pl_partner_order(
country,
show,
self.website.pricelist_id.id,
current_pl,
self.website.pricelist_ids
)
- return pls
+ return self.env['product.pricelist'].browse(pl_ids)
def test_get_pricelist_available_show(self):
show = True
@@ -125,3 +143,291 @@ class TestWebsitePriceList(TransactionCase):
pls = self.get_pl(show, current_pl, country)
self.assertEquals(len(set(pls.mapped('name')) & set(result)), len(pls), 'Test failed for %s (%s %s vs %s %s)'
% (country, len(pls), pls.mapped('name'), len(result), result))
+
+
+def simulate_frontend_context(self, website_id=1):
+ # Mock this method will be enough to simulate frontend context in most methods
+ def get_request_website():
+ return self.env['website'].browse(website_id)
+ patcher = patch('odoo.addons.website.models.ir_http.get_request_website', wraps=get_request_website)
+ patcher.start()
+ self.addCleanup(patcher.stop)
+
+
+class DotDict(dict):
+ """dot.notation access to dictionary attributes"""
+ def __getattr__(*args):
+ val = dict.get(*args)
+ return DotDict(val) if type(val) is dict else val
+
+
+class TestWebsitePriceListAvailable(TransactionCase):
+ # This is enough to avoid a mock (request.session/website do not exist during test)
+ def get_pricelist_available(self, show_visible=False, website_id=1, country_code=None, website_sale_current_pl=None):
+ request = DotDict({
+ 'website': self.env['website'].browse(website_id),
+ 'session': {
+ 'geoip': {
+ 'country_code': country_code,
+ },
+ 'website_sale_current_pl': website_sale_current_pl,
+ },
+ })
+ return self.env['website']._get_pricelist_available(request, show_visible)
+
+ def setUp(self):
+ super(TestWebsitePriceListAvailable, self).setUp()
+ Pricelist = self.env['product.pricelist']
+ Website = self.env['website']
+
+ # Set up 2 websites
+ self.website = Website.browse(1)
+ self.website2 = Website.create({'name': 'Website 2'})
+
+ # Remove existing pricelists and create new ones
+ Pricelist.search([]).write({'active': False})
+ self.backend_pl = Pricelist.create({
+ 'name': 'Backend Pricelist',
+ 'website_id': False,
+ })
+ self.generic_pl_select = Pricelist.create({
+ 'name': 'Generic Selectable Pricelist',
+ 'selectable': True,
+ 'website_id': False,
+ })
+ self.generic_pl_code = Pricelist.create({
+ 'name': 'Generic Code Pricelist',
+ 'code': 'GENERICCODE',
+ 'website_id': False,
+ })
+ self.generic_pl_code_select = Pricelist.create({
+ 'name': 'Generic Code Selectable Pricelist',
+ 'code': 'GENERICCODESELECT',
+ 'selectable': True,
+ 'website_id': False,
+ })
+ self.w1_pl = Pricelist.create({
+ 'name': 'Website 1 Pricelist',
+ 'website_id': self.website.id,
+ })
+ self.w1_pl_select = Pricelist.create({
+ 'name': 'Website 1 Pricelist Selectable',
+ 'website_id': self.website.id,
+ 'selectable': True,
+ })
+ self.w1_pl_code = Pricelist.create({
+ 'name': 'Website 1 Pricelist Code',
+ 'website_id': self.website.id,
+ 'code': 'W1CODE',
+ })
+ self.w1_pl_code_select = Pricelist.create({
+ 'name': 'Website 1 Pricelist Code Selectable',
+ 'website_id': self.website.id,
+ 'code': 'W1CODESELECT',
+ 'selectable': True,
+ })
+ self.w2_pl = Pricelist.create({
+ 'name': 'Website 2 Pricelist',
+ 'website_id': self.website2.id,
+ })
+
+ simulate_frontend_context(self)
+
+ def test_get_pricelist_available(self):
+ # all_pl = self.backend_pl + self.generic_pl_select + self.generic_pl_code + self.generic_pl_code_select + self.w1_pl + self.w1_pl_select + self.w1_pl_code + self.w1_pl_code_select + self.w2_pl
+
+ # Test get all available pricelists
+ pls_to_return = self.generic_pl_select + self.generic_pl_code + self.generic_pl_code_select + self.w1_pl + self.w1_pl_select + self.w1_pl_code + self.w1_pl_code_select
+ pls = self.get_pricelist_available()
+ self.assertEqual(pls, pls_to_return, "Every pricelist having the correct website_id set or (no website_id but a code or selectable) should be returned")
+
+ # Test get all available and visible pricelists
+ pls_to_return = self.generic_pl_select + self.generic_pl_code_select + self.w1_pl_select + self.w1_pl_code_select
+ pls = self.get_pricelist_available(show_visible=True)
+ self.assertEqual(pls, pls_to_return, "Only selectable pricelists website compliant (website_id False or current website) should be returned")
+
+ def test_property_product_pricelist_for_inactive_partner(self):
+ # `_get_partner_pricelist_multi` should consider inactive users when searching for pricelists.
+ # Real case if for public user. His `property_product_pricelist` need to be set as it is passed
+ # through `_get_pl_partner_order` as the `website_pl` when searching for available pricelists
+ # for active users.
+ public_partner = self.env.ref('base.public_partner')
+ self.assertFalse(public_partner.active, "Ensure public partner is inactive (purpose of this test)")
+ pl = public_partner.property_product_pricelist
+ self.assertEqual(len(pl), 1, "Inactive partner should still get a `property_product_pricelist`")
+
+
+class TestWebsitePriceListAvailableGeoIP(TestWebsitePriceListAvailable):
+ def setUp(self):
+ super(TestWebsitePriceListAvailableGeoIP, self).setUp()
+ # clean `property_product_pricelist` for partner for this test (clean setup)
+ self.env['ir.property'].search([('res_id', '=', 'res.partner,%s' % self.env.user.partner_id.id)]).unlink()
+
+ # set different country groups on pricelists
+ c_EUR = self.env.ref('base.europe')
+ c_BENELUX = self.env.ref('website_sale.benelux')
+ self.BE = self.env.ref('base.be')
+ NL = self.env.ref('base.nl')
+ c_BE = self.env['res.country.group'].create({'name': 'Belgium', 'country_ids': [(6, 0, [self.BE.id])]})
+ c_NL = self.env['res.country.group'].create({'name': 'Netherlands', 'country_ids': [(6, 0, [NL.id])]})
+
+ (self.backend_pl + self.generic_pl_select + self.generic_pl_code + self.w1_pl_select).write({'country_group_ids': [(6, 0, [c_BE.id])]})
+ (self.generic_pl_code_select + self.w1_pl + self.w2_pl).write({'country_group_ids': [(6, 0, [c_BENELUX.id])]})
+ (self.w1_pl_code).write({'country_group_ids': [(6, 0, [c_EUR.id])]})
+ (self.w1_pl_code_select).write({'country_group_ids': [(6, 0, [c_NL.id])]})
+
+ # pricelist | selectable | website | code | country group |
+ # ----------------------------------------------------------------------|
+ # backend_pl | | | | BE |
+ # generic_pl_select | V | | | BE |
+ # generic_pl_code | | | V | BE |
+ # generic_pl_code_select | V | | V | BENELUX |
+ # w1_pl | | 1 | | BENELUX |
+ # w1_pl_select | V | 1 | | BE |
+ # w1_pl_code | | 1 | V | EUR |
+ # w1_pl_code_select | V | 1 | V | NL |
+ # w2_pl | | 2 | | BENELUX |
+
+ # available pl for website 1 for GeoIP BE (anything except website 2, backend and NL)
+ self.website1_be_pl = self.generic_pl_select + self.generic_pl_code + self.w1_pl_select + self.generic_pl_code_select + self.w1_pl + self.w1_pl_code
+
+ def test_get_pricelist_available_geoip(self):
+ # Test get all available pricelists with geoip and no partner pricelist (ir.property)
+
+ # property_product_pricelist will also be returned in the available pricelists
+ self.website1_be_pl += self.env.user.partner_id.property_product_pricelist
+
+ pls = self.get_pricelist_available(country_code=self.BE.code)
+ self.assertEqual(pls, self.website1_be_pl, "Only pricelists for BE and accessible on website should be returned, and the partner pl")
+
+ def test_get_pricelist_available_geoip2(self):
+ # Test get all available pricelists with geoip and a partner pricelist (ir.property) not website compliant
+ self.env.user.partner_id.property_product_pricelist = self.backend_pl
+ pls = self.get_pricelist_available(country_code=self.BE.code)
+ self.assertEqual(pls, self.website1_be_pl, "Only pricelists for BE and accessible on website should be returned as partner pl is not website compliant")
+
+ def test_get_pricelist_available_geoip3(self):
+ # Test get all available pricelists with geoip and a partner pricelist (ir.property) website compliant (but not geoip compliant)
+ self.env.user.partner_id.property_product_pricelist = self.w1_pl_code_select
+ self.website1_be_pl += self.env.user.partner_id.property_product_pricelist
+ pls = self.get_pricelist_available(country_code=self.BE.code)
+ self.assertEqual(pls, self.website1_be_pl, "Only pricelists for BE and accessible on website should be returned, plus the partner pricelist as it is website compliant")
+
+ def test_get_pricelist_available_geoip4(self):
+ # Test get all available with geoip and visible pricelists + promo pl
+ pls_to_return = self.generic_pl_select + self.w1_pl_select + self.generic_pl_code_select
+ # property_product_pricelist will also be returned in the available pricelists
+ pls_to_return += self.env.user.partner_id.property_product_pricelist
+
+ current_pl = self.w1_pl_code
+ pls = self.get_pricelist_available(country_code=self.BE.code, show_visible=True, website_sale_current_pl=current_pl.id)
+ self.assertEqual(pls, pls_to_return + current_pl, "Only pricelists for BE, accessible en website and selectable should be returned. It should also return the applied promo pl")
+
+
+class TestWebsitePriceListHttp(HttpCase):
+ def test_get_pricelist_available_multi_company(self):
+ ''' Test that the `property_product_pricelist` of `res.partner` is not
+ computed as SUPERUSER_ID.
+ Indeed, `property_product_pricelist` is a _compute that ends up
+ doing a search on `product.pricelist` that woule bypass the
+ pricelist multi-company `ir.rule`. Then it would return pricelists
+ from another company and the code would raise an access error when
+ reading that `property_product_pricelist`.
+ '''
+ test_company = self.env['res.company'].create({'name': 'Test Company'})
+ self.env['product.pricelist'].create({
+ 'name': 'Backend Pricelist For "Test Company"',
+ 'website_id': False,
+ 'company_id': test_company.id,
+ 'sequence': 1,
+ })
+
+ self.authenticate('portal', 'portal')
+ r = self.url_open('/shop')
+ self.assertEqual(r.status_code, 200, "The page should not raise an access error because of reading pricelists from other companies")
+
+
+class TestWebsitePriceListMultiCompany(TransactionCase):
+ def setUp(self):
+ ''' Create a basic multi-company pricelist environment:
+ - Set up 2 companies with their own company-restricted pricelist each.
+ - Add demo user in those 2 companies
+ - For each company, add that company pricelist to the demo user partner.
+ - Set website's company to company 2
+ - Demo user will still be in company 1
+ '''
+ super(TestWebsitePriceListMultiCompany, self).setUp()
+
+ self.demo_user = self.env.ref('base.user_demo')
+
+ # Create and add demo user to 2 companies
+ self.company1 = self.demo_user.company_id
+ self.company2 = self.env['res.company'].create({'name': 'Test Company'})
+ self.demo_user.company_ids += self.company2
+ # Set company2 as current company for demo user
+ self.website = self.env['website'].browse(1)
+ self.website.company_id = self.company2
+
+ # Create a company pricelist for each company and set it to demo user
+ self.c1_pl = self.env['product.pricelist'].create({
+ 'name': 'Company 1 Pricelist',
+ 'company_id': self.company1.id,
+ })
+ self.c2_pl = self.env['product.pricelist'].create({
+ 'name': 'Company 2 Pricelist',
+ 'company_id': self.company2.id,
+ 'website_id': False,
+ })
+ self.demo_user.partner_id.property_product_pricelist = self.c1_pl
+ # Switch env.user company to create ir.property in company2
+ self.env.user.company_id = self.company2
+ self.demo_user.partner_id.property_product_pricelist = self.c2_pl
+
+ # Ensure everything was done correctly
+ self.assertEqual(self.demo_user.partner_id.with_context(force_company=self.company1.id).property_product_pricelist, self.c1_pl)
+ self.assertEqual(self.demo_user.partner_id.with_context(force_company=self.company2.id).property_product_pricelist, self.c2_pl)
+ irp1 = self.env['ir.property'].search([
+ ('name', '=', 'property_product_pricelist'),
+ ('company_id', '=', self.company1.id),
+ ('res_id', '=', 'res.partner,%s' % self.demo_user.partner_id.id),
+ ('value_reference', '=', 'product.pricelist,%s' % self.c1_pl.id),
+ ])
+ irp2 = self.env['ir.property'].search([
+ ('name', '=', 'property_product_pricelist'),
+ ('company_id', '=', self.company2.id),
+ ('res_id', '=', 'res.partner,%s' % self.demo_user.partner_id.id),
+ ('value_reference', '=', 'product.pricelist,%s' % self.c2_pl.id),
+ ])
+ self.assertEqual(len(irp1 + irp2), 2, "Ensure there is an `ir.property` for demo partner for every company, and that the pricelist is the company specific one.")
+ simulate_frontend_context(self)
+ # ---------------------------------- IR.PROPERTY -------------------------------------
+ # id | name | res_id | company_id | value_reference
+ # ------------------------------------------------------------------------------------
+ # 1 | 'property_product_pricelist' | | 1 | product.pricelist,1
+ # 2 | 'property_product_pricelist' | | 2 | product.pricelist,2
+ # 3 | 'property_product_pricelist' | res.partner,8 | 1 | product.pricelist,10
+ # 4 | 'property_product_pricelist' | res.partner,8 | 2 | product.pricelist,11
+
+ def test_property_product_pricelist_multi_company(self):
+ ''' Test that the `property_product_pricelist` of `res.partner` is read
+ for the company of the website and not the current user company.
+ This is the case if the user visit a website for which the company
+ is not the same as its user's company.
+
+ Here, as demo user (company1), we will visit website1 (company2).
+ It should return the ir.property for demo user for company2 and not
+ for the company1 as we should get the website's company pricelist
+ and not the demo user's current company pricelist.
+ '''
+ # First check: It should return ir.property,4 as company_id is
+ # website.company_id and not env.user.company_id
+ company_id = self.website.company_id.id
+ partner = self.demo_user.partner_id.with_context(force_company=company_id)
+ demo_pl = partner.property_product_pricelist
+ self.assertEqual(demo_pl, self.c2_pl)
+
+ # Second thing to check: It should not error in read right access error
+ # Indeed, the ir.rule for pricelists rights about company should allow to
+ # also read a pricelist from another company if that company is the one
+ # from the currently visited website.
+ self.env(user=self.env.ref('base.user_demo'))['product.pricelist'].browse(demo_pl.id).name
diff --git a/addons/website_sale/views/product_views.xml b/addons/website_sale/views/product_views.xml
index 1afe4f9b9fc..07833ec6b63 100644
--- a/addons/website_sale/views/product_views.xml
+++ b/addons/website_sale/views/product_views.xml
@@ -179,7 +179,7 @@
<field name="arch" type="xml">
<field name='currency_id' position='after'>
<field name="selectable"/>
- <field name="website_id" options="{'no_create': True}" string="Allow to use on " placeholder="None website"/>
+ <field name="website_id" options="{'no_create': True}" />
</field>
</field>
</record>
diff --git a/addons/website_sale/views/templates.xml b/addons/website_sale/views/templates.xml
index 90860ad6bab..3d4cd01eda4 100644
--- a/addons/website_sale/views/templates.xml
+++ b/addons/website_sale/views/templates.xml
@@ -1574,8 +1574,7 @@
<span t-else="">An error occured while processing your payment. Please try again or contact your administrator.</span>
</t>
<t t-if="payment_tx_id.state == 'authorized'">
- <span t-if="payment_tx_id.acquirer_id.auth_msg" t-raw="payment_tx_id.acquirer_id.auth_msg"/>
- <span t-else="">Your payment has been authorized.</span>
+ <span>Your payment has been authorized.</span>
</t>
</div>
<div t-if="payment_tx_id.acquirer_id.post_msg" class="card-body">