Merge pull request #9355 from rohitwaghchaure/company_wise_manufacturing_settings

[Enhance] Company wise perpetual inventory settings
diff --git a/erpnext/__init__.py b/erpnext/__init__.py
index 6f73467..f65e5f3 100644
--- a/erpnext/__init__.py
+++ b/erpnext/__init__.py
@@ -2,7 +2,7 @@
 from __future__ import unicode_literals
 import frappe
 
-__version__ = '8.0.50'
+__version__ = '8.0.51'
 
 
 def get_default_company(user=None):
diff --git a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py
index 00d5249..e768c27 100644
--- a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py
+++ b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py
@@ -205,14 +205,14 @@
 		if frappe.db.get_value("Buying Settings", None, "po_required") == 'Yes':
 			for d in self.get('items'):
 				if not d.purchase_order:
-					throw(_("Purchase Order number required for Item {0}").format(d.item_code))
+					throw(_("As per the Buying Settings if Purchase Order Required == 'YES', then for creating Purchase Invoice, user need to create Purchase Order first for item {0}").format(d.item_code))
 
 	def pr_required(self):
 		stock_items = self.get_stock_items()
 		if frappe.db.get_value("Buying Settings", None, "pr_required") == 'Yes':
 			for d in self.get('items'):
 				if not d.purchase_receipt and d.item_code in stock_items:
-					throw(_("Purchase Receipt number required for Item {0}").format(d.item_code))
+					throw(_("As per the Buying Settings if Purchase Reciept Required == 'YES', then for creating Purchase Invoice, user need to create Purchase Receipt first for item {0}").format(d.item_code))
 
 	def validate_write_off_account(self):
 		if self.write_off_amount and not self.write_off_account:
diff --git a/erpnext/docs/assets/img/accounts/chart-of-cost-center.png b/erpnext/docs/assets/img/accounts/chart-of-cost-center.png
new file mode 100644
index 0000000..7e36be2
--- /dev/null
+++ b/erpnext/docs/assets/img/accounts/chart-of-cost-center.png
Binary files differ
diff --git a/erpnext/docs/assets/img/collaboration-tools/calendar-5.png b/erpnext/docs/assets/img/collaboration-tools/calendar-5.png
deleted file mode 100644
index df8346e..0000000
--- a/erpnext/docs/assets/img/collaboration-tools/calendar-5.png
+++ /dev/null
Binary files differ
diff --git a/erpnext/docs/assets/img/human-resources/holiday-list-1.png b/erpnext/docs/assets/img/human-resources/holiday-list-1.png
new file mode 100644
index 0000000..0de3ea9
--- /dev/null
+++ b/erpnext/docs/assets/img/human-resources/holiday-list-1.png
Binary files differ
diff --git a/erpnext/docs/assets/img/human-resources/holiday-list-2.gif b/erpnext/docs/assets/img/human-resources/holiday-list-2.gif
new file mode 100644
index 0000000..393255c
--- /dev/null
+++ b/erpnext/docs/assets/img/human-resources/holiday-list-2.gif
Binary files differ
diff --git a/erpnext/docs/assets/img/human-resources/holiday-list-3.png b/erpnext/docs/assets/img/human-resources/holiday-list-3.png
new file mode 100644
index 0000000..dd0c87c
--- /dev/null
+++ b/erpnext/docs/assets/img/human-resources/holiday-list-3.png
Binary files differ
diff --git a/erpnext/docs/assets/img/human-resources/holiday-list-4.png b/erpnext/docs/assets/img/human-resources/holiday-list-4.png
new file mode 100644
index 0000000..5435dc4
--- /dev/null
+++ b/erpnext/docs/assets/img/human-resources/holiday-list-4.png
Binary files differ
diff --git a/erpnext/docs/assets/img/human-resources/holiday-list.png b/erpnext/docs/assets/img/human-resources/holiday-list.png
deleted file mode 100644
index 94dbee8..0000000
--- a/erpnext/docs/assets/img/human-resources/holiday-list.png
+++ /dev/null
Binary files differ
diff --git a/erpnext/docs/assets/old_images/erpnext/implementation-image.png b/erpnext/docs/assets/img/setup/implementation-image.png
similarity index 100%
rename from erpnext/docs/assets/old_images/erpnext/implementation-image.png
rename to erpnext/docs/assets/img/setup/implementation-image.png
Binary files differ
diff --git a/erpnext/docs/assets/img/setup/integrations/dropbox_redirect_uri.png b/erpnext/docs/assets/img/setup/integrations/dropbox_redirect_uri.png
new file mode 100644
index 0000000..c284521
--- /dev/null
+++ b/erpnext/docs/assets/img/setup/integrations/dropbox_redirect_uri.png
Binary files differ
diff --git a/erpnext/docs/assets/old_images/erpnext/fifo.png b/erpnext/docs/assets/img/stock/fifo.png
similarity index 100%
rename from erpnext/docs/assets/old_images/erpnext/fifo.png
rename to erpnext/docs/assets/img/stock/fifo.png
Binary files differ
diff --git a/erpnext/docs/assets/img/stock/item-manufacturing-and-website.png b/erpnext/docs/assets/img/stock/item-manufacturing-and-website.png
new file mode 100644
index 0000000..5fc5606
--- /dev/null
+++ b/erpnext/docs/assets/img/stock/item-manufacturing-and-website.png
Binary files differ
diff --git a/erpnext/docs/assets/img/stock/item-purchase.png b/erpnext/docs/assets/img/stock/item-purchase.png
new file mode 100644
index 0000000..7a8b102
--- /dev/null
+++ b/erpnext/docs/assets/img/stock/item-purchase.png
Binary files differ
diff --git a/erpnext/docs/assets/img/stock/item-reorder.png b/erpnext/docs/assets/img/stock/item-reorder.png
new file mode 100644
index 0000000..49a202f
--- /dev/null
+++ b/erpnext/docs/assets/img/stock/item-reorder.png
Binary files differ
diff --git a/erpnext/docs/assets/img/stock/item-sales.png b/erpnext/docs/assets/img/stock/item-sales.png
new file mode 100644
index 0000000..4484187
--- /dev/null
+++ b/erpnext/docs/assets/img/stock/item-sales.png
Binary files differ
diff --git a/erpnext/docs/assets/img/stock/item-supplier.png b/erpnext/docs/assets/img/stock/item-supplier.png
new file mode 100644
index 0000000..fd40b20
--- /dev/null
+++ b/erpnext/docs/assets/img/stock/item-supplier.png
Binary files differ
diff --git a/erpnext/docs/assets/img/stock/item-warranty.png b/erpnext/docs/assets/img/stock/item-warranty.png
new file mode 100644
index 0000000..8040548
--- /dev/null
+++ b/erpnext/docs/assets/img/stock/item-warranty.png
Binary files differ
diff --git a/erpnext/docs/assets/img/website/customer-portal-order.png b/erpnext/docs/assets/img/website/customer-portal-order.png
new file mode 100644
index 0000000..83fd57e
--- /dev/null
+++ b/erpnext/docs/assets/img/website/customer-portal-order.png
Binary files differ
diff --git a/erpnext/docs/assets/img/website/invoice-paid.png b/erpnext/docs/assets/img/website/invoice-paid.png
new file mode 100644
index 0000000..ce242c2
--- /dev/null
+++ b/erpnext/docs/assets/img/website/invoice-paid.png
Binary files differ
diff --git a/erpnext/docs/assets/img/website/invoice-unpaid.png b/erpnext/docs/assets/img/website/invoice-unpaid.png
new file mode 100644
index 0000000..16c3325
--- /dev/null
+++ b/erpnext/docs/assets/img/website/invoice-unpaid.png
Binary files differ
diff --git a/erpnext/docs/assets/img/website/portal-menu.png b/erpnext/docs/assets/img/website/portal-menu.png
new file mode 100644
index 0000000..6b7ee0a
--- /dev/null
+++ b/erpnext/docs/assets/img/website/portal-menu.png
Binary files differ
diff --git a/erpnext/docs/assets/img/website/website-login.png b/erpnext/docs/assets/img/website/website-login.png
index 6943098..ba57937 100644
--- a/erpnext/docs/assets/img/website/website-login.png
+++ b/erpnext/docs/assets/img/website/website-login.png
Binary files differ
diff --git a/erpnext/docs/assets/img/website/website-signup-details.png b/erpnext/docs/assets/img/website/website-signup-details.png
new file mode 100644
index 0000000..aa96d7f
--- /dev/null
+++ b/erpnext/docs/assets/img/website/website-signup-details.png
Binary files differ
diff --git a/erpnext/docs/assets/old_images/erpnext/chart-of-cost-centers.png b/erpnext/docs/assets/old_images/erpnext/chart-of-cost-centers.png
deleted file mode 100644
index ff14072..0000000
--- a/erpnext/docs/assets/old_images/erpnext/chart-of-cost-centers.png
+++ /dev/null
Binary files differ
diff --git a/erpnext/docs/assets/old_images/erpnext/custom-field-document.png b/erpnext/docs/assets/old_images/erpnext/custom-field-document.png
deleted file mode 100644
index 6791d32..0000000
--- a/erpnext/docs/assets/old_images/erpnext/custom-field-document.png
+++ /dev/null
Binary files differ
diff --git a/erpnext/docs/assets/old_images/erpnext/custom-field-insert.png b/erpnext/docs/assets/old_images/erpnext/custom-field-insert.png
deleted file mode 100644
index 6eacdf1..0000000
--- a/erpnext/docs/assets/old_images/erpnext/custom-field-insert.png
+++ /dev/null
Binary files differ
diff --git a/erpnext/docs/assets/old_images/erpnext/customer-portal-login.png b/erpnext/docs/assets/old_images/erpnext/customer-portal-login.png
deleted file mode 100644
index 459d503..0000000
--- a/erpnext/docs/assets/old_images/erpnext/customer-portal-login.png
+++ /dev/null
Binary files differ
diff --git a/erpnext/docs/assets/old_images/erpnext/customer-portal-orders-1.png b/erpnext/docs/assets/old_images/erpnext/customer-portal-orders-1.png
deleted file mode 100644
index 5cb95bd..0000000
--- a/erpnext/docs/assets/old_images/erpnext/customer-portal-orders-1.png
+++ /dev/null
Binary files differ
diff --git a/erpnext/docs/assets/old_images/erpnext/customer-portal-sign-up-1.png b/erpnext/docs/assets/old_images/erpnext/customer-portal-sign-up-1.png
deleted file mode 100644
index f7ff81b..0000000
--- a/erpnext/docs/assets/old_images/erpnext/customer-portal-sign-up-1.png
+++ /dev/null
Binary files differ
diff --git a/erpnext/docs/assets/old_images/erpnext/customer-portal-sign-up-2.png b/erpnext/docs/assets/old_images/erpnext/customer-portal-sign-up-2.png
deleted file mode 100644
index 7693877..0000000
--- a/erpnext/docs/assets/old_images/erpnext/customer-portal-sign-up-2.png
+++ /dev/null
Binary files differ
diff --git a/erpnext/docs/assets/old_images/erpnext/customer-portal-sign-up-3.png b/erpnext/docs/assets/old_images/erpnext/customer-portal-sign-up-3.png
deleted file mode 100644
index 771de78..0000000
--- a/erpnext/docs/assets/old_images/erpnext/customer-portal-sign-up-3.png
+++ /dev/null
Binary files differ
diff --git a/erpnext/docs/assets/old_images/erpnext/customize-form-custom-field.png b/erpnext/docs/assets/old_images/erpnext/customize-form-custom-field.png
deleted file mode 100644
index d3e1143..0000000
--- a/erpnext/docs/assets/old_images/erpnext/customize-form-custom-field.png
+++ /dev/null
Binary files differ
diff --git a/erpnext/docs/assets/old_images/erpnext/email-settings1.png b/erpnext/docs/assets/old_images/erpnext/email-settings1.png
deleted file mode 100644
index 8052a38..0000000
--- a/erpnext/docs/assets/old_images/erpnext/email-settings1.png
+++ /dev/null
Binary files differ
diff --git a/erpnext/docs/assets/old_images/erpnext/email-settings2.png b/erpnext/docs/assets/old_images/erpnext/email-settings2.png
deleted file mode 100644
index 3f84c71..0000000
--- a/erpnext/docs/assets/old_images/erpnext/email-settings2.png
+++ /dev/null
Binary files differ
diff --git a/erpnext/docs/assets/old_images/erpnext/faq-manufacturer-part-no.png b/erpnext/docs/assets/old_images/erpnext/faq-manufacturer-part-no.png
deleted file mode 100644
index e43667b..0000000
--- a/erpnext/docs/assets/old_images/erpnext/faq-manufacturer-part-no.png
+++ /dev/null
Binary files differ
diff --git a/erpnext/docs/assets/old_images/erpnext/faq-reorder-level.png b/erpnext/docs/assets/old_images/erpnext/faq-reorder-level.png
deleted file mode 100644
index 8e3e8c5..0000000
--- a/erpnext/docs/assets/old_images/erpnext/faq-reorder-level.png
+++ /dev/null
Binary files differ
diff --git a/erpnext/docs/assets/old_images/erpnext/faq-reorder-qty.png b/erpnext/docs/assets/old_images/erpnext/faq-reorder-qty.png
deleted file mode 100644
index 7b1e312..0000000
--- a/erpnext/docs/assets/old_images/erpnext/faq-reorder-qty.png
+++ /dev/null
Binary files differ
diff --git a/erpnext/docs/assets/old_images/erpnext/faq-warranty.png b/erpnext/docs/assets/old_images/erpnext/faq-warranty.png
deleted file mode 100644
index 93903a1..0000000
--- a/erpnext/docs/assets/old_images/erpnext/faq-warranty.png
+++ /dev/null
Binary files differ
diff --git a/erpnext/docs/assets/old_images/erpnext/holiday-list-1.png b/erpnext/docs/assets/old_images/erpnext/holiday-list-1.png
deleted file mode 100644
index 579c6dd..0000000
--- a/erpnext/docs/assets/old_images/erpnext/holiday-list-1.png
+++ /dev/null
Binary files differ
diff --git a/erpnext/docs/assets/old_images/erpnext/holiday-list-2.png b/erpnext/docs/assets/old_images/erpnext/holiday-list-2.png
deleted file mode 100644
index 5717971..0000000
--- a/erpnext/docs/assets/old_images/erpnext/holiday-list-2.png
+++ /dev/null
Binary files differ
diff --git a/erpnext/docs/assets/old_images/erpnext/item-manufacturing-website.png b/erpnext/docs/assets/old_images/erpnext/item-manufacturing-website.png
deleted file mode 100644
index 65d78b9..0000000
--- a/erpnext/docs/assets/old_images/erpnext/item-manufacturing-website.png
+++ /dev/null
Binary files differ
diff --git a/erpnext/docs/assets/old_images/erpnext/item-purchase.png b/erpnext/docs/assets/old_images/erpnext/item-purchase.png
deleted file mode 100644
index 04940b9..0000000
--- a/erpnext/docs/assets/old_images/erpnext/item-purchase.png
+++ /dev/null
Binary files differ
diff --git a/erpnext/docs/assets/old_images/erpnext/item-sales.png b/erpnext/docs/assets/old_images/erpnext/item-sales.png
deleted file mode 100644
index 4579249..0000000
--- a/erpnext/docs/assets/old_images/erpnext/item-sales.png
+++ /dev/null
Binary files differ
diff --git a/erpnext/docs/assets/old_images/erpnext/portal-invoice-paid.png b/erpnext/docs/assets/old_images/erpnext/portal-invoice-paid.png
deleted file mode 100644
index 0993cb5..0000000
--- a/erpnext/docs/assets/old_images/erpnext/portal-invoice-paid.png
+++ /dev/null
Binary files differ
diff --git a/erpnext/docs/assets/old_images/erpnext/portal-menu.png b/erpnext/docs/assets/old_images/erpnext/portal-menu.png
deleted file mode 100644
index 0f9ea82..0000000
--- a/erpnext/docs/assets/old_images/erpnext/portal-menu.png
+++ /dev/null
Binary files differ
diff --git a/erpnext/docs/assets/old_images/erpnext/portal-order-billed.png b/erpnext/docs/assets/old_images/erpnext/portal-order-billed.png
deleted file mode 100644
index e92e8dc..0000000
--- a/erpnext/docs/assets/old_images/erpnext/portal-order-billed.png
+++ /dev/null
Binary files differ
diff --git a/erpnext/docs/license.html b/erpnext/docs/license.html
index 1d50b78..4740c5c 100644
--- a/erpnext/docs/license.html
+++ b/erpnext/docs/license.html
@@ -640,8 +640,8 @@
 the exclusion of warranty; and each file should have at least the
 "copyright" line and a pointer to where the full notice is found.</p>
 
-<pre><code>    &lt;one line="" to="" give="" the="" program's="" name="" and="" a="" brief="" idea="" of="" what="" it="" does.=""&gt;
-    Copyright (C) &lt;year&gt;  &lt;name of="" author=""&gt;
+<pre><code>    &lt;one line to give the program's name and a brief idea of what it does.&gt;
+    Copyright (C) &lt;year&gt;  &lt;name of author&gt;
 
     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
diff --git a/erpnext/docs/user/manual/de/customer-portal/customer-orders-invoices-and-shipping.md b/erpnext/docs/user/manual/de/customer-portal/customer-orders-invoices-and-shipping.md
index 6b8459e..c74029b 100644
--- a/erpnext/docs/user/manual/de/customer-portal/customer-orders-invoices-and-shipping.md
+++ b/erpnext/docs/user/manual/de/customer-portal/customer-orders-invoices-and-shipping.md
@@ -4,18 +4,18 @@
 Das Webportal von ERPNext gibt Ihren Kunden einen schnellen Zugriff auf Ihre Aufträge, Rechnungen und Sendungen.
 Kunden können den Status Ihrer Bestellungen, Rechnungen und des Versandes nachprüfen, indem sie sich auf der Webseite einloggen.
 
-![Portalmenü]({{docs_base_url}}/assets/old_images/erpnext/portal-menu.png)
+<img class="screenshot" alt="Customer Portal Order 1" src="{{docs_base_url}}/assets/img/website/portal-menu.png">
 
 Sobald eine Bestellung aufgegeben wurde, entweder über den Einkaufswagen oder aus ERPNext heraus, kann Ihr Kunde die Bestellung ansehen und den Abrechnungs- und Versandstatus nachverfolgen. Wenn die Rechnung und die Zahlung zu einer Bestellung übertragen wurden, kann der Kunde auch hier den aktuellen Stand auf einen Blick nachvollziehen.
 
-![Kundenportal]({{docs_base_url}}/assets/old_images/erpnext/customer-portal-orders-1.png)
+<img class="screenshot" alt="Customer Portal Order 1" src="{{docs_base_url}}/assets/img/website/website-login.png">
 
 ### Rechnung mit Status "gezahlt"
 
-![Rechnung gezahlt]({{docs_base_url}}/assets/old_images/erpnext/portal-invoice-paid.png)
+<img class="screenshot" alt="Customer Portal Order 1" src="{{docs_base_url}}/assets/img/website/invoice-unpaid.png">
 
 ### Rechnung mit Status "abgerechnet"
 
-![Rechnung berechnet]({{docs_base_url}}/assets/old_images/erpnext/portal-order-billed.png)
+<img class="screenshot" alt="Customer Portal Order 1" src="{{docs_base_url}}/assets/img/website/invoice-paid.png">
 
 {next}
