To gain access to your account, you can use the following link:
diff --git a/addons/auth_signup/i18n/af.po b/addons/auth_signup/i18n/af.po
index e95f0c01e3a..8fe284f2eb6 100644
--- a/addons/auth_signup/i18n/af.po
+++ b/addons/auth_signup/i18n/af.po
@@ -109,7 +109,6 @@ msgid ""
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/i18n/am.po b/addons/auth_signup/i18n/am.po
index 884e96a66f0..7ed08db42cb 100644
--- a/addons/auth_signup/i18n/am.po
+++ b/addons/auth_signup/i18n/am.po
@@ -108,7 +108,6 @@ msgid ""
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/i18n/ar.po b/addons/auth_signup/i18n/ar.po
index aec6d4ea4b9..b379535575d 100644
--- a/addons/auth_signup/i18n/ar.po
+++ b/addons/auth_signup/i18n/ar.po
@@ -115,7 +115,6 @@ msgid ""
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/i18n/auth_signup.pot b/addons/auth_signup/i18n/auth_signup.pot
index 3ca1e3ccc53..379775c2600 100644
--- a/addons/auth_signup/i18n/auth_signup.pot
+++ b/addons/auth_signup/i18n/auth_signup.pot
@@ -102,7 +102,6 @@ msgid "
\n"
" Your login: ${object.email}\n"
"
\n"
-" Your password: ${ctx['password']}\n"
" \n"
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/i18n/bg.po b/addons/auth_signup/i18n/bg.po
index 5da9afc881c..96d4cbe6673 100644
--- a/addons/auth_signup/i18n/bg.po
+++ b/addons/auth_signup/i18n/bg.po
@@ -108,7 +108,6 @@ msgid ""
"
\n"
" Your login: ${object.email}\n"
" \n"
-" Your password: ${ctx['password']}\n"
"
\n"
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/i18n/bs.po b/addons/auth_signup/i18n/bs.po
index e30567817fb..72953b3e2fb 100644
--- a/addons/auth_signup/i18n/bs.po
+++ b/addons/auth_signup/i18n/bs.po
@@ -109,7 +109,6 @@ msgid ""
"
\n"
" Your login: ${object.email}\n"
" \n"
-" Your password: ${ctx['password']}\n"
"
\n"
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/i18n/ca.po b/addons/auth_signup/i18n/ca.po
index 4154a0f8705..0d58beeaac2 100644
--- a/addons/auth_signup/i18n/ca.po
+++ b/addons/auth_signup/i18n/ca.po
@@ -134,7 +134,6 @@ msgid ""
"
\n"
" Your login: ${object.email}\n"
" \n"
-" Your password: ${ctx['password']}\n"
"
\n"
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/i18n/cs.po b/addons/auth_signup/i18n/cs.po
index bc6da8dee7c..48609ed8491 100644
--- a/addons/auth_signup/i18n/cs.po
+++ b/addons/auth_signup/i18n/cs.po
@@ -108,7 +108,6 @@ msgid ""
"
\n"
" Your login: ${object.email}\n"
" \n"
-" Your password: ${ctx['password']}\n"
"
\n"
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/i18n/da.po b/addons/auth_signup/i18n/da.po
index 3613885ead3..9af60c059ef 100644
--- a/addons/auth_signup/i18n/da.po
+++ b/addons/auth_signup/i18n/da.po
@@ -111,7 +111,6 @@ msgid ""
"
\n"
" Your login: ${object.email}\n"
" \n"
-" Your password: ${ctx['password']}\n"
"
\n"
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/i18n/de.po b/addons/auth_signup/i18n/de.po
index c3fd7bc24bf..21e05ff6e1a 100644
--- a/addons/auth_signup/i18n/de.po
+++ b/addons/auth_signup/i18n/de.po
@@ -162,7 +162,6 @@ msgid ""
"
\n"
" Your login: ${object.email}\n"
" \n"
-" Your password: ${ctx['password']}\n"
"
\n"
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/i18n/el.po b/addons/auth_signup/i18n/el.po
index 527e38d061c..bdd6ddbfdeb 100644
--- a/addons/auth_signup/i18n/el.po
+++ b/addons/auth_signup/i18n/el.po
@@ -165,7 +165,6 @@ msgid ""
"
\n"
" Your login: ${object.email}\n"
" \n"
-" Your password: ${ctx['password']}\n"
"
\n"
"
\n"
" To gain access to your account, you can use the following link:\n"
@@ -199,7 +198,6 @@ msgstr ""
"
\n"
" Email/Όνομα χρήστη: ${object.email}\n"
" \n"
-" Κωδικός Πρόσβασης: ${ctx['password']}\n"
"
\n"
"
\n"
" Για να αποκτήσετε πρόσβαση στο λογαριασμό σας, ακολουθήστε τον παρακάτω σύνδεσμο:\n"
diff --git a/addons/auth_signup/i18n/en_GB.po b/addons/auth_signup/i18n/en_GB.po
index c533eb0e2c3..e9d962451fc 100644
--- a/addons/auth_signup/i18n/en_GB.po
+++ b/addons/auth_signup/i18n/en_GB.po
@@ -108,7 +108,6 @@ msgid ""
"
\n"
" Your login: ${object.email}\n"
" \n"
-" Your password: ${ctx['password']}\n"
"
\n"
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/i18n/es.po b/addons/auth_signup/i18n/es.po
index 774a8396e23..3579dd699f2 100644
--- a/addons/auth_signup/i18n/es.po
+++ b/addons/auth_signup/i18n/es.po
@@ -174,7 +174,6 @@ msgid ""
"
\n"
" Your login: ${object.email}\n"
" \n"
-" Your password: ${ctx['password']}\n"
"
\n"
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/i18n/es_AR.po b/addons/auth_signup/i18n/es_AR.po
index 8013046ee26..52cff67e109 100644
--- a/addons/auth_signup/i18n/es_AR.po
+++ b/addons/auth_signup/i18n/es_AR.po
@@ -108,7 +108,6 @@ msgid ""
"
\n"
" Your login: ${object.email}\n"
" \n"
-" Your password: ${ctx['password']}\n"
"
\n"
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/i18n/es_BO.po b/addons/auth_signup/i18n/es_BO.po
index 8d0148b3dfe..b1147946e82 100644
--- a/addons/auth_signup/i18n/es_BO.po
+++ b/addons/auth_signup/i18n/es_BO.po
@@ -108,7 +108,6 @@ msgid ""
"
\n"
" Your login: ${object.email}\n"
" \n"
-" Your password: ${ctx['password']}\n"
"
\n"
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/i18n/es_CL.po b/addons/auth_signup/i18n/es_CL.po
index 5a81f205342..b5a6207ef21 100644
--- a/addons/auth_signup/i18n/es_CL.po
+++ b/addons/auth_signup/i18n/es_CL.po
@@ -108,7 +108,6 @@ msgid ""
"
\n"
" Your login: ${object.email}\n"
" \n"
-" Your password: ${ctx['password']}\n"
"
\n"
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/i18n/es_CO.po b/addons/auth_signup/i18n/es_CO.po
index b0585f4fa38..9cdb25ddfcb 100644
--- a/addons/auth_signup/i18n/es_CO.po
+++ b/addons/auth_signup/i18n/es_CO.po
@@ -108,7 +108,6 @@ msgid ""
"
\n"
" Your login: ${object.email}\n"
" \n"
-" Your password: ${ctx['password']}\n"
"
\n"
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/i18n/es_CR.po b/addons/auth_signup/i18n/es_CR.po
index d137efbae8a..2ed09011556 100644
--- a/addons/auth_signup/i18n/es_CR.po
+++ b/addons/auth_signup/i18n/es_CR.po
@@ -108,7 +108,6 @@ msgid ""
"
\n"
" Your login: ${object.email}\n"
" \n"
-" Your password: ${ctx['password']}\n"
"
\n"
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/i18n/es_DO.po b/addons/auth_signup/i18n/es_DO.po
index 77358762009..5972a4bbd7a 100644
--- a/addons/auth_signup/i18n/es_DO.po
+++ b/addons/auth_signup/i18n/es_DO.po
@@ -108,7 +108,6 @@ msgid ""
"
\n"
" Your login: ${object.email}\n"
" \n"
-" Your password: ${ctx['password']}\n"
"
\n"
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/i18n/es_EC.po b/addons/auth_signup/i18n/es_EC.po
index fd7782eadce..c8c9bc51c10 100644
--- a/addons/auth_signup/i18n/es_EC.po
+++ b/addons/auth_signup/i18n/es_EC.po
@@ -108,7 +108,6 @@ msgid ""
"
\n"
" Your login: ${object.email}\n"
" \n"
-" Your password: ${ctx['password']}\n"
"
\n"
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/i18n/es_PE.po b/addons/auth_signup/i18n/es_PE.po
index 9ee0f51c41e..919743b749a 100644
--- a/addons/auth_signup/i18n/es_PE.po
+++ b/addons/auth_signup/i18n/es_PE.po
@@ -108,7 +108,6 @@ msgid ""
"
\n"
" Your login: ${object.email}\n"
" \n"
-" Your password: ${ctx['password']}\n"
"
\n"
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/i18n/es_PY.po b/addons/auth_signup/i18n/es_PY.po
index 0d37ff54c50..c4dfea726cf 100644
--- a/addons/auth_signup/i18n/es_PY.po
+++ b/addons/auth_signup/i18n/es_PY.po
@@ -108,7 +108,6 @@ msgid ""
"
\n"
" Your login: ${object.email}\n"
" \n"
-" Your password: ${ctx['password']}\n"
"
\n"
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/i18n/es_VE.po b/addons/auth_signup/i18n/es_VE.po
index efbe4c21be1..96b47c37681 100644
--- a/addons/auth_signup/i18n/es_VE.po
+++ b/addons/auth_signup/i18n/es_VE.po
@@ -108,7 +108,6 @@ msgid ""
"
\n"
" Your login: ${object.email}\n"
" \n"
-" Your password: ${ctx['password']}\n"
"
\n"
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/i18n/et.po b/addons/auth_signup/i18n/et.po
index c2d8db1e7dd..e21bd45495d 100644
--- a/addons/auth_signup/i18n/et.po
+++ b/addons/auth_signup/i18n/et.po
@@ -111,7 +111,6 @@ msgid ""
"
\n"
" Your login: ${object.email}\n"
" \n"
-" Your password: ${ctx['password']}\n"
"
\n"
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/i18n/eu.po b/addons/auth_signup/i18n/eu.po
index 9c44dafbd60..035159ebbc5 100644
--- a/addons/auth_signup/i18n/eu.po
+++ b/addons/auth_signup/i18n/eu.po
@@ -108,7 +108,6 @@ msgid ""
"
\n"
" Your login: ${object.email}\n"
" \n"
-" Your password: ${ctx['password']}\n"
"
\n"
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/i18n/fa.po b/addons/auth_signup/i18n/fa.po
index b768510a3af..94919a982a4 100644
--- a/addons/auth_signup/i18n/fa.po
+++ b/addons/auth_signup/i18n/fa.po
@@ -111,7 +111,6 @@ msgid ""
"
\n"
" Your login: ${object.email}\n"
" \n"
-" Your password: ${ctx['password']}\n"
"
\n"
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/i18n/fi.po b/addons/auth_signup/i18n/fi.po
index 1c2f0091215..c2367709374 100644
--- a/addons/auth_signup/i18n/fi.po
+++ b/addons/auth_signup/i18n/fi.po
@@ -114,7 +114,6 @@ msgid ""
"
\n"
" Your login: ${object.email}\n"
" \n"
-" Your password: ${ctx['password']}\n"
"
\n"
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/i18n/fo.po b/addons/auth_signup/i18n/fo.po
index c2b513c1339..47a4304b83d 100644
--- a/addons/auth_signup/i18n/fo.po
+++ b/addons/auth_signup/i18n/fo.po
@@ -105,7 +105,6 @@ msgid ""
"
\n"
" Your login: ${object.email}\n"
" \n"
-" Your password: ${ctx['password']}\n"
"
\n"
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/i18n/fr.po b/addons/auth_signup/i18n/fr.po
index 5d19c895961..345b07411ed 100644
--- a/addons/auth_signup/i18n/fr.po
+++ b/addons/auth_signup/i18n/fr.po
@@ -168,7 +168,6 @@ msgid ""
"
\n"
" Your login: ${object.email}\n"
" \n"
-" Your password: ${ctx['password']}\n"
"
\n"
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/i18n/fr_CA.po b/addons/auth_signup/i18n/fr_CA.po
index 469fd480492..516ffa5ceaa 100644
--- a/addons/auth_signup/i18n/fr_CA.po
+++ b/addons/auth_signup/i18n/fr_CA.po
@@ -108,7 +108,6 @@ msgid ""
"
\n"
" Your login: ${object.email}\n"
" \n"
-" Your password: ${ctx['password']}\n"
"
\n"
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/i18n/gl.po b/addons/auth_signup/i18n/gl.po
index d3ba0b2ac14..7e3f96ee07e 100644
--- a/addons/auth_signup/i18n/gl.po
+++ b/addons/auth_signup/i18n/gl.po
@@ -108,7 +108,6 @@ msgid ""
"
\n"
" Your login: ${object.email}\n"
" \n"
-" Your password: ${ctx['password']}\n"
"
\n"
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/i18n/he.po b/addons/auth_signup/i18n/he.po
index d4adca058c8..5010a56142a 100644
--- a/addons/auth_signup/i18n/he.po
+++ b/addons/auth_signup/i18n/he.po
@@ -108,7 +108,6 @@ msgid ""
"
\n"
" Your login: ${object.email}\n"
" \n"
-" Your password: ${ctx['password']}\n"
"
\n"
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/i18n/hr.po b/addons/auth_signup/i18n/hr.po
index 7ea2aa5a4db..5fe6dfa95cf 100644
--- a/addons/auth_signup/i18n/hr.po
+++ b/addons/auth_signup/i18n/hr.po
@@ -144,7 +144,6 @@ msgid ""
"
\n"
" Your login: ${object.email}\n"
" \n"
-" Your password: ${ctx['password']}\n"
"
\n"
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/i18n/hu.po b/addons/auth_signup/i18n/hu.po
index d88f6f7e87f..242590a5d8c 100644
--- a/addons/auth_signup/i18n/hu.po
+++ b/addons/auth_signup/i18n/hu.po
@@ -165,7 +165,6 @@ msgid ""
"
\n"
" Your login: ${object.email}\n"
" \n"
-" Your password: ${ctx['password']}\n"
"
\n"
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/i18n/id.po b/addons/auth_signup/i18n/id.po
index 6a1a3ff1898..3105d982405 100644
--- a/addons/auth_signup/i18n/id.po
+++ b/addons/auth_signup/i18n/id.po
@@ -112,7 +112,6 @@ msgid ""
"
\n"
" Your login: ${object.email}\n"
" \n"
-" Your password: ${ctx['password']}\n"
"
\n"
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/i18n/it.po b/addons/auth_signup/i18n/it.po
index f590d160d73..4c18b8d3b20 100644
--- a/addons/auth_signup/i18n/it.po
+++ b/addons/auth_signup/i18n/it.po
@@ -109,7 +109,6 @@ msgid ""
"
\n"
" Your login: ${object.email}\n"
" \n"
-" Your password: ${ctx['password']}\n"
"
\n"
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/i18n/ja.po b/addons/auth_signup/i18n/ja.po
index 3e28504326f..6824517fdc1 100644
--- a/addons/auth_signup/i18n/ja.po
+++ b/addons/auth_signup/i18n/ja.po
@@ -165,7 +165,6 @@ msgid ""
"
\n"
" Your login: ${object.email}\n"
" \n"
-" Your password: ${ctx['password']}\n"
"
\n"
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/i18n/ka.po b/addons/auth_signup/i18n/ka.po
index c484d9eb5ed..f61eb2cd8fb 100644
--- a/addons/auth_signup/i18n/ka.po
+++ b/addons/auth_signup/i18n/ka.po
@@ -108,7 +108,6 @@ msgid ""
"
\n"
" Your login: ${object.email}\n"
" \n"
-" Your password: ${ctx['password']}\n"
"
\n"
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/i18n/kab.po b/addons/auth_signup/i18n/kab.po
index 0dec5bea4da..0e670472029 100644
--- a/addons/auth_signup/i18n/kab.po
+++ b/addons/auth_signup/i18n/kab.po
@@ -108,7 +108,6 @@ msgid ""
"
\n"
" Your login: ${object.email}\n"
" \n"
-" Your password: ${ctx['password']}\n"
"
\n"
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/i18n/ko.po b/addons/auth_signup/i18n/ko.po
index d29991121f5..42dba965809 100644
--- a/addons/auth_signup/i18n/ko.po
+++ b/addons/auth_signup/i18n/ko.po
@@ -108,7 +108,6 @@ msgid ""
"
\n"
" Your login: ${object.email}\n"
" \n"
-" Your password: ${ctx['password']}\n"
"
\n"
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/i18n/lo.po b/addons/auth_signup/i18n/lo.po
index e7bb5b2769a..8ae06fffbc2 100644
--- a/addons/auth_signup/i18n/lo.po
+++ b/addons/auth_signup/i18n/lo.po
@@ -108,7 +108,6 @@ msgid ""
"
\n"
" Your login: ${object.email}\n"
" \n"
-" Your password: ${ctx['password']}\n"
"
\n"
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/i18n/lt.po b/addons/auth_signup/i18n/lt.po
index 31c1bc8ff2a..2ff10d5155a 100644
--- a/addons/auth_signup/i18n/lt.po
+++ b/addons/auth_signup/i18n/lt.po
@@ -112,7 +112,6 @@ msgid ""
"
\n"
" Your login: ${object.email}\n"
" \n"
-" Your password: ${ctx['password']}\n"
"
\n"
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/i18n/lv.po b/addons/auth_signup/i18n/lv.po
index 9b1970fc14b..1f493481075 100644
--- a/addons/auth_signup/i18n/lv.po
+++ b/addons/auth_signup/i18n/lv.po
@@ -108,7 +108,6 @@ msgid ""
"
\n"
" Your login: ${object.email}\n"
" \n"
-" Your password: ${ctx['password']}\n"
"
\n"
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/i18n/mk.po b/addons/auth_signup/i18n/mk.po
index 723427f51d1..2bb3dadd211 100644
--- a/addons/auth_signup/i18n/mk.po
+++ b/addons/auth_signup/i18n/mk.po
@@ -108,7 +108,6 @@ msgid ""
"
\n"
" Your login: ${object.email}\n"
" \n"
-" Your password: ${ctx['password']}\n"
"
\n"
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/i18n/mn.po b/addons/auth_signup/i18n/mn.po
index 2ac736ff37e..e2ab4e9d82e 100644
--- a/addons/auth_signup/i18n/mn.po
+++ b/addons/auth_signup/i18n/mn.po
@@ -105,7 +105,6 @@ msgid ""
"
\n"
" Your login: ${object.email}\n"
" \n"
-" Your password: ${ctx['password']}\n"
"
\n"
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/i18n/nb.po b/addons/auth_signup/i18n/nb.po
index e16abb8be70..0732fbeafc3 100644
--- a/addons/auth_signup/i18n/nb.po
+++ b/addons/auth_signup/i18n/nb.po
@@ -110,7 +110,6 @@ msgid ""
"
\n"
" Your login: ${object.email}\n"
" \n"
-" Your password: ${ctx['password']}\n"
"
\n"
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/i18n/ne.po b/addons/auth_signup/i18n/ne.po
index 8937826cf50..b05079f39bf 100644
--- a/addons/auth_signup/i18n/ne.po
+++ b/addons/auth_signup/i18n/ne.po
@@ -105,7 +105,6 @@ msgid ""
"
\n"
" Your login: ${object.email}\n"
" \n"
-" Your password: ${ctx['password']}\n"
"
\n"
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/i18n/nl.po b/addons/auth_signup/i18n/nl.po
index 2fae789bf5f..94ba16c4dd4 100644
--- a/addons/auth_signup/i18n/nl.po
+++ b/addons/auth_signup/i18n/nl.po
@@ -167,7 +167,6 @@ msgid ""
"
\n"
" Your login: ${object.email}\n"
" \n"
-" Your password: ${ctx['password']}\n"
"
\n"
"
\n"
" To gain access to your account, you can use the following link:\n"
@@ -201,7 +200,6 @@ msgstr ""
"
\n"
" Uw login: ${object.email}\n"
" \n"
-" Uw wachtwoord: ${ctx['password']}\n"
"
\n"
"
\n"
" Om toegang te krijgen tot uw account, kan u de volgende link gebruiken::\n"
diff --git a/addons/auth_signup/i18n/nl_BE.po b/addons/auth_signup/i18n/nl_BE.po
index 405e872d815..85eb30d00cd 100644
--- a/addons/auth_signup/i18n/nl_BE.po
+++ b/addons/auth_signup/i18n/nl_BE.po
@@ -108,7 +108,6 @@ msgid ""
"
\n"
" Your login: ${object.email}\n"
" \n"
-" Your password: ${ctx['password']}\n"
"
\n"
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/i18n/pl.po b/addons/auth_signup/i18n/pl.po
index fbb0f81860f..314a2b54cb9 100644
--- a/addons/auth_signup/i18n/pl.po
+++ b/addons/auth_signup/i18n/pl.po
@@ -114,7 +114,6 @@ msgid ""
"
\n"
" Your login: ${object.email}\n"
" \n"
-" Your password: ${ctx['password']}\n"
"
\n"
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/i18n/pt.po b/addons/auth_signup/i18n/pt.po
index e1e03417c01..ba4833e46b5 100644
--- a/addons/auth_signup/i18n/pt.po
+++ b/addons/auth_signup/i18n/pt.po
@@ -108,7 +108,6 @@ msgid ""
"
\n"
" Your login: ${object.email}\n"
" \n"
-" Your password: ${ctx['password']}\n"
"
\n"
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/i18n/pt_BR.po b/addons/auth_signup/i18n/pt_BR.po
index 3b2b3c0b29b..0375c301797 100644
--- a/addons/auth_signup/i18n/pt_BR.po
+++ b/addons/auth_signup/i18n/pt_BR.po
@@ -167,7 +167,6 @@ msgid ""
"
\n"
" Your login: ${object.email}\n"
" \n"
-" Your password: ${ctx['password']}\n"
"
\n"
"
\n"
" To gain access to your account, you can use the following link:\n"
@@ -201,7 +200,6 @@ msgstr ""
"
\n"
" Seu login: ${object.email}\n"
" \n"
-" Sua senha: ${ctx['password']}\n"
"
\n"
"
\n"
" Para acessar sua conta, você pode acessar o seguinte link:\n"
diff --git a/addons/auth_signup/i18n/ro.po b/addons/auth_signup/i18n/ro.po
index 70f19bf3768..5178308b08a 100644
--- a/addons/auth_signup/i18n/ro.po
+++ b/addons/auth_signup/i18n/ro.po
@@ -139,7 +139,6 @@ msgid ""
"
\n"
" Your login: ${object.email}\n"
" \n"
-" Your password: ${ctx['password']}\n"
"
\n"
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/i18n/ru.po b/addons/auth_signup/i18n/ru.po
index 64d0fa145bc..8a9cd8d9bae 100644
--- a/addons/auth_signup/i18n/ru.po
+++ b/addons/auth_signup/i18n/ru.po
@@ -173,7 +173,6 @@ msgid ""
"
\n"
" Your login: ${object.email}\n"
" \n"
-" Your password: ${ctx['password']}\n"
"
\n"
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/i18n/sk.po b/addons/auth_signup/i18n/sk.po
index 5eb7f676417..5138b206acf 100644
--- a/addons/auth_signup/i18n/sk.po
+++ b/addons/auth_signup/i18n/sk.po
@@ -108,7 +108,6 @@ msgid ""
"
\n"
" Your login: ${object.email}\n"
" \n"
-" Your password: ${ctx['password']}\n"
"
\n"
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/i18n/sl.po b/addons/auth_signup/i18n/sl.po
index e887136c172..ffc11c07444 100644
--- a/addons/auth_signup/i18n/sl.po
+++ b/addons/auth_signup/i18n/sl.po
@@ -105,7 +105,6 @@ msgid ""
"
\n"
" Your login: ${object.email}\n"
" \n"
-" Your password: ${ctx['password']}\n"
"
\n"
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/i18n/sq.po b/addons/auth_signup/i18n/sq.po
index 164fdf95948..0bcff3b0ad8 100644
--- a/addons/auth_signup/i18n/sq.po
+++ b/addons/auth_signup/i18n/sq.po
@@ -108,7 +108,6 @@ msgid ""
"
\n"
" Your login: ${object.email}\n"
" \n"
-" Your password: ${ctx['password']}\n"
"
\n"
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/i18n/sr.po b/addons/auth_signup/i18n/sr.po
index 39bcf501d75..6a1f8a51afb 100644
--- a/addons/auth_signup/i18n/sr.po
+++ b/addons/auth_signup/i18n/sr.po
@@ -108,7 +108,6 @@ msgid ""
"
\n"
" Your login: ${object.email}\n"
" \n"
-" Your password: ${ctx['password']}\n"
"
\n"
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/i18n/sr@latin.po b/addons/auth_signup/i18n/sr@latin.po
index 0efb9c4cfda..0a9f5db16b1 100644
--- a/addons/auth_signup/i18n/sr@latin.po
+++ b/addons/auth_signup/i18n/sr@latin.po
@@ -109,7 +109,6 @@ msgid ""
"
\n"
" Your login: ${object.email}\n"
" \n"
-" Your password: ${ctx['password']}\n"
"
\n"
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/i18n/sv.po b/addons/auth_signup/i18n/sv.po
index d3b6c33642c..aa14a9b4a39 100644
--- a/addons/auth_signup/i18n/sv.po
+++ b/addons/auth_signup/i18n/sv.po
@@ -109,7 +109,6 @@ msgid ""
"
\n"
" Your login: ${object.email}\n"
" \n"
-" Your password: ${ctx['password']}\n"
"
\n"
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/i18n/th.po b/addons/auth_signup/i18n/th.po
index 16eaf1167ef..46fe1210082 100644
--- a/addons/auth_signup/i18n/th.po
+++ b/addons/auth_signup/i18n/th.po
@@ -108,7 +108,6 @@ msgid ""
"
\n"
" Your login: ${object.email}\n"
" \n"
-" Your password: ${ctx['password']}\n"
"
\n"
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/i18n/tr.po b/addons/auth_signup/i18n/tr.po
index 00fbe962c82..17d13118d7c 100644
--- a/addons/auth_signup/i18n/tr.po
+++ b/addons/auth_signup/i18n/tr.po
@@ -171,7 +171,6 @@ msgid ""
"
\n"
" Your login: ${object.email}\n"
" \n"
-" Your password: ${ctx['password']}\n"
"
\n"
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/i18n/uk.po b/addons/auth_signup/i18n/uk.po
index 51df9435a86..83cfb0e5b94 100644
--- a/addons/auth_signup/i18n/uk.po
+++ b/addons/auth_signup/i18n/uk.po
@@ -167,7 +167,6 @@ msgid ""
"
\n"
" Your login: ${object.email}\n"
" \n"
-" Your password: ${ctx['password']}\n"
"
\n"
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/i18n/vi.po b/addons/auth_signup/i18n/vi.po
index 4fd58b26cfa..84d5bab21b7 100644
--- a/addons/auth_signup/i18n/vi.po
+++ b/addons/auth_signup/i18n/vi.po
@@ -109,7 +109,6 @@ msgid ""
"
\n"
" Your login: ${object.email}\n"
" \n"
-" Your password: ${ctx['password']}\n"
"
\n"
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/i18n/zh_CN.po b/addons/auth_signup/i18n/zh_CN.po
index db90fbcb26e..bd89431a070 100644
--- a/addons/auth_signup/i18n/zh_CN.po
+++ b/addons/auth_signup/i18n/zh_CN.po
@@ -140,7 +140,6 @@ msgid ""
"
\n"
" Your login: ${object.email}\n"
" \n"
-" Your password: ${ctx['password']}\n"
"
\n"
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/i18n/zh_TW.po b/addons/auth_signup/i18n/zh_TW.po
index 150c5b36fd4..a92edce19b1 100644
--- a/addons/auth_signup/i18n/zh_TW.po
+++ b/addons/auth_signup/i18n/zh_TW.po
@@ -109,7 +109,6 @@ msgid ""
"
\n"
" Your login: ${object.email}\n"
" \n"
-" Your password: ${ctx['password']}\n"
"
\n"
"
\n"
" To gain access to your account, you can use the following link:\n"
diff --git a/addons/auth_signup/models/res_partner.py b/addons/auth_signup/models/res_partner.py
index 9fbcd27872f..17171c645f6 100644
--- a/addons/auth_signup/models/res_partner.py
+++ b/addons/auth_signup/models/res_partner.py
@@ -32,6 +32,7 @@ class ResPartner(models.Model):
signup_url = fields.Char(compute='_compute_signup_url', string='Signup URL')
@api.multi
+ @api.depends('signup_token', 'signup_expiration')
def _compute_signup_valid(self):
dt = now()
for partner in self:
diff --git a/addons/barcodes/i18n/tr.po b/addons/barcodes/i18n/tr.po
index 0cec71e252e..e1f85af3bdd 100644
--- a/addons/barcodes/i18n/tr.po
+++ b/addons/barcodes/i18n/tr.po
@@ -412,6 +412,8 @@ msgstr "Birim Ürün"
msgid ""
"Used to order rules such that rules with a smaller sequence match first"
msgstr ""
+"ilk olarak küçük sıralarla eşleyen kurallar gibi kullanılan sipariş "
+"kuralları"
#. module: barcodes
#: model:ir.model.fields,help:barcodes.field_barcodes_barcode_events_mixin___barcode_scanned
@@ -426,7 +428,7 @@ msgstr "Tartılmış Ürün"
#. module: barcodes
#: model:ir.model,name:barcodes.model_barcode_nomenclature
msgid "barcode.nomenclature"
-msgstr ""
+msgstr "barcode.nomenclature"
#. module: barcodes
#: model:ir.model,name:barcodes.model_barcode_rule
@@ -436,4 +438,4 @@ msgstr "barkod.kuralı"
#. module: barcodes
#: model:ir.model,name:barcodes.model_barcodes_barcode_events_mixin
msgid "barcodes.barcode_events_mixin"
-msgstr ""
+msgstr "barcodes.barcode_events_mixin"
diff --git a/addons/barcodes/static/src/js/barcode_events.js b/addons/barcodes/static/src/js/barcode_events.js
index 71e07030ffd..a2e5808f8be 100644
--- a/addons/barcodes/static/src/js/barcode_events.js
+++ b/addons/barcodes/static/src/js/barcode_events.js
@@ -53,7 +53,7 @@ var BarcodeEvents = core.Class.extend(mixins.PropertiesMixin, {
navigator.userAgent.match(/iPod/i) ||
navigator.userAgent.match(/BlackBerry/i) ||
navigator.userAgent.match(/Windows Phone/i);
- this.isChromeMobile = isMobile && window.chrome;
+ this.isChromeMobile = isMobile && navigator.userAgent.match(/Chrome/i);
// Creates an input who will receive the barcode scanner value.
if (this.isChromeMobile) {
@@ -61,7 +61,9 @@ var BarcodeEvents = core.Class.extend(mixins.PropertiesMixin, {
name: 'barcode',
type: 'text',
css: {
- 'position': 'absolute',
+ 'position': 'fixed',
+ 'top': '50%',
+ 'transform': 'translateY(-50%)',
'opacity': 0,
},
});
diff --git a/addons/base_import/i18n/nl.po b/addons/base_import/i18n/nl.po
index 317594a9792..b81f00756fb 100644
--- a/addons/base_import/i18n/nl.po
+++ b/addons/base_import/i18n/nl.po
@@ -145,7 +145,7 @@ msgstr "Decimaal scheidingsteken:"
#: code:addons/base_import/static/src/xml/base_import.xml:76
#, python-format
msgid "Defer parent/child computation"
-msgstr ""
+msgstr "Uitstellen boven/onderliggende berekening"
#. module: base_import
#: model:ir.model.fields,field_description:base_import.field_base_import_import__display_name
diff --git a/addons/base_vat_autocomplete/models/res_partner.py b/addons/base_vat_autocomplete/models/res_partner.py
index f4afa29ef39..a143ed67568 100644
--- a/addons/base_vat_autocomplete/models/res_partner.py
+++ b/addons/base_vat_autocomplete/models/res_partner.py
@@ -12,6 +12,9 @@ _logger = logging.getLogger(__name__)
try:
import stdnum.eu.vat as stdnum_vat
+ if not hasattr(stdnum_vat, "country_codes"):
+ # stdnum version >= 1.9
+ stdnum_vat.country_codes = stdnum_vat._country_codes
except ImportError:
_logger.warning('Python `stdnum` library not found, unable to call VIES service to detect address based on VAT number.')
stdnum_vat = None
@@ -29,6 +32,11 @@ class ResPartner(models.Model):
cp = lines.pop()
city = lines.pop()
return (cp, city)
+ elif country == 'SE':
+ result = re.match('([0-9]{3}\s?[0-9]{2})\s?([A-Z]+)', lines[-1])
+ if result:
+ lines.pop()
+ return (result.group(1), result.group(2))
else:
result = re.match('((?:L-|AT-)?[0-9\-]+[A-Z]{,2}) (.+)', lines[-1])
if result:
diff --git a/addons/base_vat_autocomplete/views/res_company_view.xml b/addons/base_vat_autocomplete/views/res_company_view.xml
index d35b505da66..385716979ab 100644
--- a/addons/base_vat_autocomplete/views/res_company_view.xml
+++ b/addons/base_vat_autocomplete/views/res_company_view.xml
@@ -11,7 +11,7 @@
-
+
diff --git a/addons/board/static/src/js/favorite_menu.js b/addons/board/static/src/js/favorite_menu.js
index 77cd3df4967..701ebef2801 100644
--- a/addons/board/static/src/js/favorite_menu.js
+++ b/addons/board/static/src/js/favorite_menu.js
@@ -71,6 +71,10 @@ FavoriteMenu.include({
var am = this.findAncestor(function (a) {
return a instanceof ActionManager;
});
+ // with options 'keepSearchView', it may happen that the action_id of
+ // the searchview (received in init) is not the one of the current
+ // action, which corresponds to the one we want to add to dashboard
+ var currentAction = am.getCurrentAction();
var controller = am.getCurrentController();
context.add(controller.widget.getContext());
var c = pyeval.eval('context', context);
@@ -86,7 +90,7 @@ FavoriteMenu.include({
return self._rpc({
route: '/board/add_to_dashboard',
params: {
- action_id: self.action_id || false,
+ action_id: currentAction.id || false,
context_to_save: c,
domain: domain,
view_mode: controller.viewType,
diff --git a/addons/board/static/tests/dashboard_tests.js b/addons/board/static/tests/dashboard_tests.js
index 1211fc5da05..9afb88e5648 100644
--- a/addons/board/static/tests/dashboard_tests.js
+++ b/addons/board/static/tests/dashboard_tests.js
@@ -7,6 +7,7 @@ var ListController = require('web.ListController');
var testUtils = require('web.test_utils');
var ListRenderer = require('web.ListRenderer');
+var createActionManager = testUtils.createActionManager;
var createView = testUtils.createView;
QUnit.module('Dashboard', {
@@ -556,4 +557,93 @@ QUnit.test('dashboard intercepts custom events triggered by sub controllers', fu
board.destroy();
});
+QUnit.test('save actions to dashboard', function (assert) {
+ assert.expect(4);
+
+ var actionManager = createActionManager({
+ data: this.data,
+ archs: {
+ 'partner,false,list': '
',
+ 'partner,false,search': ' ',
+ },
+ mockRPC: function (route, args) {
+ if (route === '/board/add_to_dashboard') {
+ assert.strictEqual(args.action_id, 1,
+ "should save the correct action");
+ assert.strictEqual(args.view_mode, 'list',
+ "should save the correct view type");
+ return $.when(true);
+ }
+ return this._super.apply(this, arguments);
+ },
+ });
+
+ actionManager.doAction({
+ id: 1,
+ res_model: 'partner',
+ type: 'ir.actions.act_window',
+ views: [[false, 'list']],
+ });
+
+ assert.strictEqual(actionManager.$('.o_list_view').length, 1,
+ "should display the list view");
+ assert.strictEqual($('.o_add_to_dashboard_link').length, 1,
+ "should allow the 'Add to dashboard' feature");
+
+ // add this action to dashboard
+ $('.o_add_to_dashboard_button').click();
+
+ actionManager.destroy();
+});
+
+QUnit.test('save to dashboard actions with flag keepSearchView', function (assert) {
+ assert.expect(4);
+
+ var actionManager = createActionManager({
+ data: this.data,
+ archs: {
+ 'partner,false,graph': ' ',
+ 'partner,false,list': '
',
+ 'partner,false,search': ' ',
+ },
+ mockRPC: function (route, args) {
+ if (route === '/board/add_to_dashboard') {
+ assert.strictEqual(args.action_id, 2,
+ "should save the correct action");
+ assert.strictEqual(args.view_mode, 'graph',
+ "should save the correct view type");
+ return $.when(true);
+ }
+ return this._super.apply(this, arguments);
+ },
+ });
+
+ // execute a first action
+ actionManager.doAction({
+ id: 1,
+ res_model: 'partner',
+ type: 'ir.actions.act_window',
+ views: [[false, 'list']],
+ });
+
+ // execute another action with flag 'keepSearchView' and add it to dashboard
+ var options = {keepSearchView: true};
+ actionManager.doAction({
+ id: 2,
+ res_model: 'partner',
+ type: 'ir.actions.act_window',
+ views: [[false, 'graph']],
+ }, options);
+
+ assert.strictEqual(actionManager.$('.o_graph').length, 1,
+ "should display the graph view");
+ assert.strictEqual($('.o_add_to_dashboard_link').length, 1,
+ "should allow the 'Add to dashboard' feature (this is the same searchview)");
+
+ // add this action to dashboard
+ $('.o_add_to_dashboard_button').click();
+
+ actionManager.destroy();
+});
+
});
diff --git a/addons/calendar/models/calendar.py b/addons/calendar/models/calendar.py
index d252fd7a1d8..aab7df95986 100644
--- a/addons/calendar/models/calendar.py
+++ b/addons/calendar/models/calendar.py
@@ -656,7 +656,13 @@ class Meeting(models.Model):
}[data['rrule_type']]
deadline = fields.Datetime.from_string(data['stop'])
- return deadline + relativedelta(**{delay: count * mult})
+ computed_final_date = False
+ while not computed_final_date and count > 0:
+ try: # may crash if year > 9999 (in case of recurring events)
+ computed_final_date = deadline + relativedelta(**{delay: count * mult})
+ except ValueError:
+ count -= data['interval']
+ return computed_final_date or deadline
return final_date
@api.multi
@@ -1238,7 +1244,12 @@ class Meeting(models.Model):
def _rrule_parse(self, rule_str, data, date_start):
day_list = ['mo', 'tu', 'we', 'th', 'fr', 'sa', 'su']
rrule_type = ['yearly', 'monthly', 'weekly', 'daily']
- rule = rrule.rrulestr(rule_str, dtstart=fields.Datetime.from_string(date_start))
+ ddate = fields.Datetime.from_string(date_start)
+ if 'Z' in rule_str and not ddate.tzinfo:
+ ddate = ddate.replace(tzinfo=pytz.timezone('UTC'))
+ rule = rrule.rrulestr(rule_str, dtstart=ddate)
+ else:
+ rule = rrule.rrulestr(rule_str, dtstart=ddate)
if rule._freq > 0 and rule._freq < 4:
data['rrule_type'] = rrule_type[rule._freq]
diff --git a/addons/calendar/views/calendar_views.xml b/addons/calendar/views/calendar_views.xml
index 1548ddfacba..80994d946fa 100644
--- a/addons/calendar/views/calendar_views.xml
+++ b/addons/calendar/views/calendar_views.xml
@@ -194,7 +194,6 @@
-
diff --git a/addons/crm/i18n/fr.po b/addons/crm/i18n/fr.po
index 5396d477ca8..927944d3420 100644
--- a/addons/crm/i18n/fr.po
+++ b/addons/crm/i18n/fr.po
@@ -2492,7 +2492,7 @@ msgstr "Cet objectif n'existe pas."
#: model:ir.ui.view,arch_db:crm.crm_case_form_view_leads
#: model:ir.ui.view,arch_db:crm.crm_case_form_view_oppor
msgid "Title"
-msgstr "Civilité"
+msgstr "Titre"
#. module: crm
#: model:ir.ui.view,arch_db:crm.view_crm_case_opportunities_filter
diff --git a/addons/crm/i18n/nl.po b/addons/crm/i18n/nl.po
index 54a2c177c77..078a6c36e63 100644
--- a/addons/crm/i18n/nl.po
+++ b/addons/crm/i18n/nl.po
@@ -500,7 +500,7 @@ msgstr ""
#: code:addons/crm/static/src/js/tour.js:54
#, python-format
msgid "Click on the opportunity to zoom in."
-msgstr ""
+msgstr "Klik op de prospect om in te zoomen."
#. module: crm
#: model:ir.model.fields,field_description:crm.field_crm_opportunity_report__date_closed
@@ -1022,7 +1022,7 @@ msgstr "Forceer toewijzing"
#. module: crm
#: model:ir.ui.view,arch_db:crm.res_config_settings_view_form
msgid "Format phone numbers based on national conventions"
-msgstr ""
+msgstr "Opmaak telefoonnummers gebaseerd op nationale afspraken."
#. module: crm
#: code:addons/crm/models/crm_lead.py:588
@@ -1115,7 +1115,7 @@ msgstr "Hoog"
#. module: crm
#: model:ir.model.fields,help:crm.field_crm_team__dashboard_graph_group_pipeline
msgid "How this channel's dashboard graph will group the results."
-msgstr "Hoe dit kanaal zijn dashboard grafieken het resultaat groeperen."
+msgstr "Hoe dit kanaal zijn dashboard grafieken zal groeperen."
#. module: crm
#: model:ir.model.fields,field_description:crm.field_crm_activity_report__id
@@ -1878,7 +1878,7 @@ msgstr "Telefoon"
#. module: crm
#: model:ir.model.fields,field_description:crm.field_res_config_settings__module_crm_phone_validation
msgid "Phone Formatting"
-msgstr ""
+msgstr "Telefoonnummer opmaak"
#. module: crm
#: code:addons/crm/models/crm_team.py:165
diff --git a/addons/delivery/i18n/nl.po b/addons/delivery/i18n/nl.po
index 0ec30a52699..29894eae5e4 100644
--- a/addons/delivery/i18n/nl.po
+++ b/addons/delivery/i18n/nl.po
@@ -482,7 +482,7 @@ msgstr "Lengte moet positief zijn"
#. module: delivery
#: model:ir.model.fields,help:delivery.field_delivery_carrier__debug_logging
msgid "Log requests in order to ease debugging"
-msgstr "Log aanvragen in volgorde om makkelijker fouten te kunnen traceren"
+msgstr "Log aanvragen om gemakkelijker fouten te kunnen traceren"
#. module: delivery
#: model:ir.ui.view,arch_db:delivery.view_picking_withcarrier_out_form
diff --git a/addons/delivery/i18n/tr.po b/addons/delivery/i18n/tr.po
index 7c1abce7d98..95001ab65ff 100644
--- a/addons/delivery/i18n/tr.po
+++ b/addons/delivery/i18n/tr.po
@@ -250,7 +250,7 @@ msgstr "Teslimat Paketi Seçim Sihirbazı"
#: model:ir.ui.menu,name:delivery.menu_delivery_packagings
#: model:ir.ui.view,arch_db:delivery.product_packaging_delivery_tree
msgid "Delivery Packages"
-msgstr ""
+msgstr "Teslimat Paketi"
#. module: delivery
#: model:ir.model.fields,field_description:delivery.field_choose_delivery_package__delivery_packaging_id
diff --git a/addons/delivery/i18n/zh_CN.po b/addons/delivery/i18n/zh_CN.po
index fec8b6eb997..534d92e166d 100644
--- a/addons/delivery/i18n/zh_CN.po
+++ b/addons/delivery/i18n/zh_CN.po
@@ -11,13 +11,14 @@
# 老窦 北京 <2662059195@qq.com>, 2018
# e2f , 2018
# e2f_cn c5 , 2018
+# John Lin , 2018
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server saas~11.2\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: e2f_cn c5 , 2018\n"
+"Last-Translator: John Lin , 2018\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"
@@ -720,7 +721,7 @@ msgstr "发货重量"
#: model:ir.ui.view,arch_db:delivery.report_package_barcode_delivery
#: model:ir.ui.view,arch_db:delivery.report_package_barcode_small_delivery
msgid "Shipping Weight:"
-msgstr ""
+msgstr "装运重量:"
#. module: delivery
#: model:ir.model.fields,help:delivery.field_product_product__hs_code
@@ -849,7 +850,7 @@ msgstr ""
#: model:ir.ui.view,arch_db:delivery.report_package_barcode_delivery
#: model:ir.ui.view,arch_db:delivery.report_package_barcode_small_delivery
msgid "Weight:"
-msgstr ""
+msgstr "重量:"
#. module: delivery
#: model:ir.model.fields,field_description:delivery.field_product_packaging__width
diff --git a/addons/delivery/models/sale_order.py b/addons/delivery/models/sale_order.py
index f6dd0fbb9d8..b2ffaf67231 100644
--- a/addons/delivery/models/sale_order.py
+++ b/addons/delivery/models/sale_order.py
@@ -96,9 +96,10 @@ class SaleOrder(models.Model):
taxes_ids = self.fiscal_position_id.map_tax(taxes, carrier.product_id, self.partner_id).ids
# Create the sales order line
+ carrier_name = carrier.product_id.with_context(lang=self.partner_id.lang).name_get()[0][1]
values = {
'order_id': self.id,
- 'name': carrier.name,
+ 'name': carrier_name,
'product_uom_qty': 1,
'product_uom': carrier.product_id.uom_id.id,
'product_id': carrier.product_id.id,
diff --git a/addons/delivery/models/stock_picking.py b/addons/delivery/models/stock_picking.py
index 395ca2f753a..86517b1d0ec 100644
--- a/addons/delivery/models/stock_picking.py
+++ b/addons/delivery/models/stock_picking.py
@@ -159,6 +159,8 @@ class StockPicking(models.Model):
def send_to_shipper(self):
self.ensure_one()
res = self.carrier_id.send_shipping(self)[0]
+ if self.carrier_id.free_over and self.sale_id and self.sale_id._compute_amount_total_without_delivery() >= self.carrier_id.amount:
+ res['exact_price'] = 0.0
self.carrier_price = res['exact_price']
self.carrier_tracking_ref = res['tracking_number']
order_currency = self.sale_id.currency_id or self.company_id.currency_id
diff --git a/addons/delivery/tests/test_delivery_cost.py b/addons/delivery/tests/test_delivery_cost.py
index 67ff55339ba..7e496317279 100644
--- a/addons/delivery/tests/test_delivery_cost.py
+++ b/addons/delivery/tests/test_delivery_cost.py
@@ -30,7 +30,10 @@ class TestDeliveryCost(common.TransactionCase):
self.free_delivery = self.env.ref('delivery.free_delivery_carrier')
# as the tests hereunder assume all the prices in USD, we must ensure
# that the company actually uses USD
- self.env.user.company_id.write({'currency_id': self.env.ref('base.USD').id})
+ self.env.cr.execute(
+ "UPDATE res_company SET currency_id = %s WHERE id = %s",
+ [self.env.ref('base.USD').id, self.env.user.company_id.id])
+ self.pricelist.currency_id = self.env.ref('base.USD').id
def test_00_delivery_cost(self):
# In order to test Carrier Cost
diff --git a/addons/event/models/event.py b/addons/event/models/event.py
index 8da37166275..e8d9fe33abe 100644
--- a/addons/event/models/event.py
+++ b/addons/event/models/event.py
@@ -220,6 +220,11 @@ class EventEvent(models.Model):
else:
self.date_end_located = False
+ @api.onchange('is_online')
+ def _onchange_is_online(self):
+ if self.is_online:
+ self.address_id = False
+
@api.onchange('event_type_id')
def _onchange_type(self):
if self.event_type_id:
diff --git a/addons/event/models/event_mail.py b/addons/event/models/event_mail.py
index 1013f5a083b..680e1d4ba8a 100644
--- a/addons/event/models/event_mail.py
+++ b/addons/event/models/event_mail.py
@@ -4,7 +4,12 @@ from datetime import datetime
from dateutil.relativedelta import relativedelta
from odoo import api, fields, models, tools
+from odoo.tools import exception_to_unicode
+from odoo.tools.translate import _
+import random
+import logging
+_logger = logging.getLogger(__name__)
_INTERVALS = {
'hours': lambda interval: relativedelta(hours=interval),
@@ -114,13 +119,52 @@ class EventMailScheduler(models.Model):
self.write({'mail_sent': True})
return True
+ @api.model
+ def _warn_template_error(self, scheduler, exception):
+ # We warn ~ once by hour ~ instead of every 10 min if the interval unit is more than 'hours'.
+ if random.random() < 0.1666 or scheduler.interval_unit in ('now', 'hours'):
+ ex_s = exception_to_unicode(exception)
+ try:
+ event, template = scheduler.event_id, scheduler.template_id
+ emails = list(set([event.organizer_id.email, event.user_id.email, template.write_uid.email]))
+ subject = _("WARNING: Event Scheduler Error for event: %s" % event.name)
+ body = _("""Event Scheduler for:
+ - Event: %s (%s)
+ - Scheduled: %s
+ - Template: %s (%s)
+
+ Failed with error:
+ - %s
+
+ You receive this email because you are:
+ - the organizer of the event,
+ - or the responsible of the event,
+ - or the last writer of the template."""
+ % (event.name, event.id, scheduler.scheduled_date, template.name, template.id, ex_s))
+ email = self.env['ir.mail_server'].build_email(
+ email_from=self.env.user.email,
+ email_to=emails,
+ subject=subject, body=body,
+ )
+ self.env['ir.mail_server'].send_email(email)
+ except Exception as e:
+ _logger.error("Exception while sending traceback by email: %s.\n Original Traceback:\n%s", e, exception)
+ pass
+
@api.model
def run(self, autocommit=False):
schedulers = self.search([('done', '=', False), ('scheduled_date', '<=', datetime.strftime(fields.datetime.now(), tools.DEFAULT_SERVER_DATETIME_FORMAT))])
for scheduler in schedulers:
- scheduler.execute()
- if autocommit:
- self.env.cr.commit()
+ try:
+ with self.env.cr.savepoint():
+ scheduler.execute()
+ except Exception as e:
+ _logger.exception(e)
+ self.invalidate_cache()
+ self._warn_template_error(scheduler, e)
+ else:
+ if autocommit:
+ self.env.cr.commit()
return True
diff --git a/addons/event/security/ir.model.access.csv b/addons/event/security/ir.model.access.csv
index 49d859ad183..ed7ec0e0cc6 100644
--- a/addons/event/security/ir.model.access.csv
+++ b/addons/event/security/ir.model.access.csv
@@ -5,7 +5,7 @@ access_event_event_portal,event.event.portal,model_event_event,,1,0,0,0
access_event_event_user,event.event.user,model_event_event,event.group_event_user,1,0,0,0
access_event_event_manager,event.event.manager,model_event_event,event.group_event_manager,1,1,1,1
access_event_registration,event.registration,model_event_registration,event.group_event_user,1,1,1,1
-access_event_registration_portal,event.registration,model_event_registration,,1,0,0,0
+access_event_registration_portal,event.registration,model_event_registration,,0,0,0,0
access_event_mail,event.mail,model_event_mail,event.group_event_user,1,0,0,0
access_event_mail_manager,event.mail manager,model_event_mail,event.group_event_manager,1,1,1,1
access_event_mail_registration,event.mail.registration,model_event_mail_registration,event.group_event_user,1,0,0,0
diff --git a/addons/event_sale/models/sale_order.py b/addons/event_sale/models/sale_order.py
index 20e04f3ecea..208f9b9d901 100644
--- a/addons/event_sale/models/sale_order.py
+++ b/addons/event_sale/models/sale_order.py
@@ -41,7 +41,7 @@ class SaleOrderLine(models.Model):
order line has a product_uom_qty attribute that will be the number of
registrations linked to this line. This method update existing registrations
and create new one for missing one. """
- Registration = self.env['event.registration']
+ Registration = self.env['event.registration'].sudo()
registrations = Registration.search([('sale_order_line_id', 'in', self.ids), ('state', '!=', 'cancel')])
for so_line in self.filtered('event_id'):
existing_registrations = registrations.filtered(lambda self: self.sale_order_line_id.id == so_line.id)
diff --git a/addons/fleet/i18n/nl.po b/addons/fleet/i18n/nl.po
index 8edb02db928..72eef1fb731 100644
--- a/addons/fleet/i18n/nl.po
+++ b/addons/fleet/i18n/nl.po
@@ -363,7 +363,7 @@ msgstr ""
#. module: fleet
#: model:ir.actions.act_window,help:fleet.fleet_vehicle_costs_action
msgid "Create a new cost"
-msgstr ""
+msgstr "Maak een nieuwe kost"
#. module: fleet
#: model:ir.actions.act_window,help:fleet.fleet_vehicle_log_fuel_action
@@ -378,7 +378,7 @@ msgstr ""
#. module: fleet
#: model:ir.actions.act_window,help:fleet.fleet_vehicle_model_action
msgid "Create a new model"
-msgstr ""
+msgstr "Maak een nieuw model"
#. module: fleet
#: model:ir.actions.act_window,help:fleet.fleet_vehicle_odometer_action
diff --git a/addons/gamification/i18n/nl.po b/addons/gamification/i18n/nl.po
index 2ec3fb4eda0..ee201ef7b68 100644
--- a/addons/gamification/i18n/nl.po
+++ b/addons/gamification/i18n/nl.po
@@ -929,7 +929,7 @@ msgstr "Gebruiker aanmaken"
#. module: gamification
#: model:ir.actions.act_window,help:gamification.badge_list_action
msgid "Create a new badge"
-msgstr ""
+msgstr "Maak een nieuwe badge"
#. module: gamification
#: model:ir.actions.act_window,help:gamification.challenge_list_action
@@ -944,7 +944,7 @@ msgstr "Maak een nieuw doel"
#. module: gamification
#: model:ir.actions.act_window,help:gamification.goal_definition_list_action
msgid "Create a new goal definition"
-msgstr ""
+msgstr "Maak een nieuwe doeldefinitie aan"
#. module: gamification
#: model:ir.actions.act_window,help:gamification.action_new_simplified_res_users
diff --git a/addons/gamification/models/goal.py b/addons/gamification/models/goal.py
index 3c062401662..6cd52b2ab81 100644
--- a/addons/gamification/models/goal.py
+++ b/addons/gamification/models/goal.py
@@ -259,7 +259,7 @@ class Goal(models.Model):
If the end date is passed (at least +1 day, time not considered) without
the target value being reached, the goal is set as failed."""
goals_by_definition = {}
- for goal in self:
+ for goal in self.with_context(prefetch_fields=False):
goals_by_definition.setdefault(goal.definition_id, []).append(goal)
for definition, goals in goals_by_definition.items():
diff --git a/addons/gamification_sale_crm/i18n/ru.po b/addons/gamification_sale_crm/i18n/ru.po
index 4cc45095e3c..728f1a7db14 100644
--- a/addons/gamification_sale_crm/i18n/ru.po
+++ b/addons/gamification_sale_crm/i18n/ru.po
@@ -4,14 +4,15 @@
#
# Translators:
# Максим Дронь , 2017
-# Martin Trigaux , 2017
+# Martin Trigaux, 2017
+# sergeiruzkiicode , 2018
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 10.saas~18\n"
+"Project-Id-Version: Odoo Server saas~11.2\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-09-20 09:53+0000\n"
-"PO-Revision-Date: 2017-09-20 09:53+0000\n"
-"Last-Translator: Martin Trigaux , 2017\n"
+"POT-Creation-Date: 2018-03-22 14:10+0000\n"
+"PO-Revision-Date: 2018-03-22 14:10+0000\n"
+"Last-Translator: sergeiruzkiicode , 2018\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"
@@ -70,7 +71,7 @@ msgstr "Время для подготовки инициативы"
#. module: gamification_sale_crm
#: model:gamification.goal.definition,name:gamification_sale_crm.definition_crm_tot_customer_refunds
msgid "Total Customer Credit Notes"
-msgstr ""
+msgstr "Всего кредит-нот клиента"
#. module: gamification_sale_crm
#: model:gamification.challenge.line,name:gamification_sale_crm.line_crm_sale1
diff --git a/addons/hr/i18n/ru.po b/addons/hr/i18n/ru.po
index dcd02f55b1e..f31224ae3d0 100644
--- a/addons/hr/i18n/ru.po
+++ b/addons/hr/i18n/ru.po
@@ -14,13 +14,14 @@
# Denis Trepalin , 2017
# Masha Koc , 2017
# Dmitry sky , 2017
+# sergeiruzkiicode , 2018
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server saas~11.2\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: Dmitry sky , 2017\n"
+"Last-Translator: sergeiruzkiicode , 2018\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"
@@ -130,7 +131,7 @@ msgstr "Компания"
#. module: hr
#: model:ir.model.fields,field_description:hr.field_res_config_settings__resource_calendar_id
msgid "Company Working Hours"
-msgstr ""
+msgstr "Рабочие часы компании"
#. module: hr
#: model:ir.model.fields,field_description:hr.field_hr_department__complete_name
@@ -287,6 +288,7 @@ msgid ""
"Enter here the private address of the employee, not the one linked to your "
"company."
msgstr ""
+"Сюда следует вводить личный адрес сотрудника, не связанный с компанией."
#. module: hr
#: code:addons/hr/models/hr.py:310
@@ -556,6 +558,9 @@ msgid ""
" related to employees by departments: expenses, timesheets,\n"
" leaves, recruitments, etc."
msgstr ""
+"В Odoo структура отдела используется, чтобы управлять всеми документами,\n"
+" относящимися к сотрудникам отдела: расходыми, табелями,\n"
+" отгулами, рекрутиногом и т.п."
#. module: hr
#: model:res.groups,name:hr.group_hr_user
@@ -595,12 +600,12 @@ msgstr "Должность"
#. module: hr
#: model:ir.model.fields,field_description:hr.field_hr_employee__address_home_id
msgid "Private Address"
-msgstr ""
+msgstr "Личный адрес"
#. module: hr
#: model:ir.ui.view,arch_db:hr.view_employee_form
msgid "Private Information"
-msgstr ""
+msgstr "Личная информация"
#. module: hr
#: model:ir.actions.act_window,help:hr.action_hr_job
@@ -658,6 +663,8 @@ msgid ""
"Set default calendar used to compute time allocation for leaves, timesheets,"
" ..."
msgstr ""
+"Выберите календарь по умолчанию, который используется для распределения "
+"рабочего времени табелях, отуглах и т.д."
#. module: hr
#: model:ir.model.fields,help:hr.field_hr_job__state
@@ -677,17 +684,17 @@ msgstr "Настройки"
#. module: hr
#: model:ir.model.fields,field_description:hr.field_res_config_settings__module_hr_org_chart
msgid "Show Organizational Chart"
-msgstr ""
+msgstr "Показать организационную структуру"
#. module: hr
#: model:ir.ui.view,arch_db:hr.res_config_settings_view_form
msgid "Show organizational chart on employee form"
-msgstr ""
+msgstr "Показать организационную структуру в карточке сотрудника"
#. module: hr
#: model:ir.ui.view,arch_db:hr.res_config_settings_view_form
msgid "Show organizational chart on employee form."
-msgstr ""
+msgstr "Показать организационную структуру в карточке сотрудника."
#. module: hr
#: selection:hr.employee,marital:0
@@ -760,7 +767,7 @@ msgstr "Теги"
#. module: hr
#: model:ir.model.fields,field_description:hr.field_hr_employee__is_address_home_a_company
msgid "The employee adress has a company linked"
-msgstr ""
+msgstr "Адрес сотрудника привязан к адресу компании"
#. module: hr
#: sql_constraint:hr.job:0
@@ -809,6 +816,9 @@ msgid ""
" This private address is used in the expense report reimbursement document.\n"
" It should be different from the work address."
msgstr ""
+"Введите личный(домашний) адрес сотрудника.\n"
+" Они используется в документах по возмещениям расходов и пр.\n"
+" Должен отличаться от рабочего адреса."
#. module: hr
#: model:ir.model.fields,field_description:hr.field_hr_employee__user_id
@@ -823,7 +833,7 @@ msgstr "Пользователи"
#. module: hr
#: model:ir.ui.view,arch_db:hr.hr_job_view_kanban
msgid "Vacancies :"
-msgstr ""
+msgstr "Вакансии :"
#. module: hr
#: model:ir.model.fields,field_description:hr.field_hr_employee__visa_expire
@@ -855,7 +865,7 @@ msgstr ""
#. module: hr
#: model:ir.model.fields,field_description:hr.field_hr_employee__address_id
msgid "Work Address"
-msgstr ""
+msgstr "Рабочий адрес"
#. module: hr
#: model:ir.model.fields,field_description:hr.field_hr_employee__work_email
@@ -865,7 +875,7 @@ msgstr "Рабочая эл. почта"
#. module: hr
#: model:ir.ui.view,arch_db:hr.view_employee_form
msgid "Work Information"
-msgstr ""
+msgstr "Информация по работе"
#. module: hr
#: model:ir.model.fields,field_description:hr.field_hr_employee__work_location
@@ -880,7 +890,7 @@ msgstr "Рабочий сотовый телефон"
#. module: hr
#: model:ir.ui.view,arch_db:hr.res_config_settings_view_form
msgid "Work Organization"
-msgstr ""
+msgstr "Организация работы"
#. module: hr
#: model:ir.ui.view,arch_db:hr.view_employee_form
diff --git a/addons/hr_attendance/models/hr_employee.py b/addons/hr_attendance/models/hr_employee.py
index 3f7eee536cf..e0cec9681bc 100644
--- a/addons/hr_attendance/models/hr_employee.py
+++ b/addons/hr_attendance/models/hr_employee.py
@@ -54,7 +54,8 @@ class HrEmployee(models.Model):
@api.depends('last_attendance_id.check_in', 'last_attendance_id.check_out', 'last_attendance_id')
def _compute_attendance_state(self):
for employee in self:
- employee.attendance_state = employee.last_attendance_id and not employee.last_attendance_id.check_out and 'checked_in' or 'checked_out'
+ att = employee.last_attendance_id.sudo()
+ employee.attendance_state = att and not att.check_out and 'checked_in' or 'checked_out'
@api.constrains('pin')
def _verify_pin(self):
diff --git a/addons/hr_attendance/static/src/js/kiosk_mode.js b/addons/hr_attendance/static/src/js/kiosk_mode.js
index 9b7f5b7f7cd..750fa43df47 100644
--- a/addons/hr_attendance/static/src/js/kiosk_mode.js
+++ b/addons/hr_attendance/static/src/js/kiosk_mode.js
@@ -2,6 +2,7 @@ odoo.define('hr_attendance.kiosk_mode', function (require) {
"use strict";
var AbstractAction = require('web.AbstractAction');
+var ajax = require('web.ajax');
var core = require('web.core');
var Session = require('web.session');
@@ -28,6 +29,8 @@ var KioskMode = AbstractAction.extend({
self.$el.html(QWeb.render("HrAttendanceKioskMode", {widget: self}));
self.start_clock();
});
+ // Make a RPC call every day to keep the session alive
+ self._interval = window.setInterval(this._callServer.bind(this), (60*60*1000*24));
return $.when(def, this._super.apply(this, arguments));
},
@@ -56,8 +59,15 @@ var KioskMode = AbstractAction.extend({
destroy: function () {
core.bus.off('barcode_scanned', this, this._onBarcodeScanned);
clearInterval(this.clock_start);
+ clearInterval(this._interval);
this._super.apply(this, arguments);
},
+
+ _callServer: function () {
+ // Make a call to the database to avoid the auto close of the session
+ return ajax.rpc("/web/webclient/version_info", {});
+ },
+
});
core.action_registry.add('hr_attendance_kiosk_mode', KioskMode);
diff --git a/addons/hr_contract/i18n/ru.po b/addons/hr_contract/i18n/ru.po
index 9fb3eaa80a4..f6dcc1db875 100644
--- a/addons/hr_contract/i18n/ru.po
+++ b/addons/hr_contract/i18n/ru.po
@@ -14,13 +14,14 @@
# Sergey , 2017
# Gennady Marchenko , 2017
# Nikita Moshkalov , 2017
+# sergeiruzkiicode , 2018
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server saas~11.2\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: Nikita Moshkalov , 2017\n"
+"Last-Translator: sergeiruzkiicode , 2018\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"
@@ -187,7 +188,7 @@ msgstr "Отображаемое Имя"
#. module: hr_contract
#: model:ir.ui.view,arch_db:hr_contract.hr_contract_view_kanban
msgid "Edit Contract"
-msgstr ""
+msgstr "Редактировать договор"
#. module: hr_contract
#: model:ir.model,name:hr_contract.model_hr_employee
@@ -204,12 +205,12 @@ msgstr "Договор с сотрудником"
#. module: hr_contract
#: model:ir.model.fields,help:hr_contract.field_hr_contract__wage
msgid "Employee's monthly gross wage."
-msgstr ""
+msgstr "Месячная зарплата сотрудника брутто."
#. module: hr_contract
#: model:ir.model.fields,help:hr_contract.field_hr_contract__resource_calendar_id
msgid "Employee's working schedule."
-msgstr ""
+msgstr "График работы сотрудника"
#. module: hr_contract
#: model:ir.model.fields,field_description:hr_contract.field_hr_contract__date_end
@@ -219,17 +220,17 @@ msgstr "Дата окончания"
#. module: hr_contract
#: model:ir.model.fields,help:hr_contract.field_hr_contract__date_end
msgid "End date of the contract (if it's a fixed-term contract)."
-msgstr ""
+msgstr "Дата окончания контракта(контракт с фиксированным сроком)"
#. module: hr_contract
#: model:ir.model.fields,help:hr_contract.field_hr_contract__trial_date_end
msgid "End date of the trial period (if there is one)."
-msgstr ""
+msgstr "Дата окончания испытательного срока(если таковой имеется)"
#. module: hr_contract
#: model:ir.model.fields,field_description:hr_contract.field_hr_contract__trial_date_end
msgid "End of Trial Period"
-msgstr ""
+msgstr "Конец испытательного срока"
#. module: hr_contract
#: selection:hr.contract,state:0
@@ -326,7 +327,7 @@ msgstr "Дата медицинского осмотра"
#. module: hr_contract
#: model:ir.ui.view,arch_db:hr_contract.hr_contract_view_form
msgid "Monthly Advantages in Cash"
-msgstr ""
+msgstr "Месячные поощрения в деньгах"
#. module: hr_contract
#: selection:hr.contract,state:0
@@ -357,7 +358,7 @@ msgstr "Выполняется"
#. module: hr_contract
#: model:ir.ui.view,arch_db:hr_contract.hr_contract_view_form
msgid "Salary Information"
-msgstr ""
+msgstr "Информация по заработной плате"
#. module: hr_contract
#: model:ir.ui.view,arch_db:hr_contract.hr_contract_view_search
@@ -383,7 +384,7 @@ msgstr "Дата начала"
#. module: hr_contract
#: model:ir.model.fields,help:hr_contract.field_hr_contract__date_start
msgid "Start date of the contract."
-msgstr ""
+msgstr "Дата начала договора"
#. module: hr_contract
#: model:ir.ui.view,arch_db:hr_contract.hr_contract_view_search
diff --git a/addons/hr_expense/data/hr_expense_data.xml b/addons/hr_expense/data/hr_expense_data.xml
index 6a52987ee40..c1e3b559758 100644
--- a/addons/hr_expense/data/hr_expense_data.xml
+++ b/addons/hr_expense/data/hr_expense_data.xml
@@ -2,21 +2,6 @@
-
-
- expense
-
-
- employees
-
-
-
-
-
-
- Expenses
-
-
Expenses
0.0
diff --git a/addons/hr_expense/data/hr_expense_demo.xml b/addons/hr_expense/data/hr_expense_demo.xml
index bb8c605f1aa..514a3189001 100644
--- a/addons/hr_expense/data/hr_expense_demo.xml
+++ b/addons/hr_expense/data/hr_expense_demo.xml
@@ -28,7 +28,7 @@
CarTRA
-
+
@@ -52,7 +52,7 @@
HA0
-
+
diff --git a/addons/hr_expense/i18n/hu.po b/addons/hr_expense/i18n/hu.po
index c64915c2125..1d8e7ea2644 100644
--- a/addons/hr_expense/i18n/hu.po
+++ b/addons/hr_expense/i18n/hu.po
@@ -1187,7 +1187,7 @@ msgstr "A napló amit a kiadás elvégzése után használ."
#: code:addons/hr_expense/wizard/hr_expense_sheet_register_payment.py:35
#, python-format
msgid "The payment amount must be strictly positive."
-msgstr ""
+msgstr "A fizetés összege csak pozitív lehet"
#. module: hr_expense
#: model:ir.model.fields,help:hr_expense.field_hr_expense_sheet__bank_journal_id
diff --git a/addons/hr_expense/i18n/nl.po b/addons/hr_expense/i18n/nl.po
index cc758e9f644..f54f89db1c0 100644
--- a/addons/hr_expense/i18n/nl.po
+++ b/addons/hr_expense/i18n/nl.po
@@ -275,12 +275,12 @@ msgstr "Goedgekeurde declaraties"
#: model:ir.actions.act_window,help:hr_expense.hr_expense_actions_all
#: model:ir.actions.act_window,help:hr_expense.hr_expense_actions_my_unsubmitted
msgid "Create a new expense"
-msgstr ""
+msgstr "Maak een nieuwe uitgave"
#. module: hr_expense
#: model:ir.actions.act_window,help:hr_expense.hr_expense_product
msgid "Create a new expense category"
-msgstr ""
+msgstr "Maak een nieuwe uitgave categorie"
#. module: hr_expense
#: model:ir.actions.act_window,help:hr_expense.action_hr_expense_sheet_all_all
@@ -288,7 +288,7 @@ msgstr ""
#: model:ir.actions.act_window,help:hr_expense.action_hr_expense_sheet_all_to_post
#: model:ir.actions.act_window,help:hr_expense.action_hr_expense_sheet_my_all
msgid "Create a new expense report"
-msgstr ""
+msgstr "Maak een nieuw uitgave rapport"
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense__create_uid
diff --git a/addons/hr_expense/i18n/zh_CN.po b/addons/hr_expense/i18n/zh_CN.po
index fe9fdc58cbd..2754a62c695 100644
--- a/addons/hr_expense/i18n/zh_CN.po
+++ b/addons/hr_expense/i18n/zh_CN.po
@@ -119,7 +119,7 @@ msgstr "验证于: "
msgid ""
"A payment of %s %s with the reference %s related"
" to your expense %s has been made."
-msgstr "已完成含有与费用 % 相关的参考 % 的 %s %s 支付 。"
+msgstr "金额为 %s %s 的付款单 %s (相关费用申请单: %s ) 已支付。"
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense__account_id
diff --git a/addons/hr_expense/models/hr_expense.py b/addons/hr_expense/models/hr_expense.py
index ce1c039c355..c30dcba9512 100644
--- a/addons/hr_expense/models/hr_expense.py
+++ b/addons/hr_expense/models/hr_expense.py
@@ -437,6 +437,7 @@ class HrExpense(models.Model):
expense_description = expense_description.replace(product_code.group(), '')
products = self.env['product.product'].search([('default_code', 'ilike', product_code.group(1))]) or default_product
product = products.filtered(lambda p: p.default_code == product_code.group(1)) or products[0]
+ account = product.product_tmpl_id._get_product_accounts()['expense']
pattern = '[-+]?(\d+(\.\d*)?|\.\d+)([eE][-+]?\d+)?'
# Match the last occurence of a float in the string
@@ -463,6 +464,8 @@ class HrExpense(models.Model):
'unit_amount': price,
'company_id': employee.company_id.id,
})
+ if account:
+ custom_values['account_id'] = account.id
return super(HrExpense, self).message_new(msg_dict, custom_values)
diff --git a/addons/hr_gamification/i18n/ru.po b/addons/hr_gamification/i18n/ru.po
index b5cb3057cb8..3151c8d0e4f 100644
--- a/addons/hr_gamification/i18n/ru.po
+++ b/addons/hr_gamification/i18n/ru.po
@@ -9,13 +9,14 @@
# Collex100, 2017
# Sergey Vilizhanin , 2017
# Максим Дронь , 2017
+# sergeiruzkiicode , 2018
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server saas~11.2\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: Максим Дронь , 2017\n"
+"Last-Translator: sergeiruzkiicode , 2018\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"
@@ -160,7 +161,7 @@ msgstr "Награжденые"
#. module: hr_gamification
#: model:ir.model.fields,field_description:hr_gamification.field_gamification_badge__granted_employees_count
msgid "Granted Employees Count"
-msgstr ""
+msgstr "Количество сотрудников с наградами"
#. module: hr_gamification
#: model:ir.model.fields,field_description:hr_gamification.field_hr_employee__has_badges
diff --git a/addons/hr_holidays/i18n/nl.po b/addons/hr_holidays/i18n/nl.po
index 33cc5a9d3be..1b438212806 100644
--- a/addons/hr_holidays/i18n/nl.po
+++ b/addons/hr_holidays/i18n/nl.po
@@ -262,12 +262,12 @@ msgstr "Verloftoewijzing goedkeuren"
#. module: hr_holidays
#: model:mail.message.subtype,name:hr_holidays.mt_department_leave_allocation_confirmed
msgid "Allocations Confirmed"
-msgstr ""
+msgstr "Bevestigde verloven"
#. module: hr_holidays
#: model:mail.message.subtype,name:hr_holidays.mt_department_leave_allocation_first_validated
msgid "Allocations First Approval"
-msgstr ""
+msgstr "Verloven eerste goedkeuring"
#. module: hr_holidays
#: model:ir.ui.menu,name:hr_holidays.menu_open_department_leave_allocation_approve
@@ -319,7 +319,7 @@ msgstr "Goedgekeurd"
#. module: hr_holidays
#: model:ir.ui.view,arch_db:hr_holidays.view_hr_leave_allocation_filter
msgid "Approved Allocations"
-msgstr ""
+msgstr "Goedgekeurde verloven"
#. module: hr_holidays
#: model:ir.ui.view,arch_db:hr_holidays.view_hr_holidays_filter
@@ -329,7 +329,7 @@ msgstr "Goedgekeurd verlof"
#. module: hr_holidays
#: model:ir.ui.view,arch_db:hr_holidays.view_hr_holidays_filter_report
msgid "Approved Requests"
-msgstr ""
+msgstr "Goedgekeurde aanvragen"
#. module: hr_holidays
#: model:ir.ui.view,arch_db:hr_holidays.hr_holidays_leaves_assign_tree_view
diff --git a/addons/hr_holidays/i18n/ru.po b/addons/hr_holidays/i18n/ru.po
index 1d3178fdce9..1bbdb172458 100644
--- a/addons/hr_holidays/i18n/ru.po
+++ b/addons/hr_holidays/i18n/ru.po
@@ -16,13 +16,14 @@
# Алексей Билькевич (belskiy) , 2017
# Viktor Pogrebniak , 2017
# Max Belyanin , 2017
+# sergeiruzkiicode , 2018
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server saas~11.2\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: Max Belyanin , 2017\n"
+"Last-Translator: sergeiruzkiicode , 2018\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"
@@ -65,7 +66,7 @@ msgstr "%g оставаясь вне %g"
#: code:addons/hr_holidays/models/hr_leave.py:205
#, python-format
msgid "%s : %.2f day(s)"
-msgstr ""
+msgstr "%s : %.2f дней"
#. module: hr_holidays
#: code:addons/hr_holidays/models/hr_leave.py:207
@@ -105,12 +106,12 @@ msgstr "<th class=\"text-center\" colspan="
#. module: hr_holidays
#: model:ir.ui.view,arch_db:hr_holidays.hr_leave_report_kanban
msgid "from "
-msgstr ""
+msgstr "from "
#. module: hr_holidays
#: model:ir.ui.view,arch_db:hr_holidays.hr_leave_report_kanban
msgid "to "
-msgstr ""
+msgstr "to "
#. module: hr_holidays
#: model:ir.ui.view,arch_db:hr_holidays.report_holidayssummary
@@ -260,7 +261,7 @@ msgstr "Распределение для %s"
#: code:addons/hr_holidays/models/hr_leave_allocation.py:114
#, python-format
msgid "Allocation of %s : %.2f day(s) To %s"
-msgstr ""
+msgstr "Планирование для %s : %.2f день(дней) до %s"
#. module: hr_holidays
#: model:ir.model.fields,field_description:hr_holidays.field_hr_department__allocation_to_approve_count
@@ -639,7 +640,7 @@ msgstr "Первое утверждение"
#: code:addons/hr_holidays/report/holidays_summary_report.py:112
#, python-format
msgid "Form content is missing, this report cannot be printed."
-msgstr ""
+msgstr "Не найдены данные в форме, отчет не сформирован"
#. module: hr_holidays
#: model:ir.model.fields,field_description:hr_holidays.field_hr_holidays_summary_dept__date_from
@@ -929,7 +930,7 @@ msgstr "Обзор отгулов"
#. module: hr_holidays
#: model:ir.ui.view,arch_db:hr_holidays.hr_holiday_status_view_kanban
msgid "Leaves Taken:"
-msgstr ""
+msgstr "Использованные отпуска:"
#. module: hr_holidays
#: model:ir.actions.act_window,name:hr_holidays.action_hr_holidays_summary_dept
@@ -963,7 +964,7 @@ msgstr "Отпуска."
#. module: hr_holidays
#: model:hr.leave.type,name:hr_holidays.holiday_status_cl
msgid "Legal Leaves 2018"
-msgstr ""
+msgstr "Обязательные отпуска 2018"
#. module: hr_holidays
#: selection:hr.leave.type,color_name:0
@@ -1027,7 +1028,7 @@ msgstr "Менеджеры"
#. module: hr_holidays
#: model:ir.ui.view,arch_db:hr_holidays.hr_holiday_status_view_kanban
msgid "Max Leaves:"
-msgstr ""
+msgstr "Макс. отпуск:"
#. module: hr_holidays
#: model:ir.model.fields,field_description:hr_holidays.field_hr_leave_type__max_leaves
@@ -1124,6 +1125,7 @@ msgstr "Количество отпуска"
msgid ""
"Number of days of the leave request according to your working schedule."
msgstr ""
+"Количество рабочих дней по календарю, приходящихся на запрашиваемый период."
#. module: hr_holidays
#: model:res.groups,name:hr_holidays.group_hr_holidays_user
@@ -1148,6 +1150,10 @@ msgid ""
" type (recuperation, legal leaves, sickness) and the exact\n"
" number of open days related to your leave."
msgstr ""
+"После того, как вы запишите запрос на отпуск, он будет отправлен\n"
+" к менеджеру на утверждение. Убедитесь, что вы отсылаете запрос на отпуск\n"
+" на верное количество дней, а также правильного вида(по болезни, плановый \n"
+"\t\tотпуск, компенсация и т.п.)."
#. module: hr_holidays
#: code:addons/hr_holidays/models/hr_leave.py:366
@@ -1415,6 +1421,10 @@ msgid ""
"The status is 'Refused', when leave request is refused by manager.\n"
"The status is 'Approved', when leave request is approved by manager."
msgstr ""
+"Статус 'Запросить', когда запрос создан.\n"
+"Статус 'Утвердить', когда запрос подтвержден пользователем.\n"
+"Статус 'Отклонен', когда запрос отклонен менеджером.\n"
+"Статус 'Утверждён', когда запрос одобрен менеджером."
#. module: hr_holidays
#: model:ir.model.fields,help:hr_holidays.field_hr_leave__first_approver_id
@@ -1447,12 +1457,16 @@ msgstr ""
msgid ""
"This value is given by the sum of all leaves requests with a negative value."
msgstr ""
+"Это значение считается как сумма всех запросов на отпусков с отрицательным "
+"значением."
#. module: hr_holidays
#: model:ir.model.fields,help:hr_holidays.field_hr_leave_type__max_leaves
msgid ""
"This value is given by the sum of all leaves requests with a positive value."
msgstr ""
+"Это значение считается как сумма всех запросов на отпусков с положительным "
+"значением."
#. module: hr_holidays
#: selection:hr.leave,state:0 selection:hr.leave.allocation,state:0
@@ -1536,7 +1550,7 @@ msgstr "Проверить"
#: model:ir.ui.view,arch_db:hr_holidays.view_hr_holidays_filter_report
#: model:ir.ui.view,arch_db:hr_holidays.view_hr_leave_allocation_filter
msgid "Validator"
-msgstr ""
+msgstr "Утверждающий"
#. module: hr_holidays
#: selection:hr.leave.type,color_name:0
diff --git a/addons/hr_holidays/models/hr_leave.py b/addons/hr_holidays/models/hr_leave.py
index b43f012e1af..4884b481da9 100644
--- a/addons/hr_holidays/models/hr_leave.py
+++ b/addons/hr_holidays/models/hr_leave.py
@@ -114,11 +114,6 @@ class HolidaysRequest(models.Model):
('date_check', "CHECK ( number_of_days_temp >= 0 )", "The number of days must be greater than 0."),
]
- @api.onchange('employee_id')
- def _onchange_employee_id(self):
- self.manager_id = self.employee_id and self.employee_id.parent_id
- self.department_id = self.employee_id.department_id
-
@api.multi
@api.depends('number_of_days_temp')
def _compute_number_of_days(self):
@@ -160,7 +155,8 @@ class HolidaysRequest(models.Model):
self.department_id = None
@api.onchange('employee_id')
- def _onchange_employee(self):
+ def _onchange_employee_id(self):
+ self.manager_id = self.employee_id and self.employee_id.parent_id
if self.holiday_type == 'employee':
self.department_id = self.employee_id.department_id
diff --git a/addons/hr_holidays/report/hr_leave_reports.xml b/addons/hr_holidays/report/hr_leave_reports.xml
index 18d8785721e..6f884671c37 100644
--- a/addons/hr_holidays/report/hr_leave_reports.xml
+++ b/addons/hr_holidays/report/hr_leave_reports.xml
@@ -33,8 +33,6 @@
-
-
@@ -118,7 +116,7 @@
hr.leave.report
hr.employee
form
- tree,kanban
+ tree,kanban,form
{
'search_default_group_type': 1,
diff --git a/addons/hr_payroll/i18n/de.po b/addons/hr_payroll/i18n/de.po
index 70edf965692..675d505ca83 100644
--- a/addons/hr_payroll/i18n/de.po
+++ b/addons/hr_payroll/i18n/de.po
@@ -915,7 +915,7 @@ msgstr "Netto"
#. module: hr_payroll
#: model:hr.salary.rule,name:hr_payroll.hr_rule_net
msgid "Net Salary"
-msgstr ""
+msgstr "Nettogehalt"
#. module: hr_payroll
#: code:addons/hr_payroll/models/hr_payslip.py:199
diff --git a/addons/hr_payroll/i18n/ru.po b/addons/hr_payroll/i18n/ru.po
index 31124569917..10fea1d0e61 100644
--- a/addons/hr_payroll/i18n/ru.po
+++ b/addons/hr_payroll/i18n/ru.po
@@ -305,7 +305,7 @@ msgstr "Дочернее определение"
#. module: hr_payroll
#: model:ir.ui.view,arch_db:hr_payroll.res_config_settings_view_form
msgid "Choose a Payroll Localization"
-msgstr ""
+msgstr "Выберите локализацию расчетного листа"
#. module: hr_payroll
#: selection:hr.payslip.run,state:0
@@ -331,7 +331,7 @@ msgstr "Код"
#: model:ir.ui.view,arch_db:hr_payroll.hr_payroll_structure_view_kanban
#: model:ir.ui.view,arch_db:hr_payroll.hr_salary_rule_view_kanban
msgid "Code:"
-msgstr ""
+msgstr "Код:"
#. module: hr_payroll
#: model:ir.ui.view,arch_db:hr_payroll.view_hr_payslip_filter
@@ -656,7 +656,7 @@ msgstr ""
#: code:addons/hr_payroll/report/report_contribution_register.py:34
#, python-format
msgid "Form content is missing, this report cannot be printed."
-msgstr ""
+msgstr "Не найдены данные в форме, отчет не сформирован"
#. module: hr_payroll
#: model:ir.model.fields,field_description:hr_payroll.field_res_config_settings__module_l10n_fr_hr_payroll
@@ -1021,12 +1021,12 @@ msgstr "Платёжная ведомость"
#. module: hr_payroll
#: model:ir.ui.view,arch_db:hr_payroll.res_config_settings_view_form
msgid "Payroll Entries"
-msgstr ""
+msgstr "Строки платежной ведомости"
#. module: hr_payroll
#: model:ir.ui.view,arch_db:hr_payroll.res_config_settings_view_form
msgid "Payroll Rules"
-msgstr ""
+msgstr "Правила платежной ведомости"
#. module: hr_payroll
#: model:ir.ui.view,arch_db:hr_payroll.view_hr_payroll_structure_filter
@@ -1036,7 +1036,7 @@ msgstr "Структуры платежной ведомости"
#. module: hr_payroll
#: model:ir.ui.view,arch_db:hr_payroll.res_config_settings_view_form
msgid "Payroll rules that apply to your country"
-msgstr ""
+msgstr "Правила составления платежной ведомости в вашей стране"
#. module: hr_payroll
#: model:ir.actions.report,name:hr_payroll.action_report_payslip
@@ -1157,7 +1157,7 @@ msgstr "Период"
#. module: hr_payroll
#: model:ir.ui.view,arch_db:hr_payroll.res_config_settings_view_form
msgid "Post payroll slips in accounting"
-msgstr ""
+msgstr "Отправить расчетники в бухгалтерию"
#. module: hr_payroll
#: model:ir.ui.view,arch_db:hr_payroll.view_payslip_lines_contribution_register
diff --git a/addons/hr_timesheet/i18n/nl.po b/addons/hr_timesheet/i18n/nl.po
index 9b7f55431dc..151bb895ae7 100644
--- a/addons/hr_timesheet/i18n/nl.po
+++ b/addons/hr_timesheet/i18n/nl.po
@@ -233,7 +233,7 @@ msgstr "Project -"
#: model:ir.actions.act_window,help:hr_timesheet.timesheet_action_report_by_project
#: model:ir.actions.act_window,help:hr_timesheet.timesheet_action_report_by_task
msgid "Record a new activity"
-msgstr ""
+msgstr "Registreer een nieuwe activiteit"
#. module: hr_timesheet
#: model:ir.model.fields,field_description:hr_timesheet.field_report_project_task_user__remaining_hours
diff --git a/addons/hr_timesheet/i18n/ru.po b/addons/hr_timesheet/i18n/ru.po
index 3c9f2eb65cf..f1511f29a6d 100644
--- a/addons/hr_timesheet/i18n/ru.po
+++ b/addons/hr_timesheet/i18n/ru.po
@@ -12,13 +12,14 @@
# Masha Koc , 2017
# Sergey Vilizhanin , 2017
# Max Belyanin , 2017
+# sergeiruzkiicode , 2018
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server saas~11.2\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: Max Belyanin , 2017\n"
+"Last-Translator: sergeiruzkiicode , 2018\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"
@@ -34,7 +35,7 @@ msgstr "Табели "
#. module: hr_timesheet
#: model:ir.ui.view,arch_db:hr_timesheet.hr_employee_view_form_inherit_timesheet
msgid "Timesheets "
-msgstr ""
+msgstr "Табели"
#. module: hr_timesheet
#: model:ir.ui.view,arch_db:hr_timesheet.view_task_form2_inherited
@@ -91,7 +92,7 @@ msgstr "Apple App магазин"
#. module: hr_timesheet
#: model:ir.model.fields,field_description:hr_timesheet.field_res_config_settings__module_project_timesheet_synchro
msgid "Awesome Timesheet"
-msgstr ""
+msgstr "Шикарные табели"
#. module: hr_timesheet
#: model:ir.ui.view,arch_db:hr_timesheet.res_config_settings_view_form
@@ -114,7 +115,7 @@ msgstr "По Проекту"
#: model:ir.actions.act_window,name:hr_timesheet.timesheet_action_report_by_task
#: model:ir.ui.menu,name:hr_timesheet.timesheet_menu_report_timesheet_by_task
msgid "By Task"
-msgstr ""
+msgstr "По задаче"
#. module: hr_timesheet
#: model:ir.model.fields,help:hr_timesheet.field_project_task__total_hours_spent
@@ -269,11 +270,15 @@ msgid ""
"Timesheets app and invoice them based on a fixed price (ordered quantity) or"
" on the time spent (delivered quantity)"
msgstr ""
+"Продавайте услуги(например, проекты, обслуживание), записывайте затраченное "
+"время в приложение Табели и выставляйте счета на основании фиксированных "
+"цен(заказанного количества) или на основании затраченного "
+"времени(поставленного количества)"
#. module: hr_timesheet
#: model:ir.ui.view,arch_db:hr_timesheet.res_config_settings_view_form
msgid "Sell services and invoice time spent"
-msgstr ""
+msgstr "Продавайте услуги и выставляйте счета за время"
#. module: hr_timesheet
#: model:ir.actions.act_window,name:hr_timesheet.hr_timesheet_config_settings_action
@@ -299,7 +304,7 @@ msgstr ""
#. module: hr_timesheet
#: model:ir.ui.view,arch_db:hr_timesheet.res_config_settings_view_form
msgid "Synchronize time spent with web/mobile app"
-msgstr ""
+msgstr "Синхронизируйте затраты времени с веб/мобильным приложением"
#. module: hr_timesheet
#: model:ir.model,name:hr_timesheet.model_project_task
@@ -328,7 +333,7 @@ msgstr "Эта неделя"
#: code:addons/hr_timesheet/models/project.py:63
#, python-format
msgid "This task must have a project since they are linked to timesheets."
-msgstr ""
+msgstr "У задачи должен быть проект, раз она связана с табелями."
#. module: hr_timesheet
#: model:ir.ui.view,arch_db:hr_timesheet.report_timesheet
@@ -338,12 +343,12 @@ msgstr "Время"
#. module: hr_timesheet
#: model:ir.ui.view,arch_db:hr_timesheet.hr_timesheet_line_tree
msgid "Time (Hours)"
-msgstr ""
+msgstr "Время(часы)"
#. module: hr_timesheet
#: model:ir.model.fields,field_description:hr_timesheet.field_res_config_settings__module_sale_timesheet
msgid "Time Billing"
-msgstr ""
+msgstr "Биллинг времени"
#. module: hr_timesheet
#: model:ir.ui.menu,name:hr_timesheet.menu_hr_time_tracking
diff --git a/addons/hr_timesheet/models/hr_timesheet.py b/addons/hr_timesheet/models/hr_timesheet.py
index 5344a16aed0..5ec54373833 100644
--- a/addons/hr_timesheet/models/hr_timesheet.py
+++ b/addons/hr_timesheet/models/hr_timesheet.py
@@ -74,6 +74,7 @@ class AccountAnalyticLine(models.Model):
if vals.get('project_id') and not vals.get('account_id'):
project = self.env['project.project'].browse(vals.get('project_id'))
vals['account_id'] = project.analytic_account_id.id
+ vals['company_id'] = project.analytic_account_id.company_id.id
if not project.analytic_account_id.active:
raise UserError(_('The project you are timesheeting on is not linked to a active analytic account. Please the project configuration.'))
# employee implies user
diff --git a/addons/hr_timesheet/models/project.py b/addons/hr_timesheet/models/project.py
index 37534b1194c..1a5ddfa0b61 100644
--- a/addons/hr_timesheet/models/project.py
+++ b/addons/hr_timesheet/models/project.py
@@ -9,7 +9,7 @@ class Project(models.Model):
_inherit = "project.project"
allow_timesheets = fields.Boolean("Allow timesheets", default=True)
- analytic_account_id = fields.Many2one('account.analytic.account', string="Analytic Account", ondelete='set null',
+ analytic_account_id = fields.Many2one('account.analytic.account', string="Analytic Account", copy=False, ondelete='set null',
help="Link this project to an analytic account if you need financial management on projects. "
"It enables you to connect projects with budgets, planning, cost and revenue analysis, timesheets on projects, etc.")
@@ -154,8 +154,10 @@ class Task(models.Model):
# a timesheet must have an analytic account (and a project)
if self and not project_id:
raise UserError(_('This task must be part of a project because they some timesheets are linked to it.'))
+ account_id = self.env['project.project'].browse(project_id).sudo().analytic_account_id
self.sudo().mapped('timesheet_ids').write({
'project_id': project_id,
- 'account_id': self.env['project.project'].browse(project_id).sudo().analytic_account_id.id
+ 'account_id': account_id.id,
+ 'company_id': account_id.company_id.id,
})
return result
diff --git a/addons/http_routing/geoipresolver.py b/addons/http_routing/geoipresolver.py
index 1f9b0e22724..24bbe723d6d 100644
--- a/addons/http_routing/geoipresolver.py
+++ b/addons/http_routing/geoipresolver.py
@@ -47,10 +47,14 @@ class GeoIPResolver(object):
r = self._db.city(ip)
except (ValueError, geoip2.errors.AddressNotFoundError):
return {}
+ # Compatibility with Legacy database.
+ # Some ips cannot be located to a specific country. Legacy DB used to locate them in
+ # continent instead of country. Do the same to not change behavior of existing code.
+ country, attr = (r.country, 'iso_code') if r.country.geoname_id else (r.continent, 'code')
return {
'city': r.city.name,
- 'country_code': r.country.iso_code,
- 'country_name': r.country.name,
+ 'country_code': getattr(country, attr),
+ 'country_name': country.name,
'region': r.subdivisions[0].iso_code if r.subdivisions else None,
'time_zone': r.location.time_zone,
}
diff --git a/addons/iap/__manifest__.py b/addons/iap/__manifest__.py
index 35124df76eb..6a30ed891c9 100644
--- a/addons/iap/__manifest__.py
+++ b/addons/iap/__manifest__.py
@@ -9,7 +9,7 @@
'description': """
This module provides standard tools (account model, context manager and helpers) to support In-App purchases inside Odoo.
""",
- 'depends': ['web'],
+ 'depends': ['web', 'web_settings_dashboard'],
'data': [
'security/ir.model.access.csv',
'security/ir_rule.xml',
diff --git a/addons/iap/i18n/tr.po b/addons/iap/i18n/tr.po
index 117e4b5bf1c..0a841f08079 100644
--- a/addons/iap/i18n/tr.po
+++ b/addons/iap/i18n/tr.po
@@ -5,13 +5,14 @@
# Translators:
# Murat Kaplan , 2017
# Umur Akın , 2018
+# Ertuğrul Güreş , 2018
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server saas~11.2\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: Umur Akın , 2018\n"
+"Last-Translator: Ertuğrul Güreş , 2018\n"
"Language-Team: Turkish (https://www.transifex.com/odoo/teams/41243/tr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -104,7 +105,7 @@ msgstr "Yetersiz Bakiye"
#: code:addons/iap/static/src/xml/iap_templates.xml:14
#, python-format
msgid "Insufficient credit to perform this service."
-msgstr ""
+msgstr "Bu hizmeti vermek için yetersiz kredi."
#. module: iap
#: model:ir.model.fields,field_description:iap.field_iap_account____last_update
diff --git a/addons/l10n_be/i18n_extra/nl_BE.po b/addons/l10n_be/i18n_extra/nl_BE.po
index 88d6c4b61ee..2a4b067ee33 100644
--- a/addons/l10n_be/i18n_extra/nl_BE.po
+++ b/addons/l10n_be/i18n_extra/nl_BE.po
@@ -18,935 +18,774 @@ msgstr ""
"X-Generator: Poedit 1.8.12\n"
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V83-00
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V83-00
msgid "0% Biens d'investissement"
msgstr "0% Investeringsgoederen"
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V82-00-G
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V82-00-G
msgid "0% Biens divers"
msgstr "0% Diverse goederen"
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-OUT-00-CC
#: model:account.tax.template,name:l10n_be.attn_VAT-OUT-00-CC
msgid "0% Cocont."
msgstr "0% Medecont."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V83-00-CC
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V83-00-CC
msgid "0% Cocont. - Biens d'investissement"
msgstr "0% Medecont. - Investeringsgoederen"
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V81-00-CC
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V81-00-CC
msgid "0% Cocont. M."
msgstr "0% Medecont. G."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V82-00-CC
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V82-00-CC
msgid "0% Cocont. S."
msgstr "0% Medecont. D."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V83-00-EU
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V83-00-EU
msgid "0% EU - Biens d'investissement"
msgstr "0% EU - Investeringsgoederen"
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V82-00-EU-G
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V82-00-EU-G
msgid "0% EU - Biens divers"
msgstr "0% EU - Diverse goederen"
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V81-00-EU
-#: model:account.tax,name:l10n_be.1_attn_VAT-OUT-00-EU-L
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V81-00-EU
#: model:account.tax.template,name:l10n_be.attn_VAT-OUT-00-EU-L
msgid "0% EU M."
msgstr "0% EU G."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V82-00-EU-S
-#: model:account.tax,name:l10n_be.1_attn_VAT-OUT-00-EU-S
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V82-00-EU-S
#: model:account.tax.template,name:l10n_be.attn_VAT-OUT-00-EU-S
msgid "0% EU S."
msgstr "0% EU D."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-OUT-00-EU-T
#: model:account.tax.template,name:l10n_be.attn_VAT-OUT-00-EU-T
msgid "0% EU T."
msgstr "0% EU. T."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V81-00
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V81-00
msgid "0% M."
msgstr "0% G."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-OUT-00-ROW
#: model:account.tax.template,name:l10n_be.attn_VAT-OUT-00-ROW
msgid "0% Non EU"
msgstr "0% Non EU"
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V83-00-ROW-CC
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V83-00-ROW-CC
msgid "0% Non EU - Biens d'investissement"
msgstr "0% Niet EU - Investeringsgoederen"
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V81-00-ROW-CC
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V81-00-ROW-CC
msgid "0% Non EU M."
msgstr "0% Non EU G. "
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V82-00-ROW-CC
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V82-00-ROW-CC
msgid "0% Non EU S."
msgstr "0% Non EU D."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V82-00-S
-#: model:account.tax,name:l10n_be.1_attn_VAT-OUT-00-S
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V82-00-S
#: model:account.tax.template,name:l10n_be.attn_VAT-OUT-00-S
msgid "0% S."
msgstr "0% D."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-OUT-12-L
#: model:account.tax.template,name:l10n_be.attn_VAT-OUT-12-L
msgid "12%"
msgstr "12%"
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V83-12
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V83-12
msgid "12% Biens d'investissement"
msgstr "12% Investeringsgoederen"
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V82-12-G
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V82-12-G
msgid "12% Biens divers"
msgstr "12% Diverse goederen"
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V83-12-CC
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V83-12-CC
msgid "12% Cocont. - Biens d'investissement"
msgstr "12% Medecont. - Investeringsgoederen"
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V83-12-CC-C1
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V83-12-CC-C1
msgid "12% Cocont. Déductible - Biens d'investissement"
msgstr "12% Medecont. Aftrekbaar - Investeringsgoederen"
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V81-12-CC-C1
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V81-12-CC-C1
msgid "12% Cocont. Déductible M."
msgstr "12% Medecont. Aftrekbaar G."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V82-12-CC-C1
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V82-12-CC-C1
msgid "12% Cocont. Déductible S."
msgstr "12% Medecont. Aftrekbaar D."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V81-12-CC
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V81-12-CC
msgid "12% Cocont. M."
msgstr "12% Medecont. G."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V83-12-CC-C2
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V83-12-CC-C2
msgid "12% Cocont. Récupérable - Biens d'investissement"
msgstr "12% Medecont. Verhaalbaar - Investeringsgoederen"
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V81-12-CC-C2
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V81-12-CC-C2
msgid "12% Cocont. Récupérable M."
msgstr "12% Medecont. Verhaalbaar G."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V82-12-CC-C2
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V82-12-CC-C2
msgid "12% Cocont. Récupérable S."
msgstr "12% Medecont. Verhaalbaar D."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V82-12-CC
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V82-12-CC
msgid "12% Cocont. S."
msgstr "12% Medecont. D."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V83-12-EU
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V83-12-EU
msgid "12% EU - Biens d'investissement"
msgstr "12% EU - Investeringsgoederen"
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V82-12-EU-G
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V82-12-EU-G
msgid "12% EU - Biens divers"
msgstr "12% EU - Diverse goederen"
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V83-12-EU-C1
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V83-12-EU-C1
msgid "12% EU Déductible - Biens d'investissement"
msgstr "12% EU Aftrekbaar - Investeringsgoederen"
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V82-12-EU-G-C1
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V82-12-EU-G-C1
msgid "12% EU Déductible - Biens divers"
msgstr "12% EU Aftrekbaar - Diverse goederen"
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V81-12-EU-C1
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V81-12-EU-C1
msgid "12% EU Déductible M."
msgstr "12% EU Aftrekbaar G."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V82-12-EU-S-C1
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V82-12-EU-S-C1
msgid "12% EU Déductible S."
msgstr "12% EU Aftrekbaar D."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V81-12-EU
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V81-12-EU
msgid "12% EU M."
msgstr "12% EU G."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V83-12-EU-C2
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V83-12-EU-C2
msgid "12% EU Récupérable - Biens d'investissement"
msgstr "12% EU Verhaalbaar - Investeringsgoederen"
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V81-12-EU-C2
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V81-12-EU-C2
msgid "12% EU Récupérable M."
msgstr "12% EU Verhaalbaar G."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V82-12-EU-S-C2
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V82-12-EU-S-C2
msgid "12% EU Récupérable S."
msgstr "12% EU Verhaalbaar D."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V82-12-EU-S
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V82-12-EU-S
msgid "12% EU S."
msgstr "12% EU D."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V81-12
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V81-12
msgid "12% M."
msgstr "12% G."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V83-12-ROW-CC
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V83-12-ROW-CC
msgid "12% Non EU - Biens d'investissement"
msgstr "12% Niet EU - Investeringsgoederen"
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V83-12-ROW-CC-C1
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V83-12-ROW-CC-C1
msgid "12% Non EU Déductible - Biens d'investissement"
msgstr "12% Niet EU Aftrekbaar - Investeringsgoederen"
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V81-12-ROW-CC-C1
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V81-12-ROW-CC-C1
msgid "12% Non EU Déductible M."
msgstr "12% Non EU Aftrekbaar G."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V82-12-ROW-CC-C1
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V82-12-ROW-CC-C1
msgid "12% Non EU Déductible S."
msgstr "12% Niet EU Aftrekbaar D."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V81-12-ROW-CC
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V81-12-ROW-CC
msgid "12% Non EU M."
msgstr "12% Niet EU G."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V83-12-ROW-CC-C2
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V83-12-ROW-CC-C2
msgid "12% Non EU Récupérable - Biens d'investissement"
msgstr "12% Niet EU Verhaalbaar - Investeringsgoederen"
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V81-12-ROW-CC-C2
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V81-12-ROW-CC-C2
msgid "12% Non EU Récupérable M."
msgstr "12% Niet EU Verhaalbaar G."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V82-12-ROW-CC-C2
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V82-12-ROW-CC-C2
msgid "12% Non EU Récupérable S."
msgstr "12% Non EU Verhaalbaar D."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V82-12-ROW-CC
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V82-12-ROW-CC
msgid "12% Non EU S."
msgstr "12% Niet EU D."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V82-12-S
-#: model:account.tax,name:l10n_be.1_attn_VAT-OUT-12-S
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V82-12-S
#: model:account.tax.template,name:l10n_be.attn_VAT-OUT-12-S
msgid "12% S."
msgstr "12% D."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-OUT-21-L
#: model:account.tax.template,name:l10n_be.attn_VAT-OUT-21-L
msgid "21%"
msgstr "21%"
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V83-21
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V83-21
msgid "21% Biens d'investissement"
msgstr "21% Investeringsgoederen"
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V82-21-G
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V82-21-G
msgid "21% Biens divers"
msgstr "21% Diverse goederen"
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V82-21-CC
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V82-21-CC
msgid "21% Cocont .S."
msgstr "21% Medecont. D."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V83-21-CC
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V83-21-CC
msgid "21% Cocont. - Biens d'investissement"
msgstr "21% Medecont. - Investeringsgoederen"
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V83-21-CC-C1
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V83-21-CC-C1
msgid "21% Cocont. Déductible - Biens d'investissement"
msgstr "21% Medecont. Aftrekbaar - Investeringsgoederen"
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V81-21-CC-C1
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V81-21-CC-C1
msgid "21% Cocont. Déductible M."
msgstr "21% Medecont. Aftrekbaar G."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V82-21-CC-C1
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V82-21-CC-C1
msgid "21% Cocont. Déductible S."
msgstr "21% Medecont. Aftrekbaar D."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V81-21-CC
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V81-21-CC
msgid "21% Cocont. M."
msgstr "21% Medecont. G."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V83-21-CC-C2
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V83-21-CC-C2
msgid "21% Cocont. Récupérable - Biens d'investissement"
msgstr "21% Medecont. Verhaalbaar - Investeringsgoederen"
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V81-21-CC-C2
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V81-21-CC-C2
msgid "21% Cocont. Récupérable M."
msgstr "21% Medecont. Verhaalbaar G."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V82-21-CC-C2
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V82-21-CC-C2
msgid "21% Cocont. Récupérable S."
msgstr "21% Medecont. Verhaalbaar D."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V83-21-EU
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V83-21-EU
msgid "21% EU - Biens d'investissement"
msgstr "21% EU - Investeringsgoederen"
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V82-21-EU-G
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V82-21-EU-G
msgid "21% EU - Biens divers"
msgstr "21% EU - Diverse goederen"
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V83-21-EU-C1
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V83-21-EU-C1
msgid "21% EU Déductible - Biens d'investissement"
msgstr "21% EU Aftrekbaar - Investeringsgoederen"
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V82-21-EU-G-C1
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V82-21-EU-G-C1
msgid "21% EU Déductible - Biens divers"
msgstr "21% EU Aftrekbaar - Diverse goederen"
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V81-21-EU-C1
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V81-21-EU-C1
msgid "21% EU Déductible M."
msgstr "21% EU Aftrekbaar G."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V82-21-EU-S-C1
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V82-21-EU-S-C1
msgid "21% EU Déductible S."
msgstr "21% EU Aftrekbaar D."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V81-21-EU
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V81-21-EU
msgid "21% EU M."
msgstr "21% EU. G."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V83-21-EU-C2
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V83-21-EU-C2
msgid "21% EU Récupérable - Biens d'investissement"
msgstr "21% EU Verhaalbaar - Investeringsgoederen"
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V82-21-EU-G-C2
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V82-21-EU-G-C2
msgid "21% EU Récupérable - Biens divers"
msgstr "21% EU Verhaalbaar - Diverse goederen"
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V81-21-EU-C2
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V81-21-EU-C2
msgid "21% EU Récupérable M."
msgstr "21% EU Verhaalbaar G."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V82-21-EU-S-C2
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V82-21-EU-S-C2
msgid "21% EU Récupérable S."
msgstr "21% EU Verhaalbaar D."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V82-21-EU-S
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V82-21-EU-S
msgid "21% EU S."
msgstr "21% EU D."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V81-21
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V81-21
msgid "21% M."
msgstr "21% G."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V83-21-ROW-CC
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V83-21-ROW-CC
msgid "21% Non EU - Biens d'investissement"
msgstr "21% Niet EU - Investeringsgoederen"
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V83-21-ROW-CC-C1
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V83-21-ROW-CC-C1
msgid "21% Non EU Déductible - Biens d'investissement"
msgstr "21% Non EU Aftrekbaar - Investeringsgoederen"
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V81-21-ROW-CC-C1
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V81-21-ROW-CC-C1
msgid "21% Non EU Déductible M."
msgstr "21% Non EU Aftrekbaar G."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V82-21-ROW-CC-C1
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V82-21-ROW-CC-C1
msgid "21% Non EU Déductible S."
msgstr "21% Non EU Aftrekbaar D."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V81-21-ROW-CC
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V81-21-ROW-CC
msgid "21% Non EU M."
msgstr "21% Niet EU G."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V83-21-ROW-CC-C2
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V83-21-ROW-CC-C2
msgid "21% Non EU Récupérable - Biens d'investissement"
msgstr "21% Non EU Verhaalbaar - Investeringsgoederen"
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V81-21-ROW-CC-C2
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V81-21-ROW-CC-C2
msgid "21% Non EU Récupérable M."
msgstr "21% Non EU Verhaalbaar G."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V82-21-ROW-CC-C2
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V82-21-ROW-CC-C2
msgid "21% Non EU Récupérable S."
msgstr "21% Niet EU Verhaalbaar D."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V82-21-ROW-CC
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V82-21-ROW-CC
msgid "21% Non EU S."
msgstr "21% Non EU D."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V82-21-S
-#: model:account.tax,name:l10n_be.1_attn_VAT-OUT-21-S
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V82-21-S
#: model:account.tax.template,name:l10n_be.attn_VAT-OUT-21-S
msgid "21% S."
msgstr "21% D."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_TVA-21-inclus-dans-prix
#: model:account.tax.template,name:l10n_be.attn_TVA-21-inclus-dans-prix
msgid "21% S. TTC"
msgstr "21% D. (Inclusief BTW)"
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V82-CAR-EXC-C2
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V82-CAR-EXC-C2
msgid "50% Déductible - Frais de voiture (Prix Excl.)"
msgstr "50% Aftrekbaar - Autokosten (Prijs Excl.)"
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V82-CAR-EXC-C1
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V82-CAR-EXC-C1
msgid "50% Non Déductible - Frais de voiture"
msgstr "50% Niet Aftrekbaar - Autokosten"
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V82-CAR-EXC
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V82-CAR-EXC
msgid "50% Non Déductible - Frais de voiture (Prix Excl.)"
msgstr "50% Niet Aftrekbaar - Autokosten (Prijs Excl.)"
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V83-06
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V83-06
msgid "6% Biens d'investissement"
msgstr "6% Investeringsgoederen"
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V82-06-G
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V82-06-G
msgid "6% Biens divers"
msgstr "6% Diverse goederen"
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V83-06-CC
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V83-06-CC
msgid "6% Cocont. - Biens d'investissement"
msgstr "6% Medecont. - Investeringsgoederen"
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V83-06-CC-C1
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V83-06-CC-C1
msgid "6% Cocont. Déductible - Biens d'investissement"
msgstr "6% Medecont. Aftrekbaar - Investeringsgoederen"
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V81-06-CC-C1
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V81-06-CC-C1
msgid "6% Cocont. Déductible M."
msgstr "6% Medecont. Aftrekbaar G."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V82-06-CC-C1
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V82-06-CC-C1
msgid "6% Cocont. Déductible S."
msgstr "6% Medecont. Aftrekbaar D."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V81-06-CC
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V81-06-CC
msgid "6% Cocont. M."
msgstr "6% Medecont. G."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V83-06-CC-C2
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V83-06-CC-C2
msgid "6% Cocont. Récupérable - Biens d'investissement"
msgstr "6% Medecont. Verhaalbaar - Investeringsgoederen"
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V81-06-CC-C2
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V81-06-CC-C2
msgid "6% Cocont. Récupérable M."
msgstr "6% Medecont. Verhaalbaar G. "
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V82-06-CC-C2
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V82-06-CC-C2
msgid "6% Cocont. Récupérable S."
msgstr "6% Medecont. Verhaalbaar D."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V82-06-CC
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V82-06-CC
msgid "6% Cocont. S."
msgstr "6% Medecont. D."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V83-06-EU
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V83-06-EU
msgid "6% EU - Biens d'investissement"
msgstr "6% EU - Investeringsgoederen"
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V82-06-EU-G
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V82-06-EU-G
msgid "6% EU - Biens divers"
msgstr "6% EU - Diverse goederen"
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V83-06-EU-C1
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V83-06-EU-C1
msgid "6% EU Déductible - Biens d'investissement"
msgstr "6% EU Aftrekbaar - Investeringsgoederen"
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V82-06-EU-G-C1
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V82-06-EU-G-C1
msgid "6% EU Déductible - Biens divers"
msgstr "6% EU Aftrekbaar - Diverse goederen"
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V81-06-EU-C1
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V81-06-EU-C1
msgid "6% EU Déductible M."
msgstr "6% EU Aftrekbaar G."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V82-06-EU-S-C1
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V82-06-EU-S-C1
msgid "6% EU Déductible S."
msgstr "6% EU Aftrekbaar D."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V81-06-EU
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V81-06-EU
msgid "6% EU M."
msgstr "6% EU G."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V83-06-EU-C2
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V83-06-EU-C2
msgid "6% EU Récupérable - Biens d'investissement"
msgstr "6% EU Verhaalbaar - Investeringsgoederen"
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V82-06-EU-G-C2
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V82-06-EU-G-C2
msgid "6% EU Récupérable - Biens divers"
msgstr "6% EU Verhaalbaar - Diverse goederen"
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V81-06-EU-C2
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V81-06-EU-C2
msgid "6% EU Récupérable M."
msgstr "6% EU Verhaalbaar G."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V82-06-EU-S-C2
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V82-06-EU-S-C2
msgid "6% EU Récupérable S."
msgstr "6% EU Verhaalbaar D."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V82-06-EU-S
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V82-06-EU-S
msgid "6% EU S."
msgstr "6% EU D."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V81-06
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V81-06
msgid "6% M."
msgstr "6% G."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V83-06-ROW-CC
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V83-06-ROW-CC
msgid "6% Non EU - Biens d'investissement"
msgstr "6% Niet EU - Investeringsgoederen"
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V83-06-ROW-CC-C1
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V83-06-ROW-CC-C1
msgid "6% Non EU Déductible - Biens d'investissement"
msgstr "6% Niet EU Aftrekbaar - Investeringsgoederen"
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V81-06-ROW-CC-C1
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V81-06-ROW-CC-C1
msgid "6% Non EU Déductible M."
msgstr "6% Niet EU Aftrekbaar G."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V82-06-ROW-CC-C1
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V82-06-ROW-CC-C1
msgid "6% Non EU Déductible S."
msgstr "6% Niet EU Aftrekbaar D."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V81-06-ROW-CC
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V81-06-ROW-CC
msgid "6% Non EU M."
msgstr "6% Niet EU G."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V83-06-ROW-CC-C2
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V83-06-ROW-CC-C2
msgid "6% Non EU Récupérable - Biens d'investissement"
msgstr "6% Non EU Verhaalbaar - Investeringsgoederen"
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V81-06-ROW-CC-C2
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V81-06-ROW-CC-C2
msgid "6% Non EU Récupérable M."
msgstr "6% Niet EU Verhaalbaar G."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V82-06-ROW-CC-C2
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V82-06-ROW-CC-C2
msgid "6% Non EU Récupérable S."
msgstr "6% Niet EU Verhaalbaar D."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V82-06-ROW-CC
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V82-06-ROW-CC
msgid "6% Non EU S."
msgstr "6% Niet EU D."
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V82-06-S
-#: model:account.tax,name:l10n_be.1_attn_VAT-OUT-06-S
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V82-06-S
#: model:account.tax.template,name:l10n_be.attn_VAT-OUT-06-S
msgid "6% S."
msgstr "6% D."
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a601
#: model:account.account.template,name:l10n_be.a601
msgid "Achats de fournitures"
msgstr "Aankopen van hulpstoffen"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a604
#: model:account.account.template,name:l10n_be.a604
msgid "Achats de marchandises"
msgstr "Aankopen van handelsgoederen"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a600
#: model:account.account.template,name:l10n_be.a600
msgid "Achats de matières premières"
msgstr "Aankopen van grondstoffen"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a602
#: model:account.account.template,name:l10n_be.a602
msgid "Achats de services, travaux et études"
msgstr "Aankopen van diensten, werk en studies"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a446
#: model:account.account.template,name:l10n_be.a446
msgid "Acomptes reçus"
msgstr "Ontvangen voorschotten"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a176
#: model:account.account.template,name:l10n_be.a176
msgid "Acomptes reçus sur commandes"
msgstr "Ontvangen vooruitbetalingen op bestellingen"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a406
#: model:account.account.template,name:l10n_be.a406
msgid "Acomptes versés"
msgstr "Vooruitbetalingen"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a360
#: model:account.account.template,name:l10n_be.a360
msgid "Acomptes versés sur achats pour stocks"
msgstr "Vooruitbetalingen op aankopen voor aandelen"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a4550
#: model:account.account.template,name:l10n_be.a4550
msgid "Administrateurs, gérants et commissaires"
msgstr "Bestuurders, zaakvoerders en commissarissen"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a2119
#: model:account.account.template,name:l10n_be.a2119
msgid "Amortissements sur concessions, brevets, etc..."
msgstr "Afschrijvingen op consessies, octrooien, licenties, ..."
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a2690
#: model:account.account.template,name:l10n_be.a2690
msgid "Amortissements sur frais d'aménagement des locaux pris en location"
msgstr "Op inrichtingskosten gehuurde lokalen"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a2009
#: model:account.account.template,name:l10n_be.a2009
msgid "Amortissements sur frais de constitution et d'augmentation de capital"
msgstr "Afschrijvingen op oprichtingskosten en kapitaalverhoging"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a2109
#: model:account.account.template,name:l10n_be.a2109
msgid "Amortissements sur frais de recherche et de mise au point"
msgstr "Afschrijving van kosten van onderzoek en ontwikkeling"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a24190
#: model:account.account.template,name:l10n_be.a24190
msgid "Amortissements sur matériel automobile"
msgstr "Afschrijvingen op wagenuitrusting"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a24090
#: model:account.account.template,name:l10n_be.a24090
msgid "Amortissements sur mobilier"
msgstr "Afschrijvingen op meubilair"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a2529
#: model:account.account.template,name:l10n_be.a2529
msgid "Amortissements sur mobilier et matériel roulant en leasing"
msgstr "Afschrijvingen op geleasd rollend materieel"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a614
#: model:account.account.template,name:l10n_be.a614
msgid "Annonces, publicité, propagande et documentation"
msgstr "Advertenties, publiciteit, propaganda en documentatie"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a3100
#: model:account.account.template,name:l10n_be.a3100
msgid "Approvisionements et fournitures"
msgstr "Materialen en benodigdheden"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a4160
#: model:account.account.template,name:l10n_be.a4160
msgid "Associés"
msgstr "Vennoten"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a45932
#: model:account.account.template,name:l10n_be.a45932
msgid "Assurance groupe "
msgstr "Groepsverzekering"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a45930
#: model:account.account.template,name:l10n_be.a45930
msgid "Assurance loi"
msgstr "Wetsverzekering"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a45931
#: model:account.account.template,name:l10n_be.a45931
msgid "Assurance salaire garanti "
msgstr "Verzekering gewaarborgd inkomen"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a45933
#: model:account.account.template,name:l10n_be.a45933
msgid "Assurances individuelles"
msgstr "Individuele verzekering"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a41671
#: model:account.account.template,name:l10n_be.a41671
msgid "Autres créances"
msgstr "Overige vorderingen"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a174
-#: model:account.account,name:l10n_be.1_a424
#: model:account.account.template,name:l10n_be.a174
#: model:account.account.template,name:l10n_be.a424
msgid "Autres emprunts"
msgstr "Overige leningen"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a4125
#: model:account.account.template,name:l10n_be.a4125
msgid "Autres impôts belges"
msgstr "Overige Belgische belastingen"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a49102
-#: model:account.account,name:l10n_be.1_a740
#: model:account.account.template,name:l10n_be.a49102
#: model:account.account.template,name:l10n_be.a740
msgid "Autres produits d'exploitation"
msgstr "Andere bedrijfsopbrengsten"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a4538
#: model:account.account.template,name:l10n_be.a4538
msgid "Autres précomptes retenus"
msgstr "Andere ingehouden voorheffingen"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a4161
#: model:account.account.template,name:l10n_be.a4161
msgid "Avances et prêts au personnel"
msgstr "Voorschotten en leningen aan het personeel"
@@ -1132,854 +971,701 @@ msgid "Belgium VAT Form: grid 88"
msgstr ""
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a140
#: model:account.account.template,name:l10n_be.a140
msgid "Bénéfice reporté"
msgstr "Overgedragen winst"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a790
#: model:account.account.template,name:l10n_be.a790
msgid "Bénéfice reporté de l'exercice précédent"
msgstr "Overgedragen winst van het vorige boekjaar"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a693
#: model:account.account.template,name:l10n_be.a693
msgid "Bénéfice à reporter"
msgstr "Over te dragen winst"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a4594
#: model:account.account.template,name:l10n_be.a4594
msgid "Caisse d'assurances sociales pour travailleurs indépendants"
msgstr "Sociale kas voor zelfstandigen"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a24105
#: model:account.account.template,name:l10n_be.a24105
msgid "Camions"
msgstr "Vrachtwagens"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a1000
#: model:account.account.template,name:l10n_be.a1000
msgid "Capital"
msgstr "Kapitaal"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a418
#: model:account.account.template,name:l10n_be.a418
msgid "Cautionnements versés en numéraires"
msgstr "Borgtochten betaald in contanten"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a6600
#: model:account.account.template,name:l10n_be.a6600
msgid "Charges exceptionelles"
msgstr "Uitzonderlijke kosten"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a6101
#: model:account.account.template,name:l10n_be.a6101
msgid "Charges locatives"
msgstr "Huurlasten"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a492
#: model:account.account.template,name:l10n_be.a492
msgid "Charges à imputer"
msgstr "Toe te rekenen kosten"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a490
#: model:account.account.template,name:l10n_be.a490
msgid "Charges à reporter"
msgstr "Over te dragen kosten"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a540
#: model:account.account.template,name:l10n_be.a540
msgid "Chèques à encaisser"
msgstr "Te incasseren cheques"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a4000
#: model:account.account.template,name:l10n_be.a4000
msgid "Clients"
msgstr "Klanten"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a370
#: model:account.account.template,name:l10n_be.a370
msgid "Commandes en cours d'exécution"
msgstr "Lopende opdrachten"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a49101
#: model:account.account.template,name:l10n_be.a49101
msgid "Commissions à obtenir"
msgstr "Te ontvangen commissies"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a448
#: model:account.account.template,name:l10n_be.a448
msgid "Compensations fournisseurs"
msgstr "Compensaties leveranciers"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a4112
-#: model:account.account,name:l10n_be.1_a4512
#: model:account.account.template,name:l10n_be.a4112
#: model:account.account.template,name:l10n_be.a4512
msgid "Compte courant administration T.V.A."
msgstr "Rekening Courant BTW-Administratie"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a4163
#: model:account.account.template,name:l10n_be.a4163
msgid "Compte courant des administrateurs et gérants"
msgstr "Rekening courant bestuurders en zaakvoerders"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a4162
#: model:account.account.template,name:l10n_be.a4162
msgid "Compte courant des associés en S.P.R.L."
msgstr "Rekening courant vennoten in B.V.B.A"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a4990
#: model:account.account.template,name:l10n_be.a4990
msgid "Compte d'attente"
msgstr "Wachtrekening"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a2110
#: model:account.account.template,name:l10n_be.a2110
msgid "Concessions, brevets, licences, savoir-faire, marques, etc..."
msgstr "Consessies, octrooien, licenties, ..."
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a2501
#: model:account.account.template,name:l10n_be.a2501
msgid "Constructions"
msgstr "Gebouwen"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a621
#: model:account.account.template,name:l10n_be.a621
msgid "Cotisations patronales d'assurances sociales"
msgstr "Werkgeversbijdragen voor sociale verzekeringen"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a29000
#: model:account.account.template,name:l10n_be.a29000
msgid "Créances commerciales"
msgstr "Handelsvorderingen"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a407
-#: model:account.account,name:l10n_be.1_a417
#: model:account.account.template,name:l10n_be.a407
#: model:account.account.template,name:l10n_be.a417
msgid "Créances douteuses"
msgstr "Dubieuze debiteuren"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a4164
#: model:account.account.template,name:l10n_be.a4164
msgid "Créances sur sociétés apparentées"
msgstr "Vorderingen op gerelateerde bedrijven"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a1720
#: model:account.account.template,name:l10n_be.a1720
msgid "Dettes de location-financement de biens immobiliers"
msgstr "Leasingschulden van onroerende goederen"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a1721
#: model:account.account.template,name:l10n_be.a1721
msgid "Dettes de location-financement de biens mobiliers"
msgstr "Leasingschulden van roerende goederen"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a17300
#: model:account.account.template,name:l10n_be.a17300
msgid "Dettes en compte \\ Banque A"
msgstr "Schulden op rekeningen \\Bank A"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a4597
#: model:account.account.template,name:l10n_be.a4597
msgid "Dettes et provisions sociales diverses"
msgstr "Diverse sociale schulden en provisies"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a4500
#: model:account.account.template,name:l10n_be.a4500
msgid "Dettes fiscales estimées"
msgstr "Geraamd bedrag der belastingschulden"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a1722
#: model:account.account.template,name:l10n_be.a1722
msgid "Dettes sur droits réels sur immeubles"
msgstr "Schulden op zakelijke rechten op gebouwen"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a654
-#: model:account.account,name:l10n_be.1_a754
#: model:account.account.template,name:l10n_be.a654
#: model:account.account.template,name:l10n_be.a754
msgid "Différences de change"
msgstr "Wisselresultaten"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a4551
-#: model:account.account,name:l10n_be.1_a4560
#: model:account.account.template,name:l10n_be.a4551
#: model:account.account.template,name:l10n_be.a4560
msgid "Direction"
msgstr "Directiepersoneel"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a6302
#: model:account.account.template,name:l10n_be.a6302
msgid "Dotations aux amortissements sur immobilisations corporelles"
msgstr "Afschrijvingen op materiële vaste activa"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a6301
#: model:account.account.template,name:l10n_be.a6301
msgid "Dotations aux amortissements sur immobilisations incorporelles"
msgstr "Afschrijvingen op immateriële vaste activa"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a755
#: model:account.account.template,name:l10n_be.a755
msgid "Ecarts de conversion des devises"
msgstr "Resultaten uit de omrekening van vreemde valuta"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a175111
#: model:account.account.template,name:l10n_be.a175111
msgid "Effets à payer \\ Fournisseurs C.E.E."
msgstr "Te betalen wissels: Leveranciers van de EEG"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a175110
#: model:account.account.template,name:l10n_be.a175110
msgid "Effets à payer \\ Fournisseurs belges"
msgstr "Te betalen wissels: Belgische leveranciers"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a175112
#: model:account.account.template,name:l10n_be.a175112
msgid "Effets à payer \\ Fournisseurs importation"
msgstr "Te betalen wissels: Import leveranciers"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a4166
#: model:account.account.template,name:l10n_be.a4166
msgid "Emballages et matériel à rendre"
msgstr "Terug te geven materiaal en verpakkingen"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a4552
-#: model:account.account,name:l10n_be.1_a4561
#: model:account.account.template,name:l10n_be.a4552
#: model:account.account.template,name:l10n_be.a4561
msgid "Employés"
msgstr "Bedienden"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a3200
#: model:account.account.template,name:l10n_be.a3200
msgid "En cours de fabrication"
msgstr "Goederen in bewerking"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a611
#: model:account.account.template,name:l10n_be.a611
msgid "Entretien et réparation"
msgstr "Onderhoud en herstellingen"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a653
#: model:account.account.template,name:l10n_be.a653
msgid "Escomptes clients"
msgstr ""
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a757
#: model:account.account.template,name:l10n_be.a757
msgid "Escomptes obtenus"
msgstr "Bekomen kortingen"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a4230
#: model:account.account.template,name:l10n_be.a4230
msgid "Etablissements de crédit"
msgstr "Kredietinstellingen"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a430
#: model:account.account.template,name:l10n_be.a430
msgid "Etablissements de crédit. Emprunts en compte à terme fixe"
msgstr "Kredietinstellingen - Leningen op rekeningen met vaste termijn"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a444
#: model:account.account.template,name:l10n_be.a444
msgid "Factures à recevoir"
msgstr "Te ontvangen facturen"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a4220
#: model:account.account.template,name:l10n_be.a4220
msgid "Financement de biens immobiliers"
msgstr "Financiering vastgoed"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a4221
#: model:account.account.template,name:l10n_be.a4221
msgid "Financement de biens mobiliers"
msgstr "Financiering roerend goed"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a440
#: model:account.account.template,name:l10n_be.a440
msgid "Fournisseurs"
msgstr "Leveranciers"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a612
#: model:account.account.template,name:l10n_be.a612
msgid "Fournitures"
msgstr "Diverse leveringen"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a260
#: model:account.account.template,name:l10n_be.a260
msgid "Frais d'aménagements de locaux pris en location"
msgstr "Inrichtingskosten gehuurde lokalen"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a656
#: model:account.account.template,name:l10n_be.a656
msgid "Frais de banques, de chèques postaux"
msgstr "Bank en chequekosten"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a2000
#: model:account.account.template,name:l10n_be.a2000
msgid "Frais de constitution et d'augmentation de capital"
msgstr "Oprichtingskosten en kapitaalverhoging"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a2100
#: model:account.account.template,name:l10n_be.a2100
msgid "Frais de recherche et de mise au point"
msgstr "Kosten van onderzoek en ontwikkeling"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a3500
#: model:account.account.template,name:l10n_be.a3500
msgid "Immeubles destinés à la vente"
msgstr "Onroerende goederen bestemd voor verkoop"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a2800
#: model:account.account.template,name:l10n_be.a2800
msgid "Immobilisations Financières"
msgstr "Financiële vaste activa"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a4120
#: model:account.account.template,name:l10n_be.a4120
msgid "Impôts belges sur le résultat"
msgstr "Belgische belastingen op het resultaat"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a6700
#: model:account.account.template,name:l10n_be.a6700
msgid "Impôts et précomptes dus ou versés"
msgstr "Verschuldigde of gestorte belastingen en voorheffingen"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a4128
#: model:account.account.template,name:l10n_be.a4128
msgid "Impôts étrangers"
msgstr "Buitenlandse belastingen"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a6100
#: model:account.account.template,name:l10n_be.a6100
msgid "Loyers divers"
msgstr "Diverse huren"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a3400
#: model:account.account.template,name:l10n_be.a3400
msgid "Marchandises"
msgstr "Goederen"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a300
#: model:account.account.template,name:l10n_be.a300
msgid "Matières premières"
msgstr "Grondstoffen"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a24011
#: model:account.account.template,name:l10n_be.a24011
msgid "Matériel de bureau de bâtiments administratifs et commerciaux"
msgstr "Kantooruitrusting voor gebouwen met adminestratieve en commerciële functie"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a24010
#: model:account.account.template,name:l10n_be.a24010
msgid "Matériel de bureau de bâtiments industriels"
msgstr "Kantooruitrusting voor gebouwen met industriële functie"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a2521
#: model:account.account.template,name:l10n_be.a2521
msgid "Matériel roulant"
msgstr "Rollend materieel"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a2520
#: model:account.account.template,name:l10n_be.a2520
msgid "Mobilier"
msgstr "Meubilair"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a24001
#: model:account.account.template,name:l10n_be.a24001
msgid "Mobilier des bâtiments administratifs et commerciaux"
msgstr "Van administratieve en commerciële gebouwen"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a24000
#: model:account.account.template,name:l10n_be.a24000
msgid "Mobilier des bâtiments industriels"
msgstr "Van industriële gebouwen"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a151
#: model:account.account.template,name:l10n_be.a151
msgid "Montants transférés aux résultats"
msgstr "Bedragen komende van het resultaat"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a4541
#: model:account.account.template,name:l10n_be.a4541
msgid "ONSS. 1er trimestre"
msgstr "R.S.Z. 1ste kwartaal"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a4542
#: model:account.account.template,name:l10n_be.a4542
msgid "ONSS. 2ème trimestre"
msgstr "R.S.Z. 2de kwartaal"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a4543
#: model:account.account.template,name:l10n_be.a4543
msgid "ONSS. 3ème trimestre"
msgstr "R.S.Z. 3de kwartaal"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a4544
#: model:account.account.template,name:l10n_be.a4544
msgid "ONSS. 4ème trimestre"
msgstr "R.S.Z. 4de kwartaal"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a4540
#: model:account.account.template,name:l10n_be.a4540
msgid "ONSS. Arriérés"
msgstr "Achterstallige bijdragen RSZ"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a4553
-#: model:account.account,name:l10n_be.1_a4562
#: model:account.account.template,name:l10n_be.a4553
#: model:account.account.template,name:l10n_be.a4562
msgid "Ouvriers"
msgstr "Arbeiders"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a141
#: model:account.account.template,name:l10n_be.a141
msgid "Perte reportée"
msgstr "Overgedragen verlies (-)"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a690
#: model:account.account.template,name:l10n_be.a690
msgid "Perte reportée de l'exercice précédent"
msgstr "Overgedragen verlies van het vorige boekjaar"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a793
#: model:account.account.template,name:l10n_be.a793
msgid "Perte à reporter"
msgstr "Over te dragen verlies"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a2118
#: model:account.account.template,name:l10n_be.a2118
msgid "Plus-values actées sur concessions, brevets, etc..."
msgstr "Gerealiseerde meerwaarden op consessies, octrooien, licenties, ..."
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a2108
#: model:account.account.template,name:l10n_be.a2108
msgid "Plus-values actées sur frais de recherche et de mise au point"
msgstr "Gerealiseerde meerwaarden op onderzoek en ontwikkeling"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a2528
#: model:account.account.template,name:l10n_be.a2528
msgid "Plus-values actées sur mobilier et matériel roulant en leasing"
msgstr "Gerealiseerde meerwaarden op geleasd rollend materieel"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a752
#: model:account.account.template,name:l10n_be.a752
msgid "Plus-values sur réalisations d'actifs circulants"
msgstr "Meerwaarden op de realisatie van vlottende activa"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a7051
#: model:account.account.template,name:l10n_be.a7051
msgid "Prestations de services dans les pays membres de la C.E.E."
msgstr "Dienstverlening in lidstaten van de E.E.G."
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a7050
#: model:account.account.template,name:l10n_be.a7050
msgid "Prestations de services en Belgique"
msgstr "Dienstverlening in België"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a7052
#: model:account.account.template,name:l10n_be.a7052
msgid "Prestations de services en vue de l'exportation"
msgstr "Dienstverlening buiten de E.E.G. (export)"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a11
#: model:account.account.template,name:l10n_be.a11
msgid "Primes d'émission"
msgstr "Uitgifte premies"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a4930
#: model:account.account.template,name:l10n_be.a4930
msgid "Produits d'exploitation à reporter"
msgstr "Over te dragen bedrijfsopbrengsten"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a751
#: model:account.account.template,name:l10n_be.a751
msgid "Produits des actifs circulants"
msgstr "Opbrengsten uit vlottende activa"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a756
#: model:account.account.template,name:l10n_be.a756
msgid "Produits des autres créances"
msgstr "Diverse financiële opbrengsten"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a7600
#: model:account.account.template,name:l10n_be.a7600
msgid "Produits exceptionnels"
msgstr "Uitzonderlijke opbrengsten"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a3300
#: model:account.account.template,name:l10n_be.a3300
msgid "Produits finis"
msgstr "Gereed product"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a404
-#: model:account.account,name:l10n_be.1_a414
#: model:account.account.template,name:l10n_be.a404
#: model:account.account.template,name:l10n_be.a414
msgid "Produits à recevoir"
msgstr "Te innen opbrengsten"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a4590
#: model:account.account.template,name:l10n_be.a4590
msgid "Provision pour gratifications de fin d'année"
msgstr "Voorziening voor eindejaarspremie"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a1600
#: model:account.account.template,name:l10n_be.a1600
msgid "Provisions pour risques et charges"
msgstr "Voorzieningen voor risico's en kosten"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a4533
#: model:account.account.template,name:l10n_be.a4533
msgid "Précompte mobilier retenu sur intérêts payés"
msgstr "Roerende voorheffing ingehouden op betaalde intresten"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a4530
#: model:account.account.template,name:l10n_be.a4530
msgid "Précompte professionnel retenu sur rémunérations"
msgstr "Bedrijfsvoorheffing ingehouden op bezoldigingen"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a791
#: model:account.account.template,name:l10n_be.a791
msgid "Prélèvement sur le capital et les primes d'émission"
msgstr "Onttrekking aan het kapitaal en aan de uitgiftepremies"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a780
#: model:account.account.template,name:l10n_be.a780
msgid "Prélèvements sur les impôts différés"
msgstr "Onttrekking aan de uitgestelde belastingen"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a789
#: model:account.account.template,name:l10n_be.a789
msgid "Prélèvements sur les réserves immunisées"
msgstr "Onttrekking aan de reserves"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a706
#: model:account.account.template,name:l10n_be.a706
msgid "Pénalités et dédits obtenus par l'entreprise"
msgstr "Boeten en verbeurdverklaringen verkregen door de onderneming"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a4168
#: model:account.account.template,name:l10n_be.a4168
msgid "Rabais, ristournes, remises à obtenir et autres avoirs non encore reçus"
msgstr "Kortingen, rabatten en andere nog te ontvangen tegoeden"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a7500
#: model:account.account.template,name:l10n_be.a7500
msgid "Revenus des actions"
msgstr "Opbrengsten uit aandelen"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a7502
#: model:account.account.template,name:l10n_be.a7502
msgid "Revenus des créances à plus d'un an"
msgstr "Inkomsten uit schuld > 1 jaar"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a7501
#: model:account.account.template,name:l10n_be.a7501
msgid "Revenus des obligations"
msgstr "Opbrengsten uit obligaties"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a49100
#: model:account.account.template,name:l10n_be.a49100
msgid "Ristournes, rabais à obtenir"
msgstr "Te ontvangen kortingen"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a329
-#: model:account.account,name:l10n_be.1_a419
#: model:account.account.template,name:l10n_be.a329
#: model:account.account.template,name:l10n_be.a419
msgid "Réductions de valeur actées"
msgstr "Geboekte waardeverminderingen (-)"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a6320
#: model:account.account.template,name:l10n_be.a6320
msgid "Réductions de valeur sur commandes en cours d'exécution"
msgstr "Waardeverminderingen op bestellingen in uitvoering"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a6310
#: model:account.account.template,name:l10n_be.a6310
msgid "Réductions de valeur sur stocks"
msgstr "Waardeverminderingen op voorraden"
#. module: l10n_be
-#: model:account.fiscal.position,name:l10n_be.1_fiscal_position_template_4
#: model:account.fiscal.position.template,name:l10n_be.fiscal_position_template_4
msgid "Régime Cocontractant"
msgstr "Medecontractant"
#. module: l10n_be
-#: model:account.fiscal.position,name:l10n_be.1_fiscal_position_template_2
#: model:account.fiscal.position.template,name:l10n_be.fiscal_position_template_2
msgid "Régime Extra-Communautaire"
msgstr "Export"
#. module: l10n_be
-#: model:account.fiscal.position,name:l10n_be.1_fiscal_position_template_3
#: model:account.fiscal.position.template,name:l10n_be.fiscal_position_template_3
msgid "Régime Intra-Communautaire"
msgstr "Intra-Communautair"
#. module: l10n_be
-#: model:account.fiscal.position,name:l10n_be.1_fiscal_position_template_1
#: model:account.fiscal.position.template,name:l10n_be.fiscal_position_template_1
msgid "Régime National"
msgstr "Nationaal"
#. module: l10n_be
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V61
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V61
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V61
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V61
msgid "Régularisation en faveur de l'état"
msgstr ""
#. module: l10n_be
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V62
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V62
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V62
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V62
msgid "Régularisation en faveur du déclarant"
msgstr ""
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a7710
#: model:account.account.template,name:l10n_be.a7710
msgid "Régularisations d'impôts dus ou versés"
msgstr "Regularisering van verschuldigde of betaalde belastingen"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a7711
#: model:account.account.template,name:l10n_be.a7711
msgid "Régularisations d'impôts estimés"
msgstr "Regularisering van geraamde belastingen"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a6200
#: model:account.account.template,name:l10n_be.a6200
msgid "Rémunérations: Administrateurs ou gérants"
msgstr "Bezoldigingen: Bestuurders of zaakvoerders"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a6204
#: model:account.account.template,name:l10n_be.a6204
msgid "Rémunérations: Autres membres du personnel"
msgstr "Bezoldigingen: Andere personeelsleden, verbonden met een arbeidsovereenkomst"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a6202
#: model:account.account.template,name:l10n_be.a6202
msgid "Rémunérations: Employés"
msgstr "Bezoldigingen: Arbeiders"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a6203
#: model:account.account.template,name:l10n_be.a6203
msgid "Rémunérations: Ouvriers"
msgstr "Bezoldigingen: Bedienden"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a6201
#: model:account.account.template,name:l10n_be.a6201
msgid "Rémunérations: Personnel de direction"
msgstr "Bezoldigingen: Directiepersoneel"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a130
#: model:account.account.template,name:l10n_be.a130
msgid "Réserve légale"
msgstr "Wettelijke reserve"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a132
#: model:account.account.template,name:l10n_be.a132
msgid "Réserves immunisées"
msgstr "Belastingvrije reserves"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a613
#: model:account.account.template,name:l10n_be.a613
msgid "Rétributions de tiers"
msgstr "Vergoedingen aan derden"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a603
#: model:account.account.template,name:l10n_be.a603
msgid "Sous-traitances générales"
msgstr "Algemene onderaannemingen"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a753
#: model:account.account.template,name:l10n_be.a753
msgid "Subsides en capital et en intérêts"
msgstr "Kapitaal- en interestsubsidies"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a150
#: model:account.account.template,name:l10n_be.a150
msgid "Subsides obtenus"
msgstr "Verkregen subsidies"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a41670
#: model:account.account.template,name:l10n_be.a41670
msgid "Subsides à recevoir"
msgstr "Te ontvangen subsidies"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a411059
#: model:account.account.template,name:l10n_be.a411059
msgid "T.V.A Déductible"
msgstr "Aftrekbare BTW"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a64012
#: model:account.account.template,name:l10n_be.a64012
msgid "T.V.A. non déductible"
msgstr "Niet aftrekbare BTW"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a451054
#: model:account.account.template,name:l10n_be.a451054
msgid "T.V.A. à payer"
msgstr "Te betalen BTW"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a451056
#: model:account.account.template,name:l10n_be.a451056
msgid "T.V.A. à payer - Cocontractant"
msgstr "Te betalen BTW - Medecontractant"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a451057
#: model:account.account.template,name:l10n_be.a451057
msgid "T.V.A. à payer - Import"
msgstr "Te betalen BTW - Import"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a451055
#: model:account.account.template,name:l10n_be.a451055
msgid "T.V.A. à payer - Intra-communautaire"
msgstr "Te betalen BTW - Intracommunautair"
#. module: l10n_be
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V81-00
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V82-00-G
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V82-00-S
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V83-00
-#: model:account.tax,description:l10n_be.1_attn_VAT-OUT-00-L
-#: model:account.tax,description:l10n_be.1_attn_VAT-OUT-00-S
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V81-00
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V82-00-G
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V82-00-S
@@ -1990,10 +1676,6 @@ msgid "TVA 0%"
msgstr "BTW 0%"
#. module: l10n_be
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V81-00-CC
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V82-00-CC
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V83-00-CC
-#: model:account.tax,description:l10n_be.1_attn_VAT-OUT-00-CC
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V81-00-CC
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V82-00-CC
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V83-00-CC
@@ -2002,13 +1684,6 @@ msgid "TVA 0% Cocont."
msgstr "BTW 0% Medecont."
#. module: l10n_be
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V81-00-EU
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V82-00-EU-G
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V82-00-EU-S
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V83-00-EU
-#: model:account.tax,description:l10n_be.1_attn_VAT-OUT-00-EU-L
-#: model:account.tax,description:l10n_be.1_attn_VAT-OUT-00-EU-S
-#: model:account.tax,description:l10n_be.1_attn_VAT-OUT-00-EU-T
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V81-00-EU
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V82-00-EU-G
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V82-00-EU-S
@@ -2020,10 +1695,6 @@ msgid "TVA 0% EU"
msgstr "BTW 0% EU"
#. module: l10n_be
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V81-00-ROW-CC
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V82-00-ROW-CC
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V83-00-ROW-CC
-#: model:account.tax,description:l10n_be.1_attn_VAT-OUT-00-ROW
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V81-00-ROW-CC
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V82-00-ROW-CC
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V83-00-ROW-CC
@@ -2032,12 +1703,6 @@ msgid "TVA 0% Non EU"
msgstr "BTW 0% Non EU"
#. module: l10n_be
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V81-12
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V82-12-G
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V82-12-S
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V83-12
-#: model:account.tax,description:l10n_be.1_attn_VAT-OUT-12-L
-#: model:account.tax,description:l10n_be.1_attn_VAT-OUT-12-S
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V81-12
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V82-12-G
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V82-12-S
@@ -2048,9 +1713,6 @@ msgid "TVA 12%"
msgstr "BTW 12%"
#. module: l10n_be
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V81-12-CC
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V82-12-CC
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V83-12-CC
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V81-12-CC
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V82-12-CC
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V83-12-CC
@@ -2058,9 +1720,6 @@ msgid "TVA 12% Cocont."
msgstr "BTW 12% Medecont."
#. module: l10n_be
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V81-12-CC-C1
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V82-12-CC-C1
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V83-12-CC-C1
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V81-12-CC-C1
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V82-12-CC-C1
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V83-12-CC-C1
@@ -2068,9 +1727,6 @@ msgid "TVA 12% Cocont. Déductible"
msgstr "BTW 12% Medecont. Aftrekbaar"
#. module: l10n_be
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V81-12-CC-C2
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V82-12-CC-C2
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V83-12-CC-C2
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V81-12-CC-C2
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V82-12-CC-C2
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V83-12-CC-C2
@@ -2078,10 +1734,6 @@ msgid "TVA 12% Cocont. Récupérable"
msgstr "BTW 12% Medecont. Verhaalbaar"
#. module: l10n_be
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V81-12-EU
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V82-12-EU-G
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V82-12-EU-S
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V83-12-EU
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V81-12-EU
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V82-12-EU-G
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V82-12-EU-S
@@ -2090,10 +1742,6 @@ msgid "TVA 12% EU"
msgstr "BTW 12% EU"
#. module: l10n_be
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V81-12-EU-C1
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V82-12-EU-G-C1
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V82-12-EU-S-C1
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V83-12-EU-C1
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V81-12-EU-C1
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V82-12-EU-G-C1
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V82-12-EU-S-C1
@@ -2102,10 +1750,6 @@ msgid "TVA 12% EU Déductible"
msgstr "BTW 12% EU Aftrekbaar"
#. module: l10n_be
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V81-12-EU-C2
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V82-12-EU-G-C2
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V82-12-EU-S-C2
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V83-12-EU-C2
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V81-12-EU-C2
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V82-12-EU-G-C2
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V82-12-EU-S-C2
@@ -2114,15 +1758,11 @@ msgid "TVA 12% EU Récupérable"
msgstr "BTW 12% EU Verhaalbaar"
#. module: l10n_be
-#: model:account.tax,name:l10n_be.1_attn_VAT-IN-V82-12-EU-G-C2
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V82-12-EU-G-C2
msgid "TVA 12% EU Récupérable - Biens divers"
msgstr "BTW 12% EU Verhaalbaar - Diverse goederen"
#. module: l10n_be
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V81-12-ROW-CC
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V82-12-ROW-CC
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V83-12-ROW-CC
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V81-12-ROW-CC
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V82-12-ROW-CC
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V83-12-ROW-CC
@@ -2130,9 +1770,6 @@ msgid "TVA 12% Non EU"
msgstr "BTW 12% Niet EU"
#. module: l10n_be
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V81-12-ROW-CC-C1
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V82-12-ROW-CC-C1
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V83-12-ROW-CC-C1
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V81-12-ROW-CC-C1
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V82-12-ROW-CC-C1
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V83-12-ROW-CC-C1
@@ -2140,9 +1777,6 @@ msgid "TVA 12% Non EU Déductible"
msgstr "BTW 12% Niet EU Aftrekbaar"
#. module: l10n_be
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V81-12-ROW-CC-C2
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V82-12-ROW-CC-C2
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V83-12-ROW-CC-C2
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V81-12-ROW-CC-C2
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V82-12-ROW-CC-C2
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V83-12-ROW-CC-C2
@@ -2150,12 +1784,6 @@ msgid "TVA 12% Non EU Récupérable"
msgstr "BTW 12% Niet EU Verhaalbaar"
#. module: l10n_be
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V81-21
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V82-21-G
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V82-21-S
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V83-21
-#: model:account.tax,description:l10n_be.1_attn_VAT-OUT-21-L
-#: model:account.tax,description:l10n_be.1_attn_VAT-OUT-21-S
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V81-21
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V82-21-G
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V82-21-S
@@ -2166,9 +1794,6 @@ msgid "TVA 21%"
msgstr "BTW 21%"
#. module: l10n_be
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V81-21-CC
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V82-21-CC
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V83-21-CC
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V81-21-CC
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V82-21-CC
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V83-21-CC
@@ -2176,9 +1801,6 @@ msgid "TVA 21% Cocont."
msgstr "BTW 21% Medecont."
#. module: l10n_be
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V81-21-CC-C1
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V82-21-CC-C1
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V83-21-CC-C1
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V81-21-CC-C1
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V82-21-CC-C1
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V83-21-CC-C1
@@ -2186,9 +1808,6 @@ msgid "TVA 21% Cocont. Déductible"
msgstr "BTW 21% Medecont. Aftrekbaar"
#. module: l10n_be
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V81-21-CC-C2
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V82-21-CC-C2
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V83-21-CC-C2
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V81-21-CC-C2
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V82-21-CC-C2
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V83-21-CC-C2
@@ -2196,10 +1815,6 @@ msgid "TVA 21% Cocont. Récupérable"
msgstr "BTW 21% Medecont. Verhaalbaar"
#. module: l10n_be
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V81-21-EU
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V82-21-EU-G
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V82-21-EU-S
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V83-21-EU
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V81-21-EU
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V82-21-EU-G
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V82-21-EU-S
@@ -2208,10 +1823,6 @@ msgid "TVA 21% EU"
msgstr "BTW 21% EU"
#. module: l10n_be
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V81-21-EU-C1
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V82-21-EU-G-C1
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V82-21-EU-S-C1
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V83-21-EU-C1
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V81-21-EU-C1
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V82-21-EU-G-C1
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V82-21-EU-S-C1
@@ -2220,10 +1831,6 @@ msgid "TVA 21% EU Déductible"
msgstr "BTW 21% EU Aftrekbaar"
#. module: l10n_be
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V81-21-EU-C2
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V82-21-EU-G-C2
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V82-21-EU-S-C2
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V83-21-EU-C2
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V81-21-EU-C2
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V82-21-EU-G-C2
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V82-21-EU-S-C2
@@ -2232,9 +1839,6 @@ msgid "TVA 21% EU Récupérable"
msgstr "BTW 21% EU Verhaalbaar"
#. module: l10n_be
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V81-21-ROW-CC
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V82-21-ROW-CC
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V83-21-ROW-CC
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V81-21-ROW-CC
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V82-21-ROW-CC
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V83-21-ROW-CC
@@ -2242,9 +1846,6 @@ msgid "TVA 21% Non EU"
msgstr "BTW 21% Niet EU"
#. module: l10n_be
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V81-21-ROW-CC-C1
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V82-21-ROW-CC-C1
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V83-21-ROW-CC-C1
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V81-21-ROW-CC-C1
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V82-21-ROW-CC-C1
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V83-21-ROW-CC-C1
@@ -2252,9 +1853,6 @@ msgid "TVA 21% Non EU Déductible"
msgstr "BTW 21% Niet EU Aftrekbaar"
#. module: l10n_be
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V81-21-ROW-CC-C2
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V82-21-ROW-CC-C2
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V83-21-ROW-CC-C2
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V81-21-ROW-CC-C2
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V82-21-ROW-CC-C2
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V83-21-ROW-CC-C2
@@ -2262,30 +1860,21 @@ msgid "TVA 21% Non EU Récupérable"
msgstr "BTW 21% Niet EU Verhaalbaar"
#. module: l10n_be
-#: model:account.tax,description:l10n_be.1_attn_TVA-21-inclus-dans-prix
#: model:account.tax.template,description:l10n_be.attn_TVA-21-inclus-dans-prix
msgid "TVA 21% TTC"
msgstr "VAT 21% (inclusief BTW)"
#. module: l10n_be
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V82-CAR-EXC-C2
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V82-CAR-EXC-C2
msgid "TVA 50% Déductible - Frais de voiture (Prix Excl.)"
msgstr "BTW 5°% Aftrekbaar - Auto kosten (Prijs Excl.)"
#. module: l10n_be
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V82-CAR-EXC
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V82-CAR-EXC
msgid "TVA 50% Non Déductible - Frais de voiture (Prix Excl.)"
msgstr "BTW 50% Niet Aftrekbaar - Auto kosten (Prijs Excl.)"
#. module: l10n_be
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V81-06
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V82-06-G
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V82-06-S
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V83-06
-#: model:account.tax,description:l10n_be.1_attn_VAT-OUT-06-L
-#: model:account.tax,description:l10n_be.1_attn_VAT-OUT-06-S
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V81-06
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V82-06-G
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V82-06-S
@@ -2296,9 +1885,6 @@ msgid "TVA 6%"
msgstr "BTW 6%"
#. module: l10n_be
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V81-06-CC
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V82-06-CC
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V83-06-CC
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V81-06-CC
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V82-06-CC
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V83-06-CC
@@ -2306,9 +1892,6 @@ msgid "TVA 6% Cocont."
msgstr "BTW 6% Medecont."
#. module: l10n_be
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V81-06-CC-C1
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V82-06-CC-C1
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V83-06-CC-C1
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V81-06-CC-C1
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V82-06-CC-C1
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V83-06-CC-C1
@@ -2316,9 +1899,6 @@ msgid "TVA 6% Cocont. Déductible"
msgstr "BTW 6% Medecont. Aftrekbaar"
#. module: l10n_be
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V81-06-CC-C2
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V82-06-CC-C2
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V83-06-CC-C2
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V81-06-CC-C2
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V82-06-CC-C2
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V83-06-CC-C2
@@ -2326,10 +1906,6 @@ msgid "TVA 6% Cocont. Récupérable"
msgstr "BTW 6% Medecont. Verhaalbaar"
#. module: l10n_be
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V81-06-EU
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V82-06-EU-G
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V82-06-EU-S
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V83-06-EU
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V81-06-EU
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V82-06-EU-G
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V82-06-EU-S
@@ -2338,10 +1914,6 @@ msgid "TVA 6% EU"
msgstr "BTW 6% EU"
#. module: l10n_be
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V81-06-EU-C1
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V82-06-EU-G-C1
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V82-06-EU-S-C1
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V83-06-EU-C1
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V81-06-EU-C1
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V82-06-EU-G-C1
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V82-06-EU-S-C1
@@ -2350,10 +1922,6 @@ msgid "TVA 6% EU Déductible"
msgstr "BTW 6% EU Aftrekbaar"
#. module: l10n_be
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V81-06-EU-C2
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V82-06-EU-G-C2
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V82-06-EU-S-C2
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V83-06-EU-C2
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V81-06-EU-C2
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V82-06-EU-G-C2
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V82-06-EU-S-C2
@@ -2362,9 +1930,6 @@ msgid "TVA 6% EU Récupérable"
msgstr "BTW 6% EU Verhaalbaar"
#. module: l10n_be
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V81-06-ROW-CC
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V82-06-ROW-CC
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V83-06-ROW-CC
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V81-06-ROW-CC
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V82-06-ROW-CC
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V83-06-ROW-CC
@@ -2372,9 +1937,6 @@ msgid "TVA 6% Non EU"
msgstr "BTW 6% Niet EU"
#. module: l10n_be
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V81-06-ROW-CC-C1
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V82-06-ROW-CC-C1
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V83-06-ROW-CC-C1
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V81-06-ROW-CC-C1
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V82-06-ROW-CC-C1
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V83-06-ROW-CC-C1
@@ -2382,9 +1944,6 @@ msgid "TVA 6% Non EU Déductible"
msgstr "BTW 6% Niet EU Aftrekbaar"
#. module: l10n_be
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V81-06-ROW-CC-C2
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V82-06-ROW-CC-C2
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V83-06-ROW-CC-C2
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V81-06-ROW-CC-C2
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V82-06-ROW-CC-C2
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V83-06-ROW-CC-C2
@@ -2392,73 +1951,61 @@ msgid "TVA 6% Non EU Récupérable"
msgstr "BTW 6% Niet EU Verhaalbaar"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a4118
#: model:account.account.template,name:l10n_be.a4118
msgid "Taxe d'égalisation due"
msgstr "Verschuldigde egalisatiebelasting"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a64000
#: model:account.account.template,name:l10n_be.a64000
msgid "Taxes sur autos et camions"
msgstr "Verkeersbelasting bedrijfswagens"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a2500
#: model:account.account.template,name:l10n_be.a2500
msgid "Terrains"
msgstr "Terreinen"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_trans
#: model:account.account.template,name:l10n_be.trans
msgid "Transferts"
msgstr "Transferten"
#. module: l10n_be
-#: model:account.tax,description:l10n_be.1_attn_VAT-IN-V82-CAR-EXC-C1
#: model:account.tax.template,description:l10n_be.attn_VAT-IN-V82-CAR-EXC-C1
msgid "VAT 50% Non Déductible - Frais de voiture"
msgstr "BTW 50% Niet Aftrekbaar - Auto kosten"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a7001
#: model:account.account.template,name:l10n_be.a7001
msgid "Ventes dans les pays membres de la C.E.E. (marchandises)"
msgstr "Verkopen: leden van de Europese gemeenschap (handelsgoederen)"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a7011
#: model:account.account.template,name:l10n_be.a7011
msgid "Ventes dans les pays membres de la C.E.E. (produits finis)"
msgstr "Verkopen: leden van de Europese gemeenschap (gereed product)"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a7000
#: model:account.account.template,name:l10n_be.a7000
msgid "Ventes en Belgique (marchandises)"
msgstr "Verkopen: België (handelsgoederen)"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a7010
#: model:account.account.template,name:l10n_be.a7010
msgid "Ventes en Belgique (produits finis)"
msgstr "Verkopen: België (gereed product)"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a7002
#: model:account.account.template,name:l10n_be.a7002
msgid "Ventes à l'exportation (marchandises)"
msgstr "Verkopen: export (handelsgoederen)"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a7012
#: model:account.account.template,name:l10n_be.a7012
msgid "Ventes à l'exportation (produits finis)"
msgstr "Verkopen: export (gereed product)"
#. module: l10n_be
-#: model:account.account,name:l10n_be.1_a24100
#: model:account.account.template,name:l10n_be.a24100
msgid "Voitures"
msgstr "Wagens"
diff --git a/addons/l10n_be_hr_payroll/models/l10n_be_hr_payroll.py b/addons/l10n_be_hr_payroll/models/l10n_be_hr_payroll.py
index 0b977faa925..312ae7c25b3 100644
--- a/addons/l10n_be_hr_payroll/models/l10n_be_hr_payroll.py
+++ b/addons/l10n_be_hr_payroll/models/l10n_be_hr_payroll.py
@@ -135,7 +135,7 @@ class HrContract(models.Model):
@api.depends('commission_on_target')
def _compute_warrants_cost(self):
for contract in self:
- contract.warrants_cost = contract.commission_on_target * 1.326 * 1.05 * 12.0
+ contract.warrants_cost = contract.commission_on_target * 1.326 / 1.05 * 12.0
contract.warrant_value_employee = contract.commission_on_target * 1.326 * (1.00 - 0.535) * 12.0
@api.depends('wage', 'fuel_card', 'representation_fees', 'transport_employer_cost',
diff --git a/addons/l10n_co/__manifest__.py b/addons/l10n_co/__manifest__.py
index 72a39483284..88f5fb464f9 100644
--- a/addons/l10n_co/__manifest__.py
+++ b/addons/l10n_co/__manifest__.py
@@ -1,8 +1,8 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
-# Copyright (C) David Arnold (devCO).
-# Author David Arnold (devCO), dar@devco.co
+# Copyright (C) David Arnold (XOE Solutions).
+# Author David Arnold (XOE Solutions), dar@xoe.solutions
# Co-Authors Juan Pablo Aries (devCO), jpa@devco.co
# Hector Ivan Valencia Muñoz (TIX SAS)
# Nhomar Hernandez (Vauxoo)
@@ -13,7 +13,8 @@
'version': '0.8',
'category': 'Localization',
'description': 'Colombian Accounting and Tax Preconfiguration',
- 'author': 'David Arnold BA HSG (devCO)',
+ 'author': 'David Arnold (XOE Solutions)',
+ 'website': 'https://xoe.solutions',
'depends': [
'account',
],
diff --git a/addons/l10n_cr/data/l10n_cr_state_data.xml b/addons/l10n_cr/data/l10n_cr_state_data.xml
index 585012600b2..4a38f56de50 100644
--- a/addons/l10n_cr/data/l10n_cr_state_data.xml
+++ b/addons/l10n_cr/data/l10n_cr_state_data.xml
@@ -5,37 +5,37 @@
Update states
-->
- SJ
+ CR-SJ
San José
- A
+ CR-A
Alajuela
- H
+ CR-H
Heredia
- C
+ CR-C
Cartago
- P
+ CR-P
Puntarenas
- G
+ CR-G
Guanacaste
- L
+ CR-L
Limón
diff --git a/addons/l10n_do/models/chart_template.py b/addons/l10n_do/models/chart_template.py
index 73e99589873..97d0833fef6 100644
--- a/addons/l10n_do/models/chart_template.py
+++ b/addons/l10n_do/models/chart_template.py
@@ -13,6 +13,49 @@ class WizardMultiChartsAccounts(models.TransientModel):
return [
{'acc_name': _('Cash'), 'account_type': 'cash'},
{'acc_name': _('Caja Chica'), 'account_type': 'cash'},
+ {'acc_name': _('Cheques Clientes'), 'account_type': 'cash'},
{'acc_name': _('Bank'), 'account_type': 'bank'}
]
return super(WizardMultiChartsAccounts, self)._get_default_bank_account_ids()
+
+
+class AccountChartTemplate(models.Model):
+ _inherit = "account.chart.template"
+
+ @api.multi
+ def _prepare_all_journals(self, acc_template_ref, company, journals_dict=None):
+ """Create fiscal journals for buys"""
+ res = super(AccountChartTemplate, self)._prepare_all_journals(
+ acc_template_ref, company, journals_dict=journals_dict)
+ if not self == self.env.ref('l10n_do.do_chart_template'):
+ return res
+ for journal in res:
+ if journal['code'] == 'FACT':
+ journal['name'] = _('Compras Fiscales')
+ res += [{
+ 'type': 'purchase',
+ 'name': _('Compras Informales'),
+ 'code': 'CINF',
+ 'company_id': company.id,
+ 'show_on_dashboard': True
+ }, {
+ 'type': 'purchase',
+ 'name': _('Gastos Menores'),
+ 'code': 'GASM',
+ 'company_id': company.id,
+ 'show_on_dashboard': True
+ }, {
+ 'type': 'purchase',
+ 'name': _('Compras al Exterior'),
+ 'code': 'CEXT',
+ 'company_id': company.id,
+ 'show_on_dashboard': True
+ }, {
+ 'type': 'purchase',
+ 'name': _('Gastos No Deducibles'),
+ 'code': 'GASTO',
+ 'company_id': company.id,
+ 'show_on_dashboard': True
+ }]
+ return res
+
diff --git a/addons/l10n_es/__manifest__.py b/addons/l10n_es/__manifest__.py
index c5d7599074e..44b23a5e9c4 100644
--- a/addons/l10n_es/__manifest__.py
+++ b/addons/l10n_es/__manifest__.py
@@ -3,6 +3,7 @@
# List of contributors:
# Jordi Esteve
+# Ignacio Ibeas
# Dpto. Consultoría Grupo Opentia
# Pedro M. Baeza
# Carlos Liébana
diff --git a/addons/l10n_es/data/account_fiscal_position_template_data.xml b/addons/l10n_es/data/account_fiscal_position_template_data.xml
index 49beed9d022..eef1bd1ac03 100644
--- a/addons/l10n_es/data/account_fiscal_position_template_data.xml
+++ b/addons/l10n_es/data/account_fiscal_position_template_data.xml
@@ -113,6 +113,16 @@
+
+ REAGYP - Agricultura
+
+
+
+
+ REAGYP - Ganadería y pesca
+
+
+
@@ -2889,6 +2899,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/l10n_es/data/account_tax_data.xml b/addons/l10n_es/data/account_tax_data.xml
index d07503b0b88..327144f6fe1 100644
--- a/addons/l10n_es/data/account_tax_data.xml
+++ b/addons/l10n_es/data/account_tax_data.xml
@@ -1044,6 +1044,18 @@
+
+ P_IVA105_GAN
+ purchase
+
+ 10,5% IVA Soportado régimen ganadero o pesca
+
+
+
+ percent
+
+
+
S_IVA0_E
sale
@@ -1330,6 +1342,7 @@
+
percent
diff --git a/addons/l10n_fr_certification/data/account_move.xml b/addons/l10n_fr_certification/data/account_move.xml
index 2794e6364f9..c4d735d2b14 100644
--- a/addons/l10n_fr_certification/data/account_move.xml
+++ b/addons/l10n_fr_certification/data/account_move.xml
@@ -3,6 +3,7 @@
Data Inalterability Check
ir.actions.server
+ code
action = env['account.move']._check_hash_integrity(env.user.company_id.id)
@@ -12,6 +13,7 @@
Get the certification now!
ir.actions.server
+ code
db_uuid = env['ir.config_parameter'].sudo().get_param('database.uuid')
action = {"type": "ir.actions.act_url",
diff --git a/addons/l10n_fr_pos_cert/data/pos_inalterability.xml b/addons/l10n_fr_pos_cert/data/pos_inalterability.xml
index ace4c3de24d..377204b73c6 100644
--- a/addons/l10n_fr_pos_cert/data/pos_inalterability.xml
+++ b/addons/l10n_fr_pos_cert/data/pos_inalterability.xml
@@ -8,6 +8,7 @@
Pos Orders Inalterability Check
ir.actions.server
+ code
action = env['pos.order']._check_hash_integrity(env.user.company_id.id)
diff --git a/addons/l10n_multilang/models/l10n_multilang.py b/addons/l10n_multilang/models/l10n_multilang.py
index 0c096c4cdf3..4bde8505d5c 100644
--- a/addons/l10n_multilang/models/l10n_multilang.py
+++ b/addons/l10n_multilang/models/l10n_multilang.py
@@ -32,14 +32,14 @@ class AccountChartTemplate(models.Model):
for element in in_ids.with_context(lang=None):
if value[element.id]:
#copy Translation from Source to Destination object
- xlat_obj.create({
- 'name': out_ids._name + ',' + in_field,
- 'type': 'model',
- 'res_id': out_ids[counter].id,
- 'lang': lang,
- 'src': element[in_field],
- 'value': value[element.id],
- })
+ xlat_obj._set_ids(
+ out_ids._name + ',' + in_field,
+ 'model',
+ lang,
+ out_ids[counter].ids,
+ value[element.id],
+ element[in_field]
+ )
else:
_logger.info('Language: %s. Translation from template: there is no translation available for %s!' % (lang, element[in_field]))
counter += 1
diff --git a/addons/mail/controllers/bus.py b/addons/mail/controllers/bus.py
index 09305e61b27..c900604ab06 100644
--- a/addons/mail/controllers/bus.py
+++ b/addons/mail/controllers/bus.py
@@ -43,7 +43,7 @@ class MailChatController(BusController):
# post a message without adding followers to the channel. email_from=False avoid to get author from email data
mail_channel = request.env["mail.channel"].sudo().search([('uuid', '=', uuid)], limit=1)
body = tools.plaintext2html(message_content)
- message = mail_channel.sudo().with_context(mail_create_nosubscribe=True).message_post(author_id=author_id, email_from=False, body=body, message_type='comment', subtype='mail.mt_comment', content_subtype='plaintext')
+ message = mail_channel.sudo().with_context(mail_create_nosubscribe=True).message_post(author_id=author_id, email_from=False, body=body, message_type='comment', subtype='mail.mt_comment')
return message and message.id or False
@route(['/mail/chat_history'], type="json", auth="none")
diff --git a/addons/mail/models/ir_model.py b/addons/mail/models/ir_model.py
index 04529610f0e..0b029f3e1a1 100644
--- a/addons/mail/models/ir_model.py
+++ b/addons/mail/models/ir_model.py
@@ -52,12 +52,6 @@ class IrModel(models.Model):
model_class._inherit = parents + ['mail.thread']
return model_class
- def unlink(self):
- # Delete followers for models that will be unlinked.
- query = "DELETE FROM mail_followers WHERE res_model IN %s"
- self.env.cr.execute(query, [tuple(self.mapped('model'))])
- return super(IrModel, self).unlink()
-
class IrModelField(models.Model):
_inherit = 'ir.model.fields'
diff --git a/addons/mail/models/mail_activity.py b/addons/mail/models/mail_activity.py
index 81975b9826d..3dc7ef85330 100644
--- a/addons/mail/models/mail_activity.py
+++ b/addons/mail/models/mail_activity.py
@@ -89,7 +89,7 @@ class MailActivity(models.Model):
summary = fields.Char('Summary')
note = fields.Html('Note')
feedback = fields.Html('Feedback')
- date_deadline = fields.Date('Due Date', index=True, required=True, default=fields.Date.today)
+ date_deadline = fields.Date('Due Date', index=True, required=True, default=fields.Date.context_today)
automated = fields.Boolean(
'Automated activity', readonly=True,
help='Indicates this activity has been created automatically and not by any user.')
@@ -154,7 +154,8 @@ class MailActivity(models.Model):
@api.onchange('recommended_activity_type_id')
def _onchange_recommended_activity_type_id(self):
- self.activity_type_id = self.recommended_activity_type_id
+ if self.recommended_activity_type_id:
+ self.activity_type_id = self.recommended_activity_type_id
@api.multi
def _check_access(self, operation):
diff --git a/addons/mail/models/mail_message.py b/addons/mail/models/mail_message.py
index 1a69aaa229a..b42de71abcf 100644
--- a/addons/mail/models/mail_message.py
+++ b/addons/mail/models/mail_message.py
@@ -416,8 +416,17 @@ class Message(models.Model):
com_id = self.env['ir.model.data'].xmlid_to_res_id('mail.mt_comment')
note_id = self.env['ir.model.data'].xmlid_to_res_id('mail.mt_note')
+ # fetch notification status
+ notif_dict = {}
+ notifs = self.env['mail.notification'].sudo().search([('mail_message_id', 'in', list(mid for mid in message_tree)), ('is_read', '=', False)])
+ for notif in notifs:
+ mid = notif.mail_message_id.id
+ if not notif_dict.get(mid):
+ notif_dict[mid] = {'partner_id': list()}
+ notif_dict[mid]['partner_id'].append(notif.res_partner_id.id)
+
for message in message_values:
- message['needaction_partner_ids'] = self.env['mail.notification'].sudo().search([('mail_message_id', '=', message['id']), ('is_read', '=', False)]).mapped('res_partner_id').ids
+ message['needaction_partner_ids'] = notif_dict.get(message['id'], dict()).get('partner_id', [])
message['is_note'] = message['subtype_id'] and subtypes_dict[message['subtype_id'][0]]['id'] == note_id
message['is_discussion'] = message['subtype_id'] and subtypes_dict[message['subtype_id'][0]]['id'] == com_id
message['is_notification'] = message['is_note'] and not message['model'] and not message['res_id']
diff --git a/addons/mail/models/mail_thread.py b/addons/mail/models/mail_thread.py
index e247df26c8f..587009984cf 100644
--- a/addons/mail/models/mail_thread.py
+++ b/addons/mail/models/mail_thread.py
@@ -120,7 +120,8 @@ class MailThread(models.AbstractModel):
followers = self.env['mail.followers'].sudo().search([
('res_model', '=', self._name),
('partner_id', operator, operand)])
- return [('id', 'in', followers.mapped('res_id'))]
+ # using read() below is much faster than followers.mapped('res_id')
+ return [('id', 'in', [res['res_id'] for res in followers.read(['res_id'])])]
@api.model
def _search_follower_channels(self, operator, operand):
@@ -133,7 +134,8 @@ class MailThread(models.AbstractModel):
followers = self.env['mail.followers'].sudo().search([
('res_model', '=', self._name),
('channel_id', operator, operand)])
- return [('id', 'in', followers.mapped('res_id'))]
+ # using read() below is much faster than followers.mapped('res_id')
+ return [('id', 'in', [res['res_id'] for res in followers.read(['res_id'])])]
@api.multi
@api.depends('message_follower_ids')
@@ -143,7 +145,8 @@ class MailThread(models.AbstractModel):
('res_id', 'in', self.ids),
('partner_id', '=', self.env.user.partner_id.id),
])
- following_ids = followers.mapped('res_id')
+ # using read() below is much faster than followers.mapped('res_id')
+ following_ids = [res['res_id'] for res in followers.read(['res_id'])]
for record in self:
record.message_is_follower = record.id in following_ids
@@ -155,9 +158,11 @@ class MailThread(models.AbstractModel):
])
# Cases ('message_is_follower', '=', True) or ('message_is_follower', '!=', False)
if (operator == '=' and operand) or (operator == '!=' and not operand):
- return [('id', 'in', followers.mapped('res_id'))]
+ # using read() below is much faster than followers.mapped('res_id')
+ return [('id', 'in', [res['res_id'] for res in followers.read(['res_id'])])]
else:
- return [('id', 'not in', followers.mapped('res_id'))]
+ # using read() below is much faster than followers.mapped('res_id')
+ return [('id', 'not in', [res['res_id'] for res in followers.read(['res_id'])])]
@api.multi
def _get_message_unread(self):
@@ -1433,7 +1438,13 @@ class MailThread(models.AbstractModel):
located in tools. """
if not body:
return body, attachments
- root = lxml.html.fromstring(body)
+ try:
+ root = lxml.html.fromstring(body)
+ except ValueError:
+ # In case the email client sent XHTML, fromstring will fail because 'Unicode strings
+ # with encoding declaration are not supported'.
+ root = lxml.html.fromstring(body.encode('utf-8'))
+
postprocessed = False
to_remove = []
for node in root.iter():
@@ -1815,6 +1826,8 @@ class MailThread(models.AbstractModel):
continue
if isinstance(content, pycompat.text_type):
content = content.encode('utf-8')
+ elif content is None:
+ continue
data_attach = {
'name': name,
'datas': base64.b64encode(content),
diff --git a/addons/mail/models/res_users.py b/addons/mail/models/res_users.py
index 2068e66c834..0d6ea26579c 100644
--- a/addons/mail/models/res_users.py
+++ b/addons/mail/models/res_users.py
@@ -75,16 +75,19 @@ class Users(models.Model):
def activity_user_count(self):
query = """SELECT m.id, count(*), act.res_model as model,
CASE
- WHEN now()::date - act.date_deadline::date = 0 Then 'today'
- WHEN now()::date - act.date_deadline::date > 0 Then 'overdue'
- WHEN now()::date - act.date_deadline::date < 0 Then 'planned'
+ WHEN %(today)s::date - act.date_deadline::date = 0 Then 'today'
+ WHEN %(today)s::date - act.date_deadline::date > 0 Then 'overdue'
+ WHEN %(today)s::date - act.date_deadline::date < 0 Then 'planned'
END AS states
FROM mail_activity AS act
JOIN ir_model AS m ON act.res_model_id = m.id
- WHERE user_id = %s
+ WHERE user_id = %(user_id)s
GROUP BY m.id, states, act.res_model;
"""
- self.env.cr.execute(query, [self.env.uid])
+ self.env.cr.execute(query, {
+ 'today': fields.Date.context_today(self),
+ 'user_id': self.env.uid,
+ })
activity_data = self.env.cr.dictfetchall()
model_ids = [a['id'] for a in activity_data]
model_names = {n[0]: n[1] for n in self.env['ir.model'].browse(model_ids).name_get()}
diff --git a/addons/mail/static/src/js/activity.js b/addons/mail/static/src/js/activity.js
index 4bb81489789..fce7eb29f6f 100644
--- a/addons/mail/static/src/js/activity.js
+++ b/addons/mail/static/src/js/activity.js
@@ -32,6 +32,7 @@ function _readActivities(self, ids) {
model: 'mail.activity',
method: 'read',
args: [ids],
+ context: (self.record && self.record.getContext()) || self.getSession().user_context,
}).then(function (activities) {
// convert create_date and date_deadline to moments
_.each(activities, function (activity) {
@@ -108,6 +109,7 @@ var AbstractActivityField = AbstractField.extend({
method: 'action_feedback',
args: [[id]],
kwargs: {feedback: feedback},
+ context: this.record.getContext(),
});
},
_scheduleActivity: function (id, previous_activity_type_id, callback) {
diff --git a/addons/mail/static/src/js/chat_window.js b/addons/mail/static/src/js/chat_window.js
index 9f09eb390b0..9e080f3a248 100644
--- a/addons/mail/static/src/js/chat_window.js
+++ b/addons/mail/static/src/js/chat_window.js
@@ -16,7 +16,8 @@ var HEIGHT_FOLDED = '34px';
return Widget.extend({
template: "mail.ChatWindow",
custom_events: {
- escape_pressed: '_onEscapePressed'
+ escape_pressed: '_onEscapePressed',
+ document_viewer_closed: '_onDocumentViewerClose',
},
events: {
'click .o_chat_composer': '_onComposerClick',
@@ -182,6 +183,9 @@ return Widget.extend({
}
this.focus_input();
},
+ _onDocumentViewerClose: function (ev) {
+ this.focus_input();
+ },
/**
* @private
*/
diff --git a/addons/mail/static/src/js/chatter.js b/addons/mail/static/src/js/chatter.js
index dfc041325d9..e48a7c60028 100644
--- a/addons/mail/static/src/js/chatter.js
+++ b/addons/mail/static/src/js/chatter.js
@@ -184,7 +184,7 @@ var Chatter = Widget.extend({
input_baseline: 14,
is_log: options && options.is_log,
record_name: this.record_name,
- default_body: old_composer && old_composer.$input && old_composer.$input.html(),
+ default_body: old_composer && old_composer.$input && old_composer.$input.val(),
default_mention_selections: old_composer && old_composer.mention_get_listener_selections(),
});
this.composer.on('input_focused', this, function () {
@@ -247,7 +247,7 @@ var Chatter = Widget.extend({
}).always(function () {
// disable widgets in create mode, otherwise enable
self.isCreateMode ? self._disableChatter() : self._enableChatter();
- $spinner.remove;
+ $spinner.remove();
});
},
/**
diff --git a/addons/mail/static/src/js/chatter_composer.js b/addons/mail/static/src/js/chatter_composer.js
index 7365b89e19e..da85f331863 100644
--- a/addons/mail/static/src/js/chatter_composer.js
+++ b/addons/mail/static/src/js/chatter_composer.js
@@ -46,7 +46,6 @@ var ChatterComposer = composer.BasicComposer.extend({
message = _.extend(message, {
subtype: 'mail.mt_comment',
message_type: 'comment',
- content_subtype: 'html',
context: self.context,
});
@@ -213,7 +212,7 @@ var ChatterComposer = composer.BasicComposer.extend({
recipient_done.then(function (partner_ids) {
var context = {
default_parent_id: self.id,
- default_body: utils.get_text2html(self.$input.html()),
+ default_body: utils.get_text2html(self.$input.val()),
default_attachment_ids: _.pluck(self.get('attachment_ids'), 'id'),
default_partner_ids: partner_ids,
default_is_log: self.options.is_log,
diff --git a/addons/mail/static/src/js/composer.js b/addons/mail/static/src/js/composer.js
index 3a7b9c320e1..f89c0382554 100644
--- a/addons/mail/static/src/js/composer.js
+++ b/addons/mail/static/src/js/composer.js
@@ -7,6 +7,7 @@ var utils = require('mail.utils');
var config = require('web.config');
var core = require('web.core');
var data = require('web.data');
+var dom = require('web.dom');
var session = require('web.session');
var Widget = require('web.Widget');
@@ -29,7 +30,7 @@ var MentionManager = Widget.extend({
events: {
"mouseover .o_mention_proposition": "on_hover_mention_proposition",
- "click .o_mention_proposition": "_onClickMentionItem",
+ "click .o_mention_proposition": "on_click_mention_item",
},
init: function (parent, options) {
@@ -52,6 +53,49 @@ var MentionManager = Widget.extend({
this.$('.o_mention_proposition').removeClass('active');
$elem.addClass('active');
},
+ on_click_mention_item: function (event) {
+ event.preventDefault();
+
+ var text_input = this.composer.$input.val();
+ var id = $(event.currentTarget).data('id');
+ var selected_suggestion = _.find(_.flatten(this.get('mention_suggestions')), function (s) {
+ return s.id === id;
+ });
+ var substitution = selected_suggestion.substitution;
+ if (!substitution) { // no substitution string given, so use the mention name instead
+ // replace white spaces with non-breaking spaces to facilitate mentions detection in text
+ selected_suggestion.name = selected_suggestion.name.replace(/ /g, NON_BREAKING_SPACE);
+ substitution = this.active_listener.delimiter + selected_suggestion.name;
+ }
+ var get_mention_index = function (matches, cursor_position) {
+ for (var i=0; i 0) {
return false;
}
- var search_str = textVal.substring(delimiter_position, cursorPosition);
+ var search_str = text_val.substring(delimiter_position, cursor_position);
var pattern = "(^"+delimiter+"|(^\\s"+delimiter+"))";
var regex_start = new RegExp(pattern, "g");
search_str = search_str.replace(/^\s\s*|^[\n\r]/g, '');
@@ -203,8 +247,6 @@ var MentionManager = Widget.extend({
/**
* Returns the matches (as RexExp.exec does) for the mention in the input text
- *
- * @private
* @param {String} input_text: the text to search matches
* @param {Object} listener: the listener for which we want to find a match
* @returns {Object[]} matches in the same format as RexExp.exec()
@@ -228,32 +270,6 @@ var MentionManager = Widget.extend({
}
return result;
},
- /**
- * Get cursor position in contenteditable div with it's inner html content.
- *
- * @private
- * @return a current cursor position
- */
- _getSelectionPositions: function () {
- if (window.getSelection && window.getSelection().getRangeAt) {
- var range = window.getSelection().getRangeAt(0);
- var selectedObj = window.getSelection();
- var rangeCount = 0;
- var childNodes = selectedObj.anchorNode.parentNode.childNodes;
- for (var i = 0; i < childNodes.length; i++) {
- if (childNodes[i] === selectedObj.anchorNode) {
- break;
- }
- if (childNodes[i].outerHTML)
- rangeCount += childNodes[i].outerHTML.length;
- else if (childNodes[i].nodeType === 3) {
- rangeCount += childNodes[i].textContent.length;
- }
- }
- return range.startOffset + rangeCount;
- }
- return -1;
- },
/**
* @private
* @param {integer} keycode
@@ -312,23 +328,9 @@ var MentionManager = Widget.extend({
this.open = false;
}
},
- /*
- * Set cursor position after mention is added.
- * @private
- * @paran {int} node - id of childnode to set cursor position after it.
- */
- _setCursorPosition: function (nodeID) {
- var range = document.createRange();
- var selection = window.getSelection();
- range.setStart(document.getElementById(nodeID).nextSibling, 1);
- range.collapse(true);
- selection.removeAllRanges();
- selection.addRange(range);
- this.composer.$input.focus();
- },
- _validate_selection: function (selection, inputMentions) {
+ _validate_selection: function (selection, input_mentions) {
var validated_selection = [];
- _.each(inputMentions, function (mention) {
+ _.each(input_mentions, function (mention) {
var validated_mention = _.findWhere(selection, {name: mention.slice(1)});
if (validated_mention) {
validated_selection.push(validated_mention);
@@ -337,60 +339,15 @@ var MentionManager = Widget.extend({
return validated_selection;
},
- //--------------------------------------------------------------------------
- // Handlers
- //--------------------------------------------------------------------------
-
- /**
- * after click on mention item it set to a contenteditable div with it's new
- * cursor postion
- *
- * @private
- * @param {KeyboardEvent} event - to get a current selected mention from
- * list and eventlistener.
- */
- _onClickMentionItem: function (event) {
- event.preventDefault();
-
- var textInput = this.composer.$input.html();
- var id = $(event.currentTarget).data('id');
- var selectedSuggestion = _.find(_.flatten(this.get('mention_suggestions')), function (s) {
- return s.id === id;
+ // Cursor position and selection utils
+ _get_selection_positions: function () {
+ var el = this.composer.$input.get(0);
+ return el ? dom.getSelectionRange(el) : {start: 0, end: 0};
+ },
+ _set_cursor_position: function (pos) {
+ this.composer.$input.each(function (index, elem) {
+ dom.setSelectionRange(elem, {start: pos, end: pos});
});
- var substitution = selectedSuggestion.substitution;
- if (!substitution) { // no substitution string given, so use the mention name instead
- // replace white spaces with non-breaking spaces to facilitate mentions detection in text
- selectedSuggestion.name = selectedSuggestion.name.replace(/ /g, NON_BREAKING_SPACE);
- substitution = _.escape(this.active_listener.delimiter + selectedSuggestion.name);
- }
- var getMentionIndex = function (matches, cursorPosition) {
- for (var i=0; i" + substitution + " " + textRight;
- this.composer.$input.html(newTextInput);
- this._setCursorPosition(nodeID);
- this.set('mention_suggestions', []);
},
});
@@ -398,8 +355,8 @@ var MentionManager = Widget.extend({
var BasicComposer = Widget.extend({
template: "mail.ChatComposer",
events: {
- "keydown .o_composer_input": "_onKeydown",
- "keyup .o_composer_input": "_onKeyup",
+ "keydown .o_composer_input textarea": "on_keydown",
+ "keyup .o_composer_input": "on_keyup",
"change input.o_input_file": "on_attachment_change",
"click .o_composer_button_send": "send_message",
"click .o_composer_button_add_attachment": "on_click_add_attachment",
@@ -410,7 +367,6 @@ var BasicComposer = Widget.extend({
'focusout .o_composer_button_emoji': '_onEmojiButtonFocusout',
'focus .o_mail_emoji_container .o_mail_emoji': '_onEmojiImageFocus',
'click .o_mail_emoji_container .o_mail_emoji': '_onEmojiImageClick',
- 'input .o_composer_input': '_removeMention',
},
// RPCs done to fetch the mention suggestions are throttled with the following value
MENTION_THROTTLE: 200,
@@ -487,12 +443,12 @@ var BasicComposer = Widget.extend({
this.$attachment_button = this.$(".o_composer_button_add_attachment");
this.$attachments_list = this.$('.o_composer_attachments_list');
- this.$input = this.$('.o_composer_input');
+ this.$input = this.$('.o_composer_input textarea');
this.$input.focus(function () {
self.trigger('input_focused');
});
- this.$input.html(this.options.default_body);
- this.$input.css('min-height', this.options.input_min_height);
+ this.$input.val(this.options.default_body);
+ dom.autoresize(this.$input, {parent: this, min_height: this.options.input_min_height});
// Attachments
$(window).on(this.fileupload_id, this.on_attachment_loaded);
@@ -514,7 +470,7 @@ var BasicComposer = Widget.extend({
// behavior for the chatter composer
//Removing unwanted extra spaces from message
- var value = _.escape(this.$input.text()).trim();
+ var value = _.escape(this.$input.val()).trim();
value = value.replace(/(\r|\n){2,}/g, ' ');
value = value.replace(/(\r|\n)/g, ' ');
@@ -545,7 +501,7 @@ var BasicComposer = Widget.extend({
clear_composer: function() {
// Empty input, selected partners and attachments
- this.$input.html('');
+ this.$input.val('');
this.mention_manager.reset_selections();
this.set('attachment_ids', []);
},
@@ -557,7 +513,7 @@ var BasicComposer = Widget.extend({
getState: function () {
return {
attachments: this.get('attachment_ids'),
- text: this.$input.html(),
+ text: this.$input.val(),
};
},
@@ -565,11 +521,14 @@ var BasicComposer = Widget.extend({
on_click_add_attachment: function () {
this.$('input.o_input_file').click();
this.$input.focus();
+ // set ignoreEscape to avoid escape_pressed event when file selector dialog is opened
+ // when user press escape to cancel file selector dialog then escape_pressed event should not be trigerred
+ this.ignoreEscape = true;
},
setState: function (state) {
this.set('attachment_ids', state.attachments);
- this.$input.html(state.text);
+ this.$input.val(state.text);
},
/**
@@ -578,18 +537,8 @@ var BasicComposer = Widget.extend({
should_send: function (event) {
return !event.shiftKey;
},
- /**
- * _onKeydown event is triggered when is key is pressed
- * - on UP and DOWN arrow is pressed then event prevents it's default
- * behaviour if mention manager is open else it break it.
- * - on ENTER key is pressed and mention manager is open then event
- * prevents it's default behaviour else check if ControlKey is
- * pressed or not if yes then it send a message
- *
- * @private
- * @param {KeyboardEvent} event
- */
- _onKeydown: function (event) {
+
+ on_keydown: function (event) {
switch(event.which) {
// UP, DOWN, TAB: prevent moving cursor if navigation in mention propositions
case $.ui.keyCode.UP:
@@ -614,16 +563,7 @@ var BasicComposer = Widget.extend({
}
},
- /**
- * _onKeyup event is triggered when key is released.
- * on ESCAP key it close the mention suggestion dropdown menu.
- * on ENTER key it selects that mention and add to a content editable div.
- * on UP or DOWN key it highlights previous or next mention respectively.
- *
- * @private
- * @param {KeyboardEvent} event
- */
- _onKeyup: function (event) {
+ on_keyup: function (event) {
switch(event.which) {
// ESCAPED KEYS: do nothing
case $.ui.keyCode.END:
@@ -635,6 +575,8 @@ var BasicComposer = Widget.extend({
if (this.mention_manager.is_open()) {
event.stopPropagation();
this.mention_manager.reset_suggestions();
+ } else if (this.ignoreEscape) {
+ this.ignoreEscape = false;
} else {
this.trigger_up("escape_pressed");
}
@@ -738,12 +680,6 @@ var BasicComposer = Widget.extend({
attachments: this.get('attachment_ids'),
}));
},
- // remove mention when user try to edit or remove it.
- _removeMention: function (event) {
- if (window.getSelection().anchorNode.parentNode.tagName === 'A') {
- document.getElementById(window.getSelection().anchorNode.parentNode.id).remove();
- }
- },
// Mention
mention_fetch_throttled: function (model, method, kwargs) {
@@ -829,14 +765,8 @@ var BasicComposer = Widget.extend({
},
// Others
- /**
- * used to check if contenteditable div is empty or not
- *
- * @return - it returns length of attachment and trim content of input box
- * tp check for empty.
- */
is_empty: function () {
- return !this.$input.text().trim() && !this.$('.o_attachments').children().length;
+ return !this.$input.val().trim() && !this.$('.o_attachments').children().length;
},
focus: function () {
this.$input.focus();
@@ -871,6 +801,7 @@ var BasicComposer = Widget.extend({
* @param {MouseEvent} event
*/
_onAttachmentView: function (event) {
+ event.stopPropagation();
var activeAttachmentID = $(event.currentTarget).data('id');
var attachments = this.get('attachment_ids');
if (activeAttachmentID) {
@@ -894,7 +825,7 @@ var BasicComposer = Widget.extend({
if (this.$emojisContainer.parent().length) {
this._hideEmojis();
} else {
- this.$emojisContainer.appendTo(this.$('.o_composer_container'));
+ this.$emojisContainer.appendTo(this.$('.o_composer'));
}
},
/**
@@ -918,31 +849,6 @@ var BasicComposer = Widget.extend({
_onEmojiImageFocus: function () {
clearTimeout(this._hideEmojisTimeout);
},
- /**
- * set cursor position at the end in input box
- *
- * @todo move that kind of code in a utility file. Maybe dom.js
- *
- * @private
- * @param {Element} el
- */
- _placeCaretAtEnd: function (el) {
- el.focus();
- if (typeof window.getSelection !== "undefined"
- && typeof document.createRange !== "undefined") {
- var range = document.createRange();
- range.selectNodeContents(el);
- range.collapse(false);
- var sel = window.getSelection();
- sel.removeAllRanges();
- sel.addRange(range);
- } else if (typeof document.body.createTextRange !== "undefined") {
- var textRange = document.body.createTextRange();
- textRange.moveToElementText(el);
- textRange.collapse(false);
- textRange.select();
- }
- },
/**
* Called when an emoji is clicked -> adds it in the , focuses the
* and closes the emoji panel.
@@ -951,8 +857,8 @@ var BasicComposer = Widget.extend({
* @param {Event} ev
*/
_onEmojiImageClick: function (ev) {
- this.$input.html(this.$input.html() + " " + $(ev.currentTarget).data('emoji') + " ");
- this._placeCaretAtEnd(this.$input[0]);
+ this.$input.val(this.$input.val() + " " + $(ev.currentTarget).data('emoji') + " ");
+ this.$input.focus();
this._hideEmojis();
},
});
diff --git a/addons/mail/static/src/js/discuss.js b/addons/mail/static/src/js/discuss.js
index 3ac9e3b0ed5..3f37a620c80 100644
--- a/addons/mail/static/src/js/discuss.js
+++ b/addons/mail/static/src/js/discuss.js
@@ -861,7 +861,6 @@ var Discuss = AbstractAction.extend(ControlPanelMixin, {
message.subtype = this.selected_message.is_note ? 'mail.mt_note': 'mail.mt_comment';
message.subtype_id = false;
message.message_type = 'comment';
- message.content_subtype = 'html';
}
this.call('chat_manager', 'postMessage', message, options)
.then(function () {
diff --git a/addons/mail/static/src/js/document_viewer.js b/addons/mail/static/src/js/document_viewer.js
index d03b4811c76..3aa7e25c399 100644
--- a/addons/mail/static/src/js/document_viewer.js
+++ b/addons/mail/static/src/js/document_viewer.js
@@ -26,6 +26,7 @@ var DocumentViewer = Widget.extend({
'DOMMouseScroll .o_viewer_content': '_onScroll', // Firefox
'mousewheel .o_viewer_content': '_onScroll', // Chrome, Safari, IE
'keydown': '_onKeydown',
+ 'keyup': '_onKeyUp',
'mousedown .o_viewer_img': '_onStartDrag',
'mousemove .o_viewer_content': '_onDrag',
'mouseup .o_viewer_content': '_onEndDrag'
@@ -156,6 +157,7 @@ var DocumentViewer = Widget.extend({
_onClose: function (e) {
e.preventDefault();
this.$el.modal('hide');
+ this.trigger_up('document_viewer_closed');
},
/**
* When popup close complete destroyed modal even DOM footprint too
@@ -238,6 +240,20 @@ var DocumentViewer = Widget.extend({
break;
}
},
+ /**
+ * Close popup on ESCAPE keyup
+ *
+ * @private
+ * @param {KeyEvent} e
+ */
+ _onKeyUp: function (e) {
+ switch (e.which) {
+ case $.ui.keyCode.ESCAPE:
+ e.preventDefault();
+ this._onClose(e);
+ break;
+ }
+ },
/**
* @private
* @param {MouseEvent} e
diff --git a/addons/mail/static/src/js/services/chat_manager.js b/addons/mail/static/src/js/services/chat_manager.js
index 6d9a822999d..4bb6e9be6aa 100644
--- a/addons/mail/static/src/js/services/chat_manager.js
+++ b/addons/mail/static/src/js/services/chat_manager.js
@@ -730,7 +730,6 @@ var ChatManager = AbstractService.extend({
args: [options.channelID],
kwargs: _.extend(msg, {
message_type: 'comment',
- content_subtype: 'html',
subtype: 'mail.mt_comment',
command: data.command,
}),
@@ -739,7 +738,6 @@ var ChatManager = AbstractService.extend({
if ('model' in options && 'res_id' in options) {
// post a message in a chatter
_.extend(msg, {
- content_subtype: data.content_subtype,
context: data.context,
message_type: data.message_type,
subtype: data.subtype,
@@ -1357,7 +1355,15 @@ var ChatManager = AbstractService.extend({
//add o_mail_emoji class on each unicode to manage size and font
var unicode = String(value);
var regexp = new RegExp("(?:^|\\s|<[a-z]*>)(" + unicode + ")(?=\\s|$|[a-z]*>)", "g");
+ var msg_bak = msg.body;
msg.body = msg.body.replace(regexp, ' '+unicode+' ');
+ // Idiot-proof limit. If the user had the amazing idea of copy-pasting thousands of emojis,
+ // the image rendering can lead to memory overflow errors on some browsers (e.g. Chrome).
+ // Set an arbitrary limit to 200 from which we simply don't replace them (anyway, they are
+ // already replaced by the unicode counterpart).
+ if (_.str.count(msg.body, 'o_mail_emoji') > 200) {
+ msg.body = msg_bak;
+ }
});
function propertyDescr(channel) {
return {
diff --git a/addons/mail/static/src/js/thread.js b/addons/mail/static/src/js/thread.js
index d4bd448d2f8..f34823ff9fc 100644
--- a/addons/mail/static/src/js/thread.js
+++ b/addons/mail/static/src/js/thread.js
@@ -380,6 +380,7 @@ var Thread = Widget.extend({
* @param {MouseEvent} event
*/
_onAttachmentView: function (event) {
+ event.stopPropagation();
var activeAttachmentID = $(event.currentTarget).data('id');
if (activeAttachmentID) {
var attachmentViewer = new DocumentViewer(this, this.attachments, activeAttachmentID);
diff --git a/addons/mail/static/src/scss/composer.scss b/addons/mail/static/src/scss/composer.scss
index e7caf3821d0..cb079f81558 100644
--- a/addons/mail/static/src/scss/composer.scss
+++ b/addons/mail/static/src/scss/composer.scss
@@ -24,7 +24,7 @@
position: relative;
background: white;
- input {
+ textarea, input {
border: none;
}
}
@@ -41,19 +41,9 @@
}
.o_composer {
- .o_composer_input[contenteditable=true]:empty:before {
- content: attr(placeholder);
- opacity: 0.4;
- }
- .o_composer_input {
- border: none;
- box-shadow: none;
- cursor: text;
- display: inline-block;
- height: 100%;
- padding: 0px 0px $o-mail-chatter-gap;
- white-space: pre-wrap;
- word-break: break-all;
+ .o_composer_input > textarea {
+ width: 100%;
+ resize: none;
}
.o_composer_mention_dropdown .o_mention_proposition > a {
@include o-text-overflow;
@@ -82,18 +72,19 @@
color: $o-brand-optional;
}
}
- }
- .o_mail_emoji_container {
- padding: 0 $o-mail-chatter-gap $o-mail-chatter-gap 0;
- border: 1px solid $gray-lighter-dark;
- background-color: $gray-lighter;
+ .o_mail_emoji_container {
+ padding: 0 $o-mail-chatter-gap $o-mail-chatter-gap 0;
+ border: 1px solid $gray-lighter-dark;
+ border-width: 1px 0 0 0;
+ background-color: $gray-lighter;
- .o_mail_emoji {
- margin: $o-mail-chatter-gap 0 0 $o-mail-chatter-gap;
- cursor: pointer; // only in the popover
- min-width: 20px;
- min-height: 20px;
+ .o_mail_emoji {
+ margin: $o-mail-chatter-gap 0 0 $o-mail-chatter-gap;
+ cursor: pointer; // only in the popover
+ min-width: 20px;
+ min-height: 20px;
+ }
}
}
@@ -119,13 +110,19 @@
.o_composer {
border-radius: 2px;
+ textarea {
+ padding-right: $grid-gutter-width; // avoid overlaps betwenn textarea and o_composer_button_full_composer
+ }
+ .o_mail_emoji_container {
+ margin: 0 -$o-mail-chatter-gap;
+ }
}
.o_composer, .o_composer_subject {
border: 1px solid $gray-lighter-dark;
- input {
+ textarea, input {
padding: 0 0 $o-mail-chatter-gap;
border: none;
}
@@ -137,9 +134,6 @@
.o_chatter_composer_tools {
border-top: 1px solid $gray-lighter-dark;
- @media (max-width: $screen-xs-max) {
- margin-top: 10px;
- }
}
&:not(.o_chat_inline_composer) {
@@ -158,24 +152,26 @@
&.o_chat_inline_composer {
.o_composer_container {
- @include o-flex(1, 1, auto);
+ @include o-flex(1, 0, auto);
}
.o_composer {
- display: flex;
- min-height: 40px;
padding: $o-mail-chatter-gap $o-mail-chatter-gap 0 $o-mail-chatter-gap;
border-radius: 2px 0 0 2px;
border-right-width: 0;
- }
- .o_mail_emoji_container {
- text-align: right;
- border-width: 1px;
+
+ .o_mail_emoji_container {
+ text-align: right;
+ border-right-width: 1px;
+ }
}
.o_composer_input {
+ @include o-flex-display();
@include o-flex-flow(row, wrap);
}
.o_composer_text_field {
@include o-flex(1, 1, 50%);
+ margin: 0;
+ padding: 0;
}
.o_chatter_composer_tools {
@include o-flex(0, 1, auto);
@@ -207,25 +203,32 @@
border-top: 1px solid $gray-lighter-dark;
width: 100%;
}
- .o_mail_emoji_container {
- @include o-position-absolute(auto, 0, 100%, 0);
- border-bottom-width: 1px;
+ .o_composer {
+ .o_mail_emoji_container {
+ @include o-position-absolute(auto, 0, 100%, 0);
+ border-bottom-width: 1px;
+ }
}
.o_composer_input {
+ @include o-flex-display();
@include o-flex-flow(row, nowrap);
+ textarea.o_composer_text_field {
+ @include o-flex(1, 1, auto);
+ }
+
.o_chatter_composer_tools {
@include o-flex(0, 0, auto);
}
+ @media (max-width: $screen-xs-max) {
+ .o_composer_button_send {
+ display: inline-block;
+ }
+ }
}
.o_composer_button_send, .o_chatter_avatar {
display: none;
}
- @media (max-width: $screen-xs-max) {
- .o_composer_button_send {
- display: inline-block;
- }
- }
}
}
diff --git a/addons/mail/static/src/scss/extended_chat_window.scss b/addons/mail/static/src/scss/extended_chat_window.scss
index 774a37c6120..6cb930b4488 100644
--- a/addons/mail/static/src/scss/extended_chat_window.scss
+++ b/addons/mail/static/src/scss/extended_chat_window.scss
@@ -42,14 +42,10 @@
}
.o_chatter_composer_tools {
@include o-position-absolute($right: 0px, $top: 0px);
-
- @media (max-width: $screen-xs-max) {
- @include o-position-absolute($right: 6px, $top: 0px);
- }
button {
- padding: 8px;
+ padding: 10px;
@media (max-width: $screen-xs-max) {
- padding: 7px 6px 0px 6px;
+ padding: 13px;
}
&.btn-icon {
font-size: 1.3em;
diff --git a/addons/mail/static/src/xml/composer.xml b/addons/mail/static/src/xml/composer.xml
index 90beedc147f..bb9321a749d 100644
--- a/addons/mail/static/src/xml/composer.xml
+++ b/addons/mail/static/src/xml/composer.xml
@@ -8,11 +8,13 @@