\
\
@@ -84,7 +85,7 @@ erpnext.desktop.show_pending_notifications = function() {
add_circle('module-icon-messages', 'unread_messages', 'Unread Messages');
add_circle('module-icon-support-home', 'open_support_tickets', 'Open Support Tickets');
add_circle('module-icon-todo', 'things_todo', 'Things To Do');
- add_circle('module-icon-calendar', 'todays_events', 'Todays Events');
+ add_circle('module-icon-calendar-event', 'todays_events', 'Todays Events');
add_circle('module-icon-projects-home', 'open_tasks', 'Open Tasks');
add_circle('module-icon-questions', 'unanswered_questions', 'Unanswered Questions');
add_circle('module-icon-selling-home', 'open_leads', 'Open Leads');
diff --git a/home/page/latest_updates/latest_updates.js b/home/page/latest_updates/latest_updates.js
index 4fdb6e51009..b387aad67a4 100644
--- a/home/page/latest_updates/latest_updates.js
+++ b/home/page/latest_updates/latest_updates.js
@@ -1,7 +1,21 @@
erpnext.updates = [
+ ["1st March", [
+ "Time Log, Time Log Batch: Created feature to batch Time Logs so that they can be tracked for billing."
+ ]],
+ ["27th February", [
+ "Time Log: Created Time Log System, with Calendar View."
+ ]],
+ ["26th February", [
+ "Gross Profit: The report has been rewritten and now it is under Accounts module"
+ ]],
+ ["25th February", [
+ "Employee Leave Balance: New Report",
+ "Scripted Reports: Ability to create reports via Script",
+ ]],
["21st February, 2013", [
"Item: Warehouse-wise Re-order Level and Quantity",
- "Buying: Purchase Request renamed to Material Request"
+ "Buying: Purchase Request renamed to Material Request",
+ "Website: Dynamic (mobile friendly) layouts using Bootstrap Responsive layouts"
]],
["20th February, 2013", [
"Disable Rounded Total: If disable in 'Global Defaults', Rounding related fields \
diff --git a/hr/doctype/appraisal/locale/de-doc.json b/hr/doctype/appraisal/locale/de-doc.json
new file mode 100644
index 00000000000..e2879bf9152
--- /dev/null
+++ b/hr/doctype/appraisal/locale/de-doc.json
@@ -0,0 +1,28 @@
+{
+ "Amended From": "Ge\u00e4ndert von",
+ "Amendment Date": "\u00c4nderung Datum",
+ "Any other comments, noteworthy effort that should go in the records.": "Weitere Kommentare, bemerkenswerte Anstrengungen, die in den Aufzeichnungen gehen sollte.",
+ "Appraisal": "Bewertung",
+ "Appraisal Goals": "Bewertung Details",
+ "Appraisal Template": "Bewertung Template",
+ "Calculate Total Score": "Berechnen Gesamtpunktzahl",
+ "Cancelled": "Abgesagt",
+ "Comments": "Kommentare",
+ "Company": "Firma",
+ "Completed": "Fertiggestellt",
+ "Draft": "Entwurf",
+ "Employee Details": "Mitarbeiterdetails",
+ "End Date": "Enddatum",
+ "Fiscal Year": "Gesch\u00e4ftsjahr",
+ "For Employee": "F\u00fcr Mitarbeiter",
+ "For Employee Name": "F\u00fcr Employee Name",
+ "Goals": "Ziele",
+ "HR": "HR",
+ "Other Details": "Weitere Details",
+ "Select template from which you want to get the Goals": "W\u00e4hlen Sie aus, welche Vorlage Sie die Ziele erhalten m\u00f6chten",
+ "Select the Employee for whom you are creating the Appraisal.": "W\u00e4hlen Sie den Mitarbeiter, f\u00fcr den Sie erstellen Appraisal.",
+ "Start Date": "Startdatum",
+ "Status": "Status",
+ "Submitted": "Eingereicht",
+ "Total Score (Out of 5)": "Gesamtpunktzahl (von 5)"
+}
\ No newline at end of file
diff --git a/hr/doctype/appraisal/locale/pt-BR-doc.json b/hr/doctype/appraisal/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..bec74a5d703
--- /dev/null
+++ b/hr/doctype/appraisal/locale/pt-BR-doc.json
@@ -0,0 +1,28 @@
+{
+ "Amended From": "Corrigido De",
+ "Amendment Date": "Data da Corre\u00e7\u00e3o",
+ "Any other comments, noteworthy effort that should go in the records.": "Quaisquer outros coment\u00e1rios, esfor\u00e7o not\u00e1vel que deva ir para os registros.",
+ "Appraisal": "Avalia\u00e7\u00e3o",
+ "Appraisal Goals": "Metas de Avalia\u00e7\u00e3o",
+ "Appraisal Template": "Modelo de Avalia\u00e7\u00e3o",
+ "Calculate Total Score": "Calcular a Pontua\u00e7\u00e3o Total",
+ "Cancelled": "Cancelado",
+ "Comments": "Coment\u00e1rios",
+ "Company": "Empresa",
+ "Completed": "Conclu\u00eddo",
+ "Draft": "Rascunho",
+ "Employee Details": "Detalhes do Funcion\u00e1rio",
+ "End Date": "Data final",
+ "Fiscal Year": "Exerc\u00edcio fiscal",
+ "For Employee": "Para o Funcion\u00e1rio",
+ "For Employee Name": "Para Nome do Funcion\u00e1rio",
+ "Goals": "Metas",
+ "HR": "RH",
+ "Other Details": "Outros detalhes",
+ "Select template from which you want to get the Goals": "Selecione o modelo a partir do qual voc\u00ea deseja obter as Metas",
+ "Select the Employee for whom you are creating the Appraisal.": "Selecione o funcion\u00e1rio para quem voc\u00ea est\u00e1 criando a Avalia\u00e7\u00e3o.",
+ "Start Date": "Data de In\u00edcio",
+ "Status": "Estado",
+ "Submitted": "Enviado",
+ "Total Score (Out of 5)": "Pontua\u00e7\u00e3o total (sobre 5)"
+}
\ No newline at end of file
diff --git a/hr/doctype/appraisal/locale/th-doc.json b/hr/doctype/appraisal/locale/th-doc.json
new file mode 100644
index 00000000000..30a0796ee50
--- /dev/null
+++ b/hr/doctype/appraisal/locale/th-doc.json
@@ -0,0 +1,28 @@
+{
+ "Amended From": "\u0e41\u0e01\u0e49\u0e44\u0e02\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21",
+ "Amendment Date": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e41\u0e01\u0e49\u0e44\u0e02",
+ "Any other comments, noteworthy effort that should go in the records.": "\u0e04\u0e27\u0e32\u0e21\u0e40\u0e2b\u0e47\u0e19\u0e2d\u0e37\u0e48\u0e19 \u0e46 \u0e04\u0e27\u0e32\u0e21\u0e1e\u0e22\u0e32\u0e22\u0e32\u0e21\u0e17\u0e35\u0e48\u0e19\u0e48\u0e32\u0e2a\u0e31\u0e07\u0e40\u0e01\u0e15\u0e27\u0e48\u0e32\u0e04\u0e27\u0e23\u0e08\u0e30\u0e44\u0e1b\u0e43\u0e19\u0e1a\u0e31\u0e19\u0e17\u0e36\u0e01",
+ "Appraisal": "\u0e01\u0e32\u0e23\u0e15\u0e35\u0e23\u0e32\u0e04\u0e32",
+ "Appraisal Goals": "\u0e40\u0e1b\u0e49\u0e32\u0e2b\u0e21\u0e32\u0e22\u0e01\u0e32\u0e23\u0e1b\u0e23\u0e30\u0e40\u0e21\u0e34\u0e19",
+ "Appraisal Template": "\u0e41\u0e21\u0e48\u0e41\u0e1a\u0e1a\u0e01\u0e32\u0e23\u0e1b\u0e23\u0e30\u0e40\u0e21\u0e34\u0e19",
+ "Calculate Total Score": "\u0e04\u0e33\u0e19\u0e27\u0e13\u0e04\u0e30\u0e41\u0e19\u0e19\u0e23\u0e27\u0e21",
+ "Cancelled": "\u0e22\u0e01\u0e40\u0e25\u0e34\u0e01",
+ "Comments": "\u0e04\u0e27\u0e32\u0e21\u0e40\u0e2b\u0e47\u0e19",
+ "Company": "\u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17",
+ "Completed": "\u0e40\u0e2a\u0e23\u0e47\u0e08",
+ "Draft": "\u0e23\u0e48\u0e32\u0e07",
+ "Employee Details": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e02\u0e2d\u0e07\u0e1e\u0e19\u0e31\u0e01\u0e07\u0e32\u0e19",
+ "End Date": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e2a\u0e34\u0e49\u0e19\u0e2a\u0e38\u0e14",
+ "Fiscal Year": "\u0e1b\u0e35\u0e07\u0e1a\u0e1b\u0e23\u0e30\u0e21\u0e32\u0e13",
+ "For Employee": "\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e1e\u0e19\u0e31\u0e01\u0e07\u0e32\u0e19",
+ "For Employee Name": "\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e0a\u0e37\u0e48\u0e2d\u0e02\u0e2d\u0e07\u0e1e\u0e19\u0e31\u0e01\u0e07\u0e32\u0e19",
+ "Goals": "\u0e40\u0e1b\u0e49\u0e32\u0e2b\u0e21\u0e32\u0e22",
+ "HR": "\u0e17\u0e23\u0e31\u0e1e\u0e22\u0e32\u0e01\u0e23\u0e1a\u0e38\u0e04\u0e04\u0e25",
+ "Other Details": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e2d\u0e37\u0e48\u0e19 \u0e46",
+ "Select template from which you want to get the Goals": "\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e41\u0e21\u0e48\u0e41\u0e1a\u0e1a\u0e17\u0e35\u0e48\u0e04\u0e38\u0e13\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e17\u0e35\u0e48\u0e08\u0e30\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e40\u0e1b\u0e49\u0e32\u0e2b\u0e21\u0e32\u0e22",
+ "Select the Employee for whom you are creating the Appraisal.": "\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e1e\u0e19\u0e31\u0e01\u0e07\u0e32\u0e19\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e04\u0e19\u0e17\u0e35\u0e48\u0e04\u0e38\u0e13\u0e01\u0e33\u0e25\u0e31\u0e07\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e01\u0e32\u0e23\u0e1b\u0e23\u0e30\u0e40\u0e21\u0e34\u0e19",
+ "Start Date": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19",
+ "Status": "\u0e2a\u0e16\u0e32\u0e19\u0e30",
+ "Submitted": "Submitted",
+ "Total Score (Out of 5)": "\u0e04\u0e30\u0e41\u0e19\u0e19\u0e23\u0e27\u0e21 (out of 5)"
+}
\ No newline at end of file
diff --git a/hr/doctype/appraisal_goal/locale/de-doc.json b/hr/doctype/appraisal_goal/locale/de-doc.json
new file mode 100644
index 00000000000..e7d0aa33a77
--- /dev/null
+++ b/hr/doctype/appraisal_goal/locale/de-doc.json
@@ -0,0 +1,9 @@
+{
+ "Appraisal Goal": "Bewertung Goal",
+ "Goal": "Ziel",
+ "HR": "HR",
+ "Key Responsibility Area": "Key Responsibility Bereich",
+ "Score (0-5)": "Score (0-5)",
+ "Score Earned": "Ergebnis Bekommen",
+ "Weightage (%)": "Gewichtung (%)"
+}
\ No newline at end of file
diff --git a/hr/doctype/appraisal_goal/locale/pt-BR-doc.json b/hr/doctype/appraisal_goal/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..2e065aa1cfd
--- /dev/null
+++ b/hr/doctype/appraisal_goal/locale/pt-BR-doc.json
@@ -0,0 +1,9 @@
+{
+ "Appraisal Goal": "Meta de Avalia\u00e7\u00e3o",
+ "Goal": "Meta",
+ "HR": "RH",
+ "Key Responsibility Area": "\u00c1rea Chave de Responsabilidade",
+ "Score (0-5)": "Pontua\u00e7\u00e3o (0-5)",
+ "Score Earned": "Pontua\u00e7\u00e3o Obtida",
+ "Weightage (%)": "Peso (%)"
+}
\ No newline at end of file
diff --git a/hr/doctype/appraisal_goal/locale/th-doc.json b/hr/doctype/appraisal_goal/locale/th-doc.json
new file mode 100644
index 00000000000..e5a3357c9db
--- /dev/null
+++ b/hr/doctype/appraisal_goal/locale/th-doc.json
@@ -0,0 +1,9 @@
+{
+ "Appraisal Goal": "\u0e40\u0e1b\u0e49\u0e32\u0e2b\u0e21\u0e32\u0e22\u0e01\u0e32\u0e23\u0e1b\u0e23\u0e30\u0e40\u0e21\u0e34\u0e19",
+ "Goal": "\u0e40\u0e1b\u0e49\u0e32\u0e2b\u0e21\u0e32\u0e22",
+ "HR": "\u0e17\u0e23\u0e31\u0e1e\u0e22\u0e32\u0e01\u0e23\u0e1a\u0e38\u0e04\u0e04\u0e25",
+ "Key Responsibility Area": "\u0e1e\u0e37\u0e49\u0e19\u0e17\u0e35\u0e48\u0e04\u0e27\u0e32\u0e21\u0e23\u0e31\u0e1a\u0e1c\u0e34\u0e14\u0e0a\u0e2d\u0e1a\u0e2b\u0e25\u0e31\u0e01",
+ "Score (0-5)": "\u0e04\u0e30\u0e41\u0e19\u0e19 (0-5)",
+ "Score Earned": "\u0e04\u0e30\u0e41\u0e19\u0e19\u0e17\u0e35\u0e48\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a",
+ "Weightage (%)": "weightage (%)"
+}
\ No newline at end of file
diff --git a/hr/doctype/appraisal_template/locale/de-doc.json b/hr/doctype/appraisal_template/locale/de-doc.json
new file mode 100644
index 00000000000..a0af762121e
--- /dev/null
+++ b/hr/doctype/appraisal_template/locale/de-doc.json
@@ -0,0 +1,8 @@
+{
+ "Appraisal Template": "Bewertung Template",
+ "Appraisal Template Goal": "Bewertung Template Goal",
+ "Appraisal Template Title": "Bewertung Template Titel",
+ "Description": "Beschreibung",
+ "HR": "HR",
+ "Total Points": "Total Points"
+}
\ No newline at end of file
diff --git a/hr/doctype/appraisal_template/locale/de-py.json b/hr/doctype/appraisal_template/locale/de-py.json
new file mode 100644
index 00000000000..b0d2b7986d5
--- /dev/null
+++ b/hr/doctype/appraisal_template/locale/de-py.json
@@ -0,0 +1,4 @@
+{
+ "Not": "Nicht",
+ "Total (sum of) points distribution for all goals should be 100.": "Total (Summe) Punkte Verteilung f\u00fcr alle Ziele sollten 100 sein."
+}
\ No newline at end of file
diff --git a/hr/doctype/appraisal_template/locale/pt-BR-doc.json b/hr/doctype/appraisal_template/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..2c00a59fa6b
--- /dev/null
+++ b/hr/doctype/appraisal_template/locale/pt-BR-doc.json
@@ -0,0 +1,8 @@
+{
+ "Appraisal Template": "Modelo de Avalia\u00e7\u00e3o",
+ "Appraisal Template Goal": "Meta do Modelo de Avalia\u00e7\u00e3o",
+ "Appraisal Template Title": "T\u00edtulo do Modelo de Avalia\u00e7\u00e3o",
+ "Description": "Descri\u00e7\u00e3o",
+ "HR": "RH",
+ "Total Points": "Total de pontos"
+}
\ No newline at end of file
diff --git a/hr/doctype/appraisal_template/locale/pt-BR-py.json b/hr/doctype/appraisal_template/locale/pt-BR-py.json
new file mode 100644
index 00000000000..86379c52bea
--- /dev/null
+++ b/hr/doctype/appraisal_template/locale/pt-BR-py.json
@@ -0,0 +1,4 @@
+{
+ "Not": "N\u00e3o",
+ "Total (sum of) points distribution for all goals should be 100.": "Total (soma) da distribui\u00e7\u00e3o de pontos para todos os objetivos deve ser 100."
+}
\ No newline at end of file
diff --git a/hr/doctype/appraisal_template/locale/th-doc.json b/hr/doctype/appraisal_template/locale/th-doc.json
new file mode 100644
index 00000000000..62780f478ff
--- /dev/null
+++ b/hr/doctype/appraisal_template/locale/th-doc.json
@@ -0,0 +1,8 @@
+{
+ "Appraisal Template": "\u0e41\u0e21\u0e48\u0e41\u0e1a\u0e1a\u0e01\u0e32\u0e23\u0e1b\u0e23\u0e30\u0e40\u0e21\u0e34\u0e19",
+ "Appraisal Template Goal": "\u0e40\u0e1b\u0e49\u0e32\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e17\u0e21\u0e40\u0e1e\u0e25\u0e17\u0e1b\u0e23\u0e30\u0e40\u0e21\u0e34\u0e19",
+ "Appraisal Template Title": "\u0e2b\u0e31\u0e27\u0e02\u0e49\u0e2d\u0e41\u0e21\u0e48\u0e41\u0e1a\u0e1a\u0e1b\u0e23\u0e30\u0e40\u0e21\u0e34\u0e19",
+ "Description": "\u0e25\u0e31\u0e01\u0e29\u0e13\u0e30",
+ "HR": "\u0e17\u0e23\u0e31\u0e1e\u0e22\u0e32\u0e01\u0e23\u0e1a\u0e38\u0e04\u0e04\u0e25",
+ "Total Points": "\u0e04\u0e30\u0e41\u0e19\u0e19\u0e23\u0e27\u0e21\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14"
+}
\ No newline at end of file
diff --git a/hr/doctype/appraisal_template/locale/th-py.json b/hr/doctype/appraisal_template/locale/th-py.json
new file mode 100644
index 00000000000..2df9538678b
--- /dev/null
+++ b/hr/doctype/appraisal_template/locale/th-py.json
@@ -0,0 +1,4 @@
+{
+ "Not": "\u0e44\u0e21\u0e48",
+ "Total (sum of) points distribution for all goals should be 100.": "\u0e23\u0e27\u0e21 (\u0e1c\u0e25\u0e23\u0e27\u0e21\u0e02\u0e2d\u0e07) \u0e01\u0e32\u0e23\u0e01\u0e23\u0e30\u0e08\u0e32\u0e22\u0e04\u0e30\u0e41\u0e19\u0e19\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e40\u0e1b\u0e49\u0e32\u0e2b\u0e21\u0e32\u0e22\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14\u0e04\u0e27\u0e23\u0e08\u0e30 100"
+}
\ No newline at end of file
diff --git a/hr/doctype/appraisal_template_goal/locale/_messages_doc.json b/hr/doctype/appraisal_template_goal/locale/_messages_doc.json
index f796274cefd..a429ba08844 100644
--- a/hr/doctype/appraisal_template_goal/locale/_messages_doc.json
+++ b/hr/doctype/appraisal_template_goal/locale/_messages_doc.json
@@ -1,7 +1,7 @@
[
- "HR",
"Appraisal Template Goal",
+ "HR",
"Key Performance Area",
- "KRA",
- "Weightage (%)"
+ "Weightage (%)",
+ "KRA"
]
\ No newline at end of file
diff --git a/hr/doctype/appraisal_template_goal/locale/de-doc.json b/hr/doctype/appraisal_template_goal/locale/de-doc.json
new file mode 100644
index 00000000000..bed3ced850e
--- /dev/null
+++ b/hr/doctype/appraisal_template_goal/locale/de-doc.json
@@ -0,0 +1,7 @@
+{
+ "Appraisal Template Goal": "Bewertung Template Goal",
+ "HR": "HR",
+ "KRA": "KRA",
+ "Key Performance Area": "Key Performance Area",
+ "Weightage (%)": "Gewichtung (%)"
+}
\ No newline at end of file
diff --git a/hr/doctype/appraisal_template_goal/locale/pt-BR-doc.json b/hr/doctype/appraisal_template_goal/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..8aa2cba3b6c
--- /dev/null
+++ b/hr/doctype/appraisal_template_goal/locale/pt-BR-doc.json
@@ -0,0 +1,7 @@
+{
+ "Appraisal Template Goal": "Meta do Modelo de Avalia\u00e7\u00e3o",
+ "HR": "RH",
+ "KRA": "KRA",
+ "Key Performance Area": "\u00c1rea Chave de Performance",
+ "Weightage (%)": "Peso (%)"
+}
\ No newline at end of file
diff --git a/hr/doctype/appraisal_template_goal/locale/th-doc.json b/hr/doctype/appraisal_template_goal/locale/th-doc.json
new file mode 100644
index 00000000000..c8a8f888de0
--- /dev/null
+++ b/hr/doctype/appraisal_template_goal/locale/th-doc.json
@@ -0,0 +1,7 @@
+{
+ "Appraisal Template Goal": "\u0e40\u0e1b\u0e49\u0e32\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e17\u0e21\u0e40\u0e1e\u0e25\u0e17\u0e1b\u0e23\u0e30\u0e40\u0e21\u0e34\u0e19",
+ "HR": "\u0e17\u0e23\u0e31\u0e1e\u0e22\u0e32\u0e01\u0e23\u0e1a\u0e38\u0e04\u0e04\u0e25",
+ "KRA": "KRA",
+ "Key Performance Area": "\u0e1e\u0e37\u0e49\u0e19\u0e17\u0e35\u0e48\u0e01\u0e32\u0e23\u0e14\u0e33\u0e40\u0e19\u0e34\u0e19\u0e07\u0e32\u0e19\u0e2b\u0e25\u0e31\u0e01",
+ "Weightage (%)": "weightage (%)"
+}
\ No newline at end of file
diff --git a/hr/doctype/attendance/locale/_messages_doc.json b/hr/doctype/attendance/locale/_messages_doc.json
index 617fc7269f9..a6c718cefc9 100644
--- a/hr/doctype/attendance/locale/_messages_doc.json
+++ b/hr/doctype/attendance/locale/_messages_doc.json
@@ -10,9 +10,9 @@
"Amended From",
"Amendment Date",
"Attendance Date",
+ "Employee",
"ATT",
"Present",
- "Employee",
"Employee Name",
"Company",
"Naming Series",
diff --git a/hr/doctype/attendance/locale/de-doc.json b/hr/doctype/attendance/locale/de-doc.json
new file mode 100644
index 00000000000..1c727772ae0
--- /dev/null
+++ b/hr/doctype/attendance/locale/de-doc.json
@@ -0,0 +1,20 @@
+{
+ "ATT": "ATT",
+ "Absent": "Abwesend",
+ "Amended From": "Ge\u00e4ndert von",
+ "Amendment Date": "\u00c4nderung Datum",
+ "Attendance": "Teilnahme",
+ "Attendance Date": "Teilnahme seit",
+ "Attendance Details": "Teilnahme Einzelheiten",
+ "Company": "Firma",
+ "Employee": "Mitarbeiter",
+ "Employee Name": "Name des Mitarbeiters",
+ "Fiscal Year": "Gesch\u00e4ftsjahr",
+ "HR": "HR",
+ "Half Day": "Half Day",
+ "Leave Type": "Lassen Typ",
+ "Naming Series": "Benennen Series",
+ "Present": "Pr\u00e4sentieren",
+ "Status": "Status",
+ "The date at which current entry is corrected in the system.": "Der Zeitpunkt, zu dem aktuellen Eintrag in dem System korrigiert."
+}
\ No newline at end of file
diff --git a/hr/doctype/attendance/locale/pt-BR-doc.json b/hr/doctype/attendance/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..d3e63e968fc
--- /dev/null
+++ b/hr/doctype/attendance/locale/pt-BR-doc.json
@@ -0,0 +1,20 @@
+{
+ "ATT": "ATT",
+ "Absent": "Ausente",
+ "Amended From": "Corrigido De",
+ "Amendment Date": "Data da Corre\u00e7\u00e3o",
+ "Attendance": "Comparecimento",
+ "Attendance Date": "Data de Comparecimento",
+ "Attendance Details": "Detalhes do Comparecimento",
+ "Company": "Empresa",
+ "Employee": "Funcion\u00e1rio",
+ "Employee Name": "Nome do Funcion\u00e1rio",
+ "Fiscal Year": "Exerc\u00edcio fiscal",
+ "HR": "RH",
+ "Half Day": "Meio Dia",
+ "Leave Type": "Tipo de Licen\u00e7as",
+ "Naming Series": "S\u00e9ries nomeadas",
+ "Present": "Apresentar",
+ "Status": "Estado",
+ "The date at which current entry is corrected in the system.": "A data em que o lan\u00e7amento atual \u00e9 corrigido no sistema."
+}
\ No newline at end of file
diff --git a/hr/doctype/attendance/locale/th-doc.json b/hr/doctype/attendance/locale/th-doc.json
new file mode 100644
index 00000000000..8bfb83ed21e
--- /dev/null
+++ b/hr/doctype/attendance/locale/th-doc.json
@@ -0,0 +1,20 @@
+{
+ "ATT": "ATT",
+ "Absent": "\u0e44\u0e21\u0e48\u0e2d\u0e22\u0e39\u0e48",
+ "Amended From": "\u0e41\u0e01\u0e49\u0e44\u0e02\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21",
+ "Amendment Date": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e41\u0e01\u0e49\u0e44\u0e02",
+ "Attendance": "\u0e01\u0e32\u0e23\u0e14\u0e39\u0e41\u0e25\u0e23\u0e31\u0e01\u0e29\u0e32",
+ "Attendance Date": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e40\u0e02\u0e49\u0e32\u0e23\u0e48\u0e27\u0e21",
+ "Attendance Details": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e01\u0e32\u0e23\u0e40\u0e02\u0e49\u0e32\u0e23\u0e48\u0e27\u0e21\u0e1b\u0e23\u0e30\u0e0a\u0e38\u0e21",
+ "Company": "\u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17",
+ "Employee": "\u0e25\u0e39\u0e01\u0e08\u0e49\u0e32\u0e07",
+ "Employee Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e02\u0e2d\u0e07\u0e1e\u0e19\u0e31\u0e01\u0e07\u0e32\u0e19",
+ "Fiscal Year": "\u0e1b\u0e35\u0e07\u0e1a\u0e1b\u0e23\u0e30\u0e21\u0e32\u0e13",
+ "HR": "\u0e17\u0e23\u0e31\u0e1e\u0e22\u0e32\u0e01\u0e23\u0e1a\u0e38\u0e04\u0e04\u0e25",
+ "Half Day": "\u0e04\u0e23\u0e36\u0e48\u0e07\u0e27\u0e31\u0e19",
+ "Leave Type": "\u0e1d\u0e32\u0e01\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17",
+ "Naming Series": "\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e0a\u0e37\u0e48\u0e2d\u0e0b\u0e35\u0e23\u0e35\u0e2a\u0e4c",
+ "Present": "\u0e19\u0e33\u0e40\u0e2a\u0e19\u0e2d",
+ "Status": "\u0e2a\u0e16\u0e32\u0e19\u0e30",
+ "The date at which current entry is corrected in the system.": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e17\u0e35\u0e48\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e1b\u0e31\u0e08\u0e08\u0e38\u0e1a\u0e31\u0e19\u0e21\u0e35\u0e01\u0e32\u0e23\u0e41\u0e01\u0e49\u0e44\u0e02\u0e43\u0e19\u0e23\u0e30\u0e1a\u0e1a"
+}
\ No newline at end of file
diff --git a/hr/doctype/attendance_control_panel/attendance_control_panel.py b/hr/doctype/attendance_control_panel/attendance_control_panel.py
index dd0deb1784a..8b86cee2977 100644
--- a/hr/doctype/attendance_control_panel/attendance_control_panel.py
+++ b/hr/doctype/attendance_control_panel/attendance_control_panel.py
@@ -16,12 +16,8 @@
from __future__ import unicode_literals
import webnotes
-import webnotes.default
-
-from webnotes.utils import cint, cstr, date_diff, formatdate, getdate, now
-from webnotes.model import db_exists
-from webnotes.model.bean import copy_doclist
-from webnotes import form, msgprint
+from webnotes.utils import cint, cstr, formatdate, getdate
+from webnotes import msgprint
sql = webnotes.conn.sql
@@ -49,13 +45,8 @@ class DocType:
# get date list inbetween from date and to date
def date_diff_list(self):
import datetime
- #get from date
- att_fr_date = self.doc.att_fr_date and self.doc.att_fr_date or ''
-
- #get to date
- att_to_date = self.doc.att_to_date and self.doc.att_to_date or ''
- if att_to_date:
+ if self.doc.att_to_date:
r = (getdate(self.doc.att_to_date)+datetime.timedelta(days=1)-getdate(self.doc.att_fr_date)).days
else:
r = 1
@@ -65,6 +56,7 @@ class DocType:
return dt
def get_att_data(self):
+ import webnotes.defaults
fy = webnotes.defaults.get_global_default('fiscal_year')
comp = webnotes.defaults.get_user_default('company')
diff --git a/hr/doctype/attendance_control_panel/locale/_messages_doc.json b/hr/doctype/attendance_control_panel/locale/_messages_doc.json
index 4359b81810c..374cb704b15 100644
--- a/hr/doctype/attendance_control_panel/locale/_messages_doc.json
+++ b/hr/doctype/attendance_control_panel/locale/_messages_doc.json
@@ -7,17 +7,17 @@
"Import",
"Get Template",
"mm/dd/yyyy",
- "To import attendance data, click on \"Add\" button, select the saved CSV file and click on \"Upload\".Select the date format as attendance date format in CSV file.Click on \"Import\".",
"File List",
+ "To import attendance data, click on \"Add\" button, select the saved CSV file and click on \"Upload\".\nSelect the date format as attendance date format in CSV file.\nClick on \"Import\".",
"Import Log",
"dd-mm-yyyy",
"Attendance Control Panel",
- "Get the template of the Attendance for which you want to import in CSV (Comma seperated values) format.Fill data in the template. Save the template in CSV format.All attendance dates inbetween 'Attendance From Date' and 'Attendance To Date' will come in the template with employees list.",
"Import Log1",
"dd/mm/yyyy",
"Selected Attendance date will comes in the attendance template.",
"yyyy-mm-dd",
"mm/dd/yy",
+ "Get the template of the Attendance for which you want to import in CSV (Comma seperated values) format.\nFill data in the template. Save the template in CSV format.\nAll attendance dates inbetween 'Attendance From Date' and 'Attendance To Date' will come in the template with employees list.",
"All attendance dates inbetween selected Attendance From Date and Attendance To Date will come in the template with employees list.",
"Overwrite",
"Download Template"
diff --git a/hr/doctype/attendance_control_panel/locale/de-doc.json b/hr/doctype/attendance_control_panel/locale/de-doc.json
new file mode 100644
index 00000000000..fb0d98a925b
--- /dev/null
+++ b/hr/doctype/attendance_control_panel/locale/de-doc.json
@@ -0,0 +1,21 @@
+{
+ "All attendance dates inbetween selected Attendance From Date and Attendance To Date will come in the template with employees list.": "All die Teilnahme datiert dazwischen gew\u00e4hlt Teilnahme ab Datum und die Teilnahme an Datum wird in der Vorlage mit den Mitarbeitern Liste kommen.",
+ "Attendance Control Panel": "Teilnahme Control Panel",
+ "Attendance From Date": "Teilnahme ab-Datum",
+ "Attendance To Date": "Teilnahme To Date",
+ "Download Template": "Vorlage herunterladen",
+ "File List": "Dateiliste",
+ "Get Template": "Holen Template",
+ "HR": "HR",
+ "Import": "Importieren",
+ "Import Log": "Import-Logbuch",
+ "Import Log1": "Importieren Log1",
+ "Overwrite": "\u00dcberschreiben",
+ "Selected Attendance date will comes in the attendance template.": "Ausgew\u00e4hlte Datum wird Teilnahme in der Anwesenheitsliste Vorlage essen.",
+ "Upload Attendance Data": "Hochladen Teilnahme Daten",
+ "dd-mm-yyyy": "dd-mm-yyyy",
+ "dd/mm/yyyy": "dd / mm / yyyy",
+ "mm/dd/yy": "mm / tt / jj",
+ "mm/dd/yyyy": "mm / dd / yyyy",
+ "yyyy-mm-dd": "yyyy-mm-dd"
+}
\ No newline at end of file
diff --git a/hr/doctype/attendance_control_panel/locale/pt-BR-doc.json b/hr/doctype/attendance_control_panel/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..641ee21c89d
--- /dev/null
+++ b/hr/doctype/attendance_control_panel/locale/pt-BR-doc.json
@@ -0,0 +1,22 @@
+{
+ "All attendance dates inbetween selected Attendance From Date and Attendance To Date will come in the template with employees list.": "Todas as datas de comparecimento selecionadas entre a Data Inicial de Comparecimento e a Data Final de Comparecimento vir\u00e3o no modelo com a lista de funcion\u00e1rios.",
+ "Attendance Control Panel": "Painel de Controle de Comparecimento",
+ "Attendance From Date": "Data Inicial de Comparecimento",
+ "Attendance To Date": "Data Final de Comparecimento",
+ "Download Template": "Baixar o Modelo",
+ "File List": "Lista de Arquivos",
+ "Get Template": "Obter Modelo",
+ "HR": "RH",
+ "Import": "Importar",
+ "Import Date Format ": "Formato de importa\u00e7\u00e3o de data",
+ "Import Log": "Importar Log",
+ "Import Log1": "Importar Log1",
+ "Overwrite": "Sobrescrever",
+ "Selected Attendance date will comes in the attendance template.": "Data de comparecimento selecionada vir\u00e1 no modelo de comparecimento.",
+ "Upload Attendance Data": "Carregar dados de comparecimento",
+ "dd-mm-yyyy": "dd-mm-aaaa",
+ "dd/mm/yyyy": "dd/mm/aaaa",
+ "mm/dd/yy": "mm/dd/aa",
+ "mm/dd/yyyy": "mm/dd/aaaa",
+ "yyyy-mm-dd": "aaaa-mm-dd"
+}
\ No newline at end of file
diff --git a/hr/doctype/attendance_control_panel/locale/th-doc.json b/hr/doctype/attendance_control_panel/locale/th-doc.json
new file mode 100644
index 00000000000..89225f7ce49
--- /dev/null
+++ b/hr/doctype/attendance_control_panel/locale/th-doc.json
@@ -0,0 +1,24 @@
+{
+ "All attendance dates inbetween selected Attendance From Date and Attendance To Date will come in the template with employees list.": "\u0e40\u0e02\u0e49\u0e32\u0e23\u0e48\u0e27\u0e21\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14\u0e27\u0e31\u0e19 inbetween \u0e1c\u0e39\u0e49\u0e40\u0e02\u0e49\u0e32\u0e23\u0e48\u0e27\u0e21\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e08\u0e32\u0e01\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e41\u0e25\u0e30\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e40\u0e02\u0e49\u0e32\u0e23\u0e48\u0e27\u0e21\u0e1b\u0e23\u0e30\u0e0a\u0e38\u0e21\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e08\u0e30\u0e21\u0e32\u0e43\u0e19\u0e41\u0e21\u0e48\u0e41\u0e1a\u0e1a\u0e17\u0e35\u0e48\u0e21\u0e35\u0e23\u0e32\u0e22\u0e0a\u0e37\u0e48\u0e2d\u0e1e\u0e19\u0e31\u0e01\u0e07\u0e32\u0e19",
+ "Attendance Control Panel": "\u0e41\u0e1c\u0e07\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e01\u0e32\u0e23\u0e40\u0e02\u0e49\u0e32\u0e23\u0e48\u0e27\u0e21\u0e1b\u0e23\u0e30\u0e0a\u0e38\u0e21",
+ "Attendance From Date": "\u0e1c\u0e39\u0e49\u0e40\u0e02\u0e49\u0e32\u0e23\u0e48\u0e27\u0e21\u0e08\u0e32\u0e01\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48",
+ "Attendance To Date": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e40\u0e02\u0e49\u0e32\u0e23\u0e48\u0e27\u0e21\u0e1b\u0e23\u0e30\u0e0a\u0e38\u0e21\u0e40\u0e1e\u0e37\u0e48\u0e2d",
+ "Download Template": "\u0e14\u0e32\u0e27\u0e19\u0e4c\u0e42\u0e2b\u0e25\u0e14\u0e41\u0e21\u0e48\u0e41\u0e1a\u0e1a",
+ "File List": "\u0e23\u0e32\u0e22\u0e0a\u0e37\u0e48\u0e2d\u0e44\u0e1f\u0e25\u0e4c",
+ "Get Template": "\u0e23\u0e31\u0e1a\u0e41\u0e21\u0e48\u0e41\u0e1a\u0e1a",
+ "Get the template of the Attendance for which you want to import in CSV (Comma seperated values) format.Fill data in the template. Save the template in CSV format.All attendance dates inbetween 'Attendance From Date' and 'Attendance To Date' will come in the template with employees list.": "\u0e23\u0e31\u0e1a\u0e41\u0e21\u0e48\u0e41\u0e1a\u0e1a\u0e02\u0e2d\u0e07\u0e1c\u0e39\u0e49\u0e40\u0e02\u0e49\u0e32\u0e23\u0e48\u0e27\u0e21\u0e17\u0e35\u0e48\u0e04\u0e38\u0e13\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e17\u0e35\u0e48\u0e08\u0e30\u0e19\u0e33\u0e40\u0e02\u0e49\u0e32\u0e43\u0e19\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a CSV (\u0e04\u0e48\u0e32\u0e41\u0e22\u0e01\u0e08\u0e38\u0e25\u0e20\u0e32\u0e04) \u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25 format.Fill \u0e43\u0e19\u0e41\u0e21\u0e48\u0e41\u0e1a\u0e1a \u0e1a\u0e31\u0e19\u0e17\u0e36\u0e01\u0e41\u0e21\u0e48\u0e41\u0e1a\u0e1a\u0e43\u0e19\u0e01\u0e32\u0e23\u0e40\u0e02\u0e49\u0e32\u0e23\u0e48\u0e27\u0e21\u0e1b\u0e23\u0e30\u0e0a\u0e38\u0e21 CSV format.All \u0e27\u0e31\u0e19 '\u0e1c\u0e39\u0e49\u0e40\u0e02\u0e49\u0e32\u0e23\u0e48\u0e27\u0e21\u0e08\u0e32\u0e01\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48' inbetween \u0e41\u0e25\u0e30 '\u0e1c\u0e39\u0e49\u0e40\u0e02\u0e49\u0e32\u0e23\u0e48\u0e27\u0e21\u0e19\u0e31\u0e14' \u0e08\u0e30\u0e21\u0e32\u0e43\u0e19\u0e41\u0e21\u0e48\u0e41\u0e1a\u0e1a\u0e17\u0e35\u0e48\u0e21\u0e35\u0e23\u0e32\u0e22\u0e0a\u0e37\u0e48\u0e2d\u0e1e\u0e19\u0e31\u0e01\u0e07\u0e32\u0e19",
+ "HR": "\u0e17\u0e23\u0e31\u0e1e\u0e22\u0e32\u0e01\u0e23\u0e1a\u0e38\u0e04\u0e04\u0e25",
+ "Import": "\u0e19\u0e33\u0e40\u0e02\u0e49\u0e32",
+ "Import Date Format ": "\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e19\u0e33\u0e40\u0e02\u0e49\u0e32",
+ "Import Log": "\u0e19\u0e33\u0e40\u0e02\u0e49\u0e32\u0e2a\u0e39\u0e48\u0e23\u0e30\u0e1a\u0e1a",
+ "Import Log1": "\u0e19\u0e33\u0e40\u0e02\u0e49\u0e32 Log1",
+ "Overwrite": "\u0e40\u0e02\u0e35\u0e22\u0e19\u0e17\u0e31\u0e1a",
+ "Selected Attendance date will comes in the attendance template.": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e08\u0e30\u0e40\u0e02\u0e49\u0e32\u0e23\u0e48\u0e27\u0e21\u0e21\u0e32\u0e43\u0e19\u0e01\u0e32\u0e23\u0e40\u0e02\u0e49\u0e32\u0e23\u0e48\u0e27\u0e21\u0e1b\u0e23\u0e30\u0e0a\u0e38\u0e21\u0e41\u0e21\u0e48",
+ "To import attendance data, click on \"Add\" button, select the saved CSV file and click on \"Upload\".Select the date format as attendance date format in CSV file.Click on \"Import\".": "\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e19\u0e33\u0e40\u0e02\u0e49\u0e32\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e01\u0e32\u0e23\u0e40\u0e02\u0e49\u0e32\u0e23\u0e48\u0e27\u0e21\u0e1b\u0e23\u0e30\u0e0a\u0e38\u0e21\u0e43\u0e2b\u0e49\u0e04\u0e25\u0e34\u0e01\u0e17\u0e35\u0e48\u0e1b\u0e38\u0e48\u0e21 "\u0e40\u0e1e\u0e34\u0e48\u0e21" \u0e40\u0e25\u0e37\u0e2d\u0e01\u0e44\u0e1f\u0e25\u0e4c CSV \u0e17\u0e35\u0e48\u0e1a\u0e31\u0e19\u0e17\u0e36\u0e01\u0e44\u0e27\u0e49\u0e41\u0e25\u0e30\u0e04\u0e25\u0e34\u0e01\u0e17\u0e35\u0e48 "\u0e2d\u0e31\u0e1b\u0e42\u0e2b\u0e25\u0e14". \u0e40\u0e25\u0e37\u0e2d\u0e01\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e40\u0e1b\u0e47\u0e19\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e40\u0e02\u0e49\u0e32\u0e23\u0e48\u0e27\u0e21\u0e1b\u0e23\u0e30\u0e0a\u0e38\u0e21\u0e43\u0e19 CSV file.Click \u0e17\u0e35\u0e48 "\u0e19\u0e33\u0e40\u0e02\u0e49\u0e32"",
+ "Upload Attendance Data": "Upload \u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e1c\u0e39\u0e49\u0e40\u0e02\u0e49\u0e32\u0e23\u0e48\u0e27\u0e21",
+ "dd-mm-yyyy": "dd-mm-yyyy",
+ "dd/mm/yyyy": "\u0e27\u0e31\u0e19 / \u0e40\u0e14\u0e37\u0e2d\u0e19 / \u0e1b\u0e35",
+ "mm/dd/yy": "dd / mm / yyyy",
+ "mm/dd/yyyy": "dd / mm / \u0e1b\u0e35",
+ "yyyy-mm-dd": "YYYY-MM-DD"
+}
\ No newline at end of file
diff --git a/hr/doctype/branch/locale/de-doc.json b/hr/doctype/branch/locale/de-doc.json
new file mode 100644
index 00000000000..bbf9800dbfe
--- /dev/null
+++ b/hr/doctype/branch/locale/de-doc.json
@@ -0,0 +1,5 @@
+{
+ "Branch": "Zweig",
+ "HR": "HR",
+ "Trash Reason": "Trash Reason"
+}
\ No newline at end of file
diff --git a/hr/doctype/branch/locale/pt-BR-doc.json b/hr/doctype/branch/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..139d5b963cf
--- /dev/null
+++ b/hr/doctype/branch/locale/pt-BR-doc.json
@@ -0,0 +1,5 @@
+{
+ "Branch": "Ramo",
+ "HR": "RH",
+ "Trash Reason": "Raz\u00e3o de p\u00f4r no lixo"
+}
\ No newline at end of file
diff --git a/hr/doctype/branch/locale/th-doc.json b/hr/doctype/branch/locale/th-doc.json
new file mode 100644
index 00000000000..267529bc2ab
--- /dev/null
+++ b/hr/doctype/branch/locale/th-doc.json
@@ -0,0 +1,5 @@
+{
+ "Branch": "\u0e2a\u0e32\u0e02\u0e32",
+ "HR": "\u0e17\u0e23\u0e31\u0e1e\u0e22\u0e32\u0e01\u0e23\u0e1a\u0e38\u0e04\u0e04\u0e25",
+ "Trash Reason": "\u0e40\u0e2b\u0e15\u0e38\u0e1c\u0e25\u0e16\u0e31\u0e07\u0e02\u0e22\u0e30"
+}
\ No newline at end of file
diff --git a/hr/doctype/deduction_type/locale/_messages_doc.json b/hr/doctype/deduction_type/locale/_messages_doc.json
index bf6d2bb7606..ca2430ab60b 100644
--- a/hr/doctype/deduction_type/locale/_messages_doc.json
+++ b/hr/doctype/deduction_type/locale/_messages_doc.json
@@ -1,7 +1,7 @@
[
- "HR",
- "Description",
"Trash Reason",
+ "Description",
+ "HR",
"Deduction Type",
"Name"
]
\ No newline at end of file
diff --git a/hr/doctype/deduction_type/locale/de-doc.json b/hr/doctype/deduction_type/locale/de-doc.json
new file mode 100644
index 00000000000..251005b3632
--- /dev/null
+++ b/hr/doctype/deduction_type/locale/de-doc.json
@@ -0,0 +1,7 @@
+{
+ "Deduction Type": "Abzug Typ",
+ "Description": "Beschreibung",
+ "HR": "HR",
+ "Name": "Name",
+ "Trash Reason": "Trash Reason"
+}
\ No newline at end of file
diff --git a/hr/doctype/deduction_type/locale/pt-BR-doc.json b/hr/doctype/deduction_type/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..bc7e72787dd
--- /dev/null
+++ b/hr/doctype/deduction_type/locale/pt-BR-doc.json
@@ -0,0 +1,7 @@
+{
+ "Deduction Type": "Tipo de dedu\u00e7\u00e3o",
+ "Description": "Descri\u00e7\u00e3o",
+ "HR": "RH",
+ "Name": "Nome",
+ "Trash Reason": "Raz\u00e3o de p\u00f4r no lixo"
+}
\ No newline at end of file
diff --git a/hr/doctype/deduction_type/locale/th-doc.json b/hr/doctype/deduction_type/locale/th-doc.json
new file mode 100644
index 00000000000..d28aa036010
--- /dev/null
+++ b/hr/doctype/deduction_type/locale/th-doc.json
@@ -0,0 +1,7 @@
+{
+ "Deduction Type": "\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e2b\u0e31\u0e01",
+ "Description": "\u0e25\u0e31\u0e01\u0e29\u0e13\u0e30",
+ "HR": "\u0e17\u0e23\u0e31\u0e1e\u0e22\u0e32\u0e01\u0e23\u0e1a\u0e38\u0e04\u0e04\u0e25",
+ "Name": "\u0e0a\u0e37\u0e48\u0e2d",
+ "Trash Reason": "\u0e40\u0e2b\u0e15\u0e38\u0e1c\u0e25\u0e16\u0e31\u0e07\u0e02\u0e22\u0e30"
+}
\ No newline at end of file
diff --git a/hr/doctype/department/locale/_messages_doc.json b/hr/doctype/department/locale/_messages_doc.json
index b0e9b387074..ba99f6aae61 100644
--- a/hr/doctype/department/locale/_messages_doc.json
+++ b/hr/doctype/department/locale/_messages_doc.json
@@ -1,7 +1,7 @@
[
- "HR",
- "Department",
"Trash Reason",
- "Days for which Holidays are blocked for this department.",
- "Leave Block List"
+ "HR",
+ "Leave Block List",
+ "Department",
+ "Days for which Holidays are blocked for this department."
]
\ No newline at end of file
diff --git a/hr/doctype/department/locale/de-doc.json b/hr/doctype/department/locale/de-doc.json
new file mode 100644
index 00000000000..062357a1a14
--- /dev/null
+++ b/hr/doctype/department/locale/de-doc.json
@@ -0,0 +1,7 @@
+{
+ "Days for which Holidays are blocked for this department.": "Tage, f\u00fcr die Feiertage sind f\u00fcr diese Abteilung blockiert.",
+ "Department": "Abteilung",
+ "HR": "HR",
+ "Leave Block List": "Lassen Block List",
+ "Trash Reason": "Trash Reason"
+}
\ No newline at end of file
diff --git a/hr/doctype/department/locale/pt-BR-doc.json b/hr/doctype/department/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..f2e6b5e65b8
--- /dev/null
+++ b/hr/doctype/department/locale/pt-BR-doc.json
@@ -0,0 +1,7 @@
+{
+ "Days for which Holidays are blocked for this department.": "Dias para que feriados s\u00e3o bloqueados para este departamento.",
+ "Department": "Departamento",
+ "HR": "RH",
+ "Leave Block List": "Deixe Lista de Bloqueios",
+ "Trash Reason": "Raz\u00e3o de p\u00f4r no lixo"
+}
\ No newline at end of file
diff --git a/hr/doctype/department/locale/th-doc.json b/hr/doctype/department/locale/th-doc.json
new file mode 100644
index 00000000000..acbd47d7768
--- /dev/null
+++ b/hr/doctype/department/locale/th-doc.json
@@ -0,0 +1,7 @@
+{
+ "Days for which Holidays are blocked for this department.": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e27\u0e31\u0e19\u0e2b\u0e22\u0e38\u0e14\u0e08\u0e30\u0e16\u0e39\u0e01\u0e1a\u0e25\u0e47\u0e2d\u0e01\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e41\u0e1c\u0e19\u0e01\u0e19\u0e35\u0e49",
+ "Department": "\u0e41\u0e1c\u0e19\u0e01",
+ "HR": "\u0e17\u0e23\u0e31\u0e1e\u0e22\u0e32\u0e01\u0e23\u0e1a\u0e38\u0e04\u0e04\u0e25",
+ "Leave Block List": "\u0e1d\u0e32\u0e01\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e1a\u0e25\u0e47\u0e2d\u0e01",
+ "Trash Reason": "\u0e40\u0e2b\u0e15\u0e38\u0e1c\u0e25\u0e16\u0e31\u0e07\u0e02\u0e22\u0e30"
+}
\ No newline at end of file
diff --git a/hr/doctype/designation/locale/de-doc.json b/hr/doctype/designation/locale/de-doc.json
new file mode 100644
index 00000000000..ffdd4c9fafa
--- /dev/null
+++ b/hr/doctype/designation/locale/de-doc.json
@@ -0,0 +1,5 @@
+{
+ "Designation": "Bezeichnung",
+ "HR": "HR",
+ "Trash Reason": "Trash Reason"
+}
\ No newline at end of file
diff --git a/hr/doctype/designation/locale/pt-BR-doc.json b/hr/doctype/designation/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..1be84577c36
--- /dev/null
+++ b/hr/doctype/designation/locale/pt-BR-doc.json
@@ -0,0 +1,5 @@
+{
+ "Designation": "Designa\u00e7\u00e3o",
+ "HR": "RH",
+ "Trash Reason": "Raz\u00e3o de p\u00f4r no lixo"
+}
\ No newline at end of file
diff --git a/hr/doctype/designation/locale/th-doc.json b/hr/doctype/designation/locale/th-doc.json
new file mode 100644
index 00000000000..d82a0d787cf
--- /dev/null
+++ b/hr/doctype/designation/locale/th-doc.json
@@ -0,0 +1,5 @@
+{
+ "Designation": "\u0e01\u0e32\u0e23\u0e41\u0e15\u0e48\u0e07\u0e15\u0e31\u0e49\u0e07",
+ "HR": "\u0e17\u0e23\u0e31\u0e1e\u0e22\u0e32\u0e01\u0e23\u0e1a\u0e38\u0e04\u0e04\u0e25",
+ "Trash Reason": "\u0e40\u0e2b\u0e15\u0e38\u0e1c\u0e25\u0e16\u0e31\u0e07\u0e02\u0e22\u0e30"
+}
\ No newline at end of file
diff --git a/hr/doctype/earning_type/locale/de-doc.json b/hr/doctype/earning_type/locale/de-doc.json
new file mode 100644
index 00000000000..bdd61f62642
--- /dev/null
+++ b/hr/doctype/earning_type/locale/de-doc.json
@@ -0,0 +1,11 @@
+{
+ "Description": "Beschreibung",
+ "Earning Type": "Earning Typ",
+ "Exemption Limit": "Freigrenze",
+ "HR": "HR",
+ "Name": "Name",
+ "No": "Auf",
+ "Taxable": "Steuerpflichtig",
+ "Trash Reason": "Trash Reason",
+ "Yes": "Ja"
+}
\ No newline at end of file
diff --git a/hr/doctype/earning_type/locale/pt-BR-doc.json b/hr/doctype/earning_type/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..7982e338187
--- /dev/null
+++ b/hr/doctype/earning_type/locale/pt-BR-doc.json
@@ -0,0 +1,11 @@
+{
+ "Description": "Descri\u00e7\u00e3o",
+ "Earning Type": "Tipo de Ganho",
+ "Exemption Limit": "Limite de isen\u00e7\u00e3o",
+ "HR": "RH",
+ "Name": "Nome",
+ "No": "N\u00e3o",
+ "Taxable": "Tribut\u00e1vel",
+ "Trash Reason": "Raz\u00e3o de p\u00f4r no lixo",
+ "Yes": "Sim"
+}
\ No newline at end of file
diff --git a/hr/doctype/earning_type/locale/th-doc.json b/hr/doctype/earning_type/locale/th-doc.json
new file mode 100644
index 00000000000..0bd9de158cc
--- /dev/null
+++ b/hr/doctype/earning_type/locale/th-doc.json
@@ -0,0 +1,11 @@
+{
+ "Description": "\u0e25\u0e31\u0e01\u0e29\u0e13\u0e30",
+ "Earning Type": "\u0e23\u0e32\u0e22\u0e44\u0e14\u0e49\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17",
+ "Exemption Limit": "\u0e27\u0e07\u0e40\u0e07\u0e34\u0e19\u0e02\u0e49\u0e2d\u0e22\u0e01\u0e40\u0e27\u0e49\u0e19",
+ "HR": "\u0e17\u0e23\u0e31\u0e1e\u0e22\u0e32\u0e01\u0e23\u0e1a\u0e38\u0e04\u0e04\u0e25",
+ "Name": "\u0e0a\u0e37\u0e48\u0e2d",
+ "No": "\u0e44\u0e21\u0e48",
+ "Taxable": "\u0e15\u0e49\u0e2d\u0e07\u0e40\u0e2a\u0e35\u0e22\u0e20\u0e32\u0e29\u0e35",
+ "Trash Reason": "\u0e40\u0e2b\u0e15\u0e38\u0e1c\u0e25\u0e16\u0e31\u0e07\u0e02\u0e22\u0e30",
+ "Yes": "\u0e43\u0e0a\u0e48"
+}
\ No newline at end of file
diff --git a/hr/doctype/employee/locale/_messages_doc.json b/hr/doctype/employee/locale/_messages_doc.json
index e3e304eb792..10eb7385848 100644
--- a/hr/doctype/employee/locale/_messages_doc.json
+++ b/hr/doctype/employee/locale/_messages_doc.json
@@ -65,12 +65,12 @@
"Status",
"Bank Name",
"Cheque",
- "Active",
"Employment Type",
"Notice - Number of Days",
"Designation",
"Salary Information",
"Personal Details",
+ "Active",
"Encashment Date",
"Reason for Resignation",
"Left",
diff --git a/hr/doctype/employee/locale/de-doc.json b/hr/doctype/employee/locale/de-doc.json
new file mode 100644
index 00000000000..a4131d0c905
--- /dev/null
+++ b/hr/doctype/employee/locale/de-doc.json
@@ -0,0 +1,117 @@
+{
+ "
To setup, please go to Setup > Naming Series": "
Um einzurichten, gehen Sie bitte auf Setup> Naming Series span>",
+ "A+": "A +",
+ "A-": "A-",
+ "AB+": "AB +",
+ "AB-": "AB-",
+ "Active": "Aktiv",
+ "Applicable Holiday List": "Anwendbar Ferienwohnung Liste",
+ "B+": "B +",
+ "B-": "B-",
+ "Bank": "Bank",
+ "Bank A/C No.": "Bank A / C Nr.",
+ "Bank Name": "Name der Bank",
+ "Basic Information": "Grundlegende Informationen",
+ "Better Prospects": "Bessere Aussichten",
+ "Bio": "Bio",
+ "Blood Group": "Blutgruppe",
+ "Branch": "Zweig",
+ "Career History": "Karriere Geschichte",
+ "Cash": "Bargeld",
+ "Cell Number": "Cell Number",
+ "Cheque": "Scheck",
+ "Company": "Firma",
+ "Contact Details": "Kontakt Details",
+ "Contract End Date": "Contract End Date",
+ "Current Accommodation Type": "Aktuelle Unterkunftstyp",
+ "Current Address": "Aktuelle Adresse",
+ "Date Of Retirement": "Datum der Pensionierung",
+ "Date of Birth": "Geburtsdatum",
+ "Date of Issue": "Datum der Ausgabe",
+ "Date of Joining": "Datum der Verbindungstechnik",
+ "Department": "Abteilung",
+ "Designation": "Bezeichnung",
+ "Divorced": "Geschieden",
+ "EMP/": "EMP /",
+ "ESIC CARD No": "ESIC CARD Nein",
+ "Educational Qualification": "Educational Qualifikation",
+ "Educational Qualification Details": "Educational Qualifikation Einzelheiten",
+ "Email (By company)": "Email (nach Unternehmen)",
+ "Emergency Contact Details": "Notfall Kontakt",
+ "Emergency Phone Number": "Notrufnummer",
+ "Employee": "Mitarbeiter",
+ "Employee External Work History": "Mitarbeiter Externe Arbeit Geschichte",
+ "Employee Internal Work Historys": "Mitarbeiter Interner Arbeitsbereich Historys",
+ "Employee Number": "Mitarbeiternummer",
+ "Employment Details": "Besch\u00e4ftigung Einzelheiten",
+ "Employment Type": "Besch\u00e4ftigungsart",
+ "Encashment Date": "Inkasso Datum",
+ "Exit": "Verlassen",
+ "Exit Interview Details": "Verlassen Interview Einzelheiten",
+ "Family Background": "Famili\u00e4rer Hintergrund",
+ "Feedback": "R\u00fcckkopplung",
+ "Female": "Weiblich",
+ "File List": "Dateiliste",
+ "Final Confirmation Date": "Final Confirmation Datum",
+ "Full Name": "Vollst\u00e4ndiger Name",
+ "Gender": "Geschlecht",
+ "Grade": "Klasse",
+ "Gratuity LIC ID": "Gratuity LIC ID",
+ "HR": "HR",
+ "Health Concerns": "Gesundheitliche Bedenken",
+ "Health Details": "Gesundheit Details",
+ "Held On": "Hielt",
+ "Here you can maintain family details like name and occupation of parent, spouse and children": "Hier k\u00f6nnen Sie pflegen Familie Details wie Name und Beruf der Eltern, Ehepartner und Kinder",
+ "Here you can maintain height, weight, allergies, medical concerns etc": "Hier k\u00f6nnen Sie pflegen Gr\u00f6\u00dfe, Gewicht, Allergien, medizinischen Bedenken etc",
+ "History In Company": "Geschichte Im Unternehmen",
+ "Holiday List": "Ferienwohnung Liste",
+ "Image": "Bild",
+ "Image View": "Bild anzeigen",
+ "Job Profile": "Job Profil",
+ "Leave Encashed?": "Lassen eingel\u00f6st?",
+ "Left": "Links",
+ "Male": "M\u00e4nnlich",
+ "Marital Status": "Familienstand",
+ "Married": "Verheiratet",
+ "Mr": "Herr",
+ "Ms": "Ms",
+ "Naming Series": "Benennen Series",
+ "New Workplace": "New Workplace",
+ "No": "Auf",
+ "Notice - Number of Days": "Hinweis - Anzahl der Tage",
+ "O+": "Die +",
+ "O-": "O-",
+ "Owned": "Besitz",
+ "PAN Number": "PAN-Nummer",
+ "PF Number": "PF-Nummer",
+ "Passport Number": "Passnummer",
+ "Permanent Accommodation Type": "Permanent Art der Unterkunft",
+ "Permanent Address": "Permanent Address",
+ "Person To Be Contacted": "Person kontaktiert werden",
+ "Personal Details": "Pers\u00f6nliche Details",
+ "Personal Email": "Pers\u00f6nliche E-Mail",
+ "Place of Issue": "Ausstellungsort",
+ "Previous Work Experience": "Berufserfahrung",
+ "Provide email id registered in company": "Bieten E-Mail-ID in Unternehmen registriert",
+ "Reason for Leaving": "Grund f\u00fcr das Verlassen",
+ "Reason for Resignation": "Grund zur Resignation",
+ "Relation": "Relation",
+ "Relieving Date": "Entlastung Datum",
+ "Rented": "Gemietet",
+ "Reports to": "Berichte an",
+ "Resignation Letter Date": "R\u00fccktrittsschreiben Datum",
+ "Salary Information": "Angaben \u00fcber den Lohn",
+ "Salary Mode": "Gehalt Modus",
+ "Salutation": "Gru\u00df",
+ "Scheduled Confirmation Date": "Voraussichtlicher Best\u00e4tigung",
+ "Short biography for website and other publications.": "Kurzbiographie f\u00fcr die Website und anderen Publikationen.",
+ "Single": "Single",
+ "Status": "Status",
+ "System User (login) ID. If set, it will become default for all HR forms.": "System User (login) ID. Wenn gesetzt, wird es standardm\u00e4\u00dfig f\u00fcr alle HR-Formulare werden.",
+ "Trash Reason": "Trash Reason",
+ "User ID": "Benutzer-ID",
+ "Valid Upto": "G\u00fcltig Bis",
+ "Widowed": "Verwitwet",
+ "Yes": "Ja",
+ "You can enter any date manually": "Sie k\u00f6nnen ein beliebiges Datum manuell eingeben"
+}
\ No newline at end of file
diff --git a/hr/doctype/employee/locale/pt-BR-doc.json b/hr/doctype/employee/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..6edeb7cf836
--- /dev/null
+++ b/hr/doctype/employee/locale/pt-BR-doc.json
@@ -0,0 +1,117 @@
+{
+ "To setup, please go to Setup > Naming Series": "Para configurar, por favor, v\u00e1 para Configura\u00e7\u00e3o > S\u00e9ries Nomeadas",
+ "A+": "A+",
+ "A-": "A-",
+ "AB+": "AB+",
+ "AB-": "AB-",
+ "Active": "Ativo",
+ "Applicable Holiday List": "Lista de F\u00e9rias Aplic\u00e1vel",
+ "B+": "B+",
+ "B-": "B-",
+ "Bank": "Banco",
+ "Bank A/C No.": "N\u00ba Cta. Banc\u00e1ria",
+ "Bank Name": "Nome do Banco",
+ "Basic Information": "Informa\u00e7\u00f5es B\u00e1sicas",
+ "Better Prospects": "Melhores perspectivas",
+ "Bio": "Bio",
+ "Blood Group": "Grupo sangu\u00edneo",
+ "Branch": "Ramo",
+ "Career History": "Hist\u00f3rico da carreira",
+ "Cash": "Numer\u00e1rio",
+ "Cell Number": "Telefone Celular",
+ "Cheque": "Cheque",
+ "Company": "Empresa",
+ "Contact Details": "Detalhes do Contato",
+ "Contract End Date": "Data Final do contrato",
+ "Current Accommodation Type": "Tipo de Acomoda\u00e7\u00e3o atual",
+ "Current Address": "Endere\u00e7o Atual",
+ "Date Of Retirement": "Data da aposentadoria",
+ "Date of Birth": "Data de Nascimento",
+ "Date of Issue": "Data de Emiss\u00e3o",
+ "Date of Joining": "Data da Efetiva\u00e7\u00e3o",
+ "Department": "Departamento",
+ "Designation": "Designa\u00e7\u00e3o",
+ "Divorced": "Divorciado",
+ "EMP/": "EMP /",
+ "ESIC CARD No": "N\u00ba CART\u00c3O ESIC",
+ "Educational Qualification": "Qualifica\u00e7\u00e3o Educacional",
+ "Educational Qualification Details": "Detalhes da Qualifica\u00e7\u00e3o Educacional",
+ "Email (By company)": "E-mail (por empresa)",
+ "Emergency Contact Details": "Detalhes do contato de emerg\u00eancia",
+ "Emergency Phone Number": "N\u00famero do telefone de emerg\u00eancia",
+ "Employee": "Funcion\u00e1rio",
+ "Employee External Work History": "Hist\u00f3rico de trabalho externo do Funcion\u00e1rio",
+ "Employee Internal Work Historys": "Hist\u00f3rico de trabalho interno do Funcion\u00e1rio",
+ "Employee Number": "N\u00famero do Funcion\u00e1rio",
+ "Employment Details": "Detalhes de emprego",
+ "Employment Type": "Tipo de emprego",
+ "Encashment Date": "Data da cobran\u00e7a",
+ "Exit": "Sair",
+ "Exit Interview Details": "Detalhes da Entrevista de sa\u00edda",
+ "Family Background": "Antecedentes familiares",
+ "Feedback": "Coment\u00e1rios",
+ "Female": "Feminino",
+ "File List": "Lista de Arquivos",
+ "Final Confirmation Date": "Data final de confirma\u00e7\u00e3o",
+ "Full Name": "Nome Completo",
+ "Gender": "Sexo",
+ "Grade": "Grau",
+ "Gratuity LIC ID": "ID LIC gratuidade",
+ "HR": "RH",
+ "Health Concerns": "Preocupa\u00e7\u00f5es com a Sa\u00fade",
+ "Health Details": "Detalhes sobre a Sa\u00fade",
+ "Held On": "Realizada em",
+ "Here you can maintain family details like name and occupation of parent, spouse and children": "Aqui voc\u00ea pode manter detalhes familiares como o nome e ocupa\u00e7\u00e3o do c\u00f4njuge, pai e filhos",
+ "Here you can maintain height, weight, allergies, medical concerns etc": "Aqui voc\u00ea pode manter a altura, peso, alergias, preocupa\u00e7\u00f5es m\u00e9dica, etc",
+ "History In Company": "Hist\u00f3rico na Empresa",
+ "Holiday List": "Lista de feriado",
+ "Image": "Imagem",
+ "Image View": "Ver imagem",
+ "Job Profile": "Perfil da vaga",
+ "Leave Encashed?": "Licen\u00e7as cobradas?",
+ "Left": "Esquerda",
+ "Male": "Masculino",
+ "Marital Status": "Estado civil",
+ "Married": "Casado",
+ "Mr": "Sr.",
+ "Ms": "Sra.",
+ "Naming Series": "S\u00e9ries nomeadas",
+ "New Workplace": "Novo local de trabalho",
+ "No": "N\u00e3o",
+ "Notice - Number of Days": "Aviso - n\u00famero de dias",
+ "O+": "O+",
+ "O-": "O-",
+ "Owned": "Pertencente",
+ "PAN Number": "N\u00famero PAN",
+ "PF Number": "N\u00famero PF",
+ "Passport Number": "N\u00famero do Passaporte",
+ "Permanent Accommodation Type": "Tipo de Alojamento Permanente",
+ "Permanent Address": "Endere\u00e7o permanente",
+ "Person To Be Contacted": "Pessoa a ser contatada",
+ "Personal Details": "Detalhes pessoais",
+ "Personal Email": "E-mail pessoal",
+ "Place of Issue": "Local de Emiss\u00e3o",
+ "Previous Work Experience": "Experi\u00eancia anterior de trabalho",
+ "Provide email id registered in company": "Fornecer Endere\u00e7o de E-mail registrado na empresa",
+ "Reason for Leaving": "Motivo da sa\u00edda",
+ "Reason for Resignation": "Motivo para Demiss\u00e3o",
+ "Relation": "Rela\u00e7\u00e3o",
+ "Relieving Date": "Data da Libera\u00e7\u00e3o",
+ "Rented": "Alugado",
+ "Reports to": "Relat\u00f3rios para",
+ "Resignation Letter Date": "Data da carta de demiss\u00e3o",
+ "Salary Information": "Informa\u00e7\u00e3o sobre sal\u00e1rio",
+ "Salary Mode": "Modo de sal\u00e1rio",
+ "Salutation": "Sauda\u00e7\u00e3o",
+ "Scheduled Confirmation Date": "Data de Confirma\u00e7\u00e3o agendada",
+ "Short biography for website and other publications.": "Breve biografia para o site e outras publica\u00e7\u00f5es.",
+ "Single": "\u00danico",
+ "Status": "Estado",
+ "System User (login) ID. If set, it will become default for all HR forms.": "Identifica\u00e7\u00e3o do usu\u00e1rio do sistema (login). Se for marcado, ele vai se tornar padr\u00e3o para todos os formul\u00e1rios de RH.",
+ "Trash Reason": "Raz\u00e3o de p\u00f4r no lixo",
+ "User ID": "ID de Usu\u00e1rio",
+ "Valid Upto": "V\u00e1lido at\u00e9",
+ "Widowed": "Vi\u00favo(a)",
+ "Yes": "Sim",
+ "You can enter any date manually": "Voc\u00ea pode entrar qualquer data manualmente"
+}
\ No newline at end of file
diff --git a/hr/doctype/employee/locale/th-doc.json b/hr/doctype/employee/locale/th-doc.json
new file mode 100644
index 00000000000..0f6078f542d
--- /dev/null
+++ b/hr/doctype/employee/locale/th-doc.json
@@ -0,0 +1,117 @@
+{
+ "To setup, please go to Setup > Naming Series": "\u0e43\u0e19\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07\u0e42\u0e1b\u0e23\u0e14\u0e44\u0e1b\u0e17\u0e35\u0e48\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32> \u0e15\u0e31\u0e49\u0e07\u0e0a\u0e37\u0e48\u0e2d\u0e0b\u0e35\u0e23\u0e35\u0e2a\u0e4c",
+ "A+": "+",
+ "A-": "-",
+ "AB+": "AB +",
+ "AB-": "AB-",
+ "Active": "\u0e04\u0e25\u0e48\u0e2d\u0e07\u0e41\u0e04\u0e25\u0e48\u0e27",
+ "Applicable Holiday List": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e27\u0e31\u0e19\u0e2b\u0e22\u0e38\u0e14\u0e17\u0e35\u0e48\u0e43\u0e0a\u0e49\u0e1a\u0e31\u0e07\u0e04\u0e31\u0e1a",
+ "B+": "B +",
+ "B-": "B-",
+ "Bank": "\u0e18\u0e19\u0e32\u0e04\u0e32\u0e23",
+ "Bank A/C No.": "\u0e18\u0e19\u0e32\u0e04\u0e32\u0e23 / \u0e40\u0e25\u0e02\u0e17\u0e35\u0e48 C",
+ "Bank Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e18\u0e19\u0e32\u0e04\u0e32\u0e23",
+ "Basic Information": "\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e1e\u0e37\u0e49\u0e19\u0e10\u0e32\u0e19",
+ "Better Prospects": "\u0e2d\u0e19\u0e32\u0e04\u0e15\u0e17\u0e35\u0e48\u0e14\u0e35\u0e01\u0e27\u0e48\u0e32",
+ "Bio": "\u0e44\u0e1a\u0e42\u0e2d",
+ "Blood Group": "\u0e01\u0e23\u0e38\u0e4a\u0e1b\u0e40\u0e25\u0e37\u0e2d\u0e14",
+ "Branch": "\u0e2a\u0e32\u0e02\u0e32",
+ "Career History": "\u0e1b\u0e23\u0e30\u0e27\u0e31\u0e15\u0e34\u0e01\u0e32\u0e23\u0e17\u0e33\u0e07\u0e32\u0e19",
+ "Cash": "\u0e40\u0e07\u0e34\u0e19\u0e2a\u0e14",
+ "Cell Number": "\u0e08\u0e33\u0e19\u0e27\u0e19\u0e40\u0e0b\u0e25\u0e25\u0e4c",
+ "Cheque": "\u0e40\u0e0a\u0e47\u0e04",
+ "Company": "\u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17",
+ "Contact Details": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d",
+ "Contract End Date": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e2a\u0e34\u0e49\u0e19\u0e2a\u0e38\u0e14\u0e2a\u0e31\u0e0d\u0e0d\u0e32",
+ "Current Accommodation Type": "\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e02\u0e2d\u0e07\u0e17\u0e35\u0e48\u0e1e\u0e31\u0e01\u0e1b\u0e31\u0e08\u0e08\u0e38\u0e1a\u0e31\u0e19",
+ "Current Address": "\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e1b\u0e31\u0e08\u0e08\u0e38\u0e1a\u0e31\u0e19",
+ "Date Of Retirement": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e02\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e40\u0e01\u0e29\u0e35\u0e22\u0e13\u0e2d\u0e32\u0e22\u0e38",
+ "Date of Birth": "\u0e27\u0e31\u0e19\u0e40\u0e01\u0e34\u0e14",
+ "Date of Issue": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e2d\u0e2d\u0e01",
+ "Date of Joining": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e02\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e40\u0e02\u0e49\u0e32\u0e23\u0e48\u0e27\u0e21",
+ "Department": "\u0e41\u0e1c\u0e19\u0e01",
+ "Designation": "\u0e01\u0e32\u0e23\u0e41\u0e15\u0e48\u0e07\u0e15\u0e31\u0e49\u0e07",
+ "Divorced": "\u0e2b\u0e22\u0e48\u0e32\u0e23\u0e49\u0e32\u0e07",
+ "EMP/": "EMP /",
+ "ESIC CARD No": "CARD ESIC \u0e44\u0e21\u0e48\u0e21\u0e35",
+ "Educational Qualification": "\u0e27\u0e38\u0e12\u0e34\u0e01\u0e32\u0e23\u0e28\u0e36\u0e01\u0e29\u0e32",
+ "Educational Qualification Details": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e04\u0e38\u200b\u200b\u0e13\u0e2a\u0e21\u0e1a\u0e31\u0e15\u0e34\u0e01\u0e32\u0e23\u0e28\u0e36\u0e01\u0e29\u0e32",
+ "Email (By company)": "\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e4c (\u0e42\u0e14\u0e22 \u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17 )",
+ "Emergency Contact Details": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d\u0e43\u0e19\u0e01\u0e23\u0e13\u0e35\u0e09\u0e38\u0e01\u0e40\u0e09\u0e34\u0e19",
+ "Emergency Phone Number": "\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e25\u0e02\u0e42\u0e17\u0e23\u0e28\u0e31\u0e1e\u0e17\u0e4c\u0e09\u0e38\u0e01\u0e40\u0e09\u0e34\u0e19",
+ "Employee": "\u0e25\u0e39\u0e01\u0e08\u0e49\u0e32\u0e07",
+ "Employee External Work History": "\u0e1b\u0e23\u0e30\u0e27\u0e31\u0e15\u0e34\u0e01\u0e32\u0e23\u0e17\u0e33\u0e07\u0e32\u0e19\u0e02\u0e2d\u0e07\u0e1e\u0e19\u0e31\u0e01\u0e07\u0e32\u0e19\u0e20\u0e32\u0e22\u0e19\u0e2d\u0e01",
+ "Employee Internal Work Historys": "Historys \u0e01\u0e32\u0e23\u0e17\u0e33\u0e07\u0e32\u0e19\u0e02\u0e2d\u0e07\u0e1e\u0e19\u0e31\u0e01\u0e07\u0e32\u0e19\u0e20\u0e32\u0e22\u0e43\u0e19",
+ "Employee Number": "\u0e08\u0e33\u0e19\u0e27\u0e19\u0e1e\u0e19\u0e31\u0e01\u0e07\u0e32\u0e19",
+ "Employment Details": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e01\u0e32\u0e23\u0e08\u0e49\u0e32\u0e07\u0e07\u0e32\u0e19",
+ "Employment Type": "\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e01\u0e32\u0e23\u0e08\u0e49\u0e32\u0e07\u0e07\u0e32\u0e19",
+ "Encashment Date": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e01\u0e32\u0e23\u0e44\u0e14\u0e49\u0e40\u0e1b\u0e47\u0e19\u0e40\u0e07\u0e34\u0e19\u0e2a\u0e14",
+ "Exit": "\u0e17\u0e32\u0e07\u0e2d\u0e2d\u0e01",
+ "Exit Interview Details": "\u0e2d\u0e2d\u0e01\u0e08\u0e32\u0e01\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e01\u0e32\u0e23\u0e2a\u0e31\u0e21\u0e20\u0e32\u0e29\u0e13\u0e4c",
+ "Family Background": "\u0e20\u0e39\u0e21\u0e34\u0e2b\u0e25\u0e31\u0e07\u0e02\u0e2d\u0e07\u0e04\u0e23\u0e2d\u0e1a\u0e04\u0e23\u0e31\u0e27",
+ "Feedback": "\u0e02\u0e49\u0e2d\u0e40\u0e2a\u0e19\u0e2d\u0e41\u0e19\u0e30",
+ "Female": "\u0e2b\u0e0d\u0e34\u0e07",
+ "File List": "\u0e23\u0e32\u0e22\u0e0a\u0e37\u0e48\u0e2d\u0e44\u0e1f\u0e25\u0e4c",
+ "Final Confirmation Date": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e22\u0e37\u0e19\u0e22\u0e31\u0e19\u0e04\u0e23\u0e31\u0e49\u0e07\u0e2a\u0e38\u0e14\u0e17\u0e49\u0e32\u0e22",
+ "Full Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e40\u0e15\u0e47\u0e21",
+ "Gender": "\u0e40\u0e1e\u0e28",
+ "Grade": "\u0e40\u0e01\u0e23\u0e14",
+ "Gratuity LIC ID": "ID LIC \u0e1a\u0e33\u0e40\u0e2b\u0e19\u0e47\u0e08",
+ "HR": "\u0e17\u0e23\u0e31\u0e1e\u0e22\u0e32\u0e01\u0e23\u0e1a\u0e38\u0e04\u0e04\u0e25",
+ "Health Concerns": "\u0e04\u0e27\u0e32\u0e21\u0e01\u0e31\u0e07\u0e27\u0e25\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e2a\u0e38\u0e02\u0e20\u0e32\u0e1e",
+ "Health Details": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e2a\u0e38\u0e02\u0e20\u0e32\u0e1e",
+ "Held On": "\u0e08\u0e31\u0e14\u0e02\u0e36\u0e49\u0e19\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48",
+ "Here you can maintain family details like name and occupation of parent, spouse and children": "\u0e17\u0e35\u0e48\u0e19\u0e35\u0e48\u0e04\u0e38\u0e13\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e23\u0e31\u0e01\u0e29\u0e32\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e40\u0e0a\u0e48\u0e19\u0e0a\u0e37\u0e48\u0e2d\u0e04\u0e23\u0e2d\u0e1a\u0e04\u0e23\u0e31\u0e27\u0e41\u0e25\u0e30\u0e2d\u0e32\u0e0a\u0e35\u0e1e\u0e02\u0e2d\u0e07\u0e1c\u0e39\u0e49\u0e1b\u0e01\u0e04\u0e23\u0e2d\u0e07\u0e04\u0e39\u0e48\u0e2a\u0e21\u0e23\u0e2a\u0e41\u0e25\u0e30\u0e40\u0e14\u0e47\u0e01",
+ "Here you can maintain height, weight, allergies, medical concerns etc": "\u0e17\u0e35\u0e48\u0e19\u0e35\u0e48\u0e04\u0e38\u0e13\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e23\u0e31\u0e01\u0e29\u0e32\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e39\u0e07\u0e19\u0e49\u0e33\u0e2b\u0e19\u0e31\u0e01, \u0e20\u0e39\u0e21\u0e34\u0e41\u0e1e\u0e49, \u0e2f\u0e25\u0e2f \u0e1b\u0e31\u0e0d\u0e2b\u0e32\u0e14\u0e49\u0e32\u0e19\u0e01\u0e32\u0e23\u0e41\u0e1e\u0e17\u0e22\u0e4c",
+ "History In Company": "\u0e1b\u0e23\u0e30\u0e27\u0e31\u0e15\u0e34\u0e43\u0e19 \u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17",
+ "Holiday List": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e27\u0e31\u0e19\u0e2b\u0e22\u0e38\u0e14",
+ "Image": "\u0e20\u0e32\u0e1e",
+ "Image View": "\u0e14\u0e39\u0e20\u0e32\u0e1e",
+ "Job Profile": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e07\u0e32\u0e19",
+ "Leave Encashed?": "\u0e1d\u0e32\u0e01 Encashed?",
+ "Left": "\u0e0b\u0e49\u0e32\u0e22",
+ "Male": "\u0e0a\u0e32\u0e22",
+ "Marital Status": "\u0e2a\u0e16\u0e32\u0e19\u0e20\u0e32\u0e1e\u0e01\u0e32\u0e23\u0e2a\u0e21\u0e23\u0e2a",
+ "Married": "\u0e41\u0e15\u0e48\u0e07\u0e07\u0e32\u0e19",
+ "Mr": "\u0e19\u0e32\u0e22",
+ "Ms": "ms",
+ "Naming Series": "\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e0a\u0e37\u0e48\u0e2d\u0e0b\u0e35\u0e23\u0e35\u0e2a\u0e4c",
+ "New Workplace": "\u0e2a\u0e16\u0e32\u0e19\u0e17\u0e35\u0e48\u0e17\u0e33\u0e07\u0e32\u0e19\u0e43\u0e2b\u0e21\u0e48",
+ "No": "\u0e44\u0e21\u0e48",
+ "Notice - Number of Days": "\u0e40\u0e27\u0e1b\u0e44\u0e0b\u0e14\u0e4c - \u0e08\u0e33\u0e19\u0e27\u0e19\u0e27\u0e31\u0e19",
+ "O+": "+ O",
+ "O-": "O-",
+ "Owned": "\u0e40\u0e08\u0e49\u0e32\u0e02\u0e2d\u0e07",
+ "PAN Number": "\u0e08\u0e33\u0e19\u0e27\u0e19 PAN",
+ "PF Number": "\u0e08\u0e33\u0e19\u0e27\u0e19 PF",
+ "Passport Number": "\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e25\u0e02\u0e2b\u0e19\u0e31\u0e07\u0e2a\u0e37\u0e2d\u0e40\u0e14\u0e34\u0e19\u0e17\u0e32\u0e07",
+ "Permanent Accommodation Type": "\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e17\u0e35\u0e48\u0e1e\u0e31\u0e01\u0e2d\u0e32\u0e28\u0e31\u0e22\u0e16\u0e32\u0e27\u0e23",
+ "Permanent Address": "\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e16\u0e32\u0e27\u0e23",
+ "Person To Be Contacted": "\u0e04\u0e19\u0e17\u0e35\u0e48\u0e08\u0e30\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d",
+ "Personal Details": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e2a\u0e48\u0e27\u0e19\u0e1a\u0e38\u0e04\u0e04\u0e25",
+ "Personal Email": "\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e2a\u0e48\u0e27\u0e19\u0e15\u0e31\u0e27",
+ "Place of Issue": "\u0e2a\u0e16\u0e32\u0e19\u0e17\u0e35\u0e48\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e23\u0e31\u0e1a\u0e23\u0e2d\u0e07",
+ "Previous Work Experience": "\u0e1b\u0e23\u0e30\u0e2a\u0e1a\u0e01\u0e32\u0e23\u0e13\u0e4c\u0e01\u0e32\u0e23\u0e17\u0e33\u0e07\u0e32\u0e19\u0e01\u0e48\u0e2d\u0e19\u0e2b\u0e19\u0e49\u0e32",
+ "Provide email id registered in company": "\u0e43\u0e2b\u0e49 ID \u0e2d\u0e35\u0e40\u0e21\u0e25\u0e17\u0e35\u0e48\u0e25\u0e07\u0e17\u0e30\u0e40\u0e1a\u0e35\u0e22\u0e19\u0e43\u0e19 \u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17",
+ "Reason for Leaving": "\u0e40\u0e2b\u0e15\u0e38\u0e1c\u0e25\u0e17\u0e35\u0e48\u0e25\u0e32\u0e2d\u0e2d\u0e01",
+ "Reason for Resignation": "\u0e40\u0e2b\u0e15\u0e38\u0e1c\u0e25\u0e43\u0e19\u0e01\u0e32\u0e23\u0e25\u0e32\u0e2d\u0e2d\u0e01",
+ "Relation": "\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e31\u0e21\u0e1e\u0e31\u0e19\u0e18\u0e4c",
+ "Relieving Date": "\u0e1a\u0e23\u0e23\u0e40\u0e17\u0e32\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48",
+ "Rented": "\u0e40\u0e0a\u0e48\u0e32",
+ "Reports to": "\u0e23\u0e32\u0e22\u0e07\u0e32\u0e19\u0e44\u0e1b\u0e22\u0e31\u0e07",
+ "Resignation Letter Date": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e43\u0e1a\u0e25\u0e32\u0e2d\u0e2d\u0e01",
+ "Salary Information": "\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e40\u0e07\u0e34\u0e19\u0e40\u0e14\u0e37\u0e2d\u0e19",
+ "Salary Mode": "\u0e42\u0e2b\u0e21\u0e14\u0e40\u0e07\u0e34\u0e19\u0e40\u0e14\u0e37\u0e2d\u0e19",
+ "Salutation": "\u0e1b\u0e23\u0e30\u0e13\u0e21",
+ "Scheduled Confirmation Date": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e22\u0e37\u0e19\u0e22\u0e31\u0e19\u0e01\u0e33\u0e2b\u0e19\u0e14",
+ "Short biography for website and other publications.": "\u0e0a\u0e35\u0e27\u0e1b\u0e23\u0e30\u0e27\u0e31\u0e15\u0e34\u0e2a\u0e31\u0e49\u0e19\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e40\u0e27\u0e47\u0e1a\u0e44\u0e0b\u0e15\u0e4c\u0e41\u0e25\u0e30\u0e2a\u0e34\u0e48\u0e07\u0e1e\u0e34\u0e21\u0e1e\u0e4c\u0e2d\u0e37\u0e48\u0e19 \u0e46",
+ "Single": "\u0e40\u0e14\u0e35\u0e22\u0e27",
+ "Status": "\u0e2a\u0e16\u0e32\u0e19\u0e30",
+ "System User (login) ID. If set, it will become default for all HR forms.": "\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e23\u0e30\u0e1a\u0e1a (login) ID \u0e16\u0e49\u0e32\u0e0a\u0e38\u0e14\u0e01\u0e47\u0e08\u0e30\u0e01\u0e25\u0e32\u0e22\u0e40\u0e1b\u0e47\u0e19\u0e04\u0e48\u0e32\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e17\u0e38\u0e01\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a\u0e17\u0e23\u0e31\u0e1e\u0e22\u0e32\u0e01\u0e23\u0e1a\u0e38\u0e04\u0e04\u0e25",
+ "Trash Reason": "\u0e40\u0e2b\u0e15\u0e38\u0e1c\u0e25\u0e16\u0e31\u0e07\u0e02\u0e22\u0e30",
+ "User ID": "\u0e23\u0e2b\u0e31\u0e2a\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49",
+ "Valid Upto": "\u0e17\u0e35\u0e48\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07\u0e44\u0e21\u0e48\u0e40\u0e01\u0e34\u0e19",
+ "Widowed": "\u0e40\u0e1b\u0e47\u0e19\u0e21\u0e48\u0e32\u0e22",
+ "Yes": "\u0e43\u0e0a\u0e48",
+ "You can enter any date manually": "\u0e04\u0e38\u0e13\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e1b\u0e49\u0e2d\u0e19\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e43\u0e14 \u0e46 \u0e14\u0e49\u0e27\u0e22\u0e15\u0e19\u0e40\u0e2d\u0e07"
+}
\ No newline at end of file
diff --git a/hr/doctype/employee_education/locale/de-doc.json b/hr/doctype/employee_education/locale/de-doc.json
new file mode 100644
index 00000000000..0f4d43ed499
--- /dev/null
+++ b/hr/doctype/employee_education/locale/de-doc.json
@@ -0,0 +1,13 @@
+{
+ "Class / Percentage": "Klasse / Anteil",
+ "Employee Education": "Mitarbeiterschulung",
+ "Graduate": "Absolvent",
+ "HR": "HR",
+ "Level": "Ebene",
+ "Major/Optional Subjects": "Major / Wahlf\u00e4cher",
+ "Post Graduate": "Post Graduate",
+ "Qualification": "Qualifikation",
+ "School/University": "Schule / Universit\u00e4t",
+ "Under Graduate": "Unter Graduate",
+ "Year of Passing": "Jahr der \u00dcbergabe"
+}
\ No newline at end of file
diff --git a/hr/doctype/employee_education/locale/pt-BR-doc.json b/hr/doctype/employee_education/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..4658d68c713
--- /dev/null
+++ b/hr/doctype/employee_education/locale/pt-BR-doc.json
@@ -0,0 +1,13 @@
+{
+ "Class / Percentage": "Classe / Percentual",
+ "Employee Education": "Escolaridade do Funcion\u00e1rio",
+ "Graduate": "P\u00f3s-gradua\u00e7\u00e3o",
+ "HR": "RH",
+ "Level": "N\u00edvel",
+ "Major/Optional Subjects": "Assuntos Principais / Opcionais",
+ "Post Graduate": "P\u00f3s-Gradua\u00e7\u00e3o",
+ "Qualification": "Qualifica\u00e7\u00e3o",
+ "School/University": "Escola / Universidade",
+ "Under Graduate": "Em Gradua\u00e7\u00e3o",
+ "Year of Passing": "Ano de Passagem"
+}
\ No newline at end of file
diff --git a/hr/doctype/employee_education/locale/th-doc.json b/hr/doctype/employee_education/locale/th-doc.json
new file mode 100644
index 00000000000..8f2edf1afc7
--- /dev/null
+++ b/hr/doctype/employee_education/locale/th-doc.json
@@ -0,0 +1,13 @@
+{
+ "Class / Percentage": "\u0e23\u0e30\u0e14\u0e31\u0e1a / \u0e23\u0e49\u0e2d\u0e22\u0e25\u0e30",
+ "Employee Education": "\u0e01\u0e32\u0e23\u0e28\u0e36\u0e01\u0e29\u0e32\u0e01\u0e32\u0e23\u0e17\u0e33\u0e07\u0e32\u0e19\u0e02\u0e2d\u0e07\u0e1e\u0e19\u0e31\u0e01\u0e07\u0e32\u0e19",
+ "Graduate": "\u0e08\u0e1a\u0e01\u0e32\u0e23\u0e28\u0e36\u0e01\u0e29\u0e32",
+ "HR": "\u0e17\u0e23\u0e31\u0e1e\u0e22\u0e32\u0e01\u0e23\u0e1a\u0e38\u0e04\u0e04\u0e25",
+ "Level": "\u0e0a\u0e31\u0e49\u0e19",
+ "Major/Optional Subjects": "\u0e27\u0e34\u0e0a\u0e32\u0e40\u0e2d\u0e01 / \u0e40\u0e2a\u0e23\u0e34\u0e21",
+ "Post Graduate": "\u0e2b\u0e25\u0e31\u0e07\u0e08\u0e1a\u0e01\u0e32\u0e23\u0e28\u0e36\u0e01\u0e29\u0e32",
+ "Qualification": "\u0e04\u0e38\u0e13\u0e2a\u0e21\u0e1a\u0e31\u0e15\u0e34",
+ "School/University": "\u0e42\u0e23\u0e07\u0e40\u0e23\u0e35\u0e22\u0e19 / \u0e21\u0e2b\u0e32\u0e27\u0e34\u0e17\u0e22\u0e32\u0e25\u0e31\u0e22",
+ "Under Graduate": "\u0e20\u0e32\u0e22\u0e43\u0e15\u0e49\u0e1a\u0e31\u0e13\u0e11\u0e34\u0e15",
+ "Year of Passing": "\u0e1b\u0e35\u0e17\u0e35\u0e48\u0e1c\u0e48\u0e32\u0e19"
+}
\ No newline at end of file
diff --git a/hr/doctype/employee_external_work_history/locale/de-doc.json b/hr/doctype/employee_external_work_history/locale/de-doc.json
new file mode 100644
index 00000000000..b25eb8305da
--- /dev/null
+++ b/hr/doctype/employee_external_work_history/locale/de-doc.json
@@ -0,0 +1,10 @@
+{
+ "Address": "Adresse",
+ "Company": "Firma",
+ "Contact": "Kontakt",
+ "Designation": "Bezeichnung",
+ "Employee External Work History": "Mitarbeiter Externe Arbeit Geschichte",
+ "HR": "HR",
+ "Salary": "Gehalt",
+ "Total Experience": "Total Experience"
+}
\ No newline at end of file
diff --git a/hr/doctype/employee_external_work_history/locale/pt-BR-doc.json b/hr/doctype/employee_external_work_history/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..e81391e907b
--- /dev/null
+++ b/hr/doctype/employee_external_work_history/locale/pt-BR-doc.json
@@ -0,0 +1,10 @@
+{
+ "Address": "Endere\u00e7o",
+ "Company": "Empresa",
+ "Contact": "Contato",
+ "Designation": "Designa\u00e7\u00e3o",
+ "Employee External Work History": "Hist\u00f3rico de trabalho externo do Funcion\u00e1rio",
+ "HR": "RH",
+ "Salary": "Sal\u00e1rio",
+ "Total Experience": "Experi\u00eancia total"
+}
\ No newline at end of file
diff --git a/hr/doctype/employee_external_work_history/locale/th-doc.json b/hr/doctype/employee_external_work_history/locale/th-doc.json
new file mode 100644
index 00000000000..ef8a46a0fc6
--- /dev/null
+++ b/hr/doctype/employee_external_work_history/locale/th-doc.json
@@ -0,0 +1,10 @@
+{
+ "Address": "\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48",
+ "Company": "\u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17",
+ "Contact": "\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d",
+ "Designation": "\u0e01\u0e32\u0e23\u0e41\u0e15\u0e48\u0e07\u0e15\u0e31\u0e49\u0e07",
+ "Employee External Work History": "\u0e1b\u0e23\u0e30\u0e27\u0e31\u0e15\u0e34\u0e01\u0e32\u0e23\u0e17\u0e33\u0e07\u0e32\u0e19\u0e02\u0e2d\u0e07\u0e1e\u0e19\u0e31\u0e01\u0e07\u0e32\u0e19\u0e20\u0e32\u0e22\u0e19\u0e2d\u0e01",
+ "HR": "\u0e17\u0e23\u0e31\u0e1e\u0e22\u0e32\u0e01\u0e23\u0e1a\u0e38\u0e04\u0e04\u0e25",
+ "Salary": "\u0e40\u0e07\u0e34\u0e19\u0e40\u0e14\u0e37\u0e2d\u0e19",
+ "Total Experience": "\u0e1b\u0e23\u0e30\u0e2a\u0e1a\u0e01\u0e32\u0e23\u0e13\u0e4c\u0e23\u0e27\u0e21"
+}
\ No newline at end of file
diff --git a/hr/doctype/employee_internal_work_history/locale/_messages_doc.json b/hr/doctype/employee_internal_work_history/locale/_messages_doc.json
index 103933f4a69..f1f08af91eb 100644
--- a/hr/doctype/employee_internal_work_history/locale/_messages_doc.json
+++ b/hr/doctype/employee_internal_work_history/locale/_messages_doc.json
@@ -3,8 +3,8 @@
"Designation",
"HR",
"Grade",
+ "Department",
"To Date",
"From Date",
- "Branch",
- "Department"
+ "Branch"
]
\ No newline at end of file
diff --git a/hr/doctype/employee_internal_work_history/locale/de-doc.json b/hr/doctype/employee_internal_work_history/locale/de-doc.json
new file mode 100644
index 00000000000..4634bbcbdbb
--- /dev/null
+++ b/hr/doctype/employee_internal_work_history/locale/de-doc.json
@@ -0,0 +1,10 @@
+{
+ "Branch": "Zweig",
+ "Department": "Abteilung",
+ "Designation": "Bezeichnung",
+ "Employee Internal Work History": "Mitarbeiter Interner Arbeitsbereich Geschichte",
+ "From Date": "Von Datum",
+ "Grade": "Klasse",
+ "HR": "HR",
+ "To Date": "To Date"
+}
\ No newline at end of file
diff --git a/hr/doctype/employee_internal_work_history/locale/pt-BR-doc.json b/hr/doctype/employee_internal_work_history/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..95f153a95d9
--- /dev/null
+++ b/hr/doctype/employee_internal_work_history/locale/pt-BR-doc.json
@@ -0,0 +1,10 @@
+{
+ "Branch": "Ramo",
+ "Department": "Departamento",
+ "Designation": "Designa\u00e7\u00e3o",
+ "Employee Internal Work History": "Hist\u00f3rico de trabalho interno do Funcion\u00e1rio",
+ "From Date": "A partir da data",
+ "Grade": "Grau",
+ "HR": "RH",
+ "To Date": "At\u00e9 a Data"
+}
\ No newline at end of file
diff --git a/hr/doctype/employee_internal_work_history/locale/th-doc.json b/hr/doctype/employee_internal_work_history/locale/th-doc.json
new file mode 100644
index 00000000000..54ef82246e5
--- /dev/null
+++ b/hr/doctype/employee_internal_work_history/locale/th-doc.json
@@ -0,0 +1,10 @@
+{
+ "Branch": "\u0e2a\u0e32\u0e02\u0e32",
+ "Department": "\u0e41\u0e1c\u0e19\u0e01",
+ "Designation": "\u0e01\u0e32\u0e23\u0e41\u0e15\u0e48\u0e07\u0e15\u0e31\u0e49\u0e07",
+ "Employee Internal Work History": "\u0e1b\u0e23\u0e30\u0e27\u0e31\u0e15\u0e34\u0e01\u0e32\u0e23\u0e17\u0e33\u0e07\u0e32\u0e19\u0e02\u0e2d\u0e07\u0e1e\u0e19\u0e31\u0e01\u0e07\u0e32\u0e19\u0e20\u0e32\u0e22\u0e43\u0e19",
+ "From Date": "\u0e08\u0e32\u0e01\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48",
+ "Grade": "\u0e40\u0e01\u0e23\u0e14",
+ "HR": "\u0e17\u0e23\u0e31\u0e1e\u0e22\u0e32\u0e01\u0e23\u0e1a\u0e38\u0e04\u0e04\u0e25",
+ "To Date": "\u0e19\u0e31\u0e14"
+}
\ No newline at end of file
diff --git a/hr/doctype/employee_training/locale/_messages_doc.json b/hr/doctype/employee_training/locale/_messages_doc.json
index bfc0d0e9613..cb49386a962 100644
--- a/hr/doctype/employee_training/locale/_messages_doc.json
+++ b/hr/doctype/employee_training/locale/_messages_doc.json
@@ -3,7 +3,7 @@
"Certificate",
"HR",
"Employee Training",
- "Institute / Conducted By",
+ "Duration",
"Location",
- "Duration"
+ "Institute / Conducted By"
]
\ No newline at end of file
diff --git a/hr/doctype/employee_training/locale/de-doc.json b/hr/doctype/employee_training/locale/de-doc.json
new file mode 100644
index 00000000000..9a378eb4f79
--- /dev/null
+++ b/hr/doctype/employee_training/locale/de-doc.json
@@ -0,0 +1,9 @@
+{
+ "Certificate": "Zertifikat",
+ "Duration": "Dauer",
+ "Employee Training": "Mitarbeiterschulung",
+ "HR": "HR",
+ "Institute / Conducted By": "Institute / By Geleitete",
+ "Location": "Lage",
+ "Program / Seminar Title": "Programm / Seminar Titel"
+}
\ No newline at end of file
diff --git a/hr/doctype/employee_training/locale/pt-BR-doc.json b/hr/doctype/employee_training/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..474dce3c65d
--- /dev/null
+++ b/hr/doctype/employee_training/locale/pt-BR-doc.json
@@ -0,0 +1,9 @@
+{
+ "Certificate": "Certid\u00e3o",
+ "Duration": "Dura\u00e7\u00e3o",
+ "Employee Training": "Treinamento de funcion\u00e1rios",
+ "HR": "RH",
+ "Institute / Conducted By": "Instituto / Conduzido por",
+ "Location": "Localiza\u00e7\u00e3o",
+ "Program / Seminar Title": "Programa / T\u00edtulo do Semin\u00e1rio"
+}
\ No newline at end of file
diff --git a/hr/doctype/employee_training/locale/th-doc.json b/hr/doctype/employee_training/locale/th-doc.json
new file mode 100644
index 00000000000..423b367c4fa
--- /dev/null
+++ b/hr/doctype/employee_training/locale/th-doc.json
@@ -0,0 +1,9 @@
+{
+ "Certificate": "\u0e43\u0e1a\u0e23\u0e31\u0e1a\u0e23\u0e2d\u0e07",
+ "Duration": "\u0e23\u0e30\u0e22\u0e30\u0e40\u0e27\u0e25\u0e32",
+ "Employee Training": "\u0e01\u0e32\u0e23\u0e1d\u0e36\u0e01\u0e2d\u0e1a\u0e23\u0e21\u0e1e\u0e19\u0e31\u0e01\u0e07\u0e32\u0e19",
+ "HR": "\u0e17\u0e23\u0e31\u0e1e\u0e22\u0e32\u0e01\u0e23\u0e1a\u0e38\u0e04\u0e04\u0e25",
+ "Institute / Conducted By": "\u0e2a\u0e16\u0e32\u0e1a\u0e31\u0e19\u0e14\u0e33\u0e40\u0e19\u0e34\u0e19\u0e01\u0e32\u0e23 / \u0e42\u0e14\u0e22",
+ "Location": "\u0e2a\u0e16\u0e32\u0e19\u0e17\u0e35\u0e48",
+ "Program / Seminar Title": "\u0e0a\u0e37\u0e48\u0e2d\u0e42\u0e1b\u0e23\u0e41\u0e01\u0e23\u0e21 / \u0e2a\u0e31\u0e21\u0e21\u0e19\u0e32"
+}
\ No newline at end of file
diff --git a/hr/doctype/employment_type/locale/de-doc.json b/hr/doctype/employment_type/locale/de-doc.json
new file mode 100644
index 00000000000..f25d66e94d8
--- /dev/null
+++ b/hr/doctype/employment_type/locale/de-doc.json
@@ -0,0 +1,5 @@
+{
+ "Employment Type": "Besch\u00e4ftigungsart",
+ "HR": "HR",
+ "Trash Reason": "Trash Reason"
+}
\ No newline at end of file
diff --git a/hr/doctype/employment_type/locale/pt-BR-doc.json b/hr/doctype/employment_type/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..4f460955573
--- /dev/null
+++ b/hr/doctype/employment_type/locale/pt-BR-doc.json
@@ -0,0 +1,5 @@
+{
+ "Employment Type": "Tipo de emprego",
+ "HR": "RH",
+ "Trash Reason": "Raz\u00e3o de p\u00f4r no lixo"
+}
\ No newline at end of file
diff --git a/hr/doctype/employment_type/locale/th-doc.json b/hr/doctype/employment_type/locale/th-doc.json
new file mode 100644
index 00000000000..0d3fefe0270
--- /dev/null
+++ b/hr/doctype/employment_type/locale/th-doc.json
@@ -0,0 +1,5 @@
+{
+ "Employment Type": "\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e01\u0e32\u0e23\u0e08\u0e49\u0e32\u0e07\u0e07\u0e32\u0e19",
+ "HR": "\u0e17\u0e23\u0e31\u0e1e\u0e22\u0e32\u0e01\u0e23\u0e1a\u0e38\u0e04\u0e04\u0e25",
+ "Trash Reason": "\u0e40\u0e2b\u0e15\u0e38\u0e1c\u0e25\u0e16\u0e31\u0e07\u0e02\u0e22\u0e30"
+}
\ No newline at end of file
diff --git a/hr/doctype/expense_claim/locale/_messages_doc.json b/hr/doctype/expense_claim/locale/_messages_doc.json
index e3eec2767f2..9593a81ca49 100644
--- a/hr/doctype/expense_claim/locale/_messages_doc.json
+++ b/hr/doctype/expense_claim/locale/_messages_doc.json
@@ -1,22 +1,22 @@
[
"Employees Email Id",
- "Amendment Date",
- "Remark",
"HR",
+ "Total Claimed Amount",
+ "Draft",
+ "Amended From",
+ "Expense Claim Details",
+ "Employee Name",
"Company",
"Approver",
"Total Sanctioned Amount",
"Rejected",
- "Approved",
"Expense Details",
+ "Approved",
+ "Posting Date",
+ "Remark",
"Fiscal Year",
- "Total Claimed Amount",
- "Draft",
- "Amended From",
"Approval Status",
- "Expense Claim Details",
- "From Employee",
- "Employee Name",
"Expense Claim",
- "Posting Date"
+ "Amendment Date",
+ "From Employee"
]
\ No newline at end of file
diff --git a/hr/doctype/expense_claim/locale/de-doc.json b/hr/doctype/expense_claim/locale/de-doc.json
new file mode 100644
index 00000000000..69adcbada1e
--- /dev/null
+++ b/hr/doctype/expense_claim/locale/de-doc.json
@@ -0,0 +1,22 @@
+{
+ "Amended From": "Ge\u00e4ndert von",
+ "Amendment Date": "\u00c4nderung Datum",
+ "Approval Status": "Genehmigungsstatus",
+ "Approved": "Genehmigt",
+ "Approver": "Approver",
+ "Company": "Firma",
+ "Draft": "Entwurf",
+ "Employee Name": "Name des Mitarbeiters",
+ "Employees Email Id": "Mitarbeiter Email Id",
+ "Expense Claim": "Expense Anspruch",
+ "Expense Claim Details": "Expense Anspruch Einzelheiten",
+ "Expense Details": "Expense Einzelheiten",
+ "Fiscal Year": "Gesch\u00e4ftsjahr",
+ "From Employee": "Von Mitarbeiter",
+ "HR": "HR",
+ "Posting Date": "Buchungsdatum",
+ "Rejected": "Abgelehnt",
+ "Remark": "Bemerkung",
+ "Total Claimed Amount": "Insgesamt geforderten Betrag",
+ "Total Sanctioned Amount": "Insgesamt Sanctioned Betrag"
+}
\ No newline at end of file
diff --git a/hr/doctype/expense_claim/locale/pt-BR-doc.json b/hr/doctype/expense_claim/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..ecd7e6be006
--- /dev/null
+++ b/hr/doctype/expense_claim/locale/pt-BR-doc.json
@@ -0,0 +1,22 @@
+{
+ "Amended From": "Corrigido De",
+ "Amendment Date": "Data da Corre\u00e7\u00e3o",
+ "Approval Status": "Estado da Aprova\u00e7\u00e3o",
+ "Approved": "Aprovado",
+ "Approver": "Aprovador",
+ "Company": "Empresa",
+ "Draft": "Rascunho",
+ "Employee Name": "Nome do Funcion\u00e1rio",
+ "Employees Email Id": "Endere\u00e7os de e-mail dos Funcion\u00e1rios ",
+ "Expense Claim": "Pedido de Reembolso de Despesas",
+ "Expense Claim Details": "Detalhes do Pedido de Reembolso de Despesas",
+ "Expense Details": "Detalhes da despesa",
+ "Fiscal Year": "Exerc\u00edcio fiscal",
+ "From Employee": "De Empregado",
+ "HR": "RH",
+ "Posting Date": "Data da Postagem",
+ "Rejected": "Rejeitado",
+ "Remark": "Observa\u00e7\u00e3o",
+ "Total Claimed Amount": "Montante Total Requerido",
+ "Total Sanctioned Amount": "Valor Total Sancionado"
+}
\ No newline at end of file
diff --git a/hr/doctype/expense_claim/locale/th-doc.json b/hr/doctype/expense_claim/locale/th-doc.json
new file mode 100644
index 00000000000..60bf79b1edb
--- /dev/null
+++ b/hr/doctype/expense_claim/locale/th-doc.json
@@ -0,0 +1,22 @@
+{
+ "Amended From": "\u0e41\u0e01\u0e49\u0e44\u0e02\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21",
+ "Amendment Date": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e41\u0e01\u0e49\u0e44\u0e02",
+ "Approval Status": "\u0e2a\u0e16\u0e32\u0e19\u0e30\u0e01\u0e32\u0e23\u0e2d\u0e19\u0e38\u0e21\u0e31\u0e15\u0e34",
+ "Approved": "\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e2d\u0e19\u0e38\u0e21\u0e31\u0e15\u0e34",
+ "Approver": "\u0e2d\u0e19\u0e38\u0e21\u0e31\u0e15\u0e34",
+ "Company": "\u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17",
+ "Draft": "\u0e23\u0e48\u0e32\u0e07",
+ "Employee Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e02\u0e2d\u0e07\u0e1e\u0e19\u0e31\u0e01\u0e07\u0e32\u0e19",
+ "Employees Email Id": "Email \u0e23\u0e2b\u0e31\u0e2a\u0e1e\u0e19\u0e31\u0e01\u0e07\u0e32\u0e19",
+ "Expense Claim": "\u0e40\u0e23\u0e35\u0e22\u0e01\u0e23\u0e49\u0e2d\u0e07\u0e04\u0e48\u0e32\u0e43\u0e0a\u0e49\u0e08\u0e48\u0e32\u0e22",
+ "Expense Claim Details": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e04\u0e48\u0e32\u0e43\u0e0a\u0e49\u0e08\u0e48\u0e32\u0e22\u0e2a\u0e34\u0e19\u0e44\u0e2b\u0e21",
+ "Expense Details": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e04\u0e48\u0e32\u0e43\u0e0a\u0e49\u0e08\u0e48\u0e32\u0e22",
+ "Fiscal Year": "\u0e1b\u0e35\u0e07\u0e1a\u0e1b\u0e23\u0e30\u0e21\u0e32\u0e13",
+ "From Employee": "\u0e08\u0e32\u0e01\u0e1e\u0e19\u0e31\u0e01\u0e07\u0e32\u0e19",
+ "HR": "\u0e17\u0e23\u0e31\u0e1e\u0e22\u0e32\u0e01\u0e23\u0e1a\u0e38\u0e04\u0e04\u0e25",
+ "Posting Date": "\u0e42\u0e1e\u0e2a\u0e15\u0e4c\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48",
+ "Rejected": "\u0e1b\u0e0f\u0e34\u0e40\u0e2a\u0e18",
+ "Remark": "\u0e04\u0e33\u0e1e\u0e39\u0e14",
+ "Total Claimed Amount": "\u0e08\u0e33\u0e19\u0e27\u0e19\u0e23\u0e27\u0e21\u0e2d\u0e49\u0e32\u0e07",
+ "Total Sanctioned Amount": "\u0e08\u0e33\u0e19\u0e27\u0e19\u0e23\u0e27\u0e21\u0e15\u0e32\u0e21\u0e17\u0e33\u0e19\u0e2d\u0e07\u0e04\u0e25\u0e2d\u0e07\u0e18\u0e23\u0e23\u0e21"
+}
\ No newline at end of file
diff --git a/hr/doctype/expense_claim_detail/locale/de-doc.json b/hr/doctype/expense_claim_detail/locale/de-doc.json
new file mode 100644
index 00000000000..b5cdc3caed6
--- /dev/null
+++ b/hr/doctype/expense_claim_detail/locale/de-doc.json
@@ -0,0 +1,9 @@
+{
+ "Claim Amount": "Schadenh\u00f6he",
+ "Description": "Beschreibung",
+ "Expense Claim Detail": "Expense Anspruch Details",
+ "Expense Claim Type": "Expense Anspruch Type",
+ "Expense Date": "Expense Datum",
+ "HR": "HR",
+ "Sanctioned Amount": "Sanktioniert Betrag"
+}
\ No newline at end of file
diff --git a/hr/doctype/expense_claim_detail/locale/pt-BR-doc.json b/hr/doctype/expense_claim_detail/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..aa92616a2fb
--- /dev/null
+++ b/hr/doctype/expense_claim_detail/locale/pt-BR-doc.json
@@ -0,0 +1,9 @@
+{
+ "Claim Amount": "Valor Requerido",
+ "Description": "Descri\u00e7\u00e3o",
+ "Expense Claim Detail": "Detalhe do Pedido de Reembolso de Despesas",
+ "Expense Claim Type": "Tipo de Pedido de Reembolso de Despesas",
+ "Expense Date": "Data da despesa",
+ "HR": "RH",
+ "Sanctioned Amount": "Quantidade sancionada"
+}
\ No newline at end of file
diff --git a/hr/doctype/expense_claim_detail/locale/th-doc.json b/hr/doctype/expense_claim_detail/locale/th-doc.json
new file mode 100644
index 00000000000..efb67d53c0b
--- /dev/null
+++ b/hr/doctype/expense_claim_detail/locale/th-doc.json
@@ -0,0 +1,9 @@
+{
+ "Claim Amount": "\u0e08\u0e33\u0e19\u0e27\u0e19\u0e01\u0e32\u0e23\u0e40\u0e23\u0e35\u0e22\u0e01\u0e23\u0e49\u0e2d\u0e07",
+ "Description": "\u0e25\u0e31\u0e01\u0e29\u0e13\u0e30",
+ "Expense Claim Detail": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e04\u0e48\u0e32\u0e43\u0e0a\u0e49\u0e08\u0e48\u0e32\u0e22\u0e2a\u0e34\u0e19\u0e44\u0e2b\u0e21",
+ "Expense Claim Type": "\u0e40\u0e23\u0e35\u0e22\u0e01\u0e23\u0e49\u0e2d\u0e07\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e04\u0e48\u0e32\u0e43\u0e0a\u0e49\u0e08\u0e48\u0e32\u0e22",
+ "Expense Date": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e04\u0e48\u0e32\u0e43\u0e0a\u0e49\u0e08\u0e48\u0e32\u0e22",
+ "HR": "\u0e17\u0e23\u0e31\u0e1e\u0e22\u0e32\u0e01\u0e23\u0e1a\u0e38\u0e04\u0e04\u0e25",
+ "Sanctioned Amount": "\u0e08\u0e33\u0e19\u0e27\u0e19\u0e15\u0e32\u0e21\u0e17\u0e33\u0e19\u0e2d\u0e07\u0e04\u0e25\u0e2d\u0e07\u0e18\u0e23\u0e23\u0e21"
+}
\ No newline at end of file
diff --git a/hr/doctype/expense_claim_type/locale/de-doc.json b/hr/doctype/expense_claim_type/locale/de-doc.json
new file mode 100644
index 00000000000..fb88654599d
--- /dev/null
+++ b/hr/doctype/expense_claim_type/locale/de-doc.json
@@ -0,0 +1,5 @@
+{
+ "Description": "Beschreibung",
+ "Expense Claim Type": "Expense Anspruch Type",
+ "HR": "HR"
+}
\ No newline at end of file
diff --git a/hr/doctype/expense_claim_type/locale/pt-BR-doc.json b/hr/doctype/expense_claim_type/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..404c54ae260
--- /dev/null
+++ b/hr/doctype/expense_claim_type/locale/pt-BR-doc.json
@@ -0,0 +1,5 @@
+{
+ "Description": "Descri\u00e7\u00e3o",
+ "Expense Claim Type": "Tipo de Pedido de Reembolso de Despesas",
+ "HR": "RH"
+}
\ No newline at end of file
diff --git a/hr/doctype/expense_claim_type/locale/th-doc.json b/hr/doctype/expense_claim_type/locale/th-doc.json
new file mode 100644
index 00000000000..0706a9a1cde
--- /dev/null
+++ b/hr/doctype/expense_claim_type/locale/th-doc.json
@@ -0,0 +1,5 @@
+{
+ "Description": "\u0e25\u0e31\u0e01\u0e29\u0e13\u0e30",
+ "Expense Claim Type": "\u0e40\u0e23\u0e35\u0e22\u0e01\u0e23\u0e49\u0e2d\u0e07\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e04\u0e48\u0e32\u0e43\u0e0a\u0e49\u0e08\u0e48\u0e32\u0e22",
+ "HR": "\u0e17\u0e23\u0e31\u0e1e\u0e22\u0e32\u0e01\u0e23\u0e1a\u0e38\u0e04\u0e04\u0e25"
+}
\ No newline at end of file
diff --git a/hr/doctype/grade/locale/_messages_doc.json b/hr/doctype/grade/locale/_messages_doc.json
index ece62144df0..c5037b2029d 100644
--- a/hr/doctype/grade/locale/_messages_doc.json
+++ b/hr/doctype/grade/locale/_messages_doc.json
@@ -1,5 +1,5 @@
[
"HR",
- "Grade",
- "Trash Reason"
+ "Trash Reason",
+ "Grade"
]
\ No newline at end of file
diff --git a/hr/doctype/grade/locale/de-doc.json b/hr/doctype/grade/locale/de-doc.json
new file mode 100644
index 00000000000..52cbb20f09f
--- /dev/null
+++ b/hr/doctype/grade/locale/de-doc.json
@@ -0,0 +1,5 @@
+{
+ "Grade": "Klasse",
+ "HR": "HR",
+ "Trash Reason": "Trash Reason"
+}
\ No newline at end of file
diff --git a/hr/doctype/grade/locale/pt-BR-doc.json b/hr/doctype/grade/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..905b7ff0bdf
--- /dev/null
+++ b/hr/doctype/grade/locale/pt-BR-doc.json
@@ -0,0 +1,5 @@
+{
+ "Grade": "Grau",
+ "HR": "RH",
+ "Trash Reason": "Raz\u00e3o de p\u00f4r no lixo"
+}
\ No newline at end of file
diff --git a/hr/doctype/grade/locale/th-doc.json b/hr/doctype/grade/locale/th-doc.json
new file mode 100644
index 00000000000..fd685ca9a5e
--- /dev/null
+++ b/hr/doctype/grade/locale/th-doc.json
@@ -0,0 +1,5 @@
+{
+ "Grade": "\u0e40\u0e01\u0e23\u0e14",
+ "HR": "\u0e17\u0e23\u0e31\u0e1e\u0e22\u0e32\u0e01\u0e23\u0e1a\u0e38\u0e04\u0e04\u0e25",
+ "Trash Reason": "\u0e40\u0e2b\u0e15\u0e38\u0e1c\u0e25\u0e16\u0e31\u0e07\u0e02\u0e22\u0e30"
+}
\ No newline at end of file
diff --git a/hr/doctype/holiday/locale/_messages_doc.json b/hr/doctype/holiday/locale/_messages_doc.json
index b3a06eda7e6..a46bf590834 100644
--- a/hr/doctype/holiday/locale/_messages_doc.json
+++ b/hr/doctype/holiday/locale/_messages_doc.json
@@ -1,6 +1,6 @@
[
"HR",
- "Date",
"Holiday",
- "Description"
+ "Description",
+ "Date"
]
\ No newline at end of file
diff --git a/hr/doctype/holiday/locale/de-doc.json b/hr/doctype/holiday/locale/de-doc.json
new file mode 100644
index 00000000000..e25b63b94a4
--- /dev/null
+++ b/hr/doctype/holiday/locale/de-doc.json
@@ -0,0 +1,6 @@
+{
+ "Date": "Datum",
+ "Description": "Beschreibung",
+ "HR": "HR",
+ "Holiday": "Urlaub"
+}
\ No newline at end of file
diff --git a/hr/doctype/holiday/locale/pt-BR-doc.json b/hr/doctype/holiday/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..a49961c4040
--- /dev/null
+++ b/hr/doctype/holiday/locale/pt-BR-doc.json
@@ -0,0 +1,6 @@
+{
+ "Date": "Data",
+ "Description": "Descri\u00e7\u00e3o",
+ "HR": "RH",
+ "Holiday": "Feriado"
+}
\ No newline at end of file
diff --git a/hr/doctype/holiday/locale/th-doc.json b/hr/doctype/holiday/locale/th-doc.json
new file mode 100644
index 00000000000..51f20b7fa86
--- /dev/null
+++ b/hr/doctype/holiday/locale/th-doc.json
@@ -0,0 +1,6 @@
+{
+ "Date": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48",
+ "Description": "\u0e25\u0e31\u0e01\u0e29\u0e13\u0e30",
+ "HR": "\u0e17\u0e23\u0e31\u0e1e\u0e22\u0e32\u0e01\u0e23\u0e1a\u0e38\u0e04\u0e04\u0e25",
+ "Holiday": "\u0e27\u0e31\u0e19\u0e2b\u0e22\u0e38\u0e14"
+}
\ No newline at end of file
diff --git a/hr/doctype/holiday_block_list/locale/_messages_doc.json b/hr/doctype/holiday_block_list/locale/_messages_doc.json
new file mode 100644
index 00000000000..9f037943478
--- /dev/null
+++ b/hr/doctype/holiday_block_list/locale/_messages_doc.json
@@ -0,0 +1,16 @@
+[
+ "Allow Users",
+ "Block Holidays on important days.",
+ "Block Days",
+ "HR",
+ "Company",
+ "Holiday Block List Allowed",
+ "Holiday Block List Dates",
+ "Holiday Block List",
+ "Stop users from making Leave Applications on following days.",
+ "Holiday Block List Name",
+ "Year",
+ "If not checked, the list will have to be added to each Department where it has to be applied.",
+ "Applies to Company",
+ "Allow the following users to make Leave Applications for block days."
+]
\ No newline at end of file
diff --git a/hr/doctype/holiday_block_list/locale/de-doc.json b/hr/doctype/holiday_block_list/locale/de-doc.json
new file mode 100644
index 00000000000..7814136a5b2
--- /dev/null
+++ b/hr/doctype/holiday_block_list/locale/de-doc.json
@@ -0,0 +1,16 @@
+{
+ "Allow Users": "Erm\u00f6glichen",
+ "Allow the following users to make Leave Applications for block days.": "Lassen Sie die folgenden Benutzer Leave Anwendungen f\u00fcr Block Tag machen.",
+ "Applies to Company": "Gilt f\u00fcr Unternehmen",
+ "Block Days": "Block Tage",
+ "Block Holidays on important days.": "Blockieren Urlaub auf wichtige Tage.",
+ "Company": "Firma",
+ "HR": "HR",
+ "Holiday Block List": "Ferienwohnung Block List",
+ "Holiday Block List Allowed": "Ferienwohnung Block List erlaubt",
+ "Holiday Block List Dates": "Ferienwohnung Block List Termine",
+ "Holiday Block List Name": "Urlaub Blockieren Name",
+ "If not checked, the list will have to be added to each Department where it has to be applied.": "Falls nicht, wird die Liste m\u00fcssen auf jeden Abteilung, wo sie angewendet werden hinzugef\u00fcgt werden.",
+ "Stop users from making Leave Applications on following days.": "Stoppen Sie den Nutzer von Leave Anwendungen auf folgenden Tagen.",
+ "Year": "Jahr"
+}
\ No newline at end of file
diff --git a/hr/doctype/holiday_block_list/locale/pt-BR-doc.json b/hr/doctype/holiday_block_list/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..69249a71255
--- /dev/null
+++ b/hr/doctype/holiday_block_list/locale/pt-BR-doc.json
@@ -0,0 +1,16 @@
+{
+ "Allow Users": "Permitir que os usu\u00e1rios",
+ "Allow the following users to make Leave Applications for block days.": "Permitir que os usu\u00e1rios a seguir para fazer aplica\u00e7\u00f5es deixam para os dias de bloco.",
+ "Applies to Company": "Aplica-se a Empresa",
+ "Block Days": "Dias bloco",
+ "Block Holidays on important days.": "Bloquear feriados em dias importantes.",
+ "Company": "Empresa",
+ "HR": "RH",
+ "Holiday Block List": "Lista de Bloqueios de f\u00e9rias",
+ "Holiday Block List Allowed": "Lista de feriado Bloco admitidos",
+ "Holiday Block List Dates": "Datas de f\u00e9rias Lista de Bloqueios",
+ "Holiday Block List Name": "Nome de f\u00e9rias Lista de Bloqueios",
+ "If not checked, the list will have to be added to each Department where it has to be applied.": "Se n\u00e3o for controlada, a lista dever\u00e1 ser adicionado a cada departamento onde tem de ser aplicado.",
+ "Stop users from making Leave Applications on following days.": "Pare de usu\u00e1rios de fazer aplica\u00e7\u00f5es deixam nos dias seguintes.",
+ "Year": "Ano"
+}
\ No newline at end of file
diff --git a/hr/doctype/holiday_block_list/locale/th-doc.json b/hr/doctype/holiday_block_list/locale/th-doc.json
new file mode 100644
index 00000000000..30e3ba09c68
--- /dev/null
+++ b/hr/doctype/holiday_block_list/locale/th-doc.json
@@ -0,0 +1,16 @@
+{
+ "Allow Users": "\u0e2d\u0e19\u0e38\u0e0d\u0e32\u0e15\u0e43\u0e2b\u0e49\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19",
+ "Allow the following users to make Leave Applications for block days.": "\u0e2d\u0e19\u0e38\u0e0d\u0e32\u0e15\u0e43\u0e2b\u0e49\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e15\u0e48\u0e2d\u0e44\u0e1b\u0e17\u0e35\u0e48\u0e08\u0e30\u0e17\u0e33\u0e43\u0e2b\u0e49\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e2d\u0e2d\u0e01\u0e27\u0e31\u0e19\u0e1a\u0e25\u0e47\u0e2d\u0e01",
+ "Applies to Company": "\u0e19\u0e33\u0e44\u0e1b\u0e43\u0e0a\u0e49\u0e01\u0e31\u0e1a \u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17",
+ "Block Days": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e16\u0e39\u0e01\u0e1a\u0e25\u0e47\u0e2d\u0e01",
+ "Block Holidays on important days.": "\u0e1b\u0e34\u0e14\u0e01\u0e31\u0e49\u0e19\u0e2b\u0e22\u0e38\u0e14\u0e43\u0e19\u0e27\u0e31\u0e19\u0e2a\u0e33\u0e04\u0e31\u0e0d",
+ "Company": "\u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17",
+ "HR": "\u0e17\u0e23\u0e31\u0e1e\u0e22\u0e32\u0e01\u0e23\u0e1a\u0e38\u0e04\u0e04\u0e25",
+ "Holiday Block List": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e1a\u0e25\u0e47\u0e2d\u0e01\u0e27\u0e31\u0e19\u0e2b\u0e22\u0e38\u0e14",
+ "Holiday Block List Allowed": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e1a\u0e25\u0e47\u0e2d\u0e01 Holiday \u0e2d\u0e19\u0e38\u0e0d\u0e32\u0e15\u0e43\u0e2b\u0e49\u0e19\u0e33",
+ "Holiday Block List Dates": "\u0e27\u0e31\u0e19\u0e2b\u0e22\u0e38\u0e14\u0e27\u0e31\u0e19\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e1a\u0e25\u0e47\u0e2d\u0e01",
+ "Holiday Block List Name": "\u0e27\u0e31\u0e19\u0e2b\u0e22\u0e38\u0e14\u0e0a\u0e37\u0e48\u0e2d\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e1a\u0e25\u0e47\u0e2d\u0e01",
+ "If not checked, the list will have to be added to each Department where it has to be applied.": "\u0e16\u0e49\u0e32\u0e44\u0e21\u0e48\u0e44\u0e14\u0e49\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a\u0e23\u0e32\u0e22\u0e0a\u0e37\u0e48\u0e2d\u0e08\u0e30\u0e15\u0e49\u0e2d\u0e07\u0e21\u0e35\u0e01\u0e32\u0e23\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e41\u0e15\u0e48\u0e25\u0e30\u0e41\u0e1c\u0e19\u0e01\u0e17\u0e35\u0e48\u0e21\u0e31\u0e19\u0e08\u0e30\u0e15\u0e49\u0e2d\u0e07\u0e21\u0e35\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49",
+ "Stop users from making Leave Applications on following days.": "\u0e2b\u0e22\u0e38\u0e14\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e08\u0e32\u0e01\u0e01\u0e32\u0e23\u0e17\u0e33\u0e41\u0e2d\u0e1e\u0e1e\u0e25\u0e34\u0e40\u0e04\u0e17\u0e35\u0e48\u0e40\u0e14\u0e34\u0e19\u0e17\u0e32\u0e07\u0e43\u0e19\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e14\u0e31\u0e07\u0e15\u0e48\u0e2d\u0e44\u0e1b\u0e19\u0e35\u0e49",
+ "Year": "\u0e1b\u0e35"
+}
\ No newline at end of file
diff --git a/hr/doctype/holiday_block_list_allow/locale/_messages_doc.json b/hr/doctype/holiday_block_list_allow/locale/_messages_doc.json
new file mode 100644
index 00000000000..ac1046f409b
--- /dev/null
+++ b/hr/doctype/holiday_block_list_allow/locale/_messages_doc.json
@@ -0,0 +1,5 @@
+[
+ "HR",
+ "Allow User",
+ "Holiday Block List Allow"
+]
\ No newline at end of file
diff --git a/hr/doctype/holiday_block_list_allow/locale/de-doc.json b/hr/doctype/holiday_block_list_allow/locale/de-doc.json
new file mode 100644
index 00000000000..82df344920b
--- /dev/null
+++ b/hr/doctype/holiday_block_list_allow/locale/de-doc.json
@@ -0,0 +1,5 @@
+{
+ "Allow User": "Benutzer zulassen",
+ "HR": "HR",
+ "Holiday Block List Allow": "Ferienwohnung Block List zulassen"
+}
\ No newline at end of file
diff --git a/hr/doctype/holiday_block_list_allow/locale/pt-BR-doc.json b/hr/doctype/holiday_block_list_allow/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..11d692db695
--- /dev/null
+++ b/hr/doctype/holiday_block_list_allow/locale/pt-BR-doc.json
@@ -0,0 +1,5 @@
+{
+ "Allow User": "Permitir que o usu\u00e1rio",
+ "HR": "RH",
+ "Holiday Block List Allow": "Lista de Bloqueios de f\u00e9rias Permitir"
+}
\ No newline at end of file
diff --git a/hr/doctype/holiday_block_list_allow/locale/th-doc.json b/hr/doctype/holiday_block_list_allow/locale/th-doc.json
new file mode 100644
index 00000000000..1b1b4b18b73
--- /dev/null
+++ b/hr/doctype/holiday_block_list_allow/locale/th-doc.json
@@ -0,0 +1,5 @@
+{
+ "Allow User": "\u0e2d\u0e19\u0e38\u0e0d\u0e32\u0e15\u0e43\u0e2b\u0e49\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49",
+ "HR": "\u0e17\u0e23\u0e31\u0e1e\u0e22\u0e32\u0e01\u0e23\u0e1a\u0e38\u0e04\u0e04\u0e25",
+ "Holiday Block List Allow": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e1a\u0e25\u0e47\u0e2d\u0e01 Holiday \u0e2d\u0e19\u0e38\u0e0d\u0e32\u0e15\u0e43\u0e2b\u0e49"
+}
\ No newline at end of file
diff --git a/hr/doctype/holiday_block_list_date/locale/_messages_doc.json b/hr/doctype/holiday_block_list_date/locale/_messages_doc.json
new file mode 100644
index 00000000000..20482bdd12e
--- /dev/null
+++ b/hr/doctype/holiday_block_list_date/locale/_messages_doc.json
@@ -0,0 +1,6 @@
+[
+ "HR",
+ "Holiday Block List Date",
+ "Reason",
+ "Block Date"
+]
\ No newline at end of file
diff --git a/hr/doctype/holiday_block_list_date/locale/de-doc.json b/hr/doctype/holiday_block_list_date/locale/de-doc.json
new file mode 100644
index 00000000000..d4d6d69db26
--- /dev/null
+++ b/hr/doctype/holiday_block_list_date/locale/de-doc.json
@@ -0,0 +1,6 @@
+{
+ "Block Date": "Blockieren Datum",
+ "HR": "HR",
+ "Holiday Block List Date": "Ferienwohnung Block List Datum",
+ "Reason": "Grund"
+}
\ No newline at end of file
diff --git a/hr/doctype/holiday_block_list_date/locale/pt-BR-doc.json b/hr/doctype/holiday_block_list_date/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..83812b0b9b8
--- /dev/null
+++ b/hr/doctype/holiday_block_list_date/locale/pt-BR-doc.json
@@ -0,0 +1,6 @@
+{
+ "Block Date": "Bloquear Data",
+ "HR": "RH",
+ "Holiday Block List Date": "Data feriado Lista de Bloqueios",
+ "Reason": "Motivo"
+}
\ No newline at end of file
diff --git a/hr/doctype/holiday_block_list_date/locale/th-doc.json b/hr/doctype/holiday_block_list_date/locale/th-doc.json
new file mode 100644
index 00000000000..35f09a93c8d
--- /dev/null
+++ b/hr/doctype/holiday_block_list_date/locale/th-doc.json
@@ -0,0 +1,6 @@
+{
+ "Block Date": "\u0e1a\u0e25\u0e47\u0e2d\u0e01\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48",
+ "HR": "\u0e17\u0e23\u0e31\u0e1e\u0e22\u0e32\u0e01\u0e23\u0e1a\u0e38\u0e04\u0e04\u0e25",
+ "Holiday Block List Date": "\u0e27\u0e31\u0e19\u0e2b\u0e22\u0e38\u0e14\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e1a\u0e25\u0e47\u0e2d\u0e01",
+ "Reason": "\u0e40\u0e2b\u0e15\u0e38\u0e1c\u0e25"
+}
\ No newline at end of file
diff --git a/hr/doctype/holiday_list/locale/_messages_doc.json b/hr/doctype/holiday_list/locale/_messages_doc.json
index 9c51fcf9909..dddc7498799 100644
--- a/hr/doctype/holiday_list/locale/_messages_doc.json
+++ b/hr/doctype/holiday_list/locale/_messages_doc.json
@@ -1,5 +1,6 @@
[
"Trash Reason",
+ "Clear Table",
"Monday",
"HR",
"Tuesday",
@@ -13,7 +14,6 @@
"Fiscal Year",
"Get Weekly Off Dates",
"Wednesday",
- "Clear Table",
"Holidays",
"Saturday"
]
\ No newline at end of file
diff --git a/hr/doctype/holiday_list/locale/de-doc.json b/hr/doctype/holiday_list/locale/de-doc.json
new file mode 100644
index 00000000000..7174c7f9265
--- /dev/null
+++ b/hr/doctype/holiday_list/locale/de-doc.json
@@ -0,0 +1,19 @@
+{
+ "Clear Table": "Tabelle l\u00f6schen",
+ "Default": "Default",
+ "Fiscal Year": "Gesch\u00e4ftsjahr",
+ "Friday": "Freitag",
+ "Get Weekly Off Dates": "Holen Weekly Off Dates",
+ "HR": "HR",
+ "Holiday List": "Ferienwohnung Liste",
+ "Holiday List Name": "Ferienwohnung Name",
+ "Holidays": "Ferien",
+ "Monday": "Montag",
+ "Saturday": "Samstag",
+ "Sunday": "Sonntag",
+ "Thursday": "Donnerstag",
+ "Trash Reason": "Trash Reason",
+ "Tuesday": "Dienstag",
+ "Wednesday": "Mittwoch",
+ "Weekly Off": "W\u00f6chentliche Off"
+}
\ No newline at end of file
diff --git a/hr/doctype/holiday_list/locale/pt-BR-doc.json b/hr/doctype/holiday_list/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..a6d6276f1f7
--- /dev/null
+++ b/hr/doctype/holiday_list/locale/pt-BR-doc.json
@@ -0,0 +1,19 @@
+{
+ "Clear Table": "Limpar Tabela",
+ "Default": "Padr\u00e3o",
+ "Fiscal Year": "Exerc\u00edcio fiscal",
+ "Friday": "Sexta-feira",
+ "Get Weekly Off Dates": "Obter datas de descanso semanal",
+ "HR": "RH",
+ "Holiday List": "Lista de feriado",
+ "Holiday List Name": "Nome da lista de feriados",
+ "Holidays": "Feriados",
+ "Monday": "Segunda-feira",
+ "Saturday": "S\u00e1bado",
+ "Sunday": "Domingo",
+ "Thursday": "Quinta-feira",
+ "Trash Reason": "Raz\u00e3o de p\u00f4r no lixo",
+ "Tuesday": "Ter\u00e7a-feira",
+ "Wednesday": "Quarta-feira",
+ "Weekly Off": "Descanso semanal"
+}
\ No newline at end of file
diff --git a/hr/doctype/holiday_list/locale/th-doc.json b/hr/doctype/holiday_list/locale/th-doc.json
new file mode 100644
index 00000000000..677ace0ffc2
--- /dev/null
+++ b/hr/doctype/holiday_list/locale/th-doc.json
@@ -0,0 +1,19 @@
+{
+ "Clear Table": "\u0e15\u0e32\u0e23\u0e32\u0e07\u0e17\u0e35\u0e48\u0e0a\u0e31\u0e14\u0e40\u0e08\u0e19",
+ "Default": "\u0e1c\u0e34\u0e14\u0e19\u0e31\u0e14",
+ "Fiscal Year": "\u0e1b\u0e35\u0e07\u0e1a\u0e1b\u0e23\u0e30\u0e21\u0e32\u0e13",
+ "Friday": "\u0e27\u0e31\u0e19\u0e28\u0e38\u0e01\u0e23\u0e4c",
+ "Get Weekly Off Dates": "\u0e23\u0e31\u0e1a\u0e27\u0e31\u0e19\u0e1b\u0e34\u0e14\u0e2a\u0e31\u0e1b\u0e14\u0e32\u0e2b\u0e4c",
+ "HR": "\u0e17\u0e23\u0e31\u0e1e\u0e22\u0e32\u0e01\u0e23\u0e1a\u0e38\u0e04\u0e04\u0e25",
+ "Holiday List": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e27\u0e31\u0e19\u0e2b\u0e22\u0e38\u0e14",
+ "Holiday List Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e27\u0e31\u0e19\u0e2b\u0e22\u0e38\u0e14",
+ "Holidays": "\u0e27\u0e31\u0e19\u0e2b\u0e22\u0e38\u0e14",
+ "Monday": "\u0e27\u0e31\u0e19\u0e08\u0e31\u0e19\u0e17\u0e23\u0e4c",
+ "Saturday": "\u0e27\u0e31\u0e19\u0e40\u0e2a\u0e32\u0e23\u0e4c",
+ "Sunday": "\u0e27\u0e31\u0e19\u0e2d\u0e32\u0e17\u0e34\u0e15\u0e22\u0e4c",
+ "Thursday": "\u0e27\u0e31\u0e19\u0e1e\u0e24\u0e2b\u0e31\u0e2a\u0e1a\u0e14\u0e35",
+ "Trash Reason": "\u0e40\u0e2b\u0e15\u0e38\u0e1c\u0e25\u0e16\u0e31\u0e07\u0e02\u0e22\u0e30",
+ "Tuesday": "\u0e27\u0e31\u0e19\u0e2d\u0e31\u0e07\u0e04\u0e32\u0e23",
+ "Wednesday": "\u0e27\u0e31\u0e19\u0e1e\u0e38\u0e18",
+ "Weekly Off": "\u0e2a\u0e31\u0e1b\u0e14\u0e32\u0e2b\u0e4c\u0e1b\u0e34\u0e14"
+}
\ No newline at end of file
diff --git a/hr/doctype/job_applicant/locale/de-doc.json b/hr/doctype/job_applicant/locale/de-doc.json
new file mode 100644
index 00000000000..e586ad3facd
--- /dev/null
+++ b/hr/doctype/job_applicant/locale/de-doc.json
@@ -0,0 +1,15 @@
+{
+ "Applicant Name": "Name des Antragstellers",
+ "Applicant for a Job": "Antragsteller f\u00fcr einen Job",
+ "Email Id": "Email Id",
+ "File List": "Dateiliste",
+ "HR": "HR",
+ "Hold": "Halten",
+ "Job Applicant": "Job Applicant",
+ "Job Opening": "Stellenangebot",
+ "Open": "\u00d6ffnen",
+ "Rejected": "Abgelehnt",
+ "Replied": "Beantwortet",
+ "Status": "Status",
+ "Thread HTML": "Themen HTML"
+}
\ No newline at end of file
diff --git a/hr/doctype/job_applicant/locale/pt-BR-doc.json b/hr/doctype/job_applicant/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..67eac0aa141
--- /dev/null
+++ b/hr/doctype/job_applicant/locale/pt-BR-doc.json
@@ -0,0 +1,15 @@
+{
+ "Applicant Name": "Nome do Requerente",
+ "Applicant for a Job": "Candidato a um Emprego",
+ "Email Id": "Endere\u00e7o de e-mail",
+ "File List": "Lista de Arquivos",
+ "HR": "RH",
+ "Hold": "Segurar",
+ "Job Applicant": "Candidato a emprego",
+ "Job Opening": "Vaga de emprego",
+ "Open": "Abrir",
+ "Rejected": "Rejeitado",
+ "Replied": "Respondeu",
+ "Status": "Estado",
+ "Thread HTML": "T\u00f3pico HTML"
+}
\ No newline at end of file
diff --git a/hr/doctype/job_applicant/locale/th-doc.json b/hr/doctype/job_applicant/locale/th-doc.json
new file mode 100644
index 00000000000..3aab564d0f1
--- /dev/null
+++ b/hr/doctype/job_applicant/locale/th-doc.json
@@ -0,0 +1,15 @@
+{
+ "Applicant Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e1c\u0e39\u0e49\u0e22\u0e37\u0e48\u0e19\u0e04\u0e33\u0e02\u0e2d",
+ "Applicant for a Job": "\u0e02\u0e2d\u0e23\u0e31\u0e1a\u0e07\u0e32\u0e19",
+ "Email Id": "Email \u0e23\u0e2b\u0e31\u0e2a",
+ "File List": "\u0e23\u0e32\u0e22\u0e0a\u0e37\u0e48\u0e2d\u0e44\u0e1f\u0e25\u0e4c",
+ "HR": "\u0e17\u0e23\u0e31\u0e1e\u0e22\u0e32\u0e01\u0e23\u0e1a\u0e38\u0e04\u0e04\u0e25",
+ "Hold": "\u0e16\u0e37\u0e2d",
+ "Job Applicant": "\u0e1c\u0e39\u0e49\u0e2a\u0e21\u0e31\u0e04\u0e23\u0e07\u0e32\u0e19",
+ "Job Opening": "\u0e40\u0e1b\u0e34\u0e14\u0e07\u0e32\u0e19",
+ "Open": "\u0e40\u0e1b\u0e34\u0e14",
+ "Rejected": "\u0e1b\u0e0f\u0e34\u0e40\u0e2a\u0e18",
+ "Replied": "Replied",
+ "Status": "\u0e2a\u0e16\u0e32\u0e19\u0e30",
+ "Thread HTML": "HTML \u0e01\u0e23\u0e30\u0e17\u0e39\u0e49"
+}
\ No newline at end of file
diff --git a/hr/doctype/job_opening/locale/de-doc.json b/hr/doctype/job_opening/locale/de-doc.json
new file mode 100644
index 00000000000..77651f24b8a
--- /dev/null
+++ b/hr/doctype/job_opening/locale/de-doc.json
@@ -0,0 +1,11 @@
+{
+ "Closed": "Geschlossen",
+ "Description": "Beschreibung",
+ "Description of a Job Opening": "Beschreibung eines Job Opening",
+ "HR": "HR",
+ "Job Opening": "Stellenangebot",
+ "Job Title": "Berufsbezeichnung",
+ "Job profile, qualifications required etc.": "Job-Profil, etc. erforderlichen Qualifikationen.",
+ "Open": "\u00d6ffnen",
+ "Status": "Status"
+}
\ No newline at end of file
diff --git a/hr/doctype/job_opening/locale/pt-BR-doc.json b/hr/doctype/job_opening/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..d76dce5f7e1
--- /dev/null
+++ b/hr/doctype/job_opening/locale/pt-BR-doc.json
@@ -0,0 +1,11 @@
+{
+ "Closed": "Fechado",
+ "Description": "Descri\u00e7\u00e3o",
+ "Description of a Job Opening": "Descri\u00e7\u00e3o de uma vaga de emprego",
+ "HR": "RH",
+ "Job Opening": "Vaga de emprego",
+ "Job Title": "Cargo",
+ "Job profile, qualifications required etc.": "Perfil da vaga, qualifica\u00e7\u00f5es exigidas, etc",
+ "Open": "Abrir",
+ "Status": "Estado"
+}
\ No newline at end of file
diff --git a/hr/doctype/job_opening/locale/th-doc.json b/hr/doctype/job_opening/locale/th-doc.json
new file mode 100644
index 00000000000..c70f1e408c8
--- /dev/null
+++ b/hr/doctype/job_opening/locale/th-doc.json
@@ -0,0 +1,11 @@
+{
+ "Closed": "\u0e1b\u0e34\u0e14",
+ "Description": "\u0e25\u0e31\u0e01\u0e29\u0e13\u0e30",
+ "Description of a Job Opening": "\u0e04\u0e33\u0e2d\u0e18\u0e34\u0e1a\u0e32\u0e22\u0e02\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e40\u0e1b\u0e34\u0e14\u0e07\u0e32\u0e19",
+ "HR": "\u0e17\u0e23\u0e31\u0e1e\u0e22\u0e32\u0e01\u0e23\u0e1a\u0e38\u0e04\u0e04\u0e25",
+ "Job Opening": "\u0e40\u0e1b\u0e34\u0e14\u0e07\u0e32\u0e19",
+ "Job Title": "\u0e15\u0e33\u0e41\u0e2b\u0e19\u0e48\u0e07\u0e07\u0e32\u0e19",
+ "Job profile, qualifications required etc.": "\u0e07\u0e32\u0e19\u0e04\u0e38\u0e13\u0e2a\u0e21\u0e1a\u0e31\u0e15\u0e34\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e17\u0e35\u0e48\u0e08\u0e33\u0e40\u0e1b\u0e47\u0e19 \u0e2f\u0e25\u0e2f",
+ "Open": "\u0e40\u0e1b\u0e34\u0e14",
+ "Status": "\u0e2a\u0e16\u0e32\u0e19\u0e30"
+}
\ No newline at end of file
diff --git a/hr/doctype/leave_allocation/leave_allocation.py b/hr/doctype/leave_allocation/leave_allocation.py
index 870a040a27c..d2d940f6c91 100755
--- a/hr/doctype/leave_allocation/leave_allocation.py
+++ b/hr/doctype/leave_allocation/leave_allocation.py
@@ -103,8 +103,10 @@ class DocType:
def get_carry_forwarded_leaves(self):
if self.doc.carry_forward:
self.allow_carry_forward()
- prev_fiscal_year = sql("""select name from `tabFiscal Year`
- where name < %s order by name desc limit 1""", self.doc.fiscal_year)
+ prev_fiscal_year = webnotes.conn.sql("""select name from `tabFiscal Year`
+ where year_start_date = (select date_add(year_start_date, interval -1 year)
+ from `tabFiscal Year` where name=%s)
+ order by name desc limit 1""", self.doc.fiscal_year)
prev_fiscal_year = prev_fiscal_year and prev_fiscal_year[0][0] or ''
prev_bal = 0
if prev_fiscal_year and cint(self.doc.carry_forward) == 1:
diff --git a/hr/doctype/leave_allocation/locale/_messages_doc.json b/hr/doctype/leave_allocation/locale/_messages_doc.json
index 5e1c8de1cab..28dd65cd6b7 100644
--- a/hr/doctype/leave_allocation/locale/_messages_doc.json
+++ b/hr/doctype/leave_allocation/locale/_messages_doc.json
@@ -7,10 +7,10 @@
"Leave Type",
"Amended From",
"Total Leaves Allocated",
+ "Employee",
"Fiscal Year",
"Carry Forward",
"Leave Allocation",
- "Employee",
"New Leaves Allocated",
"Employee Name",
"Posting Date"
diff --git a/hr/doctype/leave_allocation/locale/de-doc.json b/hr/doctype/leave_allocation/locale/de-doc.json
new file mode 100644
index 00000000000..db1a8f13682
--- /dev/null
+++ b/hr/doctype/leave_allocation/locale/de-doc.json
@@ -0,0 +1,17 @@
+{
+ "Amended From": "Ge\u00e4ndert von",
+ "Amendment Date": "\u00c4nderung Datum",
+ "Carry Forward": "Vortragen",
+ "Carry Forwarded Leaves": "Carry Weitergeleitete Leaves",
+ "Description": "Beschreibung",
+ "Employee": "Mitarbeiter",
+ "Employee Name": "Name des Mitarbeiters",
+ "Fiscal Year": "Gesch\u00e4ftsjahr",
+ "HR": "HR",
+ "Leave Allocation": "Lassen Allocation",
+ "Leave Type": "Lassen Typ",
+ "New Leaves Allocated": "Neue Bl\u00e4tter Allocated",
+ "Posting Date": "Buchungsdatum",
+ "The date at which current entry is corrected in the system.": "Der Zeitpunkt, zu dem aktuellen Eintrag in dem System korrigiert.",
+ "Total Leaves Allocated": "Insgesamt Leaves Allocated"
+}
\ No newline at end of file
diff --git a/hr/doctype/leave_allocation/locale/pt-BR-doc.json b/hr/doctype/leave_allocation/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..029f6c8de21
--- /dev/null
+++ b/hr/doctype/leave_allocation/locale/pt-BR-doc.json
@@ -0,0 +1,17 @@
+{
+ "Amended From": "Corrigido De",
+ "Amendment Date": "Data da Corre\u00e7\u00e3o",
+ "Carry Forward": "Encaminhar",
+ "Carry Forwarded Leaves": "Encaminhar Licen\u00e7as",
+ "Description": "Descri\u00e7\u00e3o",
+ "Employee": "Funcion\u00e1rio",
+ "Employee Name": "Nome do Funcion\u00e1rio",
+ "Fiscal Year": "Exerc\u00edcio fiscal",
+ "HR": "RH",
+ "Leave Allocation": "Aloca\u00e7\u00e3o de Licen\u00e7as",
+ "Leave Type": "Tipo de Licen\u00e7as",
+ "New Leaves Allocated": "Novas Licen\u00e7as alocadas",
+ "Posting Date": "Data da Postagem",
+ "The date at which current entry is corrected in the system.": "A data em que o lan\u00e7amento atual \u00e9 corrigido no sistema.",
+ "Total Leaves Allocated": "Total de licen\u00e7as alocadas"
+}
\ No newline at end of file
diff --git a/hr/doctype/leave_allocation/locale/th-doc.json b/hr/doctype/leave_allocation/locale/th-doc.json
new file mode 100644
index 00000000000..e6a69611421
--- /dev/null
+++ b/hr/doctype/leave_allocation/locale/th-doc.json
@@ -0,0 +1,17 @@
+{
+ "Amended From": "\u0e41\u0e01\u0e49\u0e44\u0e02\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21",
+ "Amendment Date": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e41\u0e01\u0e49\u0e44\u0e02",
+ "Carry Forward": "Carry Forward",
+ "Carry Forwarded Leaves": "Carry \u0e43\u0e1a Forwarded",
+ "Description": "\u0e25\u0e31\u0e01\u0e29\u0e13\u0e30",
+ "Employee": "\u0e25\u0e39\u0e01\u0e08\u0e49\u0e32\u0e07",
+ "Employee Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e02\u0e2d\u0e07\u0e1e\u0e19\u0e31\u0e01\u0e07\u0e32\u0e19",
+ "Fiscal Year": "\u0e1b\u0e35\u0e07\u0e1a\u0e1b\u0e23\u0e30\u0e21\u0e32\u0e13",
+ "HR": "\u0e17\u0e23\u0e31\u0e1e\u0e22\u0e32\u0e01\u0e23\u0e1a\u0e38\u0e04\u0e04\u0e25",
+ "Leave Allocation": "\u0e1d\u0e32\u0e01\u0e08\u0e31\u0e14\u0e2a\u0e23\u0e23",
+ "Leave Type": "\u0e1d\u0e32\u0e01\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17",
+ "New Leaves Allocated": "\u0e43\u0e2b\u0e21\u0e48\u0e43\u0e1a\u0e08\u0e31\u0e14\u0e2a\u0e23\u0e23",
+ "Posting Date": "\u0e42\u0e1e\u0e2a\u0e15\u0e4c\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48",
+ "The date at which current entry is corrected in the system.": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e17\u0e35\u0e48\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e1b\u0e31\u0e08\u0e08\u0e38\u0e1a\u0e31\u0e19\u0e21\u0e35\u0e01\u0e32\u0e23\u0e41\u0e01\u0e49\u0e44\u0e02\u0e43\u0e19\u0e23\u0e30\u0e1a\u0e1a",
+ "Total Leaves Allocated": "\u0e43\u0e1a\u0e23\u0e27\u0e21\u0e08\u0e31\u0e14\u0e2a\u0e23\u0e23"
+}
\ No newline at end of file
diff --git a/hr/doctype/leave_application/leave_application.py b/hr/doctype/leave_application/leave_application.py
index 07086dcc4de..e8cc446ea5d 100755
--- a/hr/doctype/leave_application/leave_application.py
+++ b/hr/doctype/leave_application/leave_application.py
@@ -22,6 +22,7 @@ from webnotes.utils import cint, cstr, date_diff, flt, formatdate, getdate, get_
from webnotes import msgprint
class LeaveDayBlockedError(Exception): pass
+class OverlapError(Exception): pass
from webnotes.model.controller import DocListController
class DocType(DocListController):
@@ -36,6 +37,7 @@ class DocType(DocListController):
self.validate_balance_leaves()
self.validate_leave_overlap()
self.validate_max_days()
+ self.show_block_day_warning()
self.validate_block_days()
def on_update(self):
@@ -60,6 +62,17 @@ class DocType(DocListController):
# notify leave applier about cancellation
self.notify_employee("cancelled")
+ def show_block_day_warning(self):
+ from hr.doctype.leave_block_list.leave_block_list import get_applicable_block_dates
+
+ block_dates = get_applicable_block_dates(self.doc.from_date, self.doc.to_date,
+ self.doc.employee, self.doc.company, all_lists=True)
+
+ if block_dates:
+ webnotes.msgprint(_("Warning: Leave application contains following block dates") + ":")
+ for d in block_dates:
+ webnotes.msgprint(formatdate(d.block_date) + ": " + d.reason)
+
def validate_block_days(self):
from hr.doctype.leave_block_list.leave_block_list import get_applicable_block_dates
@@ -67,11 +80,8 @@ class DocType(DocListController):
self.doc.employee, self.doc.company)
if block_dates:
- webnotes.msgprint(_("Following dates are blocked for Leave") + ":")
- for d in block_dates:
- webnotes.msgprint(formatdate(d.block_date) + ": " + d.reason)
-
if self.doc.status == "Approved":
+ webnotes.msgprint(_("Cannot approve leave as you are not authorized to approve leaves on Block Dates."))
raise LeaveDayBlockedError
def get_holidays(self):
@@ -120,17 +130,22 @@ class DocType(DocListController):
(self.doc.leave_type,), raise_exception=1)
def validate_leave_overlap(self):
+ if not self.doc.name:
+ self.doc.name = "New Leave Application"
+
for d in webnotes.conn.sql("""select name, leave_type, posting_date,
from_date, to_date
from `tabLeave Application`
where
- (from_date <= %(to_date)s and to_date >= %(from_date)s)
- and employee = %(employee)s
+ employee = %(employee)s
and docstatus < 2
and status in ("Open", "Approved")
+ and (from_date between %(from_date)s and %(to_date)s
+ or to_date between %(from_date)s and %(to_date)s
+ or %(from_date)s between from_date and to_date)
and name != %(name)s""", self.doc.fields, as_dict = 1):
- msgprint("Employee : %s has already applied for %s between %s and %s on %s. Please refer Leave Application : %s" % (self.doc.employee, cstr(d['leave_type']), formatdate(d['from_date']), formatdate(d['to_date']), formatdate(d['posting_date']), d['name'], d['name']), raise_exception = 1)
+ msgprint("Employee : %s has already applied for %s between %s and %s on %s. Please refer Leave Application : %s" % (self.doc.employee, cstr(d['leave_type']), formatdate(d['from_date']), formatdate(d['to_date']), formatdate(d['posting_date']), d['name'], d['name']), raise_exception = OverlapError)
def validate_max_days(self):
max_days = webnotes.conn.sql("select max_days_allowed from `tabLeave Type` where name = '%s'" %(self.doc.leave_type))
@@ -156,7 +171,6 @@ class DocType(DocListController):
# for post in messages
"message": _get_message(url=True),
"message_to": employee.user_id,
-
"subject": _get_message(),
})
@@ -199,7 +213,7 @@ def get_leave_balance(employee, leave_type, fiscal_year):
leave_app = webnotes.conn.sql("""select SUM(total_leave_days)
from `tabLeave Application`
where employee = %s and leave_type = %s and fiscal_year = %s
- and docstatus = 1""", (employee, leave_type, fiscal_year))
+ and status="Approved" and docstatus = 1""", (employee, leave_type, fiscal_year))
leave_app = leave_app and flt(leave_app[0][0]) or 0
ret = {'leave_balance': leave_all - leave_app}
@@ -225,17 +239,14 @@ def get_events(start, end):
company = webnotes.conn.get_default("company", webnotes.session.user)
from webnotes.widgets.reportview import build_match_conditions
- match_conditions = build_match_conditions({"doctype": "Leave Application"})
+ match_conditions = build_match_conditions("Leave Application")
# show department leaves for employee
- show_department_leaves = match_conditions and \
- len(match_conditions.split("or"))==1 and "employee" in match_conditions
-
- if show_department_leaves:
+ if "Employee" in webnotes.get_roles():
add_department_leaves(events, start, end, employee, company)
- else:
- add_leaves(events, start, end, employee, company, match_conditions)
-
+
+ add_leaves(events, start, end, employee, company, match_conditions)
+
add_block_dates(events, start, end, employee, company)
add_holidays(events, start, end, employee, company)
@@ -265,7 +276,7 @@ def add_leaves(events, start, end, employee, company, match_conditions=None):
query += " and " + match_conditions
for d in webnotes.conn.sql(query, (start, end, start, end), as_dict=True):
- events.append({
+ e = {
"name": d.name,
"doctype": "Leave Application",
"from_date": d.from_date,
@@ -274,7 +285,9 @@ def add_leaves(events, start, end, employee, company, match_conditions=None):
"title": _("Leave by") + " " + cstr(d.employee_name) + \
(d.half_day and _(" (Half Day)") or ""),
"docstatus": d.docstatus
- })
+ }
+ if e not in events:
+ events.append(e)
def add_block_dates(events, start, end, employee, company):
# block days
diff --git a/hr/doctype/leave_application/leave_application_calendar.js b/hr/doctype/leave_application/leave_application_calendar.js
index eebd5590a5c..398664e5300 100644
--- a/hr/doctype/leave_application/leave_application_calendar.js
+++ b/hr/doctype/leave_application/leave_application_calendar.js
@@ -6,5 +6,12 @@ wn.views.calendar["Leave Application"] = wn.views.Calendar.extend({
"title": "title",
"status": "status",
},
+ options: {
+ header: {
+ left: 'prev,next today',
+ center: 'title',
+ right: 'month'
+ }
+ },
get_events_method: "hr.doctype.leave_application.leave_application.get_events"
})
\ No newline at end of file
diff --git a/hr/doctype/leave_application/locale/_messages_py.json b/hr/doctype/leave_application/locale/_messages_py.json
index 9d2a3b7e808..b07f4996db8 100644
--- a/hr/doctype/leave_application/locale/_messages_py.json
+++ b/hr/doctype/leave_application/locale/_messages_py.json
@@ -1,11 +1,12 @@
[
"New Leave Application",
- "Following dates are blocked for Leave",
- "Hurray! The day(s) on which you are applying for leave \\\t\t\t\t\tcoincide with holiday(s). You need not apply for leave.",
+ "Hurray! The day(s) on which you are applying for leave \\\n\t\t\t\t\tcoincide with holiday(s). You need not apply for leave.",
"Leave by",
+ "Cannot approve leave as you are not authorized to approve leaves on Block Dates.",
"Employee",
"Leave Blocked",
"Holiday",
+ "Warning: Leave application contains following block dates",
" (Half Day)",
"Leave Application"
]
\ No newline at end of file
diff --git a/hr/doctype/leave_application/locale/de-doc.json b/hr/doctype/leave_application/locale/de-doc.json
new file mode 100644
index 00000000000..f7e321a9a36
--- /dev/null
+++ b/hr/doctype/leave_application/locale/de-doc.json
@@ -0,0 +1,27 @@
+{
+ "Amended From": "Ge\u00e4ndert von",
+ "Apply / Approve Leaves": "\u00dcbernehmen / Genehmigen Leaves",
+ "Approved": "Genehmigt",
+ "Company": "Firma",
+ "Employee": "Mitarbeiter",
+ "Employee Name": "Name des Mitarbeiters",
+ "File List": "Dateiliste",
+ "Fiscal Year": "Gesch\u00e4ftsjahr",
+ "From Date": "Von Datum",
+ "HR": "HR",
+ "Half Day": "Half Day",
+ "Leave Application": "Lassen Anwendung",
+ "Leave Approver": "Lassen Approver",
+ "Leave Balance Before Application": "Lassen Vor Saldo Anwendung",
+ "Leave Type": "Lassen Typ",
+ "Leave can be approved by users with Role, \"Leave Approver\"": "Kann von Benutzern mit Role zugelassen zu verlassen, \"Leave Approver\"",
+ "Letter Head": "Briefkopf",
+ "More Info": "Mehr Info",
+ "Open": "\u00d6ffnen",
+ "Posting Date": "Buchungsdatum",
+ "Reason": "Grund",
+ "Rejected": "Abgelehnt",
+ "Status": "Status",
+ "To Date": "To Date",
+ "Total Leave Days": "Insgesamt Leave Tage"
+}
\ No newline at end of file
diff --git a/hr/doctype/leave_application/locale/de-py.json b/hr/doctype/leave_application/locale/de-py.json
new file mode 100644
index 00000000000..6eb61b3ef76
--- /dev/null
+++ b/hr/doctype/leave_application/locale/de-py.json
@@ -0,0 +1,8 @@
+{
+ "Employee": "Mitarbeiter",
+ "Holiday": "Urlaub",
+ "Leave Application": "Lassen Anwendung",
+ "Leave Blocked": "Lassen Blockierte",
+ "Leave by": "Lassen Sie von",
+ "New Leave Application": "New Leave Anwendung"
+}
\ No newline at end of file
diff --git a/hr/doctype/leave_application/locale/pt-BR-doc.json b/hr/doctype/leave_application/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..ca6cd4cb4d0
--- /dev/null
+++ b/hr/doctype/leave_application/locale/pt-BR-doc.json
@@ -0,0 +1,28 @@
+{
+ "Amended From": "Corrigido De",
+ "Apply / Approve Leaves": "Aplicar / Aprovar Licen\u00e7as",
+ "Approved": "Aprovado",
+ "Company": "Empresa",
+ "Employee": "Funcion\u00e1rio",
+ "Employee Name": "Nome do Funcion\u00e1rio",
+ "File List": "Lista de Arquivos",
+ "Fiscal Year": "Exerc\u00edcio fiscal",
+ "Follow via Email": "Siga por e-mail",
+ "From Date": "A partir da data",
+ "HR": "RH",
+ "Half Day": "Meio Dia",
+ "Leave Application": "Solicita\u00e7\u00e3o de Licen\u00e7as",
+ "Leave Approver": "Aprovador de Licen\u00e7as",
+ "Leave Balance Before Application": "Saldo de Licen\u00e7as antes da solicita\u00e7\u00e3o",
+ "Leave Type": "Tipo de Licen\u00e7as",
+ "Leave can be approved by users with Role, \"Leave Approver\"": "A licen\u00e7a pode ser aprovado por usu\u00e1rios com fun\u00e7\u00e3o de "Aprovador de Licen\u00e7as"",
+ "Letter Head": "Timbrado",
+ "More Info": "Mais informa\u00e7\u00f5es",
+ "Open": "Abrir",
+ "Posting Date": "Data da Postagem",
+ "Reason": "Motivo",
+ "Rejected": "Rejeitado",
+ "Status": "Estado",
+ "To Date": "At\u00e9 a Data",
+ "Total Leave Days": "Total de dias de licen\u00e7a"
+}
\ No newline at end of file
diff --git a/hr/doctype/leave_application/locale/pt-BR-py.json b/hr/doctype/leave_application/locale/pt-BR-py.json
new file mode 100644
index 00000000000..3eac51810e0
--- /dev/null
+++ b/hr/doctype/leave_application/locale/pt-BR-py.json
@@ -0,0 +1,11 @@
+{
+ " (Half Day)": "(Meio Dia)",
+ "Cannot approve leave as you are not authorized to approve leaves on Block Dates.": "N\u00e3o pode aprovar deixar que voc\u00ea n\u00e3o est\u00e1 autorizado a aprovar folhas em datas Block.",
+ "Employee": "Funcion\u00e1rio",
+ "Holiday": "Feriado",
+ "Leave Application": "Solicita\u00e7\u00e3o de Licen\u00e7as",
+ "Leave Blocked": "Deixe Bloqueados",
+ "Leave by": "Deixe por",
+ "New Leave Application": "Aplica\u00e7\u00e3o deixar Nova",
+ "Warning: Leave application contains following block dates": "Aviso: pedido de f\u00e9rias cont\u00e9m as datas de blocos seguintes"
+}
\ No newline at end of file
diff --git a/hr/doctype/leave_application/locale/th-doc.json b/hr/doctype/leave_application/locale/th-doc.json
new file mode 100644
index 00000000000..0298ed249fd
--- /dev/null
+++ b/hr/doctype/leave_application/locale/th-doc.json
@@ -0,0 +1,28 @@
+{
+ "Amended From": "\u0e41\u0e01\u0e49\u0e44\u0e02\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21",
+ "Apply / Approve Leaves": "\u0e43\u0e0a\u0e49 / \u0e2d\u0e19\u0e38\u0e21\u0e31\u0e15\u0e34\u0e43\u0e1a",
+ "Approved": "\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e2d\u0e19\u0e38\u0e21\u0e31\u0e15\u0e34",
+ "Company": "\u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17",
+ "Employee": "\u0e25\u0e39\u0e01\u0e08\u0e49\u0e32\u0e07",
+ "Employee Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e02\u0e2d\u0e07\u0e1e\u0e19\u0e31\u0e01\u0e07\u0e32\u0e19",
+ "File List": "\u0e23\u0e32\u0e22\u0e0a\u0e37\u0e48\u0e2d\u0e44\u0e1f\u0e25\u0e4c",
+ "Fiscal Year": "\u0e1b\u0e35\u0e07\u0e1a\u0e1b\u0e23\u0e30\u0e21\u0e32\u0e13",
+ "Follow via Email": "\u0e1c\u0e48\u0e32\u0e19\u0e17\u0e32\u0e07\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e4c\u0e15\u0e32\u0e21",
+ "From Date": "\u0e08\u0e32\u0e01\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48",
+ "HR": "\u0e17\u0e23\u0e31\u0e1e\u0e22\u0e32\u0e01\u0e23\u0e1a\u0e38\u0e04\u0e04\u0e25",
+ "Half Day": "\u0e04\u0e23\u0e36\u0e48\u0e07\u0e27\u0e31\u0e19",
+ "Leave Application": "\u0e1d\u0e32\u0e01\u0e41\u0e2d\u0e1e\u0e25\u0e34\u0e40\u0e04\u0e0a\u0e31\u0e19",
+ "Leave Approver": "\u0e1d\u0e32\u0e01\u0e2d\u0e19\u0e38\u0e21\u0e31\u0e15\u0e34",
+ "Leave Balance Before Application": "\u0e1d\u0e32\u0e01\u0e04\u0e07\u0e40\u0e2b\u0e25\u0e37\u0e2d\u0e01\u0e48\u0e2d\u0e19\u0e17\u0e35\u0e48\u0e42\u0e1b\u0e23\u0e41\u0e01\u0e23\u0e21\u0e1b\u0e23\u0e30\u0e22\u0e38\u0e01\u0e15\u0e4c",
+ "Leave Type": "\u0e1d\u0e32\u0e01\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17",
+ "Leave can be approved by users with Role, \"Leave Approver\"": "\u0e1d\u0e32\u0e01\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e2d\u0e19\u0e38\u0e21\u0e31\u0e15\u0e34\u0e42\u0e14\u0e22\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e17\u0e35\u0e48\u0e21\u0e35\u0e1a\u0e17\u0e1a\u0e32\u0e17 "\u0e1d\u0e32\u0e01\u0e2d\u0e19\u0e38\u0e21\u0e31\u0e15\u0e34"",
+ "Letter Head": "\u0e2b\u0e31\u0e27\u0e08\u0e14\u0e2b\u0e21\u0e32\u0e22",
+ "More Info": "\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21",
+ "Open": "\u0e40\u0e1b\u0e34\u0e14",
+ "Posting Date": "\u0e42\u0e1e\u0e2a\u0e15\u0e4c\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48",
+ "Reason": "\u0e40\u0e2b\u0e15\u0e38\u0e1c\u0e25",
+ "Rejected": "\u0e1b\u0e0f\u0e34\u0e40\u0e2a\u0e18",
+ "Status": "\u0e2a\u0e16\u0e32\u0e19\u0e30",
+ "To Date": "\u0e19\u0e31\u0e14",
+ "Total Leave Days": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e40\u0e14\u0e34\u0e19\u0e17\u0e32\u0e07\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14"
+}
\ No newline at end of file
diff --git a/hr/doctype/leave_application/locale/th-py.json b/hr/doctype/leave_application/locale/th-py.json
new file mode 100644
index 00000000000..147f5182576
--- /dev/null
+++ b/hr/doctype/leave_application/locale/th-py.json
@@ -0,0 +1,11 @@
+{
+ " (Half Day)": "(\u0e04\u0e23\u0e36\u0e48\u0e07\u0e27\u0e31\u0e19)",
+ "Employee": "\u0e25\u0e39\u0e01\u0e08\u0e49\u0e32\u0e07",
+ "Following dates are blocked for Leave": "\u0e27\u0e31\u0e19\u0e15\u0e48\u0e2d\u0e44\u0e1b\u0e19\u0e35\u0e49\u0e08\u0e30\u0e16\u0e39\u0e01\u0e1a\u0e25\u0e47\u0e2d\u0e01\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e2d\u0e2d\u0e01",
+ "Holiday": "\u0e27\u0e31\u0e19\u0e2b\u0e22\u0e38\u0e14",
+ "Hurray! The day(s) on which you are applying for leave \\\t\t\t\t\tcoincide with holiday(s). You need not apply for leave.": "! Hurray \u0e27\u0e31\u0e19\u0e17\u0e35\u0e48 (s) \u0e17\u0e35\u0e48\u0e04\u0e38\u0e13\u0e01\u0e33\u0e25\u0e31\u0e07\u0e43\u0e0a\u0e49\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e2d\u0e2d\u0e01 \\ \u0e15\u0e23\u0e07\u0e01\u0e31\u0e1a\u0e27\u0e31\u0e19\u0e2b\u0e22\u0e38\u0e14 (s) \u0e04\u0e38\u0e13\u0e44\u0e21\u0e48\u0e08\u0e33\u0e40\u0e1b\u0e47\u0e19\u0e15\u0e49\u0e2d\u0e07\u0e43\u0e0a\u0e49\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e2d\u0e2d\u0e01",
+ "Leave Application": "\u0e1d\u0e32\u0e01\u0e41\u0e2d\u0e1e\u0e25\u0e34\u0e40\u0e04\u0e0a\u0e31\u0e19",
+ "Leave Blocked": "\u0e1d\u0e32\u0e01\u0e17\u0e35\u0e48\u0e16\u0e39\u0e01\u0e1a\u0e25\u0e47\u0e2d\u0e01",
+ "Leave by": "\u0e1d\u0e32\u0e01\u0e15\u0e32\u0e21",
+ "New Leave Application": "\u0e41\u0e2d\u0e1e\u0e25\u0e34\u0e40\u0e04\u0e0a\u0e31\u0e19\u0e2d\u0e2d\u0e01\u0e43\u0e2b\u0e21\u0e48"
+}
\ No newline at end of file
diff --git a/hr/doctype/leave_application/test_leave_application.py b/hr/doctype/leave_application/test_leave_application.py
index dc1b463e97b..bc4a38c669e 100644
--- a/hr/doctype/leave_application/test_leave_application.py
+++ b/hr/doctype/leave_application/test_leave_application.py
@@ -1,7 +1,7 @@
import webnotes
import unittest
-from hr.doctype.leave_application.leave_application import LeaveDayBlockedError
+from hr.doctype.leave_application.leave_application import LeaveDayBlockedError, OverlapError
class TestLeaveApplication(unittest.TestCase):
def get_application(self, doclist):
@@ -23,13 +23,22 @@ class TestLeaveApplication(unittest.TestCase):
from webnotes.profile import add_role
add_role("test1@example.com", "HR User")
+
+ # clear other applications
+ webnotes.conn.sql("delete from `tabLeave Application`")
application = self.get_application(test_records[1])
self.assertTrue(application.insert())
+
+ def test_overlap(self):
+ application = self.get_application(test_records[1])
+ self.assertRaises(OverlapError, application.insert)
def test_global_block_list(self):
+
application = self.get_application(test_records[3])
application.doc.leave_approver = "test@example.com"
+
webnotes.conn.set_value("Leave Block List", "_Test Leave Block List",
"applies_to_all_departments", 1)
webnotes.conn.set_value("Employee", "_T-Employee-0002", "department",
diff --git a/hr/doctype/leave_block_list/locale/_messages_doc.json b/hr/doctype/leave_block_list/locale/_messages_doc.json
index 47b1fa522b8..b8b9977eaa8 100644
--- a/hr/doctype/leave_block_list/locale/_messages_doc.json
+++ b/hr/doctype/leave_block_list/locale/_messages_doc.json
@@ -6,10 +6,10 @@
"Allow the following users to approve Leave Applications for block days.",
"Company",
"Leave Block List",
+ "If not checked, the list will have to be added to each Department where it has to be applied.",
"Stop users from making Leave Applications on following days.",
"Applies to Company",
"Year",
- "If not checked, the list will have to be added to each Department where it has to be applied.",
"Leave Block List Name",
"Leave Block List Allowed",
"Leave Block List Dates"
diff --git a/hr/doctype/leave_block_list/locale/de-doc.json b/hr/doctype/leave_block_list/locale/de-doc.json
new file mode 100644
index 00000000000..a86d8e1db17
--- /dev/null
+++ b/hr/doctype/leave_block_list/locale/de-doc.json
@@ -0,0 +1,15 @@
+{
+ "Allow Users": "Erm\u00f6glichen",
+ "Applies to Company": "Gilt f\u00fcr Unternehmen",
+ "Block Days": "Block Tage",
+ "Block Holidays on important days.": "Blockieren Urlaub auf wichtige Tage.",
+ "Company": "Firma",
+ "HR": "HR",
+ "If not checked, the list will have to be added to each Department where it has to be applied.": "Falls nicht, wird die Liste m\u00fcssen auf jeden Abteilung, wo sie angewendet werden hinzugef\u00fcgt werden.",
+ "Leave Block List": "Lassen Block List",
+ "Leave Block List Allowed": "Lassen Sie erlaubt Block List",
+ "Leave Block List Dates": "Lassen Block List Termine",
+ "Leave Block List Name": "Lassen Blockieren Name",
+ "Stop users from making Leave Applications on following days.": "Stoppen Sie den Nutzer von Leave Anwendungen auf folgenden Tagen.",
+ "Year": "Jahr"
+}
\ No newline at end of file
diff --git a/hr/doctype/leave_block_list/locale/de-py.json b/hr/doctype/leave_block_list/locale/de-py.json
new file mode 100644
index 00000000000..86ad129773e
--- /dev/null
+++ b/hr/doctype/leave_block_list/locale/de-py.json
@@ -0,0 +1,4 @@
+{
+ "Block Date": "Blockieren Datum",
+ "Date is repeated": "Datum wird wiederholt"
+}
\ No newline at end of file
diff --git a/hr/doctype/leave_block_list/locale/pt-BR-doc.json b/hr/doctype/leave_block_list/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..faf57f94c0c
--- /dev/null
+++ b/hr/doctype/leave_block_list/locale/pt-BR-doc.json
@@ -0,0 +1,16 @@
+{
+ "Allow Users": "Permitir que os usu\u00e1rios",
+ "Allow the following users to approve Leave Applications for block days.": "Permitir que os usu\u00e1rios a seguir para aprovar aplica\u00e7\u00f5es deixam para os dias de bloco.",
+ "Applies to Company": "Aplica-se a Empresa",
+ "Block Days": "Dias bloco",
+ "Block Holidays on important days.": "Bloquear feriados em dias importantes.",
+ "Company": "Empresa",
+ "HR": "RH",
+ "If not checked, the list will have to be added to each Department where it has to be applied.": "Se n\u00e3o for controlada, a lista dever\u00e1 ser adicionado a cada departamento onde tem de ser aplicado.",
+ "Leave Block List": "Deixe Lista de Bloqueios",
+ "Leave Block List Allowed": "Deixe Lista de Bloqueios admitidos",
+ "Leave Block List Dates": "Deixe as datas Lista de Bloqueios",
+ "Leave Block List Name": "Deixe o nome Lista de Bloqueios",
+ "Stop users from making Leave Applications on following days.": "Pare de usu\u00e1rios de fazer aplica\u00e7\u00f5es deixam nos dias seguintes.",
+ "Year": "Ano"
+}
\ No newline at end of file
diff --git a/hr/doctype/leave_block_list/locale/pt-BR-py.json b/hr/doctype/leave_block_list/locale/pt-BR-py.json
new file mode 100644
index 00000000000..d2b6e696c3e
--- /dev/null
+++ b/hr/doctype/leave_block_list/locale/pt-BR-py.json
@@ -0,0 +1,4 @@
+{
+ "Block Date": "Bloquear Data",
+ "Date is repeated": "Data \u00e9 repetido"
+}
\ No newline at end of file
diff --git a/hr/doctype/leave_block_list/locale/th-doc.json b/hr/doctype/leave_block_list/locale/th-doc.json
new file mode 100644
index 00000000000..29bf5de07ed
--- /dev/null
+++ b/hr/doctype/leave_block_list/locale/th-doc.json
@@ -0,0 +1,16 @@
+{
+ "Allow Users": "\u0e2d\u0e19\u0e38\u0e0d\u0e32\u0e15\u0e43\u0e2b\u0e49\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19",
+ "Allow the following users to approve Leave Applications for block days.": "\u0e2d\u0e19\u0e38\u0e0d\u0e32\u0e15\u0e43\u0e2b\u0e49\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e15\u0e48\u0e2d\u0e44\u0e1b\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e02\u0e2d\u0e2d\u0e19\u0e38\u0e21\u0e31\u0e15\u0e34\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e2d\u0e2d\u0e01\u0e27\u0e31\u0e19\u0e1a\u0e25\u0e47\u0e2d\u0e01",
+ "Applies to Company": "\u0e19\u0e33\u0e44\u0e1b\u0e43\u0e0a\u0e49\u0e01\u0e31\u0e1a \u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17",
+ "Block Days": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e16\u0e39\u0e01\u0e1a\u0e25\u0e47\u0e2d\u0e01",
+ "Block Holidays on important days.": "\u0e1b\u0e34\u0e14\u0e01\u0e31\u0e49\u0e19\u0e2b\u0e22\u0e38\u0e14\u0e43\u0e19\u0e27\u0e31\u0e19\u0e2a\u0e33\u0e04\u0e31\u0e0d",
+ "Company": "\u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17",
+ "HR": "\u0e17\u0e23\u0e31\u0e1e\u0e22\u0e32\u0e01\u0e23\u0e1a\u0e38\u0e04\u0e04\u0e25",
+ "If not checked, the list will have to be added to each Department where it has to be applied.": "\u0e16\u0e49\u0e32\u0e44\u0e21\u0e48\u0e44\u0e14\u0e49\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a\u0e23\u0e32\u0e22\u0e0a\u0e37\u0e48\u0e2d\u0e08\u0e30\u0e15\u0e49\u0e2d\u0e07\u0e21\u0e35\u0e01\u0e32\u0e23\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e41\u0e15\u0e48\u0e25\u0e30\u0e41\u0e1c\u0e19\u0e01\u0e17\u0e35\u0e48\u0e21\u0e31\u0e19\u0e08\u0e30\u0e15\u0e49\u0e2d\u0e07\u0e21\u0e35\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49",
+ "Leave Block List": "\u0e1d\u0e32\u0e01\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e1a\u0e25\u0e47\u0e2d\u0e01",
+ "Leave Block List Allowed": "\u0e1d\u0e32\u0e01\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e1a\u0e25\u0e47\u0e2d\u0e01\u0e2d\u0e19\u0e38\u0e0d\u0e32\u0e15\u0e43\u0e2b\u0e49\u0e19\u0e33",
+ "Leave Block List Dates": "\u0e44\u0e21\u0e48\u0e23\u0e30\u0e1a\u0e38\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e1a\u0e25\u0e47\u0e2d\u0e01",
+ "Leave Block List Name": "\u0e1d\u0e32\u0e01\u0e0a\u0e37\u0e48\u0e2d\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e17\u0e35\u0e48\u0e16\u0e39\u0e01\u0e1a\u0e25\u0e47\u0e2d\u0e01",
+ "Stop users from making Leave Applications on following days.": "\u0e2b\u0e22\u0e38\u0e14\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e08\u0e32\u0e01\u0e01\u0e32\u0e23\u0e17\u0e33\u0e41\u0e2d\u0e1e\u0e1e\u0e25\u0e34\u0e40\u0e04\u0e17\u0e35\u0e48\u0e40\u0e14\u0e34\u0e19\u0e17\u0e32\u0e07\u0e43\u0e19\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e14\u0e31\u0e07\u0e15\u0e48\u0e2d\u0e44\u0e1b\u0e19\u0e35\u0e49",
+ "Year": "\u0e1b\u0e35"
+}
\ No newline at end of file
diff --git a/hr/doctype/leave_block_list/locale/th-py.json b/hr/doctype/leave_block_list/locale/th-py.json
new file mode 100644
index 00000000000..b9248f571ac
--- /dev/null
+++ b/hr/doctype/leave_block_list/locale/th-py.json
@@ -0,0 +1,4 @@
+{
+ "Block Date": "\u0e1a\u0e25\u0e47\u0e2d\u0e01\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48",
+ "Date is repeated": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e0b\u0e49\u0e33\u0e41\u0e25\u0e49\u0e27\u0e0b\u0e49\u0e33\u0e2d\u0e35\u0e01"
+}
\ No newline at end of file
diff --git a/hr/doctype/leave_block_list_allow/locale/de-doc.json b/hr/doctype/leave_block_list_allow/locale/de-doc.json
new file mode 100644
index 00000000000..600880b60f6
--- /dev/null
+++ b/hr/doctype/leave_block_list_allow/locale/de-doc.json
@@ -0,0 +1,5 @@
+{
+ "Allow User": "Benutzer zulassen",
+ "HR": "HR",
+ "Leave Block List Allow": "Lassen Lassen Block List"
+}
\ No newline at end of file
diff --git a/hr/doctype/leave_block_list_allow/locale/pt-BR-doc.json b/hr/doctype/leave_block_list_allow/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..1b58e79b289
--- /dev/null
+++ b/hr/doctype/leave_block_list_allow/locale/pt-BR-doc.json
@@ -0,0 +1,5 @@
+{
+ "Allow User": "Permitir que o usu\u00e1rio",
+ "HR": "RH",
+ "Leave Block List Allow": "Deixe Lista de Bloqueios Permitir"
+}
\ No newline at end of file
diff --git a/hr/doctype/leave_block_list_allow/locale/th-doc.json b/hr/doctype/leave_block_list_allow/locale/th-doc.json
new file mode 100644
index 00000000000..c58858712a0
--- /dev/null
+++ b/hr/doctype/leave_block_list_allow/locale/th-doc.json
@@ -0,0 +1,5 @@
+{
+ "Allow User": "\u0e2d\u0e19\u0e38\u0e0d\u0e32\u0e15\u0e43\u0e2b\u0e49\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49",
+ "HR": "\u0e17\u0e23\u0e31\u0e1e\u0e22\u0e32\u0e01\u0e23\u0e1a\u0e38\u0e04\u0e04\u0e25",
+ "Leave Block List Allow": "\u0e1d\u0e32\u0e01\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e1a\u0e25\u0e47\u0e2d\u0e01\u0e2d\u0e19\u0e38\u0e0d\u0e32\u0e15\u0e43\u0e2b\u0e49"
+}
\ No newline at end of file
diff --git a/hr/doctype/leave_block_list_date/locale/de-doc.json b/hr/doctype/leave_block_list_date/locale/de-doc.json
new file mode 100644
index 00000000000..c3f7c588cc3
--- /dev/null
+++ b/hr/doctype/leave_block_list_date/locale/de-doc.json
@@ -0,0 +1,6 @@
+{
+ "Block Date": "Blockieren Datum",
+ "HR": "HR",
+ "Leave Block List Date": "Lassen Block List Datum",
+ "Reason": "Grund"
+}
\ No newline at end of file
diff --git a/hr/doctype/leave_block_list_date/locale/pt-BR-doc.json b/hr/doctype/leave_block_list_date/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..05810a49f6b
--- /dev/null
+++ b/hr/doctype/leave_block_list_date/locale/pt-BR-doc.json
@@ -0,0 +1,6 @@
+{
+ "Block Date": "Bloquear Data",
+ "HR": "RH",
+ "Leave Block List Date": "Deixe Data Lista de Bloqueios",
+ "Reason": "Motivo"
+}
\ No newline at end of file
diff --git a/hr/doctype/leave_block_list_date/locale/th-doc.json b/hr/doctype/leave_block_list_date/locale/th-doc.json
new file mode 100644
index 00000000000..72a39fe0d1f
--- /dev/null
+++ b/hr/doctype/leave_block_list_date/locale/th-doc.json
@@ -0,0 +1,6 @@
+{
+ "Block Date": "\u0e1a\u0e25\u0e47\u0e2d\u0e01\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48",
+ "HR": "\u0e17\u0e23\u0e31\u0e1e\u0e22\u0e32\u0e01\u0e23\u0e1a\u0e38\u0e04\u0e04\u0e25",
+ "Leave Block List Date": "\u0e1d\u0e32\u0e01\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e1a\u0e25\u0e47\u0e2d\u0e01",
+ "Reason": "\u0e40\u0e2b\u0e15\u0e38\u0e1c\u0e25"
+}
\ No newline at end of file
diff --git a/hr/doctype/leave_control_panel/locale/_messages_doc.json b/hr/doctype/leave_control_panel/locale/_messages_doc.json
index 9e06b36dc3d..92d04e5014d 100644
--- a/hr/doctype/leave_control_panel/locale/_messages_doc.json
+++ b/hr/doctype/leave_control_panel/locale/_messages_doc.json
@@ -6,15 +6,15 @@
"Designation",
"HR",
"Leave blank if considered for all designations",
- "Leave Type",
- "Leave blank if considered for all grades",
- "New Leaves Allocated (In Days)",
"Grade",
+ "Leave blank if considered for all grades",
+ "Leave Type",
+ "New Leaves Allocated (In Days)",
+ "Department",
"Fiscal Year",
"Carry Forward",
"Allocate",
"Branch",
- "Department",
"Leave blank if considered for all employee types",
"Please select Carry Forward if you also want to include previous fiscal year's balance leaves to this fiscal year"
]
\ No newline at end of file
diff --git a/hr/doctype/leave_control_panel/locale/de-doc.json b/hr/doctype/leave_control_panel/locale/de-doc.json
new file mode 100644
index 00000000000..d2f984cae71
--- /dev/null
+++ b/hr/doctype/leave_control_panel/locale/de-doc.json
@@ -0,0 +1,20 @@
+{
+ "Allocate": "Zuweisen",
+ "Branch": "Zweig",
+ "Carry Forward": "Vortragen",
+ "Department": "Abteilung",
+ "Designation": "Bezeichnung",
+ "Employee Type": "Arbeitnehmertyp",
+ "Fiscal Year": "Gesch\u00e4ftsjahr",
+ "Grade": "Klasse",
+ "HR": "HR",
+ "Leave Control Panel": "Lassen Sie Control Panel",
+ "Leave Type": "Lassen Typ",
+ "Leave blank if considered for all branches": "Freilassen, wenn f\u00fcr alle Branchen betrachtet",
+ "Leave blank if considered for all departments": "Freilassen, wenn f\u00fcr alle Abteilungen betrachtet",
+ "Leave blank if considered for all designations": "Freilassen, wenn f\u00fcr alle Bezeichnungen betrachtet",
+ "Leave blank if considered for all employee types": "Freilassen, wenn f\u00fcr alle Mitarbeiter Typen betrachtet",
+ "Leave blank if considered for all grades": "Freilassen, wenn f\u00fcr alle Typen gilt als",
+ "New Leaves Allocated (In Days)": "New Leaves Allocated (in Tagen)",
+ "Please select Carry Forward if you also want to include previous fiscal year's balance leaves to this fiscal year": "Bitte w\u00e4hlen Sie Carry Forward Auch wenn Sie zum vorherigen Gesch\u00e4ftsjahr die Bl\u00e4tter aufnehmen m\u00f6chten zum Ausgleich in diesem Gesch\u00e4ftsjahr"
+}
\ No newline at end of file
diff --git a/hr/doctype/leave_control_panel/locale/pt-BR-doc.json b/hr/doctype/leave_control_panel/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..3af594b0b6a
--- /dev/null
+++ b/hr/doctype/leave_control_panel/locale/pt-BR-doc.json
@@ -0,0 +1,20 @@
+{
+ "Allocate": "Alocar",
+ "Branch": "Ramo",
+ "Carry Forward": "Encaminhar",
+ "Department": "Departamento",
+ "Designation": "Designa\u00e7\u00e3o",
+ "Employee Type": "Tipo de empregado",
+ "Fiscal Year": "Exerc\u00edcio fiscal",
+ "Grade": "Grau",
+ "HR": "RH",
+ "Leave Control Panel": "Painel de Controle de Licen\u00e7as",
+ "Leave Type": "Tipo de Licen\u00e7as",
+ "Leave blank if considered for all branches": "Deixe em branco se considerado para todos os ramos",
+ "Leave blank if considered for all departments": "Deixe em branco se considerado para todos os departamentos",
+ "Leave blank if considered for all designations": "Deixe em branco se considerado para todas as designa\u00e7\u00f5es",
+ "Leave blank if considered for all employee types": "Deixe em branco se considerado para todos os tipos de empregados",
+ "Leave blank if considered for all grades": "Deixe em branco se considerado para todos os graus",
+ "New Leaves Allocated (In Days)": "Novas Licen\u00e7as alocadas (em dias)",
+ "Please select Carry Forward if you also want to include previous fiscal year's balance leaves to this fiscal year": "Por favor selecione Encaminhar se voc\u00ea tamb\u00e9m quer incluir o saldo de licen\u00e7as do ano fiscal anterior neste ano fiscal"
+}
\ No newline at end of file
diff --git a/hr/doctype/leave_control_panel/locale/th-doc.json b/hr/doctype/leave_control_panel/locale/th-doc.json
new file mode 100644
index 00000000000..d20d60fec3d
--- /dev/null
+++ b/hr/doctype/leave_control_panel/locale/th-doc.json
@@ -0,0 +1,20 @@
+{
+ "Allocate": "\u0e08\u0e31\u0e14\u0e2a\u0e23\u0e23",
+ "Branch": "\u0e2a\u0e32\u0e02\u0e32",
+ "Carry Forward": "Carry Forward",
+ "Department": "\u0e41\u0e1c\u0e19\u0e01",
+ "Designation": "\u0e01\u0e32\u0e23\u0e41\u0e15\u0e48\u0e07\u0e15\u0e31\u0e49\u0e07",
+ "Employee Type": "\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e1e\u0e19\u0e31\u0e01\u0e07\u0e32\u0e19",
+ "Fiscal Year": "\u0e1b\u0e35\u0e07\u0e1a\u0e1b\u0e23\u0e30\u0e21\u0e32\u0e13",
+ "Grade": "\u0e40\u0e01\u0e23\u0e14",
+ "HR": "\u0e17\u0e23\u0e31\u0e1e\u0e22\u0e32\u0e01\u0e23\u0e1a\u0e38\u0e04\u0e04\u0e25",
+ "Leave Control Panel": "\u0e1d\u0e32\u0e01\u0e41\u0e1c\u0e07\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21",
+ "Leave Type": "\u0e1d\u0e32\u0e01\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17",
+ "Leave blank if considered for all branches": "\u0e40\u0e27\u0e49\u0e19\u0e44\u0e27\u0e49\u0e2b\u0e32\u0e01\u0e1e\u0e34\u0e08\u0e32\u0e23\u0e13\u0e32\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e17\u0e38\u0e01\u0e2a\u0e32\u0e02\u0e32",
+ "Leave blank if considered for all departments": "\u0e40\u0e27\u0e49\u0e19\u0e44\u0e27\u0e49\u0e2b\u0e32\u0e01\u0e1e\u0e34\u0e08\u0e32\u0e23\u0e13\u0e32\u0e43\u0e2b\u0e49\u0e2b\u0e19\u0e48\u0e27\u0e22\u0e07\u0e32\u0e19\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14",
+ "Leave blank if considered for all designations": "\u0e40\u0e27\u0e49\u0e19\u0e44\u0e27\u0e49\u0e2b\u0e32\u0e01\u0e1e\u0e34\u0e08\u0e32\u0e23\u0e13\u0e32\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14",
+ "Leave blank if considered for all employee types": "\u0e40\u0e27\u0e49\u0e19\u0e44\u0e27\u0e49\u0e2b\u0e32\u0e01\u0e1e\u0e34\u0e08\u0e32\u0e23\u0e13\u0e32\u0e43\u0e2b\u0e49\u0e1e\u0e19\u0e31\u0e01\u0e07\u0e32\u0e19\u0e17\u0e38\u0e01\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17",
+ "Leave blank if considered for all grades": "\u0e40\u0e27\u0e49\u0e19\u0e44\u0e27\u0e49\u0e2b\u0e32\u0e01\u0e1e\u0e34\u0e08\u0e32\u0e23\u0e13\u0e32\u0e43\u0e2b\u0e49\u0e40\u0e01\u0e23\u0e14\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14",
+ "New Leaves Allocated (In Days)": "\u0e43\u0e1a\u0e43\u0e2b\u0e21\u0e48\u0e17\u0e35\u0e48\u0e08\u0e31\u0e14\u0e2a\u0e23\u0e23 (\u0e43\u0e19\u0e27\u0e31\u0e19)",
+ "Please select Carry Forward if you also want to include previous fiscal year's balance leaves to this fiscal year": "\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e14\u0e33\u0e40\u0e19\u0e34\u0e19\u0e01\u0e32\u0e23\u0e15\u0e48\u0e2d\u0e16\u0e49\u0e32\u0e04\u0e38\u0e13\u0e22\u0e31\u0e07\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e17\u0e35\u0e48\u0e08\u0e30\u0e23\u0e27\u0e21\u0e16\u0e36\u0e07\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e21\u0e14\u0e38\u0e25\u0e43\u0e19\u0e1b\u0e35\u0e07\u0e1a\u0e1b\u0e23\u0e30\u0e21\u0e32\u0e13\u0e01\u0e48\u0e2d\u0e19\u0e2b\u0e19\u0e49\u0e32\u0e19\u0e35\u0e49\u0e2d\u0e2d\u0e01\u0e44\u0e1b\u0e43\u0e19\u0e1b\u0e35\u0e07\u0e1a\u0e01\u0e32\u0e23\u0e40\u0e07\u0e34\u0e19"
+}
\ No newline at end of file
diff --git a/hr/doctype/leave_type/locale/de-doc.json b/hr/doctype/leave_type/locale/de-doc.json
new file mode 100644
index 00000000000..460563928e5
--- /dev/null
+++ b/hr/doctype/leave_type/locale/de-doc.json
@@ -0,0 +1,10 @@
+{
+ "HR": "HR",
+ "Is Carry Forward": "Ist Carry Forward",
+ "Is Encash": "Ist einl\u00f6sen",
+ "Is LWP": "Ist LWP",
+ "Leave Type": "Lassen Typ",
+ "Leave Type Name": "Lassen Typ Name",
+ "Max Days Leave Allowed": "Max Leave Tage erlaubt",
+ "Trash Reason": "Trash Reason"
+}
\ No newline at end of file
diff --git a/hr/doctype/leave_type/locale/pt-BR-doc.json b/hr/doctype/leave_type/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..856439ee749
--- /dev/null
+++ b/hr/doctype/leave_type/locale/pt-BR-doc.json
@@ -0,0 +1,10 @@
+{
+ "HR": "RH",
+ "Is Carry Forward": "\u00c9 encaminhado",
+ "Is Encash": "\u00c9 cobran\u00e7a",
+ "Is LWP": "\u00c9 LWP",
+ "Leave Type": "Tipo de Licen\u00e7as",
+ "Leave Type Name": "Nome do Tipo de Licen\u00e7a",
+ "Max Days Leave Allowed": "Per\u00edodo m\u00e1ximo de Licen\u00e7a",
+ "Trash Reason": "Raz\u00e3o de p\u00f4r no lixo"
+}
\ No newline at end of file
diff --git a/hr/doctype/leave_type/locale/th-doc.json b/hr/doctype/leave_type/locale/th-doc.json
new file mode 100644
index 00000000000..2e31f86215c
--- /dev/null
+++ b/hr/doctype/leave_type/locale/th-doc.json
@@ -0,0 +1,10 @@
+{
+ "HR": "\u0e17\u0e23\u0e31\u0e1e\u0e22\u0e32\u0e01\u0e23\u0e1a\u0e38\u0e04\u0e04\u0e25",
+ "Is Carry Forward": "\u0e40\u0e1b\u0e47\u0e19 Carry Forward",
+ "Is Encash": "\u0e40\u0e1b\u0e47\u0e19\u0e44\u0e14\u0e49\u0e40\u0e1b\u0e47\u0e19\u0e40\u0e07\u0e34\u0e19\u0e2a\u0e14",
+ "Is LWP": "LWP \u0e40\u0e1b\u0e47\u0e19",
+ "Leave Type": "\u0e1d\u0e32\u0e01\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17",
+ "Leave Type Name": "\u0e1d\u0e32\u0e01\u0e0a\u0e37\u0e48\u0e2d\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17",
+ "Max Days Leave Allowed": "\u0e27\u0e31\u0e19\u0e41\u0e21\u0e47\u0e01\u0e0b\u0e4c\u0e1d\u0e32\u0e01\u0e2d\u0e19\u0e38\u0e0d\u0e32\u0e15\u0e43\u0e2b\u0e49\u0e19\u0e33",
+ "Trash Reason": "\u0e40\u0e2b\u0e15\u0e38\u0e1c\u0e25\u0e16\u0e31\u0e07\u0e02\u0e22\u0e30"
+}
\ No newline at end of file
diff --git a/hr/doctype/other_income_detail/locale/de-doc.json b/hr/doctype/other_income_detail/locale/de-doc.json
new file mode 100644
index 00000000000..9f6b8863780
--- /dev/null
+++ b/hr/doctype/other_income_detail/locale/de-doc.json
@@ -0,0 +1,10 @@
+{
+ "Actual Amount": "Istmenge",
+ "Eligible Amount": "Anrechnungsbetrag",
+ "HR": "HR",
+ "Max. Limit": "Max Limit",
+ "Modified Amount": "Ge\u00e4ndert Betrag",
+ "Other Income Detail": "Sonstige Ertr\u00e4ge Detailansicht",
+ "Particulars": "Einzelheiten",
+ "Under Section": "Gem\u00e4\u00df \u00a7"
+}
\ No newline at end of file
diff --git a/hr/doctype/other_income_detail/locale/pt-BR-doc.json b/hr/doctype/other_income_detail/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..be0f530c582
--- /dev/null
+++ b/hr/doctype/other_income_detail/locale/pt-BR-doc.json
@@ -0,0 +1,10 @@
+{
+ "Actual Amount": "Valor Real",
+ "Eligible Amount": "Montante eleg\u00edvel",
+ "HR": "RH",
+ "Max. Limit": "Max. Limitar",
+ "Modified Amount": "Quantidade modificada",
+ "Other Income Detail": "Detalhe sobre Outras Receitas",
+ "Particulars": "Caracter\u00edsticas",
+ "Under Section": "Segundo a Se\u00e7\u00e3o"
+}
\ No newline at end of file
diff --git a/hr/doctype/other_income_detail/locale/th-doc.json b/hr/doctype/other_income_detail/locale/th-doc.json
new file mode 100644
index 00000000000..4a54cc5734e
--- /dev/null
+++ b/hr/doctype/other_income_detail/locale/th-doc.json
@@ -0,0 +1,10 @@
+{
+ "Actual Amount": "\u0e08\u0e33\u0e19\u0e27\u0e19\u0e40\u0e07\u0e34\u0e19\u0e17\u0e35\u0e48\u0e41\u0e17\u0e49\u0e08\u0e23\u0e34\u0e07",
+ "Eligible Amount": "\u0e08\u0e33\u0e19\u0e27\u0e19\u0e2a\u0e34\u0e17\u0e18\u0e34\u0e4c",
+ "HR": "\u0e17\u0e23\u0e31\u0e1e\u0e22\u0e32\u0e01\u0e23\u0e1a\u0e38\u0e04\u0e04\u0e25",
+ "Max. Limit": "\u0e41\u0e21\u0e47\u0e01\u0e0b\u0e4c \u0e08\u0e33\u0e01\u0e31\u0e14",
+ "Modified Amount": "\u0e08\u0e33\u0e19\u0e27\u0e19\u0e01\u0e32\u0e23\u0e41\u0e01\u0e49\u0e44\u0e02",
+ "Other Income Detail": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e23\u0e32\u0e22\u200b\u200b\u0e44\u0e14\u0e49\u0e2d\u0e37\u0e48\u0e19 \u0e46",
+ "Particulars": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23",
+ "Under Section": "\u0e15\u0e32\u0e21\u0e21\u0e32\u0e15\u0e23\u0e32"
+}
\ No newline at end of file
diff --git a/hr/doctype/salary_manager/locale/_messages_doc.json b/hr/doctype/salary_manager/locale/_messages_doc.json
index c0d4405f379..dd9564580f7 100644
--- a/hr/doctype/salary_manager/locale/_messages_doc.json
+++ b/hr/doctype/salary_manager/locale/_messages_doc.json
@@ -4,23 +4,12 @@
"Creates salary slip for above mentioned criteria.",
"Branch",
"Department",
- "02",
- "03",
- "01",
- "06",
- "07",
- "04",
- "05",
"Send Email",
"Company",
- "09",
"Create Bank Voucher for the total salary paid for the above selected criteria",
"Designation",
- "10",
"Fiscal Year",
- "11",
"Document Description",
- "12",
"Grade",
"Salary Manager",
"Submit Salary Slip",
@@ -28,6 +17,5 @@
"Activity Log",
"Submit all salary slips for the above selected criteria",
"Check if you want to send salary slip in mail to each employee while submitting salary slip",
- "Make Bank Voucher",
- "08"
+ "Make Bank Voucher"
]
\ No newline at end of file
diff --git a/hr/doctype/salary_manager/locale/de-doc.json b/hr/doctype/salary_manager/locale/de-doc.json
new file mode 100644
index 00000000000..77e4ca0d015
--- /dev/null
+++ b/hr/doctype/salary_manager/locale/de-doc.json
@@ -0,0 +1,21 @@
+{
+ "Activity Log": "Activity Log",
+ "Branch": "Zweig",
+ "Check if you want to send salary slip in mail to each employee while submitting salary slip": "\u00dcberpr\u00fcfen Sie, ob Sie Gehaltsabrechnung in Mail an jeden Mitarbeiter wollen, w\u00e4hrend Einreichung Gehaltsabrechnung",
+ "Company": "Firma",
+ "Create Bank Voucher for the total salary paid for the above selected criteria": "Erstellen Bankgutschein f\u00fcr die Lohnsumme f\u00fcr die oben ausgew\u00e4hlten Kriterien gezahlt",
+ "Create Salary Slip": "Erstellen Gehaltsabrechnung",
+ "Creates salary slip for above mentioned criteria.": "Erstellt Gehaltsabrechnung f\u00fcr die oben genannten Kriterien.",
+ "Department": "Abteilung",
+ "Designation": "Bezeichnung",
+ "Document Description": "Document Beschreibung",
+ "Fiscal Year": "Gesch\u00e4ftsjahr",
+ "Grade": "Klasse",
+ "HR": "HR",
+ "Make Bank Voucher": "Machen Bankgutschein",
+ "Month": "Monat",
+ "Salary Manager": "Manager Gehalt",
+ "Send Email": "E-Mail senden",
+ "Submit Salary Slip": "Senden Gehaltsabrechnung",
+ "Submit all salary slips for the above selected criteria": "Reichen Sie alle Gehaltsabrechnungen f\u00fcr die oben ausgew\u00e4hlten Kriterien"
+}
\ No newline at end of file
diff --git a/hr/doctype/salary_manager/locale/pt-BR-doc.json b/hr/doctype/salary_manager/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..8b8fe7e2a59
--- /dev/null
+++ b/hr/doctype/salary_manager/locale/pt-BR-doc.json
@@ -0,0 +1,21 @@
+{
+ "Activity Log": "Log de Atividade",
+ "Branch": "Ramo",
+ "Check if you want to send salary slip in mail to each employee while submitting salary slip": "Marque se voc\u00ea quiser enviar a folha de pagamento pelo correio a cada empregado ao enviar a folha de pagamento",
+ "Company": "Empresa",
+ "Create Bank Voucher for the total salary paid for the above selected criteria": "Criar Comprovante Banc\u00e1rio para o sal\u00e1rio total pago para os crit\u00e9rios acima selecionados",
+ "Create Salary Slip": "Criar Folha de Pagamento",
+ "Creates salary slip for above mentioned criteria.": "Cria folha de pagamento para os crit\u00e9rios acima mencionados.",
+ "Department": "Departamento",
+ "Designation": "Designa\u00e7\u00e3o",
+ "Document Description": "Descri\u00e7\u00e3o do documento",
+ "Fiscal Year": "Exerc\u00edcio fiscal",
+ "Grade": "Grau",
+ "HR": "RH",
+ "Make Bank Voucher": "Fazer Comprovante Banc\u00e1rio",
+ "Month": "M\u00eas",
+ "Salary Manager": "Gerenciador de sal\u00e1rio",
+ "Send Email": "Enviar E-mail",
+ "Submit Salary Slip": "Enviar folha de pagamento",
+ "Submit all salary slips for the above selected criteria": "Enviar todas as folhas de pagamento para os crit\u00e9rios acima selecionados"
+}
\ No newline at end of file
diff --git a/hr/doctype/salary_manager/locale/th-doc.json b/hr/doctype/salary_manager/locale/th-doc.json
new file mode 100644
index 00000000000..1edfadfc767
--- /dev/null
+++ b/hr/doctype/salary_manager/locale/th-doc.json
@@ -0,0 +1,33 @@
+{
+ "01": "01",
+ "02": "02",
+ "03": "03",
+ "04": "04",
+ "05": "05",
+ "06": "06",
+ "07": "07",
+ "08": "08",
+ "09": "09",
+ "10": "10",
+ "11": "11",
+ "12": "12",
+ "Activity Log": "\u0e40\u0e02\u0e49\u0e32\u0e2a\u0e39\u0e48\u0e23\u0e30\u0e1a\u0e1a\u0e01\u0e34\u0e08\u0e01\u0e23\u0e23\u0e21",
+ "Branch": "\u0e2a\u0e32\u0e02\u0e32",
+ "Check if you want to send salary slip in mail to each employee while submitting salary slip": "\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a\u0e27\u0e48\u0e32\u0e04\u0e38\u0e13\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e17\u0e35\u0e48\u0e08\u0e30\u0e2a\u0e48\u0e07\u0e2a\u0e25\u0e34\u0e1b\u0e40\u0e07\u0e34\u0e19\u0e40\u0e14\u0e37\u0e2d\u0e19\u0e43\u0e19 mail \u0e43\u0e2b\u0e49\u0e1e\u0e19\u0e31\u0e01\u0e07\u0e32\u0e19\u0e41\u0e15\u0e48\u0e25\u0e30\u0e04\u0e19\u0e43\u0e19\u0e02\u0e13\u0e30\u0e17\u0e35\u0e48\u0e2a\u0e48\u0e07\u0e2a\u0e25\u0e34\u0e1b\u0e40\u0e07\u0e34\u0e19\u0e40\u0e14\u0e37\u0e2d\u0e19",
+ "Company": "\u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17",
+ "Create Bank Voucher for the total salary paid for the above selected criteria": "\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e1a\u0e31\u0e15\u0e23\u0e01\u0e33\u0e19\u0e31\u0e25\u0e18\u0e19\u0e32\u0e04\u0e32\u0e23\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e01\u0e32\u0e23\u0e23\u0e27\u0e21\u0e40\u0e07\u0e34\u0e19\u0e40\u0e14\u0e37\u0e2d\u0e19\u0e17\u0e35\u0e48\u0e08\u0e48\u0e32\u0e22\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e40\u0e01\u0e13\u0e11\u0e4c\u0e17\u0e35\u0e48\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e02\u0e49\u0e32\u0e07\u0e15\u0e49\u0e19",
+ "Create Salary Slip": "\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e2a\u0e25\u0e34\u0e1b\u0e40\u0e07\u0e34\u0e19\u0e40\u0e14\u0e37\u0e2d\u0e19",
+ "Creates salary slip for above mentioned criteria.": "\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e2a\u0e25\u0e34\u0e1b\u0e40\u0e07\u0e34\u0e19\u0e40\u0e14\u0e37\u0e2d\u0e19\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e40\u0e01\u0e13\u0e11\u0e4c\u0e14\u0e31\u0e07\u0e01\u0e25\u0e48\u0e32\u0e27\u0e02\u0e49\u0e32\u0e07\u0e15\u0e49\u0e19",
+ "Department": "\u0e41\u0e1c\u0e19\u0e01",
+ "Designation": "\u0e01\u0e32\u0e23\u0e41\u0e15\u0e48\u0e07\u0e15\u0e31\u0e49\u0e07",
+ "Document Description": "\u0e04\u0e33\u0e2d\u0e18\u0e34\u0e1a\u0e32\u0e22\u0e40\u0e2d\u0e01\u0e2a\u0e32\u0e23",
+ "Fiscal Year": "\u0e1b\u0e35\u0e07\u0e1a\u0e1b\u0e23\u0e30\u0e21\u0e32\u0e13",
+ "Grade": "\u0e40\u0e01\u0e23\u0e14",
+ "HR": "\u0e17\u0e23\u0e31\u0e1e\u0e22\u0e32\u0e01\u0e23\u0e1a\u0e38\u0e04\u0e04\u0e25",
+ "Make Bank Voucher": "\u0e17\u0e33\u0e43\u0e2b\u0e49\u0e1a\u0e31\u0e15\u0e23\u0e02\u0e2d\u0e07\u0e18\u0e19\u0e32\u0e04\u0e32\u0e23",
+ "Month": "\u0e40\u0e14\u0e37\u0e2d\u0e19",
+ "Salary Manager": "Manager \u0e40\u0e07\u0e34\u0e19\u0e40\u0e14\u0e37\u0e2d\u0e19\u0e17\u0e35\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23",
+ "Send Email": "\u0e2a\u0e48\u0e07\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e4c",
+ "Submit Salary Slip": "\u0e2a\u0e48\u0e07\u0e2a\u0e25\u0e34\u0e1b\u0e40\u0e07\u0e34\u0e19\u0e40\u0e14\u0e37\u0e2d\u0e19",
+ "Submit all salary slips for the above selected criteria": "\u0e2a\u0e48\u0e07\u0e1a\u0e34\u0e25\u0e40\u0e07\u0e34\u0e19\u0e40\u0e14\u0e37\u0e2d\u0e19\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e40\u0e01\u0e13\u0e11\u0e4c\u0e17\u0e35\u0e48\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e02\u0e49\u0e32\u0e07\u0e15\u0e49\u0e19"
+}
\ No newline at end of file
diff --git a/hr/doctype/salary_slip/locale/_messages_doc.json b/hr/doctype/salary_slip/locale/_messages_doc.json
index 3b4f90603c3..7b404ba3e0f 100644
--- a/hr/doctype/salary_slip/locale/_messages_doc.json
+++ b/hr/doctype/salary_slip/locale/_messages_doc.json
@@ -4,21 +4,13 @@
"ESIC No.",
"HR",
"Totals",
- "Employee",
+ "Department",
"Earning & Deduction",
"Branch",
- "Department",
+ "Employee",
"Employee Name",
"Email",
- "02",
- "03",
- "01",
- "06",
- "07",
- "04",
- "05",
"Company",
- "09",
"Total days in month",
"Amended From",
"Bank Name",
@@ -38,14 +30,10 @@
"Fiscal Year",
"Letter Head",
"Leave Without Pay",
- "11",
- "10",
- "12",
"Deductions",
"Grade",
"Bank Account No.",
"Gross Pay",
"Month",
- "Gross Pay + Arrear Amount +Encashment Amount - Total Deduction",
- "08"
+ "Gross Pay + Arrear Amount +Encashment Amount - Total Deduction"
]
\ No newline at end of file
diff --git a/hr/doctype/salary_slip/locale/de-doc.json b/hr/doctype/salary_slip/locale/de-doc.json
new file mode 100644
index 00000000000..5e91a3b3a70
--- /dev/null
+++ b/hr/doctype/salary_slip/locale/de-doc.json
@@ -0,0 +1,39 @@
+{
+ "Amended From": "Ge\u00e4ndert von",
+ "Amendment Date": "\u00c4nderung Datum",
+ "Arrear Amount": "Nachtr\u00e4glich Betrag",
+ "Bank Account No.": "Bank Konto-Nr",
+ "Bank Name": "Name der Bank",
+ "Branch": "Zweig",
+ "Company": "Firma",
+ "Deduction": "Abzug",
+ "Deductions": "Abz\u00fcge",
+ "Department": "Abteilung",
+ "Designation": "Bezeichnung",
+ "ESIC No.": "ESIC Nr.",
+ "Earning": "Earning",
+ "Earning & Deduction": "Earning & Abzug",
+ "Email": "E-Mail",
+ "Employee": "Mitarbeiter",
+ "Employee Name": "Name des Mitarbeiters",
+ "Fiscal Year": "Gesch\u00e4ftsjahr",
+ "Grade": "Klasse",
+ "Gross Pay": "Gross Pay",
+ "Gross Pay + Arrear Amount +Encashment Amount - Total Deduction": "Gross Pay + nachtr\u00e4glich Betrag + Inkasso Betrag - Total Abzug",
+ "HR": "HR",
+ "Leave Encashment Amount": "Lassen Einl\u00f6sung Betrag",
+ "Leave Without Pay": "Unbezahlten Urlaub",
+ "Letter Head": "Briefkopf",
+ "Month": "Monat",
+ "Net Pay": "Net Pay",
+ "Net Pay (in words) will be visible once you save the Salary Slip.": "Net Pay (in Worten) sichtbar sein wird, sobald Sie die Gehaltsabrechnung zu speichern.",
+ "PF No.": "PF Nr.",
+ "Payment days": "Payment Tag",
+ "Rounded Total": "Abgerundete insgesamt",
+ "Salary Slip": "Gehaltsabrechnung",
+ "Salary Structure Earnings": "Ergebnis Gehaltsstruktur",
+ "Total Deduction": "Insgesamt Abzug",
+ "Total days in month": "Insgesamt Tage im Monat",
+ "Total in words": "Total in Worten",
+ "Totals": "Totals"
+}
\ No newline at end of file
diff --git a/hr/doctype/salary_slip/locale/pt-BR-doc.json b/hr/doctype/salary_slip/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..9940b32ffb3
--- /dev/null
+++ b/hr/doctype/salary_slip/locale/pt-BR-doc.json
@@ -0,0 +1,39 @@
+{
+ "Amended From": "Corrigido De",
+ "Amendment Date": "Data da Corre\u00e7\u00e3o",
+ "Arrear Amount": "Quantidade em atraso",
+ "Bank Account No.": "N\u00ba Conta Banc\u00e1ria",
+ "Bank Name": "Nome do Banco",
+ "Branch": "Ramo",
+ "Company": "Empresa",
+ "Deduction": "Dedu\u00e7\u00e3o",
+ "Deductions": "Dedu\u00e7\u00f5es",
+ "Department": "Departamento",
+ "Designation": "Designa\u00e7\u00e3o",
+ "ESIC No.": "N\u00ba ESIC.",
+ "Earning": "Ganho",
+ "Earning & Deduction": "Ganho & Dedu\u00e7\u00e3o",
+ "Email": "E-mail",
+ "Employee": "Funcion\u00e1rio",
+ "Employee Name": "Nome do Funcion\u00e1rio",
+ "Fiscal Year": "Exerc\u00edcio fiscal",
+ "Grade": "Grau",
+ "Gross Pay": "Sal\u00e1rio bruto",
+ "Gross Pay + Arrear Amount +Encashment Amount - Total Deduction": "Sal\u00e1rio bruto + Valor em atraso + Valor de cobran\u00e7a - Dedu\u00e7\u00e3o Total",
+ "HR": "RH",
+ "Leave Encashment Amount": "Valor das Licen\u00e7as cobradas",
+ "Leave Without Pay": "Licen\u00e7a sem pagamento",
+ "Letter Head": "Timbrado",
+ "Month": "M\u00eas",
+ "Net Pay": "Pagamento L\u00edquido",
+ "Net Pay (in words) will be visible once you save the Salary Slip.": "Pagamento l\u00edquido (por extenso) ser\u00e1 vis\u00edvel quando voc\u00ea salvar a folha de pagamento.",
+ "PF No.": "N\u00ba PF.",
+ "Payment days": "Dias de pagamento",
+ "Rounded Total": "Total arredondado",
+ "Salary Slip": "Folha de pagamento",
+ "Salary Structure Earnings": "Ganhos da Estrutura Salarial",
+ "Total Deduction": "Dedu\u00e7\u00e3o Total",
+ "Total days in month": "Total de dias no m\u00eas",
+ "Total in words": "Total por extenso",
+ "Totals": "Totais"
+}
\ No newline at end of file
diff --git a/hr/doctype/salary_slip/locale/th-doc.json b/hr/doctype/salary_slip/locale/th-doc.json
new file mode 100644
index 00000000000..e3e2e81ef4e
--- /dev/null
+++ b/hr/doctype/salary_slip/locale/th-doc.json
@@ -0,0 +1,51 @@
+{
+ "01": "01",
+ "02": "02",
+ "03": "03",
+ "04": "04",
+ "05": "05",
+ "06": "06",
+ "07": "07",
+ "08": "08",
+ "09": "09",
+ "10": "10",
+ "11": "11",
+ "12": "12",
+ "Amended From": "\u0e41\u0e01\u0e49\u0e44\u0e02\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21",
+ "Amendment Date": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e41\u0e01\u0e49\u0e44\u0e02",
+ "Arrear Amount": "\u0e08\u0e33\u0e19\u0e27\u0e19 Arrear",
+ "Bank Account No.": "\u0e40\u0e25\u0e02\u0e17\u0e35\u0e48\u0e1a\u0e31\u0e0d\u0e0a\u0e35\u0e18\u0e19\u0e32\u0e04\u0e32\u0e23",
+ "Bank Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e18\u0e19\u0e32\u0e04\u0e32\u0e23",
+ "Branch": "\u0e2a\u0e32\u0e02\u0e32",
+ "Company": "\u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17",
+ "Deduction": "\u0e01\u0e32\u0e23\u0e2b\u0e31\u0e01",
+ "Deductions": "\u0e01\u0e32\u0e23\u0e2b\u0e31\u0e01\u0e40\u0e07\u0e34\u0e19",
+ "Department": "\u0e41\u0e1c\u0e19\u0e01",
+ "Designation": "\u0e01\u0e32\u0e23\u0e41\u0e15\u0e48\u0e07\u0e15\u0e31\u0e49\u0e07",
+ "ESIC No.": "\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e25\u0e02 ESIC",
+ "Earning": "\u0e23\u0e32\u0e22\u0e44\u0e14\u0e49",
+ "Earning & Deduction": "\u0e23\u0e32\u0e22\u0e44\u0e14\u0e49\u0e41\u0e25\u0e30\u0e01\u0e32\u0e23\u0e2b\u0e31\u0e01",
+ "Email": "\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e4c",
+ "Employee": "\u0e25\u0e39\u0e01\u0e08\u0e49\u0e32\u0e07",
+ "Employee Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e02\u0e2d\u0e07\u0e1e\u0e19\u0e31\u0e01\u0e07\u0e32\u0e19",
+ "Fiscal Year": "\u0e1b\u0e35\u0e07\u0e1a\u0e1b\u0e23\u0e30\u0e21\u0e32\u0e13",
+ "Grade": "\u0e40\u0e01\u0e23\u0e14",
+ "Gross Pay": "\u0e08\u0e48\u0e32\u0e22\u0e02\u0e31\u0e49\u0e19\u0e15\u0e49\u0e19",
+ "Gross Pay + Arrear Amount +Encashment Amount - Total Deduction": "\u0e08\u0e48\u0e32\u0e22\u0e02\u0e31\u0e49\u0e19\u0e15\u0e49\u0e19 + \u0e08\u0e33\u0e19\u0e27\u0e19 Arrear + \u0e08\u0e33\u0e19\u0e27\u0e19\u0e01\u0e32\u0e23\u0e44\u0e14\u0e49\u0e40\u0e1b\u0e47\u0e19\u0e40\u0e07\u0e34\u0e19\u0e2a\u0e14 - \u0e2b\u0e31\u0e01\u0e23\u0e27\u0e21",
+ "HR": "\u0e17\u0e23\u0e31\u0e1e\u0e22\u0e32\u0e01\u0e23\u0e1a\u0e38\u0e04\u0e04\u0e25",
+ "Leave Encashment Amount": "\u0e1d\u0e32\u0e01\u0e40\u0e07\u0e34\u0e19\u0e01\u0e32\u0e23\u0e44\u0e14\u0e49\u0e40\u0e1b\u0e47\u0e19\u0e40\u0e07\u0e34\u0e19\u0e2a\u0e14",
+ "Leave Without Pay": "\u0e1d\u0e32\u0e01\u0e42\u0e14\u0e22\u0e44\u0e21\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e08\u0e48\u0e32\u0e22",
+ "Letter Head": "\u0e2b\u0e31\u0e27\u0e08\u0e14\u0e2b\u0e21\u0e32\u0e22",
+ "Month": "\u0e40\u0e14\u0e37\u0e2d\u0e19",
+ "Net Pay": "\u0e08\u0e48\u0e32\u0e22\u0e2a\u0e38\u0e17\u0e18\u0e34",
+ "Net Pay (in words) will be visible once you save the Salary Slip.": "\u0e08\u0e48\u0e32\u0e22\u0e2a\u0e38\u0e17\u0e18\u0e34 (\u0e04\u0e33) \u0e08\u0e30\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e21\u0e2d\u0e07\u0e40\u0e2b\u0e47\u0e19\u0e44\u0e14\u0e49\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e04\u0e38\u0e13\u0e1a\u0e31\u0e19\u0e17\u0e36\u0e01\u0e2a\u0e25\u0e34\u0e1b\u0e40\u0e07\u0e34\u0e19\u0e40\u0e14\u0e37\u0e2d\u0e19",
+ "PF No.": "\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e25\u0e02 PF",
+ "Payment days": "\u0e27\u0e31\u0e19\u0e0a\u0e33\u0e23\u0e30\u0e40\u0e07\u0e34\u0e19",
+ "Rounded Total": "\u0e23\u0e27\u0e21\u0e01\u0e25\u0e21",
+ "Salary Slip": "\u0e2a\u0e25\u0e34\u0e1b\u0e40\u0e07\u0e34\u0e19\u0e40\u0e14\u0e37\u0e2d\u0e19",
+ "Salary Structure Earnings": "\u0e01\u0e33\u0e44\u0e23\u0e42\u0e04\u0e23\u0e07\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e40\u0e07\u0e34\u0e19\u0e40\u0e14\u0e37\u0e2d\u0e19",
+ "Total Deduction": "\u0e2b\u0e31\u0e01\u0e23\u0e27\u0e21",
+ "Total days in month": "\u0e27\u0e31\u0e19\u0e23\u0e27\u0e21\u0e43\u0e19\u0e40\u0e14\u0e37\u0e2d\u0e19",
+ "Total in words": "\u0e23\u0e27\u0e21\u0e2d\u0e22\u0e39\u0e48\u0e43\u0e19\u0e04\u0e33\u0e1e\u0e39\u0e14",
+ "Totals": "\u0e1c\u0e25\u0e23\u0e27\u0e21"
+}
\ No newline at end of file
diff --git a/hr/doctype/salary_slip_deduction/locale/de-doc.json b/hr/doctype/salary_slip_deduction/locale/de-doc.json
new file mode 100644
index 00000000000..a3337609f0d
--- /dev/null
+++ b/hr/doctype/salary_slip_deduction/locale/de-doc.json
@@ -0,0 +1,8 @@
+{
+ "Amount": "Menge",
+ "Depends on LWP": "Abh\u00e4ngig von LWP",
+ "HR": "HR",
+ "Modified Amount": "Ge\u00e4ndert Betrag",
+ "Salary Slip Deduction": "Lohnabzug Rutsch",
+ "Type": "Typ"
+}
\ No newline at end of file
diff --git a/hr/doctype/salary_slip_deduction/locale/pt-BR-doc.json b/hr/doctype/salary_slip_deduction/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..28cacd6a53f
--- /dev/null
+++ b/hr/doctype/salary_slip_deduction/locale/pt-BR-doc.json
@@ -0,0 +1,8 @@
+{
+ "Amount": "Quantidade",
+ "Depends on LWP": "Dependem do LWP",
+ "HR": "RH",
+ "Modified Amount": "Quantidade modificada",
+ "Salary Slip Deduction": "Dedu\u00e7\u00e3o da folha de pagamento",
+ "Type": "Tipo"
+}
\ No newline at end of file
diff --git a/hr/doctype/salary_slip_deduction/locale/th-doc.json b/hr/doctype/salary_slip_deduction/locale/th-doc.json
new file mode 100644
index 00000000000..54b0f8176e3
--- /dev/null
+++ b/hr/doctype/salary_slip_deduction/locale/th-doc.json
@@ -0,0 +1,8 @@
+{
+ "Amount": "\u0e08\u0e33\u0e19\u0e27\u0e19",
+ "Depends on LWP": "\u0e02\u0e36\u0e49\u0e19\u0e2d\u0e22\u0e39\u0e48\u0e01\u0e31\u0e1a LWP",
+ "HR": "\u0e17\u0e23\u0e31\u0e1e\u0e22\u0e32\u0e01\u0e23\u0e1a\u0e38\u0e04\u0e04\u0e25",
+ "Modified Amount": "\u0e08\u0e33\u0e19\u0e27\u0e19\u0e01\u0e32\u0e23\u0e41\u0e01\u0e49\u0e44\u0e02",
+ "Salary Slip Deduction": "\u0e2b\u0e31\u0e01\u0e40\u0e07\u0e34\u0e19\u0e40\u0e14\u0e37\u0e2d\u0e19\u0e2a\u0e25\u0e34\u0e1b",
+ "Type": "\u0e0a\u0e19\u0e34\u0e14"
+}
\ No newline at end of file
diff --git a/hr/doctype/salary_slip_earning/locale/de-doc.json b/hr/doctype/salary_slip_earning/locale/de-doc.json
new file mode 100644
index 00000000000..e704243d1cb
--- /dev/null
+++ b/hr/doctype/salary_slip_earning/locale/de-doc.json
@@ -0,0 +1,8 @@
+{
+ "Amount": "Menge",
+ "Depends on LWP": "Abh\u00e4ngig von LWP",
+ "HR": "HR",
+ "Modified Amount": "Ge\u00e4ndert Betrag",
+ "Salary Slip Earning": "Earning Gehaltsabrechnung",
+ "Type": "Typ"
+}
\ No newline at end of file
diff --git a/hr/doctype/salary_slip_earning/locale/pt-BR-doc.json b/hr/doctype/salary_slip_earning/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..7aa4b2d1b86
--- /dev/null
+++ b/hr/doctype/salary_slip_earning/locale/pt-BR-doc.json
@@ -0,0 +1,8 @@
+{
+ "Amount": "Quantidade",
+ "Depends on LWP": "Dependem do LWP",
+ "HR": "RH",
+ "Modified Amount": "Quantidade modificada",
+ "Salary Slip Earning": "Ganhos da folha de pagamento",
+ "Type": "Tipo"
+}
\ No newline at end of file
diff --git a/hr/doctype/salary_slip_earning/locale/th-doc.json b/hr/doctype/salary_slip_earning/locale/th-doc.json
new file mode 100644
index 00000000000..065985036c4
--- /dev/null
+++ b/hr/doctype/salary_slip_earning/locale/th-doc.json
@@ -0,0 +1,8 @@
+{
+ "Amount": "\u0e08\u0e33\u0e19\u0e27\u0e19",
+ "Depends on LWP": "\u0e02\u0e36\u0e49\u0e19\u0e2d\u0e22\u0e39\u0e48\u0e01\u0e31\u0e1a LWP",
+ "HR": "\u0e17\u0e23\u0e31\u0e1e\u0e22\u0e32\u0e01\u0e23\u0e1a\u0e38\u0e04\u0e04\u0e25",
+ "Modified Amount": "\u0e08\u0e33\u0e19\u0e27\u0e19\u0e01\u0e32\u0e23\u0e41\u0e01\u0e49\u0e44\u0e02",
+ "Salary Slip Earning": "\u0e2a\u0e25\u0e34\u0e1b\u0e40\u0e07\u0e34\u0e19\u0e40\u0e14\u0e37\u0e2d\u0e19\u0e23\u0e32\u0e22\u0e44\u0e14\u0e49",
+ "Type": "\u0e0a\u0e19\u0e34\u0e14"
+}
\ No newline at end of file
diff --git a/hr/doctype/salary_structure/locale/de-doc.json b/hr/doctype/salary_structure/locale/de-doc.json
new file mode 100644
index 00000000000..14df4ad5136
--- /dev/null
+++ b/hr/doctype/salary_structure/locale/de-doc.json
@@ -0,0 +1,27 @@
+{
+ "Branch": "Zweig",
+ "CTC": "CTC",
+ "Company": "Firma",
+ "Cost to Company": "Kosten Unternehmen",
+ "Deduction": "Abzug",
+ "Deduction1": "Deduction1",
+ "Department": "Abteilung",
+ "Designation": "Bezeichnung",
+ "Earning": "Earning",
+ "Earning & Deduction": "Earning & Abzug",
+ "Earning1": "Earning1",
+ "Employee": "Mitarbeiter",
+ "Employee Name": "Name des Mitarbeiters",
+ "From Date": "Von Datum",
+ "Grade": "Klasse",
+ "HR": "HR",
+ "Is Active": "Aktiv ist",
+ "Net Pay": "Net Pay",
+ "No": "Auf",
+ "Salary Structure": "Gehaltsstruktur",
+ "To Date": "To Date",
+ "Total Deduction": "Insgesamt Abzug",
+ "Total Earning": "Insgesamt Earning",
+ "Yes": "Ja",
+ "You can create more earning and deduction type from Setup --> HR": "Sie k\u00f6nnen mehr verdienen und Deduktion Typ aus Setup -> HR"
+}
\ No newline at end of file
diff --git a/hr/doctype/salary_structure/locale/pt-BR-doc.json b/hr/doctype/salary_structure/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..af8a8876b5c
--- /dev/null
+++ b/hr/doctype/salary_structure/locale/pt-BR-doc.json
@@ -0,0 +1,27 @@
+{
+ "Branch": "Ramo",
+ "CTC": "CTC",
+ "Company": "Empresa",
+ "Cost to Company": "Custo para Empresa",
+ "Deduction": "Dedu\u00e7\u00e3o",
+ "Deduction1": "Deduction1",
+ "Department": "Departamento",
+ "Designation": "Designa\u00e7\u00e3o",
+ "Earning": "Ganho",
+ "Earning & Deduction": "Ganho & Dedu\u00e7\u00e3o",
+ "Earning1": "Earning1",
+ "Employee": "Funcion\u00e1rio",
+ "Employee Name": "Nome do Funcion\u00e1rio",
+ "From Date": "A partir da data",
+ "Grade": "Grau",
+ "HR": "RH",
+ "Is Active": "\u00c9 Ativo",
+ "Net Pay": "Pagamento L\u00edquido",
+ "No": "N\u00e3o",
+ "Salary Structure": "Estrutura Salarial",
+ "To Date": "At\u00e9 a Data",
+ "Total Deduction": "Dedu\u00e7\u00e3o Total",
+ "Total Earning": "Total de Ganhos",
+ "Yes": "Sim",
+ "You can create more earning and deduction type from Setup --> HR": "Voc\u00ea pode criar mais tipos de Ganhos e Dedu\u00e7\u00f5es a partir de Configura\u00e7\u00e3o -> RH"
+}
\ No newline at end of file
diff --git a/hr/doctype/salary_structure/locale/th-doc.json b/hr/doctype/salary_structure/locale/th-doc.json
new file mode 100644
index 00000000000..e2965a3c763
--- /dev/null
+++ b/hr/doctype/salary_structure/locale/th-doc.json
@@ -0,0 +1,27 @@
+{
+ "Branch": "\u0e2a\u0e32\u0e02\u0e32",
+ "CTC": "CTC",
+ "Company": "\u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17",
+ "Cost to Company": "\u0e40\u0e2a\u0e35\u0e22\u0e04\u0e48\u0e32\u0e43\u0e0a\u0e49\u0e08\u0e48\u0e32\u0e22\u0e43\u0e2b\u0e49\u0e01\u0e31\u0e1a \u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17",
+ "Deduction": "\u0e01\u0e32\u0e23\u0e2b\u0e31\u0e01",
+ "Deduction1": "Deduction1",
+ "Department": "\u0e41\u0e1c\u0e19\u0e01",
+ "Designation": "\u0e01\u0e32\u0e23\u0e41\u0e15\u0e48\u0e07\u0e15\u0e31\u0e49\u0e07",
+ "Earning": "\u0e23\u0e32\u0e22\u0e44\u0e14\u0e49",
+ "Earning & Deduction": "\u0e23\u0e32\u0e22\u0e44\u0e14\u0e49\u0e41\u0e25\u0e30\u0e01\u0e32\u0e23\u0e2b\u0e31\u0e01",
+ "Earning1": "Earning1",
+ "Employee": "\u0e25\u0e39\u0e01\u0e08\u0e49\u0e32\u0e07",
+ "Employee Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e02\u0e2d\u0e07\u0e1e\u0e19\u0e31\u0e01\u0e07\u0e32\u0e19",
+ "From Date": "\u0e08\u0e32\u0e01\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48",
+ "Grade": "\u0e40\u0e01\u0e23\u0e14",
+ "HR": "\u0e17\u0e23\u0e31\u0e1e\u0e22\u0e32\u0e01\u0e23\u0e1a\u0e38\u0e04\u0e04\u0e25",
+ "Is Active": "\u0e21\u0e35\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19",
+ "Net Pay": "\u0e08\u0e48\u0e32\u0e22\u0e2a\u0e38\u0e17\u0e18\u0e34",
+ "No": "\u0e44\u0e21\u0e48",
+ "Salary Structure": "\u0e42\u0e04\u0e23\u0e07\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e40\u0e07\u0e34\u0e19\u0e40\u0e14\u0e37\u0e2d\u0e19",
+ "To Date": "\u0e19\u0e31\u0e14",
+ "Total Deduction": "\u0e2b\u0e31\u0e01\u0e23\u0e27\u0e21",
+ "Total Earning": "\u0e01\u0e33\u0e44\u0e23\u0e23\u0e27\u0e21",
+ "Yes": "\u0e43\u0e0a\u0e48",
+ "You can create more earning and deduction type from Setup --> HR": "\u0e04\u0e38\u0e13\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e23\u0e32\u0e22\u0e44\u0e14\u0e49\u0e21\u0e32\u0e01\u0e02\u0e36\u0e49\u0e19\u0e41\u0e25\u0e30\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e01\u0e32\u0e23\u0e2b\u0e31\u0e01\u0e08\u0e32\u0e01\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07 -> HR"
+}
\ No newline at end of file
diff --git a/hr/doctype/salary_structure_deduction/locale/_messages_doc.json b/hr/doctype/salary_structure_deduction/locale/_messages_doc.json
index 320da836f21..05969586232 100644
--- a/hr/doctype/salary_structure_deduction/locale/_messages_doc.json
+++ b/hr/doctype/salary_structure_deduction/locale/_messages_doc.json
@@ -1,7 +1,7 @@
[
"HR",
- "Amount",
- "Type",
"Depend on LWP",
- "Salary Structure Deduction"
+ "Amount",
+ "Salary Structure Deduction",
+ "Type"
]
\ No newline at end of file
diff --git a/hr/doctype/salary_structure_deduction/locale/de-doc.json b/hr/doctype/salary_structure_deduction/locale/de-doc.json
new file mode 100644
index 00000000000..81d209645ca
--- /dev/null
+++ b/hr/doctype/salary_structure_deduction/locale/de-doc.json
@@ -0,0 +1,7 @@
+{
+ "Amount": "Menge",
+ "Depend on LWP": "Verlassen Sie sich auf LWP",
+ "HR": "HR",
+ "Salary Structure Deduction": "Gehaltsstruktur Abzug",
+ "Type": "Typ"
+}
\ No newline at end of file
diff --git a/hr/doctype/salary_structure_deduction/locale/pt-BR-doc.json b/hr/doctype/salary_structure_deduction/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..41bc395b940
--- /dev/null
+++ b/hr/doctype/salary_structure_deduction/locale/pt-BR-doc.json
@@ -0,0 +1,7 @@
+{
+ "Amount": "Quantidade",
+ "Depend on LWP": "Depende do LWP",
+ "HR": "RH",
+ "Salary Structure Deduction": "Dedu\u00e7\u00e3o da Estrutura Salarial",
+ "Type": "Tipo"
+}
\ No newline at end of file
diff --git a/hr/doctype/salary_structure_deduction/locale/th-doc.json b/hr/doctype/salary_structure_deduction/locale/th-doc.json
new file mode 100644
index 00000000000..a3172509675
--- /dev/null
+++ b/hr/doctype/salary_structure_deduction/locale/th-doc.json
@@ -0,0 +1,7 @@
+{
+ "Amount": "\u0e08\u0e33\u0e19\u0e27\u0e19",
+ "Depend on LWP": "\u0e02\u0e36\u0e49\u0e19\u0e2d\u0e22\u0e39\u0e48\u0e01\u0e31\u0e1a LWP",
+ "HR": "\u0e17\u0e23\u0e31\u0e1e\u0e22\u0e32\u0e01\u0e23\u0e1a\u0e38\u0e04\u0e04\u0e25",
+ "Salary Structure Deduction": "\u0e2b\u0e31\u0e01\u0e42\u0e04\u0e23\u0e07\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e40\u0e07\u0e34\u0e19\u0e40\u0e14\u0e37\u0e2d\u0e19",
+ "Type": "\u0e0a\u0e19\u0e34\u0e14"
+}
\ No newline at end of file
diff --git a/hr/doctype/salary_structure_earning/locale/_messages_doc.json b/hr/doctype/salary_structure_earning/locale/_messages_doc.json
index 63e39b11498..217305aed13 100644
--- a/hr/doctype/salary_structure_earning/locale/_messages_doc.json
+++ b/hr/doctype/salary_structure_earning/locale/_messages_doc.json
@@ -1,7 +1,7 @@
[
"HR",
- "Amount",
"Salary Structure Earning",
- "Type",
- "Depend on LWP"
+ "Depend on LWP",
+ "Amount",
+ "Type"
]
\ No newline at end of file
diff --git a/hr/doctype/salary_structure_earning/locale/de-doc.json b/hr/doctype/salary_structure_earning/locale/de-doc.json
new file mode 100644
index 00000000000..66f76749af1
--- /dev/null
+++ b/hr/doctype/salary_structure_earning/locale/de-doc.json
@@ -0,0 +1,7 @@
+{
+ "Amount": "Menge",
+ "Depend on LWP": "Verlassen Sie sich auf LWP",
+ "HR": "HR",
+ "Salary Structure Earning": "Earning Gehaltsstruktur",
+ "Type": "Typ"
+}
\ No newline at end of file
diff --git a/hr/doctype/salary_structure_earning/locale/pt-BR-doc.json b/hr/doctype/salary_structure_earning/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..38addd1ab0b
--- /dev/null
+++ b/hr/doctype/salary_structure_earning/locale/pt-BR-doc.json
@@ -0,0 +1,7 @@
+{
+ "Amount": "Quantidade",
+ "Depend on LWP": "Depende do LWP",
+ "HR": "RH",
+ "Salary Structure Earning": "Ganho da Estrutura Salarial",
+ "Type": "Tipo"
+}
\ No newline at end of file
diff --git a/hr/doctype/salary_structure_earning/locale/th-doc.json b/hr/doctype/salary_structure_earning/locale/th-doc.json
new file mode 100644
index 00000000000..aa58b355e2e
--- /dev/null
+++ b/hr/doctype/salary_structure_earning/locale/th-doc.json
@@ -0,0 +1,7 @@
+{
+ "Amount": "\u0e08\u0e33\u0e19\u0e27\u0e19",
+ "Depend on LWP": "\u0e02\u0e36\u0e49\u0e19\u0e2d\u0e22\u0e39\u0e48\u0e01\u0e31\u0e1a LWP",
+ "HR": "\u0e17\u0e23\u0e31\u0e1e\u0e22\u0e32\u0e01\u0e23\u0e1a\u0e38\u0e04\u0e04\u0e25",
+ "Salary Structure Earning": "\u0e42\u0e04\u0e23\u0e07\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e40\u0e07\u0e34\u0e19\u0e40\u0e14\u0e37\u0e2d\u0e19\u0e23\u0e32\u0e22\u0e44\u0e14\u0e49",
+ "Type": "\u0e0a\u0e19\u0e34\u0e14"
+}
\ No newline at end of file
diff --git a/hr/module_def/hr/locale/_messages_doc.json b/hr/module_def/hr/locale/_messages_doc.json
deleted file mode 100644
index bfcee9da49f..00000000000
--- a/hr/module_def/hr/locale/_messages_doc.json
+++ /dev/null
@@ -1,7 +0,0 @@
-[
- "Description of a Job Opening",
- "Apply / Approve Leaves",
- "Block Holidays on important days.",
- "Applicant for a Job",
- "Human Resources Home"
-]
\ No newline at end of file
diff --git a/hr/module_def/hr/locale/ar-doc.json b/hr/module_def/hr/locale/ar-doc.json
deleted file mode 100644
index f3547fbef39..00000000000
--- a/hr/module_def/hr/locale/ar-doc.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "Applicant for a Job": "\u0637\u0627\u0644\u0628 \u0648\u0638\u064a\u0641\u0629",
- "Apply / Approve Leaves": "\u062a\u0637\u0628\u064a\u0642 / \u0627\u0644\u0645\u0648\u0627\u0641\u0642\u0629 \u0639\u0644\u0649 \u0623\u0648\u0631\u0627\u0642",
- "Block Holidays on important days.": "\u0645\u0646\u0639 \u0627\u0644\u0625\u062c\u0627\u0632\u0627\u062a \u0641\u064a \u0627\u0644\u0623\u064a\u0627\u0645 \u0627\u0644\u0647\u0627\u0645\u0629.",
- "Description of a Job Opening": "\u0648\u0635\u0641 \u0644\u0641\u062a\u062d \u0641\u0631\u0635 \u0627\u0644\u0639\u0645\u0644",
- "Human Resources Home": "\u0627\u0644\u0645\u0648\u0627\u0631\u062f \u0627\u0644\u0628\u0634\u0631\u064a\u0629 \u0627\u0644\u0631\u0626\u064a\u0633\u064a\u0629"
-}
\ No newline at end of file
diff --git a/hr/module_def/hr/locale/es-doc.json b/hr/module_def/hr/locale/es-doc.json
deleted file mode 100644
index 0c9bb9b727e..00000000000
--- a/hr/module_def/hr/locale/es-doc.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "Applicant for a Job": "Pretendiente a un puesto",
- "Apply / Approve Leaves": "Aplicar / Aprobar Hojas",
- "Block Holidays on important days.": "Bloque Vacaciones en d\u00edas importantes.",
- "Description of a Job Opening": "Descripci\u00f3n de una oferta de trabajo",
- "Human Resources Home": "Recursos Humanos Home"
-}
\ No newline at end of file
diff --git a/hr/module_def/hr/locale/fr-doc.json b/hr/module_def/hr/locale/fr-doc.json
deleted file mode 100644
index 4edeabed032..00000000000
--- a/hr/module_def/hr/locale/fr-doc.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "Applicant for a Job": "Demandeur d'une offre d'emploi",
- "Apply / Approve Leaves": "Appliquer / Approuver les feuilles",
- "Block Holidays on important days.": "Bloquer les jours f\u00e9ri\u00e9s importants.",
- "Description of a Job Opening": "Description d'un Job Opening",
- "Human Resources Home": "Ressources humaines Accueil"
-}
\ No newline at end of file
diff --git a/hr/module_def/hr/locale/hi-doc.json b/hr/module_def/hr/locale/hi-doc.json
deleted file mode 100644
index 8056a3e34ac..00000000000
--- a/hr/module_def/hr/locale/hi-doc.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "Applicant for a Job": "\u090f\u0915 \u0928\u094c\u0915\u0930\u0940 \u0915\u0947 \u0932\u093f\u090f \u0906\u0935\u0947\u0926\u0915",
- "Apply / Approve Leaves": "\u092a\u0924\u094d\u0924\u093f\u092f\u093e\u0902 \u0932\u093e\u0917\u0942 / \u0938\u094d\u0935\u0940\u0915\u0943\u0924",
- "Block Holidays on important days.": "\u092e\u0939\u0924\u094d\u0935\u092a\u0942\u0930\u094d\u0923 \u0926\u093f\u0928 \u092a\u0930 \u091b\u0941\u091f\u094d\u091f\u093f\u092f\u093e\u0901 \u092e\u0948.",
- "Description of a Job Opening": "\u090f\u0915 \u0928\u094c\u0915\u0930\u0940 \u0916\u094b\u0932\u0928\u0947 \u0915\u093e \u0935\u093f\u0935\u0930\u0923",
- "Human Resources Home": "\u092e\u093e\u0928\u0935 \u0939\u094b\u092e \u0938\u0902\u0938\u093e\u0927\u0928"
-}
\ No newline at end of file
diff --git a/hr/module_def/hr/locale/hr-doc.json b/hr/module_def/hr/locale/hr-doc.json
deleted file mode 100644
index f6c8011ca97..00000000000
--- a/hr/module_def/hr/locale/hr-doc.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "Applicant for a Job": "Podnositelj zahtjeva za posao",
- "Apply / Approve Leaves": "Nanesite / Odobri li\u0161\u0107e",
- "Block Holidays on important days.": "Blok Odmor o va\u017enim dana.",
- "Description of a Job Opening": "Opis posla otvorenje",
- "Human Resources Home": "Ljudski resursi Home"
-}
\ No newline at end of file
diff --git a/hr/module_def/hr/locale/nl-doc.json b/hr/module_def/hr/locale/nl-doc.json
deleted file mode 100644
index 39dd18b1668..00000000000
--- a/hr/module_def/hr/locale/nl-doc.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "Applicant for a Job": "Aanvrager van een baan",
- "Apply / Approve Leaves": "Toepassen / goedkeuren Leaves",
- "Block Holidays on important days.": "Blok Vakantie op belangrijke dagen.",
- "Description of a Job Opening": "Beschrijving van een vacature",
- "Human Resources Home": "Human Resources Startpagina"
-}
\ No newline at end of file
diff --git a/hr/module_def/hr/locale/pt-doc.json b/hr/module_def/hr/locale/pt-doc.json
deleted file mode 100644
index 626612b6d9c..00000000000
--- a/hr/module_def/hr/locale/pt-doc.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "Applicant for a Job": "Candidato a um emprego",
- "Apply / Approve Leaves": "Aplicar / Aprovar Folhas",
- "Block Holidays on important days.": "Bloquear feriados em dias importantes.",
- "Description of a Job Opening": "Descri\u00e7\u00e3o de uma vaga de emprego",
- "Human Resources Home": "Home Recursos Humanos"
-}
\ No newline at end of file
diff --git a/hr/module_def/hr/locale/sr-doc.json b/hr/module_def/hr/locale/sr-doc.json
deleted file mode 100644
index 982770ae0ff..00000000000
--- a/hr/module_def/hr/locale/sr-doc.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "Applicant for a Job": "\u041a\u0430\u043d\u0434\u0438\u0434\u0430\u0442 \u0437\u0430 \u043f\u043e\u0441\u0430\u043e",
- "Apply / Approve Leaves": "\u041f\u0440\u0438\u043c\u0435\u043d\u0438 / \u041e\u0434\u043e\u0431\u0440\u0438\u0442\u0438 \u041b\u0435\u0430\u0432\u0435\u0441",
- "Description of a Job Opening": "\u041e\u043f\u0438\u0441 \u043f\u043e\u0441\u043b\u0430 \u041e\u0442\u0432\u0430\u0440\u0430\u045a\u0435",
- "Human Resources Home": "\u0409\u0443\u0434\u0441\u043a\u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u0438 \u0425\u043e\u043c\u0435"
-}
\ No newline at end of file
diff --git a/hr/module_def/hr/locale/ta-doc.json b/hr/module_def/hr/locale/ta-doc.json
deleted file mode 100644
index 259947622e9..00000000000
--- a/hr/module_def/hr/locale/ta-doc.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "Applicant for a Job": "\u0b92\u0bb0\u0bc1 \u0bb5\u0bc7\u0bb2\u0bc8 \u0b87\u0ba8\u0bcd\u0ba4 \u0bb5\u0bbf\u0ba3\u0bcd\u0ba3\u0baa\u0bcd\u0baa\u0ba4\u0bbe\u0bb0\u0bb0\u0bcd",
- "Apply / Approve Leaves": "\u0b87\u0bb2\u0bc8\u0b95\u0bb3\u0bcd \u0b92\u0baa\u0bcd\u0baa\u0bc1\u0ba4\u0bb2\u0bcd / \u0bb5\u0bbf\u0ba3\u0bcd\u0ba3\u0baa\u0bcd\u0baa\u0bbf\u0b95\u0bcd\u0b95\u0bb2\u0bbe\u0bae\u0bcd",
- "Description of a Job Opening": "\u0bb5\u0bc7\u0bb2\u0bc8 \u0ba4\u0bc6\u0bbe\u0b9f\u0b95\u0bcd\u0b95 \u0bb5\u0bbf\u0bb3\u0b95\u0bcd\u0b95\u0bae\u0bcd",
- "Human Resources Home": "\u0bae\u0bc1\u0b95\u0baa\u0bcd\u0baa\u0bc1 \u0bae\u0ba9\u0bbf\u0ba4 \u0bb5\u0bb3\u0b99\u0bcd\u0b95\u0bb3\u0bcd"
-}
\ No newline at end of file
diff --git a/hr/page/hr_home/hr_home.js b/hr/page/hr_home/hr_home.js
index 465835f37fd..02733a12870 100644
--- a/hr/page/hr_home/hr_home.js
+++ b/hr/page/hr_home/hr_home.js
@@ -159,6 +159,17 @@ wn.module_page["HR"] = [
doctype: "Grade"
},
]
+ },
+ {
+ title: wn._("Reports"),
+ right: true,
+ icon: "icon-list",
+ items: [
+ {
+ "label":wn._("Employee Leave Balance"),
+ route: "query-report/Employee Leave Balance"
+ },
+ ]
}
];
diff --git a/hr/page/hr_home/locale/_messages_js.json b/hr/page/hr_home/locale/_messages_js.json
index d56452f8442..0d744e05be6 100644
--- a/hr/page/hr_home/locale/_messages_js.json
+++ b/hr/page/hr_home/locale/_messages_js.json
@@ -1,6 +1,7 @@
[
"Leave Setup",
"Documents",
+ "Employee Leave Balance",
"Attendance record.",
"Employee records.",
"Leave Block List",
@@ -33,6 +34,7 @@
"Designation",
"Generate Salary Slips",
"Employee Designation.",
+ "Reports",
"Deduction Type",
"Holiday List",
"Monthly salary template.",
diff --git a/hr/page/hr_home/locale/de-js.json b/hr/page/hr_home/locale/de-js.json
new file mode 100644
index 00000000000..7627256c824
--- /dev/null
+++ b/hr/page/hr_home/locale/de-js.json
@@ -0,0 +1,58 @@
+{
+ "Allocate leaves for the year.": "Weisen Bl\u00e4tter f\u00fcr das Jahr.",
+ "Applicant for a Job (extracted from jobs email).": "Antragsteller f\u00fcr einen Job (extrahiert aus Jobs E-Mail).",
+ "Applications for leave.": "Bei Antr\u00e4gen auf Urlaub.",
+ "Appraisal": "Bewertung",
+ "Appraisal Template": "Bewertung Template",
+ "Attendance": "Teilnahme",
+ "Attendance record.": "Zuschauerrekord.",
+ "Block leave applications by department.": "Block verlassen Anwendungen nach Abteilung.",
+ "Branch": "Zweig",
+ "Claims for expenses made on behalf of the organization.": "Anspr\u00fcche f\u00fcr Aufwendungen im Namen der Organisation gemacht.",
+ "Company branches.": "Unternehmen Niederlassungen.",
+ "Company departments.": "Abteilungen des Unternehmens.",
+ "Deduction Type": "Abzug Typ",
+ "Department": "Abteilung",
+ "Designation": "Bezeichnung",
+ "Documents": "Unterlagen",
+ "Earning Type": "Earning Typ",
+ "Employee": "Mitarbeiter",
+ "Employee Designation.": "Mitarbeiter Bezeichnung.",
+ "Employee Setup": "Mitarbeiter-Setup",
+ "Employee grades": "Mitarbeiter-Typen",
+ "Employee records.": "Mitarbeiter-Datens\u00e4tze.",
+ "Employment Type": "Besch\u00e4ftigungsart",
+ "Expense Claim": "Expense Anspruch",
+ "Expense Claim Type": "Expense Anspruch Type",
+ "Generate Salary Slips": "Generieren Gehaltsabrechnungen",
+ "Grade": "Klasse",
+ "Holiday List": "Ferienwohnung Liste",
+ "Job Applicant": "Job Applicant",
+ "Job Opening": "Stellenangebot",
+ "Leave Allocation": "Lassen Allocation",
+ "Leave Allocation Tool": "Lassen Allocation-Tool",
+ "Leave Application": "Lassen Anwendung",
+ "Leave Block List": "Lassen Block List",
+ "Leave Setup": "Lassen Sie Setup-",
+ "Leave Type": "Lassen Typ",
+ "Leave allocations.": "Lassen Zuweisungen.",
+ "List of holidays.": "Liste der Feiertage.",
+ "Masters": "Masters",
+ "Monthly salary statement.": "Monatsgehalt Aussage.",
+ "Monthly salary template.": "Monatsgehalt Vorlage.",
+ "Opening for a Job.": "\u00d6ffnung f\u00fcr den Job.",
+ "Payroll Setup": "Payroll-Setup",
+ "Performance appraisal.": "Leistungsbeurteilung.",
+ "Process Payroll": "Payroll-Prozess",
+ "Reports": "Reports",
+ "Salary Slip": "Gehaltsabrechnung",
+ "Salary Structure": "Gehaltsstruktur",
+ "Salary components.": "Gehaltsbestandteile.",
+ "Tax and other salary deductions.": "Steuer-und sonstige Lohnabz\u00fcge.",
+ "Template for employee performance appraisals.": "Vorlage f\u00fcr Mitarbeiter Leistungsbeurteilungen.",
+ "Type of employment master.": "Art der Besch\u00e4ftigung Master.",
+ "Type of leaves like casual, sick etc.": "Art der Bl\u00e4tter wie beil\u00e4ufig, krank usw.",
+ "Types of Expense Claim.": "Arten von Expense Anspruch.",
+ "Upload attendance": "Hochladen Teilnahme",
+ "Upload attendance from a .csv file": "Fotogalerie Besuch aus einer. Csv-Datei"
+}
\ No newline at end of file
diff --git a/hr/page/hr_home/locale/pt-BR-js.json b/hr/page/hr_home/locale/pt-BR-js.json
new file mode 100644
index 00000000000..03931875786
--- /dev/null
+++ b/hr/page/hr_home/locale/pt-BR-js.json
@@ -0,0 +1,59 @@
+{
+ "Allocate leaves for the year.": "Alocar licen\u00e7as para o ano.",
+ "Applicant for a Job (extracted from jobs email).": "Candidato a um Emprego (extra\u00eddo de e-mail empregos).",
+ "Applications for leave.": "Pedidos de licen\u00e7a.",
+ "Appraisal": "Avalia\u00e7\u00e3o",
+ "Appraisal Template": "Modelo de Avalia\u00e7\u00e3o",
+ "Attendance": "Comparecimento",
+ "Attendance record.": "Registro de comparecimento.",
+ "Block leave applications by department.": "Bloquear deixar aplica\u00e7\u00f5es por departamento.",
+ "Branch": "Ramo",
+ "Claims for expenses made on behalf of the organization.": "Os pedidos de reembolsos por despesas feitas em favor da organiza\u00e7\u00e3o.",
+ "Company branches.": "Filiais da Empresa.",
+ "Company departments.": "Departamentos da Empresa.",
+ "Deduction Type": "Tipo de dedu\u00e7\u00e3o",
+ "Department": "Departamento",
+ "Designation": "Designa\u00e7\u00e3o",
+ "Documents": "Documentos",
+ "Earning Type": "Tipo de Ganho",
+ "Employee": "Funcion\u00e1rio",
+ "Employee Designation.": "Designa\u00e7\u00e3o empregado.",
+ "Employee Leave Balance": "Equil\u00edbrio Leave empregado",
+ "Employee Setup": "Configura\u00e7\u00e3o do Funcion\u00e1rio",
+ "Employee grades": "Notas do funcion\u00e1rio",
+ "Employee records.": "Registros de funcion\u00e1rios.",
+ "Employment Type": "Tipo de emprego",
+ "Expense Claim": "Pedido de Reembolso de Despesas",
+ "Expense Claim Type": "Tipo de Pedido de Reembolso de Despesas",
+ "Generate Salary Slips": "Gerar folhas de pagamento",
+ "Grade": "Grau",
+ "Holiday List": "Lista de feriado",
+ "Job Applicant": "Candidato a emprego",
+ "Job Opening": "Vaga de emprego",
+ "Leave Allocation": "Aloca\u00e7\u00e3o de Licen\u00e7as",
+ "Leave Allocation Tool": "Ferramenta de Aloca\u00e7\u00e3o de Licen\u00e7as",
+ "Leave Application": "Solicita\u00e7\u00e3o de Licen\u00e7as",
+ "Leave Block List": "Deixe Lista de Bloqueios",
+ "Leave Setup": "Configurar Licen\u00e7as",
+ "Leave Type": "Tipo de Licen\u00e7as",
+ "Leave allocations.": "Aloca\u00e7\u00f5es de Licen\u00e7as.",
+ "List of holidays.": "Lista de feriados.",
+ "Masters": "Cadastros",
+ "Monthly salary statement.": "Declara\u00e7\u00e3o salarial mensal.",
+ "Monthly salary template.": "Modelo de declara\u00e7\u00e3o salarial mensal.",
+ "Opening for a Job.": "Vaga de emprego.",
+ "Payroll Setup": "Configura\u00e7\u00e3o da folha de pagamento",
+ "Performance appraisal.": "Avalia\u00e7\u00e3o de desempenho.",
+ "Process Payroll": "Processa folha de pagamento",
+ "Reports": "Relat\u00f3rios",
+ "Salary Slip": "Folha de pagamento",
+ "Salary Structure": "Estrutura Salarial",
+ "Salary components.": "Componentes salariais.",
+ "Tax and other salary deductions.": "Impostos e outras dedu\u00e7\u00f5es salariais.",
+ "Template for employee performance appraisals.": "Modelo para avalia\u00e7\u00e3o do desempenho dos funcion\u00e1rios.",
+ "Type of employment master.": "Tipo de cadastro de emprego.",
+ "Type of leaves like casual, sick etc.": "Tipo de licen\u00e7as como casual, doen\u00e7a, etc.",
+ "Types of Expense Claim.": "Tipos de reembolso de despesas.",
+ "Upload attendance": "Carregar comparecimento",
+ "Upload attendance from a .csv file": "Carregar comparecimento a partir de um arquivo CSV."
+}
\ No newline at end of file
diff --git a/hr/page/hr_home/locale/th-js.json b/hr/page/hr_home/locale/th-js.json
new file mode 100644
index 00000000000..f494bea1b32
--- /dev/null
+++ b/hr/page/hr_home/locale/th-js.json
@@ -0,0 +1,57 @@
+{
+ "Allocate leaves for the year.": "\u0e08\u0e31\u0e14\u0e2a\u0e23\u0e23\u0e43\u0e1a\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e1b\u0e35",
+ "Applicant for a Job (extracted from jobs email).": "\u0e1c\u0e39\u0e49\u0e02\u0e2d\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e17\u0e33\u0e07\u0e32\u0e19 (\u0e2a\u0e01\u0e31\u0e14\u0e08\u0e32\u0e01\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e07\u0e32\u0e19)",
+ "Applications for leave.": "\u0e42\u0e1b\u0e23\u0e41\u0e01\u0e23\u0e21\u0e1b\u0e23\u0e30\u0e22\u0e38\u0e01\u0e15\u0e4c\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e25\u0e32",
+ "Appraisal": "\u0e01\u0e32\u0e23\u0e15\u0e35\u0e23\u0e32\u0e04\u0e32",
+ "Appraisal Template": "\u0e41\u0e21\u0e48\u0e41\u0e1a\u0e1a\u0e01\u0e32\u0e23\u0e1b\u0e23\u0e30\u0e40\u0e21\u0e34\u0e19",
+ "Attendance": "\u0e01\u0e32\u0e23\u0e14\u0e39\u0e41\u0e25\u0e23\u0e31\u0e01\u0e29\u0e32",
+ "Attendance record.": "\u0e1a\u0e31\u0e19\u0e17\u0e36\u0e01\u0e01\u0e32\u0e23\u0e40\u0e02\u0e49\u0e32\u0e23\u0e48\u0e27\u0e21\u0e1b\u0e23\u0e30\u0e0a\u0e38\u0e21",
+ "Block leave applications by department.": "\u0e1b\u0e34\u0e14\u0e01\u0e31\u0e49\u0e19\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e2d\u0e2d\u0e01\u0e42\u0e14\u0e22\u0e01\u0e23\u0e21",
+ "Branch": "\u0e2a\u0e32\u0e02\u0e32",
+ "Claims for expenses made on behalf of the organization.": "\u0e01\u0e32\u0e23\u0e40\u0e23\u0e35\u0e22\u0e01\u0e23\u0e49\u0e2d\u0e07\u0e04\u0e48\u0e32\u0e43\u0e0a\u0e49\u0e08\u0e48\u0e32\u0e22\u0e17\u0e35\u0e48\u0e17\u0e33\u0e43\u0e19\u0e19\u0e32\u0e21\u0e02\u0e2d\u0e07\u0e2d\u0e07\u0e04\u0e4c\u0e01\u0e23",
+ "Company branches.": "\u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17 \u0e2a\u0e32\u0e02\u0e32",
+ "Company departments.": "\u0e41\u0e1c\u0e19\u0e01\u0e15\u0e48\u0e32\u0e07\u0e46\u0e43\u0e19 \u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17",
+ "Deduction Type": "\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e2b\u0e31\u0e01",
+ "Department": "\u0e41\u0e1c\u0e19\u0e01",
+ "Designation": "\u0e01\u0e32\u0e23\u0e41\u0e15\u0e48\u0e07\u0e15\u0e31\u0e49\u0e07",
+ "Documents": "\u0e40\u0e2d\u0e01\u0e2a\u0e32\u0e23",
+ "Earning Type": "\u0e23\u0e32\u0e22\u0e44\u0e14\u0e49\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17",
+ "Employee": "\u0e25\u0e39\u0e01\u0e08\u0e49\u0e32\u0e07",
+ "Employee Designation.": "\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e41\u0e15\u0e48\u0e07\u0e15\u0e31\u0e49\u0e07\u0e1e\u0e19\u0e31\u0e01\u0e07\u0e32\u0e19",
+ "Employee Setup": "\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07\u0e01\u0e32\u0e23\u0e17\u0e33\u0e07\u0e32\u0e19\u0e02\u0e2d\u0e07\u0e1e\u0e19\u0e31\u0e01\u0e07\u0e32\u0e19",
+ "Employee grades": "\u0e40\u0e01\u0e23\u0e14\u0e02\u0e2d\u0e07\u0e1e\u0e19\u0e31\u0e01\u0e07\u0e32\u0e19",
+ "Employee records.": "\u0e23\u0e30\u0e40\u0e1a\u0e35\u0e22\u0e19\u0e1e\u0e19\u0e31\u0e01\u0e07\u0e32\u0e19",
+ "Employment Type": "\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e01\u0e32\u0e23\u0e08\u0e49\u0e32\u0e07\u0e07\u0e32\u0e19",
+ "Expense Claim": "\u0e40\u0e23\u0e35\u0e22\u0e01\u0e23\u0e49\u0e2d\u0e07\u0e04\u0e48\u0e32\u0e43\u0e0a\u0e49\u0e08\u0e48\u0e32\u0e22",
+ "Expense Claim Type": "\u0e40\u0e23\u0e35\u0e22\u0e01\u0e23\u0e49\u0e2d\u0e07\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e04\u0e48\u0e32\u0e43\u0e0a\u0e49\u0e08\u0e48\u0e32\u0e22",
+ "Generate Salary Slips": "\u0e2a\u0e23\u0e49\u0e32\u0e07 Slips \u0e40\u0e07\u0e34\u0e19\u0e40\u0e14\u0e37\u0e2d\u0e19",
+ "Grade": "\u0e40\u0e01\u0e23\u0e14",
+ "Holiday List": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e27\u0e31\u0e19\u0e2b\u0e22\u0e38\u0e14",
+ "Job Applicant": "\u0e1c\u0e39\u0e49\u0e2a\u0e21\u0e31\u0e04\u0e23\u0e07\u0e32\u0e19",
+ "Job Opening": "\u0e40\u0e1b\u0e34\u0e14\u0e07\u0e32\u0e19",
+ "Leave Allocation": "\u0e1d\u0e32\u0e01\u0e08\u0e31\u0e14\u0e2a\u0e23\u0e23",
+ "Leave Allocation Tool": "\u0e1d\u0e32\u0e01\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e21\u0e37\u0e2d\u0e01\u0e32\u0e23\u0e08\u0e31\u0e14\u0e2a\u0e23\u0e23",
+ "Leave Application": "\u0e1d\u0e32\u0e01\u0e41\u0e2d\u0e1e\u0e25\u0e34\u0e40\u0e04\u0e0a\u0e31\u0e19",
+ "Leave Block List": "\u0e1d\u0e32\u0e01\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e1a\u0e25\u0e47\u0e2d\u0e01",
+ "Leave Setup": "\u0e1d\u0e32\u0e01\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07",
+ "Leave Type": "\u0e1d\u0e32\u0e01\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17",
+ "Leave allocations.": "\u0e1d\u0e32\u0e01\u0e08\u0e31\u0e14\u0e2a\u0e23\u0e23",
+ "List of holidays.": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e02\u0e2d\u0e07\u0e27\u0e31\u0e19\u0e2b\u0e22\u0e38\u0e14",
+ "Masters": "\u0e42\u0e17",
+ "Monthly salary statement.": "\u0e07\u0e1a\u0e40\u0e07\u0e34\u0e19\u0e40\u0e14\u0e37\u0e2d\u0e19",
+ "Monthly salary template.": "\u0e41\u0e21\u0e48\u0e40\u0e07\u0e34\u0e19\u0e40\u0e14\u0e37\u0e2d\u0e19",
+ "Opening for a Job.": "\u0e40\u0e1b\u0e34\u0e14\u0e07\u0e32\u0e19",
+ "Payroll Setup": "\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07\u0e40\u0e07\u0e34\u0e19\u0e40\u0e14\u0e37\u0e2d\u0e19",
+ "Performance appraisal.": "\u0e1b\u0e23\u0e30\u0e40\u0e21\u0e34\u0e19\u0e1c\u0e25\u0e01\u0e32\u0e23\u0e1b\u0e0f\u0e34\u0e1a\u0e31\u0e15\u0e34",
+ "Process Payroll": "\u0e40\u0e07\u0e34\u0e19\u0e40\u0e14\u0e37\u0e2d\u0e19\u0e01\u0e23\u0e30\u0e1a\u0e27\u0e19\u0e01\u0e32\u0e23",
+ "Salary Slip": "\u0e2a\u0e25\u0e34\u0e1b\u0e40\u0e07\u0e34\u0e19\u0e40\u0e14\u0e37\u0e2d\u0e19",
+ "Salary Structure": "\u0e42\u0e04\u0e23\u0e07\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e40\u0e07\u0e34\u0e19\u0e40\u0e14\u0e37\u0e2d\u0e19",
+ "Salary components.": "\u0e2a\u0e48\u0e27\u0e19\u0e1b\u0e23\u0e30\u0e01\u0e2d\u0e1a\u0e40\u0e07\u0e34\u0e19\u0e40\u0e14\u0e37\u0e2d\u0e19",
+ "Tax and other salary deductions.": "\u0e20\u0e32\u0e29\u0e35\u0e41\u0e25\u0e30\u0e2d\u0e37\u0e48\u0e19 \u0e46 \u0e2b\u0e31\u0e01\u0e40\u0e07\u0e34\u0e19\u0e40\u0e14\u0e37\u0e2d\u0e19",
+ "Template for employee performance appraisals.": "\u0e41\u0e21\u0e48\u0e41\u0e1a\u0e1a\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e1b\u0e23\u0e30\u0e40\u0e21\u0e34\u0e19\u0e1c\u0e25\u0e01\u0e32\u0e23\u0e1b\u0e0f\u0e34\u0e1a\u0e31\u0e15\u0e34\u0e07\u0e32\u0e19\u0e02\u0e2d\u0e07\u0e1e\u0e19\u0e31\u0e01\u0e07\u0e32\u0e19",
+ "Type of employment master.": "\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e01\u0e32\u0e23\u0e08\u0e49\u0e32\u0e07\u0e07\u0e32\u0e19\u0e02\u0e2d\u0e07\u0e40\u0e08\u0e49\u0e32\u0e19\u0e32\u0e22",
+ "Type of leaves like casual, sick etc.": "\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e02\u0e2d\u0e07\u0e43\u0e1a\u0e40\u0e0a\u0e48\u0e19\u0e25\u0e33\u0e25\u0e2d\u0e07 \u0e2f\u0e25\u0e2f \u0e1b\u0e48\u0e27\u0e22",
+ "Types of Expense Claim.": "\u0e0a\u0e19\u0e34\u0e14\u0e02\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e40\u0e23\u0e35\u0e22\u0e01\u0e23\u0e49\u0e2d\u0e07\u0e04\u0e48\u0e32\u0e43\u0e0a\u0e49\u0e08\u0e48\u0e32\u0e22",
+ "Upload attendance": "\u0e2d\u0e31\u0e1e\u0e42\u0e2b\u0e25\u0e14\u0e40\u0e02\u0e49\u0e32\u0e23\u0e48\u0e27\u0e21",
+ "Upload attendance from a .csv file": "\u0e2d\u0e31\u0e1e\u0e42\u0e2b\u0e25\u0e14\u0e01\u0e32\u0e23\u0e14\u0e39\u0e41\u0e25\u0e23\u0e31\u0e01\u0e29\u0e32\u0e08\u0e32\u0e01. csv \u0e17\u0e35\u0e48"
+}
\ No newline at end of file
diff --git a/hr/report/__init__.py b/hr/report/__init__.py
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/hr/report/employee_leave_balance/__init__.py b/hr/report/employee_leave_balance/__init__.py
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/hr/report/employee_leave_balance/employee_leave_balance.js b/hr/report/employee_leave_balance/employee_leave_balance.js
new file mode 100644
index 00000000000..d19b48f4972
--- /dev/null
+++ b/hr/report/employee_leave_balance/employee_leave_balance.js
@@ -0,0 +1,18 @@
+wn.query_reports["Employee Leave Balance"] = {
+ "filters": [
+ {
+ "fieldname":"fiscal_year",
+ "label": "Fiscal Year",
+ "fieldtype": "Link",
+ "options": "Fiscal Year",
+ "default": wn.defaults.get_user_default("fiscal_year")
+ },
+ {
+ "fieldname":"company",
+ "label": "Company",
+ "fieldtype": "Link",
+ "options": "Company",
+ "default": wn.defaults.get_user_default("company")
+ }
+ ]
+}
\ No newline at end of file
diff --git a/hr/report/employee_leave_balance/employee_leave_balance.py b/hr/report/employee_leave_balance/employee_leave_balance.py
new file mode 100644
index 00000000000..9d859daf238
--- /dev/null
+++ b/hr/report/employee_leave_balance/employee_leave_balance.py
@@ -0,0 +1,58 @@
+from __future__ import unicode_literals
+import webnotes
+from webnotes.widgets.reportview import execute as runreport
+
+def execute(filters=None):
+ if not filters: filters = {}
+
+ employee_filters = filters.get("company") and \
+ [["Employee", "company", "=", filters.get("company")]] or None
+ employees = runreport(doctype="Employee", fields=["name", "employee_name", "department"],
+ filters=employee_filters)
+ leave_types = webnotes.conn.sql_list("select name from `tabLeave Type`")
+
+ if filters.get("fiscal_year"):
+ fiscal_years = [filters["fiscal_year"]]
+ else:
+ fiscal_years = webnotes.conn.sql_list("select name from `tabFiscal Year` order by name desc")
+
+ employee_in = '", "'.join([e.name for e in employees])
+
+ allocations = webnotes.conn.sql("""select employee, fiscal_year, leave_type, total_leaves_allocated
+ from `tabLeave Allocation`
+ where docstatus=1 and employee in ("%s")""" % employee_in, as_dict=True)
+ applications = webnotes.conn.sql("""select employee, fiscal_year, leave_type, SUM(total_leave_days) as leaves
+ from `tabLeave Application`
+ where status="Approved" and docstatus = 1 and employee in ("%s")
+ group by employee, fiscal_year, leave_type""" % employee_in, as_dict=True)
+
+ columns = [
+ "Fiscal Year", "Employee:Link/Employee:150", "Employee Name::200", "Department::150"
+ ]
+
+ for leave_type in leave_types:
+ columns.append(leave_type + " Allocated:Float")
+ columns.append(leave_type + " Taken:Float")
+ columns.append(leave_type + " Balance:Float")
+
+ data = {}
+ for d in allocations:
+ data.setdefault((d.fiscal_year, d.employee,
+ d.leave_type), webnotes._dict()).allocation = d.total_leaves_allocated
+
+ for d in applications:
+ data.setdefault((d.fiscal_year, d.employee,
+ d.leave_type), webnotes._dict()).leaves = d.leaves
+
+ result = []
+ for fiscal_year in fiscal_years:
+ for employee in employees:
+ row = [fiscal_year, employee.name, employee.employee_name, employee.department]
+ result.append(row)
+ for leave_type in leave_types:
+ tmp = data.get((fiscal_year, employee.name, leave_type), webnotes._dict())
+ row.append(tmp.allocation or 0)
+ row.append(tmp.leaves or 0)
+ row.append((tmp.allocation or 0) - (tmp.leaves or 0))
+
+ return columns, result
\ No newline at end of file
diff --git a/hr/report/employee_leave_balance/employee_leave_balance.txt b/hr/report/employee_leave_balance/employee_leave_balance.txt
new file mode 100644
index 00000000000..2a6d74f20af
--- /dev/null
+++ b/hr/report/employee_leave_balance/employee_leave_balance.txt
@@ -0,0 +1,21 @@
+[
+ {
+ "creation": "2013-02-22 15:29:34",
+ "docstatus": 0,
+ "modified": "2013-02-22 15:53:01",
+ "modified_by": "Administrator",
+ "owner": "Administrator"
+ },
+ {
+ "doctype": "Report",
+ "is_standard": "Yes",
+ "name": "__common__",
+ "ref_doctype": "Employee",
+ "report_name": "Employee Leave Balance",
+ "report_type": "Script Report"
+ },
+ {
+ "doctype": "Report",
+ "name": "Employee Leave Balance"
+ }
+]
\ No newline at end of file
diff --git a/hr/search_criteria/employee_leave_balance_report/__init__.py b/hr/search_criteria/employee_leave_balance_report/__init__.py
deleted file mode 100644
index baffc488252..00000000000
--- a/hr/search_criteria/employee_leave_balance_report/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-from __future__ import unicode_literals
diff --git a/hr/search_criteria/employee_leave_balance_report/employee_leave_balance_report.js b/hr/search_criteria/employee_leave_balance_report/employee_leave_balance_report.js
deleted file mode 100644
index 808b6d46d90..00000000000
--- a/hr/search_criteria/employee_leave_balance_report/employee_leave_balance_report.js
+++ /dev/null
@@ -1,41 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program. If not, see .
-
-this.mytabs.items['Select Columns'].hide();
-
-this.mytabs.tabs['More Filters'].hide();
-
-report.customize_filters = function() {
- this.add_filter({
- fieldname:'fiscal_year',
- label:'Fiscal Year',
- fieldtype:'Link',
- ignore : 1,
- options: 'Fiscal Year',
- parent:'Leave Allocation',
- in_first_page:1,
- report_default: sys_defaults.fiscal_year
- });
- this.add_filter({
- fieldname:'employee_name',
- label:'Employee Name',
- fieldtype:'Data',
- ignore : 1,
- options: '',
- parent:'Leave Allocation',
- in_first_page:1
- });
-}
\ No newline at end of file
diff --git a/hr/search_criteria/employee_leave_balance_report/employee_leave_balance_report.py b/hr/search_criteria/employee_leave_balance_report/employee_leave_balance_report.py
deleted file mode 100644
index 5b8ed08a152..00000000000
--- a/hr/search_criteria/employee_leave_balance_report/employee_leave_balance_report.py
+++ /dev/null
@@ -1,73 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
-
-from __future__ import unicode_literals
-
-leave_types = sql("""
- SELECT name FROM `tabLeave Type`
- WHERE
- docstatus!=2 AND
- name NOT IN ('Compensatory Off', 'Leave Without Pay')""")
-col=[]
-col.append(['Employee ID', 'Data', '150px', ''])
-col.append(['Employee Name', 'Data', '150px', ''])
-col.append(['Fiscal Year', 'Data', '150px', ''])
-
-for e in leave_types:
- l = (len(e[0])*9)
- if l < 150 : col_width = '150px'
- else: col_width = '%spx'%(l)
- col.append([e[0],'Currency',col_width,''])
-
-col.append(['Total Balance','Currency','150px',''])
-
-for c in col:
- colnames.append(c[0])
- coltypes.append(c[1])
- colwidths.append(c[2])
- coloptions.append(c[3])
- col_idx[c[0]] = len(colnames)
-
-data = res
-res = []
-
-try:
- for d in data:
- exists = 0
- ind = None
-
- # Check if the employee record exists in list 'res'
- for r in res:
- if r[0] == d[0] and r[1] == d[1]:
- exists = 1
- ind = res.index(r)
- break
- if d[3] in colnames:
- # If exists, then append the leave type data
- if exists:
- res[ind][colnames.index(d[3])] = flt(d[4]) - flt(d[5])
- res[ind][len(colnames)-1] = sum(res[ind][3:-1])
- # Else create a new row in res
- else:
- new_row = [0.0 for c in colnames]
- new_row[0] = d[0]
- new_row[1] = d[1]
- new_row[2] = d[2]
- new_row[colnames.index(d[3])] = flt(d[4]) - flt(d[5])
- new_row[len(colnames)-1] = sum(new_row[3:-1])
- res.append(new_row)
-except Exception, e:
- msgprint(e)
\ No newline at end of file
diff --git a/hr/search_criteria/employee_leave_balance_report/employee_leave_balance_report.sql b/hr/search_criteria/employee_leave_balance_report/employee_leave_balance_report.sql
deleted file mode 100644
index 454772aa270..00000000000
--- a/hr/search_criteria/employee_leave_balance_report/employee_leave_balance_report.sql
+++ /dev/null
@@ -1,25 +0,0 @@
-SELECT
- leave_alloc.employee AS 'employee',
- leave_alloc.employee_name AS 'employee_name',
- leave_alloc.fiscal_year AS 'fiscal_year',
- leave_alloc.leave_type AS 'leave_type',
- leave_alloc.total_leaves_allocated AS 'total_leaves_allocated',
- SUM(leave_app.total_leave_days) AS 'total_leaves_applied'
-FROM
- `tabLeave Allocation` AS leave_alloc LEFT JOIN `tabLeave Application` AS leave_app
- ON leave_alloc.employee=leave_app.employee AND
- leave_alloc.leave_type=leave_app.leave_type AND
- leave_alloc.fiscal_year=leave_app.fiscal_year AND
- leave_app.docstatus=1
-WHERE
- leave_alloc.docstatus=1 AND
- leave_alloc.fiscal_year LIKE '%(fiscal_year)s%%' AND
- leave_alloc.employee_name LIKE '%(employee_name)s%%'
-GROUP BY
- employee,
- fiscal_year,
- leave_type
-ORDER BY
- employee,
- fiscal_year,
- leave_type
\ No newline at end of file
diff --git a/hr/search_criteria/employee_leave_balance_report/employee_leave_balance_report.txt b/hr/search_criteria/employee_leave_balance_report/employee_leave_balance_report.txt
deleted file mode 100644
index 74c0d82c0e9..00000000000
--- a/hr/search_criteria/employee_leave_balance_report/employee_leave_balance_report.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-[
- {
- "owner": "harshada@webnotestech.com",
- "docstatus": 0,
- "creation": "2010-12-14 10:33:09",
- "modified_by": "Administrator",
- "modified": "2011-10-31 15:42:36"
- },
- {
- "description": "Employeewise Balance Leave Report",
- "module": "HR",
- "standard": "Yes",
- "sort_order": "ASC",
- "filters": "{'Employee\u0001Saved':1,'Employee\u0001Submitted':1,'Employee\u0001Gender':'','Employee\u0001Month of Birth':'','Employee\u0001Status':'Active'}",
- "doc_type": "Employee",
- "name": "__common__",
- "doctype": "Search Criteria",
- "sort_by": "`tabEmployee`.`name`",
- "page_len": 100,
- "criteria_name": "Employee Leave Balance Report",
- "columns": "Employee\u0001ID"
- },
- {
- "name": "employeewise_balance_leave_report",
- "doctype": "Search Criteria"
- }
-]
\ No newline at end of file
diff --git a/manufacturing/doctype/bom/locale/de-doc.json b/manufacturing/doctype/bom/locale/de-doc.json
new file mode 100644
index 00000000000..b5acbed52b6
--- /dev/null
+++ b/manufacturing/doctype/bom/locale/de-doc.json
@@ -0,0 +1,29 @@
+{
+ "Amended From": "Ge\u00e4ndert von",
+ "BOM": "BOM",
+ "BOM Item": "St\u00fccklistenposition",
+ "BOM Operations": "BOM Operationen",
+ "Costing": "Kalkulation",
+ "Is Active": "Aktiv ist",
+ "Is Default": "Ist Standard",
+ "Item": "Artikel",
+ "Item Desription": "Artikel Desription",
+ "Item UOM": "Artikel UOM",
+ "Item to be manufactured or repacked": "Artikel hergestellt oder umgepackt werden",
+ "Last Purchase Rate": "Last Purchase Rate",
+ "Manage cost of operations": "Verwalten Kosten der Operationen",
+ "Manufacturing": "Herstellung",
+ "Materials": "Materialien",
+ "Materials Required (Exploded)": "Ben\u00f6tigte Materialien (Explosionszeichnung)",
+ "More Info": "Mehr Info",
+ "Operations": "Gesch\u00e4ftst\u00e4tigkeit",
+ "Project Name": "Project Name",
+ "Quantity": "Menge",
+ "Quantity of item obtained after manufacturing / repacking from given quantities of raw materials": "Anzahl der Artikel nach der Herstellung / Umpacken vom Angesichts quantities von Rohstoffen Erhalten",
+ "Rate Of Materials Based On": "Rate Of Materialien auf Basis von",
+ "Total Cost": "Total Cost",
+ "Total Operating Cost": "Gesamten Betriebskosten",
+ "Total Raw Material Cost": "Insgesamt Rohstoffkosten",
+ "Valuation Rate": "Valuation bewerten",
+ "With Operations": "Mit Operations"
+}
\ No newline at end of file
diff --git a/manufacturing/doctype/bom/locale/de-py.json b/manufacturing/doctype/bom/locale/de-py.json
new file mode 100644
index 00000000000..cd631f93144
--- /dev/null
+++ b/manufacturing/doctype/bom/locale/de-py.json
@@ -0,0 +1,7 @@
+{
+ ": It is linked to other active BOM(s)": ": Es wird mit anderen aktiven BOM (s) verbunden",
+ "Item": "Artikel",
+ "cancel": "k\u00fcndigen",
+ "deactivate": "deaktivieren",
+ "has been entered atleast twice": "wurde atleast zweimal eingegeben"
+}
\ No newline at end of file
diff --git a/manufacturing/doctype/bom/locale/pt-BR-doc.json b/manufacturing/doctype/bom/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..37717d16328
--- /dev/null
+++ b/manufacturing/doctype/bom/locale/pt-BR-doc.json
@@ -0,0 +1,29 @@
+{
+ "Amended From": "Corrigido De",
+ "BOM": "LDM",
+ "BOM Item": "Item da LDM",
+ "BOM Operations": "Opera\u00e7\u00f5es da LDM",
+ "Costing": "Custeio",
+ "Is Active": "\u00c9 Ativo",
+ "Is Default": "\u00c9 padr\u00e3o",
+ "Item": "Item",
+ "Item Desription": "Descri\u00e7\u00e3o do Item",
+ "Item UOM": "UDM do Item",
+ "Item to be manufactured or repacked": "Item a ser fabricado ou reembalado",
+ "Last Purchase Rate": "Valor da \u00faltima compra",
+ "Manage cost of operations": "Gerenciar custo das opera\u00e7\u00f5es",
+ "Manufacturing": "Fabrica\u00e7\u00e3o",
+ "Materials": "Materiais",
+ "Materials Required (Exploded)": "Materiais necess\u00e1rios (explodida)",
+ "More Info": "Mais informa\u00e7\u00f5es",
+ "Operations": "Opera\u00e7\u00f5es",
+ "Project Name": "Nome do Projeto",
+ "Quantity": "Quantidade",
+ "Quantity of item obtained after manufacturing / repacking from given quantities of raw materials": "Quantidade do item obtido ap\u00f3s a fabrica\u00e7\u00e3o / reembalagem a partir de determinadas quantidades de mat\u00e9ria-prima",
+ "Rate Of Materials Based On": "Taxa de materiais com base em",
+ "Total Cost": "Custo Total",
+ "Total Operating Cost": "Custo de Operacional Total",
+ "Total Raw Material Cost": "Custo Total das mat\u00e9rias-primas",
+ "Valuation Rate": "Taxa de Avalia\u00e7\u00e3o",
+ "With Operations": "Com Opera\u00e7\u00f5es"
+}
\ No newline at end of file
diff --git a/manufacturing/doctype/bom/locale/pt-BR-py.json b/manufacturing/doctype/bom/locale/pt-BR-py.json
new file mode 100644
index 00000000000..6964346d706
--- /dev/null
+++ b/manufacturing/doctype/bom/locale/pt-BR-py.json
@@ -0,0 +1,9 @@
+{
+ " against same operation": "contra a mesma opera\u00e7\u00e3o",
+ ": It is linked to other active BOM(s)": ": Est\u00e1 ligado a outra(s) LDM(s) ativa(s)",
+ "Cannot ": "N\u00e3o pode",
+ "Item": "Item",
+ "cancel": "cancelar",
+ "deactivate": "desativar",
+ "has been entered atleast twice": "foi inserido pelo menos duas vezes"
+}
\ No newline at end of file
diff --git a/manufacturing/doctype/bom/locale/th-doc.json b/manufacturing/doctype/bom/locale/th-doc.json
new file mode 100644
index 00000000000..543af29dab7
--- /dev/null
+++ b/manufacturing/doctype/bom/locale/th-doc.json
@@ -0,0 +1,29 @@
+{
+ "Amended From": "\u0e41\u0e01\u0e49\u0e44\u0e02\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21",
+ "BOM": "BOM",
+ "BOM Item": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23 BOM",
+ "BOM Operations": "\u0e01\u0e32\u0e23\u0e14\u0e33\u0e40\u0e19\u0e34\u0e19\u0e07\u0e32\u0e19 BOM",
+ "Costing": "\u0e15\u0e49\u0e19\u0e17\u0e38\u0e19",
+ "Is Active": "\u0e21\u0e35\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19",
+ "Is Default": "\u0e40\u0e1b\u0e47\u0e19\u0e04\u0e48\u0e32\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19",
+ "Item": "\u0e0a\u0e34\u0e49\u0e19",
+ "Item Desription": "Desription \u0e23\u0e32\u0e22\u0e01\u0e32\u0e23",
+ "Item UOM": "UOM \u0e23\u0e32\u0e22\u0e01\u0e32\u0e23",
+ "Item to be manufactured or repacked": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e17\u0e35\u0e48\u0e08\u0e30\u0e1c\u0e25\u0e34\u0e15\u0e2b\u0e23\u0e37\u0e2d repacked",
+ "Last Purchase Rate": "\u0e2d\u0e31\u0e15\u0e23\u0e32\u0e0b\u0e37\u0e49\u0e2d\u0e25\u0e48\u0e32\u0e2a\u0e38\u0e14",
+ "Manage cost of operations": "\u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e04\u0e48\u0e32\u0e43\u0e0a\u0e49\u0e08\u0e48\u0e32\u0e22\u0e43\u0e19\u0e01\u0e32\u0e23\u0e14\u0e33\u0e40\u0e19\u0e34\u0e19\u0e07\u0e32\u0e19",
+ "Manufacturing": "\u0e01\u0e32\u0e23\u0e1c\u0e25\u0e34\u0e15",
+ "Materials": "\u0e27\u0e31\u0e2a\u0e14\u0e38",
+ "Materials Required (Exploded)": "\u0e27\u0e31\u0e2a\u0e14\u0e38\u0e1a\u0e31\u0e07\u0e04\u0e31\u0e1a (\u0e23\u0e30\u0e40\u0e1a\u0e34\u0e14)",
+ "More Info": "\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21",
+ "Operations": "\u0e01\u0e32\u0e23\u0e14\u0e33\u0e40\u0e19\u0e34\u0e19\u0e07\u0e32\u0e19",
+ "Project Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e42\u0e04\u0e23\u0e07\u0e01\u0e32\u0e23",
+ "Quantity": "\u0e1b\u0e23\u0e34\u0e21\u0e32\u0e13",
+ "Quantity of item obtained after manufacturing / repacking from given quantities of raw materials": "\u0e1b\u0e23\u0e34\u0e21\u0e32\u0e13\u0e02\u0e2d\u0e07\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e17\u0e35\u0e48\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e2b\u0e25\u0e31\u0e07\u0e08\u0e32\u0e01\u0e01\u0e32\u0e23\u0e1c\u0e25\u0e34\u0e15 / repacking \u0e08\u0e32\u0e01\u0e1b\u0e23\u0e34\u0e21\u0e32\u0e13\u0e17\u0e35\u0e48\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e02\u0e2d\u0e07\u0e27\u0e31\u0e15\u0e16\u0e38\u0e14\u0e34\u0e1a",
+ "Rate Of Materials Based On": "\u0e2d\u0e31\u0e15\u0e23\u0e32\u0e27\u0e31\u0e2a\u0e14\u0e38\u0e15\u0e32\u0e21",
+ "Total Cost": "\u0e04\u0e48\u0e32\u0e43\u0e0a\u0e49\u0e08\u0e48\u0e32\u0e22\u0e23\u0e27\u0e21",
+ "Total Operating Cost": "\u0e04\u0e48\u0e32\u0e43\u0e0a\u0e49\u0e08\u0e48\u0e32\u0e22\u0e01\u0e32\u0e23\u0e14\u0e33\u0e40\u0e19\u0e34\u0e19\u0e07\u0e32\u0e19\u0e23\u0e27\u0e21",
+ "Total Raw Material Cost": "\u0e04\u0e48\u0e32\u0e27\u0e31\u0e2a\u0e14\u0e38\u0e14\u0e34\u0e1a\u0e23\u0e27\u0e21",
+ "Valuation Rate": "\u0e2d\u0e31\u0e15\u0e23\u0e32\u0e01\u0e32\u0e23\u0e1b\u0e23\u0e30\u0e40\u0e21\u0e34\u0e19",
+ "With Operations": "\u0e01\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e14\u0e33\u0e40\u0e19\u0e34\u0e19\u0e07\u0e32\u0e19"
+}
\ No newline at end of file
diff --git a/manufacturing/doctype/bom/locale/th-py.json b/manufacturing/doctype/bom/locale/th-py.json
new file mode 100644
index 00000000000..2a2f383952a
--- /dev/null
+++ b/manufacturing/doctype/bom/locale/th-py.json
@@ -0,0 +1,9 @@
+{
+ " against same operation": "\u0e01\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e14\u0e33\u0e40\u0e19\u0e34\u0e19\u0e07\u0e32\u0e19\u0e40\u0e14\u0e35\u0e22\u0e27\u0e01\u0e31\u0e19",
+ ": It is linked to other active BOM(s)": ": \u0e21\u0e31\u0e19\u0e08\u0e30\u0e40\u0e0a\u0e37\u0e48\u0e2d\u0e21\u0e42\u0e22\u0e07\u0e01\u0e31\u0e1a BOM \u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e2d\u0e37\u0e48\u0e19 \u0e46 (s)",
+ "Cannot ": "\u0e44\u0e21\u0e48\u0e44\u0e14\u0e49",
+ "Item": "\u0e0a\u0e34\u0e49\u0e19",
+ "cancel": "\u0e22\u0e01\u0e40\u0e25\u0e34\u0e01",
+ "deactivate": "\u0e22\u0e01\u0e40\u0e25\u0e34\u0e01\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19",
+ "has been entered atleast twice": "\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e1b\u0e49\u0e2d\u0e19 atleast \u0e2a\u0e2d\u0e07"
+}
\ No newline at end of file
diff --git a/manufacturing/doctype/bom/test_bom.py b/manufacturing/doctype/bom/test_bom.py
index 68d9ce85f43..e742c0c8acb 100644
--- a/manufacturing/doctype/bom/test_bom.py
+++ b/manufacturing/doctype/bom/test_bom.py
@@ -18,130 +18,164 @@
from __future__ import unicode_literals
import unittest
import webnotes
-import webnotes.model
-from webnotes.utils import nowdate, flt
-from accounts.utils import get_fiscal_year
-from webnotes.model.doclist import DocList
-import copy
-company = webnotes.conn.get_default("company")
-
-
-def load_data():
-
- # create default warehouse
- if not webnotes.conn.exists("Warehouse", "Default Warehouse"):
- webnotes.insert({"doctype": "Warehouse",
- "warehouse_name": "Default Warehouse",
- "warehouse_type": "Stores"})
-
- # create UOM: Nos.
- if not webnotes.conn.exists("UOM", "Nos"):
- webnotes.insert({"doctype": "UOM", "uom_name": "Nos"})
-
- from webnotes.tests import insert_test_data
- # create item groups and items
- insert_test_data("Item Group",
- sort_fn=lambda ig: (ig[0].get('parent_item_group'), ig[0].get('name')))
- insert_test_data("Item")
-
-base_bom_fg = [
- {"doctype": "BOM", "item": "Android Jack D", "quantity": 1,
- "is_active": "Yes", "is_default": 1, "uom": "Nos"},
- {"doctype": "BOM Operation", "operation_no": 1, "parentfield": "bom_operations",
- "opn_description": "Development", "hour_rate": 10, "time_in_mins": 90},
- {"doctype": "BOM Item", "item_code": "Home Desktop 300", "operation_no": 1,
- "qty": 2, "rate": 20, "stock_uom": "Nos", "parentfield": "bom_materials"},
- {"doctype": "BOM Item", "item_code": "Home Desktop 100", "operation_no": 1,
- "qty": 1, "rate": 300, "stock_uom": "Nos", "parentfield": "bom_materials"},
- {"doctype": "BOM Item", "item_code": "Nebula 7", "operation_no": 1,
- "qty": 5, "stock_uom": "Nos", "parentfield": "bom_materials"},
-]
-
-base_bom_child = [
- {"doctype": "BOM", "item": "Nebula 7", "quantity": 5,
- "is_active": "Yes", "is_default": 1, "uom": "Nos"},
- {"doctype": "BOM Operation", "operation_no": 1, "parentfield": "bom_operations",
- "opn_description": "Development"},
- {"doctype": "BOM Item", "item_code": "Android Jack S", "operation_no": 1,
- "qty": 10, "stock_uom": "Nos", "parentfield": "bom_materials"}
-]
-
-base_bom_grandchild = [
- {"doctype": "BOM", "item": "Android Jack S", "quantity": 1,
- "is_active": "Yes", "is_default": 1, "uom": "Nos"},
- {"doctype": "BOM Operation", "operation_no": 1, "parentfield": "bom_operations",
- "opn_description": "Development"},
- {"doctype": "BOM Item", "item_code": "Home Desktop 300", "operation_no": 1,
- "qty": 3, "rate": 10, "stock_uom": "Nos", "parentfield": "bom_materials"}
-]
-
-
-class TestPurchaseReceipt(unittest.TestCase):
- def setUp(self):
- webnotes.conn.begin()
- load_data()
-
- def test_bom_validation(self):
- # show throw error bacause bom no missing for sub-assembly item
- bom_fg = copy.deepcopy(base_bom_fg)
- self.assertRaises(webnotes.ValidationError, webnotes.insert, DocList(bom_fg))
-
- # main item is not a manufacturing item
- bom_fg = copy.deepcopy(base_bom_fg)
- bom_fg[0]["item"] = "Home Desktop 200"
- bom_fg.pop(4)
- self.assertRaises(webnotes.ValidationError, webnotes.insert, DocList(bom_fg))
-
- # operation no mentioed in material table not matching with operation table
- bom_fg = copy.deepcopy(base_bom_fg)
- bom_fg.pop(4)
- bom_fg[2]["operation_no"] = 2
- self.assertRaises(webnotes.ValidationError, webnotes.insert, DocList(bom_fg))
-
-
- def test_bom(self):
- gc_wrapper = webnotes.insert(DocList(base_bom_grandchild))
- gc_wrapper.submit()
-
- bom_child = copy.deepcopy(base_bom_child)
- bom_child[2]["bom_no"] = gc_wrapper.doc.name
- child_wrapper = webnotes.insert(DocList(bom_child))
- child_wrapper.submit()
-
- bom_fg = copy.deepcopy(base_bom_fg)
- bom_fg[4]["bom_no"] = child_wrapper.doc.name
- fg_wrapper = webnotes.insert(DocList(bom_fg))
- fg_wrapper.load_from_db()
-
- self.check_bom_cost(fg_wrapper)
-
- self.check_flat_bom(fg_wrapper, child_wrapper, gc_wrapper)
-
- def check_bom_cost(self, fg_wrapper):
- expected_values = {
- "operating_cost": 15,
- "raw_material_cost": 640,
- "total_cost": 655
+test_records = [
+ [
+ {
+ "doctype": "BOM",
+ "item": "_Test FG Item",
+ "quantity": 1.0,
+ "is_active": 1,
+ "is_default": 1,
+ "docstatus": 1
+ },
+ {
+ "doctype": "BOM Item",
+ "item_code": "_Test Item",
+ "parentfield": "bom_materials",
+ "qty": 1.0,
+ "rate": 5000.0,
+ "amount": 5000.0,
+ "stock_uom": "No."
+ },
+ {
+ "doctype": "BOM Item",
+ "item_code": "_Test Item Home Desktop 100",
+ "parentfield": "bom_materials",
+ "qty": 2.0,
+ "rate": 1000.0,
+ "amount": 2000.0,
+ "stock_uom": "No."
}
+ ]
+]
- for key in expected_values:
- self.assertEqual(flt(expected_values[key]), flt(fg_wrapper.doc.fields.get(key)))
-
- def check_flat_bom(self, fg_wrapper, child_wrapper, gc_wrapper):
- expected_flat_bom_items = {
- ("Home Desktop 300", fg_wrapper.doc.name): (2, 20),
- ("Home Desktop 100", fg_wrapper.doc.name): (1, 300),
- ("Home Desktop 300", gc_wrapper.doc.name): (30, 10)
- }
-
- self.assertEqual(len(fg_wrapper.doclist.get({"parentfield": "flat_bom_details"})), 3)
-
- for key, val in expected_flat_bom_items.items():
- flat_bom = fg_wrapper.doclist.get({"parentfield": "flat_bom_details",
- "item_code": key[0], "parent_bom": key[1]})[0]
- self.assertEqual(val, (flat_bom.qty, flat_bom.rate))
-
-
- def tearDown(self):
- webnotes.conn.rollback()
\ No newline at end of file
+
+
+# import webnotes.model
+# from webnotes.utils import nowdate, flt
+# from accounts.utils import get_fiscal_year
+# from webnotes.model.doclist import DocList
+# import copy
+#
+# company = webnotes.conn.get_default("company")
+#
+#
+# def load_data():
+#
+# # create default warehouse
+# if not webnotes.conn.exists("Warehouse", "Default Warehouse"):
+# webnotes.insert({"doctype": "Warehouse",
+# "warehouse_name": "Default Warehouse",
+# "warehouse_type": "Stores"})
+#
+# # create UOM: Nos.
+# if not webnotes.conn.exists("UOM", "Nos"):
+# webnotes.insert({"doctype": "UOM", "uom_name": "Nos"})
+#
+# from webnotes.tests import insert_test_data
+# # create item groups and items
+# insert_test_data("Item Group",
+# sort_fn=lambda ig: (ig[0].get('parent_item_group'), ig[0].get('name')))
+# insert_test_data("Item")
+#
+# base_bom_fg = [
+# {"doctype": "BOM", "item": "Android Jack D", "quantity": 1,
+# "is_active": "Yes", "is_default": 1, "uom": "Nos"},
+# {"doctype": "BOM Operation", "operation_no": 1, "parentfield": "bom_operations",
+# "opn_description": "Development", "hour_rate": 10, "time_in_mins": 90},
+# {"doctype": "BOM Item", "item_code": "Home Desktop 300", "operation_no": 1,
+# "qty": 2, "rate": 20, "stock_uom": "Nos", "parentfield": "bom_materials"},
+# {"doctype": "BOM Item", "item_code": "Home Desktop 100", "operation_no": 1,
+# "qty": 1, "rate": 300, "stock_uom": "Nos", "parentfield": "bom_materials"},
+# {"doctype": "BOM Item", "item_code": "Nebula 7", "operation_no": 1,
+# "qty": 5, "stock_uom": "Nos", "parentfield": "bom_materials"},
+# ]
+#
+# base_bom_child = [
+# {"doctype": "BOM", "item": "Nebula 7", "quantity": 5,
+# "is_active": "Yes", "is_default": 1, "uom": "Nos"},
+# {"doctype": "BOM Operation", "operation_no": 1, "parentfield": "bom_operations",
+# "opn_description": "Development"},
+# {"doctype": "BOM Item", "item_code": "Android Jack S", "operation_no": 1,
+# "qty": 10, "stock_uom": "Nos", "parentfield": "bom_materials"}
+# ]
+#
+# base_bom_grandchild = [
+# {"doctype": "BOM", "item": "Android Jack S", "quantity": 1,
+# "is_active": "Yes", "is_default": 1, "uom": "Nos"},
+# {"doctype": "BOM Operation", "operation_no": 1, "parentfield": "bom_operations",
+# "opn_description": "Development"},
+# {"doctype": "BOM Item", "item_code": "Home Desktop 300", "operation_no": 1,
+# "qty": 3, "rate": 10, "stock_uom": "Nos", "parentfield": "bom_materials"}
+# ]
+#
+#
+# class TestPurchaseReceipt(unittest.TestCase):
+# def setUp(self):
+# webnotes.conn.begin()
+# load_data()
+#
+# def test_bom_validation(self):
+# # show throw error bacause bom no missing for sub-assembly item
+# bom_fg = copy.deepcopy(base_bom_fg)
+# self.assertRaises(webnotes.ValidationError, webnotes.insert, DocList(bom_fg))
+#
+# # main item is not a manufacturing item
+# bom_fg = copy.deepcopy(base_bom_fg)
+# bom_fg[0]["item"] = "Home Desktop 200"
+# bom_fg.pop(4)
+# self.assertRaises(webnotes.ValidationError, webnotes.insert, DocList(bom_fg))
+#
+# # operation no mentioed in material table not matching with operation table
+# bom_fg = copy.deepcopy(base_bom_fg)
+# bom_fg.pop(4)
+# bom_fg[2]["operation_no"] = 2
+# self.assertRaises(webnotes.ValidationError, webnotes.insert, DocList(bom_fg))
+#
+#
+# def test_bom(self):
+# gc_wrapper = webnotes.insert(DocList(base_bom_grandchild))
+# gc_wrapper.submit()
+#
+# bom_child = copy.deepcopy(base_bom_child)
+# bom_child[2]["bom_no"] = gc_wrapper.doc.name
+# child_wrapper = webnotes.insert(DocList(bom_child))
+# child_wrapper.submit()
+#
+# bom_fg = copy.deepcopy(base_bom_fg)
+# bom_fg[4]["bom_no"] = child_wrapper.doc.name
+# fg_wrapper = webnotes.insert(DocList(bom_fg))
+# fg_wrapper.load_from_db()
+#
+# self.check_bom_cost(fg_wrapper)
+#
+# self.check_flat_bom(fg_wrapper, child_wrapper, gc_wrapper)
+#
+# def check_bom_cost(self, fg_wrapper):
+# expected_values = {
+# "operating_cost": 15,
+# "raw_material_cost": 640,
+# "total_cost": 655
+# }
+#
+# for key in expected_values:
+# self.assertEqual(flt(expected_values[key]), flt(fg_wrapper.doc.fields.get(key)))
+#
+# def check_flat_bom(self, fg_wrapper, child_wrapper, gc_wrapper):
+# expected_flat_bom_items = {
+# ("Home Desktop 300", fg_wrapper.doc.name): (2, 20),
+# ("Home Desktop 100", fg_wrapper.doc.name): (1, 300),
+# ("Home Desktop 300", gc_wrapper.doc.name): (30, 10)
+# }
+#
+# self.assertEqual(len(fg_wrapper.doclist.get({"parentfield": "flat_bom_details"})), 3)
+#
+# for key, val in expected_flat_bom_items.items():
+# flat_bom = fg_wrapper.doclist.get({"parentfield": "flat_bom_details",
+# "item_code": key[0], "parent_bom": key[1]})[0]
+# self.assertEqual(val, (flat_bom.qty, flat_bom.rate))
+#
+#
+# def tearDown(self):
+# webnotes.conn.rollback()
\ No newline at end of file
diff --git a/manufacturing/doctype/bom_explosion_item/locale/de-doc.json b/manufacturing/doctype/bom_explosion_item/locale/de-doc.json
new file mode 100644
index 00000000000..cf28699b27a
--- /dev/null
+++ b/manufacturing/doctype/bom_explosion_item/locale/de-doc.json
@@ -0,0 +1,13 @@
+{
+ "Amount": "Menge",
+ "BOM Explosion Item": "St\u00fccklistenaufl\u00f6sung Artikel",
+ "Description": "Beschreibung",
+ "Item Code": "Item Code",
+ "Manufacturing": "Herstellung",
+ "Mat Detail No": "Mat im Detail",
+ "Parent BOM": "Eltern GUT",
+ "Qty": "Menge",
+ "Qty Consumed Per Unit": "Menge pro verbrauchter",
+ "Rate": "Rate",
+ "Stock UOM": "Lager UOM"
+}
\ No newline at end of file
diff --git a/manufacturing/doctype/bom_explosion_item/locale/pt-BR-doc.json b/manufacturing/doctype/bom_explosion_item/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..df3a61fa18f
--- /dev/null
+++ b/manufacturing/doctype/bom_explosion_item/locale/pt-BR-doc.json
@@ -0,0 +1,13 @@
+{
+ "Amount": "Quantidade",
+ "BOM Explosion Item": "Item da Explos\u00e3o da LDM",
+ "Description": "Descri\u00e7\u00e3o",
+ "Item Code": "C\u00f3digo do Item",
+ "Manufacturing": "Fabrica\u00e7\u00e3o",
+ "Mat Detail No": "N\u00ba do Detalhe Mat",
+ "Parent BOM": "LDM pai",
+ "Qty": "Qtde.",
+ "Qty Consumed Per Unit": "Qtde. consumida por unidade",
+ "Rate": "Taxa",
+ "Stock UOM": "UDM do Estoque"
+}
\ No newline at end of file
diff --git a/manufacturing/doctype/bom_explosion_item/locale/th-doc.json b/manufacturing/doctype/bom_explosion_item/locale/th-doc.json
new file mode 100644
index 00000000000..be4cde42dc9
--- /dev/null
+++ b/manufacturing/doctype/bom_explosion_item/locale/th-doc.json
@@ -0,0 +1,13 @@
+{
+ "Amount": "\u0e08\u0e33\u0e19\u0e27\u0e19",
+ "BOM Explosion Item": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e23\u0e30\u0e40\u0e1a\u0e34\u0e14 BOM",
+ "Description": "\u0e25\u0e31\u0e01\u0e29\u0e13\u0e30",
+ "Item Code": "\u0e23\u0e2b\u0e31\u0e2a\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Manufacturing": "\u0e01\u0e32\u0e23\u0e1c\u0e25\u0e34\u0e15",
+ "Mat Detail No": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14 Mat \u0e44\u0e21\u0e48\u0e21\u0e35",
+ "Parent BOM": "BOM \u0e41\u0e21\u0e48",
+ "Qty": "\u0e08\u0e33\u0e19\u0e27\u0e19",
+ "Qty Consumed Per Unit": "Consumed \u0e08\u0e33\u0e19\u0e27\u0e19\u0e15\u0e48\u0e2d\u0e2b\u0e19\u0e48\u0e27\u0e22",
+ "Rate": "\u0e2d\u0e31\u0e15\u0e23\u0e32",
+ "Stock UOM": "UOM \u0e2a\u0e15\u0e47\u0e2d\u0e01"
+}
\ No newline at end of file
diff --git a/manufacturing/doctype/bom_item/locale/_messages_doc.json b/manufacturing/doctype/bom_item/locale/_messages_doc.json
index 314ac7e0375..44ed814a983 100644
--- a/manufacturing/doctype/bom_item/locale/_messages_doc.json
+++ b/manufacturing/doctype/bom_item/locale/_messages_doc.json
@@ -1,11 +1,11 @@
[
- "Amount",
"Item Description",
- "BOM Item",
+ "Qty",
+ "Amount",
"Scrap %",
"Operation No",
"Rate",
- "Qty",
+ "BOM Item",
"BOM No",
"Stock UOM",
"Qty Consumed Per Unit",
diff --git a/manufacturing/doctype/bom_item/locale/de-doc.json b/manufacturing/doctype/bom_item/locale/de-doc.json
new file mode 100644
index 00000000000..3d47c34fa9a
--- /dev/null
+++ b/manufacturing/doctype/bom_item/locale/de-doc.json
@@ -0,0 +1,14 @@
+{
+ "Amount": "Menge",
+ "BOM Item": "St\u00fccklistenposition",
+ "BOM No": "BOM Nein",
+ "Item Code": "Item Code",
+ "Item Description": "Artikelbeschreibung",
+ "Manufacturing": "Herstellung",
+ "Operation No": "In Betrieb",
+ "Qty": "Menge",
+ "Qty Consumed Per Unit": "Menge pro verbrauchter",
+ "Rate": "Rate",
+ "Scrap %": "Scrap%",
+ "Stock UOM": "Lager UOM"
+}
\ No newline at end of file
diff --git a/manufacturing/doctype/bom_item/locale/pt-BR-doc.json b/manufacturing/doctype/bom_item/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..f4f2a95efea
--- /dev/null
+++ b/manufacturing/doctype/bom_item/locale/pt-BR-doc.json
@@ -0,0 +1,14 @@
+{
+ "Amount": "Quantidade",
+ "BOM Item": "Item da LDM",
+ "BOM No": "N\u00ba da LDM",
+ "Item Code": "C\u00f3digo do Item",
+ "Item Description": "Descri\u00e7\u00e3o do Item",
+ "Manufacturing": "Fabrica\u00e7\u00e3o",
+ "Operation No": "N\u00ba da opera\u00e7\u00e3o",
+ "Qty": "Qtde.",
+ "Qty Consumed Per Unit": "Qtde. consumida por unidade",
+ "Rate": "Taxa",
+ "Scrap %": "Sucata %",
+ "Stock UOM": "UDM do Estoque"
+}
\ No newline at end of file
diff --git a/manufacturing/doctype/bom_item/locale/th-doc.json b/manufacturing/doctype/bom_item/locale/th-doc.json
new file mode 100644
index 00000000000..90ecb47d160
--- /dev/null
+++ b/manufacturing/doctype/bom_item/locale/th-doc.json
@@ -0,0 +1,14 @@
+{
+ "Amount": "\u0e08\u0e33\u0e19\u0e27\u0e19",
+ "BOM Item": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23 BOM",
+ "BOM No": "BOM \u0e44\u0e21\u0e48\u0e21\u0e35",
+ "Item Code": "\u0e23\u0e2b\u0e31\u0e2a\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Item Description": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Manufacturing": "\u0e01\u0e32\u0e23\u0e1c\u0e25\u0e34\u0e15",
+ "Operation No": "\u0e44\u0e21\u0e48\u0e14\u0e33\u0e40\u0e19\u0e34\u0e19\u0e01\u0e32\u0e23",
+ "Qty": "\u0e08\u0e33\u0e19\u0e27\u0e19",
+ "Qty Consumed Per Unit": "Consumed \u0e08\u0e33\u0e19\u0e27\u0e19\u0e15\u0e48\u0e2d\u0e2b\u0e19\u0e48\u0e27\u0e22",
+ "Rate": "\u0e2d\u0e31\u0e15\u0e23\u0e32",
+ "Scrap %": "\u0e40\u0e28\u0e29%",
+ "Stock UOM": "UOM \u0e2a\u0e15\u0e47\u0e2d\u0e01"
+}
\ No newline at end of file
diff --git a/manufacturing/doctype/bom_operation/locale/de-doc.json b/manufacturing/doctype/bom_operation/locale/de-doc.json
new file mode 100644
index 00000000000..ed4cc63221f
--- /dev/null
+++ b/manufacturing/doctype/bom_operation/locale/de-doc.json
@@ -0,0 +1,10 @@
+{
+ "BOM Operation": "BOM Betrieb",
+ "Hour Rate": "Hour Rate",
+ "Manufacturing": "Herstellung",
+ "Operating Cost": "Betriebskosten",
+ "Operation Description": "Operation Beschreibung",
+ "Operation No": "In Betrieb",
+ "Operation Time (mins)": "Betriebszeit (Min.)",
+ "Workstation": "Arbeitsplatz"
+}
\ No newline at end of file
diff --git a/manufacturing/doctype/bom_operation/locale/pt-BR-doc.json b/manufacturing/doctype/bom_operation/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..9e78d3b50a2
--- /dev/null
+++ b/manufacturing/doctype/bom_operation/locale/pt-BR-doc.json
@@ -0,0 +1,10 @@
+{
+ "BOM Operation": "Opera\u00e7\u00e3o da LDM",
+ "Hour Rate": "Valor por hora",
+ "Manufacturing": "Fabrica\u00e7\u00e3o",
+ "Operating Cost": "Custo de Opera\u00e7\u00e3o",
+ "Operation Description": "Descri\u00e7\u00e3o da opera\u00e7\u00e3o",
+ "Operation No": "N\u00ba da opera\u00e7\u00e3o",
+ "Operation Time (mins)": "Tempo de Opera\u00e7\u00e3o (minutos)",
+ "Workstation": "Esta\u00e7\u00e3o de Trabalho"
+}
\ No newline at end of file
diff --git a/manufacturing/doctype/bom_operation/locale/th-doc.json b/manufacturing/doctype/bom_operation/locale/th-doc.json
new file mode 100644
index 00000000000..0b5f7ed0e3b
--- /dev/null
+++ b/manufacturing/doctype/bom_operation/locale/th-doc.json
@@ -0,0 +1,10 @@
+{
+ "BOM Operation": "\u0e01\u0e32\u0e23\u0e14\u0e33\u0e40\u0e19\u0e34\u0e19\u0e07\u0e32\u0e19 BOM",
+ "Hour Rate": "\u0e2d\u0e31\u0e15\u0e23\u0e32\u0e0a\u0e31\u0e48\u0e27\u0e42\u0e21\u0e07",
+ "Manufacturing": "\u0e01\u0e32\u0e23\u0e1c\u0e25\u0e34\u0e15",
+ "Operating Cost": "\u0e04\u0e48\u0e32\u0e43\u0e0a\u0e49\u0e08\u0e48\u0e32\u0e22\u0e43\u0e19\u0e01\u0e32\u0e23\u0e14\u0e33\u0e40\u0e19\u0e34\u0e19\u0e07\u0e32\u0e19",
+ "Operation Description": "\u0e14\u0e33\u0e40\u0e19\u0e34\u0e19\u0e01\u0e32\u0e23\u0e04\u0e33\u0e2d\u0e18\u0e34\u0e1a\u0e32\u0e22",
+ "Operation No": "\u0e44\u0e21\u0e48\u0e14\u0e33\u0e40\u0e19\u0e34\u0e19\u0e01\u0e32\u0e23",
+ "Operation Time (mins)": "\u0e40\u0e27\u0e25\u0e32\u0e01\u0e32\u0e23\u0e14\u0e33\u0e40\u0e19\u0e34\u0e19\u0e07\u0e32\u0e19 (\u0e19\u0e32\u0e17\u0e35)",
+ "Workstation": "\u0e40\u0e27\u0e34\u0e23\u0e4c\u0e04\u0e2a\u0e40\u0e15\u0e0a\u0e31\u0e48"
+}
\ No newline at end of file
diff --git a/manufacturing/doctype/bom_replace_tool/locale/de-doc.json b/manufacturing/doctype/bom_replace_tool/locale/de-doc.json
new file mode 100644
index 00000000000..f9a245739fe
--- /dev/null
+++ b/manufacturing/doctype/bom_replace_tool/locale/de-doc.json
@@ -0,0 +1,10 @@
+{
+ "BOM Replace Tool": "BOM Replace Tool",
+ "Current BOM": "Aktuelle St\u00fcckliste",
+ "Manufacturing": "Herstellung",
+ "New BOM": "New BOM",
+ "Replace": "Ersetzen",
+ "Replace a particular BOM in all other BOMs where it is used. It will replace the old BOM link, update cost and regenerate \"BOM Explosion Item\" table as per new BOM": "Ersetzen Sie die insbesondere gut in allen anderen St\u00fccklisten, wo sie verwendet wird. Es wird die alte BOM Link zu ersetzen, aktualisieren kosten und regenerieren \"Explosion St\u00fccklistenposition\" Tabelle pro neuen GOOD",
+ "The BOM which will be replaced": "Die St\u00fcckliste, die ersetzt werden",
+ "The new BOM after replacement": "Der neue BOM nach dem Austausch"
+}
\ No newline at end of file
diff --git a/manufacturing/doctype/bom_replace_tool/locale/de-py.json b/manufacturing/doctype/bom_replace_tool/locale/de-py.json
new file mode 100644
index 00000000000..3a9764f0447
--- /dev/null
+++ b/manufacturing/doctype/bom_replace_tool/locale/de-py.json
@@ -0,0 +1,3 @@
+{
+ "BOM replaced": "BOM ersetzt"
+}
\ No newline at end of file
diff --git a/manufacturing/doctype/bom_replace_tool/locale/pt-BR-doc.json b/manufacturing/doctype/bom_replace_tool/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..05c1f205b1f
--- /dev/null
+++ b/manufacturing/doctype/bom_replace_tool/locale/pt-BR-doc.json
@@ -0,0 +1,10 @@
+{
+ "BOM Replace Tool": "Ferramenta de Substitui\u00e7\u00e3o da LDM",
+ "Current BOM": "LDM atual",
+ "Manufacturing": "Fabrica\u00e7\u00e3o",
+ "New BOM": "Nova LDM",
+ "Replace": "Substituir",
+ "Replace a particular BOM in all other BOMs where it is used. It will replace the old BOM link, update cost and regenerate \"BOM Explosion Item\" table as per new BOM": "Substituir uma LDM espec\u00edfica em todas as LDMs outros onde ela \u00e9 usada. Isso ir\u00e1 substituir o link da LDM antiga, atualizar o custo e regenerar a tabela "Item de Explos\u00e3o da LDM" com a nova LDM",
+ "The BOM which will be replaced": "A LDM que ser\u00e1 substitu\u00edda",
+ "The new BOM after replacement": "A nova LDM ap\u00f3s substitui\u00e7\u00e3o"
+}
\ No newline at end of file
diff --git a/manufacturing/doctype/bom_replace_tool/locale/pt-BR-py.json b/manufacturing/doctype/bom_replace_tool/locale/pt-BR-py.json
new file mode 100644
index 00000000000..1d77e6247df
--- /dev/null
+++ b/manufacturing/doctype/bom_replace_tool/locale/pt-BR-py.json
@@ -0,0 +1,3 @@
+{
+ "BOM replaced": "LDM substitu\u00edda"
+}
\ No newline at end of file
diff --git a/manufacturing/doctype/bom_replace_tool/locale/th-doc.json b/manufacturing/doctype/bom_replace_tool/locale/th-doc.json
new file mode 100644
index 00000000000..7a57a8c1832
--- /dev/null
+++ b/manufacturing/doctype/bom_replace_tool/locale/th-doc.json
@@ -0,0 +1,10 @@
+{
+ "BOM Replace Tool": "\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e21\u0e37\u0e2d\u0e41\u0e17\u0e19\u0e17\u0e35\u0e48 BOM",
+ "Current BOM": "BOM \u0e1b\u0e31\u0e08\u0e08\u0e38\u0e1a\u0e31\u0e19",
+ "Manufacturing": "\u0e01\u0e32\u0e23\u0e1c\u0e25\u0e34\u0e15",
+ "New BOM": "BOM \u0e43\u0e2b\u0e21\u0e48",
+ "Replace": "\u0e41\u0e17\u0e19\u0e17\u0e35\u0e48",
+ "Replace a particular BOM in all other BOMs where it is used. It will replace the old BOM link, update cost and regenerate \"BOM Explosion Item\" table as per new BOM": "\u0e41\u0e17\u0e19\u0e17\u0e35\u0e48 BOM \u0e42\u0e14\u0e22\u0e40\u0e09\u0e1e\u0e32\u0e30\u0e43\u0e19 BOMs \u0e2d\u0e37\u0e48\u0e19 \u0e46 \u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14\u0e17\u0e35\u0e48\u0e16\u0e39\u0e01\u0e19\u0e33\u0e21\u0e32\u0e43\u0e0a\u0e49 \u0e21\u0e31\u0e19\u0e08\u0e30\u0e40\u0e02\u0e49\u0e32\u0e21\u0e32\u0e41\u0e17\u0e19\u0e17\u0e35\u0e48\u0e01\u0e32\u0e23\u0e40\u0e0a\u0e37\u0e48\u0e2d\u0e21\u0e42\u0e22\u0e07 BOM \u0e40\u0e01\u0e48\u0e32\u0e1b\u0e23\u0e31\u0e1a\u0e1b\u0e23\u0e38\u0e07\u0e04\u0e48\u0e32\u0e43\u0e0a\u0e49\u0e08\u0e48\u0e32\u0e22\u0e41\u0e25\u0e30\u0e43\u0e2b\u0e49\u0e0a\u0e35\u0e27\u0e34\u0e15\u0e43\u0e2b\u0e21\u0e48 "\u0e23\u0e30\u0e40\u0e1a\u0e34\u0e14\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23 BOM" \u0e15\u0e32\u0e23\u0e32\u0e07\u0e40\u0e1b\u0e47\u0e19\u0e15\u0e48\u0e2d\u0e43\u0e2b\u0e21\u0e48 BOM",
+ "The BOM which will be replaced": "BOM \u0e0b\u0e36\u0e48\u0e07\u0e08\u0e30\u0e16\u0e39\u0e01\u0e41\u0e17\u0e19\u0e17\u0e35\u0e48",
+ "The new BOM after replacement": "BOM \u0e43\u0e2b\u0e21\u0e48\u0e2b\u0e25\u0e31\u0e07\u0e08\u0e32\u0e01\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19"
+}
\ No newline at end of file
diff --git a/manufacturing/doctype/bom_replace_tool/locale/th-py.json b/manufacturing/doctype/bom_replace_tool/locale/th-py.json
new file mode 100644
index 00000000000..68a598c08e7
--- /dev/null
+++ b/manufacturing/doctype/bom_replace_tool/locale/th-py.json
@@ -0,0 +1,3 @@
+{
+ "BOM replaced": "BOM \u0e41\u0e17\u0e19\u0e17\u0e35\u0e48"
+}
\ No newline at end of file
diff --git a/manufacturing/doctype/production_order/locale/de-doc.json b/manufacturing/doctype/production_order/locale/de-doc.json
new file mode 100644
index 00000000000..c819e8b73aa
--- /dev/null
+++ b/manufacturing/doctype/production_order/locale/de-doc.json
@@ -0,0 +1,30 @@
+{
+ "Amended From": "Ge\u00e4ndert von",
+ "Automatically updated via Stock Entry of type Manufacture/Repack": "Automatisch \u00fcber Lager Eintrag vom Typ Manufacture / Repack aktualisiert",
+ "BOM No": "BOM Nein",
+ "Bill of Material to be considered for manufacturing": "Bill of Material, um f\u00fcr die Fertigung ber\u00fccksichtigt werden",
+ "Cancelled": "Abgesagt",
+ "Company": "Firma",
+ "Completed": "Fertiggestellt",
+ "Draft": "Entwurf",
+ "For Warehouse": "F\u00fcr Warehouse",
+ "If checked, BOM for sub-assembly items will be considered for getting raw materials. Otherwise, all sub-assembly items will be treated as a raw material.": "Wenn aktiviert, wird St\u00fcckliste Baugruppe Artikel f\u00fcr immer Rohstoff betrachtet werden. Andernfalls werden alle Unterbaugruppe Elemente als Ausgangsmaterial behandelt werden.",
+ "In Process": "In Process",
+ "Item To Manufacture": "Artikel in der Herstellung",
+ "Manufacture against Sales Order": "Herstellung gegen Sales Order",
+ "Manufactured Qty": "Hergestellt Menge",
+ "Manufactured quantity will be updated in this warehouse": "Menge hergestellt werden in diesem Lager aktualisiert werden",
+ "Manufacturing": "Herstellung",
+ "More Info": "Mehr Info",
+ "PRO": "PRO",
+ "Production Order": "Fertigungsauftrag",
+ "Project Name": "Project Name",
+ "Qty To Manufacture": "Um Qty Herstellung",
+ "Sales Order": "Sales Order",
+ "Series": "Serie",
+ "Status": "Status",
+ "Stock UOM": "Lager UOM",
+ "Stopped": "Gestoppt",
+ "Submitted": "Eingereicht",
+ "Use Multi-Level BOM": "Verwenden Sie Multi-Level BOM"
+}
\ No newline at end of file
diff --git a/manufacturing/doctype/production_order/locale/pt-BR-doc.json b/manufacturing/doctype/production_order/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..b06655a45f5
--- /dev/null
+++ b/manufacturing/doctype/production_order/locale/pt-BR-doc.json
@@ -0,0 +1,30 @@
+{
+ "Amended From": "Corrigido De",
+ "Automatically updated via Stock Entry of type Manufacture/Repack": "Atualizado automaticamente atrav\u00e9s do lan\u00e7amento de Estoque do tipo Fabrica\u00e7\u00e3o/Reempacotamento",
+ "BOM No": "N\u00ba da LDM",
+ "Bill of Material to be considered for manufacturing": "Lista de Materiais a serem considerados para a fabrica\u00e7\u00e3o",
+ "Cancelled": "Cancelado",
+ "Company": "Empresa",
+ "Completed": "Conclu\u00eddo",
+ "Draft": "Rascunho",
+ "For Warehouse": "Para Almoxarifado",
+ "If checked, BOM for sub-assembly items will be considered for getting raw materials. Otherwise, all sub-assembly items will be treated as a raw material.": "Se marcado, os itens da LDM para a Sub-Montagem ser\u00e3o considerados para obter mat\u00e9rias-primas. Caso contr\u00e1rio, todos os itens da sub-montagem v\u00e3o ser tratados como mat\u00e9ria-prima.",
+ "In Process": "Em Processo",
+ "Item To Manufacture": "Item Para Fabrica\u00e7\u00e3o",
+ "Manufacture against Sales Order": "Fabrica\u00e7\u00e3o contra a Ordem de Venda",
+ "Manufactured Qty": "Qtde. fabricada",
+ "Manufactured quantity will be updated in this warehouse": "Quantidade fabricada ser\u00e1 atualizada neste almoxarifado",
+ "Manufacturing": "Fabrica\u00e7\u00e3o",
+ "More Info": "Mais informa\u00e7\u00f5es",
+ "PRO": "PRO",
+ "Production Order": "Ordem de Produ\u00e7\u00e3o",
+ "Project Name": "Nome do Projeto",
+ "Qty To Manufacture": "Qtde. Para Fabrica\u00e7\u00e3o",
+ "Sales Order": "Ordem de Venda",
+ "Series": "S\u00e9ries",
+ "Status": "Estado",
+ "Stock UOM": "UDM do Estoque",
+ "Stopped": "Parado",
+ "Submitted": "Enviado",
+ "Use Multi-Level BOM": "Utilize LDM de V\u00e1rios N\u00edveis"
+}
\ No newline at end of file
diff --git a/manufacturing/doctype/production_order/locale/th-doc.json b/manufacturing/doctype/production_order/locale/th-doc.json
new file mode 100644
index 00000000000..4047bdbad06
--- /dev/null
+++ b/manufacturing/doctype/production_order/locale/th-doc.json
@@ -0,0 +1,30 @@
+{
+ "Amended From": "\u0e41\u0e01\u0e49\u0e44\u0e02\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21",
+ "Automatically updated via Stock Entry of type Manufacture/Repack": "\u0e1b\u0e23\u0e31\u0e1a\u0e1b\u0e23\u0e38\u0e07\u0e42\u0e14\u0e22\u0e2d\u0e31\u0e15\u0e42\u0e19\u0e21\u0e31\u0e15\u0e34\u0e1c\u0e48\u0e32\u0e19\u0e17\u0e32\u0e07\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e43\u0e19\u0e2a\u0e15\u0e47\u0e2d\u0e01\u0e01\u0e32\u0e23\u0e1c\u0e25\u0e34\u0e15\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17 / Repack",
+ "BOM No": "BOM \u0e44\u0e21\u0e48\u0e21\u0e35",
+ "Bill of Material to be considered for manufacturing": "\u0e1a\u0e34\u0e25\u0e02\u0e2d\u0e07\u0e27\u0e31\u0e2a\u0e14\u0e38\u0e17\u0e35\u0e48\u0e08\u0e30\u0e15\u0e49\u0e2d\u0e07\u0e1e\u0e34\u0e08\u0e32\u0e23\u0e13\u0e32\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e1c\u0e25\u0e34\u0e15",
+ "Cancelled": "\u0e22\u0e01\u0e40\u0e25\u0e34\u0e01",
+ "Company": "\u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17",
+ "Completed": "\u0e40\u0e2a\u0e23\u0e47\u0e08",
+ "Draft": "\u0e23\u0e48\u0e32\u0e07",
+ "For Warehouse": "\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e42\u0e01\u0e14\u0e31\u0e07",
+ "If checked, BOM for sub-assembly items will be considered for getting raw materials. Otherwise, all sub-assembly items will be treated as a raw material.": "\u0e2b\u0e32\u0e01\u0e01\u0e32\u0e23\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e27\u0e31\u0e2a\u0e14\u0e38\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e22\u0e48\u0e2d\u0e22\u0e1b\u0e23\u0e30\u0e01\u0e2d\u0e1a\u0e08\u0e30\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e1e\u0e34\u0e08\u0e32\u0e23\u0e13\u0e32\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e27\u0e31\u0e15\u0e16\u0e38\u0e14\u0e34\u0e1a \u0e21\u0e34\u0e09\u0e30\u0e19\u0e31\u0e49\u0e19\u0e17\u0e38\u0e01\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e22\u0e48\u0e2d\u0e22\u0e1b\u0e23\u0e30\u0e01\u0e2d\u0e1a\u0e08\u0e30\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e1b\u0e0f\u0e34\u0e1a\u0e31\u0e15\u0e34\u0e40\u0e1b\u0e47\u0e19\u0e27\u0e31\u0e15\u0e16\u0e38\u0e14\u0e34\u0e1a",
+ "In Process": "\u0e43\u0e19\u0e01\u0e23\u0e30\u0e1a\u0e27\u0e19\u0e01\u0e32\u0e23",
+ "Item To Manufacture": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e17\u0e35\u0e48\u0e08\u0e30\u0e1c\u0e25\u0e34\u0e15",
+ "Manufacture against Sales Order": "\u0e01\u0e32\u0e23\u0e1c\u0e25\u0e34\u0e15\u0e01\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e01\u0e32\u0e23\u0e02\u0e32\u0e22",
+ "Manufactured Qty": "\u0e08\u0e33\u0e19\u0e27\u0e19\u0e01\u0e32\u0e23\u0e1c\u0e25\u0e34\u0e15",
+ "Manufactured quantity will be updated in this warehouse": "\u0e1b\u0e23\u0e34\u0e21\u0e32\u0e13\u0e01\u0e32\u0e23\u0e1c\u0e25\u0e34\u0e15\u0e08\u0e30\u0e21\u0e35\u0e01\u0e32\u0e23\u0e1b\u0e23\u0e31\u0e1a\u0e1b\u0e23\u0e38\u0e07\u0e43\u0e19\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e19\u0e35\u0e49",
+ "Manufacturing": "\u0e01\u0e32\u0e23\u0e1c\u0e25\u0e34\u0e15",
+ "More Info": "\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21",
+ "PRO": "PRO",
+ "Production Order": "\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e01\u0e32\u0e23\u0e1c\u0e25\u0e34\u0e15",
+ "Project Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e42\u0e04\u0e23\u0e07\u0e01\u0e32\u0e23",
+ "Qty To Manufacture": "\u0e08\u0e33\u0e19\u0e27\u0e19\u0e01\u0e32\u0e23\u0e1c\u0e25\u0e34\u0e15",
+ "Sales Order": "\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e32\u0e22",
+ "Series": "\u0e0a\u0e38\u0e14",
+ "Status": "\u0e2a\u0e16\u0e32\u0e19\u0e30",
+ "Stock UOM": "UOM \u0e2a\u0e15\u0e47\u0e2d\u0e01",
+ "Stopped": "\u0e2b\u0e22\u0e38\u0e14",
+ "Submitted": "Submitted",
+ "Use Multi-Level BOM": "\u0e43\u0e0a\u0e49 BOM \u0e2b\u0e25\u0e32\u0e22\u0e23\u0e30\u0e14\u0e31\u0e1a"
+}
\ No newline at end of file
diff --git a/manufacturing/doctype/production_plan_item/locale/de-doc.json b/manufacturing/doctype/production_plan_item/locale/de-doc.json
new file mode 100644
index 00000000000..304f45d0c2e
--- /dev/null
+++ b/manufacturing/doctype/production_plan_item/locale/de-doc.json
@@ -0,0 +1,11 @@
+{
+ "BOM No": "BOM Nein",
+ "Description": "Beschreibung",
+ "Item Code": "Item Code",
+ "Manufacturing": "Herstellung",
+ "Planned Qty": "Geplante Menge",
+ "Production Plan Item": "Production Plan Artikel",
+ "SO Pending Qty": "SO Pending Menge",
+ "Sales Order": "Sales Order",
+ "UOM": "UOM"
+}
\ No newline at end of file
diff --git a/manufacturing/doctype/production_plan_item/locale/pt-BR-doc.json b/manufacturing/doctype/production_plan_item/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..38cbb4faed6
--- /dev/null
+++ b/manufacturing/doctype/production_plan_item/locale/pt-BR-doc.json
@@ -0,0 +1,11 @@
+{
+ "BOM No": "N\u00ba da LDM",
+ "Description": "Descri\u00e7\u00e3o",
+ "Item Code": "C\u00f3digo do Item",
+ "Manufacturing": "Fabrica\u00e7\u00e3o",
+ "Planned Qty": "Qtde. planejada",
+ "Production Plan Item": "Item do plano de produ\u00e7\u00e3o",
+ "SO Pending Qty": "Qtde. pendente na OV",
+ "Sales Order": "Ordem de Venda",
+ "UOM": "UDM"
+}
\ No newline at end of file
diff --git a/manufacturing/doctype/production_plan_item/locale/th-doc.json b/manufacturing/doctype/production_plan_item/locale/th-doc.json
new file mode 100644
index 00000000000..62376f0188c
--- /dev/null
+++ b/manufacturing/doctype/production_plan_item/locale/th-doc.json
@@ -0,0 +1,11 @@
+{
+ "BOM No": "BOM \u0e44\u0e21\u0e48\u0e21\u0e35",
+ "Description": "\u0e25\u0e31\u0e01\u0e29\u0e13\u0e30",
+ "Item Code": "\u0e23\u0e2b\u0e31\u0e2a\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Manufacturing": "\u0e01\u0e32\u0e23\u0e1c\u0e25\u0e34\u0e15",
+ "Planned Qty": "\u0e08\u0e33\u0e19\u0e27\u0e19\u0e27\u0e32\u0e07\u0e41\u0e1c\u0e19",
+ "Production Plan Item": "\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e41\u0e1c\u0e19\u0e01\u0e32\u0e23\u0e1c\u0e25\u0e34\u0e15",
+ "SO Pending Qty": "\u0e14\u0e31\u0e07\u0e19\u0e31\u0e49\u0e19\u0e23\u0e2d\u0e08\u0e33\u0e19\u0e27\u0e19",
+ "Sales Order": "\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e32\u0e22",
+ "UOM": "UOM"
+}
\ No newline at end of file
diff --git a/manufacturing/doctype/production_plan_sales_order/locale/de-doc.json b/manufacturing/doctype/production_plan_sales_order/locale/de-doc.json
new file mode 100644
index 00000000000..dc939ba6c54
--- /dev/null
+++ b/manufacturing/doctype/production_plan_sales_order/locale/de-doc.json
@@ -0,0 +1,8 @@
+{
+ "Customer": "Kunde",
+ "Grand Total": "Grand Total",
+ "Manufacturing": "Herstellung",
+ "Production Plan Sales Order": "Production Plan Sales Order",
+ "SO Date": "SO Datum",
+ "Sales Order": "Sales Order"
+}
\ No newline at end of file
diff --git a/manufacturing/doctype/production_plan_sales_order/locale/pt-BR-doc.json b/manufacturing/doctype/production_plan_sales_order/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..e13aacdd0ae
--- /dev/null
+++ b/manufacturing/doctype/production_plan_sales_order/locale/pt-BR-doc.json
@@ -0,0 +1,8 @@
+{
+ "Customer": "Cliente",
+ "Grand Total": "Total Geral",
+ "Manufacturing": "Fabrica\u00e7\u00e3o",
+ "Production Plan Sales Order": "Ordem de Venda do Plano de Produ\u00e7\u00e3o",
+ "SO Date": "Data da OV",
+ "Sales Order": "Ordem de Venda"
+}
\ No newline at end of file
diff --git a/manufacturing/doctype/production_plan_sales_order/locale/th-doc.json b/manufacturing/doctype/production_plan_sales_order/locale/th-doc.json
new file mode 100644
index 00000000000..cb8cc57cf32
--- /dev/null
+++ b/manufacturing/doctype/production_plan_sales_order/locale/th-doc.json
@@ -0,0 +1,8 @@
+{
+ "Customer": "\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Grand Total": "\u0e23\u0e27\u0e21\u0e17\u0e31\u0e49\u0e07\u0e2a\u0e34\u0e49\u0e19",
+ "Manufacturing": "\u0e01\u0e32\u0e23\u0e1c\u0e25\u0e34\u0e15",
+ "Production Plan Sales Order": "\u0e41\u0e1c\u0e19\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e32\u0e22",
+ "SO Date": "\u0e14\u0e31\u0e07\u0e19\u0e31\u0e49\u0e19\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48",
+ "Sales Order": "\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e32\u0e22"
+}
\ No newline at end of file
diff --git a/manufacturing/doctype/production_planning_tool/locale/de-doc.json b/manufacturing/doctype/production_planning_tool/locale/de-doc.json
new file mode 100644
index 00000000000..dc74b1f39c5
--- /dev/null
+++ b/manufacturing/doctype/production_planning_tool/locale/de-doc.json
@@ -0,0 +1,30 @@
+{
+ "Clear Table": "Tabelle l\u00f6schen",
+ "Company": "Firma",
+ "Create Production Orders": "Erstellen Fertigungsauftr\u00e4ge",
+ "Download Materials Required": "Herunterladen ben\u00f6tigte Materialien",
+ "Download a report containing all raw materials with their latest inventory status": "Laden Sie einen Bericht mit allen Rohstoffen mit ihren neuesten Inventar Status",
+ "Enter items and planned qty for which you want to raise production orders or download raw materials for analysis.": "Geben Sie die Posten und geplante Menge f\u00fcr die Sie Fertigungsauftr\u00e4ge erh\u00f6hen oder downloaden Rohstoffe f\u00fcr die Analyse.",
+ "Filter based on customer": "Filtern basierend auf Kunden-",
+ "Filter based on item": "Filtern basierend auf Artikel",
+ "From Date": "Von Datum",
+ "Get Items": "Holen Artikel",
+ "Get Sales Orders": "Holen Sie Kundenauftr\u00e4ge",
+ "If checked, BOM for sub-assembly items will be considered for getting raw materials. Otherwise, all sub-assembly items will be treated as a raw material.": "Wenn aktiviert, wird St\u00fcckliste Baugruppe Artikel f\u00fcr immer Rohstoff betrachtet werden. Andernfalls werden alle Unterbaugruppe Elemente als Ausgangsmaterial behandelt werden.",
+ "Items to be requested which are \"Out of Stock\" considering all warehouses based on projected qty and minimum order qty": "Welche Gegenst\u00e4nde werden gebeten, sich \"Out of Stock\" unter Ber\u00fccksichtigung aller Hallen auf projizierte minimale Bestellmenge und Menge der Basis",
+ "Manufacturing": "Herstellung",
+ "Material Request For Warehouse": "Material Request For Warehouse",
+ "Materials Requirement Planning (MRP)": "Materialien Requirement Planning (MRP)",
+ "Production Plan Items": "Production Plan Artikel",
+ "Production Plan Sales Orders": "Production Plan Kundenauftr\u00e4ge",
+ "Production Planning Tool": "Production Planning-Tool",
+ "Pull items from Sales Order mentioned in the above table.": "Ziehen Sie Elemente aus Sales Order in der obigen Tabelle erw\u00e4hnt.",
+ "Pull sales orders (pending to deliver) based on the above criteria": "Ziehen Sie Kundenauftr\u00e4ge (anh\u00e4ngig zu liefern), basierend auf den oben genannten Kriterien",
+ "Raise Material Request": "Heben Material anfordern",
+ "Raise Production Order": "Heben Fertigungsauftrag",
+ "Select Sales Orders": "W\u00e4hlen Sie Kundenauftr\u00e4ge",
+ "Select Sales Orders from which you want to create Production Orders.": "W\u00e4hlen Sie Auftr\u00e4ge aus der Sie Fertigungsauftr\u00e4ge erstellen.",
+ "Separate production order will be created for each finished good item.": "Separate Fertigungsauftrag wird f\u00fcr jeden fertigen gute Position geschaffen werden.",
+ "To Date": "To Date",
+ "Use Multi-Level BOM": "Verwenden Sie Multi-Level BOM"
+}
\ No newline at end of file
diff --git a/manufacturing/doctype/production_planning_tool/locale/pt-BR-doc.json b/manufacturing/doctype/production_planning_tool/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..3337dbfea10
--- /dev/null
+++ b/manufacturing/doctype/production_planning_tool/locale/pt-BR-doc.json
@@ -0,0 +1,30 @@
+{
+ "Clear Table": "Limpar Tabela",
+ "Company": "Empresa",
+ "Create Production Orders": "Criar Ordens de Produ\u00e7\u00e3o",
+ "Download Materials Required": "Baixar Materiais Necess\u00e1rios",
+ "Download a report containing all raw materials with their latest inventory status": "Baixar um relat\u00f3rio contendo todas as mat\u00e9rias-primas com o seu estado mais recente do invent\u00e1rio",
+ "Enter items and planned qty for which you want to raise production orders or download raw materials for analysis.": "Digite itens e qtde. planejada para o qual voc\u00ea quer levantar ordens de produ\u00e7\u00e3o ou fazer o download de mat\u00e9rias-primas para a an\u00e1lise.",
+ "Filter based on customer": "Filtrar baseado em cliente",
+ "Filter based on item": "Filtrar baseado no item",
+ "From Date": "A partir da data",
+ "Get Items": "Obter itens",
+ "Get Sales Orders": "Obter Ordens de Venda",
+ "If checked, BOM for sub-assembly items will be considered for getting raw materials. Otherwise, all sub-assembly items will be treated as a raw material.": "Se marcado, os itens da LDM para a Sub-Montagem ser\u00e3o considerados para obter mat\u00e9rias-primas. Caso contr\u00e1rio, todos os itens da sub-montagem v\u00e3o ser tratados como mat\u00e9ria-prima.",
+ "Items to be requested which are \"Out of Stock\" considering all warehouses based on projected qty and minimum order qty": "Os itens a serem solicitados que est\u00e3o "Fora de Estoque", considerando todos os almoxarifados com base na quantidade projetada e pedido m\u00ednimo",
+ "Manufacturing": "Fabrica\u00e7\u00e3o",
+ "Material Request For Warehouse": "Pedido de material para Armaz\u00e9m",
+ "Materials Requirement Planning (MRP)": "Planejamento dos Recursos de Manufatura (PRM)",
+ "Production Plan Items": "Itens do plano de produ\u00e7\u00e3o",
+ "Production Plan Sales Orders": "Ordens de Venda do Plano de Produ\u00e7\u00e3o",
+ "Production Planning Tool": "Ferramenta de Planejamento da Produ\u00e7\u00e3o",
+ "Pull items from Sales Order mentioned in the above table.": "Puxar itens da Ordem de Venda mencionada na tabela acima.",
+ "Pull sales orders (pending to deliver) based on the above criteria": "Puxar as Ordens de Venda (pendentes de entrega) com base nos crit\u00e9rios acima",
+ "Raise Material Request": "Levante solicitar material",
+ "Raise Production Order": "Levantar Ordem de Produ\u00e7\u00e3o",
+ "Select Sales Orders": "Selecione as Ordens de Venda",
+ "Select Sales Orders from which you want to create Production Orders.": "Selecione as Ordens de Venda a partir das quais voc\u00ea deseja criar Ordens de Produ\u00e7\u00e3o.",
+ "Separate production order will be created for each finished good item.": "Uma Ordem de Produ\u00e7\u00e3o separada ser\u00e1 criada para cada item acabado.",
+ "To Date": "At\u00e9 a Data",
+ "Use Multi-Level BOM": "Utilize LDM de V\u00e1rios N\u00edveis"
+}
\ No newline at end of file
diff --git a/manufacturing/doctype/production_planning_tool/locale/th-doc.json b/manufacturing/doctype/production_planning_tool/locale/th-doc.json
new file mode 100644
index 00000000000..8b7f5c10d66
--- /dev/null
+++ b/manufacturing/doctype/production_planning_tool/locale/th-doc.json
@@ -0,0 +1,30 @@
+{
+ "Clear Table": "\u0e15\u0e32\u0e23\u0e32\u0e07\u0e17\u0e35\u0e48\u0e0a\u0e31\u0e14\u0e40\u0e08\u0e19",
+ "Company": "\u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17",
+ "Create Production Orders": "\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e04\u0e33\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e01\u0e32\u0e23\u0e1c\u0e25\u0e34\u0e15",
+ "Download Materials Required": "\u0e14\u0e32\u0e27\u0e19\u0e4c\u0e42\u0e2b\u0e25\u0e14\u0e27\u0e31\u0e2a\u0e14\u0e38\u0e17\u0e35\u0e48\u0e08\u0e33\u0e40\u0e1b\u0e47\u0e19",
+ "Download a report containing all raw materials with their latest inventory status": "\u0e14\u0e32\u0e27\u0e19\u0e4c\u0e42\u0e2b\u0e25\u0e14\u0e23\u0e32\u0e22\u0e07\u0e32\u0e19\u0e17\u0e35\u0e48\u0e21\u0e35\u0e27\u0e31\u0e15\u0e16\u0e38\u0e14\u0e34\u0e1a\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14\u0e17\u0e35\u0e48\u0e21\u0e35\u0e2a\u0e16\u0e32\u0e19\u0e30\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e04\u0e07\u0e04\u0e25\u0e31\u0e07\u0e02\u0e2d\u0e07\u0e1e\u0e27\u0e01\u0e40\u0e02\u0e32\u0e25\u0e48\u0e32\u0e2a\u0e38\u0e14",
+ "Enter items and planned qty for which you want to raise production orders or download raw materials for analysis.": "\u0e1b\u0e49\u0e2d\u0e19\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e41\u0e25\u0e30\u0e08\u0e33\u0e19\u0e27\u0e19\u0e17\u0e35\u0e48\u0e27\u0e32\u0e07\u0e41\u0e1c\u0e19\u0e44\u0e27\u0e49\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e17\u0e35\u0e48\u0e04\u0e38\u0e13\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e17\u0e35\u0e48\u0e08\u0e30\u0e22\u0e01\u0e23\u0e30\u0e14\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e2a\u0e31\u0e48\u0e07\u0e1c\u0e25\u0e34\u0e15\u0e2b\u0e23\u0e37\u0e2d\u0e14\u0e32\u0e27\u0e19\u0e4c\u0e42\u0e2b\u0e25\u0e14\u0e27\u0e31\u0e15\u0e16\u0e38\u0e14\u0e34\u0e1a\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e27\u0e34\u0e40\u0e04\u0e23\u0e32\u0e30\u0e2b\u0e4c",
+ "Filter based on customer": "\u0e01\u0e23\u0e2d\u0e07\u0e02\u0e36\u0e49\u0e19\u0e2d\u0e22\u0e39\u0e48\u0e01\u0e31\u0e1a\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Filter based on item": "\u0e01\u0e23\u0e2d\u0e07\u0e02\u0e36\u0e49\u0e19\u0e2d\u0e22\u0e39\u0e48\u0e01\u0e31\u0e1a\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "From Date": "\u0e08\u0e32\u0e01\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48",
+ "Get Items": "\u0e23\u0e31\u0e1a\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Get Sales Orders": "\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e01\u0e32\u0e23\u0e02\u0e32\u0e22",
+ "If checked, BOM for sub-assembly items will be considered for getting raw materials. Otherwise, all sub-assembly items will be treated as a raw material.": "\u0e2b\u0e32\u0e01\u0e01\u0e32\u0e23\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e27\u0e31\u0e2a\u0e14\u0e38\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e22\u0e48\u0e2d\u0e22\u0e1b\u0e23\u0e30\u0e01\u0e2d\u0e1a\u0e08\u0e30\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e1e\u0e34\u0e08\u0e32\u0e23\u0e13\u0e32\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e27\u0e31\u0e15\u0e16\u0e38\u0e14\u0e34\u0e1a \u0e21\u0e34\u0e09\u0e30\u0e19\u0e31\u0e49\u0e19\u0e17\u0e38\u0e01\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e22\u0e48\u0e2d\u0e22\u0e1b\u0e23\u0e30\u0e01\u0e2d\u0e1a\u0e08\u0e30\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e1b\u0e0f\u0e34\u0e1a\u0e31\u0e15\u0e34\u0e40\u0e1b\u0e47\u0e19\u0e27\u0e31\u0e15\u0e16\u0e38\u0e14\u0e34\u0e1a",
+ "Items to be requested which are \"Out of Stock\" considering all warehouses based on projected qty and minimum order qty": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e17\u0e35\u0e48\u0e08\u0e30\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e23\u0e49\u0e2d\u0e07\u0e02\u0e2d\u0e0b\u0e36\u0e48\u0e07\u0e40\u0e1b\u0e47\u0e19 "\u0e2d\u0e2d\u0e01\u0e08\u0e32\u0e01\u0e2a\u0e15\u0e47\u0e2d\u0e01" \u0e1e\u0e34\u0e08\u0e32\u0e23\u0e13\u0e32\u0e42\u0e01\u0e14\u0e31\u0e07\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14\u0e02\u0e36\u0e49\u0e19\u0e2d\u0e22\u0e39\u0e48\u0e01\u0e31\u0e1a\u0e08\u0e33\u0e19\u0e27\u0e19\u0e17\u0e35\u0e48\u0e04\u0e32\u0e14\u0e01\u0e32\u0e23\u0e13\u0e4c\u0e44\u0e27\u0e49\u0e41\u0e25\u0e30\u0e08\u0e33\u0e19\u0e27\u0e19\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e31\u0e49\u0e19\u0e15\u0e48\u0e33",
+ "Manufacturing": "\u0e01\u0e32\u0e23\u0e1c\u0e25\u0e34\u0e15",
+ "Material Request For Warehouse": "\u0e02\u0e2d\u0e27\u0e31\u0e2a\u0e14\u0e38\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Materials Requirement Planning (MRP)": "\u0e01\u0e32\u0e23\u0e27\u0e32\u0e07\u0e41\u0e1c\u0e19\u0e04\u0e27\u0e32\u0e21\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e27\u0e31\u0e2a\u0e14\u0e38 (MRP)",
+ "Production Plan Items": "\u0e41\u0e1c\u0e19\u0e01\u0e32\u0e23\u0e1c\u0e25\u0e34\u0e15\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23",
+ "Production Plan Sales Orders": "\u0e1c\u0e25\u0e34\u0e15\u0e04\u0e33\u0e2a\u0e31\u0e48\u0e07\u0e02\u0e32\u0e22\u0e41\u0e1c\u0e19",
+ "Production Planning Tool": "\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e21\u0e37\u0e2d\u0e01\u0e32\u0e23\u0e27\u0e32\u0e07\u0e41\u0e1c\u0e19\u0e01\u0e32\u0e23\u0e1c\u0e25\u0e34\u0e15",
+ "Pull items from Sales Order mentioned in the above table.": "\u0e14\u0e36\u0e07\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e08\u0e32\u0e01\u0e04\u0e33\u0e2a\u0e31\u0e48\u0e07\u0e02\u0e32\u0e22\u0e17\u0e35\u0e48\u0e01\u0e25\u0e48\u0e32\u0e27\u0e16\u0e36\u0e07\u0e43\u0e19\u0e15\u0e32\u0e23\u0e32\u0e07\u0e02\u0e49\u0e32\u0e07\u0e15\u0e49\u0e19",
+ "Pull sales orders (pending to deliver) based on the above criteria": "\u0e14\u0e36\u0e07\u0e22\u0e2d\u0e14\u0e02\u0e32\u0e22 (\u0e23\u0e2d\u0e01\u0e32\u0e23\u0e2a\u0e48\u0e07\u0e21\u0e2d\u0e1a) \u0e04\u0e33\u0e2a\u0e31\u0e48\u0e07\u0e15\u0e32\u0e21\u0e40\u0e01\u0e13\u0e11\u0e4c\u0e14\u0e31\u0e07\u0e01\u0e25\u0e48\u0e32\u0e27\u0e02\u0e49\u0e32\u0e07\u0e15\u0e49\u0e19",
+ "Raise Material Request": "\u0e22\u0e01\u0e04\u0e33\u0e02\u0e2d\u0e27\u0e31\u0e2a\u0e14\u0e38",
+ "Raise Production Order": "\u0e22\u0e01\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e01\u0e32\u0e23\u0e1c\u0e25\u0e34\u0e15",
+ "Select Sales Orders": "\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e04\u0e33\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e32\u0e22",
+ "Select Sales Orders from which you want to create Production Orders.": "\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e02\u0e32\u0e22\u0e17\u0e35\u0e48\u0e04\u0e38\u0e13\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e17\u0e35\u0e48\u0e08\u0e30\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e04\u0e33\u0e2a\u0e31\u0e48\u0e07\u0e01\u0e32\u0e23\u0e1c\u0e25\u0e34\u0e15\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d",
+ "Separate production order will be created for each finished good item.": "\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e1c\u0e25\u0e34\u0e15\u0e41\u0e22\u0e01\u0e08\u0e30\u0e16\u0e39\u0e01\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e02\u0e36\u0e49\u0e19\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e17\u0e35\u0e48\u0e14\u0e35\u0e43\u0e19\u0e41\u0e15\u0e48\u0e25\u0e30\u0e2a\u0e33\u0e40\u0e23\u0e47\u0e08\u0e23\u0e39\u0e1b",
+ "To Date": "\u0e19\u0e31\u0e14",
+ "Use Multi-Level BOM": "\u0e43\u0e0a\u0e49 BOM \u0e2b\u0e25\u0e32\u0e22\u0e23\u0e30\u0e14\u0e31\u0e1a"
+}
\ No newline at end of file
diff --git a/manufacturing/doctype/update_delivery_date/locale/_messages_doc.json b/manufacturing/doctype/update_delivery_date/locale/_messages_doc.json
index eab278c5bda..8645992fa1c 100644
--- a/manufacturing/doctype/update_delivery_date/locale/_messages_doc.json
+++ b/manufacturing/doctype/update_delivery_date/locale/_messages_doc.json
@@ -1,13 +1,13 @@
[
"Customer",
"Get Open Sales Order",
- "Manufacturing",
+ "Sales Order",
"Company",
"Update Delivery Date",
"To Date",
"From Date",
"Entries",
- "Sales Order",
+ "Manufacturing",
"Territory",
"Update Sales Order"
]
\ No newline at end of file
diff --git a/manufacturing/doctype/update_delivery_date/locale/de-doc.json b/manufacturing/doctype/update_delivery_date/locale/de-doc.json
new file mode 100644
index 00000000000..a21240b132c
--- /dev/null
+++ b/manufacturing/doctype/update_delivery_date/locale/de-doc.json
@@ -0,0 +1,13 @@
+{
+ "Company": "Firma",
+ "Customer": "Kunde",
+ "Entries": "Eintr\u00e4ge",
+ "From Date": "Von Datum",
+ "Get Open Sales Order": "Sie \u00f6ffnen Sales Order",
+ "Manufacturing": "Herstellung",
+ "Sales Order": "Sales Order",
+ "Territory": "Gebiet",
+ "To Date": "To Date",
+ "Update Delivery Date": "Aktualisieren Lieferdatum",
+ "Update Sales Order": "Aktualisieren Sie Sales Order"
+}
\ No newline at end of file
diff --git a/manufacturing/doctype/update_delivery_date/locale/pt-BR-doc.json b/manufacturing/doctype/update_delivery_date/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..4d9249ebb7c
--- /dev/null
+++ b/manufacturing/doctype/update_delivery_date/locale/pt-BR-doc.json
@@ -0,0 +1,13 @@
+{
+ "Company": "Empresa",
+ "Customer": "Cliente",
+ "Entries": "Lan\u00e7amentos",
+ "From Date": "A partir da data",
+ "Get Open Sales Order": "Obter Ordens de Venda abertas",
+ "Manufacturing": "Fabrica\u00e7\u00e3o",
+ "Sales Order": "Ordem de Venda",
+ "Territory": "Territ\u00f3rio",
+ "To Date": "At\u00e9 a Data",
+ "Update Delivery Date": "Atualizar Data de Entrega",
+ "Update Sales Order": "Atualizar Ordem de Venda"
+}
\ No newline at end of file
diff --git a/manufacturing/doctype/update_delivery_date/locale/th-doc.json b/manufacturing/doctype/update_delivery_date/locale/th-doc.json
new file mode 100644
index 00000000000..799fec149f5
--- /dev/null
+++ b/manufacturing/doctype/update_delivery_date/locale/th-doc.json
@@ -0,0 +1,13 @@
+{
+ "Company": "\u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17",
+ "Customer": "\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Entries": "\u0e04\u0e2d\u0e21\u0e40\u0e21\u0e19\u0e15\u0e4c",
+ "From Date": "\u0e08\u0e32\u0e01\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48",
+ "Get Open Sales Order": "\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e01\u0e32\u0e23\u0e02\u0e32\u0e22\u0e40\u0e1b\u0e34\u0e14",
+ "Manufacturing": "\u0e01\u0e32\u0e23\u0e1c\u0e25\u0e34\u0e15",
+ "Sales Order": "\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e32\u0e22",
+ "Territory": "\u0e2d\u0e32\u0e13\u0e32\u0e40\u0e02\u0e15",
+ "To Date": "\u0e19\u0e31\u0e14",
+ "Update Delivery Date": "\u0e2d\u0e31\u0e1e\u0e40\u0e14\u0e17\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e2a\u0e48\u0e07",
+ "Update Sales Order": "\u0e2d\u0e31\u0e1e\u0e40\u0e14\u0e17\u0e01\u0e32\u0e23\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e01\u0e32\u0e23\u0e02\u0e32\u0e22"
+}
\ No newline at end of file
diff --git a/manufacturing/doctype/workstation/locale/_messages_doc.json b/manufacturing/doctype/workstation/locale/_messages_doc.json
index 69f59425892..2df5d820adb 100644
--- a/manufacturing/doctype/workstation/locale/_messages_doc.json
+++ b/manufacturing/doctype/workstation/locale/_messages_doc.json
@@ -1,19 +1,19 @@
[
- "Hour Rate Rent",
"Workstation",
"Units/Shifts",
"Capacity",
"Description",
+ "Over Heads",
"Hour Rate",
"Trash Reason",
"Hour Rate Consumable",
"Capacity Units",
"Units/Hour",
- "Over Heads",
+ "Warehouse",
"Overhead",
"Hour Rate Electricity",
- "Warehouse",
"Manufacturing",
+ "Hour Rate Rent",
"Workstation Name",
"Hour Rate Labour"
]
\ No newline at end of file
diff --git a/manufacturing/doctype/workstation/locale/de-doc.json b/manufacturing/doctype/workstation/locale/de-doc.json
new file mode 100644
index 00000000000..1c60c68a3f4
--- /dev/null
+++ b/manufacturing/doctype/workstation/locale/de-doc.json
@@ -0,0 +1,19 @@
+{
+ "Capacity": "Kapazit\u00e4t",
+ "Capacity Units": "Capacity Units",
+ "Description": "Beschreibung",
+ "Hour Rate": "Hour Rate",
+ "Hour Rate Consumable": "Hour Rate Verbrauchsmaterial",
+ "Hour Rate Electricity": "Hour Rate Strom",
+ "Hour Rate Labour": "Hour Rate Labour",
+ "Hour Rate Rent": "Hour Rate Miete",
+ "Manufacturing": "Herstellung",
+ "Over Heads": "\u00dcber Heads",
+ "Overhead": "Oben",
+ "Trash Reason": "Trash Reason",
+ "Units/Hour": "Einheiten / Stunde",
+ "Units/Shifts": "Units / Shifts",
+ "Warehouse": "Lager",
+ "Workstation": "Arbeitsplatz",
+ "Workstation Name": "Name der Arbeitsstation"
+}
\ No newline at end of file
diff --git a/manufacturing/doctype/workstation/locale/pt-BR-doc.json b/manufacturing/doctype/workstation/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..e791709cbb1
--- /dev/null
+++ b/manufacturing/doctype/workstation/locale/pt-BR-doc.json
@@ -0,0 +1,19 @@
+{
+ "Capacity": "Capacidade",
+ "Capacity Units": "Unidades de Capacidade",
+ "Description": "Descri\u00e7\u00e3o",
+ "Hour Rate": "Valor por hora",
+ "Hour Rate Consumable": "Valor por hora de Consum\u00edveis",
+ "Hour Rate Electricity": "Valor por hora de Eletricidade",
+ "Hour Rate Labour": "Valor por hora de m\u00e3o-de-obra",
+ "Hour Rate Rent": "Valor por hora de Aluguel",
+ "Manufacturing": "Fabrica\u00e7\u00e3o",
+ "Over Heads": "Despesas gerais",
+ "Overhead": "Despesas gerais",
+ "Trash Reason": "Raz\u00e3o de p\u00f4r no lixo",
+ "Units/Hour": "Unidades/hora",
+ "Units/Shifts": "Unidades/Turnos",
+ "Warehouse": "Almoxarifado",
+ "Workstation": "Esta\u00e7\u00e3o de Trabalho",
+ "Workstation Name": "Nome da Esta\u00e7\u00e3o de Trabalho"
+}
\ No newline at end of file
diff --git a/manufacturing/doctype/workstation/locale/th-doc.json b/manufacturing/doctype/workstation/locale/th-doc.json
new file mode 100644
index 00000000000..b2fb464a1c9
--- /dev/null
+++ b/manufacturing/doctype/workstation/locale/th-doc.json
@@ -0,0 +1,19 @@
+{
+ "Capacity": "\u0e04\u0e27\u0e32\u0e21\u0e08\u0e38",
+ "Capacity Units": "\u0e2b\u0e19\u0e48\u0e27\u0e22\u0e04\u0e27\u0e32\u0e21\u0e08\u0e38",
+ "Description": "\u0e25\u0e31\u0e01\u0e29\u0e13\u0e30",
+ "Hour Rate": "\u0e2d\u0e31\u0e15\u0e23\u0e32\u0e0a\u0e31\u0e48\u0e27\u0e42\u0e21\u0e07",
+ "Hour Rate Consumable": "\u0e27\u0e31\u0e2a\u0e14\u0e38\u0e2a\u0e34\u0e49\u0e19\u0e40\u0e1b\u0e25\u0e37\u0e2d\u0e07\u0e04\u0e48\u0e32\u0e0a\u0e31\u0e48\u0e27\u0e42\u0e21\u0e07",
+ "Hour Rate Electricity": "\u0e01\u0e32\u0e23\u0e44\u0e1f\u0e1f\u0e49\u0e32\u0e2d\u0e31\u0e15\u0e23\u0e32\u0e0a\u0e31\u0e48\u0e27\u0e42\u0e21\u0e07",
+ "Hour Rate Labour": "\u0e41\u0e23\u0e07\u0e07\u0e32\u0e19\u0e2d\u0e31\u0e15\u0e23\u0e32\u0e0a\u0e31\u0e48\u0e27\u0e42\u0e21\u0e07",
+ "Hour Rate Rent": "\u0e23\u0e32\u0e04\u0e32\u0e40\u0e0a\u0e48\u0e32\u0e0a\u0e31\u0e48\u0e27\u0e42\u0e21\u0e07",
+ "Manufacturing": "\u0e01\u0e32\u0e23\u0e1c\u0e25\u0e34\u0e15",
+ "Over Heads": "\u0e40\u0e2b\u0e19\u0e37\u0e2d\u0e2b\u0e31\u0e27",
+ "Overhead": "\u0e40\u0e2b\u0e19\u0e37\u0e2d\u0e28\u0e35\u0e23\u0e29\u0e30",
+ "Trash Reason": "\u0e40\u0e2b\u0e15\u0e38\u0e1c\u0e25\u0e16\u0e31\u0e07\u0e02\u0e22\u0e30",
+ "Units/Hour": "\u0e2b\u0e19\u0e48\u0e27\u0e22 / \u0e0a\u0e31\u0e48\u0e27\u0e42\u0e21\u0e07",
+ "Units/Shifts": "\u0e2b\u0e19\u0e48\u0e27\u0e22 / \u0e01\u0e30",
+ "Warehouse": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Workstation": "\u0e40\u0e27\u0e34\u0e23\u0e4c\u0e04\u0e2a\u0e40\u0e15\u0e0a\u0e31\u0e48",
+ "Workstation Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e40\u0e27\u0e34\u0e23\u0e4c\u0e01\u0e2a\u0e40\u0e15\u0e0a\u0e31\u0e19"
+}
\ No newline at end of file
diff --git a/manufacturing/module_def/manufacturing/locale/_messages_doc.json b/manufacturing/module_def/manufacturing/locale/_messages_doc.json
deleted file mode 100644
index b47bc77f1d0..00000000000
--- a/manufacturing/module_def/manufacturing/locale/_messages_doc.json
+++ /dev/null
@@ -1,4 +0,0 @@
-[
- "Manufacturing Home",
- "Replace a particular BOM in all other BOMs where it is used. It will replace the old BOM link, update cost and regenerate \"BOM Explosion Item\" table as per new BOM"
-]
\ No newline at end of file
diff --git a/manufacturing/module_def/manufacturing/locale/ar-doc.json b/manufacturing/module_def/manufacturing/locale/ar-doc.json
deleted file mode 100644
index 647300662a2..00000000000
--- a/manufacturing/module_def/manufacturing/locale/ar-doc.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Manufacturing Home": "\u062a\u0635\u0646\u064a\u0639 \u0627\u0644\u0631\u0626\u064a\u0633\u064a\u0629",
- "Replace a particular BOM in all other BOMs where it is used. It will replace the old BOM link, update cost and regenerate \"BOM Explosion Item\" table as per new BOM": "\u0627\u0633\u062a\u0628\u062f\u0627\u0644 BOM \u062e\u0627\u0635\u0629 \u0641\u064a \u062c\u0645\u064a\u0639 BOMs \u0627\u0644\u0623\u062e\u0631\u0649 \u0627\u0644\u062a\u064a \u064a\u0633\u062a\u062e\u062f\u0645 \u0641\u064a\u0647\u0627. \u0648\u0627\u0646\u0647 \u0633\u064a\u062d\u0644 \u0645\u062d\u0644 \u0627\u0644\u0631\u0627\u0628\u0637 BOM \u0627\u0644\u0642\u062f\u064a\u0645\u0629\u060c \u0648\u062a\u062d\u062f\u064a\u062b \u0648\u062a\u062c\u062f\u064a\u062f \u0627\u0644\u062a\u0643\u0644\u0641\u0629 "\u0627\u0644\u0628\u0646\u062f \u0627\u0646\u0641\u062c\u0627\u0631 BOM" \u0627\u0644\u062c\u062f\u0648\u0644 \u0627\u0644\u062c\u062f\u064a\u062f \u0648\u0641\u0642\u0627 BOM"
-}
\ No newline at end of file
diff --git a/manufacturing/module_def/manufacturing/locale/es-doc.json b/manufacturing/module_def/manufacturing/locale/es-doc.json
deleted file mode 100644
index 43997d212c9..00000000000
--- a/manufacturing/module_def/manufacturing/locale/es-doc.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Manufacturing Home": "Fabricaci\u00f3n Inicio",
- "Replace a particular BOM in all other BOMs where it is used. It will replace the old BOM link, update cost and regenerate \"BOM Explosion Item\" table as per new BOM": "Reemplazar un BOM particular en todas las listas de materiales de otros en los que se utiliza. Se sustituir\u00e1 el enlace BOM viejo, actualizar el costo y regenerar "Explosi\u00f3n lista de materiales Item" tabla seg\u00fan nueva lista de materiales"
-}
\ No newline at end of file
diff --git a/manufacturing/module_def/manufacturing/locale/fr-doc.json b/manufacturing/module_def/manufacturing/locale/fr-doc.json
deleted file mode 100644
index f2637cc6f2a..00000000000
--- a/manufacturing/module_def/manufacturing/locale/fr-doc.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Manufacturing Home": "Accueil Fabrication",
- "Replace a particular BOM in all other BOMs where it is used. It will replace the old BOM link, update cost and regenerate \"BOM Explosion Item\" table as per new BOM": "Remplacer une nomenclature particuli\u00e8re dans toutes les nomenclatures d'autres o\u00f9 il est utilis\u00e9. Il remplacera le lien de nomenclature ancienne, mettre \u00e0 jour les co\u00fbts et r\u00e9g\u00e9n\u00e9rer "Explosion de nomenclature article" la table comme pour une nouvelle nomenclature"
-}
\ No newline at end of file
diff --git a/manufacturing/module_def/manufacturing/locale/hi-doc.json b/manufacturing/module_def/manufacturing/locale/hi-doc.json
deleted file mode 100644
index e1aa1db6e15..00000000000
--- a/manufacturing/module_def/manufacturing/locale/hi-doc.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Manufacturing Home": "\u0935\u093f\u0928\u093f\u0930\u094d\u092e\u093e\u0923 \u0939\u094b\u092e",
- "Replace a particular BOM in all other BOMs where it is used. It will replace the old BOM link, update cost and regenerate \"BOM Explosion Item\" table as per new BOM": "\u0905\u0928\u094d\u092f \u0938\u092d\u0940 BOMs \u091c\u0939\u093e\u0902 \u092f\u0939 \u092a\u094d\u0930\u092f\u094b\u0917 \u0915\u093f\u092f\u093e \u091c\u093e\u0924\u093e \u0939\u0948 \u092e\u0947\u0902 \u090f\u0915 \u0935\u093f\u0936\u0947\u0937 \u092c\u0940\u0913\u090f\u092e \u092c\u0926\u0932\u0947\u0902. \u092f\u0939 \u092a\u0941\u0930\u093e\u0928\u0947 \u092c\u0940\u0913\u090f\u092e \u0932\u093f\u0902\u0915 \u0915\u0940 \u091c\u0917\u0939, \u0932\u093e\u0917\u0924 \u0905\u0926\u094d\u092f\u0924\u0928 \u0914\u0930 \u0928\u092f\u093e \u092c\u0940\u0913\u090f\u092e \u0915\u0947 \u0905\u0928\u0941\u0938\u093e\u0930 "BOM \u0927\u092e\u093e\u0915\u093e \u0906\u0907\u091f\u092e" \u0924\u093e\u0932\u093f\u0915\u093e \u092a\u0941\u0928\u0930\u094d\u091c\u0928\u094d\u092e"
-}
\ No newline at end of file
diff --git a/manufacturing/module_def/manufacturing/locale/hr-doc.json b/manufacturing/module_def/manufacturing/locale/hr-doc.json
deleted file mode 100644
index d34d1e830f1..00000000000
--- a/manufacturing/module_def/manufacturing/locale/hr-doc.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Manufacturing Home": "Proizvodnja Po\u010detna",
- "Replace a particular BOM in all other BOMs where it is used. It will replace the old BOM link, update cost and regenerate \"BOM Explosion Item\" table as per new BOM": "Zamijenite odre\u0111eni BOM u svim drugim sastavnicama gdje se koriste. To \u0107e zamijeniti staru vezu BOM, a\u017eurirati tro\u0161kove i regenerirati "BOM eksploziju predmeta" stol kao i po novom BOM"
-}
\ No newline at end of file
diff --git a/manufacturing/module_def/manufacturing/locale/nl-doc.json b/manufacturing/module_def/manufacturing/locale/nl-doc.json
deleted file mode 100644
index 3aad7b8991f..00000000000
--- a/manufacturing/module_def/manufacturing/locale/nl-doc.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Manufacturing Home": "Productie Startpagina",
- "Replace a particular BOM in all other BOMs where it is used. It will replace the old BOM link, update cost and regenerate \"BOM Explosion Item\" table as per new BOM": "Vervang een bepaalde BOM in alle andere BOMs waar het wordt gebruikt. Deze vervangt de oude BOM link, updaten kosten en regenereren "BOM Explosion Item" tafel als per nieuwe BOM"
-}
\ No newline at end of file
diff --git a/manufacturing/module_def/manufacturing/locale/pt-doc.json b/manufacturing/module_def/manufacturing/locale/pt-doc.json
deleted file mode 100644
index 16aacc99490..00000000000
--- a/manufacturing/module_def/manufacturing/locale/pt-doc.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Manufacturing Home": "In\u00edcio de fabrica\u00e7\u00e3o",
- "Replace a particular BOM in all other BOMs where it is used. It will replace the old BOM link, update cost and regenerate \"BOM Explosion Item\" table as per new BOM": "Substituir um BOM particular em todas as BOMs outros onde ele \u00e9 usado. Ele ir\u00e1 substituir o link BOM antigo, atualizar o custo e regenerar "Explos\u00e3o BOM Item" tabela como por novo BOM"
-}
\ No newline at end of file
diff --git a/manufacturing/module_def/manufacturing/locale/sr-doc.json b/manufacturing/module_def/manufacturing/locale/sr-doc.json
deleted file mode 100644
index 521ad087507..00000000000
--- a/manufacturing/module_def/manufacturing/locale/sr-doc.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "Manufacturing Home": "\u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u045a\u0430 \u041f\u043e\u0447\u0435\u0442\u043d\u0430"
-}
\ No newline at end of file
diff --git a/manufacturing/module_def/manufacturing/locale/ta-doc.json b/manufacturing/module_def/manufacturing/locale/ta-doc.json
deleted file mode 100644
index e554b10ae8e..00000000000
--- a/manufacturing/module_def/manufacturing/locale/ta-doc.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "Manufacturing Home": "\u0b89\u0bb1\u0bcd\u0baa\u0ba4\u0bcd\u0ba4\u0bbf \u0bae\u0bc1\u0b95\u0baa\u0bcd\u0baa\u0bc1"
-}
\ No newline at end of file
diff --git a/manufacturing/page/manufacturing_home/locale/de-js.json b/manufacturing/page/manufacturing_home/locale/de-js.json
new file mode 100644
index 00000000000..7c4db43aeba
--- /dev/null
+++ b/manufacturing/page/manufacturing_home/locale/de-js.json
@@ -0,0 +1,18 @@
+{
+ "All Products or Services.": "Alle Produkte oder Dienstleistungen.",
+ "BOM Replace Tool": "BOM Replace Tool",
+ "Bill of Materials": "Bill of Materials",
+ "Bill of Materials (BOM)": "Bill of Materials (BOM)",
+ "Documents": "Unterlagen",
+ "Generate Material Requests (MRP) and Production Orders.": "Generieren Werkstoff Requests (MRP) und Fertigungsauftr\u00e4ge.",
+ "Item": "Artikel",
+ "Masters": "Masters",
+ "Orders released for production.": "Bestellungen f\u00fcr die Produktion freigegeben.",
+ "Production Order": "Fertigungsauftrag",
+ "Production Planning (MRP)": "Production Planning (MRP)",
+ "Production Planning Tool": "Production Planning-Tool",
+ "Replace Item / BOM in all BOMs": "Ersetzen Item / BOM in allen St\u00fccklisten",
+ "Utility": "Nutzen",
+ "Where manufacturing operations are carried out.": "Wo Herstellungsvorg\u00e4nge werden durchgef\u00fchrt.",
+ "Workstation": "Arbeitsplatz"
+}
\ No newline at end of file
diff --git a/manufacturing/page/manufacturing_home/locale/pt-BR-js.json b/manufacturing/page/manufacturing_home/locale/pt-BR-js.json
new file mode 100644
index 00000000000..a03ff0a5b57
--- /dev/null
+++ b/manufacturing/page/manufacturing_home/locale/pt-BR-js.json
@@ -0,0 +1,18 @@
+{
+ "All Products or Services.": "Todos os Produtos ou Servi\u00e7os.",
+ "BOM Replace Tool": "Ferramenta de Substitui\u00e7\u00e3o da LDM",
+ "Bill of Materials": "Lista de Materiais",
+ "Bill of Materials (BOM)": "Lista de Materiais (LDM)",
+ "Documents": "Documentos",
+ "Generate Material Requests (MRP) and Production Orders.": "Gerar Pedidos de Materiais (MRP) e ordens de produ\u00e7\u00e3o.",
+ "Item": "Item",
+ "Masters": "Cadastros",
+ "Orders released for production.": "Ordens liberadas para produ\u00e7\u00e3o.",
+ "Production Order": "Ordem de Produ\u00e7\u00e3o",
+ "Production Planning (MRP)": "Planejamento de Produ\u00e7\u00e3o (PRM)",
+ "Production Planning Tool": "Ferramenta de Planejamento da Produ\u00e7\u00e3o",
+ "Replace Item / BOM in all BOMs": "Substituir item / LDM em todas as LDMs",
+ "Utility": "Utilit\u00e1rio",
+ "Where manufacturing operations are carried out.": "Onde as opera\u00e7\u00f5es de fabrica\u00e7\u00e3o s\u00e3o realizadas.",
+ "Workstation": "Esta\u00e7\u00e3o de Trabalho"
+}
\ No newline at end of file
diff --git a/manufacturing/page/manufacturing_home/locale/th-js.json b/manufacturing/page/manufacturing_home/locale/th-js.json
new file mode 100644
index 00000000000..ea60a9d60c8
--- /dev/null
+++ b/manufacturing/page/manufacturing_home/locale/th-js.json
@@ -0,0 +1,18 @@
+{
+ "All Products or Services.": "\u0e1c\u0e25\u0e34\u0e15\u0e20\u0e31\u0e13\u0e11\u0e4c\u0e2b\u0e23\u0e37\u0e2d\u0e1a\u0e23\u0e34\u0e01\u0e32\u0e23",
+ "BOM Replace Tool": "\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e21\u0e37\u0e2d\u0e41\u0e17\u0e19\u0e17\u0e35\u0e48 BOM",
+ "Bill of Materials": "\u0e1a\u0e34\u0e25\u0e02\u0e2d\u0e07\u0e27\u0e31\u0e2a\u0e14\u0e38",
+ "Bill of Materials (BOM)": "\u0e1a\u0e34\u0e25\u0e27\u0e31\u0e2a\u0e14\u0e38 (BOM)",
+ "Documents": "\u0e40\u0e2d\u0e01\u0e2a\u0e32\u0e23",
+ "Generate Material Requests (MRP) and Production Orders.": "\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e04\u0e33\u0e02\u0e2d\u0e27\u0e31\u0e2a\u0e14\u0e38 (MRP) \u0e41\u0e25\u0e30\u0e04\u0e33\u0e2a\u0e31\u0e48\u0e07\u0e01\u0e32\u0e23\u0e1c\u0e25\u0e34\u0e15",
+ "Item": "\u0e0a\u0e34\u0e49\u0e19",
+ "Masters": "\u0e42\u0e17",
+ "Orders released for production.": "\u0e04\u0e33\u0e2a\u0e31\u0e48\u0e07\u0e1b\u0e25\u0e48\u0e2d\u0e22\u0e43\u0e2b\u0e49\u0e01\u0e32\u0e23\u0e1c\u0e25\u0e34\u0e15",
+ "Production Order": "\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e01\u0e32\u0e23\u0e1c\u0e25\u0e34\u0e15",
+ "Production Planning (MRP)": "\u0e01\u0e32\u0e23\u0e27\u0e32\u0e07\u0e41\u0e1c\u0e19\u0e01\u0e32\u0e23\u0e1c\u0e25\u0e34\u0e15 (MRP)",
+ "Production Planning Tool": "\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e21\u0e37\u0e2d\u0e01\u0e32\u0e23\u0e27\u0e32\u0e07\u0e41\u0e1c\u0e19\u0e01\u0e32\u0e23\u0e1c\u0e25\u0e34\u0e15",
+ "Replace Item / BOM in all BOMs": "\u0e41\u0e17\u0e19\u0e17\u0e35\u0e48\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23 / BOM \u0e43\u0e19 BOMs \u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14",
+ "Utility": "\u0e1b\u0e23\u0e30\u0e42\u0e22\u0e0a\u0e19\u0e4c",
+ "Where manufacturing operations are carried out.": "\u0e17\u0e35\u0e48\u0e14\u0e33\u0e40\u0e19\u0e34\u0e19\u0e01\u0e32\u0e23\u0e1c\u0e25\u0e34\u0e15\u0e08\u0e30\u0e14\u0e33\u0e40\u0e19\u0e34\u0e19\u0e01\u0e32\u0e23",
+ "Workstation": "\u0e40\u0e27\u0e34\u0e23\u0e4c\u0e04\u0e2a\u0e40\u0e15\u0e0a\u0e31\u0e48"
+}
\ No newline at end of file
diff --git a/patches/february_2013/p08_todo_query_report.py b/patches/february_2013/p08_todo_query_report.py
new file mode 100644
index 00000000000..6b25aba9cab
--- /dev/null
+++ b/patches/february_2013/p08_todo_query_report.py
@@ -0,0 +1,8 @@
+import webnotes
+
+def execute():
+ webnotes.clear_perms("Report")
+ webnotes.clear_perms("ToDo")
+ webnotes.reload_doc("core", "doctype", "report")
+ webnotes.reload_doc("core", "doctype", "todo")
+ webnotes.reload_doc("core", "report", "todo")
diff --git a/patches/february_2013/p09_remove_cancelled_warehouses.py b/patches/february_2013/p09_remove_cancelled_warehouses.py
new file mode 100644
index 00000000000..05e569ab72a
--- /dev/null
+++ b/patches/february_2013/p09_remove_cancelled_warehouses.py
@@ -0,0 +1,9 @@
+import webnotes
+
+def execute():
+ for w in webnotes.conn.sql("""select name from `tabWarehouse` where docstatus=2"""):
+ try:
+ webnotes.delete_doc("Warehouse", w[0])
+ except webnotes.ValidationError:
+ pass
+
\ No newline at end of file
diff --git a/patches/february_2013/p09_timesheets.py b/patches/february_2013/p09_timesheets.py
new file mode 100644
index 00000000000..2242d6b6291
--- /dev/null
+++ b/patches/february_2013/p09_timesheets.py
@@ -0,0 +1,55 @@
+import webnotes
+
+def execute():
+ # convert timesheet details to time logs
+ webnotes.reload_doc("projects", "doctype", "time_log")
+
+ # copy custom fields
+ custom_map = {"Timesheet":[], "Timesheet Detail":[]}
+ for custom_field in webnotes.conn.sql("""select * from `tabCustom Field` where
+ dt in ('Timesheet', 'Timesheet Detail')""", as_dict=True):
+ custom_map[custom_field.dt].append(custom_field.fieldname)
+ custom_field.doctype = "Custom Field"
+ custom_field.dt = "Time Log"
+ custom_field.insert_after = None
+ try:
+ cf = webnotes.bean(custom_field).insert()
+ except Exception, e:
+ # duplicate custom field
+ pass
+
+ for name in webnotes.conn.sql_list("""select name from tabTimesheet"""):
+ ts = webnotes.bean("Timesheet", name)
+
+ for tsd in ts.doclist.get({"doctype":"Timesheet Detail"}):
+ if not webnotes.conn.exists("Project", tsd.project_name):
+ tsd.project_name = None
+ if not webnotes.conn.exists("Task", tsd.task_id):
+ tsd.task_id = None
+
+ tl = webnotes.bean({
+ "doctype": "Time Log",
+ "status": "Draft",
+ "from_time": ts.doc.timesheet_date + " " + tsd.act_start_time,
+ "to_time": ts.doc.timesheet_date + " " + tsd.act_end_time,
+ "activity_type": tsd.activity_type,
+ "task": tsd.task_id,
+ "project": tsd.project_name,
+ "note": ts.doc.notes,
+ "file_list": ts.doc.file_list,
+ "_user_tags": ts.doc._user_tags,
+ "owner": ts.doc.owner,
+ "creation": ts.doc.creation,
+ "modified_by": ts.doc.modified_by
+ })
+
+ for key in custom_map["Timesheet"]:
+ tl.doc.fields[key] = ts.doc.fields.get(key)
+
+ for key in custom_map["Timesheet Detail"]:
+ tl.doc.fields[key] = tsd.fields.get(key)
+
+ tl.make_obj()
+ tl.controller.set_status()
+ tl.controller.calculate_total_hours()
+ tl.doc.insert()
diff --git a/patches/february_2013/repost_reserved_qty.py b/patches/february_2013/repost_reserved_qty.py
new file mode 100644
index 00000000000..7d790da2df9
--- /dev/null
+++ b/patches/february_2013/repost_reserved_qty.py
@@ -0,0 +1,54 @@
+import webnotes
+def execute():
+ webnotes.conn.auto_commit_on_many_writes = 1
+ repost_reserved_qty()
+ webnotes.conn.auto_commit_on_many_writes = 0
+
+def repost_reserved_qty():
+ from webnotes.utils import flt
+ bins = webnotes.conn.sql("select item_code, warehouse, name, reserved_qty from `tabBin`")
+ i = 0
+ for d in bins:
+ i += 1
+ reserved_qty = webnotes.conn.sql("""
+ select
+ sum((dnpi_qty / so_item_qty) * (so_item_qty - so_item_delivered_qty))
+ from
+ (
+ (select
+ qty as dnpi_qty,
+ (
+ select qty from `tabSales Order Item`
+ where name = dnpi.parent_detail_docname
+ ) as so_item_qty,
+ (
+ select ifnull(delivered_qty, 0) from `tabSales Order Item`
+ where name = dnpi.parent_detail_docname
+ ) as so_item_delivered_qty,
+ parent, name
+ from
+ (
+ select qty, parent_detail_docname, parent, name
+ from `tabDelivery Note Packing Item` dnpi_in
+ where item_code = %s and warehouse = %s
+ and parenttype="Sales Order"
+ and item_code != parent_item
+ and exists (select * from `tabSales Order` so
+ where name = dnpi_in.parent and docstatus = 1 and status != 'Stopped')
+ ) dnpi)
+ union
+ (select qty as dnpi_qty, qty as so_item_qty,
+ ifnull(delivered_qty, 0) as so_item_delivered_qty, parent, name
+ from `tabSales Order Item` so_item
+ where item_code = %s and reserved_warehouse = %s
+ and exists(select * from `tabSales Order` so
+ where so.name = so_item.parent and so.docstatus = 1
+ and so.status != 'Stopped'))
+ ) tab
+ where
+ so_item_qty >= so_item_delivered_qty
+ """, (d[0], d[1], d[0], d[1]))
+
+ if flt(d[3]) != flt(reserved_qty[0][0]):
+ webnotes.conn.sql("""update `tabBin` set reserved_qty = %s where name = %s""",
+ (reserved_qty and reserved_qty[0][0] or 0, d[2]))
\ No newline at end of file
diff --git a/patches/march_2013/__init__.py b/patches/march_2013/__init__.py
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/patches/march_2013/update_po_prevdoc_doctype.py b/patches/march_2013/update_po_prevdoc_doctype.py
new file mode 100644
index 00000000000..35e7a257b4e
--- /dev/null
+++ b/patches/march_2013/update_po_prevdoc_doctype.py
@@ -0,0 +1,6 @@
+import webnotes
+def execute():
+ webnotes.conn.sql("""update `tabPurchase Order Item` set prevdoc_doctype = 'Material Request'
+ where prevdoc_doctype = 'Purchase Request'""")
+ webnotes.conn.sql("""update `tabSupplier Quotation Item`
+ set prevdoc_doctype = 'Material Request' where prevdoc_doctype = 'Purchase Request'""")
\ No newline at end of file
diff --git a/patches/patch_list.py b/patches/patch_list.py
index 45df4c18be0..2bd4ad8f1f6 100644
--- a/patches/patch_list.py
+++ b/patches/patch_list.py
@@ -186,5 +186,22 @@ patch_list = [
"execute:webnotes.delete_doc('DocType', 'Service Order Detail')",
"execute:webnotes.delete_doc('DocType', 'Service Quotation Detail')",
"patches.february_2013.p06_material_request_mappers",
- "patches.february_2013.p07_clear_web_cache"
+ "patches.february_2013.p07_clear_web_cache",
+ "execute:webnotes.delete_doc('Page', 'Query Report')",
+ "execute:webnotes.delete_doc('Search Criteria', 'employeewise_balance_leave_report')",
+ "execute:webnotes.delete_doc('Search Criteria', 'employee_leave_balance_report')",
+ "patches.february_2013.repost_reserved_qty",
+ "execute:webnotes.reload_doc('core', 'doctype', 'report') # 2013-02-25",
+ "execute:webnotes.conn.sql(\"update `tabReport` set report_type=if(ifnull(query, '')='', 'Report Builder', 'Query Report') where is_standard='No'\")",
+ "execute:webnotes.conn.sql(\"update `tabReport` set report_name=name where ifnull(report_name,'')='' and is_standard='No'\")",
+ "patches.february_2013.p08_todo_query_report",
+ "execute:webnotes.delete_doc('Search Criteria', 'gross_profit') # 2013-02-26",
+ 'execute:webnotes.reload_doc("accounts", "Print Format", "Sales Invoice Classic") # 2013-02-26',
+ 'execute:webnotes.reload_doc("accounts", "Print Format", "Sales Invoice Modern") # 2013-02-26',
+ 'execute:webnotes.reload_doc("accounts", "Print Format", "Sales Invoice Spartan") # 2013-02-26',
+ "execute:(not webnotes.conn.exists('Role', 'Projects Manager')) and webnotes.doc({'doctype':'Role', 'role_name':'Projects Manager'}).insert()",
+ "patches.february_2013.p09_remove_cancelled_warehouses",
+ "patches.march_2013.update_po_prevdoc_doctype",
+ "patches.february_2013.p09_timesheets",
+ "execute:(not webnotes.conn.exists('UOM', 'Hour')) and webnotes.doc({'uom_name': 'Hour', 'doctype': 'UOM', 'name': 'Hour'}).insert()",
]
\ No newline at end of file
diff --git a/production/doctype/bom_replace_tool/locale/_messages_doc.json b/production/doctype/bom_replace_tool/locale/_messages_doc.json
deleted file mode 100644
index d6c8d69198a..00000000000
--- a/production/doctype/bom_replace_tool/locale/_messages_doc.json
+++ /dev/null
@@ -1,10 +0,0 @@
-[
- "BOM Replace Tool",
- "The BOM which will be replaced",
- "New BOM",
- "The new BOM after replacement",
- "Production",
- "Replace a particular BOM in all other BOMs where it is used. It will replace the old BOM link, update cost and regenerate \"BOM Explosion Item\" table as per new BOM",
- "Replace",
- "Current BOM"
-]
\ No newline at end of file
diff --git a/production/doctype/bom_replace_tool/locale/ar-doc.json b/production/doctype/bom_replace_tool/locale/ar-doc.json
deleted file mode 100644
index f7461310e95..00000000000
--- a/production/doctype/bom_replace_tool/locale/ar-doc.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "BOM Replace Tool": "BOM \u0627\u0633\u062a\u0628\u062f\u0627\u0644 \u0623\u062f\u0627\u0629",
- "Current BOM": "BOM \u0627\u0644\u062d\u0627\u0644\u064a",
- "New BOM": "BOM \u062c\u062f\u064a\u062f\u0629",
- "Production": "\u0627\u0644\u0625\u0646\u062a\u0627\u062c",
- "Replace": "\u0627\u0633\u062a\u0628\u062f\u0644",
- "Replace a particular BOM in all other BOMs where it is used. It will replace the old BOM link, update cost and regenerate \"BOM Explosion Item\" table as per new BOM": "\u0627\u0633\u062a\u0628\u062f\u0627\u0644 BOM \u062e\u0627\u0635\u0629 \u0641\u064a \u062c\u0645\u064a\u0639 BOMs \u0627\u0644\u0623\u062e\u0631\u0649 \u0627\u0644\u062a\u064a \u064a\u0633\u062a\u062e\u062f\u0645 \u0641\u064a\u0647\u0627. \u0648\u0627\u0646\u0647 \u0633\u064a\u062d\u0644 \u0645\u062d\u0644 \u0627\u0644\u0631\u0627\u0628\u0637 BOM \u0627\u0644\u0642\u062f\u064a\u0645\u0629\u060c \u0648\u062a\u062d\u062f\u064a\u062b \u0648\u062a\u062c\u062f\u064a\u062f \u0627\u0644\u062a\u0643\u0644\u0641\u0629 "\u0627\u0644\u0628\u0646\u062f \u0627\u0646\u0641\u062c\u0627\u0631 BOM" \u0627\u0644\u062c\u062f\u0648\u0644 \u0627\u0644\u062c\u062f\u064a\u062f \u0648\u0641\u0642\u0627 BOM",
- "The BOM which will be replaced": "\u0648BOM \u0627\u0644\u062a\u064a \u0633\u064a\u062a\u0645 \u0627\u0633\u062a\u0628\u062f\u0627\u0644\u0647\u0627",
- "The new BOM after replacement": "\u0648BOM \u0627\u0644\u062c\u062f\u064a\u062f\u0629 \u0628\u0639\u062f \u0627\u0633\u062a\u0628\u062f\u0627\u0644"
-}
\ No newline at end of file
diff --git a/production/doctype/bom_replace_tool/locale/es-doc.json b/production/doctype/bom_replace_tool/locale/es-doc.json
deleted file mode 100644
index 9834598af47..00000000000
--- a/production/doctype/bom_replace_tool/locale/es-doc.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "BOM Replace Tool": "BOM Tool Reemplazar",
- "Current BOM": "BOM actual",
- "New BOM": "Nueva lista de materiales",
- "Production": "Producci\u00f3n",
- "Replace": "Reemplazar",
- "Replace a particular BOM in all other BOMs where it is used. It will replace the old BOM link, update cost and regenerate \"BOM Explosion Item\" table as per new BOM": "Reemplazar un BOM particular en todas las listas de materiales de otros en los que se utiliza. Se sustituir\u00e1 el enlace BOM viejo, actualizar el costo y regenerar "Explosi\u00f3n lista de materiales Item" tabla seg\u00fan nueva lista de materiales",
- "The BOM which will be replaced": "La lista de materiales que ser\u00e1 sustituido",
- "The new BOM after replacement": "La lista de materiales nuevo despu\u00e9s de sustituirlo"
-}
\ No newline at end of file
diff --git a/production/doctype/bom_replace_tool/locale/fr-doc.json b/production/doctype/bom_replace_tool/locale/fr-doc.json
deleted file mode 100644
index 9284cad1484..00000000000
--- a/production/doctype/bom_replace_tool/locale/fr-doc.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "BOM Replace Tool": "Outil Remplacer BOM",
- "Current BOM": "Nomenclature actuelle",
- "New BOM": "Nouvelle nomenclature",
- "Production": "Production",
- "Replace": "Remplacer",
- "Replace a particular BOM in all other BOMs where it is used. It will replace the old BOM link, update cost and regenerate \"BOM Explosion Item\" table as per new BOM": "Remplacer une nomenclature particuli\u00e8re dans toutes les nomenclatures d'autres o\u00f9 il est utilis\u00e9. Il remplacera le lien de nomenclature ancienne, mettre \u00e0 jour les co\u00fbts et r\u00e9g\u00e9n\u00e9rer "Explosion de nomenclature article" la table comme pour une nouvelle nomenclature",
- "The BOM which will be replaced": "La nomenclature qui sera remplac\u00e9",
- "The new BOM after replacement": "La nouvelle nomenclature apr\u00e8s le remplacement"
-}
\ No newline at end of file
diff --git a/production/doctype/bom_replace_tool/locale/hi-doc.json b/production/doctype/bom_replace_tool/locale/hi-doc.json
deleted file mode 100644
index 3d9e9b4fb13..00000000000
--- a/production/doctype/bom_replace_tool/locale/hi-doc.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "BOM Replace Tool": "\u092c\u0940\u0913\u090f\u092e \u092c\u0926\u0932\u0947\u0902 \u0909\u092a\u0915\u0930\u0923",
- "Current BOM": "\u0935\u0930\u094d\u0924\u092e\u093e\u0928 \u092c\u0940\u0913\u090f\u092e",
- "New BOM": "\u0928\u0908 \u092c\u0940\u0913\u090f\u092e",
- "Production": "\u0909\u0924\u094d\u092a\u093e\u0926\u0928",
- "Replace": "\u092c\u0926\u0932\u0947\u0902",
- "Replace a particular BOM in all other BOMs where it is used. It will replace the old BOM link, update cost and regenerate \"BOM Explosion Item\" table as per new BOM": "\u0905\u0928\u094d\u092f \u0938\u092d\u0940 BOMs \u091c\u0939\u093e\u0902 \u092f\u0939 \u092a\u094d\u0930\u092f\u094b\u0917 \u0915\u093f\u092f\u093e \u091c\u093e\u0924\u093e \u0939\u0948 \u092e\u0947\u0902 \u090f\u0915 \u0935\u093f\u0936\u0947\u0937 \u092c\u0940\u0913\u090f\u092e \u092c\u0926\u0932\u0947\u0902. \u092f\u0939 \u092a\u0941\u0930\u093e\u0928\u0947 \u092c\u0940\u0913\u090f\u092e \u0932\u093f\u0902\u0915 \u0915\u0940 \u091c\u0917\u0939, \u0932\u093e\u0917\u0924 \u0905\u0926\u094d\u092f\u0924\u0928 \u0914\u0930 \u0928\u092f\u093e \u092c\u0940\u0913\u090f\u092e \u0915\u0947 \u0905\u0928\u0941\u0938\u093e\u0930 "BOM \u0927\u092e\u093e\u0915\u093e \u0906\u0907\u091f\u092e" \u0924\u093e\u0932\u093f\u0915\u093e \u092a\u0941\u0928\u0930\u094d\u091c\u0928\u094d\u092e",
- "The BOM which will be replaced": "\u092c\u0940\u0913\u090f\u092e \u091c\u094b \u092a\u094d\u0930\u0924\u093f\u0938\u094d\u0925\u093e\u092a\u093f\u0924 \u0915\u093f\u092f\u093e \u091c\u093e\u090f\u0917\u093e",
- "The new BOM after replacement": "\u092c\u0926\u0932\u0928\u0947 \u0915\u0947 \u092c\u093e\u0926 \u0928\u090f \u092c\u0940\u0913\u090f\u092e"
-}
\ No newline at end of file
diff --git a/production/doctype/bom_replace_tool/locale/hr-doc.json b/production/doctype/bom_replace_tool/locale/hr-doc.json
deleted file mode 100644
index c6ff6b6e774..00000000000
--- a/production/doctype/bom_replace_tool/locale/hr-doc.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "BOM Replace Tool": "BOM Zamijenite alat",
- "Current BOM": "Trenutni BOM",
- "New BOM": "Novi BOM",
- "Production": "Proizvodnja",
- "Replace": "Zamijeniti",
- "Replace a particular BOM in all other BOMs where it is used. It will replace the old BOM link, update cost and regenerate \"BOM Explosion Item\" table as per new BOM": "Zamijenite odre\u0111eni BOM u svim drugim sastavnicama gdje se koriste. To \u0107e zamijeniti staru vezu BOM, a\u017eurirati tro\u0161kove i regenerirati "BOM eksploziju predmeta" stol kao i po novom BOM",
- "The BOM which will be replaced": "BOM koji \u0107e biti zamijenjen",
- "The new BOM after replacement": "Novi BOM nakon zamjene"
-}
\ No newline at end of file
diff --git a/production/doctype/bom_replace_tool/locale/nl-doc.json b/production/doctype/bom_replace_tool/locale/nl-doc.json
deleted file mode 100644
index 26a07e81585..00000000000
--- a/production/doctype/bom_replace_tool/locale/nl-doc.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "BOM Replace Tool": "BOM Replace Tool",
- "Current BOM": "Actueel BOM",
- "New BOM": "Nieuwe BOM",
- "Production": "Productie",
- "Replace": "Vervang",
- "Replace a particular BOM in all other BOMs where it is used. It will replace the old BOM link, update cost and regenerate \"BOM Explosion Item\" table as per new BOM": "Vervang een bepaalde BOM in alle andere BOMs waar het wordt gebruikt. Deze vervangt de oude BOM link, updaten kosten en regenereren "BOM Explosion Item" tafel als per nieuwe BOM",
- "The BOM which will be replaced": "De BOM die zal worden vervangen",
- "The new BOM after replacement": "De nieuwe BOM na vervanging"
-}
\ No newline at end of file
diff --git a/production/doctype/bom_replace_tool/locale/pt-doc.json b/production/doctype/bom_replace_tool/locale/pt-doc.json
deleted file mode 100644
index a189dcd87c3..00000000000
--- a/production/doctype/bom_replace_tool/locale/pt-doc.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "BOM Replace Tool": "BOM Ferramenta Substituir",
- "Current BOM": "BOM atual",
- "New BOM": "Novo BOM",
- "Production": "Produ\u00e7\u00e3o",
- "Replace": "Substituir",
- "Replace a particular BOM in all other BOMs where it is used. It will replace the old BOM link, update cost and regenerate \"BOM Explosion Item\" table as per new BOM": "Substituir um BOM particular em todas as BOMs outros onde ele \u00e9 usado. Ele ir\u00e1 substituir o link BOM antigo, atualizar o custo e regenerar "Explos\u00e3o BOM Item" tabela como por novo BOM",
- "The BOM which will be replaced": "O BOM que ser\u00e1 substitu\u00eddo",
- "The new BOM after replacement": "O BOM novo ap\u00f3s substitui\u00e7\u00e3o"
-}
\ No newline at end of file
diff --git a/production/doctype/bom_replace_tool/locale/sr-doc.json b/production/doctype/bom_replace_tool/locale/sr-doc.json
deleted file mode 100644
index 6d0ecb0b567..00000000000
--- a/production/doctype/bom_replace_tool/locale/sr-doc.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "BOM Replace Tool": "\u0411\u041e\u041c \u0417\u0430\u043c\u0435\u043d\u0430 \u0430\u043b\u0430\u0442\u0430",
- "Current BOM": "\u0422\u0440\u0435\u043d\u0443\u0442\u043d\u0438 \u0411\u041e\u041c",
- "New BOM": "\u041d\u043e\u0432\u0438 \u0411\u041e\u041c",
- "Production": "\u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u045a\u0430",
- "Replace": "\u0417\u0430\u043c\u0435\u043d\u0438\u0442\u0438",
- "Replace a particular BOM in all other BOMs where it is used. It will replace the old BOM link, update cost and regenerate \"BOM Explosion Item\" table as per new BOM": "\u0417\u0430\u043c\u0435\u043d\u0438\u0442\u0435 \u043f\u043e\u0441\u0435\u0431\u043d\u0443 \u0431\u043e\u043c \u0443 \u0441\u0432\u0438\u043c \u043e\u0441\u0442\u0430\u043b\u0438\u043c \u0411\u041e\u041c\u0441 \u0433\u0434\u0435 \u0441\u0435 \u043e\u043d \u043a\u043e\u0440\u0438\u0441\u0442\u0438. \u041e\u043d\u0430 \u045b\u0435 \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u0438 \u0441\u0442\u0430\u0440\u0443 \u0432\u0435\u0437\u0443 \u0431\u043e\u043c, \u0430\u0436\u0443\u0440\u0438\u0440\u0430\u045a\u0435 \u0442\u0440\u043e\u0448\u043a\u043e\u0432\u0435 \u0438 \u0440\u0435\u0433\u0435\u043d\u0435\u0440\u0438\u0448\u0443 "\u0431\u043e\u043c \u0435\u043a\u0441\u043f\u043b\u043e\u0437\u0438\u0458\u0435 \u0458\u0435\u0434\u0438\u043d\u0438\u0446\u0435" \u0442\u0430\u0431\u0435\u043b\u0443 \u043f\u043e \u043d\u043e\u0432\u043e\u043c \u0411\u041e\u041c",
- "The BOM which will be replaced": "\u0411\u041e\u041c \u043a\u043e\u0458\u0438 \u045b\u0435 \u0431\u0438\u0442\u0438 \u0437\u0430\u043c\u0435\u045a\u0435\u043d",
- "The new BOM after replacement": "\u041d\u043e\u0432\u0438 \u0411\u041e\u041c \u043d\u0430\u043a\u043e\u043d \u0437\u0430\u043c\u0435\u043d\u0435"
-}
\ No newline at end of file
diff --git a/production/doctype/bom_replace_tool/locale/ta-doc.json b/production/doctype/bom_replace_tool/locale/ta-doc.json
deleted file mode 100644
index c2e816d7002..00000000000
--- a/production/doctype/bom_replace_tool/locale/ta-doc.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "BOM Replace Tool": "BOM \u0baa\u0ba4\u0bbf\u0bb2\u0bbe\u0b95 \u0b95\u0bb0\u0bc1\u0bb5\u0bbf",
- "Current BOM": "\u0ba4\u0bb1\u0bcd\u0baa\u0bc7\u0bbe\u0ba4\u0bc8\u0baf BOM",
- "New BOM": "\u0baa\u0bc1\u0ba4\u0bbf\u0baf BOM",
- "Production": "\u0b89\u0bb1\u0bcd\u0baa\u0ba4\u0bcd\u0ba4\u0bbf",
- "Replace": "\u0baa\u0ba4\u0bbf\u0bb2\u0bbe\u0b95",
- "Replace a particular BOM in all other BOMs where it is used. It will replace the old BOM link, update cost and regenerate \"BOM Explosion Item\" table as per new BOM": "\u0b87\u0ba4\u0bc1 \u0baa\u0baf\u0ba9\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0baa\u0bcd\u0baa\u0b9f\u0bc1\u0b95\u0bbf\u0bb1\u0ba4\u0bc1 \u0b85\u0bae\u0bc8\u0ba8\u0bcd\u0ba4\u0bc1\u0bb3\u0bcd\u0bb3 \u0b85\u0ba9\u0bc8\u0ba4\u0bcd\u0ba4\u0bc1 \u0bae\u0bb1\u0bcd\u0bb1 BOM \u0b95\u0bb3\u0bcd \u0b92\u0bb0\u0bc1 \u0b95\u0bc1\u0bb1\u0bbf\u0baa\u0bcd\u0baa\u0bbf\u0b9f\u0bcd\u0b9f BOM \u0baa\u0ba4\u0bbf\u0bb2\u0bbe\u0b95. \u0b87\u0ba4\u0bc1, \u0baa\u0bb4\u0bc8\u0baf BOM \u0b87\u0ba3\u0bc8\u0baa\u0bcd\u0baa\u0bc1 \u0baa\u0ba4\u0bbf\u0bb2\u0bbe\u0b95 \u0b9a\u0bc6\u0bb2\u0bb5\u0bc1 \u0baa\u0bc1\u0ba4\u0bc1\u0baa\u0bcd\u0baa\u0bbf\u0b95\u0bcd\u0b95 \u0baa\u0bc1\u0ba4\u0bbf\u0baf BOM \u0baa\u0b9f\u0bbf "BOM \u0bb5\u0bc6\u0b9f\u0bbf\u0baa\u0bcd\u0baa\u0bc1 \u0baa\u0bc6\u0bbe\u0bb0\u0bc1\u0bb3\u0bcd" \u0b85\u0b9f\u0bcd\u0b9f\u0bb5\u0ba3\u0bc8 \u0bae\u0bb1\u0bc1\u0b89\u0bb1\u0bcd\u0baa\u0ba4\u0bcd\u0ba4\u0bbf",
- "The BOM which will be replaced": "\u0baa\u0ba4\u0bbf\u0bb2\u0bc0\u0b9f\u0bc1 \u0b9a\u0bc6\u0baf\u0bcd\u0baf\u0baa\u0bcd\u0baa\u0b9f\u0bc1\u0bae\u0bcd BOM",
- "The new BOM after replacement": "\u0bae\u0bbe\u0bb1\u0bcd\u0bb1\u0bc1 \u0baa\u0bbf\u0ba9\u0bcd\u0ba9\u0bb0\u0bcd \u0baa\u0bc1\u0ba4\u0bbf\u0baf BOM"
-}
\ No newline at end of file
diff --git a/projects/doctype/activity_type/locale/de-doc.json b/projects/doctype/activity_type/locale/de-doc.json
new file mode 100644
index 00000000000..f2869edb376
--- /dev/null
+++ b/projects/doctype/activity_type/locale/de-doc.json
@@ -0,0 +1,4 @@
+{
+ "Activity Type": "Art der T\u00e4tigkeit",
+ "Projects": "Projekte"
+}
\ No newline at end of file
diff --git a/projects/doctype/activity_type/locale/pt-BR-doc.json b/projects/doctype/activity_type/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..db636709c70
--- /dev/null
+++ b/projects/doctype/activity_type/locale/pt-BR-doc.json
@@ -0,0 +1,4 @@
+{
+ "Activity Type": "Tipo da Atividade",
+ "Projects": "Projetos"
+}
\ No newline at end of file
diff --git a/projects/doctype/activity_type/locale/th-doc.json b/projects/doctype/activity_type/locale/th-doc.json
new file mode 100644
index 00000000000..02ee9dfa77f
--- /dev/null
+++ b/projects/doctype/activity_type/locale/th-doc.json
@@ -0,0 +1,4 @@
+{
+ "Activity Type": "\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e01\u0e34\u0e08\u0e01\u0e23\u0e23\u0e21",
+ "Projects": "\u0e42\u0e04\u0e23\u0e07\u0e01\u0e32\u0e23"
+}
\ No newline at end of file
diff --git a/projects/doctype/activity_type/test_activity_type.py b/projects/doctype/activity_type/test_activity_type.py
new file mode 100644
index 00000000000..77ef7b30bff
--- /dev/null
+++ b/projects/doctype/activity_type/test_activity_type.py
@@ -0,0 +1,5 @@
+test_records = [
+ [{"activity_type":"_Test Activity Type"}],
+ [{"activity_type":"_Test Activity Type 1"}],
+ [{"activity_type":"_Test Activity Type 2"}]
+]
\ No newline at end of file
diff --git a/projects/doctype/project/locale/_messages_doc.json b/projects/doctype/project/locale/_messages_doc.json
index a25821369f9..320f6b3aecc 100644
--- a/projects/doctype/project/locale/_messages_doc.json
+++ b/projects/doctype/project/locale/_messages_doc.json
@@ -3,14 +3,12 @@
"Tasks belonging to this Project.",
"Completion Date",
"No",
- "Customer Address",
"Customer Details",
"Trash Reason",
"Priority",
"Project Tasks",
"Internal",
"Low",
- "Contact Person",
"Project Start Date",
"Milestones will be added as Events in the Calendar",
"Status",
@@ -32,22 +30,17 @@
"Notes",
"Project",
"Project Type",
- "Customer Name",
"Cancelled",
"Project will get saved and will be searchable with project name given",
"Margin",
"Estimated Material Cost",
- "Territory",
"Tasks",
- "Contact No",
"Is Active",
"High",
"Other",
"Select name of Customer to whom project belongs",
"Project Milestones",
- "Customer Group",
"Yes",
"Open",
- "Company",
- "Email Id"
+ "Company"
]
\ No newline at end of file
diff --git a/projects/doctype/project/locale/de-doc.json b/projects/doctype/project/locale/de-doc.json
new file mode 100644
index 00000000000..27eba020590
--- /dev/null
+++ b/projects/doctype/project/locale/de-doc.json
@@ -0,0 +1,46 @@
+{
+ "Actual Completion Date": "Tats\u00e4chliche Datum der Fertigstellung",
+ "Cancelled": "Abgesagt",
+ "Company": "Firma",
+ "Completed": "Fertiggestellt",
+ "Completion Date": "Datum der Fertigstellung",
+ "Customer": "Kunde",
+ "Customer Details": "Customer Details",
+ "Dates": "Termine",
+ "Estimated Material Cost": "Gesch\u00e4tzter Materialkalkulationen",
+ "External": "Extern",
+ "File List": "Dateiliste",
+ "Gross Margin %": "Gross Margin%",
+ "Gross Margin Value": "Gross Margin Wert",
+ "High": "Hoch",
+ "Important dates and commitments in your project life cycle": "Wichtige Termine und Verpflichtungen in Ihrem Projekt-Lebenszyklus",
+ "Internal": "Intern",
+ "Is Active": "Aktiv ist",
+ "Low": "Gering",
+ "Margin": "Marge",
+ "Medium": "Medium",
+ "Milestones": "Meilensteine",
+ "Milestones will be added as Events in the Calendar": "Meilensteine \u200b\u200bwerden die Veranstaltungen in der hinzugef\u00fcgt werden",
+ "No": "Auf",
+ "Notes": "Aufzeichnungen",
+ "Open": "\u00d6ffnen",
+ "Other": "Andere",
+ "Priority": "Priorit\u00e4t",
+ "Project": "Projekt",
+ "Project Costing": "Projektkalkulation",
+ "Project Details": "Project Details",
+ "Project Milestones": "Projektmeilensteine",
+ "Project Name": "Project Name",
+ "Project Start Date": "Projekt Startdatum",
+ "Project Tasks": "Projektaufgaben",
+ "Project Type": "Projekttyp",
+ "Project Value": "Projekt Wert",
+ "Project will get saved and will be searchable with project name given": "Projekt wird gespeichert und erhalten werden durchsuchbare mit Projekt-Namen",
+ "Projects": "Projekte",
+ "Select name of Customer to whom project belongs": "W\u00e4hlen Sie den Namen des Kunden, dem geh\u00f6rt Projekts",
+ "Status": "Status",
+ "Tasks": "Aufgaben",
+ "Tasks belonging to this Project.": "Aufgaben geh\u00f6ren zu diesem Projekt.",
+ "Trash Reason": "Trash Reason",
+ "Yes": "Ja"
+}
\ No newline at end of file
diff --git a/projects/doctype/project/locale/pt-BR-doc.json b/projects/doctype/project/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..b475605c964
--- /dev/null
+++ b/projects/doctype/project/locale/pt-BR-doc.json
@@ -0,0 +1,46 @@
+{
+ "Actual Completion Date": "Data de Conclus\u00e3o Real",
+ "Cancelled": "Cancelado",
+ "Company": "Empresa",
+ "Completed": "Conclu\u00eddo",
+ "Completion Date": "Data de Conclus\u00e3o",
+ "Customer": "Cliente",
+ "Customer Details": "Detalhes do Cliente",
+ "Dates": "Datas",
+ "Estimated Material Cost": "Custo estimado de Material",
+ "External": "Externo",
+ "File List": "Lista de Arquivos",
+ "Gross Margin %": "Margem Bruta %",
+ "Gross Margin Value": "Valor Margem Bruta",
+ "High": "Alto",
+ "Important dates and commitments in your project life cycle": "Datas importantes e compromissos no ciclo de vida do seu projeto",
+ "Internal": "Interno",
+ "Is Active": "\u00c9 Ativo",
+ "Low": "Baixo",
+ "Margin": "Margem",
+ "Medium": "M\u00e9dio",
+ "Milestones": "Marcos",
+ "Milestones will be added as Events in the Calendar": "Marcos ser\u00e3o adicionados como eventos no calend\u00e1rio",
+ "No": "N\u00e3o",
+ "Notes": "Notas",
+ "Open": "Abrir",
+ "Other": "Outro",
+ "Priority": "Prioridade",
+ "Project": "Projeto",
+ "Project Costing": "Custo do Projeto",
+ "Project Details": "Detalhes do Projeto",
+ "Project Milestones": "Marcos do Projeto",
+ "Project Name": "Nome do Projeto",
+ "Project Start Date": "Data de in\u00edcio do Projeto",
+ "Project Tasks": "Tarefas do Projeto",
+ "Project Type": "Tipo de Projeto",
+ "Project Value": "Valor do Projeto",
+ "Project will get saved and will be searchable with project name given": "O Projeto ser\u00e1 salvo e poder\u00e1 ser pesquisado atrav\u00e9s do nome dado",
+ "Projects": "Projetos",
+ "Select name of Customer to whom project belongs": "Selecione o nome do cliente a quem pertence o projeto",
+ "Status": "Estado",
+ "Tasks": "Tarefas",
+ "Tasks belonging to this Project.": "Tarefas pertencentes a este projeto.",
+ "Trash Reason": "Raz\u00e3o de p\u00f4r no lixo",
+ "Yes": "Sim"
+}
\ No newline at end of file
diff --git a/projects/doctype/project/locale/th-doc.json b/projects/doctype/project/locale/th-doc.json
new file mode 100644
index 00000000000..8154ab49840
--- /dev/null
+++ b/projects/doctype/project/locale/th-doc.json
@@ -0,0 +1,53 @@
+{
+ "Actual Completion Date": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e40\u0e2a\u0e23\u0e47\u0e08\u0e2a\u0e21\u0e1a\u0e39\u0e23\u0e13\u0e4c\u0e08\u0e23\u0e34\u0e07",
+ "Cancelled": "\u0e22\u0e01\u0e40\u0e25\u0e34\u0e01",
+ "Company": "\u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17",
+ "Completed": "\u0e40\u0e2a\u0e23\u0e47\u0e08",
+ "Completion Date": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e40\u0e2a\u0e23\u0e47\u0e08\u0e2a\u0e21\u0e1a\u0e39\u0e23\u0e13\u0e4c",
+ "Contact No": "\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d\u0e44\u0e21\u0e48\u0e21\u0e35",
+ "Contact Person": "Contact Person",
+ "Customer": "\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Customer Address": "\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e02\u0e2d\u0e07\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Customer Details": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Customer Group": "\u0e01\u0e25\u0e38\u0e48\u0e21\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Customer Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Dates": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48",
+ "Email Id": "Email \u0e23\u0e2b\u0e31\u0e2a",
+ "Estimated Material Cost": "\u0e15\u0e49\u0e19\u0e17\u0e38\u0e19\u0e27\u0e31\u0e2a\u0e14\u0e38\u0e1b\u0e23\u0e30\u0e21\u0e32\u0e13",
+ "External": "\u0e20\u0e32\u0e22\u0e19\u0e2d\u0e01",
+ "File List": "\u0e23\u0e32\u0e22\u0e0a\u0e37\u0e48\u0e2d\u0e44\u0e1f\u0e25\u0e4c",
+ "Gross Margin %": "\u0e2d\u0e31\u0e15\u0e23\u0e32\u0e01\u0e33\u0e44\u0e23\u0e02\u0e31\u0e49\u0e19\u0e15\u0e49\u0e19%",
+ "Gross Margin Value": "\u0e04\u0e48\u0e32\u0e2d\u0e31\u0e15\u0e23\u0e32\u0e01\u0e33\u0e44\u0e23\u0e02\u0e31\u0e49\u0e19\u0e15\u0e49\u0e19",
+ "High": "\u0e2a\u0e39\u0e07",
+ "Important dates and commitments in your project life cycle": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e21\u0e35\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e33\u0e04\u0e31\u0e0d\u0e41\u0e25\u0e30\u0e21\u0e35\u0e04\u0e27\u0e32\u0e21\u0e21\u0e38\u0e48\u0e07\u0e21\u0e31\u0e48\u0e19\u0e43\u0e19\u0e27\u0e07\u0e08\u0e23\u0e0a\u0e35\u0e27\u0e34\u0e15\u0e02\u0e2d\u0e07\u0e42\u0e04\u0e23\u0e07\u0e01\u0e32\u0e23",
+ "Internal": "\u0e20\u0e32\u0e22\u0e43\u0e19",
+ "Is Active": "\u0e21\u0e35\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19",
+ "Low": "\u0e15\u0e48\u0e33",
+ "Margin": "\u0e02\u0e2d\u0e1a",
+ "Medium": "\u0e01\u0e25\u0e32\u0e07",
+ "Milestones": "\u0e04\u0e27\u0e32\u0e21\u0e04\u0e37\u0e1a\u0e2b\u0e19\u0e49\u0e32",
+ "Milestones will be added as Events in the Calendar": "\u0e04\u0e27\u0e32\u0e21\u0e04\u0e37\u0e1a\u0e2b\u0e19\u0e49\u0e32\u0e08\u0e30\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e1b\u0e47\u0e19\u0e40\u0e2b\u0e15\u0e38\u0e01\u0e32\u0e23\u0e13\u0e4c\u0e43\u0e19\u0e1b\u0e0f\u0e34\u0e17\u0e34\u0e19",
+ "No": "\u0e44\u0e21\u0e48",
+ "Notes": "\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e2b\u0e15\u0e38",
+ "Open": "\u0e40\u0e1b\u0e34\u0e14",
+ "Other": "\u0e2d\u0e37\u0e48\u0e19 \u0e46",
+ "Priority": "\u0e1a\u0e38\u0e23\u0e34\u0e21\u0e2a\u0e34\u0e17\u0e18\u0e34\u0e4c",
+ "Project": "\u0e42\u0e04\u0e23\u0e07\u0e01\u0e32\u0e23",
+ "Project Costing": "\u0e42\u0e04\u0e23\u0e07\u0e01\u0e32\u0e23\u0e15\u0e49\u0e19\u0e17\u0e38\u0e19",
+ "Project Details": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e02\u0e2d\u0e07\u0e42\u0e04\u0e23\u0e07\u0e01\u0e32\u0e23",
+ "Project Milestones": "\u0e04\u0e27\u0e32\u0e21\u0e04\u0e37\u0e1a\u0e2b\u0e19\u0e49\u0e32\u0e42\u0e04\u0e23\u0e07\u0e01\u0e32\u0e23",
+ "Project Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e42\u0e04\u0e23\u0e07\u0e01\u0e32\u0e23",
+ "Project Start Date": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19\u0e42\u0e04\u0e23\u0e07\u0e01\u0e32\u0e23",
+ "Project Tasks": "\u0e07\u0e32\u0e19\u0e42\u0e04\u0e23\u0e07\u0e01\u0e32\u0e23",
+ "Project Type": "\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e42\u0e04\u0e23\u0e07\u0e01\u0e32\u0e23",
+ "Project Value": "\u0e21\u0e39\u0e25\u0e04\u0e48\u0e32\u0e42\u0e04\u0e23\u0e07\u0e01\u0e32\u0e23",
+ "Project will get saved and will be searchable with project name given": "\u0e42\u0e04\u0e23\u0e07\u0e01\u0e32\u0e23\u0e08\u0e30\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e1a\u0e31\u0e19\u0e17\u0e36\u0e01\u0e44\u0e27\u0e49\u0e41\u0e25\u0e30\u0e08\u0e30\u0e44\u0e21\u0e48\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e04\u0e49\u0e19\u0e2b\u0e32\u0e17\u0e35\u0e48\u0e21\u0e35\u0e0a\u0e37\u0e48\u0e2d\u0e42\u0e04\u0e23\u0e07\u0e01\u0e32\u0e23\u0e17\u0e35\u0e48\u0e01\u0e33\u0e2b\u0e19\u0e14",
+ "Projects": "\u0e42\u0e04\u0e23\u0e07\u0e01\u0e32\u0e23",
+ "Select name of Customer to whom project belongs": "\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e0a\u0e37\u0e48\u0e2d\u0e02\u0e2d\u0e07\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32\u0e0b\u0e36\u0e48\u0e07\u0e40\u0e1b\u0e47\u0e19\u0e42\u0e04\u0e23\u0e07\u0e01\u0e32\u0e23",
+ "Status": "\u0e2a\u0e16\u0e32\u0e19\u0e30",
+ "Tasks": "\u0e07\u0e32\u0e19",
+ "Tasks belonging to this Project.": "\u0e07\u0e32\u0e19\u0e17\u0e35\u0e48\u0e40\u0e1b\u0e47\u0e19\u0e02\u0e2d\u0e07\u0e42\u0e04\u0e23\u0e07\u0e01\u0e32\u0e23\u0e19\u0e35\u200b\u200b\u0e49",
+ "Territory": "\u0e2d\u0e32\u0e13\u0e32\u0e40\u0e02\u0e15",
+ "Trash Reason": "\u0e40\u0e2b\u0e15\u0e38\u0e1c\u0e25\u0e16\u0e31\u0e07\u0e02\u0e22\u0e30",
+ "Yes": "\u0e43\u0e0a\u0e48"
+}
\ No newline at end of file
diff --git a/projects/doctype/project/project.txt b/projects/doctype/project/project.txt
index 11d473e73b4..326a47ae903 100644
--- a/projects/doctype/project/project.txt
+++ b/projects/doctype/project/project.txt
@@ -1,8 +1,8 @@
[
{
- "creation": "2013-01-10 16:34:17",
+ "creation": "2013-01-29 19:25:50",
"docstatus": 0,
- "modified": "2013-01-29 17:01:19",
+ "modified": "2013-02-22 11:06:22",
"modified_by": "Administrator",
"owner": "Administrator"
},
@@ -25,20 +25,13 @@
"permlevel": 0
},
{
- "amend": 0,
- "cancel": 1,
- "create": 1,
"doctype": "DocPerm",
"name": "__common__",
"parent": "Project",
"parentfield": "permissions",
"parenttype": "DocType",
- "permlevel": 0,
"read": 1,
- "report": 1,
- "role": "Projects User",
- "submit": 0,
- "write": 1
+ "role": "Projects User"
},
{
"doctype": "DocType",
@@ -289,88 +282,6 @@
"reqd": 0,
"search_index": 1
},
- {
- "doctype": "DocField",
- "fieldname": "customer_name",
- "fieldtype": "Data",
- "in_filter": 1,
- "label": "Customer Name",
- "no_copy": 0,
- "oldfieldname": "customer_name",
- "oldfieldtype": "Data",
- "read_only": 1,
- "search_index": 1
- },
- {
- "doctype": "DocField",
- "fieldname": "customer_address",
- "fieldtype": "Small Text",
- "label": "Customer Address",
- "no_copy": 0,
- "oldfieldname": "customer_address",
- "oldfieldtype": "Small Text",
- "read_only": 1,
- "search_index": 0
- },
- {
- "doctype": "DocField",
- "fieldname": "contact_person",
- "fieldtype": "Link",
- "in_filter": 1,
- "label": "Contact Person",
- "no_copy": 0,
- "oldfieldname": "contact_person",
- "oldfieldtype": "Link",
- "options": "Contact",
- "reqd": 0,
- "search_index": 0
- },
- {
- "doctype": "DocField",
- "fieldname": "territory",
- "fieldtype": "Link",
- "in_filter": 1,
- "label": "Territory",
- "oldfieldname": "territory",
- "oldfieldtype": "Link",
- "options": "Territory",
- "reqd": 0,
- "search_index": 0
- },
- {
- "doctype": "DocField",
- "fieldname": "contact_no",
- "fieldtype": "Data",
- "label": "Contact No",
- "no_copy": 0,
- "oldfieldname": "contact_no",
- "oldfieldtype": "Data",
- "read_only": 1,
- "search_index": 0
- },
- {
- "doctype": "DocField",
- "fieldname": "email_id",
- "fieldtype": "Data",
- "label": "Email Id",
- "no_copy": 0,
- "oldfieldname": "email_id",
- "oldfieldtype": "Data",
- "read_only": 1,
- "search_index": 0
- },
- {
- "doctype": "DocField",
- "fieldname": "customer_group",
- "fieldtype": "Link",
- "label": "Customer Group",
- "no_copy": 0,
- "oldfieldname": "customer_group",
- "oldfieldtype": "Link",
- "options": "Customer Group",
- "read_only": 1,
- "search_index": 0
- },
{
"doctype": "DocField",
"fieldname": "trash_reason",
@@ -394,6 +305,16 @@
"search_index": 0
},
{
- "doctype": "DocPerm"
+ "cancel": 1,
+ "create": 1,
+ "doctype": "DocPerm",
+ "permlevel": 0,
+ "report": 1,
+ "submit": 0,
+ "write": 1
+ },
+ {
+ "doctype": "DocPerm",
+ "permlevel": 1
}
]
\ No newline at end of file
diff --git a/projects/doctype/project/test_project.py b/projects/doctype/project/test_project.py
new file mode 100644
index 00000000000..bd7460d077f
--- /dev/null
+++ b/projects/doctype/project/test_project.py
@@ -0,0 +1,8 @@
+test_records = [[{
+ "project_name": "_Test Project",
+ "status": "Open"
+}],
+[{
+ "project_name": "_Test Project 1",
+ "status": "Open"
+}]]
\ No newline at end of file
diff --git a/projects/doctype/project_activity/locale/_messages_doc.json b/projects/doctype/project_activity/locale/_messages_doc.json
index a4f173139a4..f1d2810044e 100644
--- a/projects/doctype/project_activity/locale/_messages_doc.json
+++ b/projects/doctype/project_activity/locale/_messages_doc.json
@@ -1,35 +1,14 @@
[
"Percent Complete",
"New Update",
- "60",
"Add",
- "65",
"Updates HTML",
- "80",
- "85",
- "25",
- "20",
"Activity Name",
- "45",
- "40",
"Hours",
- "0",
- "5",
"Updates",
"Last Update By",
"Projects",
"Last Update",
"Project Activity",
- "Project",
- "75",
- "70",
- "90",
- "100",
- "95",
- "10",
- "15",
- "55",
- "30",
- "50",
- "35"
+ "Project"
]
\ No newline at end of file
diff --git a/projects/doctype/project_activity/locale/de-doc.json b/projects/doctype/project_activity/locale/de-doc.json
new file mode 100644
index 00000000000..f436f5a6e5b
--- /dev/null
+++ b/projects/doctype/project_activity/locale/de-doc.json
@@ -0,0 +1,14 @@
+{
+ "Activity Name": "Aktivit\u00e4t Name",
+ "Add": "Hinzuf\u00fcgen",
+ "Hours": "Stunden",
+ "Last Update": "Letztes Update",
+ "Last Update By": "Letzte Aktualisierung durch",
+ "New Update": "Neues Update",
+ "Percent Complete": "Percent Complete",
+ "Project": "Projekt",
+ "Project Activity": "Projekt Activity",
+ "Projects": "Projekte",
+ "Updates": "Updates",
+ "Updates HTML": "Updates HTML"
+}
\ No newline at end of file
diff --git a/projects/doctype/project_activity/locale/pt-BR-doc.json b/projects/doctype/project_activity/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..5e087ec45eb
--- /dev/null
+++ b/projects/doctype/project_activity/locale/pt-BR-doc.json
@@ -0,0 +1,14 @@
+{
+ "Activity Name": "Nome da Atividade",
+ "Add": "Adicionar",
+ "Hours": "Horas",
+ "Last Update": "\u00daltima Atualiza\u00e7\u00e3o",
+ "Last Update By": "\u00daltima Atualiza\u00e7\u00e3o por",
+ "New Update": "Nova Atualiza\u00e7\u00e3o",
+ "Percent Complete": "Porcentagem Conclu\u00edda",
+ "Project": "Projeto",
+ "Project Activity": "Atividade do Projeto",
+ "Projects": "Projetos",
+ "Updates": "Atualiza\u00e7\u00f5es",
+ "Updates HTML": "Atualiza\u00e7\u00f5es HTML"
+}
\ No newline at end of file
diff --git a/projects/doctype/project_activity/locale/th-doc.json b/projects/doctype/project_activity/locale/th-doc.json
new file mode 100644
index 00000000000..7df17c6015f
--- /dev/null
+++ b/projects/doctype/project_activity/locale/th-doc.json
@@ -0,0 +1,35 @@
+{
+ "0": "0",
+ "10": "10",
+ "100": "100",
+ "15": "15",
+ "20": "20",
+ "25": "25",
+ "30": "30",
+ "35": "35",
+ "40": "40",
+ "45": "45",
+ "5": "5",
+ "50": "50",
+ "55": "55",
+ "60": "60",
+ "65": "65",
+ "70": "70",
+ "75": "75",
+ "80": "80",
+ "85": "85",
+ "90": "90",
+ "95": "95",
+ "Activity Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e01\u0e34\u0e08\u0e01\u0e23\u0e23\u0e21",
+ "Add": "\u0e40\u0e1e\u0e34\u0e48\u0e21",
+ "Hours": "\u0e0a\u0e31\u0e48\u0e27\u0e42\u0e21\u0e07",
+ "Last Update": "\u0e1b\u0e23\u0e31\u0e1a\u0e1b\u0e23\u0e38\u0e07\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e25\u0e48\u0e32\u0e2a\u0e38\u0e14",
+ "Last Update By": "\u0e1b\u0e23\u0e31\u0e1a\u0e1b\u0e23\u0e38\u0e07\u0e25\u0e48\u0e32\u0e2a\u0e38\u0e14\u0e42\u0e14\u0e22",
+ "New Update": "\u0e1b\u0e23\u0e31\u0e1a\u0e1b\u0e23\u0e38\u0e07\u0e43\u0e2b\u0e21\u0e48",
+ "Percent Complete": "\u0e23\u0e49\u0e2d\u0e22\u0e25\u0e30\u0e2a\u0e21\u0e1a\u0e39\u0e23\u0e13\u0e4c",
+ "Project": "\u0e42\u0e04\u0e23\u0e07\u0e01\u0e32\u0e23",
+ "Project Activity": "\u0e01\u0e34\u0e08\u0e01\u0e23\u0e23\u0e21\u0e42\u0e04\u0e23\u0e07\u0e01\u0e32\u0e23",
+ "Projects": "\u0e42\u0e04\u0e23\u0e07\u0e01\u0e32\u0e23",
+ "Updates": "\u0e01\u0e32\u0e23\u0e1b\u0e23\u0e31\u0e1a\u0e1b\u0e23\u0e38\u0e07",
+ "Updates HTML": "HTML \u0e01\u0e32\u0e23\u0e1b\u0e23\u0e31\u0e1a\u0e1b\u0e23\u0e38\u0e07"
+}
\ No newline at end of file
diff --git a/projects/doctype/project_activity_update/locale/_messages_doc.json b/projects/doctype/project_activity_update/locale/_messages_doc.json
index 4fb348895bf..1e98c3943b7 100644
--- a/projects/doctype/project_activity_update/locale/_messages_doc.json
+++ b/projects/doctype/project_activity_update/locale/_messages_doc.json
@@ -1,7 +1,7 @@
[
- "Hours",
"e.g. 0.5, 2.5 etc",
+ "Update",
+ "Hours",
"Project Activity Update",
- "Projects",
- "Update"
+ "Projects"
]
\ No newline at end of file
diff --git a/projects/doctype/project_activity_update/locale/de-doc.json b/projects/doctype/project_activity_update/locale/de-doc.json
new file mode 100644
index 00000000000..a685dece875
--- /dev/null
+++ b/projects/doctype/project_activity_update/locale/de-doc.json
@@ -0,0 +1,7 @@
+{
+ "Hours": "Stunden",
+ "Project Activity Update": "Projekt Activity aktualisieren",
+ "Projects": "Projekte",
+ "Update": "Aktualisieren",
+ "e.g. 0.5, 2.5 etc": "z.B. 0,5, 2,5 etc."
+}
\ No newline at end of file
diff --git a/projects/doctype/project_activity_update/locale/pt-BR-doc.json b/projects/doctype/project_activity_update/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..29ee1648b30
--- /dev/null
+++ b/projects/doctype/project_activity_update/locale/pt-BR-doc.json
@@ -0,0 +1,7 @@
+{
+ "Hours": "Horas",
+ "Project Activity Update": "Atualiza\u00e7\u00e3o da Atividade do Projeto",
+ "Projects": "Projetos",
+ "Update": "Atualizar",
+ "e.g. 0.5, 2.5 etc": "por exemplo, 0,5, 2,5, etc"
+}
\ No newline at end of file
diff --git a/projects/doctype/project_activity_update/locale/th-doc.json b/projects/doctype/project_activity_update/locale/th-doc.json
new file mode 100644
index 00000000000..02b72b9cf41
--- /dev/null
+++ b/projects/doctype/project_activity_update/locale/th-doc.json
@@ -0,0 +1,7 @@
+{
+ "Hours": "\u0e0a\u0e31\u0e48\u0e27\u0e42\u0e21\u0e07",
+ "Project Activity Update": "\u0e1b\u0e23\u0e31\u0e1a\u0e1b\u0e23\u0e38\u0e07\u0e01\u0e34\u0e08\u0e01\u0e23\u0e23\u0e21\u0e42\u0e04\u0e23\u0e07\u0e01\u0e32\u0e23",
+ "Projects": "\u0e42\u0e04\u0e23\u0e07\u0e01\u0e32\u0e23",
+ "Update": "\u0e2d\u0e31\u0e1e\u0e40\u0e14\u0e17",
+ "e.g. 0.5, 2.5 etc": "\u0e40\u0e0a\u0e48\u0e19 0.5, 2.5 \u0e2f\u0e25\u0e2f"
+}
\ No newline at end of file
diff --git a/projects/doctype/project_control/locale/de-doc.json b/projects/doctype/project_control/locale/de-doc.json
new file mode 100644
index 00000000000..45a7808f03b
--- /dev/null
+++ b/projects/doctype/project_control/locale/de-doc.json
@@ -0,0 +1,4 @@
+{
+ "Project Control": "Project Control",
+ "Projects": "Projekte"
+}
\ No newline at end of file
diff --git a/projects/doctype/project_control/locale/pt-BR-doc.json b/projects/doctype/project_control/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..8764cf35267
--- /dev/null
+++ b/projects/doctype/project_control/locale/pt-BR-doc.json
@@ -0,0 +1,4 @@
+{
+ "Project Control": "Controle de Projeto",
+ "Projects": "Projetos"
+}
\ No newline at end of file
diff --git a/projects/doctype/project_control/locale/th-doc.json b/projects/doctype/project_control/locale/th-doc.json
new file mode 100644
index 00000000000..29893286766
--- /dev/null
+++ b/projects/doctype/project_control/locale/th-doc.json
@@ -0,0 +1,4 @@
+{
+ "Project Control": "\u0e01\u0e32\u0e23\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e42\u0e04\u0e23\u0e07\u0e01\u0e32\u0e23",
+ "Projects": "\u0e42\u0e04\u0e23\u0e07\u0e01\u0e32\u0e23"
+}
\ No newline at end of file
diff --git a/projects/doctype/project_milestone/locale/_messages_doc.json b/projects/doctype/project_milestone/locale/_messages_doc.json
index 7b64ba46abe..f9f43930019 100644
--- a/projects/doctype/project_milestone/locale/_messages_doc.json
+++ b/projects/doctype/project_milestone/locale/_messages_doc.json
@@ -3,7 +3,7 @@
"Project Milestone",
"Completed",
"Milestone Date",
- "Projects",
+ "Pending",
"Milestone",
- "Pending"
+ "Projects"
]
\ No newline at end of file
diff --git a/projects/doctype/project_milestone/locale/de-doc.json b/projects/doctype/project_milestone/locale/de-doc.json
new file mode 100644
index 00000000000..91d64f1957a
--- /dev/null
+++ b/projects/doctype/project_milestone/locale/de-doc.json
@@ -0,0 +1,9 @@
+{
+ "Completed": "Fertiggestellt",
+ "Milestone": "Meilenstein",
+ "Milestone Date": "Milestone Datum",
+ "Pending": "Schwebend",
+ "Project Milestone": "Projekt Milestone",
+ "Projects": "Projekte",
+ "Status": "Status"
+}
\ No newline at end of file
diff --git a/projects/doctype/project_milestone/locale/pt-BR-doc.json b/projects/doctype/project_milestone/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..ff7ebd376ce
--- /dev/null
+++ b/projects/doctype/project_milestone/locale/pt-BR-doc.json
@@ -0,0 +1,9 @@
+{
+ "Completed": "Conclu\u00eddo",
+ "Milestone": "Marco",
+ "Milestone Date": "Data do Marco",
+ "Pending": "Pendente",
+ "Project Milestone": "Marco do Projeto",
+ "Projects": "Projetos",
+ "Status": "Estado"
+}
\ No newline at end of file
diff --git a/projects/doctype/project_milestone/locale/th-doc.json b/projects/doctype/project_milestone/locale/th-doc.json
new file mode 100644
index 00000000000..efbeb6b5d0f
--- /dev/null
+++ b/projects/doctype/project_milestone/locale/th-doc.json
@@ -0,0 +1,9 @@
+{
+ "Completed": "\u0e40\u0e2a\u0e23\u0e47\u0e08",
+ "Milestone": "\u0e02\u0e31\u0e49\u0e19",
+ "Milestone Date": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48 Milestone",
+ "Pending": "\u0e04\u0e32\u0e23\u0e32\u0e04\u0e32\u0e0b\u0e31\u0e07",
+ "Project Milestone": "Milestone \u0e42\u0e04\u0e23\u0e07\u0e01\u0e32\u0e23",
+ "Projects": "\u0e42\u0e04\u0e23\u0e07\u0e01\u0e32\u0e23",
+ "Status": "\u0e2a\u0e16\u0e32\u0e19\u0e30"
+}
\ No newline at end of file
diff --git a/projects/doctype/task/locale/de-doc.json b/projects/doctype/task/locale/de-doc.json
new file mode 100644
index 00000000000..9edc445d92f
--- /dev/null
+++ b/projects/doctype/task/locale/de-doc.json
@@ -0,0 +1,34 @@
+{
+ "Actual": "Tats\u00e4chlich",
+ "Actual Budget": "Tats\u00e4chliche Budget",
+ "Actual End Date": "Actual End Datum",
+ "Actual Start Date": "Tats\u00e4chliche Startdatum",
+ "Allocated Budget": "Zugeteilten Budget",
+ "Cancelled": "Abgesagt",
+ "Closed": "Geschlossen",
+ "Closing Date": "Einsendeschluss",
+ "Company": "Firma",
+ "Details": "Details",
+ "Expected": "Voraussichtlich",
+ "Expected End Date": "Erwartete Enddatum",
+ "Expected Start Date": "Fr\u00fchestes Eintrittsdatum",
+ "File List": "Dateiliste",
+ "High": "Hoch",
+ "Low": "Gering",
+ "Medium": "Medium",
+ "More Details": "Mehr Details",
+ "Open": "\u00d6ffnen",
+ "Pending Review": "Bis Bewertung",
+ "Priority": "Priorit\u00e4t",
+ "Project": "Projekt",
+ "Projects": "Projekte",
+ "Review Date": "Bewerten Datum",
+ "Status": "Status",
+ "Subject": "Thema",
+ "Task": "Aufgabe",
+ "Task Details": "Task Details",
+ "Time and Budget": "Zeit und Budget",
+ "Total Hours (Expected)": "Total Hours (Erwartete)",
+ "Urgent": "Dringend",
+ "Working": "Arbeit"
+}
\ No newline at end of file
diff --git a/projects/doctype/task/locale/pt-BR-doc.json b/projects/doctype/task/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..54fdbc6c8d4
--- /dev/null
+++ b/projects/doctype/task/locale/pt-BR-doc.json
@@ -0,0 +1,34 @@
+{
+ "Actual": "Real",
+ "Actual Budget": "Or\u00e7amento Real",
+ "Actual End Date": "Data Final Real",
+ "Actual Start Date": "Data de In\u00edcio Real",
+ "Allocated Budget": "Or\u00e7amento alocado",
+ "Cancelled": "Cancelado",
+ "Closed": "Fechado",
+ "Closing Date": "Data de Encerramento",
+ "Company": "Empresa",
+ "Details": "Detalhes",
+ "Expected": "Esperado",
+ "Expected End Date": "Data Final prevista",
+ "Expected Start Date": "Data Inicial prevista",
+ "File List": "Lista de Arquivos",
+ "High": "Alto",
+ "Low": "Baixo",
+ "Medium": "M\u00e9dio",
+ "More Details": "Mais detalhes",
+ "Open": "Abrir",
+ "Pending Review": "Revis\u00e3o pendente",
+ "Priority": "Prioridade",
+ "Project": "Projeto",
+ "Projects": "Projetos",
+ "Review Date": "Data da Revis\u00e3o",
+ "Status": "Estado",
+ "Subject": "Assunto",
+ "Task": "Tarefa",
+ "Task Details": "Detalhes da Tarefa",
+ "Time and Budget": "Tempo e Or\u00e7amento",
+ "Total Hours (Expected)": "Total de Horas (Esperado)",
+ "Urgent": "Urgente",
+ "Working": "Trabalhando"
+}
\ No newline at end of file
diff --git a/projects/doctype/task/locale/th-doc.json b/projects/doctype/task/locale/th-doc.json
new file mode 100644
index 00000000000..10a94afe101
--- /dev/null
+++ b/projects/doctype/task/locale/th-doc.json
@@ -0,0 +1,34 @@
+{
+ "Actual": "\u0e15\u0e32\u0e21\u0e04\u0e27\u0e32\u0e21\u0e40\u0e1b\u0e47\u0e19\u0e08\u0e23\u0e34\u0e07",
+ "Actual Budget": "\u0e07\u0e1a\u0e1b\u0e23\u0e30\u0e21\u0e32\u0e13\u0e17\u0e35\u0e48\u0e40\u0e01\u0e34\u0e14\u0e02\u0e36\u0e49\u0e19\u0e08\u0e23\u0e34\u0e07",
+ "Actual End Date": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e2a\u0e34\u0e49\u0e19\u0e2a\u0e38\u0e14\u0e08\u0e23\u0e34\u0e07",
+ "Actual Start Date": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19\u0e08\u0e23\u0e34\u0e07",
+ "Allocated Budget": "\u0e07\u0e1a\u0e1b\u0e23\u0e30\u0e21\u0e32\u0e13\u0e17\u0e35\u0e48\u0e08\u0e31\u0e14\u0e2a\u0e23\u0e23",
+ "Cancelled": "\u0e22\u0e01\u0e40\u0e25\u0e34\u0e01",
+ "Closed": "\u0e1b\u0e34\u0e14",
+ "Closing Date": "\u0e1b\u0e34\u0e14\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48",
+ "Company": "\u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17",
+ "Details": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14",
+ "Expected": "\u0e17\u0e35\u0e48\u0e04\u0e32\u0e14\u0e2b\u0e27\u0e31\u0e07",
+ "Expected End Date": "\u0e04\u0e32\u0e14\u0e27\u0e48\u0e32\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e2a\u0e34\u0e49\u0e19\u0e2a\u0e38\u0e14",
+ "Expected Start Date": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19\u0e04\u0e32\u0e14\u0e27\u0e48\u0e32",
+ "File List": "\u0e23\u0e32\u0e22\u0e0a\u0e37\u0e48\u0e2d\u0e44\u0e1f\u0e25\u0e4c",
+ "High": "\u0e2a\u0e39\u0e07",
+ "Low": "\u0e15\u0e48\u0e33",
+ "Medium": "\u0e01\u0e25\u0e32\u0e07",
+ "More Details": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21",
+ "Open": "\u0e40\u0e1b\u0e34\u0e14",
+ "Pending Review": "\u0e23\u0e2d\u0e15\u0e23\u0e27\u0e08\u0e17\u0e32\u0e19",
+ "Priority": "\u0e1a\u0e38\u0e23\u0e34\u0e21\u0e2a\u0e34\u0e17\u0e18\u0e34\u0e4c",
+ "Project": "\u0e42\u0e04\u0e23\u0e07\u0e01\u0e32\u0e23",
+ "Projects": "\u0e42\u0e04\u0e23\u0e07\u0e01\u0e32\u0e23",
+ "Review Date": "\u0e17\u0e1a\u0e17\u0e27\u0e19\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48",
+ "Status": "\u0e2a\u0e16\u0e32\u0e19\u0e30",
+ "Subject": "\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07",
+ "Task": "\u0e07\u0e32\u0e19",
+ "Task Details": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e07\u0e32\u0e19",
+ "Time and Budget": "\u0e40\u0e27\u0e25\u0e32\u0e41\u0e25\u0e30\u0e07\u0e1a\u0e1b\u0e23\u0e30\u0e21\u0e32\u0e13",
+ "Total Hours (Expected)": "\u0e0a\u0e31\u0e48\u0e27\u0e42\u0e21\u0e07\u0e23\u0e27\u0e21 (\u0e04\u0e32\u0e14\u0e27\u0e48\u0e32)",
+ "Urgent": "\u0e14\u0e48\u0e27\u0e19",
+ "Working": "\u0e17\u0e33\u0e07\u0e32\u0e19"
+}
\ No newline at end of file
diff --git a/projects/doctype/task/test_task.py b/projects/doctype/task/test_task.py
new file mode 100644
index 00000000000..2e95806cb0e
--- /dev/null
+++ b/projects/doctype/task/test_task.py
@@ -0,0 +1,7 @@
+test_records = [
+ [{"subject": "_Test Task", "project":"_Test Project", "status":"Open"}],
+ [{"subject": "_Test Task 1", "status":"Open"}],
+ [{"subject": "_Test Task 2", "status":"Open"}]
+]
+
+test_ignore = ["Customer"]
\ No newline at end of file
diff --git a/projects/doctype/time_log/__init__.py b/projects/doctype/time_log/__init__.py
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/projects/doctype/time_log/locale/_messages_js.json b/projects/doctype/time_log/locale/_messages_js.json
new file mode 100644
index 00000000000..0637a088a01
--- /dev/null
+++ b/projects/doctype/time_log/locale/_messages_js.json
@@ -0,0 +1 @@
+[]
\ No newline at end of file
diff --git a/projects/doctype/time_log/locale/_messages_py.json b/projects/doctype/time_log/locale/_messages_py.json
new file mode 100644
index 00000000000..c594d545c5e
--- /dev/null
+++ b/projects/doctype/time_log/locale/_messages_py.json
@@ -0,0 +1,3 @@
+[
+ "This Time Log conflicts with"
+]
\ No newline at end of file
diff --git a/projects/doctype/time_log/test_time_log.py b/projects/doctype/time_log/test_time_log.py
new file mode 100644
index 00000000000..1168c014605
--- /dev/null
+++ b/projects/doctype/time_log/test_time_log.py
@@ -0,0 +1,19 @@
+import webnotes
+import unittest
+
+from projects.doctype.time_log.time_log import OverlapError
+
+class TestTimeLog(unittest.TestCase):
+ def test_duplication(self):
+ ts = webnotes.bean(webnotes.copy_doclist(test_records[0]))
+ self.assertRaises(OverlapError, ts.insert)
+
+test_records = [[{
+ "from_time": "2013-01-01 10:00:00",
+ "to_time": "2013-01-01 11:00:00",
+ "activity_type": "_Test Activity Type",
+ "note": "_Test Note",
+ "docstatus": 1
+}]]
+
+test_ignore = ["Sales Invoice", "Time Log Batch"]
\ No newline at end of file
diff --git a/projects/doctype/time_log/time_log.js b/projects/doctype/time_log/time_log.js
new file mode 100644
index 00000000000..a6023320f16
--- /dev/null
+++ b/projects/doctype/time_log/time_log.js
@@ -0,0 +1,5 @@
+$.extend(cur_frm.cscript, {
+ refresh: function(doc) {
+
+ }
+});
\ No newline at end of file
diff --git a/projects/doctype/time_log/time_log.py b/projects/doctype/time_log/time_log.py
new file mode 100644
index 00000000000..fe5d287718e
--- /dev/null
+++ b/projects/doctype/time_log/time_log.py
@@ -0,0 +1,77 @@
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+import webnotes
+from webnotes import _
+
+from webnotes.widgets.reportview import build_match_conditions
+
+class OverlapError(webnotes.ValidationError): pass
+
+class DocType:
+ def __init__(self, d, dl):
+ self.doc, self.doclist = d, dl
+
+ def validate(self):
+ self.set_status()
+ self.validate_overlap()
+ self.calculate_total_hours()
+
+ def calculate_total_hours(self):
+ from webnotes.utils import time_diff_in_hours
+ self.doc.hours = time_diff_in_hours(self.doc.to_time, self.doc.from_time)
+
+ def set_status(self):
+ self.doc.status = {
+ 0: "Draft",
+ 1: "Submitted",
+ 2: "Cancelled"
+ }[self.doc.docstatus or 0]
+
+ if self.doc.time_log_batch:
+ self.doc.status="Batched for Billing"
+
+ if self.doc.sales_invoice:
+ self.doc.status="Billed"
+
+ def validate_overlap(self):
+ existing = webnotes.conn.sql_list("""select name from `tabTime Log` where owner=%s and
+ (
+ (from_time between %s and %s) or
+ (to_time between %s and %s) or
+ (%s between from_time and to_time))
+ and name!=%s
+ and docstatus < 2""",
+ (self.doc.owner, self.doc.from_time, self.doc.to_time, self.doc.from_time,
+ self.doc.to_time, self.doc.from_time, self.doc.name or "No Name"))
+
+ if existing:
+ webnotes.msgprint(_("This Time Log conflicts with") + ":" + ', '.join(existing),
+ raise_exception=OverlapError)
+
+ def before_cancel(self):
+ self.set_status()
+
+ def before_update_after_submit(self):
+ self.set_status()
+
+@webnotes.whitelist()
+def get_events(start, end):
+ match = build_match_conditions("Time Log")
+ data = webnotes.conn.sql("""select name, from_time, to_time,
+ activity_type, task, project from `tabTime Log`
+ where from_time between '%(start)s' and '%(end)s' or to_time between '%(start)s' and '%(end)s'
+ %(match)s""" % {
+ "start": start,
+ "end": end,
+ "match": match and (" and " + match) or ""
+ }, as_dict=True, update={"allDay": 0})
+
+ for d in data:
+ d.title = d.name + ": " + (d.activity_type or "[Activity Type not set]")
+ if d.task:
+ d.title += " for Task: " + d.task
+ if d.project:
+ d.title += " for Project: " + d.project
+
+ return data
diff --git a/projects/doctype/time_log/time_log.txt b/projects/doctype/time_log/time_log.txt
new file mode 100644
index 00000000000..cf815db57fc
--- /dev/null
+++ b/projects/doctype/time_log/time_log.txt
@@ -0,0 +1,202 @@
+[
+ {
+ "creation": "2013-03-04 02:39:45",
+ "docstatus": 0,
+ "modified": "2013-03-04 02:48:12",
+ "modified_by": "Administrator",
+ "owner": "Administrator"
+ },
+ {
+ "allow_attach": 1,
+ "autoname": "naming_series:",
+ "description": "Log of Activities performed by users against Tasks that can be used for tracking time, billing.",
+ "doctype": "DocType",
+ "document_type": "Master",
+ "is_submittable": 1,
+ "module": "Projects",
+ "name": "__common__"
+ },
+ {
+ "doctype": "DocField",
+ "name": "__common__",
+ "parent": "Time Log",
+ "parentfield": "fields",
+ "parenttype": "DocType"
+ },
+ {
+ "doctype": "DocPerm",
+ "name": "__common__",
+ "parent": "Time Log",
+ "parentfield": "permissions",
+ "parenttype": "DocType",
+ "permlevel": 0,
+ "read": 1,
+ "write": 1
+ },
+ {
+ "doctype": "DocType",
+ "name": "Time Log"
+ },
+ {
+ "doctype": "DocField",
+ "fieldname": "naming_series",
+ "fieldtype": "Select",
+ "label": "Naming Series",
+ "options": "TL-",
+ "permlevel": 0,
+ "reqd": 1
+ },
+ {
+ "doctype": "DocField",
+ "fieldname": "from_time",
+ "fieldtype": "Datetime",
+ "in_list_view": 1,
+ "label": "From Time",
+ "permlevel": 0,
+ "reqd": 1
+ },
+ {
+ "doctype": "DocField",
+ "fieldname": "to_time",
+ "fieldtype": "Datetime",
+ "in_list_view": 0,
+ "label": "To Time",
+ "permlevel": 0,
+ "reqd": 1
+ },
+ {
+ "doctype": "DocField",
+ "fieldname": "hours",
+ "fieldtype": "Float",
+ "label": "Hours",
+ "permlevel": 0,
+ "read_only": 1
+ },
+ {
+ "doctype": "DocField",
+ "fieldname": "column_break_3",
+ "fieldtype": "Column Break",
+ "permlevel": 0
+ },
+ {
+ "doctype": "DocField",
+ "fieldname": "status",
+ "fieldtype": "Select",
+ "in_list_view": 1,
+ "label": "Status",
+ "options": "Draft\nSubmitted\nBatched for Billing\nBilled\nCancelled",
+ "permlevel": 0,
+ "read_only": 1,
+ "reqd": 0
+ },
+ {
+ "doctype": "DocField",
+ "fieldname": "activity_type",
+ "fieldtype": "Link",
+ "in_list_view": 1,
+ "label": "Activity Type",
+ "options": "Activity Type",
+ "permlevel": 0,
+ "reqd": 1
+ },
+ {
+ "doctype": "DocField",
+ "fieldname": "task",
+ "fieldtype": "Link",
+ "label": "Task",
+ "options": "Task",
+ "permlevel": 0
+ },
+ {
+ "doctype": "DocField",
+ "fieldname": "billable",
+ "fieldtype": "Check",
+ "in_list_view": 1,
+ "label": "Billable",
+ "permlevel": 0
+ },
+ {
+ "doctype": "DocField",
+ "fieldname": "section_break_7",
+ "fieldtype": "Section Break",
+ "permlevel": 0
+ },
+ {
+ "doctype": "DocField",
+ "fieldname": "note",
+ "fieldtype": "Text Editor",
+ "label": "Note",
+ "permlevel": 0
+ },
+ {
+ "doctype": "DocField",
+ "fieldname": "section_break_9",
+ "fieldtype": "Section Break",
+ "permlevel": 0
+ },
+ {
+ "doctype": "DocField",
+ "fieldname": "project",
+ "fieldtype": "Link",
+ "in_list_view": 1,
+ "label": "Project",
+ "options": "Project",
+ "permlevel": 0
+ },
+ {
+ "description": "Will be updated when batched.",
+ "doctype": "DocField",
+ "fieldname": "time_log_batch",
+ "fieldtype": "Link",
+ "label": "Time Log Batch",
+ "options": "Time Log Batch",
+ "permlevel": 0,
+ "read_only": 1
+ },
+ {
+ "description": "Will be updated when billed.",
+ "doctype": "DocField",
+ "fieldname": "sales_invoice",
+ "fieldtype": "Link",
+ "label": "Sales Invoice",
+ "options": "Sales Invoice",
+ "permlevel": 0,
+ "read_only": 1
+ },
+ {
+ "doctype": "DocField",
+ "fieldname": "column_break_16",
+ "fieldtype": "Column Break",
+ "permlevel": 0
+ },
+ {
+ "doctype": "DocField",
+ "fieldname": "file_list",
+ "fieldtype": "Text",
+ "hidden": 1,
+ "label": "File List",
+ "no_copy": 1,
+ "permlevel": 0,
+ "print_hide": 1
+ },
+ {
+ "doctype": "DocField",
+ "fieldname": "amended_from",
+ "fieldtype": "Link",
+ "label": "Amended From",
+ "no_copy": 1,
+ "options": "Time Log",
+ "permlevel": 1,
+ "print_hide": 1
+ },
+ {
+ "create": 1,
+ "doctype": "DocPerm",
+ "match": "owner",
+ "role": "Projects User"
+ },
+ {
+ "doctype": "DocPerm",
+ "role": "Projects Manager"
+ }
+]
\ No newline at end of file
diff --git a/projects/doctype/time_log/time_log_calendar.js b/projects/doctype/time_log/time_log_calendar.js
new file mode 100644
index 00000000000..e5bb774a0c6
--- /dev/null
+++ b/projects/doctype/time_log/time_log_calendar.js
@@ -0,0 +1,10 @@
+wn.views.calendar["Time Log"] = wn.views.Calendar.extend({
+ field_map: {
+ "start": "from_time",
+ "end": "to_time",
+ "id": "name",
+ "title": "title",
+ "allDay": "allDay"
+ },
+ get_events_method: "projects.doctype.time_log.time_log.get_events"
+})
\ No newline at end of file
diff --git a/projects/doctype/time_log/time_log_list.js b/projects/doctype/time_log/time_log_list.js
new file mode 100644
index 00000000000..85c9b2a1eff
--- /dev/null
+++ b/projects/doctype/time_log/time_log_list.js
@@ -0,0 +1,45 @@
+// render
+wn.listview_settings['Time Log'] = {
+ add_fields: ["`tabTime Log`.`status`", "`tabTime Log`.`billable`", "`tabTime Log`.`activity_type`"],
+ selectable: true,
+ onload: function(me) {
+ me.appframe.add_button(wn._("Make Time Log Batch"), function() {
+ var selected = me.get_checked_items() || [];
+
+ if(!selected.length) {
+ msgprint(wn._("Please select Time Logs."))
+ }
+
+ // select only billable time logs
+ for(var i in selected) {
+ var d = selected[i];
+ if(!d.billable) {
+ msgprint(wn._("Time Log is not billable") + ": " + d.name);
+ return;
+ }
+ if(d.status!="Submitted") {
+ msgprint(wn._("Time Log Status must be Submitted."));
+ }
+ }
+
+ // make batch
+ wn.model.with_doctype("Time Log Batch", function() {
+ var tlb = wn.model.get_new_doc("Time Log Batch");
+ $.each(selected, function(i, d) {
+ var detail = wn.model.get_new_doc("Time Log Batch Detail");
+ $.extend(detail, {
+ "parenttype": "Time Log Batch",
+ "parentfield": "time_log_batch_details",
+ "parent": tlb.name,
+ "time_log": d.name,
+ "activity_type": d.activity_type,
+ "created_by": d.owner,
+ "idx": i+1
+ });
+ })
+ wn.set_route("Form", "Time Log Batch", tlb.name);
+ })
+
+ }, "icon-file-alt");
+ }
+};
diff --git a/projects/doctype/time_log_batch/__init__.py b/projects/doctype/time_log_batch/__init__.py
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/projects/doctype/time_log_batch/test_time_log_batch.py b/projects/doctype/time_log_batch/test_time_log_batch.py
new file mode 100644
index 00000000000..54195c29cb2
--- /dev/null
+++ b/projects/doctype/time_log_batch/test_time_log_batch.py
@@ -0,0 +1,20 @@
+import webnotes, unittest
+
+class TimeLogBatchTest(unittest.TestCase):
+ def test_time_log_status(self):
+ self.assertEquals(webnotes.conn.get_value("Time Log", "_T-Time Log-00001", "status"), "Submitted")
+ tlb = webnotes.bean("Time Log Batch", "_T-Time Log Batch-00001")
+ tlb.submit()
+ self.assertEquals(webnotes.conn.get_value("Time Log", "_T-Time Log-00001", "status"), "Batched for Billing")
+ tlb.cancel()
+ self.assertEquals(webnotes.conn.get_value("Time Log", "_T-Time Log-00001", "status"), "Submitted")
+
+test_records = [[
+ {"rate": "500"},
+ {
+ "doctype": "Time Log Batch Detail",
+ "parenttype": "Time Log Batch",
+ "parentfield": "time_log_batch_details",
+ "time_log": "_T-Time Log-00001",
+ }
+]]
\ No newline at end of file
diff --git a/projects/doctype/time_log_batch/time_log_batch.js b/projects/doctype/time_log_batch/time_log_batch.js
new file mode 100644
index 00000000000..6e5165b50f3
--- /dev/null
+++ b/projects/doctype/time_log_batch/time_log_batch.js
@@ -0,0 +1,36 @@
+cur_frm.add_fetch("time_log", "activity_type", "activity_type");
+cur_frm.add_fetch("time_log", "owner", "created_by");
+cur_frm.add_fetch("time_log", "hours", "hours");
+
+cur_frm.set_query("time_log", "time_log_batch_details", function(doc) {
+ return {
+ query: "projects.utils.get_time_log_list",
+ filters: {
+ "billable": 1,
+ "status": "Submitted"
+ }
+ }
+});
+
+$.extend(cur_frm.cscript, {
+ refresh: function(doc) {
+ cur_frm.set_intro({
+ "Draft": wn._("Select Time Logs and Submit to create a new Sales Invoice."),
+ "Submitted": wn._("Click on 'Make Sales Invoice' button to create a new Sales Invoice."),
+ "Billed": wn._("This Time Log Batch has been billed."),
+ "Cancelled": wn._("This Time Log Batch has been cancelled.")
+ }[doc.status]);
+
+ if(doc.status=="Submitted") {
+ cur_frm.add_custom_button("Make Sales Invoice", function() { cur_frm.cscript.make_invoice() },
+ "icon-file-alt");
+ }
+ },
+ make_invoice: function() {
+ var doc = cur_frm.doc;
+ wn.model.map({
+ source: wn.model.get_doclist(doc.doctype, doc.name),
+ target: "Sales Invoice"
+ });
+ }
+});
\ No newline at end of file
diff --git a/projects/doctype/time_log_batch/time_log_batch.py b/projects/doctype/time_log_batch/time_log_batch.py
new file mode 100644
index 00000000000..6ec0e5b4653
--- /dev/null
+++ b/projects/doctype/time_log_batch/time_log_batch.py
@@ -0,0 +1,60 @@
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+import webnotes
+from webnotes import _
+
+class DocType:
+ def __init__(self, d, dl):
+ self.doc, self.doclist = d, dl
+
+ def validate(self):
+ self.set_status()
+ self.doc.total_hours = 0.0
+ for d in self.doclist.get({"doctype":"Time Log Batch Detail"}):
+ tl = webnotes.doc("Time Log", d.time_log)
+ self.update_time_log_values(d, tl)
+ self.validate_time_log_is_submitted(tl)
+ self.doc.total_hours += float(tl.hours or 0.0)
+
+ def update_time_log_values(self, d, tl):
+ d.fields.update({
+ "hours": tl.hours,
+ "activity_type": tl.activity_type,
+ "created_by": tl.owner
+ })
+
+ def validate_time_log_is_submitted(self, tl):
+ if tl.status != "Submitted":
+ webnotes.msgprint(_("Time Log must have status 'Submitted'") + \
+ " :" + tl.name + " (" + _(tl.status) + ")", raise_exception=True)
+
+ def set_status(self):
+ self.doc.status = {
+ "0": "Draft",
+ "1": "Submitted",
+ "2": "Cancelled"
+ }[str(self.doc.docstatus or 0)]
+
+ if self.doc.sales_invoice:
+ self.doc.status = "Billed"
+
+ def on_submit(self):
+ self.update_status(self.doc.name)
+
+ def before_cancel(self):
+ self.update_status(None)
+
+ def before_update_after_submit(self):
+ self.update_status(self.doc.name)
+
+ def update_status(self, time_log_batch):
+ self.set_status()
+ for d in self.doclist.get({"doctype":"Time Log Batch Detail"}):
+ tl = webnotes.bean("Time Log", d.time_log)
+ tl.doc.time_log_batch = time_log_batch
+ tl.doc.sales_invoice = self.doc.sales_invoice
+ tl.update_after_submit()
+
+
+
\ No newline at end of file
diff --git a/projects/doctype/time_log_batch/time_log_batch.txt b/projects/doctype/time_log_batch/time_log_batch.txt
new file mode 100644
index 00000000000..7fe1827e5bc
--- /dev/null
+++ b/projects/doctype/time_log_batch/time_log_batch.txt
@@ -0,0 +1,121 @@
+[
+ {
+ "creation": "2013-02-28 17:57:33",
+ "docstatus": 0,
+ "modified": "2013-03-01 17:54:57",
+ "modified_by": "Administrator",
+ "owner": "Administrator"
+ },
+ {
+ "autoname": "naming_series:",
+ "description": "Batch Time Logs for Billing.",
+ "doctype": "DocType",
+ "document_type": "Transaction",
+ "is_submittable": 1,
+ "module": "Projects",
+ "name": "__common__"
+ },
+ {
+ "doctype": "DocField",
+ "name": "__common__",
+ "parent": "Time Log Batch",
+ "parentfield": "fields",
+ "parenttype": "DocType",
+ "permlevel": 0
+ },
+ {
+ "amend": 1,
+ "cancel": 1,
+ "create": 1,
+ "doctype": "DocPerm",
+ "name": "__common__",
+ "parent": "Time Log Batch",
+ "parentfield": "permissions",
+ "parenttype": "DocType",
+ "permlevel": 0,
+ "read": 1,
+ "report": 1,
+ "role": "Projects User",
+ "submit": 1,
+ "write": 1
+ },
+ {
+ "doctype": "DocType",
+ "name": "Time Log Batch"
+ },
+ {
+ "doctype": "DocField",
+ "fieldname": "naming_series",
+ "fieldtype": "Select",
+ "label": "Naming Series",
+ "options": "TLB-",
+ "reqd": 1
+ },
+ {
+ "description": "For Sales Invoice",
+ "doctype": "DocField",
+ "fieldname": "rate",
+ "fieldtype": "Currency",
+ "label": "Rate"
+ },
+ {
+ "doctype": "DocField",
+ "fieldname": "column_break_3",
+ "fieldtype": "Column Break"
+ },
+ {
+ "default": "Draft",
+ "doctype": "DocField",
+ "fieldname": "status",
+ "fieldtype": "Select",
+ "in_list_view": 1,
+ "label": "Status",
+ "options": "Draft\nSubmitted\nBilled\nCancelled",
+ "read_only": 1
+ },
+ {
+ "description": "Will be updated after Sales Invoice is Submitted.",
+ "doctype": "DocField",
+ "fieldname": "sales_invoice",
+ "fieldtype": "Link",
+ "in_list_view": 1,
+ "label": "Sales Invoice",
+ "options": "Sales Invoice",
+ "read_only": 1
+ },
+ {
+ "doctype": "DocField",
+ "fieldname": "section_break_5",
+ "fieldtype": "Section Break"
+ },
+ {
+ "doctype": "DocField",
+ "fieldname": "time_log_batch_details",
+ "fieldtype": "Table",
+ "label": "Time Log Batch Details",
+ "options": "Time Log Batch Detail",
+ "reqd": 1
+ },
+ {
+ "description": "In Hours",
+ "doctype": "DocField",
+ "fieldname": "total_hours",
+ "fieldtype": "Float",
+ "in_list_view": 1,
+ "label": "Total Hours",
+ "read_only": 1
+ },
+ {
+ "doctype": "DocField",
+ "fieldname": "amended_from",
+ "fieldtype": "Link",
+ "label": "Amended From",
+ "no_copy": 1,
+ "options": "Time Log Batch",
+ "print_hide": 1,
+ "read_only": 1
+ },
+ {
+ "doctype": "DocPerm"
+ }
+]
\ No newline at end of file
diff --git a/projects/doctype/time_log_batch_detail/__init__.py b/projects/doctype/time_log_batch_detail/__init__.py
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/projects/doctype/time_log_batch_detail/time_log_batch_detail.py b/projects/doctype/time_log_batch_detail/time_log_batch_detail.py
new file mode 100644
index 00000000000..928aa9ff9f2
--- /dev/null
+++ b/projects/doctype/time_log_batch_detail/time_log_batch_detail.py
@@ -0,0 +1,8 @@
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+import webnotes
+
+class DocType:
+ def __init__(self, d, dl):
+ self.doc, self.doclist = d, dl
\ No newline at end of file
diff --git a/projects/doctype/time_log_batch_detail/time_log_batch_detail.txt b/projects/doctype/time_log_batch_detail/time_log_batch_detail.txt
new file mode 100644
index 00000000000..d1e1eaee2b4
--- /dev/null
+++ b/projects/doctype/time_log_batch_detail/time_log_batch_detail.txt
@@ -0,0 +1,57 @@
+[
+ {
+ "creation": "2013-02-28 17:56:12",
+ "docstatus": 0,
+ "modified": "2013-03-01 15:20:17",
+ "modified_by": "Administrator",
+ "owner": "Administrator"
+ },
+ {
+ "doctype": "DocType",
+ "istable": 1,
+ "module": "Projects",
+ "name": "__common__"
+ },
+ {
+ "doctype": "DocField",
+ "name": "__common__",
+ "parent": "Time Log Batch Detail",
+ "parentfield": "fields",
+ "parenttype": "DocType",
+ "permlevel": 0
+ },
+ {
+ "doctype": "DocType",
+ "name": "Time Log Batch Detail"
+ },
+ {
+ "doctype": "DocField",
+ "fieldname": "time_log",
+ "fieldtype": "Link",
+ "label": "Time Log",
+ "options": "Time Log",
+ "reqd": 1,
+ "width": "200px"
+ },
+ {
+ "doctype": "DocField",
+ "fieldname": "created_by",
+ "fieldtype": "Link",
+ "label": "Created By",
+ "options": "Profile",
+ "read_only": 1
+ },
+ {
+ "doctype": "DocField",
+ "fieldname": "activity_type",
+ "fieldtype": "Data",
+ "label": "Activity Type",
+ "read_only": 1
+ },
+ {
+ "doctype": "DocField",
+ "fieldname": "hours",
+ "fieldtype": "Float",
+ "label": "Hours"
+ }
+]
\ No newline at end of file
diff --git a/projects/doctype/timesheet/locale/_messages_doc.json b/projects/doctype/timesheet/locale/_messages_doc.json
index 8793f2cdab7..fab2534615c 100644
--- a/projects/doctype/timesheet/locale/_messages_doc.json
+++ b/projects/doctype/timesheet/locale/_messages_doc.json
@@ -1,14 +1,14 @@
[
"Status",
- "Amendment Date",
"Timesheet By",
"Notes",
"Timesheet",
- "Submitted",
- "Draft",
"Timesheet Date",
- "Timesheet Details",
+ "Amendment Date",
"Cancelled",
+ "Draft",
+ "Submitted",
+ "Timesheet Details",
"Amended From",
"Projects"
]
\ No newline at end of file
diff --git a/projects/doctype/timesheet/locale/de-doc.json b/projects/doctype/timesheet/locale/de-doc.json
new file mode 100644
index 00000000000..e070b215b63
--- /dev/null
+++ b/projects/doctype/timesheet/locale/de-doc.json
@@ -0,0 +1,14 @@
+{
+ "Amended From": "Ge\u00e4ndert von",
+ "Amendment Date": "\u00c4nderung Datum",
+ "Cancelled": "Abgesagt",
+ "Draft": "Entwurf",
+ "Notes": "Aufzeichnungen",
+ "Projects": "Projekte",
+ "Status": "Status",
+ "Submitted": "Eingereicht",
+ "Timesheet": "Timesheet",
+ "Timesheet By": "Timesheet By",
+ "Timesheet Date": "Timesheet Datum",
+ "Timesheet Details": "Timesheet Einzelheiten"
+}
\ No newline at end of file
diff --git a/projects/doctype/timesheet/locale/pt-BR-doc.json b/projects/doctype/timesheet/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..5ad54cf3dfd
--- /dev/null
+++ b/projects/doctype/timesheet/locale/pt-BR-doc.json
@@ -0,0 +1,14 @@
+{
+ "Amended From": "Corrigido De",
+ "Amendment Date": "Data da Corre\u00e7\u00e3o",
+ "Cancelled": "Cancelado",
+ "Draft": "Rascunho",
+ "Notes": "Notas",
+ "Projects": "Projetos",
+ "Status": "Estado",
+ "Submitted": "Enviado",
+ "Timesheet": "Quadro de Hor\u00e1rios",
+ "Timesheet By": "Quadro de Hor\u00e1rios Por",
+ "Timesheet Date": "Data do Quadro de Hor\u00e1rios",
+ "Timesheet Details": "Detalhes do Quadro de Hor\u00e1rios"
+}
\ No newline at end of file
diff --git a/projects/doctype/timesheet/locale/th-doc.json b/projects/doctype/timesheet/locale/th-doc.json
new file mode 100644
index 00000000000..6003a4c1d21
--- /dev/null
+++ b/projects/doctype/timesheet/locale/th-doc.json
@@ -0,0 +1,14 @@
+{
+ "Amended From": "\u0e41\u0e01\u0e49\u0e44\u0e02\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21",
+ "Amendment Date": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e41\u0e01\u0e49\u0e44\u0e02",
+ "Cancelled": "\u0e22\u0e01\u0e40\u0e25\u0e34\u0e01",
+ "Draft": "\u0e23\u0e48\u0e32\u0e07",
+ "Notes": "\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e2b\u0e15\u0e38",
+ "Projects": "\u0e42\u0e04\u0e23\u0e07\u0e01\u0e32\u0e23",
+ "Status": "\u0e2a\u0e16\u0e32\u0e19\u0e30",
+ "Submitted": "Submitted",
+ "Timesheet": "timesheet",
+ "Timesheet By": "timesheet \u0e42\u0e14\u0e22",
+ "Timesheet Date": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48 timesheet",
+ "Timesheet Details": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14 Timesheet"
+}
\ No newline at end of file
diff --git a/projects/doctype/timesheet/timesheet.js b/projects/doctype/timesheet/timesheet.js
index dc973fe149a..ab2e05b9de6 100644
--- a/projects/doctype/timesheet/timesheet.js
+++ b/projects/doctype/timesheet/timesheet.js
@@ -21,7 +21,10 @@ cur_frm.cscript.onload = function(doc,cdt,cdn){
if(!doc.timesheet_date) set_multiple(cdt,cdn,{timesheet_date:get_today()});
}
-cur_frm.cscript.refresh = function(doc,cdt,cdn){}
+cur_frm.cscript.refresh = function(doc,cdt,cdn){
+ cur_frm.set_intro("Timesheets will soon be removed. Please create a new Time Log. To create \
+ a new Time Log, to to Projects > Time Log > New Time Log. This will be removed in a few days.")
+}
cur_frm.fields_dict['timesheet_details'].grid.get_field("project_name").get_query = function(doc,cdt,cdn){
diff --git a/projects/doctype/timesheet/timesheet.py b/projects/doctype/timesheet/timesheet.py
index 6e6e27acd3a..81232781407 100644
--- a/projects/doctype/timesheet/timesheet.py
+++ b/projects/doctype/timesheet/timesheet.py
@@ -51,6 +51,8 @@ class DocType:
return time.strptime(timestr, format)
def validate(self):
+ msgprint("Please create a new Time Log", raise_exception=True)
+
if getdate(self.doc.timesheet_date) > getdate(nowdate()):
msgprint("You can not prepare timesheet for future date")
raise Exception
@@ -91,4 +93,5 @@ class DocType:
webnotes.conn.set(self.doc, 'status', 'Submitted')
def on_cancel(self):
- webnotes.conn.set(self.doc, 'status', 'Cancelled')
\ No newline at end of file
+ webnotes.conn.set(self.doc, 'status', 'Cancelled')
+
\ No newline at end of file
diff --git a/projects/doctype/timesheet/timesheet.txt b/projects/doctype/timesheet/timesheet.txt
index 649be404fa7..d64a3e17a0e 100644
--- a/projects/doctype/timesheet/timesheet.txt
+++ b/projects/doctype/timesheet/timesheet.txt
@@ -1,8 +1,8 @@
[
{
- "creation": "2013-01-10 16:34:17",
+ "creation": "2013-01-29 19:25:50",
"docstatus": 0,
- "modified": "2013-01-29 14:36:53",
+ "modified": "2013-02-26 13:44:35",
"modified_by": "Administrator",
"owner": "ashwini@webnotestech.com"
},
@@ -23,19 +23,12 @@
"permlevel": 0
},
{
- "amend": 1,
- "cancel": 1,
- "create": 1,
"doctype": "DocPerm",
"name": "__common__",
"parent": "Timesheet",
"parentfield": "permissions",
"parenttype": "DocType",
- "permlevel": 0,
- "read": 1,
- "report": 1,
- "submit": 1,
- "write": 1
+ "read": 1
},
{
"doctype": "DocType",
@@ -47,6 +40,23 @@
"fieldtype": "Section Break",
"label": "Timesheet Details"
},
+ {
+ "default": "Today",
+ "doctype": "DocField",
+ "fieldname": "timesheet_date",
+ "fieldtype": "Date",
+ "in_filter": 1,
+ "label": "Timesheet Date",
+ "oldfieldname": "timesheet_date",
+ "oldfieldtype": "Date",
+ "reqd": 1,
+ "search_index": 1
+ },
+ {
+ "doctype": "DocField",
+ "fieldname": "column_break_3",
+ "fieldtype": "Column Break"
+ },
{
"default": "Draft",
"doctype": "DocField",
@@ -63,16 +73,31 @@
"search_index": 1
},
{
- "default": "Today",
"doctype": "DocField",
- "fieldname": "timesheet_date",
- "fieldtype": "Date",
- "in_filter": 1,
- "label": "Timesheet Date",
- "oldfieldname": "timesheet_date",
- "oldfieldtype": "Date",
- "reqd": 1,
- "search_index": 1
+ "fieldname": "section_break0",
+ "fieldtype": "Section Break",
+ "options": "Simple"
+ },
+ {
+ "doctype": "DocField",
+ "fieldname": "timesheet_details",
+ "fieldtype": "Table",
+ "label": "Timesheet Details",
+ "oldfieldname": "timesheet_details",
+ "oldfieldtype": "Table",
+ "options": "Timesheet Detail"
+ },
+ {
+ "doctype": "DocField",
+ "fieldname": "section_break_7",
+ "fieldtype": "Section Break"
+ },
+ {
+ "doctype": "DocField",
+ "fieldname": "notes",
+ "fieldtype": "Text",
+ "in_list_view": 1,
+ "label": "Notes"
},
{
"doctype": "DocField",
@@ -109,38 +134,47 @@
"read_only": 1
},
{
- "doctype": "DocField",
- "fieldname": "column_break0",
- "fieldtype": "Column Break"
- },
- {
- "doctype": "DocField",
- "fieldname": "notes",
- "fieldtype": "Text",
- "in_list_view": 1,
- "label": "Notes"
- },
- {
- "doctype": "DocField",
- "fieldname": "section_break0",
- "fieldtype": "Section Break",
- "options": "Simple"
- },
- {
- "doctype": "DocField",
- "fieldname": "timesheet_details",
- "fieldtype": "Table",
- "label": "Timesheet Details",
- "oldfieldname": "timesheet_details",
- "oldfieldtype": "Table",
- "options": "Timesheet Detail"
- },
- {
+ "amend": 1,
+ "cancel": 1,
+ "create": 1,
"doctype": "DocPerm",
- "role": "Projects User"
+ "permlevel": 0,
+ "report": 1,
+ "role": "Projects User",
+ "submit": 0,
+ "write": 1
},
{
+ "amend": 0,
+ "cancel": 0,
+ "create": 0,
"doctype": "DocPerm",
- "role": "System Manager"
+ "permlevel": 1,
+ "report": 0,
+ "role": "Projects User",
+ "submit": 0,
+ "write": 0
+ },
+ {
+ "amend": 1,
+ "cancel": 1,
+ "create": 1,
+ "doctype": "DocPerm",
+ "permlevel": 0,
+ "report": 1,
+ "role": "System Manager",
+ "submit": 1,
+ "write": 1
+ },
+ {
+ "amend": 0,
+ "cancel": 0,
+ "create": 0,
+ "doctype": "DocPerm",
+ "permlevel": 1,
+ "report": 0,
+ "role": "System Manager",
+ "submit": 0,
+ "write": 0
}
]
\ No newline at end of file
diff --git a/projects/doctype/timesheet_detail/locale/_messages_doc.json b/projects/doctype/timesheet_detail/locale/_messages_doc.json
index a8451d00b31..a51a3e24648 100644
--- a/projects/doctype/timesheet_detail/locale/_messages_doc.json
+++ b/projects/doctype/timesheet_detail/locale/_messages_doc.json
@@ -6,8 +6,8 @@
"Project",
"Total Hours (Actual)",
"Customer Name",
- "Projects",
+ "Additional Info",
"Timesheet Detail",
"Task Name",
- "Additional Info"
+ "Projects"
]
\ No newline at end of file
diff --git a/projects/doctype/timesheet_detail/locale/de-doc.json b/projects/doctype/timesheet_detail/locale/de-doc.json
new file mode 100644
index 00000000000..9a29d33e25d
--- /dev/null
+++ b/projects/doctype/timesheet_detail/locale/de-doc.json
@@ -0,0 +1,13 @@
+{
+ "Activity Type": "Art der T\u00e4tigkeit",
+ "Actual End Time": "Tats\u00e4chliche Endzeit",
+ "Actual Start Time": "Tats\u00e4chliche Startzeit",
+ "Additional Info": "Zus\u00e4tzliche Informationen",
+ "Customer Name": "Name des Kunden",
+ "Project": "Projekt",
+ "Projects": "Projekte",
+ "Task Id": "Task-Id",
+ "Task Name": "Task-Name",
+ "Timesheet Detail": "Timesheet Details",
+ "Total Hours (Actual)": "Total Hours (Actual)"
+}
\ No newline at end of file
diff --git a/projects/doctype/timesheet_detail/locale/pt-BR-doc.json b/projects/doctype/timesheet_detail/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..b11f35a007a
--- /dev/null
+++ b/projects/doctype/timesheet_detail/locale/pt-BR-doc.json
@@ -0,0 +1,13 @@
+{
+ "Activity Type": "Tipo da Atividade",
+ "Actual End Time": "Tempos Final Real",
+ "Actual Start Time": "Hor\u00e1rio de In\u00edcio Real",
+ "Additional Info": "Informa\u00e7\u00f5es Adicionais",
+ "Customer Name": "Nome do cliente",
+ "Project": "Projeto",
+ "Projects": "Projetos",
+ "Task Id": "ID da Tarefa",
+ "Task Name": "Nome da Tarefa",
+ "Timesheet Detail": "Detalhe do Quadro de Hor\u00e1rios",
+ "Total Hours (Actual)": "Total de Horas (Real)"
+}
\ No newline at end of file
diff --git a/projects/doctype/timesheet_detail/locale/th-doc.json b/projects/doctype/timesheet_detail/locale/th-doc.json
new file mode 100644
index 00000000000..197e90f789f
--- /dev/null
+++ b/projects/doctype/timesheet_detail/locale/th-doc.json
@@ -0,0 +1,13 @@
+{
+ "Activity Type": "\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e01\u0e34\u0e08\u0e01\u0e23\u0e23\u0e21",
+ "Actual End Time": "\u0e40\u0e27\u0e25\u0e32\u0e2a\u0e34\u0e49\u0e19\u0e2a\u0e38\u0e14\u0e08\u0e23\u0e34\u0e07",
+ "Actual Start Time": "\u0e40\u0e27\u0e25\u0e32\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19\u0e08\u0e23\u0e34\u0e07",
+ "Additional Info": "\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21",
+ "Customer Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Project": "\u0e42\u0e04\u0e23\u0e07\u0e01\u0e32\u0e23",
+ "Projects": "\u0e42\u0e04\u0e23\u0e07\u0e01\u0e32\u0e23",
+ "Task Id": "\u0e23\u0e2b\u0e31\u0e2a\u0e07\u0e32\u0e19",
+ "Task Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e07\u0e32\u0e19",
+ "Timesheet Detail": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14 Timesheet",
+ "Total Hours (Actual)": "\u0e0a\u0e31\u0e48\u0e27\u0e42\u0e21\u0e07\u0e23\u0e27\u0e21 (\u0e08\u0e23\u0e34\u0e07)"
+}
\ No newline at end of file
diff --git a/projects/module_def/projects/locale/_messages_doc.json b/projects/module_def/projects/locale/_messages_doc.json
deleted file mode 100644
index da33435bc9a..00000000000
--- a/projects/module_def/projects/locale/_messages_doc.json
+++ /dev/null
@@ -1,4 +0,0 @@
-[
- "Projects Home",
- "Projects"
-]
\ No newline at end of file
diff --git a/projects/module_def/projects/locale/ar-doc.json b/projects/module_def/projects/locale/ar-doc.json
deleted file mode 100644
index 7e4aaaf3f7f..00000000000
--- a/projects/module_def/projects/locale/ar-doc.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Projects": "\u0645\u0634\u0627\u0631\u064a\u0639",
- "Projects Home": "\u0635\u0641\u062d\u0629 \u0627\u0644\u0645\u0634\u0631\u0648\u0639\u0627\u062a"
-}
\ No newline at end of file
diff --git a/projects/module_def/projects/locale/es-doc.json b/projects/module_def/projects/locale/es-doc.json
deleted file mode 100644
index 7ca0100b5d9..00000000000
--- a/projects/module_def/projects/locale/es-doc.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Projects": "Proyectos",
- "Projects Home": "Home Proyectos"
-}
\ No newline at end of file
diff --git a/projects/module_def/projects/locale/fr-doc.json b/projects/module_def/projects/locale/fr-doc.json
deleted file mode 100644
index d29293617e5..00000000000
--- a/projects/module_def/projects/locale/fr-doc.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Projects": "Projets",
- "Projects Home": "Accueil Projets"
-}
\ No newline at end of file
diff --git a/projects/module_def/projects/locale/hi-doc.json b/projects/module_def/projects/locale/hi-doc.json
deleted file mode 100644
index 6ec7020c39a..00000000000
--- a/projects/module_def/projects/locale/hi-doc.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Projects": "\u092a\u0930\u093f\u092f\u094b\u091c\u0928\u093e\u0913\u0902",
- "Projects Home": "\u092a\u0930\u093f\u092f\u094b\u091c\u0928\u093e\u0913\u0902 \u0918\u0930"
-}
\ No newline at end of file
diff --git a/projects/module_def/projects/locale/hr-doc.json b/projects/module_def/projects/locale/hr-doc.json
deleted file mode 100644
index cdf6a7b1d25..00000000000
--- a/projects/module_def/projects/locale/hr-doc.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Projects": "Projekti",
- "Projects Home": "Projekti Po\u010detna"
-}
\ No newline at end of file
diff --git a/projects/module_def/projects/locale/nl-doc.json b/projects/module_def/projects/locale/nl-doc.json
deleted file mode 100644
index a8b753e29be..00000000000
--- a/projects/module_def/projects/locale/nl-doc.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Projects": "Projecten",
- "Projects Home": "Projecten Home"
-}
\ No newline at end of file
diff --git a/projects/module_def/projects/locale/pt-doc.json b/projects/module_def/projects/locale/pt-doc.json
deleted file mode 100644
index 602e5210554..00000000000
--- a/projects/module_def/projects/locale/pt-doc.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Projects": "Projetos",
- "Projects Home": "Home Projetos"
-}
\ No newline at end of file
diff --git a/projects/module_def/projects/locale/sr-doc.json b/projects/module_def/projects/locale/sr-doc.json
deleted file mode 100644
index b831f426ec1..00000000000
--- a/projects/module_def/projects/locale/sr-doc.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Projects": "\u041f\u0440\u043e\u0458\u0435\u043a\u0442\u0438",
- "Projects Home": "\u041f\u0440\u043e\u0458\u0435\u043a\u0442\u0438"
-}
\ No newline at end of file
diff --git a/projects/module_def/projects/locale/ta-doc.json b/projects/module_def/projects/locale/ta-doc.json
deleted file mode 100644
index 71fd303b782..00000000000
--- a/projects/module_def/projects/locale/ta-doc.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Projects": "\u0ba4\u0bbf\u0b9f\u0bcd\u0b9f\u0b99\u0bcd\u0b95\u0bb3\u0bcd",
- "Projects Home": "\u0ba4\u0bbf\u0b9f\u0bcd\u0b9f\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0bae\u0bc1\u0b95\u0baa\u0bcd\u0baa\u0bc1"
-}
\ No newline at end of file
diff --git a/projects/page/projects_home/locale/_messages_js.json b/projects/page/projects_home/locale/_messages_js.json
index c2539f0776d..fe4cb6b0633 100644
--- a/projects/page/projects_home/locale/_messages_js.json
+++ b/projects/page/projects_home/locale/_messages_js.json
@@ -1,4 +1,5 @@
[
+ "Time Log",
"Masters",
"Task",
"Project master.",
@@ -7,6 +8,7 @@
"Gantt Chart",
"Timesheet",
"Project",
+ "Time Log for tasks.",
"Project activity / task.",
"Documents",
"Timesheet for tasks.",
diff --git a/projects/page/projects_home/locale/de-js.json b/projects/page/projects_home/locale/de-js.json
new file mode 100644
index 00000000000..49f2412f211
--- /dev/null
+++ b/projects/page/projects_home/locale/de-js.json
@@ -0,0 +1,15 @@
+{
+ "Activity Type": "Art der T\u00e4tigkeit",
+ "Documents": "Unterlagen",
+ "Gantt Chart": "Gantt Chart",
+ "Gantt chart of all tasks.": "Gantt-Diagramm aller Aufgaben.",
+ "Masters": "Masters",
+ "Project": "Projekt",
+ "Project activity / task.": "Projektaktivit\u00e4t / Aufgabe.",
+ "Project master.": "Projekt Meister.",
+ "Task": "Aufgabe",
+ "Timesheet": "Timesheet",
+ "Timesheet for tasks.": "Timesheet f\u00fcr Aufgaben.",
+ "Tools": "Werkzeuge",
+ "Types of activities for Time Sheets": "Arten von Aktivit\u00e4ten f\u00fcr Time Sheets"
+}
\ No newline at end of file
diff --git a/projects/page/projects_home/locale/pt-BR-js.json b/projects/page/projects_home/locale/pt-BR-js.json
new file mode 100644
index 00000000000..d36d1a3d3d3
--- /dev/null
+++ b/projects/page/projects_home/locale/pt-BR-js.json
@@ -0,0 +1,15 @@
+{
+ "Activity Type": "Tipo da Atividade",
+ "Documents": "Documentos",
+ "Gantt Chart": "Gr\u00e1fico de Gantt",
+ "Gantt chart of all tasks.": "Gr\u00e1fico de Gantt de todas as tarefas.",
+ "Masters": "Cadastros",
+ "Project": "Projeto",
+ "Project activity / task.": "Atividade / tarefa do projeto.",
+ "Project master.": "Cadastro de Projeto.",
+ "Task": "Tarefa",
+ "Timesheet": "Quadro de Hor\u00e1rios",
+ "Timesheet for tasks.": "Quadro de Hor\u00e1rios para as tarefas.",
+ "Tools": "Ferramentas",
+ "Types of activities for Time Sheets": "Tipos de atividades para quadro de hor\u00e1rios"
+}
\ No newline at end of file
diff --git a/projects/page/projects_home/locale/th-js.json b/projects/page/projects_home/locale/th-js.json
new file mode 100644
index 00000000000..f224786e56c
--- /dev/null
+++ b/projects/page/projects_home/locale/th-js.json
@@ -0,0 +1,15 @@
+{
+ "Activity Type": "\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e01\u0e34\u0e08\u0e01\u0e23\u0e23\u0e21",
+ "Documents": "\u0e40\u0e2d\u0e01\u0e2a\u0e32\u0e23",
+ "Gantt Chart": "\u0e41\u0e1c\u0e19\u0e20\u0e39\u0e21\u0e34\u0e41\u0e01\u0e19\u0e15\u0e4c",
+ "Gantt chart of all tasks.": "\u0e41\u0e1c\u0e19\u0e20\u0e39\u0e21\u0e34 Gantt \u0e02\u0e2d\u0e07\u0e07\u0e32\u0e19\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14",
+ "Masters": "\u0e42\u0e17",
+ "Project": "\u0e42\u0e04\u0e23\u0e07\u0e01\u0e32\u0e23",
+ "Project activity / task.": "\u0e01\u0e34\u0e08\u0e01\u0e23\u0e23\u0e21\u0e42\u0e04\u0e23\u0e07\u0e01\u0e32\u0e23 / \u0e07\u0e32\u0e19",
+ "Project master.": "\u0e15\u0e49\u0e19\u0e41\u0e1a\u0e1a\u0e42\u0e04\u0e23\u0e07\u0e01\u0e32\u0e23",
+ "Task": "\u0e07\u0e32\u0e19",
+ "Timesheet": "timesheet",
+ "Timesheet for tasks.": "timesheet \u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e07\u0e32\u0e19",
+ "Tools": "\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e21\u0e37\u0e2d",
+ "Types of activities for Time Sheets": "\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e02\u0e2d\u0e07\u0e01\u0e34\u0e08\u0e01\u0e23\u0e23\u0e21\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e41\u0e1c\u0e48\u0e19\u0e40\u0e27\u0e25\u0e32"
+}
\ No newline at end of file
diff --git a/projects/page/projects_home/projects_home.js b/projects/page/projects_home/projects_home.js
index 3f914680309..d9476e93f02 100644
--- a/projects/page/projects_home/projects_home.js
+++ b/projects/page/projects_home/projects_home.js
@@ -16,11 +16,22 @@ wn.module_page["Projects"] = [
description: wn._("Project master."),
doctype:"Project"
},
+ {
+ label: wn._("Time Log"),
+ description: wn._("Time Log for tasks."),
+ doctype:"Time Log"
+ },
+ {
+ label: wn._("Time Log Batch"),
+ description: wn._("Batch Time Logs for billing."),
+ doctype:"Time Log Batch"
+ },
{
label: wn._("Timesheet"),
- description: wn._("Timesheet for tasks."),
+ description: wn._("[DEPRECATED] Timesheet for tasks."),
doctype:"Timesheet"
},
+
]
},
{
@@ -45,7 +56,18 @@ wn.module_page["Projects"] = [
},
]
},
-]
+ {
+ title: wn._("Reports"),
+ right: true,
+ icon: "icon-list",
+ items: [
+ {
+ "label":wn._("Time Log Summary"),
+ route: "Report2/Time Log/Time Log Summary",
+ doctype: "Time Log"
+ },
+ ]
+ }]
pscript['onload_projects-home'] = function(wrapper) {
wn.views.moduleview.make(wrapper, "Projects");
diff --git a/projects/report/__init__.py b/projects/report/__init__.py
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/projects/report/time_log_summary/__init__.py b/projects/report/time_log_summary/__init__.py
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/projects/report/time_log_summary/time_log_summary.txt b/projects/report/time_log_summary/time_log_summary.txt
new file mode 100644
index 00000000000..3925a2dd809
--- /dev/null
+++ b/projects/report/time_log_summary/time_log_summary.txt
@@ -0,0 +1,22 @@
+[
+ {
+ "creation": "2013-03-01 17:36:35",
+ "docstatus": 0,
+ "modified": "2013-03-01 18:17:13",
+ "modified_by": "Administrator",
+ "owner": "Administrator"
+ },
+ {
+ "doctype": "Report",
+ "is_standard": "Yes",
+ "json": "{\"filters\":[],\"columns\":[[\"name\",\"Time Log\"],[\"status\",\"Time Log\"],[\"from_time\",\"Time Log\"],[\"hours\",\"Time Log\"],[\"activity_type\",\"Time Log\"],[\"owner\",\"Time Log\"],[\"billable\",\"Time Log\"],[\"time_log_batch\",\"Time Log\"],[\"sales_invoice\",\"Time Log\"]],\"sort_by\":\"Time Log.name\",\"sort_order\":\"desc\",\"sort_by_next\":\"\",\"sort_order_next\":\"desc\"}",
+ "name": "__common__",
+ "ref_doctype": "Time Log",
+ "report_name": "Time Log Summary",
+ "report_type": "Report Builder"
+ },
+ {
+ "doctype": "Report",
+ "name": "Time Log Summary"
+ }
+]
\ No newline at end of file
diff --git a/projects/utils.py b/projects/utils.py
new file mode 100644
index 00000000000..a7a016ab3e0
--- /dev/null
+++ b/projects/utils.py
@@ -0,0 +1,8 @@
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+import webnotes
+
+@webnotes.whitelist()
+def get_time_log_list(doctype, txt, searchfield, start, page_len, filters):
+ return webnotes.conn.get_values("Time Log", filters, ["name", "activity_type", "owner"], debug=True)
\ No newline at end of file
diff --git a/public/js/kb_common.js b/public/js/kb_common.js
index 1e3fcba15a3..6dca3f8dbb6 100644
--- a/public/js/kb_common.js
+++ b/public/js/kb_common.js
@@ -108,6 +108,7 @@ EditableText = function(args) {
this.set_display(me.text);
if(me.height) me.$w.find('.ed-text-input').css('height', me.height);
+ if(me.width) me.$w.find('.ed-text-input').css('width', me.width);
// edit
me.$w.find('.ed-text-edit').click(function() {
diff --git a/public/js/locale/_messages_js.json b/public/js/locale/_messages_js.json
index 0e410a5aeb3..acb06e71e7b 100644
--- a/public/js/locale/_messages_js.json
+++ b/public/js/locale/_messages_js.json
@@ -66,7 +66,6 @@
"Campaign",
"Maintenance Visit Purpose",
"Purchase Invoice",
- "Product Settings",
"Item Reorder",
"Leave Type",
"Sales and Purchase Return Tool",
@@ -81,7 +80,6 @@
"Sales Order",
"Email Digest",
"Event",
- "Plot Control",
"Leave Allocation",
"Supplier Quotation Item",
"SMS Receiver",
@@ -118,6 +116,7 @@
"Utilities",
"Warehouse User",
"Website Slideshow",
+ "Valuation Control",
"Profile Control",
"Purchase Taxes and Charges",
"Landed Cost Wizard",
@@ -170,7 +169,7 @@
"Support",
"Activity Type",
"Cost Center",
- "Holiday Block List",
+ "Product Settings",
"Delivery Note Item",
"Company Control",
"Website Settings",
@@ -190,7 +189,6 @@
"Payment to Invoice Matching Tool Detail",
"Contact Us Settings",
"Expense Claim Detail",
- "Communication Log",
"Stock Ledger Entry",
"Bank Reconciliation",
"Multi Ledger Report Detail",
@@ -229,20 +227,18 @@
"Control Panel",
"Delivery Note",
"Trend Analyzer Control",
- "Valuation Control",
+ "Production",
"Search Criteria",
"Salary Structure",
"Purchase Receipt Item Supplied",
"Customer Group",
"Opportunity Item",
- "Holiday Block List Date",
"Quotation",
"Sales Invoice Item",
"GL Mapper",
"Workflow Document State",
"Item Website Specification",
"Mode of Payment",
- "Website Settings",
"Leave Block List Date",
"System Console",
"To Do",
@@ -261,7 +257,6 @@
"Stock",
"Profile",
"Authorization Control",
- "Product",
"Item Quality Inspection Parameter",
"MIS Control",
"Leave Block List Allow",
@@ -269,14 +264,12 @@
"Trash Control",
"Salary Structure Earning",
"DocType",
- "Holiday Block List Allow",
"SMS Parameter",
"Maintenance Schedule",
"Event User",
"Stock Reconciliation",
"Purchase Receipt",
"Address",
- "test",
"About Us Settings",
"Job Applicant",
"Manufacturing",
diff --git a/public/js/locale/de-js.json b/public/js/locale/de-js.json
new file mode 100644
index 00000000000..fb5359b9e92
--- /dev/null
+++ b/public/js/locale/de-js.json
@@ -0,0 +1,315 @@
+{
+ "About Us Settings": "\u00dcber uns Settings",
+ "About Us Team Member": "\u00dcber uns Team Member",
+ "Account": "Konto",
+ "Accounts": "Konten",
+ "Activity": "Aktivit\u00e4t",
+ "Activity Type": "Art der T\u00e4tigkeit",
+ "Address": "Adresse",
+ "Answer": "Beantworten",
+ "Appraisal": "Bewertung",
+ "Appraisal Goal": "Bewertung Goal",
+ "Appraisal Template": "Bewertung Template",
+ "Appraisal Template Goal": "Bewertung Template Goal",
+ "Attendance": "Teilnahme",
+ "Attendance Control Panel": "Teilnahme Control Panel",
+ "Authorization Control": "Authorization Control",
+ "Authorization Rule": "Autorisierungsregel",
+ "BOM": "BOM",
+ "BOM Explosion Item": "St\u00fccklistenaufl\u00f6sung Artikel",
+ "BOM Item": "St\u00fccklistenposition",
+ "BOM Operation": "BOM Betrieb",
+ "BOM Replace Tool": "BOM Replace Tool",
+ "Bank Reconciliation": "Kontenabstimmung",
+ "Bank Reconciliation Detail": "Kontenabstimmung Details",
+ "Batch": "Stapel",
+ "Bin": "Kasten",
+ "Blog": "Blog",
+ "Blog Subscriber": "Blog Subscriber",
+ "Branch": "Zweig",
+ "Brand": "Marke",
+ "Budget Control": "Budget Control",
+ "Budget Detail": "Budget Detailansicht",
+ "Budget Distribution": "Budget Verteilung",
+ "Budget Distribution Detail": "Budget Verteilung Detailansicht",
+ "Bulk Email": "Bulk Email",
+ "Buying": "Kauf",
+ "C-Form": "C-Form",
+ "C-Form Invoice Detail": "C-Form Rechnungsdetails",
+ "Calendar": "Kalender",
+ "Campaign": "Kampagne",
+ "Comment": "Kommentar",
+ "Communication": "Kommunikation",
+ "Communication Log": "Communication Log",
+ "Company": "Firma",
+ "Company Control": "Firma Control",
+ "Company History": "Unternehmensgeschichte",
+ "Contact": "Kontakt",
+ "Contact Control": "Kontakt Kontrolle",
+ "Contact Us Settings": "Kontakt Settings",
+ "Control Panel": "Control Panel",
+ "Core": "Kern",
+ "Cost Center": "Kostenstellenrechnung",
+ "Country": "Land",
+ "Currency": "W\u00e4hrung",
+ "Custom Field": "Custom Field",
+ "Custom Script": "Custom Script",
+ "Customer": "Kunde",
+ "Customer Group": "Customer Group",
+ "Customer Issue": "Das Anliegen des Kunden",
+ "Customize Form": "Formular anpassen",
+ "Customize Form Field": "Passen Form Field",
+ "Deduction Type": "Abzug Typ",
+ "Default Home Page": "Standard Home Page",
+ "DefaultValue": "DefaultValue",
+ "Delivery Note": "Lieferschein",
+ "Delivery Note Item": "Lieferscheinposition",
+ "Delivery Note Packing Item": "Lieferschein Verpackung Artikel",
+ "Department": "Abteilung",
+ "Designation": "Bezeichnung",
+ "DocField": "DocField",
+ "DocPerm": "DocPerm",
+ "DocType": "DOCTYPE",
+ "DocType Label": "DocType Etikett",
+ "DocType Mapper": "DocType Mapper",
+ "Documentation": "Dokumentation",
+ "Earning Type": "Earning Typ",
+ "Email Digest": "Email Digest",
+ "Email Settings": "E-Mail-Einstellungen",
+ "Employee": "Mitarbeiter",
+ "Employee Education": "Mitarbeiterschulung",
+ "Employee External Work History": "Mitarbeiter Externe Arbeit Geschichte",
+ "Employee Internal Work History": "Mitarbeiter Interner Arbeitsbereich Geschichte",
+ "Employee Training": "Mitarbeiterschulung",
+ "Employment Type": "Besch\u00e4ftigungsart",
+ "Event": "Veranstaltung",
+ "Event Role": "Event Rolle",
+ "Event User": "Ereignis Benutzer",
+ "Expense Claim": "Expense Anspruch",
+ "Expense Claim Detail": "Expense Anspruch Details",
+ "Expense Claim Type": "Expense Anspruch Type",
+ "Featured Item": "Feature-Produkt",
+ "Features Setup": "Features Setup",
+ "Feed": "F\u00fcttern",
+ "Field Mapper Detail": "Feld Mapper Details",
+ "File Data": "File Data",
+ "Fiscal Year": "Gesch\u00e4ftsjahr",
+ "Forum": "Forum",
+ "GL Control": "GL Steuerung",
+ "GL Entry": "GL Eintrag",
+ "GL Mapper": "GL Mapper",
+ "GL Mapper Detail": "GL Mapper Details",
+ "Global Defaults": "Globale Defaults",
+ "Grade": "Klasse",
+ "HR": "HR",
+ "Help": "Hilfe",
+ "Holiday": "Urlaub",
+ "Holiday Block List": "Ferienwohnung Block List",
+ "Holiday Block List Allow": "Ferienwohnung Block List zulassen",
+ "Holiday Block List Date": "Ferienwohnung Block List Datum",
+ "Holiday List": "Ferienwohnung Liste",
+ "Home": "Zuhause",
+ "Home Control": "Home Control",
+ "Human Resources": "Human Resources",
+ "Industry Type": "Industry Typ",
+ "Installation Note": "Installation Hinweis",
+ "Installation Note Item": "Installation Hinweis Artikel",
+ "Item": "Artikel",
+ "Item Customer Detail": "Artikel Kundenrezensionen",
+ "Item Group": "Artikel-Gruppe",
+ "Item Price": "Artikel Preis",
+ "Item Quality Inspection Parameter": "Qualit\u00e4tspr\u00fcfung Artikel Parameter",
+ "Item Reorder": "Artikel Reorder",
+ "Item Supplier": "Artikel Lieferant",
+ "Item Tax": "MwSt. Artikel",
+ "Item Website Specification": "Artikelbeschreibung Webseite",
+ "Job Applicant": "Job Applicant",
+ "Job Opening": "Stellenangebot",
+ "Jobs Email Settings": "Jobs per E-Mail Einstellungen",
+ "Journal Voucher": "Journal Gutschein",
+ "Journal Voucher Detail": "Journal Voucher Detail",
+ "Knowledge Base": "Knowledge Base",
+ "Landed Cost Item": "Landed Cost Artikel",
+ "Landed Cost Purchase Receipt": "Landed Cost Kaufbeleg",
+ "Landed Cost Wizard": "Landed Cost Wizard",
+ "Lead": "F\u00fchren",
+ "Leave Allocation": "Lassen Allocation",
+ "Leave Application": "Lassen Anwendung",
+ "Leave Block List": "Lassen Block List",
+ "Leave Block List Allow": "Lassen Lassen Block List",
+ "Leave Block List Date": "Lassen Block List Datum",
+ "Leave Control Panel": "Lassen Sie Control Panel",
+ "Leave Type": "Lassen Typ",
+ "Letter Head": "Briefkopf",
+ "Live Chat": "Live-Chat",
+ "MIS Control": "MIS Kontrolle",
+ "Maintenance Schedule": "Wartungsplan",
+ "Maintenance Schedule Detail": "Wartungsplan Details",
+ "Maintenance Schedule Item": "Wartungsplan Artikel",
+ "Maintenance Visit": "Wartung Besuch",
+ "Maintenance Visit Purpose": "Wartung Visit Zweck",
+ "Manufacturing": "Herstellung",
+ "Market Segment": "Market Segment",
+ "Material Request": "Material anfordern",
+ "Material Request Item": "Material anfordern Artikel",
+ "Messages": "Nachrichten",
+ "Mode of Payment": "Zahlungsweise",
+ "Module Def": "Module Def",
+ "Modules": "Module",
+ "Multi Ledger Report Detail": "Multi Ledger Detail Report",
+ "My Settings": "Meine Einstellungen",
+ "Naming Series": "Benennen Series",
+ "Naming Series Options": "Benennen Optionen Series",
+ "Newsletter": "Mitteilungsblatt",
+ "Notification Control": "Meldungssteuervorrichtung",
+ "Opportunity": "Gelegenheit",
+ "Opportunity Item": "Gelegenheit Artikel",
+ "Other Income Detail": "Sonstige Ertr\u00e4ge Detailansicht",
+ "POS Setting": "POS Setting",
+ "Packing Slip": "Packzettel",
+ "Packing Slip Item": "Packzettel Artikel",
+ "Page": "Seite",
+ "Page Role": "Seite Role",
+ "Patch Log": "Anmelden Patch-",
+ "Payment to Invoice Matching Tool": "Zahlung an Rechnung Matching-Tool",
+ "Payment to Invoice Matching Tool Detail": "Zahlung an Rechnung Matching Werkzeug-Detail",
+ "Period Closing Voucher": "Periodenverschiebung Gutschein",
+ "Permission Control": "Permission Steuerung",
+ "Price List": "Preisliste",
+ "Print Format": "Drucken Format",
+ "Print Heading": "Unterwegs drucken",
+ "Product Group": "Product Group",
+ "Product Settings": "Produkt-Settings",
+ "Production Order": "Fertigungsauftrag",
+ "Production Plan Item": "Production Plan Artikel",
+ "Production Plan Sales Order": "Production Plan Sales Order",
+ "Production Planning Tool": "Production Planning-Tool",
+ "Products Settings": "Produkte Einstellungen",
+ "Profile": "Profil",
+ "Profile Control": "Profile Control",
+ "Project": "Projekt",
+ "Project Activity": "Projekt Activity",
+ "Project Activity Update": "Projekt Activity aktualisieren",
+ "Project Control": "Project Control",
+ "Project Milestone": "Projekt Milestone",
+ "Projects": "Projekte",
+ "Property Setter": "Property Setter",
+ "Purchase Common": "Erwerb Eigener",
+ "Purchase Invoice": "Kaufrechnung",
+ "Purchase Invoice Advance": "Advance Purchase Rechnung",
+ "Purchase Invoice Item": "Kaufrechnung Artikel",
+ "Purchase Order": "Auftragsbest\u00e4tigung",
+ "Purchase Order Item": "Bestellposition",
+ "Purchase Order Item Supplied": "Bestellposition geliefert",
+ "Purchase Receipt": "Kaufbeleg",
+ "Purchase Receipt Item": "Kaufbeleg Artikel",
+ "Purchase Receipt Item Supplied": "Kaufbeleg Liefergegenstand",
+ "Purchase Taxes and Charges": "Purchase Steuern und Abgaben",
+ "Purchase Taxes and Charges Master": "Steuern und Geb\u00fchren Meister Kauf",
+ "Quality Inspection": "Qualit\u00e4tspr\u00fcfung",
+ "Quality Inspection Reading": "Qualit\u00e4tspr\u00fcfung Lesen",
+ "Question": "Frage",
+ "Quotation": "Zitat",
+ "Quotation Item": "Zitat Artikel",
+ "Quotation Lost Reason": "Zitat Passwort Reason",
+ "Related Page": "Verwandte Seite",
+ "Rename Tool": "Umbenennen-Tool",
+ "Report": "Bericht",
+ "Role": "Rolle",
+ "SMS Center": "SMS Center",
+ "SMS Control": "SMS Control",
+ "SMS Log": "SMS Log",
+ "SMS Parameter": "SMS Parameter",
+ "SMS Receiver": "SMS-Empf\u00e4nger",
+ "SMS Settings": "SMS-Einstellungen",
+ "Salary Manager": "Manager Gehalt",
+ "Salary Slip": "Gehaltsabrechnung",
+ "Salary Slip Deduction": "Lohnabzug Rutsch",
+ "Salary Slip Earning": "Earning Gehaltsabrechnung",
+ "Salary Structure": "Gehaltsstruktur",
+ "Salary Structure Deduction": "Gehaltsstruktur Abzug",
+ "Salary Structure Earning": "Earning Gehaltsstruktur",
+ "Sales BOM": "Vertrieb BOM",
+ "Sales BOM Item": "Vertrieb St\u00fccklistenposition",
+ "Sales Browser Control": "Vertrieb Browser Control",
+ "Sales Common": "Vertrieb Gemeinsame",
+ "Sales Email Settings": "Vertrieb E-Mail-Einstellungen",
+ "Sales Invoice": "Sales Invoice",
+ "Sales Invoice Advance": "Sales Invoice Geleistete",
+ "Sales Invoice Item": "Sales Invoice Artikel",
+ "Sales Order": "Sales Order",
+ "Sales Order Item": "Auftragsposition",
+ "Sales Partner": "Vertriebspartner",
+ "Sales Person": "Sales Person",
+ "Sales Taxes and Charges": "Vertrieb Steuern und Abgaben",
+ "Sales Taxes and Charges Master": "Vertrieb Steuern und Abgaben Meister",
+ "Sales Team": "Sales Team",
+ "Sales and Purchase Return Item": "Sales and Purchase Zur\u00fcck Artikel",
+ "Sales and Purchase Return Tool": "Sales and Purchase Return-Tool",
+ "Sandbox": "Sandkasten",
+ "Scheduler Log": "Scheduler Log",
+ "Search Criteria": "Suchkriterien",
+ "Selling": "Verkauf",
+ "Serial No": "Serial In",
+ "Series Detail": "Series Detailansicht",
+ "Setup": "Setup",
+ "Setup Control": "Setup Control",
+ "Shipping Address": "Versandadresse",
+ "State": "Zustand",
+ "Stock": "Lager",
+ "Stock Entry": "Lager Eintrag",
+ "Stock Entry Detail": "Lager Eintrag Details",
+ "Stock Ledger": "Lager Ledger",
+ "Stock Ledger Entry": "Lager Ledger Eintrag",
+ "Stock Reconciliation": "Lager Vers\u00f6hnung",
+ "Stock UOM Replace Utility": "Lager UOM ersetzen Dienstprogramm",
+ "Style Settings": "Style Einstellungen",
+ "Supplier": "Lieferant",
+ "Supplier Quotation": "Lieferant Angebot",
+ "Supplier Quotation Item": "Lieferant Angebotsposition",
+ "Supplier Type": "Lieferant Typ",
+ "Support": "Unterst\u00fctzen",
+ "Support Ticket": "Support Ticket",
+ "System Console": "System Console",
+ "Table Mapper Detail": "Tabelle Mapper Details",
+ "Tag": "Anh\u00e4nger",
+ "Target Detail": "Ziel Detailansicht",
+ "Task": "Aufgabe",
+ "Terms and Conditions": "AGB",
+ "Territory": "Gebiet",
+ "Timesheet": "Timesheet",
+ "Timesheet Detail": "Timesheet Details",
+ "To Do": "To Do",
+ "ToDo": "ToDo",
+ "Top Bar Item": "Top Bar Artikel",
+ "Trash Control": "Trash Steuerung",
+ "Trend Analyzer Control": "Trend Analyzer Steuerung",
+ "UOM": "UOM",
+ "UOM Conversion Detail": "UOM Conversion Details",
+ "Unread Messages": "Ungelesene Nachrichten",
+ "Update Delivery Date": "Aktualisieren Lieferdatum",
+ "UserRole": "UserRole",
+ "Utilities": "Dienstprogramme",
+ "Valuation Control": "Valuation Control-",
+ "Warehouse": "Lager",
+ "Warehouse Type": "Warehouse Typ",
+ "Warehouse User": "Warehouse Benutzer",
+ "Web Page": "Web Page",
+ "Website": "Webseite",
+ "Website Item Group": "Website-Elementgruppe",
+ "Website Product Category": "Website Produktkategorie",
+ "Website Script": "Website Script",
+ "Website Settings": "Website-Einstellungen",
+ "Website Slideshow": "Website Slideshow",
+ "Website Slideshow Item": "Website Slideshow Artikel",
+ "Workflow": "Workflow",
+ "Workflow Action": "Workflow-Aktion",
+ "Workflow Action Detail": "Workflow-Aktion Details",
+ "Workflow Document State": "Workflow Document Staat",
+ "Workflow Engine": "Workflow Engine",
+ "Workflow Rule": "Workflow-Regel",
+ "Workflow Rule Detail": "Workflow Rule Details",
+ "Workflow State": "Workflow-Status",
+ "Workflow Transition": "Workflow Transition",
+ "Workstation": "Arbeitsplatz"
+}
\ No newline at end of file
diff --git a/public/js/locale/pt-BR-js.json b/public/js/locale/pt-BR-js.json
new file mode 100644
index 00000000000..6ee3837db15
--- /dev/null
+++ b/public/js/locale/pt-BR-js.json
@@ -0,0 +1,317 @@
+{
+ "About Us Settings": "Configura\u00e7\u00f5es do Quem Somos",
+ "About Us Team Member": "Sobre Membro da Equipe",
+ "Account": "Conta",
+ "Accounts": "Contas",
+ "Activity": "Atividade",
+ "Activity Type": "Tipo da Atividade",
+ "Address": "Endere\u00e7o",
+ "Answer": "Resposta",
+ "Appraisal": "Avalia\u00e7\u00e3o",
+ "Appraisal Goal": "Meta de Avalia\u00e7\u00e3o",
+ "Appraisal Template": "Modelo de Avalia\u00e7\u00e3o",
+ "Appraisal Template Goal": "Meta do Modelo de Avalia\u00e7\u00e3o",
+ "Attendance": "Comparecimento",
+ "Attendance Control Panel": "Painel de Controle de Comparecimento",
+ "Authorization Control": "Controle de autoriza\u00e7\u00e3o",
+ "Authorization Rule": "Regra de autoriza\u00e7\u00e3o",
+ "BOM": "LDM",
+ "BOM Explosion Item": "Item da Explos\u00e3o da LDM",
+ "BOM Item": "Item da LDM",
+ "BOM Operation": "Opera\u00e7\u00e3o da LDM",
+ "BOM Replace Tool": "Ferramenta de Substitui\u00e7\u00e3o da LDM",
+ "Bank Reconciliation": "Reconcilia\u00e7\u00e3o Banc\u00e1ria",
+ "Bank Reconciliation Detail": "Detalhe da Reconcilia\u00e7\u00e3o Banc\u00e1ria",
+ "Batch": "Lote",
+ "Bin": "Caixa",
+ "Blog": "Blog",
+ "Blog Subscriber": "Assinante do Blog",
+ "Branch": "Ramo",
+ "Brand": "Marca",
+ "Budget Control": "Controle de Or\u00e7amento",
+ "Budget Detail": "Detalhe do Or\u00e7amento",
+ "Budget Distribution": "Distribui\u00e7\u00e3o de Or\u00e7amento",
+ "Budget Distribution Detail": "Detalhe da Distribui\u00e7\u00e3o de Or\u00e7amento",
+ "Bulk Email": "E-mail em massa",
+ "Buying": "Compras",
+ "C-Form": "Formul\u00e1rio-C",
+ "C-Form Invoice Detail": "Detalhe Fatura do Formul\u00e1rio-C",
+ "Calendar": "Calend\u00e1rio",
+ "Campaign": "Campanha",
+ "Comment": "Coment\u00e1rio",
+ "Communication": "Comunica\u00e7\u00e3o",
+ "Communication Log": "Log de Comunica\u00e7\u00e3o",
+ "Company": "Empresa",
+ "Company Control": "Controle da Empresa",
+ "Company History": "Hist\u00f3rico da Empresa",
+ "Contact": "Contato",
+ "Contact Control": "Controle de Contato",
+ "Contact Us Settings": "Configura\u00e7\u00f5es do Fale Conosco",
+ "Control Panel": "Painel de Controle",
+ "Core": "N\u00facleo",
+ "Cost Center": "Centro de Custos",
+ "Country": "Pa\u00eds",
+ "Currency": "Moeda",
+ "Custom Field": "Campo personalizado",
+ "Custom Script": "Script personalizado",
+ "Customer": "Cliente",
+ "Customer Group": "Grupo de Clientes",
+ "Customer Issue": "Quest\u00e3o do Cliente",
+ "Customize Form": "Personalize Formul\u00e1rio",
+ "Customize Form Field": "Personalize campo de formul\u00e1rio",
+ "Deduction Type": "Tipo de dedu\u00e7\u00e3o",
+ "Default Home Page": "P\u00e1gina Inicial padr\u00e3o",
+ "DefaultValue": "Valor padr\u00e3o",
+ "Delivery Note": "Guia de Remessa",
+ "Delivery Note Item": "Item da Guia de Remessa",
+ "Delivery Note Packing Item": "Item do Pacote da Guia de Remessa",
+ "Department": "Departamento",
+ "Designation": "Designa\u00e7\u00e3o",
+ "DocField": "DocField",
+ "DocPerm": "DocPerm",
+ "DocType": "DocType",
+ "DocType Label": "Etiqueta do DocType",
+ "DocType Mapper": "Mapeador do DocType",
+ "Documentation": "Documenta\u00e7\u00e3o",
+ "Earning Type": "Tipo de Ganho",
+ "Email Digest": "Resumo por E-mail",
+ "Email Settings": "Configura\u00e7\u00f5es de e-mail",
+ "Employee": "Funcion\u00e1rio",
+ "Employee Education": "Escolaridade do Funcion\u00e1rio",
+ "Employee External Work History": "Hist\u00f3rico de trabalho externo do Funcion\u00e1rio",
+ "Employee Internal Work History": "Hist\u00f3rico de trabalho interno do Funcion\u00e1rio",
+ "Employee Training": "Treinamento de funcion\u00e1rios",
+ "Employment Type": "Tipo de emprego",
+ "Event": "Evento",
+ "Event Role": "Fun\u00e7\u00e3o do Evento",
+ "Event User": "Usu\u00e1rio do Evento",
+ "Expense Claim": "Pedido de Reembolso de Despesas",
+ "Expense Claim Detail": "Detalhe do Pedido de Reembolso de Despesas",
+ "Expense Claim Type": "Tipo de Pedido de Reembolso de Despesas",
+ "Featured Item": "Item Destacado",
+ "Features Setup": "Configura\u00e7\u00e3o de caracter\u00edsticas",
+ "Feed": "Alimentar",
+ "Field Mapper Detail": "Detalhe do Mapeador do Campo",
+ "File Data": "Dados de arquivo",
+ "Fiscal Year": "Exerc\u00edcio fiscal",
+ "Forum": "F\u00f3rum",
+ "GL Control": "GL Controle",
+ "GL Entry": "Lan\u00e7amento GL",
+ "GL Mapper": "Mapeamento GL",
+ "GL Mapper Detail": "Detalhe do Mapeamento GL",
+ "Global Defaults": "Padr\u00f5es globais",
+ "Grade": "Grau",
+ "HR": "RH",
+ "Help": "Ajudar",
+ "Holiday": "Feriado",
+ "Holiday Block List": "Lista de Bloqueios de f\u00e9rias",
+ "Holiday Block List Allow": "Lista de Bloqueios de f\u00e9rias Permitir",
+ "Holiday Block List Date": "Data feriado Lista de Bloqueios",
+ "Holiday List": "Lista de feriado",
+ "Home": "In\u00edcio",
+ "Home Control": "In\u00edcio de Controle",
+ "Human Resources": "Recursos Humanos",
+ "Industry Type": "Tipo de ind\u00fastria",
+ "Installation Note": "Nota de Instala\u00e7\u00e3o",
+ "Installation Note Item": "Item da Nota de Instala\u00e7\u00e3o",
+ "Item": "Item",
+ "Item Customer Detail": "Detalhe do Cliente do Item",
+ "Item Group": "Grupo de Itens",
+ "Item Price": "Pre\u00e7o do Item",
+ "Item Quality Inspection Parameter": "Par\u00e2metro de Inspe\u00e7\u00e3o de Qualidade do Item",
+ "Item Reorder": "Item Reordenar",
+ "Item Supplier": "Fornecedor do Item",
+ "Item Tax": "Imposto do Item",
+ "Item Website Specification": "Especifica\u00e7\u00e3o do Site do Item",
+ "Job Applicant": "Candidato a emprego",
+ "Job Opening": "Vaga de emprego",
+ "Jobs Email Settings": "Configura\u00e7\u00f5es do e-mail de empregos",
+ "Journal Voucher": "Comprovante do livro Di\u00e1rio",
+ "Journal Voucher Detail": "Detalhe do Comprovante do livro Di\u00e1rio",
+ "Knowledge Base": "Base de Conhecimento",
+ "Landed Cost Item": "Custo de desembarque do Item",
+ "Landed Cost Purchase Receipt": "Recibo de compra do custo de desembarque",
+ "Landed Cost Wizard": "Assistente de Custo de Desembarque",
+ "Lead": "Prospecto",
+ "Leave Allocation": "Aloca\u00e7\u00e3o de Licen\u00e7as",
+ "Leave Application": "Solicita\u00e7\u00e3o de Licen\u00e7as",
+ "Leave Block List": "Deixe Lista de Bloqueios",
+ "Leave Block List Allow": "Deixe Lista de Bloqueios Permitir",
+ "Leave Block List Date": "Deixe Data Lista de Bloqueios",
+ "Leave Control Panel": "Painel de Controle de Licen\u00e7as",
+ "Leave Type": "Tipo de Licen\u00e7as",
+ "Letter Head": "Timbrado",
+ "Live Chat": "Chat ao vivo",
+ "MIS Control": "Controle MIS",
+ "Maintenance Schedule": "Programa\u00e7\u00e3o da Manuten\u00e7\u00e3o",
+ "Maintenance Schedule Detail": "Detalhe da Programa\u00e7\u00e3o da Manuten\u00e7\u00e3o",
+ "Maintenance Schedule Item": "Item da Programa\u00e7\u00e3o da Manuten\u00e7\u00e3o",
+ "Maintenance Visit": "Visita de manuten\u00e7\u00e3o",
+ "Maintenance Visit Purpose": "Finalidade da visita de manuten\u00e7\u00e3o",
+ "Manufacturing": "Fabrica\u00e7\u00e3o",
+ "Market Segment": "Segmento de mercado",
+ "Material Request": "Pedido de material",
+ "Material Request Item": "Item de solicita\u00e7\u00e3o de material",
+ "Messages": "Mensagens",
+ "Mode of Payment": "Forma de Pagamento",
+ "Module Def": "M\u00f3dulo Def",
+ "Modules": "M\u00f3dulos",
+ "Multi Ledger Report Detail": "Detalhe do Relat\u00f3rio de m\u00faltiplos Livros-Raz\u00e3o",
+ "My Settings": "Minhas Configura\u00e7\u00f5es",
+ "Naming Series": "S\u00e9ries nomeadas",
+ "Naming Series Options": "Op\u00e7\u00f5es das S\u00e9ries nomeadas",
+ "Newsletter": "Boletim informativo",
+ "Notification Control": "Controle de Notifica\u00e7\u00e3o",
+ "Opportunity": "Oportunidade",
+ "Opportunity Item": "Item da oportunidade",
+ "Other Income Detail": "Detalhe sobre Outras Receitas",
+ "POS Setting": "Configura\u00e7\u00e3o de PDV",
+ "Packing Slip": "Guia de Remessa",
+ "Packing Slip Item": "Item da Guia de Remessa",
+ "Page": "P\u00e1gina",
+ "Page Role": "Fun\u00e7\u00e3o da p\u00e1gina",
+ "Patch Log": "Log de Patches",
+ "Payment to Invoice Matching Tool": "Ferramenta de Pagamento contra Fatura correspondente",
+ "Payment to Invoice Matching Tool Detail": "Detalhe da Ferramenta de Pagamento contra Fatura correspondente",
+ "Period Closing Voucher": "Comprovante de Encerramento per\u00edodo",
+ "Permission Control": "Controle de Permiss\u00e3o",
+ "Price List": "Lista de Pre\u00e7os",
+ "Print Format": "Formato de impress\u00e3o",
+ "Print Heading": "Cabe\u00e7alho de impress\u00e3o",
+ "Product Group": "Grupo de Produtos",
+ "Product Settings": "Configura\u00e7\u00f5es do produto",
+ "Production Order": "Ordem de Produ\u00e7\u00e3o",
+ "Production Plan Item": "Item do plano de produ\u00e7\u00e3o",
+ "Production Plan Sales Order": "Ordem de Venda do Plano de Produ\u00e7\u00e3o",
+ "Production Planning Tool": "Ferramenta de Planejamento da Produ\u00e7\u00e3o",
+ "Products Settings": "Configura\u00e7\u00f5es de produtos",
+ "Profile": "Perfil",
+ "Profile Control": "Controle de Perfil",
+ "Project": "Projeto",
+ "Project Activity": "Atividade do Projeto",
+ "Project Activity Update": "Atualiza\u00e7\u00e3o da Atividade do Projeto",
+ "Project Control": "Controle de Projeto",
+ "Project Milestone": "Marco do Projeto",
+ "Projects": "Projetos",
+ "Property Setter": "Setter propriedade",
+ "Purchase Common": "Compras comum",
+ "Purchase Invoice": "Nota Fiscal de Compra",
+ "Purchase Invoice Advance": "Antecipa\u00e7\u00e3o da Nota Fiscal de Compra",
+ "Purchase Invoice Item": "Item da Nota Fiscal de Compra",
+ "Purchase Order": "Ordem de Compra",
+ "Purchase Order Item": "Item da Ordem de Compra",
+ "Purchase Order Item Supplied": "Item da Ordem de Compra fornecido",
+ "Purchase Receipt": "Recibo de Compra",
+ "Purchase Receipt Item": "Item do Recibo de Compra",
+ "Purchase Receipt Item Supplied": "Item do Recibo de Compra Fornecido",
+ "Purchase Request": "Pedido de Compra",
+ "Purchase Request Item": "Item do Pedido de Compra",
+ "Purchase Taxes and Charges": "Impostos e Encargos sobre Compras",
+ "Purchase Taxes and Charges Master": "Cadastro de Impostos e Encargos sobre Compras",
+ "Quality Inspection": "Inspe\u00e7\u00e3o de Qualidade",
+ "Quality Inspection Reading": "Leitura da Inspe\u00e7\u00e3o de Qualidade",
+ "Question": "Pergunta",
+ "Quotation": "Cota\u00e7\u00e3o",
+ "Quotation Item": "Item da Cota\u00e7\u00e3o",
+ "Quotation Lost Reason": "Raz\u00e3o da perda da Cota\u00e7\u00e3o",
+ "Related Page": "P\u00e1gina Relacionada",
+ "Rename Tool": "Ferramenta de Renomear",
+ "Report": "Relat\u00f3rio",
+ "Role": "Fun\u00e7\u00e3o",
+ "SMS Center": "Centro de SMS",
+ "SMS Control": "Controle de SMS",
+ "SMS Log": "Log de SMS",
+ "SMS Parameter": "Par\u00e2metro de SMS",
+ "SMS Receiver": "Receptor do SMS",
+ "SMS Settings": "Defini\u00e7\u00f5es de SMS",
+ "Salary Manager": "Gerenciador de sal\u00e1rio",
+ "Salary Slip": "Folha de pagamento",
+ "Salary Slip Deduction": "Dedu\u00e7\u00e3o da folha de pagamento",
+ "Salary Slip Earning": "Ganhos da folha de pagamento",
+ "Salary Structure": "Estrutura Salarial",
+ "Salary Structure Deduction": "Dedu\u00e7\u00e3o da Estrutura Salarial",
+ "Salary Structure Earning": "Ganho da Estrutura Salarial",
+ "Sales BOM": "LDM de Vendas",
+ "Sales BOM Item": "Item da LDM de Vendas",
+ "Sales Browser Control": "Controle do Navegador de Vendas",
+ "Sales Common": "Vendas comuns",
+ "Sales Email Settings": "Configura\u00e7\u00f5es do Email de Vendas",
+ "Sales Invoice": "Nota Fiscal de Venda",
+ "Sales Invoice Advance": "Antecipa\u00e7\u00e3o da Nota Fiscal de Venda",
+ "Sales Invoice Item": "Item da Nota Fiscal de Venda",
+ "Sales Order": "Ordem de Venda",
+ "Sales Order Item": "Item da Ordem de Venda",
+ "Sales Partner": "Parceiro de Vendas",
+ "Sales Person": "Vendedor",
+ "Sales Taxes and Charges": "Impostos e Taxas sobre Vendas",
+ "Sales Taxes and Charges Master": "Cadastro de Impostos e Taxas sobre Vendas",
+ "Sales Team": "Equipe de Vendas",
+ "Sales and Purchase Return Item": "Item de retorno de compra e venda",
+ "Sales and Purchase Return Tool": "Ferramenta de retorno de compra e venda",
+ "Sandbox": "Sandbox",
+ "Scheduler Log": "Log do Agendador",
+ "Search Criteria": "Crit\u00e9rios da pesquisa",
+ "Selling": "Vendas",
+ "Serial No": "N\u00ba de S\u00e9rie",
+ "Series Detail": "Detalhe da S\u00e9ries",
+ "Setup": "Configura\u00e7\u00e3o",
+ "Setup Control": "Controle de configura\u00e7\u00e3o",
+ "Shipping Address": "Endere\u00e7o de envio",
+ "State": "Estado",
+ "Stock": "Estoque",
+ "Stock Entry": "Lan\u00e7amento no Estoque",
+ "Stock Entry Detail": "Detalhe do lan\u00e7amento no Estoque",
+ "Stock Ledger": "Livro de Invent\u00e1rio",
+ "Stock Ledger Entry": "Lan\u00e7amento do Livro de Invent\u00e1rio",
+ "Stock Reconciliation": "Reconcilia\u00e7\u00e3o de Estoque",
+ "Stock UOM Replace Utility": "Utilit\u00e1rio para Substituir UDM do Estoque",
+ "Style Settings": "Configura\u00e7\u00f5es de Estilo",
+ "Supplier": "Fornecedor",
+ "Supplier Quotation": "Cota\u00e7\u00e3o do Fornecedor",
+ "Supplier Quotation Item": "Item da Cota\u00e7\u00e3o do Fornecedor",
+ "Supplier Type": "Tipo de Fornecedor",
+ "Support": "Suporte",
+ "Support Ticket": "Ticket de Suporte",
+ "System Console": "Console do Sistema",
+ "Table Mapper Detail": "Detalhe do mapeamento da tabela",
+ "Tag": "Etiqueta",
+ "Target Detail": "Detalhe da meta",
+ "Task": "Tarefa",
+ "Terms and Conditions": "Termos e Condi\u00e7\u00f5es",
+ "Territory": "Territ\u00f3rio",
+ "Timesheet": "Quadro de Hor\u00e1rios",
+ "Timesheet Detail": "Detalhe do Quadro de Hor\u00e1rios",
+ "To Do": "Lista de Tarefas",
+ "ToDo": "Lista de Tarefas",
+ "Top Bar Item": "Item da barra superior",
+ "Trash Control": "Controle de lixo",
+ "Trend Analyzer Control": "Controle do Analisador de tend\u00eancia",
+ "UOM": "UDM",
+ "UOM Conversion Detail": "Detalhe da Convers\u00e3o de UDM",
+ "Unread Messages": "Mensagens n\u00e3o lidas",
+ "Update Delivery Date": "Atualizar Data de Entrega",
+ "UserRole": "Fun\u00e7\u00e3o do Usu\u00e1rio",
+ "Utilities": "Utilit\u00e1rios",
+ "Valuation Control": "Controle de Avalia\u00e7\u00e3o",
+ "Warehouse": "Almoxarifado",
+ "Warehouse Type": "Tipo de Almoxarifado",
+ "Warehouse User": "Usu\u00e1rio Armaz\u00e9m",
+ "Web Page": "P\u00e1gina Web",
+ "Website": "Site",
+ "Website Item Group": "Grupo de Itens do site",
+ "Website Product Category": "Categoria de Produto do site",
+ "Website Script": "Script do site",
+ "Website Settings": "Configura\u00e7\u00f5es do site",
+ "Website Slideshow": "Slideshow do site",
+ "Website Slideshow Item": "Item do Slideshow do site",
+ "Workflow": "Fluxo de Trabalho",
+ "Workflow Action": "A\u00e7\u00e3o do Fluxo de Trabalho",
+ "Workflow Action Detail": "Detalhe da A\u00e7\u00e3o do Fluxo de Trabalho",
+ "Workflow Document State": "Estado do Documento do Fluxo de Trabalho",
+ "Workflow Engine": "Mecanismo do Fluxo de Trabalho",
+ "Workflow Rule": "Regra do Fluxo de Trabalho",
+ "Workflow Rule Detail": "Detalhe da Regra do Fluxo de Trabalho",
+ "Workflow State": "Estado do Fluxo de Trabalho",
+ "Workflow Transition": "Transi\u00e7\u00e3o do Fluxo de Trabalho",
+ "Workstation": "Esta\u00e7\u00e3o de Trabalho"
+}
\ No newline at end of file
diff --git a/public/js/locale/th-js.json b/public/js/locale/th-js.json
new file mode 100644
index 00000000000..cc2bb084593
--- /dev/null
+++ b/public/js/locale/th-js.json
@@ -0,0 +1,317 @@
+{
+ "About Us Settings": "\u0e40\u0e01\u0e35\u0e48\u0e22\u0e27\u0e01\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32\u0e40\u0e23\u0e32",
+ "About Us Team Member": "\u0e40\u0e01\u0e35\u0e48\u0e22\u0e27\u0e01\u0e31\u0e1a\u0e2a\u0e21\u0e32\u0e0a\u0e34\u0e01\u0e43\u0e19\u0e17\u0e35\u0e21\u0e40\u0e23\u0e32",
+ "Account": "\u0e1a\u0e31\u0e0d\u0e0a\u0e35",
+ "Accounts": "\u0e1a\u0e31\u0e0d\u0e0a\u0e35",
+ "Activity": "\u0e01\u0e34\u0e08\u0e01\u0e23\u0e23\u0e21",
+ "Activity Type": "\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e01\u0e34\u0e08\u0e01\u0e23\u0e23\u0e21",
+ "Address": "\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48",
+ "Answer": "\u0e15\u0e2d\u0e1a",
+ "Appraisal": "\u0e01\u0e32\u0e23\u0e15\u0e35\u0e23\u0e32\u0e04\u0e32",
+ "Appraisal Goal": "\u0e40\u0e1b\u0e49\u0e32\u0e2b\u0e21\u0e32\u0e22\u0e01\u0e32\u0e23\u0e1b\u0e23\u0e30\u0e40\u0e21\u0e34\u0e19",
+ "Appraisal Template": "\u0e41\u0e21\u0e48\u0e41\u0e1a\u0e1a\u0e01\u0e32\u0e23\u0e1b\u0e23\u0e30\u0e40\u0e21\u0e34\u0e19",
+ "Appraisal Template Goal": "\u0e40\u0e1b\u0e49\u0e32\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e17\u0e21\u0e40\u0e1e\u0e25\u0e17\u0e1b\u0e23\u0e30\u0e40\u0e21\u0e34\u0e19",
+ "Attendance": "\u0e01\u0e32\u0e23\u0e14\u0e39\u0e41\u0e25\u0e23\u0e31\u0e01\u0e29\u0e32",
+ "Attendance Control Panel": "\u0e41\u0e1c\u0e07\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e01\u0e32\u0e23\u0e40\u0e02\u0e49\u0e32\u0e23\u0e48\u0e27\u0e21\u0e1b\u0e23\u0e30\u0e0a\u0e38\u0e21",
+ "Authorization Control": "\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e01\u0e32\u0e23\u0e2d\u0e19\u0e38\u0e21\u0e31\u0e15\u0e34",
+ "Authorization Rule": "\u0e01\u0e0e\u0e01\u0e32\u0e23\u0e2d\u0e19\u0e38\u0e0d\u0e32\u0e15",
+ "BOM": "BOM",
+ "BOM Explosion Item": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e23\u0e30\u0e40\u0e1a\u0e34\u0e14 BOM",
+ "BOM Item": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23 BOM",
+ "BOM Operation": "\u0e01\u0e32\u0e23\u0e14\u0e33\u0e40\u0e19\u0e34\u0e19\u0e07\u0e32\u0e19 BOM",
+ "BOM Replace Tool": "\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e21\u0e37\u0e2d\u0e41\u0e17\u0e19\u0e17\u0e35\u0e48 BOM",
+ "Bank Reconciliation": "\u0e01\u0e23\u0e30\u0e17\u0e1a\u0e22\u0e2d\u0e14\u0e18\u0e19\u0e32\u0e04\u0e32\u0e23",
+ "Bank Reconciliation Detail": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e01\u0e32\u0e23\u0e01\u0e23\u0e30\u0e17\u0e1a\u0e22\u0e2d\u0e14\u0e18\u0e19\u0e32\u0e04\u0e32\u0e23",
+ "Batch": "\u0e0a\u0e38\u0e14",
+ "Bin": "\u0e16\u0e31\u0e07",
+ "Blog": "\u0e1a\u0e25\u0e47\u0e2d\u0e01",
+ "Blog Subscriber": "\u0e2a\u0e21\u0e32\u0e0a\u0e34\u0e01\u0e1a\u0e25\u0e47\u0e2d\u0e01",
+ "Branch": "\u0e2a\u0e32\u0e02\u0e32",
+ "Brand": "\u0e22\u0e35\u0e48\u0e2b\u0e49\u0e2d",
+ "Budget Control": "\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e07\u0e1a\u0e1b\u0e23\u0e30\u0e21\u0e32\u0e13",
+ "Budget Detail": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e07\u0e1a\u0e1b\u0e23\u0e30\u0e21\u0e32\u0e13",
+ "Budget Distribution": "\u0e01\u0e32\u0e23\u0e41\u0e1e\u0e23\u0e48\u0e01\u0e23\u0e30\u0e08\u0e32\u0e22\u0e07\u0e1a\u0e1b\u0e23\u0e30\u0e21\u0e32\u0e13",
+ "Budget Distribution Detail": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e01\u0e32\u0e23\u0e08\u0e31\u0e14\u0e08\u0e33\u0e2b\u0e19\u0e48\u0e32\u0e22\u0e07\u0e1a\u0e1b\u0e23\u0e30\u0e21\u0e32\u0e13",
+ "Bulk Email": "\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e4c\u0e02\u0e22\u0e30",
+ "Buying": "\u0e01\u0e32\u0e23\u0e0b\u0e37\u0e49\u0e2d",
+ "C-Form": "C-Form",
+ "C-Form Invoice Detail": "C-Form \u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e43\u0e1a\u0e41\u0e08\u0e49\u0e07\u0e2b\u0e19\u0e35\u0e49",
+ "Calendar": "\u0e1b\u0e0f\u0e34\u0e17\u0e34\u0e19",
+ "Campaign": "\u0e23\u0e13\u0e23\u0e07\u0e04\u0e4c",
+ "Comment": "\u0e04\u0e27\u0e32\u0e21\u0e40\u0e2b\u0e47\u0e19",
+ "Communication": "\u0e01\u0e32\u0e23\u0e2a\u0e37\u0e48\u0e2d\u0e2a\u0e32\u0e23",
+ "Communication Log": "\u0e40\u0e02\u0e49\u0e32\u0e2a\u0e39\u0e48\u0e23\u0e30\u0e1a\u0e1a\u0e01\u0e32\u0e23\u0e2a\u0e37\u0e48\u0e2d\u0e2a\u0e32\u0e23",
+ "Company": "\u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17",
+ "Company Control": "\u0e01\u0e32\u0e23\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e02\u0e2d\u0e07 \u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17",
+ "Company History": "\u0e1b\u0e23\u0e30\u0e27\u0e31\u0e15\u0e34 \u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17",
+ "Contact": "\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d",
+ "Contact Control": "\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21",
+ "Contact Us Settings": "\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d\u0e40\u0e23\u0e32\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32",
+ "Control Panel": "\u0e41\u0e1c\u0e07\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21",
+ "Core": "\u0e41\u0e01\u0e19",
+ "Cost Center": "\u0e28\u0e39\u0e19\u0e22\u0e4c\u0e15\u0e49\u0e19\u0e17\u0e38\u0e19",
+ "Country": "\u0e1b\u0e23\u0e30\u0e40\u0e17\u0e28",
+ "Currency": "\u0e40\u0e07\u0e34\u0e19\u0e15\u0e23\u0e32",
+ "Custom Field": "\u0e1f\u0e34\u0e25\u0e14\u0e4c\u0e17\u0e35\u0e48\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e40\u0e2d\u0e07",
+ "Custom Script": "\u0e2a\u0e04\u0e23\u0e34\u0e1b\u0e15\u0e4c\u0e17\u0e35\u0e48\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e40\u0e2d\u0e07",
+ "Customer": "\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Customer Group": "\u0e01\u0e25\u0e38\u0e48\u0e21\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Customer Issue": "\u0e1b\u0e31\u0e0d\u0e2b\u0e32\u0e02\u0e2d\u0e07\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Customize Form": "\u0e1b\u0e23\u0e31\u0e1a\u0e41\u0e15\u0e48\u0e07\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a",
+ "Customize Form Field": "\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e40\u0e02\u0e15\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e1f\u0e2d\u0e23\u0e4c\u0e21",
+ "Deduction Type": "\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e2b\u0e31\u0e01",
+ "Default Home Page": "\u0e2b\u0e19\u0e49\u0e32\u0e41\u0e23\u0e01\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19",
+ "DefaultValue": "\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19",
+ "Delivery Note": "\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e2b\u0e15\u0e38\u0e08\u0e31\u0e14\u0e2a\u0e48\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Delivery Note Item": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e08\u0e31\u0e14\u0e2a\u0e48\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e2b\u0e15\u0e38",
+ "Delivery Note Packing Item": "\u0e08\u0e31\u0e14\u0e2a\u0e48\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e1a\u0e23\u0e23\u0e08\u0e38\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e2b\u0e15\u0e38",
+ "Department": "\u0e41\u0e1c\u0e19\u0e01",
+ "Designation": "\u0e01\u0e32\u0e23\u0e41\u0e15\u0e48\u0e07\u0e15\u0e31\u0e49\u0e07",
+ "DocField": "DocField",
+ "DocPerm": "DocPerm",
+ "DocType": "DOCTYPE",
+ "DocType Label": "\u0e1b\u0e49\u0e32\u0e22 DocType",
+ "DocType Mapper": "Mapper DocType",
+ "Documentation": "\u0e40\u0e2d\u0e01\u0e2a\u0e32\u0e23",
+ "Earning Type": "\u0e23\u0e32\u0e22\u0e44\u0e14\u0e49\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17",
+ "Email Digest": "\u0e02\u0e48\u0e32\u0e27\u0e2a\u0e32\u0e23\u0e17\u0e32\u0e07\u0e2d\u0e35\u0e40\u0e21\u0e25",
+ "Email Settings": "\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32\u0e2d\u0e35\u0e40\u0e21\u0e25",
+ "Employee": "\u0e25\u0e39\u0e01\u0e08\u0e49\u0e32\u0e07",
+ "Employee Education": "\u0e01\u0e32\u0e23\u0e28\u0e36\u0e01\u0e29\u0e32\u0e01\u0e32\u0e23\u0e17\u0e33\u0e07\u0e32\u0e19\u0e02\u0e2d\u0e07\u0e1e\u0e19\u0e31\u0e01\u0e07\u0e32\u0e19",
+ "Employee External Work History": "\u0e1b\u0e23\u0e30\u0e27\u0e31\u0e15\u0e34\u0e01\u0e32\u0e23\u0e17\u0e33\u0e07\u0e32\u0e19\u0e02\u0e2d\u0e07\u0e1e\u0e19\u0e31\u0e01\u0e07\u0e32\u0e19\u0e20\u0e32\u0e22\u0e19\u0e2d\u0e01",
+ "Employee Internal Work History": "\u0e1b\u0e23\u0e30\u0e27\u0e31\u0e15\u0e34\u0e01\u0e32\u0e23\u0e17\u0e33\u0e07\u0e32\u0e19\u0e02\u0e2d\u0e07\u0e1e\u0e19\u0e31\u0e01\u0e07\u0e32\u0e19\u0e20\u0e32\u0e22\u0e43\u0e19",
+ "Employee Training": "\u0e01\u0e32\u0e23\u0e1d\u0e36\u0e01\u0e2d\u0e1a\u0e23\u0e21\u0e1e\u0e19\u0e31\u0e01\u0e07\u0e32\u0e19",
+ "Employment Type": "\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e01\u0e32\u0e23\u0e08\u0e49\u0e32\u0e07\u0e07\u0e32\u0e19",
+ "Event": "\u0e40\u0e2b\u0e15\u0e38\u0e01\u0e32\u0e23\u0e13\u0e4c",
+ "Event Role": "\u0e1a\u0e17\u0e1a\u0e32\u0e17\u0e40\u0e2b\u0e15\u0e38\u0e01\u0e32\u0e23\u0e13\u0e4c",
+ "Event User": "\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19",
+ "Expense Claim": "\u0e40\u0e23\u0e35\u0e22\u0e01\u0e23\u0e49\u0e2d\u0e07\u0e04\u0e48\u0e32\u0e43\u0e0a\u0e49\u0e08\u0e48\u0e32\u0e22",
+ "Expense Claim Detail": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e04\u0e48\u0e32\u0e43\u0e0a\u0e49\u0e08\u0e48\u0e32\u0e22\u0e2a\u0e34\u0e19\u0e44\u0e2b\u0e21",
+ "Expense Claim Type": "\u0e40\u0e23\u0e35\u0e22\u0e01\u0e23\u0e49\u0e2d\u0e07\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e04\u0e48\u0e32\u0e43\u0e0a\u0e49\u0e08\u0e48\u0e32\u0e22",
+ "Featured Item": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e40\u0e14\u0e48\u0e19",
+ "Features Setup": "\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07\u0e2a\u0e34\u0e48\u0e07\u0e2d\u0e33\u0e19\u0e27\u0e22\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e30\u0e14\u0e27\u0e01",
+ "Feed": "\u0e01\u0e34\u0e19",
+ "Field Mapper Detail": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e2a\u0e19\u0e32\u0e21\u0e41\u0e21\u0e1b\u0e40\u0e1b\u0e2d\u0e23\u0e4c",
+ "File Data": "\u0e41\u0e1f\u0e49\u0e21\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25",
+ "Fiscal Year": "\u0e1b\u0e35\u0e07\u0e1a\u0e1b\u0e23\u0e30\u0e21\u0e32\u0e13",
+ "Forum": "\u0e1f\u0e2d\u0e23\u0e31\u0e48\u0e21",
+ "GL Control": "\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21 GL",
+ "GL Entry": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23 GL",
+ "GL Mapper": "Mapper GL",
+ "GL Mapper Detail": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14 Mapper GL",
+ "Global Defaults": "\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19\u0e17\u0e31\u0e48\u0e27\u0e42\u0e25\u0e01",
+ "Grade": "\u0e40\u0e01\u0e23\u0e14",
+ "HR": "\u0e17\u0e23\u0e31\u0e1e\u0e22\u0e32\u0e01\u0e23\u0e1a\u0e38\u0e04\u0e04\u0e25",
+ "Help": "\u0e0a\u0e48\u0e27\u0e22",
+ "Holiday": "\u0e27\u0e31\u0e19\u0e2b\u0e22\u0e38\u0e14",
+ "Holiday Block List": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e1a\u0e25\u0e47\u0e2d\u0e01\u0e27\u0e31\u0e19\u0e2b\u0e22\u0e38\u0e14",
+ "Holiday Block List Allow": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e1a\u0e25\u0e47\u0e2d\u0e01 Holiday \u0e2d\u0e19\u0e38\u0e0d\u0e32\u0e15\u0e43\u0e2b\u0e49",
+ "Holiday Block List Date": "\u0e27\u0e31\u0e19\u0e2b\u0e22\u0e38\u0e14\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e1a\u0e25\u0e47\u0e2d\u0e01",
+ "Holiday List": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e27\u0e31\u0e19\u0e2b\u0e22\u0e38\u0e14",
+ "Home": "\u0e1a\u0e49\u0e32\u0e19",
+ "Home Control": "\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e2b\u0e19\u0e49\u0e32\u0e41\u0e23\u0e01",
+ "Human Resources": "\u0e17\u0e23\u0e31\u0e1e\u0e22\u0e32\u0e01\u0e23\u0e21\u0e19\u0e38\u0e29\u0e22\u0e4c",
+ "Industry Type": "\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e2d\u0e38\u0e15\u0e2a\u0e32\u0e2b\u0e01\u0e23\u0e23\u0e21",
+ "Installation Note": "\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e2b\u0e15\u0e38\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07",
+ "Installation Note Item": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e2b\u0e15\u0e38\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07",
+ "Item": "\u0e0a\u0e34\u0e49\u0e19",
+ "Item Customer Detail": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23",
+ "Item Group": "\u0e01\u0e25\u0e38\u0e48\u0e21\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Item Price": "\u0e23\u0e32\u0e04\u0e32\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Item Quality Inspection Parameter": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e1e\u0e32\u0e23\u0e32\u0e21\u0e34\u0e40\u0e15\u0e2d\u0e23\u0e4c\u0e01\u0e32\u0e23\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a\u0e04\u0e38\u0e13\u0e20\u0e32\u0e1e",
+ "Item Reorder": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23 Reorder",
+ "Item Supplier": "\u0e1c\u0e39\u0e49\u0e1c\u0e25\u0e34\u0e15\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23",
+ "Item Tax": "\u0e20\u0e32\u0e29\u0e35\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Item Website Specification": "\u0e2a\u0e40\u0e1b\u0e01\u0e40\u0e27\u0e47\u0e1a\u0e44\u0e0b\u0e15\u0e4c\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23",
+ "Job Applicant": "\u0e1c\u0e39\u0e49\u0e2a\u0e21\u0e31\u0e04\u0e23\u0e07\u0e32\u0e19",
+ "Job Opening": "\u0e40\u0e1b\u0e34\u0e14\u0e07\u0e32\u0e19",
+ "Jobs Email Settings": "\u0e07\u0e32\u0e19\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32\u0e2d\u0e35\u0e40\u0e21\u0e25",
+ "Journal Voucher": "\u0e1a\u0e31\u0e15\u0e23\u0e01\u0e33\u0e19\u0e31\u0e25\u0e27\u0e32\u0e23\u0e2a\u0e32\u0e23",
+ "Journal Voucher Detail": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e1a\u0e31\u0e15\u0e23\u0e01\u0e33\u0e19\u0e31\u0e25\u0e27\u0e32\u0e23\u0e2a\u0e32\u0e23",
+ "Knowledge Base": "\u0e10\u0e32\u0e19\u0e04\u0e27\u0e32\u0e21\u0e23\u0e39\u0e49",
+ "Landed Cost Item": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e04\u0e48\u0e32\u0e43\u0e0a\u0e49\u0e08\u0e48\u0e32\u0e22\u0e25\u0e07",
+ "Landed Cost Purchase Receipt": "\u0e04\u0e48\u0e32\u0e43\u0e0a\u0e49\u0e08\u0e48\u0e32\u0e22\u0e43\u0e1a\u0e40\u0e2a\u0e23\u0e47\u0e08\u0e23\u0e31\u0e1a\u0e40\u0e07\u0e34\u0e19\u0e25\u0e07\u0e0b\u0e37\u0e49\u0e2d",
+ "Landed Cost Wizard": "\u0e15\u0e31\u0e27\u0e0a\u0e48\u0e27\u0e22\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e15\u0e49\u0e19\u0e17\u0e38\u0e19\u0e17\u0e35\u0e48\u0e14\u0e34\u0e19",
+ "Lead": "\u0e19\u0e33",
+ "Leave Allocation": "\u0e1d\u0e32\u0e01\u0e08\u0e31\u0e14\u0e2a\u0e23\u0e23",
+ "Leave Application": "\u0e1d\u0e32\u0e01\u0e41\u0e2d\u0e1e\u0e25\u0e34\u0e40\u0e04\u0e0a\u0e31\u0e19",
+ "Leave Block List": "\u0e1d\u0e32\u0e01\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e1a\u0e25\u0e47\u0e2d\u0e01",
+ "Leave Block List Allow": "\u0e1d\u0e32\u0e01\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e1a\u0e25\u0e47\u0e2d\u0e01\u0e2d\u0e19\u0e38\u0e0d\u0e32\u0e15\u0e43\u0e2b\u0e49",
+ "Leave Block List Date": "\u0e1d\u0e32\u0e01\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e1a\u0e25\u0e47\u0e2d\u0e01",
+ "Leave Control Panel": "\u0e1d\u0e32\u0e01\u0e41\u0e1c\u0e07\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21",
+ "Leave Type": "\u0e1d\u0e32\u0e01\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17",
+ "Letter Head": "\u0e2b\u0e31\u0e27\u0e08\u0e14\u0e2b\u0e21\u0e32\u0e22",
+ "Live Chat": "Live Chat",
+ "MIS Control": "\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e23\u0e30\u0e1a\u0e1a\u0e2a\u0e32\u0e23\u0e2a\u0e19\u0e40\u0e17\u0e28",
+ "Maintenance Schedule": "\u0e15\u0e32\u0e23\u0e32\u0e07\u0e01\u0e32\u0e23\u0e1a\u0e33\u0e23\u0e38\u0e07\u0e23\u0e31\u0e01\u0e29\u0e32",
+ "Maintenance Schedule Detail": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e15\u0e32\u0e23\u0e32\u0e07\u0e01\u0e32\u0e23\u0e1a\u0e33\u0e23\u0e38\u0e07\u0e23\u0e31\u0e01\u0e29\u0e32",
+ "Maintenance Schedule Item": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e15\u0e32\u0e23\u0e32\u0e07\u0e01\u0e32\u0e23\u0e1a\u0e33\u0e23\u0e38\u0e07\u0e23\u0e31\u0e01\u0e29\u0e32",
+ "Maintenance Visit": "\u0e0a\u0e21\u0e01\u0e32\u0e23\u0e1a\u0e33\u0e23\u0e38\u0e07\u0e23\u0e31\u0e01\u0e29\u0e32",
+ "Maintenance Visit Purpose": "\u0e27\u0e31\u0e15\u0e16\u0e38\u0e1b\u0e23\u0e30\u0e2a\u0e07\u0e04\u0e4c\u0e0a\u0e21\u0e01\u0e32\u0e23\u0e1a\u0e33\u0e23\u0e38\u0e07\u0e23\u0e31\u0e01\u0e29\u0e32",
+ "Manufacturing": "\u0e01\u0e32\u0e23\u0e1c\u0e25\u0e34\u0e15",
+ "Market Segment": "\u0e2a\u0e48\u0e27\u0e19\u0e15\u0e25\u0e32\u0e14",
+ "Material Request": "\u0e02\u0e2d\u0e27\u0e31\u0e2a\u0e14\u0e38",
+ "Material Request Item": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e27\u0e31\u0e2a\u0e14\u0e38\u0e02\u0e2d",
+ "Messages": "\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21",
+ "Mode of Payment": "\u0e42\u0e2b\u0e21\u0e14\u0e02\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e0a\u0e33\u0e23\u0e30\u0e40\u0e07\u0e34\u0e19",
+ "Module Def": "Def \u0e42\u0e21\u0e14\u0e39\u0e25",
+ "Modules": "\u0e42\u0e21\u0e14\u0e39\u0e25",
+ "Multi Ledger Report Detail": "\u0e2b\u0e25\u0e32\u0e22\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e02\u0e2d\u0e07\u0e23\u0e32\u0e22\u0e07\u0e32\u0e19\u0e1a\u0e31\u0e0d\u0e0a\u0e35\u0e41\u0e22\u0e01\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17",
+ "My Settings": "\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32\u0e02\u0e2d\u0e07\u0e09\u0e31\u0e19",
+ "Naming Series": "\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e0a\u0e37\u0e48\u0e2d\u0e0b\u0e35\u0e23\u0e35\u0e2a\u0e4c",
+ "Naming Series Options": "\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e0a\u0e37\u0e48\u0e2d\u0e15\u0e31\u0e27\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e0a\u0e38\u0e14",
+ "Newsletter": "\u0e08\u0e14\u0e2b\u0e21\u0e32\u0e22\u0e02\u0e48\u0e32\u0e27",
+ "Notification Control": "\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e01\u0e32\u0e23\u0e41\u0e08\u0e49\u0e07\u0e40\u0e15\u0e37\u0e2d\u0e19",
+ "Opportunity": "\u0e42\u0e2d\u0e01\u0e32\u0e2a",
+ "Opportunity Item": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e42\u0e2d\u0e01\u0e32\u0e2a",
+ "Other Income Detail": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e23\u0e32\u0e22\u200b\u200b\u0e44\u0e14\u0e49\u0e2d\u0e37\u0e48\u0e19 \u0e46",
+ "POS Setting": "\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32 POS",
+ "Packing Slip": "\u0e2a\u0e25\u0e34\u0e1b",
+ "Packing Slip Item": "\u0e1a\u0e23\u0e23\u0e08\u0e38\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e2a\u0e25\u0e34\u0e1b",
+ "Page": "\u0e2b\u0e19\u0e49\u0e32",
+ "Page Role": "\u0e1a\u0e17\u0e1a\u0e32\u0e17\u0e2b\u0e19\u0e49\u0e32\u0e17\u0e35\u0e48",
+ "Patch Log": "\u0e40\u0e02\u0e49\u0e32\u0e2a\u0e39\u0e48\u0e23\u0e30\u0e1a\u0e1a\u0e41\u0e1e\u0e17\u0e0a\u0e4c",
+ "Payment to Invoice Matching Tool": "\u0e27\u0e34\u0e18\u0e35\u0e01\u0e32\u0e23\u0e0a\u0e33\u0e23\u0e30\u0e40\u0e07\u0e34\u0e19\u0e44\u0e1b\u0e17\u0e35\u0e48\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e21\u0e37\u0e2d\u0e01\u0e32\u0e23\u0e08\u0e31\u0e1a\u0e04\u0e39\u0e48\u0e43\u0e1a\u0e41\u0e08\u0e49\u0e07\u0e2b\u0e19\u0e35\u0e49",
+ "Payment to Invoice Matching Tool Detail": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e01\u0e32\u0e23\u0e0a\u0e33\u0e23\u0e30\u0e40\u0e07\u0e34\u0e19\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e01\u0e32\u0e23\u0e08\u0e31\u0e1a\u0e04\u0e39\u0e48\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e21\u0e37\u0e2d\u0e43\u0e1a\u0e41\u0e08\u0e49\u0e07\u0e2b\u0e19\u0e35\u0e49",
+ "Period Closing Voucher": "\u0e1a\u0e31\u0e15\u0e23\u0e01\u0e33\u0e19\u0e31\u0e25\u0e1b\u0e34\u0e14\u0e07\u0e27\u0e14",
+ "Permission Control": "\u0e01\u0e32\u0e23\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e01\u0e32\u0e23\u0e2d\u0e19\u0e38\u0e0d\u0e32\u0e15",
+ "Price List": "\u0e1a\u0e31\u0e0d\u0e0a\u0e35\u0e41\u0e08\u0e49\u0e07\u0e23\u0e32\u0e04\u0e32\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Print Format": "\u0e1e\u0e34\u0e21\u0e1e\u0e4c\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a",
+ "Print Heading": "\u0e1e\u0e34\u0e21\u0e1e\u0e4c\u0e2b\u0e31\u0e27\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07",
+ "Product Group": "\u0e01\u0e25\u0e38\u0e48\u0e21\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Product Settings": "\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32\u0e1c\u0e25\u0e34\u0e15\u0e20\u0e31\u0e13\u0e11\u0e4c",
+ "Production Order": "\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e01\u0e32\u0e23\u0e1c\u0e25\u0e34\u0e15",
+ "Production Plan Item": "\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e41\u0e1c\u0e19\u0e01\u0e32\u0e23\u0e1c\u0e25\u0e34\u0e15",
+ "Production Plan Sales Order": "\u0e41\u0e1c\u0e19\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e32\u0e22",
+ "Production Planning Tool": "\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e21\u0e37\u0e2d\u0e01\u0e32\u0e23\u0e27\u0e32\u0e07\u0e41\u0e1c\u0e19\u0e01\u0e32\u0e23\u0e1c\u0e25\u0e34\u0e15",
+ "Products Settings": "\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32\u0e1c\u0e25\u0e34\u0e15\u0e20\u0e31\u0e13\u0e11\u0e4c",
+ "Profile": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14",
+ "Profile Control": "\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14",
+ "Project": "\u0e42\u0e04\u0e23\u0e07\u0e01\u0e32\u0e23",
+ "Project Activity": "\u0e01\u0e34\u0e08\u0e01\u0e23\u0e23\u0e21\u0e42\u0e04\u0e23\u0e07\u0e01\u0e32\u0e23",
+ "Project Activity Update": "\u0e1b\u0e23\u0e31\u0e1a\u0e1b\u0e23\u0e38\u0e07\u0e01\u0e34\u0e08\u0e01\u0e23\u0e23\u0e21\u0e42\u0e04\u0e23\u0e07\u0e01\u0e32\u0e23",
+ "Project Control": "\u0e01\u0e32\u0e23\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e42\u0e04\u0e23\u0e07\u0e01\u0e32\u0e23",
+ "Project Milestone": "Milestone \u0e42\u0e04\u0e23\u0e07\u0e01\u0e32\u0e23",
+ "Projects": "\u0e42\u0e04\u0e23\u0e07\u0e01\u0e32\u0e23",
+ "Property Setter": "\u0e2a\u0e16\u0e32\u0e19\u0e17\u0e35\u0e48\u0e43\u0e2b\u0e49\u0e1a\u0e23\u0e34\u0e01\u0e32\u0e23 Setter",
+ "Purchase Common": "\u0e0b\u0e37\u0e49\u0e2d\u0e2a\u0e32\u0e21\u0e31\u0e0d",
+ "Purchase Invoice": "\u0e0b\u0e37\u0e49\u0e2d\u0e43\u0e1a\u0e41\u0e08\u0e49\u0e07\u0e2b\u0e19\u0e35\u0e49",
+ "Purchase Invoice Advance": "\u0e43\u0e1a\u0e41\u0e08\u0e49\u0e07\u0e2b\u0e19\u0e35\u0e49\u0e01\u0e32\u0e23\u0e0b\u0e37\u0e49\u0e2d\u0e25\u0e48\u0e27\u0e07\u0e2b\u0e19\u0e49\u0e32",
+ "Purchase Invoice Item": "\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e43\u0e1a\u0e41\u0e08\u0e49\u0e07\u0e2b\u0e19\u0e35\u0e49",
+ "Purchase Order": "\u0e43\u0e1a\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d",
+ "Purchase Order Item": "\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d",
+ "Purchase Order Item Supplied": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e17\u0e35\u0e48\u0e08\u0e33\u0e2b\u0e19\u0e48\u0e32\u0e22",
+ "Purchase Receipt": "\u0e0b\u0e37\u0e49\u0e2d\u0e43\u0e1a\u0e40\u0e2a\u0e23\u0e47\u0e08\u0e23\u0e31\u0e1a\u0e40\u0e07\u0e34\u0e19",
+ "Purchase Receipt Item": "\u0e0b\u0e37\u0e49\u0e2d\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e43\u0e1a\u0e40\u0e2a\u0e23\u0e47\u0e08\u0e23\u0e31\u0e1a\u0e40\u0e07\u0e34\u0e19",
+ "Purchase Receipt Item Supplied": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e23\u0e31\u0e1a\u0e0b\u0e37\u0e49\u0e2d\u0e08\u0e33\u0e2b\u0e19\u0e48\u0e32\u0e22",
+ "Purchase Request": "\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e2d",
+ "Purchase Request Item": "\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e02\u0e2d",
+ "Purchase Taxes and Charges": "\u0e20\u0e32\u0e29\u0e35\u0e0b\u0e37\u0e49\u0e2d\u0e41\u0e25\u0e30\u0e04\u0e48\u0e32\u0e1a\u0e23\u0e34\u0e01\u0e32\u0e23",
+ "Purchase Taxes and Charges Master": "\u0e20\u0e32\u0e29\u0e35\u0e0b\u0e37\u0e49\u0e2d\u0e41\u0e25\u0e30\u0e1b\u0e23\u0e34\u0e0d\u0e0d\u0e32\u0e42\u0e17\u0e04\u0e48\u0e32",
+ "Quality Inspection": "\u0e01\u0e32\u0e23\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a\u0e04\u0e38\u0e13\u0e20\u0e32\u0e1e",
+ "Quality Inspection Reading": "\u0e01\u0e32\u0e23\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a\u0e04\u0e38\u0e13\u0e20\u0e32\u0e1e\u0e01\u0e32\u0e23\u0e2d\u0e48\u0e32\u0e19",
+ "Question": "\u0e04\u0e33\u0e16\u0e32\u0e21",
+ "Quotation": "\u0e43\u0e1a\u0e40\u0e2a\u0e19\u0e2d\u0e23\u0e32\u0e04\u0e32",
+ "Quotation Item": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e43\u0e1a\u0e40\u0e2a\u0e19\u0e2d\u0e23\u0e32\u0e04\u0e32",
+ "Quotation Lost Reason": "\u0e43\u0e1a\u0e40\u0e2a\u0e19\u0e2d\u0e23\u0e32\u0e04\u0e32 Lost \u0e40\u0e2b\u0e15\u0e38\u0e1c\u0e25",
+ "Related Page": "\u0e40\u0e1e\u0e08\u0e17\u0e35\u0e48\u0e40\u0e01\u0e35\u0e48\u0e22\u0e27\u0e02\u0e49\u0e2d\u0e07",
+ "Rename Tool": "\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e0a\u0e37\u0e48\u0e2d\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e21\u0e37\u0e2d",
+ "Report": "\u0e23\u0e32\u0e22\u0e07\u0e32\u0e19",
+ "Role": "\u0e1a\u0e17\u0e1a\u0e32\u0e17",
+ "SMS Center": "\u0e28\u0e39\u0e19\u0e22\u0e4c SMS",
+ "SMS Control": "\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e01\u0e32\u0e23\u0e2a\u0e48\u0e07 SMS",
+ "SMS Log": "\u0e40\u0e02\u0e49\u0e32\u0e2a\u0e39\u0e48\u0e23\u0e30\u0e1a\u0e1a SMS",
+ "SMS Parameter": "\u0e1e\u0e32\u0e23\u0e32\u0e21\u0e34\u0e40\u0e15\u0e2d\u0e23\u0e4c SMS",
+ "SMS Receiver": "\u0e23\u0e31\u0e1a SMS",
+ "SMS Settings": "\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32 SMS",
+ "Salary Manager": "Manager \u0e40\u0e07\u0e34\u0e19\u0e40\u0e14\u0e37\u0e2d\u0e19\u0e17\u0e35\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23",
+ "Salary Slip": "\u0e2a\u0e25\u0e34\u0e1b\u0e40\u0e07\u0e34\u0e19\u0e40\u0e14\u0e37\u0e2d\u0e19",
+ "Salary Slip Deduction": "\u0e2b\u0e31\u0e01\u0e40\u0e07\u0e34\u0e19\u0e40\u0e14\u0e37\u0e2d\u0e19\u0e2a\u0e25\u0e34\u0e1b",
+ "Salary Slip Earning": "\u0e2a\u0e25\u0e34\u0e1b\u0e40\u0e07\u0e34\u0e19\u0e40\u0e14\u0e37\u0e2d\u0e19\u0e23\u0e32\u0e22\u0e44\u0e14\u0e49",
+ "Salary Structure": "\u0e42\u0e04\u0e23\u0e07\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e40\u0e07\u0e34\u0e19\u0e40\u0e14\u0e37\u0e2d\u0e19",
+ "Salary Structure Deduction": "\u0e2b\u0e31\u0e01\u0e42\u0e04\u0e23\u0e07\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e40\u0e07\u0e34\u0e19\u0e40\u0e14\u0e37\u0e2d\u0e19",
+ "Salary Structure Earning": "\u0e42\u0e04\u0e23\u0e07\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e40\u0e07\u0e34\u0e19\u0e40\u0e14\u0e37\u0e2d\u0e19\u0e23\u0e32\u0e22\u0e44\u0e14\u0e49",
+ "Sales BOM": "BOM \u0e02\u0e32\u0e22",
+ "Sales BOM Item": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23 BOM \u0e02\u0e32\u0e22",
+ "Sales Browser Control": "\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e40\u0e1a\u0e23\u0e32\u0e27\u0e4c\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e22\u0e2d\u0e14\u0e02\u0e32\u0e22",
+ "Sales Common": "\u0e02\u0e32\u0e22\u0e17\u0e31\u0e48\u0e27\u0e44\u0e1b",
+ "Sales Email Settings": "\u0e02\u0e32\u0e22\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32\u0e2d\u0e35\u0e40\u0e21\u0e25",
+ "Sales Invoice": "\u0e02\u0e32\u0e22\u0e43\u0e1a\u0e41\u0e08\u0e49\u0e07\u0e2b\u0e19\u0e35\u0e49",
+ "Sales Invoice Advance": "\u0e02\u0e32\u0e22\u0e43\u0e1a\u0e41\u0e08\u0e49\u0e07\u0e2b\u0e19\u0e35\u0e49\u0e25\u0e48\u0e27\u0e07\u0e2b\u0e19\u0e49\u0e32",
+ "Sales Invoice Item": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e43\u0e1a\u0e41\u0e08\u0e49\u0e07\u0e2b\u0e19\u0e35\u0e49\u0e01\u0e32\u0e23\u0e02\u0e32\u0e22",
+ "Sales Order": "\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e32\u0e22",
+ "Sales Order Item": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e01\u0e32\u0e23\u0e02\u0e32\u0e22",
+ "Sales Partner": "\u0e1e\u0e31\u0e19\u0e18\u0e21\u0e34\u0e15\u0e23\u0e01\u0e32\u0e23\u0e02\u0e32\u0e22",
+ "Sales Person": "\u0e04\u0e19\u0e02\u0e32\u0e22",
+ "Sales Taxes and Charges": "\u0e20\u0e32\u0e29\u0e35\u0e01\u0e32\u0e23\u0e02\u0e32\u0e22\u0e41\u0e25\u0e30\u0e04\u0e48\u0e32\u0e43\u0e0a\u0e49\u0e08\u0e48\u0e32\u0e22",
+ "Sales Taxes and Charges Master": "\u0e20\u0e32\u0e29\u0e35\u0e01\u0e32\u0e23\u0e02\u0e32\u0e22\u0e41\u0e25\u0e30\u0e04\u0e48\u0e32\u0e43\u0e0a\u0e49\u0e08\u0e48\u0e32\u0e22\u0e1b\u0e23\u0e34\u0e0d\u0e0d\u0e32\u0e42\u0e17",
+ "Sales Team": "\u0e17\u0e35\u0e21\u0e02\u0e32\u0e22",
+ "Sales and Purchase Return Item": "\u0e01\u0e32\u0e23\u0e02\u0e32\u0e22\u0e41\u0e25\u0e30\u0e01\u0e32\u0e23\u0e0b\u0e37\u0e49\u0e2d\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e01\u0e25\u0e31\u0e1a",
+ "Sales and Purchase Return Tool": "\u0e01\u0e32\u0e23\u0e02\u0e32\u0e22\u0e41\u0e25\u0e30\u0e01\u0e32\u0e23\u0e0b\u0e37\u0e49\u0e2d\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e21\u0e37\u0e2d\u0e22\u0e49\u0e2d\u0e19\u0e01\u0e25\u0e31\u0e1a",
+ "Sandbox": "sandbox",
+ "Scheduler Log": "\u0e40\u0e02\u0e49\u0e32\u0e2a\u0e39\u0e48\u0e23\u0e30\u0e1a\u0e1a\u0e01\u0e32\u0e23\u0e08\u0e31\u0e14\u0e15\u0e32\u0e23\u0e32\u0e07\u0e40\u0e27\u0e25\u0e32",
+ "Search Criteria": "\u0e40\u0e01\u0e13\u0e11\u0e4c\u0e01\u0e32\u0e23\u0e04\u0e49\u0e19\u0e2b\u0e32",
+ "Selling": "\u0e02\u0e32\u0e22",
+ "Serial No": "\u0e2d\u0e19\u0e38\u0e01\u0e23\u0e21\u0e44\u0e21\u0e48\u0e21\u0e35",
+ "Series Detail": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e0a\u0e38\u0e14",
+ "Setup": "\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07",
+ "Setup Control": "\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07",
+ "Shipping Address": "\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e08\u0e31\u0e14\u0e2a\u0e48\u0e07",
+ "State": "\u0e23\u0e31\u0e10",
+ "Stock": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Stock Entry": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Stock Entry Detail": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e23\u0e32\u0e22\u200b\u200b\u0e01\u0e32\u0e23\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Stock Ledger": "\u0e1a\u0e31\u0e0d\u0e0a\u0e35\u0e41\u0e22\u0e01\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Stock Ledger Entry": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e1a\u0e31\u0e0d\u0e0a\u0e35\u0e41\u0e22\u0e01\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17",
+ "Stock Reconciliation": "\u0e2a\u0e21\u0e32\u0e19\u0e09\u0e31\u0e19\u0e17\u0e4c\u0e2a\u0e15\u0e47\u0e2d\u0e01",
+ "Stock UOM Replace Utility": "\u0e2a\u0e15\u0e47\u0e2d\u0e01\u0e22\u0e39\u0e17\u0e34\u0e25\u0e34\u0e15\u0e35\u0e49\u0e41\u0e17\u0e19\u0e17\u0e35\u0e48 UOM",
+ "Style Settings": "\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32\u0e25\u0e31\u0e01\u0e29\u0e13\u0e30",
+ "Supplier": "\u0e1c\u0e39\u0e49\u0e08\u0e31\u0e14\u0e08\u0e33\u0e2b\u0e19\u0e48\u0e32\u0e22",
+ "Supplier Quotation": "\u0e43\u0e1a\u0e40\u0e2a\u0e19\u0e2d\u0e23\u0e32\u0e04\u0e32\u0e02\u0e2d\u0e07\u0e1c\u0e39\u0e49\u0e1c\u0e25\u0e34\u0e15",
+ "Supplier Quotation Item": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e43\u0e1a\u0e40\u0e2a\u0e19\u0e2d\u0e23\u0e32\u0e04\u0e32\u0e02\u0e2d\u0e07\u0e1c\u0e39\u0e49\u0e1c\u0e25\u0e34\u0e15",
+ "Supplier Type": "\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e1c\u0e39\u0e49\u0e1c\u0e25\u0e34\u0e15",
+ "Support": "\u0e2a\u0e19\u0e31\u0e1a\u0e2a\u0e19\u0e38\u0e19",
+ "Support Ticket": "\u0e15\u0e31\u0e4b\u0e27\u0e2a\u0e19\u0e31\u0e1a\u0e2a\u0e19\u0e38\u0e19",
+ "System Console": "\u0e23\u0e30\u0e1a\u0e1a\u0e04\u0e2d\u0e19\u0e42\u0e0b\u0e25",
+ "Table Mapper Detail": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e15\u0e32\u0e23\u0e32\u0e07\u0e41\u0e21\u0e1b\u0e40\u0e1b\u0e2d\u0e23\u0e4c",
+ "Tag": "\u0e41\u0e17\u0e47\u0e01",
+ "Target Detail": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e40\u0e1b\u0e49\u0e32\u0e2b\u0e21\u0e32\u0e22",
+ "Task": "\u0e07\u0e32\u0e19",
+ "Terms and Conditions": "\u0e02\u0e49\u0e2d\u0e15\u0e01\u0e25\u0e07\u0e41\u0e25\u0e30\u0e40\u0e07\u0e37\u0e48\u0e2d\u0e19\u0e44\u0e02",
+ "Territory": "\u0e2d\u0e32\u0e13\u0e32\u0e40\u0e02\u0e15",
+ "Timesheet": "timesheet",
+ "Timesheet Detail": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14 Timesheet",
+ "To Do": "\u0e2a\u0e16\u0e32\u0e19\u0e17\u0e35\u0e48\u0e17\u0e48\u0e2d\u0e07\u0e40\u0e17\u0e35\u0e48\u0e22\u0e27",
+ "ToDo": "\u0e2a\u0e34\u0e48\u0e07\u0e17\u0e35\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e17\u0e33",
+ "Top Bar Item": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23 Bar \u0e2a\u0e16\u0e32\u0e19\u0e17\u0e35\u0e48\u0e22\u0e2d\u0e14",
+ "Trash Control": "\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e16\u0e31\u0e07\u0e02\u0e22\u0e30",
+ "Trend Analyzer Control": "\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e27\u0e34\u0e40\u0e04\u0e23\u0e32\u0e30\u0e2b\u0e4c\u0e41\u0e19\u0e27\u0e42\u0e19\u0e49\u0e21",
+ "UOM": "UOM",
+ "UOM Conversion Detail": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e01\u0e32\u0e23\u0e41\u0e1b\u0e25\u0e07 UOM",
+ "Unread Messages": "\u0e44\u0e21\u0e48\u0e44\u0e14\u0e49\u0e2d\u0e48\u0e32\u0e19\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21",
+ "Update Delivery Date": "\u0e2d\u0e31\u0e1e\u0e40\u0e14\u0e17\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e2a\u0e48\u0e07",
+ "UserRole": "UserRole",
+ "Utilities": "\u0e22\u0e39\u0e17\u0e34\u0e25\u0e34\u0e15\u0e35\u0e49",
+ "Valuation Control": "\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e01\u0e32\u0e23\u0e1b\u0e23\u0e30\u0e40\u0e21\u0e34\u0e19",
+ "Warehouse": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Warehouse Type": "\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Warehouse User": "\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Web Page": "\u0e2b\u0e19\u0e49\u0e32\u0e40\u0e27\u0e47\u0e1a",
+ "Website": "\u0e40\u0e27\u0e47\u0e1a\u0e44\u0e0b\u0e15\u0e4c",
+ "Website Item Group": "\u0e01\u0e25\u0e38\u0e48\u0e21\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e40\u0e27\u0e47\u0e1a\u0e44\u0e0b\u0e15\u0e4c",
+ "Website Product Category": "\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e40\u0e27\u0e47\u0e1a\u0e44\u0e0b\u0e15\u0e4c",
+ "Website Script": "\u0e2a\u0e04\u0e23\u0e34\u0e1b\u0e15\u0e4c\u0e40\u0e27\u0e47\u0e1a\u0e44\u0e0b\u0e15\u0e4c",
+ "Website Settings": "\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32\u0e40\u0e27\u0e47\u0e1a\u0e44\u0e0b\u0e15\u0e4c",
+ "Website Slideshow": "\u0e2a\u0e44\u0e25\u0e14\u0e4c\u0e42\u0e0a\u0e27\u0e4c\u0e40\u0e27\u0e47\u0e1a\u0e44\u0e0b\u0e15\u0e4c",
+ "Website Slideshow Item": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e2a\u0e44\u0e25\u0e14\u0e4c\u0e42\u0e0a\u0e27\u0e4c\u0e40\u0e27\u0e47\u0e1a\u0e44\u0e0b\u0e15\u0e4c",
+ "Workflow": "\u0e40\u0e27\u0e34\u0e23\u0e4c\u0e01\u0e42\u0e1f\u0e25\u0e27\u0e4c",
+ "Workflow Action": "\u0e01\u0e32\u0e23\u0e01\u0e23\u0e30\u0e17\u0e33\u0e40\u0e27\u0e34\u0e23\u0e4c\u0e01\u0e42\u0e1f\u0e25\u0e27\u0e4c",
+ "Workflow Action Detail": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e01\u0e32\u0e23\u0e14\u0e33\u0e40\u0e19\u0e34\u0e19\u0e01\u0e32\u0e23\u0e02\u0e31\u0e49\u0e19\u0e15\u0e2d\u0e19\u0e01\u0e32\u0e23\u0e17\u0e33\u0e07\u0e32\u0e19",
+ "Workflow Document State": "\u0e23\u0e31\u0e10\u0e40\u0e2d\u0e01\u0e2a\u0e32\u0e23\u0e40\u0e27\u0e34\u0e23\u0e4c\u0e01\u0e42\u0e1f\u0e25\u0e27\u0e4c",
+ "Workflow Engine": "\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e22\u0e19\u0e15\u0e4c\u0e40\u0e27\u0e34\u0e23\u0e4c\u0e01\u0e42\u0e1f\u0e25\u0e27\u0e4c",
+ "Workflow Rule": "\u0e01\u0e0e\u0e40\u0e27\u0e34\u0e23\u0e4c\u0e01\u0e42\u0e1f\u0e25\u0e27\u0e4c",
+ "Workflow Rule Detail": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e01\u0e0e\u0e40\u0e27\u0e34\u0e23\u0e4c\u0e01\u0e42\u0e1f\u0e25\u0e27\u0e4c",
+ "Workflow State": "\u0e23\u0e31\u0e10\u0e40\u0e27\u0e34\u0e23\u0e4c\u0e01\u0e42\u0e1f\u0e25\u0e27\u0e4c",
+ "Workflow Transition": "\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e40\u0e27\u0e34\u0e23\u0e4c\u0e01\u0e42\u0e1f\u0e25\u0e27\u0e4c",
+ "Workstation": "\u0e40\u0e27\u0e34\u0e23\u0e4c\u0e04\u0e2a\u0e40\u0e15\u0e0a\u0e31\u0e48"
+}
\ No newline at end of file
diff --git a/public/js/stock_analytics.js b/public/js/stock_analytics.js
index 5ebe65f8039..d6a994cd1c5 100644
--- a/public/js/stock_analytics.js
+++ b/public/js/stock_analytics.js
@@ -53,8 +53,8 @@ erpnext.StockAnalytics = erpnext.StockGridReport.extend({
formatter: this.check_formatter},
{id: "name", name: "Item", field: "name", width: 300,
formatter: this.tree_formatter},
- {id: "stock_uom", name: "UOM", field: "stock_uom", width: 100},
{id: "brand", name: "Brand", field: "brand", width: 100},
+ {id: "stock_uom", name: "UOM", field: "stock_uom", width: 100},
{id: "opening", name: "Opening", field: "opening", hidden: true,
formatter: this.currency_formatter}
];
diff --git a/public/js/website_utils.js b/public/js/website_utils.js
index de4be6939ff..502b5eb982c 100644
--- a/public/js/website_utils.js
+++ b/public/js/website_utils.js
@@ -15,6 +15,7 @@ erpnext.send_message = function(opts) {
subject: opts.subject,
sender: opts.sender,
status: opts.status,
+ _type: "POST",
message: typeof opts.message == "string"
? opts.message
: JSON.stringify(opts.message)
diff --git a/selling/doctype/campaign/locale/de-doc.json b/selling/doctype/campaign/locale/de-doc.json
new file mode 100644
index 00000000000..646bb1804d9
--- /dev/null
+++ b/selling/doctype/campaign/locale/de-doc.json
@@ -0,0 +1,8 @@
+{
+ "Campaign": "Kampagne",
+ "Campaign Name": "Kampagnenname",
+ "Description": "Beschreibung",
+ "Keep Track of Sales Campaigns. Keep track of Leads, Quotations, Sales Order etc from Campaigns to gauge Return on Investment. ": "Behalten Sie den \u00dcberblick of Sales Campaigns. Verfolgen Sie Leads, Angebote, Sales Order etc von Kampagnen zur Return on Investment messen.",
+ "Selling": "Verkauf",
+ "Trash Reason": "Trash Reason"
+}
\ No newline at end of file
diff --git a/selling/doctype/campaign/locale/pt-BR-doc.json b/selling/doctype/campaign/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..72106ee44d7
--- /dev/null
+++ b/selling/doctype/campaign/locale/pt-BR-doc.json
@@ -0,0 +1,8 @@
+{
+ "Campaign": "Campanha",
+ "Campaign Name": "Nome da Campanha",
+ "Description": "Descri\u00e7\u00e3o",
+ "Keep Track of Sales Campaigns. Keep track of Leads, Quotations, Sales Order etc from Campaigns to gauge Return on Investment. ": "Mantenha o controle das campanhas de vendas. Mantenha o controle de prospectos, cota\u00e7\u00f5es, Ordens de Venda, etc para mensurar o Retorno do Investimento.",
+ "Selling": "Vendas",
+ "Trash Reason": "Raz\u00e3o de p\u00f4r no lixo"
+}
\ No newline at end of file
diff --git a/selling/doctype/campaign/locale/th-doc.json b/selling/doctype/campaign/locale/th-doc.json
new file mode 100644
index 00000000000..0f5295fa673
--- /dev/null
+++ b/selling/doctype/campaign/locale/th-doc.json
@@ -0,0 +1,8 @@
+{
+ "Campaign": "\u0e23\u0e13\u0e23\u0e07\u0e04\u0e4c",
+ "Campaign Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e41\u0e04\u0e21\u0e40\u0e1b\u0e0d",
+ "Description": "\u0e25\u0e31\u0e01\u0e29\u0e13\u0e30",
+ "Keep Track of Sales Campaigns. Keep track of Leads, Quotations, Sales Order etc from Campaigns to gauge Return on Investment. ": "\u0e15\u0e34\u0e14\u0e15\u0e32\u0e21\u0e41\u0e04\u0e21\u0e40\u0e1b\u0e0d\u0e01\u0e32\u0e23\u0e02\u0e32\u0e22 \u0e15\u0e34\u0e14\u0e15\u0e32\u0e21 Leads, \u0e43\u0e1a\u0e40\u0e2a\u0e19\u0e2d\u0e23\u0e32\u0e04\u0e32, \u0e2f\u0e25\u0e2f \u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e22\u0e2d\u0e14\u0e02\u0e32\u0e22\u0e08\u0e32\u0e01\u0e41\u0e04\u0e21\u0e40\u0e1b\u0e0d\u0e17\u0e35\u0e48\u0e08\u0e30\u0e27\u0e31\u0e14\u0e2d\u0e31\u0e15\u0e23\u0e32\u0e1c\u0e25\u0e15\u0e2d\u0e1a\u0e41\u0e17\u0e19\u0e08\u0e32\u0e01\u0e01\u0e32\u0e23\u0e25\u0e07\u0e17\u0e38\u0e19",
+ "Selling": "\u0e02\u0e32\u0e22",
+ "Trash Reason": "\u0e40\u0e2b\u0e15\u0e38\u0e1c\u0e25\u0e16\u0e31\u0e07\u0e02\u0e22\u0e30"
+}
\ No newline at end of file
diff --git a/selling/doctype/communication_log/locale/de-doc.json b/selling/doctype/communication_log/locale/de-doc.json
new file mode 100644
index 00000000000..94b0e5ab672
--- /dev/null
+++ b/selling/doctype/communication_log/locale/de-doc.json
@@ -0,0 +1,13 @@
+{
+ "Communication Log": "Communication Log",
+ "Communication by": "Kommunikation durch",
+ "Communication type": "Art der Kommunikation",
+ "Date": "Datum",
+ "Email": "E-Mail",
+ "Notes": "Aufzeichnungen",
+ "Other": "Andere",
+ "Phone": "Telefon",
+ "SMS": "SMS",
+ "Selling": "Verkauf",
+ "Visit": "Besuchen"
+}
\ No newline at end of file
diff --git a/selling/doctype/communication_log/locale/pt-BR-doc.json b/selling/doctype/communication_log/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..2eb01f3b017
--- /dev/null
+++ b/selling/doctype/communication_log/locale/pt-BR-doc.json
@@ -0,0 +1,13 @@
+{
+ "Communication Log": "Log de Comunica\u00e7\u00e3o",
+ "Communication by": "Comunica\u00e7\u00e3o por",
+ "Communication type": "Tipo de comunica\u00e7\u00e3o",
+ "Date": "Data",
+ "Email": "E-mail",
+ "Notes": "Notas",
+ "Other": "Outro",
+ "Phone": "Telefone",
+ "SMS": "SMS",
+ "Selling": "Vendas",
+ "Visit": "Visita"
+}
\ No newline at end of file
diff --git a/selling/doctype/communication_log/locale/th-doc.json b/selling/doctype/communication_log/locale/th-doc.json
new file mode 100644
index 00000000000..1942a9f02b9
--- /dev/null
+++ b/selling/doctype/communication_log/locale/th-doc.json
@@ -0,0 +1,13 @@
+{
+ "Communication Log": "\u0e40\u0e02\u0e49\u0e32\u0e2a\u0e39\u0e48\u0e23\u0e30\u0e1a\u0e1a\u0e01\u0e32\u0e23\u0e2a\u0e37\u0e48\u0e2d\u0e2a\u0e32\u0e23",
+ "Communication by": "\u0e01\u0e32\u0e23\u0e2a\u0e37\u0e48\u0e2d\u0e2a\u0e32\u0e23\u0e42\u0e14\u0e22",
+ "Communication type": "\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e01\u0e32\u0e23\u0e2a\u0e37\u0e48\u0e2d\u0e2a\u0e32\u0e23",
+ "Date": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48",
+ "Email": "\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e4c",
+ "Notes": "\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e2b\u0e15\u0e38",
+ "Other": "\u0e2d\u0e37\u0e48\u0e19 \u0e46",
+ "Phone": "\u0e42\u0e17\u0e23\u0e28\u0e31\u0e1e\u0e17\u0e4c",
+ "SMS": "SMS",
+ "Selling": "\u0e02\u0e32\u0e22",
+ "Visit": "\u0e40\u0e22\u0e35\u0e48\u0e22\u0e21"
+}
\ No newline at end of file
diff --git a/selling/doctype/customer/locale/_messages_doc.json b/selling/doctype/customer/locale/_messages_doc.json
index f108abd5131..ccbabdbf80c 100644
--- a/selling/doctype/customer/locale/_messages_doc.json
+++ b/selling/doctype/customer/locale/_messages_doc.json
@@ -20,10 +20,10 @@
"Default Sales Partner",
"Customer Details",
"Customer",
- "To manage Customer Groups, click here",
+ "Contact Desc",
"Default Currency",
"CUST",
- "Contact Desc",
+ "To manage Customer Groups, click here",
"Communication HTML",
"Your Customer's TAX registration numbers (if applicable) or any general information",
"Default Commission Rate",
diff --git a/selling/doctype/customer/locale/de-doc.json b/selling/doctype/customer/locale/de-doc.json
new file mode 100644
index 00000000000..304a1a39944
--- /dev/null
+++ b/selling/doctype/customer/locale/de-doc.json
@@ -0,0 +1,40 @@
+{
+ "To manage Customer Groups, click here": " Kundengruppen zu verwalten, klicken Sie hier a>",
+ "To manage Territory, click here": " Um Territory zu verwalten, klicken Sie hier a>",
+ "Address & Contacts": "Adresse und Kontakte",
+ "Address Desc": "Adresse Desc",
+ "Address HTML": "Adresse HTML",
+ "Basic Info": "Basic Info",
+ "Buyer of Goods and Services.": "K\u00e4ufer von Waren und Dienstleistungen.",
+ "CUST": "CUST",
+ "CUSTMUM": "CUSTMUM",
+ "Communication HTML": "Communication HTML",
+ "Company": "Firma",
+ "Contact Desc": "Kontakt Desc",
+ "Contact HTML": "Kontakt HTML",
+ "Credit Days": "Kredit-Tage",
+ "Credit Limit": "Kreditlimit",
+ "Customer": "Kunde",
+ "Customer Details": "Customer Details",
+ "Customer Group": "Customer Group",
+ "Customer Name": "Name des Kunden",
+ "Customer Type": "Kundentyp",
+ "Default Commission Rate": "Standard Kommission bewerten",
+ "Default Currency": "Standardw\u00e4hrung",
+ "Default Price List": "Standard Preisliste",
+ "Default Sales Partner": "Standard Vertriebspartner",
+ "Fetch lead which will be converted into customer.": "Fetch Blei, die in Kunden konvertiert werden.",
+ "Individual": "Einzelne",
+ "Lead Ref": "Blei Ref",
+ "More Info": "Mehr Info",
+ "Note: You Can Manage Multiple Address or Contacts via Addresses & Contacts": "Hinweis: Sie k\u00f6nnen mehrere Kontakte oder Adresse via Adressen & Kontakte verwalten",
+ "Sales Team": "Sales Team",
+ "Sales Team Details": "Sales Team Details",
+ "Selling": "Verkauf",
+ "Series": "Serie",
+ "Territory": "Gebiet",
+ "This currency will get fetched in Sales transactions of this customer": "Diese W\u00e4hrung wird in Sales Transaktionen dieser Kunden erhalten geholt",
+ "To create an Account Head under a different company, select the company and save customer.": "Um ein Konto Kopf unter einem anderen Unternehmen zu erstellen, w\u00e4hlen das Unternehmen und sparen Kunden.",
+ "Website": "Webseite",
+ "Your Customer's TAX registration numbers (if applicable) or any general information": "Ihre Kunden TAX Kennzeichen (falls zutreffend) oder allgemeine Informationen"
+}
\ No newline at end of file
diff --git a/selling/doctype/customer/locale/de-py.json b/selling/doctype/customer/locale/de-py.json
new file mode 100644
index 00000000000..12b9ac76ec8
--- /dev/null
+++ b/selling/doctype/customer/locale/de-py.json
@@ -0,0 +1,3 @@
+{
+ "A Supplier exists with same name": "Ein Lieferant existiert mit dem gleichen Namen"
+}
\ No newline at end of file
diff --git a/selling/doctype/customer/locale/pt-BR-doc.json b/selling/doctype/customer/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..8aec413acff
--- /dev/null
+++ b/selling/doctype/customer/locale/pt-BR-doc.json
@@ -0,0 +1,40 @@
+{
+ "To manage Customer Groups, click here": "Para gerenciar Grupos de Clientes, clique aqui",
+ "To manage Territory, click here": "Para gerenciar Territ\u00f3rio, clique aqui",
+ "Address & Contacts": "Endere\u00e7o e Contatos",
+ "Address Desc": "Descri\u00e7\u00e3o do Endere\u00e7o",
+ "Address HTML": "Endere\u00e7o HTML",
+ "Basic Info": "Informa\u00e7\u00f5es B\u00e1sicas",
+ "Buyer of Goods and Services.": "Comprador de Mercadorias e Servi\u00e7os.",
+ "CUST": "CUST",
+ "CUSTMUM": "CUSTMUM",
+ "Communication HTML": "Comunica\u00e7\u00e3o HTML",
+ "Company": "Empresa",
+ "Contact Desc": "Descri\u00e7\u00e3o do Contato",
+ "Contact HTML": "Contato HTML",
+ "Credit Days": "Dias de Cr\u00e9dito",
+ "Credit Limit": "Limite de Cr\u00e9dito",
+ "Customer": "Cliente",
+ "Customer Details": "Detalhes do Cliente",
+ "Customer Group": "Grupo de Clientes",
+ "Customer Name": "Nome do cliente",
+ "Customer Type": "Tipo de Cliente",
+ "Default Commission Rate": "Taxa de Comiss\u00e3o padr\u00e3o",
+ "Default Currency": "Moeda padr\u00e3o",
+ "Default Price List": "Lista de Pre\u00e7os padr\u00e3o",
+ "Default Sales Partner": "Parceiro de vendas padr\u00e3o",
+ "Fetch lead which will be converted into customer.": "Extrair prospecto que vai se tornar cliente.",
+ "Individual": "Individual",
+ "Lead Ref": "Ref. do Prospecto",
+ "More Info": "Mais informa\u00e7\u00f5es",
+ "Note: You Can Manage Multiple Address or Contacts via Addresses & Contacts": "Nota: voc\u00ea pode gerenciar M\u00faltiplos Endere\u00e7os ou Contatos atrav\u00e9s de Endere\u00e7os & Contatos",
+ "Sales Team": "Equipe de Vendas",
+ "Sales Team Details": "Detalhes da Equipe de Vendas",
+ "Selling": "Vendas",
+ "Series": "S\u00e9ries",
+ "Territory": "Territ\u00f3rio",
+ "This currency will get fetched in Sales transactions of this customer": "Essa moeda vai ser buscada em transa\u00e7\u00f5es de vendas deste cliente",
+ "To create an Account Head under a different company, select the company and save customer.": "Para criar uma Conta, sob uma empresa diferente, selecione a empresa e salve o Cliente.",
+ "Website": "Site",
+ "Your Customer's TAX registration numbers (if applicable) or any general information": "Os n\u00fameros de inscri\u00e7\u00e3o fiscal do seu Cliente (se aplic\u00e1vel) ou qualquer outra informa\u00e7\u00e3o geral"
+}
\ No newline at end of file
diff --git a/selling/doctype/customer/locale/pt-BR-py.json b/selling/doctype/customer/locale/pt-BR-py.json
new file mode 100644
index 00000000000..8047920e588
--- /dev/null
+++ b/selling/doctype/customer/locale/pt-BR-py.json
@@ -0,0 +1,3 @@
+{
+ "A Supplier exists with same name": "Um Fornecedor existe com mesmo nome"
+}
\ No newline at end of file
diff --git a/selling/doctype/customer/locale/th-doc.json b/selling/doctype/customer/locale/th-doc.json
new file mode 100644
index 00000000000..f8f1819e7d8
--- /dev/null
+++ b/selling/doctype/customer/locale/th-doc.json
@@ -0,0 +1,40 @@
+{
+ "To manage Customer Groups, click here": "\u0e43\u0e19\u0e01\u0e32\u0e23\u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e01\u0e25\u0e38\u0e48\u0e21\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32\u0e04\u0e25\u0e34\u0e01\u0e17\u0e35\u0e48\u0e19\u0e35\u0e48",
+ "To manage Territory, click here": "\u0e01\u0e32\u0e23\u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e14\u0e34\u0e19\u0e41\u0e14\u0e19\u0e04\u0e25\u0e34\u0e01\u0e17\u0e35\u0e48\u0e19\u0e35\u0e48",
+ "Address & Contacts": "\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d &",
+ "Address Desc": "\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14",
+ "Address HTML": "\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48 HTML",
+ "Basic Info": "\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e1e\u0e37\u0e49\u0e19\u0e10\u0e32\u0e19",
+ "Buyer of Goods and Services.": "\u0e1c\u0e39\u0e49\u0e0b\u0e37\u0e49\u0e2d\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e41\u0e25\u0e30\u0e1a\u0e23\u0e34\u0e01\u0e32\u0e23",
+ "CUST": "cust",
+ "CUSTMUM": "CUSTMUM",
+ "Communication HTML": "HTML \u0e01\u0e32\u0e23\u0e2a\u0e37\u0e48\u0e2d\u0e2a\u0e32\u0e23",
+ "Company": "\u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17",
+ "Contact Desc": "Desc \u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d",
+ "Contact HTML": "HTML \u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d",
+ "Credit Days": "\u0e27\u0e31\u0e19\u0e40\u0e04\u0e23\u0e14\u0e34\u0e15",
+ "Credit Limit": "\u0e27\u0e07\u0e40\u0e07\u0e34\u0e19\u0e2a\u0e34\u0e19\u0e40\u0e0a\u0e37\u0e48\u0e2d",
+ "Customer": "\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Customer Details": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Customer Group": "\u0e01\u0e25\u0e38\u0e48\u0e21\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Customer Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Customer Type": "\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Default Commission Rate": "\u0e2d\u0e31\u0e15\u0e23\u0e32\u0e04\u0e48\u0e32\u0e04\u0e2d\u0e21\u0e21\u0e34\u0e0a\u0e0a\u0e31\u0e48\u0e19\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19",
+ "Default Currency": "\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19",
+ "Default Price List": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e23\u0e32\u0e04\u0e32\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19",
+ "Default Sales Partner": "\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19\u0e02\u0e32\u0e22\u0e1e\u0e31\u0e19\u0e18\u0e21\u0e34\u0e15\u0e23",
+ "Fetch lead which will be converted into customer.": "\u0e40\u0e23\u0e35\u0e22\u0e01\u0e15\u0e30\u0e01\u0e31\u0e48\u0e27\u0e0b\u0e36\u0e48\u0e07\u0e08\u0e30\u0e16\u0e39\u0e01\u0e41\u0e1b\u0e25\u0e07\u0e40\u0e1b\u0e47\u0e19\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Individual": "\u0e1a\u0e38\u0e04\u0e04\u0e25",
+ "Lead Ref": "\u0e19\u0e33 Ref",
+ "More Info": "\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21",
+ "Note: You Can Manage Multiple Address or Contacts via Addresses & Contacts": "\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e2b\u0e15\u0e38: \u0e04\u0e38\u0e13\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e2b\u0e25\u0e32\u0e22\u0e2b\u0e23\u0e37\u0e2d\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d\u0e1c\u0e48\u0e32\u0e19\u0e17\u0e32\u0e07\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e41\u0e25\u0e30\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d",
+ "Sales Team": "\u0e17\u0e35\u0e21\u0e02\u0e32\u0e22",
+ "Sales Team Details": "\u0e02\u0e32\u0e22\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e17\u0e35\u0e21",
+ "Selling": "\u0e02\u0e32\u0e22",
+ "Series": "\u0e0a\u0e38\u0e14",
+ "Territory": "\u0e2d\u0e32\u0e13\u0e32\u0e40\u0e02\u0e15",
+ "This currency will get fetched in Sales transactions of this customer": "\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e19\u0e35\u0e49\u0e08\u0e30\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e40\u0e23\u0e35\u0e22\u0e01\u0e43\u0e19\u0e01\u0e32\u0e23\u0e17\u0e33\u0e18\u0e38\u0e23\u0e01\u0e23\u0e23\u0e21\u0e01\u0e32\u0e23\u0e02\u0e32\u0e22\u0e02\u0e2d\u0e07\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "To create an Account Head under a different company, select the company and save customer.": "\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e2b\u0e31\u0e27\u0e2b\u0e19\u0e49\u0e32\u0e1a\u0e31\u0e0d\u0e0a\u0e35\u0e17\u0e35\u0e48\u0e41\u0e15\u0e01\u0e15\u0e48\u0e32\u0e07\u0e01\u0e31\u0e19\u0e20\u0e32\u0e22\u0e43\u0e15\u0e49 \u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17 \u0e40\u0e25\u0e37\u0e2d\u0e01 \u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17 \u0e41\u0e25\u0e30\u0e1a\u0e31\u0e19\u0e17\u0e36\u0e01\u0e02\u0e2d\u0e07\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Website": "\u0e40\u0e27\u0e47\u0e1a\u0e44\u0e0b\u0e15\u0e4c",
+ "Your Customer's TAX registration numbers (if applicable) or any general information": "\u0e02\u0e2d\u0e07\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e25\u0e02\u0e17\u0e30\u0e40\u0e1a\u0e35\u0e22\u0e19\u0e20\u0e32\u0e29\u0e35 (\u0e16\u0e49\u0e32\u0e21\u0e35) \u0e2b\u0e23\u0e37\u0e2d\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e17\u0e31\u0e48\u0e27\u0e44\u0e1b"
+}
\ No newline at end of file
diff --git a/selling/doctype/customer/locale/th-py.json b/selling/doctype/customer/locale/th-py.json
new file mode 100644
index 00000000000..54756a0e8d9
--- /dev/null
+++ b/selling/doctype/customer/locale/th-py.json
@@ -0,0 +1,3 @@
+{
+ "A Supplier exists with same name": "\u0e1c\u0e39\u0e49\u0e1c\u0e25\u0e34\u0e15\u0e17\u0e35\u0e48\u0e21\u0e35\u0e2d\u0e22\u0e39\u0e48\u0e17\u0e35\u0e48\u0e21\u0e35\u0e0a\u0e37\u0e48\u0e2d\u0e40\u0e14\u0e35\u0e22\u0e27\u0e01\u0e31\u0e19"
+}
\ No newline at end of file
diff --git a/selling/doctype/customer/test_customer.py b/selling/doctype/customer/test_customer.py
index 09e2f5d7f5b..551b03f0be7 100644
--- a/selling/doctype/customer/test_customer.py
+++ b/selling/doctype/customer/test_customer.py
@@ -1,3 +1,4 @@
+
test_records = [
[{
"doctype": "Customer",
diff --git a/selling/doctype/industry_type/locale/de-doc.json b/selling/doctype/industry_type/locale/de-doc.json
new file mode 100644
index 00000000000..1df9fe1affc
--- /dev/null
+++ b/selling/doctype/industry_type/locale/de-doc.json
@@ -0,0 +1,5 @@
+{
+ "Industry": "Industrie",
+ "Industry Type": "Industry Typ",
+ "Selling": "Verkauf"
+}
\ No newline at end of file
diff --git a/selling/doctype/industry_type/locale/pt-BR-doc.json b/selling/doctype/industry_type/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..ab94068af40
--- /dev/null
+++ b/selling/doctype/industry_type/locale/pt-BR-doc.json
@@ -0,0 +1,5 @@
+{
+ "Industry": "Ind\u00fastria",
+ "Industry Type": "Tipo de ind\u00fastria",
+ "Selling": "Vendas"
+}
\ No newline at end of file
diff --git a/selling/doctype/industry_type/locale/th-doc.json b/selling/doctype/industry_type/locale/th-doc.json
new file mode 100644
index 00000000000..2b40806c100
--- /dev/null
+++ b/selling/doctype/industry_type/locale/th-doc.json
@@ -0,0 +1,5 @@
+{
+ "Industry": "\u0e2d\u0e38\u0e15\u0e2a\u0e32\u0e2b\u0e01\u0e23\u0e23\u0e21",
+ "Industry Type": "\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e2d\u0e38\u0e15\u0e2a\u0e32\u0e2b\u0e01\u0e23\u0e23\u0e21",
+ "Selling": "\u0e02\u0e32\u0e22"
+}
\ No newline at end of file
diff --git a/selling/doctype/installation_note/locale/_messages_doc.json b/selling/doctype/installation_note/locale/_messages_doc.json
index be4dbecf833..9a00afc6996 100644
--- a/selling/doctype/installation_note/locale/_messages_doc.json
+++ b/selling/doctype/installation_note/locale/_messages_doc.json
@@ -12,13 +12,13 @@
"Amended From",
"Get Items",
"Address",
- "Remarks",
"Delivery Note No",
"Customer",
- "Series",
"Name",
"The date at which current entry is corrected in the system.",
+ "Customer Group",
"Submitted",
+ "Remarks",
"Fiscal Year",
"Contact",
"Mobile No",
@@ -30,5 +30,5 @@
"Installation Date",
"Contact Email",
"Item Details",
- "Customer Group"
+ "Series"
]
\ No newline at end of file
diff --git a/selling/doctype/installation_note/locale/de-doc.json b/selling/doctype/installation_note/locale/de-doc.json
new file mode 100644
index 00000000000..7f7058192bf
--- /dev/null
+++ b/selling/doctype/installation_note/locale/de-doc.json
@@ -0,0 +1,34 @@
+{
+ "Address": "Adresse",
+ "Amended From": "Ge\u00e4ndert von",
+ "Amendment Date": "\u00c4nderung Datum",
+ "Cancel Reason": "Abbrechen Reason",
+ "Cancelled": "Abgesagt",
+ "Company": "Firma",
+ "Contact": "Kontakt",
+ "Contact Email": "Kontakt per E-Mail",
+ "Contact Person": "Ansprechpartner",
+ "Customer": "Kunde",
+ "Customer Address": "Kundenadresse",
+ "Customer Group": "Customer Group",
+ "Delivery Note No": "Lieferschein Nein",
+ "Draft": "Entwurf",
+ "Fiscal Year": "Gesch\u00e4ftsjahr",
+ "Get Items": "Holen Artikel",
+ "IN": "IN",
+ "Installation Date": "Installation Date",
+ "Installation Note": "Installation Hinweis",
+ "Installation Note Item": "Installation Hinweis Artikel",
+ "Installation Time": "Installation Time",
+ "Item Details": "Artikeldetails",
+ "Mobile No": "In Mobile",
+ "Name": "Name",
+ "Remarks": "Bemerkungen",
+ "Select the relevant company name if you have multiple companies.": "W\u00e4hlen Sie den entsprechenden Firmennamen, wenn Sie mehrere Unternehmen haben.",
+ "Selling": "Verkauf",
+ "Series": "Serie",
+ "Status": "Status",
+ "Submitted": "Eingereicht",
+ "Territory": "Gebiet",
+ "The date at which current entry is corrected in the system.": "Der Zeitpunkt, zu dem aktuellen Eintrag in dem System korrigiert."
+}
\ No newline at end of file
diff --git a/selling/doctype/installation_note/locale/pt-BR-doc.json b/selling/doctype/installation_note/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..6fe9f1b8f83
--- /dev/null
+++ b/selling/doctype/installation_note/locale/pt-BR-doc.json
@@ -0,0 +1,34 @@
+{
+ "Address": "Endere\u00e7o",
+ "Amended From": "Corrigido De",
+ "Amendment Date": "Data da Corre\u00e7\u00e3o",
+ "Cancel Reason": "Motivo do Cancelar",
+ "Cancelled": "Cancelado",
+ "Company": "Empresa",
+ "Contact": "Contato",
+ "Contact Email": "E-mail do Contato",
+ "Contact Person": "Pessoa de Contato",
+ "Customer": "Cliente",
+ "Customer Address": "Endere\u00e7o do cliente",
+ "Customer Group": "Grupo de Clientes",
+ "Delivery Note No": "N\u00ba da Guia de Remessa",
+ "Draft": "Rascunho",
+ "Fiscal Year": "Exerc\u00edcio fiscal",
+ "Get Items": "Obter itens",
+ "IN": "EM",
+ "Installation Date": "Data de Instala\u00e7\u00e3o",
+ "Installation Note": "Nota de Instala\u00e7\u00e3o",
+ "Installation Note Item": "Item da Nota de Instala\u00e7\u00e3o",
+ "Installation Time": "O tempo de Instala\u00e7\u00e3o",
+ "Item Details": "Detalhes do Item",
+ "Mobile No": "Telefone Celular",
+ "Name": "Nome",
+ "Remarks": "Observa\u00e7\u00f5es",
+ "Select the relevant company name if you have multiple companies.": "Selecione o nome da empresa em quest\u00e3o, se voc\u00ea tem v\u00e1rias empresas.",
+ "Selling": "Vendas",
+ "Series": "S\u00e9ries",
+ "Status": "Estado",
+ "Submitted": "Enviado",
+ "Territory": "Territ\u00f3rio",
+ "The date at which current entry is corrected in the system.": "A data em que o lan\u00e7amento atual \u00e9 corrigido no sistema."
+}
\ No newline at end of file
diff --git a/selling/doctype/installation_note/locale/th-doc.json b/selling/doctype/installation_note/locale/th-doc.json
new file mode 100644
index 00000000000..2a1a567df10
--- /dev/null
+++ b/selling/doctype/installation_note/locale/th-doc.json
@@ -0,0 +1,34 @@
+{
+ "Address": "\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48",
+ "Amended From": "\u0e41\u0e01\u0e49\u0e44\u0e02\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21",
+ "Amendment Date": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e41\u0e01\u0e49\u0e44\u0e02",
+ "Cancel Reason": "\u0e22\u0e01\u0e40\u0e25\u0e34\u0e01\u0e40\u0e2b\u0e15\u0e38\u0e1c\u0e25",
+ "Cancelled": "\u0e22\u0e01\u0e40\u0e25\u0e34\u0e01",
+ "Company": "\u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17",
+ "Contact": "\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d",
+ "Contact Email": "\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e4c",
+ "Contact Person": "Contact Person",
+ "Customer": "\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Customer Address": "\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e02\u0e2d\u0e07\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Customer Group": "\u0e01\u0e25\u0e38\u0e48\u0e21\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Delivery Note No": "\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e2b\u0e15\u0e38\u0e08\u0e31\u0e14\u0e2a\u0e48\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e44\u0e21\u0e48\u0e21\u0e35",
+ "Draft": "\u0e23\u0e48\u0e32\u0e07",
+ "Fiscal Year": "\u0e1b\u0e35\u0e07\u0e1a\u0e1b\u0e23\u0e30\u0e21\u0e32\u0e13",
+ "Get Items": "\u0e23\u0e31\u0e1a\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "IN": "\u0e43\u0e19",
+ "Installation Date": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07",
+ "Installation Note": "\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e2b\u0e15\u0e38\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07",
+ "Installation Note Item": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e2b\u0e15\u0e38\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07",
+ "Installation Time": "\u0e40\u0e27\u0e25\u0e32\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07",
+ "Item Details": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Mobile No": "\u0e21\u0e37\u0e2d\u0e16\u0e37\u0e2d\u0e44\u0e21\u0e48\u0e21\u0e35",
+ "Name": "\u0e0a\u0e37\u0e48\u0e2d",
+ "Remarks": "\u0e02\u0e49\u0e2d\u0e04\u0e34\u0e14\u0e40\u0e2b\u0e47\u0e19",
+ "Select the relevant company name if you have multiple companies.": "\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e0a\u0e37\u0e48\u0e2d \u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17 \u0e17\u0e35\u0e48\u0e40\u0e01\u0e35\u0e48\u0e22\u0e27\u0e02\u0e49\u0e2d\u0e07\u0e16\u0e49\u0e32\u0e04\u0e38\u0e13\u0e21\u0e35\u0e2b\u0e25\u0e32\u0e22 \u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17",
+ "Selling": "\u0e02\u0e32\u0e22",
+ "Series": "\u0e0a\u0e38\u0e14",
+ "Status": "\u0e2a\u0e16\u0e32\u0e19\u0e30",
+ "Submitted": "Submitted",
+ "Territory": "\u0e2d\u0e32\u0e13\u0e32\u0e40\u0e02\u0e15",
+ "The date at which current entry is corrected in the system.": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e17\u0e35\u0e48\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e1b\u0e31\u0e08\u0e08\u0e38\u0e1a\u0e31\u0e19\u0e21\u0e35\u0e01\u0e32\u0e23\u0e41\u0e01\u0e49\u0e44\u0e02\u0e43\u0e19\u0e23\u0e30\u0e1a\u0e1a"
+}
\ No newline at end of file
diff --git a/selling/doctype/installation_note_item/locale/de-doc.json b/selling/doctype/installation_note_item/locale/de-doc.json
new file mode 100644
index 00000000000..8eb8a158438
--- /dev/null
+++ b/selling/doctype/installation_note_item/locale/de-doc.json
@@ -0,0 +1,12 @@
+{
+ "Against Document Detail No": "Vor Document Detailaufnahme",
+ "Against Document No": "Gegen Dokument Nr.",
+ "Delivery Date": "Liefertermin",
+ "Description": "Beschreibung",
+ "Document Type": "Document Type",
+ "Installation Note Item": "Installation Hinweis Artikel",
+ "Installed Qty": "Installierte Anzahl",
+ "Item Code": "Item Code",
+ "Selling": "Verkauf",
+ "Serial No": "Serial In"
+}
\ No newline at end of file
diff --git a/selling/doctype/installation_note_item/locale/pt-BR-doc.json b/selling/doctype/installation_note_item/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..27c0f2ef372
--- /dev/null
+++ b/selling/doctype/installation_note_item/locale/pt-BR-doc.json
@@ -0,0 +1,12 @@
+{
+ "Against Document Detail No": "Contra Detalhe do Documento n\u00ba ",
+ "Against Document No": "Contra Documento n\u00ba",
+ "Delivery Date": "Data de entrega",
+ "Description": "Descri\u00e7\u00e3o",
+ "Document Type": "Tipo de Documento",
+ "Installation Note Item": "Item da Nota de Instala\u00e7\u00e3o",
+ "Installed Qty": "Quantidade Instalada",
+ "Item Code": "C\u00f3digo do Item",
+ "Selling": "Vendas",
+ "Serial No": "N\u00ba de S\u00e9rie"
+}
\ No newline at end of file
diff --git a/selling/doctype/installation_note_item/locale/th-doc.json b/selling/doctype/installation_note_item/locale/th-doc.json
new file mode 100644
index 00000000000..bd9a10da0dc
--- /dev/null
+++ b/selling/doctype/installation_note_item/locale/th-doc.json
@@ -0,0 +1,12 @@
+{
+ "Against Document Detail No": "\u0e01\u0e31\u0e1a\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e40\u0e2d\u0e01\u0e2a\u0e32\u0e23\u0e44\u0e21\u0e48\u0e21\u0e35",
+ "Against Document No": "\u0e01\u0e31\u0e1a\u0e40\u0e2d\u0e01\u0e2a\u0e32\u0e23\u0e44\u0e21\u0e48\u0e21\u0e35",
+ "Delivery Date": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e2a\u0e48\u0e07",
+ "Description": "\u0e25\u0e31\u0e01\u0e29\u0e13\u0e30",
+ "Document Type": "\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e40\u0e2d\u0e01\u0e2a\u0e32\u0e23",
+ "Installation Note Item": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e2b\u0e15\u0e38\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07",
+ "Installed Qty": "\u0e08\u0e33\u0e19\u0e27\u0e19\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07",
+ "Item Code": "\u0e23\u0e2b\u0e31\u0e2a\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Selling": "\u0e02\u0e32\u0e22",
+ "Serial No": "\u0e2d\u0e19\u0e38\u0e01\u0e23\u0e21\u0e44\u0e21\u0e48\u0e21\u0e35"
+}
\ No newline at end of file
diff --git a/selling/doctype/lead/get_leads.py b/selling/doctype/lead/get_leads.py
index 5b127e74e5f..b0e64847bc3 100644
--- a/selling/doctype/lead/get_leads.py
+++ b/selling/doctype/lead/get_leads.py
@@ -64,7 +64,7 @@ class SalesMailbox(POP3Mailbox):
if mail.from_email == self.settings.email_id:
return
- add_sales_communication(mail.subject, mail.content, mail.form_email,
+ add_sales_communication(mail.mail.get("subject", "[No Subject]"), mail.content, mail.from_email,
mail.from_real_name, mail=mail, date=mail.date)
def get_leads():
diff --git a/selling/doctype/lead/locale/de-doc.json b/selling/doctype/lead/locale/de-doc.json
new file mode 100644
index 00000000000..b2588738951
--- /dev/null
+++ b/selling/doctype/lead/locale/de-doc.json
@@ -0,0 +1,81 @@
+{
+ "To manage Territory, click here": " Um Territory zu verwalten, klicken Sie hier a>",
+ "Address Line 1": "Address Line 1",
+ "Address Line 2": "Address Line 2",
+ "Advertisement": "Anzeige",
+ "Attempted to Contact": "Versucht, Kontakt",
+ "Blog": "Blog",
+ "Blog Subscriber": "Blog Subscriber",
+ "Call": "Rufen",
+ "Campaign": "Kampagne",
+ "Campaign Name": "Kampagnenname",
+ "Channel Partner": "Channel Partner",
+ "City": "City",
+ "Client": "Auftraggeber",
+ "Communication HTML": "Communication HTML",
+ "Company": "Firma",
+ "Company Name": "Firmenname",
+ "Consultant": "Berater",
+ "Contact Info": "Kontakt Info",
+ "Contact Name": "Kontakt Name",
+ "Contact in Future": "Kontakt in Zukunft",
+ "Contacted": "Kontaktiert",
+ "Converted": "Umgerechnet",
+ "Country": "Land",
+ "Customer": "Kunde",
+ "Date on which the lead was last contacted": "Datum, an dem das Blei letzten kontaktiert wurde",
+ "Email": "E-Mail",
+ "Email Id": "Email Id",
+ "Enter campaign name if the source of lead is campaign.": "Geben Sie Namen der Kampagne, wenn die Quelle von Blei-Kampagne.",
+ "Exhibition": "Ausstellung",
+ "Fax": "Fax",
+ "Fiscal Year": "Gesch\u00e4ftsjahr",
+ "From Customer": "Von Kunden",
+ "Industry": "Industrie",
+ "Interested": "Interessiert",
+ "LEAD": "F\u00dcHREN",
+ "LEAD/10-11/": "LEAD/10-11 /",
+ "LEAD/MUMBAI/": "LEAD / MUMBAI /",
+ "Last Contact Date": "Letzter Kontakt Datum",
+ "Lead": "F\u00fchren",
+ "Lead Details": "Blei Einzelheiten",
+ "Lead Lost": "F\u00fchrung verloren",
+ "Lead Owner": "Blei Owner",
+ "Lead Type": "Bleisatz",
+ "Lost Reason": "Verlorene Reason",
+ "Lower Income": "Lower Income",
+ "Market Segment": "Market Segment",
+ "Middle Income": "Middle Income",
+ "Mobile No.": "Handy Nr.",
+ "More Info": "Mehr Info",
+ "Name of organization from where lead has come": "Name der Organisation, wo Blei hat kommen",
+ "Naming Series": "Benennen Series",
+ "Next Contact By": "Von Next Kontakt",
+ "Next Contact Date": "Weiter Kontakt Datum",
+ "Not interested": "Kein Interesse",
+ "Open": "\u00d6ffnen",
+ "Other": "Andere",
+ "Phone": "Telefon",
+ "Pin Code": "Pin Code",
+ "Product Enquiry": "Produkt-Anfrage",
+ "Remark": "Bemerkung",
+ "Replied": "Beantwortet",
+ "Request Type": "Art der Anfrage",
+ "Request for Information": "Request for Information",
+ "Selling": "Verkauf",
+ "Source": "Quelle",
+ "Source of th": "Quelle th",
+ "Source of the lead. If via a campaign, select \"Campaign\"": "Quelle der Leitung. Wenn \u00fcber die Kampagne, w\u00e4hlen Sie \"Kampagne\"",
+ "State": "Zustand",
+ "Status": "Status",
+ "Suggestions": "Vorschl\u00e4ge",
+ "Supplier": "Lieferant",
+ "Territory": "Gebiet",
+ "To manage multiple series please go to Setup > Manage Series": "Um mehrere Reihen zu verwalten gehen Sie bitte auf Setup> Verwalten Series",
+ "Trash Reason": "Trash Reason",
+ "Unsubscribed": "Unsubscribed",
+ "Upper Income": "Obere Income",
+ "Website": "Webseite",
+ "Your sales person who will contact the lead in future": "Ihr Umsatz Person, die die F\u00fchrung in der Zukunft an",
+ "Your sales person will get a reminder on this date to contact the lead": "Ihre Vertriebsmitarbeiter erhalten eine Erinnerung an diesem Tag an die Spitze setzen"
+}
\ No newline at end of file
diff --git a/selling/doctype/lead/locale/de-py.json b/selling/doctype/lead/locale/de-py.json
new file mode 100644
index 00000000000..ddfc5e50750
--- /dev/null
+++ b/selling/doctype/lead/locale/de-py.json
@@ -0,0 +1,3 @@
+{
+ "Email Id must be unique, already exists for: ": "Email Id muss eindeutig sein, bereits f\u00fcr:"
+}
\ No newline at end of file
diff --git a/selling/doctype/lead/locale/pt-BR-doc.json b/selling/doctype/lead/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..1179872e1f3
--- /dev/null
+++ b/selling/doctype/lead/locale/pt-BR-doc.json
@@ -0,0 +1,81 @@
+{
+ "To manage Territory, click here": "Para gerenciar Territ\u00f3rio, clique aqui",
+ "Address Line 1": "Endere\u00e7o Linha 1",
+ "Address Line 2": "Endere\u00e7o Linha 2",
+ "Advertisement": "An\u00fancio",
+ "Attempted to Contact": "Tentou entrar em Contato",
+ "Blog": "Blog",
+ "Blog Subscriber": "Assinante do Blog",
+ "Call": "Chamar",
+ "Campaign": "Campanha",
+ "Campaign Name": "Nome da Campanha",
+ "Channel Partner": "Parceiro de Canal",
+ "City": "Cidade",
+ "Client": "Cliente",
+ "Communication HTML": "Comunica\u00e7\u00e3o HTML",
+ "Company": "Empresa",
+ "Company Name": "Nome da Empresa",
+ "Consultant": "Consultor",
+ "Contact Info": "Informa\u00e7\u00f5es para Contato",
+ "Contact Name": "Nome do Contato",
+ "Contact in Future": "Fale no Futuro",
+ "Contacted": "Contactado",
+ "Converted": "Convertido",
+ "Country": "Pa\u00eds",
+ "Customer": "Cliente",
+ "Date on which the lead was last contacted": "\u00daltima data em que o Prospecto foi contatado",
+ "Email": "E-mail",
+ "Email Id": "Endere\u00e7o de e-mail",
+ "Enter campaign name if the source of lead is campaign.": "Digite o nome da campanha se a origem do Prospecto foi uma campanha.",
+ "Exhibition": "Exposi\u00e7\u00e3o",
+ "Fax": "Fax",
+ "Fiscal Year": "Exerc\u00edcio fiscal",
+ "From Customer": "Do Cliente",
+ "Industry": "Ind\u00fastria",
+ "Interested": "Interessado",
+ "LEAD": "LEAD",
+ "LEAD/10-11/": "LEAD/10-11 /",
+ "LEAD/MUMBAI/": "LEAD / MUMBAI /",
+ "Last Contact Date": "Data do \u00faltimo contato",
+ "Lead": "Prospecto",
+ "Lead Details": "Detalhes do Prospecto",
+ "Lead Lost": "Prospecto Perdido",
+ "Lead Owner": "Propriet\u00e1rio do Prospecto",
+ "Lead Type": "Tipo de Prospecto",
+ "Lost Reason": "Raz\u00e3o da perda",
+ "Lower Income": "Baixa Renda",
+ "Market Segment": "Segmento de mercado",
+ "Middle Income": "Rendimento M\u00e9dio",
+ "Mobile No.": "Telefone Celular.",
+ "More Info": "Mais informa\u00e7\u00f5es",
+ "Name of organization from where lead has come": "Nome da Organiza\u00e7\u00e3o de onde veio o Prospecto",
+ "Naming Series": "S\u00e9ries nomeadas",
+ "Next Contact By": "Pr\u00f3ximo Contato Por",
+ "Next Contact Date": "Data do pr\u00f3ximo Contato",
+ "Not interested": "N\u00e3o est\u00e1 interessado",
+ "Open": "Abrir",
+ "Other": "Outro",
+ "Phone": "Telefone",
+ "Pin Code": "C\u00f3digo PIN",
+ "Product Enquiry": "Consulta de Produto",
+ "Remark": "Observa\u00e7\u00e3o",
+ "Replied": "Respondeu",
+ "Request Type": "Tipo de Solicita\u00e7\u00e3o",
+ "Request for Information": "Pedido de Informa\u00e7\u00e3o",
+ "Selling": "Vendas",
+ "Source": "Fonte",
+ "Source of th": "Origem do",
+ "Source of the lead. If via a campaign, select \"Campaign\"": "Origem do Prospecto. Se foi atrav\u00e9s de uma campanha, selecione "Campanha"",
+ "State": "Estado",
+ "Status": "Estado",
+ "Suggestions": "Sugest\u00f5es",
+ "Supplier": "Fornecedor",
+ "Territory": "Territ\u00f3rio",
+ "To manage multiple series please go to Setup > Manage Series": "Para gerenciar v\u00e1rias s\u00e9ries por favor, v\u00e1 para Configura\u00e7\u00e3o > Gerenciar S\u00e9ries",
+ "Trash Reason": "Raz\u00e3o de p\u00f4r no lixo",
+ "Unsubscribed": "Inscri\u00e7\u00e3o Cancelada",
+ "Upper Income": "Renda superior",
+ "Website": "Site",
+ "Your sales person who will contact the lead in future": "Seu vendedor que entrar\u00e1 em contato com o prospecto no futuro",
+ "Your sales person will get a reminder on this date to contact the lead": "Seu vendedor receber\u00e1 um lembrete nesta data para contatar o prospecto"
+}
\ No newline at end of file
diff --git a/selling/doctype/lead/locale/pt-BR-py.json b/selling/doctype/lead/locale/pt-BR-py.json
new file mode 100644
index 00000000000..f148f5e9b5b
--- /dev/null
+++ b/selling/doctype/lead/locale/pt-BR-py.json
@@ -0,0 +1,3 @@
+{
+ "Email Id must be unique, already exists for: ": "Endere\u00e7o de e-mail deve ser \u00fanico, j\u00e1 existe para: "
+}
\ No newline at end of file
diff --git a/selling/doctype/lead/locale/th-doc.json b/selling/doctype/lead/locale/th-doc.json
new file mode 100644
index 00000000000..0450f1c8305
--- /dev/null
+++ b/selling/doctype/lead/locale/th-doc.json
@@ -0,0 +1,81 @@
+{
+ "To manage Territory, click here": "\u0e01\u0e32\u0e23\u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e14\u0e34\u0e19\u0e41\u0e14\u0e19\u0e04\u0e25\u0e34\u0e01\u0e17\u0e35\u0e48\u0e19\u0e35\u0e48",
+ "Address Line 1": "\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e1a\u0e23\u0e23\u0e17\u0e31\u0e14\u0e17\u0e35\u0e48 1",
+ "Address Line 2": "\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e1a\u0e23\u0e23\u0e17\u0e31\u0e14\u0e17\u0e35\u0e48 2",
+ "Advertisement": "\u0e01\u0e32\u0e23\u0e42\u0e06\u0e29\u0e13\u0e32",
+ "Attempted to Contact": "\u0e1e\u0e22\u0e32\u0e22\u0e32\u0e21\u0e17\u0e35\u0e48\u0e08\u0e30\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d",
+ "Blog": "\u0e1a\u0e25\u0e47\u0e2d\u0e01",
+ "Blog Subscriber": "\u0e2a\u0e21\u0e32\u0e0a\u0e34\u0e01\u0e1a\u0e25\u0e47\u0e2d\u0e01",
+ "Call": "\u0e42\u0e17\u0e23\u0e28\u0e31\u0e1e\u0e17\u0e4c",
+ "Campaign": "\u0e23\u0e13\u0e23\u0e07\u0e04\u0e4c",
+ "Campaign Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e41\u0e04\u0e21\u0e40\u0e1b\u0e0d",
+ "Channel Partner": "\u0e1e\u0e31\u0e19\u0e18\u0e21\u0e34\u0e15\u0e23\u0e0a\u0e48\u0e2d\u0e07\u0e17\u0e32\u0e07",
+ "City": "\u0e40\u0e21\u0e37\u0e2d\u0e07",
+ "Client": "\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Communication HTML": "HTML \u0e01\u0e32\u0e23\u0e2a\u0e37\u0e48\u0e2d\u0e2a\u0e32\u0e23",
+ "Company": "\u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17",
+ "Company Name": "\u0e0a\u0e37\u0e48\u0e2d \u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17",
+ "Consultant": "\u0e1c\u0e39\u0e49\u0e43\u0e2b\u0e49\u0e04\u0e33\u0e1b\u0e23\u0e36\u0e01\u0e29\u0e32",
+ "Contact Info": "\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d",
+ "Contact Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e1c\u0e39\u0e49\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d",
+ "Contact in Future": "\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d\u0e43\u0e19\u0e2d\u0e19\u0e32\u0e04\u0e15",
+ "Contacted": "\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d",
+ "Converted": "\u0e41\u0e1b\u0e25\u0e07",
+ "Country": "\u0e1b\u0e23\u0e30\u0e40\u0e17\u0e28",
+ "Customer": "\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Date on which the lead was last contacted": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e19\u0e33\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d\u0e25\u0e48\u0e32\u0e2a\u0e38\u0e14",
+ "Email": "\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e4c",
+ "Email Id": "Email \u0e23\u0e2b\u0e31\u0e2a",
+ "Enter campaign name if the source of lead is campaign.": "\u0e1b\u0e49\u0e2d\u0e19\u0e0a\u0e37\u0e48\u0e2d\u0e41\u0e04\u0e21\u0e40\u0e1b\u0e0d\u0e2b\u0e32\u0e01\u0e41\u0e2b\u0e25\u0e48\u0e07\u0e17\u0e35\u0e48\u0e21\u0e32\u0e02\u0e2d\u0e07\u0e2a\u0e32\u0e23\u0e15\u0e30\u0e01\u0e31\u0e48\u0e27\u0e40\u0e1b\u0e47\u0e19\u0e41\u0e04\u0e21\u0e40\u0e1b\u0e0d",
+ "Exhibition": "\u0e07\u0e32\u0e19\u0e21\u0e2b\u0e01\u0e23\u0e23\u0e21",
+ "Fax": "\u0e41\u0e1f\u0e01\u0e0b\u0e4c",
+ "Fiscal Year": "\u0e1b\u0e35\u0e07\u0e1a\u0e1b\u0e23\u0e30\u0e21\u0e32\u0e13",
+ "From Customer": "\u0e08\u0e32\u0e01\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Industry": "\u0e2d\u0e38\u0e15\u0e2a\u0e32\u0e2b\u0e01\u0e23\u0e23\u0e21",
+ "Interested": "\u0e2a\u0e19\u0e43\u0e08",
+ "LEAD": "LEAD",
+ "LEAD/10-11/": "LEAD/10-11 /",
+ "LEAD/MUMBAI/": "LEAD / \u0e21\u0e38\u0e21\u0e44\u0e1a /",
+ "Last Contact Date": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d\u0e25\u0e48\u0e32\u0e2a\u0e38\u0e14",
+ "Lead": "\u0e19\u0e33",
+ "Lead Details": "\u0e19\u0e33\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14",
+ "Lead Lost": "\u0e19\u0e33 Lost",
+ "Lead Owner": "\u0e19\u0e33\u0e40\u0e08\u0e49\u0e32\u0e02\u0e2d\u0e07",
+ "Lead Type": "\u0e19\u0e33\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17",
+ "Lost Reason": "\u0e40\u0e2b\u0e15\u0e38\u0e1c\u0e25\u0e17\u0e35\u0e48\u0e2b\u0e32\u0e22\u0e44\u0e1b",
+ "Lower Income": "\u0e23\u0e32\u0e22\u0e44\u0e14\u0e49\u0e15\u0e48\u0e33",
+ "Market Segment": "\u0e2a\u0e48\u0e27\u0e19\u0e15\u0e25\u0e32\u0e14",
+ "Middle Income": "\u0e21\u0e35\u0e23\u0e32\u0e22\u0e44\u0e14\u0e49\u0e1b\u0e32\u0e19\u0e01\u0e25\u0e32\u0e07",
+ "Mobile No.": "\u0e40\u0e1a\u0e2d\u0e23\u0e4c\u0e21\u0e37\u0e2d\u0e16\u0e37\u0e2d",
+ "More Info": "\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21",
+ "Name of organization from where lead has come": "\u0e0a\u0e37\u0e48\u0e2d\u0e02\u0e2d\u0e07\u0e2d\u0e07\u0e04\u0e4c\u0e01\u0e23\u0e08\u0e32\u0e01\u0e17\u0e35\u0e48\u0e19\u0e33\u0e21\u0e32",
+ "Naming Series": "\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e0a\u0e37\u0e48\u0e2d\u0e0b\u0e35\u0e23\u0e35\u0e2a\u0e4c",
+ "Next Contact By": "\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d\u0e16\u0e31\u0e14\u0e44\u0e1b",
+ "Next Contact Date": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e16\u0e31\u0e14\u0e44\u0e1b\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d",
+ "Not interested": "\u0e44\u0e21\u0e48\u0e2a\u0e19\u0e43\u0e08",
+ "Open": "\u0e40\u0e1b\u0e34\u0e14",
+ "Other": "\u0e2d\u0e37\u0e48\u0e19 \u0e46",
+ "Phone": "\u0e42\u0e17\u0e23\u0e28\u0e31\u0e1e\u0e17\u0e4c",
+ "Pin Code": "\u0e23\u0e2b\u0e31\u0e2a PIN",
+ "Product Enquiry": "\u0e2a\u0e2d\u0e1a\u0e16\u0e32\u0e21\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Remark": "\u0e04\u0e33\u0e1e\u0e39\u0e14",
+ "Replied": "Replied",
+ "Request Type": "\u0e0a\u0e19\u0e34\u0e14\u0e02\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e23\u0e49\u0e2d\u0e07\u0e02\u0e2d",
+ "Request for Information": "\u0e01\u0e32\u0e23\u0e23\u0e49\u0e2d\u0e07\u0e02\u0e2d\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25",
+ "Selling": "\u0e02\u0e32\u0e22",
+ "Source": "\u0e41\u0e2b\u0e25\u0e48\u0e07",
+ "Source of th": "\u0e41\u0e2b\u0e25\u0e48\u0e07\u0e17\u0e35\u0e48\u0e21\u0e32\u0e02\u0e2d\u0e07 th",
+ "Source of the lead. If via a campaign, select \"Campaign\"": "\u0e41\u0e2b\u0e25\u0e48\u0e07\u0e17\u0e35\u0e48\u0e21\u0e32\u0e02\u0e2d\u0e07\u0e2a\u0e32\u0e23\u0e15\u0e30\u0e01\u0e31\u0e48\u0e27 \u0e16\u0e49\u0e32\u0e1c\u0e48\u0e32\u0e19\u0e41\u0e04\u0e21\u0e40\u0e1b\u0e0d\u0e40\u0e25\u0e37\u0e2d\u0e01 "\u0e41\u0e04\u0e21\u0e40\u0e1b\u0e0d"",
+ "State": "\u0e23\u0e31\u0e10",
+ "Status": "\u0e2a\u0e16\u0e32\u0e19\u0e30",
+ "Suggestions": "\u0e02\u0e49\u0e2d\u0e40\u0e2a\u0e19\u0e2d\u0e41\u0e19\u0e30",
+ "Supplier": "\u0e1c\u0e39\u0e49\u0e08\u0e31\u0e14\u0e08\u0e33\u0e2b\u0e19\u0e48\u0e32\u0e22",
+ "Territory": "\u0e2d\u0e32\u0e13\u0e32\u0e40\u0e02\u0e15",
+ "To manage multiple series please go to Setup > Manage Series": "\u0e43\u0e19\u0e01\u0e32\u0e23\u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e01\u0e31\u0e1a\u0e2b\u0e25\u0e32\u0e22\u0e0a\u0e38\u0e14\u0e42\u0e1b\u0e23\u0e14\u0e44\u0e1b\u0e17\u0e35\u0e48\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32> \u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e41\u0e1a\u0e1a",
+ "Trash Reason": "\u0e40\u0e2b\u0e15\u0e38\u0e1c\u0e25\u0e16\u0e31\u0e07\u0e02\u0e22\u0e30",
+ "Unsubscribed": "\u0e22\u0e01\u0e40\u0e25\u0e34\u0e01\u0e01\u0e32\u0e23\u0e2a\u0e21\u0e31\u0e04\u0e23",
+ "Upper Income": "\u0e23\u0e32\u0e22\u0e44\u0e14\u0e49\u0e1a\u0e19",
+ "Website": "\u0e40\u0e27\u0e47\u0e1a\u0e44\u0e0b\u0e15\u0e4c",
+ "Your sales person who will contact the lead in future": "\u0e04\u0e19\u0e02\u0e32\u0e22\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13\u0e17\u0e35\u0e48\u0e08\u0e30\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d\u0e19\u0e33\u0e43\u0e19\u0e2d\u0e19\u0e32\u0e04\u0e15",
+ "Your sales person will get a reminder on this date to contact the lead": "\u0e04\u0e19\u0e02\u0e32\u0e22\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13\u0e08\u0e30\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e41\u0e08\u0e49\u0e07\u0e40\u0e15\u0e37\u0e2d\u0e19\u0e43\u0e19\u0e27\u0e31\u0e19\u0e19\u0e35\u0e49\u0e17\u0e35\u0e48\u0e08\u0e30\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d\u0e19\u0e33"
+}
\ No newline at end of file
diff --git a/selling/doctype/lead/locale/th-py.json b/selling/doctype/lead/locale/th-py.json
new file mode 100644
index 00000000000..9eac19f7f1e
--- /dev/null
+++ b/selling/doctype/lead/locale/th-py.json
@@ -0,0 +1,3 @@
+{
+ "Email Id must be unique, already exists for: ": "Email \u0e23\u0e2b\u0e31\u0e2a\u0e15\u0e49\u0e2d\u0e07\u0e44\u0e21\u0e48\u0e0b\u0e49\u0e33\u0e01\u0e31\u0e19\u0e2d\u0e22\u0e39\u0e48\u0e41\u0e25\u0e49\u0e27\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a:"
+}
\ No newline at end of file
diff --git a/selling/doctype/opportunity/locale/de-doc.json b/selling/doctype/opportunity/locale/de-doc.json
new file mode 100644
index 00000000000..6358891dc59
--- /dev/null
+++ b/selling/doctype/opportunity/locale/de-doc.json
@@ -0,0 +1,67 @@
+{
+ "To manage Territory, click here": " Um Territory zu verwalten, klicken Sie hier a>",
+ "To manage Territory, click here": " Um Territory zu verwalten, klicken Sie hier a>",
+ "Address": "Adresse",
+ "Advertisement": "Anzeige",
+ "Amended From": "Ge\u00e4ndert von",
+ "Amendment Date": "\u00c4nderung Datum",
+ "Campaign": "Kampagne",
+ "Cancelled": "Abgesagt",
+ "Cold Calling": "Cold Calling",
+ "Communication HTML": "Communication HTML",
+ "Company": "Firma",
+ "Contact": "Kontakt",
+ "Contact Email": "Kontakt per E-Mail",
+ "Contact Info": "Kontakt Info",
+ "Contact Mobile No": "Kontakt Mobile Kein",
+ "Contact Person": "Ansprechpartner",
+ "Customer": "Kunde",
+ "Customer Address": "Kundenadresse",
+ "Customer Group": "Customer Group",
+ "Customer Name": "Name des Kunden",
+ "Customer's Vendor": "Kunden Hersteller",
+ "Date on which the lead was last contacted": "Datum, an dem das Blei letzten kontaktiert wurde",
+ "Draft": "Entwurf",
+ "Enter name of campaign if source of enquiry is campaign": "Geben Sie den Namen der Kampagne, wenn die Quelle der Anfrage ist Kampagne",
+ "Exhibition": "Ausstellung",
+ "Existing Customer": "Bestehende Kunden",
+ "Filing in Additional Information about the Opportunity will help you analyze your data better.": "Die Einreichung in Weitere Informationen \u00fcber die M\u00f6glichkeit wird Ihnen helfen, Ihre Daten analysieren besser.",
+ "Fiscal Year": "Gesch\u00e4ftsjahr",
+ "Items": "Artikel",
+ "Items which do not exist in Item master can also be entered on customer's request": "Gegenst\u00e4nde, die nicht in Artikelstammdaten nicht existieren kann auch auf Wunsch des Kunden eingegeben werden",
+ "Keep a track of communication related to this enquiry which will help for future reference.": "Verfolgen Sie die Kommunikation im Zusammenhang mit dieser Untersuchung, die f\u00fcr zuk\u00fcnftige Referenz helfen.",
+ "Last Contact Date": "Letzter Kontakt Datum",
+ "Lead": "F\u00fchren",
+ "Maintenance": "Wartung",
+ "Mass Mailing": "Mass Mailing",
+ "More Info": "Mehr Info",
+ "Name": "Name",
+ "Naming Series": "Benennen Series",
+ "Next Contact By": "Von Next Kontakt",
+ "Next Contact Date": "Weiter Kontakt Datum",
+ "OPPT": "OPPT",
+ "Opportunity": "Gelegenheit",
+ "Opportunity Date": "Gelegenheit Datum",
+ "Opportunity From": "Von der Chance",
+ "Opportunity Items": "Gelegenheit Artikel",
+ "Opportunity Lost": "Chance vertan",
+ "Opportunity Type": "Gelegenheit Typ",
+ "Order Confirmed": "Bestellung best\u00e4tigt",
+ "Potential Sales Deal": "Sales Potential Deal",
+ "Quotation Lost Reason": "Zitat Passwort Reason",
+ "Quotation Sent": "Gesendete Quotation",
+ "Reference": "Referenz",
+ "Sales": "Vertrieb",
+ "Selling": "Verkauf",
+ "Source": "Quelle",
+ "Status": "Status",
+ "Submitted": "Eingereicht",
+ "Supplier Reference": "Lieferant Reference",
+ "Territory": "Gebiet",
+ "The date at which current entry is made in system.": "Das Datum, an dem aktuellen Eintrag im System hergestellt wird.",
+ "To Discuss": "Zu diskutieren",
+ "To manage multiple series please go to Setup > Manage Series": "Um mehrere Reihen zu verwalten gehen Sie bitte auf Setup> Verwalten Series",
+ "Walk In": "Walk In",
+ "Your sales person who will contact the customer in future": "Ihr Umsatz Person, die die Kunden in Zukunft in Verbindung setzen",
+ "Your sales person will get a reminder on this date to contact the customer": "Ihre Vertriebsmitarbeiter erhalten eine Erinnerung an diesem Tag, um den Kunden an"
+}
\ No newline at end of file
diff --git a/selling/doctype/opportunity/locale/pt-BR-doc.json b/selling/doctype/opportunity/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..17614fd7ad3
--- /dev/null
+++ b/selling/doctype/opportunity/locale/pt-BR-doc.json
@@ -0,0 +1,67 @@
+{
+ "To manage Territory, click here": "Para gerenciar Territ\u00f3rio, clique aqui",
+ "To manage Territory, click here": "Para gerenciar Territ\u00f3rio, clique aqui",
+ "Address": "Endere\u00e7o",
+ "Advertisement": "An\u00fancio",
+ "Amended From": "Corrigido De",
+ "Amendment Date": "Data da Corre\u00e7\u00e3o",
+ "Campaign": "Campanha",
+ "Cancelled": "Cancelado",
+ "Cold Calling": "Cold Calling",
+ "Communication HTML": "Comunica\u00e7\u00e3o HTML",
+ "Company": "Empresa",
+ "Contact": "Contato",
+ "Contact Email": "E-mail do Contato",
+ "Contact Info": "Informa\u00e7\u00f5es para Contato",
+ "Contact Mobile No": "Celular do Contato",
+ "Contact Person": "Pessoa de Contato",
+ "Customer": "Cliente",
+ "Customer Address": "Endere\u00e7o do cliente",
+ "Customer Group": "Grupo de Clientes",
+ "Customer Name": "Nome do cliente",
+ "Customer's Vendor": "Vendedor do cliente",
+ "Date on which the lead was last contacted": "\u00daltima data em que o Prospecto foi contatado",
+ "Draft": "Rascunho",
+ "Enter name of campaign if source of enquiry is campaign": "Digite o nome da campanha se o motivo da consulta foi uma campanha.",
+ "Exhibition": "Exposi\u00e7\u00e3o",
+ "Existing Customer": "Cliente existente",
+ "Filing in Additional Information about the Opportunity will help you analyze your data better.": "Preenchimento de informa\u00e7\u00f5es adicionais sobre o Opportunity vai ajudar a analisar melhor seus dados.",
+ "Fiscal Year": "Exerc\u00edcio fiscal",
+ "Items": "Itens",
+ "Items which do not exist in Item master can also be entered on customer's request": "Itens que n\u00e3o existem no Cadastro de Itens tamb\u00e9m podem ser inseridos na requisi\u00e7\u00e3o do cliente",
+ "Keep a track of communication related to this enquiry which will help for future reference.": "Mantenha o controle de comunica\u00e7\u00f5es relacionadas a esta consulta, o que ir\u00e1 ajudar para futuras refer\u00eancias.",
+ "Last Contact Date": "Data do \u00faltimo contato",
+ "Lead": "Prospecto",
+ "Maintenance": "Manuten\u00e7\u00e3o",
+ "Mass Mailing": "Divulga\u00e7\u00e3o em massa",
+ "More Info": "Mais informa\u00e7\u00f5es",
+ "Name": "Nome",
+ "Naming Series": "S\u00e9ries nomeadas",
+ "Next Contact By": "Pr\u00f3ximo Contato Por",
+ "Next Contact Date": "Data do pr\u00f3ximo Contato",
+ "OPPT": "OPPT",
+ "Opportunity": "Oportunidade",
+ "Opportunity Date": "Data da oportunidade",
+ "Opportunity From": "Oportunidade De",
+ "Opportunity Items": "Itens da oportunidade",
+ "Opportunity Lost": "Oportunidade perdida",
+ "Opportunity Type": "Tipo de Oportunidade",
+ "Order Confirmed": "Ordem Confirmada",
+ "Potential Sales Deal": "Neg\u00f3cio de Vendas em potencial",
+ "Quotation Lost Reason": "Raz\u00e3o da perda da Cota\u00e7\u00e3o",
+ "Quotation Sent": "Cota\u00e7\u00e3o Enviada",
+ "Reference": "Refer\u00eancia",
+ "Sales": "Vendas",
+ "Selling": "Vendas",
+ "Source": "Fonte",
+ "Status": "Estado",
+ "Submitted": "Enviado",
+ "Supplier Reference": "Refer\u00eancia do Fornecedor",
+ "Territory": "Territ\u00f3rio",
+ "The date at which current entry is made in system.": "A data em que o lan\u00e7amento atual \u00e9 feito no sistema.",
+ "To Discuss": "Para Discutir",
+ "To manage multiple series please go to Setup > Manage Series": "Para gerenciar v\u00e1rias s\u00e9ries por favor, v\u00e1 para Configura\u00e7\u00e3o > Gerenciar S\u00e9ries",
+ "Walk In": "Walk In",
+ "Your sales person who will contact the customer in future": "Seu vendedor que entrar\u00e1 em contato com o cliente no futuro",
+ "Your sales person will get a reminder on this date to contact the customer": "Seu vendedor receber\u00e1 um lembrete nesta data para contatar o cliente"
+}
\ No newline at end of file
diff --git a/selling/doctype/opportunity/locale/th-doc.json b/selling/doctype/opportunity/locale/th-doc.json
new file mode 100644
index 00000000000..7b969604408
--- /dev/null
+++ b/selling/doctype/opportunity/locale/th-doc.json
@@ -0,0 +1,67 @@
+{
+ "To manage Territory, click here": "\u0e01\u0e32\u0e23\u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e14\u0e34\u0e19\u0e41\u0e14\u0e19\u0e04\u0e25\u0e34\u0e01\u0e17\u0e35\u0e48\u0e19\u0e35\u0e48",
+ "To manage Territory, click here": "\u0e01\u0e32\u0e23\u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e14\u0e34\u0e19\u0e41\u0e14\u0e19\u0e04\u0e25\u0e34\u0e01\u0e17\u0e35\u0e48\u0e19\u0e35\u0e48",
+ "Address": "\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48",
+ "Advertisement": "\u0e01\u0e32\u0e23\u0e42\u0e06\u0e29\u0e13\u0e32",
+ "Amended From": "\u0e41\u0e01\u0e49\u0e44\u0e02\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21",
+ "Amendment Date": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e41\u0e01\u0e49\u0e44\u0e02",
+ "Campaign": "\u0e23\u0e13\u0e23\u0e07\u0e04\u0e4c",
+ "Cancelled": "\u0e22\u0e01\u0e40\u0e25\u0e34\u0e01",
+ "Cold Calling": "\u0e42\u0e17\u0e23\u0e40\u0e22\u0e47\u0e19",
+ "Communication HTML": "HTML \u0e01\u0e32\u0e23\u0e2a\u0e37\u0e48\u0e2d\u0e2a\u0e32\u0e23",
+ "Company": "\u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17",
+ "Contact": "\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d",
+ "Contact Email": "\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e4c",
+ "Contact Info": "\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d",
+ "Contact Mobile No": "\u0e40\u0e1a\u0e2d\u0e23\u0e4c\u0e21\u0e37\u0e2d\u0e16\u0e37\u0e2d\u0e44\u0e21\u0e48\u0e21\u0e35",
+ "Contact Person": "Contact Person",
+ "Customer": "\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Customer Address": "\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e02\u0e2d\u0e07\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Customer Group": "\u0e01\u0e25\u0e38\u0e48\u0e21\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Customer Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Customer's Vendor": "\u0e1c\u0e39\u0e49\u0e02\u0e32\u0e22\u0e02\u0e2d\u0e07\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Date on which the lead was last contacted": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e19\u0e33\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d\u0e25\u0e48\u0e32\u0e2a\u0e38\u0e14",
+ "Draft": "\u0e23\u0e48\u0e32\u0e07",
+ "Enter name of campaign if source of enquiry is campaign": "\u0e1b\u0e49\u0e2d\u0e19\u0e0a\u0e37\u0e48\u0e2d\u0e02\u0e2d\u0e07\u0e41\u0e04\u0e21\u0e40\u0e1b\u0e0d\u0e2b\u0e32\u0e01\u0e41\u0e2b\u0e25\u0e48\u0e07\u0e17\u0e35\u0e48\u0e21\u0e32\u0e02\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e23\u0e13\u0e23\u0e07\u0e04\u0e4c\u0e2a\u0e2d\u0e1a\u0e16\u0e32\u0e21\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21",
+ "Exhibition": "\u0e07\u0e32\u0e19\u0e21\u0e2b\u0e01\u0e23\u0e23\u0e21",
+ "Existing Customer": "\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32\u0e17\u0e35\u0e48\u0e21\u0e35\u0e2d\u0e22\u0e39\u0e48",
+ "Filing in Additional Information about the Opportunity will help you analyze your data better.": "\u0e22\u0e37\u0e48\u0e19\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21\u0e40\u0e01\u0e35\u0e48\u0e22\u0e27\u0e01\u0e31\u0e1a\u0e42\u0e2d\u0e01\u0e32\u0e2a\u0e17\u0e35\u0e48\u0e08\u0e30\u0e0a\u0e48\u0e27\u0e22\u0e43\u0e2b\u0e49\u0e04\u0e38\u0e13\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e27\u0e34\u0e40\u0e04\u0e23\u0e32\u0e30\u0e2b\u0e4c\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13\u0e14\u0e35\u0e02\u0e36\u0e49\u0e19",
+ "Fiscal Year": "\u0e1b\u0e35\u0e07\u0e1a\u0e1b\u0e23\u0e30\u0e21\u0e32\u0e13",
+ "Items": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23",
+ "Items which do not exist in Item master can also be entered on customer's request": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e17\u0e35\u0e48\u0e44\u0e21\u0e48\u0e44\u0e14\u0e49\u0e2d\u0e22\u0e39\u0e48\u0e43\u0e19\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e2b\u0e25\u0e31\u0e01\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e40\u0e02\u0e49\u0e32\u0e23\u0e49\u0e2d\u0e07\u0e02\u0e2d\u0e02\u0e2d\u0e07\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Keep a track of communication related to this enquiry which will help for future reference.": "\u0e15\u0e34\u0e14\u0e15\u0e32\u0e21\u0e02\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e2a\u0e37\u0e48\u0e2d\u0e2a\u0e32\u0e23\u0e17\u0e35\u0e48\u0e40\u0e01\u0e35\u0e48\u0e22\u0e27\u0e02\u0e49\u0e2d\u0e07\u0e01\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e2a\u0e37\u0e1a\u0e2a\u0e27\u0e19\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e19\u0e35\u0e49\u0e0b\u0e36\u0e48\u0e07\u0e08\u0e30\u0e0a\u0e48\u0e27\u0e22\u0e43\u0e2b\u0e49\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e2d\u0e49\u0e32\u0e07\u0e2d\u0e34\u0e07\u0e43\u0e19\u0e2d\u0e19\u0e32\u0e04\u0e15",
+ "Last Contact Date": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d\u0e25\u0e48\u0e32\u0e2a\u0e38\u0e14",
+ "Lead": "\u0e19\u0e33",
+ "Maintenance": "\u0e01\u0e32\u0e23\u0e1a\u0e33\u0e23\u0e38\u0e07\u0e23\u0e31\u0e01\u0e29\u0e32",
+ "Mass Mailing": "\u0e08\u0e14\u0e2b\u0e21\u0e32\u0e22\u0e21\u0e27\u0e25",
+ "More Info": "\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21",
+ "Name": "\u0e0a\u0e37\u0e48\u0e2d",
+ "Naming Series": "\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e0a\u0e37\u0e48\u0e2d\u0e0b\u0e35\u0e23\u0e35\u0e2a\u0e4c",
+ "Next Contact By": "\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d\u0e16\u0e31\u0e14\u0e44\u0e1b",
+ "Next Contact Date": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e16\u0e31\u0e14\u0e44\u0e1b\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d",
+ "OPPT": "OPPT",
+ "Opportunity": "\u0e42\u0e2d\u0e01\u0e32\u0e2a",
+ "Opportunity Date": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e21\u0e35\u0e42\u0e2d\u0e01\u0e32\u0e2a",
+ "Opportunity From": "\u0e42\u0e2d\u0e01\u0e32\u0e2a\u0e08\u0e32\u0e01",
+ "Opportunity Items": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e42\u0e2d\u0e01\u0e32\u0e2a",
+ "Opportunity Lost": "\u0e2a\u0e39\u0e0d\u0e40\u0e2a\u0e35\u0e22\u0e42\u0e2d\u0e01\u0e32\u0e2a",
+ "Opportunity Type": "\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e42\u0e2d\u0e01\u0e32\u0e2a",
+ "Order Confirmed": "\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e22\u0e37\u0e19\u0e22\u0e31\u0e19",
+ "Potential Sales Deal": "Deal \u0e02\u0e32\u0e22\u0e17\u0e35\u0e48\u0e21\u0e35\u0e28\u0e31\u0e01\u0e22\u0e20\u0e32\u0e1e",
+ "Quotation Lost Reason": "\u0e43\u0e1a\u0e40\u0e2a\u0e19\u0e2d\u0e23\u0e32\u0e04\u0e32 Lost \u0e40\u0e2b\u0e15\u0e38\u0e1c\u0e25",
+ "Quotation Sent": "\u0e43\u0e1a\u0e40\u0e2a\u0e19\u0e2d\u0e23\u0e32\u0e04\u0e32\u0e2a\u0e48\u0e07",
+ "Reference": "\u0e01\u0e32\u0e23\u0e2d\u0e49\u0e32\u0e07\u0e2d\u0e34\u0e07",
+ "Sales": "\u0e02\u0e32\u0e22",
+ "Selling": "\u0e02\u0e32\u0e22",
+ "Source": "\u0e41\u0e2b\u0e25\u0e48\u0e07",
+ "Status": "\u0e2a\u0e16\u0e32\u0e19\u0e30",
+ "Submitted": "Submitted",
+ "Supplier Reference": "\u0e2d\u0e49\u0e32\u0e07\u0e2d\u0e34\u0e07\u0e08\u0e33\u0e2b\u0e19\u0e48\u0e32\u0e22",
+ "Territory": "\u0e2d\u0e32\u0e13\u0e32\u0e40\u0e02\u0e15",
+ "The date at which current entry is made in system.": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e17\u0e35\u0e48\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e1b\u0e31\u0e08\u0e08\u0e38\u0e1a\u0e31\u0e19\u0e08\u0e30\u0e17\u0e33\u0e43\u0e19\u0e23\u0e30\u0e1a\u0e1a",
+ "To Discuss": "\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e2b\u0e32\u0e23\u0e37\u0e2d\u0e40\u0e01\u0e35\u0e48\u0e22\u0e27\u0e01\u0e31\u0e1a",
+ "To manage multiple series please go to Setup > Manage Series": "\u0e43\u0e19\u0e01\u0e32\u0e23\u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e01\u0e31\u0e1a\u0e2b\u0e25\u0e32\u0e22\u0e0a\u0e38\u0e14\u0e42\u0e1b\u0e23\u0e14\u0e44\u0e1b\u0e17\u0e35\u0e48\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32> \u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e41\u0e1a\u0e1a",
+ "Walk In": "Walk In",
+ "Your sales person who will contact the customer in future": "\u0e04\u0e19\u0e02\u0e32\u0e22\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13\u0e17\u0e35\u0e48\u0e08\u0e30\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d\u0e01\u0e31\u0e1a\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32\u0e43\u0e19\u0e2d\u0e19\u0e32\u0e04\u0e15",
+ "Your sales person will get a reminder on this date to contact the customer": "\u0e04\u0e19\u0e02\u0e32\u0e22\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13\u0e08\u0e30\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e41\u0e08\u0e49\u0e07\u0e40\u0e15\u0e37\u0e2d\u0e19\u0e43\u0e19\u0e27\u0e31\u0e19\u0e19\u0e35\u0e49\u0e17\u0e35\u0e48\u0e08\u0e30\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32"
+}
\ No newline at end of file
diff --git a/selling/doctype/opportunity_item/locale/_messages_doc.json b/selling/doctype/opportunity_item/locale/_messages_doc.json
index 78df77937fe..0ee079c0843 100644
--- a/selling/doctype/opportunity_item/locale/_messages_doc.json
+++ b/selling/doctype/opportunity_item/locale/_messages_doc.json
@@ -3,9 +3,9 @@
"Description",
"Brand",
"Qty",
+ "Opportunity Item",
"Item Name",
"Item Group",
- "Opportunity Item",
"Basic Rate",
"Item Code",
"UOM"
diff --git a/selling/doctype/opportunity_item/locale/de-doc.json b/selling/doctype/opportunity_item/locale/de-doc.json
new file mode 100644
index 00000000000..469bde5d80f
--- /dev/null
+++ b/selling/doctype/opportunity_item/locale/de-doc.json
@@ -0,0 +1,12 @@
+{
+ "Basic Rate": "Basic Rate",
+ "Brand": "Marke",
+ "Description": "Beschreibung",
+ "Item Code": "Item Code",
+ "Item Group": "Artikel-Gruppe",
+ "Item Name": "Item Name",
+ "Opportunity Item": "Gelegenheit Artikel",
+ "Qty": "Menge",
+ "Selling": "Verkauf",
+ "UOM": "UOM"
+}
\ No newline at end of file
diff --git a/selling/doctype/opportunity_item/locale/pt-BR-doc.json b/selling/doctype/opportunity_item/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..2995bec600a
--- /dev/null
+++ b/selling/doctype/opportunity_item/locale/pt-BR-doc.json
@@ -0,0 +1,12 @@
+{
+ "Basic Rate": "Taxa B\u00e1sica",
+ "Brand": "Marca",
+ "Description": "Descri\u00e7\u00e3o",
+ "Item Code": "C\u00f3digo do Item",
+ "Item Group": "Grupo de Itens",
+ "Item Name": "Nome do Item",
+ "Opportunity Item": "Item da oportunidade",
+ "Qty": "Qtde.",
+ "Selling": "Vendas",
+ "UOM": "UDM"
+}
\ No newline at end of file
diff --git a/selling/doctype/opportunity_item/locale/th-doc.json b/selling/doctype/opportunity_item/locale/th-doc.json
new file mode 100644
index 00000000000..e33bd5df964
--- /dev/null
+++ b/selling/doctype/opportunity_item/locale/th-doc.json
@@ -0,0 +1,12 @@
+{
+ "Basic Rate": "\u0e2d\u0e31\u0e15\u0e23\u0e32\u0e02\u0e31\u0e49\u0e19\u0e1e\u0e37\u0e49\u0e19\u0e10\u0e32\u0e19",
+ "Brand": "\u0e22\u0e35\u0e48\u0e2b\u0e49\u0e2d",
+ "Description": "\u0e25\u0e31\u0e01\u0e29\u0e13\u0e30",
+ "Item Code": "\u0e23\u0e2b\u0e31\u0e2a\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Item Group": "\u0e01\u0e25\u0e38\u0e48\u0e21\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Item Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23",
+ "Opportunity Item": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e42\u0e2d\u0e01\u0e32\u0e2a",
+ "Qty": "\u0e08\u0e33\u0e19\u0e27\u0e19",
+ "Selling": "\u0e02\u0e32\u0e22",
+ "UOM": "UOM"
+}
\ No newline at end of file
diff --git a/selling/doctype/quotation/locale/de-doc.json b/selling/doctype/quotation/locale/de-doc.json
new file mode 100644
index 00000000000..0d5b9498be1
--- /dev/null
+++ b/selling/doctype/quotation/locale/de-doc.json
@@ -0,0 +1,96 @@
+{
+ "Add Terms and Conditions for the Quotation like Payment Terms, Validity of Offer etc. You can also prepare a Terms and Conditions Master and use the Template": "F\u00fcgen AGB f\u00fcr das Angebot wie Zahlungsbedingungen, G\u00fcltigkeit des Angebots etc. Sie k\u00f6nnen auch ein AGB-Master und verwenden Sie die Vorlage",
+ "Address": "Adresse",
+ "Advertisement": "Anzeige",
+ "Amended From": "Ge\u00e4ndert von",
+ "Amendment Date": "\u00c4nderung Datum",
+ "Calculate Taxes and Charges": "Berechnen Sie Steuern und Abgaben",
+ "Campaign": "Kampagne",
+ "Cancelled": "Abgesagt",
+ "Cold Calling": "Cold Calling",
+ "Communication HTML": "Communication HTML",
+ "Communication History": "Communication History",
+ "Company": "Firma",
+ "Contact": "Kontakt",
+ "Contact Email": "Kontakt per E-Mail",
+ "Contact Info": "Kontakt Info",
+ "Contact Person": "Ansprechpartner",
+ "Conversion Rate": "Conversion Rate",
+ "Currency": "W\u00e4hrung",
+ "Customer": "Kunde",
+ "Customer Address": "Kundenadresse",
+ "Customer Group": "Customer Group",
+ "Customer Name": "Name des Kunden",
+ "Customer's Vendor": "Kunden Hersteller",
+ "Customer's currency - If you want to select a currency that is not the default currency, then you must also specify the Currency Conversion Rate.": "Kunden W\u00e4hrung - Wenn Sie eine W\u00e4hrung, die nicht die Standard-W\u00e4hrung ausw\u00e4hlen wollen, dann m\u00fcssen Sie auch die Currency Conversion Rate.",
+ "Draft": "Entwurf",
+ "Exhibition": "Ausstellung",
+ "Existing Customer": "Bestehende Kunden",
+ "File List": "Dateiliste",
+ "Filling in additional information about the Quotation will help you analyze your data better.": "Ausf\u00fcllen zus\u00e4tzliche Informationen \u00fcber das Angebot wird Ihnen helfen, Ihre Daten analysieren besser.",
+ "Fiscal Year": "Gesch\u00e4ftsjahr",
+ "Get Taxes and Charges": "Holen Steuern und Abgaben",
+ "Get Terms and Conditions": "Holen AGB",
+ "Grand Total": "Grand Total",
+ "Grand Total*": "Grand Total *",
+ "In Words": "In Worte",
+ "In Words will be visible once you save the Quotation.": "In Worte sichtbar sein wird, sobald Sie das Angebot zu speichern.",
+ "Items": "Artikel",
+ "Keep a track on communications regarding this Quotation. This will help you remember earlier communications in case the Customer comes back again": "Halten Sie einen Track auf Mitteilungen \u00fcber dieses Angebot. Dies hilft Ihnen, sich zuvor Kommunikation im Falle der Kunde kommt wieder",
+ "Lead": "F\u00fchren",
+ "Lead Name": "Name der Person",
+ "Letter Head": "Briefkopf",
+ "Maintenance": "Wartung",
+ "Mass Mailing": "Mass Mailing",
+ "Mobile No": "In Mobile",
+ "More Info": "Mehr Info",
+ "Naming Series": "Benennen Series",
+ "Net Total*": "* Net Total",
+ "Opportunity Item": "Gelegenheit Artikel",
+ "Opportunity No": "Die Gelegenheit",
+ "Order Confirmed": "Bestellung best\u00e4tigt",
+ "Order Lost": "Lost Order",
+ "Order Type": "Auftragsart",
+ "Organization": "Organisation",
+ "Price List": "Preisliste",
+ "Price List Currency": "W\u00e4hrung Preisliste",
+ "Price List Currency Conversion Rate": "Preisliste Currency Conversion Rate",
+ "Price List and Currency": "Listenpreis und W\u00e4hrungsrechner",
+ "Pull Opportunity Detail": "Ziehen Sie Gelegenheit Detailansicht",
+ "QTN": "QTN",
+ "Quotation": "Zitat",
+ "Quotation Date": "Quotation Datum",
+ "Quotation Items": "Angebotspositionen",
+ "Quotation Lost Reason": "Zitat Passwort Reason",
+ "Quotation To": "Um Angebot",
+ "Rate at which Price list currency is converted to company's base currency": "Geschwindigkeit, mit der W\u00e4hrung der Preisliste zu Unternehmen der Basisw\u00e4hrung umgewandelt wird",
+ "Rate at which customer's currency is converted to company's base currency": "Rate, mit der Kunden W\u00e4hrung ist an Unternehmen Basisw\u00e4hrung umgerechnet",
+ "Re-Calculate Values": "Neu berechnen Werte",
+ "Reference": "Referenz",
+ "Rounded Total": "Abgerundete insgesamt",
+ "Sales": "Vertrieb",
+ "Sales Taxes and Charges": "Vertrieb Steuern und Abgaben",
+ "Select Print Heading": "W\u00e4hlen Sie Drucken \u00dcberschrift",
+ "Select Terms and Conditions": "W\u00e4hlen AGB",
+ "Select the currency in which price list is maintained": "W\u00e4hlen Sie die W\u00e4hrung, in der Preisliste wird beibehalten",
+ "Select the price list as entered in \"Price List\" master. This will pull the reference rates of items against this price list as specified in \"Item\" master.": "W\u00e4hlen Sie die Preisliste in der \"Preisliste\" Master eingetragen. Dadurch werden die Referenzkurse Artikel gegen diese Preisliste in der \"Item\" Master vorgegeben ziehen.",
+ "Select the relevant company name if you have multiple companies.": "W\u00e4hlen Sie den entsprechenden Firmennamen, wenn Sie mehrere Unternehmen haben.",
+ "Selling": "Verkauf",
+ "Source": "Quelle",
+ "Status": "Status",
+ "Submitted": "Eingereicht",
+ "Supplier Reference": "Lieferant Reference",
+ "Taxes": "Steuern",
+ "Taxes and Charges Calculation": "Steuern und Geb\u00fchren Berechnung",
+ "Taxes and Charges Total*": "Steuern und Geb\u00fchren Total *",
+ "Term Details": "Begriff Einzelheiten",
+ "Terms and Conditions": "AGB",
+ "Terms and Conditions HTML": "AGB HTML",
+ "Territory": "Gebiet",
+ "The date at which current entry is corrected in the system.": "Der Zeitpunkt, zu dem aktuellen Eintrag in dem System korrigiert.",
+ "The date at which current entry is made in system.": "Das Datum, an dem aktuellen Eintrag im System hergestellt wird.",
+ "To create Quotation against Opportunity, Select Opportunity No. and click on 'Pull Opportunity Details' ": "Um Quotation gegen Gelegenheit schaffen, ausw\u00e4hlen Chance No und klicken Sie auf \"Pull Opportunity-Details '",
+ "To manage multiple series please go to Setup > Manage Series": "Um mehrere Reihen zu verwalten gehen Sie bitte auf Setup> Verwalten Series",
+ "Totals": "Totals",
+ "Will be fetched from Customer": "Wird vom Kunden abgeholt werden"
+}
\ No newline at end of file
diff --git a/selling/doctype/quotation/locale/pt-BR-doc.json b/selling/doctype/quotation/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..e306e8e0d3c
--- /dev/null
+++ b/selling/doctype/quotation/locale/pt-BR-doc.json
@@ -0,0 +1,96 @@
+{
+ "Add Terms and Conditions for the Quotation like Payment Terms, Validity of Offer etc. You can also prepare a Terms and Conditions Master and use the Template": "Adicione Termos e Condi\u00e7\u00f5es para a Cota\u00e7\u00e3o como Condi\u00e7\u00f5es de Pagamento, Validade da Oferta e etc. Voc\u00ea tamb\u00e9m pode preparar um cadastro de Termos e Condi\u00e7\u00f5es e usar o Modelo",
+ "Address": "Endere\u00e7o",
+ "Advertisement": "An\u00fancio",
+ "Amended From": "Corrigido De",
+ "Amendment Date": "Data da Corre\u00e7\u00e3o",
+ "Calculate Taxes and Charges": "Calcular Impostos e Encargos",
+ "Campaign": "Campanha",
+ "Cancelled": "Cancelado",
+ "Cold Calling": "Cold Calling",
+ "Communication HTML": "Comunica\u00e7\u00e3o HTML",
+ "Communication History": "Hist\u00f3rico da comunica\u00e7\u00e3o",
+ "Company": "Empresa",
+ "Contact": "Contato",
+ "Contact Email": "E-mail do Contato",
+ "Contact Info": "Informa\u00e7\u00f5es para Contato",
+ "Contact Person": "Pessoa de Contato",
+ "Conversion Rate": "Taxa de Convers\u00e3o",
+ "Currency": "Moeda",
+ "Customer": "Cliente",
+ "Customer Address": "Endere\u00e7o do cliente",
+ "Customer Group": "Grupo de Clientes",
+ "Customer Name": "Nome do cliente",
+ "Customer's Vendor": "Vendedor do cliente",
+ "Customer's currency - If you want to select a currency that is not the default currency, then you must also specify the Currency Conversion Rate.": "Moeda do cliente - Se voc\u00ea deseja selecionar uma moeda que n\u00e3o \u00e9 a moeda padr\u00e3o, ent\u00e3o voc\u00ea tamb\u00e9m deve especificar a taxa de convers\u00e3o.",
+ "Draft": "Rascunho",
+ "Exhibition": "Exposi\u00e7\u00e3o",
+ "Existing Customer": "Cliente existente",
+ "File List": "Lista de Arquivos",
+ "Filling in additional information about the Quotation will help you analyze your data better.": "Preenchimento de informa\u00e7\u00f5es adicionais sobre a cota\u00e7\u00e3o ir\u00e1 ajud\u00e1-lo a analisar os seus dados melhor.",
+ "Fiscal Year": "Exerc\u00edcio fiscal",
+ "Get Taxes and Charges": "Obter Impostos e Encargos",
+ "Get Terms and Conditions": "Obter os Termos e Condi\u00e7\u00f5es",
+ "Grand Total": "Total Geral",
+ "Grand Total*": "Total Geral*",
+ "In Words": "Por extenso",
+ "In Words will be visible once you save the Quotation.": "Por extenso ser\u00e1 vis\u00edvel quando voc\u00ea salvar a cota\u00e7\u00e3o.",
+ "Items": "Itens",
+ "Keep a track on communications regarding this Quotation. This will help you remember earlier communications in case the Customer comes back again": "Mantenha o controle sobre as comunica\u00e7\u00f5es relativas a este Or\u00e7amento. Isso vai ajudar voc\u00ea a lembrar de comunica\u00e7\u00f5es anteriores para o caso de o cliente voltar novamente",
+ "Lead": "Prospecto",
+ "Lead Name": "Nome do Prospecto",
+ "Letter Head": "Timbrado",
+ "Maintenance": "Manuten\u00e7\u00e3o",
+ "Mass Mailing": "Divulga\u00e7\u00e3o em massa",
+ "Mobile No": "Telefone Celular",
+ "More Info": "Mais informa\u00e7\u00f5es",
+ "Naming Series": "S\u00e9ries nomeadas",
+ "Net Total*": "Total L\u00edquido*",
+ "Opportunity Item": "Item da oportunidade",
+ "Opportunity No": "N\u00ba da oportunidade",
+ "Order Confirmed": "Ordem Confirmada",
+ "Order Lost": "Ordem Perdida",
+ "Order Type": "Tipo de Ordem",
+ "Organization": "Organiza\u00e7\u00e3o",
+ "Price List": "Lista de Pre\u00e7os",
+ "Price List Currency": "Moeda da Lista de Pre\u00e7os",
+ "Price List Currency Conversion Rate": "Taxa de convers\u00e3o da moeda da lista de pre\u00e7os",
+ "Price List and Currency": "Lista de Pre\u00e7os e Moeda",
+ "Pull Opportunity Detail": "Puxar Detalhe da oportunidade",
+ "QTN": "QTN",
+ "Quotation": "Cota\u00e7\u00e3o",
+ "Quotation Date": "Data da Cota\u00e7\u00e3o",
+ "Quotation Items": "Itens da Cota\u00e7\u00e3o",
+ "Quotation Lost Reason": "Raz\u00e3o da perda da Cota\u00e7\u00e3o",
+ "Quotation To": "Cota\u00e7\u00e3o para",
+ "Rate at which Price list currency is converted to company's base currency": "Taxa na qual a moeda da lista de pre\u00e7os \u00e9 convertida para a moeda base da empresa",
+ "Rate at which customer's currency is converted to company's base currency": "Taxa na qual a moeda do cliente \u00e9 convertida para a moeda base da empresa",
+ "Re-Calculate Values": "Re-calcular valores",
+ "Reference": "Refer\u00eancia",
+ "Rounded Total": "Total arredondado",
+ "Sales": "Vendas",
+ "Sales Taxes and Charges": "Impostos e Taxas sobre Vendas",
+ "Select Print Heading": "Selecione o Cabe\u00e7alho de Impress\u00e3o",
+ "Select Terms and Conditions": "Selecione os Termos e Condi\u00e7\u00f5es",
+ "Select the currency in which price list is maintained": "Selecione a moeda na qual a lista de pre\u00e7os \u00e9 mantida",
+ "Select the price list as entered in \"Price List\" master. This will pull the reference rates of items against this price list as specified in \"Item\" master.": "Selecione a lista de pre\u00e7os como cadastrada em "Lista de Pre\u00e7o". Isso vai puxar os valores de refer\u00eancia dos itens contra esta lista de pre\u00e7os, conforme especificado no cadastro "Item".",
+ "Select the relevant company name if you have multiple companies.": "Selecione o nome da empresa em quest\u00e3o, se voc\u00ea tem v\u00e1rias empresas.",
+ "Selling": "Vendas",
+ "Source": "Fonte",
+ "Status": "Estado",
+ "Submitted": "Enviado",
+ "Supplier Reference": "Refer\u00eancia do Fornecedor",
+ "Taxes": "Impostos",
+ "Taxes and Charges Calculation": "C\u00e1lculo de Impostos e Encargos",
+ "Taxes and Charges Total*": "Total de Impostos e Encargos*",
+ "Term Details": "Detalhes dos Termos",
+ "Terms and Conditions": "Termos e Condi\u00e7\u00f5es",
+ "Terms and Conditions HTML": "Termos e Condi\u00e7\u00f5es HTML",
+ "Territory": "Territ\u00f3rio",
+ "The date at which current entry is corrected in the system.": "A data em que o lan\u00e7amento atual \u00e9 corrigido no sistema.",
+ "The date at which current entry is made in system.": "A data em que o lan\u00e7amento atual \u00e9 feito no sistema.",
+ "To create Quotation against Opportunity, Select Opportunity No. and click on 'Pull Opportunity Details' ": "Para criar uma Cota\u00e7\u00e3o para uma Oportunidade, selecione o N\u00ba da Oportunidade e clique em 'Obter Detalhes da Oportunidade"",
+ "To manage multiple series please go to Setup > Manage Series": "Para gerenciar v\u00e1rias s\u00e9ries por favor, v\u00e1 para Configura\u00e7\u00e3o > Gerenciar S\u00e9ries",
+ "Totals": "Totais",
+ "Will be fetched from Customer": "Ser\u00e1 obtido a partir do Cliente"
+}
\ No newline at end of file
diff --git a/selling/doctype/quotation/locale/th-doc.json b/selling/doctype/quotation/locale/th-doc.json
new file mode 100644
index 00000000000..6637d021133
--- /dev/null
+++ b/selling/doctype/quotation/locale/th-doc.json
@@ -0,0 +1,96 @@
+{
+ "Add Terms and Conditions for the Quotation like Payment Terms, Validity of Offer etc. You can also prepare a Terms and Conditions Master and use the Template": "\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e02\u0e49\u0e2d\u0e15\u0e01\u0e25\u0e07\u0e41\u0e25\u0e30\u0e40\u0e07\u0e37\u0e48\u0e2d\u0e19\u0e44\u0e02\u0e43\u0e19\u0e01\u0e32\u0e23\u0e02\u0e2d\u0e43\u0e1a\u0e40\u0e2a\u0e19\u0e2d\u0e23\u0e32\u0e04\u0e32\u0e40\u0e0a\u0e48\u0e19\u0e40\u0e07\u0e37\u0e48\u0e2d\u0e19\u0e44\u0e02\u0e01\u0e32\u0e23\u0e0a\u0e33\u0e23\u0e30\u0e40\u0e07\u0e34\u0e19\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07\u0e02\u0e2d\u0e07\u0e02\u0e49\u0e2d\u0e40\u0e2a\u0e19\u0e2d\u0e17\u0e35\u0e48\u0e04\u0e38\u0e13 \u0e2f\u0e25\u0e2f \u0e19\u0e2d\u0e01\u0e08\u0e32\u0e01\u0e19\u0e35\u0e49\u0e22\u0e31\u0e07\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e40\u0e15\u0e23\u0e35\u0e22\u0e21\u0e04\u0e27\u0e32\u0e21\u0e1e\u0e23\u0e49\u0e2d\u0e21\u0e02\u0e49\u0e2d\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e40\u0e07\u0e37\u0e48\u0e2d\u0e19\u0e44\u0e02\u0e41\u0e25\u0e30\u0e1b\u0e23\u0e34\u0e0d\u0e0d\u0e32\u0e42\u0e17\u0e41\u0e25\u0e30\u0e43\u0e0a\u0e49\u0e41\u0e21\u0e48\u0e41\u0e1a\u0e1a",
+ "Address": "\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48",
+ "Advertisement": "\u0e01\u0e32\u0e23\u0e42\u0e06\u0e29\u0e13\u0e32",
+ "Amended From": "\u0e41\u0e01\u0e49\u0e44\u0e02\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21",
+ "Amendment Date": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e41\u0e01\u0e49\u0e44\u0e02",
+ "Calculate Taxes and Charges": "\u0e04\u0e33\u0e19\u0e27\u0e13\u0e20\u0e32\u0e29\u0e35\u0e41\u0e25\u0e30\u0e04\u0e48\u0e32\u0e1a\u0e23\u0e34\u0e01\u0e32\u0e23",
+ "Campaign": "\u0e23\u0e13\u0e23\u0e07\u0e04\u0e4c",
+ "Cancelled": "\u0e22\u0e01\u0e40\u0e25\u0e34\u0e01",
+ "Cold Calling": "\u0e42\u0e17\u0e23\u0e40\u0e22\u0e47\u0e19",
+ "Communication HTML": "HTML \u0e01\u0e32\u0e23\u0e2a\u0e37\u0e48\u0e2d\u0e2a\u0e32\u0e23",
+ "Communication History": "\u0e2a\u0e37\u0e48\u0e2d\u0e2a\u0e32\u0e23",
+ "Company": "\u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17",
+ "Contact": "\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d",
+ "Contact Email": "\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e4c",
+ "Contact Info": "\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d",
+ "Contact Person": "Contact Person",
+ "Conversion Rate": "\u0e2d\u0e31\u0e15\u0e23\u0e32\u0e01\u0e32\u0e23\u0e41\u0e1b\u0e25\u0e07",
+ "Currency": "\u0e40\u0e07\u0e34\u0e19\u0e15\u0e23\u0e32",
+ "Customer": "\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Customer Address": "\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e02\u0e2d\u0e07\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Customer Group": "\u0e01\u0e25\u0e38\u0e48\u0e21\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Customer Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Customer's Vendor": "\u0e1c\u0e39\u0e49\u0e02\u0e32\u0e22\u0e02\u0e2d\u0e07\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Customer's currency - If you want to select a currency that is not the default currency, then you must also specify the Currency Conversion Rate.": "\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e02\u0e2d\u0e07\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32 - \u0e2b\u0e32\u0e01\u0e04\u0e38\u0e13\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e17\u0e35\u0e48\u0e44\u0e21\u0e48\u0e44\u0e14\u0e49\u0e40\u0e1b\u0e47\u0e19\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19\u0e41\u0e25\u0e49\u0e27\u0e04\u0e38\u0e13\u0e08\u0e30\u0e15\u0e49\u0e2d\u0e07\u0e23\u0e30\u0e1a\u0e38\u0e2d\u0e31\u0e15\u0e23\u0e32\u0e01\u0e32\u0e23\u0e41\u0e1b\u0e25\u0e07\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19",
+ "Draft": "\u0e23\u0e48\u0e32\u0e07",
+ "Exhibition": "\u0e07\u0e32\u0e19\u0e21\u0e2b\u0e01\u0e23\u0e23\u0e21",
+ "Existing Customer": "\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32\u0e17\u0e35\u0e48\u0e21\u0e35\u0e2d\u0e22\u0e39\u0e48",
+ "File List": "\u0e23\u0e32\u0e22\u0e0a\u0e37\u0e48\u0e2d\u0e44\u0e1f\u0e25\u0e4c",
+ "Filling in additional information about the Quotation will help you analyze your data better.": "\u0e01\u0e23\u0e2d\u0e01\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21\u0e40\u0e01\u0e35\u0e48\u0e22\u0e27\u0e01\u0e31\u0e1a\u0e43\u0e1a\u0e40\u0e2a\u0e19\u0e2d\u0e23\u0e32\u0e04\u0e32\u0e08\u0e30\u0e0a\u0e48\u0e27\u0e22\u0e43\u0e2b\u0e49\u0e04\u0e38\u0e13\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e27\u0e34\u0e40\u0e04\u0e23\u0e32\u0e30\u0e2b\u0e4c\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13\u0e14\u0e35\u0e02\u0e36\u0e49\u0e19",
+ "Fiscal Year": "\u0e1b\u0e35\u0e07\u0e1a\u0e1b\u0e23\u0e30\u0e21\u0e32\u0e13",
+ "Get Taxes and Charges": "\u0e23\u0e31\u0e1a\u0e20\u0e32\u0e29\u0e35\u0e41\u0e25\u0e30\u0e04\u0e48\u0e32\u0e18\u0e23\u0e23\u0e21\u0e40\u0e19\u0e35\u0e22\u0e21",
+ "Get Terms and Conditions": "\u0e23\u0e31\u0e1a\u0e02\u0e49\u0e2d\u0e15\u0e01\u0e25\u0e07\u0e41\u0e25\u0e30\u0e40\u0e07\u0e37\u0e48\u0e2d\u0e19\u0e44\u0e02",
+ "Grand Total": "\u0e23\u0e27\u0e21\u0e17\u0e31\u0e49\u0e07\u0e2a\u0e34\u0e49\u0e19",
+ "Grand Total*": "* \u0e41\u0e01\u0e23\u0e19\u0e14\u0e4c\u0e23\u0e27\u0e21",
+ "In Words": "\u0e43\u0e19\u0e04\u0e33\u0e1e\u0e39\u0e14\u0e02\u0e2d\u0e07",
+ "In Words will be visible once you save the Quotation.": "\u0e43\u0e19\u0e04\u0e33\u0e1e\u0e39\u0e14\u0e02\u0e2d\u0e07\u0e08\u0e30\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e21\u0e2d\u0e07\u0e40\u0e2b\u0e47\u0e19\u0e44\u0e14\u0e49\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e04\u0e38\u0e13\u0e1a\u0e31\u0e19\u0e17\u0e36\u0e01\u0e43\u0e1a\u0e40\u0e2a\u0e19\u0e2d\u0e23\u0e32\u0e04\u0e32",
+ "Items": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23",
+ "Keep a track on communications regarding this Quotation. This will help you remember earlier communications in case the Customer comes back again": "\u0e15\u0e34\u0e14\u0e15\u0e32\u0e21\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e40\u0e01\u0e35\u0e48\u0e22\u0e27\u0e01\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e2a\u0e37\u0e48\u0e2d\u0e2a\u0e32\u0e23\u0e17\u0e35\u0e48\u0e40\u0e01\u0e35\u0e48\u0e22\u0e27\u0e02\u0e49\u0e2d\u0e07\u0e01\u0e31\u0e1a\u0e43\u0e1a\u0e40\u0e2a\u0e19\u0e2d\u0e23\u0e32\u0e04\u0e32\u0e19\u0e35\u0e49 \u0e19\u0e35\u0e49\u0e08\u0e30\u0e0a\u0e48\u0e27\u0e22\u0e43\u0e2b\u0e49\u0e04\u0e38\u0e13\u0e08\u0e33\u0e44\u0e27\u0e49\u0e01\u0e48\u0e2d\u0e19\u0e2b\u0e19\u0e49\u0e32\u0e19\u0e35\u0e49\u0e01\u0e32\u0e23\u0e2a\u0e37\u0e48\u0e2d\u0e2a\u0e32\u0e23\u0e43\u0e19\u0e01\u0e23\u0e13\u0e35\u0e17\u0e35\u0e48\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32\u0e01\u0e25\u0e31\u0e1a\u0e21\u0e32\u0e2d\u0e35\u0e01\u0e04\u0e23\u0e31\u0e49\u0e07",
+ "Lead": "\u0e19\u0e33",
+ "Lead Name": "\u0e19\u0e33\u0e0a\u0e37\u0e48\u0e2d",
+ "Letter Head": "\u0e2b\u0e31\u0e27\u0e08\u0e14\u0e2b\u0e21\u0e32\u0e22",
+ "Maintenance": "\u0e01\u0e32\u0e23\u0e1a\u0e33\u0e23\u0e38\u0e07\u0e23\u0e31\u0e01\u0e29\u0e32",
+ "Mass Mailing": "\u0e08\u0e14\u0e2b\u0e21\u0e32\u0e22\u0e21\u0e27\u0e25",
+ "Mobile No": "\u0e21\u0e37\u0e2d\u0e16\u0e37\u0e2d\u0e44\u0e21\u0e48\u0e21\u0e35",
+ "More Info": "\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21",
+ "Naming Series": "\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e0a\u0e37\u0e48\u0e2d\u0e0b\u0e35\u0e23\u0e35\u0e2a\u0e4c",
+ "Net Total*": "* \u0e2a\u0e38\u0e17\u0e18\u0e34",
+ "Opportunity Item": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e42\u0e2d\u0e01\u0e32\u0e2a",
+ "Opportunity No": "\u0e44\u0e21\u0e48\u0e21\u0e35\u0e42\u0e2d\u0e01\u0e32\u0e2a\u0e17\u0e35\u0e48",
+ "Order Confirmed": "\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e22\u0e37\u0e19\u0e22\u0e31\u0e19",
+ "Order Lost": "\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e17\u0e35\u0e48\u0e2b\u0e32\u0e22\u0e44\u0e1b",
+ "Order Type": "\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d",
+ "Organization": "\u0e2d\u0e07\u0e04\u0e4c\u0e01\u0e23",
+ "Price List": "\u0e1a\u0e31\u0e0d\u0e0a\u0e35\u0e41\u0e08\u0e49\u0e07\u0e23\u0e32\u0e04\u0e32\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Price List Currency": "\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e23\u0e32\u0e04\u0e32",
+ "Price List Currency Conversion Rate": "\u0e23\u0e32\u0e22\u0e0a\u0e37\u0e48\u0e2d\u0e23\u0e32\u0e04\u0e32\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e2d\u0e31\u0e15\u0e23\u0e32\u0e01\u0e32\u0e23\u0e41\u0e1b\u0e25\u0e07",
+ "Price List and Currency": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e23\u0e32\u0e04\u0e32\u0e41\u0e25\u0e30\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19",
+ "Pull Opportunity Detail": "\u0e14\u0e36\u0e07\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e42\u0e2d\u0e01\u0e32\u0e2a",
+ "QTN": "QTN",
+ "Quotation": "\u0e43\u0e1a\u0e40\u0e2a\u0e19\u0e2d\u0e23\u0e32\u0e04\u0e32",
+ "Quotation Date": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e43\u0e1a\u0e40\u0e2a\u0e19\u0e2d\u0e23\u0e32\u0e04\u0e32",
+ "Quotation Items": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e43\u0e1a\u0e40\u0e2a\u0e19\u0e2d\u0e23\u0e32\u0e04\u0e32",
+ "Quotation Lost Reason": "\u0e43\u0e1a\u0e40\u0e2a\u0e19\u0e2d\u0e23\u0e32\u0e04\u0e32 Lost \u0e40\u0e2b\u0e15\u0e38\u0e1c\u0e25",
+ "Quotation To": "\u0e43\u0e1a\u0e40\u0e2a\u0e19\u0e2d\u0e23\u0e32\u0e04\u0e32\u0e40\u0e1e\u0e37\u0e48\u0e2d",
+ "Rate at which Price list currency is converted to company's base currency": "\u0e2d\u0e31\u0e15\u0e23\u0e32\u0e17\u0e35\u0e48\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e23\u0e32\u0e04\u0e32\u0e08\u0e30\u0e16\u0e39\u0e01\u0e41\u0e1b\u0e25\u0e07\u0e40\u0e1b\u0e47\u0e19\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e2b\u0e25\u0e31\u0e01\u0e02\u0e2d\u0e07 \u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17",
+ "Rate at which customer's currency is converted to company's base currency": "\u0e2d\u0e31\u0e15\u0e23\u0e32\u0e17\u0e35\u0e48\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e02\u0e2d\u0e07\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32\u0e08\u0e30\u0e16\u0e39\u0e01\u0e41\u0e1b\u0e25\u0e07\u0e40\u0e1b\u0e47\u0e19\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e2b\u0e25\u0e31\u0e01\u0e02\u0e2d\u0e07 \u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17",
+ "Re-Calculate Values": "\u0e04\u0e48\u0e32\u0e04\u0e33\u0e19\u0e27\u0e13\u0e43\u0e2b\u0e21\u0e48",
+ "Reference": "\u0e01\u0e32\u0e23\u0e2d\u0e49\u0e32\u0e07\u0e2d\u0e34\u0e07",
+ "Rounded Total": "\u0e23\u0e27\u0e21\u0e01\u0e25\u0e21",
+ "Sales": "\u0e02\u0e32\u0e22",
+ "Sales Taxes and Charges": "\u0e20\u0e32\u0e29\u0e35\u0e01\u0e32\u0e23\u0e02\u0e32\u0e22\u0e41\u0e25\u0e30\u0e04\u0e48\u0e32\u0e43\u0e0a\u0e49\u0e08\u0e48\u0e32\u0e22",
+ "Select Print Heading": "\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e1e\u0e34\u0e21\u0e1e\u0e4c\u0e2b\u0e31\u0e27\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07",
+ "Select Terms and Conditions": "\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e02\u0e49\u0e2d\u0e15\u0e01\u0e25\u0e07\u0e41\u0e25\u0e30\u0e40\u0e07\u0e37\u0e48\u0e2d\u0e19\u0e44\u0e02",
+ "Select the currency in which price list is maintained": "\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e17\u0e35\u0e48\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e23\u0e32\u0e04\u0e32\u0e08\u0e30\u0e22\u0e31\u0e07\u0e04\u0e07",
+ "Select the price list as entered in \"Price List\" master. This will pull the reference rates of items against this price list as specified in \"Item\" master.": "\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e23\u0e32\u0e04\u0e32\u0e15\u0e32\u0e21\u0e17\u0e35\u0e48\u0e1b\u0e49\u0e2d\u0e19\u0e43\u0e19 "\u0e23\u0e32\u0e04\u0e32\u0e15\u0e32\u0e21\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23" \u0e15\u0e49\u0e19\u0e41\u0e1a\u0e1a \u0e19\u0e35\u0e49\u0e08\u0e30\u0e14\u0e36\u0e07\u0e2d\u0e31\u0e15\u0e23\u0e32\u0e41\u0e25\u0e01\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e2d\u0e49\u0e32\u0e07\u0e2d\u0e34\u0e07\u0e02\u0e2d\u0e07\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e01\u0e31\u0e1a\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e23\u0e32\u0e04\u0e32\u0e19\u0e35\u0e49\u0e15\u0e32\u0e21\u0e17\u0e35\u0e48\u0e23\u0e30\u0e1a\u0e38\u0e44\u0e27\u0e49\u0e43\u0e19 "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23" \u0e15\u0e49\u0e19\u0e41\u0e1a\u0e1a",
+ "Select the relevant company name if you have multiple companies.": "\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e0a\u0e37\u0e48\u0e2d \u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17 \u0e17\u0e35\u0e48\u0e40\u0e01\u0e35\u0e48\u0e22\u0e27\u0e02\u0e49\u0e2d\u0e07\u0e16\u0e49\u0e32\u0e04\u0e38\u0e13\u0e21\u0e35\u0e2b\u0e25\u0e32\u0e22 \u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17",
+ "Selling": "\u0e02\u0e32\u0e22",
+ "Source": "\u0e41\u0e2b\u0e25\u0e48\u0e07",
+ "Status": "\u0e2a\u0e16\u0e32\u0e19\u0e30",
+ "Submitted": "Submitted",
+ "Supplier Reference": "\u0e2d\u0e49\u0e32\u0e07\u0e2d\u0e34\u0e07\u0e08\u0e33\u0e2b\u0e19\u0e48\u0e32\u0e22",
+ "Taxes": "\u0e20\u0e32\u0e29\u0e35",
+ "Taxes and Charges Calculation": "\u0e20\u0e32\u0e29\u0e35\u0e41\u0e25\u0e30\u0e01\u0e32\u0e23\u0e04\u0e33\u0e19\u0e27\u0e13\u0e04\u0e48\u0e32\u0e43\u0e0a\u0e49\u0e08\u0e48\u0e32\u0e22",
+ "Taxes and Charges Total*": "\u0e20\u0e32\u0e29\u0e35\u0e41\u0e25\u0e30\u0e04\u0e48\u0e32\u0e1a\u0e23\u0e34\u0e01\u0e32\u0e23\u0e23\u0e27\u0e21 *",
+ "Term Details": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e04\u0e33",
+ "Terms and Conditions": "\u0e02\u0e49\u0e2d\u0e15\u0e01\u0e25\u0e07\u0e41\u0e25\u0e30\u0e40\u0e07\u0e37\u0e48\u0e2d\u0e19\u0e44\u0e02",
+ "Terms and Conditions HTML": "\u0e02\u0e49\u0e2d\u0e15\u0e01\u0e25\u0e07\u0e41\u0e25\u0e30\u0e40\u0e07\u0e37\u0e48\u0e2d\u0e19\u0e44\u0e02 HTML",
+ "Territory": "\u0e2d\u0e32\u0e13\u0e32\u0e40\u0e02\u0e15",
+ "The date at which current entry is corrected in the system.": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e17\u0e35\u0e48\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e1b\u0e31\u0e08\u0e08\u0e38\u0e1a\u0e31\u0e19\u0e21\u0e35\u0e01\u0e32\u0e23\u0e41\u0e01\u0e49\u0e44\u0e02\u0e43\u0e19\u0e23\u0e30\u0e1a\u0e1a",
+ "The date at which current entry is made in system.": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e17\u0e35\u0e48\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e1b\u0e31\u0e08\u0e08\u0e38\u0e1a\u0e31\u0e19\u0e08\u0e30\u0e17\u0e33\u0e43\u0e19\u0e23\u0e30\u0e1a\u0e1a",
+ "To create Quotation against Opportunity, Select Opportunity No. and click on 'Pull Opportunity Details' ": "\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e43\u0e1a\u0e40\u0e2a\u0e19\u0e2d\u0e23\u0e32\u0e04\u0e32\u0e01\u0e31\u0e1a\u0e42\u0e2d\u0e01\u0e32\u0e2a\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e25\u0e02\u0e42\u0e2d\u0e01\u0e32\u0e2a\u0e41\u0e25\u0e30\u0e04\u0e25\u0e34\u0e01\u0e17\u0e35\u0e48 '\u0e14\u0e36\u0e07\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e42\u0e2d\u0e01\u0e32\u0e2a'",
+ "To manage multiple series please go to Setup > Manage Series": "\u0e43\u0e19\u0e01\u0e32\u0e23\u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e01\u0e31\u0e1a\u0e2b\u0e25\u0e32\u0e22\u0e0a\u0e38\u0e14\u0e42\u0e1b\u0e23\u0e14\u0e44\u0e1b\u0e17\u0e35\u0e48\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32> \u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e41\u0e1a\u0e1a",
+ "Totals": "\u0e1c\u0e25\u0e23\u0e27\u0e21",
+ "Will be fetched from Customer": "\u0e08\u0e30\u0e16\u0e39\u0e01\u0e40\u0e23\u0e35\u0e22\u0e01\u0e08\u0e32\u0e01\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32"
+}
\ No newline at end of file
diff --git a/selling/doctype/quotation_item/locale/_messages_doc.json b/selling/doctype/quotation_item/locale/_messages_doc.json
index 35bf28658d6..61495357b37 100644
--- a/selling/doctype/quotation_item/locale/_messages_doc.json
+++ b/selling/doctype/quotation_item/locale/_messages_doc.json
@@ -1,23 +1,23 @@
[
- "Item Tax Rate",
"Item Name",
- "Description",
- "Basic Rate*",
- "Quotation Item",
- "Brand",
- "Amount",
- "Amount*",
- "Price List Rate*",
- "Rate",
+ "UOM",
+ "Item Tax Rate",
"Selling",
- "Item Group",
- "Page Break",
+ "Description",
+ "Brand",
+ "Quantity",
+ "Discount (%)",
"Customer's Item Code",
"Against Docname",
- "Against Doctype",
- "Price List Rate",
- "Discount (%)",
+ "Amount*",
+ "Amount",
+ "Item Group",
"Item Code",
- "UOM",
- "Quantity"
+ "Price List Rate*",
+ "Quotation Item",
+ "Basic Rate*",
+ "Rate",
+ "Against Doctype",
+ "Page Break",
+ "Price List Rate"
]
\ No newline at end of file
diff --git a/selling/doctype/quotation_item/locale/de-doc.json b/selling/doctype/quotation_item/locale/de-doc.json
new file mode 100644
index 00000000000..195411ce797
--- /dev/null
+++ b/selling/doctype/quotation_item/locale/de-doc.json
@@ -0,0 +1,23 @@
+{
+ "Against Docname": "Vor DocName",
+ "Against Doctype": "Vor Doctype",
+ "Amount": "Menge",
+ "Amount*": "Betrag *",
+ "Basic Rate*": "Basic Rate *",
+ "Brand": "Marke",
+ "Customer's Item Code": "Kunden Item Code",
+ "Description": "Beschreibung",
+ "Discount (%)": "Rabatt (%)",
+ "Item Code": "Item Code",
+ "Item Group": "Artikel-Gruppe",
+ "Item Name": "Item Name",
+ "Item Tax Rate": "Artikel Tax Rate",
+ "Page Break": "Seitenwechsel",
+ "Price List Rate": "Preis List",
+ "Price List Rate*": "Preis List *",
+ "Quantity": "Menge",
+ "Quotation Item": "Zitat Artikel",
+ "Rate": "Rate",
+ "Selling": "Verkauf",
+ "UOM": "UOM"
+}
\ No newline at end of file
diff --git a/selling/doctype/quotation_item/locale/pt-BR-doc.json b/selling/doctype/quotation_item/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..e7763abedd3
--- /dev/null
+++ b/selling/doctype/quotation_item/locale/pt-BR-doc.json
@@ -0,0 +1,23 @@
+{
+ "Against Docname": "Contra Docname",
+ "Against Doctype": "Contra Doctype",
+ "Amount": "Quantidade",
+ "Amount*": "Quantidade*",
+ "Basic Rate*": "Taxa B\u00e1sica*",
+ "Brand": "Marca",
+ "Customer's Item Code": "C\u00f3digo do Item do Cliente",
+ "Description": "Descri\u00e7\u00e3o",
+ "Discount (%)": "Desconto (%)",
+ "Item Code": "C\u00f3digo do Item",
+ "Item Group": "Grupo de Itens",
+ "Item Name": "Nome do Item",
+ "Item Tax Rate": "Taxa de Imposto do Item",
+ "Page Break": "Quebra de p\u00e1gina",
+ "Price List Rate": "Taxa de Lista de Pre\u00e7os",
+ "Price List Rate*": "Taxa de Lista de Pre\u00e7os*",
+ "Quantity": "Quantidade",
+ "Quotation Item": "Item da Cota\u00e7\u00e3o",
+ "Rate": "Taxa",
+ "Selling": "Vendas",
+ "UOM": "UDM"
+}
\ No newline at end of file
diff --git a/selling/doctype/quotation_item/locale/th-doc.json b/selling/doctype/quotation_item/locale/th-doc.json
new file mode 100644
index 00000000000..7f4c0c99902
--- /dev/null
+++ b/selling/doctype/quotation_item/locale/th-doc.json
@@ -0,0 +1,23 @@
+{
+ "Against Docname": "\u0e01\u0e31\u0e1a Docname",
+ "Against Doctype": "\u0e01\u0e31\u0e1a Doctype",
+ "Amount": "\u0e08\u0e33\u0e19\u0e27\u0e19",
+ "Amount*": "* \u0e08\u0e33\u0e19\u0e27\u0e19\u0e40\u0e07\u0e34\u0e19",
+ "Basic Rate*": "* \u0e2d\u0e31\u0e15\u0e23\u0e32\u0e02\u0e31\u0e49\u0e19\u0e1e\u0e37\u0e49\u0e19\u0e10\u0e32\u0e19",
+ "Brand": "\u0e22\u0e35\u0e48\u0e2b\u0e49\u0e2d",
+ "Customer's Item Code": "\u0e23\u0e2b\u0e31\u0e2a\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e02\u0e2d\u0e07\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Description": "\u0e25\u0e31\u0e01\u0e29\u0e13\u0e30",
+ "Discount (%)": "\u0e2a\u0e48\u0e27\u0e19\u0e25\u0e14 (%)",
+ "Item Code": "\u0e23\u0e2b\u0e31\u0e2a\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Item Group": "\u0e01\u0e25\u0e38\u0e48\u0e21\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Item Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23",
+ "Item Tax Rate": "\u0e2d\u0e31\u0e15\u0e23\u0e32\u0e20\u0e32\u0e29\u0e35\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Page Break": "\u0e41\u0e1a\u0e48\u0e07\u0e2b\u0e19\u0e49\u0e32",
+ "Price List Rate": "\u0e2d\u0e31\u0e15\u0e23\u0e32\u0e23\u0e32\u0e04\u0e32\u0e15\u0e32\u0e21\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23",
+ "Price List Rate*": "\u0e23\u0e32\u0e04\u0e32 * \u0e2d\u0e31\u0e15\u0e23\u0e32\u0e23\u0e32\u0e22\u0e0a\u0e37\u0e48\u0e2d",
+ "Quantity": "\u0e1b\u0e23\u0e34\u0e21\u0e32\u0e13",
+ "Quotation Item": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e43\u0e1a\u0e40\u0e2a\u0e19\u0e2d\u0e23\u0e32\u0e04\u0e32",
+ "Rate": "\u0e2d\u0e31\u0e15\u0e23\u0e32",
+ "Selling": "\u0e02\u0e32\u0e22",
+ "UOM": "UOM"
+}
\ No newline at end of file
diff --git a/selling/doctype/sales_and_purchase_return_item/locale/de-doc.json b/selling/doctype/sales_and_purchase_return_item/locale/de-doc.json
new file mode 100644
index 00000000000..bfcbf4e9ea4
--- /dev/null
+++ b/selling/doctype/sales_and_purchase_return_item/locale/de-doc.json
@@ -0,0 +1,13 @@
+{
+ "Batch No": "Batch No",
+ "Description": "Beschreibung",
+ "Detail Name": "Detail Name",
+ "Item Code": "Item Code",
+ "Qty": "Menge",
+ "Rate": "Rate",
+ "Returned Qty": "Kehrte Menge",
+ "Sales and Purchase Return Item": "Sales and Purchase Zur\u00fcck Artikel",
+ "Selling": "Verkauf",
+ "Serial No": "Serial In",
+ "UOM": "UOM"
+}
\ No newline at end of file
diff --git a/selling/doctype/sales_and_purchase_return_item/locale/pt-BR-doc.json b/selling/doctype/sales_and_purchase_return_item/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..3cc5b3441ef
--- /dev/null
+++ b/selling/doctype/sales_and_purchase_return_item/locale/pt-BR-doc.json
@@ -0,0 +1,13 @@
+{
+ "Batch No": "N\u00ba do Lote",
+ "Description": "Descri\u00e7\u00e3o",
+ "Detail Name": "Nome do Detalhe",
+ "Item Code": "C\u00f3digo do Item",
+ "Qty": "Qtde.",
+ "Rate": "Taxa",
+ "Returned Qty": "Qtde. retornada",
+ "Sales and Purchase Return Item": "Item de retorno de compra e venda",
+ "Selling": "Vendas",
+ "Serial No": "N\u00ba de S\u00e9rie",
+ "UOM": "UDM"
+}
\ No newline at end of file
diff --git a/selling/doctype/sales_and_purchase_return_item/locale/th-doc.json b/selling/doctype/sales_and_purchase_return_item/locale/th-doc.json
new file mode 100644
index 00000000000..b47f740a3a1
--- /dev/null
+++ b/selling/doctype/sales_and_purchase_return_item/locale/th-doc.json
@@ -0,0 +1,13 @@
+{
+ "Batch No": "\u0e0a\u0e38\u0e14\u0e44\u0e21\u0e48\u0e21\u0e35",
+ "Description": "\u0e25\u0e31\u0e01\u0e29\u0e13\u0e30",
+ "Detail Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14",
+ "Item Code": "\u0e23\u0e2b\u0e31\u0e2a\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Qty": "\u0e08\u0e33\u0e19\u0e27\u0e19",
+ "Rate": "\u0e2d\u0e31\u0e15\u0e23\u0e32",
+ "Returned Qty": "\u0e08\u0e33\u0e19\u0e27\u0e19\u0e01\u0e25\u0e31\u0e1a",
+ "Sales and Purchase Return Item": "\u0e01\u0e32\u0e23\u0e02\u0e32\u0e22\u0e41\u0e25\u0e30\u0e01\u0e32\u0e23\u0e0b\u0e37\u0e49\u0e2d\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e01\u0e25\u0e31\u0e1a",
+ "Selling": "\u0e02\u0e32\u0e22",
+ "Serial No": "\u0e2d\u0e19\u0e38\u0e01\u0e23\u0e21\u0e44\u0e21\u0e48\u0e21\u0e35",
+ "UOM": "UOM"
+}
\ No newline at end of file
diff --git a/selling/doctype/sales_common/locale/de-doc.json b/selling/doctype/sales_common/locale/de-doc.json
new file mode 100644
index 00000000000..d621e00c05b
--- /dev/null
+++ b/selling/doctype/sales_common/locale/de-doc.json
@@ -0,0 +1,4 @@
+{
+ "Sales Common": "Vertrieb Gemeinsame",
+ "Selling": "Verkauf"
+}
\ No newline at end of file
diff --git a/selling/doctype/sales_common/locale/de-py.json b/selling/doctype/sales_common/locale/de-py.json
new file mode 100644
index 00000000000..30a69ba4567
--- /dev/null
+++ b/selling/doctype/sales_common/locale/de-py.json
@@ -0,0 +1,3 @@
+{
+ "not within Fiscal Year": "nicht innerhalb Gesch\u00e4ftsjahr"
+}
\ No newline at end of file
diff --git a/selling/doctype/sales_common/locale/pt-BR-doc.json b/selling/doctype/sales_common/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..b617cab3f8c
--- /dev/null
+++ b/selling/doctype/sales_common/locale/pt-BR-doc.json
@@ -0,0 +1,4 @@
+{
+ "Sales Common": "Vendas comuns",
+ "Selling": "Vendas"
+}
\ No newline at end of file
diff --git a/selling/doctype/sales_common/locale/pt-BR-py.json b/selling/doctype/sales_common/locale/pt-BR-py.json
new file mode 100644
index 00000000000..ef1ccd43f0c
--- /dev/null
+++ b/selling/doctype/sales_common/locale/pt-BR-py.json
@@ -0,0 +1,3 @@
+{
+ "not within Fiscal Year": "n\u00e3o est\u00e1 dentro do Ano Fiscal"
+}
\ No newline at end of file
diff --git a/selling/doctype/sales_common/locale/th-doc.json b/selling/doctype/sales_common/locale/th-doc.json
new file mode 100644
index 00000000000..c21ef9e9fa2
--- /dev/null
+++ b/selling/doctype/sales_common/locale/th-doc.json
@@ -0,0 +1,4 @@
+{
+ "Sales Common": "\u0e02\u0e32\u0e22\u0e17\u0e31\u0e48\u0e27\u0e44\u0e1b",
+ "Selling": "\u0e02\u0e32\u0e22"
+}
\ No newline at end of file
diff --git a/selling/doctype/sales_common/locale/th-py.json b/selling/doctype/sales_common/locale/th-py.json
new file mode 100644
index 00000000000..23de80b99c5
--- /dev/null
+++ b/selling/doctype/sales_common/locale/th-py.json
@@ -0,0 +1,3 @@
+{
+ "not within Fiscal Year": "\u0e44\u0e21\u0e48\u0e44\u0e14\u0e49\u0e2d\u0e22\u0e39\u0e48\u0e43\u0e19\u0e1b\u0e35\u0e07\u0e1a\u0e1b\u0e23\u0e30\u0e21\u0e32\u0e13"
+}
\ No newline at end of file
diff --git a/selling/doctype/sales_common/sales_common.py b/selling/doctype/sales_common/sales_common.py
index 797462a8534..47d139f9553 100644
--- a/selling/doctype/sales_common/sales_common.py
+++ b/selling/doctype/sales_common/sales_common.py
@@ -384,36 +384,38 @@ class DocType(TransactionBase):
def get_item_list(self, obj, is_stopped=0):
"""get item list"""
il = []
- for d in getlist(obj.doclist,obj.fname):
- reserved_wh, reserved_qty = '', 0 # used for delivery note
- qty = flt(d.qty)
- if is_stopped:
- qty = flt(d.qty) > flt(d.delivered_qty) and flt(flt(d.qty) - flt(d.delivered_qty)) or 0
+ for d in getlist(obj.doclist, obj.fname):
+ reserved_warehouse = ""
+ reserved_qty_for_main_item = 0
+
+ if obj.doc.doctype == "Sales Order":
+ reserved_warehouse = d.reserved_warehouse
+ if flt(d.qty) > flt(d.delivered_qty):
+ reserved_qty_for_main_item = flt(d.qty) - flt(d.delivered_qty)
- if d.prevdoc_doctype == 'Sales Order':
- # used in delivery note to reduce reserved_qty
- # Eg.: if SO qty is 10 and there is tolerance of 20%, then it will allow DN of 12.
- # But in this case reserved qty should only be reduced by 10 and not 12.
+ if obj.doc.doctype == "Delivery Note" and d.prevdoc_doctype == 'Sales Order':
+ # if SO qty is 10 and there is tolerance of 20%, then it will allow DN of 12.
+ # But in this case reserved qty should only be reduced by 10 and not 12
+
+ already_delivered_qty = self.get_already_delivered_qty(obj.doc.name,
+ d.prevdoc_docname, d.prevdoc_detail_docname)
+ so_qty, reserved_warehouse = self.get_so_qty_and_warehouse(d.prevdoc_detail_docname)
+
+ if already_delivered_qty + d.qty > so_qty:
+ reserved_qty_for_main_item = -(so_qty - already_delivered_qty)
+ else:
+ reserved_qty_for_main_item = -flt(d.qty)
- tot_qty, max_qty, tot_amt, max_amt, reserved_wh = self.get_curr_and_ref_doc_details(d.doctype, 'prevdoc_detail_docname', d.prevdoc_detail_docname, obj.doc.name, obj.doc.doctype)
- if((flt(tot_qty) + flt(qty) > flt(max_qty))):
- reserved_qty = -(flt(max_qty)-flt(tot_qty))
- else:
- reserved_qty = - flt(qty)
-
- if obj.doc.doctype == 'Sales Order':
- reserved_wh = d.reserved_warehouse
-
if self.has_sales_bom(d.item_code):
for p in getlist(obj.doclist, 'packing_details'):
if p.parent_detail_docname == d.name and p.parent_item == d.item_code:
# the packing details table's qty is already multiplied with parent's qty
il.append({
'warehouse': p.warehouse,
- 'reserved_warehouse': reserved_wh,
+ 'reserved_warehouse': reserved_warehouse,
'item_code': p.item_code,
'qty': flt(p.qty),
- 'reserved_qty': (flt(p.qty)/qty)*(reserved_qty),
+ 'reserved_qty': (flt(p.qty)/flt(d.qty)) * reserved_qty_for_main_item,
'uom': p.uom,
'batch_no': cstr(p.batch_no).strip(),
'serial_no': cstr(p.serial_no).strip(),
@@ -422,10 +424,10 @@ class DocType(TransactionBase):
else:
il.append({
'warehouse': d.warehouse,
- 'reserved_warehouse': reserved_wh,
+ 'reserved_warehouse': reserved_warehouse,
'item_code': d.item_code,
- 'qty': qty,
- 'reserved_qty': reserved_qty,
+ 'qty': d.qty,
+ 'reserved_qty': reserved_qty_for_main_item,
'uom': d.stock_uom,
'batch_no': cstr(d.batch_no).strip(),
'serial_no': cstr(d.serial_no).strip(),
@@ -433,27 +435,20 @@ class DocType(TransactionBase):
})
return il
+ def get_already_delivered_qty(self, dn, so, so_detail):
+ qty = webnotes.conn.sql("""select sum(qty) from `tabDelivery Note Item`
+ where prevdoc_detail_docname = %s and docstatus = 1
+ and prevdoc_doctype = 'Sales Order' and prevdoc_docname = %s
+ and parent != %s""", (so_detail, so, dn))
+ return qty and flt(qty[0][0]) or 0.0
- def get_curr_and_ref_doc_details(self, curr_doctype, ref_tab_fname, ref_tab_dn, curr_parent_name, curr_parent_doctype):
- """ Get qty, amount already billed or delivered against curr line item for current doctype
- For Eg: SO-RV get total qty, amount from SO and also total qty, amount against that SO in RV
- """
- #Get total qty, amt of current doctype (eg RV) except for qty, amt of this transaction
- if curr_parent_doctype == 'Installation Note':
- curr_det = webnotes.conn.sql("select sum(qty) from `tab%s` where %s = '%s' and docstatus = 1 and parent != '%s'"% (curr_doctype, ref_tab_fname, ref_tab_dn, curr_parent_name))
- qty, amt = curr_det and flt(curr_det[0][0]) or 0, 0
- else:
- curr_det = webnotes.conn.sql("select sum(qty), sum(amount) from `tab%s` where %s = '%s' and docstatus = 1 and parent != '%s'"% (curr_doctype, ref_tab_fname, ref_tab_dn, curr_parent_name))
- qty, amt = curr_det and flt(curr_det[0][0]) or 0, curr_det and flt(curr_det[0][1]) or 0
+ def get_so_qty_and_warehouse(self, so_detail):
+ so_item = webnotes.conn.sql("""select qty, reserved_warehouse from `tabSales Order Item`
+ where name = %s and docstatus = 1""", so_detail, as_dict=1)
+ so_qty = so_item and flt(so_item[0]["qty"]) or 0.0
+ so_warehouse = so_item and so_item[0]["reserved_warehouse"] or ""
+ return so_qty, so_warehouse
- # get total qty of ref doctype
- so_det = webnotes.conn.sql("select qty, amount, reserved_warehouse from `tabSales Order Item` where name = '%s' and docstatus = 1"% ref_tab_dn)
- max_qty, max_amt, res_wh = so_det and flt(so_det[0][0]) or 0, so_det and flt(so_det[0][1]) or 0, so_det and cstr(so_det[0][2]) or ''
- return qty, max_qty, amt, max_amt, res_wh
-
-
- # Make Packing List from Sales BOM
- # =======================================================================
def has_sales_bom(self, item_code):
return webnotes.conn.sql("select name from `tabSales BOM` where new_item_code=%s and docstatus != 2", item_code)
diff --git a/selling/doctype/sales_order/locale/_messages_doc.json b/selling/doctype/sales_order/locale/_messages_doc.json
index c42376c82e5..84a3240cb3c 100644
--- a/selling/doctype/sales_order/locale/_messages_doc.json
+++ b/selling/doctype/sales_order/locale/_messages_doc.json
@@ -22,8 +22,8 @@
"Conversion Rate",
"Not Billed",
"Sales Taxes and Charges",
- "Campaign",
"Reference",
+ "Campaign",
"Customer's currency",
"SO/10-11/",
"Sales Order",
diff --git a/selling/doctype/sales_order/locale/de-doc.json b/selling/doctype/sales_order/locale/de-doc.json
new file mode 100644
index 00000000000..04cb6fde1f8
--- /dev/null
+++ b/selling/doctype/sales_order/locale/de-doc.json
@@ -0,0 +1,123 @@
+{
+ "% Delivered": "% Lieferung",
+ "% Amount Billed": "% Rechnungsbetrag",
+ "% of materials billed against this Sales Order": "% Der Materialien gegen diesen Kundenauftrag abgerechnet",
+ "% of materials delivered against this Sales Order": "% Der Materialien gegen diesen Kundenauftrag geliefert",
+ "Address": "Adresse",
+ "Advertisement": "Anzeige",
+ "Amended From": "Ge\u00e4ndert von",
+ "Amendment Date": "\u00c4nderung Datum",
+ "Billed": "Angek\u00fcndigt",
+ "Billing Status": "Billing-Status",
+ "Calculate Taxes and Charges": "Berechnen Sie Steuern und Abgaben",
+ "Campaign": "Kampagne",
+ "Cancel Reason": "Abbrechen Reason",
+ "Cancelled": "Abgesagt",
+ "Category of customer as entered in Customer master": "Kategorie von Kunden, wie in Customer Master eingetragen",
+ "Closed": "Geschlossen",
+ "Cold Calling": "Cold Calling",
+ "Commission Rate": "Kommission bewerten",
+ "Company": "Firma",
+ "Contact": "Kontakt",
+ "Contact Email": "Kontakt per E-Mail",
+ "Contact Info": "Kontakt Info",
+ "Contact Person": "Ansprechpartner",
+ "Conversion Rate": "Conversion Rate",
+ "Currency": "W\u00e4hrung",
+ "Customer": "Kunde",
+ "Customer Address": "Kundenadresse",
+ "Customer Group": "Customer Group",
+ "Customer's Vendor": "Kunden Hersteller",
+ "Customer's currency": "Kunden W\u00e4hrung",
+ "Delivered": "Lieferung",
+ "Delivery Status": "Lieferstatus",
+ "Display all the individual items delivered with the main items": "Alle anzeigen die einzelnen Punkte mit den wichtigsten Liefergegenst\u00e4nde",
+ "Draft": "Entwurf",
+ "Exhibition": "Ausstellung",
+ "Existing Customer": "Bestehende Kunden",
+ "Expected Delivery Date": "Voraussichtlicher Liefertermin",
+ "File List": "Dateiliste",
+ "Filling in additional information about the Sales Order will help you analyze your data better.": "Ausf\u00fcllen zus\u00e4tzliche Informationen \u00fcber das Sales Order wird Ihnen helfen, Ihre Daten analysieren besser.",
+ "Fiscal Year": "Gesch\u00e4ftsjahr",
+ "Get Taxes and Charges": "Holen Steuern und Abgaben",
+ "Get Terms and Conditions": "Holen AGB",
+ "Grand Total (Export)": "Grand Total (Export)",
+ "Grand Total*": "Grand Total *",
+ "In Words": "In Worte",
+ "In Words (Export)": "In Words (Export)",
+ "In Words will be visible once you save the Sales Order.": "In Worte sichtbar sein wird, sobald Sie den Sales Order zu speichern.",
+ "Items": "Artikel",
+ "Letter Head": "Briefkopf",
+ "Maintenance": "Wartung",
+ "Mass Mailing": "Mass Mailing",
+ "Mobile No": "In Mobile",
+ "More Info": "Mehr Info",
+ "Name": "Name",
+ "Name as entered in Sales Partner master": "Eingegebene Name in der Master-Vertriebspartner",
+ "Net Total*": "* Net Total",
+ "Not Applicable": "Nicht zutreffend",
+ "Not Billed": "Nicht Billed",
+ "Not Delivered": "Nicht zugestellt",
+ "Order Type": "Auftragsart",
+ "P.O. Date": "P.O. Datum",
+ "P.O. No": "In P.O.",
+ "PI/2011/": "PI/2011 /",
+ "Packing Details": "Verpackungs-Details",
+ "Packing List": "Packliste",
+ "Partly Billed": "Teilweise Billed",
+ "Partly Delivered": "Teilweise Lieferung",
+ "Price List": "Preisliste",
+ "Price List Currency": "W\u00e4hrung Preisliste",
+ "Price List Currency Conversion Rate": "Preisliste Currency Conversion Rate",
+ "Price List and Currency": "Listenpreis und W\u00e4hrungsrechner",
+ "Project Name": "Project Name",
+ "Pull Quotation Items": "Ziehen Sie Angebotspositionen",
+ "Purchase Order sent by customer": "Bestellung durch den Kunden geschickt",
+ "Quotation Date": "Quotation Datum",
+ "Quotation No": "In Quotation",
+ "Rate at which Price list currency is converted to company's base currency": "Geschwindigkeit, mit der W\u00e4hrung der Preisliste zu Unternehmen der Basisw\u00e4hrung umgewandelt wird",
+ "Rate at which customer's currency is converted to company's base currency": "Rate, mit der Kunden W\u00e4hrung ist an Unternehmen Basisw\u00e4hrung umgerechnet",
+ "Re-Calculate Values": "Neu berechnen Werte",
+ "Reference": "Referenz",
+ "Rounded Total": "Abgerundete insgesamt",
+ "Rounded Total (Export)": "Abgerundete Total (Export)",
+ "SO": "SO",
+ "SO/10-11/": "SO/10-11 /",
+ "SO1112": "SO1112",
+ "Sales": "Vertrieb",
+ "Sales Order": "Sales Order",
+ "Sales Order Date": "Sales Order Datum",
+ "Sales Order Items": "Kundenauftragspositionen",
+ "Sales Partner": "Vertriebspartner",
+ "Sales Taxes and Charges": "Vertrieb Steuern und Abgaben",
+ "Sales Team": "Sales Team",
+ "Sales Team1": "Vertrieb Team1",
+ "Select Customer": "W\u00e4hlen Sie Kunde",
+ "Select Print Heading": "W\u00e4hlen Sie Drucken \u00dcberschrift",
+ "Select Terms and Conditions": "W\u00e4hlen AGB",
+ "Select the currency in which price list is maintained": "W\u00e4hlen Sie die W\u00e4hrung, in der Preisliste wird beibehalten",
+ "Select the price list as entered in \"Price List\" master. This will pull the reference rates of items against this price list as specified in \"Item\" master.": "W\u00e4hlen Sie die Preisliste in der \"Preisliste\" Master eingetragen. Dadurch werden die Referenzkurse Artikel gegen diese Preisliste in der \"Item\" Master vorgegeben ziehen.",
+ "Select the relevant company name if you have multiple companies.": "W\u00e4hlen Sie den entsprechenden Firmennamen, wenn Sie mehrere Unternehmen haben.",
+ "Selling": "Verkauf",
+ "Series": "Serie",
+ "Shipping Address": "Versandadresse",
+ "Shipping Address Name": "Liefer-Adresse Name",
+ "Source": "Quelle",
+ "Status": "Status",
+ "Stopped": "Gestoppt",
+ "Submitted": "Eingereicht",
+ "Supplier Reference": "Lieferant Reference",
+ "Taxes": "Steuern",
+ "Taxes and Charges Calculation": "Steuern und Geb\u00fchren Berechnung",
+ "Taxes and Charges Total*": "Steuern und Geb\u00fchren Total *",
+ "Terms and Conditions": "AGB",
+ "Terms and Conditions Details": "AGB Einzelheiten",
+ "Terms and Conditions HTML": "AGB HTML",
+ "Territory": "Gebiet",
+ "The date at which current entry is corrected in the system.": "Der Zeitpunkt, zu dem aktuellen Eintrag in dem System korrigiert.",
+ "The date at which current entry is made in system.": "Das Datum, an dem aktuellen Eintrag im System hergestellt wird.",
+ "To manage multiple series please go to Setup > Manage Series": "Um mehrere Reihen zu verwalten gehen Sie bitte auf Setup> Verwalten Series",
+ "Total Commission": "Gesamt Kommission",
+ "Totals": "Totals",
+ "Track this Sales Order against any Project": "Verfolgen Sie diesen Kundenauftrag gegen Projekt"
+}
\ No newline at end of file
diff --git a/selling/doctype/sales_order/locale/pt-BR-doc.json b/selling/doctype/sales_order/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..1aab0e64882
--- /dev/null
+++ b/selling/doctype/sales_order/locale/pt-BR-doc.json
@@ -0,0 +1,124 @@
+{
+ "% Delivered": "Entregue %",
+ "% Amount Billed": "Valor faturado %",
+ "% of materials billed against this Sales Order": "% de materiais faturados contra esta Ordem de Venda",
+ "% of materials delivered against this Sales Order": "% de materiais entregues contra esta Ordem de Venda",
+ "Address": "Endere\u00e7o",
+ "Advertisement": "An\u00fancio",
+ "Amended From": "Corrigido De",
+ "Amendment Date": "Data da Corre\u00e7\u00e3o",
+ "Billed": "Faturado",
+ "Billing Status": "Estado do Faturamento",
+ "Calculate Taxes and Charges": "Calcular Impostos e Encargos",
+ "Campaign": "Campanha",
+ "Cancel Reason": "Motivo do Cancelar",
+ "Cancelled": "Cancelado",
+ "Category of customer as entered in Customer master": "Categoria de cliente como no Cadastrado de Cliente",
+ "Closed": "Fechado",
+ "Cold Calling": "Cold Calling",
+ "Commission Rate": "Taxa de Comiss\u00e3o",
+ "Company": "Empresa",
+ "Contact": "Contato",
+ "Contact Email": "E-mail do Contato",
+ "Contact Info": "Informa\u00e7\u00f5es para Contato",
+ "Contact Person": "Pessoa de Contato",
+ "Conversion Rate": "Taxa de Convers\u00e3o",
+ "Currency": "Moeda",
+ "Customer": "Cliente",
+ "Customer Address": "Endere\u00e7o do cliente",
+ "Customer Group": "Grupo de Clientes",
+ "Customer's Vendor": "Vendedor do cliente",
+ "Customer's currency": "Moeda do Cliente",
+ "Delivered": "Entregue",
+ "Delivery Status": "Estado da entrega",
+ "Display all the individual items delivered with the main items": "Exibir todos os itens individuais entregues com os itens principais",
+ "Draft": "Rascunho",
+ "Exhibition": "Exposi\u00e7\u00e3o",
+ "Existing Customer": "Cliente existente",
+ "Expected Delivery Date": "Data de entrega prevista",
+ "File List": "Lista de Arquivos",
+ "Filling in additional information about the Sales Order will help you analyze your data better.": "Preenchimento de informa\u00e7\u00f5es adicionais sobre a Ordem de Venda vai ajudar a analisar melhor seus dados.",
+ "Fiscal Year": "Exerc\u00edcio fiscal",
+ "Get Taxes and Charges": "Obter Impostos e Encargos",
+ "Get Terms and Conditions": "Obter os Termos e Condi\u00e7\u00f5es",
+ "Grand Total (Export)": "Total Geral (Exporta\u00e7\u00e3o)",
+ "Grand Total*": "Total Geral*",
+ "In Words": "Por extenso",
+ "In Words (Export)": "Por extenso (Exporta\u00e7\u00e3o)",
+ "In Words will be visible once you save the Sales Order.": "Por extenso ser\u00e1 vis\u00edvel quando voc\u00ea salvar a Ordem de Venda.",
+ "Items": "Itens",
+ "Letter Head": "Timbrado",
+ "Maintenance": "Manuten\u00e7\u00e3o",
+ "Mass Mailing": "Divulga\u00e7\u00e3o em massa",
+ "Mobile No": "Telefone Celular",
+ "More Info": "Mais informa\u00e7\u00f5es",
+ "Name": "Nome",
+ "Name as entered in Sales Partner master": "Nome como consta no cadastro de Parceiros de Vendas",
+ "Net Total*": "Total L\u00edquido*",
+ "Not Applicable": "N\u00e3o Aplic\u00e1vel",
+ "Not Billed": "N\u00e3o Faturado",
+ "Not Delivered": "N\u00e3o Entregue",
+ "Order Type": "Tipo de Ordem",
+ "P.O. Date": "Data PO",
+ "P.O. No": "N\u00ba PO",
+ "PI/2011/": "PI/2011 /",
+ "Packing Details": "Detalhes da embalagem",
+ "Packing List": "Lista de embalagem",
+ "Partly Billed": "Parcialmente faturado",
+ "Partly Delivered": "Parcialmente entregue",
+ "Price List": "Lista de Pre\u00e7os",
+ "Price List Currency": "Moeda da Lista de Pre\u00e7os",
+ "Price List Currency Conversion Rate": "Taxa de convers\u00e3o da moeda da lista de pre\u00e7os",
+ "Price List and Currency": "Lista de Pre\u00e7os e Moeda",
+ "Project Name": "Nome do Projeto",
+ "Pull Quotation Items": "Puxar Itens da cota\u00e7\u00e3o",
+ "Purchase Order sent by customer": "Ordem de Compra enviada pelo cliente",
+ "Quotation Date": "Data da Cota\u00e7\u00e3o",
+ "Quotation No": "N\u00ba da Cota\u00e7\u00e3o",
+ "Quotation no against which this Sales Order is made ": "N\u00ba da Cota\u00e7\u00e3o contra a qual esta Ordem de Venda \u00e9 feita",
+ "Rate at which Price list currency is converted to company's base currency": "Taxa na qual a moeda da lista de pre\u00e7os \u00e9 convertida para a moeda base da empresa",
+ "Rate at which customer's currency is converted to company's base currency": "Taxa na qual a moeda do cliente \u00e9 convertida para a moeda base da empresa",
+ "Re-Calculate Values": "Re-calcular valores",
+ "Reference": "Refer\u00eancia",
+ "Rounded Total": "Total arredondado",
+ "Rounded Total (Export)": "Total arredondado (Exporta\u00e7\u00e3o)",
+ "SO": "OV",
+ "SO/10-11/": "SO/10-11 /",
+ "SO1112": "SO1112",
+ "Sales": "Vendas",
+ "Sales Order": "Ordem de Venda",
+ "Sales Order Date": "Data da Ordem de Venda",
+ "Sales Order Items": "Itens da Ordem de Venda",
+ "Sales Partner": "Parceiro de Vendas",
+ "Sales Taxes and Charges": "Impostos e Taxas sobre Vendas",
+ "Sales Team": "Equipe de Vendas",
+ "Sales Team1": "Equipe de Vendas",
+ "Select Customer": "Selecione o Cliente",
+ "Select Print Heading": "Selecione o Cabe\u00e7alho de Impress\u00e3o",
+ "Select Terms and Conditions": "Selecione os Termos e Condi\u00e7\u00f5es",
+ "Select the currency in which price list is maintained": "Selecione a moeda na qual a lista de pre\u00e7os \u00e9 mantida",
+ "Select the price list as entered in \"Price List\" master. This will pull the reference rates of items against this price list as specified in \"Item\" master.": "Selecione a lista de pre\u00e7os como cadastrada em "Lista de Pre\u00e7o". Isso vai puxar os valores de refer\u00eancia dos itens contra esta lista de pre\u00e7os, conforme especificado no cadastro "Item".",
+ "Select the relevant company name if you have multiple companies.": "Selecione o nome da empresa em quest\u00e3o, se voc\u00ea tem v\u00e1rias empresas.",
+ "Selling": "Vendas",
+ "Series": "S\u00e9ries",
+ "Shipping Address": "Endere\u00e7o de envio",
+ "Shipping Address Name": "Nome do Endere\u00e7o de envio",
+ "Source": "Fonte",
+ "Status": "Estado",
+ "Stopped": "Parado",
+ "Submitted": "Enviado",
+ "Supplier Reference": "Refer\u00eancia do Fornecedor",
+ "Taxes": "Impostos",
+ "Taxes and Charges Calculation": "C\u00e1lculo de Impostos e Encargos",
+ "Taxes and Charges Total*": "Total de Impostos e Encargos*",
+ "Terms and Conditions": "Termos e Condi\u00e7\u00f5es",
+ "Terms and Conditions Details": "Detalhes dos Termos e Condi\u00e7\u00f5es",
+ "Terms and Conditions HTML": "Termos e Condi\u00e7\u00f5es HTML",
+ "Territory": "Territ\u00f3rio",
+ "The date at which current entry is corrected in the system.": "A data em que o lan\u00e7amento atual \u00e9 corrigido no sistema.",
+ "The date at which current entry is made in system.": "A data em que o lan\u00e7amento atual \u00e9 feito no sistema.",
+ "To manage multiple series please go to Setup > Manage Series": "Para gerenciar v\u00e1rias s\u00e9ries por favor, v\u00e1 para Configura\u00e7\u00e3o > Gerenciar S\u00e9ries",
+ "Total Commission": "Total da Comiss\u00e3o",
+ "Totals": "Totais",
+ "Track this Sales Order against any Project": "Acompanhar este Ordem de Venda contra qualquer projeto"
+}
\ No newline at end of file
diff --git a/selling/doctype/sales_order/locale/th-doc.json b/selling/doctype/sales_order/locale/th-doc.json
new file mode 100644
index 00000000000..c3231c553a1
--- /dev/null
+++ b/selling/doctype/sales_order/locale/th-doc.json
@@ -0,0 +1,124 @@
+{
+ "% Delivered": "\u0e2a\u0e48\u0e07%",
+ "% Amount Billed": "\u0e08\u0e33\u0e19\u0e27\u0e19\u0e40\u0e07\u0e34\u0e19% \u0e08\u0e33\u0e19\u0e27\u0e19",
+ "% of materials billed against this Sales Order": "% \u0e02\u0e2d\u0e07\u0e27\u0e31\u0e2a\u0e14\u0e38\u0e17\u0e35\u0e48\u0e40\u0e23\u0e35\u0e22\u0e01\u0e40\u0e01\u0e47\u0e1a\u0e40\u0e07\u0e34\u0e19\u0e01\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e19\u0e35\u0e49\u0e02\u0e32\u0e22",
+ "% of materials delivered against this Sales Order": "% \u0e02\u0e2d\u0e07\u0e27\u0e31\u0e2a\u0e14\u0e38\u0e17\u0e35\u0e48\u0e2a\u0e48\u0e07\u0e15\u0e48\u0e2d\u0e19\u0e35\u0e49\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e32\u0e22",
+ "Address": "\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48",
+ "Advertisement": "\u0e01\u0e32\u0e23\u0e42\u0e06\u0e29\u0e13\u0e32",
+ "Amended From": "\u0e41\u0e01\u0e49\u0e44\u0e02\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21",
+ "Amendment Date": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e41\u0e01\u0e49\u0e44\u0e02",
+ "Billed": "\u0e40\u0e23\u0e35\u0e22\u0e01\u0e40\u0e01\u0e47\u0e1a\u0e40\u0e07\u0e34\u0e19",
+ "Billing Status": "\u0e2a\u0e16\u0e32\u0e19\u0e30\u0e01\u0e32\u0e23\u0e40\u0e23\u0e35\u0e22\u0e01\u0e40\u0e01\u0e47\u0e1a\u0e40\u0e07\u0e34\u0e19",
+ "Calculate Taxes and Charges": "\u0e04\u0e33\u0e19\u0e27\u0e13\u0e20\u0e32\u0e29\u0e35\u0e41\u0e25\u0e30\u0e04\u0e48\u0e32\u0e1a\u0e23\u0e34\u0e01\u0e32\u0e23",
+ "Campaign": "\u0e23\u0e13\u0e23\u0e07\u0e04\u0e4c",
+ "Cancel Reason": "\u0e22\u0e01\u0e40\u0e25\u0e34\u0e01\u0e40\u0e2b\u0e15\u0e38\u0e1c\u0e25",
+ "Cancelled": "\u0e22\u0e01\u0e40\u0e25\u0e34\u0e01",
+ "Category of customer as entered in Customer master": "\u0e2b\u0e21\u0e27\u0e14\u0e2b\u0e21\u0e39\u0e48\u0e02\u0e2d\u0e07\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32\u0e17\u0e35\u0e48\u0e1b\u0e49\u0e2d\u0e19\u0e44\u0e27\u0e49\u0e43\u0e19\u0e2b\u0e25\u0e31\u0e01\u0e02\u0e2d\u0e07\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Closed": "\u0e1b\u0e34\u0e14",
+ "Cold Calling": "\u0e42\u0e17\u0e23\u0e40\u0e22\u0e47\u0e19",
+ "Commission Rate": "\u0e2d\u0e31\u0e15\u0e23\u0e32\u0e04\u0e48\u0e32\u0e04\u0e2d\u0e21\u0e21\u0e34\u0e0a\u0e0a\u0e31\u0e48\u0e19",
+ "Company": "\u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17",
+ "Contact": "\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d",
+ "Contact Email": "\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e4c",
+ "Contact Info": "\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d",
+ "Contact Person": "Contact Person",
+ "Conversion Rate": "\u0e2d\u0e31\u0e15\u0e23\u0e32\u0e01\u0e32\u0e23\u0e41\u0e1b\u0e25\u0e07",
+ "Currency": "\u0e40\u0e07\u0e34\u0e19\u0e15\u0e23\u0e32",
+ "Customer": "\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Customer Address": "\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e02\u0e2d\u0e07\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Customer Group": "\u0e01\u0e25\u0e38\u0e48\u0e21\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Customer's Vendor": "\u0e1c\u0e39\u0e49\u0e02\u0e32\u0e22\u0e02\u0e2d\u0e07\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Customer's currency": "\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e02\u0e2d\u0e07\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Delivered": "\u0e2a\u0e48\u0e07",
+ "Delivery Status": "\u0e2a\u0e16\u0e32\u0e19\u0e30\u0e01\u0e32\u0e23\u0e08\u0e31\u0e14\u0e2a\u0e48\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Display all the individual items delivered with the main items": "\u0e41\u0e2a\u0e14\u0e07\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14\u0e02\u0e2d\u0e07\u0e41\u0e15\u0e48\u0e25\u0e30\u0e1a\u0e38\u0e04\u0e04\u0e25\u0e21\u0e32\u0e1e\u0e23\u0e49\u0e2d\u0e21\u0e01\u0e31\u0e1a\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e2b\u0e25\u0e31\u0e01",
+ "Draft": "\u0e23\u0e48\u0e32\u0e07",
+ "Exhibition": "\u0e07\u0e32\u0e19\u0e21\u0e2b\u0e01\u0e23\u0e23\u0e21",
+ "Existing Customer": "\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32\u0e17\u0e35\u0e48\u0e21\u0e35\u0e2d\u0e22\u0e39\u0e48",
+ "Expected Delivery Date": "\u0e04\u0e32\u0e14\u0e27\u0e48\u0e32\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e2a\u0e48\u0e07",
+ "File List": "\u0e23\u0e32\u0e22\u0e0a\u0e37\u0e48\u0e2d\u0e44\u0e1f\u0e25\u0e4c",
+ "Filling in additional information about the Sales Order will help you analyze your data better.": "\u0e01\u0e23\u0e2d\u0e01\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21\u0e40\u0e01\u0e35\u0e48\u0e22\u0e27\u0e01\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e01\u0e32\u0e23\u0e02\u0e32\u0e22\u0e08\u0e30\u0e0a\u0e48\u0e27\u0e22\u0e43\u0e2b\u0e49\u0e04\u0e38\u0e13\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e27\u0e34\u0e40\u0e04\u0e23\u0e32\u0e30\u0e2b\u0e4c\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13\u0e14\u0e35\u0e02\u0e36\u0e49\u0e19",
+ "Fiscal Year": "\u0e1b\u0e35\u0e07\u0e1a\u0e1b\u0e23\u0e30\u0e21\u0e32\u0e13",
+ "Get Taxes and Charges": "\u0e23\u0e31\u0e1a\u0e20\u0e32\u0e29\u0e35\u0e41\u0e25\u0e30\u0e04\u0e48\u0e32\u0e18\u0e23\u0e23\u0e21\u0e40\u0e19\u0e35\u0e22\u0e21",
+ "Get Terms and Conditions": "\u0e23\u0e31\u0e1a\u0e02\u0e49\u0e2d\u0e15\u0e01\u0e25\u0e07\u0e41\u0e25\u0e30\u0e40\u0e07\u0e37\u0e48\u0e2d\u0e19\u0e44\u0e02",
+ "Grand Total (Export)": "\u0e41\u0e01\u0e23\u0e19\u0e14\u0e4c\u0e23\u0e27\u0e21 (\u0e2a\u0e48\u0e07\u0e2d\u0e2d\u0e01)",
+ "Grand Total*": "* \u0e41\u0e01\u0e23\u0e19\u0e14\u0e4c\u0e23\u0e27\u0e21",
+ "In Words": "\u0e43\u0e19\u0e04\u0e33\u0e1e\u0e39\u0e14\u0e02\u0e2d\u0e07",
+ "In Words (Export)": "\u0e43\u0e19\u0e04\u0e33\u0e1e\u0e39\u0e14\u0e02\u0e2d\u0e07 (\u0e2a\u0e48\u0e07\u0e2d\u0e2d\u0e01)",
+ "In Words will be visible once you save the Sales Order.": "\u0e43\u0e19\u0e04\u0e33\u0e1e\u0e39\u0e14\u0e02\u0e2d\u0e07\u0e08\u0e30\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e21\u0e2d\u0e07\u0e40\u0e2b\u0e47\u0e19\u0e44\u0e14\u0e49\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e04\u0e38\u0e13\u0e1a\u0e31\u0e19\u0e17\u0e36\u0e01\u0e01\u0e32\u0e23\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e01\u0e32\u0e23\u0e02\u0e32\u0e22",
+ "Items": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23",
+ "Letter Head": "\u0e2b\u0e31\u0e27\u0e08\u0e14\u0e2b\u0e21\u0e32\u0e22",
+ "Maintenance": "\u0e01\u0e32\u0e23\u0e1a\u0e33\u0e23\u0e38\u0e07\u0e23\u0e31\u0e01\u0e29\u0e32",
+ "Mass Mailing": "\u0e08\u0e14\u0e2b\u0e21\u0e32\u0e22\u0e21\u0e27\u0e25",
+ "Mobile No": "\u0e21\u0e37\u0e2d\u0e16\u0e37\u0e2d\u0e44\u0e21\u0e48\u0e21\u0e35",
+ "More Info": "\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21",
+ "Name": "\u0e0a\u0e37\u0e48\u0e2d",
+ "Name as entered in Sales Partner master": "\u0e0a\u0e37\u0e48\u0e2d\u0e17\u0e35\u0e48\u0e1b\u0e49\u0e2d\u0e19\u0e40\u0e1b\u0e47\u0e19\u0e1e\u0e31\u0e19\u0e18\u0e21\u0e34\u0e15\u0e23\u0e43\u0e19\u0e15\u0e49\u0e19\u0e41\u0e1a\u0e1a\u0e01\u0e32\u0e23\u0e02\u0e32\u0e22",
+ "Net Total*": "* \u0e2a\u0e38\u0e17\u0e18\u0e34",
+ "Not Applicable": "\u0e44\u0e21\u0e48\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19",
+ "Not Billed": "\u0e44\u0e21\u0e48\u0e44\u0e14\u0e49\u0e40\u0e23\u0e35\u0e22\u0e01\u0e40\u0e01\u0e47\u0e1a",
+ "Not Delivered": "\u0e44\u0e21\u0e48\u0e44\u0e14\u0e49\u0e2a\u0e48\u0e07",
+ "Order Type": "\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d",
+ "P.O. Date": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48 PO",
+ "P.O. No": "\u0e44\u0e21\u0e48\u0e21\u0e35 PO",
+ "PI/2011/": "PI/2011 /",
+ "Packing Details": "\u0e1a\u0e23\u0e23\u0e08\u0e38\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14",
+ "Packing List": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e1a\u0e23\u0e23\u0e08\u0e38",
+ "Partly Billed": "\u0e08\u0e33\u0e19\u0e27\u0e19\u0e21\u0e32\u0e01\u0e17\u0e35\u0e48\u0e2a\u0e38\u0e14\u0e40\u0e1b\u0e47\u0e19\u0e2a\u0e48\u0e27\u0e19\u0e43\u0e2b\u0e0d\u0e48",
+ "Partly Delivered": "\u0e2a\u0e48\u0e07\u0e1a\u0e32\u0e07\u0e2a\u0e48\u0e27\u0e19",
+ "Price List": "\u0e1a\u0e31\u0e0d\u0e0a\u0e35\u0e41\u0e08\u0e49\u0e07\u0e23\u0e32\u0e04\u0e32\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Price List Currency": "\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e23\u0e32\u0e04\u0e32",
+ "Price List Currency Conversion Rate": "\u0e23\u0e32\u0e22\u0e0a\u0e37\u0e48\u0e2d\u0e23\u0e32\u0e04\u0e32\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e2d\u0e31\u0e15\u0e23\u0e32\u0e01\u0e32\u0e23\u0e41\u0e1b\u0e25\u0e07",
+ "Price List and Currency": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e23\u0e32\u0e04\u0e32\u0e41\u0e25\u0e30\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19",
+ "Project Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e42\u0e04\u0e23\u0e07\u0e01\u0e32\u0e23",
+ "Pull Quotation Items": "\u0e14\u0e36\u0e07\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e43\u0e1a\u0e40\u0e2a\u0e19\u0e2d\u0e23\u0e32\u0e04\u0e32",
+ "Purchase Order sent by customer": "\u0e43\u0e1a\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e17\u0e35\u0e48\u0e2a\u0e48\u0e07\u0e21\u0e32\u0e08\u0e32\u0e01\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Quotation Date": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e43\u0e1a\u0e40\u0e2a\u0e19\u0e2d\u0e23\u0e32\u0e04\u0e32",
+ "Quotation No": "\u0e43\u0e1a\u0e40\u0e2a\u0e19\u0e2d\u0e23\u0e32\u0e04\u0e32\u0e44\u0e21\u0e48\u0e21\u0e35",
+ "Quotation no against which this Sales Order is made ": "\u0e43\u0e1a\u0e40\u0e2a\u0e19\u0e2d\u0e23\u0e32\u0e04\u0e32\u0e01\u0e31\u0e1a\u0e17\u0e35\u0e48\u0e44\u0e21\u0e48\u0e21\u0e35\u0e01\u0e32\u0e23\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e01\u0e32\u0e23\u0e02\u0e32\u0e22\u0e19\u0e35\u0e49\u0e08\u0e30\u0e17\u0e33",
+ "Rate at which Price list currency is converted to company's base currency": "\u0e2d\u0e31\u0e15\u0e23\u0e32\u0e17\u0e35\u0e48\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e23\u0e32\u0e04\u0e32\u0e08\u0e30\u0e16\u0e39\u0e01\u0e41\u0e1b\u0e25\u0e07\u0e40\u0e1b\u0e47\u0e19\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e2b\u0e25\u0e31\u0e01\u0e02\u0e2d\u0e07 \u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17",
+ "Rate at which customer's currency is converted to company's base currency": "\u0e2d\u0e31\u0e15\u0e23\u0e32\u0e17\u0e35\u0e48\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e02\u0e2d\u0e07\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32\u0e08\u0e30\u0e16\u0e39\u0e01\u0e41\u0e1b\u0e25\u0e07\u0e40\u0e1b\u0e47\u0e19\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e2b\u0e25\u0e31\u0e01\u0e02\u0e2d\u0e07 \u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17",
+ "Re-Calculate Values": "\u0e04\u0e48\u0e32\u0e04\u0e33\u0e19\u0e27\u0e13\u0e43\u0e2b\u0e21\u0e48",
+ "Reference": "\u0e01\u0e32\u0e23\u0e2d\u0e49\u0e32\u0e07\u0e2d\u0e34\u0e07",
+ "Rounded Total": "\u0e23\u0e27\u0e21\u0e01\u0e25\u0e21",
+ "Rounded Total (Export)": "\u0e23\u0e27\u0e21\u0e01\u0e25\u0e21 (\u0e2a\u0e48\u0e07\u0e2d\u0e2d\u0e01)",
+ "SO": "\u0e14\u0e31\u0e07\u0e19\u0e31\u0e49\u0e19",
+ "SO/10-11/": "SO/10-11 /",
+ "SO1112": "SO1112",
+ "Sales": "\u0e02\u0e32\u0e22",
+ "Sales Order": "\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e32\u0e22",
+ "Sales Order Date": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e32\u0e22",
+ "Sales Order Items": "\u0e02\u0e32\u0e22\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d",
+ "Sales Partner": "\u0e1e\u0e31\u0e19\u0e18\u0e21\u0e34\u0e15\u0e23\u0e01\u0e32\u0e23\u0e02\u0e32\u0e22",
+ "Sales Taxes and Charges": "\u0e20\u0e32\u0e29\u0e35\u0e01\u0e32\u0e23\u0e02\u0e32\u0e22\u0e41\u0e25\u0e30\u0e04\u0e48\u0e32\u0e43\u0e0a\u0e49\u0e08\u0e48\u0e32\u0e22",
+ "Sales Team": "\u0e17\u0e35\u0e21\u0e02\u0e32\u0e22",
+ "Sales Team1": "\u0e02\u0e32\u0e22 Team1",
+ "Select Customer": "\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Select Print Heading": "\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e1e\u0e34\u0e21\u0e1e\u0e4c\u0e2b\u0e31\u0e27\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07",
+ "Select Terms and Conditions": "\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e02\u0e49\u0e2d\u0e15\u0e01\u0e25\u0e07\u0e41\u0e25\u0e30\u0e40\u0e07\u0e37\u0e48\u0e2d\u0e19\u0e44\u0e02",
+ "Select the currency in which price list is maintained": "\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e17\u0e35\u0e48\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e23\u0e32\u0e04\u0e32\u0e08\u0e30\u0e22\u0e31\u0e07\u0e04\u0e07",
+ "Select the price list as entered in \"Price List\" master. This will pull the reference rates of items against this price list as specified in \"Item\" master.": "\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e23\u0e32\u0e04\u0e32\u0e15\u0e32\u0e21\u0e17\u0e35\u0e48\u0e1b\u0e49\u0e2d\u0e19\u0e43\u0e19 "\u0e23\u0e32\u0e04\u0e32\u0e15\u0e32\u0e21\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23" \u0e15\u0e49\u0e19\u0e41\u0e1a\u0e1a \u0e19\u0e35\u0e49\u0e08\u0e30\u0e14\u0e36\u0e07\u0e2d\u0e31\u0e15\u0e23\u0e32\u0e41\u0e25\u0e01\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e2d\u0e49\u0e32\u0e07\u0e2d\u0e34\u0e07\u0e02\u0e2d\u0e07\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e01\u0e31\u0e1a\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e23\u0e32\u0e04\u0e32\u0e19\u0e35\u0e49\u0e15\u0e32\u0e21\u0e17\u0e35\u0e48\u0e23\u0e30\u0e1a\u0e38\u0e44\u0e27\u0e49\u0e43\u0e19 "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23" \u0e15\u0e49\u0e19\u0e41\u0e1a\u0e1a",
+ "Select the relevant company name if you have multiple companies.": "\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e0a\u0e37\u0e48\u0e2d \u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17 \u0e17\u0e35\u0e48\u0e40\u0e01\u0e35\u0e48\u0e22\u0e27\u0e02\u0e49\u0e2d\u0e07\u0e16\u0e49\u0e32\u0e04\u0e38\u0e13\u0e21\u0e35\u0e2b\u0e25\u0e32\u0e22 \u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17",
+ "Selling": "\u0e02\u0e32\u0e22",
+ "Series": "\u0e0a\u0e38\u0e14",
+ "Shipping Address": "\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e08\u0e31\u0e14\u0e2a\u0e48\u0e07",
+ "Shipping Address Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e08\u0e31\u0e14\u0e2a\u0e48\u0e07",
+ "Source": "\u0e41\u0e2b\u0e25\u0e48\u0e07",
+ "Status": "\u0e2a\u0e16\u0e32\u0e19\u0e30",
+ "Stopped": "\u0e2b\u0e22\u0e38\u0e14",
+ "Submitted": "Submitted",
+ "Supplier Reference": "\u0e2d\u0e49\u0e32\u0e07\u0e2d\u0e34\u0e07\u0e08\u0e33\u0e2b\u0e19\u0e48\u0e32\u0e22",
+ "Taxes": "\u0e20\u0e32\u0e29\u0e35",
+ "Taxes and Charges Calculation": "\u0e20\u0e32\u0e29\u0e35\u0e41\u0e25\u0e30\u0e01\u0e32\u0e23\u0e04\u0e33\u0e19\u0e27\u0e13\u0e04\u0e48\u0e32\u0e43\u0e0a\u0e49\u0e08\u0e48\u0e32\u0e22",
+ "Taxes and Charges Total*": "\u0e20\u0e32\u0e29\u0e35\u0e41\u0e25\u0e30\u0e04\u0e48\u0e32\u0e1a\u0e23\u0e34\u0e01\u0e32\u0e23\u0e23\u0e27\u0e21 *",
+ "Terms and Conditions": "\u0e02\u0e49\u0e2d\u0e15\u0e01\u0e25\u0e07\u0e41\u0e25\u0e30\u0e40\u0e07\u0e37\u0e48\u0e2d\u0e19\u0e44\u0e02",
+ "Terms and Conditions Details": "\u0e02\u0e49\u0e2d\u0e15\u0e01\u0e25\u0e07\u0e41\u0e25\u0e30\u0e40\u0e07\u0e37\u0e48\u0e2d\u0e19\u0e44\u0e02\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14",
+ "Terms and Conditions HTML": "\u0e02\u0e49\u0e2d\u0e15\u0e01\u0e25\u0e07\u0e41\u0e25\u0e30\u0e40\u0e07\u0e37\u0e48\u0e2d\u0e19\u0e44\u0e02 HTML",
+ "Territory": "\u0e2d\u0e32\u0e13\u0e32\u0e40\u0e02\u0e15",
+ "The date at which current entry is corrected in the system.": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e17\u0e35\u0e48\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e1b\u0e31\u0e08\u0e08\u0e38\u0e1a\u0e31\u0e19\u0e21\u0e35\u0e01\u0e32\u0e23\u0e41\u0e01\u0e49\u0e44\u0e02\u0e43\u0e19\u0e23\u0e30\u0e1a\u0e1a",
+ "The date at which current entry is made in system.": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e17\u0e35\u0e48\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e1b\u0e31\u0e08\u0e08\u0e38\u0e1a\u0e31\u0e19\u0e08\u0e30\u0e17\u0e33\u0e43\u0e19\u0e23\u0e30\u0e1a\u0e1a",
+ "To manage multiple series please go to Setup > Manage Series": "\u0e43\u0e19\u0e01\u0e32\u0e23\u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e01\u0e31\u0e1a\u0e2b\u0e25\u0e32\u0e22\u0e0a\u0e38\u0e14\u0e42\u0e1b\u0e23\u0e14\u0e44\u0e1b\u0e17\u0e35\u0e48\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32> \u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e41\u0e1a\u0e1a",
+ "Total Commission": "\u0e04\u0e13\u0e30\u0e01\u0e23\u0e23\u0e21\u0e01\u0e32\u0e23\u0e23\u0e27\u0e21",
+ "Totals": "\u0e1c\u0e25\u0e23\u0e27\u0e21",
+ "Track this Sales Order against any Project": "\u0e15\u0e34\u0e14\u0e15\u0e32\u0e21\u0e19\u0e35\u0e49\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e32\u0e22\u0e01\u0e31\u0e1a\u0e42\u0e04\u0e23\u0e07\u0e01\u0e32\u0e23\u0e43\u0e14 \u0e46"
+}
\ No newline at end of file
diff --git a/selling/doctype/sales_order/sales_order.py b/selling/doctype/sales_order/sales_order.py
index b79a6d64f32..8205afbd447 100644
--- a/selling/doctype/sales_order/sales_order.py
+++ b/selling/doctype/sales_order/sales_order.py
@@ -261,9 +261,7 @@ class DocType(SellingController):
def on_submit(self):
self.check_prev_docstatus()
self.update_stock_ledger(update_stock = 1)
- # update customer's last sales order no.
- sql("""update `tabCustomer` set last_sales_order = '%s', modified = '%s'
- where name = '%s'""" % (self.doc.name, self.doc.modified, self.doc.customer))
+
get_obj('Sales Common').check_credit(self,self.doc.grand_total)
get_obj('Authorization Control').validate_approving_authority(self.doc.doctype, self.doc.grand_total, self)
@@ -320,28 +318,28 @@ class DocType(SellingController):
def stop_sales_order(self):
self.check_modified_date()
- self.update_stock_ledger(update_stock = -1,clear = 1)
+ self.update_stock_ledger(update_stock = -1,is_stopped = 1)
webnotes.conn.set(self.doc, 'status', 'Stopped')
msgprint("""%s: %s has been Stopped. To make transactions against this Sales Order
you need to Unstop it.""" % (self.doc.doctype, self.doc.name))
def unstop_sales_order(self):
self.check_modified_date()
- self.update_stock_ledger(update_stock = 1,clear = 1)
+ self.update_stock_ledger(update_stock = 1,is_stopped = 1)
webnotes.conn.set(self.doc, 'status', 'Submitted')
msgprint("%s: %s has been Unstopped" % (self.doc.doctype, self.doc.name))
- def update_stock_ledger(self, update_stock, clear = 0):
- for d in self.get_item_list(clear):
+ def update_stock_ledger(self, update_stock, is_stopped = 0):
+ for d in self.get_item_list(is_stopped):
if webnotes.conn.get_value("Item", d['item_code'], "is_stock_item") == "Yes":
if not d['reserved_warehouse']:
msgprint("""Please enter Reserved Warehouse for item %s
as it is stock Item""" % d['item_code'], raise_exception=1)
-
+
args = {
"item_code": d['item_code'],
- "reserved_qty": flt(update_stock) * flt(d['qty']),
+ "reserved_qty": flt(update_stock) * flt(d['reserved_qty']),
"posting_date": self.doc.transaction_date,
"voucher_type": self.doc.doctype,
"voucher_no": self.doc.name,
@@ -350,8 +348,8 @@ class DocType(SellingController):
get_obj('Warehouse', d['reserved_warehouse']).update_bin(args)
- def get_item_list(self, clear):
- return get_obj('Sales Common').get_item_list( self, clear)
+ def get_item_list(self, is_stopped):
+ return get_obj('Sales Common').get_item_list( self, is_stopped)
def on_update(self):
pass
\ No newline at end of file
diff --git a/selling/doctype/sales_order/test_sales_order.py b/selling/doctype/sales_order/test_sales_order.py
new file mode 100644
index 00000000000..5d820fe769b
--- /dev/null
+++ b/selling/doctype/sales_order/test_sales_order.py
@@ -0,0 +1,253 @@
+import webnotes
+from webnotes.utils import flt
+import unittest
+
+class TestSalesOrder(unittest.TestCase):
+ def create_so(self, so_doclist = None):
+ if not so_doclist:
+ so_doclist =test_records[0]
+
+ w = webnotes.bean(copy=so_doclist)
+ w.insert()
+ w.submit()
+ return w
+
+ def create_dn_against_so(self, so, delivered_qty=0):
+ from stock.doctype.delivery_note.test_delivery_note import test_records as dn_test_records
+ dn = webnotes.bean(webnotes.copy_doclist(dn_test_records[0]))
+ dn.doclist[1].item_code = so.doclist[1].item_code
+ dn.doclist[1].prevdoc_doctype = "Sales Order"
+ dn.doclist[1].prevdoc_docname = so.doc.name
+ dn.doclist[1].prevdoc_detail_docname = so.doclist[1].name
+ if delivered_qty:
+ dn.doclist[1].qty = delivered_qty
+ dn.insert()
+ dn.submit()
+ return dn
+
+ def get_bin_reserved_qty(self, item_code, warehouse):
+ return flt(webnotes.conn.get_value("Bin", {"item_code": item_code, "warehouse": warehouse},
+ "reserved_qty"))
+
+ def delete_bin(self, item_code, warehouse):
+ bin = webnotes.conn.exists({"doctype": "Bin", "item_code": item_code,
+ "warehouse": warehouse})
+ if bin:
+ webnotes.delete_doc("Bin", bin[0][0])
+
+ def check_reserved_qty(self, item_code, warehouse, qty):
+ bin_reserved_qty = self.get_bin_reserved_qty(item_code, warehouse)
+ self.assertEqual(bin_reserved_qty, qty)
+
+ def test_reserved_qty_for_so(self):
+ # reset bin
+ self.delete_bin(test_records[0][1]["item_code"], test_records[0][1]["reserved_warehouse"])
+
+ # submit
+ so = self.create_so()
+ self.check_reserved_qty(so.doclist[1].item_code, so.doclist[1].reserved_warehouse, 10.0)
+
+ # cancel
+ so.cancel()
+ self.check_reserved_qty(so.doclist[1].item_code, so.doclist[1].reserved_warehouse, 0.0)
+
+
+ def test_reserved_qty_for_partial_delivery(self):
+ # reset bin
+ self.delete_bin(test_records[0][1]["item_code"], test_records[0][1]["reserved_warehouse"])
+
+ # submit so
+ so = self.create_so()
+
+ # allow negative stock
+ webnotes.conn.set_default("allow_negative_stock", 1)
+
+ # submit dn
+ dn = self.create_dn_against_so(so)
+
+ self.check_reserved_qty(so.doclist[1].item_code, so.doclist[1].reserved_warehouse, 6.0)
+
+ # stop so
+ so.load_from_db()
+ so.obj.stop_sales_order()
+ self.check_reserved_qty(so.doclist[1].item_code, so.doclist[1].reserved_warehouse, 0.0)
+
+ # unstop so
+ so.load_from_db()
+ so.obj.unstop_sales_order()
+ self.check_reserved_qty(so.doclist[1].item_code, so.doclist[1].reserved_warehouse, 6.0)
+
+ # cancel dn
+ dn.cancel()
+ self.check_reserved_qty(so.doclist[1].item_code, so.doclist[1].reserved_warehouse, 10.0)
+
+ def test_reserved_qty_for_over_delivery(self):
+ # reset bin
+ self.delete_bin(test_records[0][1]["item_code"], test_records[0][1]["reserved_warehouse"])
+
+ # submit so
+ so = self.create_so()
+
+ # allow negative stock
+ webnotes.conn.set_default("allow_negative_stock", 1)
+
+ # set over-delivery tolerance
+ webnotes.conn.set_value('Item', so.doclist[1].item_code, 'tolerance', 50)
+
+ # submit dn
+ dn = self.create_dn_against_so(so, 15)
+ self.check_reserved_qty(so.doclist[1].item_code, so.doclist[1].reserved_warehouse, 0.0)
+
+ # cancel dn
+ dn.cancel()
+ self.check_reserved_qty(so.doclist[1].item_code, so.doclist[1].reserved_warehouse, 10.0)
+
+ def test_reserved_qty_for_so_with_packing_list(self):
+ from stock.doctype.sales_bom.test_sales_bom import test_records as sbom_test_records
+
+ # change item in test so record
+ test_record = test_records[0][:]
+ test_record[1]["item_code"] = "_Test Sales BOM Item"
+
+ # reset bin
+ self.delete_bin(sbom_test_records[0][1]["item_code"], test_record[1]["reserved_warehouse"])
+ self.delete_bin(sbom_test_records[0][2]["item_code"], test_record[1]["reserved_warehouse"])
+
+ # submit
+ so = self.create_so(test_record)
+
+
+ self.check_reserved_qty(sbom_test_records[0][1]["item_code"],
+ so.doclist[1].reserved_warehouse, 50.0)
+ self.check_reserved_qty(sbom_test_records[0][2]["item_code"],
+ so.doclist[1].reserved_warehouse, 20.0)
+
+ # cancel
+ so.cancel()
+ self.check_reserved_qty(sbom_test_records[0][1]["item_code"],
+ so.doclist[1].reserved_warehouse, 0.0)
+ self.check_reserved_qty(sbom_test_records[0][2]["item_code"],
+ so.doclist[1].reserved_warehouse, 0.0)
+
+ def test_reserved_qty_for_partial_delivery_with_packing_list(self):
+ from stock.doctype.sales_bom.test_sales_bom import test_records as sbom_test_records
+
+ # change item in test so record
+
+ test_record = webnotes.copy_doclist(test_records[0])
+ test_record[1]["item_code"] = "_Test Sales BOM Item"
+
+ # reset bin
+ self.delete_bin(sbom_test_records[0][1]["item_code"], test_record[1]["reserved_warehouse"])
+ self.delete_bin(sbom_test_records[0][2]["item_code"], test_record[1]["reserved_warehouse"])
+
+ # submit
+ so = self.create_so(test_record)
+
+ # allow negative stock
+ webnotes.conn.set_default("allow_negative_stock", 1)
+
+ # submit dn
+ dn = self.create_dn_against_so(so)
+
+ self.check_reserved_qty(sbom_test_records[0][1]["item_code"],
+ so.doclist[1].reserved_warehouse, 30.0)
+ self.check_reserved_qty(sbom_test_records[0][2]["item_code"],
+ so.doclist[1].reserved_warehouse, 12.0)
+
+ # stop so
+ so.load_from_db()
+ so.obj.stop_sales_order()
+
+ self.check_reserved_qty(sbom_test_records[0][1]["item_code"],
+ so.doclist[1].reserved_warehouse, 0.0)
+ self.check_reserved_qty(sbom_test_records[0][2]["item_code"],
+ so.doclist[1].reserved_warehouse, 0.0)
+
+ # unstop so
+ so.load_from_db()
+ so.obj.unstop_sales_order()
+ self.check_reserved_qty(sbom_test_records[0][1]["item_code"],
+ so.doclist[1].reserved_warehouse, 30.0)
+ self.check_reserved_qty(sbom_test_records[0][2]["item_code"],
+ so.doclist[1].reserved_warehouse, 12.0)
+
+ # cancel dn
+ dn.cancel()
+ self.check_reserved_qty(sbom_test_records[0][1]["item_code"],
+ so.doclist[1].reserved_warehouse, 50.0)
+ self.check_reserved_qty(sbom_test_records[0][2]["item_code"],
+ so.doclist[1].reserved_warehouse, 20.0)
+
+ def test_reserved_qty_for_over_delivery_with_packing_list(self):
+ from stock.doctype.sales_bom.test_sales_bom import test_records as sbom_test_records
+
+ # change item in test so record
+ test_record = webnotes.copy_doclist(test_records[0])
+ test_record[1]["item_code"] = "_Test Sales BOM Item"
+
+ # reset bin
+ self.delete_bin(sbom_test_records[0][1]["item_code"], test_record[1]["reserved_warehouse"])
+ self.delete_bin(sbom_test_records[0][2]["item_code"], test_record[1]["reserved_warehouse"])
+
+ # submit
+ so = self.create_so(test_record)
+
+ # allow negative stock
+ webnotes.conn.set_default("allow_negative_stock", 1)
+
+ # set over-delivery tolerance
+ webnotes.conn.set_value('Item', so.doclist[1].item_code, 'tolerance', 50)
+
+ # submit dn
+ dn = self.create_dn_against_so(so, 15)
+
+ self.check_reserved_qty(sbom_test_records[0][1]["item_code"],
+ so.doclist[1].reserved_warehouse, 0.0)
+ self.check_reserved_qty(sbom_test_records[0][2]["item_code"],
+ so.doclist[1].reserved_warehouse, 0.0)
+
+ # cancel dn
+ dn.cancel()
+ self.check_reserved_qty(sbom_test_records[0][1]["item_code"],
+ so.doclist[1].reserved_warehouse, 50.0)
+ self.check_reserved_qty(sbom_test_records[0][2]["item_code"],
+ so.doclist[1].reserved_warehouse, 20.0)
+
+test_dependencies = ["Sales BOM"]
+
+test_records = [
+ [
+ {
+ "company": "_Test Company",
+ "conversion_rate": 1.0,
+ "currency": "INR",
+ "customer": "_Test Customer",
+ "customer_name": "_Test Customer",
+ "customer_group": "_Test Customer Group",
+ "doctype": "Sales Order",
+ "fiscal_year": "_Test Fiscal Year 2013",
+ "order_type": "Sales",
+ "delivery_date": "2013-02-23",
+ "plc_conversion_rate": 1.0,
+ "price_list_currency": "INR",
+ "price_list_name": "_Test Price List",
+ "territory": "_Test Territory",
+ "transaction_date": "2013-02-21",
+ "grand_total": 500.0,
+ "grand_total_export": 500.0,
+ },
+ {
+ "description": "CPU",
+ "doctype": "Sales Order Item",
+ "item_code": "_Test Item Home Desktop 100",
+ "item_name": "CPU",
+ "parentfield": "sales_order_details",
+ "qty": 10.0,
+ "basic_rate": 50.0,
+ "export_rate": 50.0,
+ "amount": 500.0,
+ "reserved_warehouse": "_Test Warehouse",
+ }
+ ],
+]
\ No newline at end of file
diff --git a/selling/doctype/sales_order_item/locale/de-doc.json b/selling/doctype/sales_order_item/locale/de-doc.json
new file mode 100644
index 00000000000..9070f8cca69
--- /dev/null
+++ b/selling/doctype/sales_order_item/locale/de-doc.json
@@ -0,0 +1,32 @@
+{
+ "Actual Qty": "Tats\u00e4chliche Menge",
+ "Amount": "Menge",
+ "Amount*": "Betrag *",
+ "Basic Rate*": "Basic Rate *",
+ "Billed Amt": "Billed Amt",
+ "Brand Name": "Markenname",
+ "Customer's Item Code": "Kunden Item Code",
+ "Delivered Qty": "Geliefert Menge",
+ "Description": "Beschreibung",
+ "Discount(%)": "Rabatt (%)",
+ "For Production": "For Production",
+ "Item Code": "Item Code",
+ "Item Group": "Artikel-Gruppe",
+ "Item Name": "Item Name",
+ "Item Tax Rate": "Artikel Tax Rate",
+ "Page Break": "Seitenwechsel",
+ "Planned Quantity": "Geplante Menge",
+ "Price List Rate": "Preis List",
+ "Price List Rate*": "Preis List *",
+ "Produced Quantity": "Produziert Menge",
+ "Projected Qty": "Prognostizierte Anzahl",
+ "Quantity": "Menge",
+ "Quotation No.": "Zitat Nr.",
+ "Rate": "Rate",
+ "Reserved Warehouse": "Warehouse Reserved",
+ "Sales Order Date": "Sales Order Datum",
+ "Sales Order Item": "Auftragsposition",
+ "Selling": "Verkauf",
+ "The date at which current entry is made in system.": "Das Datum, an dem aktuellen Eintrag im System hergestellt wird.",
+ "UOM": "UOM"
+}
\ No newline at end of file
diff --git a/selling/doctype/sales_order_item/locale/pt-BR-doc.json b/selling/doctype/sales_order_item/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..5444b6afaea
--- /dev/null
+++ b/selling/doctype/sales_order_item/locale/pt-BR-doc.json
@@ -0,0 +1,32 @@
+{
+ "Actual Qty": "Qtde Real",
+ "Amount": "Quantidade",
+ "Amount*": "Quantidade*",
+ "Basic Rate*": "Taxa B\u00e1sica*",
+ "Billed Amt": "Valor Faturado",
+ "Brand Name": "Marca",
+ "Customer's Item Code": "C\u00f3digo do Item do Cliente",
+ "Delivered Qty": "Qtde entregue",
+ "Description": "Descri\u00e7\u00e3o",
+ "Discount(%)": "Desconto (%)",
+ "For Production": "Para Produ\u00e7\u00e3o",
+ "Item Code": "C\u00f3digo do Item",
+ "Item Group": "Grupo de Itens",
+ "Item Name": "Nome do Item",
+ "Item Tax Rate": "Taxa de Imposto do Item",
+ "Page Break": "Quebra de p\u00e1gina",
+ "Planned Quantity": "Quantidade planejada",
+ "Price List Rate": "Taxa de Lista de Pre\u00e7os",
+ "Price List Rate*": "Taxa de Lista de Pre\u00e7os*",
+ "Produced Quantity": "Quantidade produzida",
+ "Projected Qty": "Qtde. Projetada",
+ "Quantity": "Quantidade",
+ "Quotation No.": "N\u00ba da Cota\u00e7\u00e3o.",
+ "Rate": "Taxa",
+ "Reserved Warehouse": "Almoxarifado Reservado",
+ "Sales Order Date": "Data da Ordem de Venda",
+ "Sales Order Item": "Item da Ordem de Venda",
+ "Selling": "Vendas",
+ "The date at which current entry is made in system.": "A data em que o lan\u00e7amento atual \u00e9 feito no sistema.",
+ "UOM": "UDM"
+}
\ No newline at end of file
diff --git a/selling/doctype/sales_order_item/locale/th-doc.json b/selling/doctype/sales_order_item/locale/th-doc.json
new file mode 100644
index 00000000000..4b6a87a9990
--- /dev/null
+++ b/selling/doctype/sales_order_item/locale/th-doc.json
@@ -0,0 +1,32 @@
+{
+ "Actual Qty": "\u0e08\u0e33\u0e19\u0e27\u0e19\u0e17\u0e35\u0e48\u0e40\u0e01\u0e34\u0e14\u0e02\u0e36\u0e49\u0e19\u0e08\u0e23\u0e34\u0e07",
+ "Amount": "\u0e08\u0e33\u0e19\u0e27\u0e19",
+ "Amount*": "* \u0e08\u0e33\u0e19\u0e27\u0e19\u0e40\u0e07\u0e34\u0e19",
+ "Basic Rate*": "* \u0e2d\u0e31\u0e15\u0e23\u0e32\u0e02\u0e31\u0e49\u0e19\u0e1e\u0e37\u0e49\u0e19\u0e10\u0e32\u0e19",
+ "Billed Amt": "\u0e08\u0e33\u0e19\u0e27\u0e19\u0e08\u0e33\u0e19\u0e27\u0e19\u0e21\u0e32\u0e01\u0e17\u0e35\u0e48\u0e2a\u0e38\u0e14",
+ "Brand Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e22\u0e35\u0e48\u0e2b\u0e49\u0e2d",
+ "Customer's Item Code": "\u0e23\u0e2b\u0e31\u0e2a\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e02\u0e2d\u0e07\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Delivered Qty": "\u0e08\u0e33\u0e19\u0e27\u0e19\u0e2a\u0e48\u0e07",
+ "Description": "\u0e25\u0e31\u0e01\u0e29\u0e13\u0e30",
+ "Discount(%)": "\u0e2a\u0e48\u0e27\u0e19\u0e25\u0e14 (%)",
+ "For Production": "\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e1c\u0e25\u0e34\u0e15",
+ "Item Code": "\u0e23\u0e2b\u0e31\u0e2a\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Item Group": "\u0e01\u0e25\u0e38\u0e48\u0e21\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Item Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23",
+ "Item Tax Rate": "\u0e2d\u0e31\u0e15\u0e23\u0e32\u0e20\u0e32\u0e29\u0e35\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Page Break": "\u0e41\u0e1a\u0e48\u0e07\u0e2b\u0e19\u0e49\u0e32",
+ "Planned Quantity": "\u0e08\u0e33\u0e19\u0e27\u0e19\u0e27\u0e32\u0e07\u0e41\u0e1c\u0e19",
+ "Price List Rate": "\u0e2d\u0e31\u0e15\u0e23\u0e32\u0e23\u0e32\u0e04\u0e32\u0e15\u0e32\u0e21\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23",
+ "Price List Rate*": "\u0e23\u0e32\u0e04\u0e32 * \u0e2d\u0e31\u0e15\u0e23\u0e32\u0e23\u0e32\u0e22\u0e0a\u0e37\u0e48\u0e2d",
+ "Produced Quantity": "\u0e08\u0e33\u0e19\u0e27\u0e19\u0e17\u0e35\u0e48\u0e1c\u0e25\u0e34\u0e15",
+ "Projected Qty": "\u0e08\u0e33\u0e19\u0e27\u0e19\u0e17\u0e35\u0e48\u0e04\u0e32\u0e14\u0e01\u0e32\u0e23\u0e13\u0e4c\u0e44\u0e27\u0e49",
+ "Quantity": "\u0e1b\u0e23\u0e34\u0e21\u0e32\u0e13",
+ "Quotation No.": "\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e25\u0e02\u0e43\u0e1a\u0e40\u0e2a\u0e19\u0e2d\u0e23\u0e32\u0e04\u0e32",
+ "Rate": "\u0e2d\u0e31\u0e15\u0e23\u0e32",
+ "Reserved Warehouse": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e2a\u0e07\u0e27\u0e19",
+ "Sales Order Date": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e32\u0e22",
+ "Sales Order Item": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e01\u0e32\u0e23\u0e02\u0e32\u0e22",
+ "Selling": "\u0e02\u0e32\u0e22",
+ "The date at which current entry is made in system.": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e17\u0e35\u0e48\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e1b\u0e31\u0e08\u0e08\u0e38\u0e1a\u0e31\u0e19\u0e08\u0e30\u0e17\u0e33\u0e43\u0e19\u0e23\u0e30\u0e1a\u0e1a",
+ "UOM": "UOM"
+}
\ No newline at end of file
diff --git a/selling/doctype/sales_team/locale/de-doc.json b/selling/doctype/sales_team/locale/de-doc.json
new file mode 100644
index 00000000000..f34d04803c2
--- /dev/null
+++ b/selling/doctype/sales_team/locale/de-doc.json
@@ -0,0 +1,11 @@
+{
+ "Allocated (%)": "Zugeordnet (%)",
+ "Allocated Amount": "Zugeteilten Betrag",
+ "Contact No.": "Kontakt Nr.",
+ "Designation": "Bezeichnung",
+ "Incentives": "Incentives",
+ "Parenttype": "ParentType",
+ "Sales Person": "Sales Person",
+ "Sales Team": "Sales Team",
+ "Selling": "Verkauf"
+}
\ No newline at end of file
diff --git a/selling/doctype/sales_team/locale/pt-BR-doc.json b/selling/doctype/sales_team/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..6bfda5eaa79
--- /dev/null
+++ b/selling/doctype/sales_team/locale/pt-BR-doc.json
@@ -0,0 +1,11 @@
+{
+ "Allocated (%)": "Alocados (%)",
+ "Allocated Amount": "Montante alocado",
+ "Contact No.": "N\u00ba Contato.",
+ "Designation": "Designa\u00e7\u00e3o",
+ "Incentives": "Incentivos",
+ "Parenttype": "Parenttype",
+ "Sales Person": "Vendedor",
+ "Sales Team": "Equipe de Vendas",
+ "Selling": "Vendas"
+}
\ No newline at end of file
diff --git a/selling/doctype/sales_team/locale/th-doc.json b/selling/doctype/sales_team/locale/th-doc.json
new file mode 100644
index 00000000000..74c4b8ac7be
--- /dev/null
+++ b/selling/doctype/sales_team/locale/th-doc.json
@@ -0,0 +1,11 @@
+{
+ "Allocated (%)": "\u0e01\u0e32\u0e23\u0e08\u0e31\u0e14\u0e2a\u0e23\u0e23 (%)",
+ "Allocated Amount": "\u0e08\u0e33\u0e19\u0e27\u0e19\u0e17\u0e35\u0e48\u0e08\u0e31\u0e14\u0e2a\u0e23\u0e23",
+ "Contact No.": "\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e25\u0e02",
+ "Designation": "\u0e01\u0e32\u0e23\u0e41\u0e15\u0e48\u0e07\u0e15\u0e31\u0e49\u0e07",
+ "Incentives": "\u0e41\u0e23\u0e07\u0e08\u0e39\u0e07\u0e43\u0e08",
+ "Parenttype": "Parenttype",
+ "Sales Person": "\u0e04\u0e19\u0e02\u0e32\u0e22",
+ "Sales Team": "\u0e17\u0e35\u0e21\u0e02\u0e32\u0e22",
+ "Selling": "\u0e02\u0e32\u0e22"
+}
\ No newline at end of file
diff --git a/selling/doctype/shipping_address/locale/de-doc.json b/selling/doctype/shipping_address/locale/de-doc.json
new file mode 100644
index 00000000000..a084f0eb502
--- /dev/null
+++ b/selling/doctype/shipping_address/locale/de-doc.json
@@ -0,0 +1,13 @@
+{
+ "Customer": "Kunde",
+ "Customer Address": "Kundenadresse",
+ "Customer Name": "Name des Kunden",
+ "Is Primary Address": "Ist Primary Address",
+ "No": "Auf",
+ "Selling": "Verkauf",
+ "Ship To": "Ship To",
+ "Shipping Address": "Versandadresse",
+ "Shipping Details": "Versandkosten Details",
+ "Trash Reason": "Trash Reason",
+ "Yes": "Ja"
+}
\ No newline at end of file
diff --git a/selling/doctype/shipping_address/locale/pt-BR-doc.json b/selling/doctype/shipping_address/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..981a0640a64
--- /dev/null
+++ b/selling/doctype/shipping_address/locale/pt-BR-doc.json
@@ -0,0 +1,13 @@
+{
+ "Customer": "Cliente",
+ "Customer Address": "Endere\u00e7o do cliente",
+ "Customer Name": "Nome do cliente",
+ "Is Primary Address": "\u00c9 o endere\u00e7o principal",
+ "No": "N\u00e3o",
+ "Selling": "Vendas",
+ "Ship To": "Enviar Para",
+ "Shipping Address": "Endere\u00e7o de envio",
+ "Shipping Details": "Detalhes do envio",
+ "Trash Reason": "Raz\u00e3o de p\u00f4r no lixo",
+ "Yes": "Sim"
+}
\ No newline at end of file
diff --git a/selling/doctype/shipping_address/locale/th-doc.json b/selling/doctype/shipping_address/locale/th-doc.json
new file mode 100644
index 00000000000..1ada6757a51
--- /dev/null
+++ b/selling/doctype/shipping_address/locale/th-doc.json
@@ -0,0 +1,13 @@
+{
+ "Customer": "\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Customer Address": "\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e02\u0e2d\u0e07\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Customer Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Is Primary Address": "\u0e40\u0e1b\u0e47\u0e19\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e2b\u0e25\u0e31\u0e01",
+ "No": "\u0e44\u0e21\u0e48",
+ "Selling": "\u0e02\u0e32\u0e22",
+ "Ship To": "\u0e40\u0e23\u0e37\u0e2d",
+ "Shipping Address": "\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e08\u0e31\u0e14\u0e2a\u0e48\u0e07",
+ "Shipping Details": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e01\u0e32\u0e23\u0e08\u0e31\u0e14\u0e2a\u0e48\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Trash Reason": "\u0e40\u0e2b\u0e15\u0e38\u0e1c\u0e25\u0e16\u0e31\u0e07\u0e02\u0e22\u0e30",
+ "Yes": "\u0e43\u0e0a\u0e48"
+}
\ No newline at end of file
diff --git a/selling/doctype/sms_center/locale/_messages_doc.json b/selling/doctype/sms_center/locale/_messages_doc.json
index 17ed7624066..e2f8e7e6f91 100644
--- a/selling/doctype/sms_center/locale/_messages_doc.json
+++ b/selling/doctype/sms_center/locale/_messages_doc.json
@@ -1,21 +1,21 @@
[
- "Customer",
"All Lead (Open)",
"Send To",
"Selling",
"All Sales Person",
- "Create Receiver List",
- "All Supplier Contact",
- "Receiver List",
+ "Branch",
"All Customer Contact",
+ "Receiver List",
+ "All Supplier Contact",
"All Sales Partner Contact",
"All Contact",
"Message greater than 160 character will be splitted into multiple mesage",
- "Department",
+ "Supplier",
"All Employee (Active)",
"SMS Center",
- "Branch",
- "Supplier",
+ "Department",
+ "Customer",
"Send SMS",
- "Message"
+ "Message",
+ "Create Receiver List"
]
\ No newline at end of file
diff --git a/selling/doctype/sms_center/locale/de-doc.json b/selling/doctype/sms_center/locale/de-doc.json
new file mode 100644
index 00000000000..01f5c891b67
--- /dev/null
+++ b/selling/doctype/sms_center/locale/de-doc.json
@@ -0,0 +1,21 @@
+{
+ "All Contact": "Alle Kontakt",
+ "All Customer Contact": "All Customer Contact",
+ "All Employee (Active)": "Alle Mitarbeiter (Active)",
+ "All Lead (Open)": "Alle Lead (Open)",
+ "All Sales Partner Contact": "Alle Vertriebspartner Kontakt",
+ "All Sales Person": "Alle Sales Person",
+ "All Supplier Contact": "Alle Lieferanten Kontakt",
+ "Branch": "Zweig",
+ "Create Receiver List": "Erstellen Receiver Liste",
+ "Customer": "Kunde",
+ "Department": "Abteilung",
+ "Message": "Nachricht",
+ "Message greater than 160 character will be splitted into multiple mesage": "Gr\u00f6\u00dfer als 160 Zeichen Nachricht in mehrere mesage aufgeteilt werden",
+ "Receiver List": "Receiver Liste",
+ "SMS Center": "SMS Center",
+ "Selling": "Verkauf",
+ "Send SMS": "Senden Sie eine SMS",
+ "Send To": "Send To",
+ "Supplier": "Lieferant"
+}
\ No newline at end of file
diff --git a/selling/doctype/sms_center/locale/pt-BR-doc.json b/selling/doctype/sms_center/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..0e8565b0668
--- /dev/null
+++ b/selling/doctype/sms_center/locale/pt-BR-doc.json
@@ -0,0 +1,21 @@
+{
+ "All Contact": "Todo Contato",
+ "All Customer Contact": "Todo Contato do Cliente",
+ "All Employee (Active)": "Todos os Empregados (Ativos)",
+ "All Lead (Open)": "Todos Prospectos (Abertos)",
+ "All Sales Partner Contact": "Todo Contato de Parceiros de Vendas",
+ "All Sales Person": "Todos os Vendedores",
+ "All Supplier Contact": "Todo Contato de Fornecedor",
+ "Branch": "Ramo",
+ "Create Receiver List": "Criar Lista de Receptor",
+ "Customer": "Cliente",
+ "Department": "Departamento",
+ "Message": "Mensagem",
+ "Message greater than 160 character will be splitted into multiple mesage": "Mensagens maiores do que 160 caracteres v\u00e3o ser divididos em m\u00faltiplas mensagens",
+ "Receiver List": "Lista de recebedores",
+ "SMS Center": "Centro de SMS",
+ "Selling": "Vendas",
+ "Send SMS": "Envie SMS",
+ "Send To": "Enviar para",
+ "Supplier": "Fornecedor"
+}
\ No newline at end of file
diff --git a/selling/doctype/sms_center/locale/th-doc.json b/selling/doctype/sms_center/locale/th-doc.json
new file mode 100644
index 00000000000..4120dfa0267
--- /dev/null
+++ b/selling/doctype/sms_center/locale/th-doc.json
@@ -0,0 +1,21 @@
+{
+ "All Contact": "\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14",
+ "All Customer Contact": "\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14",
+ "All Employee (Active)": "\u0e1e\u0e19\u0e31\u0e01\u0e07\u0e32\u0e19 (Active) \u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14",
+ "All Lead (Open)": "\u0e15\u0e30\u0e01\u0e31\u0e48\u0e27 (\u0e40\u0e1b\u0e34\u0e14) \u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14",
+ "All Sales Partner Contact": "\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d\u0e1e\u0e31\u0e19\u0e18\u0e21\u0e34\u0e15\u0e23\u0e01\u0e32\u0e23\u0e02\u0e32\u0e22",
+ "All Sales Person": "\u0e04\u0e19\u0e02\u0e32\u0e22\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14",
+ "All Supplier Contact": "\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d\u0e1c\u0e39\u0e49\u0e1c\u0e25\u0e34\u0e15\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14",
+ "Branch": "\u0e2a\u0e32\u0e02\u0e32",
+ "Create Receiver List": "\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e23\u0e31\u0e1a",
+ "Customer": "\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Department": "\u0e41\u0e1c\u0e19\u0e01",
+ "Message": "\u0e02\u0e48\u0e32\u0e27\u0e2a\u0e32\u0e23",
+ "Message greater than 160 character will be splitted into multiple mesage": "\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e21\u0e32\u0e01\u0e02\u0e36\u0e49\u0e19\u0e01\u0e27\u0e48\u0e32 160 \u0e15\u0e31\u0e27\u0e2d\u0e31\u0e01\u0e29\u0e23\u0e08\u0e30\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e25\u0e07 splitted mesage \u0e2b\u0e25\u0e32\u0e22",
+ "Receiver List": "\u0e23\u0e32\u0e22\u0e0a\u0e37\u0e48\u0e2d\u0e1c\u0e39\u0e49\u0e23\u0e31\u0e1a",
+ "SMS Center": "\u0e28\u0e39\u0e19\u0e22\u0e4c SMS",
+ "Selling": "\u0e02\u0e32\u0e22",
+ "Send SMS": "\u0e2a\u0e48\u0e07 SMS",
+ "Send To": "\u0e2a\u0e48\u0e07\u0e43\u0e2b\u0e49",
+ "Supplier": "\u0e1c\u0e39\u0e49\u0e08\u0e31\u0e14\u0e08\u0e33\u0e2b\u0e19\u0e48\u0e32\u0e22"
+}
\ No newline at end of file
diff --git a/selling/module_def/selling/locale/_messages_doc.json b/selling/module_def/selling/locale/_messages_doc.json
deleted file mode 100644
index 59d6c9815cb..00000000000
--- a/selling/module_def/selling/locale/_messages_doc.json
+++ /dev/null
@@ -1,11 +0,0 @@
-[
- "Sales Orders Pending To Be Delivered",
- "Customer Addresses And Contacts",
- "Buyer of Goods and Services.",
- "Sales Dashboard",
- "Potential Sales Deal",
- "Selling Home",
- "Sales Analytics",
- "Keep Track of Sales Campaigns. Keep track of Leads, Quotations, Sales Order etc from Campaigns to gauge Return on Investment. ",
- "Sales Browser"
-]
\ No newline at end of file
diff --git a/selling/module_def/selling/locale/ar-doc.json b/selling/module_def/selling/locale/ar-doc.json
deleted file mode 100644
index 064cce6b10e..00000000000
--- a/selling/module_def/selling/locale/ar-doc.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "Buyer of Goods and Services.": "\u0627\u0644\u0645\u0634\u062a\u0631\u064a \u0644\u0644\u0633\u0644\u0639 \u0648\u0627\u0644\u062e\u062f\u0645\u0627\u062a.",
- "Customer Addresses And Contacts": "\u0627\u0644\u0639\u0646\u0627\u0648\u064a\u0646 \u0627\u0644\u0639\u0645\u0644\u0627\u0621 \u0648\u0627\u062a\u0635\u0627\u0644\u0627\u062a",
- "Keep Track of Sales Campaigns. Keep track of Leads, Quotations, Sales Order etc from Campaigns to gauge Return on Investment. ": "\u062a\u062a\u0628\u0639 \u0627\u0644\u062d\u0645\u0644\u0627\u062a \u0627\u0644\u0645\u0628\u064a\u0639\u0627\u062a. \u062a\u062a\u0628\u0639 \u0627\u0644\u0639\u0631\u0648\u0636\u060c \u0627\u0644\u0627\u0642\u062a\u0628\u0627\u0633\u0627\u062a\u060c \u0627\u0644\u0645\u0628\u064a\u0639\u0627\u062a \u0648\u063a\u064a\u0631\u0647\u0627 \u0645\u0646 \u0627\u0644\u062d\u0645\u0644\u0627\u062a \u064a\u0634\u062a\u0631\u064a \u0644\u0642\u064a\u0627\u0633 \u0627\u0644\u0639\u0627\u0626\u062f \u0639\u0644\u0649 \u0627\u0644\u0627\u0633\u062a\u062b\u0645\u0627\u0631.",
- "Potential Sales Deal": "\u0635\u0641\u0642\u0629 \u0645\u062d\u062a\u0645\u0644\u0629 \u0627\u0644\u0645\u0628\u064a\u0639\u0627\u062a",
- "Sales Analytics": "\u0645\u0628\u064a\u0639\u0627\u062a \u062a\u062d\u0644\u064a\u0644\u0627\u062a",
- "Sales Browser": "\u0645\u0628\u064a\u0639\u0627\u062a \u0645\u062a\u0635\u0641\u062d",
- "Sales Dashboard": "\u0645\u0628\u064a\u0639\u0627\u062a \u0644\u0648\u062d\u0629",
- "Sales Orders Pending To Be Delivered": "\u0645\u0628\u064a\u0639\u0627\u062a \u0627\u0644\u0623\u0648\u0627\u0645\u0631 \u0627\u0644\u0645\u0639\u0644\u0642\u0629 \u0644\u064a\u062a\u0645 \u062a\u0633\u0644\u064a\u0645\u0647\u0627",
- "Selling Home": "\u0628\u064a\u0639 \u0627\u0644\u0645\u0646\u0632\u0644"
-}
\ No newline at end of file
diff --git a/selling/module_def/selling/locale/es-doc.json b/selling/module_def/selling/locale/es-doc.json
deleted file mode 100644
index b4756de05bd..00000000000
--- a/selling/module_def/selling/locale/es-doc.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "Buyer of Goods and Services.": "Comprador de Bienes y Servicios.",
- "Customer Addresses And Contacts": "Las direcciones de clientes y contactos",
- "Keep Track of Sales Campaigns. Keep track of Leads, Quotations, Sales Order etc from Campaigns to gauge Return on Investment. ": "Lleve un registro de las campa\u00f1as de ventas. Lleve un registro de Leads, citas, etc \u00f3rdenes de venta de las campa\u00f1as para medir rendimiento de la inversi\u00f3n.",
- "Potential Sales Deal": "Ventas posible acuerdo",
- "Sales Analytics": "Sales Analytics",
- "Sales Browser": "Ventas Browser",
- "Sales Dashboard": "Sales Dashboard",
- "Sales Orders Pending To Be Delivered": "\u00d3rdenes de venta pendientes de entrega",
- "Selling Home": "Venta de la casa"
-}
\ No newline at end of file
diff --git a/selling/module_def/selling/locale/fr-doc.json b/selling/module_def/selling/locale/fr-doc.json
deleted file mode 100644
index 267fead5c37..00000000000
--- a/selling/module_def/selling/locale/fr-doc.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "Buyer of Goods and Services.": "Lors de votre achat de biens et services.",
- "Customer Addresses And Contacts": "Adresses et contacts clients",
- "Keep Track of Sales Campaigns. Keep track of Leads, Quotations, Sales Order etc from Campaigns to gauge Return on Investment. ": "Garder une trace des campagnes de vente. Gardez une trace de prospects, devis, etc Commande de campagnes visant \u00e0 jauger le retour sur investissement.",
- "Potential Sales Deal": "Potentiel de l'offre de vente",
- "Sales Analytics": "Analytics Sales",
- "Sales Browser": "Navigateur ventes",
- "Sales Dashboard": "Tableau de bord des ventes",
- "Sales Orders Pending To Be Delivered": "En attendant les commandes clients \u00e0 livrer",
- "Selling Home": "Vente maison"
-}
\ No newline at end of file
diff --git a/selling/module_def/selling/locale/hi-doc.json b/selling/module_def/selling/locale/hi-doc.json
deleted file mode 100644
index 785f4df60df..00000000000
--- a/selling/module_def/selling/locale/hi-doc.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "Buyer of Goods and Services.": "\u0938\u093e\u092e\u093e\u0928 \u0914\u0930 \u0938\u0947\u0935\u093e\u0913\u0902 \u0915\u0947 \u0916\u0930\u0940\u0926\u093e\u0930.",
- "Customer Addresses And Contacts": "\u0917\u094d\u0930\u093e\u0939\u0915 \u0915\u0947 \u092a\u0924\u0947 \u0914\u0930 \u0938\u0902\u092a\u0930\u094d\u0915",
- "Keep Track of Sales Campaigns. Keep track of Leads, Quotations, Sales Order etc from Campaigns to gauge Return on Investment. ": "\u092c\u093f\u0915\u094d\u0930\u0940 \u0905\u092d\u093f\u092f\u093e\u0928 \u0915\u093e \u091f\u094d\u0930\u0948\u0915 \u0930\u0916\u0947\u0902. \u092c\u093f\u0915\u094d\u0930\u0940\u0938\u0942\u0924\u094d\u0930, \u0915\u094b\u091f\u0947\u0936\u0928, \u0905\u092d\u093f\u092f\u093e\u0928 \u0938\u0947 \u092c\u093f\u0915\u094d\u0930\u0940 \u0906\u0926\u0947\u0936 \u0906\u0926\u093f \u0915\u0930\u0928\u0947 \u0915\u0947 \u0932\u093f\u090f \u0928\u093f\u0935\u0947\u0936 \u092a\u0930 \u0935\u093e\u092a\u0938\u0940 \u0917\u0947\u091c \u091f\u094d\u0930\u0948\u0915 \u0930\u0916\u0947\u0902.",
- "Potential Sales Deal": "\u0938\u0902\u092d\u093e\u0935\u093f\u0924 \u092c\u093f\u0915\u094d\u0930\u0940 \u0938\u094c\u0926\u093e",
- "Sales Analytics": "\u092c\u093f\u0915\u094d\u0930\u0940 \u0935\u093f\u0936\u094d\u0932\u0947\u0937\u093f\u0915\u0940",
- "Sales Browser": "\u092c\u093f\u0915\u094d\u0930\u0940 \u092c\u094d\u0930\u093e\u0909\u091c\u093c\u0930",
- "Sales Dashboard": "\u092c\u093f\u0915\u094d\u0930\u0940 \u0921\u0948\u0936\u092c\u094b\u0930\u094d\u0921",
- "Sales Orders Pending To Be Delivered": "\u0935\u093f\u0915\u094d\u0930\u092f \u0906\u0926\u0947\u0936 \u0926\u093f\u092f\u093e \u091c\u093e \u0932\u0902\u092c\u093f\u0924",
- "Selling Home": "\u0918\u0930 \u092c\u0947\u091a\u0928\u093e"
-}
\ No newline at end of file
diff --git a/selling/module_def/selling/locale/hr-doc.json b/selling/module_def/selling/locale/hr-doc.json
deleted file mode 100644
index 741a4c66bb6..00000000000
--- a/selling/module_def/selling/locale/hr-doc.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "Buyer of Goods and Services.": "Kupac robe i usluga.",
- "Customer Addresses And Contacts": "Kupac adrese i kontakti",
- "Keep Track of Sales Campaigns. Keep track of Leads, Quotations, Sales Order etc from Campaigns to gauge Return on Investment. ": "Dr\u017eati Trag od prodaje kampanje. Pratite vodi, citati, prodaja reda itd. iz kampanje radi vrjednovanja povrat na investiciju.",
- "Potential Sales Deal": "Potencijal Prodaja Deal",
- "Sales Analytics": "Prodaja Analitika",
- "Sales Browser": "Prodaja preglednik",
- "Sales Dashboard": "Prodaja plo\u010da",
- "Sales Orders Pending To Be Delivered": "Prodajni nalozi na \u010dekanju biti isporu\u010dena",
- "Selling Home": "Prodaja Po\u010detna"
-}
\ No newline at end of file
diff --git a/selling/module_def/selling/locale/nl-doc.json b/selling/module_def/selling/locale/nl-doc.json
deleted file mode 100644
index 1cdfa10cb29..00000000000
--- a/selling/module_def/selling/locale/nl-doc.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "Buyer of Goods and Services.": "Bij uw aankoop van goederen en diensten.",
- "Customer Addresses And Contacts": "Klant adressen en contacten",
- "Keep Track of Sales Campaigns. Keep track of Leads, Quotations, Sales Order etc from Campaigns to gauge Return on Investment. ": "Bijhouden van Sales Campaigns. Blijf op de hoogte van Leads, Offertes, Sales Order enz. van campagnes om Return on Investment te meten.",
- "Potential Sales Deal": "Potenti\u00eble Sales Deal",
- "Sales Analytics": "Sales Analytics",
- "Sales Browser": "Verkoop Browser",
- "Sales Dashboard": "Sales Dashboard",
- "Sales Orders Pending To Be Delivered": "Verkooporders In afwachting van de te leveren",
- "Selling Home": "De verkoop Startpagina"
-}
\ No newline at end of file
diff --git a/selling/module_def/selling/locale/pt-doc.json b/selling/module_def/selling/locale/pt-doc.json
deleted file mode 100644
index b87c5aec890..00000000000
--- a/selling/module_def/selling/locale/pt-doc.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "Buyer of Goods and Services.": "Comprador de Mercadorias e Servi\u00e7os.",
- "Customer Addresses And Contacts": "Endere\u00e7os e contatos de clientes",
- "Keep Track of Sales Campaigns. Keep track of Leads, Quotations, Sales Order etc from Campaigns to gauge Return on Investment. ": "Mantenha o controle de campanhas de vendas. Mantenha o controle de liga\u00e7\u00f5es, cota\u00e7\u00f5es, etc Vendas Ordem de Campanhas de medir retorno sobre o investimento.",
- "Potential Sales Deal": "Neg\u00f3cio de Vendas",
- "Sales Analytics": "Sales Analytics",
- "Sales Browser": "Navegador vendas",
- "Sales Dashboard": "Painel de vendas",
- "Sales Orders Pending To Be Delivered": "Pedidos de Vendas pendentes a serem entregues",
- "Selling Home": "Venda de casa"
-}
\ No newline at end of file
diff --git a/selling/module_def/selling/locale/sr-doc.json b/selling/module_def/selling/locale/sr-doc.json
deleted file mode 100644
index a110df71f14..00000000000
--- a/selling/module_def/selling/locale/sr-doc.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "Buyer of Goods and Services.": "\u041a\u0443\u043f\u0430\u0446 \u0440\u043e\u0431\u0435 \u0438 \u0443\u0441\u043b\u0443\u0433\u0430.",
- "Customer Addresses And Contacts": "\u041a\u043e\u0440\u0438\u0441\u043d\u0438\u0447\u043a\u0438 \u0410\u0434\u0440\u0435\u0441\u0435 \u0438 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0438",
- "Keep Track of Sales Campaigns. Keep track of Leads, Quotations, Sales Order etc from Campaigns to gauge Return on Investment. ": "\u0412\u043e\u0434\u0438\u0442\u0435 \u0435\u0432\u0438\u0434\u0435\u043d\u0446\u0438\u0458\u0443 \u043e \u043f\u0440\u043e\u0434\u0430\u0458\u043d\u0438\u0445 \u043a\u0430\u043c\u043f\u0430\u045a\u0430. \u041f\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043e\u0434\u0438, \u0446\u0438\u0442\u0430\u0442\u0438\u043c\u0430, \u043f\u0440\u043e\u0434\u0430\u0458\u0435 \u0440\u0435\u0434\u0430 \u0438\u0442\u0434 \u0438\u0437 \u043a\u0430\u043c\u043f\u0430\u045a\u0435 \u0434\u0430 \u0438\u0437\u043c\u0435\u0440\u0438 \u043f\u043e\u0432\u0440\u0430\u045b\u0430\u0458 \u0438\u043d\u0432\u0435\u0441\u0442\u0438\u0446\u0438\u0458\u0435.",
- "Potential Sales Deal": "\u041f\u043e\u0442\u0435\u043d\u0446\u0438\u0458\u0430\u043b \u043f\u0440\u043e\u0434\u0430\u0458\u0435 \u0414\u0435\u0430\u043b",
- "Sales Analytics": "\u041f\u0440\u043e\u0434\u0430\u0458\u0430 \u0410\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0430",
- "Sales Browser": "\u041f\u0440\u043e\u0434\u0430\u0458\u0430 \u0411\u0440\u043e\u0432\u0441\u0435\u0440",
- "Sales Dashboard": "\u041f\u0440\u043e\u0434\u0430\u0458\u0430 \u0414\u0430\u0441\u0445\u0431\u043e\u0430\u0440\u0434",
- "Sales Orders Pending To Be Delivered": "\u041f\u0440\u043e\u0434\u0430\u0458\u043d\u0438\u0445 \u043d\u0430\u043b\u043e\u0433\u0430 \u043d\u0430 \u0447\u0435\u043a\u0430\u045a\u0443 \u0434\u0430 \u0431\u0443\u0434\u0435 \u0438\u0441\u043f\u043e\u0440\u0443\u0447\u0435\u043d\u0430",
- "Selling Home": "\u041f\u0440\u043e\u0434\u0430\u0458\u0430 \u0425\u043e\u043c\u0435"
-}
\ No newline at end of file
diff --git a/selling/module_def/selling/locale/ta-doc.json b/selling/module_def/selling/locale/ta-doc.json
deleted file mode 100644
index e79a5d6ddf8..00000000000
--- a/selling/module_def/selling/locale/ta-doc.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "Buyer of Goods and Services.": "\u0baa\u0bc6\u0bbe\u0bb0\u0bc1\u0b9f\u0bcd\u0b95\u0bb3\u0bcd \u0bae\u0bb1\u0bcd\u0bb1\u0bc1\u0bae\u0bcd \u0b9a\u0bc7\u0bb5\u0bc8\u0b95\u0bb3\u0bcd \u0bb5\u0bbe\u0b99\u0bcd\u0b95\u0bc1\u0baa\u0bb5\u0bb0\u0bcd.",
- "Customer Addresses And Contacts": "\u0bb5\u0bbe\u0b9f\u0bbf\u0b95\u0bcd\u0b95\u0bc8\u0baf\u0bbe\u0bb3\u0bb0\u0bcd \u0bae\u0bc1\u0b95\u0bb5\u0bb0\u0bbf\u0b95\u0bb3\u0bcd \u0bae\u0bb1\u0bcd\u0bb1\u0bc1\u0bae\u0bcd \u0ba4\u0bc6\u0bbe\u0b9f\u0bb0\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd",
- "Keep Track of Sales Campaigns. Keep track of Leads, Quotations, Sales Order etc from Campaigns to gauge Return on Investment. ": "\u0bb5\u0bbf\u0bb1\u0bcd\u0baa\u0ba9\u0bc8 \u0baa\u0bbf\u0bb0\u0b9a\u0bcd\u0b9a\u0bbe\u0bb0\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0baa\u0bbf\u0ba9\u0bcd\u0ba4\u0bc6\u0bbe\u0b9f\u0bb0\u0bc1\u0b99\u0bcd\u0b95\u0bb3\u0bcd. \u0bae\u0bc1\u0ba4\u0bb2\u0bc0\u0b9f\u0bcd\u0b9f\u0bc1 \u0bae\u0bc0\u0ba4\u0bc1 \u0bae\u0bc0\u0ba3\u0bcd\u0b9f\u0bc1\u0bae\u0bcd \u0b86\u0bb0\u0bbe\u0baf \u0baa\u0bbf\u0bb0\u0b9a\u0bcd\u0b9a\u0bbe\u0bb0\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b9a\u0bc6\u0bb2\u0bcd\u0b95\u0bbf\u0ba9\u0bcd\u0bb1\u0ba4\u0bc1, \u0bae\u0bc7\u0bb1\u0bcd\u0b95\u0bc7\u0bbe\u0bb3\u0bcd\u0b95\u0bb3\u0bcd, \u0bb5\u0bbf\u0bb1\u0bcd\u0baa\u0ba9\u0bc8 \u0b86\u0ba3\u0bc8 \u0baa\u0bc7\u0bbe\u0ba9\u0bcd\u0bb1\u0bb5\u0bc8 \u0b95\u0ba3\u0bcd\u0b95\u0bbe\u0ba3\u0bbf\u0b95\u0bcd\u0b95\u0bb5\u0bc1\u0bae\u0bcd.",
- "Potential Sales Deal": "\u0b9a\u0bbe\u0ba4\u0bcd\u0ba4\u0bbf\u0baf\u0bae\u0bbe\u0ba9 \u0bb5\u0bbf\u0bb1\u0bcd\u0baa\u0ba9\u0bc8 \u0b92\u0baa\u0bcd\u0baa\u0ba8\u0bcd\u0ba4\u0bae\u0bcd",
- "Sales Analytics": "\u0bb5\u0bbf\u0bb1\u0bcd\u0baa\u0ba9\u0bc8 \u0b85\u0ba9\u0bb2\u0bbf\u0b9f\u0bcd\u0b9f\u0bbf\u0b95\u0bcd\u0bb8\u0bcd",
- "Sales Browser": "\u0bb5\u0bbf\u0bb1\u0bcd\u0baa\u0ba9\u0bc8 \u0b89\u0bb2\u0bbe\u0bb5\u0bbf",
- "Sales Dashboard": "\u0bb5\u0bbf\u0bb1\u0bcd\u0baa\u0ba9\u0bc8 \u0b9f\u0bbe\u0bb7\u0bcd\u0baa\u0bc7\u0bbe\u0bb0\u0bcd\u0b9f\u0bc1",
- "Sales Orders Pending To Be Delivered": "\u0bb5\u0bbf\u0bb1\u0bcd\u0baa\u0ba9\u0bc8 \u0b86\u0ba3\u0bc8\u0b95\u0bb3\u0bcd \u0bb5\u0bb4\u0b99\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f \u0ba8\u0bbf\u0bb2\u0bc1\u0bb5\u0bc8\u0baf\u0bbf\u0bb2\u0bcd",
- "Selling Home": "\u0bae\u0bc1\u0b95\u0baa\u0bcd\u0baa\u0bc1 \u0bb5\u0bbf\u0bb1\u0bcd\u0baa\u0ba9\u0bc8"
-}
\ No newline at end of file
diff --git a/selling/page/selling_home/locale/de-js.json b/selling/page/selling_home/locale/de-js.json
new file mode 100644
index 00000000000..ad79a7e1803
--- /dev/null
+++ b/selling/page/selling_home/locale/de-js.json
@@ -0,0 +1,52 @@
+{
+ "Address": "Adresse",
+ "All Addresses.": "Alle Adressen.",
+ "All Contacts.": "Alle Kontakte.",
+ "All Products or Services.": "Alle Produkte oder Dienstleistungen.",
+ "Analytics": "Analytics",
+ "Bundle items at time of sale.": "Bundle Artikel zum Zeitpunkt des Verkaufs.",
+ "Campaign": "Kampagne",
+ "Commission partners and targets": "Kommission Partnern und Ziele",
+ "Confirmed orders from Customers.": "Best\u00e4tigte Bestellungen von Kunden.",
+ "Contact": "Kontakt",
+ "Customer": "Kunde",
+ "Customer Addresses And Contacts": "Kundenadressen und Kontakte",
+ "Customer Group": "Customer Group",
+ "Customer classification tree.": "Einteilung der Kunden Baum.",
+ "Customer database.": "Kunden-Datenbank.",
+ "Database of potential customers.": "Datenbank von potentiellen Kunden.",
+ "Documents": "Unterlagen",
+ "Helper for managing return of goods (sales or purchase)": "Helper f\u00fcr die Verwaltung R\u00fccksendung der Ware (Verkauf oder Kauf)",
+ "Item": "Artikel",
+ "Item Group": "Artikel-Gruppe",
+ "Lead": "F\u00fchren",
+ "Masters": "Masters",
+ "Mupltiple Item prices.": "Artikel Mupltiple Preisen.",
+ "Opportunity": "Gelegenheit",
+ "Potential opportunities for selling.": "Potenzielle Chancen f\u00fcr den Verkauf.",
+ "Price List": "Preisliste",
+ "Quotation": "Zitat",
+ "Quotes to Leads or Customers.": "Zitate oder Leads zu Kunden.",
+ "Reports": "Reports",
+ "SMS Center": "SMS Center",
+ "Sales Analytics": "Sales Analytics",
+ "Sales BOM": "Vertrieb BOM",
+ "Sales Order": "Sales Order",
+ "Sales Orders Pending to be Delivered": "Bis Kundenauftr\u00e4ge zu liefernden",
+ "Sales Partner": "Vertriebspartner",
+ "Sales Person": "Sales Person",
+ "Sales Returns": "R\u00fcckware",
+ "Sales Taxes and Charges Master": "Vertrieb Steuern und Abgaben Meister",
+ "Sales campaigns": "Sales-Kampagnen",
+ "Sales persons and targets": "Vertriebsmitarbeiter und Ziele",
+ "Sales taxes template.": "Umsatzsteuer-Vorlage.",
+ "Sales territories.": "Vertriebsgebieten.",
+ "Send mass SMS to your contacts": "Senden Sie Massen-SMS an Ihre Kontakte",
+ "Setup": "Setup",
+ "Template of terms or contract.": "Vorlage von Begriffen oder Vertrag.",
+ "Terms and Conditions": "AGB",
+ "Territory": "Gebiet",
+ "Tools": "Werkzeuge",
+ "Tree of item classification": "Tree of Artikelzugeh\u00f6rigkeit",
+ "Trend Analyzer": "Trend Analyzer"
+}
\ No newline at end of file
diff --git a/selling/page/selling_home/locale/pt-BR-js.json b/selling/page/selling_home/locale/pt-BR-js.json
new file mode 100644
index 00000000000..d90378d7847
--- /dev/null
+++ b/selling/page/selling_home/locale/pt-BR-js.json
@@ -0,0 +1,52 @@
+{
+ "Address": "Endere\u00e7o",
+ "All Addresses.": "Todos os Endere\u00e7os.",
+ "All Contacts.": "Todos os contatos.",
+ "All Products or Services.": "Todos os Produtos ou Servi\u00e7os.",
+ "Analytics": "Anal\u00edtica",
+ "Bundle items at time of sale.": "Empacotar itens no momento da venda.",
+ "Campaign": "Campanha",
+ "Commission partners and targets": "Parceiros de comiss\u00e3o e metas",
+ "Confirmed orders from Customers.": "Pedidos confirmados de clientes.",
+ "Contact": "Contato",
+ "Customer": "Cliente",
+ "Customer Addresses And Contacts": "Endere\u00e7os e contatos do cliente",
+ "Customer Group": "Grupo de Clientes",
+ "Customer classification tree.": "\u00c1rvore de classifica\u00e7\u00e3o do cliente.",
+ "Customer database.": "Banco de dados do cliente.",
+ "Database of potential customers.": "Banco de dados de clientes potenciais.",
+ "Documents": "Documentos",
+ "Helper for managing return of goods (sales or purchase)": "Auxiliar para a gest\u00e3o de devolu\u00e7\u00e3o de mercadorias (venda ou compra)",
+ "Item": "Item",
+ "Item Group": "Grupo de Itens",
+ "Lead": "Prospecto",
+ "Masters": "Cadastros",
+ "Mupltiple Item prices.": "Pre\u00e7os de m\u00faltiplos itens.",
+ "Opportunity": "Oportunidade",
+ "Potential opportunities for selling.": "Oportunidades potenciais para a venda.",
+ "Price List": "Lista de Pre\u00e7os",
+ "Quotation": "Cota\u00e7\u00e3o",
+ "Quotes to Leads or Customers.": "Cota\u00e7\u00f5es para Prospectos ou Clientes.",
+ "Reports": "Relat\u00f3rios",
+ "SMS Center": "Centro de SMS",
+ "Sales Analytics": "An\u00e1lise de Vendas",
+ "Sales BOM": "LDM de Vendas",
+ "Sales Order": "Ordem de Venda",
+ "Sales Orders Pending to be Delivered": "Ordens de Venda pendentes de entregua",
+ "Sales Partner": "Parceiro de Vendas",
+ "Sales Person": "Vendedor",
+ "Sales Returns": "Retornos de Vendas",
+ "Sales Taxes and Charges Master": "Cadastro de Impostos e Taxas sobre Vendas",
+ "Sales campaigns": "Campanhas de Vendas",
+ "Sales persons and targets": "Vendedores e Metas",
+ "Sales taxes template.": "Modelo de Impostos sobre as Vendas.",
+ "Sales territories.": "Territ\u00f3rios de Vendas.",
+ "Send mass SMS to your contacts": "Enviar SMS em massa para seus contatos",
+ "Setup": "Configura\u00e7\u00e3o",
+ "Template of terms or contract.": "Modelo de termos ou contratos.",
+ "Terms and Conditions": "Termos e Condi\u00e7\u00f5es",
+ "Territory": "Territ\u00f3rio",
+ "Tools": "Ferramentas",
+ "Tree of item classification": "\u00c1rvore de classifica\u00e7\u00e3o de itens",
+ "Trend Analyzer": "Analisador de tend\u00eancia"
+}
\ No newline at end of file
diff --git a/selling/page/selling_home/locale/th-js.json b/selling/page/selling_home/locale/th-js.json
new file mode 100644
index 00000000000..146d0f85cb2
--- /dev/null
+++ b/selling/page/selling_home/locale/th-js.json
@@ -0,0 +1,52 @@
+{
+ "Address": "\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48",
+ "All Addresses.": "\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14",
+ "All Contacts.": "\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14",
+ "All Products or Services.": "\u0e1c\u0e25\u0e34\u0e15\u0e20\u0e31\u0e13\u0e11\u0e4c\u0e2b\u0e23\u0e37\u0e2d\u0e1a\u0e23\u0e34\u0e01\u0e32\u0e23",
+ "Analytics": "Analytics",
+ "Bundle items at time of sale.": "\u0e01\u0e33\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e43\u0e19\u0e40\u0e27\u0e25\u0e32\u0e02\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e02\u0e32\u0e22",
+ "Campaign": "\u0e23\u0e13\u0e23\u0e07\u0e04\u0e4c",
+ "Commission partners and targets": "\u0e1e\u0e31\u0e19\u0e18\u0e21\u0e34\u0e15\u0e23\u0e04\u0e13\u0e30\u0e01\u0e23\u0e23\u0e21\u0e01\u0e32\u0e23\u0e41\u0e25\u0e30\u0e40\u0e1b\u0e49\u0e32\u0e2b\u0e21\u0e32\u0e22",
+ "Confirmed orders from Customers.": "\u0e04\u0e33\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e22\u0e37\u0e19\u0e22\u0e31\u0e19\u0e08\u0e32\u0e01\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Contact": "\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d",
+ "Customer": "\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Customer Addresses And Contacts": "\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e02\u0e2d\u0e07\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32\u0e41\u0e25\u0e30\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d",
+ "Customer Group": "\u0e01\u0e25\u0e38\u0e48\u0e21\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Customer classification tree.": "\u0e15\u0e49\u0e19\u0e44\u0e21\u0e49\u0e08\u0e33\u0e41\u0e19\u0e01\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Customer database.": "\u0e10\u0e32\u0e19\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Database of potential customers.": "\u0e10\u0e32\u0e19\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e02\u0e2d\u0e07\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32\u0e17\u0e35\u0e48\u0e21\u0e35\u0e28\u0e31\u0e01\u0e22\u0e20\u0e32\u0e1e",
+ "Documents": "\u0e40\u0e2d\u0e01\u0e2a\u0e32\u0e23",
+ "Helper for managing return of goods (sales or purchase)": "\u0e1c\u0e39\u0e49\u0e0a\u0e48\u0e27\u0e22\u0e43\u0e19\u0e01\u0e32\u0e23\u0e1a\u0e23\u0e34\u0e2b\u0e32\u0e23\u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e01\u0e32\u0e23\u0e01\u0e25\u0e31\u0e1a\u0e21\u0e32\u0e02\u0e2d\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32 (\u0e02\u0e32\u0e22\u0e2b\u0e23\u0e37\u0e2d\u0e0b\u0e37\u0e49\u0e2d)",
+ "Item": "\u0e0a\u0e34\u0e49\u0e19",
+ "Item Group": "\u0e01\u0e25\u0e38\u0e48\u0e21\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Lead": "\u0e19\u0e33",
+ "Masters": "\u0e42\u0e17",
+ "Mupltiple Item prices.": "\u0e23\u0e32\u0e04\u0e32\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32 Mupltiple",
+ "Opportunity": "\u0e42\u0e2d\u0e01\u0e32\u0e2a",
+ "Potential opportunities for selling.": "\u0e42\u0e2d\u0e01\u0e32\u0e2a\u0e17\u0e35\u0e48\u0e21\u0e35\u0e28\u0e31\u0e01\u0e22\u0e20\u0e32\u0e1e\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e02\u0e32\u0e22",
+ "Price List": "\u0e1a\u0e31\u0e0d\u0e0a\u0e35\u0e41\u0e08\u0e49\u0e07\u0e23\u0e32\u0e04\u0e32\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Quotation": "\u0e43\u0e1a\u0e40\u0e2a\u0e19\u0e2d\u0e23\u0e32\u0e04\u0e32",
+ "Quotes to Leads or Customers.": "\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e19\u0e33\u0e44\u0e1b\u0e2a\u0e39\u0e48\u200b\u200b\u0e04\u0e33\u0e1e\u0e39\u0e14\u0e2b\u0e23\u0e37\u0e2d\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Reports": "\u0e23\u0e32\u0e22\u0e07\u0e32\u0e19",
+ "SMS Center": "\u0e28\u0e39\u0e19\u0e22\u0e4c SMS",
+ "Sales Analytics": "Analytics \u0e02\u0e32\u0e22",
+ "Sales BOM": "BOM \u0e02\u0e32\u0e22",
+ "Sales Order": "\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e32\u0e22",
+ "Sales Orders Pending to be Delivered": "\u0e04\u0e33\u0e2a\u0e31\u0e48\u0e07\u0e02\u0e32\u0e22\u0e17\u0e35\u0e48\u0e23\u0e2d\u0e14\u0e33\u0e40\u0e19\u0e34\u0e19\u0e01\u0e32\u0e23\u0e17\u0e35\u0e48\u0e08\u0e30\u0e2a\u0e48\u0e07\u0e21\u0e2d\u0e1a",
+ "Sales Partner": "\u0e1e\u0e31\u0e19\u0e18\u0e21\u0e34\u0e15\u0e23\u0e01\u0e32\u0e23\u0e02\u0e32\u0e22",
+ "Sales Person": "\u0e04\u0e19\u0e02\u0e32\u0e22",
+ "Sales Returns": "\u0e1c\u0e25\u0e15\u0e2d\u0e1a\u0e41\u0e17\u0e19\u0e17\u0e35\u0e48\u0e44\u0e14\u0e49\u0e02\u0e32\u0e22",
+ "Sales Taxes and Charges Master": "\u0e20\u0e32\u0e29\u0e35\u0e01\u0e32\u0e23\u0e02\u0e32\u0e22\u0e41\u0e25\u0e30\u0e04\u0e48\u0e32\u0e43\u0e0a\u0e49\u0e08\u0e48\u0e32\u0e22\u0e1b\u0e23\u0e34\u0e0d\u0e0d\u0e32\u0e42\u0e17",
+ "Sales campaigns": "\u0e41\u0e04\u0e21\u0e40\u0e1b\u0e0d\u0e01\u0e32\u0e23\u0e02\u0e32\u0e22",
+ "Sales persons and targets": "\u0e04\u0e19\u0e02\u0e32\u0e22\u0e41\u0e25\u0e30\u0e40\u0e1b\u0e49\u0e32\u0e2b\u0e21\u0e32\u0e22",
+ "Sales taxes template.": "\u0e20\u0e32\u0e29\u0e35\u0e01\u0e32\u0e23\u0e02\u0e32\u0e22\u0e41\u0e21\u0e48",
+ "Sales territories.": "\u0e40\u0e02\u0e15\u0e01\u0e32\u0e23\u0e02\u0e32\u0e22",
+ "Send mass SMS to your contacts": "\u0e2a\u0e48\u0e07 SMS \u0e21\u0e27\u0e25\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13",
+ "Setup": "\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07",
+ "Template of terms or contract.": "\u0e41\u0e21\u0e48\u0e02\u0e2d\u0e07\u0e02\u0e49\u0e2d\u0e15\u0e01\u0e25\u0e07\u0e2b\u0e23\u0e37\u0e2d\u0e2a\u0e31\u0e0d\u0e0d\u0e32",
+ "Terms and Conditions": "\u0e02\u0e49\u0e2d\u0e15\u0e01\u0e25\u0e07\u0e41\u0e25\u0e30\u0e40\u0e07\u0e37\u0e48\u0e2d\u0e19\u0e44\u0e02",
+ "Territory": "\u0e2d\u0e32\u0e13\u0e32\u0e40\u0e02\u0e15",
+ "Tools": "\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e21\u0e37\u0e2d",
+ "Tree of item classification": "\u0e15\u0e49\u0e19\u0e44\u0e21\u0e49\u0e02\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e08\u0e31\u0e14\u0e2b\u0e21\u0e27\u0e14\u0e2b\u0e21\u0e39\u0e48\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23",
+ "Trend Analyzer": "\u0e27\u0e34\u0e40\u0e04\u0e23\u0e32\u0e30\u0e2b\u0e4c\u0e41\u0e19\u0e27\u0e42\u0e19\u0e49\u0e21"
+}
\ No newline at end of file
diff --git a/selling/report/customer_addresses_and_contacts/customer_addresses_and_contacts.txt b/selling/report/customer_addresses_and_contacts/customer_addresses_and_contacts.txt
index e5e08a9468b..f51f29528e8 100644
--- a/selling/report/customer_addresses_and_contacts/customer_addresses_and_contacts.txt
+++ b/selling/report/customer_addresses_and_contacts/customer_addresses_and_contacts.txt
@@ -1,20 +1,22 @@
[
{
- "owner": "Administrator",
+ "creation": "2012-10-04 18:45:27",
"docstatus": 0,
- "creation": "2012-10-04 17:36:36",
+ "modified": "2013-02-22 15:53:01",
"modified_by": "Administrator",
- "modified": "2012-10-04 18:24:07"
+ "owner": "Administrator"
},
{
- "name": "__common__",
- "ref_doctype": "Customer",
"doctype": "Report",
"is_standard": "Yes",
- "query": "SELECT\n\t`tabCustomer`.name as customer_id,\n\t`tabCustomer`.customer_name,\n\t`tabCustomer`.customer_group,\n\t`tabAddress`.address_line1,\n\t`tabAddress`.address_line2,\n\t`tabAddress`.city,\n\t`tabAddress`.state,\n\t`tabAddress`.pincode,\n\t`tabAddress`.country,\n\t`tabAddress`.is_primary_address, \n\t`tabContact`.first_name,\n\t`tabContact`.last_name,\n\t`tabContact`.phone,\n\t`tabContact`.mobile_no,\n\t`tabContact`.email_id,\n\t`tabContact`.is_primary_contact\nFROM\n\t`tabCustomer`\n\tleft join `tabAddress` on (\n\t\t`tabAddress`.customer=`tabCustomer`.name\n\t)\n\tleft join `tabContact` on (\n\t\t`tabContact`.customer=`tabCustomer`.name\n\t)\nWHERE\n\t`tabCustomer`.docstatus<2\nORDER BY\n\t`tabCustomer`.name asc"
+ "name": "__common__",
+ "query": "SELECT\n\t`tabCustomer`.name as customer_id,\n\t`tabCustomer`.customer_name,\n\t`tabCustomer`.customer_group,\n\t`tabAddress`.address_line1,\n\t`tabAddress`.address_line2,\n\t`tabAddress`.city,\n\t`tabAddress`.state,\n\t`tabAddress`.pincode,\n\t`tabAddress`.country,\n\t`tabAddress`.is_primary_address, \n\t`tabContact`.first_name,\n\t`tabContact`.last_name,\n\t`tabContact`.phone,\n\t`tabContact`.mobile_no,\n\t`tabContact`.email_id,\n\t`tabContact`.is_primary_contact\nFROM\n\t`tabCustomer`\n\tleft join `tabAddress` on (\n\t\t`tabAddress`.customer=`tabCustomer`.name\n\t)\n\tleft join `tabContact` on (\n\t\t`tabContact`.customer=`tabCustomer`.name\n\t)\nWHERE\n\t`tabCustomer`.docstatus<2\nORDER BY\n\t`tabCustomer`.name asc",
+ "ref_doctype": "Customer",
+ "report_name": "Customer Addresses And Contacts",
+ "report_type": "Query Report"
},
{
- "name": "Customer Addresses and Contacts",
- "doctype": "Report"
+ "doctype": "Report",
+ "name": "Customer Addresses And Contacts"
}
]
\ No newline at end of file
diff --git a/selling/report/sales_orders_pending_to_be_delivered/sales_orders_pending_to_be_delivered.txt b/selling/report/sales_orders_pending_to_be_delivered/sales_orders_pending_to_be_delivered.txt
index 288b5c5f442..c145f4ea393 100644
--- a/selling/report/sales_orders_pending_to_be_delivered/sales_orders_pending_to_be_delivered.txt
+++ b/selling/report/sales_orders_pending_to_be_delivered/sales_orders_pending_to_be_delivered.txt
@@ -1,8 +1,8 @@
[
{
- "creation": "2012-12-07 14:44:19",
+ "creation": "2013-02-21 14:26:46",
"docstatus": 0,
- "modified": "2013-02-21 11:43:20",
+ "modified": "2013-02-22 15:53:24",
"modified_by": "Administrator",
"owner": "Administrator"
},
@@ -10,8 +10,10 @@
"doctype": "Report",
"is_standard": "Yes",
"name": "__common__",
- "query": "select \n `tabSales Order`.`name` as \"S.O. No.:Link/Sales Order:120\",\n `tabSales Order`.`transaction_date` as \"S.O. Date\",\n `tabSales Order`.`delivery_date` as \"Expected Delivery Date\",\n `tabSales Order`.`customer` as \"Customer:Link/Customer:120\",\n `tabSales Order Item`.item_code as \"Item Code:Link/Item:120\",\n `tabSales Order Item`.description as \"Description\",\n `tabSales Order Item`.qty as \"Qty:Float\",\n `tabSales Order Item`.delivered_qty as \"Delivered Qty:Float\",\n `tabSales Order`.`po_no` as \"P.O. No.\"\nfrom\n `tabSales Order`, `tabSales Order Item`\nwhere\n `tabSales Order Item`.`parent` = `tabSales Order`.`name`\n and `tabSales Order`.docstatus = 1\n and `tabSales Order`.status != \"Stopped\"\n and ifnull(`tabSales Order Item`.delivered_qty,0) < ifnull(`tabSales Order Item`.qty,0)\norder by `tabSales Order`.transaction_date asc",
- "ref_doctype": "Sales Order"
+ "query": "select \n `tabSales Order`.`name` as \"S.O. No.:Link/Sales Order:120\",\n `tabSales Order`.`transaction_date` as \"S.O. Date:Date\",\n `tabSales Order`.`delivery_date` as \"Expected Delivery Date:Date\",\n `tabSales Order`.`customer` as \"Customer:Link/Customer:120\",\n `tabSales Order Item`.item_code as \"Item Code:Link/Item:120\",\n `tabSales Order Item`.description as \"Description\",\n `tabSales Order Item`.qty as \"Qty:Float\",\n `tabSales Order Item`.delivered_qty as \"Delivered Qty:Float\",\n `tabSales Order`.`po_no` as \"P.O. No.\"\nfrom\n `tabSales Order`, `tabSales Order Item`\nwhere\n `tabSales Order Item`.`parent` = `tabSales Order`.`name`\n and `tabSales Order`.docstatus = 1\n and `tabSales Order`.status != \"Stopped\"\n and ifnull(`tabSales Order Item`.delivered_qty,0) < ifnull(`tabSales Order Item`.qty,0)\norder by `tabSales Order`.transaction_date asc",
+ "ref_doctype": "Sales Order",
+ "report_name": "Sales Orders Pending To Be Delivered",
+ "report_type": "Query Report"
},
{
"doctype": "Report",
diff --git a/selling/search_criteria/gross_profit/__init__.py b/selling/search_criteria/gross_profit/__init__.py
deleted file mode 100644
index baffc488252..00000000000
--- a/selling/search_criteria/gross_profit/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-from __future__ import unicode_literals
diff --git a/selling/search_criteria/gross_profit/gross_profit.js b/selling/search_criteria/gross_profit/gross_profit.js
deleted file mode 100644
index 29c7e72ccf6..00000000000
--- a/selling/search_criteria/gross_profit/gross_profit.js
+++ /dev/null
@@ -1,38 +0,0 @@
-// ERPNext - web based ERP (http://erpnext.com)
-// Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program. If not, see .
-
-report.customize_filters = function() {
- this.mytabs.items['Select Columns'].hide();
- this.mytabs.tabs['More Filters'].hide();
- this.hide_all_filters();
- this.filter_fields_dict['Delivery Note'+FILTER_SEP +'ID'].df.filter_hide = 0;
- this.filter_fields_dict['Delivery Note'+FILTER_SEP +'From Posting Date'].df.filter_hide = 0;
- this.filter_fields_dict['Delivery Note'+FILTER_SEP +'To Posting Date'].df.filter_hide = 0;
- this.filter_fields_dict['Delivery Note Item'+FILTER_SEP +'Item Code'].df.filter_hide = 0;
- this.filter_fields_dict['Delivery Note'+FILTER_SEP +'Project Name'].df.filter_hide = 0;
-
- this.filter_fields_dict['Delivery Note'+FILTER_SEP +'ID'].df.in_first_page = 1;
- this.filter_fields_dict['Delivery Note'+FILTER_SEP +'From Posting Date'].df.in_first_page = 1;
- this.filter_fields_dict['Delivery Note'+FILTER_SEP +'To Posting Date'].df.in_first_page = 1;
- this.filter_fields_dict['Delivery Note Item'+FILTER_SEP +'Item Code'].df.in_first_page = 1;
- this.filter_fields_dict['Delivery Note'+FILTER_SEP +'Project Name'].df.in_first_page = 1;
-
- this.filter_fields_dict['Delivery Note' + FILTER_SEP +
- 'From Posting Date'].df['report_default'] = sys_defaults["year_start_date"]
- this.filter_fields_dict['Delivery Note' + FILTER_SEP +
- 'To Posting Date'].df['report_default'] = dateutil.obj_to_str(new Date());
-
-}
\ No newline at end of file
diff --git a/selling/search_criteria/gross_profit/gross_profit.py b/selling/search_criteria/gross_profit/gross_profit.py
deleted file mode 100644
index 34719226e32..00000000000
--- a/selling/search_criteria/gross_profit/gross_profit.py
+++ /dev/null
@@ -1,104 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
-
-from __future__ import unicode_literals
-from webnotes.utils import flt
-
-if not (filter_values.get('posting_date') or filter_values.get('posting_date1')):
- msgprint("Please select From and To Posting Date", raise_exception=1)
-
-columns = [
- ['Delivery Note', 'Link', '120px', 'Delivery Note'],
- ['Posting Date', 'Date', '120px', ''],
- ['Posting Time', 'Data', '120px', ''],
- ['Item Code', 'Link', '120px', 'Item'],
- ['Item Name', 'Data', '120px', ''],
- ['Description', 'Data', '120px', ''],
- ['Warehouse', 'Link', '120px', 'Warehouse'],
- ['Project Name', 'Link', '120px', 'Project'],
- ['Quantity', 'Currency', '120px', ''],
- ['Rate', 'Currency', '120px', ''],
- ['Amount', 'Currency', '120px', ''],
- #['DN Item Row Id', 'Data', '120px', ''],
- ['Purchase Cost', 'Currency', '150px', ''],
- ['Gross Profit', 'Currency', '150px', ''],
- ['Gross Profit (%)', 'Currrency', '150px', '']
-]
-
-for c in columns:
- colnames.append(c[0])
- coltypes.append(c[1])
- colwidths.append(c[2])
- coloptions.append(c[3])
- col_idx[c[0]] = len(colnames)-1
-
-sle = sql("""
- select
- actual_qty, incoming_rate, voucher_no, item_code, warehouse, voucher_detail_no
- from
- `tabStock Ledger Entry`
- where
- voucher_type = 'Delivery Note'
- and ifnull(is_cancelled, 'No') = 'No'
- order by posting_date desc, posting_time desc, name desc
-""", as_dict=1)
-
-def get_purchase_cost(dn, item, wh, qty, dn_item_row_id):
- from webnotes.utils import flt
- global sle
- purchase_cost = 0
- packing_items = sql("select item_code, qty from `tabSales BOM Item` where parent = %s", item)
- if packing_items:
- packing_items = [[t[0], flt(t[1])*qty] for t in packing_items]
- else:
- packing_items = [[item, qty]]
- for d in sle:
- if packing_items:
- if d['voucher_no'] == dn \
- and [d['item_code'], flt(abs(d['actual_qty']))] in packing_items \
- and (not d['voucher_detail_no'] or d['voucher_detail_no'] == dn_item_row_id):
- purchase_cost += flt(d['incoming_rate'])*flt(abs(d['actual_qty']))
- packing_items.remove([d['item_code'], flt(abs(d['actual_qty']))])
- else:
- break
-
- return purchase_cost
-
-out, tot_amount, tot_pur_cost = [], 0, 0
-for r in res:
- purchase_cost = get_purchase_cost(r[col_idx['Delivery Note']], r[col_idx['Item Code']], \
- r[col_idx['Warehouse']], r[col_idx['Quantity']], r[-1])
- r.pop(-1)
- r.append(purchase_cost)
-
- gp = flt(r[col_idx['Amount']]) - flt(purchase_cost)
- gp_percent = r[col_idx['Amount']] and purchase_cost and \
- round((gp*100/flt(r[col_idx['Amount']])), 2) or 0
- r.append(fmt_money(gp))
- r.append(fmt_money(gp_percent))
- out.append(r)
-
- tot_amount += flt(r[col_idx['Amount']])
- tot_pur_cost += flt(purchase_cost)
-# Add Total Row
-l_row = ['' for i in range(len(colnames))]
-l_row[col_idx['Project Name']] = 'TOTALS'
-l_row[col_idx['Amount']] = fmt_money(tot_amount)
-l_row[col_idx['Purchase Cost']] = fmt_money(tot_pur_cost)
-l_row[col_idx['Gross Profit']] = fmt_money(flt(tot_amount) - flt(tot_pur_cost))
-l_row[col_idx['Gross Profit (%)']] = tot_amount and \
- round((flt(tot_amount) - flt(tot_pur_cost))*100 / flt(tot_amount), 2)
-out.append(l_row)
\ No newline at end of file
diff --git a/selling/search_criteria/gross_profit/gross_profit.sql b/selling/search_criteria/gross_profit/gross_profit.sql
deleted file mode 100644
index ce176c2ca94..00000000000
--- a/selling/search_criteria/gross_profit/gross_profit.sql
+++ /dev/null
@@ -1,15 +0,0 @@
-SELECT
- dn.name, dn.posting_date, dn.posting_time, dn_item.item_code,
- dn_item.item_name, dn_item.description, dn_item.warehouse,
- dn.project_name, dn_item.qty, dn_item.basic_rate, dn_item.amount, dn_item.name
-FROM
- `tabDelivery Note Item` dn_item, `tabDelivery Note` dn
-WHERE
- dn_item.parent = dn.name
- AND dn.docstatus = 1
- AND dn.name like '%(name)s%%'
- AND ifnull(dn_item.item_code, '') like '%(item_code)s%%'
- AND ifnull(dn.project_name, '') like '%(project_name)s%%'
- AND dn.posting_date >= '%(posting_date)s'
- AND dn.posting_date <= '%(posting_date1)s'
-ORDER BY dn.name DESC
\ No newline at end of file
diff --git a/selling/search_criteria/gross_profit/gross_profit.txt b/selling/search_criteria/gross_profit/gross_profit.txt
deleted file mode 100644
index f726faab95d..00000000000
--- a/selling/search_criteria/gross_profit/gross_profit.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-[
- {
- "owner": "Administrator",
- "docstatus": 0,
- "creation": "2012-05-14 18:22:18",
- "modified_by": "Administrator",
- "modified": "2012-09-24 14:11:39"
- },
- {
- "description": "Invoice wise",
- "parent_doc_type": "Delivery Note",
- "module": "Selling",
- "standard": "Yes",
- "sort_order": "DESC",
- "filters": "{\"Delivery Note\\u0001Submitted\":1,\"Delivery Note\\u0001Status\":[],\"Delivery Note\\u0001Fiscal Year\":[]}",
- "doc_type": "Delivery Note Item",
- "name": "__common__",
- "doctype": "Search Criteria",
- "sort_by": "`tabDelivery Note`.`name`",
- "page_len": 50,
- "criteria_name": "Gross Profit",
- "columns": "Delivery Note\u0001ID,Delivery Note\u0001Posting Date,Delivery Note\u0001Posting Time,Delivery Note Item\u0001Item Code,Delivery Note Item\u0001Item Name,Delivery Note Item\u0001Description,Delivery Note Item\u0001Warehouse,Delivery Note\u0001Project Name,Delivery Note Item\u0001Quantity,Delivery Note Item\u0001Rate*,Delivery Note Item\u0001Amount*"
- },
- {
- "name": "gross_profit",
- "doctype": "Search Criteria"
- }
-]
\ No newline at end of file
diff --git a/setup/doctype/authorization_control/locale/de-doc.json b/setup/doctype/authorization_control/locale/de-doc.json
new file mode 100644
index 00000000000..837e73726e3
--- /dev/null
+++ b/setup/doctype/authorization_control/locale/de-doc.json
@@ -0,0 +1,4 @@
+{
+ "Authorization Control": "Authorization Control",
+ "Setup": "Setup"
+}
\ No newline at end of file
diff --git a/setup/doctype/authorization_control/locale/pt-BR-doc.json b/setup/doctype/authorization_control/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..c492b1dba0b
--- /dev/null
+++ b/setup/doctype/authorization_control/locale/pt-BR-doc.json
@@ -0,0 +1,4 @@
+{
+ "Authorization Control": "Controle de autoriza\u00e7\u00e3o",
+ "Setup": "Configura\u00e7\u00e3o"
+}
\ No newline at end of file
diff --git a/setup/doctype/authorization_control/locale/th-doc.json b/setup/doctype/authorization_control/locale/th-doc.json
new file mode 100644
index 00000000000..b57ced060b2
--- /dev/null
+++ b/setup/doctype/authorization_control/locale/th-doc.json
@@ -0,0 +1,4 @@
+{
+ "Authorization Control": "\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e01\u0e32\u0e23\u0e2d\u0e19\u0e38\u0e21\u0e31\u0e15\u0e34",
+ "Setup": "\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07"
+}
\ No newline at end of file
diff --git a/setup/doctype/authorization_rule/locale/_messages_doc.json b/setup/doctype/authorization_rule/locale/_messages_doc.json
index e72d1b09164..7efab8a0994 100644
--- a/setup/doctype/authorization_rule/locale/_messages_doc.json
+++ b/setup/doctype/authorization_rule/locale/_messages_doc.json
@@ -19,12 +19,12 @@
"Purchase Receipt",
"Grand Total",
"Appraisal",
+ "Applicable To (Employee)",
"Applicable To (User)",
- "Applicable To (Role)",
"Delivery Note",
"Sales Invoice",
"Average Discount",
"Sales Order",
"Approving User",
- "Applicable To (Employee)"
+ "Applicable To (Role)"
]
\ No newline at end of file
diff --git a/setup/doctype/authorization_rule/locale/de-doc.json b/setup/doctype/authorization_rule/locale/de-doc.json
new file mode 100644
index 00000000000..983fb6a3220
--- /dev/null
+++ b/setup/doctype/authorization_rule/locale/de-doc.json
@@ -0,0 +1,30 @@
+{
+ "Above Value": "Vor Wert",
+ "Applicable To (Designation)": "F\u00fcr (Bezeichnung)",
+ "Applicable To (Employee)": "F\u00fcr (Employee)",
+ "Applicable To (Role)": "Anwendbar (Rolle)",
+ "Applicable To (User)": "Anwendbar auf (User)",
+ "Appraisal": "Bewertung",
+ "Approving Role": "Genehmigung Rolle",
+ "Approving User": "Genehmigen Benutzer",
+ "Authorization Rule": "Autorisierungsregel",
+ "Average Discount": "Durchschnittliche Discount",
+ "Based On": "Basierend auf",
+ "Company": "Firma",
+ "Customer / Item Name": "Kunde / Item Name",
+ "Customerwise Discount": "Customerwise Discount",
+ "Delivery Note": "Lieferschein",
+ "Grand Total": "Grand Total",
+ "Itemwise Discount": "Discount Itemwise",
+ "Not Applicable": "Nicht zutreffend",
+ "Purchase Invoice": "Kaufrechnung",
+ "Purchase Order": "Auftragsbest\u00e4tigung",
+ "Purchase Receipt": "Kaufbeleg",
+ "Quotation": "Zitat",
+ "Sales Invoice": "Sales Invoice",
+ "Sales Order": "Sales Order",
+ "Setup": "Setup",
+ "This will be used for setting rule in HR module": "Dies wird f\u00fcr die Einstellung der Regel im HR-Modul verwendet werden",
+ "Transaction": "Transaktion",
+ "Trash Reason": "Trash Reason"
+}
\ No newline at end of file
diff --git a/setup/doctype/authorization_rule/locale/pt-BR-doc.json b/setup/doctype/authorization_rule/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..d221083dcef
--- /dev/null
+++ b/setup/doctype/authorization_rule/locale/pt-BR-doc.json
@@ -0,0 +1,30 @@
+{
+ "Above Value": "Acima de Valor",
+ "Applicable To (Designation)": "Aplic\u00e1vel Para (Designa\u00e7\u00e3o)",
+ "Applicable To (Employee)": "Aplic\u00e1vel Para (Funcion\u00e1rio)",
+ "Applicable To (Role)": "Aplic\u00e1vel Para (Fun\u00e7\u00e3o)",
+ "Applicable To (User)": "Aplic\u00e1vel Para (Usu\u00e1rio)",
+ "Appraisal": "Avalia\u00e7\u00e3o",
+ "Approving Role": "Fun\u00e7\u00e3o Aprovadora",
+ "Approving User": "Usu\u00e1rio Aprovador",
+ "Authorization Rule": "Regra de autoriza\u00e7\u00e3o",
+ "Average Discount": "Desconto M\u00e9dio",
+ "Based On": "Baseado em",
+ "Company": "Empresa",
+ "Customer / Item Name": "Cliente / Nome do item",
+ "Customerwise Discount": "Desconto referente ao Cliente",
+ "Delivery Note": "Guia de Remessa",
+ "Grand Total": "Total Geral",
+ "Itemwise Discount": "Desconto relativo ao Item",
+ "Not Applicable": "N\u00e3o Aplic\u00e1vel",
+ "Purchase Invoice": "Nota Fiscal de Compra",
+ "Purchase Order": "Ordem de Compra",
+ "Purchase Receipt": "Recibo de Compra",
+ "Quotation": "Cota\u00e7\u00e3o",
+ "Sales Invoice": "Nota Fiscal de Venda",
+ "Sales Order": "Ordem de Venda",
+ "Setup": "Configura\u00e7\u00e3o",
+ "This will be used for setting rule in HR module": "Isso ser\u00e1 usado para a defini\u00e7\u00e3o de regras no m\u00f3dulo RH",
+ "Transaction": "Transa\u00e7\u00e3o",
+ "Trash Reason": "Raz\u00e3o de p\u00f4r no lixo"
+}
\ No newline at end of file
diff --git a/setup/doctype/authorization_rule/locale/th-doc.json b/setup/doctype/authorization_rule/locale/th-doc.json
new file mode 100644
index 00000000000..d53bc2c5742
--- /dev/null
+++ b/setup/doctype/authorization_rule/locale/th-doc.json
@@ -0,0 +1,30 @@
+{
+ "Above Value": "\u0e2a\u0e39\u0e07\u0e01\u0e27\u0e48\u0e32\u0e04\u0e48\u0e32",
+ "Applicable To (Designation)": "\u0e17\u0e35\u0e48\u0e43\u0e0a\u0e49\u0e1a\u0e31\u0e07\u0e04\u0e31\u0e1a\u0e01\u0e31\u0e1a (\u0e08\u0e38\u0e14)",
+ "Applicable To (Employee)": "\u0e17\u0e35\u0e48\u0e43\u0e0a\u0e49\u0e1a\u0e31\u0e07\u0e04\u0e31\u0e1a\u0e01\u0e31\u0e1a (\u0e1e\u0e19\u0e31\u0e01\u0e07\u0e32\u0e19)",
+ "Applicable To (Role)": "\u0e17\u0e35\u0e48\u0e43\u0e0a\u0e49\u0e1a\u0e31\u0e07\u0e04\u0e31\u0e1a\u0e01\u0e31\u0e1a (Role)",
+ "Applicable To (User)": "\u0e17\u0e35\u0e48\u0e43\u0e0a\u0e49\u0e1a\u0e31\u0e07\u0e04\u0e31\u0e1a\u0e01\u0e31\u0e1a (User)",
+ "Appraisal": "\u0e01\u0e32\u0e23\u0e15\u0e35\u0e23\u0e32\u0e04\u0e32",
+ "Approving Role": "\u0e2d\u0e19\u0e38\u0e21\u0e31\u0e15\u0e34\u0e1a\u0e17\u0e1a\u0e32\u0e17",
+ "Approving User": "\u0e2d\u0e19\u0e38\u0e21\u0e31\u0e15\u0e34\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49",
+ "Authorization Rule": "\u0e01\u0e0e\u0e01\u0e32\u0e23\u0e2d\u0e19\u0e38\u0e0d\u0e32\u0e15",
+ "Average Discount": "\u0e2a\u0e48\u0e27\u0e19\u0e25\u0e14\u0e40\u0e09\u0e25\u0e35\u0e48\u0e22",
+ "Based On": "\u0e02\u0e36\u0e49\u0e19\u0e2d\u0e22\u0e39\u0e48\u0e01\u0e31\u0e1a",
+ "Company": "\u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17",
+ "Customer / Item Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32 / \u0e23\u0e32\u0e22\u0e01\u0e32\u0e23",
+ "Customerwise Discount": "\u0e2a\u0e48\u0e27\u0e19\u0e25\u0e14 Customerwise",
+ "Delivery Note": "\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e2b\u0e15\u0e38\u0e08\u0e31\u0e14\u0e2a\u0e48\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Grand Total": "\u0e23\u0e27\u0e21\u0e17\u0e31\u0e49\u0e07\u0e2a\u0e34\u0e49\u0e19",
+ "Itemwise Discount": "\u0e2a\u0e48\u0e27\u0e19\u0e25\u0e14 Itemwise",
+ "Not Applicable": "\u0e44\u0e21\u0e48\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19",
+ "Purchase Invoice": "\u0e0b\u0e37\u0e49\u0e2d\u0e43\u0e1a\u0e41\u0e08\u0e49\u0e07\u0e2b\u0e19\u0e35\u0e49",
+ "Purchase Order": "\u0e43\u0e1a\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d",
+ "Purchase Receipt": "\u0e0b\u0e37\u0e49\u0e2d\u0e43\u0e1a\u0e40\u0e2a\u0e23\u0e47\u0e08\u0e23\u0e31\u0e1a\u0e40\u0e07\u0e34\u0e19",
+ "Quotation": "\u0e43\u0e1a\u0e40\u0e2a\u0e19\u0e2d\u0e23\u0e32\u0e04\u0e32",
+ "Sales Invoice": "\u0e02\u0e32\u0e22\u0e43\u0e1a\u0e41\u0e08\u0e49\u0e07\u0e2b\u0e19\u0e35\u0e49",
+ "Sales Order": "\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e32\u0e22",
+ "Setup": "\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07",
+ "This will be used for setting rule in HR module": "\u0e19\u0e35\u0e49\u0e08\u0e30\u0e16\u0e39\u0e01\u0e43\u0e0a\u0e49\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e01\u0e0e\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32\u0e43\u0e19\u0e42\u0e21\u0e14\u0e39\u0e25\u0e17\u0e23\u0e31\u0e1e\u0e22\u0e32\u0e01\u0e23\u0e1a\u0e38\u0e04\u0e04\u0e25",
+ "Transaction": "\u0e01\u0e32\u0e23\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e32\u0e22",
+ "Trash Reason": "\u0e40\u0e2b\u0e15\u0e38\u0e1c\u0e25\u0e16\u0e31\u0e07\u0e02\u0e22\u0e30"
+}
\ No newline at end of file
diff --git a/setup/doctype/brand/locale/de-doc.json b/setup/doctype/brand/locale/de-doc.json
new file mode 100644
index 00000000000..36b1c1f43ee
--- /dev/null
+++ b/setup/doctype/brand/locale/de-doc.json
@@ -0,0 +1,6 @@
+{
+ "Brand": "Marke",
+ "Brand Name": "Markenname",
+ "Description": "Beschreibung",
+ "Setup": "Setup"
+}
\ No newline at end of file
diff --git a/setup/doctype/brand/locale/pt-BR-doc.json b/setup/doctype/brand/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..380f331e5ea
--- /dev/null
+++ b/setup/doctype/brand/locale/pt-BR-doc.json
@@ -0,0 +1,6 @@
+{
+ "Brand": "Marca",
+ "Brand Name": "Marca",
+ "Description": "Descri\u00e7\u00e3o",
+ "Setup": "Configura\u00e7\u00e3o"
+}
\ No newline at end of file
diff --git a/setup/doctype/brand/locale/th-doc.json b/setup/doctype/brand/locale/th-doc.json
new file mode 100644
index 00000000000..76e5579458e
--- /dev/null
+++ b/setup/doctype/brand/locale/th-doc.json
@@ -0,0 +1,6 @@
+{
+ "Brand": "\u0e22\u0e35\u0e48\u0e2b\u0e49\u0e2d",
+ "Brand Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e22\u0e35\u0e48\u0e2b\u0e49\u0e2d",
+ "Description": "\u0e25\u0e31\u0e01\u0e29\u0e13\u0e30",
+ "Setup": "\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07"
+}
\ No newline at end of file
diff --git a/setup/doctype/company/company.py b/setup/doctype/company/company.py
index 94c8f1c929c..9cf722fca4c 100644
--- a/setup/doctype/company/company.py
+++ b/setup/doctype/company/company.py
@@ -37,111 +37,116 @@ class DocType:
# ---------------------------------------------------
def create_default_accounts(self):
self.fld_dict = {'account_name':0,'parent_account':1,'group_or_ledger':2,'is_pl_account':3,'account_type':4,'debit_or_credit':5,'company':6,'tax_rate':7}
- acc_list_common = [['Application of Funds (Assets)','','Group','No','','Debit',self.doc.name,''],
- ['Current Assets','Application of Funds (Assets)','Group','No','','Debit',self.doc.name,''],
- ['Accounts Receivable','Current Assets','Group','No','','Debit',self.doc.name,''],
- ['Bank Accounts','Current Assets','Group','No','Bank or Cash','Debit',self.doc.name,''],
- ['Cash In Hand','Current Assets','Group','No','Bank or Cash','Debit',self.doc.name,''],
- ['Cash','Cash In Hand','Ledger','No','Bank or Cash','Debit',self.doc.name,''],
- ['Loans and Advances (Assets)','Current Assets','Group','No','','Debit',self.doc.name,''],
- ['Securities and Deposits','Current Assets','Group','No','','Debit',self.doc.name,''],
- ['Earnest Money','Securities and Deposits','Ledger','No','','Debit',self.doc.name,''],
- ['Stock In Hand','Current Assets','Group','No','','Debit',self.doc.name,''],
- ['Stock','Stock In Hand','Ledger','No','','Debit',self.doc.name,''],
- ['Tax Assets','Current Assets','Group','No','','Debit',self.doc.name,''],
- ['Fixed Assets','Application of Funds (Assets)','Group','No','','Debit',self.doc.name,''],
- ['Capital Equipments','Fixed Assets','Ledger','No','Fixed Asset Account','Debit',self.doc.name,''],
- ['Computers','Fixed Assets','Ledger','No','Fixed Asset Account','Debit',self.doc.name,''],
- ['Furniture and Fixture','Fixed Assets','Ledger','No','Fixed Asset Account','Debit',self.doc.name,''],
- ['Office Equipments','Fixed Assets','Ledger','No','Fixed Asset Account','Debit',self.doc.name,''],
- ['Plant and Machinery','Fixed Assets','Ledger','No','Fixed Asset Account','Debit',self.doc.name,''],
- ['Investments','Application of Funds (Assets)','Group','No','','Debit',self.doc.name,''],
- ['Temporary Accounts (Assets)','Application of Funds (Assets)','Group','No','','Debit',self.doc.name,''],
- ['Temporary Account (Assets)','Temporary Accounts (Assets)','Ledger','No','','Debit',self.doc.name,''],
- ['Expenses','','Group','Yes','Expense Account','Debit',self.doc.name,''],
- ['Direct Expenses','Expenses','Group','Yes','Expense Account','Debit',self.doc.name,''],
- ['Cost of Goods Sold','Direct Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''],
- ['Indirect Expenses','Expenses','Group','Yes','Expense Account','Debit',self.doc.name,''],
- ['Advertising and Publicity','Indirect Expenses','Ledger','Yes','Chargeable','Debit',self.doc.name,''],
- ['Bad Debts Written Off','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''],
- ['Bank Charges','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''],
- ['Books and Periodicals','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''],
- ['Charity and Donations','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''],
- ['Commission on Sales','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''],
- ['Conveyance Expenses','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''],
- ['Customer Entertainment Expenses','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''],
- ['Depreciation Account','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''],
- ['Freight and Forwarding Charges','Indirect Expenses','Ledger','Yes','Chargeable','Debit',self.doc.name,''],
- ['Legal Expenses','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''],
- ['Miscellaneous Expenses','Indirect Expenses','Ledger','Yes','Chargeable','Debit',self.doc.name,''],
- ['Office Maintenance Expenses','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''],
- ['Office Rent','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''],
- ['Postal Expenses','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''],
- ['Print and Stationary','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''],
- ['Rounded Off','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''],
- ['Salary','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''],
- ['Sales Promotion Expenses','Indirect Expenses','Ledger','Yes','Chargeable','Debit',self.doc.name,''],
- ['Service Charges Paid','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''],
- ['Staff Welfare Expenses','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''],
- ['Telephone Expenses','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''],
- ['Travelling Expenses','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''],
- ['Water and Electricity Expenses','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''],
- ['Income','','Group','Yes','','Credit',self.doc.name,''],
- ['Direct Income','Income','Group','Yes','Income Account','Credit',self.doc.name,''],
- ['Sales','Direct Income','Ledger','Yes','Income Account','Credit',self.doc.name,''],
- ['Service','Direct Income','Ledger','Yes','Income Account','Credit',self.doc.name,''],
- ['Indirect Income','Income','Group','Yes','Income Account','Credit',self.doc.name,''],
- ['Source of Funds (Liabilities)','','Group','No','','Credit',self.doc.name,''],
- ['Capital Account','Source of Funds (Liabilities)','Group','No','','Credit',self.doc.name,''],
- ['Reserves and Surplus','Capital Account','Group','No','','Credit',self.doc.name,''],
- ['Shareholders Funds','Capital Account','Group','No','','Credit',self.doc.name,''],
- ['Current Liabilities','Source of Funds (Liabilities)','Group','No','','Credit',self.doc.name,''],
- ['Accounts Payable','Current Liabilities','Group','No','','Credit',self.doc.name,''],
- ['Duties and Taxes','Current Liabilities','Group','No','','Credit',self.doc.name,''],
- ['Loans (Liabilities)','Current Liabilities','Group','No','','Credit',self.doc.name,''],
- ['Secured Loans','Loans (Liabilities)','Group','No','','Credit',self.doc.name,''],
- ['Unsecured Loans','Loans (Liabilities)','Group','No','','Credit',self.doc.name,''],
- ['Bank Overdraft Account','Loans (Liabilities)','Group','No','','Credit',self.doc.name,''],
- ['Temporary Accounts (Liabilities)','Source of Funds (Liabilities)','Group','No','','Credit',self.doc.name,''],
- ['Temporary Account (Liabilities)','Temporary Accounts (Liabilities)','Ledger','No','','Credit',self.doc.name,'']
- ]
+ acc_list_common = [
+ ['Application of Funds (Assets)','','Group','No','','Debit',self.doc.name,''],
+ ['Current Assets','Application of Funds (Assets)','Group','No','','Debit',self.doc.name,''],
+ ['Accounts Receivable','Current Assets','Group','No','','Debit',self.doc.name,''],
+ ['Bank Accounts','Current Assets','Group','No','Bank or Cash','Debit',self.doc.name,''],
+ ['Cash In Hand','Current Assets','Group','No','Bank or Cash','Debit',self.doc.name,''],
+ ['Cash','Cash In Hand','Ledger','No','Bank or Cash','Debit',self.doc.name,''],
+ ['Loans and Advances (Assets)','Current Assets','Group','No','','Debit',self.doc.name,''],
+ ['Securities and Deposits','Current Assets','Group','No','','Debit',self.doc.name,''],
+ ['Earnest Money','Securities and Deposits','Ledger','No','','Debit',self.doc.name,''],
+ ['Stock In Hand','Current Assets','Group','No','','Debit',self.doc.name,''],
+ ['Stock','Stock In Hand','Ledger','No','','Debit',self.doc.name,''],
+ ['Tax Assets','Current Assets','Group','No','','Debit',self.doc.name,''],
+ ['Stock Delivered But Not Billed','Current Assets','Ledger','No','','Debit',self.doc.name,''],
+ ['Fixed Assets','Application of Funds (Assets)','Group','No','','Debit',self.doc.name,''],
+ ['Capital Equipments','Fixed Assets','Ledger','No','Fixed Asset Account','Debit',self.doc.name,''],
+ ['Computers','Fixed Assets','Ledger','No','Fixed Asset Account','Debit',self.doc.name,''],
+ ['Furniture and Fixture','Fixed Assets','Ledger','No','Fixed Asset Account','Debit',self.doc.name,''],
+ ['Office Equipments','Fixed Assets','Ledger','No','Fixed Asset Account','Debit',self.doc.name,''],
+ ['Plant and Machinery','Fixed Assets','Ledger','No','Fixed Asset Account','Debit',self.doc.name,''],
+ ['Investments','Application of Funds (Assets)','Group','No','','Debit',self.doc.name,''],
+ ['Temporary Accounts (Assets)','Application of Funds (Assets)','Group','No','','Debit',self.doc.name,''],
+ ['Temporary Account (Assets)','Temporary Accounts (Assets)','Ledger','No','','Debit',self.doc.name,''],
+ ['Expenses','','Group','Yes','Expense Account','Debit',self.doc.name,''],
+ ['Direct Expenses','Expenses','Group','Yes','Expense Account','Debit',self.doc.name,''],
+ ['Cost of Goods Sold','Direct Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''],
+ ['Expenses Included In Valuation','Direct Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''],
+ ['Stock Adjustment','Direct Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''],
+ ['Indirect Expenses','Expenses','Group','Yes','Expense Account','Debit',self.doc.name,''],
+ ['Advertising and Publicity','Indirect Expenses','Ledger','Yes','Chargeable','Debit',self.doc.name,''],
+ ['Bad Debts Written Off','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''],
+ ['Bank Charges','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''],
+ ['Books and Periodicals','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''],
+ ['Charity and Donations','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''],
+ ['Commission on Sales','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''],
+ ['Conveyance Expenses','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''],
+ ['Customer Entertainment Expenses','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''],
+ ['Depreciation Account','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''],
+ ['Freight and Forwarding Charges','Indirect Expenses','Ledger','Yes','Chargeable','Debit',self.doc.name,''],
+ ['Legal Expenses','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''],
+ ['Miscellaneous Expenses','Indirect Expenses','Ledger','Yes','Chargeable','Debit',self.doc.name,''],
+ ['Office Maintenance Expenses','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''],
+ ['Office Rent','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''],
+ ['Postal Expenses','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''],
+ ['Print and Stationary','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''],
+ ['Rounded Off','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''],
+ ['Salary','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''],
+ ['Sales Promotion Expenses','Indirect Expenses','Ledger','Yes','Chargeable','Debit',self.doc.name,''],
+ ['Service Charges Paid','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''],
+ ['Staff Welfare Expenses','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''],
+ ['Telephone Expenses','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''],
+ ['Travelling Expenses','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''],
+ ['Water and Electricity Expenses','Indirect Expenses','Ledger','Yes','Expense Account','Debit',self.doc.name,''],
+ ['Income','','Group','Yes','','Credit',self.doc.name,''],
+ ['Direct Income','Income','Group','Yes','Income Account','Credit',self.doc.name,''],
+ ['Sales','Direct Income','Ledger','Yes','Income Account','Credit',self.doc.name,''],
+ ['Service','Direct Income','Ledger','Yes','Income Account','Credit',self.doc.name,''],
+ ['Indirect Income','Income','Group','Yes','Income Account','Credit',self.doc.name,''],
+ ['Source of Funds (Liabilities)','','Group','No','','Credit',self.doc.name,''],
+ ['Capital Account','Source of Funds (Liabilities)','Group','No','','Credit',self.doc.name,''],
+ ['Reserves and Surplus','Capital Account','Group','No','','Credit',self.doc.name,''],
+ ['Shareholders Funds','Capital Account','Group','No','','Credit',self.doc.name,''],
+ ['Current Liabilities','Source of Funds (Liabilities)','Group','No','','Credit',self.doc.name,''],
+ ['Accounts Payable','Current Liabilities','Group','No','','Credit',self.doc.name,''],
+ ['Duties and Taxes','Current Liabilities','Group','No','','Credit',self.doc.name,''],
+ ['Loans (Liabilities)','Current Liabilities','Group','No','','Credit',self.doc.name,''],
+ ['Secured Loans','Loans (Liabilities)','Group','No','','Credit',self.doc.name,''],
+ ['Unsecured Loans','Loans (Liabilities)','Group','No','','Credit',self.doc.name,''],
+ ['Bank Overdraft Account','Loans (Liabilities)','Group','No','','Credit',self.doc.name,''],
+ ['Stock Received But Not Billed','Current Liabilities','Ledger','No','','Credit',self.doc.name,''],
+ ['Temporary Accounts (Liabilities)','Source of Funds (Liabilities)','Group','No','','Credit',self.doc.name,''],
+ ['Temporary Account (Liabilities)','Temporary Accounts (Liabilities)','Ledger','No','','Credit',self.doc.name,'']
+ ]
acc_list_india = [
- ['CENVAT Capital Goods','Tax Assets','Ledger','No','Chargeable','Debit',self.doc.name,''],
- ['CENVAT','Tax Assets','Ledger','No','Chargeable','Debit',self.doc.name,''],
- ['CENVAT Service Tax','Tax Assets','Ledger','No','Chargeable','Debit',self.doc.name,''],
- ['CENVAT Service Tax Cess 1','Tax Assets','Ledger','No','Chargeable','Debit',self.doc.name,''],
- ['CENVAT Service Tax Cess 2','Tax Assets','Ledger','No','Chargeable','Debit',self.doc.name,''],
- ['CENVAT Edu Cess','Tax Assets','Ledger','No','Chargeable','Debit',self.doc.name,''],
- ['CENVAT SHE Cess','Tax Assets','Ledger','No','Chargeable','Debit',self.doc.name,''],
- ['Excise Duty 4','Tax Assets','Ledger','No','Tax','Debit',self.doc.name,'4.00'],
- ['Excise Duty 8','Tax Assets','Ledger','No','Tax','Debit',self.doc.name,'8.00'],
- ['Excise Duty 10','Tax Assets','Ledger','No','Tax','Debit',self.doc.name,'10.00'],
- ['Excise Duty 14','Tax Assets','Ledger','No','Tax','Debit',self.doc.name,'14.00'],
- ['Excise Duty Edu Cess 2','Tax Assets','Ledger','No','Tax','Debit',self.doc.name,'2.00'],
- ['Excise Duty SHE Cess 1','Tax Assets','Ledger','No','Tax','Debit',self.doc.name,'1.00'],
- ['P L A','Tax Assets','Ledger','No','Chargeable','Debit',self.doc.name,''],
- ['P L A - Cess Portion','Tax Assets','Ledger','No','Chargeable','Debit',self.doc.name,''],
- ['Edu. Cess on Excise','Duties and Taxes','Ledger','No','Tax','Credit',self.doc.name,'2.00'],
- ['Edu. Cess on Service Tax','Duties and Taxes','Ledger','No','Tax','Credit',self.doc.name,'2.00'],
- ['Edu. Cess on TDS','Duties and Taxes','Ledger','No','Tax','Credit',self.doc.name,'2.00'],
- ['Excise Duty @ 4','Duties and Taxes','Ledger','No','Tax','Credit',self.doc.name,'4.00'],
- ['Excise Duty @ 8','Duties and Taxes','Ledger','No','Tax','Credit',self.doc.name,'8.00'],
- ['Excise Duty @ 10','Duties and Taxes','Ledger','No','Tax','Credit',self.doc.name,'10.00'],
- ['Excise Duty @ 14','Duties and Taxes','Ledger','No','Tax','Credit',self.doc.name,'14.00'],
- ['Service Tax','Duties and Taxes','Ledger','No','Tax','Credit',self.doc.name,'10.3'],
- ['SHE Cess on Excise','Duties and Taxes','Ledger','No','Tax','Credit',self.doc.name,'1.00'],
- ['SHE Cess on Service Tax','Duties and Taxes','Ledger','No','Tax','Credit',self.doc.name,'1.00'],
- ['SHE Cess on TDS','Duties and Taxes','Ledger','No','Tax','Credit',self.doc.name,'1.00'],
- ['Professional Tax','Duties and Taxes','Ledger','No','Chargeable','Credit',self.doc.name,''],
- ['VAT','Duties and Taxes','Ledger','No','Chargeable','Credit',self.doc.name,''],
- ['TDS (Advertisement)','Duties and Taxes','Ledger','No','Chargeable','Credit',self.doc.name,''],
- ['TDS (Commission)','Duties and Taxes','Ledger','No','Chargeable','Credit',self.doc.name,''],
- ['TDS (Contractor)','Duties and Taxes','Ledger','No','Chargeable','Credit',self.doc.name,''],
- ['TDS (Interest)','Duties and Taxes','Ledger','No','Chargeable','Credit',self.doc.name,''],
- ['TDS (Rent)','Duties and Taxes','Ledger','No','Chargeable','Credit',self.doc.name,''],
- ['TDS (Salary)','Duties and Taxes','Ledger','No','Chargeable','Credit',self.doc.name,'']
- ]
+ ['CENVAT Capital Goods','Tax Assets','Ledger','No','Chargeable','Debit',self.doc.name,''],
+ ['CENVAT','Tax Assets','Ledger','No','Chargeable','Debit',self.doc.name,''],
+ ['CENVAT Service Tax','Tax Assets','Ledger','No','Chargeable','Debit',self.doc.name,''],
+ ['CENVAT Service Tax Cess 1','Tax Assets','Ledger','No','Chargeable','Debit',self.doc.name,''],
+ ['CENVAT Service Tax Cess 2','Tax Assets','Ledger','No','Chargeable','Debit',self.doc.name,''],
+ ['CENVAT Edu Cess','Tax Assets','Ledger','No','Chargeable','Debit',self.doc.name,''],
+ ['CENVAT SHE Cess','Tax Assets','Ledger','No','Chargeable','Debit',self.doc.name,''],
+ ['Excise Duty 4','Tax Assets','Ledger','No','Tax','Debit',self.doc.name,'4.00'],
+ ['Excise Duty 8','Tax Assets','Ledger','No','Tax','Debit',self.doc.name,'8.00'],
+ ['Excise Duty 10','Tax Assets','Ledger','No','Tax','Debit',self.doc.name,'10.00'],
+ ['Excise Duty 14','Tax Assets','Ledger','No','Tax','Debit',self.doc.name,'14.00'],
+ ['Excise Duty Edu Cess 2','Tax Assets','Ledger','No','Tax','Debit',self.doc.name,'2.00'],
+ ['Excise Duty SHE Cess 1','Tax Assets','Ledger','No','Tax','Debit',self.doc.name,'1.00'],
+ ['P L A','Tax Assets','Ledger','No','Chargeable','Debit',self.doc.name,''],
+ ['P L A - Cess Portion','Tax Assets','Ledger','No','Chargeable','Debit',self.doc.name,''],
+ ['Edu. Cess on Excise','Duties and Taxes','Ledger','No','Tax','Credit',self.doc.name,'2.00'],
+ ['Edu. Cess on Service Tax','Duties and Taxes','Ledger','No','Tax','Credit',self.doc.name,'2.00'],
+ ['Edu. Cess on TDS','Duties and Taxes','Ledger','No','Tax','Credit',self.doc.name,'2.00'],
+ ['Excise Duty @ 4','Duties and Taxes','Ledger','No','Tax','Credit',self.doc.name,'4.00'],
+ ['Excise Duty @ 8','Duties and Taxes','Ledger','No','Tax','Credit',self.doc.name,'8.00'],
+ ['Excise Duty @ 10','Duties and Taxes','Ledger','No','Tax','Credit',self.doc.name,'10.00'],
+ ['Excise Duty @ 14','Duties and Taxes','Ledger','No','Tax','Credit',self.doc.name,'14.00'],
+ ['Service Tax','Duties and Taxes','Ledger','No','Tax','Credit',self.doc.name,'10.3'],
+ ['SHE Cess on Excise','Duties and Taxes','Ledger','No','Tax','Credit',self.doc.name,'1.00'],
+ ['SHE Cess on Service Tax','Duties and Taxes','Ledger','No','Tax','Credit',self.doc.name,'1.00'],
+ ['SHE Cess on TDS','Duties and Taxes','Ledger','No','Tax','Credit',self.doc.name,'1.00'],
+ ['Professional Tax','Duties and Taxes','Ledger','No','Chargeable','Credit',self.doc.name,''],
+ ['VAT','Duties and Taxes','Ledger','No','Chargeable','Credit',self.doc.name,''],
+ ['TDS (Advertisement)','Duties and Taxes','Ledger','No','Chargeable','Credit',self.doc.name,''],
+ ['TDS (Commission)','Duties and Taxes','Ledger','No','Chargeable','Credit',self.doc.name,''],
+ ['TDS (Contractor)','Duties and Taxes','Ledger','No','Chargeable','Credit',self.doc.name,''],
+ ['TDS (Interest)','Duties and Taxes','Ledger','No','Chargeable','Credit',self.doc.name,''],
+ ['TDS (Rent)','Duties and Taxes','Ledger','No','Chargeable','Credit',self.doc.name,''],
+ ['TDS (Salary)','Duties and Taxes','Ledger','No','Chargeable','Credit',self.doc.name,'']
+ ]
# load common account heads
for d in acc_list_common:
self.add_acc(d)
@@ -206,6 +211,12 @@ class DocType:
'company_name':self.doc.name,
'group_or_ledger':'Ledger',
'parent_cost_center':'Root - ' + self.doc.abbr
+ },
+ {
+ 'cost_center_name': 'Auto Inventory Accounting',
+ 'company_name': self.doc.name,
+ 'group_or_ledger': 'Ledger',
+ 'parent_cost_center': 'Root - ' + self.doc.abbr
}
]
for cc in cc_list:
diff --git a/setup/doctype/company/company.txt b/setup/doctype/company/company.txt
index a43ec938dad..d97cfc34afe 100644
--- a/setup/doctype/company/company.txt
+++ b/setup/doctype/company/company.txt
@@ -1,8 +1,8 @@
[
{
- "creation": "2013-01-22 16:50:36",
+ "creation": "2013-02-22 01:27:54",
"docstatus": 0,
- "modified": "2013-01-23 16:51:54",
+ "modified": "2013-02-26 10:57:39",
"modified_by": "Administrator",
"owner": "Administrator"
},
@@ -51,12 +51,13 @@
"oldfieldtype": "Section Break"
},
{
+ "description": "Please Enter Abbreviation or Short Name properly as it will be added as Suffix to all Account Heads.",
"doctype": "DocField",
- "fieldname": "company_name",
+ "fieldname": "abbr",
"fieldtype": "Data",
- "label": "Company",
+ "label": "Abbr",
"no_copy": 0,
- "oldfieldname": "company_name",
+ "oldfieldname": "abbr",
"oldfieldtype": "Data",
"reqd": 1
},
@@ -66,13 +67,12 @@
"fieldtype": "Column Break"
},
{
- "description": "Please Enter Abbreviation or Short Name properly as it will be added as Suffix to all Account Heads.",
"doctype": "DocField",
- "fieldname": "abbr",
+ "fieldname": "company_name",
"fieldtype": "Data",
- "label": "Abbr",
+ "label": "Company",
"no_copy": 0,
- "oldfieldname": "abbr",
+ "oldfieldname": "company_name",
"oldfieldtype": "Data",
"reqd": 1
},
@@ -124,6 +124,17 @@
"oldfieldtype": "Link",
"options": "Account"
},
+ {
+ "depends_on": "eval:!doc.__islocal",
+ "description": "This account will be used to maintain value of available stock",
+ "doctype": "DocField",
+ "fieldname": "stock_in_hand_account",
+ "fieldtype": "Link",
+ "label": "Stock In Hand Account",
+ "no_copy": 1,
+ "options": "Account",
+ "read_only": 0
+ },
{
"doctype": "DocField",
"fieldname": "column_break0",
diff --git a/setup/doctype/company/locale/_messages_doc.json b/setup/doctype/company/locale/_messages_doc.json
index 5e37d320719..febcf8f47ee 100644
--- a/setup/doctype/company/locale/_messages_doc.json
+++ b/setup/doctype/company/locale/_messages_doc.json
@@ -2,22 +2,24 @@
"If Monthly Budget Exceeded",
"Company registration numbers for your reference. Tax numbers etc.",
"Phone No",
+ "This account will be used to maintain value of available stock",
"Registration Info",
"Trash Reason",
+ "Stock In Hand Account",
"Default Bank Account",
- "For reference only.",
- "Website",
+ "Email",
"Please Enter Abbreviation or Short Name properly as it will be added as Suffix to all Account Heads.",
"Fax",
"Company",
"Stop",
"Credit Limit",
"Default Settings",
- "Email",
+ "For reference only.",
"Warn",
"Abbr",
"Address",
"Company Details",
+ "Website",
"Default Currency",
"Registration Details",
"Setup",
diff --git a/setup/doctype/company/locale/de-doc.json b/setup/doctype/company/locale/de-doc.json
new file mode 100644
index 00000000000..cf5ebfda1b9
--- /dev/null
+++ b/setup/doctype/company/locale/de-doc.json
@@ -0,0 +1,32 @@
+{
+ "Abbr": "Abk.",
+ "Address": "Adresse",
+ "Company": "Firma",
+ "Company Details": "Unternehmensprofil",
+ "Company Info": "Firmeninfo",
+ "Company registration numbers for your reference. Example: VAT Registration Numbers etc.": "Handelsregisternummer f\u00fcr Ihre Referenz. Beispiel: Umsatzsteuer-Identifikationsnummern usw.",
+ "Company registration numbers for your reference. Tax numbers etc.": "Handelsregisternummer f\u00fcr Ihre Referenz. MwSt.-Nummern etc.",
+ "Credit Days": "Kredit-Tage",
+ "Credit Limit": "Kreditlimit",
+ "Default Bank Account": "Standard Bank Account",
+ "Default Currency": "Standardw\u00e4hrung",
+ "Default Settings": "Default Settings",
+ "Email": "E-Mail",
+ "Fax": "Fax",
+ "For reference only.": "Nur als Referenz.",
+ "If Monthly Budget Exceeded": "Wenn Monthly Budget \u00fcberschritten",
+ "If Yearly Budget Exceeded": "Wenn Jahresbudget \u00fcberschritten",
+ "Ignore": "Ignorieren",
+ "Legal Entity / Subsidiary with a separate Chart of Accounts belonging to the Organization.": "Legal Entity / Tochtergesellschaft mit einem separaten Kontenplan Zugeh\u00f6rigkeit zu der Organisation.",
+ "Payables Group": "Verbindlichkeiten Gruppe",
+ "Phone No": "Phone In",
+ "Please Enter Abbreviation or Short Name properly as it will be added as Suffix to all Account Heads.": "Bitte geben Abk\u00fcrzung oder das Kurzer Name enquiry.c es auf alle Suffix Konto Heads hinzugef\u00fcgt werden.",
+ "Receivables Group": "Forderungen Gruppe",
+ "Registration Details": "Registrierung Details",
+ "Registration Info": "Registrierung Info",
+ "Setup": "Setup",
+ "Stop": "Stoppen",
+ "Trash Reason": "Trash Reason",
+ "Warn": "Warnen",
+ "Website": "Webseite"
+}
\ No newline at end of file
diff --git a/setup/doctype/company/locale/pt-BR-doc.json b/setup/doctype/company/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..3e917d88101
--- /dev/null
+++ b/setup/doctype/company/locale/pt-BR-doc.json
@@ -0,0 +1,32 @@
+{
+ "Abbr": "Abrev",
+ "Address": "Endere\u00e7o",
+ "Company": "Empresa",
+ "Company Details": "Detalhes da Empresa",
+ "Company Info": "Informa\u00e7\u00f5es da Empresa",
+ "Company registration numbers for your reference. Example: VAT Registration Numbers etc.": "N\u00fameros de registro da empresa para sua refer\u00eancia. Exemplo: CNPJ, IE, etc",
+ "Company registration numbers for your reference. Tax numbers etc.": "N\u00fameros da empresa de registro para sua refer\u00eancia. N\u00fameros fiscais, etc",
+ "Credit Days": "Dias de Cr\u00e9dito",
+ "Credit Limit": "Limite de Cr\u00e9dito",
+ "Default Bank Account": "Conta Banc\u00e1ria Padr\u00e3o",
+ "Default Currency": "Moeda padr\u00e3o",
+ "Default Settings": "Configura\u00e7\u00f5es padr\u00e3o",
+ "Email": "E-mail",
+ "Fax": "Fax",
+ "For reference only.": "Apenas para refer\u00eancia.",
+ "If Monthly Budget Exceeded": "Se o or\u00e7amento mensal for excedido",
+ "If Yearly Budget Exceeded": "Se or\u00e7amento anual for excedido",
+ "Ignore": "Ignorar",
+ "Legal Entity / Subsidiary with a separate Chart of Accounts belonging to the Organization.": "Pessoa Jur\u00eddica / Subsidi\u00e1ria, com um plano de Contas separado, pertencentes \u00e0 Organiza\u00e7\u00e3o.",
+ "Payables Group": "Grupo de contas a pagar",
+ "Phone No": "N\u00ba de telefone",
+ "Please Enter Abbreviation or Short Name properly as it will be added as Suffix to all Account Heads.": "Por favor insira a correta Abrevia\u00e7\u00e3o ou Nome Curto pois ele ser\u00e1 adicionado como sufixo a todas as Contas.",
+ "Receivables Group": "Grupo de receb\u00edveis",
+ "Registration Details": "Detalhes de Registro",
+ "Registration Info": "Informa\u00e7\u00f5es do Registro",
+ "Setup": "Configura\u00e7\u00e3o",
+ "Stop": "Pare",
+ "Trash Reason": "Raz\u00e3o de p\u00f4r no lixo",
+ "Warn": "Avisar",
+ "Website": "Site"
+}
\ No newline at end of file
diff --git a/setup/doctype/company/locale/th-doc.json b/setup/doctype/company/locale/th-doc.json
new file mode 100644
index 00000000000..05cb635ffc3
--- /dev/null
+++ b/setup/doctype/company/locale/th-doc.json
@@ -0,0 +1,32 @@
+{
+ "Abbr": "abbr",
+ "Address": "\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48",
+ "Company": "\u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17",
+ "Company Details": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14 \u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17",
+ "Company Info": "\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25 \u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17",
+ "Company registration numbers for your reference. Example: VAT Registration Numbers etc.": "\u0e40\u0e25\u0e02\u0e17\u0e30\u0e40\u0e1a\u0e35\u0e22\u0e19 \u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17 \u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e2d\u0e49\u0e32\u0e07\u0e2d\u0e34\u0e07\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13 \u0e15\u0e31\u0e27\u0e2d\u0e22\u0e48\u0e32\u0e07: \u0e2b\u0e21\u0e32\u0e22\u0e40\u0e25\u0e02\u0e17\u0e30\u0e40\u0e1a\u0e35\u0e22\u0e19\u0e20\u0e32\u0e29\u0e35\u0e21\u0e39\u0e25\u0e04\u0e48\u0e32\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e1b\u0e47\u0e19\u0e15\u0e49\u0e19",
+ "Company registration numbers for your reference. Tax numbers etc.": "\u0e40\u0e25\u0e02\u0e17\u0e30\u0e40\u0e1a\u0e35\u0e22\u0e19 \u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17 \u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e2d\u0e49\u0e32\u0e07\u0e2d\u0e34\u0e07\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13 \u0e15\u0e31\u0e27\u0e40\u0e25\u0e02\u0e20\u0e32\u0e29\u0e35 \u0e2f\u0e25\u0e2f",
+ "Credit Days": "\u0e27\u0e31\u0e19\u0e40\u0e04\u0e23\u0e14\u0e34\u0e15",
+ "Credit Limit": "\u0e27\u0e07\u0e40\u0e07\u0e34\u0e19\u0e2a\u0e34\u0e19\u0e40\u0e0a\u0e37\u0e48\u0e2d",
+ "Default Bank Account": "\u0e1a\u0e31\u0e0d\u0e0a\u0e35\u0e18\u0e19\u0e32\u0e04\u0e32\u0e23\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19",
+ "Default Currency": "\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19",
+ "Default Settings": "\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19",
+ "Email": "\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e4c",
+ "Fax": "\u0e41\u0e1f\u0e01\u0e0b\u0e4c",
+ "For reference only.": "\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e2d\u0e49\u0e32\u0e07\u0e2d\u0e34\u0e07\u0e40\u0e17\u0e48\u0e32\u0e19\u0e31\u0e49\u0e19",
+ "If Monthly Budget Exceeded": "\u0e2b\u0e32\u0e01\u0e07\u0e1a\u0e1b\u0e23\u0e30\u0e21\u0e32\u0e13\u0e23\u0e32\u0e22\u0e40\u0e14\u0e37\u0e2d\u0e19\u0e17\u0e35\u0e48\u0e40\u0e01\u0e34\u0e19",
+ "If Yearly Budget Exceeded": "\u0e16\u0e49\u0e32\u0e07\u0e1a\u0e1b\u0e23\u0e30\u0e21\u0e32\u0e13\u0e1b\u0e23\u0e30\u0e08\u0e33\u0e1b\u0e35\u0e40\u0e01\u0e34\u0e19",
+ "Ignore": "\u0e44\u0e21\u0e48\u0e2a\u0e19\u0e43\u0e08",
+ "Legal Entity / Subsidiary with a separate Chart of Accounts belonging to the Organization.": "\u0e19\u0e34\u0e15\u0e34\u0e1a\u0e38\u0e04\u0e04\u0e25 / \u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17 \u0e22\u0e48\u0e2d\u0e22\u0e14\u0e49\u0e27\u0e22\u0e41\u0e1c\u0e19\u0e20\u0e39\u0e21\u0e34\u0e17\u0e35\u0e48\u0e41\u0e22\u0e01\u0e15\u0e48\u0e32\u0e07\u0e2b\u0e32\u0e01\u0e08\u0e32\u0e01\u0e1a\u0e31\u0e0d\u0e0a\u0e35\u0e40\u0e1b\u0e47\u0e19\u0e02\u0e2d\u0e07\u0e2d\u0e07\u0e04\u0e4c\u0e01\u0e32\u0e23",
+ "Payables Group": "\u0e01\u0e25\u0e38\u0e48\u0e21\u0e40\u0e08\u0e49\u0e32\u0e2b\u0e19\u0e35\u0e49",
+ "Phone No": "\u0e42\u0e17\u0e23\u0e28\u0e31\u0e1e\u0e17\u0e4c\u0e44\u0e21\u0e48\u0e21\u0e35",
+ "Please Enter Abbreviation or Short Name properly as it will be added as Suffix to all Account Heads.": "\u0e01\u0e23\u0e38\u0e13\u0e32\u0e43\u0e2a\u0e48\u0e0a\u0e37\u0e48\u0e2d\u0e22\u0e48\u0e2d\u0e2b\u0e23\u0e37\u0e2d\u0e0a\u0e37\u0e48\u0e2d\u0e2a\u0e31\u0e49\u0e19\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07\u0e15\u0e32\u0e21\u0e01\u0e47\u0e08\u0e30\u0e16\u0e39\u0e01\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e1b\u0e47\u0e19\u0e04\u0e33\u0e15\u0e48\u0e2d\u0e17\u0e49\u0e32\u0e22\u0e17\u0e38\u0e01\u0e2b\u0e31\u0e27\u0e1a\u0e31\u0e0d\u0e0a\u0e35",
+ "Receivables Group": "\u0e01\u0e25\u0e38\u0e48\u0e21\u0e25\u0e39\u0e01\u0e2b\u0e19\u0e35\u0e49",
+ "Registration Details": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e01\u0e32\u0e23\u0e25\u0e07\u0e17\u0e30\u0e40\u0e1a\u0e35\u0e22\u0e19",
+ "Registration Info": "\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e01\u0e32\u0e23\u0e25\u0e07\u0e17\u0e30\u0e40\u0e1a\u0e35\u0e22\u0e19",
+ "Setup": "\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07",
+ "Stop": "\u0e2b\u0e22\u0e38\u0e14",
+ "Trash Reason": "\u0e40\u0e2b\u0e15\u0e38\u0e1c\u0e25\u0e16\u0e31\u0e07\u0e02\u0e22\u0e30",
+ "Warn": "\u0e40\u0e15\u0e37\u0e2d\u0e19",
+ "Website": "\u0e40\u0e27\u0e47\u0e1a\u0e44\u0e0b\u0e15\u0e4c"
+}
\ No newline at end of file
diff --git a/setup/doctype/contact_control/locale/_messages_doc.json b/setup/doctype/contact_control/locale/_messages_doc.json
index 09d529c17f8..3c6d3a6e000 100644
--- a/setup/doctype/contact_control/locale/_messages_doc.json
+++ b/setup/doctype/contact_control/locale/_messages_doc.json
@@ -1,7 +1,7 @@
[
"Customer Intro",
- "Header",
+ "Supplier Intro",
"Setup",
- "Contact Control",
- "Supplier Intro"
+ "Header",
+ "Contact Control"
]
\ No newline at end of file
diff --git a/setup/doctype/contact_control/locale/de-doc.json b/setup/doctype/contact_control/locale/de-doc.json
new file mode 100644
index 00000000000..e1ef80c18f2
--- /dev/null
+++ b/setup/doctype/contact_control/locale/de-doc.json
@@ -0,0 +1,7 @@
+{
+ "Contact Control": "Kontakt Kontrolle",
+ "Customer Intro": "Kunden Intro",
+ "Header": "Kopfzeile",
+ "Setup": "Setup",
+ "Supplier Intro": "Lieferant Intro"
+}
\ No newline at end of file
diff --git a/setup/doctype/contact_control/locale/pt-BR-doc.json b/setup/doctype/contact_control/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..2e1ee3dda1b
--- /dev/null
+++ b/setup/doctype/contact_control/locale/pt-BR-doc.json
@@ -0,0 +1,7 @@
+{
+ "Contact Control": "Controle de Contato",
+ "Customer Intro": "Introdu\u00e7\u00e3o do Cliente",
+ "Header": "Cabe\u00e7alho",
+ "Setup": "Configura\u00e7\u00e3o",
+ "Supplier Intro": "Introdu\u00e7\u00e3o do Fornecedor"
+}
\ No newline at end of file
diff --git a/setup/doctype/contact_control/locale/th-doc.json b/setup/doctype/contact_control/locale/th-doc.json
new file mode 100644
index 00000000000..312a4cfb123
--- /dev/null
+++ b/setup/doctype/contact_control/locale/th-doc.json
@@ -0,0 +1,7 @@
+{
+ "Contact Control": "\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21",
+ "Customer Intro": "\u0e41\u0e19\u0e30\u0e19\u0e33\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Header": "\u0e2a\u0e48\u0e27\u0e19\u0e2b\u0e31\u0e27",
+ "Setup": "\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07",
+ "Supplier Intro": "\u0e41\u0e19\u0e30\u0e19\u0e33\u0e1c\u0e39\u0e49\u0e1c\u0e25\u0e34\u0e15"
+}
\ No newline at end of file
diff --git a/setup/doctype/country/locale/_messages_doc.json b/setup/doctype/country/locale/_messages_doc.json
index bee86862d4f..269085fb244 100644
--- a/setup/doctype/country/locale/_messages_doc.json
+++ b/setup/doctype/country/locale/_messages_doc.json
@@ -1,7 +1,7 @@
[
- "Time Zones",
"Country",
"Setup",
- "Country Name",
- "Date Format"
+ "Date Format",
+ "Time Zones",
+ "Country Name"
]
\ No newline at end of file
diff --git a/setup/doctype/country/locale/de-doc.json b/setup/doctype/country/locale/de-doc.json
new file mode 100644
index 00000000000..b712eec1572
--- /dev/null
+++ b/setup/doctype/country/locale/de-doc.json
@@ -0,0 +1,7 @@
+{
+ "Country": "Land",
+ "Country Name": "Land Name",
+ "Date Format": "Datumsformat",
+ "Setup": "Setup",
+ "Time Zones": "Time Zones"
+}
\ No newline at end of file
diff --git a/setup/doctype/country/locale/pt-BR-doc.json b/setup/doctype/country/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..614140c0e84
--- /dev/null
+++ b/setup/doctype/country/locale/pt-BR-doc.json
@@ -0,0 +1,7 @@
+{
+ "Country": "Pa\u00eds",
+ "Country Name": "Nome do Pa\u00eds",
+ "Date Format": "Formato da data",
+ "Setup": "Configura\u00e7\u00e3o",
+ "Time Zones": "Fusos hor\u00e1rios"
+}
\ No newline at end of file
diff --git a/setup/doctype/country/locale/th-doc.json b/setup/doctype/country/locale/th-doc.json
new file mode 100644
index 00000000000..99ea2e5cea2
--- /dev/null
+++ b/setup/doctype/country/locale/th-doc.json
@@ -0,0 +1,7 @@
+{
+ "Country": "\u0e1b\u0e23\u0e30\u0e40\u0e17\u0e28",
+ "Country Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e1b\u0e23\u0e30\u0e40\u0e17\u0e28",
+ "Date Format": "\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48",
+ "Setup": "\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07",
+ "Time Zones": "\u0e40\u0e02\u0e15\u0e40\u0e27\u0e25\u0e32"
+}
\ No newline at end of file
diff --git a/setup/doctype/currency/locale/_messages_doc.json b/setup/doctype/currency/locale/_messages_doc.json
index 5b8c2a5effd..3502c13cf4a 100644
--- a/setup/doctype/currency/locale/_messages_doc.json
+++ b/setup/doctype/currency/locale/_messages_doc.json
@@ -1,22 +1,15 @@
[
"Fraction Units",
- "#,###.###",
+ "Currency Name",
+ "Fraction",
+ "Sub-currency. For e.g. \"Cent\"",
+ "1 Currency = [?] Fraction\nFor e.g. 1 USD = 100 Cent",
+ "Symbol",
+ "A symbol for this currency. For e.g. $",
+ "**Currency** Master",
"Number Format",
"Setup",
- "Symbol",
"Enabled",
- "#,##,###.##",
"How should this currency be formatted? If not set, will use system defaults",
- "Currency",
- "A symbol for this currency. For e.g. $",
- "Currency Name",
- "1 Currency = [?] FractionFor e.g. 1 USD = 100 Cent",
- "Fraction",
- "#.###,##",
- "#,###",
- "# ###.##",
- "Sub-currency. For e.g. \"Cent\"",
- "**Currency** Master",
- "#,###.##",
- "#.###"
+ "Currency"
]
\ No newline at end of file
diff --git a/setup/doctype/currency/locale/de-doc.json b/setup/doctype/currency/locale/de-doc.json
new file mode 100644
index 00000000000..fc6a03bb34a
--- /dev/null
+++ b/setup/doctype/currency/locale/de-doc.json
@@ -0,0 +1,14 @@
+{
+ "**Currency** Master": "** W\u00e4hrung ** Meister",
+ "A symbol for this currency. For e.g. $": "Ein Symbol f\u00fcr diese W\u00e4hrung. F\u00fcr z.B. $",
+ "Currency": "W\u00e4hrung",
+ "Currency Name": "W\u00e4hrung Name",
+ "Enabled": "Aktiviert",
+ "Fraction": "Bruchteil",
+ "Fraction Units": "Fraction Units",
+ "How should this currency be formatted? If not set, will use system defaults": "Wie soll diese W\u00e4hrung formatiert werden? Wenn nicht gesetzt, verwenden Standardeinstellungen des Systems",
+ "Number Format": "Number Format",
+ "Setup": "Setup",
+ "Sub-currency. For e.g. \"Cent\"": "Sub-W\u00e4hrung. F\u00fcr z.B. \"Cent\"",
+ "Symbol": "Symbol"
+}
\ No newline at end of file
diff --git a/setup/doctype/currency/locale/pt-BR-doc.json b/setup/doctype/currency/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..857e1d3d2ee
--- /dev/null
+++ b/setup/doctype/currency/locale/pt-BR-doc.json
@@ -0,0 +1,14 @@
+{
+ "**Currency** Master": "Cadastro de **Moeda**",
+ "A symbol for this currency. For e.g. $": "Um s\u00edmbolo para esta moeda. Por exemplo: $",
+ "Currency": "Moeda",
+ "Currency Name": "Nome da Moeda",
+ "Enabled": "Habilitado",
+ "Fraction": "Fra\u00e7\u00e3o",
+ "Fraction Units": "Unidades fracionadas",
+ "How should this currency be formatted? If not set, will use system defaults": "Como essa moeda deve ser formatada? Se n\u00e3o for definido, ser\u00e3o usados os padr\u00f5es do sistema",
+ "Number Format": "Formato de n\u00famero",
+ "Setup": "Configura\u00e7\u00e3o",
+ "Sub-currency. For e.g. \"Cent\"": "Sub-moeda. Por exemplo "Centavo"",
+ "Symbol": "S\u00edmbolo"
+}
\ No newline at end of file
diff --git a/setup/doctype/currency/locale/th-doc.json b/setup/doctype/currency/locale/th-doc.json
new file mode 100644
index 00000000000..a7fedf9bb7b
--- /dev/null
+++ b/setup/doctype/currency/locale/th-doc.json
@@ -0,0 +1,22 @@
+{
+ "# ###.##": "# # # #. # #",
+ "#,###": "# # # #",
+ "#,###.##": "# # # #. # #",
+ "#,###.###": "# # # #. # # #",
+ "#,##,###.##": "# # # # # #. # #",
+ "#.###": "#. # # #",
+ "#.###,##": "#. # # # # #",
+ "**Currency** Master": "\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19 ** ** \u0e42\u0e17",
+ "1 Currency = [?] FractionFor e.g. 1 USD = 100 Cent": "1 \u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19 = [?] FractionFor \u0e40\u0e0a\u0e48\u0e19 1 USD = 100 Cent",
+ "A symbol for this currency. For e.g. $": "\u0e2a\u0e31\u0e0d\u0e25\u0e31\u0e01\u0e29\u0e13\u0e4c\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e19\u0e35\u0e49 \u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e40\u0e0a\u0e48\u0e19 $",
+ "Currency": "\u0e40\u0e07\u0e34\u0e19\u0e15\u0e23\u0e32",
+ "Currency Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e2a\u0e01\u0e38\u0e25",
+ "Enabled": "\u0e40\u0e1b\u0e34\u0e14\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19",
+ "Fraction": "\u0e40\u0e28\u0e29",
+ "Fraction Units": "\u0e2b\u0e19\u0e48\u0e27\u0e22\u0e40\u0e28\u0e29",
+ "How should this currency be formatted? If not set, will use system defaults": "\u0e27\u0e34\u0e18\u0e35\u0e01\u0e32\u0e23\u0e17\u0e35\u0e48\u0e04\u0e27\u0e23\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e19\u0e35\u0e49\u0e08\u0e30\u0e08\u0e31\u0e14\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a? \u0e16\u0e49\u0e32\u0e44\u0e21\u0e48\u0e15\u0e31\u0e49\u0e07\u0e08\u0e30\u0e43\u0e0a\u0e49\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19\u0e02\u0e2d\u0e07\u0e23\u0e30\u0e1a\u0e1a",
+ "Number Format": "\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a\u0e08\u0e33\u0e19\u0e27\u0e19",
+ "Setup": "\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07",
+ "Sub-currency. For e.g. \"Cent\"": "\u0e22\u0e48\u0e2d\u0e22\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19 \u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a "\u0e23\u0e49\u0e2d\u0e22" \u0e40\u0e0a\u0e48\u0e19",
+ "Symbol": "\u0e2a\u0e31\u0e0d\u0e0d\u0e25\u0e31\u0e01\u0e29\u0e13\u0e4c"
+}
\ No newline at end of file
diff --git a/setup/doctype/customer_group/locale/_messages_doc.json b/setup/doctype/customer_group/locale/_messages_doc.json
index d9dafb97ec6..ccbb2d526ad 100644
--- a/setup/doctype/customer_group/locale/_messages_doc.json
+++ b/setup/doctype/customer_group/locale/_messages_doc.json
@@ -3,10 +3,10 @@
"rgt",
"Only leaf nodes are allowed in transaction",
"No",
- "Parent Customer Group",
+ "Has Child Node",
"Setup",
"This Price List will be selected as default for all Customers under this Group.",
- "Has Child Node",
+ "Parent Customer Group",
"Customer Group Name",
"old_parent",
"lft",
diff --git a/setup/doctype/customer_group/locale/de-doc.json b/setup/doctype/customer_group/locale/de-doc.json
new file mode 100644
index 00000000000..8f2ac4c693f
--- /dev/null
+++ b/setup/doctype/customer_group/locale/de-doc.json
@@ -0,0 +1,16 @@
+{
+ "Customer Group": "Customer Group",
+ "Customer Group Name": "Kunden Group Name",
+ "Default Price List": "Standard Preisliste",
+ "Has Child Node": "Hat Child Node",
+ "No": "Auf",
+ "Only leaf nodes are allowed in transaction": "Nur Blattknoten in Transaktion zul\u00e4ssig",
+ "Parent Customer Group": "Eltern Customer Group",
+ "Setup": "Setup",
+ "This Price List will be selected as default for all Customers under this Group.": "Diese Preisliste wird als Standard f\u00fcr alle Kunden unter dieser Gruppe ausgew\u00e4hlt werden.",
+ "Trash Reason": "Trash Reason",
+ "Yes": "Ja",
+ "lft": "lft",
+ "old_parent": "old_parent",
+ "rgt": "rgt"
+}
\ No newline at end of file
diff --git a/setup/doctype/customer_group/locale/pt-BR-doc.json b/setup/doctype/customer_group/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..7fcd0a23bd7
--- /dev/null
+++ b/setup/doctype/customer_group/locale/pt-BR-doc.json
@@ -0,0 +1,16 @@
+{
+ "Customer Group": "Grupo de Clientes",
+ "Customer Group Name": "Nome do grupo de Clientes",
+ "Default Price List": "Lista de Pre\u00e7os padr\u00e3o",
+ "Has Child Node": "Tem n\u00f3 filho",
+ "No": "N\u00e3o",
+ "Only leaf nodes are allowed in transaction": "Somente n\u00f3s-folha s\u00e3o permitidos em transa\u00e7\u00f5es",
+ "Parent Customer Group": "Grupo de Clientes pai",
+ "Setup": "Configura\u00e7\u00e3o",
+ "This Price List will be selected as default for all Customers under this Group.": "Esta lista de pre\u00e7os ser\u00e1 selecionado como padr\u00e3o para todos os clientes sob este grupo.",
+ "Trash Reason": "Raz\u00e3o de p\u00f4r no lixo",
+ "Yes": "Sim",
+ "lft": "esq.",
+ "old_parent": "old_parent",
+ "rgt": "dir."
+}
\ No newline at end of file
diff --git a/setup/doctype/customer_group/locale/th-doc.json b/setup/doctype/customer_group/locale/th-doc.json
new file mode 100644
index 00000000000..efa4e03d093
--- /dev/null
+++ b/setup/doctype/customer_group/locale/th-doc.json
@@ -0,0 +1,16 @@
+{
+ "Customer Group": "\u0e01\u0e25\u0e38\u0e48\u0e21\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Customer Group Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e01\u0e25\u0e38\u0e48\u0e21\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Default Price List": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e23\u0e32\u0e04\u0e32\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19",
+ "Has Child Node": "\u0e21\u0e35\u0e42\u0e2b\u0e19\u0e14\u0e25\u0e39\u0e01",
+ "No": "\u0e44\u0e21\u0e48",
+ "Only leaf nodes are allowed in transaction": "\u0e42\u0e2b\u0e19\u0e14\u0e43\u0e1a\u0e40\u0e17\u0e48\u0e32\u0e19\u0e31\u0e49\u0e19\u0e17\u0e35\u0e48\u0e08\u0e30\u0e40\u0e02\u0e49\u0e32\u0e43\u0e19\u0e01\u0e32\u0e23\u0e17\u0e33\u0e18\u0e38\u0e23\u0e01\u0e23\u0e23\u0e21",
+ "Parent Customer Group": "\u0e01\u0e25\u0e38\u0e48\u0e21\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32\u0e1c\u0e39\u0e49\u0e1b\u0e01\u0e04\u0e23\u0e2d\u0e07",
+ "Setup": "\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07",
+ "This Price List will be selected as default for all Customers under this Group.": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e23\u0e32\u0e04\u0e32\u0e19\u0e35\u0e49\u0e08\u0e30\u0e16\u0e39\u0e01\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e40\u0e1b\u0e47\u0e19\u0e04\u0e48\u0e32\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14\u0e20\u0e32\u0e22\u0e43\u0e15\u0e49\u0e01\u0e25\u0e38\u0e48\u0e21\u0e19\u0e35\u0e49",
+ "Trash Reason": "\u0e40\u0e2b\u0e15\u0e38\u0e1c\u0e25\u0e16\u0e31\u0e07\u0e02\u0e22\u0e30",
+ "Yes": "\u0e43\u0e0a\u0e48",
+ "lft": "lft",
+ "old_parent": "old_parent",
+ "rgt": "RGT"
+}
\ No newline at end of file
diff --git a/setup/doctype/email_digest/email_digest.py b/setup/doctype/email_digest/email_digest.py
index 9f28f132860..cb49f3cf99c 100644
--- a/setup/doctype/email_digest/email_digest.py
+++ b/setup/doctype/email_digest/email_digest.py
@@ -17,14 +17,16 @@
from __future__ import unicode_literals
import webnotes
from webnotes import _
-from webnotes.utils import fmt_money, formatdate, now_datetime, cstr, esc, get_url_to_form
+from webnotes.utils import fmt_money, formatdate, now_datetime, cstr, esc, \
+ get_url_to_form, get_fullname
from webnotes.utils.dateutils import datetime_in_user_format
from datetime import timedelta
from dateutil.relativedelta import relativedelta
content_sequence = [
- ["Accounts", ["income_year_to_date", "bank_balance",
- "income", "expenses_booked", "collections", "payments",
+ ["Income / Expenses", ["income_year_to_date", "bank_balance",
+ "income", "expenses_booked"]],
+ ["Receivables / Payables", ["collections", "payments",
"invoiced_amount", "payables"]],
["Buying", ["new_purchase_requests", "new_supplier_quotations", "new_purchase_orders"]],
["Selling", ["new_leads", "new_enquiries", "new_quotations", "new_sales_orders"]],
@@ -53,7 +55,8 @@ row_template = """
%(currency)s%(value)s
"""
-class DocType:
+from webnotes.model.controller import DocListController
+class DocType(DocListController):
def __init__(self, doc, doclist=[]):
self.doc, self.doclist = doc, doclist
self.from_date, self.to_date = self.get_from_to_date()
@@ -156,7 +159,7 @@ class DocType:
def get_income_year_to_date(self):
return self.get_income(webnotes.conn.get_defaults("year_start_date"),
- "Income Year To Date")
+ self.meta.get_label("income_year_to_date"))
def get_bank_balance(self):
# account is of type "Bank or Cash"
@@ -186,7 +189,8 @@ class DocType:
if gle["account"] in accounts:
income += gle["credit"] - gle["debit"]
- return income, self.get_html(label or "Income", self.currency, fmt_money(income))
+ return income, self.get_html(label or self.meta.get_label("income"), self.currency,
+ fmt_money(income))
def get_expenses_booked(self):
# account is PL Account and Debit type account
@@ -198,13 +202,14 @@ class DocType:
if gle["account"] in accounts:
expense += gle["debit"] - gle["credit"]
- return expense, self.get_html("Expenses", self.currency, fmt_money(expense))
+ return expense, self.get_html(self.meta.get_label("expenses_booked"), self.currency,
+ fmt_money(expense))
def get_collections(self):
- return self.get_party_total("Customer", "credit", "Collections")
+ return self.get_party_total("Customer", "credit", self.meta.get_label("collections"))
def get_payments(self):
- return self.get_party_total("Supplier", "debit", "Payments")
+ return self.get_party_total("Supplier", "debit", self.meta.get_label("payments"))
def get_party_total(self, party_type, gle_field, label):
import re
@@ -222,16 +227,17 @@ class DocType:
# check that its made against a bank or cash account
if gle["account"] in accounts and gle["against"] and \
bc_regex.findall(gle["against"]):
- total += gle[gle_field]
-
+ val = gle["debit"] - gle["credit"]
+ total += (gle_field=="debit" and 1 or -1) * val
+
return total, self.get_html(label, self.currency, fmt_money(total))
def get_invoiced_amount(self):
# aka receivables
- return self.get_booked_total("Customer", "debit", "Receivables")
+ return self.get_booked_total("Customer", "debit", self.meta.get_label("invoiced_amount"))
def get_payables(self):
- return self.get_booked_total("Supplier", "credit", "Payables")
+ return self.get_booked_total("Supplier", "credit", self.meta.get_label("payables"))
def get_booked_total(self, party_type, gle_field, label):
# account is of master_type Customer or Supplier
@@ -246,45 +252,46 @@ class DocType:
return total, self.get_html(label, self.currency, fmt_money(total))
def get_new_leads(self):
- return self.get_new_count("Lead", "New Leads")
+ return self.get_new_count("Lead", self.meta.get_label("new_leads"))
def get_new_enquiries(self):
- return self.get_new_count("Opportunity", "New Opportunities")
+ return self.get_new_count("Opportunity", self.meta.get_label("new_enquiries"))
def get_new_quotations(self):
- return self.get_new_sum("Quotation", "New Quotations", "grand_total")
+ return self.get_new_sum("Quotation", self.meta.get_label("new_quotations"), "grand_total")
def get_new_sales_orders(self):
- return self.get_new_sum("Sales Order", "New Sales Orders", "grand_total")
+ return self.get_new_sum("Sales Order", self.meta.get_label("new_sales_orders"), "grand_total")
def get_new_delivery_notes(self):
- return self.get_new_sum("Delivery Note", "New Delivery Notes", "grand_total")
+ return self.get_new_sum("Delivery Note", self.meta.get_label("new_delivery_notes"), "grand_total")
def get_new_purchase_requests(self):
- return self.get_new_count("Material Request", "New Material Requests")
+ return self.get_new_count("Material Request", self.meta.get_label("new_purchase_requests"))
def get_new_supplier_quotations(self):
- return self.get_new_sum("Supplier Quotation", "New Supplier Quotations",
+ return self.get_new_sum("Supplier Quotation", self.meta.get_label("new_supplier_quotations"),
"grand_total")
def get_new_purchase_orders(self):
- return self.get_new_sum("Purchase Order", "New Purchase Orders", "grand_total")
+ return self.get_new_sum("Purchase Order", self.meta.get_label("new_purchase_orders"),
+ "grand_total")
def get_new_purchase_receipts(self):
- return self.get_new_sum("Purchase Receipt", "New Purchase Receipts",
+ return self.get_new_sum("Purchase Receipt", self.meta.get_label("new_purchase_receipts"),
"grand_total")
def get_new_stock_entries(self):
- return self.get_new_sum("Stock Entry", "New Stock Entries", "total_amount")
+ return self.get_new_sum("Stock Entry", self.meta.get_label("new_stock_entries"), "total_amount")
def get_new_support_tickets(self):
- return self.get_new_count("Support Ticket", "New Support Tickets", False)
+ return self.get_new_count("Support Ticket", self.meta.get_label("new_support_tickets"), False)
def get_new_communications(self):
- return self.get_new_count("Communication", "New Communications", False)
+ return self.get_new_count("Communication", self.meta.get_label("new_communications"), False)
def get_new_projects(self):
- return self.get_new_count("Project", "New Projects", False)
+ return self.get_new_count("Project", self.meta.get_label("new_projects"), False)
def get_calendar_events(self, user_id):
from core.doctype.event.event import get_events
@@ -302,7 +309,10 @@ class DocType:
html += "
%s [%s - %s]" % \
(e.subject, datetime_in_user_format(e.starts_on), datetime_in_user_format(e.ends_on))
- return html and 1 or 0, "
Upcoming Calendar Events (max 10):
"
+ if html:
+ return 1, "
Upcoming Calendar Events (max 10):
"
+ else:
+ return 0, "
Calendar Events
"
def get_todo_list(self, user_id):
from utilities.page.todo.todo import get
@@ -313,11 +323,17 @@ class DocType:
for i, todo in enumerate([todo for todo in todo_list if not todo.checked]):
if i>= 10:
break
- html += "
%s [%s]" % (todo.description or \
- get_url_to_form(todo.reference_type, todo.reference_name), todo.priority)
+ if not todo.description and todo.reference_type:
+ todo.description = "%s: %s - %s %s" % \
+ (todo.reference_type, get_url_to_form(todo.reference_type, todo.reference_name),
+ _("assigned by"), get_fullname(todo.assigned_by))
+
+ html += "
%s [%s]" % (todo.description, todo.priority)
-
- return html and 1 or 0, "
To Do (max 10):
"
+ if html:
+ return 1, "
To Do (max 10):
"
+ else:
+ return 0, "
To Do
"
def get_new_count(self, doctype, label, filter_by_company=True):
if filter_by_company:
@@ -376,7 +392,7 @@ class DocType:
self.accounts = webnotes.conn.sql("""select name, is_pl_account,
debit_or_credit, account_type, account_name, master_type
from `tabAccount` where company=%s and docstatus < 2
- order by lft""",
+ and group_or_ledger = "Ledger" order by lft""",
(self.doc.company,), as_dict=1)
return self.accounts
@@ -449,7 +465,7 @@ class DocType:
def onload(self):
self.get_next_sending()
-
+
def send():
from webnotes.model.code import get_obj
from webnotes.utils import getdate
diff --git a/setup/doctype/email_digest/email_digest.txt b/setup/doctype/email_digest/email_digest.txt
index 0b40fb4b0c1..7817429ad39 100644
--- a/setup/doctype/email_digest/email_digest.txt
+++ b/setup/doctype/email_digest/email_digest.txt
@@ -1,8 +1,8 @@
[
{
- "creation": "2013-02-18 13:36:19",
+ "creation": "2013-02-21 14:15:31",
"docstatus": 0,
- "modified": "2013-02-18 13:43:50",
+ "modified": "2013-02-25 13:08:26",
"modified_by": "Administrator",
"owner": "Administrator"
},
@@ -109,7 +109,7 @@
"doctype": "DocField",
"fieldname": "accounts_module",
"fieldtype": "Column Break",
- "label": "Accounts"
+ "label": "Income / Expense"
},
{
"doctype": "DocField",
@@ -118,47 +118,67 @@
"label": "Income Year to Date"
},
{
+ "description": "Balances of Accounts of type \"Bank or Cash\"",
"doctype": "DocField",
"fieldname": "bank_balance",
"fieldtype": "Check",
- "label": "Bank Balance"
+ "label": "Bank/Cash Balance"
},
{
+ "description": "Income booked for the digest period",
"doctype": "DocField",
"fieldname": "income",
"fieldtype": "Check",
- "label": "Income"
+ "label": "Income Booked"
},
{
+ "description": "Expenses booked for the digest period",
"doctype": "DocField",
"fieldname": "expenses_booked",
"fieldtype": "Check",
"label": "Expenses Booked"
},
{
+ "description": "Receivable / Payable account will be identified based on the field Master Type",
+ "doctype": "DocField",
+ "fieldname": "column_break_16",
+ "fieldtype": "Column Break",
+ "label": "Receivables / Payables"
+ },
+ {
+ "description": "Payments received during the digest period",
"doctype": "DocField",
"fieldname": "collections",
"fieldtype": "Check",
- "label": "Collections"
+ "label": "Payments Received"
},
{
+ "description": "Payments made during the digest period",
"doctype": "DocField",
"fieldname": "payments",
"fieldtype": "Check",
- "label": "Payments"
+ "label": "Payments Made"
},
{
+ "description": "Total amount of invoices sent to the customer during the digest period",
"doctype": "DocField",
"fieldname": "invoiced_amount",
"fieldtype": "Check",
"label": "Receivables"
},
{
+ "description": "Total amount of invoices received from suppliers during the digest period",
"doctype": "DocField",
"fieldname": "payables",
"fieldtype": "Check",
"label": "Payables"
},
+ {
+ "doctype": "DocField",
+ "fieldname": "section_break_20",
+ "fieldtype": "Section Break",
+ "options": "Simple"
+ },
{
"doctype": "DocField",
"fieldname": "buying_module",
@@ -213,12 +233,6 @@
"fieldtype": "Check",
"label": "New Sales Orders"
},
- {
- "doctype": "DocField",
- "fieldname": "section_break_34",
- "fieldtype": "Section Break",
- "options": "Simple"
- },
{
"doctype": "DocField",
"fieldname": "stock_module",
@@ -243,6 +257,12 @@
"fieldtype": "Check",
"label": "New Stock Entries"
},
+ {
+ "doctype": "DocField",
+ "fieldname": "section_break_34",
+ "fieldtype": "Section Break",
+ "options": "Simple"
+ },
{
"doctype": "DocField",
"fieldname": "support_module",
@@ -279,12 +299,6 @@
"fieldtype": "Check",
"label": "New Projects"
},
- {
- "doctype": "DocField",
- "fieldname": "section_break_41",
- "fieldtype": "Section Break",
- "options": "Simple"
- },
{
"doctype": "DocField",
"fieldname": "utilities_module",
diff --git a/setup/doctype/email_digest/locale/_messages_doc.json b/setup/doctype/email_digest/locale/_messages_doc.json
index 9c41c66efd4..77de82d6f7d 100644
--- a/setup/doctype/email_digest/locale/_messages_doc.json
+++ b/setup/doctype/email_digest/locale/_messages_doc.json
@@ -1,22 +1,27 @@
[
- "New Leads",
+ "Income Booked",
"Add/Remove Recipients",
"Monthly",
"Support",
"New Material Requests",
+ "New Leads",
+ "Expenses booked for the digest period",
"Send regular summary reports via Email.",
"Select Digest Content",
- "Collections",
"Expenses Booked",
- "Income",
- "Stock",
+ "Payments received during the digest period",
+ "Bank/Cash Balance",
"To Do List",
"Selling",
+ "Payments Made",
"Recipients",
"Email Digest Settings",
"Check all the items below that you want to send in this digest.",
+ "Payments made during the digest period",
"New Quotations",
"New Support Tickets",
+ "Payments Received",
+ "Income booked for the digest period",
"Buying",
"New Communications",
"New Projects",
@@ -24,16 +29,19 @@
"Setup",
"Enabled",
"Daily",
+ "Balances of Accounts of type \"Bank or Cash\"",
+ "Income / Expense",
"New Delivery Notes",
- "Payments",
- "Bank Balance",
+ "Stock",
"How frequently?",
"Payables",
"New Enquiries",
+ "New Purchase Orders",
"New Sales Orders",
"Calendar Events",
"New Purchase Receipts",
- "New Purchase Orders",
+ "Total amount of invoices sent to the customer during the digest period",
+ "Receivable / Payable account will be identified based on the field Master Type",
"Receivables",
"For Company",
"Note: Email will not be sent to disabled users",
@@ -41,9 +49,10 @@
"New Supplier Quotations",
"Income Year to Date",
"General",
+ "Receivables / Payables",
"Open Tickets",
- "Accounts",
"Projects",
+ "Total amount of invoices received from suppliers during the digest period",
"Email Digest",
"Weekly"
]
\ No newline at end of file
diff --git a/setup/doctype/email_digest/locale/_messages_py.json b/setup/doctype/email_digest/locale/_messages_py.json
index 7915fc92bef..6bd8607425a 100644
--- a/setup/doctype/email_digest/locale/_messages_py.json
+++ b/setup/doctype/email_digest/locale/_messages_py.json
@@ -1,3 +1,4 @@
[
+ "assigned by",
"All Day"
]
\ No newline at end of file
diff --git a/setup/doctype/email_digest/locale/de-doc.json b/setup/doctype/email_digest/locale/de-doc.json
new file mode 100644
index 00000000000..a3a28a8a234
--- /dev/null
+++ b/setup/doctype/email_digest/locale/de-doc.json
@@ -0,0 +1,44 @@
+{
+ "Add/Remove Recipients": "Hinzuf\u00fcgen / Entfernen von Empf\u00e4ngern",
+ "Buying": "Kauf",
+ "Calendar Events": "Kalendereintrag",
+ "Check all the items below that you want to send in this digest.": "\u00dcberpr\u00fcfen Sie alle Artikel unten, dass Sie in diesem Digest senden.",
+ "Daily": "T\u00e4glich",
+ "Email Digest": "Email Digest",
+ "Email Digest Settings": "Email Digest Einstellungen",
+ "Enabled": "Aktiviert",
+ "Expenses Booked": "Aufwand gebucht",
+ "For Company": "F\u00fcr Unternehmen",
+ "General": "General",
+ "How frequently?": "Wie h\u00e4ufig?",
+ "Income Year to Date": "Income Jahr bis Datum",
+ "Monthly": "Monatlich",
+ "New Communications": "New Communications",
+ "New Delivery Notes": "New Delivery Notes",
+ "New Enquiries": "New Anfragen",
+ "New Leads": "New Leads",
+ "New Material Requests": "Neues Material Requests",
+ "New Projects": "Neue Projekte",
+ "New Purchase Orders": "New Bestellungen",
+ "New Purchase Receipts": "New Kaufbelege",
+ "New Quotations": "New Zitate",
+ "New Sales Orders": "New Sales Orders",
+ "New Stock Entries": "New Stock Eintr\u00e4ge",
+ "New Supplier Quotations": "Neuer Lieferant Zitate",
+ "New Support Tickets": "New Support Tickets",
+ "Next email will be sent on:": "Weiter E-Mail wird gesendet:",
+ "Note: Email will not be sent to disabled users": "Hinweis: E-Mail wird nicht f\u00fcr behinderte Nutzer gesendet werden",
+ "Open Tickets": "Open Tickets",
+ "Payables": "Verbindlichkeiten",
+ "Projects": "Projekte",
+ "Receivables": "Forderungen",
+ "Recipients": "Empf\u00e4nger",
+ "Select Digest Content": "W\u00e4hlen Inhalt Digest",
+ "Selling": "Verkauf",
+ "Send regular summary reports via Email.": "Senden regelm\u00e4\u00dfige zusammenfassende Berichte per E-Mail.",
+ "Setup": "Setup",
+ "Stock": "Lager",
+ "Support": "Unterst\u00fctzen",
+ "To Do List": "To Do List",
+ "Weekly": "W\u00f6chentlich"
+}
\ No newline at end of file
diff --git a/setup/doctype/email_digest/locale/de-py.json b/setup/doctype/email_digest/locale/de-py.json
new file mode 100644
index 00000000000..383bc7eb101
--- /dev/null
+++ b/setup/doctype/email_digest/locale/de-py.json
@@ -0,0 +1,3 @@
+{
+ "All Day": "All Day"
+}
\ No newline at end of file
diff --git a/setup/doctype/email_digest/locale/pt-BR-doc.json b/setup/doctype/email_digest/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..bf2d8ed47a5
--- /dev/null
+++ b/setup/doctype/email_digest/locale/pt-BR-doc.json
@@ -0,0 +1,49 @@
+{
+ "Accounts": "Contas",
+ "Add/Remove Recipients": "Adicionar / Remover Destinat\u00e1rios",
+ "Bank Balance": "Saldo Bancario",
+ "Buying": "Compras",
+ "Calendar Events": "Calend\u00e1rio de Eventos",
+ "Check all the items below that you want to send in this digest.": "Marque todos os itens abaixo que voc\u00ea deseja enviar neste resumo.",
+ "Collections": "Cole\u00e7\u00f5es",
+ "Daily": "Di\u00e1rio",
+ "Email Digest": "Resumo por E-mail",
+ "Email Digest Settings": "Configura\u00e7\u00f5es do Resumo por E-mail",
+ "Enabled": "Habilitado",
+ "Expenses Booked": "Despesas agendadas",
+ "For Company": "Para a Empresa",
+ "General": "Geral",
+ "How frequently?": "Com que frequ\u00eancia?",
+ "Income": "Renda",
+ "Income Year to Date": "Ano de rendimento at\u00e9 a Data",
+ "Monthly": "Mensal",
+ "New Communications": "Nova Comunica\u00e7\u00e3o",
+ "New Delivery Notes": "Novas Guias de Remessa",
+ "New Enquiries": "Novas Consultas",
+ "New Leads": "Novos Prospectos",
+ "New Material Requests": "Novos Pedidos Materiais",
+ "New Projects": "Novos Projetos",
+ "New Purchase Orders": "Novas Ordens de Compra",
+ "New Purchase Receipts": "Novos Recibos de Compra",
+ "New Quotations": "Novas Cota\u00e7\u00f5es",
+ "New Sales Orders": "Novos Pedidos de Venda",
+ "New Stock Entries": "Novos lan\u00e7amentos de estoque",
+ "New Supplier Quotations": "Novas cota\u00e7\u00f5es de fornecedores",
+ "New Support Tickets": "Novos pedidos de suporte",
+ "Next email will be sent on:": "Pr\u00f3ximo e-mail ser\u00e1 enviado em:",
+ "Note: Email will not be sent to disabled users": "Nota: e-mails n\u00e3o ser\u00e3o enviado para usu\u00e1rios desabilitados",
+ "Open Tickets": "Tickets abertos",
+ "Payables": "Contas a pagar",
+ "Payments": "Pagamentos",
+ "Projects": "Projetos",
+ "Receivables": "Receb\u00edveis",
+ "Recipients": "Destinat\u00e1rios",
+ "Select Digest Content": "Selecione o conte\u00fado para o Resumo por E-mail",
+ "Selling": "Vendas",
+ "Send regular summary reports via Email.": "Enviar relat\u00f3rios resumidos regularmente via e-mail.",
+ "Setup": "Configura\u00e7\u00e3o",
+ "Stock": "Estoque",
+ "Support": "Suporte",
+ "To Do List": "Para fazer a lista",
+ "Weekly": "Semanal"
+}
\ No newline at end of file
diff --git a/setup/doctype/email_digest/locale/pt-BR-py.json b/setup/doctype/email_digest/locale/pt-BR-py.json
new file mode 100644
index 00000000000..60c9c66a1af
--- /dev/null
+++ b/setup/doctype/email_digest/locale/pt-BR-py.json
@@ -0,0 +1,3 @@
+{
+ "All Day": "Dia de Todos os"
+}
\ No newline at end of file
diff --git a/setup/doctype/email_digest/locale/th-doc.json b/setup/doctype/email_digest/locale/th-doc.json
new file mode 100644
index 00000000000..55a2bcaef92
--- /dev/null
+++ b/setup/doctype/email_digest/locale/th-doc.json
@@ -0,0 +1,49 @@
+{
+ "Accounts": "\u0e1a\u0e31\u0e0d\u0e0a\u0e35",
+ "Add/Remove Recipients": "Add / Remove \u0e1c\u0e39\u0e49\u0e23\u0e31\u0e1a",
+ "Bank Balance": "\u0e41\u0e25\u0e30\u0e2b\u0e19\u0e35\u0e49\u0e2a\u0e34\u0e19\u0e18\u0e19\u0e32\u0e04\u0e32\u0e23\u0e41\u0e2b\u0e48\u0e07",
+ "Buying": "\u0e01\u0e32\u0e23\u0e0b\u0e37\u0e49\u0e2d",
+ "Calendar Events": "\u0e1b\u0e0f\u0e34\u0e17\u0e34\u0e19\u0e40\u0e2b\u0e15\u0e38\u0e01\u0e32\u0e23\u0e13\u0e4c",
+ "Check all the items below that you want to send in this digest.": "\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14\u0e17\u0e35\u0e48\u0e14\u0e49\u0e32\u0e19\u0e25\u0e48\u0e32\u0e07\u0e17\u0e35\u0e48\u0e04\u0e38\u0e13\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e2a\u0e48\u0e07\u0e22\u0e48\u0e2d\u0e22\u0e19\u0e35\u0e49",
+ "Collections": "\u0e04\u0e2d\u0e25\u0e40\u0e25\u0e01\u0e0a\u0e31\u0e19",
+ "Daily": "\u0e1b\u0e23\u0e30\u0e08\u0e33\u0e27\u0e31\u0e19",
+ "Email Digest": "\u0e02\u0e48\u0e32\u0e27\u0e2a\u0e32\u0e23\u0e17\u0e32\u0e07\u0e2d\u0e35\u0e40\u0e21\u0e25",
+ "Email Digest Settings": "\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e40\u0e14\u0e48\u0e19",
+ "Enabled": "\u0e40\u0e1b\u0e34\u0e14\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19",
+ "Expenses Booked": "\u0e04\u0e48\u0e32\u0e43\u0e0a\u0e49\u0e08\u0e48\u0e32\u0e22\u0e43\u0e19 Booked",
+ "For Company": "\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a \u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17",
+ "General": "\u0e17\u0e31\u0e48\u0e27\u0e44\u0e1b",
+ "How frequently?": "\u0e27\u0e34\u0e18\u0e35\u0e1a\u0e48\u0e2d\u0e22?",
+ "Income": "\u0e40\u0e07\u0e34\u0e19\u0e44\u0e14\u0e49",
+ "Income Year to Date": "\u0e1b\u0e35\u0e23\u0e32\u0e22\u0e44\u0e14\u0e49\u0e43\u0e2b\u0e49\u0e01\u0e31\u0e1a\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48",
+ "Monthly": "\u0e23\u0e32\u0e22\u0e40\u0e14\u0e37\u0e2d\u0e19",
+ "New Communications": "\u0e01\u0e32\u0e23\u0e2a\u0e37\u0e48\u0e2d\u0e2a\u0e32\u0e23\u0e43\u0e2b\u0e21\u0e48",
+ "New Delivery Notes": "\u0e43\u0e1a\u0e19\u0e33\u0e2a\u0e48\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e43\u0e2b\u0e21\u0e48",
+ "New Enquiries": "\u0e43\u0e2b\u0e21\u0e48\u0e2a\u0e2d\u0e1a\u0e16\u0e32\u0e21",
+ "New Leads": "\u0e43\u0e2b\u0e21\u0e48\u0e19\u0e33",
+ "New Material Requests": "\u0e02\u0e2d\u0e27\u0e31\u0e2a\u0e14\u0e38\u0e43\u0e2b\u0e21\u0e48",
+ "New Projects": "\u0e42\u0e04\u0e23\u0e07\u0e01\u0e32\u0e23\u0e43\u0e2b\u0e21\u0e48",
+ "New Purchase Orders": "\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e43\u0e2b\u0e21\u0e48",
+ "New Purchase Receipts": "\u0e23\u0e32\u0e22\u0e23\u0e31\u0e1a\u0e0b\u0e37\u0e49\u0e2d\u0e43\u0e2b\u0e21\u0e48",
+ "New Quotations": "\u0e43\u0e1a\u0e40\u0e2a\u0e19\u0e2d\u0e23\u0e32\u0e04\u0e32\u0e43\u0e2b\u0e21\u0e48",
+ "New Sales Orders": "\u0e04\u0e33\u0e2a\u0e31\u0e48\u0e07\u0e02\u0e32\u0e22\u0e43\u0e2b\u0e21\u0e48",
+ "New Stock Entries": "\u0e04\u0e2d\u0e21\u0e40\u0e21\u0e19\u0e15\u0e4c\u0e2a\u0e15\u0e47\u0e2d\u0e01\u0e43\u0e2b\u0e21\u0e48",
+ "New Supplier Quotations": "\u0e43\u0e1a\u0e40\u0e2a\u0e19\u0e2d\u0e23\u0e32\u0e04\u0e32\u0e08\u0e33\u0e2b\u0e19\u0e48\u0e32\u0e22\u0e43\u0e2b\u0e21\u0e48",
+ "New Support Tickets": "\u0e15\u0e31\u0e4b\u0e27\u0e2a\u0e19\u0e31\u0e1a\u0e2a\u0e19\u0e38\u0e19\u0e43\u0e2b\u0e21\u0e48",
+ "Next email will be sent on:": "\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e4c\u0e16\u0e31\u0e14\u0e44\u0e1b\u0e08\u0e30\u0e16\u0e39\u0e01\u0e2a\u0e48\u0e07\u0e40\u0e21\u0e37\u0e48\u0e2d:",
+ "Note: Email will not be sent to disabled users": "\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e2b\u0e15\u0e38: \u0e2d\u0e35\u0e40\u0e21\u0e25\u0e4c\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13\u0e08\u0e30\u0e44\u0e21\u0e48\u0e16\u0e39\u0e01\u0e2a\u0e48\u0e07\u0e44\u0e1b\u0e22\u0e31\u0e07\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e04\u0e19\u0e1e\u0e34\u0e01\u0e32\u0e23",
+ "Open Tickets": "\u0e15\u0e31\u0e4b\u0e27\u0e40\u0e1b\u0e34\u0e14",
+ "Payables": "\u0e40\u0e08\u0e49\u0e32\u0e2b\u0e19\u0e35\u0e49",
+ "Payments": "\u0e27\u0e34\u0e18\u0e35\u0e01\u0e32\u0e23\u0e0a\u0e33\u0e23\u0e30\u0e40\u0e07\u0e34\u0e19",
+ "Projects": "\u0e42\u0e04\u0e23\u0e07\u0e01\u0e32\u0e23",
+ "Receivables": "\u0e25\u0e39\u0e01\u0e2b\u0e19\u0e35\u0e49",
+ "Recipients": "\u0e1c\u0e39\u0e49\u0e23\u0e31\u0e1a",
+ "Select Digest Content": "\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e40\u0e19\u0e37\u0e49\u0e2d\u0e2b\u0e32\u0e2a\u0e33\u0e04\u0e31\u0e0d",
+ "Selling": "\u0e02\u0e32\u0e22",
+ "Send regular summary reports via Email.": "\u0e2a\u0e48\u0e07\u0e23\u0e32\u0e22\u0e07\u0e32\u0e19\u0e2a\u0e23\u0e38\u0e1b\u0e1b\u0e01\u0e15\u0e34\u0e1c\u0e48\u0e32\u0e19\u0e17\u0e32\u0e07\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e4c",
+ "Setup": "\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07",
+ "Stock": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Support": "\u0e2a\u0e19\u0e31\u0e1a\u0e2a\u0e19\u0e38\u0e19",
+ "To Do List": "To Do List",
+ "Weekly": "\u0e23\u0e32\u0e22\u0e2a\u0e31\u0e1b\u0e14\u0e32\u0e2b\u0e4c"
+}
\ No newline at end of file
diff --git a/setup/doctype/email_digest/locale/th-py.json b/setup/doctype/email_digest/locale/th-py.json
new file mode 100644
index 00000000000..919dc154f60
--- /dev/null
+++ b/setup/doctype/email_digest/locale/th-py.json
@@ -0,0 +1,3 @@
+{
+ "All Day": "\u0e27\u0e31\u0e19\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14"
+}
\ No newline at end of file
diff --git a/setup/doctype/email_settings/locale/_messages_doc.json b/setup/doctype/email_settings/locale/_messages_doc.json
index 186634a42df..c61353e1ae0 100644
--- a/setup/doctype/email_settings/locale/_messages_doc.json
+++ b/setup/doctype/email_settings/locale/_messages_doc.json
@@ -13,12 +13,12 @@
"User Name",
"Set your outgoing mail SMTP settings here. All system generated notifications, emails will go from this mail server. If you are not sure, leave this blank to use ERPNext servers (emails will still be sent from your email id) or contact your email provider.",
"Signature to be appended at the end of every email",
- "Support Password",
"If non standard port (e.g. 587)",
"SMTP Server (e.g. smtp.gmail.com)",
"Check this to pull emails from your mailbox",
"Setup",
"Incoming Mail Setting",
+ "Support Password",
"Sync Support Mails",
"Outgoing Mails",
"Signature",
diff --git a/setup/doctype/email_settings/locale/de-doc.json b/setup/doctype/email_settings/locale/de-doc.json
new file mode 100644
index 00000000000..985c3295d48
--- /dev/null
+++ b/setup/doctype/email_settings/locale/de-doc.json
@@ -0,0 +1,34 @@
+{
+ "Auto Email Id": "Auto Email Id",
+ "Autoreply when a new mail is received": "Autoreply wenn eine neue E-Mail empfangen",
+ "Check this to pull emails from your mailbox": "Aktivieren Sie diese Option, um E-Mails aus Ihrer Mailbox ziehen",
+ "Custom Autoreply Message": "Benutzerdefinierte Autoreply Nachricht",
+ "Email Settings": "E-Mail-Einstellungen",
+ "Email Settings for Outgoing and Incoming Emails.": "E-Mail-Einstellungen f\u00fcr ausgehende und eingehende E-Mails.",
+ "If non standard port (e.g. 587)": "Wenn Nicht-Standard-Port (zum Beispiel 587)",
+ "Incoming Mail Setting": "Eingehende Mail-Einstellung",
+ "Login Id": "Login ID",
+ "Mail Password": "Mail Passwort",
+ "Mail Port": "Mail Port",
+ "Outgoing Mail Server": "Postausgangsserver",
+ "Outgoing Mails": "Ausgehende Mails",
+ "POP3 Mail Server": "POP3 Mail Server",
+ "POP3 mail server (e.g. pop.gmail.com)": "POP3-Mail-Server (pop.gmail.com beispielsweise)",
+ "SMTP Server (e.g. smtp.gmail.com)": "SMTP Server (beispielsweise smtp.gmail.com)",
+ "Send Autoreply": "Senden Autoreply",
+ "Set Login and Password if authentication is required.": "Stellen Sie Login und Passwort, wenn eine Authentifizierung erforderlich ist.",
+ "Set the POP3 email settings to pull emails directly from a mailbox and create Support Tickets": "Stellen Sie die POP3-Mail-Einstellungen auf E-Mails aus dem Postfach zu ziehen direkt erstellen und Support Tickets",
+ "Set your outgoing mail SMTP settings here. All system generated notifications, emails will go from this mail server. If you are not sure, leave this blank to use ERPNext servers (emails will still be sent from your email id) or contact your email provider.": "Stellen Sie Ihre ausgehende Mail SMTP-Einstellungen hier. Alle System generierten Meldungen werden E-Mails von diesen Mail-Server gehen. Wenn Sie sich nicht sicher sind, lassen Sie dieses Feld leer, um ERPNext Server (E-Mails werden immer noch von Ihrer E-Mail-ID gesendet werden) verwenden oder kontaktieren Sie Ihren E-Mail-Provider.",
+ "Setup": "Setup",
+ "Signature": "Unterschrift",
+ "Signature to be appended at the end of every email": "Unterschrift am Ende jeder E-Mail angeh\u00e4ngt werden",
+ "Support Email": "Unterst\u00fctzung per E-Mail",
+ "Support Password": "Support Passwort",
+ "Support Ticket Mail Settings": "Support-Ticket-Mail-Einstellungen",
+ "Sync Support Mails": "Sync Unterst\u00fctzung Mails",
+ "System generated mails will be sent from this email id.": "System generierten E-Mails werden von dieser E-Mail-ID gesendet werden.",
+ "To automatically create Support Tickets from your incoming mail, set your POP3 settings here. You must ideally create a separate email id for the erp system so that all emails will be synced into the system from that mail id. If you are not sure, please contact your EMail Provider.": "Um automatisch Support Tickets von Ihrem Posteingang, stellen Sie Ihren POP3-Einstellungen hier. Sie m\u00fcssen im Idealfall eine separate E-Mail-ID f\u00fcr das ERP-System, so dass alle E-Mails in das System von diesem Mail-ID synchronisiert werden. Wenn Sie nicht sicher sind, wenden Sie sich bitte EMail Provider.",
+ "Use SSL": "Verwenden Sie SSL",
+ "User Name": "User Name",
+ "Your support email id - must be a valid email - this is where your emails will come!": "Ihre Unterst\u00fctzung email id - muss eine g\u00fcltige E-Mail-sein - das ist, wo Ihre E-Mails wird kommen!"
+}
\ No newline at end of file
diff --git a/setup/doctype/email_settings/locale/pt-BR-doc.json b/setup/doctype/email_settings/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..cbb6842ab6f
--- /dev/null
+++ b/setup/doctype/email_settings/locale/pt-BR-doc.json
@@ -0,0 +1,34 @@
+{
+ "Auto Email Id": "Endere\u00e7o dos E-mails Autom\u00e1ticos",
+ "Autoreply when a new mail is received": "Responder automaticamente quando um novo e-mail \u00e9 recebido",
+ "Check this to pull emails from your mailbox": "Marque esta a puxar os e-mails de sua caixa de correio",
+ "Custom Autoreply Message": "Mensagem de resposta autom\u00e1tica personalizada",
+ "Email Settings": "Configura\u00e7\u00f5es de e-mail",
+ "Email Settings for Outgoing and Incoming Emails.": "Configura\u00e7\u00f5es de e-mail para e-mails enviados e recebidos.",
+ "If non standard port (e.g. 587)": "Se n\u00e3o for a porta padr\u00e3o (por exemplo, 587)",
+ "Incoming Mail Setting": "Configura\u00e7\u00e3o de entrada de emails",
+ "Login Id": "ID de Login",
+ "Mail Password": "Senha do E-mail",
+ "Mail Port": "Porta do E-mail",
+ "Outgoing Mail Server": "Servidor de e-mails de sa\u00edda",
+ "Outgoing Mails": "E-mails de sa\u00edda",
+ "POP3 Mail Server": "Servidor de e-mail POP3",
+ "POP3 mail server (e.g. pop.gmail.com)": "Servidor de e-mail POP3 (por exemplo, pop.gmail.com)",
+ "SMTP Server (e.g. smtp.gmail.com)": "Servidor SMTP(por exemplo, smtp.gmail.com)",
+ "Send Autoreply": "Enviar Resposta Autom\u00e1tica",
+ "Set Login and Password if authentication is required.": "Defina Login e Senha se a autentica\u00e7\u00e3o for necess\u00e1ria.",
+ "Set the POP3 email settings to pull emails directly from a mailbox and create Support Tickets": "Definir as configura\u00e7\u00f5es de e-mail POP3 para puxar e-mails diretamente a partir de uma caixa de correio e criar tickets de suporte",
+ "Set your outgoing mail SMTP settings here. All system generated notifications, emails will go from this mail server. If you are not sure, leave this blank to use ERPNext servers (emails will still be sent from your email id) or contact your email provider.": "Defina suas configura\u00e7\u00f5es de de e-mail SMTP aqui. Todas as notifica\u00e7\u00f5es geradas pelo sistema e e-mails s\u00e3o enviados a partir deste servidor de correio. Se voc\u00ea n\u00e3o tem certeza, deixe este campo em branco para usar servidores ERPNext (e-mails ainda ser\u00e3o enviadas a partir do seu endere\u00e7o de e-mail) ou entre em contato com seu provedor de e-mail.",
+ "Setup": "Configura\u00e7\u00e3o",
+ "Signature": "Assinatura",
+ "Signature to be appended at the end of every email": "Assinatura para ser inserida no final de cada e-mail",
+ "Support Email": "E-mail de Suporte",
+ "Support Password": "Senha do Suporte",
+ "Support Ticket Mail Settings": "Configura\u00e7\u00f5es do E-mail de Tickets de Suporte",
+ "Sync Support Mails": "Sincronizar E-mails de Suporte",
+ "System generated mails will be sent from this email id.": "E-mails gerados pelo sistema ser\u00e3o enviados a partir deste endere\u00e7o de e-mail.",
+ "To automatically create Support Tickets from your incoming mail, set your POP3 settings here. You must ideally create a separate email id for the erp system so that all emails will be synced into the system from that mail id. If you are not sure, please contact your EMail Provider.": "Para criar automaticamente Tickets de Suporte a partir da sua caixa de entrada, defina as configura\u00e7\u00f5es de POP3 aqui. Voc\u00ea deve, idealmente, criar um E-mail separado para o Sistema ERP para que todas as mensagens sejam sincronizadas com o sistema a partir daquele E-mail. Se voc\u00ea n\u00e3o tiver certeza, entre em contato com seu provedor de e-mail.",
+ "Use SSL": "Use SSL",
+ "User Name": "Nome de Usu\u00e1rio",
+ "Your support email id - must be a valid email - this is where your emails will come!": "O seu E-mail de suporte - deve ser um e-mail v\u00e1lido - este \u00e9 o lugar de onde seus e-mails vir\u00e3o!"
+}
\ No newline at end of file
diff --git a/setup/doctype/email_settings/locale/th-doc.json b/setup/doctype/email_settings/locale/th-doc.json
new file mode 100644
index 00000000000..d225a4b8184
--- /dev/null
+++ b/setup/doctype/email_settings/locale/th-doc.json
@@ -0,0 +1,34 @@
+{
+ "Auto Email Id": "\u0e23\u0e2b\u0e31\u0e2a\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e4c\u0e2d\u0e31\u0e15\u0e42\u0e19\u0e21\u0e31\u0e15\u0e34",
+ "Autoreply when a new mail is received": "autoreply \u0e40\u0e21\u0e37\u0e48\u0e2d\u0e21\u0e35\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e43\u0e2b\u0e21\u0e48\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a",
+ "Check this to pull emails from your mailbox": "\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a\u0e19\u0e35\u0e49\u0e08\u0e30\u0e14\u0e36\u0e07\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e08\u0e32\u0e01\u0e01\u0e25\u0e48\u0e2d\u0e07\u0e08\u0e14\u0e2b\u0e21\u0e32\u0e22\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13",
+ "Custom Autoreply Message": "\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e15\u0e2d\u0e1a\u0e01\u0e25\u0e31\u0e1a\u0e2d\u0e31\u0e15\u0e42\u0e19\u0e21\u0e31\u0e15\u0e34\u0e17\u0e35\u0e48\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e40\u0e2d\u0e07",
+ "Email Settings": "\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32\u0e2d\u0e35\u0e40\u0e21\u0e25",
+ "Email Settings for Outgoing and Incoming Emails.": "\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e02\u0e32\u0e2d\u0e2d\u0e01\u0e41\u0e25\u0e30\u0e02\u0e32\u0e40\u0e02\u0e49\u0e32",
+ "If non standard port (e.g. 587)": "\u0e16\u0e49\u0e32\u0e1e\u0e2d\u0e23\u0e4c\u0e15\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19\u0e44\u0e21\u0e48 (\u0e40\u0e0a\u0e48\u0e19 587)",
+ "Incoming Mail Setting": "\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e02\u0e32\u0e40\u0e02\u0e49\u0e32",
+ "Login Id": "\u0e40\u0e02\u0e49\u0e32\u0e2a\u0e39\u0e48\u0e23\u0e30\u0e1a\u0e1a\u0e23\u0e2b\u0e31\u0e2a",
+ "Mail Password": "\u0e23\u0e2b\u0e31\u0e2a\u0e1c\u0e48\u0e32\u0e19\u0e2d\u0e35\u0e40\u0e21\u0e25",
+ "Mail Port": "\u0e1e\u0e2d\u0e23\u0e4c\u0e15\u0e08\u0e14\u0e2b\u0e21\u0e32\u0e22",
+ "Outgoing Mail Server": "\u0e40\u0e0b\u0e34\u0e23\u0e4c\u0e1f\u0e40\u0e27\u0e2d\u0e23\u0e4c\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e02\u0e32\u0e2d\u0e2d\u0e01",
+ "Outgoing Mails": "\u0e2a\u0e48\u0e07\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e4c\u0e2d\u0e2d\u0e01",
+ "POP3 Mail Server": "\u0e40\u0e0b\u0e34\u0e23\u0e4c\u0e1f\u0e40\u0e27\u0e2d\u0e23\u0e4c\u0e08\u0e14\u0e2b\u0e21\u0e32\u0e22 POP3",
+ "POP3 mail server (e.g. pop.gmail.com)": "\u0e40\u0e0b\u0e34\u0e23\u0e4c\u0e1f\u0e40\u0e27\u0e2d\u0e23\u0e4c\u0e2d\u0e35\u0e40\u0e21\u0e25 POP3 (\u0e40\u0e0a\u0e48\u0e19 pop.gmail.com)",
+ "SMTP Server (e.g. smtp.gmail.com)": "SMTP Server (smtp.gmail.com \u0e40\u0e0a\u0e48\u0e19)",
+ "Send Autoreply": "\u0e2a\u0e48\u0e07 autoreply",
+ "Set Login and Password if authentication is required.": "\u0e15\u0e31\u0e49\u0e07\u0e40\u0e02\u0e49\u0e32\u0e2a\u0e39\u0e48\u0e23\u0e30\u0e1a\u0e1a\u0e41\u0e25\u0e30\u0e23\u0e2b\u0e31\u0e2a\u0e1c\u0e48\u0e32\u0e19\u0e2b\u0e32\u0e01\u0e15\u0e23\u200b\u200b\u0e27\u0e08\u0e2a\u0e2d\u0e1a\u0e08\u0e30\u0e15\u0e49\u0e2d\u0e07",
+ "Set the POP3 email settings to pull emails directly from a mailbox and create Support Tickets": "\u0e15\u0e31\u0e49\u0e07\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32\u0e2d\u0e35\u0e40\u0e21\u0e25 POP3 \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e14\u0e36\u0e07\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e42\u0e14\u0e22\u0e15\u0e23\u0e07\u0e08\u0e32\u0e01\u0e01\u0e25\u0e48\u0e2d\u0e07\u0e08\u0e14\u0e2b\u0e21\u0e32\u0e22\u0e41\u0e25\u0e30\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e15\u0e31\u0e4b\u0e27\u0e2a\u0e19\u0e31\u0e1a\u0e2a\u0e19\u0e38\u0e19",
+ "Set your outgoing mail SMTP settings here. All system generated notifications, emails will go from this mail server. If you are not sure, leave this blank to use ERPNext servers (emails will still be sent from your email id) or contact your email provider.": "\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13\u0e2d\u0e35\u0e40\u0e21\u0e25 SMTP \u0e02\u0e32\u0e2d\u0e2d\u0e01\u0e17\u0e35\u0e48\u0e19\u0e35\u0e48 \u0e23\u0e30\u0e1a\u0e1a\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14\u0e17\u0e35\u0e48\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e01\u0e32\u0e23\u0e41\u0e08\u0e49\u0e07\u0e40\u0e15\u0e37\u0e2d\u0e19\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e08\u0e30\u0e44\u0e1b\u0e08\u0e32\u0e01\u0e17\u0e35\u0e48\u0e40\u0e0b\u0e34\u0e23\u0e4c\u0e1f\u0e40\u0e27\u0e2d\u0e23\u0e4c\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e19\u0e35\u0e49 \u0e2b\u0e32\u0e01\u0e04\u0e38\u0e13\u0e44\u0e21\u0e48\u0e41\u0e19\u0e48\u0e43\u0e08\u0e27\u0e48\u0e32\u0e40\u0e27\u0e49\u0e19\u0e27\u0e48\u0e32\u0e07\u0e44\u0e27\u0e49\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e43\u0e0a\u0e49\u0e40\u0e0b\u0e34\u0e23\u0e4c\u0e1f\u0e40\u0e27\u0e2d\u0e23\u0e4c ERPNext (\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e08\u0e30\u0e22\u0e31\u0e07\u0e04\u0e07\u0e16\u0e39\u0e01\u0e2a\u0e48\u0e07\u0e08\u0e32\u0e01 id \u0e2d\u0e35\u0e40\u0e21\u0e25\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13) \u0e2b\u0e23\u0e37\u0e2d\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d\u0e1c\u0e39\u0e49\u0e43\u0e2b\u0e49\u0e1a\u0e23\u0e34\u0e01\u0e32\u0e23\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13",
+ "Setup": "\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07",
+ "Signature": "\u0e25\u0e32\u0e22\u0e40\u0e0b\u0e47\u0e19",
+ "Signature to be appended at the end of every email": "\u0e25\u0e32\u0e22\u0e40\u0e0b\u0e47\u0e19\u0e17\u0e35\u0e48\u0e08\u0e30\u0e15\u0e48\u0e2d\u0e17\u0e49\u0e32\u0e22\u0e02\u0e2d\u0e07\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e17\u0e38\u0e01",
+ "Support Email": "\u0e01\u0e32\u0e23\u0e2a\u0e19\u0e31\u0e1a\u0e2a\u0e19\u0e38\u0e19\u0e17\u0e32\u0e07\u0e2d\u0e35\u0e40\u0e21\u0e25",
+ "Support Password": "\u0e23\u0e2b\u0e31\u0e2a\u0e1c\u0e48\u0e32\u0e19\u0e2a\u0e19\u0e31\u0e1a\u0e2a\u0e19\u0e38\u0e19",
+ "Support Ticket Mail Settings": "\u0e2a\u0e19\u0e31\u0e1a\u0e2a\u0e19\u0e38\u0e19\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32\u0e08\u0e14\u0e2b\u0e21\u0e32\u0e22\u0e15\u0e31\u0e4b\u0e27",
+ "Sync Support Mails": "\u0e0b\u0e34\u0e07\u0e04\u0e4c\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e17\u0e35\u0e48\u0e2a\u0e19\u0e31\u0e1a\u0e2a\u0e19\u0e38\u0e19",
+ "System generated mails will be sent from this email id.": "\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e17\u0e35\u0e48\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e23\u0e30\u0e1a\u0e1a\u0e08\u0e30\u0e16\u0e39\u0e01\u0e2a\u0e48\u0e07\u0e21\u0e32\u0e08\u0e32\u0e01 id \u0e2d\u0e35\u0e40\u0e21\u0e25\u0e19\u0e35\u0e49",
+ "To automatically create Support Tickets from your incoming mail, set your POP3 settings here. You must ideally create a separate email id for the erp system so that all emails will be synced into the system from that mail id. If you are not sure, please contact your EMail Provider.": "\u0e42\u0e14\u0e22\u0e2d\u0e31\u0e15\u0e42\u0e19\u0e21\u0e31\u0e15\u0e34\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e15\u0e31\u0e4b\u0e27\u0e01\u0e32\u0e23\u0e2a\u0e19\u0e31\u0e1a\u0e2a\u0e19\u0e38\u0e19\u0e08\u0e32\u0e01\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e17\u0e35\u0e48\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32 POP3 \u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13\u0e17\u0e35\u0e48\u0e19\u0e35\u0e48 \u0e04\u0e38\u0e13\u0e19\u0e36\u0e01\u0e04\u0e34\u0e14\u0e15\u0e49\u0e2d\u0e07\u0e2a\u0e23\u0e49\u0e32\u0e07 id \u0e2d\u0e35\u0e40\u0e21\u0e25\u0e17\u0e35\u0e48\u0e41\u0e22\u0e01\u0e15\u0e48\u0e32\u0e07\u0e2b\u0e32\u0e01\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e23\u0e30\u0e1a\u0e1a ERP \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e43\u0e2b\u0e49\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14\u0e08\u0e30\u0e16\u0e39\u0e01\u0e0b\u0e34\u0e07\u0e04\u0e4c\u0e40\u0e02\u0e49\u0e32\u0e44\u0e1b\u0e43\u0e19\u0e23\u0e30\u0e1a\u0e1a\u0e08\u0e32\u0e01 ID mail \u0e17\u0e35\u0e48 \u0e2b\u0e32\u0e01\u0e04\u0e38\u0e13\u0e44\u0e21\u0e48\u0e41\u0e19\u0e48\u0e43\u0e08\u0e27\u0e48\u0e32\u0e42\u0e1b\u0e23\u0e14\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d\u0e1c\u0e39\u0e49\u0e43\u0e2b\u0e49\u0e1a\u0e23\u0e34\u0e01\u0e32\u0e23\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13",
+ "Use SSL": "\u0e43\u0e0a\u0e49 SSL",
+ "User Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49",
+ "Your support email id - must be a valid email - this is where your emails will come!": "id \u0e2d\u0e35\u0e40\u0e21\u0e25\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13\u0e2a\u0e19\u0e31\u0e1a\u0e2a\u0e19\u0e38\u0e19 - \u0e15\u0e49\u0e2d\u0e07\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e17\u0e35\u0e48\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07 - \u0e19\u0e35\u0e48\u0e04\u0e37\u0e2d\u0e17\u0e35\u0e48\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13\u0e08\u0e30\u0e21\u0e32!"
+}
\ No newline at end of file
diff --git a/setup/doctype/features_setup/locale/_messages_doc.json b/setup/doctype/features_setup/locale/_messages_doc.json
index 369d0ed8d50..6d4d66b6ca3 100644
--- a/setup/doctype/features_setup/locale/_messages_doc.json
+++ b/setup/doctype/features_setup/locale/_messages_doc.json
@@ -3,16 +3,16 @@
"Purchase Discounts",
"To enable
Point of Sale features",
"To get Item Group in details table",
- "If you involve in manufacturing activity
Enables item
Is Manufactured",
"Features Setup",
"Discount Fields will be available in Purchase Order, Purchase Receipt, Purchase Invoice",
- "Item Groups in Details",
"Enables
More Info. in all documents",
"Item Serial Nos",
- "All export related fields like currency, conversion rate, export total, export grand total etc are available in
Delivery Note, POS, Quotation, Sales Invoice, Sales Order etc.",
"Item Barcode",
+ "Item Groups in Details",
+ "All export related fields like currency, conversion rate, export total, export grand total etc are available in
\nDelivery Note, POS, Quotation, Sales Invoice, Sales Order etc.",
"Sales Discounts",
"Exports",
+ "To track brand name in the following documents
\nDelivery Note, Enuiry, Material Request, Item, Purchase Order, Purchase Voucher, Purchaser Receipt, Quotation, Sales Invoice, Sales BOM, Sales Order, Serial No",
"Item Advanced",
"Packing Detials",
"Item Batch Nos",
@@ -21,27 +21,27 @@
"Manufacturing",
"If you have long print formats, this feature can be used to split the page to be printed on multiple pages with all headers and footers on each page",
"Sales and Purchase",
- "If you follow Quality Inspection
Enables item QA Required and QA No in Purchase Receipt",
- "If Sale BOM is defined, the actual BOM of the Pack is displayed as table.Available in Delivery Note and Sales Order",
+ "If Sale BOM is defined, the actual BOM of the Pack is displayed as table.\nAvailable in Delivery Note and Sales Order",
+ "Page Break",
+ "If you follow Quality Inspection
\nEnables item QA Required and QA No in Purchase Receipt",
"Check if you need automatic recurring invoices. After submitting any sales invoice, Recurring section will be visible.",
"Setup",
- "All import related fields like currency, conversion rate, import total, import grand total etc are available in
Purchase Receipt, Supplier Quotation, Purchase Invoice, Purchase Order etc.",
- "Sales Extras",
+ "Available in \nBOM, Delivery Note, Purchase Invoice, Production Order, Purchase Order, Purchase Receipt, Sales Invoice, Sales Order, Stock Entry, Timesheet",
"Materials",
"Miscelleneous",
"Recurring Invoice",
- "Available in BOM, Delivery Note, Purchase Invoice, Production Order, Purchase Order, Purchase Receipt, Sales Invoice, Sales Order, Stock Entry, Timesheet",
"Field available in Delivery Note, Quotation, Sales Invoice, Sales Order",
"More Info",
"Point of Sale",
+ "Sales Extras",
"Imports",
"If you have Sales Team and Sale Partners (Channel Partners) they can be tagged and maintain their contribution in the sales activity",
"To track items using barcode. You will be able to enter items in Delivery Note and Sales Invoice by scanning barcode of item.",
- "To track brand name in the following documents
Delivery Note, Enuiry, Material Request, Item, Purchase Order, Purchase Voucher, Purchaser Receipt, Quotation, Sales Invoice, Sales BOM, Sales Order, Serial No",
"To track items in sales and purchase documents with batch nos
Preferred Industry: Chemicals etc",
"After Sale Installations",
"Projects",
- "Page Break",
+ "All import related fields like currency, conversion rate, import total, import grand total etc are available in
\nPurchase Receipt, Supplier Quotation, Purchase Invoice, Purchase Order etc.",
+ "If you involve in manufacturing activity
\nEnables item
Is Manufactured",
"To track any installation or commissioning related work after sales",
"Quality",
"1. To maintain the customer wise item code and to make them searchable based on their code use this option"
diff --git a/setup/doctype/features_setup/locale/de-doc.json b/setup/doctype/features_setup/locale/de-doc.json
new file mode 100644
index 00000000000..4d53ab38148
--- /dev/null
+++ b/setup/doctype/features_setup/locale/de-doc.json
@@ -0,0 +1,41 @@
+{
+ "1. To maintain the customer wise item code and to make them searchable based on their code use this option": "Ein. Um den Kunden kluge Artikel Code zu pflegen und um sie durchsuchbar basierend auf ihren Code um diese Option",
+ "Accounts": "Konten",
+ "After Sale Installations": "After Sale Installationen",
+ "Brands": "Marken",
+ "Check if you need automatic recurring invoices. After submitting any sales invoice, Recurring section will be visible.": "\u00dcberpr\u00fcfen Sie, ob Sie die automatische wiederkehrende Rechnungen ben\u00f6tigen. Nach dem Absenden eine Rechnung \u00fcber den Verkauf wird Recurring Abschnitt sichtbar sein.",
+ "Discount Fields will be available in Purchase Order, Purchase Receipt, Purchase Invoice": "Discount Felder werden in der Bestellung, Kaufbeleg Kauf Rechnung verf\u00fcgbar",
+ "Enables
More Info. in all documents": "Erm\u00f6glicht
Mehr Info. B> in alle Dokumente",
+ "Exports": "Ausfuhr",
+ "Features Setup": "Features Setup",
+ "Field available in Delivery Note, Quotation, Sales Invoice, Sales Order": "Feld in Lieferschein, Angebot, Sales Invoice, Sales Order",
+ "If you have Sales Team and Sale Partners (Channel Partners) they can be tagged and maintain their contribution in the sales activity": "Wenn Sie Sales Team und Verkauf Partners (Channel Partners) sie markiert werden k\u00f6nnen und pflegen ihren Beitrag in der Vertriebsaktivit\u00e4ten",
+ "If you have long print formats, this feature can be used to split the page to be printed on multiple pages with all headers and footers on each page": "Wenn Sie lange drucken, haben Formate, kann diese Funktion dazu verwendet, um die Seite auf mehreren Seiten mit allen Kopf-und Fu\u00dfzeilen auf jeder Seite gedruckt werden",
+ "Imports": "Imports",
+ "Item Advanced": "Erweiterte Artikel",
+ "Item Barcode": "Barcode Artikel",
+ "Item Batch Nos": "In Batch Artikel",
+ "Item Groups in Details": "Details Gruppen in Artikel",
+ "Item Serial Nos": "Artikel Serial In",
+ "Manufacturing": "Herstellung",
+ "Materials": "Materialien",
+ "Miscelleneous": "Miscelleneous",
+ "More Info": "Mehr Info",
+ "Packing Detials": "Verpackung Detials",
+ "Page Break": "Seitenwechsel",
+ "Point of Sale": "Point of Sale",
+ "Projects": "Projekte",
+ "Purchase Discounts": "Kauf Rabatte",
+ "Quality": "Qualit\u00e4t",
+ "Recurring Invoice": "Wiederkehrende Rechnung",
+ "Sales Discounts": "Sales Rabatte",
+ "Sales Extras": "Verkauf Extras",
+ "Sales and Purchase": "Verkauf und Kauf",
+ "Setup": "Setup",
+ "To enable Point of Sale features": "Zum Point of Sale b> Funktionen erm\u00f6glichen",
+ "To get Item Group in details table": "Zu Artikelnummer Gruppe im Detail Tisch zu bekommen",
+ "To track any installation or commissioning related work after sales": "Um jegliche Installation oder Inbetriebnahme verwandte Arbeiten After Sales verfolgen",
+ "To track item in sales and purchase documents based on their serial nos. This is can also used to track warranty details of the product.": "Um Artikel in Vertrieb und Einkauf Dokumente auf ihrem Werknummern Basis zu verfolgen. Dies wird auch verwendet, um Details zum Thema Gew\u00e4hrleistung des Produktes zu verfolgen.",
+ "To track items in sales and purchase documents with batch nos
Preferred Industry: Chemicals etc": "Um Elemente in An-und Verkauf von Dokumenten mit Batch-nos
Preferred Industry verfolgen: Chemicals etc b>",
+ "To track items using barcode. You will be able to enter items in Delivery Note and Sales Invoice by scanning barcode of item.": "Um Objekte mit Barcode verfolgen. Sie werden in der Lage sein, um Elemente in Lieferschein und Sales Invoice durch Scannen Barcode einzusteigen."
+}
\ No newline at end of file
diff --git a/setup/doctype/features_setup/locale/pt-BR-doc.json b/setup/doctype/features_setup/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..17bb7f27d62
--- /dev/null
+++ b/setup/doctype/features_setup/locale/pt-BR-doc.json
@@ -0,0 +1,41 @@
+{
+ "1. To maintain the customer wise item code and to make them searchable based on their code use this option": "1. Para manter o c\u00f3digo de item do cliente e para torn\u00e1-los pesquis\u00e1veis \u200b\u200bcom base em seu c\u00f3digo use esta op\u00e7\u00e3o",
+ "Accounts": "Contas",
+ "After Sale Installations": "Instala\u00e7\u00f5es P\u00f3s-Venda",
+ "Brands": "Marcas",
+ "Check if you need automatic recurring invoices. After submitting any sales invoice, Recurring section will be visible.": "Marque se voc\u00ea precisa de notas fiscais recorrentes autom\u00e1ticas. Depois de enviar qualquer nota fiscal de venda, a se\u00e7\u00e3o Recorrente ser\u00e1 vis\u00edvel.",
+ "Discount Fields will be available in Purchase Order, Purchase Receipt, Purchase Invoice": "Campos de desconto estar\u00e3o dispon\u00edveis em Ordem de Compra, Recibo de Compra, Nota Fiscal de Compra",
+ "Enables More Info. in all documents": "Habilitar Mais informa\u00e7\u00f5es. em todos os documentos",
+ "Exports": "Exporta\u00e7\u00f5es",
+ "Features Setup": "Configura\u00e7\u00e3o de caracter\u00edsticas",
+ "Field available in Delivery Note, Quotation, Sales Invoice, Sales Order": "Campo dispon\u00edvel na Guia de Remessa, Cota\u00e7\u00e3o, Nota Fiscal de Venda, Ordem de Venda",
+ "If you have Sales Team and Sale Partners (Channel Partners) they can be tagged and maintain their contribution in the sales activity": "Se voc\u00ea tiver Equipe de Vendas e Parceiros de Venda (Parceiros de Canal) eles podem ser marcadas e manter suas contribui\u00e7\u00f5es na atividade de vendas",
+ "If you have long print formats, this feature can be used to split the page to be printed on multiple pages with all headers and footers on each page": "Se voc\u00ea formatos longos de impress\u00e3o, esse recurso pode ser usado para dividir a p\u00e1gina a ser impressa em v\u00e1rias p\u00e1ginas com todos os cabe\u00e7alhos e rodap\u00e9s em cada p\u00e1gina",
+ "Imports": "Importa\u00e7\u00f5es",
+ "Item Advanced": "Item antecipado",
+ "Item Barcode": "C\u00f3digo de barras do Item",
+ "Item Batch Nos": "N\u00ba do Lote do Item",
+ "Item Groups in Details": "Detalhes dos Grupos de Itens",
+ "Item Serial Nos": "N\u00ba de s\u00e9rie de Itens",
+ "Manufacturing": "Fabrica\u00e7\u00e3o",
+ "Materials": "Materiais",
+ "Miscelleneous": "Diversos",
+ "More Info": "Mais informa\u00e7\u00f5es",
+ "Packing Detials": "Detalhes da embalagem",
+ "Page Break": "Quebra de p\u00e1gina",
+ "Point of Sale": "Ponto de Venda",
+ "Projects": "Projetos",
+ "Purchase Discounts": "Descontos da compra",
+ "Quality": "Qualidade",
+ "Recurring Invoice": "Nota Fiscal Recorrente",
+ "Sales Discounts": "Descontos de Vendas",
+ "Sales Extras": "Extras de Vendas",
+ "Sales and Purchase": "Compra e Venda",
+ "Setup": "Configura\u00e7\u00e3o",
+ "To enable Point of Sale features": "Para habilitar as caracter\u00edsticas de Ponto de Venda ",
+ "To get Item Group in details table": "Para obter Grupo de Itens na tabela de detalhes",
+ "To track any installation or commissioning related work after sales": "Para rastrear qualquer trabalho relacionado \u00e0 instala\u00e7\u00e3o ou coloca\u00e7\u00e3o em funcionamento ap\u00f3s a venda",
+ "To track item in sales and purchase documents based on their serial nos. This is can also used to track warranty details of the product.": "Para acompanhar o item em documentos de vendas e de compras com base em seus n\u00fameros de s\u00e9rie. Isso tamb\u00e9m pode ser usado para rastrear detalhes sobre a garantia do produto.",
+ "To track items in sales and purchase documents with batch nos
Preferred Industry: Chemicals etc": "Para controlar os itens de vendas e documentos de compra pelo n\u00ba do lote
Por Ex.: Ind\u00fastria Qu\u00edmica, etc",
+ "To track items using barcode. You will be able to enter items in Delivery Note and Sales Invoice by scanning barcode of item.": "Para rastrear itens usando c\u00f3digo de barras. Voc\u00ea ser\u00e1 capaz de inserir itens na Guia de Remessa e Nota Fiscal de Venda atrav\u00e9s do escaneamento do c\u00f3digo de barras do item."
+}
\ No newline at end of file
diff --git a/setup/doctype/features_setup/locale/th-doc.json b/setup/doctype/features_setup/locale/th-doc.json
new file mode 100644
index 00000000000..3b25014284b
--- /dev/null
+++ b/setup/doctype/features_setup/locale/th-doc.json
@@ -0,0 +1,48 @@
+{
+ "1. To maintain the customer wise item code and to make them searchable based on their code use this option": "1 \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e23\u0e31\u0e01\u0e29\u0e32\u0e23\u0e2b\u0e31\u0e2a\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32\u0e17\u0e35\u0e48\u0e09\u0e25\u0e32\u0e14\u0e41\u0e25\u0e30\u0e08\u0e30\u0e17\u0e33\u0e43\u0e2b\u0e49\u0e1e\u0e27\u0e01\u0e40\u0e02\u0e32\u0e04\u0e49\u0e19\u0e2b\u0e32\u0e15\u0e32\u0e21\u0e23\u0e2b\u0e31\u0e2a\u0e02\u0e2d\u0e07\u0e1e\u0e27\u0e01\u0e40\u0e02\u0e32\u0e43\u0e0a\u0e49\u0e15\u0e31\u0e27\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e19\u0e35\u0e49",
+ "Accounts": "\u0e1a\u0e31\u0e0d\u0e0a\u0e35",
+ "After Sale Installations": "\u0e2b\u0e25\u0e31\u0e07\u0e08\u0e32\u0e01\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07\u0e02\u0e32\u0e22",
+ "All export related fields like currency, conversion rate, export total, export grand total etc are available in
Delivery Note, POS, Quotation, Sales Invoice, Sales Order etc.": "\u0e2a\u0e32\u0e02\u0e32\u0e17\u0e35\u0e48\u0e40\u0e01\u0e35\u0e48\u0e22\u0e27\u0e02\u0e49\u0e2d\u0e07\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14\u0e40\u0e0a\u0e48\u0e19\u0e01\u0e32\u0e23\u0e2a\u0e48\u0e07\u0e2d\u0e2d\u0e01\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e2d\u0e31\u0e15\u0e23\u0e32\u0e01\u0e32\u0e23\u0e41\u0e1b\u0e25\u0e07\u0e23\u0e27\u0e21\u0e01\u0e32\u0e23\u0e2a\u0e48\u0e07\u0e2d\u0e2d\u0e01 \u0e2f\u0e25\u0e2f \u0e01\u0e32\u0e23\u0e2a\u0e48\u0e07\u0e2d\u0e2d\u0e01\u0e23\u0e27\u0e21\u0e17\u0e31\u0e49\u0e07\u0e2a\u0e34\u0e49\u0e19\u0e17\u0e35\u0e48\u0e21\u0e35\u0e2d\u0e22\u0e39\u0e48\u0e43\u0e19
\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e2b\u0e15\u0e38\u0e08\u0e31\u0e14\u0e2a\u0e48\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32, POS, \u0e43\u0e1a\u0e40\u0e2a\u0e19\u0e2d\u0e23\u0e32\u0e04\u0e32, \u0e43\u0e1a\u0e41\u0e08\u0e49\u0e07\u0e2b\u0e19\u0e35\u0e49\u0e01\u0e32\u0e23\u0e02\u0e32\u0e22, \u0e01\u0e32\u0e23\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e01\u0e32\u0e23\u0e02\u0e32\u0e22 \u0e2f\u0e25\u0e2f",
+ "All import related fields like currency, conversion rate, import total, import grand total etc are available in
Purchase Receipt, Supplier Quotation, Purchase Invoice, Purchase Order etc.": "\u0e2a\u0e32\u0e02\u0e32\u0e17\u0e35\u0e48\u0e40\u0e01\u0e35\u0e48\u0e22\u0e27\u0e02\u0e49\u0e2d\u0e07\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14\u0e19\u0e33\u0e40\u0e02\u0e49\u0e32\u0e40\u0e0a\u0e48\u0e19\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e2d\u0e31\u0e15\u0e23\u0e32\u0e01\u0e32\u0e23\u0e41\u0e1b\u0e25\u0e07\u0e23\u0e27\u0e21\u0e01\u0e32\u0e23\u0e19\u0e33\u0e40\u0e02\u0e49\u0e32\u0e41\u0e25\u0e30\u0e2d\u0e37\u0e48\u0e19 \u0e46 \u0e19\u0e33\u0e40\u0e02\u0e49\u0e32\u0e41\u0e01\u0e23\u0e19\u0e14\u0e4c\u0e23\u0e27\u0e21\u0e17\u0e35\u0e48\u0e21\u0e35\u0e2d\u0e22\u0e39\u0e48\u0e43\u0e19
\u0e23\u0e31\u0e1a\u0e0b\u0e37\u0e49\u0e2d, \u0e43\u0e1a\u0e40\u0e2a\u0e19\u0e2d\u0e23\u0e32\u0e04\u0e32\u0e1c\u0e39\u0e49\u0e1c\u0e25\u0e34\u0e15, \u0e43\u0e1a\u0e01\u0e33\u0e01\u0e31\u0e1a\u0e0b\u0e37\u0e49\u0e2d, \u0e0b\u0e37\u0e49\u0e2d\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d \u0e2f\u0e25\u0e2f",
+ "Available in BOM, Delivery Note, Purchase Invoice, Production Order, Purchase Order, Purchase Receipt, Sales Invoice, Sales Order, Stock Entry, Timesheet": "\u0e17\u0e35\u0e48\u0e21\u0e35\u0e08\u0e33\u0e2b\u0e19\u0e48\u0e32\u0e22\u0e43\u0e19 BOM, \u0e2b\u0e21\u0e32\u0e22\u0e40\u0e2b\u0e15\u0e38\u0e08\u0e31\u0e14\u0e2a\u0e48\u0e07\u0e43\u0e1a\u0e41\u0e08\u0e49\u0e07\u0e2b\u0e19\u0e35\u0e49\u0e0b\u0e37\u0e49\u0e2d\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e01\u0e32\u0e23\u0e1c\u0e25\u0e34\u0e15\u0e01\u0e32\u0e23\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d, \u0e23\u0e31\u0e1a\u0e0b\u0e37\u0e49\u0e2d, \u0e02\u0e32\u0e22\u0e43\u0e1a\u0e41\u0e08\u0e49\u0e07\u0e2b\u0e19\u0e35\u0e49, \u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e32\u0e22\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e2a\u0e15\u0e47\u0e2d\u0e01, Timesheet",
+ "Brands": "\u0e41\u0e1a\u0e23\u0e19\u0e14\u0e4c",
+ "Check if you need automatic recurring invoices. After submitting any sales invoice, Recurring section will be visible.": "\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a\u0e27\u0e48\u0e32\u0e43\u0e1a\u0e41\u0e08\u0e49\u0e07\u0e2b\u0e19\u0e35\u0e49\u0e17\u0e35\u0e48\u0e04\u0e38\u0e13\u0e15\u0e49\u0e2d\u0e07\u0e40\u0e01\u0e34\u0e14\u0e02\u0e36\u0e49\u0e19\u0e42\u0e14\u0e22\u0e2d\u0e31\u0e15\u0e42\u0e19\u0e21\u0e31\u0e15\u0e34 \u0e2b\u0e25\u0e31\u0e07\u0e08\u0e32\u0e01\u0e2a\u0e48\u0e07\u0e43\u0e1a\u0e41\u0e08\u0e49\u0e07\u0e2b\u0e19\u0e35\u0e49\u0e43\u0e14 \u0e46 \u0e02\u0e32\u0e22\u0e2a\u0e48\u0e27\u0e19\u0e01\u0e34\u0e08\u0e27\u0e31\u0e15\u0e23\u0e08\u0e30\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e21\u0e2d\u0e07\u0e40\u0e2b\u0e47\u0e19",
+ "Discount Fields will be available in Purchase Order, Purchase Receipt, Purchase Invoice": "\u0e17\u0e38\u0e48\u0e07\u0e2a\u0e48\u0e27\u0e19\u0e25\u0e14\u0e08\u0e30\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e43\u0e0a\u0e49\u0e44\u0e14\u0e49\u0e43\u0e19\u0e43\u0e1a\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e23\u0e31\u0e1a\u0e0b\u0e37\u0e49\u0e2d, \u0e43\u0e1a\u0e01\u0e33\u0e01\u0e31\u0e1a\u0e0b\u0e37\u0e49\u0e2d",
+ "Enables More Info. in all documents": "\u0e0a\u0e48\u0e27\u0e22\u0e43\u0e2b\u0e49\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21. \u0e43\u0e19\u0e40\u0e2d\u0e01\u0e2a\u0e32\u0e23\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14",
+ "Exports": "\u0e01\u0e32\u0e23\u0e2a\u0e48\u0e07\u0e2d\u0e2d\u0e01",
+ "Features Setup": "\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07\u0e2a\u0e34\u0e48\u0e07\u0e2d\u0e33\u0e19\u0e27\u0e22\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e30\u0e14\u0e27\u0e01",
+ "Field available in Delivery Note, Quotation, Sales Invoice, Sales Order": "\u0e2a\u0e19\u0e32\u0e21\u0e17\u0e35\u0e48\u0e21\u0e35\u0e2d\u0e22\u0e39\u0e48\u0e43\u0e19\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e2b\u0e15\u0e38\u0e2a\u0e48\u0e07\u0e43\u0e1a\u0e40\u0e2a\u0e19\u0e2d\u0e23\u0e32\u0e04\u0e32, \u0e43\u0e1a\u0e41\u0e08\u0e49\u0e07\u0e2b\u0e19\u0e35\u0e49\u0e01\u0e32\u0e23\u0e02\u0e32\u0e22, \u0e01\u0e32\u0e23\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e01\u0e32\u0e23\u0e02\u0e32\u0e22",
+ "If Sale BOM is defined, the actual BOM of the Pack is displayed as table.Available in Delivery Note and Sales Order": "\u0e16\u0e49\u0e32 BOM \u0e02\u0e32\u0e22\u0e16\u0e39\u0e01\u0e01\u0e33\u0e2b\u0e19\u0e14 BOM \u0e17\u0e35\u0e48\u0e41\u0e17\u0e49\u0e08\u0e23\u0e34\u0e07\u0e02\u0e2d\u0e07\u0e41\u0e1e\u0e47\u0e04\u0e08\u0e30\u0e1b\u0e23\u0e32\u0e01\u0e0f\u0e40\u0e1b\u0e47\u0e19 table.Available \u0e43\u0e19\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e2b\u0e15\u0e38\u0e08\u0e31\u0e14\u0e2a\u0e48\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e41\u0e25\u0e30\u0e01\u0e32\u0e23\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e01\u0e32\u0e23\u0e02\u0e32\u0e22",
+ "If you follow Quality Inspection
Enables item QA Required and QA No in Purchase Receipt": "\u0e16\u0e49\u0e32\u0e04\u0e38\u0e13\u0e17\u0e33\u0e15\u0e32\u0e21\u0e01\u0e32\u0e23\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a\u0e04\u0e38\u0e13\u0e20\u0e32\u0e1e
\u0e0a\u0e48\u0e27\u0e22\u0e43\u0e2b\u0e49\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e17\u0e35\u0e48\u0e44\u0e21\u0e48\u0e08\u0e33\u0e40\u0e1b\u0e47\u0e19\u0e15\u0e49\u0e2d\u0e07\u0e41\u0e25\u0e30 QA QA \u0e43\u0e19\u0e43\u0e1a\u0e40\u0e2a\u0e23\u0e47\u0e08\u0e23\u0e31\u0e1a\u0e40\u0e07\u0e34\u0e19\u0e0b\u0e37\u0e49\u0e2d",
+ "If you have Sales Team and Sale Partners (Channel Partners) they can be tagged and maintain their contribution in the sales activity": "\u0e2b\u0e32\u0e01\u0e04\u0e38\u0e13\u0e21\u0e35\u0e01\u0e32\u0e23\u0e02\u0e32\u0e22\u0e41\u0e25\u0e30\u0e17\u0e35\u0e21\u0e2b\u0e38\u0e49\u0e19\u0e2a\u0e48\u0e27\u0e19\u0e02\u0e32\u0e22 (\u0e15\u0e31\u0e27\u0e41\u0e17\u0e19\u0e08\u0e33\u0e2b\u0e19\u0e48\u0e32\u0e22) \u0e1e\u0e27\u0e01\u0e40\u0e02\u0e32\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e15\u0e34\u0e14\u0e41\u0e17\u0e47\u0e01\u0e41\u0e25\u0e30\u0e23\u0e31\u0e01\u0e29\u0e32\u0e1c\u0e25\u0e07\u0e32\u0e19\u0e02\u0e2d\u0e07\u0e1e\u0e27\u0e01\u0e40\u0e02\u0e32\u0e43\u0e19\u0e01\u0e34\u0e08\u0e01\u0e23\u0e23\u0e21\u0e01\u0e32\u0e23\u0e02\u0e32\u0e22",
+ "If you have long print formats, this feature can be used to split the page to be printed on multiple pages with all headers and footers on each page": "\u0e2b\u0e32\u0e01\u0e04\u0e38\u0e13\u0e21\u0e35\u0e04\u0e27\u0e32\u0e21\u0e22\u0e32\u0e27\u0e1e\u0e34\u0e21\u0e1e\u0e4c\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a\u0e04\u0e38\u0e13\u0e25\u0e31\u0e01\u0e29\u0e13\u0e30\u0e19\u0e35\u0e49\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e43\u0e0a\u0e49\u0e43\u0e19\u0e01\u0e32\u0e23\u0e41\u0e22\u0e01\u0e2b\u0e19\u0e49\u0e32\u0e40\u0e27\u0e47\u0e1a\u0e17\u0e35\u0e48\u0e08\u0e30\u0e1e\u0e34\u0e21\u0e1e\u0e4c\u0e1a\u0e19\u0e2b\u0e19\u0e49\u0e32\u0e40\u0e27\u0e47\u0e1a\u0e2b\u0e25\u0e32\u0e22\u0e2b\u0e19\u0e49\u0e32\u0e01\u0e31\u0e1a\u0e2a\u0e48\u0e27\u0e19\u0e2b\u0e31\u0e27\u0e41\u0e25\u0e30\u0e17\u0e49\u0e32\u0e22\u0e01\u0e23\u0e30\u0e14\u0e32\u0e29\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14\u0e43\u0e19\u0e41\u0e15\u0e48\u0e25\u0e30\u0e2b\u0e19\u0e49\u0e32",
+ "If you involve in manufacturing activity
Enables item Is Manufactured": "\u0e2b\u0e32\u0e01\u0e04\u0e38\u0e13\u0e21\u0e35\u0e2a\u0e48\u0e27\u0e19\u0e23\u0e48\u0e27\u0e21\u0e43\u0e19\u0e01\u0e34\u0e08\u0e01\u0e23\u0e23\u0e21\u0e01\u0e32\u0e23\u0e1c\u0e25\u0e34\u0e15
\u0e0a\u0e48\u0e27\u0e22\u0e43\u0e2b\u0e49\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e17\u0e35\u0e48\u0e1c\u0e25\u0e34\u0e15",
+ "Imports": "\u0e01\u0e32\u0e23\u0e19\u0e33\u0e40\u0e02\u0e49\u0e32",
+ "Item Advanced": "\u0e02\u0e31\u0e49\u0e19\u0e2a\u0e39\u0e07\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23",
+ "Item Barcode": "\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e2d\u0e48\u0e32\u0e19\u0e1a\u0e32\u0e23\u0e4c\u0e42\u0e04\u0e49\u0e14\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Item Batch Nos": "Nos Batch \u0e23\u0e32\u0e22\u0e01\u0e32\u0e23",
+ "Item Groups in Details": "\u0e01\u0e25\u0e38\u0e48\u0e21\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e43\u0e19\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14",
+ "Item Serial Nos": "Nos \u0e2d\u0e19\u0e38\u0e01\u0e23\u0e21\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23",
+ "Manufacturing": "\u0e01\u0e32\u0e23\u0e1c\u0e25\u0e34\u0e15",
+ "Materials": "\u0e27\u0e31\u0e2a\u0e14\u0e38",
+ "Miscelleneous": "\u0e40\u0e1a\u0e47\u0e14\u0e40\u0e15\u0e25\u0e47\u0e14",
+ "More Info": "\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21",
+ "Packing Detials": "detials \u0e1a\u0e23\u0e23\u0e08\u0e38",
+ "Page Break": "\u0e41\u0e1a\u0e48\u0e07\u0e2b\u0e19\u0e49\u0e32",
+ "Point of Sale": "\u0e08\u0e38\u0e14\u0e02\u0e32\u0e22",
+ "Projects": "\u0e42\u0e04\u0e23\u0e07\u0e01\u0e32\u0e23",
+ "Purchase Discounts": "\u0e2a\u0e48\u0e27\u0e19\u0e25\u0e14\u0e01\u0e32\u0e23\u0e0b\u0e37\u0e49\u0e2d",
+ "Quality": "\u0e04\u0e38\u0e13\u0e20\u0e32\u0e1e",
+ "Recurring Invoice": "\u0e43\u0e1a\u0e41\u0e08\u0e49\u0e07\u0e2b\u0e19\u0e35\u0e49\u0e17\u0e35\u0e48\u0e40\u0e01\u0e34\u0e14\u0e02\u0e36\u0e49\u0e19\u0e1b\u0e23\u0e30\u0e08\u0e33",
+ "Sales Discounts": "\u0e2a\u0e48\u0e27\u0e19\u0e25\u0e14\u0e01\u0e32\u0e23\u0e02\u0e32\u0e22",
+ "Sales Extras": "\u0e1e\u0e34\u0e40\u0e28\u0e29\u0e02\u0e32\u0e22",
+ "Sales and Purchase": "\u0e01\u0e32\u0e23\u0e02\u0e32\u0e22\u0e41\u0e25\u0e30\u0e01\u0e32\u0e23\u0e0b\u0e37\u0e49\u0e2d",
+ "Setup": "\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07",
+ "To enable Point of Sale features": "\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e40\u0e1b\u0e34\u0e14\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e04\u0e38\u0e13\u0e25\u0e31\u0e01\u0e29\u0e13\u0e30\u0e08\u0e38\u0e14\u0e02\u0e32\u0e22",
+ "To get Item Group in details table": "\u0e17\u0e35\u0e48\u0e08\u0e30\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e01\u0e25\u0e38\u0e48\u0e21\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e43\u0e19\u0e15\u0e32\u0e23\u0e32\u0e07\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14",
+ "To track any installation or commissioning related work after sales": "\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e15\u0e34\u0e14\u0e15\u0e32\u0e21\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07\u0e43\u0e14 \u0e46 \u0e2b\u0e23\u0e37\u0e2d\u0e07\u0e32\u0e19\u0e17\u0e35\u0e48\u0e40\u0e01\u0e35\u0e48\u0e22\u0e27\u0e02\u0e49\u0e2d\u0e07\u0e01\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e27\u0e48\u0e32\u0e08\u0e49\u0e32\u0e07\u0e2b\u0e25\u0e31\u0e07\u0e01\u0e32\u0e23\u0e02\u0e32\u0e22",
+ "To track brand name in the following documents
Delivery Note, Enuiry, Material Request, Item, Purchase Order, Purchase Voucher, Purchaser Receipt, Quotation, Sales Invoice, Sales BOM, Sales Order, Serial No": "\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e15\u0e34\u0e14\u0e15\u0e32\u0e21\u0e0a\u0e37\u0e48\u0e2d\u0e41\u0e1a\u0e23\u0e19\u0e14\u0e4c\u0e43\u0e19\u0e40\u0e2d\u0e01\u0e2a\u0e32\u0e23\u0e14\u0e31\u0e07\u0e15\u0e48\u0e2d\u0e44\u0e1b
\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e2b\u0e15\u0e38\u0e01\u0e32\u0e23\u0e08\u0e31\u0e14\u0e2a\u0e48\u0e07 Enuiry, \u0e01\u0e32\u0e23\u0e02\u0e2d\u0e27\u0e31\u0e2a\u0e14\u0e38\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e1a\u0e31\u0e15\u0e23\u0e01\u0e33\u0e19\u0e31\u0e25\u0e0b\u0e37\u0e49\u0e2d\u0e43\u0e1a\u0e40\u0e2a\u0e23\u0e47\u0e08\u0e23\u0e31\u0e1a\u0e40\u0e07\u0e34\u0e19\u0e0b\u0e37\u0e49\u0e2d, \u0e43\u0e1a\u0e40\u0e2a\u0e19\u0e2d\u0e23\u0e32\u0e04\u0e32, \u0e43\u0e1a\u0e41\u0e08\u0e49\u0e07\u0e2b\u0e19\u0e35\u0e49\u0e01\u0e32\u0e23\u0e02\u0e32\u0e22, BOM \u0e02\u0e32\u0e22\u0e43\u0e1a\u0e2a\u0e31\u0e48\u0e07\u0e02\u0e32\u0e22, Serial \u0e44\u0e21\u0e48\u0e21\u0e35",
+ "To track item in sales and purchase documents based on their serial nos. This is can also used to track warranty details of the product.": "\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e15\u0e34\u0e14\u0e15\u0e32\u0e21\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e43\u0e19\u0e40\u0e2d\u0e01\u0e2a\u0e32\u0e23\u0e01\u0e32\u0e23\u0e02\u0e32\u0e22\u0e41\u0e25\u0e30\u0e01\u0e32\u0e23\u0e0b\u0e37\u0e49\u0e2d\u0e08\u0e32\u0e01 Nos \u0e2d\u0e19\u0e38\u0e01\u0e23\u0e21\u0e02\u0e2d\u0e07\u0e1e\u0e27\u0e01\u0e40\u0e02\u0e32 \u0e19\u0e35\u0e49\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e43\u0e0a\u0e49\u0e43\u0e19\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e32\u0e21\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e01\u0e32\u0e23\u0e23\u0e31\u0e1a\u0e1b\u0e23\u0e30\u0e01\u0e31\u0e19\u0e02\u0e2d\u0e07\u0e1c\u0e25\u0e34\u0e15\u0e20\u0e31\u0e13\u0e11\u0e4c",
+ "To track items in sales and purchase documents with batch nos
Preferred Industry: Chemicals etc": "\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e15\u0e34\u0e14\u0e15\u0e32\u0e21\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e43\u0e19\u0e40\u0e2d\u0e01\u0e2a\u0e32\u0e23\u0e01\u0e32\u0e23\u0e02\u0e32\u0e22\u0e41\u0e25\u0e30\u0e01\u0e32\u0e23\u0e0b\u0e37\u0e49\u0e2d\u0e14\u0e49\u0e27\u0e22 Nos \u0e0a\u0e38\u0e14
\u0e2d\u0e38\u0e15\u0e2a\u0e32\u0e2b\u0e01\u0e23\u0e23\u0e21\u0e17\u0e35\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23: \u0e2f\u0e25\u0e2f \u0e2a\u0e32\u0e23\u0e40\u0e04\u0e21\u0e35",
+ "To track items using barcode. You will be able to enter items in Delivery Note and Sales Invoice by scanning barcode of item.": "\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e15\u0e34\u0e14\u0e15\u0e32\u0e21\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e42\u0e14\u0e22\u0e43\u0e0a\u0e49\u0e1a\u0e32\u0e23\u0e4c\u0e42\u0e04\u0e49\u0e14 \u0e04\u0e38\u0e13\u0e08\u0e30\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e1b\u0e49\u0e2d\u0e19\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e43\u0e19\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e2b\u0e15\u0e38\u0e08\u0e31\u0e14\u0e2a\u0e48\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e41\u0e25\u0e30\u0e02\u0e32\u0e22\u0e43\u0e1a\u0e41\u0e08\u0e49\u0e07\u0e2b\u0e19\u0e35\u0e49\u0e42\u0e14\u0e22\u0e01\u0e32\u0e23\u0e2a\u0e41\u0e01\u0e19\u0e1a\u0e32\u0e23\u0e4c\u0e42\u0e04\u0e49\u0e14\u0e02\u0e2d\u0e07\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23"
+}
\ No newline at end of file
diff --git a/setup/doctype/global_defaults/locale/_messages_doc.json b/setup/doctype/global_defaults/locale/_messages_doc.json
index ce466a64b4e..7c318c95074 100644
--- a/setup/doctype/global_defaults/locale/_messages_doc.json
+++ b/setup/doctype/global_defaults/locale/_messages_doc.json
@@ -1,85 +1,75 @@
[
"Session Expiry in Hours e.g. 06:00",
- "mm-dd-yyyy",
- "Default Supplier Type",
- "Users with this role are allowed to do / modify stock entry before frozen date",
- "No",
- "Buying",
- "Default Price List",
- "Purchase Order Required",
- "System",
+ "Raise Material Request when stock reaches re-order level",
+ "Employee record is created using selected field. ",
"dd/mm/yyyy",
"Stock level frozen up to this date, nobody can do / modify entry except authorized person",
- "Employee Records to be created by ",
- "Purchase Receipt Required",
"Allow Negative Stock",
- "Moving Average",
- "Accounts Frozen Upto",
- "CGHelp",
- "Default Valuation Method",
- "Naming Series",
- "Supplier Name",
- "Default Price List Currency",
- "#,###.##",
- "Stock",
- "Default Warehouse Type",
+ "Employee Records to be created by ",
+ "Accounting entry frozen up to this date, nobody can do / modify entry except authorized person",
"Account Info",
- "Maintain same rate throughout purchase cycle",
- "Precision for Float fields (quantities, discounts, percentages etc) only for display. Floats will still be calculated up to 6 decimals.",
"Default Company",
"Applicable only if valuation method is moving average",
"Company",
- "Raise Material Request when stock reaches re-order level",
- "Date Format",
- "Employee record is created using selected field. ",
- "HR",
- "3",
- "2",
- "5",
- "4",
- "#,##,###.##",
- "Customer Master created by ",
- "Default Item Group",
"dd-mm-yyyy",
- "Accounting entry frozen up to this date, nobody can do / modify entry except authorized person",
- "Supplier Master created by ",
- "#.###,##",
- "Credit Controller",
+ "Naming Series",
"SMS Sender Name",
- "IGHelp",
- "Default Currency",
- "Default Stock UOM",
- "Number Format",
+ "Default Warehouse Type",
"Setup",
- "6",
- "Stock Frozen Upto",
- "Hide Currency Symbol",
+ "Maintain same rate throughout purchase cycle",
"Customer Name",
- "FIFO",
- "Authourized Role (Frozen Entry)",
- "Employee Number",
- "Current Fiscal Year",
- "yyyy-mm-dd",
- "# ###.##",
- "#.###",
- "Do not show any symbol like $ etc next to currencies.",
+ "Default Price List Currency",
"Percentage you are allowed to receive or deliver more against the quantity ordered. For example: If you have ordered 100 units. and your Allowance is 10% then you are allowed to receive 110 units
",
+ "Global Defaults",
+ "Accounts",
+ "mm-dd-yyyy",
+ "Users with this role are allowed to do / modify stock entry before frozen date",
+ "HR",
+ "System",
+ "FIFO",
+ "Purchase Receipt Required",
+ "Default Valuation Method",
+ "Accounts Frozen Upto",
+ "Allowance Percent",
+ "Customer Master created by ",
+ "Buying",
+ "Supplier Master created by ",
+ "Selling",
+ "Default Territory",
+ "Default Supplier Type",
+ "CGHelp",
"Session Expiry",
"Default Customer Group",
- "TerritoryHelp",
- "#,###.###",
- "Float Precision",
"Sales Order Required",
- "Allowance Percent",
+ "Employee Number",
+ "Yes",
+ "Precision for Float fields (quantities, discounts, percentages etc) only for display. Floats will still be calculated up to 6 decimals.",
+ "No",
+ "Default Price List",
+ "Default Item Group",
+ "mm/dd/yyyy",
+ "Date Format",
+ "Authorized Role (Frozen Entry)",
+ "If disable, 'Rounded Total' field will not be visible in any transaction",
+ "Credit Controller",
+ "IGHelp",
+ "Disable Rounded Total",
+ "Current Fiscal Year",
+ "yyyy-mm-dd",
+ "Do not show any symbol like $ etc next to currencies.",
+ "Float Precision",
"Users with this role are allowed to do / modify accounting entry before frozen date",
"General",
"Delivery Note Required",
- "Global Defaults",
- "#,###",
- "Accounts",
- "Authorized Role (Frozen Entry)",
- "Selling",
- "Default Territory",
- "Yes",
- "mm/dd/yyyy"
+ "Purchase Order Required",
+ "Moving Average",
+ "Default Currency",
+ "Supplier Name",
+ "Stock",
+ "Number Format",
+ "Default Stock UOM",
+ "Stock Frozen Upto",
+ "Authourized Role (Frozen Entry)",
+ "Hide Currency Symbol",
+ "TerritoryHelp"
]
\ No newline at end of file
diff --git a/setup/doctype/global_defaults/locale/de-doc.json b/setup/doctype/global_defaults/locale/de-doc.json
new file mode 100644
index 00000000000..ad8f1e668dc
--- /dev/null
+++ b/setup/doctype/global_defaults/locale/de-doc.json
@@ -0,0 +1,69 @@
+{
+ "Account Info": "Kundendaten",
+ "Accounting entry frozen up to this date, nobody can do / modify entry except authorized person": "Buchhaltungseingaben bis zu diesem Zeitpunkt eingefroren, kann niemand / nicht \u00e4ndern Eintrag au\u00dfer autorisierten Person",
+ "Accounts": "Konten",
+ "Accounts Frozen Upto": "Konten Bis gefroren",
+ "Allow Negative Stock": "Lassen Negative Lager",
+ "Allowance Percent": "Allowance Prozent",
+ "Applicable only if valuation method is moving average": "Gilt nur, wenn Bewertungsmethode ist gleitenden Durchschnitt",
+ "Authorized Role (Frozen Entry)": "Autorisierte Rolle (Frozen Entry)",
+ "Authourized Role (Frozen Entry)": "Authourized Rolle (Frozen Entry)",
+ "Buying": "Kauf",
+ "CGHelp": "CGHelp",
+ "Company": "Firma",
+ "Credit Controller": "Credit Controller",
+ "Current Fiscal Year": "Laufenden Gesch\u00e4ftsjahr",
+ "Customer Name": "Name des Kunden",
+ "Date Format": "Datumsformat",
+ "Default Company": "Standard Unternehmen",
+ "Default Currency": "Standardw\u00e4hrung",
+ "Default Customer Group": "Standard Customer Group",
+ "Default Item Group": "Standard Element Gruppe",
+ "Default Price List": "Standard Preisliste",
+ "Default Price List Currency": "Standard Preisliste W\u00e4hrung",
+ "Default Stock UOM": "Standard Lager UOM",
+ "Default Supplier Type": "Standard Lieferant Typ",
+ "Default Territory": "Standard Territory",
+ "Default Valuation Method": "Standard Valuation Method",
+ "Default Warehouse Type": "Standard Warehouse Typ",
+ "Delivery Note Required": "Lieferschein erforderlich",
+ "Do not show any symbol like $ etc next to currencies.": "Zeigen keine Symbol wie $ etc neben W\u00e4hrungen.",
+ "Employee Number": "Mitarbeiternummer",
+ "FIFO": "FIFO",
+ "Float Precision": "Gleitkommatgenauigkeit",
+ "General": "General",
+ "Global Defaults": "Globale Defaults",
+ "HR": "HR",
+ "Hide Currency Symbol": "Ausblenden W\u00e4hrungssymbol",
+ "IGHelp": "IGHelp",
+ "Maintain same rate throughout purchase cycle": "Pflegen gleichen Rate gesamten Kauf-Zyklus",
+ "Moving Average": "Moving Average",
+ "Naming Series": "Benennen Series",
+ "No": "Auf",
+ "Number Format": "Number Format",
+ "Percentage you are allowed to receive or deliver more against the quantity ordered.
For example: If you have ordered 100 units. and your Allowance is 10% then you are allowed to receive 110 units
": "Prozentuale Ihnen erlaubt zu empfangen oder zu liefern mehr gegen die Menge bestellt werden.
Zum Beispiel: Wenn Sie 100 Einheiten bestellt. und Ihre Allowance ist 10%, dann d\u00fcrfen Sie 110 Einheiten p> und Sie bekommen",
+ "Precision for Float fields (quantities, discounts, percentages etc) only for display. Floats will still be calculated up to 6 decimals.": "Pr\u00e4zision ist Float Felder (quantities, Rabatte, Prozente etc) nur zur Anzeige. Floats noch bis zu 6 Dezimalstellen berechnet werden.",
+ "Purchase Order Required": "Bestellung erforderlich",
+ "Purchase Receipt Required": "Kaufbeleg erforderlich",
+ "Raise Material Request when stock reaches re-order level": "Heben Anfrage Material erreicht, wenn der Vorrat re-order-Ebene",
+ "SMS Sender Name": "SMS Absender Name",
+ "Sales Order Required": "Sales Order erforderlich",
+ "Selling": "Verkauf",
+ "Session Expiry": "Session Verfall",
+ "Session Expiry in Hours e.g. 06:00": "Session Verfall z. B. in Stunden 06.00",
+ "Setup": "Setup",
+ "Stock": "Lager",
+ "Stock Frozen Upto": "Lager Bis gefroren",
+ "Stock level frozen up to this date, nobody can do / modify entry except authorized person": "Bestand bis zu diesem Zeitpunkt eingefroren, kann niemand / nicht \u00e4ndern Eintrag au\u00dfer autorisierten Person",
+ "Supplier Name": "Name des Anbieters",
+ "System": "System",
+ "TerritoryHelp": "TerritoryHelp",
+ "Users with this role are allowed to do / modify accounting entry before frozen date": "Benutzer mit dieser Rolle tun d\u00fcrfen / \u00e4ndern Verbuchung vor dem gefrorenen Datum",
+ "Users with this role are allowed to do / modify stock entry before frozen date": "Benutzer mit dieser Rolle d\u00fcrfen zu tun / \u00e4ndern stock Eintrag vor gefrorenen Datum",
+ "Yes": "Ja",
+ "dd-mm-yyyy": "dd-mm-yyyy",
+ "dd/mm/yyyy": "dd / mm / yyyy",
+ "mm-dd-yyyy": "mm-dd-yyyy",
+ "mm/dd/yyyy": "mm / dd / yyyy",
+ "yyyy-mm-dd": "yyyy-mm-dd"
+}
\ No newline at end of file
diff --git a/setup/doctype/global_defaults/locale/pt-BR-doc.json b/setup/doctype/global_defaults/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..a9e83c20abc
--- /dev/null
+++ b/setup/doctype/global_defaults/locale/pt-BR-doc.json
@@ -0,0 +1,75 @@
+{
+ "Account Info": "Informa\u00e7\u00f5es da Conta",
+ "Accounting entry frozen up to this date, nobody can do / modify entry except authorized person": "Lan\u00e7amento cont\u00e1bil congelado at\u00e9 a presente data, ningu\u00e9m pode fazer / modificar um lan\u00e7amento, exceto pessoas autorizadas",
+ "Accounts": "Contas",
+ "Accounts Frozen Upto": "Contas congeladas at\u00e9",
+ "Allow Negative Stock": "Permitir Estoque Negativo",
+ "Allowance Percent": "Percentual de toler\u00e2ncia",
+ "Applicable only if valuation method is moving average": "Aplic\u00e1vel apenas se o m\u00e9todo de avalia\u00e7\u00e3o \u00e9 a m\u00e9dia m\u00f3vel",
+ "Authorized Role (Frozen Entry)": "Fun\u00e7\u00e3o Autorizada (Lan\u00e7amento Congelado)",
+ "Authourized Role (Frozen Entry)": "Fun\u00e7\u00e3o Autorizada (Lan\u00e7amento Congelado)",
+ "Buying": "Compras",
+ "CGHelp": "CGHelp",
+ "Company": "Empresa",
+ "Credit Controller": "Controlador de cr\u00e9dito",
+ "Current Fiscal Year": "Ano Fiscal Atual",
+ "Customer Master created by ": "Cadastro de Clientes criado por",
+ "Customer Name": "Nome do cliente",
+ "Date Format": "Formato da data",
+ "Default Company": "Empresa padr\u00e3o",
+ "Default Currency": "Moeda padr\u00e3o",
+ "Default Customer Group": "Grupo de Clientes padr\u00e3o",
+ "Default Item Group": "Grupo de Itens padr\u00e3o",
+ "Default Price List": "Lista de Pre\u00e7os padr\u00e3o",
+ "Default Price List Currency": "Moeda padr\u00e3o da Lista de Pre\u00e7os",
+ "Default Stock UOM": "Padr\u00e3o da UDM do Estouqe",
+ "Default Supplier Type": "Tipo de fornecedor padr\u00e3o",
+ "Default Territory": "Territ\u00f3rio padr\u00e3o",
+ "Default Valuation Method": "M\u00e9todo de Avalia\u00e7\u00e3o padr\u00e3o",
+ "Default Warehouse Type": "Tipo de Almoxarifado padr\u00e3o",
+ "Delivery Note Required": "Guia de Remessa Obrigat\u00f3ria",
+ "Disable Rounded Total": "Desativar total arredondado",
+ "Do not show any symbol like $ etc next to currencies.": "N\u00e3o mostrar qualquer s\u00edmbolo como US $ etc ao lado de moedas.",
+ "Employee Number": "N\u00famero do Funcion\u00e1rio",
+ "Employee Records to be created by ": "Registros de Funcion\u00e1rio a serem criados por",
+ "Employee record is created using selected field. ": "Registro de funcion\u00e1rio \u00e9 criado usando o campo selecionado.",
+ "FIFO": "PEPS",
+ "Float Precision": "Precis\u00e3o flutuante",
+ "General": "Geral",
+ "Global Defaults": "Padr\u00f5es globais",
+ "HR": "RH",
+ "Hide Currency Symbol": "Ocultar S\u00edmbolo de Moeda",
+ "IGHelp": "IGHelp",
+ "If disable, 'Rounded Total' field will not be visible in any transaction": "Se desativar, 'Arredondado Total' campo n\u00e3o ser\u00e1 vis\u00edvel em qualquer transa\u00e7\u00e3o",
+ "Maintain same rate throughout purchase cycle": "Manter o mesmo valor atrav\u00e9s de todo o ciclo de compra",
+ "Moving Average": "M\u00e9dia m\u00f3vel",
+ "Naming Series": "S\u00e9ries nomeadas",
+ "No": "N\u00e3o",
+ "Number Format": "Formato de n\u00famero",
+ "Percentage you are allowed to receive or deliver more against the quantity ordered.
For example: If you have ordered 100 units. and your Allowance is 10% then you are allowed to receive 110 units
": "Percentagem que est\u00e3o autorizados a receber ou entregar al\u00e9m da quantidade encomendada.
Por exemplo: Se voc\u00ea encomendou 100 unidades e seu limite \u00e9 de 10%, ent\u00e3o voc\u00ea est\u00e1 autorizado a receber 110 unidades
",
+ "Precision for Float fields (quantities, discounts, percentages etc) only for display. Floats will still be calculated up to 6 decimals.": "Precis\u00e3o para campos Float (quantidade, descontos, percentuais, etc) \u00e9 apenas para exibi\u00e7\u00e3o. Floats ainda ser\u00e3o calculado at\u00e9 6 casas decimais.",
+ "Purchase Order Required": "Ordem de Compra Obrigat\u00f3ria",
+ "Purchase Receipt Required": "Recibo de Compra Obrigat\u00f3rio",
+ "Raise Material Request when stock reaches re-order level": "Levante solicitar material quando o estoque atinge novo pedido de n\u00edvel",
+ "SMS Sender Name": "Nome do remetente do SMS",
+ "Sales Order Required": "Ordem de Venda Obrigat\u00f3ria",
+ "Selling": "Vendas",
+ "Session Expiry": "Dura\u00e7\u00e3o da sess\u00e3o",
+ "Session Expiry in Hours e.g. 06:00": "Dura\u00e7\u00e3o da sess\u00e3o em Horas, por exemplo 06:00",
+ "Setup": "Configura\u00e7\u00e3o",
+ "Stock": "Estoque",
+ "Stock Frozen Upto": "Estoque congelado at\u00e9",
+ "Stock level frozen up to this date, nobody can do / modify entry except authorized person": "N\u00edvel de estoque congelado at\u00e9 a presente data, ningu\u00e9m pode fazer / modificar um lan\u00e7amento, exceto pessoal autorizado",
+ "Supplier Master created by ": "Cadastro de Fornecedor criado por",
+ "Supplier Name": "Nome do Fornecedor",
+ "System": "Sistema",
+ "TerritoryHelp": "Ajuda do Territ\u00f3rio",
+ "Users with this role are allowed to do / modify accounting entry before frozen date": "Usu\u00e1rios com esta fun\u00e7\u00e3o est\u00e3o autorizados a fazer / modificar lan\u00e7amentos de contabilidade antes da data de congelamento",
+ "Users with this role are allowed to do / modify stock entry before frozen date": "Usu\u00e1rios com esta fun\u00e7\u00e3o est\u00e3o autorizados a fazer / modificar lan\u00e7amentos de material no estoque antes da data de congelamento",
+ "Yes": "Sim",
+ "dd-mm-yyyy": "dd-mm-aaaa",
+ "dd/mm/yyyy": "dd/mm/aaaa",
+ "mm-dd-yyyy": "mm-dd-aaaa",
+ "mm/dd/yyyy": "mm/dd/aaaa",
+ "yyyy-mm-dd": "aaaa-mm-dd"
+}
\ No newline at end of file
diff --git a/setup/doctype/global_defaults/locale/th-doc.json b/setup/doctype/global_defaults/locale/th-doc.json
new file mode 100644
index 00000000000..8e4d0df51f3
--- /dev/null
+++ b/setup/doctype/global_defaults/locale/th-doc.json
@@ -0,0 +1,87 @@
+{
+ "# ###.##": "# # # #. # #",
+ "#,###": "# # # #",
+ "#,###.##": "# # # #. # #",
+ "#,###.###": "# # # #. # # #",
+ "#,##,###.##": "# # # # # #. # #",
+ "#.###": "#. # # #",
+ "#.###,##": "#. # # # # #",
+ "2": "2",
+ "3": "3",
+ "4": "4",
+ "5": "5",
+ "6": "6",
+ "Account Info": "\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e40\u0e01\u0e35\u0e48\u0e22\u0e27\u0e01\u0e31\u0e1a\u0e1a\u0e31\u0e0d\u0e0a\u0e35",
+ "Accounting entry frozen up to this date, nobody can do / modify entry except authorized person": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e1a\u0e31\u0e0d\u0e0a\u0e35\u0e41\u0e0a\u0e48\u0e41\u0e02\u0e47\u0e07\u0e16\u0e36\u0e07\u0e27\u0e31\u0e19\u0e19\u0e35\u0e49\u0e44\u0e21\u0e48\u0e21\u0e35\u0e43\u0e04\u0e23\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e17\u0e33 / \u0e41\u0e01\u0e49\u0e44\u0e02\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e22\u0e01\u0e40\u0e27\u0e49\u0e19\u0e1c\u0e39\u0e49\u0e21\u0e35\u0e2d\u0e33\u0e19\u0e32\u0e08",
+ "Accounts": "\u0e1a\u0e31\u0e0d\u0e0a\u0e35",
+ "Accounts Frozen Upto": "\u0e1a\u0e31\u0e0d\u0e0a\u0e35 Frozen \u0e40\u0e01\u0e34\u0e19",
+ "Allow Negative Stock": "\u0e2d\u0e19\u0e38\u0e0d\u0e32\u0e15\u0e43\u0e2b\u0e49\u0e2a\u0e15\u0e47\u0e2d\u0e01\u0e40\u0e0a\u0e34\u0e07\u0e25\u0e1a",
+ "Allowance Percent": "\u0e23\u0e49\u0e2d\u0e22\u0e25\u0e30\u0e04\u0e48\u0e32\u0e40\u0e1c\u0e37\u0e48\u0e2d",
+ "Applicable only if valuation method is moving average": "\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e19\u0e33\u0e44\u0e1b\u0e43\u0e0a\u0e49\u0e44\u0e14\u0e49\u0e40\u0e09\u0e1e\u0e32\u0e30\u0e43\u0e19\u0e01\u0e23\u0e13\u0e35\u0e17\u0e35\u0e48\u0e27\u0e34\u0e18\u0e35\u0e01\u0e32\u0e23\u0e1b\u0e23\u0e30\u0e40\u0e21\u0e34\u0e19\u0e40\u0e1b\u0e47\u0e19\u0e04\u0e48\u0e32\u0e40\u0e09\u0e25\u0e35\u0e48\u0e22\u0e40\u0e04\u0e25\u0e37\u0e48\u0e2d\u0e19\u0e17\u0e35\u0e48",
+ "Authorized Role (Frozen Entry)": "\u0e1a\u0e17\u0e1a\u0e32\u0e17\u0e2d\u0e33\u0e19\u0e32\u0e08 (Entry \u0e41\u0e0a\u0e48\u0e41\u0e02\u0e47\u0e07)",
+ "Authourized Role (Frozen Entry)": "\u0e1a\u0e17\u0e1a\u0e32\u0e17 Authourized (Entry \u0e41\u0e0a\u0e48\u0e41\u0e02\u0e47\u0e07)",
+ "Buying": "\u0e01\u0e32\u0e23\u0e0b\u0e37\u0e49\u0e2d",
+ "CGHelp": "CGHelp",
+ "Company": "\u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17",
+ "Credit Controller": "\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e40\u0e04\u0e23\u0e14\u0e34\u0e15",
+ "Current Fiscal Year": "\u0e1b\u0e35\u0e07\u0e1a\u0e1b\u0e23\u0e30\u0e21\u0e32\u0e13\u0e1b\u0e31\u0e08\u0e08\u0e38\u0e1a\u0e31\u0e19",
+ "Customer Master created by ": "\u0e2b\u0e25\u0e31\u0e01\u0e02\u0e2d\u0e07\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32\u0e17\u0e35\u0e48\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e02\u0e36\u0e49\u0e19\u0e42\u0e14\u0e22",
+ "Customer Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Date Format": "\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48",
+ "Default Company": "\u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17 \u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19",
+ "Default Currency": "\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19",
+ "Default Customer Group": "\u0e01\u0e25\u0e38\u0e48\u0e21\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19",
+ "Default Item Group": "\u0e01\u0e25\u0e38\u0e48\u0e21\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19",
+ "Default Price List": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e23\u0e32\u0e04\u0e32\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19",
+ "Default Price List Currency": "\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e23\u0e32\u0e04\u0e32",
+ "Default Stock UOM": "\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19 UOM \u0e2a\u0e15\u0e47\u0e2d\u0e01",
+ "Default Supplier Type": "\u0e0b\u0e31\u0e1e\u0e1e\u0e25\u0e32\u0e22\u0e40\u0e2d\u0e2d\u0e23\u0e4c\u0e0a\u0e19\u0e34\u0e14\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19",
+ "Default Territory": "\u0e14\u0e34\u0e19\u0e41\u0e14\u0e19\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19",
+ "Default Valuation Method": "\u0e27\u0e34\u0e18\u0e35\u0e01\u0e32\u0e23\u0e1b\u0e23\u0e30\u0e40\u0e21\u0e34\u0e19\u0e04\u0e48\u0e32\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19",
+ "Default Warehouse Type": "\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19",
+ "Delivery Note Required": "\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e2b\u0e15\u0e38\u0e08\u0e31\u0e14\u0e2a\u0e48\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e17\u0e35\u0e48\u0e08\u0e33\u0e40\u0e1b\u0e47\u0e19",
+ "Disable Rounded Total": "\u0e1b\u0e34\u0e14\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e23\u0e27\u0e21\u0e42\u0e04\u0e49\u0e07",
+ "Do not show any symbol like $ etc next to currencies.": "\u0e44\u0e21\u0e48\u0e41\u0e2a\u0e14\u0e07\u0e2a\u0e31\u0e0d\u0e25\u0e31\u0e01\u0e29\u0e13\u0e4c\u0e43\u0e14 \u0e46 \u0e40\u0e0a\u0e48\u0e19 \u0e2f\u0e25\u0e2f $ \u0e15\u0e48\u0e2d\u0e44\u0e1b\u0e01\u0e31\u0e1a\u0e40\u0e07\u0e34\u0e19\u0e2a\u0e01\u0e38\u0e25",
+ "Employee Number": "\u0e08\u0e33\u0e19\u0e27\u0e19\u0e1e\u0e19\u0e31\u0e01\u0e07\u0e32\u0e19",
+ "Employee Records to be created by ": "\u0e23\u0e30\u0e40\u0e1a\u0e35\u0e22\u0e19\u0e1e\u0e19\u0e31\u0e01\u0e07\u0e32\u0e19\u0e17\u0e35\u0e48\u0e08\u0e30\u0e16\u0e39\u0e01\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e02\u0e36\u0e49\u0e19\u0e42\u0e14\u0e22",
+ "Employee record is created using selected field. ": "\u0e23\u0e30\u0e40\u0e1a\u0e35\u0e22\u0e19\u0e1e\u0e19\u0e31\u0e01\u0e07\u0e32\u0e19\u0e17\u0e35\u0e48\u0e16\u0e39\u0e01\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e02\u0e36\u0e49\u0e19\u0e42\u0e14\u0e22\u0e43\u0e0a\u0e49\u0e40\u0e02\u0e15\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e17\u0e35\u0e48\u0e40\u0e25\u0e37\u0e2d\u0e01",
+ "FIFO": "FIFO",
+ "Float Precision": "\u0e1e\u0e23\u0e35\u0e0b\u0e34\u0e0a\u0e31\u0e48\u0e25\u0e2d\u0e22",
+ "General": "\u0e17\u0e31\u0e48\u0e27\u0e44\u0e1b",
+ "Global Defaults": "\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19\u0e17\u0e31\u0e48\u0e27\u0e42\u0e25\u0e01",
+ "HR": "\u0e17\u0e23\u0e31\u0e1e\u0e22\u0e32\u0e01\u0e23\u0e1a\u0e38\u0e04\u0e04\u0e25",
+ "Hide Currency Symbol": "\u0e0b\u0e48\u0e2d\u0e19\u0e2a\u0e31\u0e0d\u0e25\u0e31\u0e01\u0e29\u0e13\u0e4c\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19",
+ "IGHelp": "IGHelp",
+ "If disable, 'Rounded Total' field will not be visible in any transaction": "\u0e16\u0e49\u0e32\u0e1b\u0e34\u0e14\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19 '\u0e1b\u0e31\u0e14\u0e23\u0e27\u0e21\u0e1f\u0e34\u0e25\u0e14\u0e4c\u0e08\u0e30\u0e21\u0e2d\u0e07\u0e44\u0e21\u0e48\u0e40\u0e2b\u0e47\u0e19\u0e43\u0e19\u0e01\u0e32\u0e23\u0e17\u0e33\u0e18\u0e38\u0e23\u0e01\u0e23\u0e23\u0e21\u0e43\u0e14 \u0e46",
+ "Maintain same rate throughout purchase cycle": "\u0e23\u0e31\u0e01\u0e29\u0e32\u0e2d\u0e31\u0e15\u0e23\u0e32\u0e40\u0e14\u0e35\u0e22\u0e27\u0e01\u0e31\u0e19\u0e15\u0e25\u0e2d\u0e14\u0e27\u0e07\u0e08\u0e23\u0e01\u0e32\u0e23\u0e0b\u0e37\u0e49\u0e2d",
+ "Moving Average": "\u0e04\u0e48\u0e32\u0e40\u0e09\u0e25\u0e35\u0e48\u0e22\u0e40\u0e04\u0e25\u0e37\u0e48\u0e2d\u0e19\u0e17\u0e35\u0e48",
+ "Naming Series": "\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e0a\u0e37\u0e48\u0e2d\u0e0b\u0e35\u0e23\u0e35\u0e2a\u0e4c",
+ "No": "\u0e44\u0e21\u0e48",
+ "Number Format": "\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a\u0e08\u0e33\u0e19\u0e27\u0e19",
+ "Percentage you are allowed to receive or deliver more against the quantity ordered.
For example: If you have ordered 100 units. and your Allowance is 10% then you are allowed to receive 110 units
": "\u0e40\u0e1b\u0e2d\u0e23\u0e4c\u0e40\u0e0b\u0e47\u0e19\u0e15\u0e4c\u0e17\u0e35\u0e48\u0e04\u0e38\u0e13\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e2d\u0e19\u0e38\u0e0d\u0e32\u0e15\u0e43\u0e2b\u0e49\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e2b\u0e23\u0e37\u0e2d\u0e2a\u0e48\u0e07\u0e21\u0e2d\u0e1a\u0e01\u0e31\u0e1a\u0e1b\u0e23\u0e34\u0e21\u0e32\u0e13\u0e17\u0e35\u0e48\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d
\u0e15\u0e31\u0e27\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e40\u0e0a\u0e48\u0e19\u0e2b\u0e32\u0e01\u0e04\u0e38\u0e13\u0e44\u0e14\u0e49\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d 100 \u0e2b\u0e19\u0e48\u0e27\u0e22 \u0e41\u0e25\u0e30\u0e04\u0e48\u0e32\u0e40\u0e1c\u0e37\u0e48\u0e2d\u0e04\u0e38\u0e13\u0e08\u0e30 10% \u0e41\u0e25\u0e49\u0e27\u0e04\u0e38\u0e13\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e2d\u0e19\u0e38\u0e0d\u0e32\u0e15\u0e08\u0e30\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a 110 \u0e2b\u0e19\u0e48\u0e27\u0e22
",
+ "Precision for Float fields (quantities, discounts, percentages etc) only for display. Floats will still be calculated up to 6 decimals.": "\u0e1e\u0e23\u0e35\u0e0b\u0e34\u0e0a\u0e31\u0e48\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e40\u0e02\u0e15 Float (\u0e1b\u0e23\u0e34\u0e21\u0e32\u0e13, \u0e2a\u0e48\u0e27\u0e19\u0e25\u0e14, \u0e2f\u0e25\u0e2f \u0e23\u0e49\u0e2d\u0e22\u0e25\u0e30) \u0e40\u0e1e\u0e35\u0e22\u0e07\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e41\u0e2a\u0e14\u0e07\u0e1c\u0e25 \u0e25\u0e2d\u0e22\u0e08\u0e30\u0e22\u0e31\u0e07\u0e04\u0e07\u0e04\u0e33\u0e19\u0e27\u0e13\u0e16\u0e36\u0e07 6 \u0e17\u0e28\u0e19\u0e34\u0e22\u0e21",
+ "Purchase Order Required": "\u0e08\u0e33\u0e40\u0e1b\u0e47\u0e19\u0e15\u0e49\u0e2d\u0e07\u0e21\u0e35\u0e01\u0e32\u0e23\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d",
+ "Purchase Receipt Required": "\u0e23\u0e31\u0e1a\u0e0b\u0e37\u0e49\u0e2d\u0e17\u0e35\u0e48\u0e08\u0e33\u0e40\u0e1b\u0e47\u0e19",
+ "Raise Material Request when stock reaches re-order level": "\u0e22\u0e01\u0e04\u0e33\u0e02\u0e2d\u0e27\u0e31\u0e2a\u0e14\u0e38\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e2b\u0e38\u0e49\u0e19\u0e16\u0e36\u0e07\u0e23\u0e30\u0e14\u0e31\u0e1a\u0e43\u0e2b\u0e21\u0e48\u0e2a\u0e31\u0e48\u0e07",
+ "SMS Sender Name": "\u0e2a\u0e48\u0e07 SMS \u0e0a\u0e37\u0e48\u0e2d",
+ "Sales Order Required": "\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e22\u0e2d\u0e14\u0e02\u0e32\u0e22\u0e17\u0e35\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23",
+ "Selling": "\u0e02\u0e32\u0e22",
+ "Session Expiry": "\u0e2b\u0e21\u0e14\u0e2d\u0e32\u0e22\u0e38\u0e40\u0e0b\u0e2a\u0e0a\u0e31\u0e48\u0e19",
+ "Session Expiry in Hours e.g. 06:00": "\u0e2b\u0e21\u0e14\u0e2d\u0e32\u0e22\u0e38\u0e43\u0e19\u0e40\u0e0b\u0e2a\u0e0a\u0e31\u0e48\u0e19\u0e0a\u0e31\u0e48\u0e27\u0e42\u0e21\u0e07\u0e40\u0e0a\u0e48\u0e19 06:00",
+ "Setup": "\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07",
+ "Stock": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Stock Frozen Upto": "\u0e2a\u0e15\u0e47\u0e2d\u0e01\u0e44\u0e21\u0e48\u0e40\u0e01\u0e34\u0e19 Frozen",
+ "Stock level frozen up to this date, nobody can do / modify entry except authorized person": "\u0e23\u0e30\u0e14\u0e31\u0e1a\u0e2a\u0e15\u0e47\u0e2d\u0e01\u0e41\u0e0a\u0e48\u0e41\u0e02\u0e47\u0e07\u0e16\u0e36\u0e07\u0e27\u0e31\u0e19\u0e19\u0e35\u0e49\u0e44\u0e21\u0e48\u0e21\u0e35\u0e43\u0e04\u0e23\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e17\u0e33 / \u0e41\u0e01\u0e49\u0e44\u0e02\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e22\u0e01\u0e40\u0e27\u0e49\u0e19\u0e1c\u0e39\u0e49\u0e21\u0e35\u0e2d\u0e33\u0e19\u0e32\u0e08",
+ "Supplier Master created by ": "\u0e1b\u0e23\u0e34\u0e0d\u0e0d\u0e32\u0e42\u0e17\u0e1c\u0e39\u0e49\u0e08\u0e31\u0e14\u0e08\u0e33\u0e2b\u0e19\u0e48\u0e32\u0e22\u0e17\u0e35\u0e48\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e02\u0e36\u0e49\u0e19\u0e42\u0e14\u0e22",
+ "Supplier Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e1c\u0e39\u0e49\u0e08\u0e31\u0e14\u0e08\u0e33\u0e2b\u0e19\u0e48\u0e32\u0e22",
+ "System": "\u0e23\u0e30\u0e1a\u0e1a",
+ "TerritoryHelp": "TerritoryHelp",
+ "Users with this role are allowed to do / modify accounting entry before frozen date": "\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e17\u0e35\u0e48\u0e21\u0e35\u0e1a\u0e17\u0e1a\u0e32\u0e17\u0e19\u0e35\u0e49\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e2d\u0e19\u0e38\u0e0d\u0e32\u0e15\u0e43\u0e2b\u0e49\u0e17\u0e33 / \u0e1b\u0e23\u0e31\u0e1a\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e1a\u0e31\u0e0d\u0e0a\u0e35\u0e01\u0e48\u0e2d\u0e19\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e41\u0e0a\u0e48\u0e41\u0e02\u0e47\u0e07",
+ "Users with this role are allowed to do / modify stock entry before frozen date": "\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e17\u0e35\u0e48\u0e21\u0e35\u0e1a\u0e17\u0e1a\u0e32\u0e17\u0e19\u0e35\u0e49\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e2d\u0e19\u0e38\u0e0d\u0e32\u0e15\u0e43\u0e2b\u0e49\u0e17\u0e33 / \u0e1b\u0e23\u0e31\u0e1a\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e2b\u0e38\u0e49\u0e19\u0e01\u0e48\u0e2d\u0e19\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e41\u0e0a\u0e48\u0e41\u0e02\u0e47\u0e07",
+ "Yes": "\u0e43\u0e0a\u0e48",
+ "dd-mm-yyyy": "dd-mm-yyyy",
+ "dd/mm/yyyy": "\u0e27\u0e31\u0e19 / \u0e40\u0e14\u0e37\u0e2d\u0e19 / \u0e1b\u0e35",
+ "mm-dd-yyyy": "dd-mm-\u0e1b\u0e35",
+ "mm/dd/yyyy": "dd / mm / \u0e1b\u0e35",
+ "yyyy-mm-dd": "YYYY-MM-DD"
+}
\ No newline at end of file
diff --git a/setup/doctype/item_group/item_group.py b/setup/doctype/item_group/item_group.py
index 13112fe7589..ba4ea77504b 100644
--- a/setup/doctype/item_group/item_group.py
+++ b/setup/doctype/item_group/item_group.py
@@ -31,9 +31,12 @@ class DocType(DocTypeNestedSet):
self.validate_name_with_item()
+ from website.helpers.product import invalidate_cache_for
+
+
if self.doc.show_in_website:
- # webpage updates
from website.utils import update_page_name
+ # webpage updates
page_name = self.doc.name
if webnotes.conn.get_value("Product Settings", None,
"default_product_category")==self.doc.name:
@@ -43,8 +46,17 @@ class DocType(DocTypeNestedSet):
update_page_name(self.doc, page_name)
- from website.helpers.product import invalidate_cache_for
invalidate_cache_for(self.doc.name)
+
+ elif self.doc.page_name:
+ # if unchecked show in website
+
+ from website.utils import delete_page_cache
+ delete_page_cache(self.doc.page_name)
+
+ invalidate_cache_for(self.doc.name)
+
+ webnotes.conn.set(self.doc, "page_name", None)
def validate_name_with_item(self):
if webnotes.conn.exists("Item", self.doc.name):
diff --git a/setup/doctype/item_group/locale/_messages_doc.json b/setup/doctype/item_group/locale/_messages_doc.json
index d78d31e83f2..325ef6aa3ff 100644
--- a/setup/doctype/item_group/locale/_messages_doc.json
+++ b/setup/doctype/item_group/locale/_messages_doc.json
@@ -1,23 +1,23 @@
[
"Show in Website",
- "old_parent",
- "HTML / Banner that will show on the top of product list.",
- "rgt",
- "Website Settings",
- "Only leaf nodes are allowed in transaction",
"No",
- "Setup",
+ "Parent Item Group",
+ "lft",
+ "Website Settings",
+ "Item Classification",
+ "rgt",
+ "Description",
"Check this if you want to show in website",
"Has Child Node",
- "Parent Item Group",
"Slideshow",
- "Item Classification",
- "lft",
- "Item Group Name",
"File List",
- "Item Group",
"Page Name",
"Show this slideshow at the top of the page",
- "Yes",
- "Description"
+ "Setup",
+ "HTML / Banner that will show on the top of product list.",
+ "Item Group Name",
+ "Item Group",
+ "Only leaf nodes are allowed in transaction",
+ "old_parent",
+ "Yes"
]
\ No newline at end of file
diff --git a/setup/doctype/item_group/locale/de-doc.json b/setup/doctype/item_group/locale/de-doc.json
new file mode 100644
index 00000000000..581a2781f46
--- /dev/null
+++ b/setup/doctype/item_group/locale/de-doc.json
@@ -0,0 +1,23 @@
+{
+ "Check this if you want to show in website": "Aktivieren Sie diese Option, wenn Sie in der Website zeigen wollen",
+ "Description": "Beschreibung",
+ "File List": "Dateiliste",
+ "HTML / Banner that will show on the top of product list.": "HTML / Banner, die auf der Oberseite des Produkt-Liste zeigen.",
+ "Has Child Node": "Hat Child Node",
+ "Item Classification": "Artikel Klassifizierung",
+ "Item Group": "Artikel-Gruppe",
+ "Item Group Name": "Artikel Group Name",
+ "No": "Auf",
+ "Only leaf nodes are allowed in transaction": "Nur Blattknoten in Transaktion zul\u00e4ssig",
+ "Page Name": "Page Name",
+ "Parent Item Group": "\u00dcbergeordneter Artikel Gruppe",
+ "Setup": "Setup",
+ "Show in Website": "Zeigen Sie im Website",
+ "Show this slideshow at the top of the page": "Zeige diese Slideshow an der Spitze der Seite",
+ "Slideshow": "Slideshow",
+ "Website Settings": "Website-Einstellungen",
+ "Yes": "Ja",
+ "lft": "lft",
+ "old_parent": "old_parent",
+ "rgt": "rgt"
+}
\ No newline at end of file
diff --git a/setup/doctype/item_group/locale/pt-BR-doc.json b/setup/doctype/item_group/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..d0bdac773db
--- /dev/null
+++ b/setup/doctype/item_group/locale/pt-BR-doc.json
@@ -0,0 +1,23 @@
+{
+ "Check this if you want to show in website": "Marque esta op\u00e7\u00e3o se voc\u00ea deseja mostrar no site",
+ "Description": "Descri\u00e7\u00e3o",
+ "File List": "Lista de Arquivos",
+ "HTML / Banner that will show on the top of product list.": "HTML / Faixa que vai ser mostrada no topo da lista de produtos.",
+ "Has Child Node": "Tem n\u00f3 filho",
+ "Item Classification": "Classifica\u00e7\u00e3o do Item",
+ "Item Group": "Grupo de Itens",
+ "Item Group Name": "Nome do Grupo de Itens",
+ "No": "N\u00e3o",
+ "Only leaf nodes are allowed in transaction": "Somente n\u00f3s-folha s\u00e3o permitidos em transa\u00e7\u00f5es",
+ "Page Name": "Nome da P\u00e1gina",
+ "Parent Item Group": "Grupo de item pai",
+ "Setup": "Configura\u00e7\u00e3o",
+ "Show in Website": "Mostrar no site",
+ "Show this slideshow at the top of the page": "Mostrar esta apresenta\u00e7\u00e3o de slides no topo da p\u00e1gina",
+ "Slideshow": "Apresenta\u00e7\u00e3o de slides",
+ "Website Settings": "Configura\u00e7\u00f5es do site",
+ "Yes": "Sim",
+ "lft": "esq.",
+ "old_parent": "old_parent",
+ "rgt": "dir."
+}
\ No newline at end of file
diff --git a/setup/doctype/item_group/locale/th-doc.json b/setup/doctype/item_group/locale/th-doc.json
new file mode 100644
index 00000000000..a49450acbf4
--- /dev/null
+++ b/setup/doctype/item_group/locale/th-doc.json
@@ -0,0 +1,23 @@
+{
+ "Check this if you want to show in website": "\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a\u0e19\u0e35\u0e49\u0e16\u0e49\u0e32\u0e04\u0e38\u0e13\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e17\u0e35\u0e48\u0e08\u0e30\u0e41\u0e2a\u0e14\u0e07\u0e43\u0e19\u0e40\u0e27\u0e47\u0e1a\u0e44\u0e0b\u0e15\u0e4c",
+ "Description": "\u0e25\u0e31\u0e01\u0e29\u0e13\u0e30",
+ "File List": "\u0e23\u0e32\u0e22\u0e0a\u0e37\u0e48\u0e2d\u0e44\u0e1f\u0e25\u0e4c",
+ "HTML / Banner that will show on the top of product list.": "HTML / \u0e41\u0e1a\u0e19\u0e40\u0e19\u0e2d\u0e23\u0e4c\u0e17\u0e35\u0e48\u0e08\u0e30\u0e41\u0e2a\u0e14\u0e07\u0e2d\u0e22\u0e39\u0e48\u0e14\u0e49\u0e32\u0e19\u0e1a\u0e19\u0e02\u0e2d\u0e07\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Has Child Node": "\u0e21\u0e35\u0e42\u0e2b\u0e19\u0e14\u0e25\u0e39\u0e01",
+ "Item Classification": "\u0e01\u0e32\u0e23\u0e08\u0e31\u0e14\u0e2b\u0e21\u0e27\u0e14\u0e2b\u0e21\u0e39\u0e48\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Item Group": "\u0e01\u0e25\u0e38\u0e48\u0e21\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Item Group Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e01\u0e25\u0e38\u0e48\u0e21\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "No": "\u0e44\u0e21\u0e48",
+ "Only leaf nodes are allowed in transaction": "\u0e42\u0e2b\u0e19\u0e14\u0e43\u0e1a\u0e40\u0e17\u0e48\u0e32\u0e19\u0e31\u0e49\u0e19\u0e17\u0e35\u0e48\u0e08\u0e30\u0e40\u0e02\u0e49\u0e32\u0e43\u0e19\u0e01\u0e32\u0e23\u0e17\u0e33\u0e18\u0e38\u0e23\u0e01\u0e23\u0e23\u0e21",
+ "Page Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e40\u0e1e\u0e08",
+ "Parent Item Group": "\u0e01\u0e25\u0e38\u0e48\u0e21\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e2b\u0e25\u0e31\u0e01",
+ "Setup": "\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07",
+ "Show in Website": "\u0e41\u0e2a\u0e14\u0e07\u0e43\u0e19\u0e40\u0e27\u0e47\u0e1a\u0e44\u0e0b\u0e15\u0e4c",
+ "Show this slideshow at the top of the page": "\u0e41\u0e2a\u0e14\u0e07\u0e20\u0e32\u0e1e\u0e2a\u0e44\u0e25\u0e14\u0e4c\u0e19\u0e35\u0e49\u0e17\u0e35\u0e48\u0e14\u0e49\u0e32\u0e19\u0e1a\u0e19\u0e02\u0e2d\u0e07\u0e2b\u0e19\u0e49\u0e32",
+ "Slideshow": "\u0e2a\u0e44\u0e25\u0e14\u0e4c\u0e42\u0e0a\u0e27\u0e4c",
+ "Website Settings": "\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32\u0e40\u0e27\u0e47\u0e1a\u0e44\u0e0b\u0e15\u0e4c",
+ "Yes": "\u0e43\u0e0a\u0e48",
+ "lft": "lft",
+ "old_parent": "old_parent",
+ "rgt": "RGT"
+}
\ No newline at end of file
diff --git a/setup/doctype/jobs_email_settings/locale/de-doc.json b/setup/doctype/jobs_email_settings/locale/de-doc.json
new file mode 100644
index 00000000000..f19bed11e82
--- /dev/null
+++ b/setup/doctype/jobs_email_settings/locale/de-doc.json
@@ -0,0 +1,16 @@
+{
+ "Check to activate": "\u00dcberpr\u00fcfen Sie aktivieren",
+ "Email Id": "Email Id",
+ "Email Id where a job applicant will email e.g. \"jobs@example.com\"": "Email Id, wo ein Bewerber beispielsweise per E-Mail wird \"Jobs@example.com\"",
+ "Email settings for jobs email id \"jobs@example.com\"": "E-Mail-Einstellungen f\u00fcr Jobs email id \"jobs@example.com\"",
+ "Extract Emails": "Auszug Emails",
+ "Host": "Gastgeber",
+ "Jobs Email Settings": "Jobs per E-Mail Einstellungen",
+ "POP3 Mail Settings": "POP3-Mail-Einstellungen",
+ "POP3 server e.g. (pop.gmail.com)": "POP3-Server beispielsweise (pop.gmail.com)",
+ "Password": "Kennwort",
+ "Settings to extract Job Applicants from a mailbox e.g. \"jobs@example.com\"": "Einstellungen f\u00fcr Bewerber aus einer Mailbox zB \"jobs@example.com\" extrahieren",
+ "Setup": "Setup",
+ "Use SSL": "Verwenden Sie SSL",
+ "Username": "Benutzername"
+}
\ No newline at end of file
diff --git a/setup/doctype/jobs_email_settings/locale/de-js.json b/setup/doctype/jobs_email_settings/locale/de-js.json
new file mode 100644
index 00000000000..6f0b76081ce
--- /dev/null
+++ b/setup/doctype/jobs_email_settings/locale/de-js.json
@@ -0,0 +1,3 @@
+{
+ "Not Active": "Nicht aktiv"
+}
\ No newline at end of file
diff --git a/setup/doctype/jobs_email_settings/locale/de-py.json b/setup/doctype/jobs_email_settings/locale/de-py.json
new file mode 100644
index 00000000000..df47b84932f
--- /dev/null
+++ b/setup/doctype/jobs_email_settings/locale/de-py.json
@@ -0,0 +1,3 @@
+{
+ "Host, Email and Password required if emails are to be pulled": "Host, E-Mail und Passwort erforderlich, wenn E-Mails gezogen werden"
+}
\ No newline at end of file
diff --git a/setup/doctype/jobs_email_settings/locale/pt-BR-doc.json b/setup/doctype/jobs_email_settings/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..b1cf11cf4e3
--- /dev/null
+++ b/setup/doctype/jobs_email_settings/locale/pt-BR-doc.json
@@ -0,0 +1,16 @@
+{
+ "Check to activate": "Marque para ativar",
+ "Email Id": "Endere\u00e7o de e-mail",
+ "Email Id where a job applicant will email e.g. \"jobs@example.com\"": "Endere\u00e7o do e-mail onde um candidato a emprego vai enviar e-mail, por exemplo: "empregos@exemplo.com"",
+ "Email settings for jobs email id \"jobs@example.com\"": "Configura\u00e7\u00f5es de e-mail para e-mail de empregos "empregos@exemplo.com"",
+ "Extract Emails": "Extrair e-mails",
+ "Host": "Host",
+ "Jobs Email Settings": "Configura\u00e7\u00f5es do e-mail de empregos",
+ "POP3 Mail Settings": "Configura\u00e7\u00f5es de e-mail pop3",
+ "POP3 server e.g. (pop.gmail.com)": "Servidor de e-mail POP3 (por exemplo, pop.gmail.com)",
+ "Password": "Senha",
+ "Settings to extract Job Applicants from a mailbox e.g. \"jobs@example.com\"": "Defini\u00e7\u00f5es para extrair os candidatos a emprego a partir de um e-mail, por exemplo: "empregos@exemplo.com"",
+ "Setup": "Configura\u00e7\u00e3o",
+ "Use SSL": "Use SSL",
+ "Username": "Nome do Usu\u00e1rio"
+}
\ No newline at end of file
diff --git a/setup/doctype/jobs_email_settings/locale/pt-BR-js.json b/setup/doctype/jobs_email_settings/locale/pt-BR-js.json
new file mode 100644
index 00000000000..19171e90b26
--- /dev/null
+++ b/setup/doctype/jobs_email_settings/locale/pt-BR-js.json
@@ -0,0 +1,4 @@
+{
+ "Active: Will extract emails from ": "Ativo: E-mails ser\u00e3o extra\u00eddos de",
+ "Not Active": "N\u00e3o Ativo"
+}
\ No newline at end of file
diff --git a/setup/doctype/jobs_email_settings/locale/pt-BR-py.json b/setup/doctype/jobs_email_settings/locale/pt-BR-py.json
new file mode 100644
index 00000000000..a6541971120
--- /dev/null
+++ b/setup/doctype/jobs_email_settings/locale/pt-BR-py.json
@@ -0,0 +1,3 @@
+{
+ "Host, Email and Password required if emails are to be pulled": "Host, E-mail e Senha s\u00e3o necess\u00e1rios se desejar obter e-mails"
+}
\ No newline at end of file
diff --git a/setup/doctype/jobs_email_settings/locale/th-doc.json b/setup/doctype/jobs_email_settings/locale/th-doc.json
new file mode 100644
index 00000000000..082a82fd7c8
--- /dev/null
+++ b/setup/doctype/jobs_email_settings/locale/th-doc.json
@@ -0,0 +1,16 @@
+{
+ "Check to activate": "\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e40\u0e1b\u0e34\u0e14\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19",
+ "Email Id": "Email \u0e23\u0e2b\u0e31\u0e2a",
+ "Email Id where a job applicant will email e.g. \"jobs@example.com\"": "Email \u0e23\u0e2b\u0e31\u0e2a\u0e17\u0e35\u0e48\u0e1c\u0e39\u0e49\u0e2a\u0e21\u0e31\u0e04\u0e23\u0e07\u0e32\u0e19\u0e08\u0e30\u0e2a\u0e48\u0e07\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e16\u0e36\u0e07 "jobs@example.com" \u0e40\u0e0a\u0e48\u0e19",
+ "Email settings for jobs email id \"jobs@example.com\"": "\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e2d\u0e35\u0e40\u0e21\u0e25 ID \u0e07\u0e32\u0e19 "jobs@example.com"",
+ "Extract Emails": "\u0e2a\u0e32\u0e23\u0e2a\u0e01\u0e31\u0e14\u0e08\u0e32\u0e01\u0e2d\u0e35\u0e40\u0e21\u0e25",
+ "Host": "\u0e40\u0e08\u0e49\u0e32\u0e20\u0e32\u0e1e",
+ "Jobs Email Settings": "\u0e07\u0e32\u0e19\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32\u0e2d\u0e35\u0e40\u0e21\u0e25",
+ "POP3 Mail Settings": "\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32 POP3 \u0e08\u0e14\u0e2b\u0e21\u0e32\u0e22",
+ "POP3 server e.g. (pop.gmail.com)": "POP3 \u0e40\u0e0b\u0e34\u0e23\u0e4c\u0e1f\u0e40\u0e27\u0e2d\u0e23\u0e4c\u0e40\u0e0a\u0e48\u0e19 (pop.gmail.com)",
+ "Password": "\u0e23\u0e2b\u0e31\u0e2a\u0e1c\u0e48\u0e32\u0e19",
+ "Settings to extract Job Applicants from a mailbox e.g. \"jobs@example.com\"": "\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32\u0e17\u0e35\u0e48\u0e08\u0e30\u0e14\u0e36\u0e07\u0e1c\u0e39\u0e49\u0e2a\u0e21\u0e31\u0e04\u0e23\u0e07\u0e32\u0e19\u0e08\u0e32\u0e01\u0e01\u0e25\u0e48\u0e2d\u0e07\u0e08\u0e14\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e0a\u0e48\u0e19 "jobs@example.com"",
+ "Setup": "\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07",
+ "Use SSL": "\u0e43\u0e0a\u0e49 SSL",
+ "Username": "\u0e0a\u0e37\u0e48\u0e2d\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49"
+}
\ No newline at end of file
diff --git a/setup/doctype/jobs_email_settings/locale/th-js.json b/setup/doctype/jobs_email_settings/locale/th-js.json
new file mode 100644
index 00000000000..9d092ccfa8a
--- /dev/null
+++ b/setup/doctype/jobs_email_settings/locale/th-js.json
@@ -0,0 +1,4 @@
+{
+ "Active: Will extract emails from ": "\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e25\u0e48\u0e32\u0e2a\u0e38\u0e14: \u0e08\u0e30\u0e14\u0e36\u0e07\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e08\u0e32\u0e01",
+ "Not Active": "\u0e44\u0e21\u0e48\u0e44\u0e14\u0e49\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e25\u0e48\u0e32\u0e2a\u0e38\u0e14"
+}
\ No newline at end of file
diff --git a/setup/doctype/jobs_email_settings/locale/th-py.json b/setup/doctype/jobs_email_settings/locale/th-py.json
new file mode 100644
index 00000000000..e377d4097d1
--- /dev/null
+++ b/setup/doctype/jobs_email_settings/locale/th-py.json
@@ -0,0 +1,3 @@
+{
+ "Host, Email and Password required if emails are to be pulled": "\u0e42\u0e2e\u0e2a\u0e15\u0e4c, Email \u0e41\u0e25\u0e30\u0e23\u0e2b\u0e31\u0e2a\u0e1c\u0e48\u0e32\u0e19\u0e17\u0e35\u0e48\u0e08\u0e33\u0e40\u0e1b\u0e47\u0e19\u0e2b\u0e32\u0e01\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e17\u0e35\u0e48\u0e08\u0e30\u0e14\u0e36\u0e07"
+}
\ No newline at end of file
diff --git a/setup/doctype/market_segment/locale/_messages_doc.json b/setup/doctype/market_segment/locale/_messages_doc.json
index e20c8c7ea0c..fa857630aa2 100644
--- a/setup/doctype/market_segment/locale/_messages_doc.json
+++ b/setup/doctype/market_segment/locale/_messages_doc.json
@@ -1,7 +1,7 @@
[
- "Setup",
- "Segment Name",
- "Market Segment",
"Trash Reason",
- "Details"
+ "Segment Name",
+ "Setup",
+ "Details",
+ "Market Segment"
]
\ No newline at end of file
diff --git a/setup/doctype/market_segment/locale/de-doc.json b/setup/doctype/market_segment/locale/de-doc.json
new file mode 100644
index 00000000000..f8ad0b85eeb
--- /dev/null
+++ b/setup/doctype/market_segment/locale/de-doc.json
@@ -0,0 +1,7 @@
+{
+ "Details": "Details",
+ "Market Segment": "Market Segment",
+ "Segment Name": "Segment Name",
+ "Setup": "Setup",
+ "Trash Reason": "Trash Reason"
+}
\ No newline at end of file
diff --git a/setup/doctype/market_segment/locale/pt-BR-doc.json b/setup/doctype/market_segment/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..d22b0330d60
--- /dev/null
+++ b/setup/doctype/market_segment/locale/pt-BR-doc.json
@@ -0,0 +1,7 @@
+{
+ "Details": "Detalhes",
+ "Market Segment": "Segmento de mercado",
+ "Segment Name": "Nome do Segmento",
+ "Setup": "Configura\u00e7\u00e3o",
+ "Trash Reason": "Raz\u00e3o de p\u00f4r no lixo"
+}
\ No newline at end of file
diff --git a/setup/doctype/market_segment/locale/th-doc.json b/setup/doctype/market_segment/locale/th-doc.json
new file mode 100644
index 00000000000..42144b248d1
--- /dev/null
+++ b/setup/doctype/market_segment/locale/th-doc.json
@@ -0,0 +1,7 @@
+{
+ "Details": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14",
+ "Market Segment": "\u0e2a\u0e48\u0e27\u0e19\u0e15\u0e25\u0e32\u0e14",
+ "Segment Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e2a\u0e48\u0e27\u0e19",
+ "Setup": "\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07",
+ "Trash Reason": "\u0e40\u0e2b\u0e15\u0e38\u0e1c\u0e25\u0e16\u0e31\u0e07\u0e02\u0e22\u0e30"
+}
\ No newline at end of file
diff --git a/setup/doctype/naming_series/locale/de-doc.json b/setup/doctype/naming_series/locale/de-doc.json
new file mode 100644
index 00000000000..50f5949ac51
--- /dev/null
+++ b/setup/doctype/naming_series/locale/de-doc.json
@@ -0,0 +1,18 @@
+{
+ "Change the starting / current sequence number of an existing series.": "\u00c4ndern Sie den Start / aktuelle Sequenznummer eines bestehenden Serie.",
+ "Check this if you want to force the user to select a series before saving. There will be no default if you check this.": "Aktivieren Sie diese Option, wenn Sie den Benutzer zwingen, eine Reihe vor dem Speichern ausw\u00e4hlen m\u00f6chten. Es wird kein Standard sein, wenn Sie dies zu \u00fcberpr\u00fcfen.",
+ "Current Value": "Aktueller Wert",
+ "Help HTML": "Helfen Sie HTML",
+ "Naming Series": "Benennen Series",
+ "Prefix": "Pr\u00e4fix",
+ "Select Transaction": "W\u00e4hlen Sie Transaction",
+ "Series List for this Transaction": "Serien-Liste f\u00fcr diese Transaktion",
+ "Set prefix for numbering series on your transactions": "Nummerierung einstellen Serie Pr\u00e4fix f\u00fcr Ihre Online-Transaktionen",
+ "Setup": "Setup",
+ "Setup Series": "Setup-Series",
+ "This is the number of the last created transaction with this prefix": "Dies ist die Nummer des zuletzt erzeugte Transaktion mit diesem Pr\u00e4fix",
+ "Update": "Aktualisieren",
+ "Update Series": "Update Series",
+ "Update Series Number": "Update Series Number",
+ "User must always select": "Der Benutzer muss immer w\u00e4hlen"
+}
\ No newline at end of file
diff --git a/setup/doctype/naming_series/locale/pt-BR-doc.json b/setup/doctype/naming_series/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..aeee58b8231
--- /dev/null
+++ b/setup/doctype/naming_series/locale/pt-BR-doc.json
@@ -0,0 +1,18 @@
+{
+ "Change the starting / current sequence number of an existing series.": "Alterar o n\u00famero sequencial de in\u00edcio/atual de uma s\u00e9rie existente.",
+ "Check this if you want to force the user to select a series before saving. There will be no default if you check this.": "Marque esta op\u00e7\u00e3o se voc\u00ea deseja for\u00e7ar o usu\u00e1rio a selecionar uma s\u00e9rie antes de salvar. N\u00e3o haver\u00e1 nenhum padr\u00e3o se voc\u00ea marcar isso.",
+ "Current Value": "Valor Atual",
+ "Help HTML": "Ajuda HTML",
+ "Naming Series": "S\u00e9ries nomeadas",
+ "Prefix": "Prefixo",
+ "Select Transaction": "Selecione a Transa\u00e7\u00e3o",
+ "Series List for this Transaction": "Lista de s\u00e9ries para esta transa\u00e7\u00e3o",
+ "Set prefix for numbering series on your transactions": "Definir prefixo para s\u00e9ries de numera\u00e7\u00e3o em suas transa\u00e7\u00f5es",
+ "Setup": "Configura\u00e7\u00e3o",
+ "Setup Series": "Configura\u00e7\u00e3o de S\u00e9ries",
+ "This is the number of the last created transaction with this prefix": "Este \u00e9 o n\u00famero da \u00faltima transa\u00e7\u00e3o criada com este prefixo",
+ "Update": "Atualizar",
+ "Update Series": "Atualizar S\u00e9ries",
+ "Update Series Number": "Atualizar N\u00fameros de S\u00e9ries",
+ "User must always select": "O Usu\u00e1rio deve sempre selecionar"
+}
\ No newline at end of file
diff --git a/setup/doctype/naming_series/locale/th-doc.json b/setup/doctype/naming_series/locale/th-doc.json
new file mode 100644
index 00000000000..7ef62b45bd0
--- /dev/null
+++ b/setup/doctype/naming_series/locale/th-doc.json
@@ -0,0 +1,18 @@
+{
+ "Change the starting / current sequence number of an existing series.": "\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e25\u0e02\u0e25\u0e33\u0e14\u0e31\u0e1a\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19 / \u0e1b\u0e31\u0e08\u0e08\u0e38\u0e1a\u0e31\u0e19\u0e02\u0e2d\u0e07\u0e0a\u0e38\u0e14\u0e17\u0e35\u0e48\u0e21\u0e35\u0e2d\u0e22\u0e39\u0e48",
+ "Check this if you want to force the user to select a series before saving. There will be no default if you check this.": "\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e19\u0e35\u0e49\u0e16\u0e49\u0e32\u0e04\u0e38\u0e13\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e1a\u0e31\u0e07\u0e04\u0e31\u0e1a\u0e43\u0e2b\u0e49\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e0a\u0e38\u0e14\u0e01\u0e48\u0e2d\u0e19\u0e17\u0e35\u0e48\u0e08\u0e30\u0e1a\u0e31\u0e19\u0e17\u0e36\u0e01 \u0e08\u0e30\u0e21\u0e35\u0e04\u0e48\u0e32\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19\u0e44\u0e21\u0e48\u0e16\u0e49\u0e32\u0e04\u0e38\u0e13\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a\u0e19\u0e35\u0e49",
+ "Current Value": "\u0e04\u0e48\u0e32\u0e1b\u0e31\u0e08\u0e08\u0e38\u0e1a\u0e31\u0e19",
+ "Help HTML": "\u0e27\u0e34\u0e18\u0e35\u0e43\u0e0a\u0e49 HTML",
+ "Naming Series": "\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e0a\u0e37\u0e48\u0e2d\u0e0b\u0e35\u0e23\u0e35\u0e2a\u0e4c",
+ "Prefix": "\u0e2d\u0e38\u0e1b\u0e2a\u0e23\u0e23\u0e04",
+ "Select Transaction": "\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23",
+ "Series List for this Transaction": "\u0e23\u0e32\u0e22\u0e0a\u0e37\u0e48\u0e2d\u0e0a\u0e38\u0e14\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e17\u0e33\u0e18\u0e38\u0e23\u0e01\u0e23\u0e23\u0e21\u0e19\u0e35\u0e49",
+ "Set prefix for numbering series on your transactions": "\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e04\u0e33\u0e19\u0e33\u0e2b\u0e19\u0e49\u0e32\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e25\u0e02\u0e0a\u0e38\u0e14\u0e17\u0e33\u0e18\u0e38\u0e23\u0e01\u0e23\u0e23\u0e21\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13",
+ "Setup": "\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07",
+ "Setup Series": "\u0e0a\u0e38\u0e14\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07",
+ "This is the number of the last created transaction with this prefix": "\u0e19\u0e35\u0e48\u0e04\u0e37\u0e2d\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e25\u0e02\u0e02\u0e2d\u0e07\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e17\u0e35\u0e48\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e02\u0e36\u0e49\u0e19\u0e25\u0e48\u0e32\u0e2a\u0e38\u0e14\u0e01\u0e31\u0e1a\u0e04\u0e33\u0e19\u0e33\u0e2b\u0e19\u0e49\u0e32\u0e19\u0e35\u0e49",
+ "Update": "\u0e2d\u0e31\u0e1e\u0e40\u0e14\u0e17",
+ "Update Series": "Series \u0e1b\u0e23\u0e31\u0e1a\u0e1b\u0e23\u0e38\u0e07",
+ "Update Series Number": "\u0e08\u0e33\u0e19\u0e27\u0e19 Series \u0e1b\u0e23\u0e31\u0e1a\u0e1b\u0e23\u0e38\u0e07",
+ "User must always select": "\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e08\u0e30\u0e15\u0e49\u0e2d\u0e07\u0e40\u0e25\u0e37\u0e2d\u0e01"
+}
\ No newline at end of file
diff --git a/setup/doctype/naming_series_options/locale/de-doc.json b/setup/doctype/naming_series_options/locale/de-doc.json
new file mode 100644
index 00000000000..c07d638134b
--- /dev/null
+++ b/setup/doctype/naming_series_options/locale/de-doc.json
@@ -0,0 +1,6 @@
+{
+ "Doc Type": "Doc Type",
+ "Naming Series Options": "Benennen Optionen Series",
+ "Series Options": "Serie Optionen",
+ "Setup": "Setup"
+}
\ No newline at end of file
diff --git a/setup/doctype/naming_series_options/locale/pt-BR-doc.json b/setup/doctype/naming_series_options/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..080f44dee7c
--- /dev/null
+++ b/setup/doctype/naming_series_options/locale/pt-BR-doc.json
@@ -0,0 +1,6 @@
+{
+ "Doc Type": "Tipo do Documento",
+ "Naming Series Options": "Op\u00e7\u00f5es das S\u00e9ries nomeadas",
+ "Series Options": "Op\u00e7\u00f5es de S\u00e9ries",
+ "Setup": "Configura\u00e7\u00e3o"
+}
\ No newline at end of file
diff --git a/setup/doctype/naming_series_options/locale/th-doc.json b/setup/doctype/naming_series_options/locale/th-doc.json
new file mode 100644
index 00000000000..0202a37a50f
--- /dev/null
+++ b/setup/doctype/naming_series_options/locale/th-doc.json
@@ -0,0 +1,6 @@
+{
+ "Doc Type": "\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17 Doc",
+ "Naming Series Options": "\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e0a\u0e37\u0e48\u0e2d\u0e15\u0e31\u0e27\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e0a\u0e38\u0e14",
+ "Series Options": "\u0e15\u0e31\u0e27\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e0a\u0e38\u0e14",
+ "Setup": "\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07"
+}
\ No newline at end of file
diff --git a/setup/doctype/notification_control/locale/de-doc.json b/setup/doctype/notification_control/locale/de-doc.json
new file mode 100644
index 00000000000..81fb54d96e6
--- /dev/null
+++ b/setup/doctype/notification_control/locale/de-doc.json
@@ -0,0 +1,31 @@
+{
+ "Custom Message": "Custom Message",
+ "Customize the Notification": "Passen Sie die Benachrichtigung",
+ "Customize the introductory text that goes as a part of that email. Each transaction has a separate introductory text.": "Passen Sie den einleitenden Text, der als Teil der E-Mail geht. Jede Transaktion hat einen separaten einleitenden Text.",
+ "Delivery Note": "Lieferschein",
+ "Delivery Note Message": "Lieferschein Nachricht",
+ "Expense Claim": "Expense Anspruch",
+ "Expense Claim Approved": "Expense Anspruch Genehmigt",
+ "Expense Claim Approved Message": "Expense Anspruch Genehmigt Nachricht",
+ "Expense Claim Rejected": "Expense Antrag abgelehnt",
+ "Expense Claim Rejected Message": "Expense Antrag abgelehnt Nachricht",
+ "Notification Control": "Meldungssteuervorrichtung",
+ "Prompt for Email on Submission of": "Eingabeaufforderung f\u00fcr E-Mail auf Vorlage von",
+ "Purchase": "Kaufen",
+ "Purchase Order": "Auftragsbest\u00e4tigung",
+ "Purchase Order Message": "Purchase Order Nachricht",
+ "Purchase Receipt": "Kaufbeleg",
+ "Purchase Receipt Message": "Kaufbeleg Nachricht",
+ "Quotation": "Zitat",
+ "Quotation Message": "Quotation Nachricht",
+ "Sales": "Vertrieb",
+ "Sales Invoice": "Sales Invoice",
+ "Sales Invoice Message": "Sales Invoice Nachricht",
+ "Sales Order": "Sales Order",
+ "Sales Order Message": "Sales Order Nachricht",
+ "Select Transaction": "W\u00e4hlen Sie Transaction",
+ "Send automatic emails to Contacts on Submitting transactions.": "Senden Sie automatische E-Mails an Kontakte auf Einreichen Transaktionen.",
+ "Setup": "Setup",
+ "Update": "Aktualisieren",
+ "When any of the checked transactions are \"Submitted\", an email pop-up automatically opened to send an email to the associated \"Contact\" in that transaction, with the transaction as an attachment. The user may or may not send the email.": "Wenn eine der \u00fcberpr\u00fcften Transaktionen werden \"Eingereicht\", ein E-Mail-pop-up automatisch ge\u00f6ffnet, um eine E-Mail mit dem zugeh\u00f6rigen \"Kontakt\" in dieser Transaktion zu senden, mit der Transaktion als Anhang. Der Benutzer kann oder nicht-Mail senden."
+}
\ No newline at end of file
diff --git a/setup/doctype/notification_control/locale/pt-BR-doc.json b/setup/doctype/notification_control/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..78312f5f06d
--- /dev/null
+++ b/setup/doctype/notification_control/locale/pt-BR-doc.json
@@ -0,0 +1,31 @@
+{
+ "Custom Message": "Mensagem personalizada",
+ "Customize the Notification": "Personalize a Notifica\u00e7\u00e3o",
+ "Customize the introductory text that goes as a part of that email. Each transaction has a separate introductory text.": "Personalize o texto introdut\u00f3rio que vai como uma parte do que e-mail. Cada transa\u00e7\u00e3o tem um texto introdut\u00f3rio separado.",
+ "Delivery Note": "Guia de Remessa",
+ "Delivery Note Message": "Mensagem da Guia de Remessa",
+ "Expense Claim": "Pedido de Reembolso de Despesas",
+ "Expense Claim Approved": "Pedido de Reembolso de Despesas Aprovado",
+ "Expense Claim Approved Message": "Mensagem de aprova\u00e7\u00e3o do Pedido de Reembolso de Despesas",
+ "Expense Claim Rejected": "Pedido de Reembolso de Despesas Rejeitado",
+ "Expense Claim Rejected Message": "Mensagem de recusa do Pedido de Reembolso de Despesas",
+ "Notification Control": "Controle de Notifica\u00e7\u00e3o",
+ "Prompt for Email on Submission of": "Solicitar e-mail no envio da",
+ "Purchase": "Compras",
+ "Purchase Order": "Ordem de Compra",
+ "Purchase Order Message": "Mensagem da Ordem de Compra",
+ "Purchase Receipt": "Recibo de Compra",
+ "Purchase Receipt Message": "Mensagem do Recibo de Compra",
+ "Quotation": "Cota\u00e7\u00e3o",
+ "Quotation Message": "Mensagem da Cota\u00e7\u00e3o",
+ "Sales": "Vendas",
+ "Sales Invoice": "Nota Fiscal de Venda",
+ "Sales Invoice Message": "Mensagem da Nota Fiscal de Venda",
+ "Sales Order": "Ordem de Venda",
+ "Sales Order Message": "Mensagem da Ordem de Venda",
+ "Select Transaction": "Selecione a Transa\u00e7\u00e3o",
+ "Send automatic emails to Contacts on Submitting transactions.": "Enviar e-mails autom\u00e1ticos para os Contatos ao Submeter transa\u00e7\u00f5es.",
+ "Setup": "Configura\u00e7\u00e3o",
+ "Update": "Atualizar",
+ "When any of the checked transactions are \"Submitted\", an email pop-up automatically opened to send an email to the associated \"Contact\" in that transaction, with the transaction as an attachment. The user may or may not send the email.": "Quando qualquer uma das opera\u00e7\u00f5es marcadas s\u00e3o "Enviadas", um pop-up abre automaticamente para enviar um e-mail para o "Contato" associado a transa\u00e7\u00e3o, com a transa\u00e7\u00e3o como um anexo. O usu\u00e1rio pode ou n\u00e3o enviar o e-mail."
+}
\ No newline at end of file
diff --git a/setup/doctype/notification_control/locale/th-doc.json b/setup/doctype/notification_control/locale/th-doc.json
new file mode 100644
index 00000000000..eb4c3561eb0
--- /dev/null
+++ b/setup/doctype/notification_control/locale/th-doc.json
@@ -0,0 +1,31 @@
+{
+ "Custom Message": "\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e17\u0e35\u0e48\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e40\u0e2d\u0e07",
+ "Customize the Notification": "\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e1b\u0e23\u0e30\u0e01\u0e32\u0e28",
+ "Customize the introductory text that goes as a part of that email. Each transaction has a separate introductory text.": "\u0e1b\u0e23\u0e31\u0e1a\u0e41\u0e15\u0e48\u0e07\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e40\u0e01\u0e23\u0e34\u0e48\u0e19\u0e19\u0e33\u0e17\u0e35\u0e48\u0e08\u0e30\u0e44\u0e1b\u0e40\u0e1b\u0e47\u0e19\u0e2a\u0e48\u0e27\u0e19\u0e2b\u0e19\u0e36\u0e48\u0e07\u0e02\u0e2d\u0e07\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e17\u0e35\u0e48 \u0e41\u0e15\u0e48\u0e25\u0e30\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e21\u0e35\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e40\u0e01\u0e23\u0e34\u0e48\u0e19\u0e19\u0e33\u0e41\u0e22\u0e01",
+ "Delivery Note": "\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e2b\u0e15\u0e38\u0e08\u0e31\u0e14\u0e2a\u0e48\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Delivery Note Message": "\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e2b\u0e15\u0e38\u0e08\u0e31\u0e14\u0e2a\u0e48\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Expense Claim": "\u0e40\u0e23\u0e35\u0e22\u0e01\u0e23\u0e49\u0e2d\u0e07\u0e04\u0e48\u0e32\u0e43\u0e0a\u0e49\u0e08\u0e48\u0e32\u0e22",
+ "Expense Claim Approved": "\u0e40\u0e23\u0e35\u0e22\u0e01\u0e23\u0e49\u0e2d\u0e07\u0e04\u0e48\u0e32\u0e43\u0e0a\u0e49\u0e08\u0e48\u0e32\u0e22\u0e17\u0e35\u0e48\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e2d\u0e19\u0e38\u0e21\u0e31\u0e15\u0e34",
+ "Expense Claim Approved Message": "\u0e40\u0e23\u0e35\u0e22\u0e01\u0e23\u0e49\u0e2d\u0e07\u0e04\u0e48\u0e32\u0e43\u0e0a\u0e49\u0e08\u0e48\u0e32\u0e22\u0e17\u0e35\u0e48\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e2d\u0e19\u0e38\u0e21\u0e31\u0e15\u0e34\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21",
+ "Expense Claim Rejected": "\u0e40\u0e23\u0e35\u0e22\u0e01\u0e23\u0e49\u0e2d\u0e07\u0e04\u0e48\u0e32\u0e43\u0e0a\u0e49\u0e08\u0e48\u0e32\u0e22\u0e17\u0e35\u0e48\u0e16\u0e39\u0e01\u0e1b\u0e0f\u0e34\u0e40\u0e2a\u0e18",
+ "Expense Claim Rejected Message": "\u0e40\u0e23\u0e35\u0e22\u0e01\u0e23\u0e49\u0e2d\u0e07\u0e04\u0e48\u0e32\u0e43\u0e0a\u0e49\u0e08\u0e48\u0e32\u0e22\u0e17\u0e35\u0e48\u0e16\u0e39\u0e01\u0e1b\u0e0f\u0e34\u0e40\u0e2a\u0e18\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21",
+ "Notification Control": "\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e01\u0e32\u0e23\u0e41\u0e08\u0e49\u0e07\u0e40\u0e15\u0e37\u0e2d\u0e19",
+ "Prompt for Email on Submission of": "\u0e41\u0e08\u0e49\u0e07\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e43\u0e19\u0e01\u0e32\u0e23\u0e22\u0e37\u0e48\u0e19",
+ "Purchase": "\u0e0b\u0e37\u0e49\u0e2d",
+ "Purchase Order": "\u0e43\u0e1a\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d",
+ "Purchase Order Message": "\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21",
+ "Purchase Receipt": "\u0e0b\u0e37\u0e49\u0e2d\u0e43\u0e1a\u0e40\u0e2a\u0e23\u0e47\u0e08\u0e23\u0e31\u0e1a\u0e40\u0e07\u0e34\u0e19",
+ "Purchase Receipt Message": "\u0e0b\u0e37\u0e49\u0e2d\u0e43\u0e1a\u0e40\u0e2a\u0e23\u0e47\u0e08\u0e23\u0e31\u0e1a\u0e40\u0e07\u0e34\u0e19\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21",
+ "Quotation": "\u0e43\u0e1a\u0e40\u0e2a\u0e19\u0e2d\u0e23\u0e32\u0e04\u0e32",
+ "Quotation Message": "\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e43\u0e1a\u0e40\u0e2a\u0e19\u0e2d\u0e23\u0e32\u0e04\u0e32",
+ "Sales": "\u0e02\u0e32\u0e22",
+ "Sales Invoice": "\u0e02\u0e32\u0e22\u0e43\u0e1a\u0e41\u0e08\u0e49\u0e07\u0e2b\u0e19\u0e35\u0e49",
+ "Sales Invoice Message": "\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e02\u0e32\u0e22\u0e43\u0e1a\u0e41\u0e08\u0e49\u0e07\u0e2b\u0e19\u0e35\u0e49",
+ "Sales Order": "\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e32\u0e22",
+ "Sales Order Message": "\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e32\u0e22",
+ "Select Transaction": "\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23",
+ "Send automatic emails to Contacts on Submitting transactions.": "\u0e2a\u0e48\u0e07\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e42\u0e14\u0e22\u0e2d\u0e31\u0e15\u0e42\u0e19\u0e21\u0e31\u0e15\u0e34\u0e44\u0e1b\u0e22\u0e31\u0e07\u0e23\u0e32\u0e22\u0e0a\u0e37\u0e48\u0e2d\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d\u0e1a\u0e19\u0e2a\u0e48\u0e07\u0e18\u0e38\u0e23\u0e01\u0e23\u0e23\u0e21",
+ "Setup": "\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07",
+ "Update": "\u0e2d\u0e31\u0e1e\u0e40\u0e14\u0e17",
+ "When any of the checked transactions are \"Submitted\", an email pop-up automatically opened to send an email to the associated \"Contact\" in that transaction, with the transaction as an attachment. The user may or may not send the email.": "\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e43\u0e14\u0e02\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e17\u0e33\u0e18\u0e38\u0e23\u0e01\u0e23\u0e23\u0e21\u0e01\u0e32\u0e23\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a\u0e40\u0e1b\u0e47\u0e19 "Submitted" \u0e2d\u0e35\u0e40\u0e21\u0e25\u0e4c\u0e41\u0e1a\u0e1a pop-up \u0e40\u0e1b\u0e34\u0e14\u0e42\u0e14\u0e22\u0e2d\u0e31\u0e15\u0e42\u0e19\u0e21\u0e31\u0e15\u0e34\u0e43\u0e19\u0e01\u0e32\u0e23\u0e2a\u0e48\u0e07\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e44\u0e1b\u0e22\u0e31\u0e07 "\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d" \u0e17\u0e35\u0e48\u0e40\u0e01\u0e35\u0e48\u0e22\u0e27\u0e02\u0e49\u0e2d\u0e07\u0e43\u0e19\u0e01\u0e32\u0e23\u0e17\u0e33\u0e18\u0e38\u0e23\u0e01\u0e23\u0e23\u0e21\u0e17\u0e35\u0e48\u0e21\u0e35\u0e01\u0e32\u0e23\u0e17\u0e33\u0e18\u0e38\u0e23\u0e01\u0e23\u0e23\u0e21\u0e40\u0e1b\u0e47\u0e19\u0e2a\u0e34\u0e48\u0e07\u0e17\u0e35\u0e48\u0e41\u0e19\u0e1a \u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e2d\u0e32\u0e08\u0e08\u0e30\u0e2b\u0e23\u0e37\u0e2d\u0e44\u0e21\u0e48\u0e2d\u0e32\u0e08\u0e08\u0e30\u0e2a\u0e48\u0e07\u0e2d\u0e35\u0e40\u0e21\u0e25"
+}
\ No newline at end of file
diff --git a/setup/doctype/permission_control/locale/de-doc.json b/setup/doctype/permission_control/locale/de-doc.json
new file mode 100644
index 00000000000..ca1bf25a0be
--- /dev/null
+++ b/setup/doctype/permission_control/locale/de-doc.json
@@ -0,0 +1,4 @@
+{
+ "Permission Control": "Permission Steuerung",
+ "Setup": "Setup"
+}
\ No newline at end of file
diff --git a/setup/doctype/permission_control/locale/pt-BR-doc.json b/setup/doctype/permission_control/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..aaec649143d
--- /dev/null
+++ b/setup/doctype/permission_control/locale/pt-BR-doc.json
@@ -0,0 +1,4 @@
+{
+ "Permission Control": "Controle de Permiss\u00e3o",
+ "Setup": "Configura\u00e7\u00e3o"
+}
\ No newline at end of file
diff --git a/setup/doctype/permission_control/locale/th-doc.json b/setup/doctype/permission_control/locale/th-doc.json
new file mode 100644
index 00000000000..fdb7c4f9cbd
--- /dev/null
+++ b/setup/doctype/permission_control/locale/th-doc.json
@@ -0,0 +1,4 @@
+{
+ "Permission Control": "\u0e01\u0e32\u0e23\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e01\u0e32\u0e23\u0e2d\u0e19\u0e38\u0e0d\u0e32\u0e15",
+ "Setup": "\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07"
+}
\ No newline at end of file
diff --git a/setup/doctype/price_list/locale/de-doc.json b/setup/doctype/price_list/locale/de-doc.json
new file mode 100644
index 00000000000..65462312b22
--- /dev/null
+++ b/setup/doctype/price_list/locale/de-doc.json
@@ -0,0 +1,8 @@
+{
+ "File List": "Dateiliste",
+ "How to upload": "So laden",
+ "Price List": "Preisliste",
+ "Price List Master": "Meister Preisliste",
+ "Price List Name": "Preis Name",
+ "Setup": "Setup"
+}
\ No newline at end of file
diff --git a/setup/doctype/price_list/locale/pt-BR-doc.json b/setup/doctype/price_list/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..2e04da2cee1
--- /dev/null
+++ b/setup/doctype/price_list/locale/pt-BR-doc.json
@@ -0,0 +1,8 @@
+{
+ "File List": "Lista de Arquivos",
+ "How to upload": "Como fazer o carregamento",
+ "Price List": "Lista de Pre\u00e7os",
+ "Price List Master": "Cadastro de Lista de Pre\u00e7os",
+ "Price List Name": "Nome da Lista de Pre\u00e7os",
+ "Setup": "Configura\u00e7\u00e3o"
+}
\ No newline at end of file
diff --git a/setup/doctype/price_list/locale/th-doc.json b/setup/doctype/price_list/locale/th-doc.json
new file mode 100644
index 00000000000..d3fdeae7a03
--- /dev/null
+++ b/setup/doctype/price_list/locale/th-doc.json
@@ -0,0 +1,8 @@
+{
+ "File List": "\u0e23\u0e32\u0e22\u0e0a\u0e37\u0e48\u0e2d\u0e44\u0e1f\u0e25\u0e4c",
+ "How to upload": "\u0e27\u0e34\u0e18\u0e35\u0e01\u0e32\u0e23\u0e2d\u0e31\u0e1b\u0e42\u0e2b\u0e25\u0e14",
+ "Price List": "\u0e1a\u0e31\u0e0d\u0e0a\u0e35\u0e41\u0e08\u0e49\u0e07\u0e23\u0e32\u0e04\u0e32\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Price List Master": "\u0e15\u0e49\u0e19\u0e41\u0e1a\u0e1a\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e23\u0e32\u0e04\u0e32",
+ "Price List Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e23\u0e32\u0e04\u0e32",
+ "Setup": "\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07"
+}
\ No newline at end of file
diff --git a/setup/doctype/print_heading/locale/de-doc.json b/setup/doctype/print_heading/locale/de-doc.json
new file mode 100644
index 00000000000..351f58495db
--- /dev/null
+++ b/setup/doctype/print_heading/locale/de-doc.json
@@ -0,0 +1,6 @@
+{
+ "Description": "Beschreibung",
+ "Print Heading": "Unterwegs drucken",
+ "Setup": "Setup",
+ "Trash Reason": "Trash Reason"
+}
\ No newline at end of file
diff --git a/setup/doctype/print_heading/locale/pt-BR-doc.json b/setup/doctype/print_heading/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..16937b4f9bb
--- /dev/null
+++ b/setup/doctype/print_heading/locale/pt-BR-doc.json
@@ -0,0 +1,6 @@
+{
+ "Description": "Descri\u00e7\u00e3o",
+ "Print Heading": "Cabe\u00e7alho de impress\u00e3o",
+ "Setup": "Configura\u00e7\u00e3o",
+ "Trash Reason": "Raz\u00e3o de p\u00f4r no lixo"
+}
\ No newline at end of file
diff --git a/setup/doctype/print_heading/locale/th-doc.json b/setup/doctype/print_heading/locale/th-doc.json
new file mode 100644
index 00000000000..b7cf2eb61bb
--- /dev/null
+++ b/setup/doctype/print_heading/locale/th-doc.json
@@ -0,0 +1,6 @@
+{
+ "Description": "\u0e25\u0e31\u0e01\u0e29\u0e13\u0e30",
+ "Print Heading": "\u0e1e\u0e34\u0e21\u0e1e\u0e4c\u0e2b\u0e31\u0e27\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07",
+ "Setup": "\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07",
+ "Trash Reason": "\u0e40\u0e2b\u0e15\u0e38\u0e1c\u0e25\u0e16\u0e31\u0e07\u0e02\u0e22\u0e30"
+}
\ No newline at end of file
diff --git a/setup/doctype/quotation_lost_reason/locale/de-doc.json b/setup/doctype/quotation_lost_reason/locale/de-doc.json
new file mode 100644
index 00000000000..283ba385b2e
--- /dev/null
+++ b/setup/doctype/quotation_lost_reason/locale/de-doc.json
@@ -0,0 +1,5 @@
+{
+ "Quotation Lost Reason": "Zitat Passwort Reason",
+ "Setup": "Setup",
+ "Trash Reason": "Trash Reason"
+}
\ No newline at end of file
diff --git a/setup/doctype/quotation_lost_reason/locale/pt-BR-doc.json b/setup/doctype/quotation_lost_reason/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..036dee70bf5
--- /dev/null
+++ b/setup/doctype/quotation_lost_reason/locale/pt-BR-doc.json
@@ -0,0 +1,5 @@
+{
+ "Quotation Lost Reason": "Raz\u00e3o da perda da Cota\u00e7\u00e3o",
+ "Setup": "Configura\u00e7\u00e3o",
+ "Trash Reason": "Raz\u00e3o de p\u00f4r no lixo"
+}
\ No newline at end of file
diff --git a/setup/doctype/quotation_lost_reason/locale/th-doc.json b/setup/doctype/quotation_lost_reason/locale/th-doc.json
new file mode 100644
index 00000000000..df325ecd089
--- /dev/null
+++ b/setup/doctype/quotation_lost_reason/locale/th-doc.json
@@ -0,0 +1,5 @@
+{
+ "Quotation Lost Reason": "\u0e43\u0e1a\u0e40\u0e2a\u0e19\u0e2d\u0e23\u0e32\u0e04\u0e32 Lost \u0e40\u0e2b\u0e15\u0e38\u0e1c\u0e25",
+ "Setup": "\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07",
+ "Trash Reason": "\u0e40\u0e2b\u0e15\u0e38\u0e1c\u0e25\u0e16\u0e31\u0e07\u0e02\u0e22\u0e30"
+}
\ No newline at end of file
diff --git a/setup/doctype/sales_browser_control/locale/de-doc.json b/setup/doctype/sales_browser_control/locale/de-doc.json
new file mode 100644
index 00000000000..83242facdb2
--- /dev/null
+++ b/setup/doctype/sales_browser_control/locale/de-doc.json
@@ -0,0 +1,4 @@
+{
+ "Sales Browser Control": "Vertrieb Browser Control",
+ "Setup": "Setup"
+}
\ No newline at end of file
diff --git a/setup/doctype/sales_browser_control/locale/pt-BR-doc.json b/setup/doctype/sales_browser_control/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..154046d944c
--- /dev/null
+++ b/setup/doctype/sales_browser_control/locale/pt-BR-doc.json
@@ -0,0 +1,4 @@
+{
+ "Sales Browser Control": "Controle do Navegador de Vendas",
+ "Setup": "Configura\u00e7\u00e3o"
+}
\ No newline at end of file
diff --git a/setup/doctype/sales_browser_control/locale/th-doc.json b/setup/doctype/sales_browser_control/locale/th-doc.json
new file mode 100644
index 00000000000..957d597d0fc
--- /dev/null
+++ b/setup/doctype/sales_browser_control/locale/th-doc.json
@@ -0,0 +1,4 @@
+{
+ "Sales Browser Control": "\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e40\u0e1a\u0e23\u0e32\u0e27\u0e4c\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e22\u0e2d\u0e14\u0e02\u0e32\u0e22",
+ "Setup": "\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07"
+}
\ No newline at end of file
diff --git a/setup/doctype/sales_email_settings/locale/de-doc.json b/setup/doctype/sales_email_settings/locale/de-doc.json
new file mode 100644
index 00000000000..7537586d7c5
--- /dev/null
+++ b/setup/doctype/sales_email_settings/locale/de-doc.json
@@ -0,0 +1,15 @@
+{
+ "Check to activate": "\u00dcberpr\u00fcfen Sie aktivieren",
+ "Email Id": "Email Id",
+ "Email Id where a job applicant will email e.g. \"jobs@example.com\"": "Email Id, wo ein Bewerber beispielsweise per E-Mail wird \"Jobs@example.com\"",
+ "Email settings to extract Leads from sales email id e.g. \"sales@example.com\"": "E-Mail-Einstellungen zu extrahieren Leads aus dem Verkauf email id zB \"Sales@example.com\"",
+ "Extract Emails": "Auszug Emails",
+ "Host": "Gastgeber",
+ "POP3 Mail Settings": "POP3-Mail-Einstellungen",
+ "POP3 server e.g. (pop.gmail.com)": "POP3-Server beispielsweise (pop.gmail.com)",
+ "Password": "Kennwort",
+ "Sales Email Settings": "Vertrieb E-Mail-Einstellungen",
+ "Setup": "Setup",
+ "Use SSL": "Verwenden Sie SSL",
+ "Username": "Benutzername"
+}
\ No newline at end of file
diff --git a/setup/doctype/sales_email_settings/locale/de-js.json b/setup/doctype/sales_email_settings/locale/de-js.json
new file mode 100644
index 00000000000..6f0b76081ce
--- /dev/null
+++ b/setup/doctype/sales_email_settings/locale/de-js.json
@@ -0,0 +1,3 @@
+{
+ "Not Active": "Nicht aktiv"
+}
\ No newline at end of file
diff --git a/setup/doctype/sales_email_settings/locale/de-py.json b/setup/doctype/sales_email_settings/locale/de-py.json
new file mode 100644
index 00000000000..df47b84932f
--- /dev/null
+++ b/setup/doctype/sales_email_settings/locale/de-py.json
@@ -0,0 +1,3 @@
+{
+ "Host, Email and Password required if emails are to be pulled": "Host, E-Mail und Passwort erforderlich, wenn E-Mails gezogen werden"
+}
\ No newline at end of file
diff --git a/setup/doctype/sales_email_settings/locale/pt-BR-doc.json b/setup/doctype/sales_email_settings/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..4cd649ad7a0
--- /dev/null
+++ b/setup/doctype/sales_email_settings/locale/pt-BR-doc.json
@@ -0,0 +1,15 @@
+{
+ "Check to activate": "Marque para ativar",
+ "Email Id": "Endere\u00e7o de e-mail",
+ "Email Id where a job applicant will email e.g. \"jobs@example.com\"": "Endere\u00e7o do e-mail onde um candidato a emprego vai enviar e-mail, por exemplo: "empregos@exemplo.com"",
+ "Email settings to extract Leads from sales email id e.g. \"sales@example.com\"": "Configura\u00e7\u00f5es de e-mail para extrair Prospectos do e-mail de vendas, por exemplo "vendas@exemplo.com"",
+ "Extract Emails": "Extrair e-mails",
+ "Host": "Host",
+ "POP3 Mail Settings": "Configura\u00e7\u00f5es de e-mail pop3",
+ "POP3 server e.g. (pop.gmail.com)": "Servidor de e-mail POP3 (por exemplo, pop.gmail.com)",
+ "Password": "Senha",
+ "Sales Email Settings": "Configura\u00e7\u00f5es do Email de Vendas",
+ "Setup": "Configura\u00e7\u00e3o",
+ "Use SSL": "Use SSL",
+ "Username": "Nome do Usu\u00e1rio"
+}
\ No newline at end of file
diff --git a/setup/doctype/sales_email_settings/locale/pt-BR-js.json b/setup/doctype/sales_email_settings/locale/pt-BR-js.json
new file mode 100644
index 00000000000..19171e90b26
--- /dev/null
+++ b/setup/doctype/sales_email_settings/locale/pt-BR-js.json
@@ -0,0 +1,4 @@
+{
+ "Active: Will extract emails from ": "Ativo: E-mails ser\u00e3o extra\u00eddos de",
+ "Not Active": "N\u00e3o Ativo"
+}
\ No newline at end of file
diff --git a/setup/doctype/sales_email_settings/locale/pt-BR-py.json b/setup/doctype/sales_email_settings/locale/pt-BR-py.json
new file mode 100644
index 00000000000..a6541971120
--- /dev/null
+++ b/setup/doctype/sales_email_settings/locale/pt-BR-py.json
@@ -0,0 +1,3 @@
+{
+ "Host, Email and Password required if emails are to be pulled": "Host, E-mail e Senha s\u00e3o necess\u00e1rios se desejar obter e-mails"
+}
\ No newline at end of file
diff --git a/setup/doctype/sales_email_settings/locale/th-doc.json b/setup/doctype/sales_email_settings/locale/th-doc.json
new file mode 100644
index 00000000000..6572906f7e7
--- /dev/null
+++ b/setup/doctype/sales_email_settings/locale/th-doc.json
@@ -0,0 +1,15 @@
+{
+ "Check to activate": "\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e40\u0e1b\u0e34\u0e14\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19",
+ "Email Id": "Email \u0e23\u0e2b\u0e31\u0e2a",
+ "Email Id where a job applicant will email e.g. \"jobs@example.com\"": "Email \u0e23\u0e2b\u0e31\u0e2a\u0e17\u0e35\u0e48\u0e1c\u0e39\u0e49\u0e2a\u0e21\u0e31\u0e04\u0e23\u0e07\u0e32\u0e19\u0e08\u0e30\u0e2a\u0e48\u0e07\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e16\u0e36\u0e07 "jobs@example.com" \u0e40\u0e0a\u0e48\u0e19",
+ "Email settings to extract Leads from sales email id e.g. \"sales@example.com\"": "\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e17\u0e35\u0e48\u0e08\u0e30\u0e14\u0e36\u0e07\u0e19\u0e33\u0e21\u0e32\u0e08\u0e32\u0e01\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e4c ID \u0e40\u0e0a\u0e48\u0e19\u0e22\u0e2d\u0e14\u0e02\u0e32\u0e22 "sales@example.com"",
+ "Extract Emails": "\u0e2a\u0e32\u0e23\u0e2a\u0e01\u0e31\u0e14\u0e08\u0e32\u0e01\u0e2d\u0e35\u0e40\u0e21\u0e25",
+ "Host": "\u0e40\u0e08\u0e49\u0e32\u0e20\u0e32\u0e1e",
+ "POP3 Mail Settings": "\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32 POP3 \u0e08\u0e14\u0e2b\u0e21\u0e32\u0e22",
+ "POP3 server e.g. (pop.gmail.com)": "POP3 \u0e40\u0e0b\u0e34\u0e23\u0e4c\u0e1f\u0e40\u0e27\u0e2d\u0e23\u0e4c\u0e40\u0e0a\u0e48\u0e19 (pop.gmail.com)",
+ "Password": "\u0e23\u0e2b\u0e31\u0e2a\u0e1c\u0e48\u0e32\u0e19",
+ "Sales Email Settings": "\u0e02\u0e32\u0e22\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32\u0e2d\u0e35\u0e40\u0e21\u0e25",
+ "Setup": "\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07",
+ "Use SSL": "\u0e43\u0e0a\u0e49 SSL",
+ "Username": "\u0e0a\u0e37\u0e48\u0e2d\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49"
+}
\ No newline at end of file
diff --git a/setup/doctype/sales_email_settings/locale/th-js.json b/setup/doctype/sales_email_settings/locale/th-js.json
new file mode 100644
index 00000000000..9d092ccfa8a
--- /dev/null
+++ b/setup/doctype/sales_email_settings/locale/th-js.json
@@ -0,0 +1,4 @@
+{
+ "Active: Will extract emails from ": "\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e25\u0e48\u0e32\u0e2a\u0e38\u0e14: \u0e08\u0e30\u0e14\u0e36\u0e07\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e08\u0e32\u0e01",
+ "Not Active": "\u0e44\u0e21\u0e48\u0e44\u0e14\u0e49\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e25\u0e48\u0e32\u0e2a\u0e38\u0e14"
+}
\ No newline at end of file
diff --git a/setup/doctype/sales_email_settings/locale/th-py.json b/setup/doctype/sales_email_settings/locale/th-py.json
new file mode 100644
index 00000000000..e377d4097d1
--- /dev/null
+++ b/setup/doctype/sales_email_settings/locale/th-py.json
@@ -0,0 +1,3 @@
+{
+ "Host, Email and Password required if emails are to be pulled": "\u0e42\u0e2e\u0e2a\u0e15\u0e4c, Email \u0e41\u0e25\u0e30\u0e23\u0e2b\u0e31\u0e2a\u0e1c\u0e48\u0e32\u0e19\u0e17\u0e35\u0e48\u0e08\u0e33\u0e40\u0e1b\u0e47\u0e19\u0e2b\u0e32\u0e01\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e17\u0e35\u0e48\u0e08\u0e30\u0e14\u0e36\u0e07"
+}
\ No newline at end of file
diff --git a/setup/doctype/sales_partner/locale/de-doc.json b/setup/doctype/sales_partner/locale/de-doc.json
new file mode 100644
index 00000000000..b5b31e8646a
--- /dev/null
+++ b/setup/doctype/sales_partner/locale/de-doc.json
@@ -0,0 +1,27 @@
+{
+ "A third party distributor / dealer / commission agent / affiliate / reseller who sells the companies products for a commission.": "Ein Dritter Vertrieb / H\u00e4ndler / Kommission\u00e4r / affiliate / Vertragsh\u00e4ndler verkauft die Unternehmen Produkte f\u00fcr eine Provision.",
+ "Address & Contacts": "Adresse und Kontakte",
+ "Address Desc": "Adresse Desc",
+ "Address HTML": "Adresse HTML",
+ "Agent": "Agent",
+ "Channel Partner": "Channel Partner",
+ "Commission Rate": "Kommission bewerten",
+ "Contact Desc": "Kontakt Desc",
+ "Contact HTML": "Kontakt HTML",
+ "Dealer": "H\u00e4ndler",
+ "Distributor": "Verteiler",
+ "Implementation Partner": "Implementation Partner",
+ "Note: You Can Manage Multiple Address or Contacts via Addresses & Contacts": "Hinweis: Sie k\u00f6nnen mehrere Kontakte oder Adresse via Adressen & Kontakte verwalten",
+ "Partner Target Detail": "Partner Zieldetailbericht",
+ "Partner Type": "Partner Typ",
+ "Reseller": "Wiederverk\u00e4ufer",
+ "Retailer": "Einzelh\u00e4ndler",
+ "Sales Partner": "Vertriebspartner",
+ "Sales Partner Details": "Sales Partner Details",
+ "Sales Partner Name": "Sales Partner Name",
+ "Sales Partner Target": "Partner Sales Target",
+ "Select Budget Distribution to unevenly distribute targets across months.": "W\u00e4hlen Budget Verteilung ungleichm\u00e4\u00dfig Targets \u00fcber Monate verteilen.",
+ "Setup": "Setup",
+ "Target Distribution": "Target Distribution",
+ "Territory": "Gebiet"
+}
\ No newline at end of file
diff --git a/setup/doctype/sales_partner/locale/pt-BR-doc.json b/setup/doctype/sales_partner/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..d53a126f666
--- /dev/null
+++ b/setup/doctype/sales_partner/locale/pt-BR-doc.json
@@ -0,0 +1,27 @@
+{
+ "A third party distributor / dealer / commission agent / affiliate / reseller who sells the companies products for a commission.": "Um distribuidor terceirizado / negociante / agente comissionado / revendedor que vende os produtos da empresas por uma comiss\u00e3o.",
+ "Address & Contacts": "Endere\u00e7o e Contatos",
+ "Address Desc": "Descri\u00e7\u00e3o do Endere\u00e7o",
+ "Address HTML": "Endere\u00e7o HTML",
+ "Agent": "Agente",
+ "Channel Partner": "Parceiro de Canal",
+ "Commission Rate": "Taxa de Comiss\u00e3o",
+ "Contact Desc": "Descri\u00e7\u00e3o do Contato",
+ "Contact HTML": "Contato HTML",
+ "Dealer": "Revendedor",
+ "Distributor": "Distribuidor",
+ "Implementation Partner": "Parceiro de implementa\u00e7\u00e3o",
+ "Note: You Can Manage Multiple Address or Contacts via Addresses & Contacts": "Nota: voc\u00ea pode gerenciar M\u00faltiplos Endere\u00e7os ou Contatos atrav\u00e9s de Endere\u00e7os & Contatos",
+ "Partner Target Detail": "Detalhe da Meta do parceiro",
+ "Partner Type": "Tipo de parceiro",
+ "Reseller": "Revendedor",
+ "Retailer": "Varejista",
+ "Sales Partner": "Parceiro de Vendas",
+ "Sales Partner Details": "Detalhes do Parceiro de Vendas",
+ "Sales Partner Name": "Nome do Parceiro de Vendas",
+ "Sales Partner Target": "Metas do Parceiro de Vendas",
+ "Select Budget Distribution to unevenly distribute targets across months.": "Selecione distribui\u00e7\u00e3o do or\u00e7amento para distribuir metas diferentes para os meses.",
+ "Setup": "Configura\u00e7\u00e3o",
+ "Target Distribution": "Distribui\u00e7\u00e3o de metas",
+ "Territory": "Territ\u00f3rio"
+}
\ No newline at end of file
diff --git a/setup/doctype/sales_partner/locale/th-doc.json b/setup/doctype/sales_partner/locale/th-doc.json
new file mode 100644
index 00000000000..6d26193d9f2
--- /dev/null
+++ b/setup/doctype/sales_partner/locale/th-doc.json
@@ -0,0 +1,27 @@
+{
+ "A third party distributor / dealer / commission agent / affiliate / reseller who sells the companies products for a commission.": "\u0e15\u0e31\u0e27\u0e41\u0e17\u0e19\u0e08\u0e33\u0e2b\u0e19\u0e48\u0e32\u0e22\u0e02\u0e2d\u0e07\u0e1a\u0e38\u0e04\u0e04\u0e25\u0e17\u0e35\u0e48\u0e2a\u0e32\u0e21\u0e15\u0e31\u0e27\u0e41\u0e17\u0e19\u0e08\u0e33\u0e2b\u0e19\u0e48\u0e32\u0e22 / / \u0e04\u0e13\u0e30\u0e01\u0e23\u0e23\u0e21\u0e01\u0e32\u0e23\u0e1e\u0e31\u0e19\u0e18\u0e21\u0e34\u0e15\u0e23 / / \u0e1c\u0e39\u0e49\u0e04\u0e49\u0e32\u0e1b\u0e25\u0e35\u0e01\u0e17\u0e35\u0e48\u0e02\u0e32\u0e22\u0e1c\u0e25\u0e34\u0e15\u0e20\u0e31\u0e13\u0e11\u0e4c\u0e02\u0e2d\u0e07 \u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17 \u0e43\u0e2b\u0e49\u0e04\u0e13\u0e30\u0e01\u0e23\u0e23\u0e21\u0e32\u0e18\u0e34\u0e01\u0e32\u0e23",
+ "Address & Contacts": "\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d &",
+ "Address Desc": "\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14",
+ "Address HTML": "\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48 HTML",
+ "Agent": "\u0e15\u0e31\u0e27\u0e41\u0e17\u0e19",
+ "Channel Partner": "\u0e1e\u0e31\u0e19\u0e18\u0e21\u0e34\u0e15\u0e23\u0e0a\u0e48\u0e2d\u0e07\u0e17\u0e32\u0e07",
+ "Commission Rate": "\u0e2d\u0e31\u0e15\u0e23\u0e32\u0e04\u0e48\u0e32\u0e04\u0e2d\u0e21\u0e21\u0e34\u0e0a\u0e0a\u0e31\u0e48\u0e19",
+ "Contact Desc": "Desc \u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d",
+ "Contact HTML": "HTML \u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d",
+ "Dealer": "\u0e40\u0e08\u0e49\u0e32\u0e21\u0e37\u0e2d",
+ "Distributor": "\u0e1c\u0e39\u0e49\u0e08\u0e31\u0e14\u0e08\u0e33\u0e2b\u0e19\u0e48\u0e32\u0e22",
+ "Implementation Partner": "\u0e1e\u0e31\u0e19\u0e18\u0e21\u0e34\u0e15\u0e23\u0e01\u0e32\u0e23\u0e14\u0e33\u0e40\u0e19\u0e34\u0e19\u0e07\u0e32\u0e19",
+ "Note: You Can Manage Multiple Address or Contacts via Addresses & Contacts": "\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e2b\u0e15\u0e38: \u0e04\u0e38\u0e13\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e2b\u0e25\u0e32\u0e22\u0e2b\u0e23\u0e37\u0e2d\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d\u0e1c\u0e48\u0e32\u0e19\u0e17\u0e32\u0e07\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e41\u0e25\u0e30\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d",
+ "Partner Target Detail": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e40\u0e1b\u0e49\u0e32\u0e2b\u0e21\u0e32\u0e22\u0e1e\u0e31\u0e19\u0e18\u0e21\u0e34\u0e15\u0e23",
+ "Partner Type": "\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e04\u0e39\u0e48",
+ "Reseller": "\u0e1c\u0e39\u0e49\u0e04\u0e49\u0e32\u0e1b\u0e25\u0e35\u0e01",
+ "Retailer": "\u0e1e\u0e48\u0e2d\u0e04\u0e49\u0e32\u0e1b\u0e25\u0e35\u0e01",
+ "Sales Partner": "\u0e1e\u0e31\u0e19\u0e18\u0e21\u0e34\u0e15\u0e23\u0e01\u0e32\u0e23\u0e02\u0e32\u0e22",
+ "Sales Partner Details": "\u0e02\u0e32\u0e22\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e1e\u0e31\u0e19\u0e18\u0e21\u0e34\u0e15\u0e23",
+ "Sales Partner Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e1e\u0e31\u0e19\u0e18\u0e21\u0e34\u0e15\u0e23\u0e02\u0e32\u0e22",
+ "Sales Partner Target": "\u0e40\u0e1b\u0e49\u0e32\u0e2b\u0e21\u0e32\u0e22\u0e22\u0e2d\u0e14\u0e02\u0e32\u0e22\u0e1e\u0e31\u0e19\u0e18\u0e21\u0e34\u0e15\u0e23",
+ "Select Budget Distribution to unevenly distribute targets across months.": "\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e01\u0e32\u0e23\u0e01\u0e23\u0e30\u0e08\u0e32\u0e22\u0e07\u0e1a\u0e1b\u0e23\u0e30\u0e21\u0e32\u0e13\u0e17\u0e35\u0e48\u0e08\u0e30\u0e44\u0e21\u0e48\u0e2a\u0e21\u0e48\u0e33\u0e40\u0e2a\u0e21\u0e2d\u0e01\u0e23\u0e30\u0e08\u0e32\u0e22\u0e17\u0e31\u0e48\u0e27\u0e40\u0e1b\u0e49\u0e32\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e14\u0e37\u0e2d\u0e19",
+ "Setup": "\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07",
+ "Target Distribution": "\u0e01\u0e32\u0e23\u0e01\u0e23\u0e30\u0e08\u0e32\u0e22\u0e40\u0e1b\u0e49\u0e32\u0e2b\u0e21\u0e32\u0e22",
+ "Territory": "\u0e2d\u0e32\u0e13\u0e32\u0e40\u0e02\u0e15"
+}
\ No newline at end of file
diff --git a/setup/doctype/sales_person/locale/_messages_doc.json b/setup/doctype/sales_person/locale/_messages_doc.json
index 82cfd05dfdc..ae1cb2cbfde 100644
--- a/setup/doctype/sales_person/locale/_messages_doc.json
+++ b/setup/doctype/sales_person/locale/_messages_doc.json
@@ -1,5 +1,5 @@
[
- "Select Budget Distribution to unevenly distribute targets across months.",
+ "rgt",
"Trash Reason",
"Sales Person",
"Select company name first.",
@@ -9,13 +9,13 @@
"Has Child Node",
"Sales Person Targets",
"Target Distribution",
- "rgt",
- "old_parent",
"lft",
- "Target Details1",
+ "old_parent",
"Employee",
+ "Target Details1",
"All Sales Transactions can be tagged against multiple **Sales Persons** so that you can set and monitor targets.",
"Yes",
"Parent Sales Person",
- "Sales Person Name"
+ "Sales Person Name",
+ "Select Budget Distribution to unevenly distribute targets across months."
]
\ No newline at end of file
diff --git a/setup/doctype/sales_person/locale/de-doc.json b/setup/doctype/sales_person/locale/de-doc.json
new file mode 100644
index 00000000000..19724bd0af8
--- /dev/null
+++ b/setup/doctype/sales_person/locale/de-doc.json
@@ -0,0 +1,21 @@
+{
+ "All Sales Transactions can be tagged against multiple **Sales Persons** so that you can set and monitor targets.": "Alle Verk\u00e4ufe Transaktionen k\u00f6nnen gegen mehrere ** Umsatz Personen **, so dass Sie und \u00fcberwachen Ziele k\u00f6nnen markiert werden.",
+ "Employee": "Mitarbeiter",
+ "Has Child Node": "Hat Child Node",
+ "No": "Auf",
+ "Parent Sales Person": "Eltern Sales Person",
+ "Sales Person": "Sales Person",
+ "Sales Person Name": "Sales Person Vorname",
+ "Sales Person Targets": "Sales Person Targets",
+ "Select Budget Distribution to unevenly distribute targets across months.": "W\u00e4hlen Budget Verteilung ungleichm\u00e4\u00dfig Targets \u00fcber Monate verteilen.",
+ "Select company name first.": "W\u00e4hlen Firmennamen erste.",
+ "Set targets Item Group-wise for this Sales Person.": "Set zielt Artikel gruppenweise f\u00fcr diesen Sales Person.",
+ "Setup": "Setup",
+ "Target Details1": "Ziel Details1",
+ "Target Distribution": "Target Distribution",
+ "Trash Reason": "Trash Reason",
+ "Yes": "Ja",
+ "lft": "lft",
+ "old_parent": "old_parent",
+ "rgt": "rgt"
+}
\ No newline at end of file
diff --git a/setup/doctype/sales_person/locale/pt-BR-doc.json b/setup/doctype/sales_person/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..84888b8295c
--- /dev/null
+++ b/setup/doctype/sales_person/locale/pt-BR-doc.json
@@ -0,0 +1,21 @@
+{
+ "All Sales Transactions can be tagged against multiple **Sales Persons** so that you can set and monitor targets.": "Todas as Transa\u00e7\u00f5es de Vendas podem ser marcadas contra diversos **Vendedores** de modo que voc\u00ea possa definir e monitorar metas.",
+ "Employee": "Funcion\u00e1rio",
+ "Has Child Node": "Tem n\u00f3 filho",
+ "No": "N\u00e3o",
+ "Parent Sales Person": "Vendedor pai",
+ "Sales Person": "Vendedor",
+ "Sales Person Name": "Nome do Vendedor",
+ "Sales Person Targets": "Metas do Vendedor",
+ "Select Budget Distribution to unevenly distribute targets across months.": "Selecione distribui\u00e7\u00e3o do or\u00e7amento para distribuir metas diferentes para os meses.",
+ "Select company name first.": "Selecione o nome da empresa por primeiro.",
+ "Set targets Item Group-wise for this Sales Person.": "Estabelecer metas para Grupos de Itens para este Vendedor.",
+ "Setup": "Configura\u00e7\u00e3o",
+ "Target Details1": "Detalhes da meta",
+ "Target Distribution": "Distribui\u00e7\u00e3o de metas",
+ "Trash Reason": "Raz\u00e3o de p\u00f4r no lixo",
+ "Yes": "Sim",
+ "lft": "esq.",
+ "old_parent": "old_parent",
+ "rgt": "dir."
+}
\ No newline at end of file
diff --git a/setup/doctype/sales_person/locale/th-doc.json b/setup/doctype/sales_person/locale/th-doc.json
new file mode 100644
index 00000000000..27a490887c5
--- /dev/null
+++ b/setup/doctype/sales_person/locale/th-doc.json
@@ -0,0 +1,21 @@
+{
+ "All Sales Transactions can be tagged against multiple **Sales Persons** so that you can set and monitor targets.": "\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14\u0e18\u0e38\u0e23\u0e01\u0e23\u0e23\u0e21\u0e01\u0e32\u0e23\u0e02\u0e32\u0e22\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e15\u0e34\u0e14\u0e41\u0e17\u0e47\u0e01\u0e01\u0e31\u0e1a\u0e2b\u0e25\u0e32\u0e22\u0e04\u0e19 ** \u0e02\u0e32\u0e22 ** \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e43\u0e2b\u0e49\u0e04\u0e38\u0e13\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32\u0e41\u0e25\u0e30\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a\u0e40\u0e1b\u0e49\u0e32\u0e2b\u0e21\u0e32\u0e22",
+ "Employee": "\u0e25\u0e39\u0e01\u0e08\u0e49\u0e32\u0e07",
+ "Has Child Node": "\u0e21\u0e35\u0e42\u0e2b\u0e19\u0e14\u0e25\u0e39\u0e01",
+ "No": "\u0e44\u0e21\u0e48",
+ "Parent Sales Person": "\u0e1c\u0e39\u0e49\u0e1b\u0e01\u0e04\u0e23\u0e2d\u0e07\u0e04\u0e19\u0e02\u0e32\u0e22",
+ "Sales Person": "\u0e04\u0e19\u0e02\u0e32\u0e22",
+ "Sales Person Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e04\u0e19\u0e02\u0e32\u0e22",
+ "Sales Person Targets": "\u0e02\u0e32\u0e22\u0e40\u0e1b\u0e49\u0e32\u0e2b\u0e21\u0e32\u0e22\u0e04\u0e19",
+ "Select Budget Distribution to unevenly distribute targets across months.": "\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e01\u0e32\u0e23\u0e01\u0e23\u0e30\u0e08\u0e32\u0e22\u0e07\u0e1a\u0e1b\u0e23\u0e30\u0e21\u0e32\u0e13\u0e17\u0e35\u0e48\u0e08\u0e30\u0e44\u0e21\u0e48\u0e2a\u0e21\u0e48\u0e33\u0e40\u0e2a\u0e21\u0e2d\u0e01\u0e23\u0e30\u0e08\u0e32\u0e22\u0e17\u0e31\u0e48\u0e27\u0e40\u0e1b\u0e49\u0e32\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e14\u0e37\u0e2d\u0e19",
+ "Select company name first.": "\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e0a\u0e37\u0e48\u0e2d \u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17 \u0e41\u0e23\u0e01",
+ "Set targets Item Group-wise for this Sales Person.": "\u0e15\u0e31\u0e49\u0e07\u0e40\u0e1b\u0e49\u0e32\u0e01\u0e25\u0e38\u0e48\u0e21\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e17\u0e35\u0e48\u0e0a\u0e32\u0e0d\u0e09\u0e25\u0e32\u0e14\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e19\u0e35\u200b\u200b\u0e49\u0e04\u0e19\u0e02\u0e32\u0e22",
+ "Setup": "\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07",
+ "Target Details1": "Details1 \u0e40\u0e1b\u0e49\u0e32\u0e2b\u0e21\u0e32\u0e22",
+ "Target Distribution": "\u0e01\u0e32\u0e23\u0e01\u0e23\u0e30\u0e08\u0e32\u0e22\u0e40\u0e1b\u0e49\u0e32\u0e2b\u0e21\u0e32\u0e22",
+ "Trash Reason": "\u0e40\u0e2b\u0e15\u0e38\u0e1c\u0e25\u0e16\u0e31\u0e07\u0e02\u0e22\u0e30",
+ "Yes": "\u0e43\u0e0a\u0e48",
+ "lft": "lft",
+ "old_parent": "old_parent",
+ "rgt": "RGT"
+}
\ No newline at end of file
diff --git a/setup/doctype/series_detail/locale/de-doc.json b/setup/doctype/series_detail/locale/de-doc.json
new file mode 100644
index 00000000000..df28f51e288
--- /dev/null
+++ b/setup/doctype/series_detail/locale/de-doc.json
@@ -0,0 +1,6 @@
+{
+ "Remove": "Entfernen",
+ "Series": "Serie",
+ "Series Detail": "Series Detailansicht",
+ "Setup": "Setup"
+}
\ No newline at end of file
diff --git a/setup/doctype/series_detail/locale/pt-BR-doc.json b/setup/doctype/series_detail/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..dca70144493
--- /dev/null
+++ b/setup/doctype/series_detail/locale/pt-BR-doc.json
@@ -0,0 +1,6 @@
+{
+ "Remove": "Remover",
+ "Series": "S\u00e9ries",
+ "Series Detail": "Detalhe da S\u00e9ries",
+ "Setup": "Configura\u00e7\u00e3o"
+}
\ No newline at end of file
diff --git a/setup/doctype/series_detail/locale/th-doc.json b/setup/doctype/series_detail/locale/th-doc.json
new file mode 100644
index 00000000000..4974555104b
--- /dev/null
+++ b/setup/doctype/series_detail/locale/th-doc.json
@@ -0,0 +1,6 @@
+{
+ "Remove": "\u0e16\u0e2d\u0e14",
+ "Series": "\u0e0a\u0e38\u0e14",
+ "Series Detail": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e0a\u0e38\u0e14",
+ "Setup": "\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07"
+}
\ No newline at end of file
diff --git a/setup/doctype/setup_control/locale/de-doc.json b/setup/doctype/setup_control/locale/de-doc.json
new file mode 100644
index 00000000000..8ae3dca16c5
--- /dev/null
+++ b/setup/doctype/setup_control/locale/de-doc.json
@@ -0,0 +1,4 @@
+{
+ "Setup": "Setup",
+ "Setup Control": "Setup Control"
+}
\ No newline at end of file
diff --git a/setup/doctype/setup_control/locale/pt-BR-doc.json b/setup/doctype/setup_control/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..41d444576ed
--- /dev/null
+++ b/setup/doctype/setup_control/locale/pt-BR-doc.json
@@ -0,0 +1,4 @@
+{
+ "Setup": "Configura\u00e7\u00e3o",
+ "Setup Control": "Controle de configura\u00e7\u00e3o"
+}
\ No newline at end of file
diff --git a/setup/doctype/setup_control/locale/th-doc.json b/setup/doctype/setup_control/locale/th-doc.json
new file mode 100644
index 00000000000..fb6b39b315e
--- /dev/null
+++ b/setup/doctype/setup_control/locale/th-doc.json
@@ -0,0 +1,4 @@
+{
+ "Setup": "\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07",
+ "Setup Control": "\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07"
+}
\ No newline at end of file
diff --git a/setup/doctype/sms_parameter/locale/de-doc.json b/setup/doctype/sms_parameter/locale/de-doc.json
new file mode 100644
index 00000000000..fe97bc7cf2b
--- /dev/null
+++ b/setup/doctype/sms_parameter/locale/de-doc.json
@@ -0,0 +1,6 @@
+{
+ "Parameter": "Parameter",
+ "SMS Parameter": "SMS Parameter",
+ "Setup": "Setup",
+ "Value": "Wert"
+}
\ No newline at end of file
diff --git a/setup/doctype/sms_parameter/locale/pt-BR-doc.json b/setup/doctype/sms_parameter/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..069148cc1d2
--- /dev/null
+++ b/setup/doctype/sms_parameter/locale/pt-BR-doc.json
@@ -0,0 +1,6 @@
+{
+ "Parameter": "Par\u00e2metro",
+ "SMS Parameter": "Par\u00e2metro de SMS",
+ "Setup": "Configura\u00e7\u00e3o",
+ "Value": "Valor"
+}
\ No newline at end of file
diff --git a/setup/doctype/sms_parameter/locale/th-doc.json b/setup/doctype/sms_parameter/locale/th-doc.json
new file mode 100644
index 00000000000..0af1e41b5b2
--- /dev/null
+++ b/setup/doctype/sms_parameter/locale/th-doc.json
@@ -0,0 +1,6 @@
+{
+ "Parameter": "\u0e1e\u0e32\u0e23\u0e32\u0e21\u0e34\u0e40\u0e15\u0e2d\u0e23\u0e4c",
+ "SMS Parameter": "\u0e1e\u0e32\u0e23\u0e32\u0e21\u0e34\u0e40\u0e15\u0e2d\u0e23\u0e4c SMS",
+ "Setup": "\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07",
+ "Value": "\u0e21\u0e39\u0e25\u0e04\u0e48\u0e32"
+}
\ No newline at end of file
diff --git a/setup/doctype/sms_settings/locale/de-doc.json b/setup/doctype/sms_settings/locale/de-doc.json
new file mode 100644
index 00000000000..6a5f7631cdf
--- /dev/null
+++ b/setup/doctype/sms_settings/locale/de-doc.json
@@ -0,0 +1,13 @@
+{
+ "Eg. smsgateway.com/api/send_sms.cgi": "Eg. smsgateway.com / api / send_sms.cgi",
+ "Enter static url parameters here (Eg. sender=ERPNext, username=ERPNext, password=1234 etc.)": "Geben Sie statischen URL-Parameter hier (Bsp. sender = ERPNext, username = ERPNext, password = 1234 etc.)",
+ "Enter url parameter for message": "Geben Sie URL-Parameter f\u00fcr die Nachrichten\u00fcbertragung",
+ "Enter url parameter for receiver nos": "Geben Sie URL-Parameter f\u00fcr Empf\u00e4nger nos",
+ "Message Parameter": "Nachricht Parameter",
+ "Receiver Parameter": "Empf\u00e4nger Parameter",
+ "SMS Gateway URL": "SMS Gateway URL",
+ "SMS Parameters": "SMS-Parameter",
+ "SMS Settings": "SMS-Einstellungen",
+ "Setup": "Setup",
+ "Static Parameters": "Statische Parameter"
+}
\ No newline at end of file
diff --git a/setup/doctype/sms_settings/locale/pt-BR-doc.json b/setup/doctype/sms_settings/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..c9b9e663bdc
--- /dev/null
+++ b/setup/doctype/sms_settings/locale/pt-BR-doc.json
@@ -0,0 +1,13 @@
+{
+ "Eg. smsgateway.com/api/send_sms.cgi": "Por exemplo: smsgateway.com / api / send_sms.cgi",
+ "Enter static url parameters here (Eg. sender=ERPNext, username=ERPNext, password=1234 etc.)": "Digite os par\u00e2metros da URL est\u00e1tica aqui (por exemplo remetente=ERPNext, usuario=ERPNext, senha=1234, etc)",
+ "Enter url parameter for message": "Digite o par\u00e2metro da url para mensagem",
+ "Enter url parameter for receiver nos": "Digite o par\u00e2metro da url para os n\u00fameros de receptores",
+ "Message Parameter": "Par\u00e2metro da mensagem",
+ "Receiver Parameter": "Par\u00e2metro do recebedor",
+ "SMS Gateway URL": "URL de Gateway para SMS",
+ "SMS Parameters": "Par\u00e2metros de SMS",
+ "SMS Settings": "Defini\u00e7\u00f5es de SMS",
+ "Setup": "Configura\u00e7\u00e3o",
+ "Static Parameters": "Par\u00e2metros est\u00e1ticos"
+}
\ No newline at end of file
diff --git a/setup/doctype/sms_settings/locale/th-doc.json b/setup/doctype/sms_settings/locale/th-doc.json
new file mode 100644
index 00000000000..14d057028be
--- /dev/null
+++ b/setup/doctype/sms_settings/locale/th-doc.json
@@ -0,0 +1,13 @@
+{
+ "Eg. smsgateway.com/api/send_sms.cgi": "\u0e40\u0e0a\u0e48\u0e19 smsgateway.com / API / send_sms.cgi",
+ "Enter static url parameters here (Eg. sender=ERPNext, username=ERPNext, password=1234 etc.)": "\u0e1b\u0e49\u0e2d\u0e19\u0e1e\u0e32\u0e23\u0e32\u0e21\u0e34\u0e40\u0e15\u0e2d\u0e23\u0e4c\u0e04\u0e07\u0e17\u0e35\u0e48 URL \u0e17\u0e35\u0e48\u0e19\u0e35\u0e48 (\u0e40\u0e0a\u0e48\u0e19\u0e1c\u0e39\u0e49\u0e2a\u0e48\u0e07 = ERPNext \u0e0a\u0e37\u0e48\u0e2d\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49 = ERPNext \u0e23\u0e2b\u0e31\u0e2a\u0e1c\u0e48\u0e32\u0e19 = 1234 \u0e2f\u0e25\u0e2f )",
+ "Enter url parameter for message": "\u0e1b\u0e49\u0e2d\u0e19\u0e1e\u0e32\u0e23\u0e32\u0e21\u0e34\u0e40\u0e15\u0e2d\u0e23\u0e4c URL \u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21",
+ "Enter url parameter for receiver nos": "\u0e1b\u0e49\u0e2d\u0e19\u0e1e\u0e32\u0e23\u0e32\u0e21\u0e34\u0e40\u0e15\u0e2d\u0e23\u0e4c URL \u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a Nos \u0e23\u0e31\u0e1a",
+ "Message Parameter": "\u0e1e\u0e32\u0e23\u0e32\u0e21\u0e34\u0e40\u0e15\u0e2d\u0e23\u0e4c\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21",
+ "Receiver Parameter": "\u0e1e\u0e32\u0e23\u0e32\u0e21\u0e34\u0e40\u0e15\u0e2d\u0e23\u0e4c\u0e23\u0e31\u0e1a",
+ "SMS Gateway URL": "URL \u0e40\u0e01\u0e15\u0e40\u0e27\u0e22\u0e4c SMS",
+ "SMS Parameters": "\u0e1e\u0e32\u0e23\u0e32\u0e21\u0e34\u0e40\u0e15\u0e2d\u0e23\u0e4c SMS",
+ "SMS Settings": "\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32 SMS",
+ "Setup": "\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07",
+ "Static Parameters": "\u0e1e\u0e32\u0e23\u0e32\u0e21\u0e34\u0e40\u0e15\u0e2d\u0e23\u0e4c\u0e04\u0e07"
+}
\ No newline at end of file
diff --git a/setup/doctype/state/locale/de-doc.json b/setup/doctype/state/locale/de-doc.json
new file mode 100644
index 00000000000..63f1a8108a3
--- /dev/null
+++ b/setup/doctype/state/locale/de-doc.json
@@ -0,0 +1,6 @@
+{
+ "Country": "Land",
+ "Setup": "Setup",
+ "State": "Zustand",
+ "State Name": "State Name"
+}
\ No newline at end of file
diff --git a/setup/doctype/state/locale/pt-BR-doc.json b/setup/doctype/state/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..7c8fa8ff9c2
--- /dev/null
+++ b/setup/doctype/state/locale/pt-BR-doc.json
@@ -0,0 +1,6 @@
+{
+ "Country": "Pa\u00eds",
+ "Setup": "Configura\u00e7\u00e3o",
+ "State": "Estado",
+ "State Name": "Nome do Estado"
+}
\ No newline at end of file
diff --git a/setup/doctype/state/locale/th-doc.json b/setup/doctype/state/locale/th-doc.json
new file mode 100644
index 00000000000..d41fec9a418
--- /dev/null
+++ b/setup/doctype/state/locale/th-doc.json
@@ -0,0 +1,6 @@
+{
+ "Country": "\u0e1b\u0e23\u0e30\u0e40\u0e17\u0e28",
+ "Setup": "\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07",
+ "State": "\u0e23\u0e31\u0e10",
+ "State Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e23\u0e31\u0e10"
+}
\ No newline at end of file
diff --git a/setup/doctype/supplier_type/locale/de-doc.json b/setup/doctype/supplier_type/locale/de-doc.json
new file mode 100644
index 00000000000..6fb56bb3678
--- /dev/null
+++ b/setup/doctype/supplier_type/locale/de-doc.json
@@ -0,0 +1,5 @@
+{
+ "Setup": "Setup",
+ "Supplier Type": "Lieferant Typ",
+ "Trash Reason": "Trash Reason"
+}
\ No newline at end of file
diff --git a/setup/doctype/supplier_type/locale/pt-BR-doc.json b/setup/doctype/supplier_type/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..e62a8dfaee2
--- /dev/null
+++ b/setup/doctype/supplier_type/locale/pt-BR-doc.json
@@ -0,0 +1,5 @@
+{
+ "Setup": "Configura\u00e7\u00e3o",
+ "Supplier Type": "Tipo de Fornecedor",
+ "Trash Reason": "Raz\u00e3o de p\u00f4r no lixo"
+}
\ No newline at end of file
diff --git a/setup/doctype/supplier_type/locale/th-doc.json b/setup/doctype/supplier_type/locale/th-doc.json
new file mode 100644
index 00000000000..c20a1aa10db
--- /dev/null
+++ b/setup/doctype/supplier_type/locale/th-doc.json
@@ -0,0 +1,5 @@
+{
+ "Setup": "\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07",
+ "Supplier Type": "\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e1c\u0e39\u0e49\u0e1c\u0e25\u0e34\u0e15",
+ "Trash Reason": "\u0e40\u0e2b\u0e15\u0e38\u0e1c\u0e25\u0e16\u0e31\u0e07\u0e02\u0e22\u0e30"
+}
\ No newline at end of file
diff --git a/setup/doctype/target_detail/locale/de-doc.json b/setup/doctype/target_detail/locale/de-doc.json
new file mode 100644
index 00000000000..19b743100a6
--- /dev/null
+++ b/setup/doctype/target_detail/locale/de-doc.json
@@ -0,0 +1,8 @@
+{
+ "Fiscal Year": "Gesch\u00e4ftsjahr",
+ "Item Group": "Artikel-Gruppe",
+ "Setup": "Setup",
+ "Target Amount": "Zielbetrag",
+ "Target Detail": "Ziel Detailansicht",
+ "Target Qty": "Ziel Menge"
+}
\ No newline at end of file
diff --git a/setup/doctype/target_detail/locale/pt-BR-doc.json b/setup/doctype/target_detail/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..1e6d6600990
--- /dev/null
+++ b/setup/doctype/target_detail/locale/pt-BR-doc.json
@@ -0,0 +1,8 @@
+{
+ "Fiscal Year": "Exerc\u00edcio fiscal",
+ "Item Group": "Grupo de Itens",
+ "Setup": "Configura\u00e7\u00e3o",
+ "Target Amount": "Valor da meta",
+ "Target Detail": "Detalhe da meta",
+ "Target Qty": "Qtde. de metas"
+}
\ No newline at end of file
diff --git a/setup/doctype/target_detail/locale/th-doc.json b/setup/doctype/target_detail/locale/th-doc.json
new file mode 100644
index 00000000000..060ac689b44
--- /dev/null
+++ b/setup/doctype/target_detail/locale/th-doc.json
@@ -0,0 +1,8 @@
+{
+ "Fiscal Year": "\u0e1b\u0e35\u0e07\u0e1a\u0e1b\u0e23\u0e30\u0e21\u0e32\u0e13",
+ "Item Group": "\u0e01\u0e25\u0e38\u0e48\u0e21\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Setup": "\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07",
+ "Target Amount": "\u0e08\u0e33\u0e19\u0e27\u0e19\u0e40\u0e1b\u0e49\u0e32\u0e2b\u0e21\u0e32\u0e22",
+ "Target Detail": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e40\u0e1b\u0e49\u0e32\u0e2b\u0e21\u0e32\u0e22",
+ "Target Qty": "\u0e08\u0e33\u0e19\u0e27\u0e19\u0e40\u0e1b\u0e49\u0e32\u0e2b\u0e21\u0e32\u0e22"
+}
\ No newline at end of file
diff --git a/setup/doctype/terms_and_conditions/locale/_messages_doc.json b/setup/doctype/terms_and_conditions/locale/_messages_doc.json
index 6cad6d596ab..fd5d7d163b7 100644
--- a/setup/doctype/terms_and_conditions/locale/_messages_doc.json
+++ b/setup/doctype/terms_and_conditions/locale/_messages_doc.json
@@ -1,7 +1,7 @@
[
- "Standard Terms and Conditions that can be added to Sales and Purchases.Examples:1. Validity of the offer.1. Payment Terms (In Advance, On Credit, part advance etc).1. What is extra (or payable by the Customer).1. Safety / usage warning.1. Warranty if any.1. Returns Policy.1. Terms of shipping, if applicable.1. Ways of addressing disputes, indemnity, liability, etc.1. Address and Contact of your Company.",
- "Setup",
- "Terms and Conditions",
"Trash Reason",
- "Title"
+ "Standard Terms and Conditions that can be added to Sales and Purchases.\n\nExamples:\n\n1. Validity of the offer.\n1. Payment Terms (In Advance, On Credit, part advance etc).\n1. What is extra (or payable by the Customer).\n1. Safety / usage warning.\n1. Warranty if any.\n1. Returns Policy.\n1. Terms of shipping, if applicable.\n1. Ways of addressing disputes, indemnity, liability, etc.\n1. Address and Contact of your Company.",
+ "Terms and Conditions",
+ "Title",
+ "Setup"
]
\ No newline at end of file
diff --git a/setup/doctype/terms_and_conditions/locale/de-doc.json b/setup/doctype/terms_and_conditions/locale/de-doc.json
new file mode 100644
index 00000000000..c9773ea55c5
--- /dev/null
+++ b/setup/doctype/terms_and_conditions/locale/de-doc.json
@@ -0,0 +1,6 @@
+{
+ "Setup": "Setup",
+ "Terms and Conditions": "AGB",
+ "Title": "Titel",
+ "Trash Reason": "Trash Reason"
+}
\ No newline at end of file
diff --git a/setup/doctype/terms_and_conditions/locale/pt-BR-doc.json b/setup/doctype/terms_and_conditions/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..2abfde6dda3
--- /dev/null
+++ b/setup/doctype/terms_and_conditions/locale/pt-BR-doc.json
@@ -0,0 +1,6 @@
+{
+ "Setup": "Configura\u00e7\u00e3o",
+ "Terms and Conditions": "Termos e Condi\u00e7\u00f5es",
+ "Title": "T\u00edtulo",
+ "Trash Reason": "Raz\u00e3o de p\u00f4r no lixo"
+}
\ No newline at end of file
diff --git a/setup/doctype/terms_and_conditions/locale/th-doc.json b/setup/doctype/terms_and_conditions/locale/th-doc.json
new file mode 100644
index 00000000000..ef40afc5ebb
--- /dev/null
+++ b/setup/doctype/terms_and_conditions/locale/th-doc.json
@@ -0,0 +1,7 @@
+{
+ "Setup": "\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07",
+ "Standard Terms and Conditions that can be added to Sales and Purchases.Examples:1. Validity of the offer.1. Payment Terms (In Advance, On Credit, part advance etc).1. What is extra (or payable by the Customer).1. Safety / usage warning.1. Warranty if any.1. Returns Policy.1. Terms of shipping, if applicable.1. Ways of addressing disputes, indemnity, liability, etc.1. Address and Contact of your Company.": "\u0e02\u0e49\u0e2d\u0e15\u0e01\u0e25\u0e07\u0e41\u0e25\u0e30\u0e40\u0e07\u0e37\u0e48\u0e2d\u0e19\u0e44\u0e02\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19\u0e41\u0e25\u0e30\u0e40\u0e07\u0e37\u0e48\u0e2d\u0e19\u0e44\u0e02\u0e17\u0e35\u0e48\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e22\u0e2d\u0e14\u0e02\u0e32\u0e22\u0e41\u0e25\u0e30 Purchases.Examples: 1 \u0e04\u0e27\u0e32\u0e21\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07\u0e02\u0e2d\u0e07 offer.1 \u0e02\u0e49\u0e2d\u0e15\u0e01\u0e25\u0e07\u0e41\u0e25\u0e30\u0e40\u0e07\u0e37\u0e48\u0e2d\u0e19\u0e44\u0e02\u0e01\u0e32\u0e23\u0e0a\u0e33\u0e23\u0e30\u0e40\u0e07\u0e34\u0e19 (\u0e25\u0e48\u0e27\u0e07\u0e2b\u0e19\u0e49\u0e32\u0e1a\u0e19\u0e1a\u0e31\u0e15\u0e23\u0e40\u0e04\u0e23\u0e14\u0e34\u0e15 \u0e2f\u0e25\u0e2f \u0e25\u0e48\u0e27\u0e07\u0e2b\u0e19\u0e49\u0e32\u0e1a\u0e32\u0e07\u0e2a\u0e48\u0e27\u0e19) 0.1 \u0e40\u0e1b\u0e47\u0e19\u0e1e\u0e34\u0e40\u0e28\u0e29 (\u0e2b\u0e23\u0e37\u0e2d\u0e08\u0e48\u0e32\u0e22\u0e42\u0e14\u0e22\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32) \u0e04\u0e37\u0e2d\u0e2d\u0e30\u0e44\u0e23 0.1 \u0e04\u0e27\u0e32\u0e21\u0e1b\u0e25\u0e2d\u0e14\u0e20\u0e31\u0e22 / warning.1 \u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19 \u0e23\u0e31\u0e1a\u0e1b\u0e23\u0e30\u0e01\u0e31\u0e19\u0e16\u0e49\u0e32 any.1 \u0e1c\u0e25\u0e15\u0e2d\u0e1a\u0e41\u0e17\u0e19\u0e17\u0e35\u0e48 Policy.1 \u0e02\u0e49\u0e2d\u0e15\u0e01\u0e25\u0e07\u0e41\u0e25\u0e30\u0e40\u0e07\u0e37\u0e48\u0e2d\u0e19\u0e44\u0e02\u0e43\u0e19\u0e01\u0e32\u0e23\u0e08\u0e31\u0e14\u0e2a\u0e48\u0e07\u0e16\u0e49\u0e32 applicable.1 \u0e27\u0e34\u0e18\u0e35\u0e01\u0e32\u0e23\u0e41\u0e01\u0e49\u0e44\u0e02\u0e1b\u0e31\u0e0d\u0e2b\u0e32\u0e04\u0e27\u0e32\u0e21\u0e02\u0e31\u0e14\u0e41\u0e22\u0e49\u0e07\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48, \u0e1b\u0e23\u0e30\u0e01\u0e31\u0e19\u0e04\u0e27\u0e32\u0e21\u0e23\u0e31\u0e1a\u0e1c\u0e34\u0e14 etc.1 \u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e41\u0e25\u0e30\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d\u0e08\u0e32\u0e01 \u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17 \u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13",
+ "Terms and Conditions": "\u0e02\u0e49\u0e2d\u0e15\u0e01\u0e25\u0e07\u0e41\u0e25\u0e30\u0e40\u0e07\u0e37\u0e48\u0e2d\u0e19\u0e44\u0e02",
+ "Title": "\u0e0a\u0e37\u0e48\u0e2d\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07",
+ "Trash Reason": "\u0e40\u0e2b\u0e15\u0e38\u0e1c\u0e25\u0e16\u0e31\u0e07\u0e02\u0e22\u0e30"
+}
\ No newline at end of file
diff --git a/setup/doctype/territory/locale/_messages_doc.json b/setup/doctype/territory/locale/_messages_doc.json
index caff54e072d..c76e2b777f9 100644
--- a/setup/doctype/territory/locale/_messages_doc.json
+++ b/setup/doctype/territory/locale/_messages_doc.json
@@ -1,22 +1,22 @@
[
"Territory Targets",
- "Parent Territory",
- "Territory Manager",
- "For reference",
- "Only leaf nodes are allowed in transaction",
- "No",
- "Setup",
- "Has Child Node",
"Trash Reason",
"Target Distribution",
- "Territory Name",
- "old_parent",
+ "No",
"lft",
- "Classification of Customers by region",
- "Target Details",
- "rgt",
- "Yes",
- "Territory",
+ "For reference",
"Set Item Group-wise budgets on this Territory. You can also include seasonality by setting the Distribution.",
- "Select Budget Distribution to unevenly distribute targets across months."
+ "Territory Manager",
+ "Territory",
+ "rgt",
+ "Has Child Node",
+ "Classification of Customers by region",
+ "Parent Territory",
+ "Setup",
+ "Territory Name",
+ "Select Budget Distribution to unevenly distribute targets across months.",
+ "Only leaf nodes are allowed in transaction",
+ "old_parent",
+ "Target Details",
+ "Yes"
]
\ No newline at end of file
diff --git a/setup/doctype/territory/locale/de-doc.json b/setup/doctype/territory/locale/de-doc.json
new file mode 100644
index 00000000000..5c6000e409f
--- /dev/null
+++ b/setup/doctype/territory/locale/de-doc.json
@@ -0,0 +1,22 @@
+{
+ "Classification of Customers by region": "Klassifizierung der Kunden nach Regionen",
+ "For reference": "Als Referenz",
+ "Has Child Node": "Hat Child Node",
+ "No": "Auf",
+ "Only leaf nodes are allowed in transaction": "Nur Blattknoten in Transaktion zul\u00e4ssig",
+ "Parent Territory": "Eltern Territory",
+ "Select Budget Distribution to unevenly distribute targets across months.": "W\u00e4hlen Budget Verteilung ungleichm\u00e4\u00dfig Targets \u00fcber Monate verteilen.",
+ "Set Item Group-wise budgets on this Territory. You can also include seasonality by setting the Distribution.": "Set Artikel gruppenweise Budgets auf diesem Gebiet. Sie k\u00f6nnen Saisonalit\u00e4t auch geh\u00f6ren, indem Sie die Distribution.",
+ "Setup": "Setup",
+ "Target Details": "Zieldetails",
+ "Target Distribution": "Target Distribution",
+ "Territory": "Gebiet",
+ "Territory Manager": "Territory Manager",
+ "Territory Name": "Territory Namen",
+ "Territory Targets": "Territory Targets",
+ "Trash Reason": "Trash Reason",
+ "Yes": "Ja",
+ "lft": "lft",
+ "old_parent": "old_parent",
+ "rgt": "rgt"
+}
\ No newline at end of file
diff --git a/setup/doctype/territory/locale/pt-BR-doc.json b/setup/doctype/territory/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..004552cbfda
--- /dev/null
+++ b/setup/doctype/territory/locale/pt-BR-doc.json
@@ -0,0 +1,22 @@
+{
+ "Classification of Customers by region": "Classifica\u00e7\u00e3o de Clientes por regi\u00e3o",
+ "For reference": "Para refer\u00eancia",
+ "Has Child Node": "Tem n\u00f3 filho",
+ "No": "N\u00e3o",
+ "Only leaf nodes are allowed in transaction": "Somente n\u00f3s-folha s\u00e3o permitidos em transa\u00e7\u00f5es",
+ "Parent Territory": "Territ\u00f3rio pai",
+ "Select Budget Distribution to unevenly distribute targets across months.": "Selecione distribui\u00e7\u00e3o do or\u00e7amento para distribuir metas diferentes para os meses.",
+ "Set Item Group-wise budgets on this Territory. You can also include seasonality by setting the Distribution.": "Definir or\u00e7amentos para Grupos de Itens neste territ\u00f3rio. Voc\u00ea tamb\u00e9m pode incluir a sazonalidade, defininda na Distribui\u00e7\u00e3o.",
+ "Setup": "Configura\u00e7\u00e3o",
+ "Target Details": "Detalhes da meta",
+ "Target Distribution": "Distribui\u00e7\u00e3o de metas",
+ "Territory": "Territ\u00f3rio",
+ "Territory Manager": "Gerenciador de Territ\u00f3rios",
+ "Territory Name": "Nome do Territ\u00f3rio",
+ "Territory Targets": "Metas do Territ\u00f3rio",
+ "Trash Reason": "Raz\u00e3o de p\u00f4r no lixo",
+ "Yes": "Sim",
+ "lft": "esq.",
+ "old_parent": "old_parent",
+ "rgt": "dir."
+}
\ No newline at end of file
diff --git a/setup/doctype/territory/locale/th-doc.json b/setup/doctype/territory/locale/th-doc.json
new file mode 100644
index 00000000000..54d6c6bf071
--- /dev/null
+++ b/setup/doctype/territory/locale/th-doc.json
@@ -0,0 +1,22 @@
+{
+ "Classification of Customers by region": "\u0e01\u0e32\u0e23\u0e08\u0e33\u0e41\u0e19\u0e01\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e02\u0e2d\u0e07\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32\u0e15\u0e32\u0e21\u0e20\u0e39\u0e21\u0e34\u0e20\u0e32\u0e04",
+ "For reference": "\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e2d\u0e49\u0e32\u0e07\u0e2d\u0e34\u0e07",
+ "Has Child Node": "\u0e21\u0e35\u0e42\u0e2b\u0e19\u0e14\u0e25\u0e39\u0e01",
+ "No": "\u0e44\u0e21\u0e48",
+ "Only leaf nodes are allowed in transaction": "\u0e42\u0e2b\u0e19\u0e14\u0e43\u0e1a\u0e40\u0e17\u0e48\u0e32\u0e19\u0e31\u0e49\u0e19\u0e17\u0e35\u0e48\u0e08\u0e30\u0e40\u0e02\u0e49\u0e32\u0e43\u0e19\u0e01\u0e32\u0e23\u0e17\u0e33\u0e18\u0e38\u0e23\u0e01\u0e23\u0e23\u0e21",
+ "Parent Territory": "\u0e14\u0e34\u0e19\u0e41\u0e14\u0e19\u0e1b\u0e01\u0e04\u0e23\u0e2d\u0e07",
+ "Select Budget Distribution to unevenly distribute targets across months.": "\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e01\u0e32\u0e23\u0e01\u0e23\u0e30\u0e08\u0e32\u0e22\u0e07\u0e1a\u0e1b\u0e23\u0e30\u0e21\u0e32\u0e13\u0e17\u0e35\u0e48\u0e08\u0e30\u0e44\u0e21\u0e48\u0e2a\u0e21\u0e48\u0e33\u0e40\u0e2a\u0e21\u0e2d\u0e01\u0e23\u0e30\u0e08\u0e32\u0e22\u0e17\u0e31\u0e48\u0e27\u0e40\u0e1b\u0e49\u0e32\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e14\u0e37\u0e2d\u0e19",
+ "Set Item Group-wise budgets on this Territory. You can also include seasonality by setting the Distribution.": "\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e07\u0e1a\u0e1b\u0e23\u0e30\u0e21\u0e32\u0e13\u0e01\u0e25\u0e38\u0e48\u0e21\u0e09\u0e25\u0e32\u0e14\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e43\u0e19\u0e21\u0e13\u0e11\u0e25\u0e19\u0e35\u0e49 \u0e04\u0e38\u0e13\u0e22\u0e31\u0e07\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e23\u0e27\u0e21\u0e24\u0e14\u0e39\u0e01\u0e32\u0e25\u0e42\u0e14\u0e22\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32\u0e01\u0e32\u0e23\u0e01\u0e23\u0e30\u0e08\u0e32\u0e22",
+ "Setup": "\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07",
+ "Target Details": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e40\u0e1b\u0e49\u0e32\u0e2b\u0e21\u0e32\u0e22",
+ "Target Distribution": "\u0e01\u0e32\u0e23\u0e01\u0e23\u0e30\u0e08\u0e32\u0e22\u0e40\u0e1b\u0e49\u0e32\u0e2b\u0e21\u0e32\u0e22",
+ "Territory": "\u0e2d\u0e32\u0e13\u0e32\u0e40\u0e02\u0e15",
+ "Territory Manager": "\u0e1c\u0e39\u0e49\u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e14\u0e34\u0e19\u0e41\u0e14\u0e19",
+ "Territory Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e14\u0e34\u0e19\u0e41\u0e14\u0e19",
+ "Territory Targets": "\u0e40\u0e1b\u0e49\u0e32\u0e2b\u0e21\u0e32\u0e22\u0e14\u0e34\u0e19\u0e41\u0e14\u0e19",
+ "Trash Reason": "\u0e40\u0e2b\u0e15\u0e38\u0e1c\u0e25\u0e16\u0e31\u0e07\u0e02\u0e22\u0e30",
+ "Yes": "\u0e43\u0e0a\u0e48",
+ "lft": "lft",
+ "old_parent": "old_parent",
+ "rgt": "RGT"
+}
\ No newline at end of file
diff --git a/setup/doctype/uom/locale/_messages_doc.json b/setup/doctype/uom/locale/_messages_doc.json
index 497c763b188..850ea0e3ae8 100644
--- a/setup/doctype/uom/locale/_messages_doc.json
+++ b/setup/doctype/uom/locale/_messages_doc.json
@@ -1,7 +1,7 @@
[
- "UOM Name",
- "Setup",
- "UOM Details",
"Trash Reason",
+ "UOM Name",
+ "UOM Details",
+ "Setup",
"UOM"
]
\ No newline at end of file
diff --git a/setup/doctype/uom/locale/de-doc.json b/setup/doctype/uom/locale/de-doc.json
new file mode 100644
index 00000000000..da70327cc60
--- /dev/null
+++ b/setup/doctype/uom/locale/de-doc.json
@@ -0,0 +1,7 @@
+{
+ "Setup": "Setup",
+ "Trash Reason": "Trash Reason",
+ "UOM": "UOM",
+ "UOM Details": "UOM Einzelheiten",
+ "UOM Name": "UOM Namen"
+}
\ No newline at end of file
diff --git a/setup/doctype/uom/locale/pt-BR-doc.json b/setup/doctype/uom/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..53d2507db7a
--- /dev/null
+++ b/setup/doctype/uom/locale/pt-BR-doc.json
@@ -0,0 +1,7 @@
+{
+ "Setup": "Configura\u00e7\u00e3o",
+ "Trash Reason": "Raz\u00e3o de p\u00f4r no lixo",
+ "UOM": "UDM",
+ "UOM Details": "Detalhes da UDM",
+ "UOM Name": "Nome da UDM"
+}
\ No newline at end of file
diff --git a/setup/doctype/uom/locale/th-doc.json b/setup/doctype/uom/locale/th-doc.json
new file mode 100644
index 00000000000..54693fa0dc1
--- /dev/null
+++ b/setup/doctype/uom/locale/th-doc.json
@@ -0,0 +1,7 @@
+{
+ "Setup": "\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07",
+ "Trash Reason": "\u0e40\u0e2b\u0e15\u0e38\u0e1c\u0e25\u0e16\u0e31\u0e07\u0e02\u0e22\u0e30",
+ "UOM": "UOM",
+ "UOM Details": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14 UOM",
+ "UOM Name": "\u0e0a\u0e37\u0e48\u0e2d UOM"
+}
\ No newline at end of file
diff --git a/setup/doctype/warehouse_type/locale/de-doc.json b/setup/doctype/warehouse_type/locale/de-doc.json
new file mode 100644
index 00000000000..caa517fe0f3
--- /dev/null
+++ b/setup/doctype/warehouse_type/locale/de-doc.json
@@ -0,0 +1,5 @@
+{
+ "Setup": "Setup",
+ "Trash Reason": "Trash Reason",
+ "Warehouse Type": "Warehouse Typ"
+}
\ No newline at end of file
diff --git a/setup/doctype/warehouse_type/locale/pt-BR-doc.json b/setup/doctype/warehouse_type/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..29285d3fbf6
--- /dev/null
+++ b/setup/doctype/warehouse_type/locale/pt-BR-doc.json
@@ -0,0 +1,5 @@
+{
+ "Setup": "Configura\u00e7\u00e3o",
+ "Trash Reason": "Raz\u00e3o de p\u00f4r no lixo",
+ "Warehouse Type": "Tipo de Almoxarifado"
+}
\ No newline at end of file
diff --git a/setup/doctype/warehouse_type/locale/th-doc.json b/setup/doctype/warehouse_type/locale/th-doc.json
new file mode 100644
index 00000000000..0b607d34797
--- /dev/null
+++ b/setup/doctype/warehouse_type/locale/th-doc.json
@@ -0,0 +1,5 @@
+{
+ "Setup": "\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07",
+ "Trash Reason": "\u0e40\u0e2b\u0e15\u0e38\u0e1c\u0e25\u0e16\u0e31\u0e07\u0e02\u0e22\u0e30",
+ "Warehouse Type": "\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32"
+}
\ No newline at end of file
diff --git a/setup/doctype/workflow_action_detail/locale/de-doc.json b/setup/doctype/workflow_action_detail/locale/de-doc.json
new file mode 100644
index 00000000000..3db419a1458
--- /dev/null
+++ b/setup/doctype/workflow_action_detail/locale/de-doc.json
@@ -0,0 +1,6 @@
+{
+ "Field": "Feld",
+ "Setup": "Setup",
+ "Value": "Wert",
+ "Workflow Action Detail": "Workflow-Aktion Details"
+}
\ No newline at end of file
diff --git a/setup/doctype/workflow_action_detail/locale/pt-BR-doc.json b/setup/doctype/workflow_action_detail/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..187f25f5214
--- /dev/null
+++ b/setup/doctype/workflow_action_detail/locale/pt-BR-doc.json
@@ -0,0 +1,6 @@
+{
+ "Field": "Campo",
+ "Setup": "Configura\u00e7\u00e3o",
+ "Value": "Valor",
+ "Workflow Action Detail": "Detalhe da A\u00e7\u00e3o do Fluxo de Trabalho"
+}
\ No newline at end of file
diff --git a/setup/doctype/workflow_action_detail/locale/th-doc.json b/setup/doctype/workflow_action_detail/locale/th-doc.json
new file mode 100644
index 00000000000..3727115a26f
--- /dev/null
+++ b/setup/doctype/workflow_action_detail/locale/th-doc.json
@@ -0,0 +1,6 @@
+{
+ "Field": "\u0e2a\u0e19\u0e32\u0e21",
+ "Setup": "\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07",
+ "Value": "\u0e21\u0e39\u0e25\u0e04\u0e48\u0e32",
+ "Workflow Action Detail": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e01\u0e32\u0e23\u0e14\u0e33\u0e40\u0e19\u0e34\u0e19\u0e01\u0e32\u0e23\u0e02\u0e31\u0e49\u0e19\u0e15\u0e2d\u0e19\u0e01\u0e32\u0e23\u0e17\u0e33\u0e07\u0e32\u0e19"
+}
\ No newline at end of file
diff --git a/setup/doctype/workflow_engine/locale/de-doc.json b/setup/doctype/workflow_engine/locale/de-doc.json
new file mode 100644
index 00000000000..312ccf5d423
--- /dev/null
+++ b/setup/doctype/workflow_engine/locale/de-doc.json
@@ -0,0 +1,4 @@
+{
+ "Setup": "Setup",
+ "Workflow Engine": "Workflow Engine"
+}
\ No newline at end of file
diff --git a/setup/doctype/workflow_engine/locale/pt-BR-doc.json b/setup/doctype/workflow_engine/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..06298def528
--- /dev/null
+++ b/setup/doctype/workflow_engine/locale/pt-BR-doc.json
@@ -0,0 +1,4 @@
+{
+ "Setup": "Configura\u00e7\u00e3o",
+ "Workflow Engine": "Mecanismo do Fluxo de Trabalho"
+}
\ No newline at end of file
diff --git a/setup/doctype/workflow_engine/locale/th-doc.json b/setup/doctype/workflow_engine/locale/th-doc.json
new file mode 100644
index 00000000000..95a2e52500a
--- /dev/null
+++ b/setup/doctype/workflow_engine/locale/th-doc.json
@@ -0,0 +1,4 @@
+{
+ "Setup": "\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07",
+ "Workflow Engine": "\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e22\u0e19\u0e15\u0e4c\u0e40\u0e27\u0e34\u0e23\u0e4c\u0e01\u0e42\u0e1f\u0e25\u0e27\u0e4c"
+}
\ No newline at end of file
diff --git a/setup/doctype/workflow_rule/locale/_messages_doc.json b/setup/doctype/workflow_rule/locale/_messages_doc.json
index fbd8fd83d0b..191f1681e33 100644
--- a/setup/doctype/workflow_rule/locale/_messages_doc.json
+++ b/setup/doctype/workflow_rule/locale/_messages_doc.json
@@ -1,23 +1,23 @@
[
+ "Extra Condition",
+ "No",
"Select Form",
- "Rule Name",
"Intro HTML",
"Raise Exception",
- "Define Rule",
- "Rule Priority",
"Action Detail",
+ "Workflow Action Details",
+ "Define Rule",
+ "Active",
"Setup",
- "No",
- "Extra Condition",
"Enter message",
"Reject HTML",
- "Workflow Action Details",
- "Inactive",
"Rule Definition",
+ "Yes",
+ "Rule Name",
+ "Rule Priority",
+ "Inactive",
"Rule Status",
- "Active",
"Action html",
"Workflow Rule Details",
- "Yes",
"Workflow Rule"
]
\ No newline at end of file
diff --git a/setup/doctype/workflow_rule/locale/de-doc.json b/setup/doctype/workflow_rule/locale/de-doc.json
new file mode 100644
index 00000000000..7b5899498ac
--- /dev/null
+++ b/setup/doctype/workflow_rule/locale/de-doc.json
@@ -0,0 +1,23 @@
+{
+ "Action Detail": "Aktion Details",
+ "Action html": "Aktion html",
+ "Active": "Aktiv",
+ "Define Rule": "Definieren Rule",
+ "Enter message": "Geben Sie eine Nachricht",
+ "Extra Condition": "Zus\u00e4tzliche Zustand",
+ "Inactive": "Inaktiv",
+ "Intro HTML": "Intro HTML",
+ "No": "Auf",
+ "Raise Exception": "Raise Exception",
+ "Reject HTML": "Ablehnen HTML",
+ "Rule Definition": "Rule Definition",
+ "Rule Name": "Name der Regel",
+ "Rule Priority": "Priority Rule",
+ "Rule Status": "Rule-Status",
+ "Select Form": "W\u00e4hlen Sie Formular",
+ "Setup": "Setup",
+ "Workflow Action Details": "Workflow Action Details",
+ "Workflow Rule": "Workflow-Regel",
+ "Workflow Rule Details": "Workflow Regeldetails",
+ "Yes": "Ja"
+}
\ No newline at end of file
diff --git a/setup/doctype/workflow_rule/locale/pt-BR-doc.json b/setup/doctype/workflow_rule/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..38c04372494
--- /dev/null
+++ b/setup/doctype/workflow_rule/locale/pt-BR-doc.json
@@ -0,0 +1,23 @@
+{
+ "Action Detail": "Detalhe da a\u00e7\u00e3o",
+ "Action html": "A\u00e7\u00e3o html",
+ "Active": "Ativo",
+ "Define Rule": "Definir regra",
+ "Enter message": "Digite a mensagem",
+ "Extra Condition": "Condi\u00e7\u00e3o extra",
+ "Inactive": "Inativo",
+ "Intro HTML": "Intro HTML",
+ "No": "N\u00e3o",
+ "Raise Exception": "Levantar Exce\u00e7\u00e3o",
+ "Reject HTML": "Rejeitar HTML",
+ "Rule Definition": "Defini\u00e7\u00e3o da regra",
+ "Rule Name": "Nome da regra",
+ "Rule Priority": "Prioridade da regra",
+ "Rule Status": "Estado da regra",
+ "Select Form": "Selecione o Formul\u00e1rio",
+ "Setup": "Configura\u00e7\u00e3o",
+ "Workflow Action Details": "Detalhes da A\u00e7\u00e3o do Fluxo de Trabalho",
+ "Workflow Rule": "Regra do Fluxo de Trabalho",
+ "Workflow Rule Details": "Detalhes da Regra do Fluxo de Trabalho",
+ "Yes": "Sim"
+}
\ No newline at end of file
diff --git a/setup/doctype/workflow_rule/locale/th-doc.json b/setup/doctype/workflow_rule/locale/th-doc.json
new file mode 100644
index 00000000000..4b3a293312c
--- /dev/null
+++ b/setup/doctype/workflow_rule/locale/th-doc.json
@@ -0,0 +1,23 @@
+{
+ "Action Detail": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e01\u0e32\u0e23\u0e14\u0e33\u0e40\u0e19\u0e34\u0e19\u0e01\u0e32\u0e23",
+ "Action html": "html \u0e17\u0e35\u0e48\u0e01\u0e23\u0e30\u0e17\u0e33",
+ "Active": "\u0e04\u0e25\u0e48\u0e2d\u0e07\u0e41\u0e04\u0e25\u0e48\u0e27",
+ "Define Rule": "\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e01\u0e0e",
+ "Enter message": "\u0e1b\u0e49\u0e2d\u0e19\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21",
+ "Extra Condition": "\u0e40\u0e07\u0e37\u0e48\u0e2d\u0e19\u0e44\u0e02\u0e1e\u0e34\u0e40\u0e28\u0e29",
+ "Inactive": "\u0e40\u0e09\u0e37\u0e48\u0e2d\u0e22\u0e0a\u0e32",
+ "Intro HTML": "HTML \u0e41\u0e19\u0e30\u0e19\u0e33",
+ "No": "\u0e44\u0e21\u0e48",
+ "Raise Exception": "\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e01\u0e32\u0e23\u0e22\u0e01\u0e40\u0e27\u0e49\u0e19",
+ "Reject HTML": "\u0e1b\u0e0f\u0e34\u0e40\u0e2a\u0e18 HTML",
+ "Rule Definition": "\u0e01\u0e32\u0e23\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e01\u0e0e",
+ "Rule Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e01\u0e0e",
+ "Rule Priority": "\u0e25\u0e33\u0e14\u0e31\u0e1a\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e33\u0e04\u0e31\u0e0d\u0e02\u0e2d\u0e07\u0e01\u0e0e",
+ "Rule Status": "\u0e2a\u0e16\u0e32\u0e19\u0e30\u0e01\u0e0e",
+ "Select Form": "\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e1f\u0e2d\u0e23\u0e4c\u0e21",
+ "Setup": "\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07",
+ "Workflow Action Details": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e01\u0e32\u0e23\u0e14\u0e33\u0e40\u0e19\u0e34\u0e19\u0e01\u0e32\u0e23\u0e02\u0e31\u0e49\u0e19\u0e15\u0e2d\u0e19\u0e01\u0e32\u0e23\u0e17\u0e33\u0e07\u0e32\u0e19",
+ "Workflow Rule": "\u0e01\u0e0e\u0e40\u0e27\u0e34\u0e23\u0e4c\u0e01\u0e42\u0e1f\u0e25\u0e27\u0e4c",
+ "Workflow Rule Details": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e01\u0e0e\u0e40\u0e27\u0e34\u0e23\u0e4c\u0e01\u0e42\u0e1f\u0e25\u0e27\u0e4c",
+ "Yes": "\u0e43\u0e0a\u0e48"
+}
\ No newline at end of file
diff --git a/setup/doctype/workflow_rule_detail/locale/_messages_doc.json b/setup/doctype/workflow_rule_detail/locale/_messages_doc.json
index 70194609330..befc8b7f494 100644
--- a/setup/doctype/workflow_rule_detail/locale/_messages_doc.json
+++ b/setup/doctype/workflow_rule_detail/locale/_messages_doc.json
@@ -1,15 +1,14 @@
[
"not equal",
"Field from other forms",
- "greater than equal",
+ "Operator",
"Setup",
"No",
"equal",
- "[]",
"greater than",
"Field",
"Value",
- "Operator",
+ "greater than equal",
"Raise Exception",
"Yes",
"less than equal",
diff --git a/setup/doctype/workflow_rule_detail/locale/de-doc.json b/setup/doctype/workflow_rule_detail/locale/de-doc.json
new file mode 100644
index 00000000000..a95a89e77fe
--- /dev/null
+++ b/setup/doctype/workflow_rule_detail/locale/de-doc.json
@@ -0,0 +1,18 @@
+{
+ "Field": "Feld",
+ "Field from other forms": "Feld von anderen Formen",
+ "Message when Cond. False": "Nachricht Wenn Cond. Falsch",
+ "No": "Auf",
+ "Operator": "Operator",
+ "Raise Exception": "Raise Exception",
+ "Setup": "Setup",
+ "Value": "Wert",
+ "Workflow Rule Detail": "Workflow Rule Details",
+ "Yes": "Ja",
+ "equal": "gleich",
+ "greater than": "gr\u00f6\u00dfer als",
+ "greater than equal": "gr\u00f6\u00dfer gleich",
+ "less than": "weniger als",
+ "less than equal": "weniger als gleich",
+ "not equal": "ungleich"
+}
\ No newline at end of file
diff --git a/setup/doctype/workflow_rule_detail/locale/pt-BR-doc.json b/setup/doctype/workflow_rule_detail/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..ee1a847316d
--- /dev/null
+++ b/setup/doctype/workflow_rule_detail/locale/pt-BR-doc.json
@@ -0,0 +1,18 @@
+{
+ "Field": "Campo",
+ "Field from other forms": "Campo de outros formul\u00e1rios",
+ "Message when Cond. False": "Mensagem quando Condi\u00e7\u00e3o for Falsa",
+ "No": "N\u00e3o",
+ "Operator": "Operador",
+ "Raise Exception": "Levantar Exce\u00e7\u00e3o",
+ "Setup": "Configura\u00e7\u00e3o",
+ "Value": "Valor",
+ "Workflow Rule Detail": "Detalhe da Regra do Fluxo de Trabalho",
+ "Yes": "Sim",
+ "equal": "igual",
+ "greater than": "maior que",
+ "greater than equal": "maior ou igual",
+ "less than": "menor que",
+ "less than equal": "menor ou igual",
+ "not equal": "n\u00e3o igual"
+}
\ No newline at end of file
diff --git a/setup/doctype/workflow_rule_detail/locale/th-doc.json b/setup/doctype/workflow_rule_detail/locale/th-doc.json
new file mode 100644
index 00000000000..1ff91f70abd
--- /dev/null
+++ b/setup/doctype/workflow_rule_detail/locale/th-doc.json
@@ -0,0 +1,19 @@
+{
+ "Field": "\u0e2a\u0e19\u0e32\u0e21",
+ "Field from other forms": "\u0e40\u0e02\u0e15\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e08\u0e32\u0e01\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a\u0e2d\u0e37\u0e48\u0e19 \u0e46",
+ "Message when Cond. False": "\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e40\u0e21\u0e37\u0e48\u0e2d Cond \u0e40\u0e17\u0e47\u0e08",
+ "No": "\u0e44\u0e21\u0e48",
+ "Operator": "\u0e1c\u0e39\u0e49\u0e1b\u0e23\u0e30\u0e01\u0e2d\u0e1a\u0e01\u0e32\u0e23",
+ "Raise Exception": "\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e01\u0e32\u0e23\u0e22\u0e01\u0e40\u0e27\u0e49\u0e19",
+ "Setup": "\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07",
+ "Value": "\u0e21\u0e39\u0e25\u0e04\u0e48\u0e32",
+ "Workflow Rule Detail": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e01\u0e0e\u0e40\u0e27\u0e34\u0e23\u0e4c\u0e01\u0e42\u0e1f\u0e25\u0e27\u0e4c",
+ "Yes": "\u0e43\u0e0a\u0e48",
+ "[]": "[]",
+ "equal": "\u0e40\u0e17\u0e48\u0e32\u0e01\u0e31\u0e19",
+ "greater than": "\u0e21\u0e32\u0e01\u0e01\u0e27\u0e48\u0e32",
+ "greater than equal": "\u0e21\u0e32\u0e01\u0e01\u0e27\u0e48\u0e32\u0e2b\u0e23\u0e37\u0e2d\u0e40\u0e17\u0e48\u0e32\u0e01\u0e31\u0e1a",
+ "less than": "\u0e19\u0e49\u0e2d\u0e22\u0e01\u0e27\u0e48\u0e32",
+ "less than equal": "\u0e19\u0e49\u0e2d\u0e22\u0e01\u0e27\u0e48\u0e32\u0e2b\u0e23\u0e37\u0e2d\u0e40\u0e17\u0e48\u0e32\u0e01\u0e31\u0e1a",
+ "not equal": "\u0e44\u0e21\u0e48\u0e40\u0e17\u0e48\u0e32\u0e01\u0e31\u0e1a"
+}
\ No newline at end of file
diff --git a/setup/locale/_messages_py.json b/setup/locale/_messages_py.json
index a727ba49fe1..f41b905db6c 100644
--- a/setup/locale/_messages_py.json
+++ b/setup/locale/_messages_py.json
@@ -1,3 +1,3 @@
[
- "Please specify Default Currency in Company Master \\\t\t\tand Global Defaults"
+ "Please specify Default Currency in Company Master \\\n\t\t\tand Global Defaults"
]
\ No newline at end of file
diff --git a/setup/locale/th-py.json b/setup/locale/th-py.json
new file mode 100644
index 00000000000..fb3213c5bb4
--- /dev/null
+++ b/setup/locale/th-py.json
@@ -0,0 +1,3 @@
+{
+ "Please specify Default Currency in Company Master \\\t\t\tand Global Defaults": "\u0e42\u0e1b\u0e23\u0e14\u0e23\u0e30\u0e1a\u0e38\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19\u0e43\u0e19 \u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17 \u0e21\u0e32\u0e2a\u0e40\u0e15\u0e2d\u0e23\u0e4c \\ \u0e41\u0e25\u0e30\u0e04\u0e48\u0e32\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19\u0e17\u0e31\u0e48\u0e27\u0e42\u0e25\u0e01"
+}
\ No newline at end of file
diff --git a/setup/module_def/setup/locale/_messages_doc.json b/setup/module_def/setup/locale/_messages_doc.json
deleted file mode 100644
index 2d8698974ea..00000000000
--- a/setup/module_def/setup/locale/_messages_doc.json
+++ /dev/null
@@ -1,20 +0,0 @@
-[
- "Item Classification",
- "Webforms",
- "Modules Setup",
- "Email Settings for Outgoing and Incoming Emails.",
- "Standard Terms and Conditions that can be added to Sales and Purchases.Examples:1. Validity of the offer.1. Payment Terms (In Advance, On Credit, part advance etc).1. What is extra (or payable by the Customer).1. Safety / usage warning.1. Warranty if any.1. Returns Policy.1. Terms of shipping, if applicable.1. Ways of addressing disputes, indemnity, liability, etc.1. Address and Contact of your Company.",
- "Price List Master",
- "**Currency** Master",
- "Send automatic emails to Contacts on Submitting transactions.",
- "Setup",
- "Send regular summary reports via Email.",
- "Email settings for jobs email id \"jobs@example.com\"",
- "Email settings to extract Leads from sales email id e.g. \"sales@example.com\"",
- "Classification of Customers by region",
- "Set prefix for numbering series on your transactions",
- "All Sales Transactions can be tagged against multiple **Sales Persons** so that you can set and monitor targets.",
- "A third party distributor / dealer / commission agent / affiliate / reseller who sells the companies products for a commission.",
- "Permission Engine",
- "Legal Entity / Subsidiary with a separate Chart of Accounts belonging to the Organization."
-]
\ No newline at end of file
diff --git a/setup/module_def/setup/locale/ar-doc.json b/setup/module_def/setup/locale/ar-doc.json
deleted file mode 100644
index f0cce93f70f..00000000000
--- a/setup/module_def/setup/locale/ar-doc.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "**Currency** Master": "\u0627\u0644\u0639\u0645\u0644\u0629 ** ** \u0645\u0627\u062c\u0633\u062a\u064a\u0631",
- "A third party distributor / dealer / commission agent / affiliate / reseller who sells the companies products for a commission.": "A \u0627\u0644\u0645\u0648\u0632\u0639 \u0637\u0631\u0641 \u062b\u0627\u0644\u062b / \u062a\u0627\u062c\u0631 / \u0639\u0645\u0648\u0644\u0629 \u0627\u0644\u0648\u0643\u064a\u0644 / \u0627\u0644\u062a\u0627\u0628\u0639\u0629 / \u0628\u0627\u0626\u0639 \u0627\u0644\u062a\u062c\u0632\u0626\u0629 \u0627\u0644\u0630\u064a \u064a\u0628\u064a\u0639 \u0645\u0646\u062a\u062c\u0627\u062a \u0634\u0631\u0643\u0627\u062a \u0645\u0642\u0627\u0628\u0644 \u0639\u0645\u0648\u0644\u0629.",
- "All Sales Transactions can be tagged against multiple **Sales Persons** so that you can set and monitor targets.": "\u064a\u0645\u0643\u0646 \u0627\u0644\u0645\u0648\u0633\u0648\u0645\u0629 \u062c\u0645\u064a\u0639 \u0645\u0639\u0627\u0645\u0644\u0627\u062a \u0627\u0644\u0628\u064a\u0639 \u0645\u062a\u0639\u062f\u062f\u0629 \u0636\u062f \u0627\u0644\u0623\u0634\u062e\u0627\u0635 \u0627\u0644\u0645\u0628\u064a\u0639\u0627\u062a ** ** \u0628\u062d\u064a\u062b \u064a\u0645\u0643\u0646\u0643 \u062a\u0639\u064a\u064a\u0646 \u0648\u0631\u0635\u062f \u0627\u0644\u0623\u0647\u062f\u0627\u0641.",
- "Classification of Customers by region": "\u062a\u0635\u0646\u064a\u0641 \u0627\u0644\u0639\u0645\u0644\u0627\u0621 \u062d\u0633\u0628 \u0627\u0644\u0645\u0646\u0637\u0642\u0629",
- "Email Settings for Outgoing and Incoming Emails.": "\u0625\u0639\u062f\u0627\u062f\u0627\u062a \u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a \u0644\u0631\u0633\u0627\u0626\u0644 \u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a \u0627\u0644\u0635\u0627\u062f\u0631\u0629 \u0648\u0627\u0644\u0648\u0627\u0631\u062f\u0629.",
- "Email settings for jobs email id \"jobs@example.com\"": "\u0625\u0639\u062f\u0627\u062f\u0627\u062a \u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a \u0644\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a \u0648\u0638\u0627\u0626\u0641 "jobs@example.com" \u0645\u0639\u0631\u0641",
- "Email settings to extract Leads from sales email id e.g. \"sales@example.com\"": "\u0625\u0639\u062f\u0627\u062f\u0627\u062a \u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a \u0644\u0627\u0633\u062a\u062e\u0631\u0627\u062c \u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a \u0645\u0646 \u0639\u0631\u0648\u0636 \u0627\u0644\u0645\u0628\u064a\u0639\u0627\u062a "sales@example.com" \u0645\u0639\u0631\u0641 \u0639\u0644\u0649 \u0633\u0628\u064a\u0644 \u0627\u0644\u0645\u062b\u0627\u0644",
- "Item Classification": "\u0627\u0644\u0628\u0646\u062f \u0627\u0644\u062a\u0635\u0646\u064a\u0641",
- "Legal Entity / Subsidiary with a separate Chart of Accounts belonging to the Organization.": "\u0627\u0644\u0643\u064a\u0627\u0646 \u0627\u0644\u0642\u0627\u0646\u0648\u0646\u064a / \u0627\u0644\u0641\u0631\u0639\u064a\u0629 \u0645\u0639 \u062a\u062e\u0637\u064a\u0637 \u0645\u0646\u0641\u0635\u0644\u0629 \u0644\u0644\u062d\u0633\u0627\u0628\u0627\u062a \u062a\u0627\u0628\u0639\u0629 \u0644\u0644\u0645\u0646\u0638\u0645\u0629.",
- "Modules Setup": "\u0648\u062d\u062f\u0627\u062a \u0627\u0644\u0625\u0639\u062f\u0627\u062f",
- "Permission Engine": "\u0625\u0630\u0646 \u0627\u0644\u0645\u062d\u0631\u0643",
- "Price List Master": "\u0642\u0627\u0626\u0645\u0629 \u0627\u0644\u0623\u0633\u0639\u0627\u0631 \u0645\u0627\u062c\u0633\u062a\u064a\u0631",
- "Send automatic emails to Contacts on Submitting transactions.": "\u0625\u0631\u0633\u0627\u0644 \u0631\u0633\u0627\u0626\u0644 \u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a \u062a\u0644\u0642\u0627\u0626\u064a\u0627 \u0625\u0644\u0649 \u062c\u0647\u0627\u062a \u0627\u0644\u0627\u062a\u0635\u0627\u0644 \u0639\u0644\u0649 \u062a\u0642\u062f\u064a\u0645 \u0627\u0644\u0645\u0639\u0627\u0645\u0644\u0627\u062a.",
- "Send regular summary reports via Email.": "\u0625\u0631\u0633\u0627\u0644 \u062a\u0642\u0627\u0631\u064a\u0631 \u0645\u0648\u062c\u0632\u0629 \u0645\u0646\u062a\u0638\u0645\u0629 \u0639\u0646 \u0637\u0631\u064a\u0642 \u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a.",
- "Set prefix for numbering series on your transactions": "\u062a\u0639\u064a\u064a\u0646 \u0628\u0627\u062f\u0626\u0629 \u0644\u062a\u0631\u0642\u064a\u0645 \u0627\u0644\u0633\u0644\u0633\u0644\u0629 \u0639\u0644\u0649 \u0627\u0644\u0645\u0639\u0627\u0645\u0644\u0627\u062a \u0627\u0644\u062e\u0627\u0635\u0629 \u0628\u0643",
- "Setup": "\u0627\u0644\u0625\u0639\u062f\u0627\u062f",
- "Standard Terms and Conditions that can be added to Sales and Purchases.Examples:1. Validity of the offer.1. Payment Terms (In Advance, On Credit, part advance etc).1. What is extra (or payable by the Customer).1. Safety / usage warning.1. Warranty if any.1. Returns Policy.1. Terms of shipping, if applicable.1. Ways of addressing disputes, indemnity, liability, etc.1. Address and Contact of your Company.": "\u0627\u0644\u0628\u0646\u0648\u062f \u0648\u0627\u0644\u0634\u0631\u0648\u0637 \u0627\u0644\u0642\u064a\u0627\u0633\u064a\u0629 \u0627\u0644\u062a\u064a \u064a\u0645\u0643\u0646 \u0623\u0646 \u062a\u0636\u0627\u0641 \u0625\u0644\u0649 \u0627\u0644\u0645\u0628\u064a\u0639\u0627\u062a \u0648Purchases.Examples: 1. \u0635\u062d\u0629 offer.1. \u0634\u0631\u0648\u0637 \u0627\u0644\u062f\u0641\u0639 (\u0645\u0642\u062f\u0645\u0627\u060c \u0639\u0644\u0649 \u0627\u0644\u0627\u0626\u062a\u0645\u0627\u0646\u060c \u0627\u0644\u062e \u062c\u0632\u0621 \u0645\u0633\u0628\u0642\u0627) .1. \u0645\u0627 \u0647\u0648 \u0625\u0636\u0627\u0641\u064a (\u0623\u0648 \u062a\u062f\u0641\u0639 \u0645\u0646 \u0642\u0628\u0644 \u0627\u0644\u0639\u0645\u064a\u0644) .1. \u0627\u0644\u0633\u0644\u0627\u0645\u0629 / \u0627\u0633\u062a\u062e\u062f\u0627\u0645 warning.1. \u0627\u0644\u0636\u0645\u0627\u0646 \u0625\u0630\u0627 any.1. \u064a\u0639\u0648\u062f Policy.1. \u062d\u064a\u062b \u0627\u0644\u0634\u062d\u0646\u060c \u0625\u0630\u0627 applicable.1. \u0637\u0631\u0642 \u0645\u0639\u0627\u0644\u062c\u0629 \u0627\u0644\u0646\u0632\u0627\u0639\u0627\u062a\u060c \u0648\u062a\u0639\u0648\u064a\u0636\u060c \u0648\u0627\u0644\u0645\u0633\u0624\u0648\u0644\u064a\u0629\u060c etc.1. \u0648\u062a\u0646\u0627\u0648\u0644 \u0627\u0644\u0627\u062a\u0635\u0627\u0644 \u0644\u0634\u0631\u0643\u062a\u0643.",
- "Webforms": "Webforms"
-}
\ No newline at end of file
diff --git a/setup/module_def/setup/locale/es-doc.json b/setup/module_def/setup/locale/es-doc.json
deleted file mode 100644
index 49bdd9423c5..00000000000
--- a/setup/module_def/setup/locale/es-doc.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "**Currency** Master": "Moneda ** ** Maestro",
- "A third party distributor / dealer / commission agent / affiliate / reseller who sells the companies products for a commission.": "Un distribuidor tercero / dealer / comisionista / filial / distribuidor que vende los productos de las empresas de una comisi\u00f3n.",
- "All Sales Transactions can be tagged against multiple **Sales Persons** so that you can set and monitor targets.": "Todas las transacciones de ventas pueden ser marcados en contra de varias personas de ventas ** ** por lo que puede establecer y supervisar los objetivos.",
- "Classification of Customers by region": "Clasificaci\u00f3n de los clientes por regi\u00f3n",
- "Email Settings for Outgoing and Incoming Emails.": "Configuraci\u00f3n del correo electr\u00f3nico para mensajes de correo electr\u00f3nico entrantes y salientes.",
- "Email settings for jobs email id \"jobs@example.com\"": "Configuraci\u00f3n del correo electr\u00f3nico para los trabajos de correo electr\u00f3nico id "jobs@example.com"",
- "Email settings to extract Leads from sales email id e.g. \"sales@example.com\"": "Configuraci\u00f3n del correo electr\u00f3nico para extraer Leads de ventas email id por ejemplo, "sales@example.com"",
- "Item Classification": "Art\u00edculo clasificaci\u00f3n",
- "Legal Entity / Subsidiary with a separate Chart of Accounts belonging to the Organization.": "Entidad Legal / auxiliar con un gr\u00e1fico separado de las cuentas pertenecientes a la Organizaci\u00f3n.",
- "Modules Setup": "M\u00f3dulos de configuraci\u00f3n",
- "Permission Engine": "Permiso de motor",
- "Price List Master": "Precio de Lista maestra",
- "Send automatic emails to Contacts on Submitting transactions.": "Enviar correos electr\u00f3nicos autom\u00e1ticos en Contactos de Env\u00edo de transacciones.",
- "Send regular summary reports via Email.": "Enviar informes resumidos peri\u00f3dicos por correo electr\u00f3nico.",
- "Set prefix for numbering series on your transactions": "Establecer prefijo de numeraci\u00f3n de serie en sus transacciones",
- "Setup": "Disposici\u00f3n",
- "Standard Terms and Conditions that can be added to Sales and Purchases.Examples:1. Validity of the offer.1. Payment Terms (In Advance, On Credit, part advance etc).1. What is extra (or payable by the Customer).1. Safety / usage warning.1. Warranty if any.1. Returns Policy.1. Terms of shipping, if applicable.1. Ways of addressing disputes, indemnity, liability, etc.1. Address and Contact of your Company.": "T\u00e9rminos y condiciones generales que se pueden a\u00f1adir a las ventas y Purchases.Examples: 1. Validez de la offer.1. Condiciones de pago (por adelantado, el cr\u00e9dito, etc adelantado parte) .1. \u00bfQu\u00e9 es extra (o por pagar por el Cliente) .1. Seguridad / uso warning.1. Garant\u00eda si any.1. Devoluciones Policy.1. Condiciones de env\u00edo, si applicable.1. Formas de abordar los conflictos, indemnizaci\u00f3n, responsabilidad, etc.1. Direcci\u00f3n y Contacto de la Compa\u00f1\u00eda.",
- "Webforms": "WebForms"
-}
\ No newline at end of file
diff --git a/setup/module_def/setup/locale/fr-doc.json b/setup/module_def/setup/locale/fr-doc.json
deleted file mode 100644
index ad70b3b03df..00000000000
--- a/setup/module_def/setup/locale/fr-doc.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "**Currency** Master": "Monnaie ** ** Ma\u00eetre",
- "A third party distributor / dealer / commission agent / affiliate / reseller who sells the companies products for a commission.": "Un tiers distributeur / revendeur / commissionnaire / filiale / distributeur vend les produits de l'entreprise pour une commission.",
- "All Sales Transactions can be tagged against multiple **Sales Persons** so that you can set and monitor targets.": "Toutes les op\u00e9rations de vente peuvent \u00eatre marqu\u00e9s contre plusieurs personnes ** ** Ventes de sorte que vous pouvez d\u00e9finir et suivre les objectifs.",
- "Classification of Customers by region": "Classification des clients par r\u00e9gion",
- "Email Settings for Outgoing and Incoming Emails.": "Param\u00e8tres de messagerie pour courriels entrants et sortants.",
- "Email settings for jobs email id \"jobs@example.com\"": "Param\u00e8tres par email pour Emploi email id "jobs@example.com"",
- "Email settings to extract Leads from sales email id e.g. \"sales@example.com\"": "Param\u00e8tres de messagerie pour extraire des ventes Leads e-mail par exemple id "sales@example.com"",
- "Item Classification": "Classification d'article",
- "Legal Entity / Subsidiary with a separate Chart of Accounts belonging to the Organization.": "Entit\u00e9 juridique / Filiale d'une carte distincte des comptes appartenant \u00e0 l'Organisation.",
- "Modules Setup": "Configuration des modules",
- "Permission Engine": "Moteur autorisation",
- "Price List Master": "Ma\u00eetre Liste des Prix",
- "Send automatic emails to Contacts on Submitting transactions.": "Envoyer des emails automatiques vers les Contacts sur Envoi transactions.",
- "Send regular summary reports via Email.": "Envoyer des rapports de synth\u00e8se r\u00e9guliers par e-mail.",
- "Set prefix for numbering series on your transactions": "D\u00e9finir le pr\u00e9fixe de num\u00e9rotation des s\u00e9ries sur vos transactions",
- "Setup": "Installation",
- "Standard Terms and Conditions that can be added to Sales and Purchases.Examples:1. Validity of the offer.1. Payment Terms (In Advance, On Credit, part advance etc).1. What is extra (or payable by the Customer).1. Safety / usage warning.1. Warranty if any.1. Returns Policy.1. Terms of shipping, if applicable.1. Ways of addressing disputes, indemnity, liability, etc.1. Address and Contact of your Company.": "Conditions G\u00e9n\u00e9rales de Vente qui peut \u00eatre ajout\u00e9 aux ventes et Purchases.Examples: 1. Validit\u00e9 de la offer.1. Conditions de paiement (\u00e0 l'avance, de cr\u00e9dit, etc avance une partie) .1. Quel est extra (ou payable par le client) .1. S\u00e9curit\u00e9 / usage warning.1. Garantie si any.1. Retourne Policy.1. Conditions d'exp\u00e9dition, le cas applicable.1. Les moyens de r\u00e9gler les diff\u00e9rends, indemnisation, responsabilit\u00e9, etc.1. Adresse et coordonn\u00e9es de votre entreprise.",
- "Webforms": "Webforms"
-}
\ No newline at end of file
diff --git a/setup/module_def/setup/locale/hi-doc.json b/setup/module_def/setup/locale/hi-doc.json
deleted file mode 100644
index 8d9f2ee0560..00000000000
--- a/setup/module_def/setup/locale/hi-doc.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "**Currency** Master": "** \u092e\u0941\u0926\u094d\u0930\u093e ** \u092e\u093e\u0938\u094d\u091f\u0930",
- "A third party distributor / dealer / commission agent / affiliate / reseller who sells the companies products for a commission.": "\u090f\u0915 \u0924\u0940\u0938\u0930\u0947 \u092a\u0915\u094d\u0937 \u0915\u0947 \u0935\u093f\u0924\u0930\u0915 / \u0921\u0940\u0932\u0930 / \u0915\u092e\u0940\u0936\u0928 \u090f\u091c\u0947\u0902\u091f / \u0938\u0939\u092c\u0926\u094d\u0927 / \u092a\u0941\u0928\u0930\u094d\u0935\u093f\u0915\u094d\u0930\u0947\u0924\u093e \u091c\u094b \u090f\u0915 \u0906\u092f\u094b\u0917 \u0915\u0947 \u0932\u093f\u090f \u0915\u0902\u092a\u0928\u093f\u092f\u094b\u0902 \u0915\u0947 \u0909\u0924\u094d\u092a\u093e\u0926\u094b\u0902 \u0915\u094b \u092c\u0947\u091a\u0924\u093e \u0939\u0948.",
- "All Sales Transactions can be tagged against multiple **Sales Persons** so that you can set and monitor targets.": "\u0938\u092d\u0940 \u092c\u093f\u0915\u094d\u0930\u0940 \u0932\u0947\u0928\u0926\u0947\u0928 \u0915\u0908 ** \u092c\u093f\u0915\u094d\u0930\u0940 \u0935\u094d\u092f\u0915\u094d\u0924\u093f\u092f\u094b\u0902 ** \u0907\u0924\u0928\u0940 \u0939\u0948 \u0915\u093f \u0906\u092a \u0938\u0947\u091f \u0914\u0930 \u0932\u0915\u094d\u0937\u094d\u092f\u094b\u0902 \u0915\u0940 \u0928\u093f\u0917\u0930\u093e\u0928\u0940 \u0915\u0930 \u0938\u0915\u0924\u0947 \u0939\u0948\u0902 \u0915\u0947 \u0916\u093f\u0932\u093e\u092b \u091a\u093f\u0939\u094d\u0928\u093f\u0924 \u0915\u093f\u092f\u093e \u091c\u093e \u0938\u0915\u0924\u093e \u0939\u0948.",
- "Classification of Customers by region": "\u0917\u094d\u0930\u093e\u0939\u0915 \u0915\u0947 \u0915\u094d\u0937\u0947\u0924\u094d\u0930 \u0926\u094d\u0935\u093e\u0930\u093e \u0935\u0930\u094d\u0917\u0940\u0915\u0930\u0923",
- "Email Settings for Outgoing and Incoming Emails.": "\u0928\u093f\u0935\u0930\u094d\u0924\u092e\u093e\u0928 \u0914\u0930 \u0906\u0928\u0947 \u0935\u093e\u0932\u0940 \u0908\u092e\u0947\u0932 \u0915\u0947 \u0932\u093f\u090f \u0908\u092e\u0947\u0932 \u0938\u0947\u091f\u093f\u0902\u0917\u094d\u0938.",
- "Email settings for jobs email id \"jobs@example.com\"": "\u0928\u094c\u0915\u0930\u093f\u092f\u093e\u0901 \u0908\u092e\u0947\u0932 \u0906\u0908\u0921\u0940 "jobs@example.com" \u0915\u0947 \u0932\u093f\u090f \u0908\u092e\u0947\u0932 \u0938\u0947\u091f\u093f\u0902\u0917\u094d\u0938",
- "Email settings to extract Leads from sales email id e.g. \"sales@example.com\"": "\u0908\u092e\u0947\u0932 \u0938\u0947\u091f\u093f\u0902\u0917\u094d\u0938 \u092c\u093f\u0915\u094d\u0930\u0940 \u0908\u092e\u0947\u0932 \u0906\u0908\u0921\u0940 \u091c\u0948\u0938\u0947 "sales@example.com \u0938\u0947 \u0938\u0941\u0930\u093e\u0917 \u0928\u093f\u0915\u093e\u0932\u0928\u0947 \u0915\u0947 \u0932\u093f\u090f",
- "Item Classification": "\u0906\u0907\u091f\u092e \u0935\u0930\u094d\u0917\u0940\u0915\u0930\u0923",
- "Legal Entity / Subsidiary with a separate Chart of Accounts belonging to the Organization.": "\u0915\u093e\u0928\u0942\u0928\u0940 \u0938\u0902\u0917\u0920\u0928 \u0938\u0947 \u0938\u0902\u092c\u0902\u0927\u093f\u0924 \u0916\u093e\u0924\u094b\u0902 \u0915\u0940 \u090f\u0915 \u0905\u0932\u0917 \u091a\u093e\u0930\u094d\u091f \u0915\u0947 \u0938\u093e\u0925 \u0907\u0915\u093e\u0908 / \u0938\u0939\u093e\u092f\u0915.",
- "Modules Setup": "\u092e\u0949\u0921\u094d\u092f\u0942\u0932 \u0938\u0947\u091f\u0905\u092a",
- "Permission Engine": "\u0905\u0928\u0941\u092e\u0924\u093f \u0907\u0902\u091c\u0928",
- "Price List Master": "\u092e\u0942\u0932\u094d\u092f \u0938\u0942\u091a\u0940 \u092e\u093e\u0938\u094d\u091f\u0930",
- "Send automatic emails to Contacts on Submitting transactions.": "\u0932\u0947\u0928\u0926\u0947\u0928 \u092d\u0947\u091c\u0928\u0947 \u092a\u0930 \u0938\u0902\u092a\u0930\u094d\u0915 \u0915\u0930\u0928\u0947 \u0915\u0947 \u0932\u093f\u090f \u0938\u094d\u0935\u0924: \u0908\u092e\u0947\u0932 \u092d\u0947\u091c\u0947\u0902.",
- "Send regular summary reports via Email.": "\u0908\u092e\u0947\u0932 \u0915\u0947 \u092e\u093e\u0927\u094d\u092f\u092e \u0938\u0947 \u0928\u093f\u092f\u092e\u093f\u0924 \u0930\u0942\u092a \u0938\u0947 \u0938\u093e\u0930\u093e\u0902\u0936 \u0930\u093f\u092a\u094b\u0930\u094d\u091f \u092d\u0947\u091c\u0947\u0902.",
- "Set prefix for numbering series on your transactions": "\u0905\u092a\u0928\u0947 \u0932\u0947\u0928\u0926\u0947\u0928 \u092a\u0930 \u0936\u094d\u0930\u0943\u0902\u0916\u0932\u093e \u0928\u0902\u092c\u0930\u093f\u0902\u0917 \u0915\u0947 \u0932\u093f\u090f \u0909\u092a\u0938\u0930\u094d\u0917 \u0938\u0947\u091f",
- "Setup": "\u0935\u094d\u092f\u0935\u0938\u094d\u0925\u093e",
- "Standard Terms and Conditions that can be added to Sales and Purchases.Examples:1. Validity of the offer.1. Payment Terms (In Advance, On Credit, part advance etc).1. What is extra (or payable by the Customer).1. Safety / usage warning.1. Warranty if any.1. Returns Policy.1. Terms of shipping, if applicable.1. Ways of addressing disputes, indemnity, liability, etc.1. Address and Contact of your Company.": "1: \u092e\u093e\u0928\u0915 \u0928\u093f\u092f\u092e\u094b\u0902 \u0914\u0930 \u0936\u0930\u094d\u0924\u094b\u0902 \u0915\u093f \u092c\u093f\u0915\u094d\u0930\u0940 \u0914\u0930 Purchases.Examples \u0915\u0947 \u0932\u093f\u090f \u091c\u094b\u0921\u093c\u093e \u091c\u093e \u0938\u0915\u0924\u093e \u0939\u0948. Offer.1 \u0915\u0940 \u0935\u0948\u0927\u0924\u093e. \u092d\u0941\u0917\u0924\u093e\u0928 (\u090f\u0921\u0935\u093e\u0902\u0938 \u092e\u0947\u0902, \u0915\u094d\u0930\u0947\u0921\u093f\u091f, \u092d\u093e\u0917 \u0905\u0917\u094d\u0930\u093f\u092e \u0906\u0926\u093f) \u0936\u0930\u094d\u0924\u0947\u0902 .1. \u0915\u094d\u092f\u093e (\u092f\u093e \u0917\u094d\u0930\u093e\u0939\u0915 \u0926\u094d\u0935\u093e\u0930\u093e \u0926\u0947\u092f) \u0905\u0924\u093f\u0930\u093f\u0915\u094d\u0924 .1 \u0939\u0948. / \u0938\u0941\u0930\u0915\u094d\u0937\u093e warning.1 \u0909\u092a\u092f\u094b\u0917. \u0935\u093e\u0930\u0902\u091f\u0940 \u0905\u0917\u0930 any.1. Policy.1 \u0926\u0947\u0924\u093e \u0939\u0948. \u0936\u093f\u092a\u093f\u0902\u0917 \u0915\u0947 applicable.1 \u0905\u0917\u0930 \u0936\u0930\u094d\u0924\u0947\u0902. \u0935\u093f\u0935\u093e\u0926\u094b\u0902 \u0915\u094b \u0938\u0902\u092c\u094b\u0927\u093f\u0924 \u0915\u0930\u0928\u0947 \u0915\u0947 \u0924\u0930\u0940\u0915\u0947, \u0915\u094d\u0937\u0924\u093f\u092a\u0942\u0930\u094d\u0924\u093f, \u0926\u093e\u092f\u093f\u0924\u094d\u0935, etc.1. \u092a\u0924\u093e \u0939\u0948 \u0914\u0930 \u0905\u092a\u0928\u0940 \u0915\u0902\u092a\u0928\u0940 \u0915\u0947 \u0938\u0902\u092a\u0930\u094d\u0915 \u0915\u0930\u0947\u0902.",
- "Webforms": "WebForms"
-}
\ No newline at end of file
diff --git a/setup/module_def/setup/locale/hr-doc.json b/setup/module_def/setup/locale/hr-doc.json
deleted file mode 100644
index 3ce39acb27e..00000000000
--- a/setup/module_def/setup/locale/hr-doc.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "**Currency** Master": "Valuta ** ** Master",
- "A third party distributor / dealer / commission agent / affiliate / reseller who sells the companies products for a commission.": "Tre\u0107a strana distributer / prodava\u010d / komisionar / suradnik / prodava\u010d koji prodaje tvrtke proizvode za proviziju.",
- "All Sales Transactions can be tagged against multiple **Sales Persons** so that you can set and monitor targets.": "Sve transakcije prodaje mogu biti ozna\u010dene protiv vi\u0161e osoba ** prodajnim **, tako da mo\u017eete postaviti i pratiti ciljeve.",
- "Classification of Customers by region": "Klasifikacija kupaca po regiji",
- "Email Settings for Outgoing and Incoming Emails.": "Postavke e-po\u0161te za odlazne i dolazne e-po\u0161te.",
- "Email settings for jobs email id \"jobs@example.com\"": "E-mail postavke za poslove email id "jobs@example.com"",
- "Email settings to extract Leads from sales email id e.g. \"sales@example.com\"": "E-mail postavke za izdvajanje vodi od prodaje email id npr. "sales@example.com"",
- "Item Classification": "Stavka klasifikacija",
- "Legal Entity / Subsidiary with a separate Chart of Accounts belonging to the Organization.": "Pravna osoba / Podru\u017enica s odvojenim kontnom planu pripadaju organizaciji.",
- "Modules Setup": "Moduli za postavljanje",
- "Permission Engine": "Dopu\u0161tenje motora",
- "Price List Master": "Cjenik Master",
- "Send automatic emails to Contacts on Submitting transactions.": "Po\u0161alji automatske poruke u Kontakte o podno\u0161enju transakcije.",
- "Send regular summary reports via Email.": "Po\u0161alji redovite sa\u017eetak izvje\u0161\u0107a putem e-po\u0161te.",
- "Set prefix for numbering series on your transactions": "Postavite prefiks za numeriranje niza na svoje transakcije",
- "Setup": "Postavljanje",
- "Standard Terms and Conditions that can be added to Sales and Purchases.Examples:1. Validity of the offer.1. Payment Terms (In Advance, On Credit, part advance etc).1. What is extra (or payable by the Customer).1. Safety / usage warning.1. Warranty if any.1. Returns Policy.1. Terms of shipping, if applicable.1. Ways of addressing disputes, indemnity, liability, etc.1. Address and Contact of your Company.": "Standardni uvjeti da se mo\u017ee dodati prodaje i Purchases.Examples: 1. Valjanost offer.1. Uvjeti pla\u0107anja (unaprijed, na kredit, dio unaprijed i sl) 0,1. \u0160to je ekstra (ili pla\u0107a kupac) 0,1. Sigurnost / kori\u0161tenje warning.1. Jamstvo ako any.1. Vra\u0107a Policy.1. Uvjeti shipping, ako applicable.1. Na\u010dinima rje\u0161avanja sporova, od\u0161teta, odgovornost, etc.1. Adresu i kontakt va\u0161e tvrtke.",
- "Webforms": "Web-obrasci"
-}
\ No newline at end of file
diff --git a/setup/module_def/setup/locale/nl-doc.json b/setup/module_def/setup/locale/nl-doc.json
deleted file mode 100644
index 9d5968238b7..00000000000
--- a/setup/module_def/setup/locale/nl-doc.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "**Currency** Master": "** Valuta ** Master",
- "A third party distributor / dealer / commission agent / affiliate / reseller who sells the companies products for a commission.": "Een derde distributeur / dealer / commissionair / affiliate / reseller die verkoopt de bedrijven producten voor een commissie.",
- "All Sales Transactions can be tagged against multiple **Sales Persons** so that you can set and monitor targets.": "All Sales Transacties kunnen worden gelabeld tegen meerdere ** Sales Personen **, zodat u kunt instellen en bewaken doelstellingen.",
- "Classification of Customers by region": "Indeling van klanten per regio",
- "Email Settings for Outgoing and Incoming Emails.": "E-mail Instellingen voor uitgaande en inkomende e-mails.",
- "Email settings for jobs email id \"jobs@example.com\"": "E-mail instellingen voor banen e-id "jobs@example.com"",
- "Email settings to extract Leads from sales email id e.g. \"sales@example.com\"": "E-mail instellingen voor Leads uit de verkoop e-id bijvoorbeeld "sales@example.com" extract",
- "Item Classification": "Item Classificatie",
- "Legal Entity / Subsidiary with a separate Chart of Accounts belonging to the Organization.": "Juridische entiteit / dochteronderneming met een aparte Chart of Accounts die behoren tot de Organisatie.",
- "Modules Setup": "Modules Setup",
- "Permission Engine": "Toestemming Engine",
- "Price List Master": "Prijslijst Master",
- "Send automatic emails to Contacts on Submitting transactions.": "Stuur automatische e-mails naar Contacten op Indienen van transacties.",
- "Send regular summary reports via Email.": "Stuur regelmatig beknopte verslagen via e-mail.",
- "Set prefix for numbering series on your transactions": "Stel prefix voor het nummeren van serie over uw transacties",
- "Setup": "Setup",
- "Standard Terms and Conditions that can be added to Sales and Purchases.Examples:1. Validity of the offer.1. Payment Terms (In Advance, On Credit, part advance etc).1. What is extra (or payable by the Customer).1. Safety / usage warning.1. Warranty if any.1. Returns Policy.1. Terms of shipping, if applicable.1. Ways of addressing disputes, indemnity, liability, etc.1. Address and Contact of your Company.": "Algemene Voorwaarden die kunnen worden toegevoegd aan Verkoop en Purchases.Examples: 1. Geldigheid van de offer.1. Betalingscondities (In Advance, op krediet, een deel vooraf enz.) .1. Wat is extra (of ten laste van de Klant) .1. Veiligheid / gebruik warning.1. Garantie indien any.1. Retourneren Policy.1. Voorwaarden voor de scheepvaart, indien applicable.1. Manieren om geschillen, schadevergoeding, aansprakelijkheid, etc.1. Adres en Contact van uw Bedrijf.",
- "Webforms": "Webformulieren"
-}
\ No newline at end of file
diff --git a/setup/module_def/setup/locale/pt-doc.json b/setup/module_def/setup/locale/pt-doc.json
deleted file mode 100644
index 9cbe0c29dba..00000000000
--- a/setup/module_def/setup/locale/pt-doc.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "**Currency** Master": "Hoje ** ** Mestre",
- "A third party distributor / dealer / commission agent / affiliate / reseller who sells the companies products for a commission.": "Um distribuidor de terceiros revendedor / / comiss\u00e3o do agente de afiliados / / revendedor que vende os produtos para empresas de uma comiss\u00e3o.",
- "All Sales Transactions can be tagged against multiple **Sales Persons** so that you can set and monitor targets.": "Todas as transa\u00e7\u00f5es de vendas pode ser marcado contra diversas Pessoas ** ** vendas de modo que voc\u00ea pode definir e monitorar metas.",
- "Classification of Customers by region": "Classifica\u00e7\u00e3o de clientes por regi\u00e3o",
- "Email Settings for Outgoing and Incoming Emails.": "Configura\u00e7\u00f5es de e-mail para e-mails enviados e recebidos.",
- "Email settings for jobs email id \"jobs@example.com\"": "Configura\u00e7\u00f5es de e-mail para e-mail empregos id "jobs@example.com"",
- "Email settings to extract Leads from sales email id e.g. \"sales@example.com\"": "Configura\u00e7\u00f5es de e-mail para extrair Leads de vendas de e-mail, por exemplo ID "sales@example.com"",
- "Item Classification": "Classifica\u00e7\u00e3o item",
- "Legal Entity / Subsidiary with a separate Chart of Accounts belonging to the Organization.": "Pessoa Jur\u00eddica / Subsidi\u00e1ria com um gr\u00e1fico separado de Contas pertencentes \u00e0 Organiza\u00e7\u00e3o.",
- "Modules Setup": "Instala\u00e7\u00e3o M\u00f3dulos",
- "Permission Engine": "Motor permiss\u00e3o",
- "Price List Master": "Mestre Lista de Pre\u00e7os",
- "Send automatic emails to Contacts on Submitting transactions.": "Enviar e-mails autom\u00e1ticos para Contatos no Submetendo transa\u00e7\u00f5es.",
- "Send regular summary reports via Email.": "Enviar relat\u00f3rios resumidos regulares via e-mail.",
- "Set prefix for numbering series on your transactions": "Definir prefixo para numera\u00e7\u00e3o de s\u00e9rie em suas transa\u00e7\u00f5es",
- "Setup": "Instala\u00e7\u00e3o",
- "Standard Terms and Conditions that can be added to Sales and Purchases.Examples:1. Validity of the offer.1. Payment Terms (In Advance, On Credit, part advance etc).1. What is extra (or payable by the Customer).1. Safety / usage warning.1. Warranty if any.1. Returns Policy.1. Terms of shipping, if applicable.1. Ways of addressing disputes, indemnity, liability, etc.1. Address and Contact of your Company.": "Termos e Condi\u00e7\u00f5es Padr\u00e3o que pode ser adicionado para Vendas e Purchases.Examples: 1. Validade do offer.1. Condi\u00e7\u00f5es de pagamento (adiantado, no cr\u00e9dito etc anteced\u00eancia, parte) 0,1. O que \u00e9 muito (ou a pagar pelo Cliente) .1. Seguran\u00e7a / uso warning.1. Garantia se any.1. Retorna Policy.1. Condi\u00e7\u00f5es de entrega, se applicable.1. Formas de disputas de endere\u00e7amento, indeniza\u00e7\u00e3o, responsabilidade, etc.1. Endere\u00e7o e contato da sua empresa.",
- "Webforms": "Webforms"
-}
\ No newline at end of file
diff --git a/setup/module_def/setup/locale/sr-doc.json b/setup/module_def/setup/locale/sr-doc.json
deleted file mode 100644
index 493df09a5d8..00000000000
--- a/setup/module_def/setup/locale/sr-doc.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "**Currency** Master": "** ** \u041c\u0430\u0458\u0441\u0442\u043e\u0440 \u0432\u0430\u043b\u0443\u0442\u0430",
- "A third party distributor / dealer / commission agent / affiliate / reseller who sells the companies products for a commission.": "\u0422\u0440\u0435\u045b\u0430 \u0441\u0442\u0440\u0430\u043d\u043a\u0430 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0435\u0440 / \u0434\u0438\u043b\u0435\u0440 / \u0437\u0430\u0441\u0442\u0443\u043f\u043d\u0438\u043a / \u0430\u0444\u0444\u0438\u043b\u0438\u0430\u0442\u0435 / \u043f\u0440\u043e\u0434\u0430\u0432\u0430\u0446 \u043a\u043e\u0458\u0438 \u043f\u0440\u043e\u0434\u0430\u0458\u0435 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0458\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0435 \u0437\u0430 \u043f\u0440\u043e\u0432\u0438\u0437\u0438\u0458\u0443.",
- "All Sales Transactions can be tagged against multiple **Sales Persons** so that you can set and monitor targets.": "\u0421\u0432\u0435 \u043f\u0440\u043e\u0434\u0430\u0458\u0435 \u0422\u0440\u0430\u043d\u0441\u0430\u043a\u0446\u0438\u0458\u0435 \u043c\u043e\u0433\u0443 \u0431\u0438\u0442\u0438 \u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0430 \u043f\u0440\u043e\u0442\u0438\u0432 \u0432\u0438\u0448\u0435 \u043b\u0438\u0446\u0430 ** ** \u043f\u0440\u043e\u0434\u0430\u0458\u0435, \u0442\u0430\u043a\u043e \u0434\u0430 \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0440\u0430\u0442\u0438\u0442\u0438 \u0438 \u043f\u043e\u0441\u0442\u0430\u0432\u0459\u0435\u043d\u0438\u0445 \u0446\u0438\u0459\u0435\u0432\u0430.",
- "Classification of Customers by region": "\u041a\u043b\u0430\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0458\u0430 \u043a\u043b\u0438\u0458\u0435\u043d\u0430\u0442\u0430 \u043f\u0440\u0435\u043c\u0430 \u0440\u0435\u0433\u0438\u043e\u043d\u0443",
- "Email Settings for Outgoing and Incoming Emails.": "\u0415\u043c\u0430\u0438\u043b \u043f\u043e\u0434\u0435\u0448\u0430\u0432\u0430\u045a\u0430 \u0437\u0430 \u043e\u0434\u043b\u0430\u0437\u043d\u0435 \u0438 \u0434\u043e\u043b\u0430\u0437\u043d\u0435 \u0435-\u043c\u0430\u0438\u043b \u043f\u043e\u0440\u0443\u043a\u0430.",
- "Email settings for jobs email id \"jobs@example.com\"": "\u0415\u043c\u0430\u0438\u043b \u043f\u043e\u0434\u0435\u0448\u0430\u0432\u0430\u045a\u0430 \u0437\u0430 \u043f\u043e\u0441\u043b\u043e\u0432\u0435 \u0415\u043c\u0430\u0438\u043b \u0418\u0414 "\u0458\u043e\u0431\u0441@\u0435\u043a\u0430\u043c\u043f\u043b\u0435.\u0446\u043e\u043c"",
- "Email settings to extract Leads from sales email id e.g. \"sales@example.com\"": "\u0415\u043c\u0430\u0438\u043b \u043f\u043e\u0434\u0435\u0448\u0430\u0432\u0430\u045a\u0430 \u0437\u0430 \u0438\u0437\u0434\u0432\u0430\u0458\u0430\u045a\u0435 \u0432\u043e\u0434\u0438 \u043e\u0434 \u043f\u0440\u043e\u0434\u0430\u0458\u0435 \u0415\u043c\u0430\u0438\u043b \u0418\u0414 \u043d\u043f\u0440 "\u0441\u0430\u043b\u0435\u0441@\u0435\u043a\u0430\u043c\u043f\u043b\u0435.\u0446\u043e\u043c"",
- "Item Classification": "\u0421\u0442\u0430\u0432\u043a\u0430 \u041a\u043b\u0430\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0458\u0430",
- "Legal Entity / Subsidiary with a separate Chart of Accounts belonging to the Organization.": "\u041f\u0440\u0430\u0432\u043d\u043e \u043b\u0438\u0446\u0435 / \u041f\u043e\u0434\u0440\u0443\u0436\u043d\u0438\u0446\u0430 \u0441\u0430 \u043f\u043e\u0441\u0435\u0431\u043d\u043e\u043c \u043a\u043e\u043d\u0442\u043d\u043e\u043c \u043f\u0440\u0438\u043f\u0430\u0434\u0430\u0458\u0443 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0458\u0438.",
- "Modules Setup": "\u041c\u043e\u0434\u0443\u043b\u0438 \u0437\u0430 \u043f\u043e\u0434\u0435\u0448\u0430\u0432\u0430\u045a\u0435",
- "Permission Engine": "\u0414\u043e\u0437\u0432\u043e\u043b\u0430 \u041c\u043e\u0442\u043e\u0440",
- "Price List Master": "\u0426\u0435\u043d\u043e\u0432\u043d\u0438\u043a \u041c\u0430\u0441\u0442\u0435\u0440",
- "Send automatic emails to Contacts on Submitting transactions.": "\u041f\u043e\u0448\u0430\u0459\u0438 \u0430\u0443\u0442\u043e\u043c\u0430\u0442\u0441\u043a\u0435 \u043f\u043e\u0448\u0442\u0443 \u0443 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0435 \u043d\u0430 \u041f\u043e\u0434\u043d\u043e\u0448\u0435\u045a\u0435 \u0442\u0440\u0430\u043d\u0441\u0430\u043a\u0446\u0438\u0458\u0435.",
- "Send regular summary reports via Email.": "\u041f\u043e\u0448\u0430\u0459\u0438 \u0440\u0435\u0434\u043e\u0432\u043d\u0435 \u0438\u0437\u0432\u0435\u0448\u0442\u0430\u0458\u0435 \u0440\u0435\u0437\u0438\u043c\u0435\u0430 \u043f\u0443\u0442\u0435\u043c \u0435-\u043f\u043e\u0448\u0442\u0435.",
- "Set prefix for numbering series on your transactions": "\u0421\u0435\u0442 \u043f\u0440\u0435\u0444\u0438\u043a\u0441 \u0437\u0430 \u043d\u0443\u043c\u0435\u0440\u0438\u0441\u0430\u045a\u0435 \u0441\u0435\u0440\u0438\u0458\u0443 \u043d\u0430 \u0441\u0432\u043e\u0458\u0438\u043c \u0442\u0440\u0430\u043d\u0441\u0430\u043a\u0446\u0438\u0458\u0430\u043c\u0430",
- "Setup": "\u041d\u0430\u043c\u0435\u0448\u0442\u0430\u0459\u043a\u0430",
- "Standard Terms and Conditions that can be added to Sales and Purchases.Examples:1. Validity of the offer.1. Payment Terms (In Advance, On Credit, part advance etc).1. What is extra (or payable by the Customer).1. Safety / usage warning.1. Warranty if any.1. Returns Policy.1. Terms of shipping, if applicable.1. Ways of addressing disputes, indemnity, liability, etc.1. Address and Contact of your Company.": "\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0434\u043d\u0438 \u0443\u0441\u043b\u043e\u0432\u0438 \u043a\u043e\u0458\u0438 \u043c\u043e\u0433\u0443 \u0431\u0438\u0442\u0438 \u0434\u043e\u0434\u0430\u0442\u0438 \u043f\u0440\u043e\u0434\u0430\u0458\u0435 \u0438 \u041f\u0443\u0440\u0446\u0445\u0430\u0441\u0435\u0441.\u0415\u043a\u0430\u043c\u043f\u043b\u0435\u0441: 1. \u0412\u0430\u0436\u0435\u045a\u0435 \u043e\u0444\u0444\u0435\u0440.1. \u0423\u0441\u043b\u043e\u0432\u0438 \u043f\u043b\u0430\u045b\u0430\u045a\u0430 (\u0443\u043d\u0430\u043f\u0440\u0435\u0434, \u043d\u0430 \u043a\u0440\u0435\u0434\u0438\u0442, \u0438\u0442\u0434 \u0434\u0435\u043e \u0430\u0432\u0430\u043d\u0441\u0430) .1. \u0428\u0442\u0430 \u0458\u0435 \u0435\u043a\u0441\u0442\u0440\u0430 (\u0438\u043b\u0438 \u043f\u043b\u0430\u045b\u0430 \u043a\u0443\u043f\u0430\u0446) .1. \u0411\u0435\u0437\u0431\u0435\u0434\u043d\u043e\u0441\u0442 / \u043a\u043e\u0440\u0438\u0448\u045b\u0435\u045a\u0430 \u0432\u0430\u0440\u043d\u0438\u043d\u0433.1. \u0413\u0430\u0440\u0430\u043d\u0446\u0438\u0458\u0430 \u0430\u043a\u043e \u0430\u043d\u0438.1. \u0412\u0440\u0430\u045b\u0430 \u041f\u043e\u043b\u0438\u0446\u0438.1. \u0423\u0441\u043b\u043e\u0432\u0438 \u0438\u0441\u043f\u043e\u0440\u0443\u043a\u0435, \u0430\u043a\u043e \u0430\u043f\u043f\u043b\u0438\u0446\u0430\u0431\u043b\u0435.1. \u041d\u0430\u0447\u0438\u043d\u0438 \u0430\u0434\u0440\u0435\u0441\u0438\u0440\u0430\u045a\u0430 \u0441\u043f\u043e\u0440\u043e\u0432\u0430, \u043e\u0434\u0448\u0442\u0435\u0442\u0435, \u043e\u0434\u0433\u043e\u0432\u043e\u0440\u043d\u043e\u0441\u0442, \u0435\u0442\u0446.1. \u0410\u0434\u0440\u0435\u0441\u0430 \u0438 \u043a\u043e\u043d\u0442\u0430\u043a\u0442 \u0432\u0430\u0448\u0435\u0433 \u043f\u0440\u0435\u0434\u0443\u0437\u0435\u045b\u0430.",
- "Webforms": "\u0412\u0435\u0431\u0444\u043e\u0440\u043c\u0441"
-}
\ No newline at end of file
diff --git a/setup/module_def/setup/locale/ta-doc.json b/setup/module_def/setup/locale/ta-doc.json
deleted file mode 100644
index 69a40a0df15..00000000000
--- a/setup/module_def/setup/locale/ta-doc.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "**Currency** Master": "** \u0ba8\u0bbe\u0ba3\u0baf\u0ba4\u0bcd\u0ba4\u0bbf\u0ba9\u0bcd ** \u0bae\u0bbe\u0bb8\u0bcd\u0b9f\u0bb0\u0bcd",
- "A third party distributor / dealer / commission agent / affiliate / reseller who sells the companies products for a commission.": "\u0bae\u0bc2\u0ba9\u0bcd\u0bb1\u0bbe\u0bb5\u0ba4\u0bc1 \u0b95\u0b9f\u0bcd\u0b9a\u0bbf \u0bb5\u0bbf\u0ba8\u0bbf\u0baf\u0bc7\u0bbe\u0b95\u0bb8\u0bcd\u0ba4\u0bb0\u0bcd / \u0b9f\u0bc0\u0bb2\u0bb0\u0bcd / \u0b95\u0bae\u0bbf\u0bb7\u0ba9\u0bcd \u0bae\u0bc1\u0b95\u0bb5\u0bb0\u0bcd / \u0b87\u0ba3\u0bc8 / \u0bae\u0bb1\u0bc1\u0bb5\u0bbf\u0bb1\u0bcd\u0baa\u0ba9\u0bc8\u0baf\u0bbe\u0bb3\u0bb0\u0bc8 \u0b92\u0bb0\u0bc1 \u0b95\u0bae\u0bbf\u0bb7\u0ba9\u0bcd \u0ba8\u0bbf\u0bb1\u0bc1\u0bb5\u0ba9\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0baa\u0bc6\u0bbe\u0bb0\u0bc1\u0b9f\u0bcd\u0b95\u0bb3\u0bc8 \u0bb5\u0bbf\u0bb1\u0bcd\u0b95\u0bc1\u0bae\u0bcd.",
- "All Sales Transactions can be tagged against multiple **Sales Persons** so that you can set and monitor targets.": "\u0b85\u0ba9\u0bc8\u0ba4\u0bcd\u0ba4\u0bc1 \u0bb5\u0bbf\u0bb1\u0bcd\u0baa\u0ba9\u0bc8 \u0ba8\u0b9f\u0bb5\u0b9f\u0bbf\u0b95\u0bcd\u0b95\u0bc8\u0b95\u0bb3\u0bcd \u0ba8\u0bc0\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b87\u0bb2\u0b95\u0bcd\u0b95\u0bc1\u0b95\u0bb3\u0bc8 \u0bae\u0bb1\u0bcd\u0bb1\u0bc1\u0bae\u0bcd \u0b95\u0ba3\u0bcd\u0b95\u0bbe\u0ba3\u0bbf\u0b95\u0bcd\u0b95 \u0bae\u0bc1\u0b9f\u0bbf\u0baf\u0bc1\u0bae\u0bcd ** \u0b85\u0ba4\u0ba9\u0bbe\u0bb2\u0bcd \u0baa\u0bb2 ** \u0bb5\u0bbf\u0bb1\u0bcd\u0baa\u0ba9\u0bc8 \u0ba8\u0baa\u0bb0\u0bcd\u0b95\u0bb3\u0bcd \u0b8e\u0ba4\u0bbf\u0bb0\u0bbe\u0ba9 \u0b95\u0bc1\u0bb1\u0bbf\u0ba4\u0bcd\u0ba4\u0bc1\u0bb3\u0bcd\u0bb3\u0bbe\u0bb0\u0bcd.",
- "Classification of Customers by region": "\u0b87\u0baa\u0bcd\u0baa\u0b95\u0bc1\u0ba4\u0bbf\u0baf\u0bbf\u0bb2\u0bcd \u0bae\u0bc2\u0bb2\u0bae\u0bcd \u0bb5\u0bbe\u0b9f\u0bbf\u0b95\u0bcd\u0b95\u0bc8\u0baf\u0bbe\u0bb3\u0bb0\u0bcd\u0b95\u0bb3\u0bcd \u0bb5\u0b95\u0bc8\u0baa\u0bcd\u0baa\u0bbe\u0b9f\u0bc1",
- "Email Settings for Outgoing and Incoming Emails.": "\u0bb5\u0bc6\u0bb3\u0bbf\u0b9a\u0bcd\u0b9a\u0bc6\u0bb2\u0bcd\u0bb2\u0bc1\u0bae\u0bcd \u0bae\u0bb1\u0bcd\u0bb1\u0bc1\u0bae\u0bcd \u0b89\u0bb3\u0bcd\u0bb5\u0bb0\u0bc1\u0bae\u0bcd \u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bcd\u0b95\u0bb3\u0bcd \u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bcd \u0b85\u0bae\u0bc8\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd.",
- "Email settings for jobs email id \"jobs@example.com\"": "\u0bb5\u0bc7\u0bb2\u0bc8\u0b95\u0bb3\u0bcd \u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bcd \u0b90\u0b9f\u0bbf "jobs@example.com" \u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bcd \u0b85\u0bae\u0bc8\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd",
- "Email settings to extract Leads from sales email id e.g. \"sales@example.com\"": "\u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bcd \u0b85\u0bae\u0bc8\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bc8 \u0bb5\u0bbf\u0bb1\u0bcd\u0baa\u0ba9\u0bc8 \u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bcd \u0b90\u0b9f\u0bbf \u0b8e.\u0b95\u0bbe. "sales@example.com" \u0b9a\u0bc6\u0bb2\u0bcd\u0b95\u0bbf\u0ba9\u0bcd\u0bb1\u0ba4\u0bc1 \u0baa\u0bc6\u0bb1\u0bc1\u0bb5\u0ba4\u0bb1\u0bcd\u0b95\u0bc1",
- "Item Classification": "\u0b89\u0bb0\u0bc1\u0baa\u0bcd\u0baa\u0b9f\u0bbf\u0baf\u0bc8 \u0bb5\u0b95\u0bc8\u0baa\u0bcd\u0baa\u0bbe\u0b9f\u0bc1",
- "Legal Entity / Subsidiary with a separate Chart of Accounts belonging to the Organization.": "\u0b85\u0bae\u0bc8\u0baa\u0bcd\u0baa\u0bc1 \u0b9a\u0bbe\u0bb0\u0bcd\u0ba8\u0bcd\u0ba4 \u0b95\u0ba3\u0b95\u0bcd\u0b95\u0bc1 \u0b92\u0bb0\u0bc1 \u0ba4\u0ba9\u0bbf \u0baa\u0b9f\u0bcd\u0b9f\u0bbf\u0baf\u0bb2\u0bbf\u0bb2\u0bcd \u0b9a\u0bc7\u0bb0\u0bcd\u0ba4\u0bcd\u0ba4\u0bc1 \u0b9a\u0b9f\u0bcd\u0b9f \u0ba8\u0bbf\u0bb1\u0bc1\u0bb5\u0ba9\u0ba4\u0bcd\u0ba4\u0bbf\u0ba9\u0bcd / \u0ba4\u0bc1\u0ba3\u0bc8\u0ba8\u0bbf\u0bb1\u0bc1\u0bb5\u0ba9\u0ba4\u0bcd\u0ba4\u0bbf\u0bb1\u0bcd\u0b95\u0bc1.",
- "Modules Setup": "\u0ba4\u0bc6\u0bbe\u0b95\u0bc1\u0ba4\u0bbf\u0b95\u0bb3\u0bcd \u0b85\u0bae\u0bc8\u0baa\u0bcd\u0baa\u0bc1",
- "Permission Engine": "\u0b85\u0ba9\u0bc1\u0bae\u0ba4\u0bbf \u0b8e\u0b9e\u0bcd\u0b9a\u0bbf\u0ba9\u0bcd",
- "Price List Master": "\u0bb5\u0bbf\u0bb2\u0bc8 \u0baa\u0b9f\u0bcd\u0b9f\u0bbf\u0baf\u0bb2\u0bcd \u0bae\u0bbe\u0bb8\u0bcd\u0b9f\u0bb0\u0bcd",
- "Send automatic emails to Contacts on Submitting transactions.": "\u0baa\u0bb0\u0bbf\u0bb5\u0bb0\u0bcd\u0ba4\u0bcd\u0ba4\u0ba9\u0bc8\u0b95\u0bb3\u0bcd \u0b9a\u0bae\u0bb0\u0bcd\u0baa\u0bcd\u0baa\u0bbf\u0b95\u0bcd\u0b95\u0bc1\u0bae\u0bcd \u0bae\u0bc0\u0ba4\u0bc1 \u0ba4\u0bc6\u0bbe\u0b9f\u0bb0\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd \u0ba4\u0bbe\u0ba9\u0bbf\u0baf\u0b99\u0bcd\u0b95\u0bbf \u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bcd\u0b95\u0bb3\u0bc8 \u0b85\u0ba9\u0bc1\u0baa\u0bcd\u0baa\u0bc1\u0bb5\u0ba4\u0bc1.",
- "Send regular summary reports via Email.": "\u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bcd \u0bb5\u0bb4\u0bbf\u0baf\u0bbe\u0b95 \u0bb5\u0bb4\u0b95\u0bcd\u0b95\u0bae\u0bbe\u0ba9 \u0b9a\u0bc1\u0bb0\u0bc1\u0b95\u0bcd\u0b95\u0bae\u0bcd \u0b85\u0bb1\u0bbf\u0b95\u0bcd\u0b95\u0bc8\u0b95\u0bb3\u0bcd \u0b85\u0ba9\u0bc1\u0baa\u0bcd\u0baa.",
- "Set prefix for numbering series on your transactions": "\u0b89\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0ba8\u0b9f\u0bb5\u0b9f\u0bbf\u0b95\u0bcd\u0b95\u0bc8\u0b95\u0bb3\u0bcd \u0bae\u0bc0\u0ba4\u0bc1 \u0ba4\u0bc6\u0bbe\u0b9f\u0bb0\u0bcd \u0b8e\u0ba3\u0bcd\u0ba3\u0bc1\u0bb5\u0ba4\u0bb1\u0bcd\u0b95\u0bbe\u0ba9 \u0bae\u0bc1\u0ba9\u0bcd\u0ba9\u0bc6\u0bbe\u0b9f\u0bcd\u0b9f\u0bc1 \u0b85\u0bae\u0bc8\u0b95\u0bcd\u0b95",
- "Setup": "\u0b85\u0bae\u0bc8\u0baa\u0bcd\u0baa\u0bc1 \u0bae\u0bc1\u0bb1\u0bc8",
- "Standard Terms and Conditions that can be added to Sales and Purchases.Examples:1. Validity of the offer.1. Payment Terms (In Advance, On Credit, part advance etc).1. What is extra (or payable by the Customer).1. Safety / usage warning.1. Warranty if any.1. Returns Policy.1. Terms of shipping, if applicable.1. Ways of addressing disputes, indemnity, liability, etc.1. Address and Contact of your Company.": "1: \u0bb8\u0bcd\u0b9f\u0bbe\u0ba3\u0bcd\u0b9f\u0bb0\u0bcd\u0b9f\u0bcd \u0ba8\u0bbf\u0baa\u0ba8\u0bcd\u0ba4\u0ba9\u0bc8\u0b95\u0bb3\u0bcd \u0b8e\u0ba9\u0bcd\u0bb1\u0bc1 \u0bb5\u0bbf\u0bb1\u0bcd\u0baa\u0ba9\u0bc8 \u0bae\u0bb1\u0bcd\u0bb1\u0bc1\u0bae\u0bcd Purchases.Examples \u0b9a\u0bc7\u0bb0\u0bcd\u0b95\u0bcd\u0b95 \u0bae\u0bc1\u0b9f\u0bbf\u0baf\u0bc1\u0bae\u0bcd. Offer.1 \u0b8f\u0bb1\u0bcd\u0baa\u0bc1\u0b9f\u0bc8\u0bae\u0bc8. \u0baa\u0ba3\u0bae\u0bcd \u0bb5\u0bbf\u0ba4\u0bbf\u0bae\u0bc1\u0bb1\u0bc8\u0b95\u0bb3\u0bcd (\u0b85\u0b9f\u0bcd\u0bb5\u0bbe\u0ba9\u0bcd\u0bb8\u0bcd, \u0b95\u0b9f\u0ba9\u0bcd, \u0baa\u0b95\u0bc1\u0ba4\u0bbf\u0baf\u0bbe\u0b95 \u0bae\u0bc1\u0ba9\u0bcd\u0b95\u0bc2\u0b9f\u0bcd\u0b9f\u0bbf\u0baf\u0bc7 \u0bb9\u0bbf\u0baa\u0bcd\u0bb0\u0bc1 \u0bae\u0bcd \u0ba4\u0bc7\u0ba4\u0bbf) .1. .1 (\u0b85\u0bb2\u0bcd\u0bb2\u0ba4\u0bc1 \u0bb5\u0bbe\u0b9f\u0bbf\u0b95\u0bcd\u0b95\u0bc8\u0baf\u0bbe\u0bb3\u0bb0\u0bcd \u0b9a\u0bc6\u0bb2\u0bc1\u0ba4\u0bcd\u0ba4\u0baa\u0bcd\u0baa\u0b9f) \u0b95\u0bc2\u0b9f\u0bc1\u0ba4\u0bb2\u0bcd \u0b86\u0b95\u0bc1\u0bae\u0bcd. \u0baa\u0bbe\u0ba4\u0bc1\u0b95\u0bbe\u0baa\u0bcd\u0baa\u0bc1 / \u0baa\u0baf\u0ba9\u0bcd\u0baa\u0bbe\u0b9f\u0bc1 warning.1. Any.1 \u0b8e\u0ba9\u0bcd\u0bb1\u0bbe\u0bb2\u0bcd \u0b89\u0ba4\u0bcd\u0ba4\u0bb0\u0bb5\u0bbe\u0ba4\u0ba4\u0bcd\u0ba4\u0bc8. Policy.1 \u0b95\u0bc6\u0bbe\u0b9f\u0bc1\u0b95\u0bcd\u0b95\u0bbf\u0bb1\u0ba4\u0bc1. Applicable.1 \u0b8e\u0ba9\u0bcd\u0bb1\u0bbe\u0bb2\u0bcd \u0b95\u0baa\u0bcd\u0baa\u0bb2\u0bcd \u0bb5\u0bbf\u0ba4\u0bbf\u0bae\u0bc1\u0bb1\u0bc8\u0b95\u0bb3\u0bcd,. \u0bae\u0bc1\u0b95\u0bb5\u0bb0\u0bbf \u0b9a\u0bb0\u0bcd\u0b9a\u0bcd\u0b9a\u0bc8\u0b95\u0bb3\u0bc8 \u0bb5\u0bb4\u0bbf\u0b95\u0bb3\u0bc8, \u0b88\u0b9f\u0bcd\u0b9f\u0bc1\u0bb1\u0bc1\u0ba4\u0bbf, \u0baa\u0bc6\u0bbe\u0bb1\u0bc1\u0baa\u0bcd\u0baa\u0bc1, etc.1. \u0bae\u0bc1\u0b95\u0bb5\u0bb0\u0bbf \u0bae\u0bb1\u0bcd\u0bb1\u0bc1\u0bae\u0bcd \u0b89\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0ba8\u0bbf\u0bb1\u0bc1\u0bb5\u0ba9\u0ba4\u0bcd\u0ba4\u0bbf\u0ba9\u0bcd \u0ba4\u0bc6\u0bbe\u0b9f\u0bb0\u0bcd\u0baa\u0bc1 \u0b95\u0bc6\u0bbe\u0bb3\u0bcd\u0bb3\u0bb5\u0bc1\u0bae\u0bcd.",
- "Webforms": "Webforms"
-}
\ No newline at end of file
diff --git a/setup/page/setup/locale/de-js.json b/setup/page/setup/locale/de-js.json
new file mode 100644
index 00000000000..6a2a1fdeb68
--- /dev/null
+++ b/setup/page/setup/locale/de-js.json
@@ -0,0 +1,61 @@
+{
+ "Add custom code to forms": "F\u00fcgen Sie benutzerdefinierte Code Formen",
+ "Add fields to forms": "Hinzuf\u00fcgen von Feldern zu Formen",
+ "Add headers for standard print formats": "Hinzuf\u00fcgen von Kopf f\u00fcr Standard-Druckformate",
+ "Add/remove users, set roles, passwords etc": "Hinzuf\u00fcgen / Entfernen von Benutzern, Satz Rollen, etc. Passw\u00f6rter",
+ "Authorization Rule": "Autorisierungsregel",
+ "Branding and Printing": "Branding und Druck",
+ "Change background fonts etc": "\u00c4ndern Sie Hintergrund-Schriftarten etc",
+ "Change entry properties (hide fields, make mandatory etc)": "Eintrag \u00e4ndern Eigenschaften (hide Feldern machen obligatorischen etc)",
+ "Company": "Firma",
+ "Currency": "W\u00e4hrung",
+ "Custom Field": "Custom Field",
+ "Custom Script": "Custom Script",
+ "Customize": "Anpassen",
+ "Customize Form": "Formular anpassen",
+ "Daily, weekly, monthly email Digests": "T\u00e4glich Digests w\u00f6chentlich, monatlich E-Mail-",
+ "Data": "Daten",
+ "Data Import": "Datenimport",
+ "Email Digest": "Email Digest",
+ "Email Settings": "E-Mail-Einstellungen",
+ "Enable / disable currencies.": "Aktivieren / Deaktivieren der W\u00e4hrungen.",
+ "Extract Job Applicant from jobs email id e.g. jobs@example.com": "Auszug Bewerber aus Jobs E-Mail-ID beispielsweise jobs@example.com",
+ "Extract Leads from sales email id e.g. sales@example.com": "Auszug Leads aus dem Verkauf email id beispielsweise sales@example.com",
+ "Features Setup": "Features Setup",
+ "Financial Years for books of accounts": "Gesch\u00e4ftsjahre B\u00fccher von Konten",
+ "Fiscal Year": "Gesch\u00e4ftsjahr",
+ "Global Defaults": "Globale Defaults",
+ "HTML print formats for quotes, invoices etc": "HTML Druckformate f\u00fcr Angebote, Rechnungen etc",
+ "Import data from spreadsheet (csv) files": "Importieren von Daten aus Tabellen (csv-Dateien)",
+ "Jobs Email Settings": "Jobs per E-Mail Einstellungen",
+ "Letter Head": "Briefkopf",
+ "Letter heads for print": "Briefk\u00f6pfe f\u00fcr Print",
+ "List of companies (not customers / suppliers)": "Liste der Unternehmen (keine Kunden / Lieferanten)",
+ "Manage numbering series": "Verwalten Nummerierung Serie",
+ "Notification Control": "Meldungssteuervorrichtung",
+ "Organization": "Organisation",
+ "Out going mail server and support ticket mailbox": "Fahren Sie Mail-Server und Mailbox Support-Ticket",
+ "Permission Manager": "Permission Manager",
+ "Print Format": "Drucken Format",
+ "Print Heading": "Unterwegs drucken",
+ "Profile": "Profil",
+ "Prompt email sending to customers and suppliers": "Prompt Mail senden an Kunden und Lieferanten",
+ "Restrict submission rights based on amount": "Beschr\u00e4nken Einreichung Rechte nach Betrag",
+ "SMS Center": "SMS Center",
+ "SMS Settings": "SMS-Einstellungen",
+ "Sales Email Settings": "Vertrieb E-Mail-Einstellungen",
+ "Send bulk SMS to leads, customers, contacts": "Senden Sie Massen-SMS, um Leads, Kunden, Kontakte",
+ "Set default values for entry": "Standardwerte f\u00fcr die Einreise",
+ "Set default values for users (also used for permissions).": "Standardwerte f\u00fcr die Benutzer (auch f\u00fcr Berechtigungen verwendet).",
+ "Set multiple numbering series for transactions": "Set Nummerierung Serie f\u00fcr mehrere Transaktionen",
+ "Set permissions on transactions / masters": "Festlegen von Berechtigungen f\u00fcr Transaktionen / masters",
+ "Set workflow rules.": "Stellen Sie Workflow-Regeln.",
+ "Setup outgoing SMS via your bulk SMS provider": "Richten ausgehende SMS \u00fcber Ihre Massen-SMS-Anbieter",
+ "Show / Hide Modules": "Show / Hide Modules",
+ "Show, hide modules": "Anzeigen, Ausblenden Modulen",
+ "Simplify entry forms by disabling features": "Vereinfachen Anmeldeformulare durch Deaktivieren von Funktionen",
+ "Style Settings": "Style Einstellungen",
+ "User Properties": "User Properties",
+ "Users": "Benutzer",
+ "Workfow": "Workfow"
+}
\ No newline at end of file
diff --git a/setup/page/setup/locale/pt-BR-js.json b/setup/page/setup/locale/pt-BR-js.json
new file mode 100644
index 00000000000..c2b24957a61
--- /dev/null
+++ b/setup/page/setup/locale/pt-BR-js.json
@@ -0,0 +1,61 @@
+{
+ "Add custom code to forms": "Adicionar c\u00f3digo personalizado aos formul\u00e1rios",
+ "Add fields to forms": "Adicionar campos aos formul\u00e1rios",
+ "Add headers for standard print formats": "Adicionar cabe\u00e7alhos para formatos de impress\u00e3o padr\u00e3o",
+ "Add/remove users, set roles, passwords etc": "Adicionar / remover usu\u00e1rios, definir fun\u00e7\u00f5es, senhas etc",
+ "Authorization Rule": "Regra de autoriza\u00e7\u00e3o",
+ "Branding and Printing": "Identifica\u00e7\u00e3o de Marca e Impress\u00e3o",
+ "Change background fonts etc": "Alterar fontes, fundo, etc",
+ "Change entry properties (hide fields, make mandatory etc)": "Alterar as propriedades do lan\u00e7amento (ocultar campos, tornar obrigat\u00f3rio, etc)",
+ "Company": "Empresa",
+ "Currency": "Moeda",
+ "Custom Field": "Campo personalizado",
+ "Custom Script": "Script personalizado",
+ "Customize": "Personalize",
+ "Customize Form": "Personalize Formul\u00e1rio",
+ "Daily, weekly, monthly email Digests": "Resumos di\u00e1rios, semanais e mensais por e-mail",
+ "Data": "Dados",
+ "Data Import": "Importa\u00e7\u00e3o de Dados",
+ "Email Digest": "Resumo por E-mail",
+ "Email Settings": "Configura\u00e7\u00f5es de e-mail",
+ "Enable / disable currencies.": "Ativar / desativar moedas.",
+ "Extract Job Applicant from jobs email id e.g. jobs@example.com": "Extraia Candidado a Emprego do e-mail de empregos, por exemplo empregos@exemplo.com",
+ "Extract Leads from sales email id e.g. sales@example.com": "Extraia Prospectos do e-mail de vendas, por exemplo vendas@exemplo.com",
+ "Features Setup": "Configura\u00e7\u00e3o de caracter\u00edsticas",
+ "Financial Years for books of accounts": "Exerc\u00edcios para os livros-caixas",
+ "Fiscal Year": "Exerc\u00edcio fiscal",
+ "Global Defaults": "Padr\u00f5es globais",
+ "HTML print formats for quotes, invoices etc": "Formatos de impress\u00e3o em HTML para cota\u00e7\u00f5es, notas fiscais, etc",
+ "Import data from spreadsheet (csv) files": "Importar dados de planilhas (csv)",
+ "Jobs Email Settings": "Configura\u00e7\u00f5es do e-mail de empregos",
+ "Letter Head": "Timbrado",
+ "Letter heads for print": "Timbrado para impress\u00e3o",
+ "List of companies (not customers / suppliers)": "Lista das empresas (n\u00e3o clientes / fornecedores)",
+ "Manage numbering series": "Gerenciar s\u00e9ries de numera\u00e7\u00e3o",
+ "Notification Control": "Controle de Notifica\u00e7\u00e3o",
+ "Organization": "Organiza\u00e7\u00e3o",
+ "Out going mail server and support ticket mailbox": "Servidor de e-mail de sa\u00edda e caixa de correio de tickets de suporte",
+ "Permission Manager": "Gerenciador de Permiss\u00e3o",
+ "Print Format": "Formato de impress\u00e3o",
+ "Print Heading": "Cabe\u00e7alho de impress\u00e3o",
+ "Profile": "Perfil",
+ "Prompt email sending to customers and suppliers": "E-mail Prompt envio a clientes e fornecedores",
+ "Restrict submission rights based on amount": "Restringir direitos de envio com base no valor",
+ "SMS Center": "Centro de SMS",
+ "SMS Settings": "Defini\u00e7\u00f5es de SMS",
+ "Sales Email Settings": "Configura\u00e7\u00f5es do Email de Vendas",
+ "Send bulk SMS to leads, customers, contacts": "Enviar SMS em massa para prospectos, clientes e contatos",
+ "Set default values for entry": "Definir valores padr\u00e3o para o lan\u00e7amento",
+ "Set default values for users (also used for permissions).": "Definir valores padr\u00e3o para os usu\u00e1rios (tamb\u00e9m usados para permiss\u00f5es).",
+ "Set multiple numbering series for transactions": "Definir multiplas s\u00e9ries de numera\u00e7\u00e3o para transa\u00e7\u00f5es",
+ "Set permissions on transactions / masters": "Definir permiss\u00f5es em transa\u00e7\u00f5es / cadastros",
+ "Set workflow rules.": "Definir regras do fluxo de trabalho.",
+ "Setup outgoing SMS via your bulk SMS provider": "Configurar envio de SMS atrav\u00e9s de seu provedor de SMS em massa",
+ "Show / Hide Modules": "Mostrar / Ocultar M\u00f3dulos",
+ "Show, hide modules": "Mostrar / Ocultar M\u00f3dulos",
+ "Simplify entry forms by disabling features": "Simplificar os formul\u00e1rios de entrada pela desativa\u00e7\u00e3o de recursos",
+ "Style Settings": "Configura\u00e7\u00f5es de Estilo",
+ "User Properties": "Propriedades do Usu\u00e1rio",
+ "Users": "Usu\u00e1rios",
+ "Workfow": "Fluxo de Trabalho"
+}
\ No newline at end of file
diff --git a/setup/page/setup/locale/th-js.json b/setup/page/setup/locale/th-js.json
new file mode 100644
index 00000000000..027fcdfaeae
--- /dev/null
+++ b/setup/page/setup/locale/th-js.json
@@ -0,0 +1,61 @@
+{
+ "Add custom code to forms": "\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e23\u0e2b\u0e31\u0e2a\u0e17\u0e35\u0e48\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e40\u0e2d\u0e07\u0e43\u0e19\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a\u0e17\u0e35\u0e48",
+ "Add fields to forms": "\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e02\u0e15\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e41\u0e1a\u0e1a\u0e1f\u0e2d\u0e23\u0e4c\u0e21",
+ "Add headers for standard print formats": "\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e2b\u0e31\u0e27\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a\u0e01\u0e32\u0e23\u0e1e\u0e34\u0e21\u0e1e\u0e4c\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19",
+ "Add/remove users, set roles, passwords etc": "\u0e40\u0e1e\u0e34\u0e48\u0e21 / \u0e25\u0e1a\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e1a\u0e17\u0e1a\u0e32\u0e17\u0e0a\u0e38\u0e14\u0e23\u0e2b\u0e31\u0e2a\u0e1c\u0e48\u0e32\u0e19 \u0e2f\u0e25\u0e2f",
+ "Authorization Rule": "\u0e01\u0e0e\u0e01\u0e32\u0e23\u0e2d\u0e19\u0e38\u0e0d\u0e32\u0e15",
+ "Branding and Printing": "\u0e01\u0e32\u0e23\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e15\u0e23\u0e32\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e41\u0e25\u0e30\u0e01\u0e32\u0e23\u0e1e\u0e34\u0e21\u0e1e\u0e4c",
+ "Change background fonts etc": "\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e1e\u0e37\u0e49\u0e19\u0e2b\u0e25\u0e31\u0e07 \u0e2f\u0e25\u0e2f \u0e41\u0e1a\u0e1a\u0e2d\u0e31\u0e01\u0e29\u0e23",
+ "Change entry properties (hide fields, make mandatory etc)": "\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e04\u0e38\u0e13\u0e2a\u0e21\u0e1a\u0e31\u0e15\u0e34\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23 (\u0e0a\u0e48\u0e2d\u0e07\u0e0b\u0e48\u0e2d\u0e19\u0e43\u0e2b\u0e49 \u0e2f\u0e25\u0e2f \u0e1a\u0e31\u0e07\u0e04\u0e31\u0e1a)",
+ "Company": "\u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17",
+ "Currency": "\u0e40\u0e07\u0e34\u0e19\u0e15\u0e23\u0e32",
+ "Custom Field": "\u0e1f\u0e34\u0e25\u0e14\u0e4c\u0e17\u0e35\u0e48\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e40\u0e2d\u0e07",
+ "Custom Script": "\u0e2a\u0e04\u0e23\u0e34\u0e1b\u0e15\u0e4c\u0e17\u0e35\u0e48\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e40\u0e2d\u0e07",
+ "Customize": "\u0e1b\u0e23\u0e31\u0e1a\u0e41\u0e15\u0e48\u0e07",
+ "Customize Form": "\u0e1b\u0e23\u0e31\u0e1a\u0e41\u0e15\u0e48\u0e07\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a",
+ "Daily, weekly, monthly email Digests": "\u0e23\u0e32\u0e22\u0e27\u0e31\u0e19\u0e23\u0e32\u0e22\u0e2a\u0e31\u0e1b\u0e14\u0e32\u0e2b\u0e4c\u0e23\u0e32\u0e22\u0e40\u0e14\u0e37\u0e2d\u0e19\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e4c\u0e2a\u0e33\u0e04\u0e31\u0e0d",
+ "Data": "\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25",
+ "Data Import": "\u0e01\u0e32\u0e23\u0e19\u0e33\u0e40\u0e02\u0e49\u0e32\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25",
+ "Email Digest": "\u0e02\u0e48\u0e32\u0e27\u0e2a\u0e32\u0e23\u0e17\u0e32\u0e07\u0e2d\u0e35\u0e40\u0e21\u0e25",
+ "Email Settings": "\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32\u0e2d\u0e35\u0e40\u0e21\u0e25",
+ "Enable / disable currencies.": "\u0e40\u0e1b\u0e34\u0e14 / \u0e1b\u0e34\u0e14\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19",
+ "Extract Job Applicant from jobs email id e.g. jobs@example.com": "\u0e2a\u0e32\u0e23\u0e2a\u0e01\u0e31\u0e14\u0e08\u0e32\u0e01\u0e43\u0e1a\u0e07\u0e32\u0e19\u0e08\u0e32\u0e01\u0e07\u0e32\u0e19\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e4c\u0e23\u0e2b\u0e31\u0e2a\u0e40\u0e0a\u0e48\u0e19 jobs@example.com",
+ "Extract Leads from sales email id e.g. sales@example.com": "\u0e2a\u0e32\u0e23\u0e2a\u0e01\u0e31\u0e14\u0e19\u0e33\u0e21\u0e32\u0e08\u0e32\u0e01\u0e22\u0e2d\u0e14\u0e02\u0e32\u0e22\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e4c ID \u0e40\u0e0a\u0e48\u0e19 sales@example.com",
+ "Features Setup": "\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07\u0e2a\u0e34\u0e48\u0e07\u0e2d\u0e33\u0e19\u0e27\u0e22\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e30\u0e14\u0e27\u0e01",
+ "Financial Years for books of accounts": "\u0e1b\u0e35\u0e01\u0e32\u0e23\u0e40\u0e07\u0e34\u0e19\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e2b\u0e19\u0e31\u0e07\u0e2a\u0e37\u0e2d\u0e02\u0e2d\u0e07\u0e1a\u0e31\u0e0d\u0e0a\u0e35",
+ "Fiscal Year": "\u0e1b\u0e35\u0e07\u0e1a\u0e1b\u0e23\u0e30\u0e21\u0e32\u0e13",
+ "Global Defaults": "\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19\u0e17\u0e31\u0e48\u0e27\u0e42\u0e25\u0e01",
+ "HTML print formats for quotes, invoices etc": "\u0e1e\u0e34\u0e21\u0e1e\u0e4c\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a\u0e17\u0e35\u0e48 HTML \u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e04\u0e33\u0e1e\u0e39\u0e14 \u0e2f\u0e25\u0e2f \u0e43\u0e1a\u0e41\u0e08\u0e49\u0e07\u0e2b\u0e19\u0e35\u0e49",
+ "Import data from spreadsheet (csv) files": "\u0e19\u0e33\u0e40\u0e02\u0e49\u0e32\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e08\u0e32\u0e01\u0e44\u0e1f\u0e25\u0e4c\u0e2a\u0e40\u0e1b\u0e23\u0e14\u0e0a\u0e35\u0e15 (CSV)",
+ "Jobs Email Settings": "\u0e07\u0e32\u0e19\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32\u0e2d\u0e35\u0e40\u0e21\u0e25",
+ "Letter Head": "\u0e2b\u0e31\u0e27\u0e08\u0e14\u0e2b\u0e21\u0e32\u0e22",
+ "Letter heads for print": "\u0e2b\u0e31\u0e27\u0e08\u0e14\u0e2b\u0e21\u0e32\u0e22\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e1e\u0e34\u0e21\u0e1e\u0e4c",
+ "List of companies (not customers / suppliers)": "\u0e23\u0e32\u0e22\u0e0a\u0e37\u0e48\u0e2d\u0e02\u0e2d\u0e07 \u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17 (\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32\u0e44\u0e21\u0e48 / \u0e0b\u0e31\u0e1e\u0e1e\u0e25\u0e32\u0e22\u0e40\u0e2d\u0e2d\u0e23\u0e4c)",
+ "Manage numbering series": "\u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e40\u0e25\u0e02\u0e0a\u0e38\u0e14",
+ "Notification Control": "\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e01\u0e32\u0e23\u0e41\u0e08\u0e49\u0e07\u0e40\u0e15\u0e37\u0e2d\u0e19",
+ "Organization": "\u0e2d\u0e07\u0e04\u0e4c\u0e01\u0e23",
+ "Out going mail server and support ticket mailbox": "\u0e2d\u0e2d\u0e01\u0e44\u0e1b\u0e22\u0e31\u0e07\u0e40\u0e0b\u0e34\u0e23\u0e4c\u0e1f\u0e40\u0e27\u0e2d\u0e23\u0e4c\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e41\u0e25\u0e30\u0e01\u0e25\u0e48\u0e2d\u0e07\u0e08\u0e14\u0e2b\u0e21\u0e32\u0e22\u0e15\u0e31\u0e4b\u0e27\u0e2a\u0e19\u0e31\u0e1a\u0e2a\u0e19\u0e38\u0e19",
+ "Permission Manager": "\u0e1c\u0e39\u0e49\u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e2d\u0e19\u0e38\u0e0d\u0e32\u0e15",
+ "Print Format": "\u0e1e\u0e34\u0e21\u0e1e\u0e4c\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a",
+ "Print Heading": "\u0e1e\u0e34\u0e21\u0e1e\u0e4c\u0e2b\u0e31\u0e27\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07",
+ "Profile": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14",
+ "Prompt email sending to customers and suppliers": "\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e4c\u0e1e\u0e23\u0e49\u0e2d\u0e21\u0e2a\u0e48\u0e07\u0e43\u0e2b\u0e49\u0e01\u0e31\u0e1a\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32\u0e41\u0e25\u0e30\u0e0b\u0e31\u0e1e\u0e1e\u0e25\u0e32\u0e22\u0e40\u0e2d\u0e2d\u0e23\u0e4c",
+ "Restrict submission rights based on amount": "\u0e01\u0e32\u0e23 \u0e08\u0e33\u0e01\u0e31\u0e14 \u0e2a\u0e34\u0e17\u0e18\u0e34\u0e22\u0e37\u0e48\u0e19\u0e15\u0e32\u0e21\u0e08\u0e33\u0e19\u0e27\u0e19\u0e40\u0e07\u0e34\u0e19\u0e17\u0e35\u0e48",
+ "SMS Center": "\u0e28\u0e39\u0e19\u0e22\u0e4c SMS",
+ "SMS Settings": "\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32 SMS",
+ "Sales Email Settings": "\u0e02\u0e32\u0e22\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32\u0e2d\u0e35\u0e40\u0e21\u0e25",
+ "Send bulk SMS to leads, customers, contacts": "\u0e2a\u0e48\u0e07 SMS \u0e40\u0e1b\u0e47\u0e19\u0e01\u0e25\u0e38\u0e48\u0e21\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e19\u0e33\u0e44\u0e1b\u0e2a\u0e39\u0e48\u200b\u200b\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32\u0e17\u0e35\u0e48\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d",
+ "Set default values for entry": "\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23",
+ "Set default values for users (also used for permissions).": "\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49 (\u0e22\u0e31\u0e07\u0e43\u0e0a\u0e49\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e2a\u0e34\u0e17\u0e18\u0e34\u0e4c)",
+ "Set multiple numbering series for transactions": "\u0e15\u0e31\u0e49\u0e07\u0e0a\u0e38\u0e14\u0e40\u0e25\u0e02\u0e2b\u0e25\u0e32\u0e22\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e17\u0e33\u0e18\u0e38\u0e23\u0e01\u0e23\u0e23\u0e21",
+ "Set permissions on transactions / masters": "\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e2a\u0e34\u0e17\u0e18\u0e34\u0e4c\u0e43\u0e19\u0e01\u0e32\u0e23\u0e17\u0e33\u0e18\u0e38\u0e23\u0e01\u0e23\u0e23\u0e21 / \u0e42\u0e17",
+ "Set workflow rules.": "\u0e15\u0e31\u0e49\u0e07\u0e01\u0e0e\u0e40\u0e27\u0e34\u0e23\u0e4c\u0e01\u0e42\u0e1f\u0e25\u0e27\u0e4c",
+ "Setup outgoing SMS via your bulk SMS provider": "\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07 SMS \u0e02\u0e32\u0e2d\u0e2d\u0e01\u0e1c\u0e48\u0e32\u0e19\u0e17\u0e32\u0e07\u0e1c\u0e39\u0e49\u0e43\u0e2b\u0e49 SMS \u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13\u0e40\u0e1b\u0e47\u0e19\u0e01\u0e25\u0e38\u0e48\u0e21",
+ "Show / Hide Modules": "\u0e41\u0e2a\u0e14\u0e07 / \u0e0b\u0e48\u0e2d\u0e19\u0e42\u0e21\u0e14\u0e39\u0e25",
+ "Show, hide modules": "\u0e41\u0e2a\u0e14\u0e07\u0e0b\u0e48\u0e2d\u0e19\u0e42\u0e21\u0e14\u0e39\u0e25",
+ "Simplify entry forms by disabling features": "\u0e25\u0e14\u0e04\u0e27\u0e32\u0e21\u0e0b\u0e31\u0e1a\u0e0b\u0e49\u0e2d\u0e19\u0e02\u0e2d\u0e07\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e42\u0e14\u0e22\u0e1b\u0e34\u0e14\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e04\u0e38\u0e13\u0e25\u0e31\u0e01\u0e29\u0e13\u0e30",
+ "Style Settings": "\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32\u0e25\u0e31\u0e01\u0e29\u0e13\u0e30",
+ "User Properties": "\u0e04\u0e38\u0e13\u0e2a\u0e21\u0e1a\u0e31\u0e15\u0e34\u0e02\u0e2d\u0e07\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49",
+ "Users": "\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49",
+ "Workfow": "Workfow"
+}
\ No newline at end of file
diff --git a/setup/utils.py b/setup/utils.py
index 1b61ea9201e..1a86921692e 100644
--- a/setup/utils.py
+++ b/setup/utils.py
@@ -40,7 +40,7 @@ def get_price_list_currency(args):
if isinstance(args, basestring):
args = json.loads(args)
- result = webnotes.conn.sql("""select ref_currency from `tabItem Price`
+ result = webnotes.conn.sql("""select distinct ref_currency from `tabItem Price`
where price_list_name=%s and `%s`=1""" % ("%s", args.get("use_for")),
(args.get("price_list_name"),))
if result and len(result)==1:
diff --git a/startup/__init__.py b/startup/__init__.py
index b7d77c05e46..5bc86df1904 100644
--- a/startup/__init__.py
+++ b/startup/__init__.py
@@ -23,18 +23,21 @@ import webnotes
lang_names = {
"हिंदी": "hi",
+ "deutsch": "de",
"english": "en",
"español": "es",
"français": "fr",
"português": "pt",
+ "português brasileiro": "pt-BR",
"nederlands": "nl",
"српски":"sr",
"தமிழ்": "ta",
"Hrvatski": "hr",
+ "ไทย": "th",
"العربية":"ar"
}
-lang_list = ["ar", "en", "hi", "es", "fr", "pt", "nl", "hr"]
+lang_list = ["ar", "de", "en", "hi", "es", "fr", "pt-BR", "pt", "nl", "hr", "th"]
product_name = "ERPNext"
profile_defaults = {
@@ -65,4 +68,4 @@ def get_url():
if subdomain:
if "http" not in subdomain:
url = "http://" + subdomain
- return url
\ No newline at end of file
+ return url
diff --git a/startup/install.py b/startup/install.py
index b42b7163c02..f584769bebd 100644
--- a/startup/install.py
+++ b/startup/install.py
@@ -30,7 +30,7 @@ def make_roles():
"HR Manager", "HR User", "Leave Approver", "Maintenance Manager",
"Maintenance User", "Manufacturing Manager", "Manufacturing User",
"Material Manager", "Material Master Manager", "Material User",
- "Partner", "Projects User", "Purchase Manager", "Purchase Master Manager",
+ "Partner", "Projects User", "Projects Manager", "Purchase Manager", "Purchase Master Manager",
"Purchase User", "Quality Manager", "Sales Manager",
"Sales Master Manager", "Sales User", "Supplier", "Support Manager",
"Support Team", "Website Manager"]
@@ -162,6 +162,7 @@ def import_defaults():
# UOM
{'uom_name': 'Unit', 'doctype': 'UOM', 'name': 'Unit'},
+ {'uom_name': 'Unit', 'doctype': 'UOM', 'name': 'Hour'},
{'uom_name': 'Box', 'doctype': 'UOM', 'name': 'Box'},
{'uom_name': 'Ft', 'doctype': 'UOM', 'name': 'Ft'},
{'uom_name': 'Kg', 'doctype': 'UOM', 'name': 'Kg'},
diff --git a/startup/observers.py b/startup/observers.py
index 0e17c9d7d6f..89980e4fc35 100644
--- a/startup/observers.py
+++ b/startup/observers.py
@@ -19,5 +19,4 @@ observer_map = {
"*:on_submit": "home.update_feed",
"Stock Entry:on_submit": "stock.doctype.material_request.material_request.update_completed_qty",
"Stock Entry:on_cancel": "stock.doctype.material_request.material_request.update_completed_qty",
-# "*:on_update": "webnotes.widgets.moduleview.update_count"
}
\ No newline at end of file
diff --git a/startup/open_count.py b/startup/open_count.py
index 7d8dcf87282..916ecbd5e0b 100644
--- a/startup/open_count.py
+++ b/startup/open_count.py
@@ -27,4 +27,6 @@ queries = {
"Production Order": {"docstatus":0},
"BOM": {"docstatus":0},
"Timesheet": {"docstatus":0},
+ "Time Log": {"status":"Draft"},
+ "Time Log Batch": {"status":"Draft"},
}
\ No newline at end of file
diff --git a/startup/query_handlers.py b/startup/query_handlers.py
index 52a2e9ebf04..eb5f99ec5c3 100644
--- a/startup/query_handlers.py
+++ b/startup/query_handlers.py
@@ -3,5 +3,4 @@ from __future__ import unicode_literals
standard_queries = {
"Warehouse": "stock.utils.get_warehouse_list",
"Customer": "selling.utils.get_customer_list",
-
}
\ No newline at end of file
diff --git a/startup/report_data_map.py b/startup/report_data_map.py
index c2e4023e9d0..ba3b546b2c0 100644
--- a/startup/report_data_map.py
+++ b/startup/report_data_map.py
@@ -87,7 +87,7 @@ data_map = {
},
"Stock Ledger Entry": {
"columns": ["name", "posting_date", "posting_time", "item_code", "warehouse", "actual_qty as qty",
- "voucher_type", "voucher_no", "ifnull(incoming_rate,0) as incoming_rate"],
+ "voucher_type", "voucher_no", "ifnull(incoming_rate,0) as incoming_rate", "stock_uom"],
"conditions": ["ifnull(is_cancelled, 'No')='No'"],
"order_by": "posting_date, posting_time, name",
"links": {
@@ -117,8 +117,7 @@ data_map = {
"(ifnull(qty, 0) - ifnull(ordered_qty, 0)) as qty"],
"from": "`tabMaterial Request Item` item, `tabMaterial Request` main",
"conditions": ["item.parent = main.name", "main.docstatus=1", "main.status != 'Stopped'",
- "material_request_type = 'Purchase'", "ifnull(warehouse, '')!=''",
- "ifnull(qty, 0) > ifnull(ordered_qty, 0)"],
+ "ifnull(warehouse, '')!=''", "ifnull(qty, 0) > ifnull(ordered_qty, 0)"],
"links": {
"item_code": ["Item", "name"],
"warehouse": ["Warehouse", "name"]
diff --git a/startup/startup.py b/startup/startup.py
index c74c5962354..89c0336d176 100644
--- a/startup/startup.py
+++ b/startup/startup.py
@@ -55,7 +55,7 @@ def get_todays_events():
SELECT COUNT(*) FROM `tabEvent`
WHERE owner = %s
AND event_type != 'Cancel'
- AND event_date = %s""", (
+ AND %s between date(starts_on) and date(ends_on)""", (
webnotes.session.user, nowdate()))
return todays_events[0][0]
diff --git a/stock/doctype/batch/batch.txt b/stock/doctype/batch/batch.txt
index cad4a0db2c1..6a6de8b2476 100644
--- a/stock/doctype/batch/batch.txt
+++ b/stock/doctype/batch/batch.txt
@@ -1,15 +1,17 @@
[
{
- "creation": "2013-01-10 16:34:25",
+ "creation": "2013-03-01 08:21:54",
"docstatus": 0,
- "modified": "2013-01-29 13:40:32",
+ "modified": "2013-03-01 08:22:16",
"modified_by": "Administrator",
"owner": "harshada@webnotestech.com"
},
{
+ "allow_attach": 1,
"autoname": "field:batch_id",
"doctype": "DocType",
"document_type": "Master",
+ "max_attachments": 5,
"module": "Stock",
"name": "__common__"
},
@@ -105,6 +107,15 @@
"oldfieldtype": "Small Text",
"read_only": 1
},
+ {
+ "doctype": "DocField",
+ "fieldname": "file_list",
+ "fieldtype": "Text",
+ "hidden": 1,
+ "label": "File List",
+ "no_copy": 1,
+ "print_hide": 1
+ },
{
"doctype": "DocPerm"
}
diff --git a/stock/doctype/batch/locale/de-doc.json b/stock/doctype/batch/locale/de-doc.json
new file mode 100644
index 00000000000..1fe0465145f
--- /dev/null
+++ b/stock/doctype/batch/locale/de-doc.json
@@ -0,0 +1,11 @@
+{
+ "Batch": "Stapel",
+ "Batch Finished Date": "Batch Beendet Datum",
+ "Batch ID": "Batch ID",
+ "Batch Started Date": "Batch gestartet Datum",
+ "Description": "Beschreibung",
+ "Expiry Date": "Verfallsdatum",
+ "Item": "Artikel",
+ "Stock": "Lager",
+ "Trash Reason": "Trash Reason"
+}
\ No newline at end of file
diff --git a/stock/doctype/batch/locale/pt-BR-doc.json b/stock/doctype/batch/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..31e90243b87
--- /dev/null
+++ b/stock/doctype/batch/locale/pt-BR-doc.json
@@ -0,0 +1,11 @@
+{
+ "Batch": "Lote",
+ "Batch Finished Date": "Data de T\u00e9rmino do Lote",
+ "Batch ID": "ID do Lote",
+ "Batch Started Date": "Data de In\u00edcio do Lote",
+ "Description": "Descri\u00e7\u00e3o",
+ "Expiry Date": "Data de validade",
+ "Item": "Item",
+ "Stock": "Estoque",
+ "Trash Reason": "Raz\u00e3o de p\u00f4r no lixo"
+}
\ No newline at end of file
diff --git a/stock/doctype/batch/locale/th-doc.json b/stock/doctype/batch/locale/th-doc.json
new file mode 100644
index 00000000000..2ddb0d173d6
--- /dev/null
+++ b/stock/doctype/batch/locale/th-doc.json
@@ -0,0 +1,11 @@
+{
+ "Batch": "\u0e0a\u0e38\u0e14",
+ "Batch Finished Date": "\u0e0a\u0e38\u0e14\u0e2a\u0e33\u0e40\u0e23\u0e47\u0e08\u0e23\u0e39\u0e1b\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48",
+ "Batch ID": "ID \u0e0a\u0e38\u0e14",
+ "Batch Started Date": "\u0e0a\u0e38\u0e14\u0e40\u0e23\u0e34\u0e48\u0e21\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48",
+ "Description": "\u0e25\u0e31\u0e01\u0e29\u0e13\u0e30",
+ "Expiry Date": "\u0e27\u0e31\u0e19\u0e2b\u0e21\u0e14\u0e2d\u0e32\u0e22\u0e38",
+ "Item": "\u0e0a\u0e34\u0e49\u0e19",
+ "Stock": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Trash Reason": "\u0e40\u0e2b\u0e15\u0e38\u0e1c\u0e25\u0e16\u0e31\u0e07\u0e02\u0e22\u0e30"
+}
\ No newline at end of file
diff --git a/stock/doctype/bin/bin.py b/stock/doctype/bin/bin.py
index 56d116064b7..37ecf85d2c2 100644
--- a/stock/doctype/bin/bin.py
+++ b/stock/doctype/bin/bin.py
@@ -87,7 +87,7 @@ class DocType:
if (flt(args.get("actual_qty")) < 0 or flt(args.get("reserved_qty")) > 0) \
and args.get("is_cancelled") == 'No' and args.get("is_amended")=='No':
self.reorder_item(args.get("voucher_type"), args.get("voucher_no"))
-
+
def get_first_sle(self):
sle = sql("""
select * from `tabStock Ledger Entry`
@@ -122,7 +122,8 @@ class DocType:
self.create_material_request(doc_type, doc_name, reorder_level, reorder_qty,
material_request_type)
- def create_material_request(self, doc_type, doc_name, reorder_level, reorder_qty, material_request_type):
+ def create_material_request(self, doc_type, doc_name, reorder_level, reorder_qty,
+ material_request_type):
""" Create indent on reaching reorder level """
defaults = webnotes.defaults.get_defaults()
item = webnotes.doc("Item", self.doc.item_code)
@@ -175,4 +176,5 @@ class DocType:
formatdate(), doc_type, doc_name, bean.doc.doctype,
get_url_to_form(bean.doc.doctype, bean.doc.name))
- sendmail(email_list, subject='Auto Material Request Generation Notification', msg = msg)
+ sendmail(email_list, subject='Auto Material Request Generation Notification', msg = msg)
+
diff --git a/stock/doctype/bin/locale/_messages_doc.json b/stock/doctype/bin/locale/_messages_doc.json
index 0f8c5732395..be46b3a02d5 100644
--- a/stock/doctype/bin/locale/_messages_doc.json
+++ b/stock/doctype/bin/locale/_messages_doc.json
@@ -6,9 +6,9 @@
"Projected Qty",
"Stock Value",
"Ordered Quantity",
+ "Warehouse",
"Warehouse Type",
"Actual Quantity",
- "Warehouse",
"Reserved Quantity",
"Valuation Rate",
"Quantity Requested for Purchase",
diff --git a/stock/doctype/bin/locale/_messages_js.json b/stock/doctype/bin/locale/_messages_js.json
new file mode 100644
index 00000000000..0637a088a01
--- /dev/null
+++ b/stock/doctype/bin/locale/_messages_js.json
@@ -0,0 +1 @@
+[]
\ No newline at end of file
diff --git a/stock/doctype/bin/locale/_messages_py.json b/stock/doctype/bin/locale/_messages_py.json
new file mode 100644
index 00000000000..e60d5f6eb5a
--- /dev/null
+++ b/stock/doctype/bin/locale/_messages_py.json
@@ -0,0 +1,4 @@
+[
+ "It was raised because the (actual + ordered + indented - reserved) quantity reaches re-order level when the following record was created",
+ "This is an auto generated Material Request."
+]
\ No newline at end of file
diff --git a/stock/doctype/bin/locale/de-doc.json b/stock/doctype/bin/locale/de-doc.json
new file mode 100644
index 00000000000..c2f4598184a
--- /dev/null
+++ b/stock/doctype/bin/locale/de-doc.json
@@ -0,0 +1,18 @@
+{
+ "Actual Quantity": "Tats\u00e4chliche Menge",
+ "Bin": "Kasten",
+ "FCFS Rate": "FCFS Rate",
+ "Item Code": "Item Code",
+ "Moving Average Rate": "Moving Average Rate",
+ "Ordered Quantity": "Bestellte Menge",
+ "Planned Qty": "Geplante Menge",
+ "Projected Qty": "Prognostizierte Anzahl",
+ "Quantity Requested for Purchase": "Beantragten Menge f\u00fcr Kauf",
+ "Reserved Quantity": "Reserviert Menge",
+ "Stock": "Lager",
+ "Stock Value": "Bestandswert",
+ "UOM": "UOM",
+ "Valuation Rate": "Valuation bewerten",
+ "Warehouse": "Lager",
+ "Warehouse Type": "Warehouse Typ"
+}
\ No newline at end of file
diff --git a/stock/doctype/bin/locale/pt-BR-doc.json b/stock/doctype/bin/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..4d8f55f3d4b
--- /dev/null
+++ b/stock/doctype/bin/locale/pt-BR-doc.json
@@ -0,0 +1,18 @@
+{
+ "Actual Quantity": "Quantidade Real",
+ "Bin": "Caixa",
+ "FCFS Rate": "Taxa FCFS",
+ "Item Code": "C\u00f3digo do Item",
+ "Moving Average Rate": "Taxa da M\u00e9dia M\u00f3vel",
+ "Ordered Quantity": "Quantidade encomendada",
+ "Planned Qty": "Qtde. planejada",
+ "Projected Qty": "Qtde. Projetada",
+ "Quantity Requested for Purchase": "Quantidade Solicitada para Compra",
+ "Reserved Quantity": "Quantidade Reservada",
+ "Stock": "Estoque",
+ "Stock Value": "Valor do Estoque",
+ "UOM": "UDM",
+ "Valuation Rate": "Taxa de Avalia\u00e7\u00e3o",
+ "Warehouse": "Almoxarifado",
+ "Warehouse Type": "Tipo de Almoxarifado"
+}
\ No newline at end of file
diff --git a/stock/doctype/bin/locale/pt-BR-py.json b/stock/doctype/bin/locale/pt-BR-py.json
new file mode 100644
index 00000000000..9ce73abb51c
--- /dev/null
+++ b/stock/doctype/bin/locale/pt-BR-py.json
@@ -0,0 +1,4 @@
+{
+ "It was raised because the (actual + ordered + indented - reserved) quantity reaches re-order level when the following record was created": "Foi levantada porque a (real + + ordenou recuado - reservado) a quantidade chega a novo pedido de n\u00edvel quando o registro a seguir foi criado",
+ "This is an auto generated Material Request.": "Este \u00e9 um auto solicitar material gerado."
+}
\ No newline at end of file
diff --git a/stock/doctype/bin/locale/th-doc.json b/stock/doctype/bin/locale/th-doc.json
new file mode 100644
index 00000000000..f1fffd6da2e
--- /dev/null
+++ b/stock/doctype/bin/locale/th-doc.json
@@ -0,0 +1,18 @@
+{
+ "Actual Quantity": "\u0e08\u0e33\u0e19\u0e27\u0e19\u0e17\u0e35\u0e48\u0e40\u0e01\u0e34\u0e14\u0e02\u0e36\u0e49\u0e19\u0e08\u0e23\u0e34\u0e07",
+ "Bin": "\u0e16\u0e31\u0e07",
+ "FCFS Rate": "\u0e2d\u0e31\u0e15\u0e23\u0e32 FCFS",
+ "Item Code": "\u0e23\u0e2b\u0e31\u0e2a\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Moving Average Rate": "\u0e22\u0e49\u0e32\u0e22\u0e2d\u0e31\u0e15\u0e23\u0e32\u0e40\u0e09\u0e25\u0e35\u0e48\u0e22",
+ "Ordered Quantity": "\u0e08\u0e33\u0e19\u0e27\u0e19\u0e2a\u0e31\u0e48\u0e07",
+ "Planned Qty": "\u0e08\u0e33\u0e19\u0e27\u0e19\u0e27\u0e32\u0e07\u0e41\u0e1c\u0e19",
+ "Projected Qty": "\u0e08\u0e33\u0e19\u0e27\u0e19\u0e17\u0e35\u0e48\u0e04\u0e32\u0e14\u0e01\u0e32\u0e23\u0e13\u0e4c\u0e44\u0e27\u0e49",
+ "Quantity Requested for Purchase": "\u0e1b\u0e23\u0e34\u0e21\u0e32\u0e13\u0e17\u0e35\u0e48\u0e02\u0e2d\u0e0b\u0e37\u0e49\u0e2d",
+ "Reserved Quantity": "\u0e08\u0e33\u0e19\u0e27\u0e19\u0e2a\u0e07\u0e27\u0e19",
+ "Stock": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Stock Value": "\u0e21\u0e39\u0e25\u0e04\u0e48\u0e32\u0e2b\u0e38\u0e49\u0e19",
+ "UOM": "UOM",
+ "Valuation Rate": "\u0e2d\u0e31\u0e15\u0e23\u0e32\u0e01\u0e32\u0e23\u0e1b\u0e23\u0e30\u0e40\u0e21\u0e34\u0e19",
+ "Warehouse": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Warehouse Type": "\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32"
+}
\ No newline at end of file
diff --git a/stock/doctype/bin/locale/th-py.json b/stock/doctype/bin/locale/th-py.json
new file mode 100644
index 00000000000..40f11b6fa05
--- /dev/null
+++ b/stock/doctype/bin/locale/th-py.json
@@ -0,0 +1,4 @@
+{
+ "It was raised because the (actual + ordered + indented - reserved) quantity reaches re-order level when the following record was created": "\u0e21\u0e31\u0e19\u0e16\u0e39\u0e01\u0e22\u0e01\u0e02\u0e36\u0e49\u0e19\u0e40\u0e1e\u0e23\u0e32\u0e30 (\u0e08\u0e23\u0e34\u0e07 + + \u0e2a\u0e31\u0e48\u0e07\u0e40\u0e22\u0e37\u0e49\u0e2d\u0e07 - \u0e2a\u0e07\u0e27\u0e19) \u0e1b\u0e23\u0e34\u0e21\u0e32\u0e13\u0e16\u0e36\u0e07\u0e23\u0e30\u0e14\u0e31\u0e1a\u0e43\u0e2b\u0e21\u0e48\u0e2a\u0e31\u0e48\u0e07\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e1a\u0e31\u0e19\u200b\u200b\u0e17\u0e36\u0e01\u0e15\u0e48\u0e2d\u0e44\u0e1b\u0e19\u0e35\u0e49\u0e16\u0e39\u0e01\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e02\u0e36\u0e49\u0e19",
+ "This is an auto generated Material Request.": "\u0e19\u0e35\u0e48\u0e04\u0e37\u0e2d\u0e02\u0e2d\u0e27\u0e31\u0e2a\u0e14\u0e38\u0e2d\u0e31\u0e15\u0e42\u0e19\u0e21\u0e31\u0e15\u0e34\u0e2a\u0e23\u0e49\u0e32\u0e07"
+}
\ No newline at end of file
diff --git a/stock/doctype/delivery_note/delivery_note.py b/stock/doctype/delivery_note/delivery_note.py
index b8d20fbe854..35d008bcca0 100644
--- a/stock/doctype/delivery_note/delivery_note.py
+++ b/stock/doctype/delivery_note/delivery_note.py
@@ -174,7 +174,12 @@ class DocType(SellingController):
def validate_reference_value(self):
"""Validate values with reference document with previous document"""
- get_obj('DocType Mapper', 'Sales Order-Delivery Note', with_children = 1).validate_reference_value(self, self.doc.name)
+ validate_ref = any([d.prevdoc_docname for d in self.doclist.get({"parentfield": self.fname})
+ if d.prevdoc_doctype == "Sales Order"])
+
+ if validate_ref:
+ get_obj('DocType Mapper', 'Sales Order-Delivery Note',
+ with_children = 1).validate_reference_value(self, self.doc.name)
def validate_for_items(self):
@@ -319,9 +324,9 @@ class DocType(SellingController):
webnotes.msgprint("%s Packing Slip(s) Cancelled" % res[0][1])
- def update_stock_ledger(self, update_stock, is_stopped = 0):
+ def update_stock_ledger(self, update_stock):
self.values = []
- for d in self.get_item_list(is_stopped):
+ for d in self.get_item_list():
if webnotes.conn.get_value("Item", d['item_code'], "is_stock_item") == "Yes":
if not d['warehouse']:
msgprint("Please enter Warehouse for item %s as it is stock item"
@@ -344,8 +349,8 @@ class DocType(SellingController):
get_obj('Stock Ledger', 'Stock Ledger').update_stock(self.values)
- def get_item_list(self, is_stopped):
- return get_obj('Sales Common').get_item_list(self, is_stopped)
+ def get_item_list(self):
+ return get_obj('Sales Common').get_item_list(self)
def make_sl_entry(self, d, wh, qty, in_value, update_stock):
diff --git a/stock/doctype/delivery_note/locale/de-doc.json b/stock/doctype/delivery_note/locale/de-doc.json
new file mode 100644
index 00000000000..e1fdee35b2a
--- /dev/null
+++ b/stock/doctype/delivery_note/locale/de-doc.json
@@ -0,0 +1,122 @@
+{
+ "% Amount Billed": "% Rechnungsbetrag",
+ "% Installed": "% Installierte",
+ "% of materials billed against this Delivery Note": "% Der Materialien gegen diese Lieferschein abgerechnet",
+ "% of materials delivered against this Delivery Note": "% Der Materialien gegen diese Lieferschein",
+ "Advertisement": "Anzeige",
+ "Amended From": "Ge\u00e4ndert von",
+ "Amendment Date": "\u00c4nderung Datum",
+ "Billing Status": "Billing-Status",
+ "Calculate Charges": "Berechnen Sie Geb\u00fchren",
+ "Campaign": "Kampagne",
+ "Cancel Reason": "Abbrechen Reason",
+ "Cancelled": "Abgesagt",
+ "Challan Date": "Challan Datum",
+ "Challan No": "Challan Nein",
+ "Cold Calling": "Cold Calling",
+ "Commission Rate (%)": "Kommission Rate (%)",
+ "Company": "Firma",
+ "Contact": "Kontakt",
+ "Contact Email": "Kontakt per E-Mail",
+ "Contact Info": "Kontakt Info",
+ "Contact Person": "Ansprechpartner",
+ "Conversion Rate": "Conversion Rate",
+ "Currency": "W\u00e4hrung",
+ "Customer": "Kunde",
+ "Customer Group": "Customer Group",
+ "Customer Name": "Name des Kunden",
+ "Customer's Currency": "Kunden W\u00e4hrung",
+ "Customer's Vendor": "Kunden Hersteller",
+ "DN": "DN",
+ "Date on which lorry started from your warehouse": "Datum, an dem Lkw begann von Ihrem Lager",
+ "Delivery Note": "Lieferschein",
+ "Delivery Note Items": "Lieferscheinpositionen",
+ "Draft": "Entwurf",
+ "Excise Page Number": "Excise Page Number",
+ "Exhibition": "Ausstellung",
+ "Existing Customer": "Bestehende Kunden",
+ "File List": "Dateiliste",
+ "Filling in Additional Information about the Delivery Note will help you analyze your data better.": "Ausf\u00fcllen Zus\u00e4tzliche Informationen \u00fcber den Lieferschein wird Ihnen helfen, Ihre Daten analysieren besser.",
+ "Fiscal Year": "Gesch\u00e4ftsjahr",
+ "Fully Billed": "Voll Billed",
+ "Get Items": "Holen Artikel",
+ "Get Taxes and Charges": "Holen Steuern und Abgaben",
+ "Get Terms and Conditions": "Holen AGB",
+ "Grand Total": "Grand Total",
+ "Grand Total (Export)": "Grand Total (Export)",
+ "If you have created a standard template in Sales Taxes and Charges Master, select one and click on the button below.": "Wenn Sie ein Standard-Template in Sales Steuern und Abgaben Meister erstellt haben, w\u00e4hlen Sie eine aus und klicken Sie auf den Button unten.",
+ "In Words": "In Worte",
+ "In Words (Export)": "In Words (Export)",
+ "In Words (Export) will be visible once you save the Delivery Note.": "In Words (Export) werden sichtbar, sobald Sie den Lieferschein zu speichern.",
+ "In Words will be visible once you save the Delivery Note.": "In Worte sichtbar sein wird, sobald Sie den Lieferschein zu speichern.",
+ "Installation Status": "Installation Status",
+ "Instructions": "Anleitung",
+ "Items": "Artikel",
+ "LR Date": "LR Datum",
+ "LR No": "In LR",
+ "Letter Head": "Briefkopf",
+ "Mass Mailing": "Mass Mailing",
+ "Mobile No": "In Mobile",
+ "More Info": "Mehr Info",
+ "Net Total*": "* Net Total",
+ "Not Billed": "Nicht Billed",
+ "P.O. Date": "P.O. Datum",
+ "P.O. No": "In P.O.",
+ "Packing Details": "Verpackungs-Details",
+ "Packing List": "Packliste",
+ "Partly Billed": "Teilweise Billed",
+ "Posting Date": "Buchungsdatum",
+ "Posting Time": "Posting Zeit",
+ "Price List": "Preisliste",
+ "Price List Currency": "W\u00e4hrung Preisliste",
+ "Price List Currency Conversion Rate": "Preisliste Currency Conversion Rate",
+ "Price List and Currency": "Listenpreis und W\u00e4hrungsrechner",
+ "Print Without Amount": "Drucken ohne Amount",
+ "Project Name": "Project Name",
+ "Rate at which Price list currency is converted to company's base currency": "Geschwindigkeit, mit der W\u00e4hrung der Preisliste zu Unternehmen der Basisw\u00e4hrung umgewandelt wird",
+ "Rate at which customer's currency is converted to company's base currency": "Rate, mit der Kunden W\u00e4hrung ist an Unternehmen Basisw\u00e4hrung umgerechnet",
+ "Re-Calculate Values": "Neu berechnen Werte",
+ "Reference": "Referenz",
+ "Required only for sample item.": "Nur erforderlich f\u00fcr die Probe Element.",
+ "Rounded Total": "Abgerundete insgesamt",
+ "Rounded Total (Export)": "Abgerundete Total (Export)",
+ "Sales BOM Help": "Vertrieb BOM Hilfe",
+ "Sales Order No": "In Sales Order",
+ "Sales Partner": "Vertriebspartner",
+ "Sales Taxes and Charges": "Vertrieb Steuern und Abgaben",
+ "Sales Team": "Sales Team",
+ "Sales Team1": "Vertrieb Team1",
+ "Select Print Heading": "W\u00e4hlen Sie Drucken \u00dcberschrift",
+ "Select Shipping Address": "W\u00e4hlen Versandadresse",
+ "Select Terms and Conditions": "W\u00e4hlen AGB",
+ "Select the currency in which price list is maintained": "W\u00e4hlen Sie die W\u00e4hrung, in der Preisliste wird beibehalten",
+ "Select the price list as entered in \"Price List\" master. This will pull the reference rates of items against this price list as specified in \"Item\" master.": "W\u00e4hlen Sie die Preisliste in der \"Preisliste\" Master eingetragen. Dadurch werden die Referenzkurse Artikel gegen diese Preisliste in der \"Item\" Master vorgegeben ziehen.",
+ "Select the relevant company name if you have multiple companies": "W\u00e4hlen Sie den entsprechenden Firmennamen, wenn Sie mehrere Unternehmen haben",
+ "Series": "Serie",
+ "Shipping Address": "Versandadresse",
+ "Source": "Quelle",
+ "Status": "Status",
+ "Stock": "Lager",
+ "Submitted": "Eingereicht",
+ "Supplier Reference": "Lieferant Reference",
+ "Taxes": "Steuern",
+ "Taxes and Charges": "Steuern und Abgaben",
+ "Taxes and Charges Calculation": "Steuern und Geb\u00fchren Berechnung",
+ "Taxes and Charges Total": "Steuern und Geb\u00fchren gesamt",
+ "Terms and Conditions": "AGB",
+ "Terms and Conditions Details": "AGB Einzelheiten",
+ "Terms and Conditions HTML": "AGB HTML",
+ "Territory": "Gebiet",
+ "The date at which current entry is corrected in the system.": "Der Zeitpunkt, zu dem aktuellen Eintrag in dem System korrigiert.",
+ "The date at which current entry will get or has actually executed.": "Das Datum, an dem aktuellen Eintrag zu erhalten oder wird tats\u00e4chlich ausgef\u00fchrt.",
+ "Time at which items were delivered from warehouse": "Zeit, mit dem Gegenst\u00e4nde wurden aus dem Lager geliefert",
+ "To Warehouse": "Um Warehouse",
+ "To manage multiple series please go to Setup > Manage Series": "Um mehrere Reihen zu verwalten gehen Sie bitte auf Setup> Verwalten Series",
+ "Total Commission": "Gesamt Kommission",
+ "Totals": "Totals",
+ "Track this Delivery Note against any Project": "Verfolgen Sie diesen Lieferschein gegen Projekt",
+ "Transporter Info": "Transporter Info",
+ "Transporter Name": "Transporter Namen",
+ "Transporter lorry number": "Transporter Lkw-Zahl",
+ "You can make a delivery note from multiple sales orders. Select sales orders one by one and click on the button below.": "Sie k\u00f6nnen einen Lieferschein aus mehreren Auftr\u00e4gen zu machen. W\u00e4hlen Sie Auftr\u00e4ge nacheinander aus und klicken Sie auf den Button unten."
+}
\ No newline at end of file
diff --git a/stock/doctype/delivery_note/locale/pt-BR-doc.json b/stock/doctype/delivery_note/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..037051ef4c1
--- /dev/null
+++ b/stock/doctype/delivery_note/locale/pt-BR-doc.json
@@ -0,0 +1,122 @@
+{
+ "% Amount Billed": "Valor faturado %",
+ "% Installed": "Instalado %",
+ "% of materials billed against this Delivery Note": "% de materiais faturados contra esta Guia de Remessa",
+ "% of materials delivered against this Delivery Note": "% de materiais entregues contra esta Guia de Remessa",
+ "Advertisement": "An\u00fancio",
+ "Amended From": "Corrigido De",
+ "Amendment Date": "Data da Corre\u00e7\u00e3o",
+ "Billing Status": "Estado do Faturamento",
+ "Calculate Charges": "Calcular Encargos",
+ "Campaign": "Campanha",
+ "Cancel Reason": "Motivo do Cancelar",
+ "Cancelled": "Cancelado",
+ "Challan Date": "Data do Recibo",
+ "Challan No": "N\u00ba do Recibo",
+ "Cold Calling": "Cold Calling",
+ "Commission Rate (%)": "Taxa de Comiss\u00e3o (%)",
+ "Company": "Empresa",
+ "Contact": "Contato",
+ "Contact Email": "E-mail do Contato",
+ "Contact Info": "Informa\u00e7\u00f5es para Contato",
+ "Contact Person": "Pessoa de Contato",
+ "Conversion Rate": "Taxa de Convers\u00e3o",
+ "Currency": "Moeda",
+ "Customer": "Cliente",
+ "Customer Group": "Grupo de Clientes",
+ "Customer Name": "Nome do cliente",
+ "Customer's Currency": "Moeda do Cliente",
+ "Customer's Vendor": "Vendedor do cliente",
+ "DN": "DN",
+ "Date on which lorry started from your warehouse": "Data em que o caminh\u00e3o partiu do seu almoxarifado",
+ "Delivery Note": "Guia de Remessa",
+ "Delivery Note Items": "Itens da Guia de Remessa",
+ "Draft": "Rascunho",
+ "Excise Page Number": "N\u00famero de p\u00e1gina do imposto",
+ "Exhibition": "Exposi\u00e7\u00e3o",
+ "Existing Customer": "Cliente existente",
+ "File List": "Lista de Arquivos",
+ "Filling in Additional Information about the Delivery Note will help you analyze your data better.": "Preenchimento de informa\u00e7\u00f5es adicionais sobre a Guia de Remessa ir\u00e1 ajud\u00e1-lo a analisar os seus dados melhor.",
+ "Fiscal Year": "Exerc\u00edcio fiscal",
+ "Fully Billed": "Totalmente faturado",
+ "Get Items": "Obter itens",
+ "Get Taxes and Charges": "Obter Impostos e Encargos",
+ "Get Terms and Conditions": "Obter os Termos e Condi\u00e7\u00f5es",
+ "Grand Total": "Total Geral",
+ "Grand Total (Export)": "Total Geral (Exporta\u00e7\u00e3o)",
+ "If you have created a standard template in Sales Taxes and Charges Master, select one and click on the button below.": "Se voc\u00ea criou um modelo padr\u00e3o no cadastro de Impostos de Vendas e Encargos, selecione um e clique no bot\u00e3o abaixo.",
+ "In Words": "Por extenso",
+ "In Words (Export)": "Por extenso (Exporta\u00e7\u00e3o)",
+ "In Words (Export) will be visible once you save the Delivery Note.": "Por extenso (Exporta\u00e7\u00e3o) ser\u00e1 vis\u00edvel quando voc\u00ea salvar a Guia de Remessa.",
+ "In Words will be visible once you save the Delivery Note.": "Por extenso ser\u00e1 vis\u00edvel quando voc\u00ea salvar a Guia de Remessa.",
+ "Installation Status": "Estado da Instala\u00e7\u00e3o",
+ "Instructions": "Instru\u00e7\u00f5es",
+ "Items": "Itens",
+ "LR Date": "Data LR",
+ "LR No": "N\u00ba LR",
+ "Letter Head": "Timbrado",
+ "Mass Mailing": "Divulga\u00e7\u00e3o em massa",
+ "Mobile No": "Telefone Celular",
+ "More Info": "Mais informa\u00e7\u00f5es",
+ "Net Total*": "Total L\u00edquido*",
+ "Not Billed": "N\u00e3o Faturado",
+ "P.O. Date": "Data PO",
+ "P.O. No": "N\u00ba PO",
+ "Packing Details": "Detalhes da embalagem",
+ "Packing List": "Lista de embalagem",
+ "Partly Billed": "Parcialmente faturado",
+ "Posting Date": "Data da Postagem",
+ "Posting Time": "Hor\u00e1rio da Postagem",
+ "Price List": "Lista de Pre\u00e7os",
+ "Price List Currency": "Moeda da Lista de Pre\u00e7os",
+ "Price List Currency Conversion Rate": "Taxa de convers\u00e3o da moeda da lista de pre\u00e7os",
+ "Price List and Currency": "Lista de Pre\u00e7os e Moeda",
+ "Print Without Amount": "Imprimir Sem Quantia",
+ "Project Name": "Nome do Projeto",
+ "Rate at which Price list currency is converted to company's base currency": "Taxa na qual a moeda da lista de pre\u00e7os \u00e9 convertida para a moeda base da empresa",
+ "Rate at which customer's currency is converted to company's base currency": "Taxa na qual a moeda do cliente \u00e9 convertida para a moeda base da empresa",
+ "Re-Calculate Values": "Re-calcular valores",
+ "Reference": "Refer\u00eancia",
+ "Required only for sample item.": "Necess\u00e1rio apenas para o item de amostra.",
+ "Rounded Total": "Total arredondado",
+ "Rounded Total (Export)": "Total arredondado (Exporta\u00e7\u00e3o)",
+ "Sales BOM Help": "Ajuda da LDM de Vendas",
+ "Sales Order No": "N\u00ba da Ordem de Venda",
+ "Sales Partner": "Parceiro de Vendas",
+ "Sales Taxes and Charges": "Impostos e Taxas sobre Vendas",
+ "Sales Team": "Equipe de Vendas",
+ "Sales Team1": "Equipe de Vendas",
+ "Select Print Heading": "Selecione o Cabe\u00e7alho de Impress\u00e3o",
+ "Select Shipping Address": "Selecione o Endere\u00e7o para Envio",
+ "Select Terms and Conditions": "Selecione os Termos e Condi\u00e7\u00f5es",
+ "Select the currency in which price list is maintained": "Selecione a moeda na qual a lista de pre\u00e7os \u00e9 mantida",
+ "Select the price list as entered in \"Price List\" master. This will pull the reference rates of items against this price list as specified in \"Item\" master.": "Selecione a lista de pre\u00e7os como cadastrada em "Lista de Pre\u00e7o". Isso vai puxar os valores de refer\u00eancia dos itens contra esta lista de pre\u00e7os, conforme especificado no cadastro "Item".",
+ "Select the relevant company name if you have multiple companies": "Selecione o nome da empresa em quest\u00e3o, se voc\u00ea tem v\u00e1rias empresas",
+ "Series": "S\u00e9ries",
+ "Shipping Address": "Endere\u00e7o de envio",
+ "Source": "Fonte",
+ "Status": "Estado",
+ "Stock": "Estoque",
+ "Submitted": "Enviado",
+ "Supplier Reference": "Refer\u00eancia do Fornecedor",
+ "Taxes": "Impostos",
+ "Taxes and Charges": "Impostos e Encargos",
+ "Taxes and Charges Calculation": "C\u00e1lculo de Impostos e Encargos",
+ "Taxes and Charges Total": "Total de Impostos e Encargos",
+ "Terms and Conditions": "Termos e Condi\u00e7\u00f5es",
+ "Terms and Conditions Details": "Detalhes dos Termos e Condi\u00e7\u00f5es",
+ "Terms and Conditions HTML": "Termos e Condi\u00e7\u00f5es HTML",
+ "Territory": "Territ\u00f3rio",
+ "The date at which current entry is corrected in the system.": "A data em que o lan\u00e7amento atual \u00e9 corrigido no sistema.",
+ "The date at which current entry will get or has actually executed.": "A data em que o lan\u00e7amento atual vai ser ou foi realmente executado.",
+ "Time at which items were delivered from warehouse": "Hor\u00e1rio em que os itens foram entregues do almoxarifado",
+ "To Warehouse": "Para Almoxarifado",
+ "To manage multiple series please go to Setup > Manage Series": "Para gerenciar v\u00e1rias s\u00e9ries por favor, v\u00e1 para Configura\u00e7\u00e3o > Gerenciar S\u00e9ries",
+ "Total Commission": "Total da Comiss\u00e3o",
+ "Totals": "Totais",
+ "Track this Delivery Note against any Project": "Acompanhar este Guia de Remessa contra qualquer projeto",
+ "Transporter Info": "Informa\u00e7\u00f5es da Transportadora",
+ "Transporter Name": "Nome da Transportadora",
+ "Transporter lorry number": "N\u00famero do caminh\u00e3o da Transportadora",
+ "You can make a delivery note from multiple sales orders. Select sales orders one by one and click on the button below.": "Voc\u00ea pode fazer uma Guia de Remessa a partir de v\u00e1rias Ordens de Venda. Selecione as Ordens de Venda, uma a uma e clique no bot\u00e3o abaixo."
+}
\ No newline at end of file
diff --git a/stock/doctype/delivery_note/locale/th-doc.json b/stock/doctype/delivery_note/locale/th-doc.json
new file mode 100644
index 00000000000..57100236086
--- /dev/null
+++ b/stock/doctype/delivery_note/locale/th-doc.json
@@ -0,0 +1,122 @@
+{
+ "% Amount Billed": "\u0e08\u0e33\u0e19\u0e27\u0e19\u0e40\u0e07\u0e34\u0e19% \u0e08\u0e33\u0e19\u0e27\u0e19",
+ "% Installed": "% Installed",
+ "% of materials billed against this Delivery Note": "% \u0e02\u0e2d\u0e07\u0e27\u0e31\u0e2a\u0e14\u0e38\u0e17\u0e35\u0e48\u0e40\u0e23\u0e35\u0e22\u0e01\u0e40\u0e01\u0e47\u0e1a\u0e40\u0e07\u0e34\u0e19\u0e01\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e08\u0e31\u0e14\u0e2a\u0e48\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e2b\u0e15\u0e38\u0e19\u0e35\u0e49",
+ "% of materials delivered against this Delivery Note": "% \u0e02\u0e2d\u0e07\u0e27\u0e31\u0e2a\u0e14\u0e38\u0e17\u0e35\u0e48\u0e2a\u0e48\u0e07\u0e01\u0e31\u0e1a\u0e2a\u0e48\u0e07\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e2b\u0e15\u0e38\u0e19\u0e35\u0e49",
+ "Advertisement": "\u0e01\u0e32\u0e23\u0e42\u0e06\u0e29\u0e13\u0e32",
+ "Amended From": "\u0e41\u0e01\u0e49\u0e44\u0e02\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21",
+ "Amendment Date": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e41\u0e01\u0e49\u0e44\u0e02",
+ "Billing Status": "\u0e2a\u0e16\u0e32\u0e19\u0e30\u0e01\u0e32\u0e23\u0e40\u0e23\u0e35\u0e22\u0e01\u0e40\u0e01\u0e47\u0e1a\u0e40\u0e07\u0e34\u0e19",
+ "Calculate Charges": "\u0e04\u0e33\u0e19\u0e27\u0e13\u0e04\u0e48\u0e32\u0e43\u0e0a\u0e49\u0e1a\u0e23\u0e34\u0e01\u0e32\u0e23",
+ "Campaign": "\u0e23\u0e13\u0e23\u0e07\u0e04\u0e4c",
+ "Cancel Reason": "\u0e22\u0e01\u0e40\u0e25\u0e34\u0e01\u0e40\u0e2b\u0e15\u0e38\u0e1c\u0e25",
+ "Cancelled": "\u0e22\u0e01\u0e40\u0e25\u0e34\u0e01",
+ "Challan Date": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48 Challan",
+ "Challan No": "Challan \u0e44\u0e21\u0e48\u0e21\u0e35",
+ "Cold Calling": "\u0e42\u0e17\u0e23\u0e40\u0e22\u0e47\u0e19",
+ "Commission Rate (%)": "\u0e2d\u0e31\u0e15\u0e23\u0e32\u0e04\u0e48\u0e32\u0e04\u0e2d\u0e21\u0e21\u0e34\u0e0a\u0e0a\u0e31\u0e48\u0e19 (%)",
+ "Company": "\u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17",
+ "Contact": "\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d",
+ "Contact Email": "\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e4c",
+ "Contact Info": "\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d",
+ "Contact Person": "Contact Person",
+ "Conversion Rate": "\u0e2d\u0e31\u0e15\u0e23\u0e32\u0e01\u0e32\u0e23\u0e41\u0e1b\u0e25\u0e07",
+ "Currency": "\u0e40\u0e07\u0e34\u0e19\u0e15\u0e23\u0e32",
+ "Customer": "\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Customer Group": "\u0e01\u0e25\u0e38\u0e48\u0e21\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Customer Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Customer's Currency": "\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e02\u0e2d\u0e07\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Customer's Vendor": "\u0e1c\u0e39\u0e49\u0e02\u0e32\u0e22\u0e02\u0e2d\u0e07\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "DN": "DN",
+ "Date on which lorry started from your warehouse": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19\u0e08\u0e32\u0e01\u0e23\u0e16\u0e1a\u0e23\u0e23\u0e17\u0e38\u0e01\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13",
+ "Delivery Note": "\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e2b\u0e15\u0e38\u0e08\u0e31\u0e14\u0e2a\u0e48\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Delivery Note Items": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e08\u0e31\u0e14\u0e2a\u0e48\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e2b\u0e15\u0e38",
+ "Draft": "\u0e23\u0e48\u0e32\u0e07",
+ "Excise Page Number": "\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e25\u0e02\u0e2b\u0e19\u0e49\u0e32\u0e2a\u0e23\u0e23\u0e1e\u0e2a\u0e32\u0e21\u0e34\u0e15",
+ "Exhibition": "\u0e07\u0e32\u0e19\u0e21\u0e2b\u0e01\u0e23\u0e23\u0e21",
+ "Existing Customer": "\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32\u0e17\u0e35\u0e48\u0e21\u0e35\u0e2d\u0e22\u0e39\u0e48",
+ "File List": "\u0e23\u0e32\u0e22\u0e0a\u0e37\u0e48\u0e2d\u0e44\u0e1f\u0e25\u0e4c",
+ "Filling in Additional Information about the Delivery Note will help you analyze your data better.": "\u0e01\u0e23\u0e2d\u0e01\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21\u0e40\u0e01\u0e35\u0e48\u0e22\u0e27\u0e01\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e08\u0e31\u0e14\u0e2a\u0e48\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e2b\u0e15\u0e38\u0e08\u0e30\u0e0a\u0e48\u0e27\u0e22\u0e43\u0e2b\u0e49\u0e04\u0e38\u0e13\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e27\u0e34\u0e40\u0e04\u0e23\u0e32\u0e30\u0e2b\u0e4c\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13\u0e44\u0e14\u0e49\u0e14\u0e35\u0e22\u0e34\u0e48\u0e07\u0e02\u0e36\u0e49\u0e19",
+ "Fiscal Year": "\u0e1b\u0e35\u0e07\u0e1a\u0e1b\u0e23\u0e30\u0e21\u0e32\u0e13",
+ "Fully Billed": "\u0e08\u0e33\u0e19\u0e27\u0e19\u0e21\u0e32\u0e01\u0e17\u0e35\u0e48\u0e2a\u0e38\u0e14\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e40\u0e15\u0e47\u0e21\u0e17\u0e35\u0e48",
+ "Get Items": "\u0e23\u0e31\u0e1a\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Get Taxes and Charges": "\u0e23\u0e31\u0e1a\u0e20\u0e32\u0e29\u0e35\u0e41\u0e25\u0e30\u0e04\u0e48\u0e32\u0e18\u0e23\u0e23\u0e21\u0e40\u0e19\u0e35\u0e22\u0e21",
+ "Get Terms and Conditions": "\u0e23\u0e31\u0e1a\u0e02\u0e49\u0e2d\u0e15\u0e01\u0e25\u0e07\u0e41\u0e25\u0e30\u0e40\u0e07\u0e37\u0e48\u0e2d\u0e19\u0e44\u0e02",
+ "Grand Total": "\u0e23\u0e27\u0e21\u0e17\u0e31\u0e49\u0e07\u0e2a\u0e34\u0e49\u0e19",
+ "Grand Total (Export)": "\u0e41\u0e01\u0e23\u0e19\u0e14\u0e4c\u0e23\u0e27\u0e21 (\u0e2a\u0e48\u0e07\u0e2d\u0e2d\u0e01)",
+ "If you have created a standard template in Sales Taxes and Charges Master, select one and click on the button below.": "\u0e16\u0e49\u0e32\u0e04\u0e38\u0e13\u0e44\u0e14\u0e49\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e41\u0e21\u0e48\u0e41\u0e1a\u0e1a\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19\u0e43\u0e19\u0e20\u0e32\u0e29\u0e35\u0e02\u0e32\u0e22\u0e41\u0e25\u0e30\u0e1b\u0e23\u0e34\u0e0d\u0e0d\u0e32\u0e42\u0e17\u0e04\u0e48\u0e32\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e2b\u0e19\u0e36\u0e48\u0e07\u0e41\u0e25\u0e30\u0e04\u0e25\u0e34\u0e01\u0e17\u0e35\u0e48\u0e1b\u0e38\u0e48\u0e21\u0e14\u0e49\u0e32\u0e19\u0e25\u0e48\u0e32\u0e07",
+ "In Words": "\u0e43\u0e19\u0e04\u0e33\u0e1e\u0e39\u0e14\u0e02\u0e2d\u0e07",
+ "In Words (Export)": "\u0e43\u0e19\u0e04\u0e33\u0e1e\u0e39\u0e14\u0e02\u0e2d\u0e07 (\u0e2a\u0e48\u0e07\u0e2d\u0e2d\u0e01)",
+ "In Words (Export) will be visible once you save the Delivery Note.": "\u0e43\u0e19\u0e04\u0e33\u0e1e\u0e39\u0e14\u0e02\u0e2d\u0e07 (\u0e2a\u0e48\u0e07\u0e2d\u0e2d\u0e01) \u0e08\u0e30\u0e1b\u0e23\u0e32\u0e01\u0e0f\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e04\u0e38\u0e13\u0e1a\u0e31\u0e19\u0e17\u0e36\u0e01\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e2b\u0e15\u0e38\u0e08\u0e31\u0e14\u0e2a\u0e48\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "In Words will be visible once you save the Delivery Note.": "\u0e43\u0e19\u0e04\u0e33\u0e1e\u0e39\u0e14\u0e02\u0e2d\u0e07\u0e08\u0e30\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e21\u0e2d\u0e07\u0e40\u0e2b\u0e47\u0e19\u0e44\u0e14\u0e49\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e04\u0e38\u0e13\u0e1a\u0e31\u0e19\u0e17\u0e36\u0e01\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e2b\u0e15\u0e38\u0e08\u0e31\u0e14\u0e2a\u0e48\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Installation Status": "\u0e2a\u0e16\u0e32\u0e19\u0e30\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07",
+ "Instructions": "\u0e04\u0e33\u0e41\u0e19\u0e30\u0e19\u0e33",
+ "Items": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23",
+ "LR Date": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48 LR",
+ "LR No": "LR \u0e44\u0e21\u0e48\u0e21\u0e35",
+ "Letter Head": "\u0e2b\u0e31\u0e27\u0e08\u0e14\u0e2b\u0e21\u0e32\u0e22",
+ "Mass Mailing": "\u0e08\u0e14\u0e2b\u0e21\u0e32\u0e22\u0e21\u0e27\u0e25",
+ "Mobile No": "\u0e21\u0e37\u0e2d\u0e16\u0e37\u0e2d\u0e44\u0e21\u0e48\u0e21\u0e35",
+ "More Info": "\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21",
+ "Net Total*": "* \u0e2a\u0e38\u0e17\u0e18\u0e34",
+ "Not Billed": "\u0e44\u0e21\u0e48\u0e44\u0e14\u0e49\u0e40\u0e23\u0e35\u0e22\u0e01\u0e40\u0e01\u0e47\u0e1a",
+ "P.O. Date": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48 PO",
+ "P.O. No": "\u0e44\u0e21\u0e48\u0e21\u0e35 PO",
+ "Packing Details": "\u0e1a\u0e23\u0e23\u0e08\u0e38\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14",
+ "Packing List": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e1a\u0e23\u0e23\u0e08\u0e38",
+ "Partly Billed": "\u0e08\u0e33\u0e19\u0e27\u0e19\u0e21\u0e32\u0e01\u0e17\u0e35\u0e48\u0e2a\u0e38\u0e14\u0e40\u0e1b\u0e47\u0e19\u0e2a\u0e48\u0e27\u0e19\u0e43\u0e2b\u0e0d\u0e48",
+ "Posting Date": "\u0e42\u0e1e\u0e2a\u0e15\u0e4c\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48",
+ "Posting Time": "\u0e42\u0e1e\u0e2a\u0e15\u0e4c\u0e40\u0e27\u0e25\u0e32",
+ "Price List": "\u0e1a\u0e31\u0e0d\u0e0a\u0e35\u0e41\u0e08\u0e49\u0e07\u0e23\u0e32\u0e04\u0e32\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Price List Currency": "\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e23\u0e32\u0e04\u0e32",
+ "Price List Currency Conversion Rate": "\u0e23\u0e32\u0e22\u0e0a\u0e37\u0e48\u0e2d\u0e23\u0e32\u0e04\u0e32\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e2d\u0e31\u0e15\u0e23\u0e32\u0e01\u0e32\u0e23\u0e41\u0e1b\u0e25\u0e07",
+ "Price List and Currency": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e23\u0e32\u0e04\u0e32\u0e41\u0e25\u0e30\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19",
+ "Print Without Amount": "\u0e1e\u0e34\u0e21\u0e1e\u0e4c\u0e17\u0e35\u0e48\u0e44\u0e21\u0e48\u0e21\u0e35\u0e08\u0e33\u0e19\u0e27\u0e19",
+ "Project Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e42\u0e04\u0e23\u0e07\u0e01\u0e32\u0e23",
+ "Rate at which Price list currency is converted to company's base currency": "\u0e2d\u0e31\u0e15\u0e23\u0e32\u0e17\u0e35\u0e48\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e23\u0e32\u0e04\u0e32\u0e08\u0e30\u0e16\u0e39\u0e01\u0e41\u0e1b\u0e25\u0e07\u0e40\u0e1b\u0e47\u0e19\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e2b\u0e25\u0e31\u0e01\u0e02\u0e2d\u0e07 \u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17",
+ "Rate at which customer's currency is converted to company's base currency": "\u0e2d\u0e31\u0e15\u0e23\u0e32\u0e17\u0e35\u0e48\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e02\u0e2d\u0e07\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32\u0e08\u0e30\u0e16\u0e39\u0e01\u0e41\u0e1b\u0e25\u0e07\u0e40\u0e1b\u0e47\u0e19\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e2b\u0e25\u0e31\u0e01\u0e02\u0e2d\u0e07 \u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17",
+ "Re-Calculate Values": "\u0e04\u0e48\u0e32\u0e04\u0e33\u0e19\u0e27\u0e13\u0e43\u0e2b\u0e21\u0e48",
+ "Reference": "\u0e01\u0e32\u0e23\u0e2d\u0e49\u0e32\u0e07\u0e2d\u0e34\u0e07",
+ "Required only for sample item.": "\u0e17\u0e35\u0e48\u0e08\u0e33\u0e40\u0e1b\u0e47\u0e19\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e15\u0e31\u0e27\u0e2d\u0e22\u0e48\u0e32\u0e07",
+ "Rounded Total": "\u0e23\u0e27\u0e21\u0e01\u0e25\u0e21",
+ "Rounded Total (Export)": "\u0e23\u0e27\u0e21\u0e01\u0e25\u0e21 (\u0e2a\u0e48\u0e07\u0e2d\u0e2d\u0e01)",
+ "Sales BOM Help": "\u0e0a\u0e48\u0e27\u0e22\u0e40\u0e2b\u0e25\u0e37\u0e2d BOM \u0e02\u0e32\u0e22",
+ "Sales Order No": "\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e22\u0e2d\u0e14\u0e02\u0e32\u0e22",
+ "Sales Partner": "\u0e1e\u0e31\u0e19\u0e18\u0e21\u0e34\u0e15\u0e23\u0e01\u0e32\u0e23\u0e02\u0e32\u0e22",
+ "Sales Taxes and Charges": "\u0e20\u0e32\u0e29\u0e35\u0e01\u0e32\u0e23\u0e02\u0e32\u0e22\u0e41\u0e25\u0e30\u0e04\u0e48\u0e32\u0e43\u0e0a\u0e49\u0e08\u0e48\u0e32\u0e22",
+ "Sales Team": "\u0e17\u0e35\u0e21\u0e02\u0e32\u0e22",
+ "Sales Team1": "\u0e02\u0e32\u0e22 Team1",
+ "Select Print Heading": "\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e1e\u0e34\u0e21\u0e1e\u0e4c\u0e2b\u0e31\u0e27\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07",
+ "Select Shipping Address": "\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e2a\u0e16\u0e32\u0e19\u0e17\u0e35\u0e48\u0e08\u0e31\u0e14",
+ "Select Terms and Conditions": "\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e02\u0e49\u0e2d\u0e15\u0e01\u0e25\u0e07\u0e41\u0e25\u0e30\u0e40\u0e07\u0e37\u0e48\u0e2d\u0e19\u0e44\u0e02",
+ "Select the currency in which price list is maintained": "\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e17\u0e35\u0e48\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e23\u0e32\u0e04\u0e32\u0e08\u0e30\u0e22\u0e31\u0e07\u0e04\u0e07",
+ "Select the price list as entered in \"Price List\" master. This will pull the reference rates of items against this price list as specified in \"Item\" master.": "\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e23\u0e32\u0e04\u0e32\u0e15\u0e32\u0e21\u0e17\u0e35\u0e48\u0e1b\u0e49\u0e2d\u0e19\u0e43\u0e19 "\u0e23\u0e32\u0e04\u0e32\u0e15\u0e32\u0e21\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23" \u0e15\u0e49\u0e19\u0e41\u0e1a\u0e1a \u0e19\u0e35\u0e49\u0e08\u0e30\u0e14\u0e36\u0e07\u0e2d\u0e31\u0e15\u0e23\u0e32\u0e41\u0e25\u0e01\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e2d\u0e49\u0e32\u0e07\u0e2d\u0e34\u0e07\u0e02\u0e2d\u0e07\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e01\u0e31\u0e1a\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e23\u0e32\u0e04\u0e32\u0e19\u0e35\u0e49\u0e15\u0e32\u0e21\u0e17\u0e35\u0e48\u0e23\u0e30\u0e1a\u0e38\u0e44\u0e27\u0e49\u0e43\u0e19 "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23" \u0e15\u0e49\u0e19\u0e41\u0e1a\u0e1a",
+ "Select the relevant company name if you have multiple companies": "\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e0a\u0e37\u0e48\u0e2d \u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17 \u0e17\u0e35\u0e48\u0e40\u0e01\u0e35\u0e48\u0e22\u0e27\u0e02\u0e49\u0e2d\u0e07\u0e16\u0e49\u0e32\u0e04\u0e38\u0e13\u0e21\u0e35\u0e2b\u0e25\u0e32\u0e22 \u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17",
+ "Series": "\u0e0a\u0e38\u0e14",
+ "Shipping Address": "\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e08\u0e31\u0e14\u0e2a\u0e48\u0e07",
+ "Source": "\u0e41\u0e2b\u0e25\u0e48\u0e07",
+ "Status": "\u0e2a\u0e16\u0e32\u0e19\u0e30",
+ "Stock": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Submitted": "Submitted",
+ "Supplier Reference": "\u0e2d\u0e49\u0e32\u0e07\u0e2d\u0e34\u0e07\u0e08\u0e33\u0e2b\u0e19\u0e48\u0e32\u0e22",
+ "Taxes": "\u0e20\u0e32\u0e29\u0e35",
+ "Taxes and Charges": "\u0e20\u0e32\u0e29\u0e35\u0e41\u0e25\u0e30\u0e04\u0e48\u0e32\u0e1a\u0e23\u0e34\u0e01\u0e32\u0e23",
+ "Taxes and Charges Calculation": "\u0e20\u0e32\u0e29\u0e35\u0e41\u0e25\u0e30\u0e01\u0e32\u0e23\u0e04\u0e33\u0e19\u0e27\u0e13\u0e04\u0e48\u0e32\u0e43\u0e0a\u0e49\u0e08\u0e48\u0e32\u0e22",
+ "Taxes and Charges Total": "\u0e20\u0e32\u0e29\u0e35\u0e41\u0e25\u0e30\u0e04\u0e48\u0e32\u0e43\u0e0a\u0e49\u0e08\u0e48\u0e32\u0e22\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14",
+ "Terms and Conditions": "\u0e02\u0e49\u0e2d\u0e15\u0e01\u0e25\u0e07\u0e41\u0e25\u0e30\u0e40\u0e07\u0e37\u0e48\u0e2d\u0e19\u0e44\u0e02",
+ "Terms and Conditions Details": "\u0e02\u0e49\u0e2d\u0e15\u0e01\u0e25\u0e07\u0e41\u0e25\u0e30\u0e40\u0e07\u0e37\u0e48\u0e2d\u0e19\u0e44\u0e02\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14",
+ "Terms and Conditions HTML": "\u0e02\u0e49\u0e2d\u0e15\u0e01\u0e25\u0e07\u0e41\u0e25\u0e30\u0e40\u0e07\u0e37\u0e48\u0e2d\u0e19\u0e44\u0e02 HTML",
+ "Territory": "\u0e2d\u0e32\u0e13\u0e32\u0e40\u0e02\u0e15",
+ "The date at which current entry is corrected in the system.": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e17\u0e35\u0e48\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e1b\u0e31\u0e08\u0e08\u0e38\u0e1a\u0e31\u0e19\u0e21\u0e35\u0e01\u0e32\u0e23\u0e41\u0e01\u0e49\u0e44\u0e02\u0e43\u0e19\u0e23\u0e30\u0e1a\u0e1a",
+ "The date at which current entry will get or has actually executed.": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e17\u0e35\u0e48\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e1b\u0e31\u0e08\u0e08\u0e38\u0e1a\u0e31\u0e19\u0e08\u0e30\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e2b\u0e23\u0e37\u0e2d\u0e44\u0e14\u0e49\u0e14\u0e33\u0e40\u0e19\u0e34\u0e19\u0e01\u0e32\u0e23\u0e08\u0e23\u0e34\u0e07",
+ "Time at which items were delivered from warehouse": "\u0e40\u0e27\u0e25\u0e32\u0e17\u0e35\u0e48\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e16\u0e39\u0e01\u0e2a\u0e48\u0e07\u0e21\u0e32\u0e08\u0e32\u0e01\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "To Warehouse": "\u0e44\u0e1b\u0e17\u0e35\u0e48\u0e42\u0e01\u0e14\u0e31\u0e07",
+ "To manage multiple series please go to Setup > Manage Series": "\u0e43\u0e19\u0e01\u0e32\u0e23\u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e01\u0e31\u0e1a\u0e2b\u0e25\u0e32\u0e22\u0e0a\u0e38\u0e14\u0e42\u0e1b\u0e23\u0e14\u0e44\u0e1b\u0e17\u0e35\u0e48\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32> \u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e41\u0e1a\u0e1a",
+ "Total Commission": "\u0e04\u0e13\u0e30\u0e01\u0e23\u0e23\u0e21\u0e01\u0e32\u0e23\u0e23\u0e27\u0e21",
+ "Totals": "\u0e1c\u0e25\u0e23\u0e27\u0e21",
+ "Track this Delivery Note against any Project": "\u0e15\u0e34\u0e14\u0e15\u0e32\u0e21\u0e01\u0e32\u0e23\u0e08\u0e31\u0e14\u0e2a\u0e48\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e2b\u0e15\u0e38\u0e19\u0e35\u0e49\u0e01\u0e31\u0e1a\u0e42\u0e04\u0e23\u0e07\u0e01\u0e32\u0e23\u0e43\u0e14 \u0e46",
+ "Transporter Info": "\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e01\u0e32\u0e23\u0e02\u0e19\u0e22\u0e49\u0e32\u0e22",
+ "Transporter Name": "\u0e0a\u0e37\u0e48\u0e2d Transporter",
+ "Transporter lorry number": "\u0e08\u0e33\u0e19\u0e27\u0e19\u0e23\u0e16\u0e1a\u0e23\u0e23\u0e17\u0e38\u0e01\u0e02\u0e19\u0e22\u0e49\u0e32\u0e22",
+ "You can make a delivery note from multiple sales orders. Select sales orders one by one and click on the button below.": "\u0e04\u0e38\u0e13\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e08\u0e14\u0e1a\u0e31\u0e19\u0e17\u0e36\u0e01\u0e01\u0e32\u0e23\u0e2a\u0e48\u0e07\u0e21\u0e2d\u0e1a\u0e08\u0e32\u0e01\u0e43\u0e1a\u0e2a\u0e31\u0e48\u0e07\u0e02\u0e32\u0e22\u0e2b\u0e25\u0e32\u0e22 \u0e40\u0e25\u0e37\u0e2d\u0e01\u0e04\u0e33\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e22\u0e2d\u0e14\u0e02\u0e32\u0e22\u0e2b\u0e19\u0e36\u0e48\u0e07\u0e42\u0e14\u0e22\u0e2b\u0e19\u0e36\u0e48\u0e07\u0e41\u0e25\u0e30\u0e04\u0e25\u0e34\u0e01\u0e1b\u0e38\u0e48\u0e21\u0e14\u0e49\u0e32\u0e19\u0e25\u0e48\u0e32\u0e07"
+}
\ No newline at end of file
diff --git a/stock/doctype/delivery_note/test_delivery_note.py b/stock/doctype/delivery_note/test_delivery_note.py
new file mode 100644
index 00000000000..4666360e79e
--- /dev/null
+++ b/stock/doctype/delivery_note/test_delivery_note.py
@@ -0,0 +1,36 @@
+test_records = [
+ [
+ {
+ "company": "_Test Company",
+ "conversion_rate": 1.0,
+ "currency": "INR",
+ "customer": "_Test Customer",
+ "customer_name": "_Test Customer",
+ "doctype": "Delivery Note",
+ "fiscal_year": "_Test Fiscal Year 2013",
+ "plc_conversion_rate": 1.0,
+ "posting_date": "2013-02-21",
+ "posting_time": "9:00:00",
+ "price_list_currency": "INR",
+ "price_list_name": "_Test Price List",
+ "status": "Draft",
+ "territory": "_Test Territory",
+ "grand_total": 500.0,
+ "grand_total_export": 500.0,
+ },
+ {
+ "description": "CPU",
+ "doctype": "Delivery Note Item",
+ "item_code": "_Test Item Home Desktop 100",
+ "item_name": "CPU",
+ "parentfield": "delivery_note_details",
+ "qty": 4.0,
+ "basic_rate": 50.0,
+ "export_rate": 50.0,
+ "amount": 500.0,
+ "warehouse": "_Test Warehouse",
+ "stock_uom": "No."
+ }
+ ]
+
+]
\ No newline at end of file
diff --git a/stock/doctype/delivery_note_item/locale/de-doc.json b/stock/doctype/delivery_note_item/locale/de-doc.json
new file mode 100644
index 00000000000..a28c85dd474
--- /dev/null
+++ b/stock/doctype/delivery_note_item/locale/de-doc.json
@@ -0,0 +1,33 @@
+{
+ "Against Document Date": "Gegen Dokument Datum",
+ "Against Document Detail No": "Vor Document Detailaufnahme",
+ "Against Document No": "Gegen Dokument Nr.",
+ "Amount": "Menge",
+ "Amount*": "Betrag *",
+ "Available Qty at Warehouse": "Verf\u00fcgbare Menge bei Warehouse",
+ "Barcode": "Strichcode",
+ "Batch No": "Batch No",
+ "Billed Amt": "Billed Amt",
+ "Brand Name": "Markenname",
+ "Customer's Item Code": "Kunden Item Code",
+ "Delivery Note Item": "Lieferscheinposition",
+ "Description": "Beschreibung",
+ "Discount (%)": "Rabatt (%)",
+ "Document Type": "Document Type",
+ "Installed Qty": "Installierte Anzahl",
+ "Item Code": "Item Code",
+ "Item Group": "Artikel-Gruppe",
+ "Item Name": "Item Name",
+ "Item Tax Rate": "Artikel Tax Rate",
+ "Packed Quantity": "Verpackt Menge",
+ "Page Break": "Seitenwechsel",
+ "Price List Rate": "Preis List",
+ "Price List Rate*": "Preis List *",
+ "Quantity": "Menge",
+ "Rate": "Rate",
+ "Rate*": "Rate *",
+ "Serial No": "Serial In",
+ "Stock": "Lager",
+ "UOM": "UOM",
+ "Warehouse": "Lager"
+}
\ No newline at end of file
diff --git a/stock/doctype/delivery_note_item/locale/pt-BR-doc.json b/stock/doctype/delivery_note_item/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..0780b06265e
--- /dev/null
+++ b/stock/doctype/delivery_note_item/locale/pt-BR-doc.json
@@ -0,0 +1,33 @@
+{
+ "Against Document Date": "Contra Data do Documento",
+ "Against Document Detail No": "Contra Detalhe do Documento n\u00ba ",
+ "Against Document No": "Contra Documento n\u00ba",
+ "Amount": "Quantidade",
+ "Amount*": "Quantidade*",
+ "Available Qty at Warehouse": "Qtde Dispon\u00edvel em Almoxarifado",
+ "Barcode": "C\u00f3digo de barras",
+ "Batch No": "N\u00ba do Lote",
+ "Billed Amt": "Valor Faturado",
+ "Brand Name": "Marca",
+ "Customer's Item Code": "C\u00f3digo do Item do Cliente",
+ "Delivery Note Item": "Item da Guia de Remessa",
+ "Description": "Descri\u00e7\u00e3o",
+ "Discount (%)": "Desconto (%)",
+ "Document Type": "Tipo de Documento",
+ "Installed Qty": "Quantidade Instalada",
+ "Item Code": "C\u00f3digo do Item",
+ "Item Group": "Grupo de Itens",
+ "Item Name": "Nome do Item",
+ "Item Tax Rate": "Taxa de Imposto do Item",
+ "Packed Quantity": "Quantidade embalada",
+ "Page Break": "Quebra de p\u00e1gina",
+ "Price List Rate": "Taxa de Lista de Pre\u00e7os",
+ "Price List Rate*": "Taxa de Lista de Pre\u00e7os*",
+ "Quantity": "Quantidade",
+ "Rate": "Taxa",
+ "Rate*": "Taxa*",
+ "Serial No": "N\u00ba de S\u00e9rie",
+ "Stock": "Estoque",
+ "UOM": "UDM",
+ "Warehouse": "Almoxarifado"
+}
\ No newline at end of file
diff --git a/stock/doctype/delivery_note_item/locale/th-doc.json b/stock/doctype/delivery_note_item/locale/th-doc.json
new file mode 100644
index 00000000000..70505a7fd3a
--- /dev/null
+++ b/stock/doctype/delivery_note_item/locale/th-doc.json
@@ -0,0 +1,33 @@
+{
+ "Against Document Date": "\u0e01\u0e31\u0e1a\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e40\u0e2d\u0e01\u0e2a\u0e32\u0e23",
+ "Against Document Detail No": "\u0e01\u0e31\u0e1a\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e40\u0e2d\u0e01\u0e2a\u0e32\u0e23\u0e44\u0e21\u0e48\u0e21\u0e35",
+ "Against Document No": "\u0e01\u0e31\u0e1a\u0e40\u0e2d\u0e01\u0e2a\u0e32\u0e23\u0e44\u0e21\u0e48\u0e21\u0e35",
+ "Amount": "\u0e08\u0e33\u0e19\u0e27\u0e19",
+ "Amount*": "* \u0e08\u0e33\u0e19\u0e27\u0e19\u0e40\u0e07\u0e34\u0e19",
+ "Available Qty at Warehouse": "\u0e08\u0e33\u0e19\u0e27\u0e19\u0e17\u0e35\u0e48\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Barcode": "\u0e1a\u0e32\u0e23\u0e4c\u0e42\u0e04\u0e49\u0e14",
+ "Batch No": "\u0e0a\u0e38\u0e14\u0e44\u0e21\u0e48\u0e21\u0e35",
+ "Billed Amt": "\u0e08\u0e33\u0e19\u0e27\u0e19\u0e08\u0e33\u0e19\u0e27\u0e19\u0e21\u0e32\u0e01\u0e17\u0e35\u0e48\u0e2a\u0e38\u0e14",
+ "Brand Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e22\u0e35\u0e48\u0e2b\u0e49\u0e2d",
+ "Customer's Item Code": "\u0e23\u0e2b\u0e31\u0e2a\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e02\u0e2d\u0e07\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Delivery Note Item": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e08\u0e31\u0e14\u0e2a\u0e48\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e2b\u0e15\u0e38",
+ "Description": "\u0e25\u0e31\u0e01\u0e29\u0e13\u0e30",
+ "Discount (%)": "\u0e2a\u0e48\u0e27\u0e19\u0e25\u0e14 (%)",
+ "Document Type": "\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e40\u0e2d\u0e01\u0e2a\u0e32\u0e23",
+ "Installed Qty": "\u0e08\u0e33\u0e19\u0e27\u0e19\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07",
+ "Item Code": "\u0e23\u0e2b\u0e31\u0e2a\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Item Group": "\u0e01\u0e25\u0e38\u0e48\u0e21\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Item Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23",
+ "Item Tax Rate": "\u0e2d\u0e31\u0e15\u0e23\u0e32\u0e20\u0e32\u0e29\u0e35\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Packed Quantity": "\u0e08\u0e33\u0e19\u0e27\u0e19\u0e1a\u0e23\u0e23\u0e08\u0e38",
+ "Page Break": "\u0e41\u0e1a\u0e48\u0e07\u0e2b\u0e19\u0e49\u0e32",
+ "Price List Rate": "\u0e2d\u0e31\u0e15\u0e23\u0e32\u0e23\u0e32\u0e04\u0e32\u0e15\u0e32\u0e21\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23",
+ "Price List Rate*": "\u0e23\u0e32\u0e04\u0e32 * \u0e2d\u0e31\u0e15\u0e23\u0e32\u0e23\u0e32\u0e22\u0e0a\u0e37\u0e48\u0e2d",
+ "Quantity": "\u0e1b\u0e23\u0e34\u0e21\u0e32\u0e13",
+ "Rate": "\u0e2d\u0e31\u0e15\u0e23\u0e32",
+ "Rate*": "* \u0e2d\u0e31\u0e15\u0e23\u0e32",
+ "Serial No": "\u0e2d\u0e19\u0e38\u0e01\u0e23\u0e21\u0e44\u0e21\u0e48\u0e21\u0e35",
+ "Stock": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "UOM": "UOM",
+ "Warehouse": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32"
+}
\ No newline at end of file
diff --git a/stock/doctype/delivery_note_packing_item/locale/_messages_doc.json b/stock/doctype/delivery_note_packing_item/locale/_messages_doc.json
index 9b4a7693e31..cbe4526c17f 100644
--- a/stock/doctype/delivery_note_packing_item/locale/_messages_doc.json
+++ b/stock/doctype/delivery_note_packing_item/locale/_messages_doc.json
@@ -6,9 +6,9 @@
"UOM",
"Qty",
"Serial No",
+ "Warehouse",
"Batch No",
"Prevdoc DocType",
- "Warehouse",
"Parent Detail docname",
"Projected Qty",
"Delivery Note Packing Item",
diff --git a/stock/doctype/delivery_note_packing_item/locale/de-doc.json b/stock/doctype/delivery_note_packing_item/locale/de-doc.json
new file mode 100644
index 00000000000..d8a5a4248ee
--- /dev/null
+++ b/stock/doctype/delivery_note_packing_item/locale/de-doc.json
@@ -0,0 +1,18 @@
+{
+ "Actual Qty": "Tats\u00e4chliche Menge",
+ "Batch No": "Batch No",
+ "Delivery Note Packing Item": "Lieferschein Verpackung Artikel",
+ "Description": "Beschreibung",
+ "Item Code": "Item Code",
+ "Item Name": "Item Name",
+ "Page Break": "Seitenwechsel",
+ "Parent Detail docname": "Eltern Detailansicht docname",
+ "Parent Item": "\u00dcbergeordneter Artikel",
+ "Prevdoc DocType": "Prevdoc DocType",
+ "Projected Qty": "Prognostizierte Anzahl",
+ "Qty": "Menge",
+ "Serial No": "Serial In",
+ "Stock": "Lager",
+ "UOM": "UOM",
+ "Warehouse": "Lager"
+}
\ No newline at end of file
diff --git a/stock/doctype/delivery_note_packing_item/locale/pt-BR-doc.json b/stock/doctype/delivery_note_packing_item/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..e04a046b89a
--- /dev/null
+++ b/stock/doctype/delivery_note_packing_item/locale/pt-BR-doc.json
@@ -0,0 +1,18 @@
+{
+ "Actual Qty": "Qtde Real",
+ "Batch No": "N\u00ba do Lote",
+ "Delivery Note Packing Item": "Item do Pacote da Guia de Remessa",
+ "Description": "Descri\u00e7\u00e3o",
+ "Item Code": "C\u00f3digo do Item",
+ "Item Name": "Nome do Item",
+ "Page Break": "Quebra de p\u00e1gina",
+ "Parent Detail docname": "Docname do Detalhe pai",
+ "Parent Item": "Item Pai",
+ "Prevdoc DocType": "Prevdoc DocType",
+ "Projected Qty": "Qtde. Projetada",
+ "Qty": "Qtde.",
+ "Serial No": "N\u00ba de S\u00e9rie",
+ "Stock": "Estoque",
+ "UOM": "UDM",
+ "Warehouse": "Almoxarifado"
+}
\ No newline at end of file
diff --git a/stock/doctype/delivery_note_packing_item/locale/th-doc.json b/stock/doctype/delivery_note_packing_item/locale/th-doc.json
new file mode 100644
index 00000000000..083d9e687cf
--- /dev/null
+++ b/stock/doctype/delivery_note_packing_item/locale/th-doc.json
@@ -0,0 +1,18 @@
+{
+ "Actual Qty": "\u0e08\u0e33\u0e19\u0e27\u0e19\u0e17\u0e35\u0e48\u0e40\u0e01\u0e34\u0e14\u0e02\u0e36\u0e49\u0e19\u0e08\u0e23\u0e34\u0e07",
+ "Batch No": "\u0e0a\u0e38\u0e14\u0e44\u0e21\u0e48\u0e21\u0e35",
+ "Delivery Note Packing Item": "\u0e08\u0e31\u0e14\u0e2a\u0e48\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e1a\u0e23\u0e23\u0e08\u0e38\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e2b\u0e15\u0e38",
+ "Description": "\u0e25\u0e31\u0e01\u0e29\u0e13\u0e30",
+ "Item Code": "\u0e23\u0e2b\u0e31\u0e2a\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Item Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23",
+ "Page Break": "\u0e41\u0e1a\u0e48\u0e07\u0e2b\u0e19\u0e49\u0e32",
+ "Parent Detail docname": "docname \u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e1c\u0e39\u0e49\u0e1b\u0e01\u0e04\u0e23\u0e2d\u0e07",
+ "Parent Item": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e2b\u0e25\u0e31\u0e01",
+ "Prevdoc DocType": "DocType Prevdoc",
+ "Projected Qty": "\u0e08\u0e33\u0e19\u0e27\u0e19\u0e17\u0e35\u0e48\u0e04\u0e32\u0e14\u0e01\u0e32\u0e23\u0e13\u0e4c\u0e44\u0e27\u0e49",
+ "Qty": "\u0e08\u0e33\u0e19\u0e27\u0e19",
+ "Serial No": "\u0e2d\u0e19\u0e38\u0e01\u0e23\u0e21\u0e44\u0e21\u0e48\u0e21\u0e35",
+ "Stock": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "UOM": "UOM",
+ "Warehouse": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32"
+}
\ No newline at end of file
diff --git a/stock/doctype/featured_item/locale/de-doc.json b/stock/doctype/featured_item/locale/de-doc.json
new file mode 100644
index 00000000000..0ab4a0e2a3e
--- /dev/null
+++ b/stock/doctype/featured_item/locale/de-doc.json
@@ -0,0 +1,6 @@
+{
+ "Featured Item": "Feature-Produkt",
+ "Featured Item in Item Group": "Feature-Produkt bei Posten Gruppe",
+ "Item": "Artikel",
+ "Stock": "Lager"
+}
\ No newline at end of file
diff --git a/stock/doctype/featured_item/locale/pt-BR-doc.json b/stock/doctype/featured_item/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..f4f543a3b51
--- /dev/null
+++ b/stock/doctype/featured_item/locale/pt-BR-doc.json
@@ -0,0 +1,6 @@
+{
+ "Featured Item": "Item Destacado",
+ "Featured Item in Item Group": "Item destacado no Grupo de Itens",
+ "Item": "Item",
+ "Stock": "Estoque"
+}
\ No newline at end of file
diff --git a/stock/doctype/featured_item/locale/th-doc.json b/stock/doctype/featured_item/locale/th-doc.json
new file mode 100644
index 00000000000..a79d3d0ad4b
--- /dev/null
+++ b/stock/doctype/featured_item/locale/th-doc.json
@@ -0,0 +1,6 @@
+{
+ "Featured Item": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e40\u0e14\u0e48\u0e19",
+ "Featured Item in Item Group": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e17\u0e35\u0e48\u0e42\u0e14\u0e14\u0e40\u0e14\u0e48\u0e19\u0e43\u0e19\u0e01\u0e25\u0e38\u0e48\u0e21\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Item": "\u0e0a\u0e34\u0e49\u0e19",
+ "Stock": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32"
+}
\ No newline at end of file
diff --git a/stock/doctype/item/item.js b/stock/doctype/item/item.js
index 6c2c8826458..5b32a34c80c 100644
--- a/stock/doctype/item/item.js
+++ b/stock/doctype/item/item.js
@@ -22,13 +22,11 @@ cur_frm.cscript.refresh = function(doc) {
if ((!doc.__islocal) && (doc.is_stock_item == 'Yes')) {
var callback = function(r, rt) {
- var enabled = (r.message == 'exists') ? false : true;
+ var enabled = (r.message == 'exists') ? false : true;
cur_frm.toggle_enable(['has_serial_no', 'is_stock_item', 'valuation_method'], enabled);
}
$c_obj(make_doclist(doc.doctype, doc.name),'check_if_sle_exists','',callback);
}
-
- cur_frm.cscript.hide_website_fields(doc);
}
cur_frm.cscript.item_code = function(doc) {
diff --git a/stock/doctype/item/item.py b/stock/doctype/item/item.py
index 4c78347c940..334af298e91 100644
--- a/stock/doctype/item/item.py
+++ b/stock/doctype/item/item.py
@@ -39,9 +39,8 @@ class DocType:
def on_update(self):
self.validate_name_with_item_group()
- if self.doc.show_in_website:
- # webpage updates
- self.update_website()
+ # webpage updates
+ self.update_website()
bin = sql("select stock_uom from `tabBin` where item_code = '%s' " % self.doc.item_code)
if bin and cstr(bin[0][0]) != cstr(self.doc.stock_uom):
@@ -81,19 +80,33 @@ class DocType:
self.doc.name, raise_exception=1)
def update_website(self):
- from website.utils import update_page_name
- if self.doc.name==self.doc.item_name:
- page_name_from = self.doc.name
- else:
- page_name_from = self.doc.name + " " + self.doc.item_name
+ def _invalidate_cache():
+ from website.helpers.product import invalidate_cache_for
+
+ invalidate_cache_for(self.doc.item_group)
- update_page_name(self.doc, page_name_from)
+ [invalidate_cache_for(d.item_group) for d in \
+ self.doclist.get({"doctype":"Website Item Group"})]
- from website.helpers.product import invalidate_cache_for
- invalidate_cache_for(self.doc.item_group)
+ if self.doc.show_in_website:
+ from website.utils import update_page_name
+ if self.doc.name==self.doc.item_name:
+ page_name_from = self.doc.name
+ else:
+ page_name_from = self.doc.name + " " + self.doc.item_name
- [invalidate_cache_for(d.item_group) for d in \
- self.doclist.get({"doctype":"Website Item Group"})]
+ update_page_name(self.doc, page_name_from)
+
+ _invalidate_cache()
+
+ elif self.doc.page_name:
+ # if unchecked show in website
+ from website.utils import delete_page_cache
+ delete_page_cache(self.doc.page_name)
+
+ _invalidate_cache()
+
+ webnotes.conn.set(self.doc, "page_name", None)
# On delete 1. Delete BIN (if none of the corrosponding transactions present, it gets deleted. if present, rolled back due to exception)
def on_trash(self):
diff --git a/stock/doctype/item/item.txt b/stock/doctype/item/item.txt
index 6b1a60f5806..1a48368ad2a 100644
--- a/stock/doctype/item/item.txt
+++ b/stock/doctype/item/item.txt
@@ -1,8 +1,8 @@
[
{
- "creation": "2013-02-20 13:26:14",
+ "creation": "2013-02-21 14:54:43",
"docstatus": 0,
- "modified": "2013-02-20 18:14:06",
+ "modified": "2013-02-28 10:43:02",
"modified_by": "Administrator",
"owner": "Administrator"
},
@@ -28,13 +28,14 @@
"permlevel": 0
},
{
- "amend": 0,
"doctype": "DocPerm",
"name": "__common__",
"parent": "Item",
"parentfield": "permissions",
"parenttype": "DocType",
+ "permlevel": 0,
"read": 1,
+ "report": 1,
"submit": 0
},
{
@@ -596,7 +597,6 @@
"label": "Price Lists and Rates"
},
{
- "depends_on": "eval:doc.is_sales_item==\"Yes\"",
"description": "Create a price list from Price List master and enter standard ref rates against each of them. On selection of a price list in Quotation, Sales Order or Delivery Note, corresponding ref rate will be fetched for this item.",
"doctype": "DocField",
"fieldname": "ref_rate_details",
@@ -812,76 +812,27 @@
"fieldtype": "Text Editor",
"label": "Website Description"
},
- {
- "cancel": 0,
- "create": 0,
- "doctype": "DocPerm",
- "permlevel": 1,
- "report": 0,
- "role": "Material Manager",
- "write": 0
- },
- {
- "cancel": 0,
- "create": 0,
- "doctype": "DocPerm",
- "permlevel": 0,
- "report": 1,
- "role": "Material Manager",
- "write": 0
- },
- {
- "cancel": 0,
- "create": 0,
- "doctype": "DocPerm",
- "permlevel": 1,
- "report": 0,
- "role": "Material User",
- "write": 0
- },
- {
- "cancel": 0,
- "create": 0,
- "doctype": "DocPerm",
- "permlevel": 0,
- "report": 1,
- "role": "Material User",
- "write": 0
- },
{
"cancel": 1,
"create": 1,
"doctype": "DocPerm",
- "permlevel": 0,
- "report": 1,
"role": "Material Master Manager",
"write": 1
},
{
+ "amend": 0,
"cancel": 0,
"create": 0,
"doctype": "DocPerm",
- "permlevel": 1,
- "report": 0,
- "role": "Material Master Manager",
+ "role": "Material Manager",
"write": 0
},
{
- "cancel": 1,
- "create": 1,
- "doctype": "DocPerm",
- "permlevel": 0,
- "report": 1,
- "role": "System Manager",
- "write": 1
- },
- {
+ "amend": 0,
"cancel": 0,
"create": 0,
"doctype": "DocPerm",
- "permlevel": 1,
- "report": 0,
- "role": "System Manager",
+ "role": "Material User",
"write": 0
}
]
\ No newline at end of file
diff --git a/stock/doctype/item/locale/_messages_doc.json b/stock/doctype/item/locale/_messages_doc.json
index 005f8c2e176..b99c63eaa0f 100644
--- a/stock/doctype/item/locale/_messages_doc.json
+++ b/stock/doctype/item/locale/_messages_doc.json
@@ -57,6 +57,7 @@
"website page link",
"Max Discount (%)",
"Image",
+ "Auto-raise Material Request if quantity goes below re-order level in a warehouse",
"Is Asset Item",
"Sales Details",
"Standard Rate",
@@ -69,11 +70,11 @@
"Default Purchase Account in which cost of the item will be debited.",
"Allow Samples",
"Quality Inspection Parameters",
- "Selecting \"Yes\" will allow you to make a Production Order for this item.",
"Re-Order Qty",
"Manufacturer",
"Show a slideshow at the top of the page",
"Lead Time Days",
+ "Selecting \"Yes\" will allow you to make a Production Order for this item.",
"Item Group",
"Unit of measurement of this item (e.g. Kg, Unit, No, Pair).",
"Generate Description HTML",
diff --git a/stock/doctype/item/locale/de-doc.json b/stock/doctype/item/locale/de-doc.json
new file mode 100644
index 00000000000..1954699a828
--- /dev/null
+++ b/stock/doctype/item/locale/de-doc.json
@@ -0,0 +1,116 @@
+{
+ "
Manage Item Groups": "
Artikel Gruppen verwalten a>",
+ "A Product or a Service that is bought, sold or kept in stock.": "Ein Produkt oder eine Dienstleistung, die gekauft, verkauft oder gehalten auf Lager.",
+ "Allow Bill of Materials": "Lassen Bill of Materials",
+ "Allow Production Order": "Lassen Fertigungsauftrag",
+ "Allow Samples": "Lassen Proben",
+ "Allowance Percent": "Allowance Prozent",
+ "Barcode": "Strichcode",
+ "Brand": "Marke",
+ "Buying Cost": "Kauf Cost",
+ "Buying Cost will be updated from Purchase Orders and Purchase Receipts.
The buying cost will calculated by moving average method.": "Buying Kosten werden von Bestellungen und Einnahmen aktualisiert werden.
Der Kauf Kosten werden vom gleitenden Durchschnitt berechnet.",
+ "Cost Center": "Kostenstellenrechnung",
+ "Create a price list from Price List master and enter standard ref rates against each of them. On selection of a price list in Quotation, Sales Order or Delivery Note, corresponding ref rate will be fetched for this item.": "Erstellen Sie eine Preisliste von Preisliste Master und geben Sie Standard-ref Preise gegen jeden von ihnen. Bei Auswahl einer Preisliste Angebot, Auftrag oder Lieferschein, werden entsprechende ref f\u00fcr dieser Artikel abgeholt werden.",
+ "Customer Code": "Customer Code",
+ "Customer Codes": "Kunde Codes",
+ "Default BOM": "Standard BOM",
+ "Default Cost Center": "Standard Kostenstelle",
+ "Default Cost Center for tracking expense for this item.": "Standard Cost Center for Tracking Kosten f\u00fcr diesen Artikel.",
+ "Default Expense Account": "Standard Expense Konto",
+ "Default Income Account": "Standard Income Konto",
+ "Default Purchase Account in which cost of the item will be debited.": "Standard Purchase Konto in dem Preis des Artikels wird abgebucht.",
+ "Default Reserved Warehouse": "Standard Reserved Warehouse",
+ "Default Unit of Measure": "Standard-Ma\u00dfeinheit",
+ "Description": "Beschreibung",
+ "Description HTML": "Beschreibung HTML",
+ "End of Life": "End of Life",
+ "FIFO": "FIFO",
+ "File List": "Dateiliste",
+ "For the convenience of customers, these codes can be used in print formats like Invoices and Delivery Notes": "F\u00fcr die Bequemlichkeit der Kunden, k\u00f6nnen diese Codes in Druckformate wie Rechnungen und Lieferscheine werden",
+ "Generate Description HTML": "Generieren Beschreibung HTML",
+ "Generates HTML to include selected image in the description": "Erzeugt HTML ausgew\u00e4hlte Bild sind in der Beschreibung",
+ "Has Batch No": "Hat Batch No",
+ "Has Serial No": "Hat Serial No",
+ "Image": "Bild",
+ "Image View": "Bild anzeigen",
+ "Inspection Criteria": "Pr\u00fcfkriterien",
+ "Inspection Required": "Inspektion erforderlich",
+ "Inventory": "Inventar",
+ "Is Asset Item": "Ist Aktivposition",
+ "Is Purchase Item": "Ist Kaufsache",
+ "Is Sales Item": "Ist Verkaufsartikel",
+ "Is Service Item": "Ist Service Item",
+ "Is Stock Item": "Ist Stock Item",
+ "Is Sub Contracted Item": "Ist Sub Vertragsgegenstand",
+ "Item": "Artikel",
+ "Item Code": "Item Code",
+ "Item Group": "Artikel-Gruppe",
+ "Item Image (if not slideshow)": "Item Image (wenn nicht Diashow)",
+ "Item Name": "Item Name",
+ "Item Prices": "Produkt Preise",
+ "Item Quality Inspection Parameter": "Qualit\u00e4tspr\u00fcfung Artikel Parameter",
+ "Item Supplier Details": "Artikel Supplier Details",
+ "Item Tax": "MwSt. Artikel",
+ "Item Tax1": "Artikel Tax1",
+ "Item Website Specifications": "Artikel Spezifikationen Webseite",
+ "Item will be saved by this name in the data base.": "Einzelteil wird mit diesem Namen in der Datenbank gespeichert werden.",
+ "Last Purchase Rate": "Last Purchase Rate",
+ "Lead Time Days": "Lead Time Tage",
+ "Lead Time days is number of days by which this item is expected in your warehouse. This days is fetched in Material Request when you select this item.": "Lead Time Tage ist die Anzahl der Tage, um die diesen Artikel in Ihrem Lager zu erwarten ist. Diese geholt Tage in Material anfordern Wenn Sie diese Option ausw\u00e4hlen.",
+ "List this Item in multiple groups on the website.": "Liste Diesen Artikel in mehrere Gruppen auf der Website.",
+ "Mandatory if Stock Item is \"Yes\"": "Stock Item ist obligatorisch, wenn Sie \"Ja\"",
+ "Manufacturer": "Hersteller",
+ "Manufacturer Part Number": "Hersteller-Teilenummer",
+ "Manufacturing": "Herstellung",
+ "Max Discount (%)": "Discount Max (%)",
+ "Minimum Order Qty": "Minimale Bestellmenge",
+ "Moving Average": "Moving Average",
+ "Net Weight": "Nettogewicht",
+ "Net Weight of each Item": "Nettogewicht der einzelnen Artikel",
+ "No": "Auf",
+ "Notify by Email on Re-order": "Benachrichtigen Sie per E-Mail auf Re-order",
+ "Page Name": "Page Name",
+ "Percentage variation in quantity to be allowed while receiving or delivering this item.": "Prozentuale Ver\u00e4nderung in der Menge zu d\u00fcrfen w\u00e4hrend des Empfangs oder der Lieferung diesen Artikel werden.",
+ "Price Lists and Rates": "Preislisten und Preise",
+ "Products will be sorted by weight-age in default searches. More the weight-age, higher the product will appear in the list.": "Die Produkte werden Gew.-age in Verzug Suchbegriffe sortiert werden. Mehr das Gewicht-Alter, wird das Produkt h\u00f6her erscheinen in der Liste.",
+ "Purchase Details": "Kaufinformationen",
+ "Quality Inspection Parameters": "Qualit\u00e4tspr\u00fcfung Parameter",
+ "Re-Order Level": "Re-Order Stufe",
+ "Re-Order Qty": "Re-Order Menge",
+ "Re-order": "Re-Order",
+ "Sales Details": "Sales Details",
+ "Sales Rate": "Vertrieb bewerten",
+ "Select \"Yes\" if this item is to be sent to a customer or received from a supplier as a sample. Delivery notes and Purchase Receipts will update stock levels but there will be no invoice against this item.": "W\u00e4hlen Sie \"Ja\", wenn dieser Punkt ist es, an den Kunden gesendet oder empfangen werden vom Lieferanten auf die Probe. Lieferscheine und Kaufbelege werden aktualisiert Lagerbest\u00e4nde, aber es wird auf der Rechnung vor diesem Element sein.",
+ "Select \"Yes\" if this item is used for some internal purpose in your company.": "W\u00e4hlen Sie \"Ja\", wenn dieser Punkt f\u00fcr einige interne Zwecke in Ihrem Unternehmen verwendet wird.",
+ "Select \"Yes\" if this item represents some work like training, designing, consulting etc.": "W\u00e4hlen Sie \"Ja\", wenn dieser Artikel stellt einige Arbeiten wie Ausbildung, Gestaltung, Beratung etc..",
+ "Select \"Yes\" if you are maintaining stock of this item in your Inventory.": "W\u00e4hlen Sie \"Ja\", wenn Sie Pflege stock dieses Artikels in Ihrem Inventar.",
+ "Select \"Yes\" if you supply raw materials to your supplier to manufacture this item.": "W\u00e4hlen Sie \"Ja\", wenn Sie Rohstoffe an Ihren Lieferanten liefern, um diesen Artikel zu fertigen.",
+ "Selecting \"Yes\" will allow this item to appear in Purchase Order , Purchase Receipt.": "W\u00e4hlen Sie \"Ja\" k\u00f6nnen diesen Artikel in Bestellung, Kaufbeleg erscheinen.",
+ "Selecting \"Yes\" will allow this item to figure in Sales Order, Delivery Note": "W\u00e4hlen Sie \"Ja\" k\u00f6nnen diesen Artikel in Sales Order herauszufinden, Lieferschein",
+ "Selecting \"Yes\" will allow you to create Bill of Material showing raw material and operational costs incurred to manufacture this item.": "W\u00e4hlen Sie \"Ja\" erm\u00f6glicht es Ihnen, Bill of Material zeigt Rohstoffe und Betriebskosten anfallen, um diesen Artikel herzustellen erstellen.",
+ "Selecting \"Yes\" will allow you to make a Production Order for this item.": "W\u00e4hlen Sie \"Ja\" erm\u00f6glicht es Ihnen, einen Fertigungsauftrag f\u00fcr diesen Artikel machen.",
+ "Selecting \"Yes\" will give a unique identity to each entity of this item which can be viewed in the Serial No master.": "W\u00e4hlen Sie \"Ja\" wird eine einzigartige Identit\u00e4t zu jeder Einheit dieses Artikels, die in der Serial No Master eingesehen werden kann geben.",
+ "Send an email to users of role \"Material Manager\" and \"Purchase Manager\" when re-order level is crossed.": "Senden Sie eine E-Mail an Benutzer der Rolle \"Material Manager\" und \"Purchase Manager\", wenn re-order-Ebene \u00fcberschritten wird.",
+ "Show \"In Stock\" or \"Not in Stock\" based on stock available in this warehouse.": "Anzeigen \"Im Lager\" oder \"Nicht auf Lager\", basierend auf verf\u00fcgbaren Bestand in diesem Lager.",
+ "Show Price in Website (if set)": "Zeige Preis in Website (wenn eingestellt)",
+ "Show a slideshow at the top of the page": "Zeige die Slideshow an der Spitze der Seite",
+ "Show in Website": "Zeigen Sie im Website",
+ "Slideshow": "Slideshow",
+ "Standard Rate": "Standardpreis",
+ "Stock": "Lager",
+ "UOM Conversion Details": "UOM Conversion Einzelheiten",
+ "Unit of measurement of this item (e.g. Kg, Unit, No, Pair).": "Ma\u00dfeinheit f\u00fcr diesen Artikel (zB kg, Einheit, Nein, Pair).",
+ "Valuation Method": "Valuation Method",
+ "Warehouse-wise Item Reorder": "Warehouse-weise Artikel Reorder",
+ "Warranty Period (in days)": "Gew\u00e4hrleistungsfrist (in Tagen)",
+ "Website": "Webseite",
+ "Website Description": "Website Beschreibung",
+ "Website Item Groups": "Website Artikelgruppen",
+ "Website Price List": "Website Preisliste",
+ "Website Warehouse": "Website Warehouse",
+ "Weight UOM": "Gewicht UOM",
+ "Weightage": "Gewichtung",
+ "Yes": "Ja",
+ "You can enter the minimum quantity of this item to be ordered.": "Sie k\u00f6nnen die minimale Menge von diesem Artikel bestellt werden.",
+ "website page link": "Website-Link"
+}
\ No newline at end of file
diff --git a/stock/doctype/item/locale/pt-BR-doc.json b/stock/doctype/item/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..587d03d9533
--- /dev/null
+++ b/stock/doctype/item/locale/pt-BR-doc.json
@@ -0,0 +1,117 @@
+{
+ "Manage Item Groups": "
Gerenciar Grupos de Itens",
+ "A Product or a Service that is bought, sold or kept in stock.": "Um Produto ou um Pervi\u00e7o que \u00e9 comprado, vendido ou mantido em estoque.",
+ "Allow Bill of Materials": "Permitir Lista de Materiais",
+ "Allow Production Order": "Permitir Ordem de Produ\u00e7\u00e3o",
+ "Allow Samples": "Permitir Amostras",
+ "Allowance Percent": "Percentual de toler\u00e2ncia",
+ "Auto-raise Material Request if quantity goes below re-order level in a warehouse": "Auto-raise solicitar material se a quantidade for inferior a reordenar n\u00edvel em um armaz\u00e9m",
+ "Barcode": "C\u00f3digo de barras",
+ "Brand": "Marca",
+ "Buying Cost": "Custo de compra",
+ "Buying Cost will be updated from Purchase Orders and Purchase Receipts.
The buying cost will calculated by moving average method.": "O Custo de Compra ser\u00e1 atualizado a partir de Ordens de Compra e Recibos de Compra.
O custo de compra ser\u00e1 calculado pelo m\u00e9todo de m\u00e9dia m\u00f3vel.",
+ "Cost Center": "Centro de Custos",
+ "Create a price list from Price List master and enter standard ref rates against each of them. On selection of a price list in Quotation, Sales Order or Delivery Note, corresponding ref rate will be fetched for this item.": "Criar uma lista de pre\u00e7os a partir do cadastro de Lista de Pre\u00e7os e introduzir valores padr\u00e3o de ref. para cada um deles. Na sele\u00e7\u00e3o de uma lista de pre\u00e7os em Cota\u00e7\u00e3o, Ordem de Venda, ou Guia de Remessa, o valor de ref. correspondente ser\u00e1 buscado para este item.",
+ "Customer Code": "C\u00f3digo do Cliente",
+ "Customer Codes": "C\u00f3digos de Clientes",
+ "Default BOM": "LDM padr\u00e3o",
+ "Default Cost Center": "Centro de Custo Padr\u00e3o",
+ "Default Cost Center for tracking expense for this item.": "Centro de Custo padr\u00e3o para controle de despesas para este item.",
+ "Default Expense Account": "Conta Despesa padr\u00e3o",
+ "Default Income Account": "Conta de Rendimento padr\u00e3o",
+ "Default Purchase Account in which cost of the item will be debited.": "Conta de compra padr\u00e3o em que o custo do item ser\u00e1 debitado.",
+ "Default Reserved Warehouse": "Almoxarifado Reservado padr\u00e3o",
+ "Default Unit of Measure": "Unidade de medida padr\u00e3o",
+ "Description": "Descri\u00e7\u00e3o",
+ "Description HTML": "Descri\u00e7\u00e3o HTML",
+ "End of Life": "Fim de Vida",
+ "FIFO": "PEPS",
+ "File List": "Lista de Arquivos",
+ "For the convenience of customers, these codes can be used in print formats like Invoices and Delivery Notes": "Para a comodidade dos clientes, estes c\u00f3digos podem ser usados \u200b\u200bem formatos de impress\u00e3o, como Notas Fiscais e Guias de Remessa",
+ "Generate Description HTML": "Gerar Descri\u00e7\u00e3o HTML",
+ "Generates HTML to include selected image in the description": "Gera HTML para incluir a imagem selecionada na descri\u00e7\u00e3o",
+ "Has Batch No": "Tem n\u00ba de Lote",
+ "Has Serial No": "Tem n\u00ba de S\u00e9rie",
+ "Image": "Imagem",
+ "Image View": "Ver imagem",
+ "Inspection Criteria": "Crit\u00e9rios de Inspe\u00e7\u00e3o",
+ "Inspection Required": "Inspe\u00e7\u00e3o Obrigat\u00f3ria",
+ "Inventory": "Invent\u00e1rio",
+ "Is Asset Item": "\u00c9 item de ativo",
+ "Is Purchase Item": "\u00c9 item de compra",
+ "Is Sales Item": "\u00c9 item de venda",
+ "Is Service Item": "\u00c9 item de servi\u00e7o",
+ "Is Stock Item": "\u00c9 item de estoque",
+ "Is Sub Contracted Item": "\u00c9 item subcontratado",
+ "Item": "Item",
+ "Item Code": "C\u00f3digo do Item",
+ "Item Group": "Grupo de Itens",
+ "Item Image (if not slideshow)": "Imagem do Item (se n\u00e3o for slideshow)",
+ "Item Name": "Nome do Item",
+ "Item Prices": "Pre\u00e7os de itens",
+ "Item Quality Inspection Parameter": "Par\u00e2metro de Inspe\u00e7\u00e3o de Qualidade do Item",
+ "Item Supplier Details": "Detalhes do Fornecedor do Item",
+ "Item Tax": "Imposto do Item",
+ "Item Tax1": "Item Tax1",
+ "Item Website Specifications": "Especifica\u00e7\u00f5es do Site do Item",
+ "Item will be saved by this name in the data base.": "O Item ser\u00e1 salvo com este nome na base de dados.",
+ "Last Purchase Rate": "Valor da \u00faltima compra",
+ "Lead Time Days": "Prazo de entrega",
+ "Lead Time days is number of days by which this item is expected in your warehouse. This days is fetched in Material Request when you select this item.": "Levar dias Tempo \u00e9 o n\u00famero de dias em que este item \u00e9 esperado no seu armaz\u00e9m. Este dia \u00e9 buscada em solicitar material ao selecionar este item.",
+ "List this Item in multiple groups on the website.": "Listar este item em v\u00e1rios grupos no site.",
+ "Mandatory if Stock Item is \"Yes\"": "Obrigat\u00f3rio se Item de estoque for "Sim"",
+ "Manufacturer": "Fabricante",
+ "Manufacturer Part Number": "N\u00famero de pe\u00e7a do fabricante",
+ "Manufacturing": "Fabrica\u00e7\u00e3o",
+ "Max Discount (%)": "Desconto M\u00e1x. (%)",
+ "Minimum Order Qty": "Pedido M\u00ednimo",
+ "Moving Average": "M\u00e9dia m\u00f3vel",
+ "Net Weight": "Peso L\u00edquido",
+ "Net Weight of each Item": "Peso l\u00edquido de cada item",
+ "No": "N\u00e3o",
+ "Notify by Email on Re-order": "Notificar por e-mail ao Reordenar",
+ "Page Name": "Nome da P\u00e1gina",
+ "Percentage variation in quantity to be allowed while receiving or delivering this item.": "Varia\u00e7\u00e3o percentual na quantidade a ser permitido ao receber ou entregar este item.",
+ "Price Lists and Rates": "Listas de Pre\u00e7os e Tarifas",
+ "Products will be sorted by weight-age in default searches. More the weight-age, higher the product will appear in the list.": "Os produtos ser\u00e3o classificados por peso em buscas padr\u00e3o. Maior o peso, mais alto o produto ir\u00e1 aparecer na lista.",
+ "Purchase Details": "Detalhes da compra",
+ "Quality Inspection Parameters": "Par\u00e2metros da Inspe\u00e7\u00e3o de Qualidade",
+ "Re-Order Level": "N\u00edvel para novo pedido",
+ "Re-Order Qty": "Qtde. para novo pedido",
+ "Re-order": "Re-vista",
+ "Sales Details": "Detalhes de Vendas",
+ "Sales Rate": "Taxa de vendas",
+ "Select \"Yes\" if this item is to be sent to a customer or received from a supplier as a sample. Delivery notes and Purchase Receipts will update stock levels but there will be no invoice against this item.": "Selecione "Sim" se este item \u00e9 para ser enviado para um cliente ou recebido de um fornecedor como amostra. Guias de Remessa e recibos de compra ir\u00e3o atualizar os n\u00edveis de estoque, mas n\u00e3o haver\u00e1 fatura contra este item.",
+ "Select \"Yes\" if this item is used for some internal purpose in your company.": "Selecione "Sim" se este item \u00e9 usado para alguma finalidade interna na sua empresa.",
+ "Select \"Yes\" if this item represents some work like training, designing, consulting etc.": "Selecione "Sim" se esse item representa algum trabalho como treinamento, design, consultoria, etc",
+ "Select \"Yes\" if you are maintaining stock of this item in your Inventory.": "Selecione "Sim" se voc\u00ea est\u00e1 mantendo estoque deste item no seu Invent\u00e1rio.",
+ "Select \"Yes\" if you supply raw materials to your supplier to manufacture this item.": "Selecione "Sim" se voc\u00ea fornece as mat\u00e9rias-primas para o seu fornecedor fabricar este item.",
+ "Selecting \"Yes\" will allow this item to appear in Purchase Order , Purchase Receipt.": "Selecionando "Sim" vai permitir que este item apare\u00e7a na Ordem de Compra, Recibo de Compra.",
+ "Selecting \"Yes\" will allow this item to figure in Sales Order, Delivery Note": "Selecionando "Sim" vai permitir que este item conste na Ordem de Venda, Guia de Remessa",
+ "Selecting \"Yes\" will allow you to create Bill of Material showing raw material and operational costs incurred to manufacture this item.": "Selecionando "Sim" vai permitir que voc\u00ea crie uma Lista de Materiais mostrando as mat\u00e9rias-primas e os custos operacionais incorridos para fabricar este item.",
+ "Selecting \"Yes\" will allow you to make a Production Order for this item.": "Selecionando "Sim" vai permitir que voc\u00ea fa\u00e7a uma Ordem de Produ\u00e7\u00e3o para este item.",
+ "Selecting \"Yes\" will give a unique identity to each entity of this item which can be viewed in the Serial No master.": "Selecionando "Sim" vai dar uma identifica\u00e7\u00e3o \u00fanica para cada entidade deste item que pode ser vista no cadastro do N\u00famero de S\u00e9rie.",
+ "Send an email to users of role \"Material Manager\" and \"Purchase Manager\" when re-order level is crossed.": "Enviar um e-mail para os usu\u00e1rios com fun\u00e7\u00e3o "Gerente de Material" e "Gerente de Compras" quando o n\u00edvel para novo pedido for atingido.",
+ "Show \"In Stock\" or \"Not in Stock\" based on stock available in this warehouse.": "Mostrar "Em Stock" ou "Fora de Estoque" baseado no estoque dispon\u00edvel neste almoxarifado.",
+ "Show Price in Website (if set)": "Mostrar Pre\u00e7o no Website (se definido)",
+ "Show a slideshow at the top of the page": "Mostrar uma apresenta\u00e7\u00e3o de slides no topo da p\u00e1gina",
+ "Show in Website": "Mostrar no site",
+ "Slideshow": "Apresenta\u00e7\u00e3o de slides",
+ "Standard Rate": "Taxa normal",
+ "Stock": "Estoque",
+ "UOM Conversion Details": "Detalhes da Convers\u00e3o de UDM",
+ "Unit of measurement of this item (e.g. Kg, Unit, No, Pair).": "Unidade de medida do item (por exemplo: kg, unidade, n\u00ba, par).",
+ "Valuation Method": "M\u00e9todo de Avalia\u00e7\u00e3o",
+ "Warehouse-wise Item Reorder": "Armaz\u00e9m-s\u00e1bio item Reordenar",
+ "Warranty Period (in days)": "Per\u00edodo de Garantia (em dias)",
+ "Website": "Site",
+ "Website Description": "Descri\u00e7\u00e3o do site",
+ "Website Item Groups": "Grupos de Itens do site",
+ "Website Price List": "Lista de Pre\u00e7os do site",
+ "Website Warehouse": "Almoxarifado do site",
+ "Weight UOM": "UDM de Peso",
+ "Weightage": "Peso",
+ "Yes": "Sim",
+ "You can enter the minimum quantity of this item to be ordered.": "Voc\u00ea pode inserir a quantidade m\u00ednima deste item a ser encomendada.",
+ "website page link": "link da p\u00e1gina do site"
+}
\ No newline at end of file
diff --git a/stock/doctype/item/locale/th-doc.json b/stock/doctype/item/locale/th-doc.json
new file mode 100644
index 00000000000..1907f313507
--- /dev/null
+++ b/stock/doctype/item/locale/th-doc.json
@@ -0,0 +1,117 @@
+{
+ "
Manage Item Groups": "
\u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e01\u0e25\u0e38\u0e48\u0e21\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "A Product or a Service that is bought, sold or kept in stock.": "\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e2b\u0e23\u0e37\u0e2d\u0e1a\u0e23\u0e34\u0e01\u0e32\u0e23\u0e17\u0e35\u0e48\u0e21\u0e35\u0e01\u0e32\u0e23\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e32\u0e22\u0e2b\u0e23\u0e37\u0e2d\u0e40\u0e01\u0e47\u0e1a\u0e44\u0e27\u0e49\u0e43\u0e19\u0e2a\u0e15\u0e47\u0e2d\u0e01",
+ "Allow Bill of Materials": "\u0e2d\u0e19\u0e38\u0e0d\u0e32\u0e15\u0e43\u0e2b\u0e49 Bill of Materials",
+ "Allow Production Order": "\u0e2d\u0e19\u0e38\u0e0d\u0e32\u0e15\u0e43\u0e2b\u0e49\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e01\u0e32\u0e23\u0e1c\u0e25\u0e34\u0e15",
+ "Allow Samples": "\u0e2d\u0e19\u0e38\u0e0d\u0e32\u0e15\u0e43\u0e2b\u0e49\u0e15\u0e31\u0e27\u0e2d\u0e22\u0e48\u0e32\u0e07",
+ "Allowance Percent": "\u0e23\u0e49\u0e2d\u0e22\u0e25\u0e30\u0e04\u0e48\u0e32\u0e40\u0e1c\u0e37\u0e48\u0e2d",
+ "Auto-raise Material Request if quantity goes below re-order level in a warehouse": "Auto-\u0e22\u0e01\u0e04\u0e33\u0e02\u0e2d\u0e16\u0e49\u0e32\u0e1b\u0e23\u0e34\u0e21\u0e32\u0e13\u0e27\u0e31\u0e2a\u0e14\u0e38\u0e44\u0e1b\u0e15\u0e48\u0e33\u0e01\u0e27\u0e48\u0e32\u0e23\u0e30\u0e14\u0e31\u0e1a\u0e43\u0e2b\u0e21\u0e48\u0e2a\u0e31\u0e48\u0e07\u0e43\u0e19\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Barcode": "\u0e1a\u0e32\u0e23\u0e4c\u0e42\u0e04\u0e49\u0e14",
+ "Brand": "\u0e22\u0e35\u0e48\u0e2b\u0e49\u0e2d",
+ "Buying Cost": "\u0e0b\u0e37\u0e49\u0e2d\u0e04\u0e48\u0e32\u0e43\u0e0a\u0e49\u0e08\u0e48\u0e32\u0e22",
+ "Buying Cost will be updated from Purchase Orders and Purchase Receipts.
The buying cost will calculated by moving average method.": "\u0e04\u0e48\u0e32\u0e43\u0e0a\u0e49\u0e08\u0e48\u0e32\u0e22\u0e01\u0e32\u0e23\u0e0b\u0e37\u0e49\u0e2d\u0e08\u0e30\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e1b\u0e23\u0e31\u0e1a\u0e1b\u0e23\u0e38\u0e07\u0e08\u0e32\u0e01\u0e04\u0e33\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e41\u0e25\u0e30\u0e23\u0e32\u0e22\u0e23\u0e31\u0e1a\u0e0b\u0e37\u0e49\u0e2d
\u0e04\u0e48\u0e32\u0e43\u0e0a\u0e49\u0e08\u0e48\u0e32\u0e22\u0e01\u0e32\u0e23\u0e0b\u0e37\u0e49\u0e2d\u0e08\u0e30\u0e04\u0e33\u0e19\u0e27\u0e13\u0e42\u0e14\u0e22\u0e27\u0e34\u0e18\u0e35\u0e16\u0e31\u0e27\u0e40\u0e09\u0e25\u0e35\u0e48\u0e22\u0e40\u0e04\u0e25\u0e37\u0e48\u0e2d\u0e19\u0e17\u0e35\u0e48",
+ "Cost Center": "\u0e28\u0e39\u0e19\u0e22\u0e4c\u0e15\u0e49\u0e19\u0e17\u0e38\u0e19",
+ "Create a price list from Price List master and enter standard ref rates against each of them. On selection of a price list in Quotation, Sales Order or Delivery Note, corresponding ref rate will be fetched for this item.": "\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e23\u0e32\u0e04\u0e32\u0e08\u0e32\u0e01\u0e15\u0e49\u0e19\u0e41\u0e1a\u0e1a\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e23\u0e32\u0e04\u0e32\u0e41\u0e25\u0e30\u0e1b\u0e49\u0e2d\u0e19\u0e2d\u0e31\u0e15\u0e23\u0e32\u0e2d\u0e49\u0e32\u0e07\u0e2d\u0e34\u0e07\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19\u0e01\u0e31\u0e1a\u0e41\u0e15\u0e48\u0e25\u0e30\u0e02\u0e2d\u0e07\u0e1e\u0e27\u0e01\u0e40\u0e02\u0e32 \u0e40\u0e01\u0e35\u0e48\u0e22\u0e27\u0e01\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e23\u0e32\u0e04\u0e32\u0e43\u0e19\u0e43\u0e1a\u0e40\u0e2a\u0e19\u0e2d\u0e23\u0e32\u0e04\u0e32, \u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e01\u0e32\u0e23\u0e02\u0e32\u0e22\u0e2b\u0e23\u0e37\u0e2d\u0e01\u0e32\u0e23\u0e08\u0e31\u0e14\u0e2a\u0e48\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e2b\u0e15\u0e38\u0e2d\u0e31\u0e15\u0e23\u0e32\u0e2d\u0e49\u0e32\u0e07\u0e2d\u0e34\u0e07\u0e17\u0e35\u0e48\u0e2a\u0e2d\u0e14\u0e04\u0e25\u0e49\u0e2d\u0e07\u0e01\u0e31\u0e19\u0e08\u0e30\u0e16\u0e39\u0e01\u0e40\u0e23\u0e35\u0e22\u0e01\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e19\u0e35\u200b\u200b\u0e49",
+ "Customer Code": "\u0e23\u0e2b\u0e31\u0e2a\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Customer Codes": "\u0e23\u0e2b\u0e31\u0e2a\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Default BOM": "BOM \u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19",
+ "Default Cost Center": "\u0e28\u0e39\u0e19\u0e22\u0e4c\u0e15\u0e49\u0e19\u0e17\u0e38\u0e19\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19",
+ "Default Cost Center for tracking expense for this item.": "\u0e28\u0e39\u0e19\u0e22\u0e4c\u0e15\u0e49\u0e19\u0e17\u0e38\u0e19\u0e04\u0e48\u0e32\u0e43\u0e0a\u0e49\u0e08\u0e48\u0e32\u0e22\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e32\u0e21\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e19\u0e35\u200b\u200b\u0e49",
+ "Default Expense Account": "\u0e1a\u0e31\u0e0d\u0e0a\u0e35\u0e04\u0e48\u0e32\u0e43\u0e0a\u0e49\u0e08\u0e48\u0e32\u0e22\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19",
+ "Default Income Account": "\u0e1a\u0e31\u0e0d\u0e0a\u0e35\u0e23\u0e32\u0e22\u0e44\u0e14\u0e49\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19",
+ "Default Purchase Account in which cost of the item will be debited.": "\u0e1a\u0e31\u0e0d\u0e0a\u0e35\u0e0b\u0e37\u0e49\u0e2d\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19\u0e17\u0e35\u0e48\u0e04\u0e48\u0e32\u0e43\u0e0a\u0e49\u0e08\u0e48\u0e32\u0e22\u0e02\u0e2d\u0e07\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e17\u0e35\u0e48\u0e08\u0e30\u0e16\u0e39\u0e01\u0e2b\u0e31\u0e01",
+ "Default Reserved Warehouse": "\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e2a\u0e07\u0e27\u0e19",
+ "Default Unit of Measure": "\u0e2b\u0e19\u0e48\u0e27\u0e22\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19\u0e02\u0e2d\u0e07\u0e27\u0e31\u0e14",
+ "Description": "\u0e25\u0e31\u0e01\u0e29\u0e13\u0e30",
+ "Description HTML": "HTML \u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14",
+ "End of Life": "\u0e43\u0e19\u0e15\u0e2d\u0e19\u0e17\u0e49\u0e32\u0e22\u0e02\u0e2d\u0e07\u0e0a\u0e35\u0e27\u0e34\u0e15",
+ "FIFO": "FIFO",
+ "File List": "\u0e23\u0e32\u0e22\u0e0a\u0e37\u0e48\u0e2d\u0e44\u0e1f\u0e25\u0e4c",
+ "For the convenience of customers, these codes can be used in print formats like Invoices and Delivery Notes": "\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e30\u0e14\u0e27\u0e01\u0e02\u0e2d\u0e07\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32\u0e23\u0e2b\u0e31\u0e2a\u0e40\u0e2b\u0e25\u0e48\u0e32\u0e19\u0e35\u0e49\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e19\u0e33\u0e21\u0e32\u0e43\u0e0a\u0e49\u0e43\u0e19\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a\u0e17\u0e35\u0e48\u0e1e\u0e34\u0e21\u0e1e\u0e4c\u0e40\u0e0a\u0e48\u0e19\u0e43\u0e1a\u0e41\u0e08\u0e49\u0e07\u0e2b\u0e19\u0e35\u0e49\u0e41\u0e25\u0e30\u0e19\u0e33\u0e2a\u0e48\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Generate Description HTML": "\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e04\u0e33\u0e2d\u0e18\u0e34\u0e1a\u0e32\u0e22 HTML",
+ "Generates HTML to include selected image in the description": "\u0e2a\u0e23\u0e49\u0e32\u0e07 HTM\u200b\u200bL \u0e17\u0e35\u0e48\u0e08\u0e30\u0e23\u0e27\u0e21\u0e20\u0e32\u0e1e\u0e17\u0e35\u0e48\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e44\u0e27\u0e49\u0e43\u0e19\u0e04\u0e33\u0e2d\u0e18\u0e34\u0e1a\u0e32\u0e22",
+ "Has Batch No": "\u0e0a\u0e38\u0e14\u0e21\u0e35\u0e44\u0e21\u0e48\u0e21\u0e35",
+ "Has Serial No": "\u0e21\u0e35\u0e0b\u0e35\u0e40\u0e23\u0e35\u0e22\u0e25\u0e44\u0e21\u0e48\u0e21\u0e35",
+ "Image": "\u0e20\u0e32\u0e1e",
+ "Image View": "\u0e14\u0e39\u0e20\u0e32\u0e1e",
+ "Inspection Criteria": "\u0e40\u0e01\u0e13\u0e11\u0e4c\u0e01\u0e32\u0e23\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a",
+ "Inspection Required": "\u0e01\u0e32\u0e23\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a\u0e17\u0e35\u0e48\u0e08\u0e33\u0e40\u0e1b\u0e47\u0e19",
+ "Inventory": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Is Asset Item": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e2a\u0e34\u0e19\u0e17\u0e23\u0e31\u0e1e\u0e22\u0e4c\u0e40\u0e1b\u0e47\u0e19",
+ "Is Purchase Item": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e0b\u0e37\u0e49\u0e2d\u0e40\u0e1b\u0e47\u0e19",
+ "Is Sales Item": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e02\u0e32\u0e22",
+ "Is Service Item": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e1a\u0e23\u0e34\u0e01\u0e32\u0e23\u0e40\u0e1b\u0e47\u0e19",
+ "Is Stock Item": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e40\u0e1b\u0e47\u0e19",
+ "Is Sub Contracted Item": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e2a\u0e31\u0e0d\u0e0d\u0e32\u0e22\u0e48\u0e2d\u0e22\u0e04\u0e37\u0e2d",
+ "Item": "\u0e0a\u0e34\u0e49\u0e19",
+ "Item Code": "\u0e23\u0e2b\u0e31\u0e2a\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Item Group": "\u0e01\u0e25\u0e38\u0e48\u0e21\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Item Image (if not slideshow)": "\u0e23\u0e39\u0e1b\u0e20\u0e32\u0e1e\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32 (\u0e16\u0e49\u0e32\u0e44\u0e21\u0e48\u0e2a\u0e44\u0e25\u0e14\u0e4c\u0e42\u0e0a\u0e27\u0e4c)",
+ "Item Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23",
+ "Item Prices": "\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a\u0e23\u0e32\u0e04\u0e32\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Item Quality Inspection Parameter": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e1e\u0e32\u0e23\u0e32\u0e21\u0e34\u0e40\u0e15\u0e2d\u0e23\u0e4c\u0e01\u0e32\u0e23\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a\u0e04\u0e38\u0e13\u0e20\u0e32\u0e1e",
+ "Item Supplier Details": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23",
+ "Item Tax": "\u0e20\u0e32\u0e29\u0e35\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Item Tax1": "Tax1 \u0e23\u0e32\u0e22\u0e01\u0e32\u0e23",
+ "Item Website Specifications": "\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e08\u0e33\u0e40\u0e1e\u0e32\u0e30\u0e40\u0e27\u0e47\u0e1a\u0e44\u0e0b\u0e15\u0e4c\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23",
+ "Item will be saved by this name in the data base.": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e08\u0e30\u0e16\u0e39\u0e01\u0e1a\u0e31\u0e19\u0e17\u0e36\u0e01\u0e44\u0e27\u0e49\u0e42\u0e14\u0e22\u0e43\u0e0a\u0e49\u0e0a\u0e37\u0e48\u0e2d\u0e19\u0e35\u0e49\u0e43\u0e19\u0e10\u0e32\u0e19\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25",
+ "Last Purchase Rate": "\u0e2d\u0e31\u0e15\u0e23\u0e32\u0e0b\u0e37\u0e49\u0e2d\u0e25\u0e48\u0e32\u0e2a\u0e38\u0e14",
+ "Lead Time Days": "\u0e19\u0e33\u0e27\u0e31\u0e19\u0e40\u0e27\u0e25\u0e32",
+ "Lead Time days is number of days by which this item is expected in your warehouse. This days is fetched in Material Request when you select this item.": "\u0e19\u0e33\u0e27\u0e31\u0e19\u0e40\u0e27\u0e25\u0e32\u0e40\u0e1b\u0e47\u0e19\u0e08\u0e33\u0e19\u0e27\u0e19\u0e27\u0e31\u0e19\u0e42\u0e14\u0e22\u0e17\u0e35\u0e48\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e19\u0e35\u200b\u200b\u0e49\u0e04\u0e32\u0e14\u0e27\u0e48\u0e32\u0e43\u0e19\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13 \u0e27\u0e31\u0e19\u0e19\u0e35\u0e49\u0e08\u0e30\u0e21\u0e32\u0e43\u0e19\u0e01\u0e32\u0e23\u0e23\u0e49\u0e2d\u0e07\u0e02\u0e2d\u0e27\u0e31\u0e2a\u0e14\u0e38\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e04\u0e38\u0e13\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e19\u0e35\u200b\u200b\u0e49",
+ "List this Item in multiple groups on the website.": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e19\u0e35\u200b\u200b\u0e49\u0e43\u0e19\u0e2b\u0e25\u0e32\u0e22\u0e01\u0e25\u0e38\u0e48\u0e21\u0e43\u0e19\u0e40\u0e27\u0e47\u0e1a\u0e44\u0e0b\u0e15\u0e4c",
+ "Mandatory if Stock Item is \"Yes\"": "\u0e1a\u0e31\u0e07\u0e04\u0e31\u0e1a\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e16\u0e49\u0e32\u0e40\u0e1b\u0e47\u0e19 "\u0e43\u0e0a\u0e48"",
+ "Manufacturer": "\u0e1c\u0e39\u0e49\u0e1c\u0e25\u0e34\u0e15",
+ "Manufacturer Part Number": "\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e25\u0e02\u0e0a\u0e34\u0e49\u0e19\u0e2a\u0e48\u0e27\u0e19\u0e02\u0e2d\u0e07\u0e1c\u0e39\u0e49\u0e1c\u0e25\u0e34\u0e15",
+ "Manufacturing": "\u0e01\u0e32\u0e23\u0e1c\u0e25\u0e34\u0e15",
+ "Max Discount (%)": "\u0e2a\u0e48\u0e27\u0e19\u0e25\u0e14\u0e2a\u0e39\u0e07\u0e2a\u0e38\u0e14 (%)",
+ "Minimum Order Qty": "\u0e08\u0e33\u0e19\u0e27\u0e19\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e31\u0e49\u0e19\u0e15\u0e48\u0e33",
+ "Moving Average": "\u0e04\u0e48\u0e32\u0e40\u0e09\u0e25\u0e35\u0e48\u0e22\u0e40\u0e04\u0e25\u0e37\u0e48\u0e2d\u0e19\u0e17\u0e35\u0e48",
+ "Net Weight": "\u0e1b\u0e23\u0e34\u0e21\u0e32\u0e13\u0e2a\u0e38\u0e17\u0e18\u0e34",
+ "Net Weight of each Item": "\u0e19\u0e49\u0e33\u0e2b\u0e19\u0e31\u0e01\u0e2a\u0e38\u0e17\u0e18\u0e34\u0e02\u0e2d\u0e07\u0e41\u0e15\u0e48\u0e25\u0e30\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23",
+ "No": "\u0e44\u0e21\u0e48",
+ "Notify by Email on Re-order": "\u0e41\u0e08\u0e49\u0e07\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e4c\u0e41\u0e25\u0e30 Re-order",
+ "Page Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e40\u0e1e\u0e08",
+ "Percentage variation in quantity to be allowed while receiving or delivering this item.": "\u0e01\u0e32\u0e23\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e41\u0e1b\u0e25\u0e07\u0e43\u0e19\u0e1b\u0e23\u0e34\u0e21\u0e32\u0e13\u0e23\u0e49\u0e2d\u0e22\u0e25\u0e30\u0e17\u0e35\u0e48\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e2d\u0e19\u0e38\u0e0d\u0e32\u0e15\u0e02\u0e13\u0e30\u0e17\u0e35\u0e48\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e2b\u0e23\u0e37\u0e2d\u0e01\u0e32\u0e23\u0e2a\u0e48\u0e07\u0e21\u0e2d\u0e1a\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e19\u0e35\u200b\u200b\u0e49",
+ "Price Lists and Rates": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e23\u0e32\u0e04\u0e32\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e41\u0e25\u0e30\u0e23\u0e32\u0e04\u0e32",
+ "Products will be sorted by weight-age in default searches. More the weight-age, higher the product will appear in the list.": "\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e08\u0e30\u0e16\u0e39\u0e01\u0e08\u0e31\u0e14\u0e40\u0e23\u0e35\u0e22\u0e07\u0e42\u0e14\u0e22\u0e19\u0e49\u0e33\u0e2b\u0e19\u0e31\u0e01\u0e2d\u0e32\u0e22\u0e38\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19\u0e43\u0e19\u0e01\u0e32\u0e23\u0e04\u0e49\u0e19\u0e2b\u0e32 \u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21\u0e19\u0e49\u0e33\u0e2b\u0e19\u0e31\u0e01\u0e2d\u0e32\u0e22\u0e38\u0e1c\u0e25\u0e34\u0e15\u0e20\u0e31\u0e13\u0e11\u0e4c\u0e17\u0e35\u0e48\u0e2a\u0e39\u0e07\u0e02\u0e36\u0e49\u0e19\u0e08\u0e30\u0e1b\u0e23\u0e32\u0e01\u0e0f\u0e43\u0e19\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23",
+ "Purchase Details": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e01\u0e32\u0e23\u0e0b\u0e37\u0e49\u0e2d",
+ "Quality Inspection Parameters": "\u0e1e\u0e32\u0e23\u0e32\u0e21\u0e34\u0e40\u0e15\u0e2d\u0e23\u0e4c\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a\u0e04\u0e38\u0e13\u0e20\u0e32\u0e1e",
+ "Re-Order Level": "\u0e23\u0e30\u0e14\u0e31\u0e1a Re-Order",
+ "Re-Order Qty": "\u0e08\u0e33\u0e19\u0e27\u0e19 Re-Order",
+ "Re-order": "Re-order",
+ "Sales Details": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e01\u0e32\u0e23\u0e02\u0e32\u0e22",
+ "Sales Rate": "\u0e2d\u0e31\u0e15\u0e23\u0e32\u0e01\u0e32\u0e23\u0e02\u0e32\u0e22",
+ "Select \"Yes\" if this item is to be sent to a customer or received from a supplier as a sample. Delivery notes and Purchase Receipts will update stock levels but there will be no invoice against this item.": "\u0e40\u0e25\u0e37\u0e2d\u0e01 "\u0e43\u0e0a\u0e48" \u0e16\u0e49\u0e32\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e19\u0e35\u200b\u200b\u0e49\u0e08\u0e30\u0e16\u0e39\u0e01\u0e2a\u0e48\u0e07\u0e43\u0e2b\u0e49\u0e01\u0e31\u0e1a\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32\u0e2b\u0e23\u0e37\u0e2d\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e08\u0e32\u0e01\u0e1c\u0e39\u0e49\u0e08\u0e31\u0e14\u0e08\u0e33\u0e2b\u0e19\u0e48\u0e32\u0e22\u0e40\u0e1b\u0e47\u0e19\u0e15\u0e31\u0e27\u0e2d\u0e22\u0e48\u0e32\u0e07 \u0e1a\u0e31\u0e19\u0e17\u0e36\u0e01\u0e01\u0e32\u0e23\u0e08\u0e31\u0e14\u0e2a\u0e48\u0e07\u0e41\u0e25\u0e30\u0e23\u0e32\u0e22\u0e23\u0e31\u0e1a\u0e0b\u0e37\u0e49\u0e2d\u0e08\u0e30\u0e1b\u0e23\u0e31\u0e1a\u0e1b\u0e23\u0e38\u0e07\u0e23\u0e30\u0e14\u0e31\u0e1a\u0e2a\u0e15\u0e47\u0e2d\u0e01 \u0e41\u0e15\u0e48\u0e08\u0e30\u0e21\u0e35\u0e43\u0e1a\u0e41\u0e08\u0e49\u0e07\u0e2b\u0e19\u0e35\u0e49\u0e01\u0e31\u0e1a\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e19\u0e35\u200b\u200b\u0e49\u0e44\u0e21\u0e48\u0e21\u0e35",
+ "Select \"Yes\" if this item is used for some internal purpose in your company.": "\u0e40\u0e25\u0e37\u0e2d\u0e01 "\u0e43\u0e0a\u0e48" \u0e16\u0e49\u0e32\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e19\u0e35\u200b\u200b\u0e49\u0e08\u0e30\u0e43\u0e0a\u0e49\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e27\u0e31\u0e15\u0e16\u0e38\u0e1b\u0e23\u0e30\u0e2a\u0e07\u0e04\u0e4c\u0e20\u0e32\u0e22\u0e43\u0e19\u0e1a\u0e32\u0e07\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e43\u0e19 \u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17 \u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13",
+ "Select \"Yes\" if this item represents some work like training, designing, consulting etc.": "\u0e40\u0e25\u0e37\u0e2d\u0e01 "\u0e43\u0e0a\u0e48" \u0e16\u0e49\u0e32\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e19\u0e35\u200b\u200b\u0e49\u0e41\u0e2a\u0e14\u0e07\u0e43\u0e2b\u0e49\u0e40\u0e2b\u0e47\u0e19\u0e16\u0e36\u0e07\u0e01\u0e32\u0e23\u0e17\u0e33\u0e07\u0e32\u0e19\u0e1a\u0e32\u0e07\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e40\u0e0a\u0e48\u0e19\u0e01\u0e32\u0e23\u0e1d\u0e36\u0e01\u0e2d\u0e1a\u0e23\u0e21\u0e01\u0e32\u0e23\u0e2d\u0e2d\u0e01\u0e41\u0e1a\u0e1a\u0e43\u0e2b\u0e49\u0e04\u0e33\u0e1b\u0e23\u0e36\u0e01\u0e29\u0e32 \u0e2f\u0e25\u0e2f",
+ "Select \"Yes\" if you are maintaining stock of this item in your Inventory.": "\u0e40\u0e25\u0e37\u0e2d\u0e01 "\u0e43\u0e0a\u0e48" \u0e16\u0e49\u0e32\u0e04\u0e38\u0e13\u0e08\u0e30\u0e23\u0e31\u0e01\u0e29\u0e32\u0e2a\u0e15\u0e47\u0e2d\u0e01\u0e02\u0e2d\u0e07\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e19\u0e35\u200b\u200b\u0e49\u0e43\u0e19\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e04\u0e07\u0e04\u0e25\u0e31\u0e07\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13",
+ "Select \"Yes\" if you supply raw materials to your supplier to manufacture this item.": "\u0e40\u0e25\u0e37\u0e2d\u0e01 "\u0e43\u0e0a\u0e48" \u0e16\u0e49\u0e32\u0e04\u0e38\u0e13\u0e08\u0e31\u0e14\u0e2b\u0e32\u0e27\u0e31\u0e15\u0e16\u0e38\u0e14\u0e34\u0e1a\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e08\u0e33\u0e2b\u0e19\u0e48\u0e32\u0e22\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13\u0e43\u0e19\u0e01\u0e32\u0e23\u0e1c\u0e25\u0e34\u0e15\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e19\u0e35\u200b\u200b\u0e49",
+ "Selecting \"Yes\" will allow this item to appear in Purchase Order , Purchase Receipt.": "\u0e40\u0e25\u0e37\u0e2d\u0e01 "\u0e43\u0e0a\u0e48" \u0e08\u0e30\u0e0a\u0e48\u0e27\u0e22\u0e43\u0e2b\u0e49\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e19\u0e35\u200b\u200b\u0e49\u0e08\u0e30\u0e1b\u0e23\u0e32\u0e01\u0e0f\u0e43\u0e19\u0e43\u0e1a\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e23\u0e31\u0e1a\u0e0b\u0e37\u0e49\u0e2d,",
+ "Selecting \"Yes\" will allow this item to figure in Sales Order, Delivery Note": "\u0e40\u0e25\u0e37\u0e2d\u0e01 "\u0e43\u0e0a\u0e48" \u0e08\u0e30\u0e0a\u0e48\u0e27\u0e22\u0e43\u0e2b\u0e49\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e19\u0e35\u200b\u200b\u0e49\u0e08\u0e30\u0e04\u0e34\u0e14\u0e43\u0e19\u0e01\u0e32\u0e23\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e01\u0e32\u0e23\u0e02\u0e32\u0e22, \u0e01\u0e32\u0e23\u0e08\u0e31\u0e14\u0e2a\u0e48\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e2b\u0e15\u0e38",
+ "Selecting \"Yes\" will allow you to create Bill of Material showing raw material and operational costs incurred to manufacture this item.": "\u0e40\u0e25\u0e37\u0e2d\u0e01 "\u0e43\u0e0a\u0e48" \u0e08\u0e30\u0e0a\u0e48\u0e27\u0e22\u0e43\u0e2b\u0e49\u0e04\u0e38\u0e13\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e1a\u0e34\u0e25\u0e02\u0e2d\u0e07\u0e27\u0e31\u0e2a\u0e14\u0e38\u0e41\u0e2a\u0e14\u0e07\u0e27\u0e31\u0e15\u0e16\u0e38\u0e14\u0e34\u0e1a\u0e41\u0e25\u0e30\u0e15\u0e49\u0e19\u0e17\u0e38\u0e19\u0e01\u0e32\u0e23\u0e14\u0e33\u0e40\u0e19\u0e34\u0e19\u0e07\u0e32\u0e19\u0e17\u0e35\u0e48\u0e40\u0e01\u0e34\u0e14\u0e02\u0e36\u0e49\u0e19\u0e43\u0e19\u0e01\u0e32\u0e23\u0e1c\u0e25\u0e34\u0e15\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e19\u0e35\u200b\u200b\u0e49",
+ "Selecting \"Yes\" will allow you to make a Production Order for this item.": "\u0e40\u0e25\u0e37\u0e2d\u0e01 "\u0e43\u0e0a\u0e48" \u0e08\u0e30\u0e0a\u0e48\u0e27\u0e22\u0e43\u0e2b\u0e49\u0e04\u0e38\u0e13\u0e17\u0e35\u0e48\u0e08\u0e30\u0e17\u0e33\u0e43\u0e2b\u0e49\u0e01\u0e32\u0e23\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e01\u0e32\u0e23\u0e1c\u0e25\u0e34\u0e15\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e19\u0e35\u200b\u200b\u0e49",
+ "Selecting \"Yes\" will give a unique identity to each entity of this item which can be viewed in the Serial No master.": "\u0e40\u0e25\u0e37\u0e2d\u0e01 "Yes" \u0e08\u0e30\u0e43\u0e2b\u0e49\u0e40\u0e2d\u0e01\u0e25\u0e31\u0e01\u0e29\u0e13\u0e4c\u0e40\u0e09\u0e1e\u0e32\u0e30\u0e02\u0e2d\u0e07\u0e41\u0e15\u0e48\u0e25\u0e30\u0e2d\u0e07\u0e04\u0e4c\u0e01\u0e23\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e19\u0e35\u200b\u200b\u0e49\u0e0b\u0e36\u0e48\u0e07\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e14\u0e39\u0e44\u0e14\u0e49\u0e43\u0e19\u0e2b\u0e25\u0e31\u0e01\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e25\u0e02\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07",
+ "Send an email to users of role \"Material Manager\" and \"Purchase Manager\" when re-order level is crossed.": "\u0e2a\u0e48\u0e07\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e44\u0e1b\u0e22\u0e31\u0e07\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e02\u0e2d\u0e07\u0e1a\u0e17\u0e1a\u0e32\u0e17 "\u0e1c\u0e39\u0e49\u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e27\u0e31\u0e2a\u0e14\u0e38" \u0e41\u0e25\u0e30 "\u0e1c\u0e39\u0e49\u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e0b\u0e37\u0e49\u0e2d" \u0e40\u0e21\u0e37\u0e48\u0e2d\u0e23\u0e30\u0e14\u0e31\u0e1a\u0e2d\u0e35\u0e01\u0e04\u0e23\u0e31\u0e49\u0e07\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e08\u0e30\u0e02\u0e49\u0e32\u0e21",
+ "Show \"In Stock\" or \"Not in Stock\" based on stock available in this warehouse.": "\u0e41\u0e2a\u0e14\u0e07 "\u0e43\u0e19\u0e2a\u0e15\u0e47\u0e2d\u0e01" \u0e2b\u0e23\u0e37\u0e2d "\u0e44\u0e21\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e43\u0e19\u0e2a\u0e15\u0e47\u0e2d\u0e01" \u0e1a\u0e19\u0e1e\u0e37\u0e49\u0e19\u0e10\u0e32\u0e19\u0e02\u0e2d\u0e07\u0e2b\u0e38\u0e49\u0e19\u0e17\u0e35\u0e48\u0e21\u0e35\u0e2d\u0e22\u0e39\u0e48\u0e43\u0e19\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e19\u0e35\u0e49",
+ "Show Price in Website (if set)": "\u0e41\u0e2a\u0e14\u0e07\u0e23\u0e32\u0e04\u0e32\u0e43\u0e19\u0e40\u0e27\u0e47\u0e1a\u0e44\u0e0b\u0e15\u0e4c (\u0e16\u0e49\u0e32\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32)",
+ "Show a slideshow at the top of the page": "\u0e2a\u0e44\u0e25\u0e14\u0e4c\u0e42\u0e0a\u0e27\u0e4c\u0e17\u0e35\u0e48\u0e14\u0e49\u0e32\u0e19\u0e1a\u0e19\u0e02\u0e2d\u0e07\u0e2b\u0e19\u0e49\u0e32",
+ "Show in Website": "\u0e41\u0e2a\u0e14\u0e07\u0e43\u0e19\u0e40\u0e27\u0e47\u0e1a\u0e44\u0e0b\u0e15\u0e4c",
+ "Slideshow": "\u0e2a\u0e44\u0e25\u0e14\u0e4c\u0e42\u0e0a\u0e27\u0e4c",
+ "Standard Rate": "\u0e2d\u0e31\u0e15\u0e23\u0e32\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19",
+ "Stock": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "UOM Conversion Details": "UOM \u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e01\u0e32\u0e23\u0e41\u0e1b\u0e25\u0e07",
+ "Unit of measurement of this item (e.g. Kg, Unit, No, Pair).": "\u0e2b\u0e19\u0e48\u0e27\u0e22\u0e02\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e27\u0e31\u0e14\u0e02\u0e2d\u0e07\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e19\u0e35\u200b\u200b\u0e49 (\u0e40\u0e0a\u0e48\u0e19\u0e01\u0e34\u0e42\u0e25\u0e01\u0e23\u0e31\u0e21\u0e2b\u0e19\u0e48\u0e27\u0e22, \u0e44\u0e21\u0e48\u0e21\u0e35, \u0e04\u0e39\u0e48)",
+ "Valuation Method": "\u0e27\u0e34\u0e18\u0e35\u0e01\u0e32\u0e23\u0e1b\u0e23\u0e30\u0e40\u0e21\u0e34\u0e19",
+ "Warehouse-wise Item Reorder": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e09\u0e25\u0e32\u0e14 Reorder",
+ "Warranty Period (in days)": "\u0e23\u0e30\u0e22\u0e30\u0e40\u0e27\u0e25\u0e32\u0e23\u0e31\u0e1a\u0e1b\u0e23\u0e30\u0e01\u0e31\u0e19 (\u0e27\u0e31\u0e19)",
+ "Website": "\u0e40\u0e27\u0e47\u0e1a\u0e44\u0e0b\u0e15\u0e4c",
+ "Website Description": "\u0e04\u0e33\u0e2d\u0e18\u0e34\u0e1a\u0e32\u0e22\u0e40\u0e27\u0e47\u0e1a\u0e44\u0e0b\u0e15\u0e4c",
+ "Website Item Groups": "\u0e01\u0e25\u0e38\u0e48\u0e21\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e40\u0e27\u0e47\u0e1a\u0e44\u0e0b\u0e15\u0e4c",
+ "Website Price List": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e23\u0e32\u0e04\u0e32\u0e40\u0e27\u0e47\u0e1a\u0e44\u0e0b\u0e15\u0e4c",
+ "Website Warehouse": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e40\u0e27\u0e47\u0e1a\u0e44\u0e0b\u0e15\u0e4c",
+ "Weight UOM": "UOM \u0e19\u0e49\u0e33\u0e2b\u0e19\u0e31\u0e01",
+ "Weightage": "weightage",
+ "Yes": "\u0e43\u0e0a\u0e48",
+ "You can enter the minimum quantity of this item to be ordered.": "\u0e04\u0e38\u0e13\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e1b\u0e49\u0e2d\u0e19\u0e1b\u0e23\u0e34\u0e21\u0e32\u0e13\u0e02\u0e31\u0e49\u0e19\u0e15\u0e48\u0e33\u0e02\u0e2d\u0e07\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e19\u0e35\u200b\u200b\u0e49\u0e08\u0e30\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e04\u0e33\u0e2a\u0e31\u0e48\u0e07",
+ "website page link": "\u0e01\u0e32\u0e23\u0e40\u0e0a\u0e37\u0e48\u0e2d\u0e21\u0e42\u0e22\u0e07\u0e2b\u0e19\u0e49\u0e32\u0e40\u0e27\u0e47\u0e1a\u0e44\u0e0b\u0e15\u0e4c"
+}
\ No newline at end of file
diff --git a/stock/doctype/item/test_item.py b/stock/doctype/item/test_item.py
index 4238e149bba..035774b50bd 100644
--- a/stock/doctype/item/test_item.py
+++ b/stock/doctype/item/test_item.py
@@ -17,64 +17,8 @@
from __future__ import unicode_literals
import unittest
import webnotes
-import copy
-
-from webnotes.model.bean import Bean
-from webnotes.model.doc import Document
-from webnotes.utils import flt
-
-sql = webnotes.conn.sql
-
-
-class TestItem(unittest.TestCase):
- def setUp(self):
- webnotes.conn.begin()
-
- def tearDown(self):
- webnotes.conn.rollback()
-
- def testInsert(self):
- d = Bean()
-
- count_before = flt(sql("select count(*) from tab"+_doctype)[0][0])
- if docok:
- for i in docok:
- d.doc = i
- d.children = None
- d.doc.fields['__islocal']=1
- d.save(1)
- count_after = flt(sql("select count(*) from tab"+_doctype)[0][0])
- self.assertTrue(count_before+len(docok)==count_after)
-
- def testFailAssert(self):
- if docnotok:
- with self.assertRaises(Exception) as context:
- d = Bean()
- d.doc = docnotok[0]
- d.children = None
- d.doc.fields['__islocal']=1
- d.save(1)
-
-# Test Data
-
-tabOK = [
- {'is_purchase_item': None, 'is_pro_applicable': 'No', 'is_manufactured_item': None, 'description': 'Gel Ink', 'default_warehouse': None, 'item_name': 'Gel Ink', 'item_group': 'Ink', 'item_code': 'GELINK', 'is_sub_contracted_item': None, 'is_stock_item': 'Yes', 'stock_uom': 'Nos', 'docstatus': '0'},
- {'is_purchase_item': None, 'is_pro_applicable': 'No', 'is_manufactured_item': None, 'description': 'Gel Refill', 'default_warehouse': None, 'item_name': 'Gel Refill', 'item_group': 'Refill', 'item_code': 'GELREF', 'is_sub_contracted_item': None, 'is_stock_item': 'Yes', 'stock_uom': 'Nos', 'docstatus': '0'},
- {'is_purchase_item': None, 'is_pro_applicable': 'No', 'is_manufactured_item': None, 'description': 'Gel Pen', 'default_warehouse': None, 'item_name': 'Gel Pen', 'item_group': 'Pen', 'item_code': 'GELPEN', 'is_sub_contracted_item': None, 'is_stock_item': 'Yes', 'stock_uom': 'Nos', 'docstatus': '0'}
- ]
-
-tabNotOK = [
- {'is_purchase_item': None, 'is_pro_applicable': None, 'is_manufactured_item': None, 'description': 'F Ink', 'default_warehouse': None, 'item_name': 'F Ink', 'item_group': 'F Ink', 'item_code': None, 'is_sub_contracted_item': None, 'is_stock_item': 'No', 'stock_uom': 'Nos', 'docstatus': '0'}
- ]
-
-_doctype = 'Item'
-
-for i in tabOK: i['doctype']=_doctype
-for i in tabNotOK: i['doctype']=_doctype
-
-docok = [Document(fielddata=r) for r in tabOK]
-docnotok = [Document(fielddata=r) for r in tabNotOK]
+test_ignore = ["BOM"]
test_records = [
[{
@@ -145,4 +89,42 @@ test_records = [
"is_sub_contracted_item": "No",
"stock_uom": "_Test UOM"
}],
+ [{
+ "doctype": "Item",
+ "item_code": "_Test Sales BOM Item",
+ "item_name": "_Test Sales BOM Item",
+ "description": "_Test Sales BOM Item",
+ "item_group": "_Test Item Group Desktops",
+ "is_stock_item": "No",
+ "is_asset_item": "No",
+ "has_batch_no": "No",
+ "has_serial_no": "No",
+ "is_purchase_item": "Yes",
+ "is_sales_item": "Yes",
+ "is_service_item": "No",
+ "is_sample_item": "No",
+ "inspection_required": "No",
+ "is_pro_applicable": "No",
+ "is_sub_contracted_item": "No",
+ "stock_uom": "_Test UOM"
+ }],
+ [{
+ "doctype": "Item",
+ "item_code": "_Test FG Item",
+ "item_name": "_Test FG Item",
+ "description": "_Test FG Item",
+ "item_group": "_Test Item Group Desktops",
+ "is_stock_item": "Yes",
+ "is_asset_item": "No",
+ "has_batch_no": "No",
+ "has_serial_no": "No",
+ "is_purchase_item": "Yes",
+ "is_sales_item": "Yes",
+ "is_service_item": "No",
+ "is_sample_item": "No",
+ "inspection_required": "No",
+ "is_pro_applicable": "Yes",
+ "is_sub_contracted_item": "Yes",
+ "stock_uom": "_Test UOM"
+ }],
]
\ No newline at end of file
diff --git a/stock/doctype/item_customer_detail/locale/_messages_doc.json b/stock/doctype/item_customer_detail/locale/_messages_doc.json
index 86b3d7c1568..23485ec0046 100644
--- a/stock/doctype/item_customer_detail/locale/_messages_doc.json
+++ b/stock/doctype/item_customer_detail/locale/_messages_doc.json
@@ -1,7 +1,7 @@
[
"Item Customer Detail",
+ "For the convenience of customers, these codes can be used in print formats like Invoices and Delivery Notes",
"Customer Name",
"Ref Code",
- "For the convenience of customers, these codes can be used in print formats like Invoices and Delivery Notes",
"Stock"
]
\ No newline at end of file
diff --git a/stock/doctype/item_customer_detail/locale/de-doc.json b/stock/doctype/item_customer_detail/locale/de-doc.json
new file mode 100644
index 00000000000..8fe72c0f774
--- /dev/null
+++ b/stock/doctype/item_customer_detail/locale/de-doc.json
@@ -0,0 +1,7 @@
+{
+ "Customer Name": "Name des Kunden",
+ "For the convenience of customers, these codes can be used in print formats like Invoices and Delivery Notes": "F\u00fcr die Bequemlichkeit der Kunden, k\u00f6nnen diese Codes in Druckformate wie Rechnungen und Lieferscheine werden",
+ "Item Customer Detail": "Artikel Kundenrezensionen",
+ "Ref Code": "Ref Code",
+ "Stock": "Lager"
+}
\ No newline at end of file
diff --git a/stock/doctype/item_customer_detail/locale/pt-BR-doc.json b/stock/doctype/item_customer_detail/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..bc104e12b82
--- /dev/null
+++ b/stock/doctype/item_customer_detail/locale/pt-BR-doc.json
@@ -0,0 +1,7 @@
+{
+ "Customer Name": "Nome do cliente",
+ "For the convenience of customers, these codes can be used in print formats like Invoices and Delivery Notes": "Para a comodidade dos clientes, estes c\u00f3digos podem ser usados \u200b\u200bem formatos de impress\u00e3o, como Notas Fiscais e Guias de Remessa",
+ "Item Customer Detail": "Detalhe do Cliente do Item",
+ "Ref Code": "C\u00f3digo de Ref.",
+ "Stock": "Estoque"
+}
\ No newline at end of file
diff --git a/stock/doctype/item_customer_detail/locale/th-doc.json b/stock/doctype/item_customer_detail/locale/th-doc.json
new file mode 100644
index 00000000000..30afb0097ba
--- /dev/null
+++ b/stock/doctype/item_customer_detail/locale/th-doc.json
@@ -0,0 +1,7 @@
+{
+ "Customer Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "For the convenience of customers, these codes can be used in print formats like Invoices and Delivery Notes": "\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e30\u0e14\u0e27\u0e01\u0e02\u0e2d\u0e07\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32\u0e23\u0e2b\u0e31\u0e2a\u0e40\u0e2b\u0e25\u0e48\u0e32\u0e19\u0e35\u0e49\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e19\u0e33\u0e21\u0e32\u0e43\u0e0a\u0e49\u0e43\u0e19\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a\u0e17\u0e35\u0e48\u0e1e\u0e34\u0e21\u0e1e\u0e4c\u0e40\u0e0a\u0e48\u0e19\u0e43\u0e1a\u0e41\u0e08\u0e49\u0e07\u0e2b\u0e19\u0e35\u0e49\u0e41\u0e25\u0e30\u0e19\u0e33\u0e2a\u0e48\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Item Customer Detail": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23",
+ "Ref Code": "\u0e23\u0e2b\u0e31\u0e2a Ref",
+ "Stock": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32"
+}
\ No newline at end of file
diff --git a/stock/doctype/item_price/locale/de-doc.json b/stock/doctype/item_price/locale/de-doc.json
new file mode 100644
index 00000000000..3557e398b78
--- /dev/null
+++ b/stock/doctype/item_price/locale/de-doc.json
@@ -0,0 +1,11 @@
+{
+ "Allow this price in purchase related forms": "Lassen Sie diesen Preis in Kauf verwandten Formen",
+ "Allow this price in sales related forms": "Lassen Sie diesen Preis im Vertrieb verwandte Formen",
+ "Currency": "W\u00e4hrung",
+ "For Buying": "F\u00fcr den Kauf",
+ "For Selling": "F\u00fcr den Verkauf",
+ "Item Price": "Artikel Preis",
+ "Price List Name": "Preis Name",
+ "Ref Rate": "Ref Rate",
+ "Stock": "Lager"
+}
\ No newline at end of file
diff --git a/stock/doctype/item_price/locale/pt-BR-doc.json b/stock/doctype/item_price/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..dc04a24e653
--- /dev/null
+++ b/stock/doctype/item_price/locale/pt-BR-doc.json
@@ -0,0 +1,11 @@
+{
+ "Allow this price in purchase related forms": "Permitir esse pre\u00e7o em formul\u00e1rios de compra relacionados",
+ "Allow this price in sales related forms": "Permitir esse pre\u00e7o em formul\u00e1rios de venda relacionados",
+ "Currency": "Moeda",
+ "For Buying": "Para Comprar",
+ "For Selling": "Para Venda",
+ "Item Price": "Pre\u00e7o do Item",
+ "Price List Name": "Nome da Lista de Pre\u00e7os",
+ "Ref Rate": "Taxa de Ref.",
+ "Stock": "Estoque"
+}
\ No newline at end of file
diff --git a/stock/doctype/item_price/locale/th-doc.json b/stock/doctype/item_price/locale/th-doc.json
new file mode 100644
index 00000000000..45c21264780
--- /dev/null
+++ b/stock/doctype/item_price/locale/th-doc.json
@@ -0,0 +1,11 @@
+{
+ "Allow this price in purchase related forms": "\u0e2d\u0e19\u0e38\u0e0d\u0e32\u0e15\u0e43\u0e2b\u0e49\u0e23\u0e32\u0e04\u0e32\u0e43\u0e19\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a\u0e17\u0e35\u0e48\u0e40\u0e01\u0e35\u0e48\u0e22\u0e27\u0e02\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e0b\u0e37\u0e49\u0e2d\u0e19\u0e35\u0e49",
+ "Allow this price in sales related forms": "\u0e2d\u0e19\u0e38\u0e0d\u0e32\u0e15\u0e43\u0e2b\u0e49\u0e23\u0e32\u0e04\u0e32\u0e43\u0e19\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a\u0e17\u0e35\u0e48\u0e40\u0e01\u0e35\u0e48\u0e22\u0e27\u0e02\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e02\u0e32\u0e22\u0e19\u0e35\u0e49",
+ "Currency": "\u0e40\u0e07\u0e34\u0e19\u0e15\u0e23\u0e32",
+ "For Buying": "\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e0b\u0e37\u0e49\u0e2d",
+ "For Selling": "\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e02\u0e32\u0e22",
+ "Item Price": "\u0e23\u0e32\u0e04\u0e32\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Price List Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e23\u0e32\u0e04\u0e32",
+ "Ref Rate": "\u0e2d\u0e31\u0e15\u0e23\u0e32 Ref",
+ "Stock": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32"
+}
\ No newline at end of file
diff --git a/stock/doctype/item_quality_inspection_parameter/locale/de-doc.json b/stock/doctype/item_quality_inspection_parameter/locale/de-doc.json
new file mode 100644
index 00000000000..81bd71519fa
--- /dev/null
+++ b/stock/doctype/item_quality_inspection_parameter/locale/de-doc.json
@@ -0,0 +1,6 @@
+{
+ "Acceptance Criteria": "Akzeptanzkriterien",
+ "Item Quality Inspection Parameter": "Qualit\u00e4tspr\u00fcfung Artikel Parameter",
+ "Parameter": "Parameter",
+ "Stock": "Lager"
+}
\ No newline at end of file
diff --git a/stock/doctype/item_quality_inspection_parameter/locale/pt-BR-doc.json b/stock/doctype/item_quality_inspection_parameter/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..37a1a32c9ef
--- /dev/null
+++ b/stock/doctype/item_quality_inspection_parameter/locale/pt-BR-doc.json
@@ -0,0 +1,6 @@
+{
+ "Acceptance Criteria": "Crit\u00e9rios de Aceita\u00e7\u00e3o",
+ "Item Quality Inspection Parameter": "Par\u00e2metro de Inspe\u00e7\u00e3o de Qualidade do Item",
+ "Parameter": "Par\u00e2metro",
+ "Stock": "Estoque"
+}
\ No newline at end of file
diff --git a/stock/doctype/item_quality_inspection_parameter/locale/th-doc.json b/stock/doctype/item_quality_inspection_parameter/locale/th-doc.json
new file mode 100644
index 00000000000..2408d0923fb
--- /dev/null
+++ b/stock/doctype/item_quality_inspection_parameter/locale/th-doc.json
@@ -0,0 +1,6 @@
+{
+ "Acceptance Criteria": "\u0e40\u0e01\u0e13\u0e11\u0e4c\u0e01\u0e32\u0e23\u0e22\u0e2d\u0e21\u0e23\u0e31\u0e1a",
+ "Item Quality Inspection Parameter": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e1e\u0e32\u0e23\u0e32\u0e21\u0e34\u0e40\u0e15\u0e2d\u0e23\u0e4c\u0e01\u0e32\u0e23\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a\u0e04\u0e38\u0e13\u0e20\u0e32\u0e1e",
+ "Parameter": "\u0e1e\u0e32\u0e23\u0e32\u0e21\u0e34\u0e40\u0e15\u0e2d\u0e23\u0e4c",
+ "Stock": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32"
+}
\ No newline at end of file
diff --git a/stock/doctype/item_reorder/locale/_messages_doc.json b/stock/doctype/item_reorder/locale/_messages_doc.json
index b20242c72b7..ddea0706fc2 100644
--- a/stock/doctype/item_reorder/locale/_messages_doc.json
+++ b/stock/doctype/item_reorder/locale/_messages_doc.json
@@ -3,8 +3,8 @@
"Re-order Level",
"Material Request Type",
"Item Reorder",
- "Transfer",
"Warehouse",
+ "Transfer",
"Re-order Qty",
"Stock"
]
\ No newline at end of file
diff --git a/stock/doctype/item_reorder/locale/de-doc.json b/stock/doctype/item_reorder/locale/de-doc.json
new file mode 100644
index 00000000000..1ab57fbf06b
--- /dev/null
+++ b/stock/doctype/item_reorder/locale/de-doc.json
@@ -0,0 +1,10 @@
+{
+ "Item Reorder": "Artikel Reorder",
+ "Material Request Type": "Material Request Type",
+ "Purchase": "Kaufen",
+ "Re-order Level": "Re-Order-Ebene",
+ "Re-order Qty": "Re-Bestellung Menge",
+ "Stock": "Lager",
+ "Transfer": "\u00dcbertragen",
+ "Warehouse": "Lager"
+}
\ No newline at end of file
diff --git a/stock/doctype/item_reorder/locale/pt-BR-doc.json b/stock/doctype/item_reorder/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..d46f25fc9ad
--- /dev/null
+++ b/stock/doctype/item_reorder/locale/pt-BR-doc.json
@@ -0,0 +1,10 @@
+{
+ "Item Reorder": "Item Reordenar",
+ "Material Request Type": "Tipo de solicita\u00e7\u00e3o de material",
+ "Purchase": "Compras",
+ "Re-order Level": "Re fim-Level",
+ "Re-order Qty": "Re-vista Qtde",
+ "Stock": "Estoque",
+ "Transfer": "Transferir",
+ "Warehouse": "Almoxarifado"
+}
\ No newline at end of file
diff --git a/stock/doctype/item_reorder/locale/th-doc.json b/stock/doctype/item_reorder/locale/th-doc.json
new file mode 100644
index 00000000000..029e2435de3
--- /dev/null
+++ b/stock/doctype/item_reorder/locale/th-doc.json
@@ -0,0 +1,10 @@
+{
+ "Item Reorder": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23 Reorder",
+ "Material Request Type": "\u0e0a\u0e19\u0e34\u0e14\u0e02\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e23\u0e49\u0e2d\u0e07\u0e02\u0e2d\u0e27\u0e31\u0e2a\u0e14\u0e38",
+ "Purchase": "\u0e0b\u0e37\u0e49\u0e2d",
+ "Re-order Level": "\u0e23\u0e30\u0e14\u0e31\u0e1a Re-order",
+ "Re-order Qty": "\u0e08\u0e33\u0e19\u0e27\u0e19 Re-order",
+ "Stock": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Transfer": "\u0e42\u0e2d\u0e19",
+ "Warehouse": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32"
+}
\ No newline at end of file
diff --git a/stock/doctype/item_supplier/locale/de-doc.json b/stock/doctype/item_supplier/locale/de-doc.json
new file mode 100644
index 00000000000..9528a86e452
--- /dev/null
+++ b/stock/doctype/item_supplier/locale/de-doc.json
@@ -0,0 +1,6 @@
+{
+ "Item Supplier": "Artikel Lieferant",
+ "Stock": "Lager",
+ "Supplier": "Lieferant",
+ "Supplier Part Number": "Lieferant Teilenummer"
+}
\ No newline at end of file
diff --git a/stock/doctype/item_supplier/locale/pt-BR-doc.json b/stock/doctype/item_supplier/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..3a92ba6d528
--- /dev/null
+++ b/stock/doctype/item_supplier/locale/pt-BR-doc.json
@@ -0,0 +1,6 @@
+{
+ "Item Supplier": "Fornecedor do Item",
+ "Stock": "Estoque",
+ "Supplier": "Fornecedor",
+ "Supplier Part Number": "N\u00famero da pe\u00e7a do Fornecedor"
+}
\ No newline at end of file
diff --git a/stock/doctype/item_supplier/locale/th-doc.json b/stock/doctype/item_supplier/locale/th-doc.json
new file mode 100644
index 00000000000..cd20384bb82
--- /dev/null
+++ b/stock/doctype/item_supplier/locale/th-doc.json
@@ -0,0 +1,6 @@
+{
+ "Item Supplier": "\u0e1c\u0e39\u0e49\u0e1c\u0e25\u0e34\u0e15\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23",
+ "Stock": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Supplier": "\u0e1c\u0e39\u0e49\u0e08\u0e31\u0e14\u0e08\u0e33\u0e2b\u0e19\u0e48\u0e32\u0e22",
+ "Supplier Part Number": "\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e25\u0e02\u0e0a\u0e34\u0e49\u0e19\u0e2a\u0e48\u0e27\u0e19\u0e02\u0e2d\u0e07\u0e1c\u0e39\u0e49\u0e1c\u0e25\u0e34\u0e15"
+}
\ No newline at end of file
diff --git a/stock/doctype/item_tax/locale/de-doc.json b/stock/doctype/item_tax/locale/de-doc.json
new file mode 100644
index 00000000000..606613d6210
--- /dev/null
+++ b/stock/doctype/item_tax/locale/de-doc.json
@@ -0,0 +1,6 @@
+{
+ "Item Tax": "MwSt. Artikel",
+ "Stock": "Lager",
+ "Tax": "Steuer",
+ "Tax Rate": "Tax Rate"
+}
\ No newline at end of file
diff --git a/stock/doctype/item_tax/locale/pt-BR-doc.json b/stock/doctype/item_tax/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..e3f62c2e58b
--- /dev/null
+++ b/stock/doctype/item_tax/locale/pt-BR-doc.json
@@ -0,0 +1,6 @@
+{
+ "Item Tax": "Imposto do Item",
+ "Stock": "Estoque",
+ "Tax": "Imposto",
+ "Tax Rate": "Taxa de Imposto"
+}
\ No newline at end of file
diff --git a/stock/doctype/item_tax/locale/th-doc.json b/stock/doctype/item_tax/locale/th-doc.json
new file mode 100644
index 00000000000..e8ef54b4285
--- /dev/null
+++ b/stock/doctype/item_tax/locale/th-doc.json
@@ -0,0 +1,6 @@
+{
+ "Item Tax": "\u0e20\u0e32\u0e29\u0e35\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Stock": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Tax": "\u0e20\u0e32\u0e29\u0e35",
+ "Tax Rate": "\u0e2d\u0e31\u0e15\u0e23\u0e32\u0e20\u0e32\u0e29\u0e35"
+}
\ No newline at end of file
diff --git a/stock/doctype/item_website_specification/locale/_messages_doc.json b/stock/doctype/item_website_specification/locale/_messages_doc.json
index a0c1ff8f656..d93a9880468 100644
--- a/stock/doctype/item_website_specification/locale/_messages_doc.json
+++ b/stock/doctype/item_website_specification/locale/_messages_doc.json
@@ -1,7 +1,7 @@
[
- "Label",
- "Item Website Specification",
- "Table for Item that will be shown in Web Site",
"Description",
- "Stock"
+ "Label",
+ "Table for Item that will be shown in Web Site",
+ "Stock",
+ "Item Website Specification"
]
\ No newline at end of file
diff --git a/stock/doctype/item_website_specification/locale/de-doc.json b/stock/doctype/item_website_specification/locale/de-doc.json
new file mode 100644
index 00000000000..8660ced6981
--- /dev/null
+++ b/stock/doctype/item_website_specification/locale/de-doc.json
@@ -0,0 +1,7 @@
+{
+ "Description": "Beschreibung",
+ "Item Website Specification": "Artikelbeschreibung Webseite",
+ "Label": "Etikett",
+ "Stock": "Lager",
+ "Table for Item that will be shown in Web Site": "Tabelle f\u00fcr Artikel, die in Web-Site angezeigt werden"
+}
\ No newline at end of file
diff --git a/stock/doctype/item_website_specification/locale/pt-BR-doc.json b/stock/doctype/item_website_specification/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..a4516caa03d
--- /dev/null
+++ b/stock/doctype/item_website_specification/locale/pt-BR-doc.json
@@ -0,0 +1,7 @@
+{
+ "Description": "Descri\u00e7\u00e3o",
+ "Item Website Specification": "Especifica\u00e7\u00e3o do Site do Item",
+ "Label": "Etiqueta",
+ "Stock": "Estoque",
+ "Table for Item that will be shown in Web Site": "Tabela para Item que ser\u00e1 mostrado no site"
+}
\ No newline at end of file
diff --git a/stock/doctype/item_website_specification/locale/th-doc.json b/stock/doctype/item_website_specification/locale/th-doc.json
new file mode 100644
index 00000000000..79510a49f20
--- /dev/null
+++ b/stock/doctype/item_website_specification/locale/th-doc.json
@@ -0,0 +1,7 @@
+{
+ "Description": "\u0e25\u0e31\u0e01\u0e29\u0e13\u0e30",
+ "Item Website Specification": "\u0e2a\u0e40\u0e1b\u0e01\u0e40\u0e27\u0e47\u0e1a\u0e44\u0e0b\u0e15\u0e4c\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23",
+ "Label": "\u0e09\u0e25\u0e32\u0e01",
+ "Stock": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Table for Item that will be shown in Web Site": "\u0e15\u0e32\u0e23\u0e32\u0e07\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e17\u0e35\u0e48\u0e08\u0e30\u0e41\u0e2a\u0e14\u0e07\u0e43\u0e19\u0e40\u0e27\u0e47\u0e1a\u0e44\u0e0b\u0e15\u0e4c"
+}
\ No newline at end of file
diff --git a/stock/doctype/landed_cost_item/locale/_messages_doc.json b/stock/doctype/landed_cost_item/locale/_messages_doc.json
index 3db328302ce..237ca4c68aa 100644
--- a/stock/doctype/landed_cost_item/locale/_messages_doc.json
+++ b/stock/doctype/landed_cost_item/locale/_messages_doc.json
@@ -1,7 +1,7 @@
[
+ "Landed Cost Item",
"Description",
"Amount",
- "Landed Cost Item",
"Account Head",
"Stock"
]
\ No newline at end of file
diff --git a/stock/doctype/landed_cost_item/locale/de-doc.json b/stock/doctype/landed_cost_item/locale/de-doc.json
new file mode 100644
index 00000000000..77b4d9869fa
--- /dev/null
+++ b/stock/doctype/landed_cost_item/locale/de-doc.json
@@ -0,0 +1,7 @@
+{
+ "Account Head": "Konto Leiter",
+ "Amount": "Menge",
+ "Description": "Beschreibung",
+ "Landed Cost Item": "Landed Cost Artikel",
+ "Stock": "Lager"
+}
\ No newline at end of file
diff --git a/stock/doctype/landed_cost_item/locale/pt-BR-doc.json b/stock/doctype/landed_cost_item/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..836d0b50a30
--- /dev/null
+++ b/stock/doctype/landed_cost_item/locale/pt-BR-doc.json
@@ -0,0 +1,7 @@
+{
+ "Account Head": "Conta",
+ "Amount": "Quantidade",
+ "Description": "Descri\u00e7\u00e3o",
+ "Landed Cost Item": "Custo de desembarque do Item",
+ "Stock": "Estoque"
+}
\ No newline at end of file
diff --git a/stock/doctype/landed_cost_item/locale/th-doc.json b/stock/doctype/landed_cost_item/locale/th-doc.json
new file mode 100644
index 00000000000..e3d28165944
--- /dev/null
+++ b/stock/doctype/landed_cost_item/locale/th-doc.json
@@ -0,0 +1,7 @@
+{
+ "Account Head": "\u0e2b\u0e31\u0e27\u0e2b\u0e19\u0e49\u0e32\u0e1a\u0e31\u0e0d\u0e0a\u0e35",
+ "Amount": "\u0e08\u0e33\u0e19\u0e27\u0e19",
+ "Description": "\u0e25\u0e31\u0e01\u0e29\u0e13\u0e30",
+ "Landed Cost Item": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e04\u0e48\u0e32\u0e43\u0e0a\u0e49\u0e08\u0e48\u0e32\u0e22\u0e25\u0e07",
+ "Stock": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32"
+}
\ No newline at end of file
diff --git a/stock/doctype/landed_cost_purchase_receipt/locale/de-doc.json b/stock/doctype/landed_cost_purchase_receipt/locale/de-doc.json
new file mode 100644
index 00000000000..13d08eda1b2
--- /dev/null
+++ b/stock/doctype/landed_cost_purchase_receipt/locale/de-doc.json
@@ -0,0 +1,6 @@
+{
+ "Landed Cost Purchase Receipt": "Landed Cost Kaufbeleg",
+ "Purchase Receipt": "Kaufbeleg",
+ "Select PR": "Select PR",
+ "Stock": "Lager"
+}
\ No newline at end of file
diff --git a/stock/doctype/landed_cost_purchase_receipt/locale/pt-BR-doc.json b/stock/doctype/landed_cost_purchase_receipt/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..b858a6f74e1
--- /dev/null
+++ b/stock/doctype/landed_cost_purchase_receipt/locale/pt-BR-doc.json
@@ -0,0 +1,6 @@
+{
+ "Landed Cost Purchase Receipt": "Recibo de compra do custo de desembarque",
+ "Purchase Receipt": "Recibo de Compra",
+ "Select PR": "Selecionar PR",
+ "Stock": "Estoque"
+}
\ No newline at end of file
diff --git a/stock/doctype/landed_cost_purchase_receipt/locale/th-doc.json b/stock/doctype/landed_cost_purchase_receipt/locale/th-doc.json
new file mode 100644
index 00000000000..b167b2cfac2
--- /dev/null
+++ b/stock/doctype/landed_cost_purchase_receipt/locale/th-doc.json
@@ -0,0 +1,6 @@
+{
+ "Landed Cost Purchase Receipt": "\u0e04\u0e48\u0e32\u0e43\u0e0a\u0e49\u0e08\u0e48\u0e32\u0e22\u0e43\u0e1a\u0e40\u0e2a\u0e23\u0e47\u0e08\u0e23\u0e31\u0e1a\u0e40\u0e07\u0e34\u0e19\u0e25\u0e07\u0e0b\u0e37\u0e49\u0e2d",
+ "Purchase Receipt": "\u0e0b\u0e37\u0e49\u0e2d\u0e43\u0e1a\u0e40\u0e2a\u0e23\u0e47\u0e08\u0e23\u0e31\u0e1a\u0e40\u0e07\u0e34\u0e19",
+ "Select PR": "PR \u0e40\u0e25\u0e37\u0e2d\u0e01",
+ "Stock": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32"
+}
\ No newline at end of file
diff --git a/stock/doctype/landed_cost_wizard/locale/de-doc.json b/stock/doctype/landed_cost_wizard/locale/de-doc.json
new file mode 100644
index 00000000000..464781cb15f
--- /dev/null
+++ b/stock/doctype/landed_cost_wizard/locale/de-doc.json
@@ -0,0 +1,12 @@
+{
+ "Currency": "W\u00e4hrung",
+ "From PR Date": "Von PR Datum",
+ "Get Purchase Receipt": "Holen Kaufbeleg",
+ "Landed Cost Items": "Landed Cost Artikel",
+ "Landed Cost Purchase Receipts": "Landed Cost Kaufbelege",
+ "Landed Cost Wizard": "Landed Cost Wizard",
+ "Process": "Prozess",
+ "Stock": "Lager",
+ "To PR Date": "Um PR Datum",
+ "Update PR": "Update PR"
+}
\ No newline at end of file
diff --git a/stock/doctype/landed_cost_wizard/locale/pt-BR-doc.json b/stock/doctype/landed_cost_wizard/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..9520ba8d4ca
--- /dev/null
+++ b/stock/doctype/landed_cost_wizard/locale/pt-BR-doc.json
@@ -0,0 +1,12 @@
+{
+ "Currency": "Moeda",
+ "From PR Date": "De PR Data",
+ "Get Purchase Receipt": "Obter Recibo de compra",
+ "Landed Cost Items": "Custo de desembarque dos Itens",
+ "Landed Cost Purchase Receipts": "Recibos de compra do custo de desembarque",
+ "Landed Cost Wizard": "Assistente de Custo de Desembarque",
+ "Process": "Processo",
+ "Stock": "Estoque",
+ "To PR Date": "Data de PR",
+ "Update PR": "Atualizar PR"
+}
\ No newline at end of file
diff --git a/stock/doctype/landed_cost_wizard/locale/th-doc.json b/stock/doctype/landed_cost_wizard/locale/th-doc.json
new file mode 100644
index 00000000000..ed2fe49088c
--- /dev/null
+++ b/stock/doctype/landed_cost_wizard/locale/th-doc.json
@@ -0,0 +1,12 @@
+{
+ "Currency": "\u0e40\u0e07\u0e34\u0e19\u0e15\u0e23\u0e32",
+ "From PR Date": "\u0e08\u0e32\u0e01\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48 PR",
+ "Get Purchase Receipt": "\u0e23\u0e31\u0e1a\u0e43\u0e1a\u0e40\u0e2a\u0e23\u0e47\u0e08\u0e23\u0e31\u0e1a\u0e40\u0e07\u0e34\u0e19\u0e0b\u0e37\u0e49\u0e2d",
+ "Landed Cost Items": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e04\u0e48\u0e32\u0e43\u0e0a\u0e49\u0e08\u0e48\u0e32\u0e22\u0e25\u0e07",
+ "Landed Cost Purchase Receipts": "\u0e23\u0e32\u0e22\u0e23\u0e31\u0e1a\u0e04\u0e48\u0e32\u0e43\u0e0a\u0e49\u0e08\u0e48\u0e32\u0e22\u0e0b\u0e37\u0e49\u0e2d\u0e17\u0e35\u0e48\u0e14\u0e34\u0e19",
+ "Landed Cost Wizard": "\u0e15\u0e31\u0e27\u0e0a\u0e48\u0e27\u0e22\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e15\u0e49\u0e19\u0e17\u0e38\u0e19\u0e17\u0e35\u0e48\u0e14\u0e34\u0e19",
+ "Process": "\u0e01\u0e23\u0e30\u0e1a\u0e27\u0e19\u0e01\u0e32\u0e23",
+ "Stock": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "To PR Date": "\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e1b\u0e23\u0e30\u0e0a\u0e32\u0e2a\u0e31\u0e21\u0e1e\u0e31\u0e19\u0e18\u0e4c\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48",
+ "Update PR": "PR \u0e1b\u0e23\u0e31\u0e1a\u0e1b\u0e23\u0e38\u0e07"
+}
\ No newline at end of file
diff --git a/stock/doctype/material_request/locale/_messages_doc.json b/stock/doctype/material_request/locale/_messages_doc.json
index 7a9d21692e2..b33ac31a8b6 100644
--- a/stock/doctype/material_request/locale/_messages_doc.json
+++ b/stock/doctype/material_request/locale/_messages_doc.json
@@ -1,44 +1,44 @@
[
- "% Ordered",
- "Add Terms and Conditions for the Purchase Requisition. You can also prepare a Terms and Conditions Master and use the Template",
+ "% of materials ordered against this Material Request",
+ "Select Terms and Conditions",
"Material Request Items",
+ "Material Request Type",
"IDT",
"Material Request",
- "Select Terms and Conditions",
"Draft",
- "Name of the entity who has requested for the Purchase Requisition",
"Select Print Heading",
"Stock",
"Status",
- "Cancel Reason",
+ "Name of the entity who has requested for the Material Request",
"Terms and Conditions",
- "Get Terms and Conditions",
"Company",
"Requested By",
"Amended From",
"File List",
- "After cancelling the Purchase Requisition, a dialog box will ask you reason for cancellation which will be reflected in this field",
- "Remarks",
+ "Add Terms and Conditions for the Material Request. You can also prepare a Terms and Conditions Master and use the Template",
+ "Transfer",
"Sales Order No",
+ "Filing in Additional Information about the Material Request will help you analyze your data better.",
+ "One or multiple Sales Order no which generated this Material Request",
+ "Purchase",
"To manage multiple series please go to Setup > Manage Series",
"Items",
"Pull Sales Order Items",
"Submitted",
+ "Remarks",
"Fiscal Year",
"Stopped",
"Cancelled",
- "MREQ",
- "Filing in Additional Information about the Purchase Requisition will help you analyze your data better.",
+ "Get Terms and Conditions",
"Letter Head",
"Amendment Date",
"The date at which current entry is made in system.",
"Transaction Date",
+ "% Completed",
"Select the relevant company name if you have multiple companies",
"Series",
"The date at which current entry is corrected in the system.",
- "% of materials ordered against this Purchase Requisition",
"More Info",
- "One or multiple Sales Order no which generated this Purchase Requisition",
- "Terms and Conditions Content",
- "Print Heading"
+ "MREQ-",
+ "Terms and Conditions Content"
]
\ No newline at end of file
diff --git a/stock/doctype/material_request/locale/_messages_js.json b/stock/doctype/material_request/locale/_messages_js.json
new file mode 100644
index 00000000000..0637a088a01
--- /dev/null
+++ b/stock/doctype/material_request/locale/_messages_js.json
@@ -0,0 +1 @@
+[]
\ No newline at end of file
diff --git a/stock/doctype/material_request/locale/_messages_py.json b/stock/doctype/material_request/locale/_messages_py.json
new file mode 100644
index 00000000000..c866bdb8cde
--- /dev/null
+++ b/stock/doctype/material_request/locale/_messages_py.json
@@ -0,0 +1,4 @@
+[
+ "Cannot continue.",
+ "Material Request"
+]
\ No newline at end of file
diff --git a/stock/doctype/material_request/locale/de-doc.json b/stock/doctype/material_request/locale/de-doc.json
new file mode 100644
index 00000000000..e6fa300d051
--- /dev/null
+++ b/stock/doctype/material_request/locale/de-doc.json
@@ -0,0 +1,37 @@
+{
+ "Amended From": "Ge\u00e4ndert von",
+ "Amendment Date": "\u00c4nderung Datum",
+ "Cancelled": "Abgesagt",
+ "Company": "Firma",
+ "Draft": "Entwurf",
+ "File List": "Dateiliste",
+ "Fiscal Year": "Gesch\u00e4ftsjahr",
+ "Get Terms and Conditions": "Holen AGB",
+ "IDT": "IDT",
+ "Items": "Artikel",
+ "Letter Head": "Briefkopf",
+ "Material Request": "Material anfordern",
+ "Material Request Items": "Material anfordern Artikel",
+ "Material Request Type": "Material Request Type",
+ "More Info": "Mehr Info",
+ "Pull Sales Order Items": "Ziehen Sie Sales Order Artikel",
+ "Purchase": "Kaufen",
+ "Remarks": "Bemerkungen",
+ "Requested By": "Angefordert von",
+ "Sales Order No": "In Sales Order",
+ "Select Print Heading": "W\u00e4hlen Sie Drucken \u00dcberschrift",
+ "Select Terms and Conditions": "W\u00e4hlen AGB",
+ "Select the relevant company name if you have multiple companies": "W\u00e4hlen Sie den entsprechenden Firmennamen, wenn Sie mehrere Unternehmen haben",
+ "Series": "Serie",
+ "Status": "Status",
+ "Stock": "Lager",
+ "Stopped": "Gestoppt",
+ "Submitted": "Eingereicht",
+ "Terms and Conditions": "AGB",
+ "Terms and Conditions Content": "AGB Inhalt",
+ "The date at which current entry is corrected in the system.": "Der Zeitpunkt, zu dem aktuellen Eintrag in dem System korrigiert.",
+ "The date at which current entry is made in system.": "Das Datum, an dem aktuellen Eintrag im System hergestellt wird.",
+ "To manage multiple series please go to Setup > Manage Series": "Um mehrere Reihen zu verwalten gehen Sie bitte auf Setup> Verwalten Series",
+ "Transaction Date": "Transaction Datum",
+ "Transfer": "\u00dcbertragen"
+}
\ No newline at end of file
diff --git a/stock/doctype/material_request/locale/de-py.json b/stock/doctype/material_request/locale/de-py.json
new file mode 100644
index 00000000000..759ee282d96
--- /dev/null
+++ b/stock/doctype/material_request/locale/de-py.json
@@ -0,0 +1,3 @@
+{
+ "Material Request": "Material anfordern"
+}
\ No newline at end of file
diff --git a/stock/doctype/material_request/locale/pt-BR-doc.json b/stock/doctype/material_request/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..d9ad5ee2bdb
--- /dev/null
+++ b/stock/doctype/material_request/locale/pt-BR-doc.json
@@ -0,0 +1,45 @@
+{
+ "% Completed": "% Conclu\u00eddo",
+ "% of materials ordered against this Material Request": "% De materiais encomendados contra este pedido se",
+ "Add Terms and Conditions for the Material Request. You can also prepare a Terms and Conditions Master and use the Template": "Adicione Termos e Condi\u00e7\u00f5es para a Solicita\u00e7\u00e3o de Material. Voc\u00ea tamb\u00e9m pode preparar um Termos e Condi\u00e7\u00f5es mestre e usar o modelo",
+ "Amended From": "Corrigido De",
+ "Amendment Date": "Data da Corre\u00e7\u00e3o",
+ "Cancelled": "Cancelado",
+ "Company": "Empresa",
+ "Draft": "Rascunho",
+ "File List": "Lista de Arquivos",
+ "Filing in Additional Information about the Material Request will help you analyze your data better.": "Apresenta\u00e7\u00e3o de informa\u00e7\u00f5es adicionais sobre a solicitar material vai ajudar a analisar melhor seus dados.",
+ "Fiscal Year": "Exerc\u00edcio fiscal",
+ "Get Terms and Conditions": "Obter os Termos e Condi\u00e7\u00f5es",
+ "IDT": "IDT",
+ "Items": "Itens",
+ "Letter Head": "Timbrado",
+ "MREQ-": "Mreq-",
+ "Material Request": "Pedido de material",
+ "Material Request Items": "Pedido de itens de material",
+ "Material Request Type": "Tipo de solicita\u00e7\u00e3o de material",
+ "More Info": "Mais informa\u00e7\u00f5es",
+ "Name of the entity who has requested for the Material Request": "Nome da entidade que solicitou para a solicita\u00e7\u00e3o de materiais",
+ "One or multiple Sales Order no which generated this Material Request": "Um ou nenhum Ordem m\u00faltipla de vendas que gerou este pedido se",
+ "Print Heading": "Cabe\u00e7alho de impress\u00e3o",
+ "Pull Sales Order Items": "Puxar itens da Ordem de Venda",
+ "Purchase": "Compras",
+ "Remarks": "Observa\u00e7\u00f5es",
+ "Requested By": "Solicitado por",
+ "Sales Order No": "N\u00ba da Ordem de Venda",
+ "Select Print Heading": "Selecione o Cabe\u00e7alho de Impress\u00e3o",
+ "Select Terms and Conditions": "Selecione os Termos e Condi\u00e7\u00f5es",
+ "Select the relevant company name if you have multiple companies": "Selecione o nome da empresa em quest\u00e3o, se voc\u00ea tem v\u00e1rias empresas",
+ "Series": "S\u00e9ries",
+ "Status": "Estado",
+ "Stock": "Estoque",
+ "Stopped": "Parado",
+ "Submitted": "Enviado",
+ "Terms and Conditions": "Termos e Condi\u00e7\u00f5es",
+ "Terms and Conditions Content": "Conte\u00fados dos Termos e Condi\u00e7\u00f5es",
+ "The date at which current entry is corrected in the system.": "A data em que o lan\u00e7amento atual \u00e9 corrigido no sistema.",
+ "The date at which current entry is made in system.": "A data em que o lan\u00e7amento atual \u00e9 feito no sistema.",
+ "To manage multiple series please go to Setup > Manage Series": "Para gerenciar v\u00e1rias s\u00e9ries por favor, v\u00e1 para Configura\u00e7\u00e3o > Gerenciar S\u00e9ries",
+ "Transaction Date": "Data da Transa\u00e7\u00e3o",
+ "Transfer": "Transferir"
+}
\ No newline at end of file
diff --git a/stock/doctype/material_request/locale/pt-BR-py.json b/stock/doctype/material_request/locale/pt-BR-py.json
new file mode 100644
index 00000000000..21a92f43847
--- /dev/null
+++ b/stock/doctype/material_request/locale/pt-BR-py.json
@@ -0,0 +1,4 @@
+{
+ "Cannot continue.": "N\u00e3o pode continuar.",
+ "Material Request": "Pedido de material"
+}
\ No newline at end of file
diff --git a/stock/doctype/material_request/locale/th-doc.json b/stock/doctype/material_request/locale/th-doc.json
new file mode 100644
index 00000000000..53d1025ee83
--- /dev/null
+++ b/stock/doctype/material_request/locale/th-doc.json
@@ -0,0 +1,45 @@
+{
+ "% Completed": "% \u0e40\u0e2a\u0e23\u0e47\u0e08\u0e2a\u0e21\u0e1a\u0e39\u0e23\u0e13\u0e4c",
+ "% of materials ordered against this Material Request": "% \u0e02\u0e2d\u0e07\u0e27\u0e31\u0e2a\u0e14\u0e38\u0e2a\u0e31\u0e48\u0e07\u0e01\u0e31\u0e1a\u0e27\u0e31\u0e2a\u0e14\u0e38\u0e19\u0e35\u0e49\u0e02\u0e2d",
+ "Add Terms and Conditions for the Material Request. You can also prepare a Terms and Conditions Master and use the Template": "\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e02\u0e49\u0e2d\u0e15\u0e01\u0e25\u0e07\u0e41\u0e25\u0e30\u0e40\u0e07\u0e37\u0e48\u0e2d\u0e19\u0e44\u0e02\u0e43\u0e19\u0e01\u0e32\u0e23\u0e02\u0e2d\u0e27\u0e31\u0e2a\u0e14\u0e38 \u0e19\u0e2d\u0e01\u0e08\u0e32\u0e01\u0e19\u0e35\u0e49\u0e04\u0e38\u0e13\u0e22\u0e31\u0e07\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e40\u0e15\u0e23\u0e35\u0e22\u0e21\u0e04\u0e27\u0e32\u0e21\u0e1e\u0e23\u0e49\u0e2d\u0e21\u0e02\u0e49\u0e2d\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e40\u0e07\u0e37\u0e48\u0e2d\u0e19\u0e44\u0e02\u0e41\u0e25\u0e30\u0e1b\u0e23\u0e34\u0e0d\u0e0d\u0e32\u0e42\u0e17\u0e41\u0e25\u0e30\u0e43\u0e0a\u0e49\u0e41\u0e21\u0e48\u0e41\u0e1a\u0e1a",
+ "Amended From": "\u0e41\u0e01\u0e49\u0e44\u0e02\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21",
+ "Amendment Date": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e41\u0e01\u0e49\u0e44\u0e02",
+ "Cancelled": "\u0e22\u0e01\u0e40\u0e25\u0e34\u0e01",
+ "Company": "\u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17",
+ "Draft": "\u0e23\u0e48\u0e32\u0e07",
+ "File List": "\u0e23\u0e32\u0e22\u0e0a\u0e37\u0e48\u0e2d\u0e44\u0e1f\u0e25\u0e4c",
+ "Filing in Additional Information about the Material Request will help you analyze your data better.": "\u0e22\u0e37\u0e48\u0e19\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21\u0e40\u0e01\u0e35\u0e48\u0e22\u0e27\u0e01\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e23\u0e49\u0e2d\u0e07\u0e02\u0e2d\u0e27\u0e31\u0e2a\u0e14\u0e38\u0e08\u0e30\u0e0a\u0e48\u0e27\u0e22\u0e43\u0e2b\u0e49\u0e04\u0e38\u0e13\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e27\u0e34\u0e40\u0e04\u0e23\u0e32\u0e30\u0e2b\u0e4c\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13\u0e44\u0e14\u0e49\u0e14\u0e35\u0e22\u0e34\u0e48\u0e07\u0e02\u0e36\u0e49\u0e19",
+ "Fiscal Year": "\u0e1b\u0e35\u0e07\u0e1a\u0e1b\u0e23\u0e30\u0e21\u0e32\u0e13",
+ "Get Terms and Conditions": "\u0e23\u0e31\u0e1a\u0e02\u0e49\u0e2d\u0e15\u0e01\u0e25\u0e07\u0e41\u0e25\u0e30\u0e40\u0e07\u0e37\u0e48\u0e2d\u0e19\u0e44\u0e02",
+ "IDT": "IDT",
+ "Items": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23",
+ "Letter Head": "\u0e2b\u0e31\u0e27\u0e08\u0e14\u0e2b\u0e21\u0e32\u0e22",
+ "MREQ-": "MREQ-",
+ "Material Request": "\u0e02\u0e2d\u0e27\u0e31\u0e2a\u0e14\u0e38",
+ "Material Request Items": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e27\u0e31\u0e2a\u0e14\u0e38\u0e02\u0e2d",
+ "Material Request Type": "\u0e0a\u0e19\u0e34\u0e14\u0e02\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e23\u0e49\u0e2d\u0e07\u0e02\u0e2d\u0e27\u0e31\u0e2a\u0e14\u0e38",
+ "More Info": "\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21",
+ "Name of the entity who has requested for the Material Request": "\u0e0a\u0e37\u0e48\u0e2d\u0e02\u0e2d\u0e07\u0e2b\u0e19\u0e48\u0e27\u0e22\u0e07\u0e32\u0e19\u0e17\u0e35\u0e48\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e23\u0e49\u0e2d\u0e07\u0e02\u0e2d\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e23\u0e49\u0e2d\u0e07\u0e02\u0e2d\u0e27\u0e31\u0e2a\u0e14\u0e38",
+ "One or multiple Sales Order no which generated this Material Request": "\u0e2b\u0e19\u0e36\u0e48\u0e07\u0e2b\u0e23\u0e37\u0e2d\u0e2b\u0e25\u0e32\u0e22 no \u0e01\u0e32\u0e23\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e01\u0e32\u0e23\u0e02\u0e32\u0e22\u0e0b\u0e36\u0e48\u0e07\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e01\u0e32\u0e23\u0e23\u0e49\u0e2d\u0e07\u0e02\u0e2d\u0e27\u0e31\u0e2a\u0e14\u0e38\u0e19\u0e35\u0e49",
+ "Print Heading": "\u0e1e\u0e34\u0e21\u0e1e\u0e4c\u0e2b\u0e31\u0e27\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07",
+ "Pull Sales Order Items": "\u0e14\u0e36\u0e07\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e32\u0e22",
+ "Purchase": "\u0e0b\u0e37\u0e49\u0e2d",
+ "Remarks": "\u0e02\u0e49\u0e2d\u0e04\u0e34\u0e14\u0e40\u0e2b\u0e47\u0e19",
+ "Requested By": "\u0e01\u0e32\u0e23\u0e23\u0e49\u0e2d\u0e07\u0e02\u0e2d\u0e08\u0e32\u0e01",
+ "Sales Order No": "\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e22\u0e2d\u0e14\u0e02\u0e32\u0e22",
+ "Select Print Heading": "\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e1e\u0e34\u0e21\u0e1e\u0e4c\u0e2b\u0e31\u0e27\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07",
+ "Select Terms and Conditions": "\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e02\u0e49\u0e2d\u0e15\u0e01\u0e25\u0e07\u0e41\u0e25\u0e30\u0e40\u0e07\u0e37\u0e48\u0e2d\u0e19\u0e44\u0e02",
+ "Select the relevant company name if you have multiple companies": "\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e0a\u0e37\u0e48\u0e2d \u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17 \u0e17\u0e35\u0e48\u0e40\u0e01\u0e35\u0e48\u0e22\u0e27\u0e02\u0e49\u0e2d\u0e07\u0e16\u0e49\u0e32\u0e04\u0e38\u0e13\u0e21\u0e35\u0e2b\u0e25\u0e32\u0e22 \u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17",
+ "Series": "\u0e0a\u0e38\u0e14",
+ "Status": "\u0e2a\u0e16\u0e32\u0e19\u0e30",
+ "Stock": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Stopped": "\u0e2b\u0e22\u0e38\u0e14",
+ "Submitted": "Submitted",
+ "Terms and Conditions": "\u0e02\u0e49\u0e2d\u0e15\u0e01\u0e25\u0e07\u0e41\u0e25\u0e30\u0e40\u0e07\u0e37\u0e48\u0e2d\u0e19\u0e44\u0e02",
+ "Terms and Conditions Content": "\u0e02\u0e49\u0e2d\u0e15\u0e01\u0e25\u0e07\u0e41\u0e25\u0e30\u0e40\u0e07\u0e37\u0e48\u0e2d\u0e19\u0e44\u0e02\u0e40\u0e19\u0e37\u0e49\u0e2d\u0e2b\u0e32",
+ "The date at which current entry is corrected in the system.": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e17\u0e35\u0e48\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e1b\u0e31\u0e08\u0e08\u0e38\u0e1a\u0e31\u0e19\u0e21\u0e35\u0e01\u0e32\u0e23\u0e41\u0e01\u0e49\u0e44\u0e02\u0e43\u0e19\u0e23\u0e30\u0e1a\u0e1a",
+ "The date at which current entry is made in system.": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e17\u0e35\u0e48\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e1b\u0e31\u0e08\u0e08\u0e38\u0e1a\u0e31\u0e19\u0e08\u0e30\u0e17\u0e33\u0e43\u0e19\u0e23\u0e30\u0e1a\u0e1a",
+ "To manage multiple series please go to Setup > Manage Series": "\u0e43\u0e19\u0e01\u0e32\u0e23\u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e01\u0e31\u0e1a\u0e2b\u0e25\u0e32\u0e22\u0e0a\u0e38\u0e14\u0e42\u0e1b\u0e23\u0e14\u0e44\u0e1b\u0e17\u0e35\u0e48\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32> \u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e41\u0e1a\u0e1a",
+ "Transaction Date": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e17\u0e33\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23",
+ "Transfer": "\u0e42\u0e2d\u0e19"
+}
\ No newline at end of file
diff --git a/stock/doctype/material_request/material_request.py b/stock/doctype/material_request/material_request.py
index e476aa47435..77426762f95 100644
--- a/stock/doctype/material_request/material_request.py
+++ b/stock/doctype/material_request/material_request.py
@@ -7,7 +7,7 @@ import webnotes
from webnotes.utils import cstr, flt
from webnotes.model.bean import getlist
from webnotes.model.code import get_obj
-from webnotes import msgprint
+from webnotes import msgprint, _
from controllers.buying_controller import BuyingController
class DocType(BuyingController):
@@ -119,23 +119,22 @@ class DocType(BuyingController):
def update_bin(self, is_submit, is_stopped):
""" Update Quantity Requested for Purchase in Bin for Material Request of type 'Purchase'"""
- if self.doc.material_request_type == "Purchase":
- for d in getlist(self.doclist, 'indent_details'):
- if webnotes.conn.get_value("Item", d.item_code, "is_stock_item") == "Yes":
- if not d.warehouse:
- msgprint("Please Enter Warehouse for Item %s as it is stock item"
- % cstr(d.item_code), raise_exception=1)
-
- qty =flt(d.qty)
- if is_stopped:
- qty = (d.qty > d.ordered_qty) and flt(flt(d.qty) - flt(d.ordered_qty)) or 0
-
- args = {
- "item_code": d.item_code,
- "indented_qty": (is_submit and 1 or -1) * flt(qty),
- "posting_date": self.doc.transaction_date
- }
- get_obj('Warehouse', d.warehouse).update_bin(args)
+ for d in getlist(self.doclist, 'indent_details'):
+ if webnotes.conn.get_value("Item", d.item_code, "is_stock_item") == "Yes":
+ if not d.warehouse:
+ msgprint("Please Enter Warehouse for Item %s as it is stock item"
+ % cstr(d.item_code), raise_exception=1)
+
+ qty =flt(d.qty)
+ if is_stopped:
+ qty = (d.qty > d.ordered_qty) and flt(flt(d.qty) - flt(d.ordered_qty)) or 0
+
+ args = {
+ "item_code": d.item_code,
+ "indented_qty": (is_submit and 1 or -1) * flt(qty),
+ "posting_date": self.doc.transaction_date
+ }
+ get_obj('Warehouse', d.warehouse).update_bin(args)
def on_submit(self):
purchase_controller = webnotes.get_obj("Purchase Common")
@@ -196,7 +195,7 @@ class DocType(BuyingController):
and material_request_item = %s and docstatus = 1""",
(self.doc.name, d.name))[0][0])
webnotes.conn.set_value(d.doctype, d.name, "ordered_qty", d.ordered_qty)
-
+
# note: if qty is 0, its row is still counted in len(item_doclist)
# hence adding 1 to per_ordered
if (d.ordered_qty > d.qty) or not d.qty:
@@ -204,11 +203,9 @@ class DocType(BuyingController):
elif d.qty > 0:
per_ordered += flt(d.ordered_qty / flt(d.qty))
- if per_ordered:
- self.doc.per_ordered = flt((per_ordered / flt(len(item_doclist))) * 100.0, 2)
- webnotes.conn.set_value(self.doc.doctype, self.doc.name, "per_ordered", self.doc.per_ordered)
-
-
+ self.doc.per_ordered = flt((per_ordered / flt(len(item_doclist))) * 100.0, 2)
+ webnotes.conn.set_value(self.doc.doctype, self.doc.name, "per_ordered", self.doc.per_ordered)
+
def update_completed_qty(controller, caller_method):
if controller.doc.doctype == "Stock Entry":
material_request_map = {}
@@ -218,7 +215,43 @@ def update_completed_qty(controller, caller_method):
if d.material_request not in material_request_map:
material_request_map[d.material_request] = []
material_request_map[d.material_request].append(d.material_request_item)
-
+
for mr_name, mr_items in material_request_map.items():
- webnotes.get_obj("Material Request", mr_name, with_children=1).update_completed_qty(mr_items)
-
\ No newline at end of file
+ mr_obj = webnotes.get_obj("Material Request", mr_name, with_children=1)
+ mr_doctype = webnotes.get_doctype("Material Request")
+
+ if mr_obj.doc.status in ["Stopped", "Cancelled"]:
+ msgprint(_("Material Request") + ": %s, " % mr_obj.doc.name
+ + _(mr_doctype.get_label("status")) + " = %s. " % _(mr_obj.doc.status)
+ + _("Cannot continue."), raise_exception=webnotes.InvalidStatusError)
+
+ _update_requested_qty(controller, mr_obj, mr_items)
+
+ # update ordered percentage and qty
+ mr_obj.update_completed_qty(mr_items)
+
+def _update_requested_qty(controller, mr_obj, mr_items):
+ """update requested qty (before ordered_qty is updated)"""
+ for mr_item_name in mr_items:
+ mr_item = mr_obj.doclist.getone({"parentfield": "indent_details", "name": mr_item_name})
+ se_detail = controller.doclist.getone({"parentfield": "mtn_details",
+ "material_request": mr_obj.doc.name, "material_request_item": mr_item_name})
+
+ mr_item.ordered_qty = flt(mr_item.ordered_qty)
+ mr_item.qty = flt(mr_item.qty)
+ se_detail.transfer_qty = flt(se_detail.transfer_qty)
+
+ if se_detail.docstatus == 2 and mr_item.ordered_qty > mr_item.qty \
+ and se_detail.transfer_qty == mr_item.ordered_qty:
+ add_indented_qty = mr_item.qty
+ elif se_detail.docstatus == 1 and \
+ mr_item.ordered_qty + se_detail.transfer_qty > mr_item.qty:
+ add_indented_qty = mr_item.qty - mr_item.ordered_qty
+ else:
+ add_indented_qty = se_detail.transfer_qty
+
+ webnotes.get_obj("Warehouse", se_detail.t_warehouse).update_bin({
+ "item_code": se_detail.item_code,
+ "indented_qty": (se_detail.docstatus==2 and 1 or -1) * add_indented_qty,
+ "posting_date": controller.doc.posting_date,
+ })
diff --git a/stock/doctype/material_request/material_request.txt b/stock/doctype/material_request/material_request.txt
index 0668bdf5f10..f2e6b3573a1 100644
--- a/stock/doctype/material_request/material_request.txt
+++ b/stock/doctype/material_request/material_request.txt
@@ -1,8 +1,8 @@
[
{
- "creation": "2013-02-20 13:25:31",
+ "creation": "2013-02-21 14:15:25",
"docstatus": 0,
- "modified": "2013-02-21 10:59:09",
+ "modified": "2013-02-25 15:38:02",
"modified_by": "Administrator",
"owner": "Administrator"
},
@@ -326,7 +326,7 @@
"allow_on_submit": 1,
"doctype": "DocField",
"fieldname": "select_print_heading",
- "fieldtype": "Select",
+ "fieldtype": "Link",
"label": "Select Print Heading",
"options": "Print Heading",
"print_hide": 1
diff --git a/stock/doctype/material_request/test_material_request.py b/stock/doctype/material_request/test_material_request.py
index 1fa1a9f4586..ae408585645 100644
--- a/stock/doctype/material_request/test_material_request.py
+++ b/stock/doctype/material_request/test_material_request.py
@@ -3,6 +3,7 @@
from __future__ import unicode_literals
import webnotes, unittest
+from webnotes.utils import flt
class TestMaterialRequest(unittest.TestCase):
def _test_expected(self, doclist, expected_values):
@@ -10,7 +11,15 @@ class TestMaterialRequest(unittest.TestCase):
for fieldname, val in expected.items():
self.assertEquals(val, doclist[i].fields.get(fieldname))
+ def _test_requested_qty(self, qty1, qty2):
+ self.assertEqual(flt(webnotes.conn.get_value("Bin", {"item_code": "_Test Item Home Desktop 100",
+ "warehouse": "_Test Warehouse"}, "indented_qty")), qty1)
+ self.assertEqual(flt(webnotes.conn.get_value("Bin", {"item_code": "_Test Item Home Desktop 200",
+ "warehouse": "_Test Warehouse"}, "indented_qty")), qty2)
+
def test_completed_qty_for_purchase(self):
+ webnotes.conn.sql("""delete from `tabBin`""")
+
# submit material request of type Purchase
mr = webnotes.bean(copy=test_records[0])
mr.insert()
@@ -19,11 +28,12 @@ class TestMaterialRequest(unittest.TestCase):
# check if per complete is None
self._test_expected(mr.doclist, [{"per_ordered": None}, {"ordered_qty": None}, {"ordered_qty": None}])
+ self._test_requested_qty(54.0, 3.0)
+
# map a purchase order
- po = webnotes.map_doclist([["Material Request", "Purchase Order"],
+ po_doclist = webnotes.map_doclist([["Material Request", "Purchase Order"],
["Material Request Item", "Purchase Order Item"]], mr.doc.name)
- po = webnotes.bean(po)
- po.doc.fields.update({
+ po_doclist[0].fields.update({
"supplier": "_Test Supplier",
"supplier_name": "_Test Supplier",
"transaction_date": mr.doc.transaction_date,
@@ -32,21 +42,35 @@ class TestMaterialRequest(unittest.TestCase):
"conversion_rate": 1.0,
"grand_total_import": 0.0
})
- po.doclist[1].qty = 27.0
- po.doclist[2].qty = 1.5
+ po_doclist[1].qty = 27.0
+ po_doclist[2].qty = 1.5
+
+ # check for stopped status of Material Request
+ po = webnotes.bean(copy=po_doclist)
+ po.insert()
+ mr.obj.update_status('Stopped')
+ self.assertRaises(webnotes.ValidationError, po.submit)
+ self.assertRaises(webnotes.ValidationError, po.cancel)
+
+ mr.obj.update_status('Submitted')
+ po = webnotes.bean(copy=po_doclist)
po.insert()
po.submit()
# check if per complete is as expected
mr.load_from_db()
self._test_expected(mr.doclist, [{"per_ordered": 50}, {"ordered_qty": 27.0}, {"ordered_qty": 1.5}])
+ self._test_requested_qty(27.0, 1.5)
po.cancel()
# check if per complete is as expected
mr.load_from_db()
self._test_expected(mr.doclist, [{"per_ordered": 0}, {"ordered_qty": 0}, {"ordered_qty": 0}])
+ self._test_requested_qty(54.0, 3.0)
def test_completed_qty_for_transfer(self):
+ webnotes.conn.sql("""delete from `tabBin`""")
+
# submit material request of type Purchase
mr = webnotes.bean(copy=test_records[0])
mr.doc.material_request_type = "Transfer"
@@ -56,33 +80,140 @@ class TestMaterialRequest(unittest.TestCase):
# check if per complete is None
self._test_expected(mr.doclist, [{"per_ordered": None}, {"ordered_qty": None}, {"ordered_qty": None}])
+ self._test_requested_qty(54.0, 3.0)
+
# map a stock entry
- se = webnotes.map_doclist([["Material Request", "Stock Entry"],
+ se_doclist = webnotes.map_doclist([["Material Request", "Stock Entry"],
["Material Request Item", "Stock Entry Detail"]], mr.doc.name)
- se = webnotes.bean(se)
- se.doc.fields.update({
+ se_doclist[0].fields.update({
"posting_date": "2013-03-01",
"posting_time": "00:00"
})
- se.doclist[1].fields.update({
+ se_doclist[1].fields.update({
"qty": 27.0,
"transfer_qty": 27.0,
"s_warehouse": "_Test Warehouse 1",
"incoming_rate": 1.0
})
- se.doclist[2].fields.update({
+ se_doclist[2].fields.update({
"qty": 1.5,
"transfer_qty": 1.5,
"s_warehouse": "_Test Warehouse 1",
"incoming_rate": 1.0
})
+
+ # check for stopped status of Material Request
+ se = webnotes.bean(copy=se_doclist)
+ se.insert()
+ mr.obj.update_status('Stopped')
+ self.assertRaises(webnotes.ValidationError, se.submit)
+ self.assertRaises(webnotes.ValidationError, se.cancel)
+
+ mr.obj.update_status('Submitted')
+ se = webnotes.bean(copy=se_doclist)
se.insert()
se.submit()
# check if per complete is as expected
mr.load_from_db()
self._test_expected(mr.doclist, [{"per_ordered": 50}, {"ordered_qty": 27.0}, {"ordered_qty": 1.5}])
+ self._test_requested_qty(27.0, 1.5)
+
+ # check if per complete is as expected for Stock Entry cancelled
+ se.cancel()
+ mr.load_from_db()
+ self._test_expected(mr.doclist, [{"per_ordered": 0}, {"ordered_qty": 0}, {"ordered_qty": 0}])
+ self._test_requested_qty(54.0, 3.0)
+
+ def test_completed_qty_for_over_transfer(self):
+ webnotes.conn.sql("""delete from `tabBin`""")
+
+ # submit material request of type Purchase
+ mr = webnotes.bean(copy=test_records[0])
+ mr.doc.material_request_type = "Transfer"
+ mr.insert()
+ mr.submit()
+ # check if per complete is None
+ self._test_expected(mr.doclist, [{"per_ordered": None}, {"ordered_qty": None}, {"ordered_qty": None}])
+
+ self._test_requested_qty(54.0, 3.0)
+
+ # map a stock entry
+ se_doclist = webnotes.map_doclist([["Material Request", "Stock Entry"],
+ ["Material Request Item", "Stock Entry Detail"]], mr.doc.name)
+ se_doclist[0].fields.update({
+ "posting_date": "2013-03-01",
+ "posting_time": "00:00"
+ })
+ se_doclist[1].fields.update({
+ "qty": 60.0,
+ "transfer_qty": 60.0,
+ "s_warehouse": "_Test Warehouse 1",
+ "incoming_rate": 1.0
+ })
+ se_doclist[2].fields.update({
+ "qty": 3.0,
+ "transfer_qty": 3.0,
+ "s_warehouse": "_Test Warehouse 1",
+ "incoming_rate": 1.0
+ })
+
+ # check for stopped status of Material Request
+ se = webnotes.bean(copy=se_doclist)
+ se.insert()
+ mr.obj.update_status('Stopped')
+ self.assertRaises(webnotes.ValidationError, se.submit)
+ self.assertRaises(webnotes.ValidationError, se.cancel)
+
+ mr.obj.update_status('Submitted')
+ se = webnotes.bean(copy=se_doclist)
+ se.insert()
+ se.submit()
+
+ # check if per complete is as expected
+ mr.load_from_db()
+ self._test_expected(mr.doclist, [{"per_ordered": 100}, {"ordered_qty": 60.0}, {"ordered_qty": 3.0}])
+ self._test_requested_qty(0.0, 0.0)
+
+ # check if per complete is as expected for Stock Entry cancelled
+ se.cancel()
+ mr.load_from_db()
+ self._test_expected(mr.doclist, [{"per_ordered": 0}, {"ordered_qty": 0}, {"ordered_qty": 0}])
+ self._test_requested_qty(54.0, 3.0)
+
+ def test_incorrect_mapping_of_stock_entry(self):
+ # submit material request of type Purchase
+ mr = webnotes.bean(copy=test_records[0])
+ mr.doc.material_request_type = "Transfer"
+ mr.insert()
+ mr.submit()
+
+ # map a stock entry
+ se_doclist = webnotes.map_doclist([["Material Request", "Stock Entry"],
+ ["Material Request Item", "Stock Entry Detail"]], mr.doc.name)
+ se_doclist[0].fields.update({
+ "posting_date": "2013-03-01",
+ "posting_time": "00:00"
+ })
+ se_doclist[1].fields.update({
+ "qty": 60.0,
+ "transfer_qty": 60.0,
+ "s_warehouse": "_Test Warehouse",
+ "t_warehouse": "_Test Warehouse 1",
+ "incoming_rate": 1.0
+ })
+ se_doclist[2].fields.update({
+ "qty": 3.0,
+ "transfer_qty": 3.0,
+ "s_warehouse": "_Test Warehouse 1",
+ "incoming_rate": 1.0
+ })
+
+ # check for stopped status of Material Request
+ se = webnotes.bean(copy=se_doclist)
+ self.assertRaises(webnotes.MappingMismatchError, se.insert)
+
test_records = [
[
{
diff --git a/stock/doctype/material_request_item/locale/_messages_doc.json b/stock/doctype/material_request_item/locale/_messages_doc.json
index 5ed4ee54876..13488973301 100644
--- a/stock/doctype/material_request_item/locale/_messages_doc.json
+++ b/stock/doctype/material_request_item/locale/_messages_doc.json
@@ -1,17 +1,17 @@
[
"Item Name",
+ "Completed Qty",
"Description",
"Required Date",
"Lead Time Date",
"Brand",
- "Ordered Qty",
- "Sales Order No",
"Page Break",
+ "Sales Order No",
+ "Warehouse",
"Stock UOM",
"Material Request Item",
"Min Order Qty",
"Item Group",
- "Warehouse",
"Projected Qty",
"Quantity",
"Item Code",
diff --git a/stock/doctype/material_request_item/locale/de-doc.json b/stock/doctype/material_request_item/locale/de-doc.json
new file mode 100644
index 00000000000..ef8bf83ed77
--- /dev/null
+++ b/stock/doctype/material_request_item/locale/de-doc.json
@@ -0,0 +1,18 @@
+{
+ "Brand": "Marke",
+ "Description": "Beschreibung",
+ "Item Code": "Item Code",
+ "Item Group": "Artikel-Gruppe",
+ "Item Name": "Item Name",
+ "Lead Time Date": "Lead Time Datum",
+ "Material Request Item": "Material anfordern Artikel",
+ "Min Order Qty": "Mindestbestellmenge",
+ "Page Break": "Seitenwechsel",
+ "Projected Qty": "Prognostizierte Anzahl",
+ "Quantity": "Menge",
+ "Required Date": "Erforderlich Datum",
+ "Sales Order No": "In Sales Order",
+ "Stock": "Lager",
+ "Stock UOM": "Lager UOM",
+ "Warehouse": "Lager"
+}
\ No newline at end of file
diff --git a/stock/doctype/material_request_item/locale/pt-BR-doc.json b/stock/doctype/material_request_item/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..8ab42433bc3
--- /dev/null
+++ b/stock/doctype/material_request_item/locale/pt-BR-doc.json
@@ -0,0 +1,19 @@
+{
+ "Brand": "Marca",
+ "Completed Qty": "Qtde conclu\u00edda",
+ "Description": "Descri\u00e7\u00e3o",
+ "Item Code": "C\u00f3digo do Item",
+ "Item Group": "Grupo de Itens",
+ "Item Name": "Nome do Item",
+ "Lead Time Date": "Prazo de entrega",
+ "Material Request Item": "Item de solicita\u00e7\u00e3o de material",
+ "Min Order Qty": "Pedido M\u00ednimo",
+ "Page Break": "Quebra de p\u00e1gina",
+ "Projected Qty": "Qtde. Projetada",
+ "Quantity": "Quantidade",
+ "Required Date": "Data Obrigat\u00f3ria",
+ "Sales Order No": "N\u00ba da Ordem de Venda",
+ "Stock": "Estoque",
+ "Stock UOM": "UDM do Estoque",
+ "Warehouse": "Almoxarifado"
+}
\ No newline at end of file
diff --git a/stock/doctype/material_request_item/locale/th-doc.json b/stock/doctype/material_request_item/locale/th-doc.json
new file mode 100644
index 00000000000..53725fdadbf
--- /dev/null
+++ b/stock/doctype/material_request_item/locale/th-doc.json
@@ -0,0 +1,19 @@
+{
+ "Brand": "\u0e22\u0e35\u0e48\u0e2b\u0e49\u0e2d",
+ "Completed Qty": "\u0e08\u0e33\u0e19\u0e27\u0e19\u0e40\u0e2a\u0e23\u0e47\u0e08",
+ "Description": "\u0e25\u0e31\u0e01\u0e29\u0e13\u0e30",
+ "Item Code": "\u0e23\u0e2b\u0e31\u0e2a\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Item Group": "\u0e01\u0e25\u0e38\u0e48\u0e21\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Item Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23",
+ "Lead Time Date": "\u0e19\u0e33\u0e27\u0e31\u0e19\u0e40\u0e27\u0e25\u0e32",
+ "Material Request Item": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e27\u0e31\u0e2a\u0e14\u0e38\u0e02\u0e2d",
+ "Min Order Qty": "\u0e08\u0e33\u0e19\u0e27\u0e19\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e31\u0e49\u0e19\u0e15\u0e48\u0e33",
+ "Page Break": "\u0e41\u0e1a\u0e48\u0e07\u0e2b\u0e19\u0e49\u0e32",
+ "Projected Qty": "\u0e08\u0e33\u0e19\u0e27\u0e19\u0e17\u0e35\u0e48\u0e04\u0e32\u0e14\u0e01\u0e32\u0e23\u0e13\u0e4c\u0e44\u0e27\u0e49",
+ "Quantity": "\u0e1b\u0e23\u0e34\u0e21\u0e32\u0e13",
+ "Required Date": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e17\u0e35\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23",
+ "Sales Order No": "\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e22\u0e2d\u0e14\u0e02\u0e32\u0e22",
+ "Stock": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Stock UOM": "UOM \u0e2a\u0e15\u0e47\u0e2d\u0e01",
+ "Warehouse": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32"
+}
\ No newline at end of file
diff --git a/stock/doctype/packing_slip/locale/_messages_doc.json b/stock/doctype/packing_slip/locale/_messages_doc.json
index 4a921ddae20..6b6ecf0f723 100644
--- a/stock/doctype/packing_slip/locale/_messages_doc.json
+++ b/stock/doctype/packing_slip/locale/_messages_doc.json
@@ -15,13 +15,13 @@
"Gross Weight UOM",
"Items",
"Package Item Details",
+ "Generate packing slips for packages to be delivered. Used to notify package number, package contents and its weight.",
"Net Weight UOM",
- "Indicates that the package is a part of this delivery",
"Amendment Date",
"Package Weight Details",
"Series",
"Packing Slip",
"Delivery Note",
"Misc Details",
- "Generate packing slips for packages to be delivered. Used to notify package number, package contents and its weight."
+ "Indicates that the package is a part of this delivery"
]
\ No newline at end of file
diff --git a/stock/doctype/packing_slip/locale/de-doc.json b/stock/doctype/packing_slip/locale/de-doc.json
new file mode 100644
index 00000000000..6217e0789ac
--- /dev/null
+++ b/stock/doctype/packing_slip/locale/de-doc.json
@@ -0,0 +1,27 @@
+{
+ "Amended From": "Ge\u00e4ndert von",
+ "Amendment Date": "\u00c4nderung Datum",
+ "Delivery Note": "Lieferschein",
+ "From Package No.": "Von Package No",
+ "Generate packing slips for packages to be delivered. Used to notify package number, package contents and its weight.": "Generieren Packzettel f\u00fcr Pakete geliefert werden. Verwendet, um Paket-Nummer, der Lieferumfang und sein Gewicht zu benachrichtigen.",
+ "Gross Weight": "Bruttogewicht",
+ "Gross Weight UOM": "Bruttogewicht UOM",
+ "Identification of the package for the delivery (for print)": "Identifikation des Pakets f\u00fcr die Lieferung (f\u00fcr den Druck)",
+ "If more than one package of the same type (for print)": "Wenn mehr als ein Paket des gleichen Typs (print)",
+ "Indicates that the package is a part of this delivery": "Zeigt an, dass das Paket ein Teil dieser Lieferung ist",
+ "Items": "Artikel",
+ "Misc Details": "Misc Einzelheiten",
+ "Net Weight": "Nettogewicht",
+ "Net Weight UOM": "Nettogewicht UOM",
+ "PS": "PS",
+ "Package Item Details": "Package Artikeldetails",
+ "Package Weight Details": "Paket-Details Gewicht",
+ "Packing Slip": "Packzettel",
+ "Packing Slip Items": "Packzettel Artikel",
+ "Series": "Serie",
+ "Stock": "Lager",
+ "The date at which current entry is corrected in the system.": "Der Zeitpunkt, zu dem aktuellen Eintrag in dem System korrigiert.",
+ "The gross weight of the package. Usually net weight + packaging material weight. (for print)": "Das Bruttogewicht des Pakets. Normalerweise Eigengewicht + Verpackungsmaterial Gewicht. (Zum Drucken)",
+ "The net weight of this package. (calculated automatically as sum of net weight of items)": "Das Nettogewicht dieses Pakets. (Automatisch als Summe der Netto-Gewicht der Sendungen berechnet)",
+ "To Package No.": "Um Nr. Paket"
+}
\ No newline at end of file
diff --git a/stock/doctype/packing_slip/locale/pt-BR-doc.json b/stock/doctype/packing_slip/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..37f0e8b4e25
--- /dev/null
+++ b/stock/doctype/packing_slip/locale/pt-BR-doc.json
@@ -0,0 +1,27 @@
+{
+ "Amended From": "Corrigido De",
+ "Amendment Date": "Data da Corre\u00e7\u00e3o",
+ "Delivery Note": "Guia de Remessa",
+ "From Package No.": "De No. Package",
+ "Generate packing slips for packages to be delivered. Used to notify package number, package contents and its weight.": "Gerar guias de remessa de pacotes a serem entregues. Usado para notificar o n\u00famero do pacote, o conte\u00fado do pacote e seu peso.",
+ "Gross Weight": "Peso bruto",
+ "Gross Weight UOM": "UDM do Peso Bruto",
+ "Identification of the package for the delivery (for print)": "Identifica\u00e7\u00e3o do pacote para a Entrega (para impress\u00e3o)",
+ "If more than one package of the same type (for print)": "Se mais do que uma embalagem do mesmo tipo (para impress\u00e3o)",
+ "Indicates that the package is a part of this delivery": "Indica que o pacote \u00e9 uma parte desta entrega",
+ "Items": "Itens",
+ "Misc Details": "Detalhes Diversos",
+ "Net Weight": "Peso L\u00edquido",
+ "Net Weight UOM": "UDM do Peso L\u00edquido",
+ "PS": "PS",
+ "Package Item Details": "Detalhes do Item do Pacote",
+ "Package Weight Details": "Detalhes do peso do pacote",
+ "Packing Slip": "Guia de Remessa",
+ "Packing Slip Items": "Itens da Guia de Remessa",
+ "Series": "S\u00e9ries",
+ "Stock": "Estoque",
+ "The date at which current entry is corrected in the system.": "A data em que o lan\u00e7amento atual \u00e9 corrigido no sistema.",
+ "The gross weight of the package. Usually net weight + packaging material weight. (for print)": "O peso bruto do pacote. Normalmente peso l\u00edquido + peso do material de embalagem. (Para impress\u00e3o)",
+ "The net weight of this package. (calculated automatically as sum of net weight of items)": "O peso l\u00edquido do pacote. (Calculado automaticamente como soma do peso l\u00edquido dos itens)",
+ "To Package No.": "Para Pacote N\u00ba."
+}
\ No newline at end of file
diff --git a/stock/doctype/packing_slip/locale/th-doc.json b/stock/doctype/packing_slip/locale/th-doc.json
new file mode 100644
index 00000000000..df60625890f
--- /dev/null
+++ b/stock/doctype/packing_slip/locale/th-doc.json
@@ -0,0 +1,27 @@
+{
+ "Amended From": "\u0e41\u0e01\u0e49\u0e44\u0e02\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21",
+ "Amendment Date": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e41\u0e01\u0e49\u0e44\u0e02",
+ "Delivery Note": "\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e2b\u0e15\u0e38\u0e08\u0e31\u0e14\u0e2a\u0e48\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "From Package No.": "\u0e08\u0e32\u0e01\u0e40\u0e25\u0e02\u0e17\u0e35\u0e48\u0e41\u0e1e\u0e04\u0e40\u0e01\u0e08",
+ "Generate packing slips for packages to be delivered. Used to notify package number, package contents and its weight.": "\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e1a\u0e23\u0e23\u0e08\u0e38\u0e20\u0e31\u0e13\u0e11\u0e4c\u0e41\u0e1e\u0e04\u0e40\u0e01\u0e08\u0e17\u0e35\u0e48\u0e08\u0e30\u0e2a\u0e48\u0e07\u0e21\u0e2d\u0e1a \u0e43\u0e0a\u0e49\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e41\u0e08\u0e49\u0e07\u0e08\u0e33\u0e19\u0e27\u0e19\u0e41\u0e1e\u0e47\u0e01\u0e40\u0e01\u0e08\u0e17\u0e35\u0e48\u0e1a\u0e23\u0e23\u0e08\u0e38\u0e41\u0e25\u0e30\u0e19\u0e49\u0e33\u0e2b\u0e19\u0e31\u0e01\u0e02\u0e2d\u0e07\u0e21\u0e31\u0e19",
+ "Gross Weight": "\u0e19\u0e49\u0e33\u0e2b\u0e19\u0e31\u0e01\u0e23\u0e27\u0e21",
+ "Gross Weight UOM": "UOM \u0e19\u0e49\u0e33\u0e2b\u0e19\u0e31\u0e01\u0e23\u0e27\u0e21",
+ "Identification of the package for the delivery (for print)": "\u0e1a\u0e31\u0e15\u0e23\u0e1b\u0e23\u0e30\u0e08\u0e33\u0e15\u0e31\u0e27\u0e02\u0e2d\u0e07\u0e41\u0e1e\u0e04\u0e40\u0e01\u0e08\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e2a\u0e48\u0e07\u0e21\u0e2d\u0e1a (\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e1e\u0e34\u0e21\u0e1e\u0e4c)",
+ "If more than one package of the same type (for print)": "\u0e2b\u0e32\u0e01\u0e21\u0e35\u0e21\u0e32\u0e01\u0e01\u0e27\u0e48\u0e32\u0e2b\u0e19\u0e36\u0e48\u0e07\u0e41\u0e1e\u0e04\u0e40\u0e01\u0e08\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e40\u0e14\u0e35\u0e22\u0e27\u0e01\u0e31\u0e19 (\u0e1e\u0e34\u0e21\u0e1e\u0e4c)",
+ "Indicates that the package is a part of this delivery": "\u0e41\u0e2a\u0e14\u0e07\u0e43\u0e2b\u0e49\u0e40\u0e2b\u0e47\u0e19\u0e27\u0e48\u0e32\u0e41\u0e1e\u0e04\u0e40\u0e01\u0e08\u0e40\u0e1b\u0e47\u0e19\u0e2a\u0e48\u0e27\u0e19\u0e2b\u0e19\u0e36\u0e48\u0e07\u0e02\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e08\u0e31\u0e14\u0e2a\u0e48\u0e07\u0e19\u0e35\u0e49",
+ "Items": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23",
+ "Misc Details": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e2d\u0e37\u0e48\u0e19 \u0e46",
+ "Net Weight": "\u0e1b\u0e23\u0e34\u0e21\u0e32\u0e13\u0e2a\u0e38\u0e17\u0e18\u0e34",
+ "Net Weight UOM": "UOM \u0e19\u0e49\u0e33\u0e2b\u0e19\u0e31\u0e01\u0e2a\u0e38\u0e17\u0e18\u0e34",
+ "PS": "PS",
+ "Package Item Details": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e41\u0e1e\u0e04\u0e40\u0e01\u0e08\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Package Weight Details": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e41\u0e1e\u0e04\u0e40\u0e01\u0e08\u0e19\u0e49\u0e33\u0e2b\u0e19\u0e31\u0e01",
+ "Packing Slip": "\u0e2a\u0e25\u0e34\u0e1b",
+ "Packing Slip Items": "\u0e1a\u0e23\u0e23\u0e08\u0e38\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e2a\u0e25\u0e34\u0e1b",
+ "Series": "\u0e0a\u0e38\u0e14",
+ "Stock": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "The date at which current entry is corrected in the system.": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e17\u0e35\u0e48\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e1b\u0e31\u0e08\u0e08\u0e38\u0e1a\u0e31\u0e19\u0e21\u0e35\u0e01\u0e32\u0e23\u0e41\u0e01\u0e49\u0e44\u0e02\u0e43\u0e19\u0e23\u0e30\u0e1a\u0e1a",
+ "The gross weight of the package. Usually net weight + packaging material weight. (for print)": "\u0e19\u0e49\u0e33\u0e2b\u0e19\u0e31\u0e01\u0e23\u0e27\u0e21\u0e02\u0e2d\u0e07\u0e41\u0e1e\u0e04\u0e40\u0e01\u0e08 \u0e19\u0e49\u0e33\u0e2b\u0e19\u0e31\u0e01\u0e2a\u0e38\u0e17\u0e18\u0e34\u0e1b\u0e01\u0e15\u0e34 + \u0e19\u0e49\u0e33\u0e2b\u0e19\u0e31\u0e01\u0e27\u0e31\u0e2a\u0e14\u0e38\u0e1a\u0e23\u0e23\u0e08\u0e38\u0e20\u0e31\u0e13\u0e11\u0e4c (\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e1e\u0e34\u0e21\u0e1e\u0e4c)",
+ "The net weight of this package. (calculated automatically as sum of net weight of items)": "\u0e19\u0e49\u0e33\u0e2b\u0e19\u0e31\u0e01\u0e2a\u0e38\u0e17\u0e18\u0e34\u0e02\u0e2d\u0e07\u0e41\u0e1e\u0e04\u0e40\u0e01\u0e08\u0e19\u0e35\u0e49 (\u0e04\u0e33\u0e19\u0e27\u0e13\u0e42\u0e14\u0e22\u0e2d\u0e31\u0e15\u0e42\u0e19\u0e21\u0e31\u0e15\u0e34\u0e40\u0e1b\u0e47\u0e19\u0e17\u0e35\u0e48\u0e23\u0e27\u0e21\u0e02\u0e2d\u0e07\u0e19\u0e49\u0e33\u0e2b\u0e19\u0e31\u0e01\u0e2a\u0e38\u0e17\u0e18\u0e34\u0e02\u0e2d\u0e07\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23)",
+ "To Package No.": "\u0e01\u0e31\u0e1a\u0e41\u0e1e\u0e04\u0e40\u0e01\u0e08\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e25\u0e02"
+}
\ No newline at end of file
diff --git a/stock/doctype/packing_slip_item/locale/de-doc.json b/stock/doctype/packing_slip_item/locale/de-doc.json
new file mode 100644
index 00000000000..acaf32661f2
--- /dev/null
+++ b/stock/doctype/packing_slip_item/locale/de-doc.json
@@ -0,0 +1,11 @@
+{
+ "Item Code": "Item Code",
+ "Item Name": "Item Name",
+ "Net Weight": "Nettogewicht",
+ "Packing Slip Item": "Packzettel Artikel",
+ "Page Break": "Seitenwechsel",
+ "Quantity": "Menge",
+ "Stock": "Lager",
+ "UOM": "UOM",
+ "Weight UOM": "Gewicht UOM"
+}
\ No newline at end of file
diff --git a/stock/doctype/packing_slip_item/locale/pt-BR-doc.json b/stock/doctype/packing_slip_item/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..a6700a896e4
--- /dev/null
+++ b/stock/doctype/packing_slip_item/locale/pt-BR-doc.json
@@ -0,0 +1,11 @@
+{
+ "Item Code": "C\u00f3digo do Item",
+ "Item Name": "Nome do Item",
+ "Net Weight": "Peso L\u00edquido",
+ "Packing Slip Item": "Item da Guia de Remessa",
+ "Page Break": "Quebra de p\u00e1gina",
+ "Quantity": "Quantidade",
+ "Stock": "Estoque",
+ "UOM": "UDM",
+ "Weight UOM": "UDM de Peso"
+}
\ No newline at end of file
diff --git a/stock/doctype/packing_slip_item/locale/th-doc.json b/stock/doctype/packing_slip_item/locale/th-doc.json
new file mode 100644
index 00000000000..eb7334e0d56
--- /dev/null
+++ b/stock/doctype/packing_slip_item/locale/th-doc.json
@@ -0,0 +1,11 @@
+{
+ "Item Code": "\u0e23\u0e2b\u0e31\u0e2a\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Item Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23",
+ "Net Weight": "\u0e1b\u0e23\u0e34\u0e21\u0e32\u0e13\u0e2a\u0e38\u0e17\u0e18\u0e34",
+ "Packing Slip Item": "\u0e1a\u0e23\u0e23\u0e08\u0e38\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e2a\u0e25\u0e34\u0e1b",
+ "Page Break": "\u0e41\u0e1a\u0e48\u0e07\u0e2b\u0e19\u0e49\u0e32",
+ "Quantity": "\u0e1b\u0e23\u0e34\u0e21\u0e32\u0e13",
+ "Stock": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "UOM": "UOM",
+ "Weight UOM": "UOM \u0e19\u0e49\u0e33\u0e2b\u0e19\u0e31\u0e01"
+}
\ No newline at end of file
diff --git a/stock/doctype/purchase_receipt/locale/_messages_js.json b/stock/doctype/purchase_receipt/locale/_messages_js.json
new file mode 100644
index 00000000000..0637a088a01
--- /dev/null
+++ b/stock/doctype/purchase_receipt/locale/_messages_js.json
@@ -0,0 +1 @@
+[]
\ No newline at end of file
diff --git a/stock/doctype/purchase_receipt/locale/_messages_py.json b/stock/doctype/purchase_receipt/locale/_messages_py.json
new file mode 100644
index 00000000000..87d22bee7d4
--- /dev/null
+++ b/stock/doctype/purchase_receipt/locale/_messages_py.json
@@ -0,0 +1,5 @@
+[
+ "Please Enter Supplier Warehouse for subcontracted Items",
+ "No default BOM exists for item: ",
+ "Please enter whether Purchase Recipt is made for subcontracting \n\t\t\t\tor purchasing, in 'Is Subcontracted' field"
+]
\ No newline at end of file
diff --git a/stock/doctype/purchase_receipt/locale/de-doc.json b/stock/doctype/purchase_receipt/locale/de-doc.json
new file mode 100644
index 00000000000..4150921969c
--- /dev/null
+++ b/stock/doctype/purchase_receipt/locale/de-doc.json
@@ -0,0 +1,104 @@
+{
+ "% Billed": "% Billed",
+ "% of materials billed against this Purchase Receipt": "% Der Materialien gegen diese Kaufbeleg abgerechnet",
+ "Add / Edit Taxes and Charges": "Hinzuf\u00fcgen / Bearbeiten Steuern und Abgaben",
+ "Add Terms and Conditions for the Purchase Receipt. You can also prepare a Terms and Conditions Master and use the Template.": "Hinzuf\u00fcgen Gesch\u00e4ftsbedingungen f\u00fcr den Kaufbeleg. Sie k\u00f6nnen auch eine AGB-Master und verwenden Sie die Vorlage.",
+ "Address": "Adresse",
+ "Amended From": "Ge\u00e4ndert von",
+ "Bill Date": "Bill Datum",
+ "Bill No": "Bill No",
+ "Calculate Tax": "Steuer rechnen",
+ "Cancel Reason": "Abbrechen Reason",
+ "Cancelled": "Abgesagt",
+ "Challan Date": "Challan Datum",
+ "Challan No": "Challan Nein",
+ "Company": "Firma",
+ "Consider this Price List for fetching rate. (only which have \"For Buying\" as checked)": "Betrachten Sie diese Preisliste f\u00fcr das Abrufen bewerten. (Nur die haben \"f\u00fcr den Kauf\", wie gepr\u00fcft)",
+ "Contact": "Kontakt",
+ "Contact Email": "Kontakt per E-Mail",
+ "Contact Info": "Kontakt Info",
+ "Contact Person": "Ansprechpartner",
+ "Currency": "W\u00e4hrung",
+ "Currency & Price List": "W\u00e4hrung & Preisliste",
+ "Date on which lorry started from supplier warehouse": "Datum, an dem Lastwagen startete von Lieferantenlager",
+ "Detailed Breakup of the totals": "Detaillierte Breakup der Gesamtsummen",
+ "Draft": "Entwurf",
+ "Exchange Rate": "Wechselkurs",
+ "File List": "Dateiliste",
+ "Filing in Additional Information about the Purchase Receipt will help you analyze your data better.": "Die Einreichung in Zus\u00e4tzliche Informationen \u00fcber den Kaufbeleg wird Ihnen helfen, Ihre Daten analysieren besser.",
+ "Fiscal Year": "Gesch\u00e4ftsjahr",
+ "Following table will show values if items are sub - contracted. These values will be fetched from the master of \"Bill of Materials\" of sub - contracted items.": "Folgende Tabelle zeigt Werte, wenn Artikel sub sind - vergeben werden. Vertragsgegenst\u00e4nden - Diese Werte werden vom Meister der \"Bill of Materials\" von Sub geholt werden.",
+ "GRN": "GRN",
+ "Get Current Stock": "Holen Aktuelle Stock",
+ "Get Tax Detail": "Holen MwSt. Details",
+ "Get Terms and Conditions": "Holen AGB",
+ "Grand Total": "Grand Total",
+ "Grand Total (Import)": "Grand Total (Import)",
+ "If you have created a standard template in Purchase Taxes and Charges Master, select one and click on the button below.": "Wenn Sie ein Standard-Template in Kauf Steuern und Abgaben Meister erstellt haben, w\u00e4hlen Sie eine aus und klicken Sie auf den Button unten.",
+ "In Words": "In Worte",
+ "In Words (Import)": "In Words (Import)",
+ "In Words will be visible once you save the Purchase Receipt.": "In Worte sichtbar sein wird, wenn Sie den Kaufbeleg speichern.",
+ "Instructions": "Anleitung",
+ "Is Subcontracted": "Ist Fremdleistungen",
+ "Items": "Artikel",
+ "LR Date": "LR Datum",
+ "LR No": "In LR",
+ "Mobile No": "In Mobile",
+ "More Info": "Mehr Info",
+ "Net Total": "Total Net",
+ "Net Total (Import)": "Net Total (Import)",
+ "No": "Auf",
+ "Other Details": "Weitere Details",
+ "Posting Date": "Buchungsdatum",
+ "Posting Time": "Posting Zeit",
+ "Price List": "Preisliste",
+ "Price List Currency": "W\u00e4hrung Preisliste",
+ "Price List Exchange Rate": "Preisliste Wechselkurs",
+ "Pull Purchase Order Details": "Ziehen Sie Purchase Order Details",
+ "Purchase Order": "Auftragsbest\u00e4tigung",
+ "Purchase Receipt": "Kaufbeleg",
+ "Purchase Receipt Item Supplieds": "Kaufbeleg Artikel Supplieds",
+ "Purchase Receipt Items": "Kaufbeleg Artikel",
+ "Purchase Taxes and Charges": "Purchase Steuern und Abgaben",
+ "Range": "Reichweite",
+ "Rate at which supplier's currency is converted to company's base currency": "Geschwindigkeit, mit der Lieferanten W\u00e4hrung Unternehmens Basisw\u00e4hrung umgewandelt wird",
+ "Raw Material Details": "Raw Material Einzelheiten",
+ "Re-Calculate Values": "Neu berechnen Werte",
+ "Rejected Warehouse": "Abgelehnt Warehouse",
+ "Remarks": "Bemerkungen",
+ "Rounded Total": "Abgerundete insgesamt",
+ "Select \"Yes\" for sub - contracting items": "W\u00e4hlen Sie \"Ja\" f\u00fcr - Zulieferer Artikel",
+ "Select Print Heading": "W\u00e4hlen Sie Drucken \u00dcberschrift",
+ "Select Terms and Conditions": "W\u00e4hlen AGB",
+ "Select the relevant company name if you have multiple companies": "W\u00e4hlen Sie den entsprechenden Firmennamen, wenn Sie mehrere Unternehmen haben",
+ "Series": "Serie",
+ "Status": "Status",
+ "Stock": "Lager",
+ "Submitted": "Eingereicht",
+ "Supplier": "Lieferant",
+ "Supplier Address": "Lieferant Adresse",
+ "Supplier Name": "Name des Anbieters",
+ "Supplier Warehouse": "Lieferant Warehouse",
+ "Supplier warehouse where you have issued raw materials for sub - contracting": "Lieferantenlager wo Sie Rohstoffe ausgegeben haben - Zulieferer",
+ "Supplier's currency": "Lieferant W\u00e4hrung",
+ "Tax Calculation": "Steuerberechnung",
+ "Taxes": "Steuern",
+ "Taxes and Charges Added": "Steuern und Abgaben am",
+ "Taxes and Charges Added (Import)": "Steuern und Geb\u00fchren Added (Import)",
+ "Taxes and Charges Deducted": "Steuern und Geb\u00fchren Abgezogen",
+ "Taxes and Charges Deducted (Import)": "Steuern und Geb\u00fchren abgezogen (Import)",
+ "Terms and Conditions": "AGB",
+ "Terms and Conditions HTML": "AGB HTML",
+ "Terms and Conditions1": "Allgemeine Bedingungen1",
+ "The date at which current entry will get or has actually executed.": "Das Datum, an dem aktuellen Eintrag zu erhalten oder wird tats\u00e4chlich ausgef\u00fchrt.",
+ "Time at which materials were received": "Zeitpunkt, an dem Materialien wurden erhalten",
+ "To manage multiple series please go to Setup > Manage Series": "Um mehrere Reihen zu verwalten gehen Sie bitte auf Setup> Verwalten Series",
+ "Total Tax": "Total Tax",
+ "Totals": "Totals",
+ "Transporter Info": "Transporter Info",
+ "Transporter Name": "Transporter Namen",
+ "Transporter lorry number": "Transporter Lkw-Zahl",
+ "Warehouse where you are maintaining stock of rejected items": "Warehouse, wo Sie erhalten Bestand abgelehnt Elemente werden",
+ "Yes": "Ja",
+ "You can make a purchase receipt from multiple purchase orders. Select purchase orders one by one and click on the button below.": "Sie k\u00f6nnen einen Kaufbeleg von mehreren Bestellungen. W\u00e4hlen Bestellungen eins nach dem anderen, und klicken Sie auf den Button unten."
+}
\ No newline at end of file
diff --git a/stock/doctype/purchase_receipt/locale/pt-BR-doc.json b/stock/doctype/purchase_receipt/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..47ca9a6a1a8
--- /dev/null
+++ b/stock/doctype/purchase_receipt/locale/pt-BR-doc.json
@@ -0,0 +1,104 @@
+{
+ "% Billed": "Faturado %",
+ "% of materials billed against this Purchase Receipt": "% de materiais faturados contra este Recibo de Compra",
+ "Add / Edit Taxes and Charges": "Adicionar / Editar Impostos e Encargos",
+ "Add Terms and Conditions for the Purchase Receipt. You can also prepare a Terms and Conditions Master and use the Template.": "Adicione Termos e Condi\u00e7\u00f5es para o Recibo de Compra. Voc\u00ea tamb\u00e9m pode preparar um cadastro de Termos e Condi\u00e7\u00f5es e usar o Modelo.",
+ "Address": "Endere\u00e7o",
+ "Amended From": "Corrigido De",
+ "Bill Date": "Data de Faturamento",
+ "Bill No": "Fatura N\u00ba",
+ "Calculate Tax": "Calcular Imposto",
+ "Cancel Reason": "Motivo do Cancelar",
+ "Cancelled": "Cancelado",
+ "Challan Date": "Data do Recibo",
+ "Challan No": "N\u00ba do Recibo",
+ "Company": "Empresa",
+ "Consider this Price List for fetching rate. (only which have \"For Buying\" as checked)": "Considere esta Lista de Pre\u00e7os para a obten\u00e7\u00e3o do valor. (S\u00f3 onde "Para Comprar" estiver marcado)",
+ "Contact": "Contato",
+ "Contact Email": "E-mail do Contato",
+ "Contact Info": "Informa\u00e7\u00f5es para Contato",
+ "Contact Person": "Pessoa de Contato",
+ "Currency": "Moeda",
+ "Currency & Price List": "Moeda e Lista de Pre\u00e7os",
+ "Date on which lorry started from supplier warehouse": "Data em que o caminh\u00e3o partiu do almoxarifado do fornecedor",
+ "Detailed Breakup of the totals": "Detalhamento dos totais",
+ "Draft": "Rascunho",
+ "Exchange Rate": "Taxa de C\u00e2mbio",
+ "File List": "Lista de Arquivos",
+ "Filing in Additional Information about the Purchase Receipt will help you analyze your data better.": "Preenchimento de informa\u00e7\u00f5es adicionais sobre o Recibo de compra vai ajudar a analisar melhor seus dados.",
+ "Fiscal Year": "Exerc\u00edcio fiscal",
+ "Following table will show values if items are sub - contracted. These values will be fetched from the master of \"Bill of Materials\" of sub - contracted items.": "A tabela a seguir mostrar\u00e1 valores se os itens s\u00e3o sub-contratados. Estes valores ser\u00e3o obtidos a partir do cadastro da "Lista de Materiais" de itens sub-contratados.",
+ "GRN": "GRN",
+ "Get Current Stock": "Obter Estoque atual",
+ "Get Tax Detail": "Obtenha detalhes de Imposto",
+ "Get Terms and Conditions": "Obter os Termos e Condi\u00e7\u00f5es",
+ "Grand Total": "Total Geral",
+ "Grand Total (Import)": "Total Geral (Importa\u00e7\u00e3o)",
+ "If you have created a standard template in Purchase Taxes and Charges Master, select one and click on the button below.": "Se voc\u00ea criou um modelo padr\u00e3o no cadastro de Impostos de Compra e Encargos, selecione um e clique no bot\u00e3o abaixo.",
+ "In Words": "Por extenso",
+ "In Words (Import)": "Por extenso (Import)",
+ "In Words will be visible once you save the Purchase Receipt.": "Por extenso ser\u00e1 vis\u00edvel quando voc\u00ea salvar o recibo de compra.",
+ "Instructions": "Instru\u00e7\u00f5es",
+ "Is Subcontracted": "\u00c9 subcontratada",
+ "Items": "Itens",
+ "LR Date": "Data LR",
+ "LR No": "N\u00ba LR",
+ "Mobile No": "Telefone Celular",
+ "More Info": "Mais informa\u00e7\u00f5es",
+ "Net Total": "Total L\u00edquido",
+ "Net Total (Import)": "Total L\u00edquido (Importa\u00e7\u00e3o)",
+ "No": "N\u00e3o",
+ "Other Details": "Outros detalhes",
+ "Posting Date": "Data da Postagem",
+ "Posting Time": "Hor\u00e1rio da Postagem",
+ "Price List": "Lista de Pre\u00e7os",
+ "Price List Currency": "Moeda da Lista de Pre\u00e7os",
+ "Price List Exchange Rate": "Taxa de C\u00e2mbio da Lista de Pre\u00e7os",
+ "Pull Purchase Order Details": "Puxar Detalhes da Ordem de Compra",
+ "Purchase Order": "Ordem de Compra",
+ "Purchase Receipt": "Recibo de Compra",
+ "Purchase Receipt Item Supplieds": "Item do Recibo de Compra Fornecido",
+ "Purchase Receipt Items": "Itens do Recibo de Compra",
+ "Purchase Taxes and Charges": "Impostos e Encargos sobre Compras",
+ "Range": "Alcance",
+ "Rate at which supplier's currency is converted to company's base currency": "Taxa na qual a moeda do fornecedor \u00e9 convertida para a moeda base da empresa",
+ "Raw Material Details": "Detalhes de Materias-Primas",
+ "Re-Calculate Values": "Re-calcular valores",
+ "Rejected Warehouse": "Almoxarifado Rejeitado",
+ "Remarks": "Observa\u00e7\u00f5es",
+ "Rounded Total": "Total arredondado",
+ "Select \"Yes\" for sub - contracting items": "Selecione "Sim" para a itens sub-contratados",
+ "Select Print Heading": "Selecione o Cabe\u00e7alho de Impress\u00e3o",
+ "Select Terms and Conditions": "Selecione os Termos e Condi\u00e7\u00f5es",
+ "Select the relevant company name if you have multiple companies": "Selecione o nome da empresa em quest\u00e3o, se voc\u00ea tem v\u00e1rias empresas",
+ "Series": "S\u00e9ries",
+ "Status": "Estado",
+ "Stock": "Estoque",
+ "Submitted": "Enviado",
+ "Supplier": "Fornecedor",
+ "Supplier Address": "Endere\u00e7o do Fornecedor",
+ "Supplier Name": "Nome do Fornecedor",
+ "Supplier Warehouse": "Almoxarifado do Fornecedor",
+ "Supplier warehouse where you have issued raw materials for sub - contracting": "Almoxarifado do fornecedor onde voc\u00ea emitiu mat\u00e9rias-primas para a subcontrata\u00e7\u00e3o",
+ "Supplier's currency": "Moeda do Fornecedor",
+ "Tax Calculation": "C\u00e1lculo do Imposto",
+ "Taxes": "Impostos",
+ "Taxes and Charges Added": "Impostos e Encargos Adicionados",
+ "Taxes and Charges Added (Import)": "Impostos e Encargos Adicionados (Importa\u00e7\u00e3o)",
+ "Taxes and Charges Deducted": "Impostos e Encargos Deduzidos",
+ "Taxes and Charges Deducted (Import)": "Impostos e Encargos Deduzidos (Importa\u00e7\u00e3o)",
+ "Terms and Conditions": "Termos e Condi\u00e7\u00f5es",
+ "Terms and Conditions HTML": "Termos e Condi\u00e7\u00f5es HTML",
+ "Terms and Conditions1": "Termos e Condi\u00e7\u00f5es",
+ "The date at which current entry will get or has actually executed.": "A data em que o lan\u00e7amento atual vai ser ou foi realmente executado.",
+ "Time at which materials were received": "Hor\u00e1rio em que os materiais foram recebidos",
+ "To manage multiple series please go to Setup > Manage Series": "Para gerenciar v\u00e1rias s\u00e9ries por favor, v\u00e1 para Configura\u00e7\u00e3o > Gerenciar S\u00e9ries",
+ "Total Tax": "Total de Impostos",
+ "Totals": "Totais",
+ "Transporter Info": "Informa\u00e7\u00f5es da Transportadora",
+ "Transporter Name": "Nome da Transportadora",
+ "Transporter lorry number": "N\u00famero do caminh\u00e3o da Transportadora",
+ "Warehouse where you are maintaining stock of rejected items": "Almoxarifado onde voc\u00ea est\u00e1 mantendo estoque de itens rejeitados",
+ "Yes": "Sim",
+ "You can make a purchase receipt from multiple purchase orders. Select purchase orders one by one and click on the button below.": "Voc\u00ea pode fazer um Recibo de Compra a partir de v\u00e1rias Ordens de Compra. Selecione as Ordens de Compra, uma a uma e clique no bot\u00e3o abaixo."
+}
\ No newline at end of file
diff --git a/stock/doctype/purchase_receipt/locale/th-doc.json b/stock/doctype/purchase_receipt/locale/th-doc.json
new file mode 100644
index 00000000000..a54c0c74816
--- /dev/null
+++ b/stock/doctype/purchase_receipt/locale/th-doc.json
@@ -0,0 +1,104 @@
+{
+ "% Billed": "\u0e08\u0e33\u0e19\u0e27\u0e19%",
+ "% of materials billed against this Purchase Receipt": "% \u0e02\u0e2d\u0e07\u0e27\u0e31\u0e2a\u0e14\u0e38\u0e17\u0e35\u0e48\u0e40\u0e23\u0e35\u0e22\u0e01\u0e40\u0e01\u0e47\u0e1a\u0e40\u0e07\u0e34\u0e19\u0e01\u0e31\u0e1a\u0e43\u0e1a\u0e40\u0e2a\u0e23\u0e47\u0e08\u0e23\u0e31\u0e1a\u0e40\u0e07\u0e34\u0e19\u0e0b\u0e37\u0e49\u0e2d\u0e19\u0e35\u0e49",
+ "Add / Edit Taxes and Charges": "\u0e40\u0e1e\u0e34\u0e48\u0e21 / \u0e41\u0e01\u0e49\u0e44\u0e02\u0e20\u0e32\u0e29\u0e35\u0e41\u0e25\u0e30\u0e04\u0e48\u0e32\u0e18\u0e23\u0e23\u0e21\u0e40\u0e19\u0e35\u0e22\u0e21",
+ "Add Terms and Conditions for the Purchase Receipt. You can also prepare a Terms and Conditions Master and use the Template.": "\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e02\u0e49\u0e2d\u0e15\u0e01\u0e25\u0e07\u0e41\u0e25\u0e30\u0e40\u0e07\u0e37\u0e48\u0e2d\u0e19\u0e44\u0e02\u0e43\u0e19\u0e01\u0e32\u0e23\u0e23\u0e31\u0e1a\u0e0b\u0e37\u0e49\u0e2d \u0e19\u0e2d\u0e01\u0e08\u0e32\u0e01\u0e19\u0e35\u0e49\u0e04\u0e38\u0e13\u0e22\u0e31\u0e07\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e40\u0e15\u0e23\u0e35\u0e22\u0e21\u0e04\u0e27\u0e32\u0e21\u0e1e\u0e23\u0e49\u0e2d\u0e21\u0e02\u0e49\u0e2d\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e40\u0e07\u0e37\u0e48\u0e2d\u0e19\u0e44\u0e02\u0e41\u0e25\u0e30\u0e1b\u0e23\u0e34\u0e0d\u0e0d\u0e32\u0e42\u0e17\u0e41\u0e25\u0e30\u0e43\u0e0a\u0e49\u0e41\u0e21\u0e48\u0e41\u0e1a\u0e1a",
+ "Address": "\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48",
+ "Amended From": "\u0e41\u0e01\u0e49\u0e44\u0e02\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21",
+ "Bill Date": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e1a\u0e34\u0e25",
+ "Bill No": "\u0e44\u0e21\u0e48\u0e21\u0e35\u0e1a\u0e34\u0e25",
+ "Calculate Tax": "\u0e04\u0e33\u0e19\u0e27\u0e13\u0e20\u0e32\u0e29\u0e35",
+ "Cancel Reason": "\u0e22\u0e01\u0e40\u0e25\u0e34\u0e01\u0e40\u0e2b\u0e15\u0e38\u0e1c\u0e25",
+ "Cancelled": "\u0e22\u0e01\u0e40\u0e25\u0e34\u0e01",
+ "Challan Date": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48 Challan",
+ "Challan No": "Challan \u0e44\u0e21\u0e48\u0e21\u0e35",
+ "Company": "\u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17",
+ "Consider this Price List for fetching rate. (only which have \"For Buying\" as checked)": "\u0e1e\u0e34\u0e08\u0e32\u0e23\u0e13\u0e32\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e23\u0e32\u0e04\u0e32\u0e19\u0e35\u0e49\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e40\u0e23\u0e35\u0e22\u0e01\u0e2d\u0e31\u0e15\u0e23\u0e32 (\u0e40\u0e09\u0e1e\u0e32\u0e30\u0e17\u0e35\u0e48\u0e21\u0e35 "\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e0b\u0e37\u0e49\u0e2d" \u0e01\u0e32\u0e23\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a\u0e40\u0e1b\u0e47\u0e19)",
+ "Contact": "\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d",
+ "Contact Email": "\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e4c",
+ "Contact Info": "\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d",
+ "Contact Person": "Contact Person",
+ "Currency": "\u0e40\u0e07\u0e34\u0e19\u0e15\u0e23\u0e32",
+ "Currency & Price List": "\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e41\u0e25\u0e30\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e23\u0e32\u0e04\u0e32",
+ "Date on which lorry started from supplier warehouse": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19\u0e08\u0e32\u0e01\u0e23\u0e16\u0e1a\u0e23\u0e23\u0e17\u0e38\u0e01\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e1c\u0e39\u0e49\u0e08\u0e31\u0e14\u0e08\u0e33\u0e2b\u0e19\u0e48\u0e32\u0e22",
+ "Detailed Breakup of the totals": "\u0e01\u0e23\u0e30\u0e08\u0e31\u0e14\u0e01\u0e23\u0e30\u0e08\u0e32\u0e22\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e02\u0e2d\u0e07\u0e1c\u0e25\u0e23\u0e27\u0e21",
+ "Draft": "\u0e23\u0e48\u0e32\u0e07",
+ "Exchange Rate": "\u0e2d\u0e31\u0e15\u0e23\u0e32\u0e41\u0e25\u0e01\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19",
+ "File List": "\u0e23\u0e32\u0e22\u0e0a\u0e37\u0e48\u0e2d\u0e44\u0e1f\u0e25\u0e4c",
+ "Filing in Additional Information about the Purchase Receipt will help you analyze your data better.": "\u0e22\u0e37\u0e48\u0e19\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21\u0e40\u0e01\u0e35\u0e48\u0e22\u0e27\u0e01\u0e31\u0e1a\u0e23\u0e31\u0e1a\u0e0b\u0e37\u0e49\u0e2d\u0e08\u0e30\u0e0a\u0e48\u0e27\u0e22\u0e43\u0e2b\u0e49\u0e04\u0e38\u0e13\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e27\u0e34\u0e40\u0e04\u0e23\u0e32\u0e30\u0e2b\u0e4c\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13\u0e14\u0e35\u0e02\u0e36\u0e49\u0e19",
+ "Fiscal Year": "\u0e1b\u0e35\u0e07\u0e1a\u0e1b\u0e23\u0e30\u0e21\u0e32\u0e13",
+ "Following table will show values if items are sub - contracted. These values will be fetched from the master of \"Bill of Materials\" of sub - contracted items.": "\u0e15\u0e32\u0e23\u0e32\u0e07\u0e15\u0e48\u0e2d\u0e44\u0e1b\u0e19\u0e35\u0e49\u0e08\u0e30\u0e41\u0e2a\u0e14\u0e07\u0e04\u0e48\u0e32\u0e2b\u0e32\u0e01\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e22\u0e48\u0e2d\u0e22 - \u0e2a\u0e31\u0e0d\u0e0d\u0e32 \u0e04\u0e48\u0e32\u0e40\u0e2b\u0e25\u0e48\u0e32\u0e19\u0e35\u0e49\u0e08\u0e30\u0e16\u0e39\u0e01\u0e40\u0e23\u0e35\u0e22\u0e01\u0e08\u0e32\u0e01\u0e15\u0e49\u0e19\u0e41\u0e1a\u0e1a\u0e02\u0e2d\u0e07 "Bill of Materials" \u0e22\u0e48\u0e2d\u0e22 - \u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e2a\u0e31\u0e0d\u0e0d\u0e32",
+ "GRN": "GRN",
+ "Get Current Stock": "\u0e23\u0e31\u0e1a\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e1b\u0e31\u0e08\u0e08\u0e38\u0e1a\u0e31\u0e19",
+ "Get Tax Detail": "\u0e23\u0e31\u0e1a\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e20\u0e32\u0e29\u0e35",
+ "Get Terms and Conditions": "\u0e23\u0e31\u0e1a\u0e02\u0e49\u0e2d\u0e15\u0e01\u0e25\u0e07\u0e41\u0e25\u0e30\u0e40\u0e07\u0e37\u0e48\u0e2d\u0e19\u0e44\u0e02",
+ "Grand Total": "\u0e23\u0e27\u0e21\u0e17\u0e31\u0e49\u0e07\u0e2a\u0e34\u0e49\u0e19",
+ "Grand Total (Import)": "\u0e41\u0e01\u0e23\u0e19\u0e14\u0e4c\u0e23\u0e27\u0e21 (\u0e19\u0e33\u0e40\u0e02\u0e49\u0e32)",
+ "If you have created a standard template in Purchase Taxes and Charges Master, select one and click on the button below.": "\u0e16\u0e49\u0e32\u0e04\u0e38\u0e13\u0e44\u0e14\u0e49\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e41\u0e21\u0e48\u0e41\u0e1a\u0e1a\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19\u0e43\u0e19\u0e20\u0e32\u0e29\u0e35\u0e0b\u0e37\u0e49\u0e2d\u0e41\u0e25\u0e30\u0e1b\u0e23\u0e34\u0e0d\u0e0d\u0e32\u0e42\u0e17\u0e04\u0e48\u0e32\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e2b\u0e19\u0e36\u0e48\u0e07\u0e41\u0e25\u0e30\u0e04\u0e25\u0e34\u0e01\u0e17\u0e35\u0e48\u0e1b\u0e38\u0e48\u0e21\u0e14\u0e49\u0e32\u0e19\u0e25\u0e48\u0e32\u0e07",
+ "In Words": "\u0e43\u0e19\u0e04\u0e33\u0e1e\u0e39\u0e14\u0e02\u0e2d\u0e07",
+ "In Words (Import)": "\u0e43\u0e19\u0e04\u0e33\u0e1e\u0e39\u0e14\u0e02\u0e2d\u0e07 (\u0e19\u0e33\u0e40\u0e02\u0e49\u0e32)",
+ "In Words will be visible once you save the Purchase Receipt.": "\u0e43\u0e19\u0e04\u0e33\u0e1e\u0e39\u0e14\u0e02\u0e2d\u0e07\u0e08\u0e30\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e21\u0e2d\u0e07\u0e40\u0e2b\u0e47\u0e19\u0e44\u0e14\u0e49\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e04\u0e38\u0e13\u0e1a\u0e31\u0e19\u0e17\u0e36\u0e01\u0e23\u0e31\u0e1a\u0e0b\u0e37\u0e49\u0e2d",
+ "Instructions": "\u0e04\u0e33\u0e41\u0e19\u0e30\u0e19\u0e33",
+ "Is Subcontracted": "\u0e40\u0e2b\u0e21\u0e32",
+ "Items": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23",
+ "LR Date": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48 LR",
+ "LR No": "LR \u0e44\u0e21\u0e48\u0e21\u0e35",
+ "Mobile No": "\u0e21\u0e37\u0e2d\u0e16\u0e37\u0e2d\u0e44\u0e21\u0e48\u0e21\u0e35",
+ "More Info": "\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21",
+ "Net Total": "\u0e2a\u0e38\u0e17\u0e18\u0e34",
+ "Net Total (Import)": "\u0e23\u0e27\u0e21\u0e2a\u0e38\u0e17\u0e18\u0e34 (\u0e19\u0e33\u0e40\u0e02\u0e49\u0e32)",
+ "No": "\u0e44\u0e21\u0e48",
+ "Other Details": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e2d\u0e37\u0e48\u0e19 \u0e46",
+ "Posting Date": "\u0e42\u0e1e\u0e2a\u0e15\u0e4c\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48",
+ "Posting Time": "\u0e42\u0e1e\u0e2a\u0e15\u0e4c\u0e40\u0e27\u0e25\u0e32",
+ "Price List": "\u0e1a\u0e31\u0e0d\u0e0a\u0e35\u0e41\u0e08\u0e49\u0e07\u0e23\u0e32\u0e04\u0e32\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Price List Currency": "\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e23\u0e32\u0e04\u0e32",
+ "Price List Exchange Rate": "\u0e23\u0e32\u0e04\u0e32\u0e2d\u0e31\u0e15\u0e23\u0e32\u0e41\u0e25\u0e01\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e23\u0e32\u0e22\u0e0a\u0e37\u0e48\u0e2d",
+ "Pull Purchase Order Details": "\u0e14\u0e36\u0e07\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e01\u0e32\u0e23\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d",
+ "Purchase Order": "\u0e43\u0e1a\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d",
+ "Purchase Receipt": "\u0e0b\u0e37\u0e49\u0e2d\u0e43\u0e1a\u0e40\u0e2a\u0e23\u0e47\u0e08\u0e23\u0e31\u0e1a\u0e40\u0e07\u0e34\u0e19",
+ "Purchase Receipt Item Supplieds": "\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e43\u0e1a\u0e40\u0e2a\u0e23\u0e47\u0e08\u0e23\u0e31\u0e1a\u0e40\u0e07\u0e34\u0e19 Supplieds",
+ "Purchase Receipt Items": "\u0e0b\u0e37\u0e49\u0e2d\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e43\u0e1a\u0e40\u0e2a\u0e23\u0e47\u0e08\u0e23\u0e31\u0e1a\u0e40\u0e07\u0e34\u0e19",
+ "Purchase Taxes and Charges": "\u0e20\u0e32\u0e29\u0e35\u0e0b\u0e37\u0e49\u0e2d\u0e41\u0e25\u0e30\u0e04\u0e48\u0e32\u0e1a\u0e23\u0e34\u0e01\u0e32\u0e23",
+ "Range": "\u0e40\u0e17\u0e37\u0e2d\u0e01\u0e40\u0e02\u0e32",
+ "Rate at which supplier's currency is converted to company's base currency": "\u0e2d\u0e31\u0e15\u0e23\u0e32\u0e17\u0e35\u0e48\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e02\u0e2d\u0e07\u0e0b\u0e31\u0e1e\u0e1e\u0e25\u0e32\u0e22\u0e40\u0e2d\u0e2d\u0e23\u0e4c\u0e08\u0e30\u0e16\u0e39\u0e01\u0e41\u0e1b\u0e25\u0e07\u0e40\u0e1b\u0e47\u0e19\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e2b\u0e25\u0e31\u0e01\u0e02\u0e2d\u0e07 \u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17",
+ "Raw Material Details": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e27\u0e31\u0e15\u0e16\u0e38\u0e14\u0e34\u0e1a",
+ "Re-Calculate Values": "\u0e04\u0e48\u0e32\u0e04\u0e33\u0e19\u0e27\u0e13\u0e43\u0e2b\u0e21\u0e48",
+ "Rejected Warehouse": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e1b\u0e0f\u0e34\u0e40\u0e2a\u0e18",
+ "Remarks": "\u0e02\u0e49\u0e2d\u0e04\u0e34\u0e14\u0e40\u0e2b\u0e47\u0e19",
+ "Rounded Total": "\u0e23\u0e27\u0e21\u0e01\u0e25\u0e21",
+ "Select \"Yes\" for sub - contracting items": "\u0e40\u0e25\u0e37\u0e2d\u0e01 "Yes" \u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a sub - \u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e17\u0e35\u0e48\u0e17\u0e33\u0e2a\u0e31\u0e0d\u0e0d\u0e32",
+ "Select Print Heading": "\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e1e\u0e34\u0e21\u0e1e\u0e4c\u0e2b\u0e31\u0e27\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07",
+ "Select Terms and Conditions": "\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e02\u0e49\u0e2d\u0e15\u0e01\u0e25\u0e07\u0e41\u0e25\u0e30\u0e40\u0e07\u0e37\u0e48\u0e2d\u0e19\u0e44\u0e02",
+ "Select the relevant company name if you have multiple companies": "\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e0a\u0e37\u0e48\u0e2d \u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17 \u0e17\u0e35\u0e48\u0e40\u0e01\u0e35\u0e48\u0e22\u0e27\u0e02\u0e49\u0e2d\u0e07\u0e16\u0e49\u0e32\u0e04\u0e38\u0e13\u0e21\u0e35\u0e2b\u0e25\u0e32\u0e22 \u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17",
+ "Series": "\u0e0a\u0e38\u0e14",
+ "Status": "\u0e2a\u0e16\u0e32\u0e19\u0e30",
+ "Stock": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Submitted": "Submitted",
+ "Supplier": "\u0e1c\u0e39\u0e49\u0e08\u0e31\u0e14\u0e08\u0e33\u0e2b\u0e19\u0e48\u0e32\u0e22",
+ "Supplier Address": "\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e1c\u0e39\u0e49\u0e1c\u0e25\u0e34\u0e15",
+ "Supplier Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e1c\u0e39\u0e49\u0e08\u0e31\u0e14\u0e08\u0e33\u0e2b\u0e19\u0e48\u0e32\u0e22",
+ "Supplier Warehouse": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e1c\u0e39\u0e49\u0e08\u0e31\u0e14\u0e08\u0e33\u0e2b\u0e19\u0e48\u0e32\u0e22",
+ "Supplier warehouse where you have issued raw materials for sub - contracting": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e1c\u0e39\u0e49\u0e08\u0e31\u0e14\u0e08\u0e33\u0e2b\u0e19\u0e48\u0e32\u0e22\u0e17\u0e35\u0e48\u0e04\u0e38\u0e13\u0e44\u0e14\u0e49\u0e2d\u0e2d\u0e01\u0e27\u0e31\u0e15\u0e16\u200b\u200b\u0e38\u0e14\u0e34\u0e1a\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a sub - \u0e2a\u0e31\u0e0d\u0e0d\u0e32",
+ "Supplier's currency": "\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e02\u0e2d\u0e07\u0e0b\u0e31\u0e1e\u0e1e\u0e25\u0e32\u0e22\u0e40\u0e2d\u0e2d\u0e23\u0e4c",
+ "Tax Calculation": "\u0e01\u0e32\u0e23\u0e04\u0e33\u0e19\u0e27\u0e13\u0e20\u0e32\u0e29\u0e35",
+ "Taxes": "\u0e20\u0e32\u0e29\u0e35",
+ "Taxes and Charges Added": "\u0e20\u0e32\u0e29\u0e35\u0e41\u0e25\u0e30\u0e04\u0e48\u0e32\u0e1a\u0e23\u0e34\u0e01\u0e32\u0e23\u0e40\u0e1e\u0e34\u0e48\u0e21",
+ "Taxes and Charges Added (Import)": "\u0e20\u0e32\u0e29\u0e35\u0e41\u0e25\u0e30\u0e04\u0e48\u0e32\u0e1a\u0e23\u0e34\u0e01\u0e32\u0e23\u0e40\u0e1e\u0e34\u0e48\u0e21 (\u0e19\u0e33\u0e40\u0e02\u0e49\u0e32)",
+ "Taxes and Charges Deducted": "\u0e20\u0e32\u0e29\u0e35\u0e41\u0e25\u0e30\u0e04\u0e48\u0e32\u0e1a\u0e23\u0e34\u0e01\u0e32\u0e23\u0e2b\u0e31\u0e01",
+ "Taxes and Charges Deducted (Import)": "\u0e20\u0e32\u0e29\u0e35\u0e41\u0e25\u0e30\u0e04\u0e48\u0e32\u0e1a\u0e23\u0e34\u0e01\u0e32\u0e23\u0e2b\u0e31\u0e01 (\u0e19\u0e33\u0e40\u0e02\u0e49\u0e32)",
+ "Terms and Conditions": "\u0e02\u0e49\u0e2d\u0e15\u0e01\u0e25\u0e07\u0e41\u0e25\u0e30\u0e40\u0e07\u0e37\u0e48\u0e2d\u0e19\u0e44\u0e02",
+ "Terms and Conditions HTML": "\u0e02\u0e49\u0e2d\u0e15\u0e01\u0e25\u0e07\u0e41\u0e25\u0e30\u0e40\u0e07\u0e37\u0e48\u0e2d\u0e19\u0e44\u0e02 HTML",
+ "Terms and Conditions1": "\u0e02\u0e49\u0e2d\u0e15\u0e01\u0e25\u0e07\u0e41\u0e25\u0e30 Conditions1",
+ "The date at which current entry will get or has actually executed.": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e17\u0e35\u0e48\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e1b\u0e31\u0e08\u0e08\u0e38\u0e1a\u0e31\u0e19\u0e08\u0e30\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e2b\u0e23\u0e37\u0e2d\u0e44\u0e14\u0e49\u0e14\u0e33\u0e40\u0e19\u0e34\u0e19\u0e01\u0e32\u0e23\u0e08\u0e23\u0e34\u0e07",
+ "Time at which materials were received": "\u0e40\u0e27\u0e25\u0e32\u0e17\u0e35\u0e48\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e27\u0e31\u0e2a\u0e14\u0e38",
+ "To manage multiple series please go to Setup > Manage Series": "\u0e43\u0e19\u0e01\u0e32\u0e23\u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e01\u0e31\u0e1a\u0e2b\u0e25\u0e32\u0e22\u0e0a\u0e38\u0e14\u0e42\u0e1b\u0e23\u0e14\u0e44\u0e1b\u0e17\u0e35\u0e48\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32> \u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e41\u0e1a\u0e1a",
+ "Total Tax": "\u0e20\u0e32\u0e29\u0e35\u0e23\u0e27\u0e21",
+ "Totals": "\u0e1c\u0e25\u0e23\u0e27\u0e21",
+ "Transporter Info": "\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e01\u0e32\u0e23\u0e02\u0e19\u0e22\u0e49\u0e32\u0e22",
+ "Transporter Name": "\u0e0a\u0e37\u0e48\u0e2d Transporter",
+ "Transporter lorry number": "\u0e08\u0e33\u0e19\u0e27\u0e19\u0e23\u0e16\u0e1a\u0e23\u0e23\u0e17\u0e38\u0e01\u0e02\u0e19\u0e22\u0e49\u0e32\u0e22",
+ "Warehouse where you are maintaining stock of rejected items": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e17\u0e35\u0e48\u0e04\u0e38\u0e13\u0e08\u0e30\u0e23\u0e31\u0e01\u0e29\u0e32\u0e2a\u0e15\u0e47\u0e2d\u0e01\u0e02\u0e2d\u0e07\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e1b\u0e0f\u0e34\u0e40\u0e2a\u0e18",
+ "Yes": "\u0e43\u0e0a\u0e48",
+ "You can make a purchase receipt from multiple purchase orders. Select purchase orders one by one and click on the button below.": "\u0e04\u0e38\u0e13\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e17\u0e33\u0e43\u0e2b\u0e49\u0e01\u0e32\u0e23\u0e23\u0e31\u0e1a\u0e0b\u0e37\u0e49\u0e2d\u0e08\u0e32\u0e01\u0e04\u0e33\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e2b\u0e25\u0e32\u0e22 \u0e40\u0e25\u0e37\u0e2d\u0e01\u0e04\u0e33\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e2b\u0e19\u0e36\u0e48\u0e07\u0e42\u0e14\u0e22\u0e2b\u0e19\u0e36\u0e48\u0e07\u0e41\u0e25\u0e30\u0e04\u0e25\u0e34\u0e01\u0e1b\u0e38\u0e48\u0e21\u0e14\u0e49\u0e32\u0e19\u0e25\u0e48\u0e32\u0e07"
+}
\ No newline at end of file
diff --git a/stock/doctype/purchase_receipt/purchase_receipt.js b/stock/doctype/purchase_receipt/purchase_receipt.js
index df2825b65b8..82e494cfb75 100644
--- a/stock/doctype/purchase_receipt/purchase_receipt.js
+++ b/stock/doctype/purchase_receipt/purchase_receipt.js
@@ -37,6 +37,20 @@ erpnext.buying.PurchaseReceiptController = erpnext.buying.BuyingController.exten
if(wn.boot.control_panel.country == 'India') {
unhide_field(['challan_no', 'challan_date']);
}
+ },
+ onload_post_render: function(doc, dt, dn) {
+ var me = this;
+ var callback = function(doc, dt, dn) {
+ me.update_item_details(doc, dt, dn, function(r,rt) { });
+ }
+
+ // TODO: improve this
+ if(this.frm.doc.__islocal) {
+ if (this.frm.fields_dict.price_list_name && this.frm.doc.price_list_name)
+ this.price_list_name(callback);
+ else
+ callback(doc, dt, dn);
+ }
}
});
@@ -45,7 +59,6 @@ var new_cscript = new erpnext.buying.PurchaseReceiptController({frm: cur_frm});
// for backward compatibility: combine new and previous states
$.extend(cur_frm.cscript, new_cscript);
-//========================== On Load ================================================================
cur_frm.cscript.onload = function(doc, cdt, cdn) {
if(!doc.fiscal_year && doc.__islocal){ wn.model.set_default_values(doc);}
if (!doc.posting_date) doc.posting_date = dateutil.obj_to_str(new Date());
@@ -53,15 +66,6 @@ cur_frm.cscript.onload = function(doc, cdt, cdn) {
if (!doc.status) doc.status = 'Draft';
}
-cur_frm.cscript.onload_post_render = function(doc, dt, dn) {
- var callback = function(doc, dt, dn) {
- // defined in purchase_common.js
- cur_frm.cscript.update_item_details(doc, dt, dn, function(r,rt) { });
- }
- cur_frm.cscript.dynamic_label(doc, dt, dn, callback);
-}
-
-//Supplier
cur_frm.cscript.supplier = function(doc,dt,dn) {
if (doc.supplier) {
get_server_fields('get_default_supplier_address',
diff --git a/stock/doctype/purchase_receipt/purchase_receipt.py b/stock/doctype/purchase_receipt/purchase_receipt.py
index 8858fd52e1d..12da0a6ee87 100644
--- a/stock/doctype/purchase_receipt/purchase_receipt.py
+++ b/stock/doctype/purchase_receipt/purchase_receipt.py
@@ -17,11 +17,11 @@
from __future__ import unicode_literals
import webnotes
-from webnotes.utils import cstr, flt
-from webnotes.model.doc import addchild
+from webnotes.utils import cstr, flt, cint
from webnotes.model.bean import getlist
from webnotes.model.code import get_obj
-from webnotes import msgprint
+from webnotes.model.doc import Document
+from webnotes import msgprint, _
sql = webnotes.conn.sql
@@ -89,17 +89,6 @@ class DocType(BuyingController):
webnotes.msgprint("Another Purchase Receipt using the same Challan No. already exists.\
Please enter a valid Challan No.", raise_exception=1)
-
- # update valuation rate
- def update_valuation_rate(self):
- total_b_cost = flt(self.doc.buying_cost_transport) + flt(self.doc.buying_cost_taxes) + flt(self.doc.buying_cost_other)
- for d in getlist(self.doclist, 'purchase_receipt_details'):
- if flt(self.doc.net_total) and flt(d.qty):
- #d.valuation_rate = (flt(d.purchase_rate) + ((flt(d.amount) * (total_b_cost)) / (self.doc.net_total * flt(d.qty))) + (flt(d.rm_supp_cost) / flt(d.qty))) / flt(d.conversion_factor)
- d.valuation_rate = (flt(d.purchase_rate) + ((flt(d.amount) * (total_b_cost)) / (self.doc.net_total * flt(d.qty))) + (flt(d.rm_supp_cost) / flt(d.qty)) + (flt(d.item_tax_amount)/flt(d.qty))) / flt(d.conversion_factor)
-
- #check in manage account if purchase order required or not.
- # ====================================================================================
def po_required(self):
res = sql("select value from `tabSingles` where doctype = 'Global Defaults' and field = 'po_required'")
if res and res[0][0]== 'Yes':
@@ -108,8 +97,6 @@ class DocType(BuyingController):
msgprint("Purchse Order No. required against item %s"%d.item_code)
raise Exception
-
- # validate
def validate(self):
super(DocType, self).validate()
@@ -133,18 +120,17 @@ class DocType(BuyingController):
pc_obj.validate_reference_value(self)
self.check_for_stopped_status(pc_obj)
- # update valuation rate
- self.update_valuation_rate()
+ # sub-contracting
+ self.validate_for_subcontracting()
+ self.update_raw_materials_supplied("pr_raw_material_details")
+
+ self.update_valuation_rate("purchase_receipt_details")
-
- # On Update
- # ----------------------------------------------------------------------------------------------------
def on_update(self):
if self.doc.rejected_warehouse:
for d in getlist(self.doclist,'purchase_receipt_details'):
d.rejected_warehouse = self.doc.rejected_warehouse
- self.update_rw_material_detail()
get_obj('Stock Ledger').scrub_serial_nos(self)
self.scrub_rejected_serial_nos()
@@ -228,7 +214,8 @@ class DocType(BuyingController):
def validate_inspection(self):
for d in getlist(self.doclist, 'purchase_receipt_details'): #Enter inspection date for all items that require inspection
- ins_reqd = sql("select inspection_required from `tabItem` where name = %s", (d.item_code), as_dict = 1)
+ ins_reqd = sql("select inspection_required from `tabItem` where name = %s",
+ (d.item_code,), as_dict = 1)
ins_reqd = ins_reqd and ins_reqd[0]['inspection_required'] or 'No'
if ins_reqd == 'Yes' and not d.qa_no:
msgprint("Item: " + d.item_code + " requires QA Inspection. Please enter QA No or report to authorized person to create Quality Inspection")
@@ -263,11 +250,9 @@ class DocType(BuyingController):
# Update last purchase rate
purchase_controller.update_last_purchase_rate(self, 1)
+
+ self.make_gl_entries()
-
-
- #On Cancel
- #----------------------------------------------------------------------------------------------------
def check_next_docstatus(self):
submit_rv = sql("select t1.name from `tabPurchase Invoice` t1,`tabPurchase Invoice Item` t2 where t1.name = t2.parent and t2.purchase_receipt = '%s' and t1.docstatus = 1" % (self.doc.name))
if submit_rv:
@@ -301,121 +286,16 @@ class DocType(BuyingController):
# 6. Update last purchase rate
pc_obj.update_last_purchase_rate(self, 0)
+
+ self.make_gl_entries()
-
-#----------- code for Sub-contracted Items -------------------
- #--------check for sub-contracted items and accordingly update PR raw material detail table--------
- def update_rw_material_detail(self):
-
- for d in getlist(self.doclist,'purchase_receipt_details'):
- item_det = sql("select is_sub_contracted_item, is_purchase_item from `tabItem` where name = '%s'"%(d.item_code))
-
- if item_det[0][0] == 'Yes':
- if item_det[0][1] == 'Yes':
- if not self.doc.is_subcontracted:
- msgprint("Please enter whether purchase receipt to be made for subcontracting or for purchase in 'Is Subcontracted' field .")
- raise Exception
- if self.doc.is_subcontracted == 'Yes':
- if not self.doc.supplier_warehouse:
- msgprint("Please Enter Supplier Warehouse for subcontracted Items")
- raise Exception
- self.add_bom(d)
- else:
- self.doclist = self.doc.clear_table(self.doclist,'pr_raw_material_details',1)
- self.doc.save()
- elif item_det[0][1] == 'No':
- if not self.doc.supplier_warehouse:
- msgprint("Please Enter Supplier Warehouse for subcontracted Items")
- raise Exception
- self.add_bom(d)
-
- self.delete_irrelevant_raw_material()
- #---------------calculate amt in Purchase Receipt Item Supplied-------------
- self.calculate_amount(d)
-
-
- def add_bom(self, d):
- #----- fetching default bom from Bill of Materials instead of Item Master --
- bom_det = sql("""select t1.item, t2.item_code, t2.qty_consumed_per_unit,
- t2.moving_avg_rate, t2.value_as_per_mar, t2.stock_uom, t2.name, t2.description
- from `tabBOM` t1, `tabBOM Item` t2
- where t2.parent = t1.name and t1.item = %s and t1.is_default = 1
- and t1.docstatus = 1 and t2.docstatus =1 and t1.is_active = 1""", d.item_code)
- if not bom_det:
- msgprint("No default BOM exists for item: %s" % d.item_code)
- raise Exception
- else:
- #-------------- add child function--------------------
- chgd_rqd_qty = []
- for i in bom_det:
-
- if i and not sql("select name from `tabPurchase Receipt Item Supplied` where reference_name = '%s' and bom_detail_no = '%s' and parent = '%s' " %(d.name, i[6], self.doc.name)):
-
- rm_child = addchild(self.doc, 'pr_raw_material_details', 'Purchase Receipt Item Supplied', self.doclist)
-
- rm_child.reference_name = d.name
- rm_child.bom_detail_no = i and i[6] or ''
- rm_child.main_item_code = i and i[0] or ''
- rm_child.rm_item_code = i and i[1] or ''
- rm_child.description = i and i[7] or ''
- rm_child.stock_uom = i and i[5] or ''
- rm_child.rate = i and flt(i[3]) or flt(i[4])
- rm_child.conversion_factor = d.conversion_factor
- rm_child.required_qty = flt(i and flt(i[2]) or 0) * flt(d.qty) * flt(d.conversion_factor)
- rm_child.consumed_qty = flt(i and flt(i[2]) or 0) * flt(d.qty) * flt(d.conversion_factor)
- rm_child.amount = flt(flt(rm_child.consumed_qty)*flt(rm_child.rate))
- rm_child.save()
- chgd_rqd_qty.append(cstr(i[1]))
- else:
- act_qty = flt(i and flt(i[2]) or 0) * flt(d.qty) * flt(d.conversion_factor)
- for pr_rmd in getlist(self.doclist, 'pr_raw_material_details'):
- if i and i[6] == pr_rmd.bom_detail_no and (flt(act_qty) != flt(pr_rmd.required_qty) or i[1] != pr_rmd.rm_item_code or i[7] != pr_rmd.description):
- chgd_rqd_qty.append(cstr(i[1]))
- pr_rmd.main_item_code = i[0]
- pr_rmd.rm_item_code = i[1]
- pr_rmd.description = i[7]
- pr_rmd.stock_uom = i[5]
- pr_rmd.required_qty = flt(act_qty)
- pr_rmd.consumed_qty = flt(act_qty)
- pr_rmd.rate = i and flt(i[3]) or flt(i[4])
- pr_rmd.amount = flt(flt(pr_rmd.consumed_qty)*flt(pr_rmd.rate))
- pr_rmd.save()
- if chgd_rqd_qty:
- msgprint("Please check consumed quantity for Raw Material Item Code: '%s'in Raw materials Detail Table" % ((len(chgd_rqd_qty) > 1 and ','.join(chgd_rqd_qty[:-1]) +' and ' + cstr(chgd_rqd_qty[-1:][0]) ) or cstr(chgd_rqd_qty[0])))
-
-
- # Delete irrelevant raw material from PR Raw material details
- #--------------------------------------------------------------
- def delete_irrelevant_raw_material(self):
- for d in getlist(self.doclist,'pr_raw_material_details'):
- if not sql("select name from `tabPurchase Receipt Item` where name = '%s' and parent = '%s' and item_code = '%s'" % (d.reference_name, self.doc.name, d.main_item_code)):
- d.parent = 'old_par:'+self.doc.name
- d.save()
-
- def calculate_amount(self, d):
- amt = 0
- for i in getlist(self.doclist,'pr_raw_material_details'):
-
- if(i.reference_name == d.name):
- #if i.consumed_qty == 0:
- # msgprint("consumed qty cannot be 0. Please Enter consumed qty ")
- #raise Exception
- i.amount = flt(i.consumed_qty)* flt(i.rate)
- amt += i.amount
- d.rm_supp_cost = amt
- d.save()
-
-
- # --------------- Back Flush function called on submit and on cancel from update stock
def bk_flush_supp_wh(self, is_submit):
for d in getlist(self.doclist, 'pr_raw_material_details'):
- #--------- -ve quantity is passed as raw material qty has to be decreased when PR is submitted and it has to be increased when PR is cancelled
+ # negative quantity is passed as raw material qty has to be decreased
+ # when PR is submitted and it has to be increased when PR is cancelled
consumed_qty = - flt(d.consumed_qty)
self.make_sl_entry(d, self.doc.supplier_warehouse, flt(consumed_qty), 0, is_submit)
-
- # get current_stock
- # ----------------
def get_current_stock(self):
for d in getlist(self.doclist, 'pr_raw_material_details'):
if self.doc.supplier_warehouse:
@@ -431,3 +311,44 @@ class DocType(BuyingController):
def get_purchase_tax_details(self):
self.doclist = get_obj('Purchase Common').get_purchase_tax_details(self)
+
+ def make_gl_entries(self):
+ if not cint(webnotes.defaults.get_global_default("auto_inventory_accounting")):
+ return
+
+ abbr = webnotes.conn.get_value("Company", self.doc.company, "abbr")
+ stock_received_account = "Stock Received But Not Billed - %s" % (abbr,)
+ stock_in_hand_account = self.get_stock_in_hand_account()
+
+ total_valuation_amount = self.get_total_valuation_amount()
+
+ if total_valuation_amount:
+ gl_entries = [
+ # debit stock in hand account
+ self.get_gl_dict({
+ "account": stock_in_hand_account,
+ "against": stock_received_account,
+ "debit": total_valuation_amount,
+ "remarks": self.doc.remarks or "Accounting Entry for Stock",
+ }, self.doc.docstatus == 2),
+
+ # credit stock received but not billed account
+ self.get_gl_dict({
+ "account": stock_received_account,
+ "against": stock_in_hand_account,
+ "credit": total_valuation_amount,
+ "remarks": self.doc.remarks or "Accounting Entry for Stock",
+ }, self.doc.docstatus == 2),
+ ]
+ from accounts.general_ledger import make_gl_entries
+ make_gl_entries(gl_entries, cancel=self.doc.docstatus == 2)
+
+ def get_total_valuation_amount(self):
+ total_valuation_amount = 0.0
+
+ for item in self.doclist.get({"parentfield": "purchase_receipt_details"}):
+ if item.item_code in self.stock_items:
+ total_valuation_amount += flt(item.valuation_rate) * \
+ flt(item.qty) * flt(item.conversion_factor)
+
+ return total_valuation_amount
\ No newline at end of file
diff --git a/stock/doctype/purchase_receipt/test_purchase_receipt.py b/stock/doctype/purchase_receipt/test_purchase_receipt.py
index f91455f4d36..f3f6da8dd0d 100644
--- a/stock/doctype/purchase_receipt/test_purchase_receipt.py
+++ b/stock/doctype/purchase_receipt/test_purchase_receipt.py
@@ -18,178 +18,156 @@
from __future__ import unicode_literals
import unittest
import webnotes
-import webnotes.model
-from webnotes.model.doclist import DocList
-from webnotes.utils import nowdate
-
-company = webnotes.conn.get_default("company")
-abbr = webnotes.conn.get_value("Company", company, "abbr")
-
-def load_data():
- insert_accounts()
-
- # create default warehouse
- if not webnotes.conn.exists("Warehouse", "Default Warehouse"):
- webnotes.insert({"doctype": "Warehouse",
- "warehouse_name": "Default Warehouse",
- "warehouse_type": "Stores"})
-
- # create UOM: Nos.
- if not webnotes.conn.exists("UOM", "Nos"):
- webnotes.insert({"doctype": "UOM", "uom_name": "Nos"})
-
- from webnotes.tests import insert_test_data
- # create item groups and items
- insert_test_data("Item Group",
- sort_fn=lambda ig: (ig[0].get('parent_item_group'), ig[0].get('name')))
- insert_test_data("Item")
-
- # create supplier type
- webnotes.insert({"doctype": "Supplier Type", "supplier_type": "Manufacturing"})
-
- # create supplier
- webnotes.insert({"doctype": "Supplier", "supplier_name": "East Wind Inc.",
- "supplier_type": "Manufacturing", "company": company})
-
- # create default cost center if not exists
- if not webnotes.conn.exists("Cost Center", "Default Cost Center - %s" % abbr):
- webnotes.insert({"doctype": "Cost Center", "group_or_ledger": "Ledger",
- "cost_center_name": "Default Cost Center",
- "parent_cost_center": "Root - %s" % abbr,
- "company_name": company})
-
- # create account heads for taxes
-
- webnotes.insert({"doctype": "Account", "account_name": "Shipping Charges",
- "parent_account": "Stock Expenses - %s" % abbr, "company": company,
- "group_or_ledger": "Ledger"})
-
- webnotes.insert({"doctype": "Account", "account_name": "Customs Duty",
- "parent_account": "Stock Expenses - %s" % abbr, "company": company,
- "group_or_ledger": "Ledger"})
- webnotes.insert({"doctype": "Account", "account_name": "_Test Tax Assets",
- "parent_account": "Current Assets - %s" % abbr, "company": company,
- "group_or_ledger": "Group"})
- webnotes.insert({"doctype": "Account", "account_name": "VAT - Test",
- "parent_account": "_Test Tax Assets - %s" % abbr, "company": company,
- "group_or_ledger": "Ledger"})
-
- # create BOM
- # webnotes.insert(DocList([
- # {"doctype": "BOM", "item": "Nebula 7", "quantity": 1,
- # "is_active": "Yes", "is_default": 1, "uom": "Nos"},
- # {"doctype": "BOM Operation", "operation_no": 1, "parentfield": "bom_operations",
- # "opn_description": "Development"},
- # {"doctype": "BOM Item", "item_code": "Android Jack D", "operation_no": 1, "qty": 5,
- # "rate": 20, "amount": 100, "stock_uom": "Nos", "parentfield": "bom_materials"}
- # ]))
-
-
-base_purchase_receipt = [
- {
- "doctype": "Purchase Receipt", "supplier": "East Wind Inc.",
- "naming_series": "PR", "posting_date": nowdate(), "posting_time": "12:05",
- "company": company, "fiscal_year": webnotes.conn.get_default("fiscal_year"),
- "currency": webnotes.conn.get_default("currency"), "conversion_rate": 1
- },
- {
- "doctype": "Purchase Receipt Item",
- "item_code": "Home Desktop 100",
- "qty": 10, "received_qty": 10, "rejected_qty": 0, "purchase_rate": 50,
- "amount": 500, "warehouse": "Default Warehouse",
- "parentfield": "purchase_receipt_details",
- "conversion_factor": 1, "uom": "Nos", "stock_uom": "Nos"
- },
- {
- "doctype": "Purchase Taxes and Charges", "charge_type": "Actual",
- "account_head": "Shipping Charges - %s" % abbr, "rate": 100, "tax_amount": 100,
- "category": "Valuation and Total", "parentfield": "purchase_tax_details",
- "cost_center": "Default Cost Center - %s" % abbr
- },
- {
- "doctype": "Purchase Taxes and Charges", "charge_type": "Actual",
- "account_head": "VAT - Test - %s" % abbr, "rate": 120, "tax_amount": 120,
- "category": "Total", "parentfield": "purchase_tax_details"
- },
- {
- "doctype": "Purchase Taxes and Charges", "charge_type": "Actual",
- "account_head": "Customs Duty - %s" % abbr, "rate": 150, "tax_amount": 150,
- "category": "Valuation", "parentfield": "purchase_tax_details",
- "cost_center": "Default Cost Center - %s" % abbr
- }
-]
-
-def insert_accounts():
- for d in webnotes.conn.sql("""select name, abbr from tabCompany""", as_dict=1):
- acc_list = [
- make_account_dict('Stock Assets', 'Current Assets', d, 'Group'),
- make_account_dict('Stock In Hand', 'Stock Assets', d, 'Ledger'),
- make_account_dict('Stock Delivered But Not Billed', 'Stock Assets',
- d, 'Ledger'),
- make_account_dict('Stock Liabilities', 'Current Liabilities', d, 'Group'),
- make_account_dict('Stock Received But Not Billed', 'Stock Liabilities',
- d, 'Ledger'),
- make_account_dict('Stock Expenses', 'Direct Expenses', d, 'Group'),
- make_account_dict('Stock Variance', 'Stock Expenses', d, 'Ledger'),
- make_account_dict('Expenses Included In Valuation', 'Stock Expenses',
- d, 'Ledger'),
- ]
- for acc in acc_list:
- acc_name = "%s - %s" % (acc['account_name'], d['abbr'])
- if not webnotes.conn.exists('Account', acc_name):
- webnotes.insert(acc)
-
-def make_account_dict(account, parent, company_detail, group_or_ledger):
- return {
- "doctype": "Account",
- "account_name": account,
- "parent_account": "%s - %s" % (parent, company_detail['abbr']),
- "company": company_detail['name'],
- "group_or_ledger": group_or_ledger
- }
-
+import webnotes.defaults
+from webnotes.utils import cint
class TestPurchaseReceipt(unittest.TestCase):
- def setUp(self):
- webnotes.conn.begin()
- load_data()
- webnotes.conn.set_value("Global Defaults", None, "automatic_inventory_accounting", 1)
+ def test_purchase_receipt_no_gl_entry(self):
+ pr = webnotes.bean(copy=test_records[0])
+ pr.run_method("calculate_taxes_and_totals")
+ pr.insert()
+ pr.submit()
- def test_purchase_receipt(self):
- # warehouse does not have stock in hand specified
- self.run_purchase_receipt_test(base_purchase_receipt,
- "Stock In Hand - %s" % (abbr,),
- "Stock Received But Not Billed - %s" % (abbr,), 750.0)
-
- def run_purchase_receipt_test(self, purchase_receipt, debit_account,
- credit_account, stock_value):
- dl = webnotes.insert(DocList(purchase_receipt))
+ gl_entries = webnotes.conn.sql("""select account, debit, credit
+ from `tabGL Entry` where voucher_type='Purchase Receipt' and voucher_no=%s
+ order by account desc""", pr.doc.name, as_dict=1)
+
+ self.assertTrue(not gl_entries)
- from controllers.tax_controller import TaxController
- tax_controller = TaxController(dl.doc, dl.doclist)
- tax_controller.item_table_field = "purchase_receipt_details"
- tax_controller.calculate_taxes_and_totals()
- dl.doc = tax_controller.doc
- dl.doclist = tax_controller.doclist
+ def test_purchase_receipt_gl_entry(self):
+ webnotes.defaults.set_global_default("auto_inventory_accounting", 1)
+ self.assertEqual(cint(webnotes.defaults.get_global_default("auto_inventory_accounting")), 1)
- dl.submit()
- dl.load_from_db()
+ pr = webnotes.bean(copy=test_records[0])
+ pr.run_method("calculate_taxes_and_totals")
+ pr.insert()
+ pr.submit()
- gle = webnotes.conn.sql("""select account, ifnull(debit, 0), ifnull(credit, 0)
- from `tabGL Entry` where voucher_no = %s""", dl.doclist[0].name)
+ gl_entries = webnotes.conn.sql("""select account, debit, credit
+ from `tabGL Entry` where voucher_type='Purchase Receipt' and voucher_no=%s
+ order by account desc""", pr.doc.name, as_dict=1)
+ self.assertTrue(gl_entries)
- gle_map = dict(((entry[0], entry) for entry in gle))
+ stock_in_hand_account = webnotes.conn.get_value("Company", pr.doc.company,
+ "stock_in_hand_account")
- self.assertEquals(gle_map[debit_account], (debit_account, stock_value, 0.0))
- self.assertEquals(gle_map[credit_account], (credit_account, 0.0, stock_value))
+ expected_values = [
+ [stock_in_hand_account, 750.0, 0.0],
+ ["Stock Received But Not Billed - _TC", 0.0, 750.0]
+ ]
- def atest_subcontracting(self):
- pr = base_purchase_receipt.copy()
- pr[1].update({"item_code": "Nebula 7"})
+ for i, gle in enumerate(gl_entries):
+ self.assertEquals(expected_values[i][0], gle.account)
+ self.assertEquals(expected_values[i][1], gle.debit)
+ self.assertEquals(expected_values[i][2], gle.credit)
+
+ webnotes.defaults.set_global_default("auto_inventory_accounting", 0)
- self.run_purchase_receipt_test(pr,
- "Stock In Hand - %s" % (abbr,),
- "Stock Received But Not Billed - %s" % (abbr,), 1750.0)
+ def test_subcontracting(self):
+ pr = webnotes.bean(copy=test_records[1])
+ pr.run_method("calculate_taxes_and_totals")
+ pr.insert()
- def tearDown(self):
- webnotes.conn.rollback()
\ No newline at end of file
+ self.assertEquals(pr.doclist[1].rm_supp_cost, 70000.0)
+ self.assertEquals(len(pr.doclist.get({"parentfield": "pr_raw_material_details"})), 2)
+
+
+test_dependencies = ["BOM"]
+
+test_records = [
+ [
+ {
+ "company": "_Test Company",
+ "conversion_rate": 1.0,
+ "currency": "INR",
+ "doctype": "Purchase Receipt",
+ "fiscal_year": "_Test Fiscal Year 2013",
+ "posting_date": "2013-02-12",
+ "posting_time": "15:33:30",
+ "supplier": "_Test Supplier",
+ "net_total": 500.0,
+ "grand_total": 720.0,
+ },
+ {
+ "conversion_factor": 1.0,
+ "description": "_Test Item",
+ "doctype": "Purchase Receipt Item",
+ "item_code": "_Test Item",
+ "item_name": "_Test Item",
+ "parentfield": "purchase_receipt_details",
+ "received_qty": 10.0,
+ "qty": 10.0,
+ "rejected_qty": 0.0,
+ "import_rate": 50.0,
+ "amount": 500.0,
+ "warehouse": "_Test Warehouse",
+ "stock_uom": "Nos",
+ "uom": "_Test UOM",
+ },
+ {
+ "account_head": "_Test Account Shipping Charges - _TC",
+ "add_deduct_tax": "Add",
+ "category": "Valuation and Total",
+ "charge_type": "Actual",
+ "description": "Shipping Charges",
+ "doctype": "Purchase Taxes and Charges",
+ "parentfield": "purchase_tax_details",
+ "rate": 100.0,
+ "tax_amount": 100.0,
+ },
+ {
+ "account_head": "_Test Account VAT - _TC",
+ "add_deduct_tax": "Add",
+ "category": "Total",
+ "charge_type": "Actual",
+ "description": "VAT",
+ "doctype": "Purchase Taxes and Charges",
+ "parentfield": "purchase_tax_details",
+ "rate": 120.0,
+ "tax_amount": 120.0,
+ },
+ {
+ "account_head": "_Test Account Customs Duty - _TC",
+ "add_deduct_tax": "Add",
+ "category": "Valuation",
+ "charge_type": "Actual",
+ "description": "Customs Duty",
+ "doctype": "Purchase Taxes and Charges",
+ "parentfield": "purchase_tax_details",
+ "rate": 150.0,
+ "tax_amount": 150.0,
+ },
+ ],
+ [
+ {
+ "company": "_Test Company",
+ "conversion_rate": 1.0,
+ "currency": "INR",
+ "doctype": "Purchase Receipt",
+ "fiscal_year": "_Test Fiscal Year 2013",
+ "posting_date": "2013-02-12",
+ "posting_time": "15:33:30",
+ "is_subcontracted": "Yes",
+ "supplier_warehouse": "_Test Warehouse",
+ "supplier": "_Test Supplier",
+ "net_total": 5000.0,
+ "grand_total": 5000.0,
+ },
+ {
+ "conversion_factor": 1.0,
+ "description": "_Test FG Item",
+ "doctype": "Purchase Receipt Item",
+ "item_code": "_Test FG Item",
+ "item_name": "_Test FG Item",
+ "parentfield": "purchase_receipt_details",
+ "received_qty": 10.0,
+ "qty": 10.0,
+ "rejected_qty": 0.0,
+ "import_rate": 500.0,
+ "amount": 5000.0,
+ "warehouse": "_Test Warehouse",
+ "stock_uom": "Nos",
+ "uom": "_Test UOM",
+ }
+ ],
+]
\ No newline at end of file
diff --git a/stock/doctype/purchase_receipt_item/locale/_messages_doc.json b/stock/doctype/purchase_receipt_item/locale/_messages_doc.json
index de35b06f035..2986b6ddca6 100644
--- a/stock/doctype/purchase_receipt_item/locale/_messages_doc.json
+++ b/stock/doctype/purchase_receipt_item/locale/_messages_doc.json
@@ -30,7 +30,7 @@
"Ref Rate*",
"PO No",
"Rejected Quantity",
- "Tax detail table fetched from item master as a string and stored in this field.Used for Taxes and Charges",
+ "Tax detail table fetched from item master as a string and stored in this field.\nUsed for Taxes and Charges",
"Discount %",
"QA No",
"Serial No",
diff --git a/stock/doctype/purchase_receipt_item/locale/de-doc.json b/stock/doctype/purchase_receipt_item/locale/de-doc.json
new file mode 100644
index 00000000000..c21ec2cc7ba
--- /dev/null
+++ b/stock/doctype/purchase_receipt_item/locale/de-doc.json
@@ -0,0 +1,40 @@
+{
+ "Accepted Quantity": "Akzeptiert Menge",
+ "Accepted Warehouse": "Akzeptiert Warehouse",
+ "Amount": "Menge",
+ "Amount*": "Betrag *",
+ "Batch No": "Batch No",
+ "Billed Quantity": "Angek\u00fcndigt Menge",
+ "Brand": "Marke",
+ "Conversion Factor": "Umrechnungsfaktor",
+ "Description": "Beschreibung",
+ "Discount %": "Discount%",
+ "Item Code": "Item Code",
+ "Item Group": "Artikel-Gruppe",
+ "Item Name": "Item Name",
+ "Item Tax Amount": "Artikel Steuerbetrag",
+ "Item Tax Rate": "Artikel Tax Rate",
+ "PO Date": "PO Datum",
+ "PO No": "In PO",
+ "Page Break": "Seitenwechsel",
+ "Prevdoc Doctype": "Prevdoc Doctype",
+ "Project Name": "Project Name",
+ "Purchase Order Item No": "In der Bestellposition",
+ "Purchase Receipt Item": "Kaufbeleg Artikel",
+ "QA No": "In QA",
+ "Rate": "Rate",
+ "Rate*": "Rate *",
+ "Raw Materials Supplied Cost": "Kosteng\u00fcnstige Rohstoffe geliefert",
+ "Recd Quantity": "Menge RECD",
+ "Ref Rate*": "Ref Rate *",
+ "Rejected Quantity": "Abgelehnt Menge",
+ "Rejected Serial No": "Abgelehnt Serial In",
+ "Rejected Warehouse": "Abgelehnt Warehouse",
+ "Required By": "Erforderliche By",
+ "Serial No": "Serial In",
+ "Stock": "Lager",
+ "Stock Qty": "Lieferbar Menge",
+ "Stock UOM": "Lager UOM",
+ "UOM": "UOM",
+ "Valuation Rate": "Valuation bewerten"
+}
\ No newline at end of file
diff --git a/stock/doctype/purchase_receipt_item/locale/pt-BR-doc.json b/stock/doctype/purchase_receipt_item/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..427f7855d1c
--- /dev/null
+++ b/stock/doctype/purchase_receipt_item/locale/pt-BR-doc.json
@@ -0,0 +1,41 @@
+{
+ "Accepted Quantity": "Quantidade Aceita",
+ "Accepted Warehouse": "Almoxarifado Aceito",
+ "Amount": "Quantidade",
+ "Amount*": "Quantidade*",
+ "Batch No": "N\u00ba do Lote",
+ "Billed Quantity": "Quantidade Faturada",
+ "Brand": "Marca",
+ "Conversion Factor": "Fator de Convers\u00e3o",
+ "Description": "Descri\u00e7\u00e3o",
+ "Discount %": "% De desconto",
+ "Item Code": "C\u00f3digo do Item",
+ "Item Group": "Grupo de Itens",
+ "Item Name": "Nome do Item",
+ "Item Tax Amount": "Valor do Imposto do Item",
+ "Item Tax Rate": "Taxa de Imposto do Item",
+ "PO Date": "Data PO",
+ "PO No": "N\u00ba PO",
+ "Page Break": "Quebra de p\u00e1gina",
+ "Prevdoc Doctype": "Prevdoc Doctype",
+ "Project Name": "Nome do Projeto",
+ "Purchase Order Item No": "N\u00ba do Item da Ordem de Compra",
+ "Purchase Receipt Item": "Item do Recibo de Compra",
+ "QA No": "N\u00ba QA",
+ "Rate": "Taxa",
+ "Rate*": "Taxa*",
+ "Raw Materials Supplied Cost": "Custo de fornecimento de Mat\u00e9rias-Primas",
+ "Recd Quantity": "Quantidade Recebida",
+ "Ref Rate ": "Taxa de Ref.",
+ "Ref Rate*": "* Taxa de Ref.",
+ "Rejected Quantity": "Quantidade rejeitada",
+ "Rejected Serial No": "N\u00ba de S\u00e9rie Rejeitado",
+ "Rejected Warehouse": "Almoxarifado Rejeitado",
+ "Required By": "Exigido por",
+ "Serial No": "N\u00ba de S\u00e9rie",
+ "Stock": "Estoque",
+ "Stock Qty": "Qtde. em Estoque",
+ "Stock UOM": "UDM do Estoque",
+ "UOM": "UDM",
+ "Valuation Rate": "Taxa de Avalia\u00e7\u00e3o"
+}
\ No newline at end of file
diff --git a/stock/doctype/purchase_receipt_item/locale/th-doc.json b/stock/doctype/purchase_receipt_item/locale/th-doc.json
new file mode 100644
index 00000000000..372722c17e0
--- /dev/null
+++ b/stock/doctype/purchase_receipt_item/locale/th-doc.json
@@ -0,0 +1,42 @@
+{
+ "Accepted Quantity": "\u0e08\u0e33\u0e19\u0e27\u0e19\u0e17\u0e35\u0e48\u0e22\u0e2d\u0e21\u0e23\u0e31\u0e1a",
+ "Accepted Warehouse": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e22\u0e2d\u0e21\u0e23\u0e31\u0e1a",
+ "Amount": "\u0e08\u0e33\u0e19\u0e27\u0e19",
+ "Amount*": "* \u0e08\u0e33\u0e19\u0e27\u0e19\u0e40\u0e07\u0e34\u0e19",
+ "Batch No": "\u0e0a\u0e38\u0e14\u0e44\u0e21\u0e48\u0e21\u0e35",
+ "Billed Quantity": "\u0e08\u0e33\u0e19\u0e27\u0e19\u0e40\u0e07\u0e34\u0e19\u0e17\u0e35\u0e48\u0e40\u0e23\u0e35\u0e22\u0e01\u0e40\u0e01\u0e47\u0e1a",
+ "Brand": "\u0e22\u0e35\u0e48\u0e2b\u0e49\u0e2d",
+ "Conversion Factor": "\u0e1b\u0e31\u0e08\u0e08\u0e31\u0e22\u0e01\u0e32\u0e23\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e41\u0e1b\u0e25\u0e07",
+ "Description": "\u0e25\u0e31\u0e01\u0e29\u0e13\u0e30",
+ "Discount %": "\u0e2a\u0e48\u0e27\u0e19\u0e25\u0e14%",
+ "Item Code": "\u0e23\u0e2b\u0e31\u0e2a\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Item Group": "\u0e01\u0e25\u0e38\u0e48\u0e21\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Item Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23",
+ "Item Tax Amount": "\u0e08\u0e33\u0e19\u0e27\u0e19\u0e20\u0e32\u0e29\u0e35\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23",
+ "Item Tax Rate": "\u0e2d\u0e31\u0e15\u0e23\u0e32\u0e20\u0e32\u0e29\u0e35\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "PO Date": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48 PO",
+ "PO No": "\u0e44\u0e21\u0e48\u0e21\u0e35 PO",
+ "Page Break": "\u0e41\u0e1a\u0e48\u0e07\u0e2b\u0e19\u0e49\u0e32",
+ "Prevdoc Doctype": "Doctype Prevdoc",
+ "Project Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e42\u0e04\u0e23\u0e07\u0e01\u0e32\u0e23",
+ "Purchase Order Item No": "\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e44\u0e21\u0e48\u0e21\u0e35",
+ "Purchase Receipt Item": "\u0e0b\u0e37\u0e49\u0e2d\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e43\u0e1a\u0e40\u0e2a\u0e23\u0e47\u0e08\u0e23\u0e31\u0e1a\u0e40\u0e07\u0e34\u0e19",
+ "QA No": "QA \u0e44\u0e21\u0e48\u0e21\u0e35",
+ "Rate": "\u0e2d\u0e31\u0e15\u0e23\u0e32",
+ "Rate*": "* \u0e2d\u0e31\u0e15\u0e23\u0e32",
+ "Raw Materials Supplied Cost": "\u0e27\u0e31\u0e15\u0e16\u0e38\u0e14\u0e34\u0e1a\u0e17\u0e35\u0e48\u0e08\u0e33\u0e2b\u0e19\u0e48\u0e32\u0e22\u0e04\u0e48\u0e32\u0e43\u0e0a\u0e49\u0e08\u0e48\u0e32\u0e22",
+ "Recd Quantity": "\u0e08\u0e33\u0e19\u0e27\u0e19 Recd",
+ "Ref Rate ": "\u0e2d\u0e31\u0e15\u0e23\u0e32 Ref",
+ "Ref Rate*": "* \u0e2d\u0e31\u0e15\u0e23\u0e32 Ref",
+ "Rejected Quantity": "\u0e08\u0e33\u0e19\u0e27\u0e19\u0e1b\u0e0f\u0e34\u0e40\u0e2a\u0e18",
+ "Rejected Serial No": "\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e25\u0e02\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e1b\u0e0f\u0e34\u0e40\u0e2a\u0e18",
+ "Rejected Warehouse": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e1b\u0e0f\u0e34\u0e40\u0e2a\u0e18",
+ "Required By": "\u0e17\u0e35\u0e48\u0e08\u0e33\u0e40\u0e1b\u0e47\u0e19\u0e42\u0e14\u0e22",
+ "Serial No": "\u0e2d\u0e19\u0e38\u0e01\u0e23\u0e21\u0e44\u0e21\u0e48\u0e21\u0e35",
+ "Stock": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Stock Qty": "\u0e08\u0e33\u0e19\u0e27\u0e19\u0e2b\u0e38\u0e49\u0e19",
+ "Stock UOM": "UOM \u0e2a\u0e15\u0e47\u0e2d\u0e01",
+ "Tax detail table fetched from item master as a string and stored in this field.Used for Taxes and Charges": "\u0e15\u0e32\u0e23\u0e32\u0e07\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e20\u0e32\u0e29\u0e35\u0e17\u0e35\u0e48\u0e40\u0e23\u0e35\u0e22\u0e01\u0e08\u0e32\u0e01\u0e15\u0e49\u0e19\u0e41\u0e1a\u0e1a\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e40\u0e1b\u0e47\u0e19\u0e2a\u0e15\u0e23\u0e34\u0e07\u0e41\u0e25\u0e30\u0e40\u0e01\u0e47\u0e1a\u0e44\u0e27\u0e49\u0e43\u0e19 field.Used \u0e19\u0e35\u0e49\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e20\u0e32\u0e29\u0e35\u0e41\u0e25\u0e30\u0e04\u0e48\u0e32\u0e18\u0e23\u0e23\u0e21\u0e40\u0e19\u0e35\u0e22\u0e21",
+ "UOM": "UOM",
+ "Valuation Rate": "\u0e2d\u0e31\u0e15\u0e23\u0e32\u0e01\u0e32\u0e23\u0e1b\u0e23\u0e30\u0e40\u0e21\u0e34\u0e19"
+}
\ No newline at end of file
diff --git a/stock/doctype/sales_and_purchase_return_tool/locale/de-doc.json b/stock/doctype/sales_and_purchase_return_tool/locale/de-doc.json
new file mode 100644
index 00000000000..9bd8c9af407
--- /dev/null
+++ b/stock/doctype/sales_and_purchase_return_tool/locale/de-doc.json
@@ -0,0 +1,21 @@
+{
+ "Company": "Firma",
+ "Cust/Supp Address": "Cust / Supp Adresse",
+ "Cust/Supp Name": "Cust / Supp Namen",
+ "Customer/Supplier": "Kunde / Lieferant",
+ "Delivery Note No": "Lieferschein Nein",
+ "Get Items": "Holen Artikel",
+ "Make Credit Note": "Machen Gutschrift",
+ "Make Debit Note": "Machen Lastschrift",
+ "Make Excise Invoice": "Machen Excise Rechnung",
+ "Make Stock Entry": "Machen Eintrag Stock",
+ "Purchase Receipt No": "Kaufbeleg",
+ "Purchase Return": "Kauf zur\u00fcckgeben",
+ "Return Date": "Zur\u00fcck Datum",
+ "Return Type": "R\u00fcckgabetyp",
+ "Sales Invoice No": "Sales Invoice In",
+ "Sales Return": "Umsatzrendite",
+ "Sales and Purchase Return Items": "Verkauf und Kauf zur\u00fccksenden Artikel",
+ "Sales and Purchase Return Tool": "Sales and Purchase Return-Tool",
+ "Stock": "Lager"
+}
\ No newline at end of file
diff --git a/stock/doctype/sales_and_purchase_return_tool/locale/pt-BR-doc.json b/stock/doctype/sales_and_purchase_return_tool/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..f218bfa7c8d
--- /dev/null
+++ b/stock/doctype/sales_and_purchase_return_tool/locale/pt-BR-doc.json
@@ -0,0 +1,21 @@
+{
+ "Company": "Empresa",
+ "Cust/Supp Address": "Endere\u00e7o do Cliente/Fornecedor",
+ "Cust/Supp Name": "Nome do Cliente/Fornecedor",
+ "Customer/Supplier": "Cliente / Fornecedor",
+ "Delivery Note No": "N\u00ba da Guia de Remessa",
+ "Get Items": "Obter itens",
+ "Make Credit Note": "Fazer Nota de Cr\u00e9dito",
+ "Make Debit Note": "Fazer Nota de D\u00e9bito",
+ "Make Excise Invoice": "Fazer fatura de imposto",
+ "Make Stock Entry": "Fazer lan\u00e7amento de estoque",
+ "Purchase Receipt No": "N\u00ba do Recibo de Compra",
+ "Purchase Return": "Devolu\u00e7\u00e3o de Compra",
+ "Return Date": "Data de retorno",
+ "Return Type": "Tipo de retorno",
+ "Sales Invoice No": "N\u00ba da Nota Fiscal de Venda",
+ "Sales Return": "Retorno de Vendas",
+ "Sales and Purchase Return Items": "Itens de retorno de compra e venda",
+ "Sales and Purchase Return Tool": "Ferramenta de retorno de compra e venda",
+ "Stock": "Estoque"
+}
\ No newline at end of file
diff --git a/stock/doctype/sales_and_purchase_return_tool/locale/th-doc.json b/stock/doctype/sales_and_purchase_return_tool/locale/th-doc.json
new file mode 100644
index 00000000000..732dfd75ca8
--- /dev/null
+++ b/stock/doctype/sales_and_purchase_return_tool/locale/th-doc.json
@@ -0,0 +1,21 @@
+{
+ "Company": "\u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17",
+ "Cust/Supp Address": "\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48 cust / Supp",
+ "Cust/Supp Name": "\u0e0a\u0e37\u0e48\u0e2d cust / Supp",
+ "Customer/Supplier": "\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32 / \u0e1c\u0e39\u0e49\u0e1c\u0e25\u0e34\u0e15",
+ "Delivery Note No": "\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e2b\u0e15\u0e38\u0e08\u0e31\u0e14\u0e2a\u0e48\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e44\u0e21\u0e48\u0e21\u0e35",
+ "Get Items": "\u0e23\u0e31\u0e1a\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Make Credit Note": "\u0e43\u0e2b\u0e49\u0e08\u0e14\u0e1a\u0e31\u0e19\u0e17\u0e36\u0e01\u0e40\u0e04\u0e23\u0e14\u0e34\u0e15",
+ "Make Debit Note": "\u0e43\u0e2b\u0e49\u0e08\u0e14\u0e1a\u0e31\u0e19\u0e17\u0e36\u0e01\u0e40\u0e14\u0e1a\u0e34\u0e15",
+ "Make Excise Invoice": "\u0e17\u0e33\u0e43\u0e2b\u0e49\u0e43\u0e1a\u0e41\u0e08\u0e49\u0e07\u0e2b\u0e19\u0e35\u0e49\u0e2a\u0e23\u0e23\u0e1e\u0e2a\u0e32\u0e21\u0e34\u0e15",
+ "Make Stock Entry": "\u0e17\u0e33\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Purchase Receipt No": "\u0e43\u0e1a\u0e40\u0e2a\u0e23\u0e47\u0e08\u0e23\u0e31\u0e1a\u0e40\u0e07\u0e34\u0e19\u0e0b\u0e37\u0e49\u0e2d\u0e44\u0e21\u0e48\u0e21\u0e35",
+ "Purchase Return": "\u0e0b\u0e37\u0e49\u0e2d\u0e01\u0e25\u0e31\u0e1a",
+ "Return Date": "\u0e01\u0e25\u0e31\u0e1a\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48",
+ "Return Type": "\u0e01\u0e25\u0e31\u0e1a\u0e0a\u0e19\u0e34\u0e14",
+ "Sales Invoice No": "\u0e02\u0e32\u0e22\u0e43\u0e1a\u0e41\u0e08\u0e49\u0e07\u0e2b\u0e19\u0e35\u0e49\u0e44\u0e21\u0e48\u0e21\u0e35",
+ "Sales Return": "\u0e02\u0e32\u0e22\u0e01\u0e25\u0e31\u0e1a",
+ "Sales and Purchase Return Items": "\u0e01\u0e32\u0e23\u0e02\u0e32\u0e22\u0e41\u0e25\u0e30\u0e01\u0e32\u0e23\u0e0b\u0e37\u0e49\u0e2d\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e22\u0e49\u0e2d\u0e19\u0e01\u0e25\u0e31\u0e1a",
+ "Sales and Purchase Return Tool": "\u0e01\u0e32\u0e23\u0e02\u0e32\u0e22\u0e41\u0e25\u0e30\u0e01\u0e32\u0e23\u0e0b\u0e37\u0e49\u0e2d\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e21\u0e37\u0e2d\u0e22\u0e49\u0e2d\u0e19\u0e01\u0e25\u0e31\u0e1a",
+ "Stock": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32"
+}
\ No newline at end of file
diff --git a/stock/doctype/sales_bom/locale/_messages_doc.json b/stock/doctype/sales_bom/locale/_messages_doc.json
index 93e444ef048..2e6ecb61b42 100644
--- a/stock/doctype/sales_bom/locale/_messages_doc.json
+++ b/stock/doctype/sales_bom/locale/_messages_doc.json
@@ -1,7 +1,7 @@
[
"Package Items",
"Sales BOM Items",
- "Aggregate group of **Items** into another **Item**. This is useful if you are bundling a certain **Items** into a package and you maintain stock of the packed **Items** and not the aggregate **Item**. The package **Item** will have \"Is Stock Item\" as \"No\" and \"Is Sales Item\" as \"Yes\".For Example: If you are selling Laptops and Backpacks separately and have a special price if the customer buys both, then the Laptop + Backpack will be a new Sales BOM Item.Note: BOM = Bill of Materials",
+ "Aggregate group of **Items** into another **Item**. This is useful if you are bundling a certain **Items** into a package and you maintain stock of the packed **Items** and not the aggregate **Item**. \n\nThe package **Item** will have \"Is Stock Item\" as \"No\" and \"Is Sales Item\" as \"Yes\".\n\nFor Example: If you are selling Laptops and Backpacks separately and have a special price if the customer buys both, then the Laptop + Backpack will be a new Sales BOM Item.\n\nNote: BOM = Bill of Materials",
"List items that form the package.",
"The Item that represents the Package. This Item must have \"Is Stock Item\" as \"No\" and \"Is Sales Item\" as \"Yes\"",
"Sales BOM Item",
diff --git a/stock/doctype/sales_bom/locale/de-doc.json b/stock/doctype/sales_bom/locale/de-doc.json
new file mode 100644
index 00000000000..f422afb9a58
--- /dev/null
+++ b/stock/doctype/sales_bom/locale/de-doc.json
@@ -0,0 +1,10 @@
+{
+ "List items that form the package.": "Diese Liste Artikel bilden das Paket.",
+ "Package Items": "Package Angebote",
+ "Parent Item": "\u00dcbergeordneter Artikel",
+ "Sales BOM": "Vertrieb BOM",
+ "Sales BOM Item": "Vertrieb St\u00fccklistenposition",
+ "Sales BOM Items": "Vertrieb St\u00fccklistenpositionen",
+ "Stock": "Lager",
+ "The Item that represents the Package. This Item must have \"Is Stock Item\" as \"No\" and \"Is Sales Item\" as \"Yes\"": "Das Element, das das Paket darstellt. Dieser Artikel muss \"Ist Stock Item\" als \"Nein\" und \"Ist Vertrieb Item\" als \"Ja\""
+}
\ No newline at end of file
diff --git a/stock/doctype/sales_bom/locale/pt-BR-doc.json b/stock/doctype/sales_bom/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..d1682a80308
--- /dev/null
+++ b/stock/doctype/sales_bom/locale/pt-BR-doc.json
@@ -0,0 +1,10 @@
+{
+ "List items that form the package.": "Lista de itens que comp\u00f5em o pacote.",
+ "Package Items": "Itens do pacote",
+ "Parent Item": "Item Pai",
+ "Sales BOM": "LDM de Vendas",
+ "Sales BOM Item": "Item da LDM de Vendas",
+ "Sales BOM Items": "Itens da LDM de Vendas",
+ "Stock": "Estoque",
+ "The Item that represents the Package. This Item must have \"Is Stock Item\" as \"No\" and \"Is Sales Item\" as \"Yes\"": "O item que representa o pacote. Este item deve ter "\u00c9 Item de Estoque" como "N\u00e3o" e "\u00c9 Item de Venda" como "Sim""
+}
\ No newline at end of file
diff --git a/stock/doctype/sales_bom/locale/th-doc.json b/stock/doctype/sales_bom/locale/th-doc.json
new file mode 100644
index 00000000000..5982b0d1151
--- /dev/null
+++ b/stock/doctype/sales_bom/locale/th-doc.json
@@ -0,0 +1,11 @@
+{
+ "Aggregate group of **Items** into another **Item**. This is useful if you are bundling a certain **Items** into a package and you maintain stock of the packed **Items** and not the aggregate **Item**. The package **Item** will have \"Is Stock Item\" as \"No\" and \"Is Sales Item\" as \"Yes\".For Example: If you are selling Laptops and Backpacks separately and have a special price if the customer buys both, then the Laptop + Backpack will be a new Sales BOM Item.Note: BOM = Bill of Materials": "\u0e01\u0e25\u0e38\u0e48\u0e21\u0e23\u0e27\u0e21\u0e02\u0e2d\u0e07\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23 ** ** \u0e40\u0e02\u0e49\u0e32\u0e44\u0e1b\u0e2d\u0e35\u0e01\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23 ** ** \u0e19\u0e35\u0e49\u0e08\u0e30\u0e40\u0e1b\u0e47\u0e19\u0e1b\u0e23\u0e30\u0e42\u0e22\u0e0a\u0e19\u0e4c\u0e16\u0e49\u0e32\u0e04\u0e38\u0e13\u0e01\u0e33\u0e25\u0e31\u0e07 bundling \u0e23\u0e32\u0e22\u0e01\u0e32\u0e23 ** ** \u0e1a\u0e32\u0e07\u0e40\u0e1b\u0e47\u0e19\u0e41\u0e1e\u0e04\u0e40\u0e01\u0e08\u0e41\u0e25\u0e30\u0e04\u0e38\u0e13\u0e23\u0e31\u0e01\u0e29\u0e32\u0e2a\u0e15\u0e47\u0e2d\u0e01\u0e02\u0e2d\u0e07\u0e1a\u0e23\u0e23\u0e08\u0e38\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23 ** ** \u0e41\u0e25\u0e30\u0e44\u0e21\u0e48\u0e23\u0e27\u0e21\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23 ** ** \u0e41\u0e1e\u0e04\u0e40\u0e01\u0e08\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32 ** ** \u0e08\u0e30\u0e21\u0e35 "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32" \u0e02\u0e13\u0e30\u0e17\u0e35\u0e48 "\u0e44\u0e21\u0e48\u0e21\u0e35" \u0e41\u0e25\u0e30 "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e02\u0e32\u0e22" \u0e40\u0e1b\u0e47\u0e19 "\u0e43\u0e0a\u0e48" \u0e15\u0e31\u0e27\u0e2d\u0e22\u0e48\u0e32\u0e07:. \u0e16\u0e49\u0e32\u0e04\u0e38\u0e13\u0e01\u0e33\u0e25\u0e31\u0e07\u0e02\u0e32\u0e22\u0e41\u0e25\u0e47\u0e1b\u0e17\u0e47\u0e2d\u0e1b\u0e41\u0e25\u0e30\u0e40\u0e1b\u0e49\u0e2a\u0e30\u0e1e\u0e32\u0e22\u0e2b\u0e25\u0e31\u0e07\u0e41\u0e22\u0e01\u0e41\u0e25\u0e30\u0e21\u0e35\u0e23\u0e32\u0e04\u0e32\u0e1e\u0e34\u0e40\u0e28\u0e29\u0e2b\u0e32\u0e01\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32\u0e0b\u0e37\u0e49\u0e2d\u0e17\u0e31\u0e49\u0e07 \u0e41\u0e25\u0e49\u0e27\u0e41\u0e25\u0e47\u0e1b\u0e17\u0e47\u0e2d\u0e1b\u0e01\u0e23\u0e30\u0e40\u0e1b\u0e4b\u0e32\u0e40\u0e1b\u0e49\u0e2a\u0e30\u0e1e\u0e32\u0e22\u0e2b\u0e25\u0e31\u0e07 + \u0e08\u0e30\u0e02\u0e32\u0e22\u0e43\u0e2b\u0e21\u0e48 BOM Item.Note: BOM \u0e1a\u0e34\u0e25\u0e02\u0e2d\u0e07\u0e27\u0e31\u0e2a\u0e14\u0e38 =",
+ "List items that form the package.": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e17\u0e35\u0e48\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e41\u0e1e\u0e04\u0e40\u0e01\u0e08",
+ "Package Items": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e41\u0e1e\u0e04\u0e40\u0e01\u0e08",
+ "Parent Item": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e2b\u0e25\u0e31\u0e01",
+ "Sales BOM": "BOM \u0e02\u0e32\u0e22",
+ "Sales BOM Item": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23 BOM \u0e02\u0e32\u0e22",
+ "Sales BOM Items": "\u0e02\u0e32\u0e22\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32 BOM",
+ "Stock": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "The Item that represents the Package. This Item must have \"Is Stock Item\" as \"No\" and \"Is Sales Item\" as \"Yes\"": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e17\u0e35\u0e48\u0e41\u0e2a\u0e14\u0e07\u0e16\u0e36\u0e07\u0e41\u0e1e\u0e04\u0e40\u0e01\u0e08 \u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e19\u0e35\u200b\u200b\u0e49\u0e08\u0e30\u0e15\u0e49\u0e2d\u0e07\u0e21\u0e35 "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32" \u0e02\u0e13\u0e30\u0e17\u0e35\u0e48 "\u0e44\u0e21\u0e48\u0e21\u0e35" \u0e41\u0e25\u0e30 "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e02\u0e32\u0e22" \u0e40\u0e1b\u0e47\u0e19 "\u0e43\u0e0a\u0e48""
+}
\ No newline at end of file
diff --git a/stock/doctype/sales_bom/test_sales_bom.py b/stock/doctype/sales_bom/test_sales_bom.py
new file mode 100644
index 00000000000..850616fdbbf
--- /dev/null
+++ b/stock/doctype/sales_bom/test_sales_bom.py
@@ -0,0 +1,20 @@
+test_records = [
+ [
+ {
+ "doctype": "Sales BOM",
+ "new_item_code": "_Test Sales BOM Item"
+ },
+ {
+ "doctype": "Sales BOM Item",
+ "item_code": "_Test Item",
+ "parentfield": "sales_bom_items",
+ "qty": 5.0
+ },
+ {
+ "doctype": "Sales BOM Item",
+ "item_code": "_Test Item Home Desktop 100",
+ "parentfield": "sales_bom_items",
+ "qty": 2.0
+ }
+ ],
+]
\ No newline at end of file
diff --git a/stock/doctype/sales_bom_item/locale/de-doc.json b/stock/doctype/sales_bom_item/locale/de-doc.json
new file mode 100644
index 00000000000..0711aea3e9b
--- /dev/null
+++ b/stock/doctype/sales_bom_item/locale/de-doc.json
@@ -0,0 +1,9 @@
+{
+ "Description": "Beschreibung",
+ "Item": "Artikel",
+ "Qty": "Menge",
+ "Rate": "Rate",
+ "Sales BOM Item": "Vertrieb St\u00fccklistenposition",
+ "Stock": "Lager",
+ "UOM": "UOM"
+}
\ No newline at end of file
diff --git a/stock/doctype/sales_bom_item/locale/pt-BR-doc.json b/stock/doctype/sales_bom_item/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..c56c7354d5d
--- /dev/null
+++ b/stock/doctype/sales_bom_item/locale/pt-BR-doc.json
@@ -0,0 +1,9 @@
+{
+ "Description": "Descri\u00e7\u00e3o",
+ "Item": "Item",
+ "Qty": "Qtde.",
+ "Rate": "Taxa",
+ "Sales BOM Item": "Item da LDM de Vendas",
+ "Stock": "Estoque",
+ "UOM": "UDM"
+}
\ No newline at end of file
diff --git a/stock/doctype/sales_bom_item/locale/th-doc.json b/stock/doctype/sales_bom_item/locale/th-doc.json
new file mode 100644
index 00000000000..148844f5434
--- /dev/null
+++ b/stock/doctype/sales_bom_item/locale/th-doc.json
@@ -0,0 +1,9 @@
+{
+ "Description": "\u0e25\u0e31\u0e01\u0e29\u0e13\u0e30",
+ "Item": "\u0e0a\u0e34\u0e49\u0e19",
+ "Qty": "\u0e08\u0e33\u0e19\u0e27\u0e19",
+ "Rate": "\u0e2d\u0e31\u0e15\u0e23\u0e32",
+ "Sales BOM Item": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23 BOM \u0e02\u0e32\u0e22",
+ "Stock": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "UOM": "UOM"
+}
\ No newline at end of file
diff --git a/stock/doctype/serial_no/locale/_messages_doc.json b/stock/doctype/serial_no/locale/_messages_doc.json
index 6e1d93e12df..51cda10fe76 100644
--- a/stock/doctype/serial_no/locale/_messages_doc.json
+++ b/stock/doctype/serial_no/locale/_messages_doc.json
@@ -26,7 +26,6 @@
"Brand",
"File List",
"Purchase Receipt",
- "Delivery Address",
"Warranty Period (Days)",
"Trash Reason",
"Delivery Document Type",
@@ -38,6 +37,7 @@
"Under AMC",
"Maintenance Status",
"Under Warranty",
+ "Delivery Address",
"Out of Warranty",
"Warranty Expiry Date",
"Customer Name",
diff --git a/stock/doctype/serial_no/locale/de-doc.json b/stock/doctype/serial_no/locale/de-doc.json
new file mode 100644
index 00000000000..23ba20a0327
--- /dev/null
+++ b/stock/doctype/serial_no/locale/de-doc.json
@@ -0,0 +1,59 @@
+{
+ "AMC Expiry Date": "AMC Ablaufdatum",
+ "Brand": "Marke",
+ "Company": "Firma",
+ "Customer": "Kunde",
+ "Customer Address": "Kundenadresse",
+ "Customer Name": "Name des Kunden",
+ "Delivered": "Lieferung",
+ "Delivery Address": "Lieferanschrift",
+ "Delivery Date": "Liefertermin",
+ "Delivery Details": "Anlieferungs-Details",
+ "Delivery Document No": "Lieferung Dokument Nr.",
+ "Delivery Document Type": "Lieferung Document Type",
+ "Delivery Note": "Lieferschein",
+ "Delivery Time": "Lieferzeit",
+ "Description": "Beschreibung",
+ "Details": "Details",
+ "Distinct unit of an Item": "Separate Einheit eines Elements",
+ "File List": "Dateiliste",
+ "Fiscal Year": "Gesch\u00e4ftsjahr",
+ "In Store": "In Store",
+ "Incoming Rate": "Incoming Rate",
+ "Incoming Time": "Eingehende Zeit",
+ "Is Cancelled": "Wird abgebrochen",
+ "Item Code": "Item Code",
+ "Item Group": "Artikel-Gruppe",
+ "Item Name": "Item Name",
+ "Maintenance Status": "Wartungsstatus",
+ "More Info": "Mehr Info",
+ "No": "Auf",
+ "Not in Use": "Nicht im Einsatz",
+ "Out of AMC": "Von AMC",
+ "Out of Warranty": "Au\u00dferhalb der Garantie",
+ "Purchase Date": "Kauf Datum",
+ "Purchase Details": "Kaufinformationen",
+ "Purchase Document No": "Die Kaufdokument",
+ "Purchase Document Type": "Kauf Document Type",
+ "Purchase Receipt": "Kaufbeleg",
+ "Purchase Returned": "Kehrte Kauf",
+ "SLE Exists": "SLE Exists",
+ "Sales Invoice": "Sales Invoice",
+ "Serial No": "Serial In",
+ "Serial No Details": "Serial No Einzelheiten",
+ "Status": "Status",
+ "Stock": "Lager",
+ "Stock Entry": "Lager Eintrag",
+ "Supplier": "Lieferant",
+ "Supplier Address": "Lieferant Adresse",
+ "Supplier Name": "Name des Anbieters",
+ "Territory": "Gebiet",
+ "Trash Reason": "Trash Reason",
+ "Under AMC": "Unter AMC",
+ "Under Warranty": "Unter Garantie",
+ "Warehouse": "Lager",
+ "Warranty / AMC Details": "Garantie / AMC Einzelheiten",
+ "Warranty Expiry Date": "Garantie Ablaufdatum",
+ "Warranty Period (Days)": "Garantiezeitraum (Tage)",
+ "Yes": "Ja"
+}
\ No newline at end of file
diff --git a/stock/doctype/serial_no/locale/pt-BR-doc.json b/stock/doctype/serial_no/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..7690ea181f8
--- /dev/null
+++ b/stock/doctype/serial_no/locale/pt-BR-doc.json
@@ -0,0 +1,59 @@
+{
+ "AMC Expiry Date": "Data de Validade do CAM",
+ "Brand": "Marca",
+ "Company": "Empresa",
+ "Customer": "Cliente",
+ "Customer Address": "Endere\u00e7o do cliente",
+ "Customer Name": "Nome do cliente",
+ "Delivered": "Entregue",
+ "Delivery Address": "Endere\u00e7o de entrega",
+ "Delivery Date": "Data de entrega",
+ "Delivery Details": "Detalhes da entrega",
+ "Delivery Document No": "N\u00ba do Documento de Entrega",
+ "Delivery Document Type": "Tipo do Documento de Entrega",
+ "Delivery Note": "Guia de Remessa",
+ "Delivery Time": "Prazo de entrega",
+ "Description": "Descri\u00e7\u00e3o",
+ "Details": "Detalhes",
+ "Distinct unit of an Item": "Unidade distinta de um item",
+ "File List": "Lista de Arquivos",
+ "Fiscal Year": "Exerc\u00edcio fiscal",
+ "In Store": "Na loja",
+ "Incoming Rate": "Taxa de entrada",
+ "Incoming Time": "Tempo de entrada",
+ "Is Cancelled": "\u00c9 cancelado",
+ "Item Code": "C\u00f3digo do Item",
+ "Item Group": "Grupo de Itens",
+ "Item Name": "Nome do Item",
+ "Maintenance Status": "Estado da manuten\u00e7\u00e3o",
+ "More Info": "Mais informa\u00e7\u00f5es",
+ "No": "N\u00e3o",
+ "Not in Use": "N\u00e3o est\u00e1 em uso",
+ "Out of AMC": "Fora do CAM",
+ "Out of Warranty": "Fora de Garantia",
+ "Purchase Date": "Data da compra",
+ "Purchase Details": "Detalhes da compra",
+ "Purchase Document No": "N\u00ba do Documento de Compra",
+ "Purchase Document Type": "Tipo do Documento de Compra",
+ "Purchase Receipt": "Recibo de Compra",
+ "Purchase Returned": "Compra Devolvida",
+ "SLE Exists": "SLE existe",
+ "Sales Invoice": "Nota Fiscal de Venda",
+ "Serial No": "N\u00ba de S\u00e9rie",
+ "Serial No Details": "Detalhes do N\u00ba de S\u00e9rie",
+ "Status": "Estado",
+ "Stock": "Estoque",
+ "Stock Entry": "Lan\u00e7amento no Estoque",
+ "Supplier": "Fornecedor",
+ "Supplier Address": "Endere\u00e7o do Fornecedor",
+ "Supplier Name": "Nome do Fornecedor",
+ "Territory": "Territ\u00f3rio",
+ "Trash Reason": "Raz\u00e3o de p\u00f4r no lixo",
+ "Under AMC": "Sob CAM",
+ "Under Warranty": "Sob Garantia",
+ "Warehouse": "Almoxarifado",
+ "Warranty / AMC Details": "Garantia / Detalhes do CAM",
+ "Warranty Expiry Date": "Data de validade da garantia",
+ "Warranty Period (Days)": "Per\u00edodo de Garantia (Dias)",
+ "Yes": "Sim"
+}
\ No newline at end of file
diff --git a/stock/doctype/serial_no/locale/th-doc.json b/stock/doctype/serial_no/locale/th-doc.json
new file mode 100644
index 00000000000..732486e23fe
--- /dev/null
+++ b/stock/doctype/serial_no/locale/th-doc.json
@@ -0,0 +1,59 @@
+{
+ "AMC Expiry Date": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e2b\u0e21\u0e14\u0e2d\u0e32\u0e22\u0e38 AMC",
+ "Brand": "\u0e22\u0e35\u0e48\u0e2b\u0e49\u0e2d",
+ "Company": "\u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17",
+ "Customer": "\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Customer Address": "\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e02\u0e2d\u0e07\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Customer Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Delivered": "\u0e2a\u0e48\u0e07",
+ "Delivery Address": "\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e08\u0e31\u0e14\u0e2a\u0e48\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Delivery Date": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e2a\u0e48\u0e07",
+ "Delivery Details": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e01\u0e32\u0e23\u0e08\u0e31\u0e14\u0e2a\u0e48\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Delivery Document No": "\u0e40\u0e2d\u0e01\u0e2a\u0e32\u0e23\u0e08\u0e31\u0e14\u0e2a\u0e48\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e44\u0e21\u0e48\u0e21\u0e35",
+ "Delivery Document Type": "\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e40\u0e2d\u0e01\u0e2a\u0e32\u0e23\u0e01\u0e32\u0e23\u0e08\u0e31\u0e14\u0e2a\u0e48\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Delivery Note": "\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e2b\u0e15\u0e38\u0e08\u0e31\u0e14\u0e2a\u0e48\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Delivery Time": "\u0e40\u0e27\u0e25\u0e32\u0e08\u0e31\u0e14\u0e2a\u0e48\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Description": "\u0e25\u0e31\u0e01\u0e29\u0e13\u0e30",
+ "Details": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14",
+ "Distinct unit of an Item": "\u0e2b\u0e19\u0e48\u0e27\u0e22\u0e17\u0e35\u0e48\u0e41\u0e15\u0e01\u0e15\u0e48\u0e32\u0e07\u0e02\u0e2d\u0e07\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23",
+ "File List": "\u0e23\u0e32\u0e22\u0e0a\u0e37\u0e48\u0e2d\u0e44\u0e1f\u0e25\u0e4c",
+ "Fiscal Year": "\u0e1b\u0e35\u0e07\u0e1a\u0e1b\u0e23\u0e30\u0e21\u0e32\u0e13",
+ "In Store": "\u0e43\u0e19\u0e23\u0e49\u0e32\u0e19\u0e04\u0e49\u0e32",
+ "Incoming Rate": "\u0e2d\u0e31\u0e15\u0e23\u0e32\u0e40\u0e02\u0e49\u0e32",
+ "Incoming Time": "\u0e40\u0e27\u0e25\u0e32\u0e17\u0e35\u0e48\u0e40\u0e02\u0e49\u0e32\u0e21\u0e32",
+ "Is Cancelled": "\u0e40\u0e1b\u0e47\u0e19\u0e22\u0e01\u0e40\u0e25\u0e34\u0e01",
+ "Item Code": "\u0e23\u0e2b\u0e31\u0e2a\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Item Group": "\u0e01\u0e25\u0e38\u0e48\u0e21\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Item Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23",
+ "Maintenance Status": "\u0e2a\u0e16\u0e32\u0e19\u0e30\u0e01\u0e32\u0e23\u0e1a\u0e33\u0e23\u0e38\u0e07\u0e23\u0e31\u0e01\u0e29\u0e32",
+ "More Info": "\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21",
+ "No": "\u0e44\u0e21\u0e48",
+ "Not in Use": "\u0e44\u0e21\u0e48\u0e44\u0e14\u0e49\u0e2d\u0e22\u0e39\u0e48\u0e43\u0e19\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19",
+ "Out of AMC": "\u0e2d\u0e2d\u0e01\u0e02\u0e2d\u0e07 AMC",
+ "Out of Warranty": "\u0e2d\u0e2d\u0e01\u0e08\u0e32\u0e01\u0e01\u0e32\u0e23\u0e23\u0e31\u0e1a\u0e1b\u0e23\u0e30\u0e01\u0e31\u0e19",
+ "Purchase Date": "\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48",
+ "Purchase Details": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e01\u0e32\u0e23\u0e0b\u0e37\u0e49\u0e2d",
+ "Purchase Document No": "\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e44\u0e21\u0e48\u0e21\u0e35\u0e40\u0e2d\u0e01\u0e2a\u0e32\u0e23",
+ "Purchase Document Type": "\u0e0b\u0e37\u0e49\u0e2d\u0e40\u0e2d\u0e01\u0e2a\u0e32\u0e23\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17",
+ "Purchase Receipt": "\u0e0b\u0e37\u0e49\u0e2d\u0e43\u0e1a\u0e40\u0e2a\u0e23\u0e47\u0e08\u0e23\u0e31\u0e1a\u0e40\u0e07\u0e34\u0e19",
+ "Purchase Returned": "\u0e0b\u0e37\u0e49\u0e2d\u0e01\u0e25\u0e31\u0e1a",
+ "SLE Exists": "SLE \u0e21\u0e35\u0e2d\u0e22\u0e39\u0e48",
+ "Sales Invoice": "\u0e02\u0e32\u0e22\u0e43\u0e1a\u0e41\u0e08\u0e49\u0e07\u0e2b\u0e19\u0e35\u0e49",
+ "Serial No": "\u0e2d\u0e19\u0e38\u0e01\u0e23\u0e21\u0e44\u0e21\u0e48\u0e21\u0e35",
+ "Serial No Details": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e25\u0e02\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07",
+ "Status": "\u0e2a\u0e16\u0e32\u0e19\u0e30",
+ "Stock": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Stock Entry": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Supplier": "\u0e1c\u0e39\u0e49\u0e08\u0e31\u0e14\u0e08\u0e33\u0e2b\u0e19\u0e48\u0e32\u0e22",
+ "Supplier Address": "\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e1c\u0e39\u0e49\u0e1c\u0e25\u0e34\u0e15",
+ "Supplier Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e1c\u0e39\u0e49\u0e08\u0e31\u0e14\u0e08\u0e33\u0e2b\u0e19\u0e48\u0e32\u0e22",
+ "Territory": "\u0e2d\u0e32\u0e13\u0e32\u0e40\u0e02\u0e15",
+ "Trash Reason": "\u0e40\u0e2b\u0e15\u0e38\u0e1c\u0e25\u0e16\u0e31\u0e07\u0e02\u0e22\u0e30",
+ "Under AMC": "\u0e20\u0e32\u0e22\u0e43\u0e15\u0e49 AMC",
+ "Under Warranty": "\u0e20\u0e32\u0e22\u0e43\u0e15\u0e49\u0e01\u0e32\u0e23\u0e23\u0e31\u0e1a\u0e1b\u0e23\u0e30\u0e01\u0e31\u0e19",
+ "Warehouse": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Warranty / AMC Details": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e01\u0e32\u0e23\u0e23\u0e31\u0e1a\u0e1b\u0e23\u0e30\u0e01\u0e31\u0e19 / AMC",
+ "Warranty Expiry Date": "\u0e27\u0e31\u0e19\u0e2b\u0e21\u0e14\u0e2d\u0e32\u0e22\u0e38\u0e01\u0e32\u0e23\u0e23\u0e31\u0e1a\u0e1b\u0e23\u0e30\u0e01\u0e31\u0e19",
+ "Warranty Period (Days)": "\u0e23\u0e30\u0e22\u0e30\u0e40\u0e27\u0e25\u0e32\u0e23\u0e31\u0e1a\u0e1b\u0e23\u0e30\u0e01\u0e31\u0e19 (\u0e27\u0e31\u0e19)",
+ "Yes": "\u0e43\u0e0a\u0e48"
+}
\ No newline at end of file
diff --git a/stock/doctype/stock_entry/locale/_messages_doc.json b/stock/doctype/stock_entry/locale/_messages_doc.json
index fe33ae09143..83efe0c71cb 100644
--- a/stock/doctype/stock_entry/locale/_messages_doc.json
+++ b/stock/doctype/stock_entry/locale/_messages_doc.json
@@ -22,13 +22,13 @@
"Sales Invoice No",
"Purpose",
"MTN Details",
- "Remarks",
"More Info",
"Stock Entry",
"Posting Date",
"Project Name",
"Customer",
"STE",
+ "Remarks",
"Sales Return",
"To manage multiple series please go to Setup > Manage Series",
"Items",
diff --git a/stock/doctype/stock_entry/locale/_messages_py.json b/stock/doctype/stock_entry/locale/_messages_py.json
index cbf5d795c91..9dc0e18fa87 100644
--- a/stock/doctype/stock_entry/locale/_messages_py.json
+++ b/stock/doctype/stock_entry/locale/_messages_py.json
@@ -1,18 +1,21 @@
[
+ "Material Request",
"' does not exists in ",
"Purpose must be one of ",
" or the BOM is cancelled or inactive",
"does not belong to BOM: ",
"Atleast one warehouse is mandatory",
+ "All items have already been transferred \\\n\t\t\t\tfor this Production Order.",
"Source and Target Warehouse cannot be same",
"Item: '",
+ "To fetch items again, click on 'Get Items' button \\\n\t\t\t\t\t\tor update the Quantity manually.",
"Production Order",
- "All items have already been transferred \\\t\t\t\tfor this Production Order.",
- "To fetch items again, click on 'Get Items' button \\\t\t\t\t\t\tor update the Quantity manually.",
+ "does not match",
"Source Warehouse",
"Item",
"Quantity should be equal to Manufacturing Quantity. ",
"Row #",
+ "of",
"Quantity already manufactured",
"Hence, maximum allowed Manufacturing Quantity",
"Target Warehouse",
diff --git a/stock/doctype/stock_entry/locale/de-doc.json b/stock/doctype/stock_entry/locale/de-doc.json
new file mode 100644
index 00000000000..fa1d223585a
--- /dev/null
+++ b/stock/doctype/stock_entry/locale/de-doc.json
@@ -0,0 +1,48 @@
+{
+ "Amended From": "Ge\u00e4ndert von",
+ "As per Stock UOM": "Wie pro Lagerbestand UOM",
+ "BOM No": "BOM Nein",
+ "Company": "Firma",
+ "Contact Info": "Kontakt Info",
+ "Customer": "Kunde",
+ "Customer Address": "Kundenadresse",
+ "Customer Name": "Name des Kunden",
+ "Default Source Warehouse": "Default Source Warehouse",
+ "Default Target Warehouse": "Standard Ziel Warehouse",
+ "Delivery Note No": "Lieferschein Nein",
+ "Get Items": "Holen Artikel",
+ "Get Stock and Rate": "Holen Sie Stock und bewerten",
+ "Get valuation rate and available stock at source/target warehouse on mentioned posting date-time. If serialized item, please press this button after entering serial nos.": "Holen Bewertungskurs und verf\u00fcgbaren Bestand an der Quelle / Ziel-Warehouse am genannten Buchungsdatum-Zeit. Wenn serialisierten Objekt, dr\u00fccken Sie bitte diese Taste nach Eingabe der Seriennummern nos.",
+ "If checked, BOM for sub-assembly items will be considered for getting raw materials. Otherwise, all sub-assembly items will be treated as a raw material.": "Wenn aktiviert, wird St\u00fcckliste Baugruppe Artikel f\u00fcr immer Rohstoff betrachtet werden. Andernfalls werden alle Unterbaugruppe Elemente als Ausgangsmaterial behandelt werden.",
+ "Items": "Artikel",
+ "MTN Details": "MTN Einzelheiten",
+ "Manufacture/Repack": "Herstellung / Repack",
+ "Manufacturing Quantity": "Fertigung Menge",
+ "Material Issue": "Material Issue",
+ "Material Receipt": "Material Receipt",
+ "Material Transfer": "Material Transfer",
+ "More Info": "Mehr Info",
+ "Posting Date": "Buchungsdatum",
+ "Posting Time": "Posting Zeit",
+ "Production Order": "Fertigungsauftrag",
+ "Project Name": "Project Name",
+ "Purchase Receipt No": "Kaufbeleg",
+ "Purchase Return": "Kauf zur\u00fcckgeben",
+ "Purpose": "Zweck",
+ "Reference": "Referenz",
+ "Remarks": "Bemerkungen",
+ "STE": "STE",
+ "Sales Invoice No": "Sales Invoice In",
+ "Sales Return": "Umsatzrendite",
+ "Select Print Heading": "W\u00e4hlen Sie Drucken \u00dcberschrift",
+ "Series": "Serie",
+ "Stock": "Lager",
+ "Stock Entry": "Lager Eintrag",
+ "Subcontract": "Vergeben",
+ "Supplier": "Lieferant",
+ "Supplier Address": "Lieferant Adresse",
+ "Supplier Name": "Name des Anbieters",
+ "The date at which current entry will get or has actually executed.": "Das Datum, an dem aktuellen Eintrag zu erhalten oder wird tats\u00e4chlich ausgef\u00fchrt.",
+ "To manage multiple series please go to Setup > Manage Series": "Um mehrere Reihen zu verwalten gehen Sie bitte auf Setup> Verwalten Series",
+ "Use Multi-Level BOM": "Verwenden Sie Multi-Level BOM"
+}
\ No newline at end of file
diff --git a/stock/doctype/stock_entry/locale/de-py.json b/stock/doctype/stock_entry/locale/de-py.json
new file mode 100644
index 00000000000..89aef61008e
--- /dev/null
+++ b/stock/doctype/stock_entry/locale/de-py.json
@@ -0,0 +1,14 @@
+{
+ "Atleast one warehouse is mandatory": "Mindestens eines Lagers ist obligatorisch",
+ "Hence, maximum allowed Manufacturing Quantity": "Daher maximal erlaubte Menge Fertigung",
+ "Item": "Artikel",
+ "Item: '": "Item: \"",
+ "Manufacturing Quantity": "Fertigung Menge",
+ "Material Request": "Material anfordern",
+ "Production Order": "Fertigungsauftrag",
+ "Quantity already manufactured": "Bereits Menge hergestellt",
+ "Row #": "Zeile #",
+ "Source Warehouse": "Quelle Warehouse",
+ "Source and Target Warehouse cannot be same": "Quelle und Ziel Warehouse kann nicht gleichzeitig",
+ "Target Warehouse": "Ziel Warehouse"
+}
\ No newline at end of file
diff --git a/stock/doctype/stock_entry/locale/pt-BR-doc.json b/stock/doctype/stock_entry/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..dc07f7435e1
--- /dev/null
+++ b/stock/doctype/stock_entry/locale/pt-BR-doc.json
@@ -0,0 +1,48 @@
+{
+ "Amended From": "Corrigido De",
+ "As per Stock UOM": "Como UDM do Estoque",
+ "BOM No": "N\u00ba da LDM",
+ "Company": "Empresa",
+ "Contact Info": "Informa\u00e7\u00f5es para Contato",
+ "Customer": "Cliente",
+ "Customer Address": "Endere\u00e7o do cliente",
+ "Customer Name": "Nome do cliente",
+ "Default Source Warehouse": "Almoxarifado da origem padr\u00e3o",
+ "Default Target Warehouse": "Almoxarifado de destino padr\u00e3o",
+ "Delivery Note No": "N\u00ba da Guia de Remessa",
+ "Get Items": "Obter itens",
+ "Get Stock and Rate": "Obter Estoque e Valor",
+ "Get valuation rate and available stock at source/target warehouse on mentioned posting date-time. If serialized item, please press this button after entering serial nos.": "Obter valoriza\u00e7\u00e3o e estoque dispon\u00edvel no almoxarifado de origem/destino na data e hora de postagem mencionada. Se for item serializado, pressione este bot\u00e3o depois de entrar os n\u00ba de s\u00e9rie.",
+ "If checked, BOM for sub-assembly items will be considered for getting raw materials. Otherwise, all sub-assembly items will be treated as a raw material.": "Se marcado, os itens da LDM para a Sub-Montagem ser\u00e3o considerados para obter mat\u00e9rias-primas. Caso contr\u00e1rio, todos os itens da sub-montagem v\u00e3o ser tratados como mat\u00e9ria-prima.",
+ "Items": "Itens",
+ "MTN Details": "Detalhes da MTN",
+ "Manufacture/Repack": "Fabricar / Reembalar",
+ "Manufacturing Quantity": "Quantidade de fabrica\u00e7\u00e3o",
+ "Material Issue": "Emiss\u00e3o de material",
+ "Material Receipt": "Recebimento de material",
+ "Material Transfer": "Transfer\u00eancia de material",
+ "More Info": "Mais informa\u00e7\u00f5es",
+ "Posting Date": "Data da Postagem",
+ "Posting Time": "Hor\u00e1rio da Postagem",
+ "Production Order": "Ordem de Produ\u00e7\u00e3o",
+ "Project Name": "Nome do Projeto",
+ "Purchase Receipt No": "N\u00ba do Recibo de Compra",
+ "Purchase Return": "Devolu\u00e7\u00e3o de Compra",
+ "Purpose": "Finalidade",
+ "Reference": "Refer\u00eancia",
+ "Remarks": "Observa\u00e7\u00f5es",
+ "STE": "STO",
+ "Sales Invoice No": "N\u00ba da Nota Fiscal de Venda",
+ "Sales Return": "Retorno de Vendas",
+ "Select Print Heading": "Selecione o Cabe\u00e7alho de Impress\u00e3o",
+ "Series": "S\u00e9ries",
+ "Stock": "Estoque",
+ "Stock Entry": "Lan\u00e7amento no Estoque",
+ "Subcontract": "Subcontratar",
+ "Supplier": "Fornecedor",
+ "Supplier Address": "Endere\u00e7o do Fornecedor",
+ "Supplier Name": "Nome do Fornecedor",
+ "The date at which current entry will get or has actually executed.": "A data em que o lan\u00e7amento atual vai ser ou foi realmente executado.",
+ "To manage multiple series please go to Setup > Manage Series": "Para gerenciar v\u00e1rias s\u00e9ries por favor, v\u00e1 para Configura\u00e7\u00e3o > Gerenciar S\u00e9ries",
+ "Use Multi-Level BOM": "Utilize LDM de V\u00e1rios N\u00edveis"
+}
\ No newline at end of file
diff --git a/stock/doctype/stock_entry/locale/pt-BR-py.json b/stock/doctype/stock_entry/locale/pt-BR-py.json
new file mode 100644
index 00000000000..7631b88f512
--- /dev/null
+++ b/stock/doctype/stock_entry/locale/pt-BR-py.json
@@ -0,0 +1,25 @@
+{
+ " is mandatory": "\u00e9 obrigat\u00f3rio(a)",
+ " or the BOM is cancelled or inactive": "ou a LDM \u00e9 cancelada ou inativa",
+ " should be same as that in ": "deve ser o(a) mesmo(a) que no(a)",
+ "' does not exists in ": "'N\u00e3o existe em",
+ "Atleast one warehouse is mandatory": "Pelo menos um almoxarifado \u00e9 obrigat\u00f3rio",
+ "For Item ": "Para o Item",
+ "Hence, maximum allowed Manufacturing Quantity": "Assim, a Quantidade de Fabrica\u00e7\u00e3o m\u00e1xima permitida",
+ "Item": "Item",
+ "Item: '": "Item: '",
+ "Manufacturing Quantity": "Quantidade de fabrica\u00e7\u00e3o",
+ "Material Request": "Pedido de material",
+ "Production Order": "Ordem de Produ\u00e7\u00e3o",
+ "Purpose must be one of ": "Finalidade deve ser um dos",
+ "Quantity already manufactured": "Quantidade j\u00e1 fabricada",
+ "Quantity should be equal to Manufacturing Quantity. ": "Quantidade deve ser igual \u00e0 Quantidade de Fabrica\u00e7\u00e3o.",
+ "Row #": "Linha #",
+ "Row # ": "Linha #",
+ "Source Warehouse": "Almoxarifado de origem",
+ "Source and Target Warehouse cannot be same": "O Almoxarifado de origem e destino n\u00e3o pode ser o mesmo",
+ "Target Warehouse": "Almoxarifado de destino",
+ "does not belong to BOM: ": "n\u00e3o pertence a LDM:",
+ "does not match": "n\u00e3o corresponde",
+ "of": "de"
+}
\ No newline at end of file
diff --git a/stock/doctype/stock_entry/locale/th-doc.json b/stock/doctype/stock_entry/locale/th-doc.json
new file mode 100644
index 00000000000..d8aa233d91a
--- /dev/null
+++ b/stock/doctype/stock_entry/locale/th-doc.json
@@ -0,0 +1,48 @@
+{
+ "Amended From": "\u0e41\u0e01\u0e49\u0e44\u0e02\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21",
+ "As per Stock UOM": "\u0e40\u0e1b\u0e47\u0e19\u0e15\u0e48\u0e2d\u0e2a\u0e15\u0e47\u0e2d\u0e01 UOM",
+ "BOM No": "BOM \u0e44\u0e21\u0e48\u0e21\u0e35",
+ "Company": "\u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17",
+ "Contact Info": "\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d",
+ "Customer": "\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Customer Address": "\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e02\u0e2d\u0e07\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Customer Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e25\u0e39\u0e01\u0e04\u0e49\u0e32",
+ "Default Source Warehouse": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e17\u0e35\u0e48\u0e21\u0e32\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19",
+ "Default Target Warehouse": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e40\u0e1b\u0e49\u0e32\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19",
+ "Delivery Note No": "\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e2b\u0e15\u0e38\u0e08\u0e31\u0e14\u0e2a\u0e48\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e44\u0e21\u0e48\u0e21\u0e35",
+ "Get Items": "\u0e23\u0e31\u0e1a\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Get Stock and Rate": "\u0e23\u0e31\u0e1a\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e41\u0e25\u0e30\u0e2d\u0e31\u0e15\u0e23\u0e32",
+ "Get valuation rate and available stock at source/target warehouse on mentioned posting date-time. If serialized item, please press this button after entering serial nos.": "\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e2d\u0e31\u0e15\u0e23\u0e32\u0e21\u0e39\u0e25\u0e04\u0e48\u0e32\u0e41\u0e25\u0e30\u0e2a\u0e15\u0e47\u0e2d\u0e01\u0e17\u0e35\u0e48\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e41\u0e2b\u0e25\u0e48\u0e07\u0e17\u0e35\u0e48\u0e21\u0e32 / \u0e40\u0e1b\u0e49\u0e32\u0e2b\u0e21\u0e32\u0e22\u0e14\u0e31\u0e07\u0e01\u0e25\u0e48\u0e32\u0e27\u0e42\u0e1e\u0e2a\u0e15\u0e4c\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e40\u0e27\u0e25\u0e32 \u0e16\u0e49\u0e32\u0e15\u0e48\u0e2d\u0e40\u0e19\u0e37\u0e48\u0e2d\u0e07\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e42\u0e1b\u0e23\u0e14\u0e01\u0e14\u0e1b\u0e38\u0e48\u0e21\u0e19\u0e35\u0e49\u0e2b\u0e25\u0e31\u0e07\u0e08\u0e32\u0e01\u0e17\u0e35\u0e48\u0e40\u0e02\u0e49\u0e32\u0e21\u0e32 Nos \u0e2d\u0e19\u0e38\u0e01\u0e23\u0e21",
+ "If checked, BOM for sub-assembly items will be considered for getting raw materials. Otherwise, all sub-assembly items will be treated as a raw material.": "\u0e2b\u0e32\u0e01\u0e01\u0e32\u0e23\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e27\u0e31\u0e2a\u0e14\u0e38\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e22\u0e48\u0e2d\u0e22\u0e1b\u0e23\u0e30\u0e01\u0e2d\u0e1a\u0e08\u0e30\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e1e\u0e34\u0e08\u0e32\u0e23\u0e13\u0e32\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e27\u0e31\u0e15\u0e16\u0e38\u0e14\u0e34\u0e1a \u0e21\u0e34\u0e09\u0e30\u0e19\u0e31\u0e49\u0e19\u0e17\u0e38\u0e01\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e22\u0e48\u0e2d\u0e22\u0e1b\u0e23\u0e30\u0e01\u0e2d\u0e1a\u0e08\u0e30\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e1b\u0e0f\u0e34\u0e1a\u0e31\u0e15\u0e34\u0e40\u0e1b\u0e47\u0e19\u0e27\u0e31\u0e15\u0e16\u0e38\u0e14\u0e34\u0e1a",
+ "Items": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23",
+ "MTN Details": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14 MTN",
+ "Manufacture/Repack": "\u0e01\u0e32\u0e23\u0e1c\u0e25\u0e34\u0e15 / Repack",
+ "Manufacturing Quantity": "\u0e08\u0e33\u0e19\u0e27\u0e19\u0e01\u0e32\u0e23\u0e1c\u0e25\u0e34\u0e15",
+ "Material Issue": "\u0e09\u0e1a\u0e31\u0e1a\u0e27\u0e31\u0e2a\u0e14\u0e38",
+ "Material Receipt": "\u0e43\u0e1a\u0e40\u0e2a\u0e23\u0e47\u0e08\u0e23\u0e31\u0e1a\u0e40\u0e07\u0e34\u0e19\u0e27\u0e31\u0e2a\u0e14\u0e38",
+ "Material Transfer": "\u0e42\u0e2d\u0e19\u0e27\u0e31\u0e2a\u0e14\u0e38",
+ "More Info": "\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21",
+ "Posting Date": "\u0e42\u0e1e\u0e2a\u0e15\u0e4c\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48",
+ "Posting Time": "\u0e42\u0e1e\u0e2a\u0e15\u0e4c\u0e40\u0e27\u0e25\u0e32",
+ "Production Order": "\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e01\u0e32\u0e23\u0e1c\u0e25\u0e34\u0e15",
+ "Project Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e42\u0e04\u0e23\u0e07\u0e01\u0e32\u0e23",
+ "Purchase Receipt No": "\u0e43\u0e1a\u0e40\u0e2a\u0e23\u0e47\u0e08\u0e23\u0e31\u0e1a\u0e40\u0e07\u0e34\u0e19\u0e0b\u0e37\u0e49\u0e2d\u0e44\u0e21\u0e48\u0e21\u0e35",
+ "Purchase Return": "\u0e0b\u0e37\u0e49\u0e2d\u0e01\u0e25\u0e31\u0e1a",
+ "Purpose": "\u0e04\u0e27\u0e32\u0e21\u0e21\u0e38\u0e48\u0e07\u0e2b\u0e21\u0e32\u0e22",
+ "Reference": "\u0e01\u0e32\u0e23\u0e2d\u0e49\u0e32\u0e07\u0e2d\u0e34\u0e07",
+ "Remarks": "\u0e02\u0e49\u0e2d\u0e04\u0e34\u0e14\u0e40\u0e2b\u0e47\u0e19",
+ "STE": "STE",
+ "Sales Invoice No": "\u0e02\u0e32\u0e22\u0e43\u0e1a\u0e41\u0e08\u0e49\u0e07\u0e2b\u0e19\u0e35\u0e49\u0e44\u0e21\u0e48\u0e21\u0e35",
+ "Sales Return": "\u0e02\u0e32\u0e22\u0e01\u0e25\u0e31\u0e1a",
+ "Select Print Heading": "\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e1e\u0e34\u0e21\u0e1e\u0e4c\u0e2b\u0e31\u0e27\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07",
+ "Series": "\u0e0a\u0e38\u0e14",
+ "Stock": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Stock Entry": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Subcontract": "\u0e2a\u0e31\u0e0d\u0e0d\u0e32\u0e23\u0e31\u0e1a\u0e0a\u0e48\u0e27\u0e07",
+ "Supplier": "\u0e1c\u0e39\u0e49\u0e08\u0e31\u0e14\u0e08\u0e33\u0e2b\u0e19\u0e48\u0e32\u0e22",
+ "Supplier Address": "\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e1c\u0e39\u0e49\u0e1c\u0e25\u0e34\u0e15",
+ "Supplier Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e1c\u0e39\u0e49\u0e08\u0e31\u0e14\u0e08\u0e33\u0e2b\u0e19\u0e48\u0e32\u0e22",
+ "The date at which current entry will get or has actually executed.": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e17\u0e35\u0e48\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e1b\u0e31\u0e08\u0e08\u0e38\u0e1a\u0e31\u0e19\u0e08\u0e30\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e2b\u0e23\u0e37\u0e2d\u0e44\u0e14\u0e49\u0e14\u0e33\u0e40\u0e19\u0e34\u0e19\u0e01\u0e32\u0e23\u0e08\u0e23\u0e34\u0e07",
+ "To manage multiple series please go to Setup > Manage Series": "\u0e43\u0e19\u0e01\u0e32\u0e23\u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e01\u0e31\u0e1a\u0e2b\u0e25\u0e32\u0e22\u0e0a\u0e38\u0e14\u0e42\u0e1b\u0e23\u0e14\u0e44\u0e1b\u0e17\u0e35\u0e48\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32> \u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e41\u0e1a\u0e1a",
+ "Use Multi-Level BOM": "\u0e43\u0e0a\u0e49 BOM \u0e2b\u0e25\u0e32\u0e22\u0e23\u0e30\u0e14\u0e31\u0e1a"
+}
\ No newline at end of file
diff --git a/stock/doctype/stock_entry/locale/th-py.json b/stock/doctype/stock_entry/locale/th-py.json
new file mode 100644
index 00000000000..cec96774444
--- /dev/null
+++ b/stock/doctype/stock_entry/locale/th-py.json
@@ -0,0 +1,24 @@
+{
+ " is mandatory": "\u0e21\u0e35\u0e1c\u0e25\u0e1a\u0e31\u0e07\u0e04\u0e31\u0e1a\u0e43\u0e0a\u0e49",
+ " or the BOM is cancelled or inactive": "\u0e2b\u0e23\u0e37\u0e2d BOM \u0e16\u0e39\u0e01\u0e22\u0e01\u0e40\u0e25\u0e34\u0e01\u0e2b\u0e23\u0e37\u0e2d\u0e44\u0e21\u0e48\u0e44\u0e14\u0e49\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19",
+ " should be same as that in ": "\u0e04\u0e27\u0e23\u0e08\u0e30\u0e40\u0e0a\u0e48\u0e19\u0e40\u0e14\u0e35\u0e22\u0e27\u0e01\u0e31\u0e1a\u0e17\u0e35\u0e48\u0e43\u0e19",
+ "' does not exists in ": "'\u0e44\u0e21\u0e48\u0e44\u0e14\u0e49\u0e2d\u0e22\u0e39\u0e48\u0e43\u0e19",
+ "All items have already been transferred \\\t\t\t\tfor this Production Order.": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e42\u0e2d\u0e19\u0e41\u0e25\u0e49\u0e27 \\ \u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e01\u0e32\u0e23\u0e1c\u0e25\u0e34\u0e15\u0e19\u0e35\u0e49",
+ "Atleast one warehouse is mandatory": "\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e19\u0e49\u0e2d\u0e22\u0e2b\u0e19\u0e36\u0e48\u0e07\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e21\u0e35\u0e1c\u0e25\u0e1a\u0e31\u0e07\u0e04\u0e31\u0e1a\u0e43\u0e0a\u0e49",
+ "For Item ": "\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23",
+ "Hence, maximum allowed Manufacturing Quantity": "\u0e14\u0e31\u0e07\u0e19\u0e31\u0e49\u0e19\u0e08\u0e33\u0e19\u0e27\u0e19\u0e01\u0e32\u0e23\u0e1c\u0e25\u0e34\u0e15\u0e2a\u0e39\u0e07\u0e2a\u0e38\u0e14\u0e17\u0e35\u0e48\u0e2d\u0e19\u0e38\u0e0d\u0e32\u0e15",
+ "Item": "\u0e0a\u0e34\u0e49\u0e19",
+ "Item: '": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23: '",
+ "Manufacturing Quantity": "\u0e08\u0e33\u0e19\u0e27\u0e19\u0e01\u0e32\u0e23\u0e1c\u0e25\u0e34\u0e15",
+ "Production Order": "\u0e2a\u0e31\u0e48\u0e07\u0e0b\u0e37\u0e49\u0e2d\u0e01\u0e32\u0e23\u0e1c\u0e25\u0e34\u0e15",
+ "Purpose must be one of ": "\u0e27\u0e31\u0e15\u0e16\u0e38\u0e1b\u0e23\u0e30\u0e2a\u0e07\u0e04\u0e4c\u0e15\u0e49\u0e2d\u0e07\u0e40\u0e1b\u0e47\u0e19\u0e2b\u0e19\u0e36\u0e48\u0e07\u0e43\u0e19",
+ "Quantity already manufactured": "\u0e08\u0e33\u0e19\u0e27\u0e19\u0e1c\u0e25\u0e34\u0e15\u0e41\u0e25\u0e49\u0e27",
+ "Quantity should be equal to Manufacturing Quantity. ": "\u0e08\u0e33\u0e19\u0e27\u0e19\u0e04\u0e27\u0e23\u0e08\u0e30\u0e40\u0e17\u0e48\u0e32\u0e01\u0e31\u0e1a\u0e08\u0e33\u0e19\u0e27\u0e19\u0e01\u0e32\u0e23\u0e1c\u0e25\u0e34\u0e15",
+ "Row #": "\u0e41\u0e16\u0e27 #",
+ "Row # ": "\u0e41\u0e16\u0e27 #",
+ "Source Warehouse": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e17\u0e35\u0e48\u0e21\u0e32",
+ "Source and Target Warehouse cannot be same": "\u0e41\u0e2b\u0e25\u0e48\u0e07\u0e17\u0e35\u0e48\u0e21\u0e32\u0e41\u0e25\u0e30\u0e40\u0e1b\u0e49\u0e32\u0e2b\u0e21\u0e32\u0e22\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e44\u0e21\u0e48\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e40\u0e14\u0e35\u0e22\u0e27\u0e01\u0e31\u0e19",
+ "Target Warehouse": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e40\u0e1b\u0e49\u0e32\u0e2b\u0e21\u0e32\u0e22",
+ "To fetch items again, click on 'Get Items' button \\\t\t\t\t\t\tor update the Quantity manually.": "\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e40\u0e23\u0e35\u0e22\u0e01\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e2d\u0e35\u0e01\u0e04\u0e23\u0e31\u0e49\u0e07\u0e43\u0e2b\u0e49\u0e04\u0e25\u0e34\u0e01\u0e17\u0e35\u0e48 '\u0e23\u0e31\u0e1a\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32' \\ \u0e1b\u0e38\u0e48\u0e21\u0e2b\u0e23\u0e37\u0e2d\u0e1b\u0e23\u0e31\u0e1a\u0e1b\u0e23\u0e38\u0e07\u0e08\u0e33\u0e19\u0e27\u0e19\u0e15\u0e19\u0e40\u0e2d\u0e07",
+ "does not belong to BOM: ": "\u0e44\u0e21\u0e48\u0e44\u0e14\u0e49\u0e2d\u0e22\u0e39\u0e48\u0e43\u0e19 BOM:"
+}
\ No newline at end of file
diff --git a/stock/doctype/stock_entry/stock_entry.py b/stock/doctype/stock_entry/stock_entry.py
index 342cd6b3ed5..05d74607738 100644
--- a/stock/doctype/stock_entry/stock_entry.py
+++ b/stock/doctype/stock_entry/stock_entry.py
@@ -52,6 +52,8 @@ class DocType(TransactionBase):
self.validate_finished_goods()
self.validate_return_reference_doc()
+ self.validate_with_material_request()
+
def on_submit(self):
self.update_serial_no(1)
self.update_stock_ledger(0)
@@ -63,7 +65,7 @@ class DocType(TransactionBase):
self.update_stock_ledger(1)
# update Production Order
self.update_production_order(0)
-
+
def validate_purpose(self):
valid_purposes = ["Material Issue", "Material Receipt", "Material Transfer",
"Manufacture/Repack", "Subcontract", "Sales Return", "Purchase Return"]
@@ -580,6 +582,18 @@ class DocType(TransactionBase):
'supplier_name' : res and res[0][0] or '',
'supplier_address' : addr and addr[0] or ''}
return ret
+
+ def validate_with_material_request(self):
+ for item in self.doclist.get({"parentfield": "mtn_details"}):
+ if item.material_request:
+ mreq_item = webnotes.conn.get_value("Material Request Item",
+ {"name": item.material_request_item, "parent": item.material_request},
+ ["item_code", "warehouse", "idx"], as_dict=True)
+ if mreq_item.item_code != item.item_code or mreq_item.warehouse != item.t_warehouse:
+ msgprint(_("Row #") + (" %d: " % item.idx) + _("does not match")
+ + " " + _("Row #") + (" %d %s " % (mreq_item.idx, _("of")))
+ + _("Material Request") + (" - %s" % item.material_request),
+ raise_exception=webnotes.MappingMismatchError)
@webnotes.whitelist()
def get_production_order_details(production_order):
diff --git a/stock/doctype/stock_entry_detail/locale/_messages_doc.json b/stock/doctype/stock_entry_detail/locale/_messages_doc.json
index cbfd425be0a..1bbb94ee754 100644
--- a/stock/doctype/stock_entry_detail/locale/_messages_doc.json
+++ b/stock/doctype/stock_entry_detail/locale/_messages_doc.json
@@ -1,20 +1,23 @@
[
- "Valuation Rate",
+ "Material Request",
+ "Batch No",
+ "UOM",
+ "Stock",
"Description",
- "Qty as per Stock UOM",
- "Stock UOM",
"Conversion Factor",
- "BOM No. for a Finished Good Item",
- "Amount",
+ "Stock UOM",
+ "Qty as per Stock UOM",
+ "Material Request used to make this Stock Entry",
"Source Warehouse",
+ "BOM No",
+ "Amount",
+ "Item Code",
+ "Stock Entry Detail",
+ "BOM No. for a Finished Good Item",
"Qty",
"Serial No",
- "BOM No",
"Target Warehouse",
- "Batch No",
- "Stock",
- "Actual Qty (at source/target)",
- "Item Code",
- "UOM",
- "Stock Entry Detail"
+ "Material Request Item",
+ "Valuation Rate",
+ "Actual Qty (at source/target)"
]
\ No newline at end of file
diff --git a/stock/doctype/stock_entry_detail/locale/de-doc.json b/stock/doctype/stock_entry_detail/locale/de-doc.json
new file mode 100644
index 00000000000..b4011a62a99
--- /dev/null
+++ b/stock/doctype/stock_entry_detail/locale/de-doc.json
@@ -0,0 +1,22 @@
+{
+ "Actual Qty (at source/target)": "Tats\u00e4chliche Menge (an der Quelle / Ziel)",
+ "Amount": "Menge",
+ "BOM No": "BOM Nein",
+ "BOM No. for a Finished Good Item": "BOM-Nr f\u00fcr Finished Gute Artikel",
+ "Batch No": "Batch No",
+ "Conversion Factor": "Umrechnungsfaktor",
+ "Description": "Beschreibung",
+ "Item Code": "Item Code",
+ "Material Request": "Material anfordern",
+ "Material Request Item": "Material anfordern Artikel",
+ "Qty": "Menge",
+ "Qty as per Stock UOM": "Menge pro dem Stock UOM",
+ "Serial No": "Serial In",
+ "Source Warehouse": "Quelle Warehouse",
+ "Stock": "Lager",
+ "Stock Entry Detail": "Lager Eintrag Details",
+ "Stock UOM": "Lager UOM",
+ "Target Warehouse": "Ziel Warehouse",
+ "UOM": "UOM",
+ "Valuation Rate": "Valuation bewerten"
+}
\ No newline at end of file
diff --git a/stock/doctype/stock_entry_detail/locale/pt-BR-doc.json b/stock/doctype/stock_entry_detail/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..94bb871a228
--- /dev/null
+++ b/stock/doctype/stock_entry_detail/locale/pt-BR-doc.json
@@ -0,0 +1,23 @@
+{
+ "Actual Qty (at source/target)": "Qtde Real (na origem / destino)",
+ "Amount": "Quantidade",
+ "BOM No": "N\u00ba da LDM",
+ "BOM No. for a Finished Good Item": "N\u00ba da LDM para um Item Bom Acabado",
+ "Batch No": "N\u00ba do Lote",
+ "Conversion Factor": "Fator de Convers\u00e3o",
+ "Description": "Descri\u00e7\u00e3o",
+ "Item Code": "C\u00f3digo do Item",
+ "Material Request": "Pedido de material",
+ "Material Request Item": "Item de solicita\u00e7\u00e3o de material",
+ "Material Request used to make this Stock Entry": "Pedido de material usado para fazer essa entrada de material",
+ "Qty": "Qtde.",
+ "Qty as per Stock UOM": "Qtde. como por UDM de estoque",
+ "Serial No": "N\u00ba de S\u00e9rie",
+ "Source Warehouse": "Almoxarifado de origem",
+ "Stock": "Estoque",
+ "Stock Entry Detail": "Detalhe do lan\u00e7amento no Estoque",
+ "Stock UOM": "UDM do Estoque",
+ "Target Warehouse": "Almoxarifado de destino",
+ "UOM": "UDM",
+ "Valuation Rate": "Taxa de Avalia\u00e7\u00e3o"
+}
\ No newline at end of file
diff --git a/stock/doctype/stock_entry_detail/locale/th-doc.json b/stock/doctype/stock_entry_detail/locale/th-doc.json
new file mode 100644
index 00000000000..43e780457ed
--- /dev/null
+++ b/stock/doctype/stock_entry_detail/locale/th-doc.json
@@ -0,0 +1,23 @@
+{
+ "Actual Qty (at source/target)": "\u0e08\u0e33\u0e19\u0e27\u0e19\u0e17\u0e35\u0e48\u0e40\u0e01\u0e34\u0e14\u0e02\u0e36\u0e49\u0e19\u0e08\u0e23\u0e34\u0e07 (\u0e17\u0e35\u0e48\u0e21\u0e32 / \u0e40\u0e1b\u0e49\u0e32\u0e2b\u0e21\u0e32\u0e22)",
+ "Amount": "\u0e08\u0e33\u0e19\u0e27\u0e19",
+ "BOM No": "BOM \u0e44\u0e21\u0e48\u0e21\u0e35",
+ "BOM No. for a Finished Good Item": "\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e25\u0e02 BOM \u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e17\u0e35\u0e48\u0e14\u0e35\u0e2a\u0e33\u0e40\u0e23\u0e47\u0e08\u0e23\u0e39\u0e1b",
+ "Batch No": "\u0e0a\u0e38\u0e14\u0e44\u0e21\u0e48\u0e21\u0e35",
+ "Conversion Factor": "\u0e1b\u0e31\u0e08\u0e08\u0e31\u0e22\u0e01\u0e32\u0e23\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e41\u0e1b\u0e25\u0e07",
+ "Description": "\u0e25\u0e31\u0e01\u0e29\u0e13\u0e30",
+ "Item Code": "\u0e23\u0e2b\u0e31\u0e2a\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Material Request": "\u0e02\u0e2d\u0e27\u0e31\u0e2a\u0e14\u0e38",
+ "Material Request Item": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e27\u0e31\u0e2a\u0e14\u0e38\u0e02\u0e2d",
+ "Material Request used to make this Stock Entry": "\u0e02\u0e2d\u0e27\u0e31\u0e2a\u0e14\u0e38\u0e17\u0e35\u0e48\u0e43\u0e0a\u0e49\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e43\u0e2b\u0e49\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e19\u0e35\u0e49",
+ "Qty": "\u0e08\u0e33\u0e19\u0e27\u0e19",
+ "Qty as per Stock UOM": "\u0e08\u0e33\u0e19\u0e27\u0e19\u0e15\u0e32\u0e21\u0e2a\u0e15\u0e47\u0e2d\u0e01 UOM",
+ "Serial No": "\u0e2d\u0e19\u0e38\u0e01\u0e23\u0e21\u0e44\u0e21\u0e48\u0e21\u0e35",
+ "Source Warehouse": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e17\u0e35\u0e48\u0e21\u0e32",
+ "Stock": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Stock Entry Detail": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e23\u0e32\u0e22\u200b\u200b\u0e01\u0e32\u0e23\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Stock UOM": "UOM \u0e2a\u0e15\u0e47\u0e2d\u0e01",
+ "Target Warehouse": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e40\u0e1b\u0e49\u0e32\u0e2b\u0e21\u0e32\u0e22",
+ "UOM": "UOM",
+ "Valuation Rate": "\u0e2d\u0e31\u0e15\u0e23\u0e32\u0e01\u0e32\u0e23\u0e1b\u0e23\u0e30\u0e40\u0e21\u0e34\u0e19"
+}
\ No newline at end of file
diff --git a/stock/doctype/stock_ledger/locale/de-doc.json b/stock/doctype/stock_ledger/locale/de-doc.json
new file mode 100644
index 00000000000..1a6f8d718a9
--- /dev/null
+++ b/stock/doctype/stock_ledger/locale/de-doc.json
@@ -0,0 +1,4 @@
+{
+ "Stock": "Lager",
+ "Stock Ledger": "Lager Ledger"
+}
\ No newline at end of file
diff --git a/stock/doctype/stock_ledger/locale/pt-BR-doc.json b/stock/doctype/stock_ledger/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..3476c2bac70
--- /dev/null
+++ b/stock/doctype/stock_ledger/locale/pt-BR-doc.json
@@ -0,0 +1,4 @@
+{
+ "Stock": "Estoque",
+ "Stock Ledger": "Livro de Invent\u00e1rio"
+}
\ No newline at end of file
diff --git a/stock/doctype/stock_ledger/locale/th-doc.json b/stock/doctype/stock_ledger/locale/th-doc.json
new file mode 100644
index 00000000000..4939b69380d
--- /dev/null
+++ b/stock/doctype/stock_ledger/locale/th-doc.json
@@ -0,0 +1,4 @@
+{
+ "Stock": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Stock Ledger": "\u0e1a\u0e31\u0e0d\u0e0a\u0e35\u0e41\u0e22\u0e01\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32"
+}
\ No newline at end of file
diff --git a/stock/doctype/stock_ledger_entry/locale/de-doc.json b/stock/doctype/stock_ledger_entry/locale/de-doc.json
new file mode 100644
index 00000000000..546f3260916
--- /dev/null
+++ b/stock/doctype/stock_ledger_entry/locale/de-doc.json
@@ -0,0 +1,27 @@
+{
+ "Actual Qty After Transaction": "Tats\u00e4chliche Menge Nach Transaction",
+ "Actual Quantity": "Tats\u00e4chliche Menge",
+ "Batch No": "Batch No",
+ "Company": "Firma",
+ "Fiscal Year": "Gesch\u00e4ftsjahr",
+ "Incoming Rate": "Incoming Rate",
+ "Is Cancelled": "Wird abgebrochen",
+ "Item Code": "Item Code",
+ "No": "Auf",
+ "Posting Date": "Buchungsdatum",
+ "Posting Time": "Posting Zeit",
+ "Serial No": "Serial In",
+ "Stock": "Lager",
+ "Stock Ledger Entry": "Lager Ledger Eintrag",
+ "Stock Queue (FIFO)": "Lager Queue (FIFO)",
+ "Stock UOM": "Lager UOM",
+ "Stock Value": "Bestandswert",
+ "The date at which current entry will get or has actually executed.": "Das Datum, an dem aktuellen Eintrag zu erhalten oder wird tats\u00e4chlich ausgef\u00fchrt.",
+ "Valuation Rate": "Valuation bewerten",
+ "Voucher Detail No": "Gutschein Detailaufnahme",
+ "Voucher No": "Gutschein Nein",
+ "Voucher Type": "Gutschein Type",
+ "Warehouse": "Lager",
+ "Warehouse Type": "Warehouse Typ",
+ "Yes": "Ja"
+}
\ No newline at end of file
diff --git a/stock/doctype/stock_ledger_entry/locale/de-py.json b/stock/doctype/stock_ledger_entry/locale/de-py.json
new file mode 100644
index 00000000000..eef9d91333a
--- /dev/null
+++ b/stock/doctype/stock_ledger_entry/locale/de-py.json
@@ -0,0 +1,3 @@
+{
+ "User not allowed entry in the Warehouse": "Benutzer nicht erlaubt Eintrag in der Warehouse"
+}
\ No newline at end of file
diff --git a/stock/doctype/stock_ledger_entry/locale/pt-BR-doc.json b/stock/doctype/stock_ledger_entry/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..5bc949310d2
--- /dev/null
+++ b/stock/doctype/stock_ledger_entry/locale/pt-BR-doc.json
@@ -0,0 +1,27 @@
+{
+ "Actual Qty After Transaction": "Qtde Real Ap\u00f3s a Transa\u00e7\u00e3o",
+ "Actual Quantity": "Quantidade Real",
+ "Batch No": "N\u00ba do Lote",
+ "Company": "Empresa",
+ "Fiscal Year": "Exerc\u00edcio fiscal",
+ "Incoming Rate": "Taxa de entrada",
+ "Is Cancelled": "\u00c9 cancelado",
+ "Item Code": "C\u00f3digo do Item",
+ "No": "N\u00e3o",
+ "Posting Date": "Data da Postagem",
+ "Posting Time": "Hor\u00e1rio da Postagem",
+ "Serial No": "N\u00ba de S\u00e9rie",
+ "Stock": "Estoque",
+ "Stock Ledger Entry": "Lan\u00e7amento do Livro de Invent\u00e1rio",
+ "Stock Queue (FIFO)": "Fila do estoque (PEPS)",
+ "Stock UOM": "UDM do Estoque",
+ "Stock Value": "Valor do Estoque",
+ "The date at which current entry will get or has actually executed.": "A data em que o lan\u00e7amento atual vai ser ou foi realmente executado.",
+ "Valuation Rate": "Taxa de Avalia\u00e7\u00e3o",
+ "Voucher Detail No": "N\u00ba do Detalhe do comprovante",
+ "Voucher No": "N\u00ba do comprovante",
+ "Voucher Type": "Tipo de comprovante",
+ "Warehouse": "Almoxarifado",
+ "Warehouse Type": "Tipo de Almoxarifado",
+ "Yes": "Sim"
+}
\ No newline at end of file
diff --git a/stock/doctype/stock_ledger_entry/locale/pt-BR-py.json b/stock/doctype/stock_ledger_entry/locale/pt-BR-py.json
new file mode 100644
index 00000000000..b7010307a97
--- /dev/null
+++ b/stock/doctype/stock_ledger_entry/locale/pt-BR-py.json
@@ -0,0 +1,3 @@
+{
+ "User not allowed entry in the Warehouse": "Entrada do usu\u00e1rio n\u00e3o \u00e9 permitido no Armaz\u00e9m"
+}
\ No newline at end of file
diff --git a/stock/doctype/stock_ledger_entry/locale/th-doc.json b/stock/doctype/stock_ledger_entry/locale/th-doc.json
new file mode 100644
index 00000000000..d3a779bd758
--- /dev/null
+++ b/stock/doctype/stock_ledger_entry/locale/th-doc.json
@@ -0,0 +1,27 @@
+{
+ "Actual Qty After Transaction": "\u0e08\u0e33\u0e19\u0e27\u0e19\u0e17\u0e35\u0e48\u0e40\u0e01\u0e34\u0e14\u0e02\u0e36\u0e49\u0e19\u0e08\u0e23\u0e34\u0e07\u0e2b\u0e25\u0e31\u0e07\u0e17\u0e33\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23",
+ "Actual Quantity": "\u0e08\u0e33\u0e19\u0e27\u0e19\u0e17\u0e35\u0e48\u0e40\u0e01\u0e34\u0e14\u0e02\u0e36\u0e49\u0e19\u0e08\u0e23\u0e34\u0e07",
+ "Batch No": "\u0e0a\u0e38\u0e14\u0e44\u0e21\u0e48\u0e21\u0e35",
+ "Company": "\u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17",
+ "Fiscal Year": "\u0e1b\u0e35\u0e07\u0e1a\u0e1b\u0e23\u0e30\u0e21\u0e32\u0e13",
+ "Incoming Rate": "\u0e2d\u0e31\u0e15\u0e23\u0e32\u0e40\u0e02\u0e49\u0e32",
+ "Is Cancelled": "\u0e40\u0e1b\u0e47\u0e19\u0e22\u0e01\u0e40\u0e25\u0e34\u0e01",
+ "Item Code": "\u0e23\u0e2b\u0e31\u0e2a\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "No": "\u0e44\u0e21\u0e48",
+ "Posting Date": "\u0e42\u0e1e\u0e2a\u0e15\u0e4c\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48",
+ "Posting Time": "\u0e42\u0e1e\u0e2a\u0e15\u0e4c\u0e40\u0e27\u0e25\u0e32",
+ "Serial No": "\u0e2d\u0e19\u0e38\u0e01\u0e23\u0e21\u0e44\u0e21\u0e48\u0e21\u0e35",
+ "Stock": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Stock Ledger Entry": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e1a\u0e31\u0e0d\u0e0a\u0e35\u0e41\u0e22\u0e01\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17",
+ "Stock Queue (FIFO)": "\u0e2a\u0e15\u0e47\u0e2d\u0e01\u0e04\u0e34\u0e27 (FIFO)",
+ "Stock UOM": "UOM \u0e2a\u0e15\u0e47\u0e2d\u0e01",
+ "Stock Value": "\u0e21\u0e39\u0e25\u0e04\u0e48\u0e32\u0e2b\u0e38\u0e49\u0e19",
+ "The date at which current entry will get or has actually executed.": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\u0e17\u0e35\u0e48\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e1b\u0e31\u0e08\u0e08\u0e38\u0e1a\u0e31\u0e19\u0e08\u0e30\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e2b\u0e23\u0e37\u0e2d\u0e44\u0e14\u0e49\u0e14\u0e33\u0e40\u0e19\u0e34\u0e19\u0e01\u0e32\u0e23\u0e08\u0e23\u0e34\u0e07",
+ "Valuation Rate": "\u0e2d\u0e31\u0e15\u0e23\u0e32\u0e01\u0e32\u0e23\u0e1b\u0e23\u0e30\u0e40\u0e21\u0e34\u0e19",
+ "Voucher Detail No": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e1a\u0e31\u0e15\u0e23\u0e01\u0e33\u0e19\u0e31\u0e25\u0e44\u0e21\u0e48\u0e21\u0e35",
+ "Voucher No": "\u0e1a\u0e31\u0e15\u0e23\u0e01\u0e33\u0e19\u0e31\u0e25\u0e44\u0e21\u0e48\u0e21\u0e35",
+ "Voucher Type": "\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e1a\u0e31\u0e15\u0e23\u0e01\u0e33\u0e19\u0e31\u0e25",
+ "Warehouse": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Warehouse Type": "\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Yes": "\u0e43\u0e0a\u0e48"
+}
\ No newline at end of file
diff --git a/stock/doctype/stock_ledger_entry/locale/th-py.json b/stock/doctype/stock_ledger_entry/locale/th-py.json
new file mode 100644
index 00000000000..a706afb0bd5
--- /dev/null
+++ b/stock/doctype/stock_ledger_entry/locale/th-py.json
@@ -0,0 +1,3 @@
+{
+ "User not allowed entry in the Warehouse": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e44\u0e21\u0e48\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e2d\u0e19\u0e38\u0e0d\u0e32\u0e15\u0e43\u0e19\u0e42\u0e01\u0e14\u0e31\u0e07"
+}
\ No newline at end of file
diff --git a/stock/doctype/stock_reconciliation/locale/_messages_py.json b/stock/doctype/stock_reconciliation/locale/_messages_py.json
index 5c6434737cd..e5f7a14b6d9 100644
--- a/stock/doctype/stock_reconciliation/locale/_messages_py.json
+++ b/stock/doctype/stock_reconciliation/locale/_messages_py.json
@@ -1,10 +1,10 @@
[
"Stock Reconciliation file not uploaded",
- "Row # ",
+ " is less than equals to zero in the system, \\\n\t\t\t\t\t\tvaluation rate is mandatory for this item",
"Sorry! We can only allow upto 100 rows for Stock Reconciliation.",
"As existing qty for item: ",
+ "' can not be managed using Stock Reconciliation.\\\n\t\t\t\t\tYou can add/delete Serial No directly, \\\n\t\t\t\t\tto modify stock of this item.",
"Serialized Item: '",
- "' can not be managed using Stock Reconciliation.\\\t\t\t\t\tYou can add/delete Serial No directly, \\\t\t\t\t\tto modify stock of this item.",
- "Hey! You seem to be using the wrong template. \\\t\t\t\tClick on 'Download Template' button to get the correct template.",
- " is less than equals to zero in the system, \\\t\t\t\t\t\tvaluation rate is mandatory for this item"
+ "Row # ",
+ "Hey! You seem to be using the wrong template. \\\n\t\t\t\tClick on 'Download Template' button to get the correct template."
]
\ No newline at end of file
diff --git a/stock/doctype/stock_reconciliation/locale/de-doc.json b/stock/doctype/stock_reconciliation/locale/de-doc.json
new file mode 100644
index 00000000000..7a3eefef1db
--- /dev/null
+++ b/stock/doctype/stock_reconciliation/locale/de-doc.json
@@ -0,0 +1,12 @@
+{
+ "Amended From": "Ge\u00e4ndert von",
+ "Posting Date": "Buchungsdatum",
+ "Posting Time": "Posting Zeit",
+ "Reconciliation Data": "Datenabgleich",
+ "Reconciliation HTML": "HTML Vers\u00f6hnung",
+ "Reconciliation JSON": "\u00dcberleitung JSON",
+ "Stock": "Lager",
+ "Stock Reconciliation": "Lager Vers\u00f6hnung",
+ "This tool helps you to update or fix the quantity and valuation of stock in the system. It is typically used to synchronise the system values and what actually exists in your warehouses.": "Dieses Tool hilft Ihnen zu aktualisieren oder zu beheben die Menge und die Bewertung der Aktie im System. Es wird normalerweise verwendet, um das System abzugleichen und was tats\u00e4chlich existiert in Ihrem Lager.",
+ "Upload HTML": "Hochladen HTML"
+}
\ No newline at end of file
diff --git a/stock/doctype/stock_reconciliation/locale/de-py.json b/stock/doctype/stock_reconciliation/locale/de-py.json
new file mode 100644
index 00000000000..515e0613afa
--- /dev/null
+++ b/stock/doctype/stock_reconciliation/locale/de-py.json
@@ -0,0 +1,5 @@
+{
+ "Serialized Item: '": "Serialisiert Item '",
+ "Sorry! We can only allow upto 100 rows for Stock Reconciliation.": "Sorry! Wir k\u00f6nnen nur bis zu 100 Zeilen f\u00fcr Stock Reconciliation erm\u00f6glichen.",
+ "Stock Reconciliation file not uploaded": "Lager Vers\u00f6hnung Datei nicht hochgeladen"
+}
\ No newline at end of file
diff --git a/stock/doctype/stock_reconciliation/locale/pt-BR-doc.json b/stock/doctype/stock_reconciliation/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..07ef2a3292e
--- /dev/null
+++ b/stock/doctype/stock_reconciliation/locale/pt-BR-doc.json
@@ -0,0 +1,12 @@
+{
+ "Amended From": "Corrigido De",
+ "Posting Date": "Data da Postagem",
+ "Posting Time": "Hor\u00e1rio da Postagem",
+ "Reconciliation Data": "Dados de reconcilia\u00e7\u00e3o",
+ "Reconciliation HTML": "Reconcilia\u00e7\u00e3o HTML",
+ "Reconciliation JSON": "Reconcilia\u00e7\u00e3o JSON",
+ "Stock": "Estoque",
+ "Stock Reconciliation": "Reconcilia\u00e7\u00e3o de Estoque",
+ "This tool helps you to update or fix the quantity and valuation of stock in the system. It is typically used to synchronise the system values and what actually exists in your warehouses.": "Esta ferramenta ajuda a atualizar ou corrigir a quantidade e a valoriza\u00e7\u00e3o do estoque no sistema. Ela \u00e9 geralmente usada para sincronizar os valores do sistema e o que realmente existe em seus almoxarifados.",
+ "Upload HTML": "Carregar HTML"
+}
\ No newline at end of file
diff --git a/stock/doctype/stock_reconciliation/locale/pt-BR-py.json b/stock/doctype/stock_reconciliation/locale/pt-BR-py.json
new file mode 100644
index 00000000000..4faeaa18805
--- /dev/null
+++ b/stock/doctype/stock_reconciliation/locale/pt-BR-py.json
@@ -0,0 +1,7 @@
+{
+ "As existing qty for item: ": "Como qtde. existente para o item:",
+ "Row # ": "Linha #",
+ "Serialized Item: '": "Item serializado: '",
+ "Sorry! We can only allow upto 100 rows for Stock Reconciliation.": "Desculpe! N\u00f3s s\u00f3 podemos permitir no m\u00e1ximo 100 linhas para Reconcilia\u00e7\u00e3o de Estoque.",
+ "Stock Reconciliation file not uploaded": "Arquivo da Reconcilia\u00e7\u00e3o de Estoque n\u00e3o carregado"
+}
\ No newline at end of file
diff --git a/stock/doctype/stock_reconciliation/locale/th-doc.json b/stock/doctype/stock_reconciliation/locale/th-doc.json
new file mode 100644
index 00000000000..4855d9aef87
--- /dev/null
+++ b/stock/doctype/stock_reconciliation/locale/th-doc.json
@@ -0,0 +1,12 @@
+{
+ "Amended From": "\u0e41\u0e01\u0e49\u0e44\u0e02\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21",
+ "Posting Date": "\u0e42\u0e1e\u0e2a\u0e15\u0e4c\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48",
+ "Posting Time": "\u0e42\u0e1e\u0e2a\u0e15\u0e4c\u0e40\u0e27\u0e25\u0e32",
+ "Reconciliation Data": "\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e01\u0e32\u0e23\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a",
+ "Reconciliation HTML": "HTML \u0e2a\u0e21\u0e32\u0e19\u0e09\u0e31\u0e19\u0e17\u0e4c",
+ "Reconciliation JSON": "JSON \u0e2a\u0e21\u0e32\u0e19\u0e09\u0e31\u0e19\u0e17\u0e4c",
+ "Stock": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Stock Reconciliation": "\u0e2a\u0e21\u0e32\u0e19\u0e09\u0e31\u0e19\u0e17\u0e4c\u0e2a\u0e15\u0e47\u0e2d\u0e01",
+ "This tool helps you to update or fix the quantity and valuation of stock in the system. It is typically used to synchronise the system values and what actually exists in your warehouses.": "\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e21\u0e37\u0e2d\u0e19\u0e35\u0e49\u0e0a\u0e48\u0e27\u0e22\u0e43\u0e2b\u0e49\u0e04\u0e38\u0e13\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e1b\u0e23\u0e31\u0e1a\u0e1b\u0e23\u0e38\u0e07\u0e2b\u0e23\u0e37\u0e2d\u0e41\u0e01\u0e49\u0e44\u0e02\u0e1b\u0e23\u0e34\u0e21\u0e32\u0e13\u0e41\u0e25\u0e30\u0e21\u0e39\u0e25\u0e04\u0e48\u0e32\u0e02\u0e2d\u0e07\u0e2b\u0e38\u0e49\u0e19\u0e43\u0e19\u0e23\u0e30\u0e1a\u0e1a \u0e21\u0e31\u0e19\u0e21\u0e31\u0e01\u0e08\u0e30\u0e43\u0e0a\u0e49\u0e43\u0e19\u0e01\u0e32\u0e23\u0e1b\u0e23\u0e30\u0e2a\u0e32\u0e19\u0e04\u0e48\u0e32\u0e23\u0e30\u0e1a\u0e1a\u0e41\u0e25\u0e30\u0e2a\u0e34\u0e48\u0e07\u0e17\u0e35\u0e48\u0e21\u0e35\u0e2d\u0e22\u0e39\u0e48\u0e08\u0e23\u0e34\u0e07\u0e43\u0e19\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13",
+ "Upload HTML": "\u0e2d\u0e31\u0e1e\u0e42\u0e2b\u0e25\u0e14 HTML"
+}
\ No newline at end of file
diff --git a/stock/doctype/stock_reconciliation/locale/th-py.json b/stock/doctype/stock_reconciliation/locale/th-py.json
new file mode 100644
index 00000000000..5f029318c66
--- /dev/null
+++ b/stock/doctype/stock_reconciliation/locale/th-py.json
@@ -0,0 +1,10 @@
+{
+ " is less than equals to zero in the system, \\\t\t\t\t\t\tvaluation rate is mandatory for this item": "\u0e21\u0e35\u0e04\u0e48\u0e32\u0e19\u0e49\u0e2d\u0e22\u0e01\u0e27\u0e48\u0e32\u0e40\u0e17\u0e48\u0e32\u0e01\u0e31\u0e1a\u0e28\u0e39\u0e19\u0e22\u0e4c\u0e43\u0e19\u0e23\u0e30\u0e1a\u0e1a\u0e2d\u0e31\u0e15\u0e23\u0e32\u0e21\u0e39\u0e25\u0e04\u0e48\u0e32 \\ \u0e21\u0e35\u0e1c\u0e25\u0e1a\u0e31\u0e07\u0e04\u0e31\u0e1a\u0e43\u0e0a\u0e49\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e19\u0e35\u200b\u200b\u0e49",
+ "' can not be managed using Stock Reconciliation.\\\t\t\t\t\tYou can add/delete Serial No directly, \\\t\t\t\t\tto modify stock of this item.": "'\u0e44\u0e21\u0e48\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e44\u0e14\u0e49\u0e42\u0e14\u0e22\u0e43\u0e0a\u0e49\u0e01\u0e32\u0e23\u0e01\u0e23\u0e30\u0e17\u0e1a\u0e22\u0e2d\u0e14\u0e2a\u0e15\u0e47\u0e2d\u0e01. \\ \u0e04\u0e38\u0e13\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e40\u0e1e\u0e34\u0e48\u0e21 / \u0e25\u0e1a\u0e2d\u0e19\u0e38\u0e01\u0e23\u0e21\u0e44\u0e21\u0e48\u0e21\u0e35\u0e42\u0e14\u0e22\u0e15\u0e23\u0e07 \\ \u0e01\u0e32\u0e23\u0e1b\u0e23\u0e31\u0e1a\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e2b\u0e38\u0e49\u0e19\u0e02\u0e2d\u0e07\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e19\u0e35\u200b\u200b\u0e49",
+ "As existing qty for item: ": "\u0e40\u0e1b\u0e47\u0e19\u0e08\u0e33\u0e19\u0e27\u0e19\u0e17\u0e35\u0e48\u0e21\u0e35\u0e2d\u0e22\u0e39\u0e48\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23:",
+ "Hey! You seem to be using the wrong template. \\\t\t\t\tClick on 'Download Template' button to get the correct template.": "Hey! \u0e04\u0e38\u0e13\u0e14\u0e39\u0e40\u0e2b\u0e21\u0e37\u0e2d\u0e19\u0e08\u0e30\u0e43\u0e0a\u0e49\u0e41\u0e21\u0e48\u0e41\u0e1a\u0e1a\u0e17\u0e35\u0e48\u0e44\u0e21\u0e48\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07 \\ \u0e04\u0e25\u0e34\u0e01\u0e17\u0e35\u0e48\u0e1b\u0e38\u0e48\u0e21 '\u0e14\u0e32\u0e27\u0e19\u0e4c\u0e42\u0e2b\u0e25\u0e14\u0e41\u0e21\u0e48\u0e41\u0e1a\u0e1a' \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e41\u0e21\u0e48\u0e17\u0e35\u0e48\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07",
+ "Row # ": "\u0e41\u0e16\u0e27 #",
+ "Serialized Item: '": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e15\u0e48\u0e2d\u0e40\u0e19\u0e37\u0e48\u0e2d\u0e07: '",
+ "Sorry! We can only allow upto 100 rows for Stock Reconciliation.": "\u0e02\u0e2d\u0e2d\u0e20\u0e31\u0e22! \u0e40\u0e23\u0e32\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e43\u0e2b\u0e49\u0e44\u0e21\u0e48\u0e40\u0e01\u0e34\u0e19 100 \u0e41\u0e16\u0e27\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e01\u0e23\u0e30\u0e17\u0e1a\u0e22\u0e2d\u0e14\u0e2a\u0e15\u0e47\u0e2d\u0e01",
+ "Stock Reconciliation file not uploaded": "\u0e44\u0e1f\u0e25\u0e4c\u0e2a\u0e21\u0e32\u0e19\u0e09\u0e31\u0e19\u0e17\u0e4c\u0e2a\u0e15\u0e47\u0e2d\u0e01\u0e44\u0e21\u0e48\u0e44\u0e14\u0e49\u0e2d\u0e31\u0e1b\u0e42\u0e2b\u0e25\u0e14"
+}
\ No newline at end of file
diff --git a/stock/doctype/stock_uom_replace_utility/locale/_messages_doc.json b/stock/doctype/stock_uom_replace_utility/locale/_messages_doc.json
index f68ca3fd1a5..dc55b35f66c 100644
--- a/stock/doctype/stock_uom_replace_utility/locale/_messages_doc.json
+++ b/stock/doctype/stock_uom_replace_utility/locale/_messages_doc.json
@@ -1,9 +1,9 @@
[
"New Stock UOM",
"Conversion Factor",
- "Update",
- "Stock UOM Replace Utility",
"Current Stock UOM",
+ "Stock UOM Replace Utility",
+ "Update",
"Item",
"Stock"
]
\ No newline at end of file
diff --git a/stock/doctype/stock_uom_replace_utility/locale/de-doc.json b/stock/doctype/stock_uom_replace_utility/locale/de-doc.json
new file mode 100644
index 00000000000..25ce91a3db1
--- /dev/null
+++ b/stock/doctype/stock_uom_replace_utility/locale/de-doc.json
@@ -0,0 +1,9 @@
+{
+ "Conversion Factor": "Umrechnungsfaktor",
+ "Current Stock UOM": "Aktuelle Stock UOM",
+ "Item": "Artikel",
+ "New Stock UOM": "New Stock UOM",
+ "Stock": "Lager",
+ "Stock UOM Replace Utility": "Lager UOM ersetzen Dienstprogramm",
+ "Update": "Aktualisieren"
+}
\ No newline at end of file
diff --git a/stock/doctype/stock_uom_replace_utility/locale/pt-BR-doc.json b/stock/doctype/stock_uom_replace_utility/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..e9656d7beb1
--- /dev/null
+++ b/stock/doctype/stock_uom_replace_utility/locale/pt-BR-doc.json
@@ -0,0 +1,9 @@
+{
+ "Conversion Factor": "Fator de Convers\u00e3o",
+ "Current Stock UOM": "UDM de Estoque Atual",
+ "Item": "Item",
+ "New Stock UOM": "Nova UDM de estoque",
+ "Stock": "Estoque",
+ "Stock UOM Replace Utility": "Utilit\u00e1rio para Substituir UDM do Estoque",
+ "Update": "Atualizar"
+}
\ No newline at end of file
diff --git a/stock/doctype/stock_uom_replace_utility/locale/th-doc.json b/stock/doctype/stock_uom_replace_utility/locale/th-doc.json
new file mode 100644
index 00000000000..aab91798774
--- /dev/null
+++ b/stock/doctype/stock_uom_replace_utility/locale/th-doc.json
@@ -0,0 +1,9 @@
+{
+ "Conversion Factor": "\u0e1b\u0e31\u0e08\u0e08\u0e31\u0e22\u0e01\u0e32\u0e23\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e41\u0e1b\u0e25\u0e07",
+ "Current Stock UOM": "UOM \u0e15\u0e47\u0e2d\u0e01\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e1b\u0e31\u0e08\u0e08\u0e38\u0e1a\u0e31\u0e19",
+ "Item": "\u0e0a\u0e34\u0e49\u0e19",
+ "New Stock UOM": "\u0e43\u0e2b\u0e21\u0e48 UOM \u0e2a\u0e15\u0e47\u0e2d\u0e01",
+ "Stock": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Stock UOM Replace Utility": "\u0e2a\u0e15\u0e47\u0e2d\u0e01\u0e22\u0e39\u0e17\u0e34\u0e25\u0e34\u0e15\u0e35\u0e49\u0e41\u0e17\u0e19\u0e17\u0e35\u0e48 UOM",
+ "Update": "\u0e2d\u0e31\u0e1e\u0e40\u0e14\u0e17"
+}
\ No newline at end of file
diff --git a/stock/doctype/uom_conversion_detail/locale/de-doc.json b/stock/doctype/uom_conversion_detail/locale/de-doc.json
new file mode 100644
index 00000000000..0f8d4202ad1
--- /dev/null
+++ b/stock/doctype/uom_conversion_detail/locale/de-doc.json
@@ -0,0 +1,6 @@
+{
+ "Conversion Factor": "Umrechnungsfaktor",
+ "Stock": "Lager",
+ "UOM": "UOM",
+ "UOM Conversion Detail": "UOM Conversion Details"
+}
\ No newline at end of file
diff --git a/stock/doctype/uom_conversion_detail/locale/pt-BR-doc.json b/stock/doctype/uom_conversion_detail/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..e3af08bf4e7
--- /dev/null
+++ b/stock/doctype/uom_conversion_detail/locale/pt-BR-doc.json
@@ -0,0 +1,6 @@
+{
+ "Conversion Factor": "Fator de Convers\u00e3o",
+ "Stock": "Estoque",
+ "UOM": "UDM",
+ "UOM Conversion Detail": "Detalhe da Convers\u00e3o de UDM"
+}
\ No newline at end of file
diff --git a/stock/doctype/uom_conversion_detail/locale/th-doc.json b/stock/doctype/uom_conversion_detail/locale/th-doc.json
new file mode 100644
index 00000000000..f90b3bceaee
--- /dev/null
+++ b/stock/doctype/uom_conversion_detail/locale/th-doc.json
@@ -0,0 +1,6 @@
+{
+ "Conversion Factor": "\u0e1b\u0e31\u0e08\u0e08\u0e31\u0e22\u0e01\u0e32\u0e23\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e41\u0e1b\u0e25\u0e07",
+ "Stock": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "UOM": "UOM",
+ "UOM Conversion Detail": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e01\u0e32\u0e23\u0e41\u0e1b\u0e25\u0e07 UOM"
+}
\ No newline at end of file
diff --git a/stock/doctype/valuation_control/locale/de-doc.json b/stock/doctype/valuation_control/locale/de-doc.json
new file mode 100644
index 00000000000..7a2c605b337
--- /dev/null
+++ b/stock/doctype/valuation_control/locale/de-doc.json
@@ -0,0 +1,4 @@
+{
+ "Stock": "Lager",
+ "Valuation Control": "Valuation Control-"
+}
\ No newline at end of file
diff --git a/stock/doctype/valuation_control/locale/pt-BR-doc.json b/stock/doctype/valuation_control/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..34180c08eb8
--- /dev/null
+++ b/stock/doctype/valuation_control/locale/pt-BR-doc.json
@@ -0,0 +1,4 @@
+{
+ "Stock": "Estoque",
+ "Valuation Control": "Controle de Avalia\u00e7\u00e3o"
+}
\ No newline at end of file
diff --git a/stock/doctype/valuation_control/locale/th-doc.json b/stock/doctype/valuation_control/locale/th-doc.json
new file mode 100644
index 00000000000..ecd479c5bd8
--- /dev/null
+++ b/stock/doctype/valuation_control/locale/th-doc.json
@@ -0,0 +1,4 @@
+{
+ "Stock": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Valuation Control": "\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e01\u0e32\u0e23\u0e1b\u0e23\u0e30\u0e40\u0e21\u0e34\u0e19"
+}
\ No newline at end of file
diff --git a/stock/doctype/warehouse/locale/de-doc.json b/stock/doctype/warehouse/locale/de-doc.json
new file mode 100644
index 00000000000..783e7449fbf
--- /dev/null
+++ b/stock/doctype/warehouse/locale/de-doc.json
@@ -0,0 +1,25 @@
+{
+ "A logical Warehouse against which stock entries are made.": "Eine logische Warehouse gegen die Lager-Eintr\u00e4ge vorgenommen werden.",
+ "Address Line 1": "Address Line 1",
+ "Address Line 2": "Address Line 2",
+ "City": "City",
+ "Company": "Firma",
+ "Email Id": "Email Id",
+ "For Reference Only.": "Nur als Referenz.",
+ "If set, data entry is only allowed for specified users. Else, entry is allowed for all users with requisite permissions.": "Wenn gesetzt, wird die Dateneingabe nur f\u00fcr bestimmte Benutzer erlaubt. Else, wird der Eintritt f\u00fcr alle Benutzer mit den erforderlichen Berechtigungen erlaubt.",
+ "Merge": "Verschmelzen",
+ "Merge Warehouses": "Merge Warehouses",
+ "Merge With": "Mit Merge",
+ "Mobile No": "In Mobile",
+ "PIN": "PIN",
+ "Phone No": "Phone In",
+ "State": "Zustand",
+ "Stock": "Lager",
+ "This feature is for merging duplicate warehouses. It will replace all the links of this warehouse by \"Merge With\" warehouse. After merging you can delete this warehouse, as stock level for this warehouse will be zero.": "Diese Funktion ist f\u00fcr das Zusammenf\u00fchren von doppelten Lagern. Es werden alle Links dieses Lagerhaus Warehouse \"Mit Merge\" zu ersetzen. Nach dem Zusammenf\u00fchren l\u00f6schen Sie dieses Warehouse als Bestand f\u00fcr dieses Lager wird gleich Null sein.",
+ "Warehouse": "Lager",
+ "Warehouse Contact Info": "Warehouse Kontakt Info",
+ "Warehouse Detail": "Warehouse Details",
+ "Warehouse Name": "Warehouse Namen",
+ "Warehouse Type": "Warehouse Typ",
+ "Warehouse Users": "Warehouse-Benutzer"
+}
\ No newline at end of file
diff --git a/stock/doctype/warehouse/locale/pt-BR-doc.json b/stock/doctype/warehouse/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..3abf7b23020
--- /dev/null
+++ b/stock/doctype/warehouse/locale/pt-BR-doc.json
@@ -0,0 +1,25 @@
+{
+ "A logical Warehouse against which stock entries are made.": "Um Almoxarifado l\u00f3gico contra o qual os lan\u00e7amentos de estoque s\u00e3o feitos.",
+ "Address Line 1": "Endere\u00e7o Linha 1",
+ "Address Line 2": "Endere\u00e7o Linha 2",
+ "City": "Cidade",
+ "Company": "Empresa",
+ "Email Id": "Endere\u00e7o de e-mail",
+ "For Reference Only.": "Apenas para refer\u00eancia.",
+ "If set, data entry is only allowed for specified users. Else, entry is allowed for all users with requisite permissions.": "Se definido, a entrada de dados s\u00f3 \u00e9 permitida para usu\u00e1rios especificados. Outra, a entrada \u00e9 permitida para todos os usu\u00e1rios com permiss\u00f5es necess\u00e1rias.",
+ "Merge": "Unir",
+ "Merge Warehouses": "Unir Almoxarifados",
+ "Merge With": "Unir com",
+ "Mobile No": "Telefone Celular",
+ "PIN": "PIN",
+ "Phone No": "N\u00ba de telefone",
+ "State": "Estado",
+ "Stock": "Estoque",
+ "This feature is for merging duplicate warehouses. It will replace all the links of this warehouse by \"Merge With\" warehouse. After merging you can delete this warehouse, as stock level for this warehouse will be zero.": "Este recurso \u00e9 para a fus\u00e3o almoxarifados duplicados. Ele ir\u00e1 substituir todos os links deste almoxarifado pelos do almoxarifado "Mesclar Com". Ap\u00f3s a fus\u00e3o voc\u00ea pode excluir este almoxarifado, pois o n\u00edvel de estoque para este almoxarifado vai ser zero.",
+ "Warehouse": "Almoxarifado",
+ "Warehouse Contact Info": "Informa\u00e7\u00f5es de Contato do Almoxarifado",
+ "Warehouse Detail": "Detalhe do Almoxarifado",
+ "Warehouse Name": "Nome do Almoxarifado",
+ "Warehouse Type": "Tipo de Almoxarifado",
+ "Warehouse Users": "Usu\u00e1rios do Warehouse"
+}
\ No newline at end of file
diff --git a/stock/doctype/warehouse/locale/th-doc.json b/stock/doctype/warehouse/locale/th-doc.json
new file mode 100644
index 00000000000..111d67df935
--- /dev/null
+++ b/stock/doctype/warehouse/locale/th-doc.json
@@ -0,0 +1,25 @@
+{
+ "A logical Warehouse against which stock entries are made.": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e15\u0e23\u0e23\u0e01\u0e30\u0e01\u0e31\u0e1a\u0e17\u0e35\u0e48\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e2a\u0e15\u0e47\u0e2d\u0e01\u0e08\u0e30\u0e17\u0e33",
+ "Address Line 1": "\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e1a\u0e23\u0e23\u0e17\u0e31\u0e14\u0e17\u0e35\u0e48 1",
+ "Address Line 2": "\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e1a\u0e23\u0e23\u0e17\u0e31\u0e14\u0e17\u0e35\u0e48 2",
+ "City": "\u0e40\u0e21\u0e37\u0e2d\u0e07",
+ "Company": "\u0e1a\u0e23\u0e34\u0e29\u0e31\u0e17",
+ "Email Id": "Email \u0e23\u0e2b\u0e31\u0e2a",
+ "For Reference Only.": "\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e2d\u0e49\u0e32\u0e07\u0e2d\u0e34\u0e07\u0e40\u0e17\u0e48\u0e32\u0e19\u0e31\u0e49\u0e19",
+ "If set, data entry is only allowed for specified users. Else, entry is allowed for all users with requisite permissions.": "\u0e2b\u0e32\u0e01\u0e15\u0e31\u0e49\u0e07\u0e01\u0e32\u0e23\u0e1b\u0e49\u0e2d\u0e19\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e17\u0e35\u0e48\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e2d\u0e19\u0e38\u0e0d\u0e32\u0e15\u0e40\u0e09\u0e1e\u0e32\u0e30\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e17\u0e35\u0e48\u0e23\u0e30\u0e1a\u0e38 \u0e2d\u0e37\u0e48\u0e19\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e17\u0e35\u0e48\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e2d\u0e19\u0e38\u0e0d\u0e32\u0e15\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14\u0e17\u0e35\u0e48\u0e21\u0e35\u0e2a\u0e34\u0e17\u0e18\u0e34\u0e4c\u0e17\u0e35\u0e48\u0e08\u0e33\u0e40\u0e1b\u0e47\u0e19",
+ "Merge": "\u0e1c\u0e2a\u0e32\u0e19",
+ "Merge Warehouses": "\u0e1c\u0e2a\u0e32\u0e19\u0e42\u0e01\u0e14\u0e31\u0e07",
+ "Merge With": "\u0e1c\u0e2a\u0e32\u0e19\u0e01\u0e31\u0e1a",
+ "Mobile No": "\u0e21\u0e37\u0e2d\u0e16\u0e37\u0e2d\u0e44\u0e21\u0e48\u0e21\u0e35",
+ "PIN": "PIN",
+ "Phone No": "\u0e42\u0e17\u0e23\u0e28\u0e31\u0e1e\u0e17\u0e4c\u0e44\u0e21\u0e48\u0e21\u0e35",
+ "State": "\u0e23\u0e31\u0e10",
+ "Stock": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "This feature is for merging duplicate warehouses. It will replace all the links of this warehouse by \"Merge With\" warehouse. After merging you can delete this warehouse, as stock level for this warehouse will be zero.": "\u0e04\u0e38\u0e13\u0e25\u0e31\u0e01\u0e29\u0e13\u0e30\u0e19\u0e35\u0e49\u0e08\u0e30\u0e40\u0e1b\u0e47\u0e19\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e1c\u0e2a\u0e32\u0e19\u0e42\u0e01\u0e14\u0e31\u0e07\u0e17\u0e35\u0e48\u0e0b\u0e49\u0e33\u0e01\u0e31\u0e19 \u0e21\u0e31\u0e19\u0e08\u0e30\u0e40\u0e02\u0e49\u0e32\u0e21\u0e32\u0e41\u0e17\u0e19\u0e17\u0e35\u0e48\u0e01\u0e32\u0e23\u0e40\u0e0a\u0e37\u0e48\u0e2d\u0e21\u0e42\u0e22\u0e07\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14\u0e02\u0e2d\u0e07\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e19\u0e35\u0e49\u0e42\u0e14\u0e22 "\u0e1c\u0e2a\u0e32\u0e19\u0e01\u0e31\u0e1a" \u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32 \u0e2b\u0e25\u0e31\u0e07\u0e08\u0e32\u0e01\u0e04\u0e27\u0e1a\u0e23\u0e27\u0e21\u0e04\u0e38\u0e13\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e25\u0e1a\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e19\u0e35\u0e49\u0e40\u0e1b\u0e47\u0e19\u0e23\u0e30\u0e14\u0e31\u0e1a\u0e2a\u0e15\u0e47\u0e2d\u0e01\u0e43\u0e19\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32\u0e19\u0e35\u0e49\u0e08\u0e30\u0e40\u0e1b\u0e47\u0e19\u0e28\u0e39\u0e19\u0e22\u0e4c",
+ "Warehouse": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Warehouse Contact Info": "\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e48\u0e2d\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Warehouse Detail": "\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Warehouse Name": "\u0e0a\u0e37\u0e48\u0e2d\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Warehouse Type": "\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "Warehouse Users": "\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e17\u0e35\u0e48\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32"
+}
\ No newline at end of file
diff --git a/stock/doctype/warehouse/warehouse.py b/stock/doctype/warehouse/warehouse.py
index a7fc1853ce4..dc8bfea0a97 100644
--- a/stock/doctype/warehouse/warehouse.py
+++ b/stock/doctype/warehouse/warehouse.py
@@ -207,3 +207,4 @@ class DocType:
exists for this warehouse.""", raise_exception=1)
else:
sql("delete from `tabStock Ledger Entry` where warehouse = %s", self.doc.name)
+
diff --git a/stock/doctype/warehouse_user/locale/de-doc.json b/stock/doctype/warehouse_user/locale/de-doc.json
new file mode 100644
index 00000000000..4541bcd8c12
--- /dev/null
+++ b/stock/doctype/warehouse_user/locale/de-doc.json
@@ -0,0 +1,5 @@
+{
+ "Stock": "Lager",
+ "User": "Benutzer",
+ "Warehouse User": "Warehouse Benutzer"
+}
\ No newline at end of file
diff --git a/stock/doctype/warehouse_user/locale/pt-BR-doc.json b/stock/doctype/warehouse_user/locale/pt-BR-doc.json
new file mode 100644
index 00000000000..dcfbfa99880
--- /dev/null
+++ b/stock/doctype/warehouse_user/locale/pt-BR-doc.json
@@ -0,0 +1,5 @@
+{
+ "Stock": "Estoque",
+ "User": "Usu\u00e1rio",
+ "Warehouse User": "Usu\u00e1rio Armaz\u00e9m"
+}
\ No newline at end of file
diff --git a/stock/doctype/warehouse_user/locale/th-doc.json b/stock/doctype/warehouse_user/locale/th-doc.json
new file mode 100644
index 00000000000..e119d6f4934
--- /dev/null
+++ b/stock/doctype/warehouse_user/locale/th-doc.json
@@ -0,0 +1,5 @@
+{
+ "Stock": "\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32",
+ "User": "\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19",
+ "Warehouse User": "\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e04\u0e25\u0e31\u0e07\u0e2a\u0e34\u0e19\u0e04\u0e49\u0e32"
+}
\ No newline at end of file
diff --git a/stock/locale/de-py.json b/stock/locale/de-py.json
new file mode 100644
index 00000000000..68b58d7a4b2
--- /dev/null
+++ b/stock/locale/de-py.json
@@ -0,0 +1,7 @@
+{
+ "Item": "Artikel",
+ "Please check": "Bitte \u00fcberpr\u00fcfen Sie",
+ "is a cancelled Item": "ist ein gestempeltes",
+ "is not a Stock Item": "ist kein Lagerartikel",
+ "reached its end of life on": "erreichte Ende des Lebens auf"
+}
\ No newline at end of file
diff --git a/stock/locale/pt-BR-py.json b/stock/locale/pt-BR-py.json
new file mode 100644
index 00000000000..0bf350cad03
--- /dev/null
+++ b/stock/locale/pt-BR-py.json
@@ -0,0 +1,7 @@
+{
+ "Item": "Item",
+ "Please check": "Por favor, verifique",
+ "is a cancelled Item": "\u00e9 um Item cancelado",
+ "is not a Stock Item": "n\u00e3o \u00e9 um Item de Estoque",
+ "reached its end of life on": "chegou ao fim de vida em"
+}
\ No newline at end of file
diff --git a/stock/locale/th-py.json b/stock/locale/th-py.json
new file mode 100644
index 00000000000..5f31a593737
--- /dev/null
+++ b/stock/locale/th-py.json
@@ -0,0 +1,7 @@
+{
+ "Item": "\u0e0a\u0e34\u0e49\u0e19",
+ "Please check": "\u0e01\u0e23\u0e38\u0e13\u0e32\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a",
+ "is a cancelled Item": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e22\u0e01\u0e40\u0e25\u0e34\u0e01\u0e40\u0e1b\u0e47\u0e19",
+ "is not a Stock Item": "\u0e44\u0e21\u0e48\u0e44\u0e14\u0e49\u0e40\u0e1b\u0e47\u0e19\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e2a\u0e15\u0e47\u0e2d\u0e01",
+ "reached its end of life on": "\u0e16\u0e36\u0e07\u0e08\u0e38\u0e14\u0e2a\u0e34\u0e49\u0e19\u0e2a\u0e38\u0e14\u0e02\u0e2d\u0e07\u0e0a\u0e35\u0e27\u0e34\u0e15\u0e40\u0e21\u0e37\u0e48\u0e2d"
+}
\ No newline at end of file
diff --git a/stock/module_def/stock/locale/_messages_doc.json b/stock/module_def/stock/locale/_messages_doc.json
deleted file mode 100644
index 5fae381fc78..00000000000
--- a/stock/module_def/stock/locale/_messages_doc.json
+++ /dev/null
@@ -1,23 +0,0 @@
-[
- "Serial No Service Contract Expiry",
- "Serial No Warranty Expiry",
- "Ordered Items To Be Delivered",
- "A logical Warehouse against which stock entries are made.",
- "For the convenience of customers, these codes can be used in print formats like Invoices and Delivery Notes",
- "Featured Item in Item Group",
- "Stock Analytics",
- "Serial No Status",
- "Distinct unit of an Item",
- "Stock Home",
- "Item-Wise Price List",
- "This tool helps you to update or fix the quantity and valuation of stock in the system. It is typically used to synchronise the system values and what actually exists in your warehouses.",
- "Aggregate group of **Items** into another **Item**. This is useful if you are bundling a certain **Items** into a package and you maintain stock of the packed **Items** and not the aggregate **Item**. The package **Item** will have \"Is Stock Item\" as \"No\" and \"Is Sales Item\" as \"Yes\".For Example: If you are selling Laptops and Backpacks separately and have a special price if the customer buys both, then the Laptop + Backpack will be a new Sales BOM Item.Note: BOM = Bill of Materials",
- "Stock Level",
- "Table for Item that will be shown in Web Site",
- "Stock Ageing",
- "Stock Balance",
- "A Product or a Service that is bought, sold or kept in stock.",
- "Generate packing slips for packages to be delivered. Used to notify package number, package contents and its weight.",
- "Purchase Order Items To Be Received",
- "Stock Ledger"
-]
\ No newline at end of file
diff --git a/stock/module_def/stock/locale/ar-doc.json b/stock/module_def/stock/locale/ar-doc.json
deleted file mode 100644
index 945b766878c..00000000000
--- a/stock/module_def/stock/locale/ar-doc.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "A Product or a Service that is bought, sold or kept in stock.": "\u0645\u0646\u062a\u062c \u0623\u0648 \u0627\u0644\u062e\u062f\u0645\u0629 \u0627\u0644\u062a\u064a \u064a\u062a\u0645 \u0634\u0631\u0627\u0624\u0647\u0627 \u0623\u0648 \u0628\u064a\u0639\u0647\u0627 \u0623\u0648 \u062d\u0645\u0644\u0647\u0627 \u0641\u064a \u0633\u0648\u0642 \u0627\u0644\u0623\u0633\u0647\u0645.",
- "A logical Warehouse against which stock entries are made.": "\u0645\u0633\u062a\u0648\u062f\u0639 \u0627\u0644\u0645\u0646\u0637\u0642\u064a\u0629 \u0627\u0644\u062a\u064a \u062a\u062a\u0645 \u0636\u062f \u0645\u0642\u0627\u0644\u0627\u062a \u0627\u0644\u0623\u0633\u0647\u0645.",
- "Aggregate group of **Items** into another **Item**. This is useful if you are bundling a certain **Items** into a package and you maintain stock of the packed **Items** and not the aggregate **Item**. The package **Item** will have \"Is Stock Item\" as \"No\" and \"Is Sales Item\" as \"Yes\".For Example: If you are selling Laptops and Backpacks separately and have a special price if the customer buys both, then the Laptop + Backpack will be a new Sales BOM Item.Note: BOM = Bill of Materials": "\u0625\u062c\u0645\u0627\u0644\u064a \u0645\u062c\u0645\u0648\u0639\u0629 \u0645\u0646 \u0627\u0644\u0639\u0646\u0627\u0635\u0631 ** ** ** \u0641\u064a \u0628\u0646\u062f \u0622\u062e\u0631. ** \u0647\u0630\u0627 \u0645\u0641\u064a\u062f \u0625\u0630\u0627 \u0643\u0646\u062a \u062a\u062c\u0645\u064a\u0639 \u0639\u0646\u0627\u0635\u0631 \u0645\u0639\u064a\u0646\u0629 ** ** \u0641\u064a \u062d\u0632\u0645\u0629 \u0648\u064a\u0645\u0643\u0646\u0643 \u0627\u0644\u062d\u0641\u0627\u0638 \u0639\u0644\u0649 \u0627\u0644\u0645\u062e\u0632\u0648\u0646 \u0645\u0646 \u0627\u0644\u0623\u0635\u0646\u0627\u0641 ** ** \u0645\u0639\u0628\u0623\u0629 \u0648\u0644\u064a\u0633 \u0627\u0644\u0643\u0644\u064a ** \u0627\u0644\u0633\u0644\u0639\u0629 **. \u0627\u0644\u062d\u0632\u0645\u0629 \u0627\u0644\u0633\u0644\u0639\u0629 ** ** \u0633\u064a\u0643\u0648\u0646 "\u0647\u0648 \u0627\u0644\u0645\u062e\u0632\u0648\u0646 \u0627\u0644\u0633\u0644\u0639\u0629" \u0628 "\u0644\u0627" \u0648 "\u0647\u0644 \u0627\u0644\u0645\u0628\u064a\u0639\u0627\u062a \u0627\u0644\u0633\u0644\u0639\u0629" \u0628 "\u0646\u0639\u0645" \u0639\u0644\u0649 \u0633\u0628\u064a\u0644 \u0627\u0644\u0645\u062b\u0627\u0644: \u0625\u0630\u0627 \u0643\u0646\u062a \u062a\u0628\u064a\u0639 \u0623\u062c\u0647\u0632\u0629 \u0627\u0644\u0643\u0645\u0628\u064a\u0648\u062a\u0631 \u0627\u0644\u0645\u062d\u0645\u0648\u0644\u0629 \u0648\u062d\u0642\u0627\u0626\u0628 \u062a\u062d\u0645\u0644 \u0639\u0644\u0649 \u0627\u0644\u0638\u0647\u0631 \u0628\u0634\u0643\u0644 \u0645\u0646\u0641\u0635\u0644 \u0648\u0644\u0647\u0627 \u0633\u0639\u0631 \u062e\u0627\u0635 \u0627\u0630\u0627 \u0643\u0627\u0646 \u0627\u0644\u0632\u0628\u0648\u0646 \u064a\u0634\u062a\u0631\u064a \u0643\u0644 \u060c \u062b\u0645 \u0633\u064a\u0642\u0648\u0645 \u0627\u0644\u0643\u0645\u0628\u064a\u0648\u062a\u0631 \u0627\u0644\u0645\u062d\u0645\u0648\u0644 + \u062d\u0642\u064a\u0628\u0629 \u0627\u0644\u0638\u0647\u0631 \u062a\u0643\u0648\u0646 \u062c\u062f\u064a\u062f\u0629 \u0627\u0644\u0645\u0628\u064a\u0639\u0627\u062a BOM Item.Note: BOM = \u0628\u064a\u0644 \u0627\u0644\u0645\u0648\u0627\u062f",
- "Distinct unit of an Item": "\u0645\u062a\u0645\u064a\u0632\u0629 \u0648\u062d\u062f\u0629 \u0645\u0646 \u0639\u0646\u0635\u0631",
- "Featured Item in Item Group": "\u0645\u0645\u064a\u0632\u0629 \u0641\u064a \u0627\u0644\u0645\u062c\u0645\u0648\u0639\u0629 \u0627\u0644\u0633\u0644\u0639\u0629",
- "For the convenience of customers, these codes can be used in print formats like Invoices and Delivery Notes": "\u0644\u0631\u0627\u062d\u0629 \u0627\u0644\u0639\u0645\u0644\u0627\u0621\u060c \u0648\u064a\u0645\u0643\u0646 \u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0647\u0630\u0647 \u0627\u0644\u0631\u0645\u0648\u0632 \u0641\u064a \u0623\u0634\u0643\u0627\u0644 \u0627\u0644\u0637\u0628\u0627\u0639\u0629 \u0645\u062b\u0644 \u0627\u0644\u0641\u0648\u0627\u062a\u064a\u0631 \u0648\u0627\u0644\u0633\u0646\u062f\u0627\u062a \u0627\u0644\u062a\u0633\u0644\u064a\u0645",
- "Generate packing slips for packages to be delivered. Used to notify package number, package contents and its weight.": "\u062a\u0648\u0644\u064a\u062f \u0627\u0644\u062a\u0639\u0628\u0626\u0629 \u0632\u0644\u0627\u062a \u0644\u062d\u0632\u0645 \u0644\u064a\u062a\u0645 \u062a\u0633\u0644\u064a\u0645\u0647\u0627. \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645\u0629 \u0644\u0625\u062e\u0637\u0627\u0631 \u0639\u062f\u062f \u062d\u0632\u0645\u0629\u060c \u062d\u0632\u0645\u0629 \u0627\u0644\u0645\u062d\u062a\u0648\u064a\u0627\u062a \u0648\u0632\u0646\u0647.",
- "Item-Wise Price List": "\u0627\u0644\u0628\u0646\u062f \u0627\u0644\u062d\u0643\u064a\u0645 \u0642\u0627\u0626\u0645\u0629 \u0627\u0644\u0623\u0633\u0639\u0627\u0631",
- "Ordered Items To Be Delivered": "\u0623\u0645\u0631\u062a \u0639\u0646\u0627\u0635\u0631 \u0644\u064a\u062a\u0645 \u062a\u0633\u0644\u064a\u0645\u0647\u0627",
- "Purchase Order Items To Be Received": "\u0623\u0645\u0631 \u0634\u0631\u0627\u0621 \u0627\u0644\u0623\u0635\u0646\u0627\u0641 \u0627\u0644\u062a\u064a \u0633\u062a\u0631\u062f",
- "Serial No Service Contract Expiry": "\u0645\u0633\u0644\u0633\u0644 \u0627\u0644\u0639\u0642\u062f \u0644\u0627 \u0627\u0646\u062a\u0647\u0627\u0621 \u0627\u0644\u0627\u0634\u062a\u0631\u0627\u0643 \u062e\u062f\u0645\u0629",
- "Serial No Status": "\u0627\u0644\u0645\u0633\u0644\u0633\u0644 \u0644\u0627 \u0627\u0644\u062d\u0627\u0644\u0629",
- "Serial No Warranty Expiry": "\u0627\u0644\u0645\u0633\u0644\u0633\u0644 \u0644\u0627 \u0639\u0648\u062f\u0629 \u0627\u0646\u062a\u0647\u0627\u0621 \u0627\u0644\u0627\u0634\u062a\u0631\u0627\u0643",
- "Stock Ageing": "\u0627\u0644\u0623\u0633\u0647\u0645 \u0634\u064a\u062e\u0648\u062e\u0629",
- "Stock Analytics": "\u0627\u0644\u0623\u0633\u0647\u0645 \u062a\u062d\u0644\u064a\u0644\u0627\u062a",
- "Stock Balance": "\u0627\u0644\u0623\u0633\u0647\u0645 \u0627\u0644\u0631\u0635\u064a\u062f",
- "Stock Home": "\u0627\u0644\u0623\u0633\u0647\u0645 \u0627\u0644\u0631\u0626\u064a\u0633\u064a\u0629",
- "Stock Ledger": "\u0627\u0644\u0623\u0633\u0647\u0645 \u0644\u064a\u062f\u062c\u0631",
- "Stock Level": "\u0645\u0633\u062a\u0648\u0649 \u0627\u0644\u0645\u062e\u0632\u0648\u0646",
- "Table for Item that will be shown in Web Site": "\u062c\u062f\u0648\u0644 \u0627\u0644\u0639\u0646\u0627\u0635\u0631 \u0627\u0644\u062a\u064a \u0633\u062a\u0638\u0647\u0631 \u0641\u064a \u0627\u0644\u0645\u0648\u0642\u0639",
- "This tool helps you to update or fix the quantity and valuation of stock in the system. It is typically used to synchronise the system values and what actually exists in your warehouses.": "\u062a\u0633\u0627\u0639\u062f\u0643 \u0647\u0630\u0647 \u0627\u0644\u0623\u062f\u0627\u0629 \u0644\u062a\u062d\u062f\u064a\u062b \u0623\u0648 \u062a\u062d\u062f\u064a\u062f \u0627\u0644\u0643\u0645\u064a\u0629 \u0648\u062a\u0642\u064a\u064a\u0645 \u0627\u0644\u0623\u0648\u0631\u0627\u0642 \u0627\u0644\u0645\u0627\u0644\u064a\u0629 \u0641\u064a \u0627\u0644\u0646\u0638\u0627\u0645. \u0648\u0639\u0627\u062f\u0629 \u0645\u0627 \u062a\u0633\u062a\u062e\u062f\u0645 \u0644\u0645\u0632\u0627\u0645\u0646\u0629 \u0646\u0638\u0627\u0645 \u0627\u0644\u0642\u064a\u0645 \u0648\u0645\u0627 \u0647\u0648 \u0645\u0648\u062c\u0648\u062f \u0641\u0639\u0644\u0627 \u0641\u064a \u0627\u0644\u0645\u062e\u0627\u0632\u0646 \u0627\u0644\u062e\u0627\u0635\u0629 \u0628\u0643."
-}
\ No newline at end of file
diff --git a/stock/module_def/stock/locale/es-doc.json b/stock/module_def/stock/locale/es-doc.json
deleted file mode 100644
index e3592505ded..00000000000
--- a/stock/module_def/stock/locale/es-doc.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "A Product or a Service that is bought, sold or kept in stock.": "Un producto o un servicio que se compra, se vende o se mantienen en stock.",
- "A logical Warehouse against which stock entries are made.": "Un almacen de dep\u00f3sito l\u00f3gico en el que las entradas en existencias est\u00e1n hechos.",
- "Aggregate group of **Items** into another **Item**. This is useful if you are bundling a certain **Items** into a package and you maintain stock of the packed **Items** and not the aggregate **Item**. The package **Item** will have \"Is Stock Item\" as \"No\" and \"Is Sales Item\" as \"Yes\".For Example: If you are selling Laptops and Backpacks separately and have a special price if the customer buys both, then the Laptop + Backpack will be a new Sales BOM Item.Note: BOM = Bill of Materials": "Grupo global de productos ** ** en otro art\u00edculo **. ** Esto es \u00fatil si usted est\u00e1 empaquetando un cierto ** ** Los productos en un paquete y usted mantiene un balance de los art\u00edculos envasados \u200b\u200b** ** y no el agregado del art\u00edculo **. ** El paquete ** art\u00edculo ** habr\u00e1 "es el tema de" como "No" y "\u00bfSales Item" como "S\u00ed", por ejemplo:. Si usted est\u00e1 vendiendo computadoras port\u00e1tiles y Mochilas por separado y recibir un descuento si el cliente compra a la vez , entonces el ordenador port\u00e1til + Mochila ser\u00e1 una nueva lista de materiales de ventas Item.Note: BOM = Bill de Materiales",
- "Distinct unit of an Item": "Unidad distinta de un elemento",
- "Featured Item in Item Group": "Producto destacado en el Grupo del art\u00edculo",
- "For the convenience of customers, these codes can be used in print formats like Invoices and Delivery Notes": "Para la comodidad de los clientes, estos c\u00f3digos se puede utilizar en formato impreso como facturas y albaranes",
- "Generate packing slips for packages to be delivered. Used to notify package number, package contents and its weight.": "Generar albaranes para los paquetes que se entregar\u00e1n. Se utiliza para notificar el n\u00famero de paquetes, el contenido del paquete y su peso.",
- "Item-Wise Price List": "Item-Wise Precio de lista",
- "Ordered Items To Be Delivered": "Los art\u00edculos pedidos para ser entregados",
- "Purchase Order Items To Be Received": "Art\u00edculos de \u00f3rdenes de compra que se reciban",
- "Serial No Service Contract Expiry": "N\u00famero de orden de servicio de caducidad del contrato",
- "Serial No Status": "Serial No Estado",
- "Serial No Warranty Expiry": "N\u00famero de serie Garant\u00eda de caducidad",
- "Stock Ageing": "El envejecimiento de la",
- "Stock Analytics": "An\u00e1lisis de la",
- "Stock Balance": "De la balanza",
- "Stock Home": "Inicio de la",
- "Stock Ledger": "Stock Ledger",
- "Stock Level": "Nivel de existencias",
- "Table for Item that will be shown in Web Site": "Tabla de la partida que se mostrar\u00e1 en el Sitio Web",
- "This tool helps you to update or fix the quantity and valuation of stock in the system. It is typically used to synchronise the system values and what actually exists in your warehouses.": "Esta herramienta le ayuda a actualizar o corregir la cantidad y la valoraci\u00f3n de las existencias en el sistema. Se suele utilizar para sincronizar los valores del sistema y lo que realmente existe en sus almacenes."
-}
\ No newline at end of file
diff --git a/stock/module_def/stock/locale/fr-doc.json b/stock/module_def/stock/locale/fr-doc.json
deleted file mode 100644
index b842675728f..00000000000
--- a/stock/module_def/stock/locale/fr-doc.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "A Product or a Service that is bought, sold or kept in stock.": "Un produit ou un service qui est achet\u00e9, vendu ou conserv\u00e9 en stock.",
- "A logical Warehouse against which stock entries are made.": "Un Entrep\u00f4t logique contre laquelle les entr\u00e9es en stocks sont faits.",
- "Aggregate group of **Items** into another **Item**. This is useful if you are bundling a certain **Items** into a package and you maintain stock of the packed **Items** and not the aggregate **Item**. The package **Item** will have \"Is Stock Item\" as \"No\" and \"Is Sales Item\" as \"Yes\".For Example: If you are selling Laptops and Backpacks separately and have a special price if the customer buys both, then the Laptop + Backpack will be a new Sales BOM Item.Note: BOM = Bill of Materials": "Groupe global de ** ** Articles dans un autre article **. ** Ceci est utile si vous mettez en place un certains articles ** ** dans un paquet et vous maintenir le stock des articles emball\u00e9s ** ** et non pas le total ** Article **. Le paquet ** ** Point aura \u00abEst Produit en stock" comme "No" et "Est Point de vente" que "Oui" Par exemple:. Si vous vendez des ordinateurs portables et sacs \u00e0 dos s\u00e9par\u00e9ment et un prix sp\u00e9cial si le client ach\u00e8te \u00e0 la fois , puis l'ordinateur portable Sac \u00e0 dos + sera une nouvelle nomenclature des ventes Item.Note: BOM = Bill of Materials",
- "Distinct unit of an Item": "Unit\u00e9 distincte d'un article",
- "Featured Item in Item Group": "Produit vedette dans le groupe d'article",
- "For the convenience of customers, these codes can be used in print formats like Invoices and Delivery Notes": "Pour la commodit\u00e9 des clients, ces codes peuvent \u00eatre utilis\u00e9s dans des formats d'impression comme les factures et les bons de livraison",
- "Generate packing slips for packages to be delivered. Used to notify package number, package contents and its weight.": "G\u00e9n\u00e9rer des bordereaux d'emballage pour les colis \u00e0 livrer. Utilis\u00e9 pour avertir le num\u00e9ro du colis, contenu du paquet et son poids.",
- "Item-Wise Price List": "Liste des Prix Article Wise",
- "Ordered Items To Be Delivered": "Articles command\u00e9s \u00e0 livrer",
- "Purchase Order Items To Be Received": "Articles de bons de commande pour \u00eatre re\u00e7u",
- "Serial No Service Contract Expiry": "N \u00b0 de s\u00e9rie expiration du contrat de service",
- "Serial No Status": "N \u00b0 de s\u00e9rie Statut",
- "Serial No Warranty Expiry": "N \u00b0 de s\u00e9rie expiration de garantie",
- "Stock Ageing": "Stock vieillissement",
- "Stock Analytics": "Analytics stock",
- "Stock Balance": "Solde Stock",
- "Stock Home": "Accueil Stock",
- "Stock Ledger": "Stock Ledger",
- "Stock Level": "Niveau de stock",
- "Table for Item that will be shown in Web Site": "Tableau pour le point qui sera affich\u00e9 dans le site Web",
- "This tool helps you to update or fix the quantity and valuation of stock in the system. It is typically used to synchronise the system values and what actually exists in your warehouses.": "Cet outil vous permet de mettre \u00e0 jour ou corriger la quantit\u00e9 et la valorisation de stock dans le syst\u00e8me. Il est g\u00e9n\u00e9ralement utilis\u00e9 pour synchroniser les valeurs du syst\u00e8me et ce qui existe r\u00e9ellement dans vos entrep\u00f4ts."
-}
\ No newline at end of file
diff --git a/stock/module_def/stock/locale/hi-doc.json b/stock/module_def/stock/locale/hi-doc.json
deleted file mode 100644
index 890b3da285c..00000000000
--- a/stock/module_def/stock/locale/hi-doc.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "A Product or a Service that is bought, sold or kept in stock.": "\u090f\u0915 \u0909\u0924\u094d\u092a\u093e\u0926 \u092f\u093e \u0938\u0947\u0935\u093e \u0939\u0948 \u0915\u093f \u0916\u0930\u0940\u0926\u093e \u0939\u0948, \u092c\u0947\u091a\u093e \u092f\u093e \u0938\u094d\u091f\u0949\u0915 \u092e\u0947\u0902 \u0930\u0916\u093e.",
- "A logical Warehouse against which stock entries are made.": "\u090f\u0915 \u0924\u093e\u0930\u094d\u0915\u093f\u0915 \u0935\u0947\u092f\u0930\u0939\u093e\u0909\u0938 \u0915\u0947 \u0916\u093f\u0932\u093e\u092b \u091c\u094b \u0936\u0947\u092f\u0930 \u092a\u094d\u0930\u0935\u093f\u0937\u094d\u091f\u093f\u092f\u094b\u0902 \u092c\u0928\u093e \u0930\u0939\u0947 \u0939\u0948\u0902.",
- "Aggregate group of **Items** into another **Item**. This is useful if you are bundling a certain **Items** into a package and you maintain stock of the packed **Items** and not the aggregate **Item**. The package **Item** will have \"Is Stock Item\" as \"No\" and \"Is Sales Item\" as \"Yes\".For Example: If you are selling Laptops and Backpacks separately and have a special price if the customer buys both, then the Laptop + Backpack will be a new Sales BOM Item.Note: BOM = Bill of Materials": "** \u0906\u0907\u091f\u092e \u0915\u0947 \u0938\u0915\u0932 \u0938\u092e\u0942\u0939 \u092e\u0947\u0902 \u090f\u0915 \u0914\u0930 \u0906\u0907\u091f\u092e ** **. \u092f\u0939 \u0909\u092a\u092f\u094b\u0917\u0940 \u0939\u0948 \u0905\u0917\u0930 \u0906\u092a \u090f\u0915 \u092a\u0948\u0915\u0947\u091c \u092e\u0947\u0902 ** \u0915\u0941\u091b ** \u0906\u0907\u091f\u092e bundling \u0939\u0948\u0902 \u0914\u0930 \u0906\u092a \u092a\u0948\u0915 ** \u0914\u0930 \u0928\u0939\u0940\u0902 \u0915\u0941\u0932 ** \u0906\u0907\u091f\u092e ** ** \u0906\u0907\u091f\u092e \u0915\u0947 \u0938\u094d\u091f\u0949\u0915 \u0915\u094b \u092c\u0928\u093e\u090f \u0930\u0916\u0928\u0947. \u092a\u0948\u0915\u0947\u091c ** \u0906\u0907\u091f\u092e ** \u0939\u0948 "\u0938\u094d\u091f\u0949\u0915 \u0906\u0907\u091f\u092e \u0939\u0948" "\u0928\u0939\u0940\u0902" \u0915\u0947 \u0930\u0942\u092a \u092e\u0947\u0902 \u0914\u0930 \u0915\u0947 \u0930\u0942\u092a \u092e\u0947\u0902 "\u0939\u093e\u0901" "\u092c\u093f\u0915\u094d\u0930\u0940 \u0906\u0907\u091f\u092e \u0939\u0948," \u0909\u0926\u093e\u0939\u0930\u0923 \u0915\u0947 \u0932\u093f\u090f: \u092f\u0926\u093f \u0906\u092a \u0932\u0948\u092a\u091f\u0949\u092a \u0914\u0930 Backpacks \u092c\u0947\u091a \u0930\u0939\u0947 \u0939\u0948\u0902 \u0914\u0930 \u0905\u0932\u0917 \u0938\u0947 \u090f\u0915 \u0935\u093f\u0936\u0947\u0937 \u092e\u0942\u0932\u094d\u092f \u0939\u0948 \u0905\u0917\u0930 \u0917\u094d\u0930\u093e\u0939\u0915 \u0926\u094b\u0928\u094b\u0902 \u0916\u0930\u0940\u0926\u0924\u093e BOM = \u0935\u093f\u0927\u0947\u092f\u0915 \u0915\u0940 \u0938\u093e\u092e\u0917\u094d\u0930\u0940:, \u0924\u094b \u090f\u0915 \u0928\u092f\u093e \u0932\u0948\u092a\u091f\u0949\u092a + \u092c\u0948\u0917 \u092c\u093f\u0915\u094d\u0930\u0940 \u092c\u0940\u0913\u090f\u092e Item.Note \u0939\u094b\u0917\u093e",
- "Distinct unit of an Item": "\u090f\u0915 \u0906\u0907\u091f\u092e \u0915\u0940 \u0905\u0932\u0917 \u0907\u0915\u093e\u0908",
- "Featured Item in Item Group": "\u0906\u0907\u091f\u092e \u0938\u092e\u0942\u0939 \u092e\u0947\u0902 \u091a\u093f\u0924\u094d\u0930\u093f\u0924 \u0906\u0907\u091f\u092e",
- "For the convenience of customers, these codes can be used in print formats like Invoices and Delivery Notes": "\u0917\u094d\u0930\u093e\u0939\u0915\u094b\u0902 \u0915\u0940 \u0938\u0941\u0935\u093f\u0927\u093e \u0915\u0947 \u0932\u093f\u090f \u0907\u0928 \u0915\u094b\u0921 \u092a\u094d\u0930\u093f\u0902\u091f \u0938\u094d\u0935\u0930\u0942\u092a\u094b\u0902 \u092e\u0947\u0902 \u091a\u093e\u0932\u093e\u0928 \u0914\u0930 \u0935\u093f\u0924\u0930\u0923 \u0928\u094b\u091f \u0915\u0940 \u0924\u0930\u0939 \u0907\u0938\u094d\u0924\u0947\u092e\u093e\u0932 \u0915\u093f\u092f\u093e \u091c\u093e \u0938\u0915\u0924\u093e \u0939\u0948",
- "Generate packing slips for packages to be delivered. Used to notify package number, package contents and its weight.": "\u0926\u093f\u092f\u093e \u091c\u093e \u0938\u0902\u0915\u0941\u0932 \u0915\u0947 \u0932\u093f\u090f \u0928\u093f\u0915\u0932 \u091c\u093e\u0924\u093e \u0939\u0948 \u092a\u0948\u0915\u093f\u0902\u0917 \u0909\u0924\u094d\u092a\u0928\u094d\u0928 \u0915\u0930\u0924\u093e \u0939\u0948. \u092a\u0948\u0915\u0947\u091c \u0938\u0902\u0916\u094d\u092f\u093e, \u092a\u0948\u0915\u0947\u091c \u0938\u093e\u092e\u0917\u094d\u0930\u0940 \u0914\u0930 \u0905\u092a\u0928\u0947 \u0935\u091c\u0928 \u0915\u094b \u0938\u0942\u091a\u093f\u0924 \u0915\u0930\u0928\u0947 \u0915\u0947 \u0932\u093f\u090f \u0915\u093f\u092f\u093e \u091c\u093e\u0924\u093e \u0939\u0948.",
- "Item-Wise Price List": "\u0906\u0907\u091f\u092e \u0935\u093e\u0930 \u092e\u0942\u0932\u094d\u092f \u0938\u0942\u091a\u0940",
- "Ordered Items To Be Delivered": "\u0939\u093f\u0938\u093e\u092c \u0938\u0947 \u0926\u093f\u092f\u093e \u091c\u093e \u0906\u0907\u091f\u092e",
- "Purchase Order Items To Be Received": "\u0916\u0930\u0940\u0926 \u0906\u0926\u0947\u0936 \u092a\u094d\u0930\u093e\u092a\u094d\u0924 \u0915\u093f\u090f \u091c\u093e\u0928\u0947 \u0906\u0907\u091f\u092e",
- "Serial No Service Contract Expiry": "\u0938\u0940\u0930\u093f\u092f\u0932 \u0915\u094b\u0908 \u0938\u0947\u0935\u093e \u0905\u0928\u0941\u092c\u0902\u0927 \u0938\u092e\u093e\u092a\u094d\u0924\u093f",
- "Serial No Status": "\u0938\u0940\u0930\u093f\u092f\u0932 \u0915\u094b\u0908 \u0938\u094d\u0925\u093f\u0924\u093f",
- "Serial No Warranty Expiry": "\u0938\u0940\u0930\u093f\u092f\u0932 \u0915\u094b\u0908 \u0935\u093e\u0930\u0902\u091f\u0940 \u0938\u092e\u093e\u092a\u094d\u0924\u093f",
- "Stock Ageing": "\u0938\u094d\u091f\u0949\u0915 \u092c\u0942\u0922\u093c\u0947",
- "Stock Analytics": "\u0938\u094d\u091f\u0949\u0915 \u0935\u093f\u0936\u094d\u0932\u0947\u0937\u093f\u0915\u0940",
- "Stock Balance": "\u092c\u093e\u0915\u0940 \u0938\u094d\u091f\u093e\u0915",
- "Stock Home": "\u0938\u094d\u091f\u0949\u0915 \u0939\u094b\u092e",
- "Stock Ledger": "\u0938\u094d\u091f\u0949\u0915 \u0932\u0947\u091c\u0930",
- "Stock Level": "\u0938\u094d\u091f\u0949\u0915 \u0938\u094d\u0924\u0930",
- "Table for Item that will be shown in Web Site": "\u091f\u0947\u092c\u0932 \u0906\u0907\u091f\u092e \u0915\u0947 \u0932\u093f\u090f \u0939\u0948 \u0915\u093f \u0935\u0947\u092c \u0938\u093e\u0907\u091f \u092e\u0947\u0902 \u0926\u093f\u0916\u093e\u092f\u093e \u091c\u093e\u090f\u0917\u093e",
- "This tool helps you to update or fix the quantity and valuation of stock in the system. It is typically used to synchronise the system values and what actually exists in your warehouses.": "\u092f\u0939 \u0909\u092a\u0915\u0930\u0923 \u0906\u092a\u0915\u094b \u092f\u093e \u0905\u0926\u094d\u092f\u0924\u0928 \u0915\u0930\u0928\u0947 \u0914\u0930 \u092a\u094d\u0930\u0923\u093e\u0932\u0940 \u092e\u0947\u0902 \u0936\u0947\u092f\u0930 \u0915\u0940 \u0935\u0948\u0932\u094d\u092f\u0942\u090f\u0936\u0928 \u092e\u093e\u0924\u094d\u0930\u093e \u0915\u094b \u0920\u0940\u0915 \u0915\u0930\u0928\u0947 \u092e\u0947\u0902 \u092e\u0926\u0926 \u0915\u0930\u0924\u093e \u0939\u0948. \u092f\u0939 \u0906\u092e\u0924\u094c\u0930 \u092a\u0930 \u092a\u094d\u0930\u0923\u093e\u0932\u0940 \u092e\u0942\u0932\u094d\u092f\u094b\u0902 \u0938\u093f\u0902\u0915\u094d\u0930\u0928\u093e\u0907\u091c\u093c \u0915\u0930\u0928\u0947 \u0915\u0947 \u0932\u093f\u090f \u092a\u094d\u0930\u092f\u094b\u0917 \u0915\u093f\u092f\u093e \u091c\u093e\u0924\u093e \u0939\u0948 \u0914\u0930 \u0915\u094d\u092f\u093e \u0935\u093e\u0938\u094d\u0924\u0935 \u092e\u0947\u0902 \u0905\u092a\u0928\u0947 \u0917\u094b\u0926\u093e\u092e\u094b\u0902 \u092e\u0947\u0902 \u092e\u094c\u091c\u0942\u0926 \u0939\u0948."
-}
\ No newline at end of file
diff --git a/stock/module_def/stock/locale/hr-doc.json b/stock/module_def/stock/locale/hr-doc.json
deleted file mode 100644
index 53b9b4bd31b..00000000000
--- a/stock/module_def/stock/locale/hr-doc.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "A Product or a Service that is bought, sold or kept in stock.": "Proizvod ili usluga koji je kupio, prodao ili \u010duva u skladi\u0161tu.",
- "A logical Warehouse against which stock entries are made.": "Logi\u010dno Skladi\u0161te protiv kojih dionica unosi su napravili.",
- "Aggregate group of **Items** into another **Item**. This is useful if you are bundling a certain **Items** into a package and you maintain stock of the packed **Items** and not the aggregate **Item**. The package **Item** will have \"Is Stock Item\" as \"No\" and \"Is Sales Item\" as \"Yes\".For Example: If you are selling Laptops and Backpacks separately and have a special price if the customer buys both, then the Laptop + Backpack will be a new Sales BOM Item.Note: BOM = Bill of Materials": "Agregat skupina ** stavki ** u drugoj to\u010dki ** **. To je korisno ako ste vezanje odre\u0111ene artikle ** ** u paketu i odr\u017eavanje zalihe pakiran ** stavki ** a ne agregata ** artikla **. Paket ** artikla ** \u0107e "Je katalo\u0161ki Stavka" kao "Ne" i "Je li prodaja artikla" kao "Da", na primjer:. Ako prodajete Prijenosna ra\u010dunala i Ruksaci odvojeno i imaju posebnu cijenu ako kupac kupuje oboje , onda laptop + ruksak \u0107e biti novi Prodaja BOM Item.Note: BOM = Bill materijala",
- "Distinct unit of an Item": "Razlikovna jedinica stavku",
- "Featured Item in Item Group": "Prikazan artikla u to\u010dki Grupe",
- "For the convenience of customers, these codes can be used in print formats like Invoices and Delivery Notes": "Za prakti\u010dnost kupaca, te kodovi mogu se koristiti u tiskanim formata kao \u0161to su fakture i otpremnice",
- "Generate packing slips for packages to be delivered. Used to notify package number, package contents and its weight.": "Generirajte pakiranje ga\u0107ice za pakete koji \u0107e biti isporu\u010den. Rabljeni obavijestiti paket broj, sadr\u017eaj paketa i njegovu te\u017einu.",
- "Item-Wise Price List": "Stavka-Wise Cjenik",
- "Ordered Items To Be Delivered": "Naru\u010deni Proizvodi se dostavljaju",
- "Purchase Order Items To Be Received": "Narud\u017ebenica Proizvodi treba primiti",
- "Serial No Service Contract Expiry": "Serijski Bez isteka Ugovor o pru\u017eanju usluga",
- "Serial No Status": "Serijski Bez Status",
- "Serial No Warranty Expiry": "Serijski Nema jamstva isteka",
- "Stock Ageing": "Katalo\u0161ki Starenje",
- "Stock Analytics": "Stock Analytics",
- "Stock Balance": "Katalo\u0161ki bilanca",
- "Stock Home": "Katalo\u0161ki Po\u010detna",
- "Stock Ledger": "Stock Ledger",
- "Stock Level": "Katalo\u0161ki Razina",
- "Table for Item that will be shown in Web Site": "Tablica za predmet koji \u0107e biti prikazan u web stranice",
- "This tool helps you to update or fix the quantity and valuation of stock in the system. It is typically used to synchronise the system values and what actually exists in your warehouses.": "Ovaj alat poma\u017ee vam da a\u017eurirate ili popraviti koli\u010dinu i vrednovanja zaliha u sustavu. To se obi\u010dno koristi za sinkronizaciju sustava vrijednosti i \u0161to zapravo postoji u svojim skladi\u0161tima."
-}
\ No newline at end of file
diff --git a/stock/module_def/stock/locale/nl-doc.json b/stock/module_def/stock/locale/nl-doc.json
deleted file mode 100644
index 2ee998bd8e8..00000000000
--- a/stock/module_def/stock/locale/nl-doc.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "A Product or a Service that is bought, sold or kept in stock.": "Een product of een dienst die wordt gekocht, verkocht of in voorraad gehouden.",
- "A logical Warehouse against which stock entries are made.": "Een logische Warehouse waartegen de voorraad worden gemaakt.",
- "Aggregate group of **Items** into another **Item**. This is useful if you are bundling a certain **Items** into a package and you maintain stock of the packed **Items** and not the aggregate **Item**. The package **Item** will have \"Is Stock Item\" as \"No\" and \"Is Sales Item\" as \"Yes\".For Example: If you are selling Laptops and Backpacks separately and have a special price if the customer buys both, then the Laptop + Backpack will be a new Sales BOM Item.Note: BOM = Bill of Materials": "De totale groep van ** Items ** in een andere ** Item **. Dit is handig als u de bundeling van een bepaalde ** Items ** in een pakket en u onderhoudt voorraad van de verpakte ** Items ** en niet de totale ** Item **. Het pakket ** Item ** zal hebben "Is Stock Item" als "No" en "Is Sales Item" als "Ja" Bijvoorbeeld:. Als je verkoopt laptops en Rugzakken apart en hebben een speciale prijs als de klant koopt zowel , dan is de laptop + Rugzak zal een nieuwe Sales BOM Item.Note: BOM = Bill of Materials",
- "Distinct unit of an Item": "Aparte eenheid van een item",
- "Featured Item in Item Group": "Featured Product in punt Group",
- "For the convenience of customers, these codes can be used in print formats like Invoices and Delivery Notes": "Voor het gemak van de klanten, kunnen deze codes worden gebruikt in gedrukte formaten zoals facturen en de leveringsbonnen",
- "Generate packing slips for packages to be delivered. Used to notify package number, package contents and its weight.": "Genereer pakbonnen voor pakketten te leveren. Gebruikt voor het verpakken aantal, inhoud van de verpakking en het gewicht mee te delen.",
- "Item-Wise Price List": "Item-Wise Prijslijst",
- "Ordered Items To Be Delivered": "Besteld te leveren zaken",
- "Purchase Order Items To Be Received": "Purchase Order Items te ontvangen",
- "Serial No Service Contract Expiry": "Serial No Service Contract Expiry",
- "Serial No Status": "Serienummer Status",
- "Serial No Warranty Expiry": "Serial Geen garantie Expiry",
- "Stock Ageing": "Stock Vergrijzing",
- "Stock Analytics": "Stock Analytics",
- "Stock Balance": "Stock Balance",
- "Stock Home": "Onze voorraad Home",
- "Stock Ledger": "Stock Ledger",
- "Stock Level": "Stock Level",
- "Table for Item that will be shown in Web Site": "Tabel voor post die wordt weergegeven in Web Site",
- "This tool helps you to update or fix the quantity and valuation of stock in the system. It is typically used to synchronise the system values and what actually exists in your warehouses.": "Deze tool helpt u bij te werken of vast te stellen de hoeveelheid en waardering van de voorraad in het systeem. Het wordt meestal gebruikt om het systeem waarden te synchroniseren en wat werkelijk bestaat in uw magazijnen."
-}
\ No newline at end of file
diff --git a/stock/module_def/stock/locale/pt-doc.json b/stock/module_def/stock/locale/pt-doc.json
deleted file mode 100644
index fced9e03bda..00000000000
--- a/stock/module_def/stock/locale/pt-doc.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "A Product or a Service that is bought, sold or kept in stock.": "Um produto ou um servi\u00e7o que \u00e9 comprado, vendido ou mantidos em estoque.",
- "A logical Warehouse against which stock entries are made.": "Um armaz\u00e9m l\u00f3gico contra o qual as entradas de a\u00e7\u00f5es s\u00e3o feitas.",
- "Aggregate group of **Items** into another **Item**. This is useful if you are bundling a certain **Items** into a package and you maintain stock of the packed **Items** and not the aggregate **Item**. The package **Item** will have \"Is Stock Item\" as \"No\" and \"Is Sales Item\" as \"Yes\".For Example: If you are selling Laptops and Backpacks separately and have a special price if the customer buys both, then the Laptop + Backpack will be a new Sales BOM Item.Note: BOM = Bill of Materials": "Grupo agregado de Itens ** ** em outro item **. ** Isso \u00e9 \u00fatil se voc\u00ea est\u00e1 empacotando um certo ** ** Itens em um pacote e voc\u00ea manter o estoque dos itens embalados ** ** e n\u00e3o agregar o item **. ** O pacote ** ** item ter\u00e1 "\u00e9 o item da" como "N\u00e3o" e "\u00e9 o item de vendas" como "Sim", por exemplo:. Se voc\u00ea est\u00e1 vendendo laptops e mochilas separadamente e t\u00eam um pre\u00e7o especial se o cliente compra tanto , ent\u00e3o o Laptop Backpack + ser\u00e1 uma nova Vendas BOM Item.Note: BOM = Bill of Materials",
- "Distinct unit of an Item": "Unidade distinta de um item",
- "Featured Item in Item Group": "Item destacado no Grupo item",
- "For the convenience of customers, these codes can be used in print formats like Invoices and Delivery Notes": "Para a comodidade dos clientes, estes c\u00f3digos podem ser usados \u200b\u200bem formatos de impress\u00e3o, como facturas e guias de entrega",
- "Generate packing slips for packages to be delivered. Used to notify package number, package contents and its weight.": "Gerar comprovantes de entrega de pacotes a serem entregues. Usado para notificar n\u00famero do pacote, o conte\u00fado do pacote e seu peso.",
- "Item-Wise Price List": "Item-Wise Lista de Pre\u00e7os",
- "Ordered Items To Be Delivered": "Itens ordenados a ser entregue",
- "Purchase Order Items To Be Received": "Comprar itens para ser recebido",
- "Serial No Service Contract Expiry": "N \u00ba de S\u00e9rie Vencimento Contrato de Servi\u00e7o",
- "Serial No Status": "No Estado de s\u00e9rie",
- "Serial No Warranty Expiry": "Caducidade N\u00e3o Serial Garantia",
- "Stock Ageing": "Envelhecimento estoque",
- "Stock Analytics": "Analytics a\u00e7\u00f5es",
- "Stock Balance": "Balan\u00e7o de estoque",
- "Stock Home": "In\u00edcio",
- "Stock Ledger": "Estoque Ledger",
- "Stock Level": "N\u00edvel de estoque",
- "Table for Item that will be shown in Web Site": "Tabela para Item que ser\u00e1 mostrado no site",
- "This tool helps you to update or fix the quantity and valuation of stock in the system. It is typically used to synchronise the system values and what actually exists in your warehouses.": "Esta ferramenta ajuda a atualizar ou corrigir a quantidade ea valoriza\u00e7\u00e3o do estoque no sistema. Ele \u00e9 geralmente usado para sincronizar os valores do sistema eo que realmente existe em seus armaz\u00e9ns."
-}
\ No newline at end of file
diff --git a/stock/module_def/stock/locale/sr-doc.json b/stock/module_def/stock/locale/sr-doc.json
deleted file mode 100644
index aae36ce3b36..00000000000
--- a/stock/module_def/stock/locale/sr-doc.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
- "A Product or a Service that is bought, sold or kept in stock.": "\u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434 \u0438\u043b\u0438 \u0443\u0441\u043b\u0443\u0433\u0430 \u043a\u043e\u0458\u0438 \u0441\u0435 \u043a\u0443\u043f\u0443\u0458\u0443, \u043f\u0440\u043e\u0434\u0430\u0458\u0443 \u0438\u043b\u0438 \u0447\u0443\u0432\u0430\u0458\u0443 \u043d\u0430 \u043b\u0430\u0433\u0435\u0440\u0443.",
- "A logical Warehouse against which stock entries are made.": "\u041b\u043e\u0433\u0438\u0447\u0430\u043d \u041c\u0430\u0433\u0430\u0446\u0438\u043d \u043f\u0440\u043e\u0442\u0438\u0432 \u043a\u043e\u0458\u0438\u0445 \u0441\u0435 \u043f\u0440\u0430\u0432\u0435 \u0437\u0430\u043b\u0438\u0445\u0435 \u0441\u0442\u0430\u0432\u043a\u0435.",
- "Aggregate group of **Items** into another **Item**. This is useful if you are bundling a certain **Items** into a package and you maintain stock of the packed **Items** and not the aggregate **Item**. The package **Item** will have \"Is Stock Item\" as \"No\" and \"Is Sales Item\" as \"Yes\".For Example: If you are selling Laptops and Backpacks separately and have a special price if the customer buys both, then the Laptop + Backpack will be a new Sales BOM Item.Note: BOM = Bill of Materials": "\u0410\u0433\u0440\u0435\u0433\u0430\u0442 \u0433\u0440\u0443\u043f\u0430 ** ** \u0458\u0435\u0434\u0438\u043d\u0438\u0446\u0435 \u0443 \u0434\u0440\u0443\u0433\u0443 ** ** \u0442\u0430\u0447\u043a\u0435. \u041e\u0432\u043e \u0458\u0435 \u043a\u043e\u0440\u0438\u0441\u043d\u043e \u0430\u043a\u043e \u0441\u0442\u0435 \u0433\u0440\u0443\u043f\u0438\u0441\u0430\u045a\u0435 \u043e\u0434\u0440\u0435\u0452\u0435\u043d\u0435 \u0441\u0442\u0430\u0432\u043a\u0435 ** ** \u0443 \u043f\u0430\u043a\u0435\u0442\u0443 \u0438 \u0434\u0430 \u043e\u0434\u0440\u0436\u0438 \u0437\u0430\u043b\u0438\u0445\u0435 \u0443\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u0438\u0445 ** ** \u0441\u0442\u0430\u0432\u043a\u0438, \u0430 \u043d\u0435 \u0430\u0433\u0440\u0435\u0433\u0430\u0442 ** ** \u0442\u0430\u0447\u043a\u0430. \u041f\u0430\u043a\u0435\u0442 ** ** \u0448\u0438\u0444\u0440\u0430 \u045b\u0435 "\u0414\u0430 \u043b\u0438 \u0458\u0435 \u0431\u0435\u0440\u0437\u0430 \u0421\u0442\u0430\u0432\u043a\u0430" \u043a\u0430\u043e "\u043d\u0435" \u0438 "\u0414\u0430 \u043b\u0438 \u0458\u0435 \u043f\u0440\u043e\u0434\u0430\u0458\u0435 \u0421\u0442\u0430\u0432\u043a\u0430" \u043a\u0430\u043e "\u0414\u0430" \u0417\u0430 \u041f\u0440\u0438\u043c\u0435\u0440: \u0410\u043a\u043e \u0441\u0435 \u043f\u0440\u043e\u0434\u0430\u0458\u0435 \u043b\u0430\u043f\u0442\u043e\u043f \u0438 \u0440\u0430\u043d\u0447\u0435\u0432\u0438 \u043e\u0434\u0432\u043e\u0458\u0435\u043d\u043e \u0438 \u0438\u043c\u0430\u0458\u0443 \u043f\u043e\u0441\u0435\u0431\u043d\u0443 \u0446\u0435\u043d\u0443 \u0443\u043a\u043e\u043b\u0438\u043a\u043e \u043a\u0443\u043f\u0430\u0446 \u043a\u0443\u043f\u0443\u0458\u0435 \u043e\u0431\u043e\u0458\u0435. , \u043e\u043d\u0434\u0430 \u043b\u0430\u043f\u0442\u043e\u043f + \u0420\u0430\u043d\u0430\u0446 \u045b\u0435 \u0431\u0438\u0442\u0438 \u043d\u043e\u0432\u0438 \u041f\u0440\u043e\u0434\u0430\u0458\u0430 \u0411\u041e\u041c \u0418\u0442\u0435\u043c.\u041d\u043e\u0442\u0435: \u0411\u041e\u041c = \u0421\u0430\u0441\u0442\u0430\u0432\u043d\u0438\u0446\u0435",
- "Distinct unit of an Item": "\u0418\u0437\u0440\u0430\u0436\u0435\u043d\u0430 \u0458\u0435\u0434\u0438\u043d\u0438\u0446\u0430 \u0441\u0442\u0440\u0430\u043d\u0435 \u0458\u0435\u0434\u0438\u043d\u0438\u0446\u0435",
- "Featured Item in Item Group": "\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0459\u0430\u043c\u043e \u0442\u0430\u0447\u043a\u0430 \u0443 \u0433\u0440\u0443\u043f\u0438 \u0430\u0440\u0442\u0438\u043a\u043b\u0430",
- "For the convenience of customers, these codes can be used in print formats like Invoices and Delivery Notes": "\u0417\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u043d\u043e\u0441\u0442 \u043f\u043e\u0442\u0440\u043e\u0448\u0430\u0447\u0430, \u043e\u0432\u0438 \u043a\u043e\u0434\u043e\u0432\u0438 \u043c\u043e\u0433\u0443 \u0434\u0430 \u0441\u0435 \u043a\u043e\u0440\u0438\u0441\u0442\u0435 \u0443 \u0448\u0442\u0430\u043c\u043f\u0430\u043d\u0438\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u043c\u0430 \u043a\u0430\u043e \u0448\u0442\u043e \u0441\u0443 \u0444\u0430\u043a\u0442\u0443\u0440\u0435 \u0438 \u043e\u0442\u043f\u0440\u0435\u043c\u043d\u0438\u0446\u0435",
- "Generate packing slips for packages to be delivered. Used to notify package number, package contents and its weight.": "\u0413\u0435\u043d\u0435\u0440\u0438\u0448\u0438\u0442\u0435 \u043f\u0430\u043a\u043e\u0432\u0430\u045a\u0435 \u0440\u0430\u0447\u0443\u043d\u0435 \u0437\u0430 \u043f\u0430\u043a\u0435\u0442\u0435 \u043a\u043e\u0458\u0438 \u0441\u0435 \u0438\u0441\u043f\u043e\u0440\u0443\u0447\u0443\u0458\u0443. \u041a\u043e\u0440\u0438\u0441\u0442\u0438 \u0441\u0435 \u043e\u0431\u0430\u0432\u0435\u0441\u0442\u0438 \u0431\u0440\u043e\u0458 \u043f\u0430\u043a\u0435\u0442\u0430, \u043f\u0430\u043a\u0435\u0442 \u0441\u0430\u0434\u0440\u0436\u0430\u0458\u0430 \u0438 \u045a\u0435\u0433\u043e\u0432\u0443 \u0442\u0435\u0436\u0438\u043d\u0443.",
- "Item-Wise Price List": "\u0421\u0442\u0430\u0432\u043a\u0430-\u0412\u0438\u0441\u0435 \u0426\u0435\u043d\u043e\u0432\u043d\u0438\u043a",
- "Ordered Items To Be Delivered": "\u0416 \u0421\u0442\u0430\u0432\u043a\u0435 \u0434\u0430 \u0431\u0443\u0434\u0435 \u0438\u0441\u043f\u043e\u0440\u0443\u0447\u0435\u043d\u0430",
- "Serial No Service Contract Expiry": "\u0421\u0435\u0440\u0438\u0458\u0441\u043a\u0438 \u0431\u0440\u043e\u0458 \u0443\u0441\u043b\u0443\u0433\u0430 \u0423\u0433\u043e\u0432\u043e\u0440 \u0418\u0441\u0442\u0435\u043a",
- "Serial No Status": "\u0421\u0435\u0440\u0438\u0458\u0441\u043a\u0438 \u0431\u0440\u043e\u0458 \u0441\u0442\u0430\u0442\u0443\u0441",
- "Serial No Warranty Expiry": "\u0421\u0435\u0440\u0438\u0458\u0441\u043a\u0438 \u041d\u0435\u043c\u0430 \u0433\u0430\u0440\u0430\u043d\u0446\u0438\u0458\u0435 \u0438\u0441\u0442\u0435\u043a\u0430",
- "Stock Ageing": "\u0411\u0435\u0440\u0437\u0430 \u0421\u0442\u0430\u0440\u0435\u045a\u0435",
- "Stock Analytics": "\u0421\u0442\u043e\u0446\u043a \u0410\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0430",
- "Stock Balance": "\u0411\u0435\u0440\u0437\u0430 \u0411\u0438\u043b\u0430\u043d\u0441",
- "Stock Home": "\u0411\u0435\u0440\u0437\u0430 \u041f\u043e\u0447\u0435\u0442\u043d\u0430",
- "Stock Ledger": "\u0411\u0435\u0440\u0437\u0430 \u041b\u0435\u045f\u0435\u0440",
- "Stock Level": "\u0411\u0435\u0440\u0437\u0430 \u041d\u0438\u0432\u043e",
- "Table for Item that will be shown in Web Site": "\u0422\u0430\u0431\u0435\u043b\u0430 \u0437\u0430 \u0442\u0430\u0447\u043a\u0435 \u043a\u043e\u0458\u0435 \u045b\u0435 \u0431\u0438\u0442\u0438 \u043f\u0440\u0438\u043a\u0430\u0437\u0430\u043d\u0435 \u0443 \u0412\u0435\u0431 \u0421\u0438\u0442\u0435",
- "This tool helps you to update or fix the quantity and valuation of stock in the system. It is typically used to synchronise the system values and what actually exists in your warehouses.": "\u041e\u0432\u0430 \u0430\u043b\u0430\u0442\u043a\u0430 \u0432\u0430\u043c \u043f\u043e\u043c\u0430\u0436\u0435 \u0434\u0430 \u0430\u0436\u0443\u0440\u0438\u0440\u0430\u0442\u0435 \u0438\u043b\u0438 \u043f\u043e\u043f\u0440\u0430\u0432\u0438\u0442\u0438 \u043a\u043e\u043b\u0438\u0447\u0438\u043d\u0443 \u0438 \u0432\u0440\u0435\u0434\u043d\u043e\u0432\u0430\u045a\u0435 \u0437\u0430\u043b\u0438\u0445\u0430 \u0443 \u0441\u0438\u0441\u0442\u0435\u043c\u0443. \u041e\u0431\u0438\u0447\u043d\u043e \u0441\u0435 \u043a\u043e\u0440\u0438\u0441\u0442\u0438 \u0437\u0430 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0458\u0443 \u0432\u0440\u0435\u0434\u043d\u043e\u0441\u0442\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0438 \u0448\u0442\u0430 \u0441\u0435 \u0437\u0430\u043f\u0440\u0430\u0432\u043e \u043f\u043e\u0441\u0442\u043e\u0458\u0438 \u0443 \u0432\u0430\u0448\u0438\u043c \u0441\u043a\u043b\u0430\u0434\u0438\u0448\u0442\u0438\u043c\u0430."
-}
\ No newline at end of file
diff --git a/stock/module_def/stock/locale/ta-doc.json b/stock/module_def/stock/locale/ta-doc.json
deleted file mode 100644
index 361d95f756e..00000000000
--- a/stock/module_def/stock/locale/ta-doc.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
- "A Product or a Service that is bought, sold or kept in stock.": "\u0b92\u0bb0\u0bc1 \u0ba4\u0baf\u0bbe\u0bb0\u0bbf\u0baa\u0bcd\u0baa\u0bc1 \u0b85\u0bb2\u0bcd\u0bb2\u0ba4\u0bc1, \u0bb5\u0bbe\u0b99\u0bcd\u0b95\u0bbf \u0bb5\u0bbf\u0bb1\u0bcd\u0baa\u0ba9\u0bc8 \u0b85\u0bb2\u0bcd\u0bb2\u0ba4\u0bc1 \u0baa\u0b99\u0bcd\u0b95\u0bc1 \u0b87\u0bb0\u0bc1\u0b95\u0bcd\u0b95\u0bbf\u0bb1\u0ba4\u0bc1 \u0b8e\u0ba9\u0bcd\u0bb1\u0bc1 \u0b92\u0bb0\u0bc1 \u0b9a\u0bc7\u0bb5\u0bc8.",
- "A logical Warehouse against which stock entries are made.": "\u0baa\u0b99\u0bcd\u0b95\u0bc1 \u0b8e\u0bb4\u0bc1\u0ba4\u0bbf\u0baf\u0bc1\u0bb3\u0bcd\u0bb3\u0bbe\u0bb0\u0bcd \u0b87\u0bb5\u0bc8 \u0b8e\u0ba4\u0bbf\u0bb0\u0bbe\u0b95 \u0b92\u0bb0\u0bc1 \u0ba4\u0bb0\u0bc1\u0b95\u0bcd\u0b95 \u0b95\u0bbf\u0b9f\u0b99\u0bcd\u0b95\u0bc1.",
- "Aggregate group of **Items** into another **Item**. This is useful if you are bundling a certain **Items** into a package and you maintain stock of the packed **Items** and not the aggregate **Item**. The package **Item** will have \"Is Stock Item\" as \"No\" and \"Is Sales Item\" as \"Yes\".For Example: If you are selling Laptops and Backpacks separately and have a special price if the customer buys both, then the Laptop + Backpack will be a new Sales BOM Item.Note: BOM = Bill of Materials": "\u0bae\u0ba4\u0bbf\u0baa\u0bcd\u0baa\u0bc0\u0b9f\u0bcd\u0b9f\u0bc1 ** \u0bb5\u0bbf\u0b9f\u0baf\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b95\u0bc1\u0bb4\u0bc1 ** \u0bae\u0bb1\u0bcd\u0bb1\u0bc6\u0bbe\u0bb0\u0bc1 ** \u0baa\u0bc6\u0bbe\u0bb0\u0bc1\u0bb3\u0bcd \u0b95\u0bc6\u0bbe\u0ba3\u0bcd\u0b9f\u0bc1 **. \u0ba8\u0bc0\u0b99\u0bcd\u0b95\u0bb3\u0bcd ** \u0b92\u0bb0\u0bc1 \u0ba4\u0bc6\u0bbe\u0b95\u0bc1\u0baa\u0bcd\u0baa\u0bc1 \u0b92\u0bb0\u0bc1 \u0b95\u0bc1\u0bb1\u0bbf\u0baa\u0bcd\u0baa\u0bbf\u0b9f\u0bcd\u0b9f ** \u0baa\u0bc6\u0bbe\u0bb0\u0bc1\u0b9f\u0bcd\u0b95\u0bb3\u0bc8 \u0b92\u0ba9\u0bcd\u0bb1\u0bc1 \u0b95\u0bc2\u0b9f\u0bcd\u0b9f\u0bc1\u0ba4\u0bb2\u0bcd \u0b87\u0bb0\u0bc1\u0ba8\u0bcd\u0ba4\u0bbe\u0bb2\u0bcd \u0b87\u0ba8\u0bcd\u0ba4 \u0baa\u0baf\u0ba9\u0bc1\u0bb3\u0bcd\u0bb3\u0ba4\u0bbe\u0b95 \u0b87\u0bb0\u0bc1\u0b95\u0bcd\u0b95\u0bc1\u0bae\u0bcd \u0ba8\u0bc0\u0b99\u0bcd\u0b95\u0bb3\u0bcd ** \u0bae\u0bb1\u0bcd\u0bb1\u0bc1\u0bae\u0bcd \u0bae\u0ba4\u0bbf\u0baa\u0bcd\u0baa\u0bc0\u0b9f\u0bcd\u0b9f\u0bc1 ** \u0baa\u0bc6\u0bbe\u0bb0\u0bc1\u0bb3\u0bcd ** \u0baa\u0bc7\u0b95\u0bcd ** \u0baa\u0bc6\u0bbe\u0bb0\u0bc1\u0b9f\u0bcd\u0b95\u0bb3\u0bc8 \u0baa\u0b99\u0bcd\u0b95\u0bc1 \u0bb5\u0bc8\u0ba4\u0bcd\u0ba4\u0bc1. \u0ba4\u0bc6\u0bbe\u0b95\u0bc1\u0baa\u0bcd\u0baa\u0bc1 ** \u0baa\u0bc6\u0bbe\u0bb0\u0bc1\u0bb3\u0bcd ** "\u0b87\u0bb2\u0bcd\u0bb2\u0bc8" \u0b8e\u0ba9 "\u0baa\u0b99\u0bcd\u0b95\u0bc1 \u0b89\u0bb0\u0bc1\u0baa\u0bcd\u0baa\u0b9f\u0bbf \u0b87\u0bb2\u0bcd\u0bb2\u0bc8" \u0bae\u0bb1\u0bcd\u0bb1\u0bc1\u0bae\u0bcd "\u0b86\u0bae\u0bcd" \u0b8e\u0ba9 "\u0bb5\u0bbf\u0bb1\u0bcd\u0baa\u0ba9\u0bc8 \u0baa\u0bc6\u0bbe\u0bb0\u0bc1\u0bb3\u0bbe\u0b95 \u0b89\u0bb3\u0bcd\u0bb3\u0ba4\u0bc1" \u0b89\u0ba4\u0bbe\u0bb0\u0ba3\u0bae\u0bbe\u0b95:. \u0ba8\u0bc0\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0ba4\u0ba9\u0bbf\u0baf\u0bbe\u0b95 \u0bae\u0b9f\u0bbf\u0b95\u0bcd\u0b95\u0ba3\u0bbf\u0ba9\u0bbf\u0b95\u0bb3\u0bcd \u0bae\u0bb1\u0bcd\u0bb1\u0bc1\u0bae\u0bcd \u0bae\u0bc1\u0ba4\u0bc1\u0b95\u0bbf\u0bb2\u0bcd \u0b9a\u0bc1\u0bae\u0bc8 \u0baa\u0bc8\u0baf\u0bc1\u0b9f\u0ba9\u0bc1\u0bae\u0bcd \u0bb5\u0bbf\u0bb1\u0bcd\u0baa\u0ba9\u0bc8 \u0bae\u0bb1\u0bcd\u0bb1\u0bc1\u0bae\u0bcd \u0b92\u0bb0\u0bc1 \u0b9a\u0bbf\u0bb1\u0baa\u0bcd\u0baa\u0bc1 \u0bb5\u0bbf\u0bb2\u0bc8 \u0b87\u0bb2\u0bcd\u0bb2\u0bc8 \u0b8e\u0ba9\u0bcd\u0bb1\u0bbe\u0bb2\u0bcd \u0bb5\u0bbe\u0b9f\u0bbf\u0b95\u0bcd\u0b95\u0bc8\u0baf\u0bbe\u0bb3\u0bb0\u0bcd \u0b87\u0bb0\u0bc1 \u0bb5\u0bbe\u0b99\u0bcd\u0b95\u0bc1\u0bae\u0bcd \u0baa\u0bc7\u0bbe\u0ba4\u0bc1 \u0baa\u0bc6\u0bbe\u0bb0\u0bc1\u0b9f\u0bcd\u0b95\u0bb3\u0bc8 BOM = \u0baa\u0bbf\u0bb2\u0bcd:, \u0baa\u0bbf\u0ba9\u0bcd\u0ba9\u0bb0\u0bcd \u0bb2\u0bc7\u0baa\u0bcd\u0b9f\u0bbe\u0baa\u0bcd + \u0baa\u0bc8\u0baf\u0bc1\u0b9f\u0ba9\u0bc1\u0bae\u0bcd \u0b92\u0bb0\u0bc1 \u0baa\u0bc1\u0ba4\u0bbf\u0baf \u0bb5\u0bbf\u0bb1\u0bcd\u0baa\u0ba9\u0bc8 BOM Item.Note \u0b87\u0bb0\u0bc1\u0b95\u0bcd\u0b95\u0bc1\u0bae\u0bcd",
- "Distinct unit of an Item": "\u0b92\u0bb0\u0bc1 \u0baa\u0bc6\u0bbe\u0bb0\u0bc1\u0bb3\u0bcd \u0baa\u0bb1\u0bcd\u0bb1\u0bbf\u0baf \u0ba4\u0bc6\u0bb3\u0bbf\u0bb5\u0bbe\u0ba9 \u0b85\u0bb2\u0b95\u0bc1",
- "Featured Item in Item Group": "\u0baa\u0bc6\u0bbe\u0bb0\u0bc1\u0bb3\u0bcd \u0baa\u0bbf\u0bb0\u0bbf\u0bb5\u0bc1 \u0b87\u0b9f\u0bae\u0bcd\u0baa\u0bc6\u0bb1\u0bcd\u0bb1\u0ba4\u0bc1 \u0baa\u0bc6\u0bbe\u0bb0\u0bc1\u0bb3\u0bcd",
- "For the convenience of customers, these codes can be used in print formats like Invoices and Delivery Notes": "\u0bb5\u0bbe\u0b9f\u0bbf\u0b95\u0bcd\u0b95\u0bc8\u0baf\u0bbe\u0bb3\u0bb0\u0bcd\u0b95\u0bb3\u0bbf\u0ba9\u0bcd \u0bb5\u0b9a\u0ba4\u0bbf\u0b95\u0bcd\u0b95\u0bbe\u0b95, \u0b87\u0ba8\u0bcd\u0ba4 \u0b95\u0bc1\u0bb1\u0bbf\u0baf\u0bc0\u0b9f\u0bc1\u0b95\u0bb3\u0bcd \u0baa\u0bb1\u0bcd\u0bb1\u0bc1\u0b9a\u0bcd\u0b9a\u0bc0\u0b9f\u0bcd\u0b9f\u0bc1\u0b95\u0bb3\u0bcd \u0bae\u0bb1\u0bcd\u0bb1\u0bc1\u0bae\u0bcd \u0b9f\u0bc6\u0bb2\u0bbf\u0bb5\u0bb0\u0bbf \u0b95\u0bc1\u0bb1\u0bbf\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd \u0baa\u0bc7\u0bbe\u0ba9\u0bcd\u0bb1 \u0b85\u0b9a\u0bcd\u0b9a\u0bc1 \u0bb5\u0b9f\u0bbf\u0bb5\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0baa\u0baf\u0ba9\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4 \u0bae\u0bc1\u0b9f\u0bbf\u0baf\u0bc1\u0bae\u0bcd",
- "Generate packing slips for packages to be delivered. Used to notify package number, package contents and its weight.": "\u0bb5\u0bbf\u0ba8\u0bbf\u0baf\u0bc7\u0bbe\u0b95\u0bbf\u0baa\u0bcd\u0baa\u0ba4\u0bb1\u0bcd\u0b95\u0bbe\u0b95 \u0ba4\u0bc6\u0bbe\u0b95\u0bc1\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd \u0baa\u0bbf\u0ba9\u0bcd\u0ba9\u0b9f\u0bc8\u0bb5\u0bc1 \u0baa\u0bc6\u0bbe\u0ba4\u0bbf \u0b89\u0bb0\u0bc1\u0bb5\u0bbe\u0b95\u0bcd\u0b95. \u0ba4\u0bc6\u0bbe\u0b95\u0bc1\u0baa\u0bcd\u0baa\u0bc1 \u0b8e\u0ba3\u0bcd, \u0ba4\u0bc6\u0bbe\u0b95\u0bc1\u0baa\u0bcd\u0baa\u0bc1 \u0b89\u0bb3\u0bcd\u0bb3\u0b9f\u0b95\u0bcd\u0b95\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0bae\u0bb1\u0bcd\u0bb1\u0bc1\u0bae\u0bcd \u0b85\u0ba4\u0ba9\u0bcd \u0b8e\u0b9f\u0bc8 \u0ba4\u0bc6\u0bb0\u0bbf\u0bb5\u0bbf\u0b95\u0bcd\u0b95 \u0baa\u0baf\u0ba9\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0baa\u0bcd\u0baa\u0b9f\u0bc1\u0b95\u0bbf\u0bb1\u0ba4\u0bc1.",
- "Item-Wise Price List": "\u0b89\u0bb0\u0bc1\u0baa\u0bcd\u0baa\u0b9f\u0bbf\u0baf\u0bc8-\u0bb5\u0bc8\u0bb8\u0bcd \u0bb5\u0bbf\u0bb2\u0bc8 \u0baa\u0b9f\u0bcd\u0b9f\u0bbf\u0baf\u0bb2\u0bcd",
- "Ordered Items To Be Delivered": "\u0bb5\u0bbf\u0ba8\u0bbf\u0baf\u0bc7\u0bbe\u0b95\u0bbf\u0baa\u0bcd\u0baa\u0ba4\u0bb1\u0bcd\u0b95\u0bbe\u0b95 \u0b89\u0ba4\u0bcd\u0ba4\u0bb0\u0bb5\u0bbf\u0b9f\u0bcd\u0b9f\u0bbe\u0bb0\u0bcd \u0b89\u0bb0\u0bc1\u0baa\u0bcd\u0baa\u0b9f\u0bbf\u0b95\u0bb3\u0bcd",
- "Serial No Service Contract Expiry": "\u0ba4\u0bc6\u0bbe\u0b9f\u0bb0\u0bcd \u0b8e\u0ba3\u0bcd \u0b9a\u0bc7\u0bb5\u0bc8 \u0b92\u0baa\u0bcd\u0baa\u0ba8\u0bcd\u0ba4\u0bae\u0bcd \u0b95\u0bbe\u0bb2\u0bbe\u0bb5\u0ba4\u0bbf\u0baf\u0bbe\u0b95\u0bc1\u0bae\u0bcd",
- "Serial No Status": "\u0ba4\u0bc6\u0bbe\u0b9f\u0bb0\u0bcd \u0b87\u0bb2\u0bcd\u0bb2\u0bc8 \u0ba8\u0bbf\u0bb2\u0bc8\u0bae\u0bc8",
- "Serial No Warranty Expiry": "\u0ba4\u0bc6\u0bbe\u0b9f\u0bb0\u0bcd \u0b87\u0bb2\u0bcd\u0bb2\u0bc8 \u0b89\u0ba4\u0bcd\u0ba4\u0bb0\u0bb5\u0bbe\u0ba4\u0ba4\u0bcd\u0ba4\u0bc8 \u0b95\u0bbe\u0bb2\u0bbe\u0bb5\u0ba4\u0bbf\u0baf\u0bbe\u0b95\u0bc1\u0bae\u0bcd",
- "Stock Ageing": "\u0baa\u0b99\u0bcd\u0b95\u0bc1 \u0bae\u0bc2\u0baa\u0bcd\u0baa\u0b9f\u0bc8\u0ba4\u0bb2\u0bc1\u0b95\u0bcd\u0b95\u0bbe\u0ba9",
- "Stock Analytics": "\u0baa\u0b99\u0bcd\u0b95\u0bc1 \u0b85\u0ba9\u0bb2\u0bbf\u0b9f\u0bcd\u0b9f\u0bbf\u0b95\u0bcd\u0bb8\u0bcd",
- "Stock Balance": "\u0baa\u0b99\u0bcd\u0b95\u0bc1 \u0b87\u0bb0\u0bc1\u0baa\u0bcd\u0baa\u0bc1",
- "Stock Home": "\u0baa\u0b99\u0bcd\u0b95\u0bc1 \u0bae\u0bc1\u0b95\u0baa\u0bcd\u0baa\u0bc1",
- "Stock Ledger": "\u0baa\u0b99\u0bcd\u0b95\u0bc1 \u0bb2\u0bc6\u0b9f\u0bcd\u0b9c\u0bb0\u0bcd",
- "Stock Level": "\u0baa\u0b99\u0bcd\u0b95\u0bc1 \u0ba8\u0bbf\u0bb2\u0bc8",
- "Table for Item that will be shown in Web Site": "\u0bb5\u0bb2\u0bc8\u0ba4\u0bcd\u0ba4\u0bb3 \u0b95\u0bbe\u0ba3\u0bcd\u0baa\u0bbf\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bc1\u0bae\u0bcd \u0b8e\u0ba9\u0bcd\u0bb1\u0bc1 \u0baa\u0bc6\u0bbe\u0bb0\u0bc1\u0bb3\u0bcd \u0b85\u0b9f\u0bcd\u0b9f\u0bb5\u0ba3\u0bc8",
- "This tool helps you to update or fix the quantity and valuation of stock in the system. It is typically used to synchronise the system values and what actually exists in your warehouses.": "\u0b87\u0ba8\u0bcd\u0ba4 \u0b95\u0bb0\u0bc1\u0bb5\u0bbf\u0baf\u0bc8 \u0ba8\u0bc0\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b95\u0ba3\u0bbf\u0ba9\u0bbf\u0baf\u0bbf\u0bb2\u0bcd \u0b85\u0bb3\u0bb5\u0bc1 \u0bae\u0bb1\u0bcd\u0bb1\u0bc1\u0bae\u0bcd \u0baa\u0b99\u0bcd\u0b95\u0bc1 \u0bae\u0ba4\u0bbf\u0baa\u0bcd\u0baa\u0bc1 \u0bae\u0bc7\u0bae\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4 \u0b85\u0bb2\u0bcd\u0bb2\u0ba4\u0bc1 \u0b9a\u0bb0\u0bbf\u0b9a\u0bc6\u0baf\u0bcd\u0baf \u0b89\u0ba4\u0bb5\u0bc1\u0bae\u0bcd. \u0b85\u0ba4\u0bc1 \u0baa\u0bc6\u0bbe\u0ba4\u0bc1\u0bb5\u0bbe\u0b95 \u0b95\u0ba3\u0bbf\u0ba9\u0bbf \u0bae\u0ba4\u0bbf\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd \u0b92\u0bb0\u0bc1\u0b99\u0bcd\u0b95\u0bbf\u0ba3\u0bc8\u0b95\u0bcd\u0b95 \u0baa\u0baf\u0ba9\u0bcd\u0baa\u0b9f\u0bc1\u0b95\u0bbf\u0bb1\u0ba4\u0bc1 \u0b8e\u0ba9\u0bcd\u0ba9 \u0b89\u0ba3\u0bcd\u0bae\u0bc8\u0baf\u0bbf\u0bb2\u0bcd \u0b89\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b95\u0bbf\u0b9f\u0b99\u0bcd\u0b95\u0bc1\u0b95\u0bb3\u0bcd \u0b89\u0bb3\u0bcd\u0bb3\u0ba4\u0bc1."
-}
\ No newline at end of file
diff --git a/stock/page/stock_ageing/stock_ageing.js b/stock/page/stock_ageing/stock_ageing.js
index fb607712c8d..edad9a76a18 100644
--- a/stock/page/stock_ageing/stock_ageing.js
+++ b/stock/page/stock_ageing/stock_ageing.js
@@ -48,6 +48,11 @@ erpnext.StockAgeing = erpnext.StockGridReport.extend({
open_btn: true,
doctype: '"Item"'
}},
+ {id: "item_name", name: "Item Name", field: "item_name",
+ width: 100, formatter: this.text_formatter},
+ {id: "description", name: "Description", field: "description",
+ width: 200, formatter: this.text_formatter},
+ {id: "brand", name: "Brand", field: "brand", width: 100},
{id: "average_age", name: "Average Age", field: "average_age",
formatter: this.currency_formatter},
{id: "earliest", name: "Earliest", field: "earliest",
@@ -55,11 +60,6 @@ erpnext.StockAgeing = erpnext.StockGridReport.extend({
{id: "latest", name: "Latest", field: "latest",
formatter: this.currency_formatter},
{id: "stock_uom", name: "UOM", field: "stock_uom", width: 100},
- {id: "brand", name: "Brand", field: "brand", width: 100},
- {id: "item_name", name: "Item Name", field: "item_name",
- width: 100, formatter: this.text_formatter},
- {id: "description", name: "Description", field: "description",
- width: 200, formatter: this.text_formatter},
];
},
filters: [
diff --git a/stock/page/stock_balance/stock_balance.js b/stock/page/stock_balance/stock_balance.js
index bec13372b31..9494f0dde6f 100644
--- a/stock/page/stock_balance/stock_balance.js
+++ b/stock/page/stock_balance/stock_balance.js
@@ -42,7 +42,11 @@ erpnext.StockBalance = erpnext.StockAnalytics.extend({
this.columns = [
{id: "name", name: "Item", field: "name", width: 300,
formatter: this.tree_formatter},
-
+ {id: "item_name", name: "Item Name", field: "item_name", width: 100},
+ {id: "description", name: "Description", field: "description", width: 200,
+ formatter: this.text_formatter},
+ {id: "brand", name: "Brand", field: "brand", width: 100},
+ {id: "stock_uom", name: "UOM", field: "stock_uom", width: 100},
{id: "opening_qty", name: "Opening Qty", field: "opening_qty", width: 100,
formatter: this.currency_formatter},
{id: "inflow_qty", name: "In Qty", field: "inflow_qty", width: 100,
@@ -60,11 +64,6 @@ erpnext.StockBalance = erpnext.StockAnalytics.extend({
formatter: this.currency_formatter},
{id: "closing_value", name: "Closing Value", field: "closing_value", width: 100,
formatter: this.currency_formatter},
- {id: "stock_uom", name: "UOM", field: "stock_uom", width: 100},
- {id: "brand", name: "Brand", field: "brand", width: 100},
- {id: "item_name", name: "Item Name", field: "item_name", width: 100},
- {id: "description", name: "Description", field: "description", width: 200,
- formatter: this.text_formatter},
];
},
@@ -103,8 +102,7 @@ erpnext.StockBalance = erpnext.StockAnalytics.extend({
for(var i=0, j=data.length; i
To manage Customer Groups, click here"," Kundengruppen zu verwalten, klicken Sie hier a>"
+"Manage Item Groups"," Artikel Gruppen verwalten a>"
+"To manage Territory, click here"," Um Territory zu verwalten, klicken Sie hier a>"
+"To manage Territory, click here"," Um Territory zu verwalten, klicken Sie hier a>"
+"To manage Territory, click here"," Um Territory zu verwalten, klicken Sie hier a>"
+"\field:[fieldname] - By Field\naming_series: - By Naming Series (field called naming_series must be present\eval:[expression] - Evaluate an expression in python (self is doc)\Prompt - Prompt user for a name\[series] - Series by prefix (separated by a dot); for example PRE.#####\')"">Naming Options"," \ Feld: [Feldname] b> - Durch Feld \ naming_series: b> - durch die Benennung Series (Feld namens naming_series muss vorhanden sein \ eval: [Ausdruck] b> - Bewerten Sie einen Ausdruck in python (Selbst ist doc) \ Prompt b> - Benutzer nach einem Namen \ [Serie] b> - Series by Prefix (getrennt durch einen Punkt);. zum Beispiel PRE # # # # # \ ol> ') ""> Naming Optionen a>"
+Cancel allows you change Submitted documents by cancelling them and amending them., Abbrechen b> können Sie ändern eingereichten Unterlagen durch Vernichtung von ihnen und zur Änderung ihnen.
+"To setup, please go to Setup > Naming Series"," Um einzurichten, gehen Sie bitte auf Setup> Naming Series span>"
+#ERROR!:parse,# ERROR!
+>,>
+>=,> =
+A,A
+A Customer exists with same name,Ein Kunde gibt mit dem gleichen Namen
+A Lead with this email id should exist,Ein Lead mit dieser E-Mail-ID sollte vorhanden sein
+A Product is shown on the website and is linked to an item.,Ein Produkt wird auf der Website gezeigt und wird zu einem Element verbunden.
+"A Product or a Service that is bought, sold or kept in stock.","Ein Produkt oder eine Dienstleistung, die gekauft, verkauft oder gehalten auf Lager."
+A Supplier exists with same name,Ein Lieferant existiert mit dem gleichen Namen
+A logical Warehouse against which stock entries are made.,Eine logische Warehouse gegen die Lager-Einträge vorgenommen werden.
+A new popup will open that will ask you to select further conditions.,"Ein neues Pop-up öffnet das wird Sie bitten, weitere Bedingungen zu wählen."
+A symbol for this currency. For e.g. $,Ein Symbol für diese Währung. Für z.B. $
+A third party distributor / dealer / commission agent / affiliate / reseller who sells the companies products for a commission.,Ein Dritter Vertrieb / Händler / Kommissionär / affiliate / Vertragshändler verkauft die Unternehmen Produkte für eine Provision.
+A user can have multiple values for a property.,Ein Benutzer kann mehrere Werte für eine Eigenschaft.
+A+,A +
+A-,A-
+AB+,AB +
+AB-,AB-
+AMC Expiry Date,AMC Ablaufdatum
+ATT,ATT
+Abbr,Abk.
+About,Über
+About Us Settings,Über uns Settings
+About Us Team Member,Über uns Team Member
+Above Value,Vor Wert
+Absent,Abwesend
+Acceptance Criteria,Akzeptanzkriterien
+Accepted,Akzeptiert
+Accepted Quantity,Akzeptiert Menge
+Accepted Warehouse,Akzeptiert Warehouse
+Account,Konto
+Account Balance,Kontostand
+Account Details,Kontodetails
+Account Head,Konto Leiter
+Account Id,Konto-ID
+Account Info,Kundendaten
+Account Name,Account Name
+Account Type,Kontotyp
+Account:,Konto:
+"Accounting entry frozen up to this date, nobody can do / modify entry except authorized person","Buchhaltungseingaben bis zu diesem Zeitpunkt eingefroren, kann niemand / nicht ändern Eintrag außer autorisierten Person"
+Accounting journal entries.,Accounting Journaleinträge.
+Accounts,Konten
+Accounts Browser,Konten Browser
+Accounts Frozen Upto,Konten Bis gefroren
+Accounts Home,Accounts Startseite
+Accounts Payable,Kreditorenbuchhaltung
+Accounts Receivable,Debitorenbuchhaltung
+Action,Aktion
+Action Detail,Aktion Details
+Action html,Aktion html
+Active,Aktiv
+Active: Will extract emails from,Aktive: Wird E-Mails zu extrahieren
+Activity,Aktivität
+Activity Log,Activity Log
+Activity Name,Aktivität Name
+Activity Type,Art der Tätigkeit
+Actual,Tatsächlich
+Actual Amount,Istmenge
+Actual Budget,Tatsächliche Budget
+Actual Completion Date,Tatsächliche Datum der Fertigstellung
+Actual Date,Aktuelles Datum
+Actual End Date,Actual End Datum
+Actual End Time,Tatsächliche Endzeit
+Actual Qty,Tatsächliche Menge
+Actual Qty (at source/target),Tatsächliche Menge (an der Quelle / Ziel)
+Actual Qty After Transaction,Tatsächliche Menge Nach Transaction
+Actual Quantity,Tatsächliche Menge
+Actual Start Date,Tatsächliche Startdatum
+Actual Start Time,Tatsächliche Startzeit
+Add,Hinzufügen
+Add / Edit Taxes and Charges,Hinzufügen / Bearbeiten Steuern und Abgaben
+Add A New Rule,Fügen Sie eine neue Regel
+Add A Property,Fügen Sie eine Eigenschaft
+Add Attachments,Anhänge hinzufügen
+Add Bookmark,Lesezeichen hinzufügen
+Add CSS,Fügen Sie CSS
+Add Column,Spalte hinzufügen
+Add Message,Nachricht hinzufügen
+Add New Permission Rule,Add New Permission Rule
+Add Reply,Fügen Sie Antworten
+Add Terms and Conditions for the Purchase Receipt. You can also prepare a Terms and Conditions Master and use the Template.,Hinzufügen Geschäftsbedingungen für den Kaufbeleg. Sie können auch eine AGB-Master und verwenden Sie die Vorlage.
+Add Terms and Conditions for the Purchase Requisition. You can also prepare a Terms and Conditions Master and use the Template,Fügen AGB für die Bestellanforderung. Sie können auch eine AGB-Master und verwenden Sie die Vorlage
+"Add Terms and Conditions for the Quotation like Payment Terms, Validity of Offer etc. You can also prepare a Terms and Conditions Master and use the Template","Fügen AGB für das Angebot wie Zahlungsbedingungen, Gültigkeit des Angebots etc. Sie können auch ein AGB-Master und verwenden Sie die Vorlage"
+Add code as <script>,Fügen Sie Code wie