diff --git a/erpnext/docs/user/manual/de/customer-portal/portal-login.md b/erpnext/docs/user/manual/de/customer-portal/portal-login.md
index d5cc22e..455dfac 100644
--- a/erpnext/docs/user/manual/de/customer-portal/portal-login.md
+++ b/erpnext/docs/user/manual/de/customer-portal/portal-login.md
@@ -3,6 +3,6 @@
 
 Um sich in ein Kundenkonto einzuloggen, muss der Kunde seine Email-ID und das Passwort angeben, welche ihm von ERPNext während des Registrierungsprozesses zugesendet wurden.
 
-![Login]({{docs_base_url}}/assets/old_images/erpnext/customer-portal-login.png)
+<img class="screenshot" alt="Website User Signup" src="{{docs_base_url}}/assets/img/website/website-login.png">
 
 {next}
diff --git a/erpnext/docs/user/manual/de/customer-portal/sign-up.md b/erpnext/docs/user/manual/de/customer-portal/sign-up.md
index 5ffc307..0a91145 100644
--- a/erpnext/docs/user/manual/de/customer-portal/sign-up.md
+++ b/erpnext/docs/user/manual/de/customer-portal/sign-up.md
@@ -1,20 +1,17 @@
 # Registrieren
+
 <span class="text-muted contributed-by">Beigetragen von CWT Connector & Wire Technology GmbH</span>
 
 Kunden müssen sich über die Webseite als Kunden registrieren.
 
-### Schritt 1: Klicken Sie auf das Login-Symbol
+### Schritt 1: Klicken Sie auf das Registrieren-Symbol
 
-![Registrieren]({{docs_base_url}}/assets/old_images/erpnext/customer-portal-sign-up-1.png)
-
-### Schritt 2: Klicken Sie auf das Registrieren-Symbol
-
-![Registrieren]({{docs_base_url}}/assets/old_images/erpnext/customer-portal-sign-up-2.png)
+<img class="screenshot" alt="Website User Signup" src="{{docs_base_url}}/assets/img/website/website-login.png">
 
 ### Schritt 3: Geben Sie Ihren Kundennamen und Ihre ID ein
 
-![Registrieren]({{docs_base_url}}/assets/old_images/erpnext/customer-portal-sign-up-3.png)
+<img class="screenshot" alt="Website User Signup" src="{{docs_base_url}}/assets/img/website/website-signup-details.png">
 
 Wenn der Registrierungsprozess abgeschlossen ist, wird dem Kunden eine E-Mail mit dem Passwort zugeschickt.
 
-{next}
+{next}
\ No newline at end of file
diff --git a/erpnext/docs/user/manual/de/customize-erpnext/custom-field.md b/erpnext/docs/user/manual/de/customize-erpnext/custom-field.md
index 25c40e1..7d0f0fa 100644
--- a/erpnext/docs/user/manual/de/customize-erpnext/custom-field.md
+++ b/erpnext/docs/user/manual/de/customize-erpnext/custom-field.md
@@ -16,7 +16,7 @@
 
 In einem benutzerdefinierten Formular finden Sie für jedes Feld die Plus(+)-Option. Wenn Sie auf dieses Symbol klicken, wird eine neue Zeile oberhalb dieses Feldes eingefügt. Sie können die Einstellungen für Ihr Feld in der neu eingefügten leeren Zeile eingeben.
 
-![Formular anpassen - benutzerdefiniertes Feld]({{docs_base_url}}/assets/old_images/erpnext/customize-form-custom-field.png)
+<img alt="Formular anpassen - benutzerdefiniertes Feld" class="screenshot" src="{{docs_base_url}}/assets/img/customize/custom-field-2.gif">
 
 Im Folgenden sind die Schritte aufgeführt, wie man ein benutzerdefiniertes Feld in ein bestehendes Formular einfügt.
 
@@ -28,36 +28,34 @@
 
 Wählen Sie die Transaktion oder die Vorlage, in die sie ein benutzerdefiniertes Feld einfügen wollen. Nehmen wir an, dass Sie ein benutzerdefiniertes Verknüpfungsfeld in ein Angebotsformular einfügen wollen; das Dokument soll "Angebot" heißen.
 
-![Dokument mit benutzerdefiniertem Feld]({{docs_base_url}}/assets/old_images/erpnext/custom-field-document.png)
+<img alt="Select Document Type" class="screenshot" src="{{docs_base_url}}/assets/img/customize/custom-field-1.gif">
 
 ### Feldbezeichnung einstellen
 
 Die Bezeichnung des benutzerdefinierten Feldes wird basierend auf seinem Namen eingestellt. Wenn Sie ein benutzerdefiniertes Feld mit einem bestimmten Namen erstellen wollen, aber mit einer sich davon unterscheidenden Bezeichnung, dann sollten Sie erst die Bezeichnung angeben, da Sie den Feldnamen noch einstellen wollen. Nach dem Speichern des benutzerdefinierten Feldes können Sie die Feldbezeichnung wieder ändern.
 
-![Bezeichnung des benutzerdefinierten Feldes]({{docs_base_url}}/assets/old_images/erpnext/custom-field-label.png)
+<img alt="Select Document Type" class="screenshot" src="{{docs_base_url}}/assets/img/customize/custom-field-2.gif">
 
 ### Einstellen, nach welchem Element eingefügt werden soll ("Einfügen nach")
 
 Diese Auswahl enthält alle bereits existierenden Felder des ausgewählten Formulars/des DocTypes. Ihr benutzerdefiniertes Feld wird nach dem Feld eingefügt, das Sie unter "Einfügen nach" auswählen.
 
-![Benutzerdefiniertes Feld einfügen]({{docs_base_url}}/assets/old_images/erpnext/custom-field-insert.png)
+<img alt="Select Document Type" class="screenshot" src="{{docs_base_url}}/assets/img/customize/custom-field-3.png">
 
 ### Feldtyp auswählen
 
 Klicken Sie hier um weitere Informationen über Feldtypen, die Sie bei einem benutzerdefinierten Feld auswählen können, zu erhalten.
 
-![Typ des benutzerdefinierten Feldes]({{docs_base_url}}/assets/old_images/erpnext/custom-field-type.png)
+<img alt="Select Document Type" class="screenshot" src="{{docs_base_url}}/assets/img/customize/custom-field-4.png">
 
 ### Optionen einstellen
 
 Wenn Sie ein Verknüpfungsfeld erstellen,dann wird der Name des DocType, mit dem dieses Feld verknüpft werden soll, in das Feld "Optionen" eingefügt. Klicken Sie [hier]({{docs_base_url}}/user/manual/en/customize-erpnext/articles/creating-custom-link-field) um weitere Informationen darüber zu erhalten, wie man benutzerdefinierte Verknüpfungsfelder erstellt.
 
-![Verknüpfung mit einem benutzerdefinierten Feld]({{docs_base_url}}/assets/old_images/erpnext/custom-field-link.png)
+<img alt="Select Document Type" class="screenshot" src="{{docs_base_url}}/assets/img/customize/custom-field-5.png">
 
 Wenn der Feldtyp als Auswahlfeld (Drop Down-Feld) angegeben ist, dann sollten alle möglichen Ergebnisse für dieses Feld im Optionen-Feld aufgelistet werden. Die möglichen Ergebnisse sollten alle in einer eigenen Zeile stehen.
 
-![Optionen für benutzerdefinierte Felder]({{docs_base_url}}/assets/old_images/erpnext/custom-field-option.png)
-
 Bei anderen Feldtypen, wie Daten, Datum, Währung usw. lassen Sie das Optionen-Feld leer.
 
 ### Weitere Eigenschaften
@@ -71,7 +69,7 @@
 5. Schreibgeschützt: Wenn diese Option aktiviert ist, kann das benutzerdefinierte Feld nicht geändert werden.
 6. Beim Übertragen zulassen: Wenn diese Option ausgewählt wird, ist es erlaubt den Wert des Feldes zu ändern, wenn er in einer Transaktion übertragen wird.
 
-![Eigenschaften von benutzerdefinierten Feldern]({{docs_base_url}}/assets/old_images/erpnext/custom-field-properties.png)
+<img alt="Select Document Type" class="screenshot" src="{{docs_base_url}}/assets/img/customize/custom-field-6.png">
 
 ### Benutzerdefiniertes Feld löschen
 
diff --git a/erpnext/docs/user/manual/de/introduction/the-champion.md b/erpnext/docs/user/manual/de/introduction/the-champion.md
index b89f48b..912c252 100644
--- a/erpnext/docs/user/manual/de/introduction/the-champion.md
+++ b/erpnext/docs/user/manual/de/introduction/the-champion.md
@@ -1,7 +1,7 @@
 # Der Champion
 <span class="text-muted contributed-by">Beigetragen von CWT Connector & Wire Technology GmbH</span>
 
-<img class="cover" alt="Bild" src="{{docs_base_url}}/assets/old_images/erpnext/implementation-image.png">
+<img alt="Champion" class="screenshot" src="{{docs_base_url}}/assets/img/setup/implementation-image.png">
 
 Wir haben uns in den letzten Jahren dutzende von ERP-Umsetzungen angesehen, und wir haben erkannt, dass eine erfolgreiche Umsetzung viel mit schwer greifbaren Dingen und persönlichen Einstellungen zu tun hat.
 
diff --git a/erpnext/docs/user/manual/de/using-erpnext/calendar.md b/erpnext/docs/user/manual/de/using-erpnext/calendar.md
index 7087df3..42d884b 100644
--- a/erpnext/docs/user/manual/de/using-erpnext/calendar.md
+++ b/erpnext/docs/user/manual/de/using-erpnext/calendar.md
@@ -5,6 +5,8 @@
 
 Sie können die Kalenderansicht umschalten zwischen Monatsansicht, Wochenansicht und Tagesansicht.
 
+<img class="screenshot" alt="Calendar" src="{{docs_base_url}}/assets/img/collaboration-tools/calendar-1.png">
+
 ### Ereignisse im Kalender erstellen
 
 #### Ein Ereignis manuell erstellen
@@ -13,7 +15,7 @@
 
 Diese Ansicht zeigt die 24 Stunden des Tages aufgeteilt in verschiedene Zeitfenster an. Klicken Sie für den Startzeitpunkt auf ein Zeitfenster und ziehen Sie den Rahmen auf bis Sie den Endzeitpunkt erreichen.
 
-![Manuelle Kalenderereignisse]({{docs_base_url}}/assets/old_images/erpnext/calender-event-manually.png)
+<img class="screenshot" alt="Calendar" src="{{docs_base_url}}/assets/img/collaboration-tools/calendar-2.gif">
 
 Auf Grundlage der Auswahl des Zeitfensters werden Start- und Endzeitpunkt in die Ereignisvorlage übernommen. Sie können dann noch die Bezeichnung des Ereignisses angeben und speichern.
 
@@ -21,7 +23,7 @@
 
 Im Leadformular finden Sie die Felder "Nächster Kontakt durch" und "Nächstes Kontaktdatum". Wenn Sie in diesen Feldern einen Termin und eine Kontaktperson eintragen, wird automatisch ein Ereignis erstellt.
 
-![Ereignis auf Grundlage eines Leads]({{docs_base_url}}/assets/old_images/erpnext/calender-event-lead.png)
+<img class="screenshot" alt="Lead Event" src="{{docs_base_url}}/assets/img/collaboration-tools/calendar-3.png">
 
 #### Geburtstag
 
@@ -31,15 +33,7 @@
 
 Sie können Ereignisse als wiederkehrend in bestimmten Intervallen markieren, indem Sie "Dieses Ereignis wiederholen" aktivieren.
 
-![Wiederkehrendes Kalenderereignis]({{docs_base_url}}/assets/old_images/erpnext/calender-event-recurring.png)
-
-### Berechtigungen für ein Ereignis
-
-Sie können ein Ereignis als privat oder öffentlich erstellen. Private Ereignisse können nur Sie und Benutzer, die in der Tabelle "Teilnehmer" ausgewählt wurden, sehen. Sie können Berechtigungen für Ereignisse nicht nur über den Benutzer, sondern auch über die Rolle setzen.
-
-Ein öffentliches Ereignis wie ein Geburtstag ist für alle sichtbar.
-
-![Berechtigungen für Kalenderereignisse]({{docs_base_url}}/assets/old_images/erpnext/calender-event-permission.png)
+<img class="screenshot" alt="Calendar Recurring Event" src="{{docs_base_url}}/assets/img/collaboration-tools/calendar-4.png">
 
 ### Erinnerungen an Ereignisse
 
@@ -49,7 +43,7 @@
 
 Wenn Sie in der Ereignisvorlage den Punkt "E-Mail-Erinnerung am Morgen senden" anklicken, erhalten alle Teilnehmer an diesem Ereignis eine Benachrichtungs-E-Mail.
 
-![Benachrichtigung über Kalenderereignisse]({{docs_base_url}}/assets/old_images/erpnext/calender-event-notification.png)
+<img class="screenshot" alt="Calendar Recurring Event" src="{{docs_base_url}}/assets/img/collaboration-tools/calendar-6.png">
 
 #### Einen täglichen E-Mail-Bericht erstellen
 
@@ -59,6 +53,6 @@
 
 > Einstellungen > E-Mail > Täglicher E-Mail-Bericht
 
-![Täglicher E-Mail-Bericht]({{docs_base_url}}/assets/old_images/erpnext/calender-email-digest.png)
+<img class="screenshot" alt="Calendar Recurring Event" src="{{docs_base_url}}/assets/img/collaboration-tools/calender-email-digest.png">
 
 {next}
diff --git a/erpnext/docs/user/manual/en/accounts/purchase-invoice.md b/erpnext/docs/user/manual/en/accounts/purchase-invoice.md
index 433219c..3ffd930 100644
--- a/erpnext/docs/user/manual/en/accounts/purchase-invoice.md
+++ b/erpnext/docs/user/manual/en/accounts/purchase-invoice.md
@@ -3,18 +3,29 @@
 accrue expenses to your Supplier. Making a Purchase Invoice is very similar to
 making a Purchase Order.
 
-To make a new Purchase Invoice, go to:
-
-> Accounts > Documents > Purchase Invoice > New Purchase Invoice
+To make a new Purchase Invoice:
+> type "new purchase invoice" into the search bar then select "New Purchase 
+Invoice" from the drop down
 
 or click on “Make Purchase Invoice” in Purchase Order or Purchase Receipt.
 
+You can also create a Purchase Invoice from:
+> Accounts > Billing > Purchase Invoice > New Purchase Invoice
+
 <img class="screenshot" alt="Purchase Invoice" src="{{docs_base_url}}/assets/img/accounts/purchase-invoice.png">
 
 The concept of “Posting Date” is again same as Sales Invoice. “Bill No” and
 “Bill Date” helps to track the bill number as set by your Supplier for
 reference.
 
+#### Is Paid option
+The **Is Paid** checkbox should be checked if there is a part or full payment 
+on the invoice at posting date.
+
+#### Update Stock
+The **Update Stock** checkbox should be checked if you want ERPNext to automatically
+ update your inventory. Consequently, there will be no need for a Delivery Note.
+
 #### Accounting Impact
 
 Like in Sales Invoice, you have to enter an Expense or an Asset account for
@@ -34,7 +45,18 @@
 Credits:
 
   * Supplier
+  
+##### Accounting Treatment When **Is Paid** is checked
+If **Is Paid** is checked, ERPNext will also make the following
+accounting entries:
 
+Debits:
+
+  * Supplier
+  
+Credits:
+  * Bank/Cash Account
+  
 To see entries in your Purchase Invoice after you “Submit”, click on “View
 Ledger”.
 
diff --git a/erpnext/docs/user/manual/en/accounts/setup/cost-center.md b/erpnext/docs/user/manual/en/accounts/setup/cost-center.md
index 16b5431..5ed3802 100644
--- a/erpnext/docs/user/manual/en/accounts/setup/cost-center.md
+++ b/erpnext/docs/user/manual/en/accounts/setup/cost-center.md
@@ -32,6 +32,6 @@
 
 > Accounts > Setup > Chart of Cost Centers
 
-![Chart of Cost Center]({{docs_base_url}}/assets/old_images/erpnext/chart-of-cost-centers.png)
+<img class="screenshot" alt="Cost Center" src="{{docs_base_url}}/assets/img/chart-of-cost-center.png">
 
 {next}
diff --git a/erpnext/docs/user/manual/en/customer-portal/customer-orders-invoices-and-shipping-status.md b/erpnext/docs/user/manual/en/customer-portal/customer-orders-invoices-and-shipping-status.md
index 83d7bf6..257370e 100644
--- a/erpnext/docs/user/manual/en/customer-portal/customer-orders-invoices-and-shipping-status.md
+++ b/erpnext/docs/user/manual/en/customer-portal/customer-orders-invoices-and-shipping-status.md
@@ -1,22 +1,17 @@
-ERPNext Web Portal gives your customers quick access to their Orders, Invoices
-and Shipments Customers can check the status of their orders, invoices, and
-shipping status by logging on to the web.
+ERPNext Web Portal gives your customers quick access to their Orders, Invoices and Shipments Customers can check the status of their orders, invoices, and shipping status by logging on to the web.
 
-![Portal Menu]({{docs_base_url}}/assets/old_images/erpnext/portal-menu.png)
+<img class="screenshot" alt="Customer Portal Order 1" src="{{docs_base_url}}/assets/img/website/portal-menu.png">
 
-Once an order is raised, either using the Shopping Cart or from within
-ERPNext, your customer can view the order and keep an eye on the billing and
-shipment status. When the invoice and payment against these orders are
-submitted, the customer can see the updated status on the portal, at a glance.
+Once an order is raised, either using the Shopping Cart or from within ERPNext, your customer can view the order and keep an eye on the billing and shipment status. When the invoice and payment against these orders are submitted, the customer can see the updated status on the portal, at a glance.
 
-![Customer Portal]({{docs_base_url}}/assets/old_images/erpnext/customer-portal-orders-1.png)
+<img class="screenshot" alt="Customer Portal Order 1" src="{{docs_base_url}}/assets/img/website/website-login.png">
 
-#### Invoice with paid status.
+#### Outstanding Sales Invoice
 
-![Invoice Paid]({{docs_base_url}}/assets/old_images/erpnext/portal-invoice-paid.png)
+<img class="screenshot" alt="Customer Portal Order 1" src="{{docs_base_url}}/assets/img/website/invoice-unpaid.png">
 
-#### Invoice with billed status.
+#### Paid Sales Invoice
 
-![Billed Invoice]({{docs_base_url}}/assets/old_images/erpnext/portal-order-billed.png)
+<img class="screenshot" alt="Customer Portal Order 1" src="{{docs_base_url}}/assets/img/website/invoice-paid.png">
 
 {next}
diff --git a/erpnext/docs/user/manual/en/customer-portal/portal-login.md b/erpnext/docs/user/manual/en/customer-portal/portal-login.md
index e2cdbdb..62a9b6f 100644
--- a/erpnext/docs/user/manual/en/customer-portal/portal-login.md
+++ b/erpnext/docs/user/manual/en/customer-portal/portal-login.md
@@ -1,6 +1,6 @@
 To login into the customer account, the customer has to use his Email Address and
 the password sent by ERPNext; generated through the sign-up process.
 
-![Login]({{docs_base_url}}/assets/old_images/erpnext/customer-portal-login.png)
+<img class="screenshot" alt="Website User Signup" src="{{docs_base_url}}/assets/img/website/website-login.png">
 
 {next}
diff --git a/erpnext/docs/user/manual/en/customer-portal/sign-up.md b/erpnext/docs/user/manual/en/customer-portal/sign-up.md
index 43c2f08..554285c 100644
--- a/erpnext/docs/user/manual/en/customer-portal/sign-up.md
+++ b/erpnext/docs/user/manual/en/customer-portal/sign-up.md
@@ -1,22 +1,15 @@
-Customers have to log-in to the Company Website, and sign-up as a customer.
+Your Customer and Suppliers can signup to your ERPNext account by following Signup option on the Login Page.
 
-#### Step 1: Click on Login Icon
+#### Step 1: Signup
 
-![Sign Up]({{docs_base_url}}/assets/old_images/erpnext/customer-portal-sign-up-1.png)
+On the Login Page, you will find option to Signup.
 
-  
+<img class="screenshot" alt="Website User Signup" src="{{docs_base_url}}/assets/img/website/website-login.png">
 
-#### Step 2: Click on Sign Up Icon
+#### Step 2: Enter Customer Name and ID
 
-![Sign Up]({{docs_base_url}}/assets/old_images/erpnext/customer-portal-sign-up-2.png)
+<img class="screenshot" alt="Website User Signup" src="{{docs_base_url}}/assets/img/website/website-signup-details.png">
 
-  
-
-#### Step 3: Enter Customer Name and ID
-
-![Sign Up]({{docs_base_url}}/assets/old_images/erpnext/customer-portal-sign-up-3.png)
-
-After the sign up process, a mail will be sent to the customers Email Address with
-the password details.
+After the sign up process, an email will be sent to the customers Email Address with the password details.
 
 {next}
diff --git a/erpnext/docs/user/manual/en/customize-erpnext/custom-doctype.md b/erpnext/docs/user/manual/en/customize-erpnext/custom-doctype.md
index 316fe2b..433db2d 100644
--- a/erpnext/docs/user/manual/en/customize-erpnext/custom-doctype.md
+++ b/erpnext/docs/user/manual/en/customize-erpnext/custom-doctype.md
@@ -1,4 +1,4 @@
-DocType or Document Type is a tool to insert form in ERPNext. The forms like Sales Order,
+DocType or a Document Type is a tool to insert form in ERPNext. The forms like Sales Order,
 Sales Invoices, Production Order are added as Doctype in the backend. Let's assume we are
 creating a Custom Doctype for a Book.
 
@@ -8,7 +8,7 @@
 
 `Setup > Customize > Doctype > New`
 
-#### Doctype Detail
+#### DocType Detail
 
 1. Module: Select module in which this Doctype should be placed.
 1. Document Type: Specify if this Doctype will be to carry master data, or to track transactions. Doctype
@@ -52,13 +52,13 @@
 
 <img alt="Doctype Permissions" class="screenshot" src="{{docs_base_url}}/assets/img/setup/customize/doctype-permissions.png">
 
-#### Save Doctype
+#### Save DocType
 
 On saving doctype, you will get pop-up to provide name for this Doctype.
 
-<img alt="Doctype Save" class="screenshot" src="{{docs_base_url}}/assets/img/setup/customize/Doctype-save.png">
+<img alt="Doctype Save" class="screenshot" src="{{docs_base_url}}/assets/img/setup/customize/doctype-save.png">
 
-#### Doctype in System
+#### DocType in System
 
 To check this Doctype, open Module defined for this doctype. Since we have added Books doctype in the
 Human Resource module, to access this doctype, go to:
@@ -71,6 +71,6 @@
 
 Using the fields entered, following is the master one book.
 
-<img alt="Doctype Form" class="screenshot" src="{{docs_base_url}}/assets/img/setup/customize/Doctype-book-added.png">
+<img alt="Doctype Form" class="screenshot" src="{{docs_base_url}}/assets/img/setup/customize/doctype-book-added.png">
 
 {next}
diff --git a/erpnext/docs/user/manual/en/human-resources/holiday-list.md b/erpnext/docs/user/manual/en/human-resources/holiday-list.md
index 1a98ad3..c1e76f1 100644
--- a/erpnext/docs/user/manual/en/human-resources/holiday-list.md
+++ b/erpnext/docs/user/manual/en/human-resources/holiday-list.md
@@ -1,59 +1,40 @@
-Holiday List is a list which contains the dates of holidays along with the
-occasion of that holiday. The list is generally valid for one calendar year.  
+#Holiday List
 
-Most organisations have a standard Holiday-List for their employees. Some even
-have different holiday lists for laborers and a different one for management
-staff.
+Holiday List is a list which contains the dates of holidays.
+
+Most organisations have a standard Holiday-List for their employees. Some even have different holiday lists based on the different locations or departments.
+
+To add a new Holiday List, go to:
+
+`Human Resources (HR) > Leave and Holiday > Holiday List`
+
+Click on New to add new Holiday List.
+  
+### New Holiday List
+
+Give a name to Holiday List. It can be based in Fiscal Year or location or department as application. Also select From and To Date for the Holiday List.
+
+<img class="screenshot" alt="Holiday List" src="{{docs_base_url}}/assets/img/human-resources/holiday-list-1.png"> 
+
+You can quickly add Weekly Off in the Holiday List as following.
+
+<img class="screenshot" alt="Holiday List" src="{{docs_base_url}}/assets/img/human-resources/holiday-list-2.gif"> 
+
+After that, you can also add specific days (like festival holidays) manually.
+
+<img class="screenshot" alt="Holiday List" src="{{docs_base_url}}/assets/img/human-resources/holiday-list-3.png"> 
 
   
+### Holiday List in Employee
 
-To set up a holiday list in the system, Go to Human Resources Module and Click
-on Holiday List.
+If you have created multiple Holiday List, then select specific Holiday List for an Employee in the respective master.
 
-  
+<img class="screenshot" alt="Holiday List" src="{{docs_base_url}}/assets/img/human-resources/holiday-list-4.png"> 
 
-> Human Resources >Holiday List > New Holiday List  
+When an Employee applies for the Leave, then days mentioned in the Holiday List will not be counted, as they are holiday already. For more configuration option in Holiday List, check `HR > HR Settings`.
 
-  
-#### Figure 1: Holiday List
+> Note 1: If you have specified a Holiday List in the Employment master, then that Holiday List will give priority the default Holiday List of the company.
 
-![]({{docs_base_url}}/assets/old_images/erpnext/holiday-list-1.png)  
-
-  
-
-__Step 1:__ Give a name to the Holiday list
-
-__Step 2:__ Mention the Fiscal Year  
-
-__Step 3:__ State the Weekly  off.  
-
-__Step 4:__ Click on the button 'Get Weekly Off Dates'  
-
-This step will fill the box below with yearly off dates with day as the
-description.
-
-__Step 5:__ Click on Add new row to add more dates  
-
-Mention the holiday reason in the description and select the date from the
-'Date' field.
-
-  
-#### Figure 2: Adding new holidays to the list
-
-![]({{docs_base_url}}/assets/old_images/erpnext/holiday-list-2.png)  
-
-  
-
-> Note 1: If you have selected a holiday list in the Employment Details form,
-the system will give priority to the form mentioned here. It will fetch the
-list mentioned in the form rather than the one which you may have specified as
-Default; However, if there is no list in the employment details form, the
-default list will be fetched.
-
-
-> Note 2: You can form as many holiday lists as you wish. For example, if you
-have a mill, you can have one list for mill workers and another list for
-office staff. You can manage between lists by attaching their respective
-holiday list to their respective employment detail form.
+> Note 2: You can form as many holiday lists as you wish. For example, if you have a factory, you can have one list for the factory workers and another list for office staff. You can manage between lists by attaching their respective holiday list to their respective employment detail form.
 
 {next}
diff --git a/erpnext/docs/user/manual/en/human-resources/setup/holiday-list.md b/erpnext/docs/user/manual/en/human-resources/setup/holiday-list.md
deleted file mode 100644
index 31094f7..0000000
--- a/erpnext/docs/user/manual/en/human-resources/setup/holiday-list.md
+++ /dev/null
@@ -1,5 +0,0 @@
-You can specify the Holidays for a particular year using Holiday List.
-
-<img class="screenshot" alt="Holiday List" src="{{docs_base_url}}/assets/img/human-resources/holiday-list.png">
-
-{next}
\ No newline at end of file
diff --git a/erpnext/docs/user/manual/en/introduction/the-champion.md b/erpnext/docs/user/manual/en/introduction/the-champion.md
index 472cd94..4d75abb 100644
--- a/erpnext/docs/user/manual/en/introduction/the-champion.md
+++ b/erpnext/docs/user/manual/en/introduction/the-champion.md
@@ -2,7 +2,7 @@
 
 <h1 class="white">The Champion</h1>
 
-<img class="cover" src="{{docs_base_url}}/assets/old_images/erpnext/implementation-image.png">
+<img alt="Champion" class="screenshot" src="{{docs_base_url}}/assets/img/setup/implementation-image.png">
 
 We have seen dozens of ERP implementations over the past few years and we
 realize that successful implementation is a lot about intangibles and
diff --git a/erpnext/docs/user/manual/en/setting-up/integrations/dropbox-backup.md b/erpnext/docs/user/manual/en/setting-up/integrations/dropbox-backup.md
index 9d8554e..0839072 100644
--- a/erpnext/docs/user/manual/en/setting-up/integrations/dropbox-backup.md
+++ b/erpnext/docs/user/manual/en/setting-up/integrations/dropbox-backup.md
@@ -43,12 +43,16 @@
 
 ####Step 3: Fill in details for the app
 
-<img class="screenshot" alt="Create new" src="{{docs_base_url}}/assets/img/setup/integrations/dropbox-open-1.png">
+<img class="screenshot" alt="Choose Dropbox API and type as APP Folder" src="{{docs_base_url}}/assets/img/setup/integrations/dropbox-open-1.png">
 
 -
-<img class="screenshot" alt="Create new" src="{{docs_base_url}}/assets/img/setup/integrations/dropbox-open-2.png">
+<img class="screenshot" alt="Setup APP Name" src="{{docs_base_url}}/assets/img/setup/integrations/dropbox-open-2.png">
 
-####Step 4: Settings in Site Config
+####Step  4: Setup Redirect URL in app
+
+<img class="screenshot" alt="Set Redirect URL" src="{{docs_base_url}}/assets/img/setup/integrations/dropbox_redirect_uri.png">
+
+####Step 5: Settings in Site Config
 
 After the app is created, note the app key and app secret on Dropbox Settings page or enter in `sites/{sitename}/site_config.json` as follows,
 
diff --git a/erpnext/docs/user/manual/en/stock/item/index.md b/erpnext/docs/user/manual/en/stock/item/index.md
index ad44866..b3b7279 100644
--- a/erpnext/docs/user/manual/en/stock/item/index.md
+++ b/erpnext/docs/user/manual/en/stock/item/index.md
@@ -1,6 +1,6 @@
-An Item is your companys' product or a service. The term Item is applicable to things (products or services) you sell as well as raw materials or components of products yet to be produced (before they can be sold to customers). An Item can be a phyical product or a service that you buy/sell from your customers/suppliers. ERPNext allows you to manage all sorts of items like raw-materials, sub-assemblies, finished goods, item variants and service items.
+An Item is your companys' product or a service. The term Item is applicable to things (products or services) you sell as well as raw materials or components of products yet to be produced (before they can be sold to customers). An Item can be a physical product or a service that you buy/sell from your customers/suppliers. ERPNext allows you to manage all sorts of items like raw-materials, sub-assemblies, finished goods, item variants and service items.
 
-ERPNext is optimized for itemized management of your sales and purchase. If you are in services, you can create an Item for each services that your offer. Completing the Item Master is very essential for successful implementation of ERPNext.
+ERPNext is optimised for itemised management of your sales and purchase. If you are in services, you can create an Item for each services that your offer. Completing the Item Master is very essential for successful implementation of ERPNext.
 
 ## Item Properties
 
@@ -9,19 +9,15 @@
   * **Item Group:** Item Group is used to categorize an Item under various criterias like products, raw materials, services, sub-assemblies, consumables or all Item groups. Create your default Item Group list under Setup> Item Group and pre-select the option while filling your New Item details under [Item Group]({{docs_base_url}}/user/manual/en/stock/setup/item-group.html)
   * **Default Unit of Measure:** This is the default measuring unit that you will use for your product. It could be in nos, kgs, meters, etc. You can store all the UOM’s that your product will require under Set Up> Master Data > UOM. These can be preselected while filling New Item by using % sign to get a pop up of the UOM list.
   * **Brand:** If you have more than one brand save them under Set Up> Master Data> Brand and pre-select them while filling a New Item.
-  * **Variant:** A Item Variant is a different version of a Item.To learn more about managing varaints see [Item Variants]({{docs_base_url}}/user/manual/en/stock/item/item-variants.html)
+  * **Variant:** A Item Variant is a different version of a Item.To learn more about managing variants see [Item Variants]({{docs_base_url}}/user/manual/en/stock/item/item-variants.html)
 
 ### Upload an Image
 
-To upload an image for your icon that will appear in all transactions, save
-the partially filled form. Only after your file is saved  the 'upload' button will
-work above the Image icon. Click on this sign and upload the image.
+To upload an image for your icon that will appear in all transactions, save the partially filled form. Only after your file is saved  the 'upload' button will work above the Image icon. Click on this sign and upload the image.
 
 ### Inventory : Warehouse and Stock Setting
 
-In ERPNext, you can select different type of Warehouses to stock your
-different Items. This can be selected based on Item types. It could be Fixed
-Asset Item, Stock Item or even Manufacturing Item.
+In ERPNext, you can select different type of Warehouses to stock your different Items. This can be selected based on Item types. It could be Fixed Asset Item, Stock Item or even Manufacturing Item.
 
   * **Stock Item:** If you are maintaining stock of this Item in your Inventory, ERPNext will make a stock ledger entry for each transaction of this item.
   * **Default Warehouse:** This is the Warehouse that is automatically selected in your transactions.
@@ -44,49 +40,51 @@
 
 ### Item Tax
 
-These settings are required only if a particular Item has a different tax rate
-than the rate defined in the standard tax Account. For example, If you have a
-tax Account, “VAT 10%” and this particular Item is exempted from tax, then you
-select “VAT 10%” in the first column, and set “0” as the tax rate in the
-second column.
+These settings are required only if a particular Item has a different tax rate than the rate defined in the standard tax Account. For example, If you have a tax Account, “VAT 10%” and this particular Item is exempted from tax, then you select “VAT 10%” in the first column, and set “0” as the tax rate in the second column.
 
 Go to [Setting Up Taxes]({{docs_base_url}}/user/manual/en/setting-up/setting-up-taxes.html) to understand this topic in detail.
 
 ### Inspection
 
-Inspection Required: If an incoming inspection (at the time of delivery from
-the Supplier) is mandatory for this Item, mention “Inspection Required” as
-“Yes”. The system will ensure that a Quality Inspection will be prepared and
-approved before a Purchase Receipt is submitted.
+Inspection Required: If an incoming inspection (at the time of delivery from the Supplier) is mandatory for this Item, mention “Inspection Required” as “Yes”. The system will ensure that a Quality Inspection will be prepared and approved before a Purchase Receipt is submitted.
 
-Inspection Criteria: If a Quality Inspection is prepared for this Item, then
-this template of criteria will automatically be updated in the Quality
-Inspection table of the Quality Inspection. Examples of Criteria are: Weight,
-Length, Finish etc.
+Inspection Criteria: If a Quality Inspection is prepared for this Item, then this template of criteria will automatically be updated in the Quality Inspection table of the Quality Inspection. Examples of Criteria are: Weight, Length, Finish etc.
 
 ### Purchase Details
 
-![Purchase Details]({{docs_base_url}}/assets/old_images/erpnext/item-purchase.png)
+<img alt="Item Purchase Details" class="screenshot" src="{{docs_base_url}}/assets/img/stock/item-purchase.png">
 
-**Lead time days:** Lead time days are the number of days required for the Item to reach the warehouse.
+* **Lead time days:** Lead time days are the number of days required for the Item to reach the warehouse.
 
-**Default Expense Account:** It is the account in which cost of the Item will be debited.
+* **Default Expense Account:** It is the account in which cost of the Item will be debited.
 
-**Default Cost Centre:** It is used for tracking expense for this Item.
+* **Default Cost Centre:** It is used for tracking expense for this Item.
+
+###Supplier Details
+
+<img alt="Item Supplier Details" class="screenshot" src="{{docs_base_url}}/assets/img/stock/item-supplier.png">
+
+* **Default Supplier:** Supplier from whom you generally purchase this item.
+
+* **Manufacturer Details:** Select Manufacturer and Part No. assigned by the Manufacturer for this item.
+
+* **Supplier Codes:** Track Item Code defined by the Suppliers for this Item. In the Purchase transactions, on selection and Supplier, Supplier Part No. will be fetched as well for the Supplier's reference.
 
 ### Sales Details
 
-![Sales Details]({{docs_base_url}}/assets/old_images/erpnext/item-sales.png)
+<img alt="Item Sales Details" class="screenshot" src="{{docs_base_url}}/assets/img/stock/item-sales.png">
 
-**Default Income Account:** Income account selected here will be fetched automatically in sales invoice for this item.
+* **Default Income Account:** Income account selected here will be fetched automatically in sales invoice for this item.
 
-**Cost Centre:** Cost center selected here will be fetched automatically in sales invoice for this item.
+* **Cost Centre:** Cost center selected here will be fetched automatically in sales invoice for this item.
+
+* **Customer Codes:** Track Item Code assigned by the Customers for this Item. This will help you in searching item while creating Sales Order based on the Item Code in the Customer's Purchase Order.
 
 ### Manufacturing And Website
 
-![Manufacturing]({{docs_base_url}}/assets/old_images/erpnext/item-manufacturing-website.png)
+<img alt="Item Manfacturing and Website Details" class="screenshot" src="{{docs_base_url}}/assets/img/stock/item-manufacturing-and-website.png">
 
-Visit [Manufacturing]({{docs_base_url}}/user/manual/en/manufacturing) and [Website ]({{docs_base_url}}/user/manual/en/website)to understand these topics in detail.
+Visit [Manufacturing]({{docs_base_url}}/user/manual/en/manufacturing.html) and [Website ]({{docs_base_url}}/user/manual/en/website.html)to understand these topics in detail.
 
 ### Learn more about Item
 
diff --git a/erpnext/docs/user/manual/en/stock/item/item-valuation-fifo-and-moving-average.md b/erpnext/docs/user/manual/en/stock/item/item-valuation-fifo-and-moving-average.md
index fc5ef00..d1456ee 100644
--- a/erpnext/docs/user/manual/en/stock/item/item-valuation-fifo-and-moving-average.md
+++ b/erpnext/docs/user/manual/en/stock/item/item-valuation-fifo-and-moving-average.md
@@ -19,7 +19,7 @@
 
   * **FIFO (First In First Out):** In this system, ERPNext assumes that you will consume / sell those Items first which you bought first. For example, if you buy an Item at price X and then after a few days at price Y, whenever you sell your Item, ERPNext will reduce the quantity of the Item priced at X first and then Y.
 
-![FIFO]({{docs_base_url}}/assets/old_images/erpnext/fifo.png)
+<img alt="FIFO" class="screenshot" src="{{docs_base_url}}/assets/img/stock/fifo.png">
 
   * **Moving Average:** In this method, ERPNext assumes that the value of the item at any point is the average price of the units of that Item in stock. For example, if the value of an Item is X in a Warehouse with quantity Y and another quantity Y1 is added to the Warehouse at cost X1, the new value X2 would be:
 
diff --git a/erpnext/docs/user/manual/en/stock/item/purchase-details.md b/erpnext/docs/user/manual/en/stock/item/purchase-details.md
index 47983df..134d551 100644
--- a/erpnext/docs/user/manual/en/stock/item/purchase-details.md
+++ b/erpnext/docs/user/manual/en/stock/item/purchase-details.md
@@ -1,22 +1,7 @@
-# Purchase Details
+# Item Warranty
 
-# How Do I Track Warranty Status?
-
-To track a warranty period, it is necessary that the Item is a serialized Item.
-When this Item is delivered, the delivery date and the expiry period is saved in the serial number master. Through the serial number master you can track the warranty status.
+To track a warranty period, it is necessary that the Item is a serialized Item. When this Item is delivered, the delivery date and the expiry period is saved in the serial number master. Through the serial number master you can track the warranty status.
 
 A warranty means a guarantee or a promise which provides assurance by one party to the other party which allows for a legal remedy if that promise is not true or followed. A warranty period is a time period in which a purchased product may be returned or exchanged.
 
-![Warranty]({{docs_base_url}}/assets/old_images/erpnext/faq-warranty.png)
-
-# How To Name A Manufacturer Part Number?
-
-Go to the purchase details section of the Item form, and enter the number on the right hand side in the field ‘Manufacturer Part Number’
-
-> Stock > Item
-
-A manufacturer part number is a series of numbers and /or letters that has been given to a part by the manufacturer. The manufacturer part number belongs to the manufacturer and helps distinguish the part from other manufacturers. If two parts come from different manufacturers, they will have different MPNs. This allows businesses to identify which company made the part.
-
-![Part No]({{docs_base_url}}/assets/old_images/erpnext/faq-manufacturer-part-no.png)
-
-__For Example:__ A refrigerator will have different parts which will have manufacturer part number. Thus, when any part fails and you want to replace it, you can simply order that part based on its part number.
+<img class="screenshot" alt="Item Warranty" src="{{docs_base_url}}/assets/img/stock/item-warranty.png">
\ No newline at end of file
diff --git a/erpnext/docs/user/manual/en/stock/item/reorder.md b/erpnext/docs/user/manual/en/stock/item/reorder.md
index 4537d95..548a8a9 100644
--- a/erpnext/docs/user/manual/en/stock/item/reorder.md
+++ b/erpnext/docs/user/manual/en/stock/item/reorder.md
@@ -1,26 +1,13 @@
-# Re-Order 
+# Re-order Level & Re-order Qty
 
-# How To Setup Re-order Level?
+The **Re-order Level** is the point at which stock on a particular item has diminished to a point where it needs to be replenished. To order based on Re-order level can avoid shortages. Re-order level can be determined based on the lead time and the average daily consumption.
 
-Go to the Re-order section of the Item form in the Stock module.
+You can update Re-order Level and Re-order Qty for an Item in the Auto Re-order section.
 
-> Stock > Item
+For example, you can set your reorder level of Motherboard at 10. When there are only 10 Motherboards remaining in stock, the system will either automatically create a Material Request in your ERPNext account.
 
-The Re-order level is the point at which stock on a particular item has diminished to a point where it needs to be replenished. To order based on Re-order level can avoid shortages. Re-order level can be determined based on the lead time and the average daily consumption.
+**Re-order quantity** is the quantity to order, so that the sum of ordering cost and holding cost is at its minimum.The re-order quantity is based on the minimum order quantity specified by the supplier and many other factors.
 
-![Reorder Level]({{docs_base_url}}/assets/old_images/erpnext/faq-reorder-level.png)
+For example, If reorder level is 100 items, your reorder quantity may not necessarily be 100 items. The Reorder quantity can be greater than or equal to reorder level. It may depend upon lead time, discount, transportation and average daily consumption.
 
-__For example:__ You can set your reorder level of bath towels at 10. When there are only 10 towels remaining in stock, the system will either send a mail or take action depending upon what you have selected in global settings.
-
-# How To Setup Reorder Quantity?
-
-To setup Reorder quantity, go to the Re-order section of the Item form. In the field ‘Re-order Qty’ type the amount that is needed.
-
-> Stock> Item
-
-Re-order quantity is the quantity to order, so that the sum of ordering cost and holding cost is at its minimum.The re-order quantity is based on the minimum order quantity specified by the supplier and many other factors.
-
-![Reorder Quantity]({{docs_base_url}}/assets/old_images/erpnext/faq-reorder-qty.png)
-
-__For example:__ If reorder level is 100 items, your reorder quantity may not necessarily be 100 items. The Reorder quantity can be greater than or equal to reorder level. It may depend upon lead time, discount, transportation and average daily consumption.
-
+<img alt="Item Reorder" class="screenshot" src="{{docs_base_url}}/assets/img/stock/item-reorder.png">
\ No newline at end of file
diff --git a/erpnext/docs/user/manual/en/using-erpnext/calendar.md b/erpnext/docs/user/manual/en/using-erpnext/calendar.md
index c674bf6..c8b64af 100644
--- a/erpnext/docs/user/manual/en/using-erpnext/calendar.md
+++ b/erpnext/docs/user/manual/en/using-erpnext/calendar.md
@@ -1,14 +1,14 @@
 The Calendar is a tool where you can create and share Events and also see auto-generated events from the system.
 
-You can switch calender view based on Month, Week and Day.
+You can switch calendar view based on Month, Week and Day.
 
 <img class="screenshot" alt="Calendar" src="{{docs_base_url}}/assets/img/collaboration-tools/calendar-1.png">
 
-### Creating Events in Calender
+### Creating Events in Calendar
 
 #### Creating Event Manually
 
-To create event manually, you should first determine Calender View. If Event's start and end time will be within one day, then you should first switch to Day view.
+To create event manually, you should first determine Calendar View. If Event's start and end time will be within one day, then you should first switch to Day view.
 
 This view will 24 hours of a day broken in various slots. You should click on slot for Event Start Time, and drag it down till you reach event end time.
 
@@ -45,7 +45,7 @@
 
 #### Create Email Digest
 
-To get email reminders for event, you should set Email Digest for Calender Events.
+To get email reminders for event, you should set Email Digest for Calendar Events.
 
 Email Digest can be set from:
 
diff --git a/erpnext/docs/user/manual/en/website/articles/managing-user-sign-up-via-website.md b/erpnext/docs/user/manual/en/website/articles/managing-user-sign-up-via-website.md
index c4f0b77..b2250e0 100644
--- a/erpnext/docs/user/manual/en/website/articles/managing-user-sign-up-via-website.md
+++ b/erpnext/docs/user/manual/en/website/articles/managing-user-sign-up-via-website.md
@@ -1,8 +1,8 @@
-#Managing User Sign Up via Website
+#Customer / Supplier Signup
 
-Users can sign up for ERPNext account via the ERPNext Website.
+Your Customer and Suppliers can signup to your ERPNext account by following Signup option on the Login Page.
 
-<img src="{{docs_base_url}}/assets/img/website/website-login.png">
+<img class="screenshot" alt="Website User Signup" src="{{docs_base_url}}/assets/img/website/website-login.png">
 
 As seen above the login / sign-up button appears on the homepage of the website generated using ERPNext.
 
diff --git a/erpnext/hr/doctype/training_event/training_event.py b/erpnext/hr/doctype/training_event/training_event.py
index c9be3dd..27ae8cf 100644
--- a/erpnext/hr/doctype/training_event/training_event.py
+++ b/erpnext/hr/doctype/training_event/training_event.py
@@ -8,20 +8,19 @@
 from frappe.model.document import Document
 
 class TrainingEvent(Document):
-	def validate(self):
-		if self.event_status == "Scheduled":
-			self.invite_employee()
+	def on_update(self):
+		self.invite_employee()
 	
 	def on_update_after_submit(self):
-		if self.event_status == "Scheduled" and self.send_email:
-			self.invite_employee()
+		self.invite_employee()
 	
 	def invite_employee(self):
-		subject = _("""You are invited for to attend {0} - {1} scheduled from {2} to {3} at {4}."""\
-			.format(self.type, self.event_name, self.start_time, self.end_time, self.location))
-	
-		for emp in self.employees:
-			if emp.status== "Open":
-				frappe.sendmail(frappe.db.get_value("Employee", emp.employee, "company_email"), \
-					subject=subject, content= self.introduction)
-				emp.status= "Invited"
\ No newline at end of file
+		if self.event_status == "Scheduled" and self.send_email:
+			subject = _("""You are invited for to attend {0} - {1} scheduled from {2} to {3} at {4}."""\
+				.format(self.type, self.event_name, self.start_time, self.end_time, self.location))
+
+			for emp in self.employees:
+				if emp.status== "Open":
+					frappe.sendmail(frappe.db.get_value("Employee", emp.employee, "company_email"), \
+						subject=subject, content= self.introduction)
+					emp.status= "Invited"
\ No newline at end of file
diff --git a/erpnext/patches.txt b/erpnext/patches.txt
index 23e6f80..aa88b21 100644
--- a/erpnext/patches.txt
+++ b/erpnext/patches.txt
@@ -403,4 +403,5 @@
 erpnext.patches.v8_0.delete_bin_indexes
 erpnext.patches.v8_0.move_account_head_from_account_to_warehouse_for_inventory
 erpnext.patches.v8_0.change_in_words_varchar_length
-erpnext.patches.v8_0.create_domain_docs	#16-05-2017
\ No newline at end of file
+erpnext.patches.v8_0.create_domain_docs	#16-05-2017
+erpnext.patches.v8_0.update_sales_cost_in_project
\ No newline at end of file
diff --git a/erpnext/patches/v8_0/update_sales_cost_in_project.py b/erpnext/patches/v8_0/update_sales_cost_in_project.py
new file mode 100644
index 0000000..cc3798e
--- /dev/null
+++ b/erpnext/patches/v8_0/update_sales_cost_in_project.py
@@ -0,0 +1,12 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
+# License: GNU General Public License v3. See license.txt
+
+from __future__ import unicode_literals
+import frappe
+
+def execute():
+	frappe.db.sql("""
+		update `tabProject` p
+		set total_sales_cost = (select sum(base_grand_total) 
+			from `tabSales Order` where project=p.name and docstatus=1)
+	""")
\ No newline at end of file
diff --git a/erpnext/projects/doctype/project/project.py b/erpnext/projects/doctype/project/project.py
index 66df901..2cb93f0 100644
--- a/erpnext/projects/doctype/project/project.py
+++ b/erpnext/projects/doctype/project/project.py
@@ -120,6 +120,11 @@
 		self.flags.dont_sync_tasks = True
 		self.save(ignore_permissions = True)
 
+	def after_insert(self):
+		if self.sales_order:
+			frappe.db.set_value("Sales Order", self.sales_order, "project", self.name)
+
+
 	def update_percent_complete(self):
 		total = frappe.db.sql("""select count(name) from tabTask where project=%s""", self.name)[0][0]
 		if not total and self.percent_complete:
@@ -181,7 +186,7 @@
 		self.total_purchase_cost = total_purchase_cost and total_purchase_cost[0][0] or 0
 		
 	def update_sales_costing(self):
-		total_sales_cost = frappe.db.sql("""select sum(grand_total)
+		total_sales_cost = frappe.db.sql("""select sum(base_grand_total)
 			from `tabSales Order` where project = %s and docstatus=1""", self.name)
 
 		self.total_sales_cost = total_sales_cost and total_sales_cost[0][0] or 0
diff --git a/erpnext/public/js/shopping_cart.js b/erpnext/public/js/shopping_cart.js
index 2c56b02..e4e7440 100644
--- a/erpnext/public/js/shopping_cart.js
+++ b/erpnext/public/js/shopping_cart.js
@@ -6,7 +6,7 @@
 var shopping_cart = erpnext.shopping_cart;
 
 frappe.ready(function() {
-	var full_name = frappe.session.user_fullname;
+	var full_name = frappe.session && frappe.session.user_fullname;
 	// update user
 	if(full_name) {
 		$('.navbar li[data-label="User"] a')
@@ -36,8 +36,7 @@
 	},
 
 	update_cart: function(opts) {
-		var full_name = frappe.session.user_fullname;
-		if(!full_name || full_name==="Guest") {
+		if(frappe.session.user==="Guest") {
 			if(localStorage) {
 				localStorage.setItem("last_visited", window.location.pathname);
 			}
diff --git a/erpnext/schools/doctype/assessment_result_tool/assessment_result_tool.js b/erpnext/schools/doctype/assessment_result_tool/assessment_result_tool.js
index 3cadea6..a2eecef 100644
--- a/erpnext/schools/doctype/assessment_result_tool/assessment_result_tool.js
+++ b/erpnext/schools/doctype/assessment_result_tool/assessment_result_tool.js
@@ -6,6 +6,7 @@
 
 frappe.ui.form.on('Assessment Result Tool', {
 	refresh: function(frm) {
+		frm.trigger("assessment_plan");
 		if (frappe.route_options) {
 			frm.set_value("student_group", frappe.route_options.student_group);
 			frm.set_value("assessment_plan", frappe.route_options.assessment_plan);
diff --git a/erpnext/selling/doctype/sales_order/sales_order.py b/erpnext/selling/doctype/sales_order/sales_order.py
index 8295075..ccaa07c 100644
--- a/erpnext/selling/doctype/sales_order/sales_order.py
+++ b/erpnext/selling/doctype/sales_order/sales_order.py
@@ -608,7 +608,7 @@
 	from frappe.desk.calendar import get_event_conditions
 	conditions = get_event_conditions("Sales Order", filters)
 
-	data = frappe.db.sql("""select name, customer_name, delivery_status, billing_status, delivery_date
+	data = frappe.db.sql("""select name, customer_name, status, delivery_status, billing_status, delivery_date
 		from `tabSales Order`
 		where (ifnull(delivery_date, '0000-00-00')!= '0000-00-00') \
 				and (delivery_date between %(start)s and %(end)s)
diff --git a/erpnext/selling/doctype/sales_order/sales_order_calendar.js b/erpnext/selling/doctype/sales_order/sales_order_calendar.js
index 7a38f90..cb412cf 100644
--- a/erpnext/selling/doctype/sales_order/sales_order_calendar.js
+++ b/erpnext/selling/doctype/sales_order/sales_order_calendar.js
@@ -33,7 +33,7 @@
 	get_events_method: "erpnext.selling.doctype.sales_order.sales_order.get_events",
 	get_css_class: function(data) {
 		if(data.status=="Closed") {
-			return "";
+			return "success";
 		} if(data.delivery_status=="Not Delivered") {
 			return "danger";
 		} else if(data.delivery_status=="Partly Delivered") {
diff --git a/erpnext/setup/doctype/email_digest/email_digest.py b/erpnext/setup/doctype/email_digest/email_digest.py
index 8c19db5..c85a541 100644
--- a/erpnext/setup/doctype/email_digest/email_digest.py
+++ b/erpnext/setup/doctype/email_digest/email_digest.py
@@ -364,9 +364,9 @@
 		balance = prev_balance = 0.0
 		count = 0
 		for account in accounts:
-			balance += get_balance_on(account, date=self.future_to_date)
+			balance += get_balance_on(account, date=self.future_to_date, in_account_currency=False)
 			count += get_count_on(account, fieldname, date=self.future_to_date)
-			prev_balance += get_balance_on(account, date=self.past_to_date)
+			prev_balance += get_balance_on(account, date=self.past_to_date, in_account_currency=False)
 
 		if fieldname in ("bank_balance","credit_balance"):
 			return {
diff --git a/erpnext/setup/doctype/item_group/item_group.py b/erpnext/setup/doctype/item_group/item_group.py
index 98404a4..9c2a400 100644
--- a/erpnext/setup/doctype/item_group/item_group.py
+++ b/erpnext/setup/doctype/item_group/item_group.py
@@ -37,10 +37,11 @@
 		if not self.route:
 			self.route = ''
 			if self.parent_item_group:
-				parent_route = frappe.get_doc('Item Group', self.parent_item_group).route
+				parent_item_group = frappe.get_doc('Item Group', self.parent_item_group)
 
-				if parent_route:
-					self.route = parent_route + '/'
+				# make parent route only if not root
+				if parent_item_group.parent_item_group and parent_item_group.route:
+					self.route = parent_item_group.route + '/'
 
 			self.route += self.scrub(self.item_group_name)
 
@@ -100,7 +101,7 @@
 				or name like %(search)s)"""
 		search = "%" + cstr(search) + "%"
 
-	query += """order by weightage desc, modified desc limit %s, %s""" % (start, limit)
+	query += """order by weightage desc, item_name, modified desc limit %s, %s""" % (start, limit)
 
 	data = frappe.db.sql(query, {"product_group": product_group,"search": search, "today": nowdate()}, as_dict=1)
 
diff --git a/erpnext/shopping_cart/cart.py b/erpnext/shopping_cart/cart.py
index e73734e..5c7d825 100644
--- a/erpnext/shopping_cart/cart.py
+++ b/erpnext/shopping_cart/cart.py
@@ -75,9 +75,15 @@
 def update_cart(item_code, qty, with_items=False):
 	quotation = _get_cart_quotation()
 
+	empty_card = False
 	qty = flt(qty)
 	if qty == 0:
-		quotation.set("items", quotation.get("items", {"item_code": ["!=", item_code]}))
+		quotation_items = quotation.get("items", {"item_code": ["!=", item_code]})
+		if quotation_items:
+			quotation.set("items", quotation_items)
+		else:
+			empty_card = True
+
 	else:
 		quotation_items = quotation.get("items", {"item_code": item_code})
 		if not quotation_items:
@@ -92,7 +98,11 @@
 	apply_cart_settings(quotation=quotation)
 
 	quotation.flags.ignore_permissions = True
-	quotation.save()
+	if not empty_card:
+		quotation.save()
+	else:
+		quotation.delete()
+		quotation = None
 
 	set_cart_count(quotation)
 
diff --git a/erpnext/stock/doctype/item/item.js b/erpnext/stock/doctype/item/item.js
index 40ad55a..1af0807 100644
--- a/erpnext/stock/doctype/item/item.js
+++ b/erpnext/stock/doctype/item/item.js
@@ -121,7 +121,15 @@
 		if(!frm.doc.description)
 			frm.set_value("description", frm.doc.item_code);
 	},
-
+	
+	is_stock_item: function(frm) {
+		if(!frm.doc.is_stock_item) {
+			frm.set_value("has_batch_no", 0);
+			frm.set_value("create_new_batch", 0);
+			frm.set_value("has_serial_no", 0);
+		}
+	},
+	
 	copy_from_item_group: function(frm) {
 		return frm.call({
 			doc: frm.doc,
diff --git a/erpnext/stock/doctype/item/item.py b/erpnext/stock/doctype/item/item.py
index 6e21e67d..f5f3493 100644
--- a/erpnext/stock/doctype/item/item.py
+++ b/erpnext/stock/doctype/item/item.py
@@ -37,7 +37,8 @@
 		if frappe.db.get_default("item_naming_by")=="Naming Series":
 			if self.variant_of:
 				if not self.item_code:
-					self.item_code = make_variant_item_code(self.variant_of, self.item_name, self)
+					template_item_name = frappe.db.get_value("Item", self.variant_of, "item_name")
+					self.item_code = make_variant_item_code(self.variant_of, template_item_name, self)
 			else:
 				from frappe.model.naming import make_autoname
 				self.item_code = make_autoname(self.naming_series+'.#####')
diff --git a/erpnext/stock/report/batch_wise_balance_history/batch_wise_balance_history.py b/erpnext/stock/report/batch_wise_balance_history/batch_wise_balance_history.py
index fca91d6..e7cb9ad 100644
--- a/erpnext/stock/report/batch_wise_balance_history/batch_wise_balance_history.py
+++ b/erpnext/stock/report/batch_wise_balance_history/batch_wise_balance_history.py
@@ -23,7 +23,8 @@
 				if qty_dict.opening_qty or qty_dict.in_qty or qty_dict.out_qty or qty_dict.bal_qty:
 					data.append([item, item_map[item]["item_name"], item_map[item]["description"], wh, batch,
 						flt(qty_dict.opening_qty, float_precision), flt(qty_dict.in_qty, float_precision),
-						flt(qty_dict.out_qty, float_precision), flt(qty_dict.bal_qty, float_precision)
+						flt(qty_dict.out_qty, float_precision), flt(qty_dict.bal_qty, float_precision),
+						 item_map[item]["stock_uom"]
 					])
 
 	return columns, data
@@ -33,7 +34,9 @@
 
 	columns = [_("Item") + ":Link/Item:100"] + [_("Item Name") + "::150"] + [_("Description") + "::150"] + \
 	[_("Warehouse") + ":Link/Warehouse:100"] + [_("Batch") + ":Link/Batch:100"] + [_("Opening Qty") + ":Float:90"] + \
-	[_("In Qty") + ":Float:80"] + [_("Out Qty") + ":Float:80"] + [_("Balance Qty") + ":Float:90"]
+	[_("In Qty") + ":Float:80"] + [_("Out Qty") + ":Float:80"] + [_("Balance Qty") + ":Float:90"] + \
+	[_("UOM") + "::90"]
+
 
 	return columns
 
@@ -87,7 +90,7 @@
 
 def get_item_details(filters):
 	item_map = {}
-	for d in frappe.db.sql("select name, item_name, description from tabItem", as_dict=1):
+	for d in frappe.db.sql("select name, item_name, description, stock_uom from tabItem", as_dict=1):
 		item_map.setdefault(d.name, d)
 
 	return item_map
diff --git a/erpnext/stock/utils.py b/erpnext/stock/utils.py
index fd1ece2..2b9def3 100644
--- a/erpnext/stock/utils.py
+++ b/erpnext/stock/utils.py
@@ -65,7 +65,7 @@
 	if with_valuation_rate:
 		return (last_entry.qty_after_transaction, last_entry.valuation_rate) if last_entry else (0.0, 0.0)
 	else:
-		return last_entry.qty_after_transaction or 0.0
+		return last_entry.qty_after_transaction if last_entry else 0.0
 
 def get_latest_stock_balance():
 	bin_map = {}
diff --git a/erpnext/templates/includes/order/order_taxes.html b/erpnext/templates/includes/order/order_taxes.html
index 24ae088..471576f 100644
--- a/erpnext/templates/includes/order/order_taxes.html
+++ b/erpnext/templates/includes/order/order_taxes.html
@@ -6,11 +6,13 @@
 </div>
 {% endif %}
 {% for d in doc.taxes %}
+{% if d.base_tax_amount > 0 %}
 <div class="row tax-row">
     <div class="col-xs-8 text-right">{{ d.description }}</div>
     <div class="col-xs-4 text-right">
         {{ d.get_formatted("base_tax_amount") }}</div>
 </div>
+{% endif %}
 {% endfor %}
 <div class="row tax-grand-total-row">
     <div class="col-xs-8 text-right text-uppercase h6 text-muted">{{ _("Grand Total") }}</div>
diff --git a/erpnext/templates/includes/product_list.js b/erpnext/templates/includes/product_list.js
index 7f63c17..2f9d978 100644
--- a/erpnext/templates/includes/product_list.js
+++ b/erpnext/templates/includes/product_list.js
@@ -39,10 +39,10 @@
 	if(data.length < 10) {
 		if(!table) {
 			$(".more-btn")
-				.replaceWith("<div class='alert alert-warning'>No products found.</div>");
+				.replaceWith("<div class='alert alert-warning'>{{ _("No products found.") }}</div>");
 		} else {
 			$(".more-btn")
-				.replaceWith("<div class='text-muted'>Nothing more to show.</div>");
+				.replaceWith("<div class='text-muted'>{{ _("Nothing more to show.") }}</div>");
 		}
 	} else {
 		$(".more-btn").toggle(true)
diff --git a/erpnext/templates/includes/product_page.js b/erpnext/templates/includes/product_page.js
index e61ead1..3905959 100644
--- a/erpnext/templates/includes/product_page.js
+++ b/erpnext/templates/includes/product_page.js
@@ -15,18 +15,18 @@
 			$(".item-cart").toggleClass("hide", (!!!r.message.price || !!!r.message.in_stock));
 			if(r.message && r.message.price) {
 				$(".item-price")
-					.html(r.message.price.formatted_price + " per " + r.message.uom);
+					.html(r.message.price.formatted_price + " {{ _("per") }} " + r.message.uom);
 
 				if(r.message.in_stock==0) {
-					$(".item-stock").html("<div style='color: red'> <i class='fa fa-close'></i> Not in stock</div>");
+					$(".item-stock").html("<div style='color: red'> <i class='fa fa-close'></i> {{ _("Not in stock") }}</div>");
 				}
 				else if(r.message.in_stock==1) {
-					var qty_display = "In stock";
+					var qty_display = "{{ _("In stock") }}";
 					if (r.message.show_stock_qty) {
-						qty_display = "Available ("+r.message.stock_qty+ " in stock)";
+						qty_display += " ("+r.message.stock_qty+")";
 					}
 					$(".item-stock").html("<div style='color: green'>\
-						<i class='fa fa-check'></i> "+__(qty_display)+"</div>");
+						<i class='fa fa-check'></i> "+qty_display+"</div>");
 				}
 
 				if(r.message.qty) {
diff --git a/erpnext/templates/print_formats/includes/taxes.html b/erpnext/templates/print_formats/includes/taxes.html
index 55e0443..b0bd1d4 100644
--- a/erpnext/templates/print_formats/includes/taxes.html
+++ b/erpnext/templates/print_formats/includes/taxes.html
@@ -1,7 +1,7 @@
 {%- macro render_discount_amount(doc) -%}
 	{%- if doc.discount_amount -%}
 		<div class="row">
-			<div class="col-xs-5 text-right">
+			<div class="col-xs-5 {%- if not doc._align_labels_left %} text-right{%- endif -%}">
 				<label>{{ _("Discount Amount") }}</label></div>
 			<div class="col-xs-7 text-right">
 				- {{ doc.get_formatted("discount_amount", doc) }}
@@ -19,7 +19,7 @@
 		{%- for charge in data -%}
 			{%- if not charge.included_in_print_rate -%}
 			<div class="row">
-				<div class="col-xs-5 text-right">
+				<div class="col-xs-5 {%- if not doc._align_labels_left %} text-right{%- endif -%}">
 					<label>{{ charge.get_formatted("description") }}</label></div>
 				<div class="col-xs-7 text-right">
 					{{ frappe.format_value(frappe.utils.flt(charge.tax_amount),
diff --git a/erpnext/translations/ar.csv b/erpnext/translations/ar.csv
index a28948b..37b43ae 100644
--- a/erpnext/translations/ar.csv
+++ b/erpnext/translations/ar.csv
@@ -47,7 +47,7 @@
 apps/erpnext/erpnext/hr/doctype/process_payroll/process_payroll.py +179,Accural Journal Entry Submitted,Accural إدخال دفتر اليومية ارسل
 DocType: Pricing Rule,Apply On,تنطبق على
 DocType: Item Price,Multiple Item prices.,أسعار الإغلاق متعددة .
-,Purchase Order Items To Be Received,أمر شراء الأصناف التي سترد
+,Purchase Order Items To Be Received,تم استلام اصناف امر الشراء
 DocType: SMS Center,All Supplier Contact,بيانات اتصال جميع الموردين
 DocType: Support Settings,Support Settings,إعدادات الدعم
 DocType: SMS Parameter,Parameter,المعلمة
@@ -250,7 +250,7 @@
 apps/erpnext/erpnext/stock/report/stock_balance/stock_balance.py +51,Out Value,القيمة خارج
 DocType: Production Planning Tool,Sales Orders,أوامر البيع
 DocType: Purchase Taxes and Charges,Valuation,تقييم
-,Purchase Order Trends,شراء اتجاهات ترتيب
+,Purchase Order Trends,اتجهات امر الشراء
 apps/erpnext/erpnext/templates/emails/request_for_quotation.html +7,The request for quotation can be accessed by clicking on the following link,طلب للحصول على الاقتباس يمكن الوصول إليها من خلال النقر على الرابط التالي
 apps/erpnext/erpnext/config/hr.py +81,Allocate leaves for the year.,تخصيص الاجازات لهذا العام.
 DocType: SG Creation Tool Course,SG Creation Tool Course,سان جرمان إنشاء ملعب أداة
@@ -684,7 +684,7 @@
 DocType: Supplier,Fixed Days,يوم الثابتة
 DocType: Quotation Item,Item Balance,البند الميزان
 DocType: Sales Invoice,Packing List,قائمة التعبئة
-apps/erpnext/erpnext/config/buying.py +28,Purchase Orders given to Suppliers.,أوامر الشراء نظرا للموردين.
+apps/erpnext/erpnext/config/buying.py +28,Purchase Orders given to Suppliers.,تحديد موردين لأمر الشراء.
 apps/erpnext/erpnext/setup/setup_wizard/industry_type.py +43,Publishing,النشر
 DocType: Activity Cost,Projects User,مشاريع العضو
 apps/erpnext/erpnext/stock/report/itemwise_recommended_reorder_level/itemwise_recommended_reorder_level.py +41,Consumed,مستهلك
@@ -899,7 +899,7 @@
 apps/erpnext/erpnext/buying/utils.py +80,{0} {1} status is {2},{0} {1} الوضع هو {2}
 DocType: Employee,Provide Email Address registered in company,تقديم عنوان البريد الإلكتروني المسجل في شركة
 DocType: Shopping Cart Settings,Enable Checkout,تمكين الخروج
-apps/erpnext/erpnext/config/learn.py +202,Purchase Order to Payment,أمر الشراء إلى الدفع
+apps/erpnext/erpnext/config/learn.py +202,Purchase Order to Payment,مدفوعات امر الشراء
 apps/erpnext/erpnext/stock/page/stock_balance/stock_balance.js +48,Projected Qty,الكمية المتوقعة
 DocType: Sales Invoice,Payment Due Date,تاريخ استحقاق السداد
 apps/erpnext/erpnext/stock/doctype/item/item.js +341,Item Variant {0} already exists with same attributes,البند البديل {0} موجود بالفعل مع نفس الصفات
@@ -1085,7 +1085,7 @@
 apps/erpnext/erpnext/accounts/doctype/payment_entry/payment_entry.js +149,Please specify a valid Row ID for row {0} in table {1},يرجى تحديد هوية الصف صالحة لصف {0} في الجدول {1}
 apps/erpnext/erpnext/setup/page/welcome_to_erpnext/welcome_to_erpnext.html +23,Go to the Desktop and start using ERPNext,ERPNext اذهب إلى سطح المكتب والبدء في استخدام
 DocType: Item,Manufacturer,الصانع
-DocType: Landed Cost Item,Purchase Receipt Item,شراء السلعة استلام
+DocType: Landed Cost Item,Purchase Receipt Item,اصناف استلام الشراء
 DocType: Purchase Receipt,PREC-RET-,PREC-RET-
 DocType: POS Profile,Sales Invoice Payment,فاتورة مبيعات الدفع
 DocType: Production Plan Item,Reserved Warehouse in Sales Order / Finished Goods Warehouse,مستودع محجوزة في ترتيب المبيعات / السلع تامة الصنع في معرض النماذج
@@ -1201,7 +1201,7 @@
 DocType: Course,Course Intro,مقدمة الدورة
 apps/erpnext/erpnext/stock/doctype/batch/batch.js +85,Stock Entry {0} created,الأسهم الدخول {0} خلق
 apps/erpnext/erpnext/controllers/buying_controller.py +290,Row #{0}: Rejected Qty can not be entered in Purchase Return,الصف # {0} مرفوض الكمية لا يمكن إدخالها في شراء العودة
-,Purchase Order Items To Be Billed,أمر الشراء البنود لتكون وصفت
+,Purchase Order Items To Be Billed,تم اصدار فاتورة لأصناف امر الشراء
 DocType: Purchase Invoice Item,Net Rate,صافي معدل
 DocType: Purchase Invoice Item,Purchase Invoice Item,اصناف فاتورة المشتريات
 apps/erpnext/erpnext/stock/doctype/landed_cost_voucher/landed_cost_voucher.js +58,Stock Ledger Entries and GL Entries are reposted for the selected Purchase Receipts,ويرسل الأوراق المالية ليدجر مقالات وGL مقالات لشراء شهادات مختارة
@@ -1620,7 +1620,7 @@
 apps/erpnext/erpnext/stock/doctype/material_request/material_request.py +180,{0} {1} is cancelled or stopped,{0} {1} ملغى أو موقف
 DocType: Accounts Settings,Credit Controller,المراقب الائتمان
 DocType: Delivery Note,Vehicle Dispatch Date,سيارة الإرسال التسجيل
-apps/erpnext/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py +229,Purchase Receipt {0} is not submitted,شراء استلام {0} لم تقدم
+apps/erpnext/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py +229,Purchase Receipt {0} is not submitted,استلام المشتريات {0} غير مرحل
 DocType: Company,Default Payable Account,حساب Paybal الافتراضي
 apps/erpnext/erpnext/config/website.py +17,"Settings for online shopping cart such as shipping rules, price list etc.",إعدادات عربة التسوق مثل قواعد الشحن، وقائمة الأسعار الخ
 apps/erpnext/erpnext/controllers/website_list_for_contact.py +86,{0}% Billed,{0} فوترت٪
@@ -2132,7 +2132,7 @@
 DocType: Stock Entry,Total Incoming Value,إجمالي القيمة الواردة
 apps/erpnext/erpnext/accounts/doctype/sales_invoice/sales_invoice.py +333,Debit To is required,مطلوب الخصم ل
 apps/erpnext/erpnext/utilities/activation.py +107,"Timesheets help keep track of time, cost and billing for activites done by your team",الجداول الزمنية تساعد على الحفاظ على المسار من الوقت والتكلفة وإعداد الفواتير للنشاطات الذي قام به فريقك
-apps/erpnext/erpnext/stock/report/item_prices/item_prices.py +39,Purchase Price List,شراء قائمة الأسعار
+apps/erpnext/erpnext/stock/report/item_prices/item_prices.py +39,Purchase Price List,قائمة اسعار المشتريات
 DocType: Offer Letter Term,Offer Term,عرض عمل
 DocType: Quality Inspection,Quality Manager,مدير الجودة
 DocType: Job Applicant,Job Opening,وظيفة شاغرة
@@ -2515,7 +2515,7 @@
 apps/erpnext/erpnext/accounts/report/accounts_receivable/accounts_receivable.html +20,Ref,المرجع
 DocType: Budget,Cost Center,مركز التكلفة
 apps/erpnext/erpnext/stock/report/stock_ledger/stock_ledger.py +36,Voucher #,سند #
-DocType: Notification Control,Purchase Order Message,رسالة طلب شراء
+DocType: Notification Control,Purchase Order Message,رسالة امر الشراء
 DocType: Tax Rule,Shipping Country,دولة الشحن
 DocType: Selling Settings,Hide Customer's Tax Id from Sales Transactions,إخفاء المعرف الضريبي العملاء من المعاملات المبيعات
 DocType: Upload Attendance,Upload HTML,رفع HTML
@@ -2919,7 +2919,7 @@
 apps/erpnext/erpnext/stock/doctype/stock_entry/stock_entry.py +168,Source and target warehouse cannot be same for row {0},مصدر و مستودع الهدف لا يمكن أن يكون نفس الصف ل {0}
 apps/erpnext/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py +241,"Difference Account must be a Asset/Liability type account, since this Stock Reconciliation is an Opening Entry","حساب الفروقات سجب ان يكون نوع حساب الأصول / الخصوم, بحيث مطابقة المخزون بأدخال الأفتتاحي"
 apps/erpnext/erpnext/hr/doctype/employee_loan/employee_loan.py +107,Disbursed Amount cannot be greater than Loan Amount {0},المبلغ صرف لا يمكن أن يكون أكبر من مبلغ القرض {0}
-apps/erpnext/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py +207,Purchase Order number required for Item {0},عدد طلب شراء مطلوب القطعة ل {0}
+apps/erpnext/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py +207,Purchase Order number required for Item {0},مطلوب رقم امر الشراء للصنف {0}
 apps/erpnext/erpnext/selling/doctype/sales_order/sales_order.js +869,Production Order not created,إنتاج النظام لم يخلق
 apps/erpnext/erpnext/stock/report/itemwise_recommended_reorder_level/itemwise_recommended_reorder_level.py +18,'From Date' must be after 'To Date',"""من تاريخ "" يجب أن يكون بعد "" إلى تاريخ """
 apps/erpnext/erpnext/schools/doctype/student_applicant/student_applicant.py +29,Cannot change status as student {0} is linked with student application {1},لا يمكن تغيير الوضع كما طالب {0} يرتبط مع تطبيق طالب {1}
@@ -3125,7 +3125,7 @@
 DocType: Cheque Print Template,Starting position from top edge,بدءا من موقف من أعلى الحافة
 apps/erpnext/erpnext/buying/doctype/request_for_quotation/request_for_quotation.py +30,Same supplier has been entered multiple times,تم إدخال المورد نفسه عدة مرات
 apps/erpnext/erpnext/accounts/report/profitability_analysis/profitability_analysis.py +152,Gross Profit / Loss,الربح الإجمالي / الخسارة
-DocType: Purchase Order Item Supplied,Purchase Order Item Supplied,شراء السلعة ترتيب الموردة
+DocType: Purchase Order Item Supplied,Purchase Order Item Supplied,الأصناف المزوده بامر الشراء
 apps/erpnext/erpnext/public/js/setup_wizard.js +83,Company Name cannot be Company,اسم الشركة لا يمكن تكون شركة
 apps/erpnext/erpnext/config/setup.py +27,Letter Heads for print templates.,عنوان الرسالة لطباعة النماذج
 apps/erpnext/erpnext/config/setup.py +32,Titles for print templates e.g. Proforma Invoice.,عناوين نماذج الطباعة مثل الفاتورة الأولية.
@@ -3142,7 +3142,7 @@
 apps/erpnext/erpnext/accounts/general_ledger.py +145,Please mention Round Off Cost Center in Company,يرجى ذكر جولة معطلة مركز التكلفة في الشركة
 DocType: Purchase Invoice,Terms,الأحكام
 DocType: Academic Term,Term Name,اسم المدى
-DocType: Buying Settings,Purchase Order Required,أمر الشراء المطلوبة
+DocType: Buying Settings,Purchase Order Required,مطلوب امر الشراء
 ,Item-wise Sales History,الحركة التاريخيه وفقا للصنف
 DocType: Expense Claim,Total Sanctioned Amount,الإجمالي الكمية الموافق عليه
 ,Purchase Analytics,تحليلات المشتريات
diff --git a/erpnext/translations/da.csv b/erpnext/translations/da.csv
index 48c5f2f..932a437 100644
--- a/erpnext/translations/da.csv
+++ b/erpnext/translations/da.csv
@@ -18,7 +18,7 @@
 DocType: Purchase Order,PO-,IO-
 DocType: POS Profile,Applicable for User,Gældende for bruger
 apps/erpnext/erpnext/manufacturing/doctype/production_order/production_order.py +194,"Stopped Production Order cannot be cancelled, Unstop it first to cancel","Stoppet produktionsordre kan ikke annulleres, Unstop det første til at annullere"
-DocType: Vehicle Service,Mileage,Kilometertal
+DocType: Vehicle Service,Mileage,Kilometerpenge
 apps/erpnext/erpnext/accounts/doctype/asset/asset.js +231,Do you really want to scrap this asset?,Vil du virkelig kassere dette anlægsaktiv?
 apps/erpnext/erpnext/buying/report/quoted_item_comparison/quoted_item_comparison.js +44,Select Default Supplier,Vælg Standard Leverandør
 apps/erpnext/erpnext/shopping_cart/doctype/shopping_cart_settings/shopping_cart_settings.py +37,Currency is required for Price List {0},Valuta er nødvendig for prisliste {0}
@@ -593,7 +593,7 @@
 DocType: C-Form,IV,IV
 apps/erpnext/erpnext/templates/pages/order.html +53,Delivered: {0},Leveret: {0}
 DocType: Expense Claim,Payable Account,Betales konto
-DocType: Payment Entry,Type of Payment,Type af betaling
+DocType: Payment Entry,Type of Payment,Betalingsmåde
 DocType: Sales Order,Billing and Delivery Status,Fakturering og leveringsstatus
 DocType: Job Applicant,Resume Attachment,Vedhæft CV
 apps/erpnext/erpnext/selling/report/customer_acquisition_and_loyalty/customer_acquisition_and_loyalty.py +58,Repeat Customers,Gamle kunder
@@ -930,7 +930,7 @@
 apps/erpnext/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js +795,Purchase Receipt,Købskvittering
 ,Received Items To Be Billed,Modtagne varer skal faktureres
 apps/erpnext/erpnext/hr/doctype/process_payroll/process_payroll.py +177,Submitted Salary Slips,Godkendte lønsedler
-DocType: Employee,Ms,Ms
+DocType: Employee,Ms,Fru
 apps/erpnext/erpnext/config/accounts.py +272,Currency exchange rate master.,Valutakursen mester.
 apps/erpnext/erpnext/accounts/doctype/payment_entry/payment_entry.py +194,Reference Doctype must be one of {0},Henvisning Doctype skal være en af {0}
 apps/erpnext/erpnext/manufacturing/doctype/production_order/production_order.py +303,Unable to find Time Slot in the next {0} days for Operation {1},Kan ikke finde Time Slot i de næste {0} dage til Operation {1}
@@ -1002,7 +1002,7 @@
 apps/erpnext/erpnext/setup/page/welcome_to_erpnext/welcome_to_erpnext.html +24,View a list of all the help videos,Se en liste over alle hjælpevideoerne
 DocType: Bank Reconciliation,Select account head of the bank where cheque was deposited.,"Vælg højde leder af den bank, hvor checken blev deponeret."
 DocType: Selling Settings,Allow user to edit Price List Rate in transactions,Tillad brugeren at redigere prislistesatsen i transaktioner
-DocType: Pricing Rule,Max Qty,Maksimalt antal
+DocType: Pricing Rule,Max Qty,Maksimal mængde
 apps/erpnext/erpnext/accounts/doctype/c_form/c_form.py +30,"Row {0}: Invoice {1} is invalid, it might be cancelled / does not exist. \
 						Please enter a valid Invoice","Række {0}: Faktura {1} er ugyldig, kan det blive annulleret / findes ikke. \ Indtast en gyldig faktura"
 apps/erpnext/erpnext/accounts/doctype/journal_entry/journal_entry.py +132,Row {0}: Payment against Sales/Purchase Order should always be marked as advance,Række {0}: Betaling mod Salg / Indkøbsordre bør altid blive markeret som forskud
@@ -2300,7 +2300,7 @@
 DocType: BOM,Show Operations,Vis Operations
 ,Minutes to First Response for Opportunity,Minutter til første reaktion for salgsmulighed
 apps/erpnext/erpnext/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py +58,Total Absent,Ialt fraværende
-apps/erpnext/erpnext/stock/doctype/stock_entry/stock_entry.py +785,Item or Warehouse for row {0} does not match Material Request,Vare eller lager for række {0} matcher ikke materiale Request
+apps/erpnext/erpnext/stock/doctype/stock_entry/stock_entry.py +785,Item or Warehouse for row {0} does not match Material Request,Vare eller lager for række {0} matcher ikke materialeanmodningen
 apps/erpnext/erpnext/config/stock.py +189,Unit of Measure,Måleenhed
 DocType: Fiscal Year,Year End Date,Sidste dag i året
 DocType: Task Depends On,Task Depends On,Opgave afhænger af
@@ -2534,7 +2534,7 @@
 DocType: C-Form Invoice Detail,Territory,Område
 apps/erpnext/erpnext/maintenance/doctype/maintenance_schedule/maintenance_schedule.py +151,Please mention no of visits required,"Henvis ikke af besøg, der kræves"
 DocType: Stock Settings,Default Valuation Method,Standard værdiansættelsesmetode
-DocType: Vehicle Log,Fuel Qty,Antal Fuel
+DocType: Vehicle Log,Fuel Qty,Brændstofmængde
 DocType: Production Order Operation,Planned Start Time,Planlagt starttime
 DocType: Course,Assessment,Vurdering
 DocType: Payment Entry Reference,Allocated,Allokeret
@@ -2822,8 +2822,8 @@
 apps/erpnext/erpnext/accounts/doctype/asset/depreciation.py +108,Asset {0} must be submitted,Aktiv {0} skal godkendes
 apps/erpnext/erpnext/schools/doctype/student_attendance/student_attendance.py +58,Attendance Record {0} exists against Student {1},Tilstedeværelse {0} eksisterer for studerende {1}
 apps/erpnext/erpnext/accounts/doctype/journal_entry/journal_entry.py +354,Reference #{0} dated {1},Henvisning # {0} dateret {1}
-apps/erpnext/erpnext/accounts/report/asset_depreciations_and_balances/asset_depreciations_and_balances.py +161,Depreciation Eliminated due to disposal of assets,Afskrivninger Slået grund afhændelse af aktiver
-apps/erpnext/erpnext/templates/includes/cart/cart_address.html +15,Manage Addresses,Administrer Adresser
+apps/erpnext/erpnext/accounts/report/asset_depreciations_and_balances/asset_depreciations_and_balances.py +161,Depreciation Eliminated due to disposal of assets,Bortfaldne afskrivninger grundet afhændelse af aktiver
+apps/erpnext/erpnext/templates/includes/cart/cart_address.html +15,Manage Addresses,Administrér adresser
 DocType: Asset,Item Code,Varenr.
 DocType: Production Planning Tool,Create Production Orders,Opret produktionsordrer
 DocType: Serial No,Warranty / AMC Details,Garanti / AMC Detaljer
@@ -4152,7 +4152,7 @@
 DocType: Buying Settings,Naming Series,Navngivningsnummerserie
 DocType: Leave Block List,Leave Block List Name,Blokering af fraværsansøgninger
 apps/erpnext/erpnext/hr/doctype/vehicle/vehicle.py +14,Insurance Start date should be less than Insurance End date,Forsikring Startdato skal være mindre end Forsikring Slutdato
-apps/erpnext/erpnext/accounts/doctype/account/chart_of_accounts/verified/standard_chart_of_accounts.py +32,Stock Assets,Stock Assets
+apps/erpnext/erpnext/accounts/doctype/account/chart_of_accounts/verified/standard_chart_of_accounts.py +32,Stock Assets,Lageraktiver
 DocType: Timesheet,Production Detail,Produktion Detail
 DocType: Target Detail,Target Qty,Target Antal
 DocType: Shopping Cart Settings,Checkout Settings,Kassen Indstillinger
@@ -4384,7 +4384,7 @@
 DocType: Company,Company Info,Firmainformation
 apps/erpnext/erpnext/accounts/page/pos/pos.js +1330,Select or add new customer,Vælg eller tilføj ny kunde
 apps/erpnext/erpnext/hr/doctype/expense_claim/expense_claim.py +147,Cost center is required to book an expense claim,Omkostningssted er forpligtet til at bestille et udlæg
-apps/erpnext/erpnext/accounts/doctype/account/chart_of_accounts/verified/standard_chart_of_accounts.py +9,Application of Funds (Assets),Anvendelse af midler (Assets)
+apps/erpnext/erpnext/accounts/doctype/account/chart_of_accounts/verified/standard_chart_of_accounts.py +9,Application of Funds (Assets),Anvendelse af midler (Aktiver)
 apps/erpnext/erpnext/hr/doctype/employee/employee_dashboard.py +6,This is based on the attendance of this Employee,Dette er baseret på deltagelse af denne Medarbejder
 apps/erpnext/erpnext/accounts/doctype/journal_entry/journal_entry.js +461,Debit Account,Debetkonto
 DocType: Fiscal Year,Year Start Date,År Startdato
@@ -4398,7 +4398,7 @@
 apps/erpnext/erpnext/accounts/report/financial_statements.py +97,End Year cannot be before Start Year,Slutår kan ikke være før startår
 apps/erpnext/erpnext/setup/setup_wizard/install_fixtures.py +184,Employee Benefits,Personalegoder
 apps/erpnext/erpnext/stock/doctype/delivery_note/delivery_note.py +252,Packed quantity must equal quantity for Item {0} in row {1},Pakket mængde skal være lig mængde for vare {0} i række {1}
-DocType: Production Order,Manufactured Qty,Fremstillet antal
+DocType: Production Order,Manufactured Qty,Fremstillet mængde
 DocType: Purchase Receipt Item,Accepted Quantity,Mængde
 apps/erpnext/erpnext/hr/doctype/employee/employee.py +238,Please set a default Holiday List for Employee {0} or Company {1},Angiv en standard helligdagskalender for medarbejder {0} eller firma {1}
 apps/erpnext/erpnext/accounts/party.py +28,{0}: {1} does not exists,{0}: {1} eksisterer ikke
@@ -4439,7 +4439,7 @@
 DocType: Sales Order,Track this Sales Order against any Project,Spor denne salgsordre mod enhver sag
 DocType: Sales Invoice Item,Discount and Margin,Rabat og Margin
 DocType: Production Planning Tool,Pull sales orders (pending to deliver) based on the above criteria,Pull salgsordrer (afventer at levere) baseret på ovenstående kriterier
-DocType: Pricing Rule,Min Qty,Min Antal
+DocType: Pricing Rule,Min Qty,Minimum mængde
 DocType: Asset Movement,Transaction Date,Transaktionsdato
 DocType: Production Plan Item,Planned Qty,Planlagt mængde
 apps/erpnext/erpnext/accounts/report/purchase_register/purchase_register.py +104,Total Tax,Moms i alt
diff --git a/erpnext/translations/de.csv b/erpnext/translations/de.csv
index 9c985eb..76b2d75 100644
--- a/erpnext/translations/de.csv
+++ b/erpnext/translations/de.csv
@@ -161,7 +161,7 @@
 DocType: Journal Entry,Opening Entry,Eröffnungsbuchung
 apps/erpnext/erpnext/accounts/doctype/cheque_print_template/cheque_print_template.js +25,Account Pay Only,Konto Pay Nur
 DocType: Employee Loan,Repay Over Number of Periods,Repay über Anzahl der Perioden
-apps/erpnext/erpnext/schools/doctype/student_group/student_group.py +37,{0} - {1} is not enrolled in the given {2},{0} - {1} ist nicht in der angegebenen {2}
+apps/erpnext/erpnext/schools/doctype/student_group/student_group.py +37,{0} - {1} is not enrolled in the given {2},{0} - {1} ist nicht für den angegebenen {2} eingeschrieben
 DocType: Stock Entry,Additional Costs,Zusätzliche Kosten
 apps/erpnext/erpnext/accounts/doctype/account/account.py +142,Account with existing transaction can not be converted to group.,Ein Konto mit bestehenden Transaktionen kann nicht in eine Gruppe umgewandelt werden
 DocType: Lead,Product Enquiry,Produktanfrage
@@ -582,7 +582,7 @@
 apps/erpnext/erpnext/accounts/report/balance_sheet/balance_sheet.js +9,Accumulated Values,Kumulierte Werte
 apps/erpnext/erpnext/stock/doctype/serial_no/serial_no.py +158,"Sorry, Serial Nos cannot be merged","Verzeihung! Seriennummern können nicht zusammengeführt werden,"
 apps/erpnext/erpnext/selling/doctype/quotation/quotation.js +737,Make Sales Order,Kundenauftrag erstellen
-DocType: Project Task,Project Task,Projekt-Teilaufgabe
+DocType: Project Task,Project Task,Projektvorgang
 ,Lead Id,Lead-ID
 DocType: C-Form Invoice Detail,Grand Total,Gesamtbetrag
 DocType: Training Event,Course,Kurs
@@ -867,7 +867,7 @@
 apps/erpnext/erpnext/accounts/doctype/gl_entry/gl_entry.py +88,{0} {1}: Account {2} cannot be a Group,{0} {1}: Konto {2} darf keine Gruppe sein
 apps/erpnext/erpnext/stock/doctype/landed_cost_voucher/landed_cost_voucher.py +61,Item Row {idx}: {doctype} {docname} does not exist in above '{doctype}' table,Artikel Row {idx}: {} {Doctype docname} existiert nicht in der oben &#39;{Doctype}&#39; Tisch
 apps/erpnext/erpnext/accounts/doctype/sales_invoice/sales_invoice.py +271,Timesheet {0} is already completed or cancelled,Timesheet {0} ist bereits abgeschlossen oder abgebrochen
-apps/erpnext/erpnext/templates/pages/projects.html +42,No tasks,Keine Aufgaben
+apps/erpnext/erpnext/templates/pages/projects.html +42,No tasks,keine Vorgänge
 DocType: Purchase Invoice,"The day of the month on which auto invoice will be generated e.g. 05, 28 etc","Der Tag des Monats, an welchem eine automatische Rechnung erstellt wird, z. B. 05, 28 usw."
 DocType: Asset,Opening Accumulated Depreciation,Öffnungs Kumulierte Abschreibungen
 apps/erpnext/erpnext/hr/doctype/appraisal/appraisal.js +49,Score must be less than or equal to 5,Punktzahl muß kleiner oder gleich 5 sein
@@ -1466,7 +1466,7 @@
 DocType: BOM,Scrap Material Cost(Company Currency),Schrottmaterialkosten (Gesellschaft Währung)
 apps/erpnext/erpnext/public/js/setup_wizard.js +300,Sub Assemblies,Unterbaugruppen
 DocType: Asset,Asset Name,Asset-Name
-DocType: Project,Task Weight,Aufgabengewichtung
+DocType: Project,Task Weight,Vorgangsgewichtung
 DocType: Shipping Rule Condition,To Value,Bis-Wert
 DocType: Asset Movement,Stock Manager,Lagerleiter
 apps/erpnext/erpnext/stock/doctype/stock_entry/stock_entry.py +143,Source warehouse is mandatory for row {0},Ausgangslager ist für Zeile {0} zwingend erforderlich
@@ -1586,10 +1586,10 @@
 DocType: Student Group,Set 0 for no limit,Stellen Sie 0 für keine Grenze
 apps/erpnext/erpnext/hr/doctype/leave_application/leave_application.py +141,The day(s) on which you are applying for leave are holidays. You need not apply for leave.,"Der Tag/die Tage, für den/die Sie Urlaub beantragen, sind Ferien. Deshalb müssen Sie keinen Urlaub beantragen."
 apps/erpnext/erpnext/accounts/doctype/payment_request/payment_request.js +20,Resend Payment Email,Erneut senden Zahlung per E-Mail
-apps/erpnext/erpnext/templates/pages/projects.html +27,New task,Neue Aufgabe
+apps/erpnext/erpnext/templates/pages/projects.html +27,New task,Neuer Vorgang
 apps/erpnext/erpnext/utilities/activation.py +72,Make Quotation,Angebot erstellen
 apps/erpnext/erpnext/config/selling.py +216,Other Reports,Weitere Berichte
-DocType: Dependent Task,Dependent Task,Abhängige Aufgabe
+DocType: Dependent Task,Dependent Task,Abhängiger Vorgang
 apps/erpnext/erpnext/stock/doctype/item/item.py +407,Conversion factor for default Unit of Measure must be 1 in row {0},Umrechnungsfaktor für Standardmaßeinheit muss in Zeile {0} 1 sein
 apps/erpnext/erpnext/hr/doctype/leave_application/leave_application.py +208,Leave of type {0} cannot be longer than {1},Abwesenheit vom Typ {0} kann nicht länger sein als {1}
 DocType: Manufacturing Settings,Try planning operations for X days in advance.,Arbeitsgänge für X Tage im Voraus planen.
@@ -2136,7 +2136,7 @@
 DocType: Payment Reconciliation,Payment Reconciliation,Zahlungsabgleich
 apps/erpnext/erpnext/maintenance/doctype/maintenance_schedule/maintenance_schedule.py +153,Please select Incharge Person's name,Bitte den Namen der verantwortlichen Person auswählen
 apps/erpnext/erpnext/setup/setup_wizard/industry_type.py +51,Technology,Technologie
-apps/erpnext/erpnext/public/js/utils.js +92,Total Unpaid: {0},Noch nicht ausgezahlten: {0}
+apps/erpnext/erpnext/public/js/utils.js +92,Total Unpaid: {0},Noch nicht bezahlt: {0}
 DocType: BOM Website Operation,BOM Website Operation,BOM Webseite Tätigkeits
 apps/erpnext/erpnext/hr/doctype/job_applicant/job_applicant.js +13,Offer Letter,Angebotsschreiben
 apps/erpnext/erpnext/config/manufacturing.py +18,Generate Material Requests (MRP) and Production Orders.,Materialanfragen (MAF) und Fertigungsaufträge generieren
@@ -2322,7 +2322,7 @@
 apps/erpnext/erpnext/stock/doctype/stock_entry/stock_entry.py +785,Item or Warehouse for row {0} does not match Material Request,Artikel oder Lager in Zeile {0} stimmen nicht mit Materialanfrage überein
 apps/erpnext/erpnext/config/stock.py +189,Unit of Measure,Maßeinheit
 DocType: Fiscal Year,Year End Date,Enddatum des Geschäftsjahres
-DocType: Task Depends On,Task Depends On,Aufgabe hängt ab von
+DocType: Task Depends On,Task Depends On,Vorgang hängt ab von
 DocType: Supplier Quotation,Opportunity,Chance
 ,Completed Production Orders,Abgeschlossene Fertigungsaufträge
 DocType: Operation,Default Workstation,Standard-Arbeitsplatz
@@ -2534,7 +2534,7 @@
 DocType: Task,% Progress,% Fortschritt
 apps/erpnext/erpnext/accounts/doctype/account/chart_of_accounts/verified/standard_chart_of_accounts.py +121,Gain/Loss on Asset Disposal,Gewinn / Verlust aus der Veräußerung von Vermögenswerten
 DocType: Training Event,Will send an email about the event to employees with status 'Open',Wird eine E-Mail über das Ereignis senden an Mitarbeiter mit dem Status 'Offen'
-DocType: Task,Depends on Tasks,Hängt von Aufgaben
+DocType: Task,Depends on Tasks,Abhängig von Vorgang
 apps/erpnext/erpnext/config/selling.py +36,Manage Customer Group Tree.,Baumstruktur der Kundengruppen verwalten
 DocType: Shopping Cart Settings,Attachments can be shown without enabling the shopping cart,Anhänge können ohne Erlaubnis des Einkaufswagens angezeigt werden
 DocType: Supplier Quotation,SQTN-,SQTN-
@@ -3242,7 +3242,7 @@
 apps/erpnext/erpnext/public/js/setup_wizard.js +189,Add Users,Benutzer hinzufügen
 DocType: POS Item Group,Item Group,Artikelgruppe
 DocType: Item,Safety Stock,Sicherheitsbestand
-apps/erpnext/erpnext/projects/doctype/task/task.py +53,Progress % for a task cannot be more than 100.,Fortschritt% für eine Aufgabe kann nicht mehr als 100 sein.
+apps/erpnext/erpnext/projects/doctype/task/task.py +53,Progress % for a task cannot be more than 100.,Fortschritt-% eines Vorgangs darf nicht größer 100 sein.
 DocType: Stock Reconciliation Item,Before reconciliation,Vor Ausgleich
 apps/erpnext/erpnext/maintenance/doctype/maintenance_visit/maintenance_visit.py +12,To {0},An {0}
 DocType: Purchase Invoice,Taxes and Charges Added (Company Currency),Steuern und Gebühren hinzugerechnet (Firmenwährung)
@@ -3642,7 +3642,7 @@
 DocType: Purchase Invoice,Taxes and Charges Added,Steuern und Gebühren hinzugefügt
 ,Sales Funnel,Verkaufstrichter
 apps/erpnext/erpnext/setup/doctype/company/company.py +47,Abbreviation is mandatory,Abkürzung ist zwingend erforderlich
-DocType: Project,Task Progress,Aufgabenfortschritt
+DocType: Project,Task Progress,Vorgangsentwicklung
 apps/erpnext/erpnext/templates/includes/navbar/navbar_items.html +7,Cart,Einkaufswagen
 ,Qty to Transfer,Zu versendende Menge
 apps/erpnext/erpnext/config/selling.py +13,Quotes to Leads or Customers.,Angebote an Leads oder Kunden
@@ -4217,7 +4217,7 @@
 DocType: Stock Settings,Stock Frozen Upto,Bestand gesperrt bis
 apps/erpnext/erpnext/stock/doctype/material_request/material_request.js +882,BOM does not contain any stock item,Stückliste enthält keine Lagerware
 apps/erpnext/erpnext/controllers/recurring_document.py +172,Period From and Period To dates mandatory for recurring {0},Ab-Zeitraum und Bis-Zeitraum sind zwingend erforderlich für wiederkehrende {0}
-apps/erpnext/erpnext/config/projects.py +18,Project activity / task.,Projektaktivität/Aufgabe
+apps/erpnext/erpnext/config/projects.py +18,Project activity / task.,Projektaktivität/-vorgang.
 DocType: Vehicle Log,Refuelling Details,Betankungs Einzelheiten
 apps/erpnext/erpnext/config/hr.py +104,Generate Salary Slips,Gehaltsabrechnungen generieren
 apps/erpnext/erpnext/accounts/doctype/pricing_rule/pricing_rule.py +44,"Buying must be checked, if Applicable For is selected as {0}","Einkauf muss ausgewählt sein, wenn ""Anwenden auf"" auf {0} gesetzt wurde"
@@ -4291,7 +4291,7 @@
 apps/erpnext/erpnext/templates/includes/footer/footer_extension.html +26,Error: Not a valid id?,Fehler: Keine gültige ID?
 DocType: Naming Series,Update Series Number,Nummernkreis-Wert aktualisieren
 DocType: Account,Equity,Eigenkapital
-apps/erpnext/erpnext/accounts/doctype/gl_entry/gl_entry.py +78,{0} {1}: 'Profit and Loss' type account {2} not allowed in Opening Entry,{0} {1}: &quot;Gewinn und Verlust&quot; Typ Konto {2} nicht in Öffnungs Eintrag erlaubt
+apps/erpnext/erpnext/accounts/doctype/gl_entry/gl_entry.py +78,{0} {1}: 'Profit and Loss' type account {2} not allowed in Opening Entry,"{0} {1}: ""Gewinn und Verlust"" Art Konto {2} nicht in Eröffnungs-Buchung erlaubt"
 DocType: Sales Order,Printing Details,Druckdetails
 DocType: Task,Closing Date,Abschlussdatum
 DocType: Sales Order Item,Produced Quantity,Produzierte Menge
@@ -4302,7 +4302,7 @@
 DocType: Sales Partner,Partner Type,Partnertyp
 DocType: Purchase Taxes and Charges,Actual,Tatsächlich
 DocType: Authorization Rule,Customerwise Discount,Kundenspezifischer Rabatt
-apps/erpnext/erpnext/config/projects.py +35,Timesheet for tasks.,Zeiterfassung für Aufgaben.
+apps/erpnext/erpnext/config/projects.py +35,Timesheet for tasks.,Zeitraport für Vorgänge.
 DocType: Purchase Invoice,Against Expense Account,Zu Aufwandskonto
 DocType: Production Order,Production Order,Fertigungsauftrag
 apps/erpnext/erpnext/stock/doctype/delivery_note/delivery_note.py +270,Installation Note {0} has already been submitted,Installationshinweis {0} wurde bereits übertragen
diff --git a/erpnext/translations/fr.csv b/erpnext/translations/fr.csv
index 4f0268a..bfbba6d 100644
--- a/erpnext/translations/fr.csv
+++ b/erpnext/translations/fr.csv
@@ -2183,7 +2183,7 @@
 apps/erpnext/erpnext/utilities/activation.py +117,Make Student,Créer un Étudiant
 apps/erpnext/erpnext/projects/doctype/project/project.py +190,You have been invited to collaborate on the project: {0},Vous avez été invité à collaborer sur le projet : {0}
 DocType: Leave Block List Date,Block Date,Bloquer la Date
-apps/erpnext/erpnext/templates/generators/student_admission.html +23,Apply Now,Appliquer Maintenant
+apps/erpnext/erpnext/templates/generators/student_admission.html +23,Apply Now,Postuler
 apps/erpnext/erpnext/stock/dashboard/item_dashboard_list.html +25,Actual Qty {0} / Waiting Qty {1},Qté Réelle {0} / Quantité en Attente {1}
 DocType: Sales Order,Not Delivered,Non Livré
 ,Bank Clearance Summary,Bilan des Compensations Bancaires
@@ -3938,7 +3938,7 @@
 DocType: Accounts Settings,Role that is allowed to submit transactions that exceed credit limits set.,Rôle qui est autorisé à soumettre des transactions qui dépassent les limites de crédit fixées.
 apps/erpnext/erpnext/selling/doctype/sales_order/sales_order.js +902,Select Items to Manufacture,Sélectionner les Articles à Fabriquer
 apps/erpnext/erpnext/accounts/page/pos/pos.js +929,"Master data syncing, it might take some time","Données de base en cours de synchronisation, cela peut prendre un certain temps"
-DocType: Item,Material Issue,Problème Matériel
+DocType: Item,Material Issue,Sortie de Matériel
 DocType: Hub Settings,Seller Description,Description du Vendeur
 DocType: Employee Education,Qualification,Qualification
 DocType: Item Price,Item Price,Prix de l'Article
diff --git a/erpnext/translations/pt-BR.csv b/erpnext/translations/pt-BR.csv
index 96b4636..a234d1a 100644
--- a/erpnext/translations/pt-BR.csv
+++ b/erpnext/translations/pt-BR.csv
@@ -64,6 +64,7 @@
 DocType: Payment Request,Payment Request,Pedido de Pagamento
 DocType: Asset,Value After Depreciation,Valor após Depreciação
 apps/erpnext/erpnext/stock/doctype/purchase_receipt/purchase_receipt_dashboard.py +17,Related,Relacionados
+DocType: Grading Scale,Grading Scale Name,Nome escala de avaliação
 apps/erpnext/erpnext/accounts/doctype/account/account.js +26,This is a root account and cannot be edited.,Esta é uma conta de root e não pode ser editada.
 apps/erpnext/erpnext/setup/doctype/authorization_rule/authorization_rule.py +38,Cannot set authorization on basis of Discount for {0},Não é possível definir a autorização com base em desconto para {0}
 DocType: Rename Tool,"Attach .csv file with two columns, one for the old name and one for the new name","Anexar arquivo .csv com duas colunas, uma para o nome antigo e um para o novo nome"
@@ -608,7 +609,7 @@
 DocType: HR Settings,Enter retirement age in years,Insira a idade da aposentadoria em anos
 apps/erpnext/erpnext/accounts/doctype/asset/asset.js +263,Target Warehouse,Armazén de Destino
 DocType: Item,Allow over delivery or receipt upto this percent,Permitir entrega ou recebimento adicional até este percentual
-DocType: Upload Attendance,Import Attendance,Importação de Atendimento
+DocType: Upload Attendance,Import Attendance,Importação de Ponto
 apps/erpnext/erpnext/public/js/pos/pos.html +115,All Item Groups,Todos os grupos de itens
 DocType: Process Payroll,Activity Log,Log de Atividade
 apps/erpnext/erpnext/config/setup.py +89,Automatically compose message on submission of transactions.,Compor automaticamente mensagem no envio de transações.
@@ -1087,6 +1088,7 @@
 DocType: SMS Center,Receiver List,Lista de recebedores
 apps/erpnext/erpnext/stock/report/supplier_wise_sales_analytics/supplier_wise_sales_analytics.py +46,Consumed Amount,Quantidade Consumida
 apps/erpnext/erpnext/accounts/report/cash_flow/cash_flow.py +98,Net Change in Cash,Variação Líquida em Dinheiro
+DocType: Assessment Plan,Grading Scale,Escala de avaliação
 apps/erpnext/erpnext/stock/doctype/item/item.py +402,Unit of Measure {0} has been entered more than once in Conversion Factor Table,Unidade de Medida {0} foi inserida mais de uma vez na Tabela de Conversão de Fator
 apps/erpnext/erpnext/manufacturing/doctype/production_order/production_order.py +601,Already completed,Já concluído
 apps/erpnext/erpnext/accounts/doctype/payment_request/payment_request.py +28,Payment Request already exists {0},Pedido de Pagamento já existe {0}
@@ -1298,6 +1300,7 @@
 apps/erpnext/erpnext/config/projects.py +25,Gantt chart of all tasks.,Gráfico de Gantt de todas as tarefas.
 DocType: Opportunity,Mins to First Response,Minutos para Primeira Resposta
 DocType: Pricing Rule,Margin Type,Tipo da Margem
+DocType: Course,Default Grading Scale,Escala de avaliação padrão
 DocType: Appraisal,For Employee Name,Para Nome do Colaborador
 DocType: C-Form Invoice Detail,Invoice No,Nota nº
 apps/erpnext/erpnext/accounts/doctype/payment_request/payment_request.py +342,Make Payment,Fazer Pagamento
@@ -1394,6 +1397,7 @@
 apps/erpnext/erpnext/maintenance/doctype/maintenance_schedule/maintenance_schedule.py +191,Serial No {0} is under warranty upto {1},Nº de Série {0} está na garantia até {1}
 apps/erpnext/erpnext/config/stock.py +158,Split Delivery Note into packages.,Dividir Guia de Remessa em pacotes.
 apps/erpnext/erpnext/hooks.py +87,Shipments,Entregas
+apps/erpnext/erpnext/accounts/doctype/account/account.py +191,Account balance ({0}) for {1} and stock value ({2}) for warehouse {3} must be same,O saldo da conta {1} ({0}) e o valor do estoque ({2}) para o armazém {3} devem ser os mesmos
 DocType: Payment Entry,Total Allocated Amount (Company Currency),Total alocado (moeda da empresa)
 DocType: Purchase Order Item,To be delivered to customer,Para ser entregue ao cliente
 DocType: BOM,Scrap Material Cost,Custo do Material Sucateado
@@ -1424,6 +1428,7 @@
 apps/erpnext/erpnext/maintenance/doctype/maintenance_schedule/maintenance_schedule.py +39,Please click on 'Generate Schedule' to get schedule,"Por favor, clique em ""Gerar Agenda"" para obter cronograma"
 DocType: Bin,Ordered Quantity,Quantidade Encomendada
 apps/erpnext/erpnext/public/js/setup_wizard.js +52,"e.g. ""Build tools for builders""","ex: ""Desenvolve ferramentas para construtores """
+DocType: Grading Scale,Grading Scale Intervals,Intervalos da escala de avaliação
 apps/erpnext/erpnext/accounts/doctype/gl_entry/gl_entry.py +125,{0} {1}: Accounting Entry for {2} can only be made in currency: {3},{0} {1}: Entradas contabeis para {2} só pode ser feito em moeda: {3}
 DocType: Production Order,In Process,Em Processo
 DocType: Authorization Rule,Itemwise Discount,Desconto relativo ao Item
@@ -2038,6 +2043,7 @@
 DocType: Purchase Invoice,Purchase Taxes and Charges,Impostos e Encargos sobre Compras
 ,Qty to Receive,Qtde para Receber
 DocType: Leave Block List,Leave Block List Allowed,Deixe Lista de Bloqueios admitidos
+DocType: Grading Scale Interval,Grading Scale Interval,Intervalo da escala de avaliação
 apps/erpnext/erpnext/hr/doctype/vehicle_log/vehicle_log.py +49,Expense Claim for Vehicle Log {0},Reembolso de Despesa para o Log do Veículo {0}
 DocType: Sales Partner,Retailer,Varejista
 apps/erpnext/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py +107,Credit To account must be a Balance Sheet account,Para crédito de conta deve ser uma conta de Balanço
@@ -3186,7 +3192,7 @@
 DocType: Employee,Reason for Leaving,Motivo da saída
 DocType: BOM Operation,Operating Cost(Company Currency),Custo operacional (moeda da empresa)
 DocType: Employee Loan Application,Rate of Interest,Taxa de Juros
-DocType: Expense Claim Detail,Sanctioned Amount,Quantidade sancionada
+DocType: Expense Claim Detail,Sanctioned Amount,Valor Sancionado
 DocType: GL Entry,Is Opening,É Abertura
 apps/erpnext/erpnext/accounts/doctype/journal_entry/journal_entry.py +196,Row {0}: Debit entry can not be linked with a {1},Linha {0}: Lançamento de débito não pode ser relacionado a uma {1}
 apps/erpnext/erpnext/accounts/doctype/account/account.py +234,Account {0} does not exist,A Conta {0} não existe
diff --git a/erpnext/translations/tr.csv b/erpnext/translations/tr.csv
index 5a0a0de..e7c6690 100644
--- a/erpnext/translations/tr.csv
+++ b/erpnext/translations/tr.csv
@@ -57,7 +57,7 @@
 DocType: Item Price,Multiple Item prices.,Çoklu Ürün fiyatları.
 DocType: Item Price,Multiple Item prices.,Çoklu Ürün fiyatları.
 ,Purchase Order Items To Be Received,AlınacakSatınalma Siparişi Kalemleri
-DocType: SMS Center,All Supplier Contact,Bütün Tedarikçi Kişiler
+DocType: SMS Center,All Supplier Contact,Bütün Tedarikçiler
 DocType: Support Settings,Support Settings,Destek Ayarları
 DocType: SMS Parameter,Parameter,Parametre
 DocType: SMS Parameter,Parameter,Parametre
@@ -868,7 +868,7 @@
 apps/erpnext/erpnext/accounts/doctype/budget/budget.py +54,Account {0} has been entered multiple times,Hesap {0} birden çok kez girilmiş
 DocType: Account,Expenses Included In Valuation,Değerlemeye dahil giderler
 DocType: Hub Settings,Seller City,Satıcı Şehri
-,Absent Student Report,Yok Öğrenci Raporu
+,Absent Student Report,Olmayan Öğrenci Raporu
 DocType: Email Digest,Next email will be sent on:,Sonraki e-posta gönderilecek:
 DocType: Offer Letter Term,Offer Letter Term,Mektubu Dönem Teklif
 apps/erpnext/erpnext/stock/doctype/item/item.py +619,Item has variants.,Öğe varyantları vardır.
@@ -2445,7 +2445,7 @@
 apps/erpnext/erpnext/selling/doctype/product_bundle/product_bundle.py +29,Child Item should not be a Product Bundle. Please remove item `{0}` and save,Çocuk Ürün Ürün Paketi olmamalıdır. öğeyi kaldırmak `{0}` ve saklayın
 apps/erpnext/erpnext/setup/setup_wizard/industry_type.py +12,Banking,Bankacılık
 apps/erpnext/erpnext/setup/setup_wizard/industry_type.py +12,Banking,Bankacılık
-apps/erpnext/erpnext/utilities/activation.py +106,Add Timesheets,Timesheets ekle
+apps/erpnext/erpnext/utilities/activation.py +106,Add Timesheets,Zaman Çizelgesi ekle
 DocType: Vehicle Service,Service Item,servis Öğe
 DocType: Bank Guarantee,Bank Guarantee,Banka garantisi
 DocType: Bank Guarantee,Bank Guarantee,Banka garantisi
@@ -3206,7 +3206,7 @@
 apps/erpnext/erpnext/stock/doctype/warehouse/warehouse.py +237,Warehouses with existing transaction can not be converted to group.,Mevcut işlem ile depolar grubuna dönüştürülemez.
 DocType: Assessment Result Tool,Result HTML,Sonuç HTML
 apps/erpnext/erpnext/stock/report/batch_item_expiry_status/batch_item_expiry_status.py +35,Expires On,Tarihinde sona eriyor
-apps/erpnext/erpnext/utilities/activation.py +115,Add Students,Öğrenciler ekle
+apps/erpnext/erpnext/utilities/activation.py +115,Add Students,Öğrenci ekle
 apps/erpnext/erpnext/controllers/recurring_document.py +169,Please select {0},Lütfen  {0} seçiniz
 DocType: C-Form,C-Form No,C-Form No
 DocType: C-Form,C-Form No,C-Form No
@@ -3677,8 +3677,8 @@
 apps/erpnext/erpnext/hr/doctype/expense_claim/expense_claim.js +120,Fill the form and save it,Formu doldurun ve kaydedin
 DocType: Production Planning Tool,Download a report containing all raw materials with their latest inventory status,En son stok durumu ile bütün ham maddeleri içeren bir rapor indir
 apps/erpnext/erpnext/setup/page/welcome_to_erpnext/welcome_to_erpnext.html +26,Community Forum,Forum
-apps/erpnext/erpnext/stock/page/stock_balance/stock_balance.js +51,Actual qty in stock,Gerçek adet
-apps/erpnext/erpnext/stock/page/stock_balance/stock_balance.js +51,Actual qty in stock,Gerçek adet
+apps/erpnext/erpnext/stock/page/stock_balance/stock_balance.js +51,Actual qty in stock,Stokdaki gerçek adet
+apps/erpnext/erpnext/stock/page/stock_balance/stock_balance.js +51,Actual qty in stock,Stoktaki Gerçek adet
 DocType: Homepage,"URL for ""All Products""",&quot;Tüm Ürünler&quot; URL
 DocType: Leave Application,Leave Balance Before Application,Uygulamadan Önce Kalan İzin
 DocType: SMS Center,Send SMS,SMS Gönder
@@ -3806,7 +3806,7 @@
 DocType: Purchase Invoice Item,Rate,Birim Fiyat
 apps/erpnext/erpnext/setup/setup_wizard/install_fixtures.py +66,Intern,Stajyer
 apps/erpnext/erpnext/setup/setup_wizard/install_fixtures.py +66,Intern,Stajyer
-apps/erpnext/erpnext/accounts/page/pos/pos.js +1480,Address Name,Adres adı
+apps/erpnext/erpnext/accounts/page/pos/pos.js +1480,Address Name,Adres Adı
 DocType: Stock Entry,From BOM,BOM Gönderen
 DocType: Assessment Code,Assessment Code,Değerlendirme Kodu
 apps/erpnext/erpnext/setup/setup_wizard/install_fixtures.py +35,Basic,Temel
diff --git a/erpnext/utilities/page/__init__.py b/erpnext/utilities/page/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/utilities/page/__init__.py
diff --git a/erpnext/utilities/page/leaderboard/__init__.py b/erpnext/utilities/page/leaderboard/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/utilities/page/leaderboard/__init__.py
diff --git a/erpnext/utilities/page/leaderboard/leaderboard.css b/erpnext/utilities/page/leaderboard/leaderboard.css
new file mode 100644
index 0000000..1f4fc51
--- /dev/null
+++ b/erpnext/utilities/page/leaderboard/leaderboard.css
@@ -0,0 +1,54 @@
+.list-filters {
+	overflow-y: hidden;
+	padding: 5px
+}
+
+.list-filter-item {
+	min-width: 150px;
+	float: left;
+	margin:5px;
+}
+
+.list-item_content{
+	flex: 1;
+	padding-right: 15px;
+	align-items: center;
+}
+
+.select-time, .select-doctype, .select-filter, .select-sort {
+	background: #f0f4f7;
+}
+
+.select-time:focus, .select-doctype:focus, .select-filter:focus, .select-sort:focus {
+	background: #f0f4f7;
+}
+
+.header-btn-base{
+	border:none;
+	outline:0;
+	vertical-align:middle;
+	overflow:hidden;
+	text-decoration:none;
+	color:inherit;
+	background-color:inherit;
+	cursor:pointer;
+	white-space:nowrap;
+}
+
+.header-btn-grey,.header-btn-grey:hover{
+	color:#000!important;
+	background-color:#bbb!important
+}
+
+.header-btn-round{
+	border-radius:4px
+}
+
+.item-title-bold{
+	font-weight: bold;
+}
+
+/*
+.header-btn-base:hover {
+	box-shadow:0 8px 16px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19)
+}*/
diff --git a/erpnext/utilities/page/leaderboard/leaderboard.html b/erpnext/utilities/page/leaderboard/leaderboard.html
new file mode 100644
index 0000000..8df2247
--- /dev/null
+++ b/erpnext/utilities/page/leaderboard/leaderboard.html
@@ -0,0 +1,23 @@
+<div class="frappe-list-area">
+	<div class="frappe-list">
+		<div class="list-filters">
+			<div class="list-filter-item">
+				<select class="form-control select-doctype">
+					{% for (var i=0; i < doctypes.length; i++) { %}
+						<option value="{{doctypes[i]}}">{{ doctypes[i] }}</option>
+					{% } %}
+				</select>
+			</div>
+
+			<div class="list-filter-item">
+				<select class="form-control select-time">
+					{% for (var i=0; i < timelines.length; i++) { %}
+						<option value="{{timelines[i]}}">{{ timelines[i] }}</option>
+					{% } %}
+				</select>
+			</div>
+		</div>
+		<div class="leaderboard">
+		</div>
+	</div>
+</div>
\ No newline at end of file
diff --git a/erpnext/utilities/page/leaderboard/leaderboard.js b/erpnext/utilities/page/leaderboard/leaderboard.js
new file mode 100644
index 0000000..eed9bd1
--- /dev/null
+++ b/erpnext/utilities/page/leaderboard/leaderboard.js
@@ -0,0 +1,248 @@
+
+frappe.Leaderboard = Class.extend({
+
+	init: function (parent) {
+		this.page = frappe.ui.make_app_page({
+			parent: parent,
+			title: "Leaderboard",
+			single_column: true
+		});
+
+		// const list of doctypes
+		this.doctypes = ["Customer", "Item", "Supplier", "Sales Partner"];
+		this.timelines = ["Week", "Month", "Quarter", "Year"];
+		this.desc_fields = ["total_amount", "total_request", "annual_billing", "commission_rate"];
+		this.filters = {
+			"Customer": this.map_array(["title", "total_amount", "total_item_purchased", "modified"]),
+			"Item": this.map_array(["title", "total_request", "total_purchase", "avg_price", "modified"]),
+			"Supplier": this.map_array(["title", "annual_billing", "total_unpaid", "modified"]),
+			"Sales Partner": this.map_array(["title", "commission_rate", "target_qty", "target_amount", "modified"]),
+		};
+
+		// for saving current selected filters
+		const _selected_filter = this.filters[this.doctypes[0]];
+		this.options = {
+			selected_doctype: this.doctypes[0],
+			selected_filter: _selected_filter,
+			selected_filter_item: _selected_filter[1],
+			selected_timeline: this.timelines[0],
+		};
+
+		this.message = null;
+		this.make();
+	},
+
+
+
+	make: function () {
+		var me = this;
+
+		var $leaderboard = $(frappe.render_template("leaderboard", this)).appendTo(this.page.main);
+
+		// events
+		$leaderboard.find(".select-doctype")
+			.on("change", function () {
+				me.options.selected_doctype = this.value;
+				me.options.selected_filter = me.filters[this.value];
+				me.options.selected_filter_item = me.filters[this.value][1];
+				me.make_request($leaderboard);
+			});
+
+		$leaderboard.find(".select-time")
+			.on("change", function () {
+				me.options.selected_timeline = this.value;
+				me.make_request($leaderboard);
+			});
+
+		// now get leaderboard
+		me.make_request($leaderboard);
+	},
+
+	make_request: function ($leaderboard) {
+		var me = this;
+
+		frappe.model.with_doctype(me.options.selected_doctype, function () {
+			me.get_leaderboard(me.get_leaderboard_data, $leaderboard);
+		});
+	},
+
+	get_leaderboard: function (notify, $leaderboard) {
+		var me = this;
+
+		frappe.call({
+			method: "erpnext.utilities.page.leaderboard.leaderboard.get_leaderboard",
+			args: {
+				obj: JSON.stringify(me.options)
+			},
+			callback: function (res) {
+				console.log(res)
+				notify(me, res, $leaderboard);
+			}
+		});
+	},
+
+	get_leaderboard_data: function (me, res, $leaderboard) {
+		if (res && res.message) {
+			me.message = null;
+			$leaderboard.find(".leaderboard").html(me.render_list_view(res.message));
+
+			// event to change arrow
+			$leaderboard.find(".leaderboard-item")
+				.click(function () {
+					const field = this.innerText.trim().toLowerCase().replace(new RegExp(" ", "g"), "_");
+					if (field && field !== "title") {
+						const _selected_filter_item = me.options.selected_filter
+							.filter(i => i.field === field);
+						if (_selected_filter_item.length > 0) {
+							me.options.selected_filter_item = _selected_filter_item[0];
+							me.options.selected_filter_item.value = _selected_filter_item[0].value === "ASC" ? "DESC" : "ASC";
+
+							const new_class_name = `icon-${me.options.selected_filter_item.field} fa fa-chevron-${me.options.selected_filter_item.value === "ASC" ? "up" : "down"}`;
+							$leaderboard.find(`.icon-${me.options.selected_filter_item.field}`)
+								.attr("class", new_class_name);
+
+							// now make request to web
+							me.make_request($leaderboard);
+						}
+					}
+				});
+		} else {
+			me.message = "No items found.";
+			$leaderboard.find(".leaderboard").html(me.render_list_view());
+		}
+	},
+
+	render_list_view: function (items = []) {
+		var me = this;
+
+		var html =
+			`${me.render_message()}
+			 <div class="result" style="${me.message ? "display:none;" : ""}">
+			 	${me.render_result(items)}
+			 </div>`;
+
+		return $(html);
+	},
+
+	render_result: function (items) {
+		var me = this;
+
+		var html =
+			`${me.render_list_header()}
+			 ${me.render_list_result(items)}`;
+
+		return html;
+	},
+
+	render_list_header: function () {
+		var me = this;
+		const _selected_filter = me.options.selected_filter
+			.map(i => me.map_field(i.field)).slice(1);
+
+		const html =
+			`<div class="list-headers">
+				<div class="list-item list-item--head" data-list-renderer="${"List"}">
+					${
+					me.options.selected_filter
+						.map(filter => {
+							const col = me.map_field(filter.field);
+							return (
+								`<div class="leaderboard-item list-item_content ellipsis text-muted list-item__content--flex-2
+									header-btn-base ${(col !== "Title" && col !== "Modified") ? "hidden-xs" : ""}
+									${(col && _selected_filter.indexOf(col) !== -1) ? "text-right" : ""}">
+									<span class="list-col-title ellipsis">
+										${col}
+										<i class="${"icon-" + filter.field} fa ${filter.value === "ASC" ? "fa-chevron-up" : "fa-chevron-down"}"
+											style="${col === "Title" ? "display:none;" : ""}"></i>
+									</span>
+								</div>`);
+						}).join("")
+					}
+				</div>
+			</div>`;
+		return html;
+	},
+
+	render_list_result: function (items) {
+		var me = this;
+
+		let _html = items.map((item) => {
+			const $value = $(me.get_item_html(item));
+			const $item_container = $(`<div class="list-item-container">`).append($value);
+			return $item_container[0].outerHTML;
+		}).join("");
+
+		let html =
+			`<div class="result-list">
+				<div class="list-items">
+					${_html}
+				</div>
+			</div>`;
+
+		return html;
+	},
+
+	render_message: function () {
+		var me = this;
+
+		let html =
+			`<div class="no-result text-center" style="${me.message ? "" : "display:none;"}">   
+				<div class="msg-box no-border">
+					<p>No Item found</p>
+				</div>  
+			</div>`;
+
+		return html;
+	},
+
+	get_item_html: function (item) {
+		var me = this;
+		const _selected_filter = me.options.selected_filter
+			.map(i => me.map_field(i.field)).slice(1);
+
+		const html =
+			`<div class="list-item">
+				${
+			me.options.selected_filter
+				.map(filter => {
+					const col = me.map_field(filter.field);
+					let val = item[filter.field];
+					if (col === "Modified") {
+						val = comment_when(val);
+					}
+					return (
+						`<div class="list-item_content ellipsis list-item__content--flex-2
+							${(col !== "Title" && col !== "Modified") ? "hidden-xs" : ""}
+							${(col && _selected_filter.indexOf(col) !== -1) ? "text-right" : ""}">
+							${
+								col === "Title"	
+									? `<a class="grey list-id ellipsis" href="${item["href"]}"> ${val} </a>` 
+									: `<span class="text-muted ellipsis"> ${val}</span>`
+							}
+						</div>`);
+					}).join("")
+				}
+			</div>`;
+
+		return html;
+	},
+
+	map_field: function (field) {
+		return field.replace(new RegExp("_", "g"), " ").replace(/(^|\s)[a-z]/g, f => f.toUpperCase())
+	},
+
+	map_array: function (_array) {
+		var me = this;
+		return _array.map((str) => {
+			let value = me.desc_fields.indexOf(str) > -1 ? "DESC" : "ASC";
+			return {
+				field: str,
+				value: value
+			};
+		});
+	}
+});
+
+frappe.pages["leaderboard"].on_page_load = function (wrapper) {
+	frappe.leaderboard = new frappe.Leaderboard(wrapper);
+}
diff --git a/erpnext/utilities/page/leaderboard/leaderboard.json b/erpnext/utilities/page/leaderboard/leaderboard.json
new file mode 100644
index 0000000..8cba765
--- /dev/null
+++ b/erpnext/utilities/page/leaderboard/leaderboard.json
@@ -0,0 +1,19 @@
+{
+ "content": null, 
+ "creation": "2017-06-06 02:54:24.785360", 
+ "docstatus": 0, 
+ "doctype": "Page", 
+ "idx": 0, 
+ "modified": "2017-06-06 02:54:27.504048", 
+ "modified_by": "Administrator", 
+ "module": "Utilities", 
+ "name": "leaderboard", 
+ "owner": "Administrator", 
+ "page_name": "leaderboard", 
+ "roles": [], 
+ "script": null, 
+ "standard": "Yes", 
+ "style": null, 
+ "system_page": 0, 
+ "title": "LeaderBoard"
+}
\ No newline at end of file
diff --git a/erpnext/utilities/page/leaderboard/leaderboard.py b/erpnext/utilities/page/leaderboard/leaderboard.py
new file mode 100644
index 0000000..0a75410
--- /dev/null
+++ b/erpnext/utilities/page/leaderboard/leaderboard.py
@@ -0,0 +1,182 @@
+# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and Contributors
+# MIT License. See license.txt
+
+from __future__ import unicode_literals, print_function
+import frappe
+import json
+from operator import itemgetter
+from frappe.utils import add_to_date
+from erpnext.accounts.party import get_dashboard_info
+from erpnext.accounts.utils import get_currency_precision
+
+@frappe.whitelist()
+def get_leaderboard(obj):
+	"""return top 10 items for that doctype based on conditions"""
+	obj = frappe._dict(json.loads(obj))
+
+	doctype = obj.selected_doctype
+	timeline = obj.selected_timeline
+	filters = {"modified":(">=", get_date_from_string(timeline))}
+	items = []
+	if doctype == "Customer":
+		items = get_all_customers(doctype, filters, [])
+	elif  doctype == "Item":
+		items = get_all_items(doctype, filters, [])
+	elif  doctype == "Supplier":
+		items = get_all_suppliers(doctype, filters, [])
+	elif  doctype == "Sales Partner":
+		items = get_all_sales_partner(doctype, filters, [])
+	
+	if len(items) > 0:
+		return filter_leaderboard_items(obj, items)
+	return []
+
+
+# filters start
+def filter_leaderboard_items(obj, items):
+	"""return items based on seleted filters"""
+	
+	reverse = False if obj.selected_filter_item and obj.selected_filter_item["value"] == "ASC" else True
+	# key : (x[field1], x[field2]) while sorting on 2 values
+	filtered_list = []
+	selected_field = obj.selected_filter_item and obj.selected_filter_item["field"]
+	if selected_field:
+		filtered_list  = sorted(items, key=itemgetter(selected_field), reverse=reverse)
+		value = items[0].get(selected_field)
+
+		allowed = isinstance(value, unicode) or isinstance(value, str)
+		# now sort by length
+		if allowed and '$' in value:
+			filtered_list.sort(key= lambda x: len(x[selected_field]), reverse=reverse)
+	
+	# return only 10 items'
+	return filtered_list[:10]
+
+# filters end
+
+
+# utils start
+def destructure_tuple_of_tuples(tup_of_tup):
+	"""return tuple(tuples) as list"""
+	return [y for x in tup_of_tup for y in x]
+
+def get_date_from_string(seleted_timeline):
+	"""return string for ex:this week as date:string"""
+	days = months = years = 0
+	if "month" == seleted_timeline.lower():
+		months = -1
+	elif "quarter" == seleted_timeline.lower():
+		months = -3
+	elif "year" == seleted_timeline.lower():
+		years = -1
+	else:
+		days = -7
+
+	return add_to_date(None, years=years, months=months, days=days, as_string=True, as_datetime=True)
+
+def get_filter_list(selected_filter):
+	"""return list of keys"""
+	return map((lambda y : y["field"]), filter(lambda x : not (x["field"] == "title" or x["field"] == "modified"), selected_filter))
+
+def get_avg(items):
+	"""return avg of list items"""
+	length = len(items)
+	if length > 0:
+		return sum(items) / length
+	return 0
+
+def get_formatted_value(value, add_symbol=True):
+	"""return formatted value"""
+	currency_precision = get_currency_precision() or 2
+	if not add_symbol:
+		return '{:.{pre}f}'.format(value, pre=currency_precision)
+	
+	company = frappe.db.get_default("company") or frappe.get_all("Company")[0].name
+	currency = frappe.get_doc("Company", company).default_currency or frappe.boot.sysdefaults.currency;
+	currency_symbol = frappe.db.get_value("Currency", currency, "symbol")
+	return  currency_symbol + ' ' + '{:.{pre}f}'.format(value, pre=currency_precision)
+
+# utils end
+
+
+# get data
+def get_all_customers(doctype, filters, items, start=0, limit=100):
+	"""return all customers"""
+
+	x = frappe.get_list(doctype, fields=["name", "modified"], filters=filters, limit_start=start, limit_page_length=limit)
+	
+	for val in x:
+		y = dict(frappe.db.sql('''select name, grand_total from `tabSales Invoice` where customer = %s''', (val.name)))
+		invoice_list = y.keys()
+		if len(invoice_list) > 0:
+			item_count = frappe.db.sql('''select count(name) from `tabSales Invoice Item` where parent in (%s)''' % ", ".join(
+				['%s'] * len(invoice_list)), tuple(invoice_list))
+			items.append({"title": val.name,
+				"total_amount": get_formatted_value(sum(y.values())),
+				"href":"#Form/Customer/" + val.name,
+				"total_item_purchased": sum(destructure_tuple_of_tuples(item_count)),
+				"modified": str(val.modified)})
+	if len(x) > 99:
+		start = start + 1
+		return get_all_customers(doctype, filters, items, start=start)
+	else:
+		return items
+
+def get_all_items(doctype, filters, items, start=0, limit=100):
+	"""return all items"""
+
+	x = frappe.get_list(doctype, fields=["name", "modified"], filters=filters, limit_start=start, limit_page_length=limit)
+	for val in x:
+		data = frappe.db.sql('''select item_code from `tabMaterial Request Item` where item_code = %s''', (val.name), as_list=1)
+		requests = destructure_tuple_of_tuples(data)
+		data = frappe.db.sql('''select price_list_rate from `tabItem Price` where item_code = %s''', (val.name), as_list=1)
+		avg_price = get_avg(destructure_tuple_of_tuples(data))
+		data = frappe.db.sql('''select item_code from `tabPurchase Invoice Item` where item_code = %s''', (val.name), as_list=1)
+		purchases = destructure_tuple_of_tuples(data)
+		
+		items.append({"title": val.name,
+			"total_request":len(requests),
+			"total_purchase": len(purchases), "href":"#Form/Item/" + val.name,
+			"avg_price": get_formatted_value(avg_price),
+			"modified": val.modified})
+	if len(x) > 99:
+		return get_all_items(doctype, filters, items, start=start)
+	else:
+		return items
+
+def get_all_suppliers(doctype, filters, items, start=0, limit=100):
+	"""return all suppliers"""
+
+	x = frappe.get_list(doctype, fields=["name", "modified"], filters=filters, limit_start=start, limit_page_length=limit)
+	
+	for val in x:
+		info = get_dashboard_info(doctype, val.name)
+		items.append({"title": val.name,
+		"annual_billing":  get_formatted_value(info["billing_this_year"]),
+		"total_unpaid": get_formatted_value(abs(info["total_unpaid"])),
+		"href":"#Form/Supplier/" + val.name,
+		"modified": val.modified})
+
+	if len(x) > 99:
+		return get_all_suppliers(doctype, filters, items, start=start)
+	else:
+		return items
+
+def get_all_sales_partner(doctype, filters, items, start=0, limit=100):
+	"""return all sales partner"""
+	
+	x = frappe.get_list(doctype, fields=["name", "commission_rate", "modified"], filters=filters, limit_start=start, limit_page_length=limit)
+	for val in x:
+		y = frappe.db.sql('''select target_qty, target_amount from `tabTarget Detail` where parent = %s''', (val.name), as_dict=1)
+		target_qty = sum([f["target_qty"] for f in y])
+		target_amount = sum([f["target_amount"] for f in y])
+		items.append({"title": val.name,
+			"commission_rate": get_formatted_value(val.commission_rate, False),
+			"target_qty": target_qty,
+			"target_amount": get_formatted_value(target_amount),
+			"href":"#Form/Sales Partner/" + val.name,
+			"modified": val.modified})
+	if len(x) > 99:
+		return get_all_sales_partner(doctype, filters, items, start=start)
+	else:
+		return items
\ No newline at end of file
diff --git a/erpnext/utilities/page/leaderboard/leaderboard_main_head.html b/erpnext/utilities/page/leaderboard/leaderboard_main_head.html
new file mode 100644
index 0000000..257d4ed
--- /dev/null
+++ b/erpnext/utilities/page/leaderboard/leaderboard_main_head.html
@@ -0,0 +1,8 @@
+<div class="list-item__content ellipsis text-muted list-item__content--flex-2
+	{% if(col !== "Title" && col !== "Modified") { %}
+		hidden-xs
+	{% } %}
+	{% if(col && selected_filter.indexOf(col) !== -1) { %}text-right{% } %}">
+	
+	<span class="list-col-title ellipsis">{{col}}</span>
+</div>
\ No newline at end of file
diff --git a/erpnext/utilities/page/leaderboard/leaderboard_row_head.html b/erpnext/utilities/page/leaderboard/leaderboard_row_head.html
new file mode 100644
index 0000000..5a4e1dd
--- /dev/null
+++ b/erpnext/utilities/page/leaderboard/leaderboard_row_head.html
@@ -0,0 +1,3 @@
+<div class="list-item list-item--head" data-list-renderer="{{__(" List ")}}">
+	{{ main }}
+</div>
\ No newline at end of file