diff --git a/.travis.yml b/.travis.yml
index 344637a..c3132c7 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -14,6 +14,8 @@
   - sudo apt-get update
   - sudo apt-get purge -y mysql-common
   - sudo apt-get install mariadb-server mariadb-common libmariadbclient-dev
+  - ./ci/fix-mariadb.sh
+
   - wget http://downloads.sourceforge.net/project/wkhtmltopdf/0.12.1/wkhtmltox-0.12.1_linux-precise-amd64.deb
   - sudo dpkg -i wkhtmltox-0.12.1_linux-precise-amd64.deb
   - CFLAGS=-O0 pip install git+https://github.com/frappe/frappe.git@v5.0
diff --git a/README.md b/README.md
index ec7605e..b9d5a6e 100644
--- a/README.md
+++ b/README.md
@@ -4,7 +4,7 @@
 
 Includes Accounting, Inventory, CRM, Sales, Purchase, Projects, HRMS. Built on Python / MariaDB.
 
-ERPNext is built on [frappe](https://github.com/frappe/frappe)
+ERPNext is built on [frappe](https://github.com/frappe/frappe) Python Framework.
 
 - [User Guide](http://erpnext.org/user-guide.html)
 - [Getting Help](http://erpnext.org/getting-help.html)
@@ -21,7 +21,7 @@
 
 1. go to "/login"
 1. Administrator user name: "Administrator"
-1. Administrator passowrd "admin"
+1. Administrator password: "admin"
 
 ### Download and Install
 
diff --git a/ci/fix-mariadb.sh b/ci/fix-mariadb.sh
new file mode 100755
index 0000000..886ec5e
--- /dev/null
+++ b/ci/fix-mariadb.sh
@@ -0,0 +1,11 @@
+#!/bin/bash
+
+# stolen from http://cgit.drupalcode.org/octopus/commit/?id=db4f837
+includedir=`mysql_config --variable=pkgincludedir`
+thiscwd=`pwd`
+_THIS_DB_VERSION=`mysql -V 2>&1 | tr -d "\n" | cut -d" " -f6 | awk '{ print $1}' | cut -d"-" -f1 | awk '{ print $1}' | sed "s/[\,']//g"`
+if [ "$_THIS_DB_VERSION" = "5.5.40" ] && [ ! -e "$includedir-$_THIS_DB_VERSION-fixed.log" ] ; then
+  cd $includedir
+  sudo patch -p1 < $thiscwd/ci/my_config.h.patch &> /dev/null
+  sudo touch $includedir-$_THIS_DB_VERSION-fixed.log
+fi
diff --git a/ci/my_config.h.patch b/ci/my_config.h.patch
new file mode 100644
index 0000000..5247b5b
--- /dev/null
+++ b/ci/my_config.h.patch
@@ -0,0 +1,22 @@
+diff -burp a/my_config.h b/my_config.h
+--- a/my_config.h	2014-10-09 19:32:46.000000000 -0400
++++ b/my_config.h	2014-10-09 19:35:12.000000000 -0400
+@@ -641,17 +641,4 @@
+ #define SIZEOF_TIME_T 8
+ /* #undef TIME_T_UNSIGNED */
+
+-/*
+-  stat structure (from <sys/stat.h>) is conditionally defined
+-  to have different layout and size depending on the defined macros.
+-  The correct macro is defined in my_config.h, which means it MUST be
+-  included first (or at least before <features.h> - so, practically,
+-  before including any system headers).
+-
+-  __GLIBC__ is defined in <features.h>
+-*/
+-#ifdef __GLIBC__
+-#error <my_config.h> MUST be included first!
+-#endif
+-
+ #endif
+
diff --git a/erpnext/accounts/doctype/fiscal_year/fiscal_year.py b/erpnext/accounts/doctype/fiscal_year/fiscal_year.py
index cb36581..4549498 100644
--- a/erpnext/accounts/doctype/fiscal_year/fiscal_year.py
+++ b/erpnext/accounts/doctype/fiscal_year/fiscal_year.py
@@ -4,7 +4,8 @@
 from __future__ import unicode_literals
 import frappe
 from frappe import msgprint, _
-from frappe.utils import getdate
+from frappe.utils import getdate, add_days, add_years
+from datetime import timedelta
 
 from frappe.model.document import Document
 
@@ -34,11 +35,32 @@
 
 		if (getdate(self.year_end_date) - getdate(self.year_start_date)).days > 366:
 			frappe.throw(_("Fiscal Year Start Date and Fiscal Year End Date cannot be more than a year apart."))
+	
+		check_duplicate_fiscal_year(self)
 
-		year_start_end_dates = frappe.db.sql("""select name, year_start_date, year_end_date
-			from `tabFiscal Year` where name!=%s""", (self.name))
-
-		for fiscal_year, ysd, yed in year_start_end_dates:
-			if (getdate(self.year_start_date) == ysd and getdate(self.year_end_date) == yed) \
-				and (not frappe.flags.in_test):
+@frappe.whitelist()
+def check_duplicate_fiscal_year(doc):
+	year_start_end_dates = frappe.db.sql("""select name, year_start_date, year_end_date from `tabFiscal Year` where name!=%s""", (doc.name))
+	for fiscal_year, ysd, yed in year_start_end_dates:
+		if (getdate(doc.year_start_date) == ysd and getdate(doc.year_end_date) == yed) and (not frappe.flags.in_test):
 					frappe.throw(_("Fiscal Year Start Date and Fiscal Year End Date are already set in Fiscal Year {0}").format(fiscal_year))
+
+
+@frappe.whitelist()
+def auto_create_fiscal_year():
+	for d in frappe.db.sql("""select name from `tabFiscal Year` where year_end_date =(current_date + 3)"""):
+		try:
+			current_fy = frappe.get_doc("Fiscal Year", d[0])
+
+			new_fy = frappe.copy_doc(current_fy)
+
+			new_fy.year_start_date = add_days(current_fy.year_end_date, 1)
+			new_fy.year_end_date = add_years(current_fy.year_end_date, 1)
+
+			start_year = new_fy.year_start_date[:4]
+			end_year = new_fy.year_end_date[:4]
+			new_fy.year = start_year if start_year==end_year else (start_year + "-" + end_year)
+			
+			new_fy.insert()
+		except:
+			pass
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/gl_entry/gl_entry.py b/erpnext/accounts/doctype/gl_entry/gl_entry.py
index 41a88c1..787d1db 100644
--- a/erpnext/accounts/doctype/gl_entry/gl_entry.py
+++ b/erpnext/accounts/doctype/gl_entry/gl_entry.py
@@ -129,6 +129,11 @@
 			from `tabGL Entry` where voucher_type = 'Journal Voucher' and voucher_no = %s
 			and account = %s and party_type=%s and party=%s and ifnull(against_voucher, '') = ''""",
 			(against_voucher, account, party_type, party))[0][0])
+
+		if not against_voucher_amount:
+			frappe.throw(_("Against Journal Voucher {0} is already adjusted against some other voucher")
+				.format(against_voucher))
+
 		bal = against_voucher_amount + bal
 		if against_voucher_amount < 0:
 			bal = -bal
diff --git a/erpnext/accounts/doctype/journal_voucher/journal_voucher.py b/erpnext/accounts/doctype/journal_voucher/journal_voucher.py
index 2a9f3cb..4017de5 100644
--- a/erpnext/accounts/doctype/journal_voucher/journal_voucher.py
+++ b/erpnext/accounts/doctype/journal_voucher/journal_voucher.py
@@ -3,7 +3,7 @@
 
 from __future__ import unicode_literals
 import frappe
-from frappe.utils import cstr, flt, fmt_money, formatdate, getdate, money_in_words
+from frappe.utils import cstr, flt, fmt_money, formatdate, getdate
 from frappe import msgprint, _, scrub
 from erpnext.setup.utils import get_company_currency
 from erpnext.controllers.accounts_controller import AccountsController
@@ -106,25 +106,35 @@
 
 	def validate_entries_for_advance(self):
 		for d in self.get('entries'):
-			if not d.is_advance and not d.against_voucher and \
-					not d.against_invoice and not d.against_jv:
-
+			if not (d.against_voucher and d.against_invoice and d.against_jv):
 				if (d.party_type == 'Customer' and flt(d.credit) > 0) or \
 						(d.party_type == 'Supplier' and flt(d.debit) > 0):
-					msgprint(_("Row {0}: Please check 'Is Advance' against Account {1} if this is an advance entry.").format(d.row, d.account))
+					if not d.is_advance:
+						msgprint(_("Row {0}: Please check 'Is Advance' against Account {1} if this is an advance entry.").format(d.idx, d.account))
+					elif (d.against_sales_order or d.against_purchase_order) and d.is_advance != "Yes":
+						frappe.throw(_("Row {0}: Payment against Sales/Purchase Order should always be marked as advance").format(d.idx))
 
 	def validate_against_jv(self):
 		for d in self.get('entries'):
 			if d.against_jv:
+				account_root_type = frappe.db.get_value("Account", d.account, "root_type")
+				if account_root_type == "Asset" and flt(d.debit) > 0:
+					frappe.throw(_("For {0}, only credit entries can be linked against another debit entry")
+						.format(d.account))
+				elif account_root_type == "Liability" and flt(d.credit) > 0:
+					frappe.throw(_("For {0}, only debit entries can be linked against another credit entry")
+						.format(d.account))
+
 				if d.against_jv == self.name:
 					frappe.throw(_("You can not enter current voucher in 'Against Journal Voucher' column"))
 
 				against_entries = frappe.db.sql("""select * from `tabJournal Voucher Detail`
 					where account = %s and docstatus = 1 and parent = %s
-					and ifnull(against_jv, '') = ''""", (d.account, d.against_jv), as_dict=True)
+					and ifnull(against_jv, '') = '' and ifnull(against_invoice, '') = ''
+					and ifnull(against_voucher, '') = ''""", (d.account, d.against_jv), as_dict=True)
 
 				if not against_entries:
-					frappe.throw(_("Journal Voucher {0} does not have account {1} or already matched")
+					frappe.throw(_("Journal Voucher {0} does not have account {1} or already matched against other voucher")
 						.format(d.against_jv, d.account))
 				else:
 					dr_or_cr = "debit" if d.credit > 0 else "credit"
@@ -204,7 +214,7 @@
 	def validate_against_order_fields(self, doctype, payment_against_voucher):
 		for voucher_no, payment_list in payment_against_voucher.items():
 			voucher_properties = frappe.db.get_value(doctype, voucher_no,
-				["docstatus", "per_billed", "advance_paid", "grand_total"])
+				["docstatus", "per_billed", "status", "advance_paid", "grand_total"])
 
 			if voucher_properties[0] != 1:
 				frappe.throw(_("{0} {1} is not submitted").format(doctype, voucher_no))
@@ -212,7 +222,10 @@
 			if flt(voucher_properties[1]) >= 100:
 				frappe.throw(_("{0} {1} is fully billed").format(doctype, voucher_no))
 
-			if flt(voucher_properties[3]) < flt(voucher_properties[2]) + flt(sum(payment_list)):
+			if cstr(voucher_properties[2]) == "Stopped":
+				frappe.throw(_("{0} {1} is stopped").format(doctype, voucher_no))
+
+			if flt(voucher_properties[4]) < flt(voucher_properties[3]) + flt(sum(payment_list)):
 				frappe.throw(_("Advance paid against {0} {1} cannot be greater \
 					than Grand Total {2}").format(doctype, voucher_no, voucher_properties[3]))
 
@@ -295,15 +308,21 @@
 				self.aging_date = self.posting_date
 
 	def set_print_format_fields(self):
-		currency = get_company_currency(self.company)
 		for d in self.get('entries'):
 			if d.party_type and d.party:
 				if not self.pay_to_recd_from:
 					self.pay_to_recd_from = frappe.db.get_value(d.party_type, d.party,
 						"customer_name" if d.party_type=="Customer" else "supplier_name")
+
+					self.set_total_amount(d.debit or d.credit)
 			elif frappe.db.get_value("Account", d.account, "account_type") in ["Bank", "Cash"]:
-				self.total_amount = fmt_money(d.debit or d.credit, currency=currency)
-				self.total_amount_in_words = money_in_words(self.total_amount, currency)
+				self.set_total_amount(d.debit or d.credit)
+
+	def set_total_amount(self, amt):
+		company_currency = get_company_currency(self.company)
+		self.total_amount = fmt_money(amt, currency=company_currency)
+		from frappe.utils import money_in_words
+		self.total_amount_in_words = money_in_words(amt, company_currency)
 
 	def make_gl_entries(self, cancel=0, adv_adj=0):
 		from erpnext.accounts.general_ledger import make_gl_entries
@@ -481,9 +500,9 @@
 	return frappe.db.sql("""select jv.name, jv.posting_date, jv.user_remark
 		from `tabJournal Voucher` jv, `tabJournal Voucher Detail` jv_detail
 		where jv_detail.parent = jv.name and jv_detail.account = %s and jv_detail.party = %s
-		and jv.docstatus = 1 and jv.%s like %s order by jv.name desc limit %s, %s""" %
-		("%s", searchfield, "%s", "%s", "%s"),
-		(filters["account"], filters["party"], "%%%s%%" % txt, start, page_len))
+		and (ifnull(jvd.against_invoice, '') = '' and ifnull(jvd.against_voucher, '') = '' and ifnull(jvd.against_jv, '') = '' )
+		and jv.docstatus = 1 and jv.{0} like %s order by jv.name desc limit %s, %s""".format(searchfield),
+		(filters["account"], filters["party"], "%{0}%".format(txt), start, page_len))
 
 @frappe.whitelist()
 def get_outstanding(args):
diff --git a/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.js b/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.js
index f886262..0d786bf 100644
--- a/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.js
+++ b/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.js
@@ -43,10 +43,6 @@
 				};
 			}
 		});
-
-		var help_content = '<i class="icon-hand-right"></i> ' + __("Note") + ':<br>'+
-			'<ul>' + __("If you are unable to match the exact amount, then amend your Journal Voucher and split rows such that payment amount match the invoice amount.") + '</ul>';
-		this.frm.set_value("reconcile_help", help_content);
 	},
 
 	party: function() {
diff --git a/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.json b/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.json
index 7adf9d5..d92c26a 100644
--- a/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.json
+++ b/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.json
@@ -1,172 +1,165 @@
 {
- "allow_copy": 1, 
- "creation": "2014-07-09 12:04:51.681583", 
- "custom": 0, 
- "docstatus": 0, 
- "doctype": "DocType", 
- "document_type": "", 
+ "allow_copy": 1,
+ "creation": "2014-07-09 12:04:51.681583",
+ "custom": 0,
+ "docstatus": 0,
+ "doctype": "DocType",
+ "document_type": "",
  "fields": [
   {
-   "fieldname": "company", 
-   "fieldtype": "Link", 
-   "label": "Company", 
-   "options": "Company", 
-   "permlevel": 0, 
+   "fieldname": "company",
+   "fieldtype": "Link",
+   "label": "Company",
+   "options": "Company",
+   "permlevel": 0,
    "reqd": 1
-  }, 
+  },
   {
-   "fieldname": "party_type", 
-   "fieldtype": "Link", 
-   "hidden": 0, 
-   "in_list_view": 0, 
-   "label": "Party Type", 
-   "options": "DocType", 
-   "permlevel": 0, 
-   "read_only": 0, 
+   "fieldname": "party_type",
+   "fieldtype": "Link",
+   "hidden": 0,
+   "in_list_view": 0,
+   "label": "Party Type",
+   "options": "DocType",
+   "permlevel": 0,
+   "read_only": 0,
    "reqd": 1
-  }, 
+  },
   {
-   "depends_on": "", 
-   "fieldname": "party", 
-   "fieldtype": "Dynamic Link", 
-   "in_list_view": 0, 
-   "label": "Party", 
-   "options": "party_type", 
-   "permlevel": 0, 
-   "reqd": 1, 
+   "depends_on": "",
+   "fieldname": "party",
+   "fieldtype": "Dynamic Link",
+   "in_list_view": 0,
+   "label": "Party",
+   "options": "party_type",
+   "permlevel": 0,
+   "reqd": 1,
    "search_index": 0
-  }, 
+  },
   {
-   "fieldname": "receivable_payable_account", 
-   "fieldtype": "Link", 
-   "label": "Receivable / Payable Account", 
-   "options": "Account", 
-   "permlevel": 0, 
-   "precision": "", 
+   "fieldname": "receivable_payable_account",
+   "fieldtype": "Link",
+   "label": "Receivable / Payable Account",
+   "options": "Account",
+   "permlevel": 0,
+   "precision": "",
    "reqd": 1
-  }, 
+  },
   {
-   "fieldname": "bank_cash_account", 
-   "fieldtype": "Link", 
-   "in_list_view": 1, 
-   "label": "Bank / Cash Account", 
-   "options": "Account", 
-   "permlevel": 0, 
-   "reqd": 0, 
+   "fieldname": "bank_cash_account",
+   "fieldtype": "Link",
+   "in_list_view": 1,
+   "label": "Bank / Cash Account",
+   "options": "Account",
+   "permlevel": 0,
+   "reqd": 0,
    "search_index": 0
-  }, 
+  },
   {
-   "fieldname": "col_break1", 
-   "fieldtype": "Column Break", 
-   "label": "Column Break", 
+   "fieldname": "col_break1",
+   "fieldtype": "Column Break",
+   "label": "Column Break",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "from_date", 
-   "fieldtype": "Date", 
-   "in_list_view": 1, 
-   "label": "From Date", 
-   "permlevel": 0, 
+   "fieldname": "from_date",
+   "fieldtype": "Date",
+   "in_list_view": 1,
+   "label": "From Date",
+   "permlevel": 0,
    "search_index": 1
-  }, 
+  },
   {
-   "fieldname": "to_date", 
-   "fieldtype": "Date", 
-   "in_list_view": 1, 
-   "label": "To Date", 
-   "permlevel": 0, 
+   "fieldname": "to_date",
+   "fieldtype": "Date",
+   "in_list_view": 1,
+   "label": "To Date",
+   "permlevel": 0,
    "search_index": 1
-  }, 
+  },
   {
-   "fieldname": "minimum_amount", 
-   "fieldtype": "Currency", 
-   "label": "Minimum Amount", 
+   "fieldname": "minimum_amount",
+   "fieldtype": "Currency",
+   "label": "Minimum Amount",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "maximum_amount", 
-   "fieldtype": "Currency", 
-   "label": "Maximum Amount", 
+   "fieldname": "maximum_amount",
+   "fieldtype": "Currency",
+   "label": "Maximum Amount",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "get_unreconciled_entries", 
-   "fieldtype": "Button", 
-   "label": "Get Unreconciled Entries", 
+   "fieldname": "get_unreconciled_entries",
+   "fieldtype": "Button",
+   "label": "Get Unreconciled Entries",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "sec_break1", 
-   "fieldtype": "Section Break", 
-   "label": "Unreconciled Payment Details", 
+   "fieldname": "sec_break1",
+   "fieldtype": "Section Break",
+   "label": "Unreconciled Payment Details",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "payment_reconciliation_payments", 
-   "fieldtype": "Table", 
-   "label": "Payment Reconciliation Payments", 
-   "options": "Payment Reconciliation Payment", 
+   "fieldname": "payment_reconciliation_payments",
+   "fieldtype": "Table",
+   "label": "Payment Reconciliation Payments",
+   "options": "Payment Reconciliation Payment",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "reconcile", 
-   "fieldtype": "Button", 
-   "label": "Reconcile", 
+   "fieldname": "reconcile",
+   "fieldtype": "Button",
+   "label": "Reconcile",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "sec_break2", 
-   "fieldtype": "Section Break", 
-   "label": "Invoice/Journal Voucher Details", 
+   "fieldname": "sec_break2",
+   "fieldtype": "Section Break",
+   "label": "Invoice/Journal Voucher Details",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "payment_reconciliation_invoices", 
-   "fieldtype": "Table", 
-   "label": "Payment Reconciliation Invoices", 
-   "options": "Payment Reconciliation Invoice", 
-   "permlevel": 0, 
-   "read_only": 1
-  }, 
-  {
-   "fieldname": "reconcile_help", 
-   "fieldtype": "Small Text", 
-   "label": "", 
-   "permlevel": 0, 
+   "fieldname": "payment_reconciliation_invoices",
+   "fieldtype": "Table",
+   "label": "Payment Reconciliation Invoices",
+   "options": "Payment Reconciliation Invoice",
+   "permlevel": 0,
    "read_only": 1
   }
- ], 
- "hide_toolbar": 1, 
- "icon": "icon-resize-horizontal", 
- "issingle": 1, 
- "modified": "2014-09-12 12:18:15.956283", 
- "modified_by": "Administrator", 
- "module": "Accounts", 
- "name": "Payment Reconciliation", 
- "name_case": "", 
- "owner": "Administrator", 
+ ],
+ "hide_toolbar": 1,
+ "icon": "icon-resize-horizontal",
+ "issingle": 1,
+ "modified": "2014-10-16 17:51:44.367107",
+ "modified_by": "Administrator",
+ "module": "Accounts",
+ "name": "Payment Reconciliation",
+ "name_case": "",
+ "owner": "Administrator",
  "permissions": [
   {
-   "cancel": 0, 
-   "create": 1, 
-   "delete": 1, 
-   "permlevel": 0, 
-   "read": 1, 
-   "role": "Accounts Manager", 
-   "submit": 0, 
+   "cancel": 0,
+   "create": 1,
+   "delete": 1,
+   "permlevel": 0,
+   "read": 1,
+   "role": "Accounts Manager",
+   "submit": 0,
    "write": 1
-  }, 
+  },
   {
-   "cancel": 0, 
-   "create": 1, 
-   "delete": 1, 
-   "permlevel": 0, 
-   "read": 1, 
-   "role": "Accounts User", 
-   "submit": 0, 
+   "cancel": 0,
+   "create": 1,
+   "delete": 1,
+   "permlevel": 0,
+   "read": 1,
+   "role": "Accounts User",
+   "submit": 0,
    "write": 1
   }
- ], 
- "sort_field": "modified", 
+ ],
+ "sort_field": "modified",
  "sort_order": "DESC"
-}
\ No newline at end of file
+}
diff --git a/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py b/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py
index 7971beb..34ab169 100644
--- a/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py
+++ b/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py
@@ -139,7 +139,7 @@
 		dr_or_cr = "credit" if self.party_type == "Customer" else "debit"
 		lst = []
 		for e in self.get('payment_reconciliation_payments'):
-			if e.invoice_type and e.invoice_number:
+			if e.invoice_type and e.invoice_number and e.allocated_amount:
 				lst.append({
 					'voucher_no' : e.journal_voucher,
 					'voucher_detail_no' : e.voucher_detail_number,
@@ -151,7 +151,7 @@
 					'is_advance' : e.is_advance,
 					'dr_or_cr' : dr_or_cr,
 					'unadjusted_amt' : flt(e.amount),
-					'allocated_amt' : flt(e.amount)
+					'allocated_amt' : flt(e.allocated_amount)
 				})
 
 		if lst:
@@ -179,18 +179,23 @@
 
 		invoices_to_reconcile = []
 		for p in self.get("payment_reconciliation_payments"):
-			if p.invoice_type and p.invoice_number:
+			if p.invoice_type and p.invoice_number and p.allocated_amount:
 				invoices_to_reconcile.append(p.invoice_number)
 
 				if p.invoice_number not in unreconciled_invoices.get(p.invoice_type, {}):
 					frappe.throw(_("{0}: {1} not found in Invoice Details table")
 						.format(p.invoice_type, p.invoice_number))
 
-				if p.amount > unreconciled_invoices.get(p.invoice_type, {}).get(p.invoice_number):
-					frappe.throw(_("Row {0}: Payment amount must be less than or equals to invoice outstanding amount. Please refer Note below.").format(p.idx))
+				if flt(p.allocated_amount) > flt(p.amount):
+					frappe.throw(_("Row {0}: Allocated amount {1} must be less than or equals to JV amount {2}")
+						.format(p.idx, p.allocated_amount, p.amount))
+
+				if flt(p.allocated_amount) > unreconciled_invoices.get(p.invoice_type, {}).get(p.invoice_number):
+					frappe.throw(_("Row {0}: Allocated amount {1} must be less than or equals to invoice outstanding amount {2}")
+						.format(p.idx, p.allocated_amount, unreconciled_invoices.get(p.invoice_type, {}).get(p.invoice_number)))
 
 		if not invoices_to_reconcile:
-			frappe.throw(_("Please select Invoice Type and Invoice Number in atleast one row"))
+			frappe.throw(_("Please select Allocated Amount, Invoice Type and Invoice Number in atleast one row"))
 
 	def check_condition(self, dr_or_cr):
 		cond = self.from_date and " and posting_date >= '" + self.from_date + "'" or ""
diff --git a/erpnext/accounts/doctype/payment_reconciliation_payment/payment_reconciliation_payment.json b/erpnext/accounts/doctype/payment_reconciliation_payment/payment_reconciliation_payment.json
index 7538a09..d8da463 100644
--- a/erpnext/accounts/doctype/payment_reconciliation_payment/payment_reconciliation_payment.json
+++ b/erpnext/accounts/doctype/payment_reconciliation_payment/payment_reconciliation_payment.json
@@ -1,107 +1,116 @@
 {
- "creation": "2014-07-09 16:13:35.452759", 
- "docstatus": 0, 
- "doctype": "DocType", 
- "document_type": "", 
+ "creation": "2014-07-09 16:13:35.452759",
+ "docstatus": 0,
+ "doctype": "DocType",
+ "document_type": "",
  "fields": [
   {
-   "fieldname": "journal_voucher", 
-   "fieldtype": "Link", 
-   "in_list_view": 1, 
-   "label": "Journal Voucher", 
-   "options": "Journal Voucher", 
-   "permlevel": 0, 
-   "read_only": 1, 
+   "fieldname": "journal_voucher",
+   "fieldtype": "Link",
+   "in_list_view": 1,
+   "label": "Journal Voucher",
+   "options": "Journal Voucher",
+   "permlevel": 0,
+   "read_only": 1,
    "reqd": 0
-  }, 
+  },
   {
-   "fieldname": "posting_date", 
-   "fieldtype": "Date", 
-   "in_list_view": 1, 
-   "label": "Posting Date", 
-   "permlevel": 0, 
+   "fieldname": "posting_date",
+   "fieldtype": "Date",
+   "in_list_view": 1,
+   "label": "Posting Date",
+   "permlevel": 0,
    "read_only": 1
-  }, 
+  },
   {
-   "fieldname": "amount", 
-   "fieldtype": "Currency", 
-   "in_list_view": 1, 
-   "label": "Amount", 
-   "permlevel": 0, 
+   "fieldname": "amount",
+   "fieldtype": "Currency",
+   "in_list_view": 1,
+   "label": "Amount",
+   "permlevel": 0,
    "read_only": 1
-  }, 
+  },
   {
-   "fieldname": "is_advance", 
-   "fieldtype": "Data", 
-   "hidden": 1, 
-   "label": "Is Advance", 
-   "permlevel": 0, 
+   "fieldname": "is_advance",
+   "fieldtype": "Data",
+   "hidden": 1,
+   "label": "Is Advance",
+   "permlevel": 0,
    "read_only": 1
-  }, 
+  },
   {
-   "fieldname": "voucher_detail_number", 
-   "fieldtype": "Data", 
-   "hidden": 1, 
-   "in_list_view": 0, 
-   "label": "Voucher Detail Number", 
-   "permlevel": 0, 
+   "fieldname": "voucher_detail_number",
+   "fieldtype": "Data",
+   "hidden": 1,
+   "in_list_view": 0,
+   "label": "Voucher Detail Number",
+   "permlevel": 0,
    "read_only": 1
-  }, 
+  },
   {
-   "fieldname": "col_break1", 
-   "fieldtype": "Column Break", 
-   "label": "Column Break", 
+   "fieldname": "col_break1",
+   "fieldtype": "Column Break",
+   "label": "Column Break",
    "permlevel": 0
-  }, 
+  },
   {
-   "default": "Sales Invoice", 
-   "fieldname": "invoice_type", 
-   "fieldtype": "Select", 
-   "in_list_view": 1, 
-   "label": "Invoice Type", 
-   "options": "\nSales Invoice\nPurchase Invoice\nJournal Voucher", 
-   "permlevel": 0, 
-   "read_only": 0, 
+   "fieldname": "allocated_amount",
+   "fieldtype": "Currency",
+   "in_list_view": 1,
+   "label": "Allocated amount",
+   "permlevel": 0,
+   "precision": "",
    "reqd": 1
-  }, 
+  },
   {
-   "fieldname": "invoice_number", 
-   "fieldtype": "Select", 
-   "in_list_view": 1, 
-   "label": "Invoice Number", 
-   "options": "", 
-   "permlevel": 0, 
+   "default": "Sales Invoice",
+   "fieldname": "invoice_type",
+   "fieldtype": "Select",
+   "in_list_view": 0,
+   "label": "Invoice Type",
+   "options": "\nSales Invoice\nPurchase Invoice\nJournal Voucher",
+   "permlevel": 0,
+   "read_only": 0,
    "reqd": 1
-  }, 
+  },
   {
-   "fieldname": "sec_break1", 
-   "fieldtype": "Section Break", 
-   "label": "", 
+   "fieldname": "invoice_number",
+   "fieldtype": "Select",
+   "in_list_view": 1,
+   "label": "Invoice Number",
+   "options": "",
+   "permlevel": 0,
+   "reqd": 1
+  },
+  {
+   "fieldname": "sec_break1",
+   "fieldtype": "Section Break",
+   "label": "",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "remark", 
-   "fieldtype": "Small Text", 
-   "in_list_view": 1, 
-   "label": "Remark", 
-   "permlevel": 0, 
+   "fieldname": "remark",
+   "fieldtype": "Small Text",
+   "in_list_view": 1,
+   "label": "Remark",
+   "permlevel": 0,
    "read_only": 1
-  }, 
+  },
   {
-   "fieldname": "col_break2", 
-   "fieldtype": "Column Break", 
-   "label": "Column Break", 
+   "fieldname": "col_break2",
+   "fieldtype": "Column Break",
+   "label": "Column Break",
    "permlevel": 0
   }
- ], 
- "istable": 1, 
- "modified": "2014-09-12 13:05:57.839280", 
- "modified_by": "Administrator", 
- "module": "Accounts", 
- "name": "Payment Reconciliation Payment", 
- "name_case": "", 
- "owner": "Administrator", 
- "permissions": [], 
- "sort_field": "modified", 
+ ],
+ "istable": 1,
+ "modified": "2014-10-16 17:40:54.040194",
+ "modified_by": "Administrator",
+ "module": "Accounts",
+ "name": "Payment Reconciliation Payment",
+ "name_case": "",
+ "owner": "Administrator",
+ "permissions": [],
+ "sort_field": "modified",
  "sort_order": "DESC"
-}
\ No newline at end of file
+}
diff --git a/erpnext/accounts/doctype/payment_tool/payment_tool.py b/erpnext/accounts/doctype/payment_tool/payment_tool.py
index 93844d3..9a4b63e 100644
--- a/erpnext/accounts/doctype/payment_tool/payment_tool.py
+++ b/erpnext/accounts/doctype/payment_tool/payment_tool.py
@@ -90,6 +90,7 @@
 		where
 			%s = %s
 			and docstatus = 1
+			and ifnull(status, "") != "Stopped"
 			and ifnull(grand_total, 0) > ifnull(advance_paid, 0)
 			and ifnull(per_billed, 0) < 100.0
 		""" % (voucher_type, 'customer' if party_type == "Customer" else 'supplier', '%s'), party, as_dict = True)
diff --git a/erpnext/accounts/doctype/pricing_rule/pricing_rule.json b/erpnext/accounts/doctype/pricing_rule/pricing_rule.json
index 2d318c6..7a79c1a 100644
--- a/erpnext/accounts/doctype/pricing_rule/pricing_rule.json
+++ b/erpnext/accounts/doctype/pricing_rule/pricing_rule.json
@@ -164,6 +164,7 @@
    "permlevel": 0
   }, 
   {
+   "description": "Higher the number, higher the priority", 
    "fieldname": "priority", 
    "fieldtype": "Select", 
    "label": "Priority", 
@@ -235,7 +236,7 @@
  "icon": "icon-gift", 
  "idx": 1, 
  "istable": 0, 
- "modified": "2014-06-20 19:36:22.502381", 
+ "modified": "2014-09-26 09:09:38.418765", 
  "modified_by": "Administrator", 
  "module": "Accounts", 
  "name": "Pricing Rule", 
diff --git a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.json b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.json
index dc48aab..91c8f87 100755
--- a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.json
+++ b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.json
@@ -143,24 +143,6 @@
    "search_index": 1
   },
   {
-   "allow_on_submit": 1,
-   "description": "Start date of current invoice's period",
-   "fieldname": "from_date",
-   "fieldtype": "Date",
-   "label": "From Date",
-   "no_copy": 1,
-   "permlevel": 0
-  },
-  {
-   "allow_on_submit": 1,
-   "description": "End date of current invoice's period",
-   "fieldname": "to_date",
-   "fieldtype": "Date",
-   "label": "To Date",
-   "no_copy": 1,
-   "permlevel": 0
-  },
-  {
    "fieldname": "amended_from",
    "fieldtype": "Link",
    "ignore_user_permissions": 1,
@@ -813,6 +795,26 @@
   {
    "allow_on_submit": 1,
    "depends_on": "eval:doc.is_recurring==1",
+   "description": "Start date of current invoice's period",
+   "fieldname": "from_date",
+   "fieldtype": "Date",
+   "label": "From Date",
+   "no_copy": 1,
+   "permlevel": 0
+  },
+  {
+   "allow_on_submit": 1,
+   "depends_on": "eval:doc.is_recurring==1",
+   "description": "End date of current invoice's period",
+   "fieldname": "to_date",
+   "fieldtype": "Date",
+   "label": "To Date",
+   "no_copy": 1,
+   "permlevel": 0
+  },
+  {
+   "allow_on_submit": 1,
+   "depends_on": "eval:doc.is_recurring==1",
    "description": "The day of the month on which auto invoice will be generated e.g. 05, 28 etc",
    "fieldname": "repeat_on_day_of_month",
    "fieldtype": "Int",
@@ -822,17 +824,6 @@
    "print_hide": 1
   },
   {
-   "depends_on": "eval:doc.is_recurring==1",
-   "description": "The date on which next invoice will be generated. It is generated on submit.",
-   "fieldname": "next_date",
-   "fieldtype": "Date",
-   "label": "Next Date",
-   "no_copy": 1,
-   "permlevel": 0,
-   "print_hide": 1,
-   "read_only": 1
-  },
-  {
    "allow_on_submit": 1,
    "depends_on": "eval:doc.is_recurring==1",
    "description": "The date on which recurring invoice will be stop",
@@ -852,6 +843,17 @@
   },
   {
    "depends_on": "eval:doc.is_recurring==1",
+   "description": "The date on which next invoice will be generated. It is generated on submit.",
+   "fieldname": "next_date",
+   "fieldtype": "Date",
+   "label": "Next Date",
+   "no_copy": 1,
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 1
+  },
+  {
+   "depends_on": "eval:doc.is_recurring==1",
    "description": "The unique id for tracking all recurring invoices. It is generated on submit.",
    "fieldname": "recurring_id",
    "fieldtype": "Data",
@@ -876,7 +878,7 @@
  "icon": "icon-file-text",
  "idx": 1,
  "is_submittable": 1,
- "modified": "2014-09-18 03:12:51.994059",
+ "modified": "2014-10-08 14:23:20.234176",
  "modified_by": "Administrator",
  "module": "Accounts",
  "name": "Purchase Invoice",
diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.json b/erpnext/accounts/doctype/sales_invoice/sales_invoice.json
index d83aac6..2c90115 100644
--- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.json
+++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.json
@@ -1,1273 +1,1273 @@
 {
- "allow_import": 1, 
- "autoname": "naming_series:", 
- "creation": "2013-05-24 19:29:05", 
- "default_print_format": "Standard", 
- "docstatus": 0, 
- "doctype": "DocType", 
- "document_type": "Transaction", 
+ "allow_import": 1,
+ "autoname": "naming_series:",
+ "creation": "2013-05-24 19:29:05",
+ "default_print_format": "Standard",
+ "docstatus": 0,
+ "doctype": "DocType",
+ "document_type": "Transaction",
  "fields": [
   {
-   "fieldname": "customer_section", 
-   "fieldtype": "Section Break", 
-   "label": "Customer", 
-   "options": "icon-user", 
+   "fieldname": "customer_section",
+   "fieldtype": "Section Break",
+   "label": "Customer",
+   "options": "icon-user",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "naming_series", 
-   "fieldtype": "Select", 
-   "label": "Series", 
-   "no_copy": 1, 
-   "oldfieldname": "naming_series", 
-   "oldfieldtype": "Select", 
-   "options": "SINV-", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 0, 
+   "fieldname": "naming_series",
+   "fieldtype": "Select",
+   "label": "Series",
+   "no_copy": 1,
+   "oldfieldname": "naming_series",
+   "oldfieldtype": "Select",
+   "options": "SINV-",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 0,
    "reqd": 1
-  }, 
+  },
   {
-   "fieldname": "customer", 
-   "fieldtype": "Link", 
-   "hidden": 0, 
-   "label": "Customer", 
-   "no_copy": 0, 
-   "oldfieldname": "customer", 
-   "oldfieldtype": "Link", 
-   "options": "Customer", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "customer",
+   "fieldtype": "Link",
+   "hidden": 0,
+   "label": "Customer",
+   "no_copy": 0,
+   "oldfieldname": "customer",
+   "oldfieldtype": "Link",
+   "options": "Customer",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 0
-  }, 
+  },
   {
-   "depends_on": "customer", 
-   "fieldname": "customer_name", 
-   "fieldtype": "Data", 
-   "hidden": 0, 
-   "in_list_view": 1, 
-   "label": "Name", 
-   "oldfieldname": "customer_name", 
-   "oldfieldtype": "Data", 
-   "permlevel": 0, 
+   "depends_on": "customer",
+   "fieldname": "customer_name",
+   "fieldtype": "Data",
+   "hidden": 0,
+   "in_list_view": 1,
+   "label": "Name",
+   "oldfieldname": "customer_name",
+   "oldfieldtype": "Data",
+   "permlevel": 0,
    "read_only": 1
-  }, 
+  },
   {
-   "fieldname": "address_display", 
-   "fieldtype": "Small Text", 
-   "hidden": 1, 
-   "label": "Address", 
-   "permlevel": 0, 
+   "fieldname": "address_display",
+   "fieldtype": "Small Text",
+   "hidden": 1,
+   "label": "Address",
+   "permlevel": 0,
    "read_only": 1
-  }, 
+  },
   {
-   "fieldname": "contact_display", 
-   "fieldtype": "Small Text", 
-   "hidden": 1, 
-   "label": "Contact", 
-   "permlevel": 0, 
+   "fieldname": "contact_display",
+   "fieldtype": "Small Text",
+   "hidden": 1,
+   "label": "Contact",
+   "permlevel": 0,
    "read_only": 1
-  }, 
+  },
   {
-   "fieldname": "contact_mobile", 
-   "fieldtype": "Small Text", 
-   "hidden": 1, 
-   "label": "Mobile No", 
-   "permlevel": 0, 
+   "fieldname": "contact_mobile",
+   "fieldtype": "Small Text",
+   "hidden": 1,
+   "label": "Mobile No",
+   "permlevel": 0,
    "read_only": 1
-  }, 
+  },
   {
-   "fieldname": "contact_email", 
-   "fieldtype": "Small Text", 
-   "hidden": 1, 
-   "label": "Contact Email", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "contact_email",
+   "fieldtype": "Small Text",
+   "hidden": 1,
+   "label": "Contact Email",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 1
-  }, 
+  },
   {
-   "fieldname": "mode_of_payment", 
-   "fieldtype": "Link", 
-   "label": "Mode of Payment", 
-   "no_copy": 0, 
-   "oldfieldname": "mode_of_payment", 
-   "oldfieldtype": "Select", 
-   "options": "Mode of Payment", 
-   "permlevel": 0, 
+   "fieldname": "mode_of_payment",
+   "fieldtype": "Link",
+   "label": "Mode of Payment",
+   "no_copy": 0,
+   "oldfieldname": "mode_of_payment",
+   "oldfieldtype": "Select",
+   "options": "Mode of Payment",
+   "permlevel": 0,
    "read_only": 0
-  }, 
+  },
   {
-   "fieldname": "column_break1", 
-   "fieldtype": "Column Break", 
-   "oldfieldtype": "Column Break", 
-   "permlevel": 0, 
+   "fieldname": "column_break1",
+   "fieldtype": "Column Break",
+   "oldfieldtype": "Column Break",
+   "permlevel": 0,
    "read_only": 0
-  }, 
+  },
   {
-   "fieldname": "is_pos", 
-   "fieldtype": "Check", 
-   "label": "Is POS", 
-   "oldfieldname": "is_pos", 
-   "oldfieldtype": "Check", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "is_pos",
+   "fieldtype": "Check",
+   "label": "Is POS",
+   "oldfieldname": "is_pos",
+   "oldfieldtype": "Check",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 0
-  }, 
+  },
   {
-   "fieldname": "company", 
-   "fieldtype": "Link", 
-   "in_filter": 1, 
-   "label": "Company", 
-   "oldfieldname": "company", 
-   "oldfieldtype": "Link", 
-   "options": "Company", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 0, 
-   "reqd": 1, 
+   "fieldname": "company",
+   "fieldtype": "Link",
+   "in_filter": 1,
+   "label": "Company",
+   "oldfieldname": "company",
+   "oldfieldtype": "Link",
+   "options": "Company",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 0,
+   "reqd": 1,
    "search_index": 0
-  }, 
+  },
   {
-   "fieldname": "amended_from", 
-   "fieldtype": "Link", 
-   "ignore_user_permissions": 1, 
-   "label": "Amended From", 
-   "no_copy": 1, 
-   "oldfieldname": "amended_from", 
-   "oldfieldtype": "Link", 
-   "options": "Sales Invoice", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "amended_from",
+   "fieldtype": "Link",
+   "ignore_user_permissions": 1,
+   "label": "Amended From",
+   "no_copy": 1,
+   "oldfieldname": "amended_from",
+   "oldfieldtype": "Link",
+   "options": "Sales Invoice",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 1
-  }, 
+  },
   {
-   "default": "Today", 
-   "fieldname": "posting_date", 
-   "fieldtype": "Date", 
-   "in_filter": 1, 
-   "label": "Date", 
-   "no_copy": 1, 
-   "oldfieldname": "posting_date", 
-   "oldfieldtype": "Date", 
-   "permlevel": 0, 
-   "print_hide": 0, 
-   "read_only": 0, 
-   "reqd": 1, 
+   "default": "Today",
+   "fieldname": "posting_date",
+   "fieldtype": "Date",
+   "in_filter": 1,
+   "label": "Date",
+   "no_copy": 1,
+   "oldfieldname": "posting_date",
+   "oldfieldtype": "Date",
+   "permlevel": 0,
+   "print_hide": 0,
+   "read_only": 0,
+   "reqd": 1,
    "search_index": 1
-  }, 
+  },
   {
-   "fieldname": "due_date", 
-   "fieldtype": "Date", 
-   "in_filter": 1, 
-   "label": "Payment Due Date", 
-   "no_copy": 1, 
-   "oldfieldname": "due_date", 
-   "oldfieldtype": "Date", 
-   "permlevel": 0, 
-   "read_only": 0, 
-   "reqd": 1, 
+   "fieldname": "due_date",
+   "fieldtype": "Date",
+   "in_filter": 1,
+   "label": "Payment Due Date",
+   "no_copy": 1,
+   "oldfieldname": "due_date",
+   "oldfieldtype": "Date",
+   "permlevel": 0,
+   "read_only": 0,
+   "reqd": 1,
    "search_index": 0
-  }, 
+  },
   {
-   "allow_on_submit": 1, 
-   "depends_on": "", 
-   "description": "Start date of current invoice's period", 
-   "fieldname": "from_date", 
-   "fieldtype": "Date", 
-   "label": "From Date", 
-   "no_copy": 1, 
-   "permlevel": 0, 
-   "print_hide": 0, 
-   "read_only": 0
-  }, 
-  {
-   "allow_on_submit": 1, 
-   "depends_on": "", 
-   "description": "End date of current invoice's period", 
-   "fieldname": "to_date", 
-   "fieldtype": "Date", 
-   "label": "To Date", 
-   "no_copy": 1, 
-   "permlevel": 0, 
-   "print_hide": 0, 
-   "read_only": 0
-  }, 
-  {
-   "fieldname": "shipping_address_name", 
-   "fieldtype": "Link", 
-   "hidden": 1, 
-   "in_filter": 1, 
-   "label": "Shipping Address Name", 
-   "options": "Address", 
-   "permlevel": 0, 
-   "precision": "", 
+   "fieldname": "shipping_address_name",
+   "fieldtype": "Link",
+   "hidden": 1,
+   "in_filter": 1,
+   "label": "Shipping Address Name",
+   "options": "Address",
+   "permlevel": 0,
+   "precision": "",
    "print_hide": 1
-  }, 
+  },
   {
-   "fieldname": "shipping_address", 
-   "fieldtype": "Small Text", 
-   "hidden": 1, 
-   "label": "Shipping Address", 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 1, 
+   "fieldname": "shipping_address",
+   "fieldtype": "Small Text",
+   "hidden": 1,
+   "label": "Shipping Address",
+   "permlevel": 0,
+   "precision": "",
+   "print_hide": 1,
    "read_only": 1
-  }, 
+  },
   {
-   "fieldname": "currency_section", 
-   "fieldtype": "Section Break", 
-   "label": "Currency and Price List", 
-   "options": "icon-tag", 
-   "permlevel": 0, 
+   "fieldname": "currency_section",
+   "fieldtype": "Section Break",
+   "label": "Currency and Price List",
+   "options": "icon-tag",
+   "permlevel": 0,
    "read_only": 0
-  }, 
+  },
   {
-   "fieldname": "currency", 
-   "fieldtype": "Link", 
-   "label": "Currency", 
-   "oldfieldname": "currency", 
-   "oldfieldtype": "Select", 
-   "options": "Currency", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 0, 
+   "fieldname": "currency",
+   "fieldtype": "Link",
+   "label": "Currency",
+   "oldfieldname": "currency",
+   "oldfieldtype": "Select",
+   "options": "Currency",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 0,
    "reqd": 1
-  }, 
+  },
   {
-   "description": "Rate at which Customer Currency is converted to customer's base currency", 
-   "fieldname": "conversion_rate", 
-   "fieldtype": "Float", 
-   "label": "Exchange Rate", 
-   "oldfieldname": "conversion_rate", 
-   "oldfieldtype": "Currency", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 0, 
+   "description": "Rate at which Customer Currency is converted to customer's base currency",
+   "fieldname": "conversion_rate",
+   "fieldtype": "Float",
+   "label": "Exchange Rate",
+   "oldfieldname": "conversion_rate",
+   "oldfieldtype": "Currency",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 0,
    "reqd": 1
-  }, 
+  },
   {
-   "fieldname": "column_break2", 
-   "fieldtype": "Column Break", 
-   "permlevel": 0, 
-   "read_only": 0, 
+   "fieldname": "column_break2",
+   "fieldtype": "Column Break",
+   "permlevel": 0,
+   "read_only": 0,
    "width": "50%"
-  }, 
+  },
   {
-   "fieldname": "selling_price_list", 
-   "fieldtype": "Link", 
-   "label": "Price List", 
-   "oldfieldname": "price_list_name", 
-   "oldfieldtype": "Select", 
-   "options": "Price List", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 0, 
+   "fieldname": "selling_price_list",
+   "fieldtype": "Link",
+   "label": "Price List",
+   "oldfieldname": "price_list_name",
+   "oldfieldtype": "Select",
+   "options": "Price List",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 0,
    "reqd": 1
-  }, 
+  },
   {
-   "fieldname": "price_list_currency", 
-   "fieldtype": "Link", 
-   "label": "Price List Currency", 
-   "options": "Currency", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 1, 
+   "fieldname": "price_list_currency",
+   "fieldtype": "Link",
+   "label": "Price List Currency",
+   "options": "Currency",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 1,
    "reqd": 1
-  }, 
+  },
   {
-   "description": "Rate at which Price list currency is converted to customer's base currency", 
-   "fieldname": "plc_conversion_rate", 
-   "fieldtype": "Float", 
-   "label": "Price List Exchange Rate", 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 0, 
+   "description": "Rate at which Price list currency is converted to customer's base currency",
+   "fieldname": "plc_conversion_rate",
+   "fieldtype": "Float",
+   "label": "Price List Exchange Rate",
+   "no_copy": 0,
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 0,
    "reqd": 1
-  }, 
+  },
   {
-   "fieldname": "ignore_pricing_rule", 
-   "fieldtype": "Check", 
-   "label": "Ignore Pricing Rule", 
-   "no_copy": 1, 
-   "permlevel": 1, 
+   "fieldname": "ignore_pricing_rule",
+   "fieldtype": "Check",
+   "label": "Ignore Pricing Rule",
+   "no_copy": 1,
+   "permlevel": 1,
    "print_hide": 1
-  }, 
+  },
   {
-   "fieldname": "items", 
-   "fieldtype": "Section Break", 
-   "label": "Items", 
-   "oldfieldtype": "Section Break", 
-   "options": "icon-shopping-cart", 
-   "permlevel": 0, 
+   "fieldname": "items",
+   "fieldtype": "Section Break",
+   "label": "Items",
+   "oldfieldtype": "Section Break",
+   "options": "icon-shopping-cart",
+   "permlevel": 0,
    "read_only": 0
-  }, 
+  },
   {
-   "fieldname": "update_stock", 
-   "fieldtype": "Check", 
-   "label": "Update Stock", 
-   "oldfieldname": "update_stock", 
-   "oldfieldtype": "Check", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "update_stock",
+   "fieldtype": "Check",
+   "label": "Update Stock",
+   "oldfieldname": "update_stock",
+   "oldfieldtype": "Check",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 0
-  }, 
+  },
   {
-   "allow_on_submit": 1, 
-   "fieldname": "entries", 
-   "fieldtype": "Table", 
-   "label": "Sales Invoice Items", 
-   "oldfieldname": "entries", 
-   "oldfieldtype": "Table", 
-   "options": "Sales Invoice Item", 
-   "permlevel": 0, 
-   "read_only": 0, 
+   "allow_on_submit": 1,
+   "fieldname": "entries",
+   "fieldtype": "Table",
+   "label": "Sales Invoice Items",
+   "oldfieldname": "entries",
+   "oldfieldtype": "Table",
+   "options": "Sales Invoice Item",
+   "permlevel": 0,
+   "read_only": 0,
    "reqd": 1
-  }, 
+  },
   {
-   "fieldname": "packing_list", 
-   "fieldtype": "Section Break", 
-   "label": "Packing List", 
-   "options": "icon-suitcase", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "packing_list",
+   "fieldtype": "Section Break",
+   "label": "Packing List",
+   "options": "icon-suitcase",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 0
-  }, 
+  },
   {
-   "fieldname": "packing_details", 
-   "fieldtype": "Table", 
-   "label": "Packing Details", 
-   "options": "Packed Item", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "packing_details",
+   "fieldtype": "Table",
+   "label": "Packing Details",
+   "options": "Packed Item",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 0
-  }, 
+  },
   {
-   "fieldname": "sales_bom_help", 
-   "fieldtype": "HTML", 
-   "label": "Sales BOM Help", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "sales_bom_help",
+   "fieldtype": "HTML",
+   "label": "Sales BOM Help",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 0
-  }, 
+  },
   {
-   "fieldname": "section_break_30", 
-   "fieldtype": "Section Break", 
+   "fieldname": "section_break_30",
+   "fieldtype": "Section Break",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "net_total", 
-   "fieldtype": "Currency", 
-   "label": "Net Total (Company Currency)", 
-   "oldfieldname": "net_total", 
-   "oldfieldtype": "Currency", 
-   "options": "Company:company:default_currency", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 1, 
+   "fieldname": "net_total",
+   "fieldtype": "Currency",
+   "label": "Net Total (Company Currency)",
+   "oldfieldname": "net_total",
+   "oldfieldtype": "Currency",
+   "options": "Company:company:default_currency",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 1,
    "reqd": 1
-  }, 
+  },
   {
-   "fieldname": "column_break_32", 
-   "fieldtype": "Column Break", 
+   "fieldname": "column_break_32",
+   "fieldtype": "Column Break",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "net_total_export", 
-   "fieldtype": "Currency", 
-   "label": "Net Total", 
-   "options": "currency", 
-   "permlevel": 0, 
-   "print_hide": 0, 
+   "fieldname": "net_total_export",
+   "fieldtype": "Currency",
+   "label": "Net Total",
+   "options": "currency",
+   "permlevel": 0,
+   "print_hide": 0,
    "read_only": 1
-  }, 
+  },
   {
-   "fieldname": "taxes", 
-   "fieldtype": "Section Break", 
-   "label": "Taxes and Charges", 
-   "oldfieldtype": "Section Break", 
-   "options": "icon-money", 
-   "permlevel": 0, 
+   "fieldname": "taxes",
+   "fieldtype": "Section Break",
+   "label": "Taxes and Charges",
+   "oldfieldtype": "Section Break",
+   "options": "icon-money",
+   "permlevel": 0,
    "read_only": 0
-  }, 
+  },
   {
-   "fieldname": "taxes_and_charges", 
-   "fieldtype": "Link", 
-   "label": "Taxes and Charges", 
-   "oldfieldname": "charge", 
-   "oldfieldtype": "Link", 
-   "options": "Sales Taxes and Charges Master", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "taxes_and_charges",
+   "fieldtype": "Link",
+   "label": "Taxes and Charges",
+   "oldfieldname": "charge",
+   "oldfieldtype": "Link",
+   "options": "Sales Taxes and Charges Master",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 0
-  }, 
+  },
   {
-   "fieldname": "column_break_38", 
-   "fieldtype": "Column Break", 
+   "fieldname": "column_break_38",
+   "fieldtype": "Column Break",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "shipping_rule", 
-   "fieldtype": "Link", 
-   "label": "Shipping Rule", 
-   "oldfieldtype": "Button", 
-   "options": "Shipping Rule", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "shipping_rule",
+   "fieldtype": "Link",
+   "label": "Shipping Rule",
+   "oldfieldtype": "Button",
+   "options": "Shipping Rule",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 0
-  }, 
+  },
   {
-   "fieldname": "section_break_40", 
-   "fieldtype": "Section Break", 
+   "fieldname": "section_break_40",
+   "fieldtype": "Section Break",
    "permlevel": 0
-  }, 
+  },
   {
-   "allow_on_submit": 1, 
-   "fieldname": "other_charges", 
-   "fieldtype": "Table", 
-   "label": "Sales Taxes and Charges", 
-   "oldfieldname": "other_charges", 
-   "oldfieldtype": "Table", 
-   "options": "Sales Taxes and Charges", 
-   "permlevel": 0, 
+   "allow_on_submit": 1,
+   "fieldname": "other_charges",
+   "fieldtype": "Table",
+   "label": "Sales Taxes and Charges",
+   "oldfieldname": "other_charges",
+   "oldfieldtype": "Table",
+   "options": "Sales Taxes and Charges",
+   "permlevel": 0,
    "read_only": 0
-  }, 
+  },
   {
-   "fieldname": "other_charges_calculation", 
-   "fieldtype": "HTML", 
-   "label": "Taxes and Charges Calculation", 
-   "oldfieldtype": "HTML", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "other_charges_calculation",
+   "fieldtype": "HTML",
+   "label": "Taxes and Charges Calculation",
+   "oldfieldtype": "HTML",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 0
-  }, 
+  },
   {
-   "fieldname": "section_break_43", 
-   "fieldtype": "Section Break", 
+   "fieldname": "section_break_43",
+   "fieldtype": "Section Break",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "other_charges_total", 
-   "fieldtype": "Currency", 
-   "label": "Total Taxes and Charges (Company Currency)", 
-   "oldfieldname": "other_charges_total", 
-   "oldfieldtype": "Currency", 
-   "options": "Company:company:default_currency", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "other_charges_total",
+   "fieldtype": "Currency",
+   "label": "Total Taxes and Charges (Company Currency)",
+   "oldfieldname": "other_charges_total",
+   "oldfieldtype": "Currency",
+   "options": "Company:company:default_currency",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 1
-  }, 
+  },
   {
-   "fieldname": "column_break_45", 
-   "fieldtype": "Column Break", 
+   "fieldname": "column_break_45",
+   "fieldtype": "Column Break",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "other_charges_total_export", 
-   "fieldtype": "Currency", 
-   "label": "Total Taxes and Charges", 
-   "options": "currency", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "other_charges_total_export",
+   "fieldtype": "Currency",
+   "label": "Total Taxes and Charges",
+   "options": "currency",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 1
-  }, 
+  },
   {
-   "fieldname": "discount_amount", 
-   "fieldtype": "Currency", 
-   "label": "Discount Amount", 
-   "options": "Company:company:default_currency", 
-   "permlevel": 0, 
+   "fieldname": "discount_amount",
+   "fieldtype": "Currency",
+   "label": "Discount Amount",
+   "options": "Company:company:default_currency",
+   "permlevel": 0,
    "print_hide": 0
-  }, 
+  },
   {
-   "fieldname": "totals", 
-   "fieldtype": "Section Break", 
-   "label": "Totals", 
-   "oldfieldtype": "Section Break", 
-   "options": "icon-money", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "totals",
+   "fieldtype": "Section Break",
+   "label": "Totals",
+   "oldfieldtype": "Section Break",
+   "options": "icon-money",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 0
-  }, 
+  },
   {
-   "fieldname": "grand_total", 
-   "fieldtype": "Currency", 
-   "in_filter": 1, 
-   "label": "Grand Total (Company Currency)", 
-   "oldfieldname": "grand_total", 
-   "oldfieldtype": "Currency", 
-   "options": "Company:company:default_currency", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 1, 
-   "reqd": 1, 
+   "fieldname": "grand_total",
+   "fieldtype": "Currency",
+   "in_filter": 1,
+   "label": "Grand Total (Company Currency)",
+   "oldfieldname": "grand_total",
+   "oldfieldtype": "Currency",
+   "options": "Company:company:default_currency",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 1,
+   "reqd": 1,
    "search_index": 0
-  }, 
+  },
   {
-   "fieldname": "rounded_total", 
-   "fieldtype": "Currency", 
-   "label": "Rounded Total (Company Currency)", 
-   "oldfieldname": "rounded_total", 
-   "oldfieldtype": "Currency", 
-   "options": "Company:company:default_currency", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "rounded_total",
+   "fieldtype": "Currency",
+   "label": "Rounded Total (Company Currency)",
+   "oldfieldname": "rounded_total",
+   "oldfieldtype": "Currency",
+   "options": "Company:company:default_currency",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 1
-  }, 
+  },
   {
-   "description": "In Words will be visible once you save the Sales Invoice.", 
-   "fieldname": "in_words", 
-   "fieldtype": "Data", 
-   "label": "In Words (Company Currency)", 
-   "oldfieldname": "in_words", 
-   "oldfieldtype": "Data", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "description": "In Words will be visible once you save the Sales Invoice.",
+   "fieldname": "in_words",
+   "fieldtype": "Data",
+   "label": "In Words (Company Currency)",
+   "oldfieldname": "in_words",
+   "oldfieldtype": "Data",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 1
-  }, 
+  },
   {
-   "fieldname": "total_advance", 
-   "fieldtype": "Currency", 
-   "label": "Total Advance", 
-   "oldfieldname": "total_advance", 
-   "oldfieldtype": "Currency", 
-   "options": "Company:company:default_currency", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "total_advance",
+   "fieldtype": "Currency",
+   "label": "Total Advance",
+   "oldfieldname": "total_advance",
+   "oldfieldtype": "Currency",
+   "options": "Company:company:default_currency",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 1
-  }, 
+  },
   {
-   "fieldname": "outstanding_amount", 
-   "fieldtype": "Currency", 
-   "in_list_view": 1, 
-   "label": "Outstanding Amount", 
-   "no_copy": 1, 
-   "oldfieldname": "outstanding_amount", 
-   "oldfieldtype": "Currency", 
-   "options": "Company:company:default_currency", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "outstanding_amount",
+   "fieldtype": "Currency",
+   "in_list_view": 1,
+   "label": "Outstanding Amount",
+   "no_copy": 1,
+   "oldfieldname": "outstanding_amount",
+   "oldfieldtype": "Currency",
+   "options": "Company:company:default_currency",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 1
-  }, 
+  },
   {
-   "fieldname": "column_break5", 
-   "fieldtype": "Column Break", 
-   "oldfieldtype": "Column Break", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 0, 
+   "fieldname": "column_break5",
+   "fieldtype": "Column Break",
+   "oldfieldtype": "Column Break",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 0,
    "width": "50%"
-  }, 
+  },
   {
-   "fieldname": "grand_total_export", 
-   "fieldtype": "Currency", 
-   "in_list_view": 1, 
-   "label": "Grand Total", 
-   "oldfieldname": "grand_total_export", 
-   "oldfieldtype": "Currency", 
-   "options": "currency", 
-   "permlevel": 0, 
-   "print_hide": 0, 
-   "read_only": 1, 
+   "fieldname": "grand_total_export",
+   "fieldtype": "Currency",
+   "in_list_view": 1,
+   "label": "Grand Total",
+   "oldfieldname": "grand_total_export",
+   "oldfieldtype": "Currency",
+   "options": "currency",
+   "permlevel": 0,
+   "print_hide": 0,
+   "read_only": 1,
    "reqd": 1
-  }, 
+  },
   {
-   "fieldname": "rounded_total_export", 
-   "fieldtype": "Currency", 
-   "label": "Rounded Total", 
-   "oldfieldname": "rounded_total_export", 
-   "oldfieldtype": "Currency", 
-   "options": "currency", 
-   "permlevel": 0, 
-   "print_hide": 0, 
+   "fieldname": "rounded_total_export",
+   "fieldtype": "Currency",
+   "label": "Rounded Total",
+   "oldfieldname": "rounded_total_export",
+   "oldfieldtype": "Currency",
+   "options": "currency",
+   "permlevel": 0,
+   "print_hide": 0,
    "read_only": 1
-  }, 
+  },
   {
-   "fieldname": "in_words_export", 
-   "fieldtype": "Data", 
-   "label": "In Words", 
-   "oldfieldname": "in_words_export", 
-   "oldfieldtype": "Data", 
-   "permlevel": 0, 
-   "print_hide": 0, 
+   "fieldname": "in_words_export",
+   "fieldtype": "Data",
+   "label": "In Words",
+   "oldfieldname": "in_words_export",
+   "oldfieldtype": "Data",
+   "permlevel": 0,
+   "print_hide": 0,
    "read_only": 1
-  }, 
+  },
   {
-   "fieldname": "gross_profit", 
-   "fieldtype": "Currency", 
-   "label": "Gross Profit", 
-   "oldfieldname": "gross_profit", 
-   "oldfieldtype": "Currency", 
-   "options": "Company:company:default_currency", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "gross_profit",
+   "fieldtype": "Currency",
+   "label": "Gross Profit",
+   "oldfieldname": "gross_profit",
+   "oldfieldtype": "Currency",
+   "options": "Company:company:default_currency",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 1
-  }, 
+  },
   {
-   "fieldname": "gross_profit_percent", 
-   "fieldtype": "Float", 
-   "label": "Gross Profit (%)", 
-   "oldfieldname": "gross_profit_percent", 
-   "oldfieldtype": "Currency", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "gross_profit_percent",
+   "fieldtype": "Float",
+   "label": "Gross Profit (%)",
+   "oldfieldname": "gross_profit_percent",
+   "oldfieldtype": "Currency",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 1
-  }, 
+  },
   {
-   "fieldname": "advances", 
-   "fieldtype": "Section Break", 
-   "label": "Advances", 
-   "oldfieldtype": "Section Break", 
-   "options": "icon-money", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "advances",
+   "fieldtype": "Section Break",
+   "label": "Advances",
+   "oldfieldtype": "Section Break",
+   "options": "icon-money",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 0
-  }, 
+  },
   {
-   "fieldname": "get_advances_received", 
-   "fieldtype": "Button", 
-   "label": "Get Advances Received", 
-   "oldfieldtype": "Button", 
-   "options": "get_advances", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "get_advances_received",
+   "fieldtype": "Button",
+   "label": "Get Advances Received",
+   "oldfieldtype": "Button",
+   "options": "get_advances",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 0
-  }, 
+  },
   {
-   "fieldname": "advance_adjustment_details", 
-   "fieldtype": "Table", 
-   "label": "Sales Invoice Advance", 
-   "oldfieldname": "advance_adjustment_details", 
-   "oldfieldtype": "Table", 
-   "options": "Sales Invoice Advance", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "advance_adjustment_details",
+   "fieldtype": "Table",
+   "label": "Sales Invoice Advance",
+   "oldfieldname": "advance_adjustment_details",
+   "oldfieldtype": "Table",
+   "options": "Sales Invoice Advance",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 0
-  }, 
+  },
   {
-   "depends_on": "is_pos", 
-   "fieldname": "payments_section", 
-   "fieldtype": "Section Break", 
-   "label": "Payments", 
-   "options": "icon-money", 
-   "permlevel": 0, 
+   "depends_on": "is_pos",
+   "fieldname": "payments_section",
+   "fieldtype": "Section Break",
+   "label": "Payments",
+   "options": "icon-money",
+   "permlevel": 0,
    "read_only": 0
-  }, 
+  },
   {
-   "depends_on": "is_pos", 
-   "fieldname": "column_break3", 
-   "fieldtype": "Column Break", 
-   "permlevel": 0, 
-   "read_only": 0, 
+   "depends_on": "is_pos",
+   "fieldname": "column_break3",
+   "fieldtype": "Column Break",
+   "permlevel": 0,
+   "read_only": 0,
    "width": "50%"
-  }, 
+  },
   {
-   "depends_on": "is_pos", 
-   "fieldname": "paid_amount", 
-   "fieldtype": "Currency", 
-   "label": "Paid Amount", 
-   "no_copy": 1, 
-   "oldfieldname": "paid_amount", 
-   "oldfieldtype": "Currency", 
-   "options": "Company:company:default_currency", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "depends_on": "is_pos",
+   "fieldname": "paid_amount",
+   "fieldtype": "Currency",
+   "label": "Paid Amount",
+   "no_copy": 1,
+   "oldfieldname": "paid_amount",
+   "oldfieldtype": "Currency",
+   "options": "Company:company:default_currency",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 0
-  }, 
+  },
   {
-   "depends_on": "is_pos", 
-   "fieldname": "cash_bank_account", 
-   "fieldtype": "Link", 
-   "label": "Cash/Bank Account", 
-   "oldfieldname": "cash_bank_account", 
-   "oldfieldtype": "Link", 
-   "options": "Account", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "depends_on": "is_pos",
+   "fieldname": "cash_bank_account",
+   "fieldtype": "Link",
+   "label": "Cash/Bank Account",
+   "oldfieldname": "cash_bank_account",
+   "oldfieldtype": "Link",
+   "options": "Account",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 0
-  }, 
+  },
   {
-   "depends_on": "is_pos", 
-   "fieldname": "column_break4", 
-   "fieldtype": "Column Break", 
-   "permlevel": 0, 
-   "read_only": 0, 
+   "depends_on": "is_pos",
+   "fieldname": "column_break4",
+   "fieldtype": "Column Break",
+   "permlevel": 0,
+   "read_only": 0,
    "width": "50%"
-  }, 
+  },
   {
-   "depends_on": "is_pos", 
-   "fieldname": "write_off_outstanding_amount_automatically", 
-   "fieldtype": "Check", 
-   "label": "Write Off Outstanding Amount", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "depends_on": "is_pos",
+   "fieldname": "write_off_outstanding_amount_automatically",
+   "fieldtype": "Check",
+   "label": "Write Off Outstanding Amount",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 0
-  }, 
+  },
   {
-   "depends_on": "is_pos", 
-   "fieldname": "write_off_amount", 
-   "fieldtype": "Currency", 
-   "label": "Write Off Amount", 
-   "no_copy": 1, 
-   "options": "Company:company:default_currency", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "depends_on": "is_pos",
+   "fieldname": "write_off_amount",
+   "fieldtype": "Currency",
+   "label": "Write Off Amount",
+   "no_copy": 1,
+   "options": "Company:company:default_currency",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 0
-  }, 
+  },
   {
-   "depends_on": "is_pos", 
-   "fieldname": "write_off_account", 
-   "fieldtype": "Link", 
-   "label": "Write Off Account", 
-   "options": "Account", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "depends_on": "is_pos",
+   "fieldname": "write_off_account",
+   "fieldtype": "Link",
+   "label": "Write Off Account",
+   "options": "Account",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 0
-  }, 
+  },
   {
-   "depends_on": "is_pos", 
-   "fieldname": "write_off_cost_center", 
-   "fieldtype": "Link", 
-   "label": "Write Off Cost Center", 
-   "options": "Cost Center", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "depends_on": "is_pos",
+   "fieldname": "write_off_cost_center",
+   "fieldtype": "Link",
+   "label": "Write Off Cost Center",
+   "options": "Cost Center",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 0
-  }, 
+  },
   {
-   "fieldname": "fold", 
-   "fieldtype": "Fold", 
+   "fieldname": "fold",
+   "fieldtype": "Fold",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "terms_section_break", 
-   "fieldtype": "Section Break", 
-   "label": "Terms and Conditions", 
-   "oldfieldtype": "Section Break", 
-   "options": "icon-legal", 
-   "permlevel": 0, 
+   "fieldname": "terms_section_break",
+   "fieldtype": "Section Break",
+   "label": "Terms and Conditions",
+   "oldfieldtype": "Section Break",
+   "options": "icon-legal",
+   "permlevel": 0,
    "read_only": 0
-  }, 
+  },
   {
-   "fieldname": "tc_name", 
-   "fieldtype": "Link", 
-   "label": "Terms", 
-   "oldfieldname": "tc_name", 
-   "oldfieldtype": "Link", 
-   "options": "Terms and Conditions", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "tc_name",
+   "fieldtype": "Link",
+   "label": "Terms",
+   "oldfieldname": "tc_name",
+   "oldfieldtype": "Link",
+   "options": "Terms and Conditions",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 0
-  }, 
+  },
   {
-   "fieldname": "terms", 
-   "fieldtype": "Text Editor", 
-   "label": "Terms and Conditions Details", 
-   "oldfieldname": "terms", 
-   "oldfieldtype": "Text Editor", 
-   "permlevel": 0, 
+   "fieldname": "terms",
+   "fieldtype": "Text Editor",
+   "label": "Terms and Conditions Details",
+   "oldfieldname": "terms",
+   "oldfieldtype": "Text Editor",
+   "permlevel": 0,
    "read_only": 0
-  }, 
+  },
   {
-   "depends_on": "customer", 
-   "fieldname": "contact_section", 
-   "fieldtype": "Section Break", 
-   "hidden": 0, 
-   "label": "Contact Info", 
-   "options": "icon-bullhorn", 
-   "permlevel": 0, 
+   "depends_on": "customer",
+   "fieldname": "contact_section",
+   "fieldtype": "Section Break",
+   "hidden": 0,
+   "label": "Contact Info",
+   "options": "icon-bullhorn",
+   "permlevel": 0,
    "read_only": 0
-  }, 
+  },
   {
-   "description": "<a href=\"#Sales Browser/Territory\">Add / Edit</a>", 
-   "fieldname": "territory", 
-   "fieldtype": "Link", 
-   "in_filter": 1, 
-   "label": "Territory", 
-   "options": "Territory", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 0, 
-   "reqd": 1, 
+   "description": "<a href=\"#Sales Browser/Territory\">Add / Edit</a>",
+   "fieldname": "territory",
+   "fieldtype": "Link",
+   "in_filter": 1,
+   "label": "Territory",
+   "options": "Territory",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 0,
+   "reqd": 1,
    "search_index": 0
-  }, 
+  },
   {
-   "description": "<a href=\"#Sales Browser/Customer Group\">Add / Edit</a>", 
-   "fieldname": "customer_group", 
-   "fieldtype": "Link", 
-   "in_filter": 1, 
-   "label": "Customer Group", 
-   "options": "Customer Group", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 0, 
+   "description": "<a href=\"#Sales Browser/Customer Group\">Add / Edit</a>",
+   "fieldname": "customer_group",
+   "fieldtype": "Link",
+   "in_filter": 1,
+   "label": "Customer Group",
+   "options": "Customer Group",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 0,
    "search_index": 0
-  }, 
+  },
   {
-   "fieldname": "col_break23", 
-   "fieldtype": "Column Break", 
-   "permlevel": 0, 
-   "read_only": 0, 
+   "fieldname": "col_break23",
+   "fieldtype": "Column Break",
+   "permlevel": 0,
+   "read_only": 0,
    "width": "50%"
-  }, 
+  },
   {
-   "fieldname": "customer_address", 
-   "fieldtype": "Link", 
-   "label": "Customer Address", 
-   "options": "Address", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "customer_address",
+   "fieldtype": "Link",
+   "label": "Customer Address",
+   "options": "Address",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 0
-  }, 
+  },
   {
-   "fieldname": "contact_person", 
-   "fieldtype": "Link", 
-   "label": "Contact Person", 
-   "options": "Contact", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "contact_person",
+   "fieldtype": "Link",
+   "label": "Contact Person",
+   "options": "Contact",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 0
-  }, 
+  },
   {
-   "fieldname": "more_info", 
-   "fieldtype": "Section Break", 
-   "label": "More Info", 
-   "oldfieldtype": "Section Break", 
-   "options": "icon-file-text", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "more_info",
+   "fieldtype": "Section Break",
+   "label": "More Info",
+   "oldfieldtype": "Section Break",
+   "options": "icon-file-text",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 0
-  }, 
+  },
   {
-   "description": "Customer (Receivable) Account", 
-   "fieldname": "debit_to", 
-   "fieldtype": "Link", 
-   "in_filter": 1, 
-   "label": "Debit To", 
-   "oldfieldname": "debit_to", 
-   "oldfieldtype": "Link", 
-   "options": "Account", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 0, 
-   "reqd": 1, 
+   "description": "Customer (Receivable) Account",
+   "fieldname": "debit_to",
+   "fieldtype": "Link",
+   "in_filter": 1,
+   "label": "Debit To",
+   "oldfieldname": "debit_to",
+   "oldfieldtype": "Link",
+   "options": "Account",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 0,
+   "reqd": 1,
    "search_index": 1
-  }, 
+  },
   {
-   "fieldname": "project_name", 
-   "fieldtype": "Link", 
-   "in_filter": 1, 
-   "label": "Project Name", 
-   "oldfieldname": "project_name", 
-   "oldfieldtype": "Link", 
-   "options": "Project", 
-   "permlevel": 0, 
-   "read_only": 0, 
+   "fieldname": "project_name",
+   "fieldtype": "Link",
+   "in_filter": 1,
+   "label": "Project Name",
+   "oldfieldname": "project_name",
+   "oldfieldtype": "Link",
+   "options": "Project",
+   "permlevel": 0,
+   "read_only": 0,
    "search_index": 1
-  }, 
+  },
   {
-   "depends_on": "eval:doc.source == 'Campaign'", 
-   "fieldname": "campaign", 
-   "fieldtype": "Link", 
-   "label": "Campaign", 
-   "oldfieldname": "campaign", 
-   "oldfieldtype": "Link", 
-   "options": "Campaign", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "depends_on": "eval:doc.source == 'Campaign'",
+   "fieldname": "campaign",
+   "fieldtype": "Link",
+   "label": "Campaign",
+   "oldfieldname": "campaign",
+   "oldfieldtype": "Link",
+   "options": "Campaign",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 0
-  }, 
+  },
   {
-   "fieldname": "source", 
-   "fieldtype": "Select", 
-   "label": "Source", 
-   "oldfieldname": "source", 
-   "oldfieldtype": "Select", 
-   "options": "\nExisting Customer\nReference\nAdvertisement\nCold Calling\nExhibition\nSupplier Reference\nMass Mailing\nCustomer's Vendor\nCampaign", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "source",
+   "fieldtype": "Select",
+   "label": "Source",
+   "oldfieldname": "source",
+   "oldfieldtype": "Select",
+   "options": "\nExisting Customer\nReference\nAdvertisement\nCold Calling\nExhibition\nSupplier Reference\nMass Mailing\nCustomer's Vendor\nCampaign",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 0
-  }, 
+  },
   {
-   "default": "No", 
-   "description": "Considered as an Opening Balance", 
-   "fieldname": "is_opening", 
-   "fieldtype": "Select", 
-   "in_filter": 1, 
-   "label": "Is Opening Entry", 
-   "oldfieldname": "is_opening", 
-   "oldfieldtype": "Select", 
-   "options": "No\nYes", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 0, 
+   "default": "No",
+   "description": "Considered as an Opening Balance",
+   "fieldname": "is_opening",
+   "fieldtype": "Select",
+   "in_filter": 1,
+   "label": "Is Opening Entry",
+   "oldfieldname": "is_opening",
+   "oldfieldtype": "Select",
+   "options": "No\nYes",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 0,
    "search_index": 0
-  }, 
+  },
   {
-   "fieldname": "c_form_applicable", 
-   "fieldtype": "Select", 
-   "label": "C-Form Applicable", 
-   "no_copy": 1, 
-   "options": "No\nYes", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 0, 
+   "fieldname": "c_form_applicable",
+   "fieldtype": "Select",
+   "label": "C-Form Applicable",
+   "no_copy": 1,
+   "options": "No\nYes",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 0,
    "report_hide": 0
-  }, 
+  },
   {
-   "fieldname": "c_form_no", 
-   "fieldtype": "Link", 
-   "label": "C-Form No", 
-   "no_copy": 1, 
-   "options": "C-Form", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "c_form_no",
+   "fieldtype": "Link",
+   "label": "C-Form No",
+   "no_copy": 1,
+   "options": "C-Form",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 1
-  }, 
+  },
   {
-   "fieldname": "column_break8", 
-   "fieldtype": "Column Break", 
-   "oldfieldtype": "Column Break", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "column_break8",
+   "fieldtype": "Column Break",
+   "oldfieldtype": "Column Break",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 0
-  }, 
+  },
   {
-   "allow_on_submit": 1, 
-   "fieldname": "letter_head", 
-   "fieldtype": "Link", 
-   "label": "Letter Head", 
-   "oldfieldname": "letter_head", 
-   "oldfieldtype": "Select", 
-   "options": "Letter Head", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "allow_on_submit": 1,
+   "fieldname": "letter_head",
+   "fieldtype": "Link",
+   "label": "Letter Head",
+   "oldfieldname": "letter_head",
+   "oldfieldtype": "Select",
+   "options": "Letter Head",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 0
-  }, 
+  },
   {
-   "allow_on_submit": 1, 
-   "fieldname": "select_print_heading", 
-   "fieldtype": "Link", 
-   "label": "Print Heading", 
-   "no_copy": 1, 
-   "oldfieldname": "select_print_heading", 
-   "oldfieldtype": "Link", 
-   "options": "Print Heading", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 0, 
+   "allow_on_submit": 1,
+   "fieldname": "select_print_heading",
+   "fieldtype": "Link",
+   "label": "Print Heading",
+   "no_copy": 1,
+   "oldfieldname": "select_print_heading",
+   "oldfieldtype": "Link",
+   "options": "Print Heading",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 0,
    "report_hide": 1
-  }, 
+  },
   {
-   "fieldname": "posting_time", 
-   "fieldtype": "Time", 
-   "label": "Posting Time", 
-   "no_copy": 1, 
-   "oldfieldname": "posting_time", 
-   "oldfieldtype": "Time", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "posting_time",
+   "fieldtype": "Time",
+   "label": "Posting Time",
+   "no_copy": 1,
+   "oldfieldname": "posting_time",
+   "oldfieldtype": "Time",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 0
-  }, 
+  },
   {
-   "description": "Actual Invoice Date", 
-   "fieldname": "aging_date", 
-   "fieldtype": "Date", 
-   "label": "Aging Date", 
-   "oldfieldname": "aging_date", 
-   "oldfieldtype": "Date", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "description": "Actual Invoice Date",
+   "fieldname": "aging_date",
+   "fieldtype": "Date",
+   "label": "Aging Date",
+   "oldfieldname": "aging_date",
+   "oldfieldtype": "Date",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 0
-  }, 
+  },
   {
-   "fieldname": "fiscal_year", 
-   "fieldtype": "Link", 
-   "in_filter": 1, 
-   "label": "Fiscal Year", 
-   "no_copy": 0, 
-   "oldfieldname": "fiscal_year", 
-   "oldfieldtype": "Select", 
-   "options": "Fiscal Year", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 0, 
-   "reqd": 1, 
+   "fieldname": "fiscal_year",
+   "fieldtype": "Link",
+   "in_filter": 1,
+   "label": "Fiscal Year",
+   "no_copy": 0,
+   "oldfieldname": "fiscal_year",
+   "oldfieldtype": "Select",
+   "options": "Fiscal Year",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 0,
+   "reqd": 1,
    "search_index": 0
-  }, 
+  },
   {
-   "fieldname": "remarks", 
-   "fieldtype": "Small Text", 
-   "label": "Remarks", 
-   "no_copy": 1, 
-   "oldfieldname": "remarks", 
-   "oldfieldtype": "Text", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 0, 
+   "fieldname": "remarks",
+   "fieldtype": "Small Text",
+   "label": "Remarks",
+   "no_copy": 1,
+   "oldfieldname": "remarks",
+   "oldfieldtype": "Text",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 0,
    "reqd": 0
-  }, 
+  },
   {
-   "fieldname": "sales_team_section_break", 
-   "fieldtype": "Section Break", 
-   "label": "Sales Team", 
-   "oldfieldtype": "Section Break", 
-   "options": "icon-group", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "sales_team_section_break",
+   "fieldtype": "Section Break",
+   "label": "Sales Team",
+   "oldfieldtype": "Section Break",
+   "options": "icon-group",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 0
-  }, 
+  },
   {
-   "fieldname": "column_break9", 
-   "fieldtype": "Column Break", 
-   "oldfieldtype": "Column Break", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 0, 
+   "fieldname": "column_break9",
+   "fieldtype": "Column Break",
+   "oldfieldtype": "Column Break",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 0,
    "width": "50%"
-  }, 
+  },
   {
-   "fieldname": "sales_partner", 
-   "fieldtype": "Link", 
-   "in_filter": 1, 
-   "label": "Sales Partner", 
-   "oldfieldname": "sales_partner", 
-   "oldfieldtype": "Link", 
-   "options": "Sales Partner", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "sales_partner",
+   "fieldtype": "Link",
+   "in_filter": 1,
+   "label": "Sales Partner",
+   "oldfieldname": "sales_partner",
+   "oldfieldtype": "Link",
+   "options": "Sales Partner",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 0
-  }, 
+  },
   {
-   "fieldname": "column_break10", 
-   "fieldtype": "Column Break", 
-   "oldfieldtype": "Column Break", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 0, 
+   "fieldname": "column_break10",
+   "fieldtype": "Column Break",
+   "oldfieldtype": "Column Break",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 0,
    "width": "50%"
-  }, 
+  },
   {
-   "fieldname": "commission_rate", 
-   "fieldtype": "Float", 
-   "label": "Commission Rate (%)", 
-   "oldfieldname": "commission_rate", 
-   "oldfieldtype": "Currency", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "commission_rate",
+   "fieldtype": "Float",
+   "label": "Commission Rate (%)",
+   "oldfieldname": "commission_rate",
+   "oldfieldtype": "Currency",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 0
-  }, 
+  },
   {
-   "fieldname": "total_commission", 
-   "fieldtype": "Currency", 
-   "label": "Total Commission", 
-   "oldfieldname": "total_commission", 
-   "oldfieldtype": "Currency", 
-   "options": "Company:company:default_currency", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "total_commission",
+   "fieldtype": "Currency",
+   "label": "Total Commission",
+   "oldfieldname": "total_commission",
+   "oldfieldtype": "Currency",
+   "options": "Company:company:default_currency",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 0
-  }, 
+  },
   {
-   "fieldname": "section_break2", 
-   "fieldtype": "Section Break", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "section_break2",
+   "fieldtype": "Section Break",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 0
-  }, 
+  },
   {
-   "fieldname": "sales_team", 
-   "fieldtype": "Table", 
-   "label": "Sales Team1", 
-   "oldfieldname": "sales_team", 
-   "oldfieldtype": "Table", 
-   "options": "Sales Team", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "sales_team",
+   "fieldtype": "Table",
+   "label": "Sales Team1",
+   "oldfieldname": "sales_team",
+   "oldfieldtype": "Table",
+   "options": "Sales Team",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 0
-  }, 
+  },
   {
-   "depends_on": "eval:doc.docstatus<2", 
-   "fieldname": "recurring_invoice", 
-   "fieldtype": "Section Break", 
-   "label": "Recurring Invoice", 
-   "options": "icon-time", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "depends_on": "eval:doc.docstatus<2",
+   "fieldname": "recurring_invoice",
+   "fieldtype": "Section Break",
+   "label": "Recurring Invoice",
+   "options": "icon-time",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 0
-  }, 
+  },
   {
-   "fieldname": "column_break11", 
-   "fieldtype": "Column Break", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 0, 
+   "fieldname": "column_break11",
+   "fieldtype": "Column Break",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 0,
    "width": "50%"
-  }, 
+  },
   {
-   "allow_on_submit": 1, 
-   "depends_on": "eval:doc.docstatus<2", 
-   "description": "Check if recurring invoice, uncheck to stop recurring or put proper End Date", 
-   "fieldname": "is_recurring", 
-   "fieldtype": "Check", 
-   "label": "Is Recurring", 
-   "no_copy": 1, 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "allow_on_submit": 1,
+   "depends_on": "eval:doc.docstatus<2",
+   "description": "Check if recurring invoice, uncheck to stop recurring or put proper End Date",
+   "fieldname": "is_recurring",
+   "fieldtype": "Check",
+   "label": "Is Recurring",
+   "no_copy": 1,
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 0
-  }, 
+  },
   {
-   "allow_on_submit": 1, 
-   "depends_on": "eval:doc.is_recurring==1", 
-   "description": "Select the period when the invoice will be generated automatically", 
-   "fieldname": "recurring_type", 
-   "fieldtype": "Select", 
-   "label": "Recurring Type", 
-   "no_copy": 1, 
-   "options": "\nMonthly\nQuarterly\nHalf-yearly\nYearly", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "allow_on_submit": 1,
+   "depends_on": "eval:doc.is_recurring==1",
+   "description": "Select the period when the invoice will be generated automatically",
+   "fieldname": "recurring_type",
+   "fieldtype": "Select",
+   "label": "Recurring Type",
+   "no_copy": 1,
+   "options": "\nMonthly\nQuarterly\nHalf-yearly\nYearly",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 0
-  }, 
+  },
   {
-   "allow_on_submit": 1, 
-   "depends_on": "eval:doc.is_recurring==1", 
-   "description": "The day of the month on which auto invoice will be generated e.g. 05, 28 etc ", 
-   "fieldname": "repeat_on_day_of_month", 
-   "fieldtype": "Int", 
-   "label": "Repeat on Day of Month", 
-   "no_copy": 1, 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "allow_on_submit": 1,
+   "depends_on": "eval:doc.is_recurring==1",
+   "description": "Start date of current invoice's period",
+   "fieldname": "from_date",
+   "fieldtype": "Date",
+   "label": "From Date",
+   "no_copy": 1,
+   "permlevel": 0,
+   "print_hide": 0,
    "read_only": 0
-  }, 
+  },
   {
-   "depends_on": "eval:doc.is_recurring==1", 
-   "description": "The date on which next invoice will be generated. It is generated on submit.\n", 
-   "fieldname": "next_date", 
-   "fieldtype": "Date", 
-   "label": "Next Date", 
-   "no_copy": 1, 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "allow_on_submit": 1,
+   "depends_on": "eval:doc.is_recurring==1",
+   "description": "End date of current invoice's period",
+   "fieldname": "to_date",
+   "fieldtype": "Date",
+   "label": "To Date",
+   "no_copy": 1,
+   "permlevel": 0,
+   "print_hide": 0,
+   "read_only": 0
+  },
+  {
+   "allow_on_submit": 1,
+   "depends_on": "eval:doc.is_recurring==1",
+   "description": "The day of the month on which auto invoice will be generated e.g. 05, 28 etc ",
+   "fieldname": "repeat_on_day_of_month",
+   "fieldtype": "Int",
+   "label": "Repeat on Day of Month",
+   "no_copy": 1,
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 0
+  },
+  {
+   "allow_on_submit": 1,
+   "depends_on": "eval:doc.is_recurring==1",
+   "description": "The date on which recurring invoice will be stop",
+   "fieldname": "end_date",
+   "fieldtype": "Date",
+   "label": "End Date",
+   "no_copy": 1,
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 0
+  },
+  {
+   "fieldname": "column_break12",
+   "fieldtype": "Column Break",
+   "no_copy": 0,
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 0,
+   "width": "50%"
+  },
+  {
+   "depends_on": "eval:doc.is_recurring==1",
+   "description": "The date on which next invoice will be generated. It is generated on submit.\n",
+   "fieldname": "next_date",
+   "fieldtype": "Date",
+   "label": "Next Date",
+   "no_copy": 1,
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 1
-  }, 
+  },
   {
-   "allow_on_submit": 1, 
-   "depends_on": "eval:doc.is_recurring==1", 
-   "description": "The date on which recurring invoice will be stop", 
-   "fieldname": "end_date", 
-   "fieldtype": "Date", 
-   "label": "End Date", 
-   "no_copy": 1, 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 0
-  }, 
-  {
-   "fieldname": "column_break12", 
-   "fieldtype": "Column Break", 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 0, 
-   "width": "50%"
-  }, 
-  {
-   "depends_on": "eval:doc.is_recurring==1", 
-   "description": "The unique id for tracking all recurring invoices.\u00a0It is generated on submit.", 
-   "fieldname": "recurring_id", 
-   "fieldtype": "Data", 
-   "label": "Recurring Id", 
-   "no_copy": 1, 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "depends_on": "eval:doc.is_recurring==1",
+   "description": "The unique id for tracking all recurring invoices.\u00a0It is generated on submit.",
+   "fieldname": "recurring_id",
+   "fieldtype": "Data",
+   "label": "Recurring Id",
+   "no_copy": 1,
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 1
-  }, 
+  },
   {
-   "allow_on_submit": 1, 
-   "depends_on": "eval:doc.is_recurring==1", 
-   "description": "Enter email id separated by commas, invoice will be mailed automatically on particular date", 
-   "fieldname": "notification_email_address", 
-   "fieldtype": "Small Text", 
-   "label": "Notification Email Address", 
-   "no_copy": 1, 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "allow_on_submit": 1,
+   "depends_on": "eval:doc.is_recurring==1",
+   "description": "Enter email id separated by commas, invoice will be mailed automatically on particular date",
+   "fieldname": "notification_email_address",
+   "fieldtype": "Small Text",
+   "label": "Notification Email Address",
+   "no_copy": 1,
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 0
-  }, 
+  },
   {
-   "fieldname": "against_income_account", 
-   "fieldtype": "Small Text", 
-   "hidden": 1, 
-   "label": "Against Income Account", 
-   "no_copy": 1, 
-   "oldfieldname": "against_income_account", 
-   "oldfieldtype": "Small Text", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 0, 
+   "fieldname": "against_income_account",
+   "fieldtype": "Small Text",
+   "hidden": 1,
+   "label": "Against Income Account",
+   "no_copy": 1,
+   "oldfieldname": "against_income_account",
+   "oldfieldtype": "Small Text",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 0,
    "report_hide": 1
   }
- ], 
- "icon": "icon-file-text", 
- "idx": 1, 
- "is_submittable": 1, 
- "modified": "2014-10-09 12:08:33.594385", 
- "modified_by": "Administrator", 
- "module": "Accounts", 
- "name": "Sales Invoice", 
- "owner": "Administrator", 
+ ],
+ "icon": "icon-file-text",
+ "idx": 1,
+ "is_submittable": 1,
+ "modified": "2014-10-22 16:54:22.284284",
+ "modified_by": "Administrator",
+ "module": "Accounts",
+ "name": "Sales Invoice",
+ "owner": "Administrator",
  "permissions": [
   {
-   "amend": 1, 
-   "cancel": 1, 
-   "create": 1, 
-   "delete": 1, 
-   "email": 1, 
-   "permlevel": 0, 
-   "print": 1, 
-   "read": 1, 
-   "report": 1, 
-   "role": "Accounts Manager", 
-   "submit": 1, 
+   "amend": 1,
+   "cancel": 1,
+   "create": 1,
+   "delete": 1,
+   "email": 1,
+   "permlevel": 0,
+   "print": 1,
+   "read": 1,
+   "report": 1,
+   "role": "Accounts Manager",
+   "submit": 1,
    "write": 1
-  }, 
+  },
   {
-   "amend": 1, 
-   "apply_user_permissions": 1, 
-   "cancel": 0, 
-   "create": 1, 
-   "delete": 0, 
-   "email": 1, 
-   "permlevel": 0, 
-   "print": 1, 
-   "read": 1, 
-   "report": 1, 
-   "role": "Accounts User", 
-   "submit": 1, 
+   "amend": 1,
+   "apply_user_permissions": 1,
+   "cancel": 0,
+   "create": 1,
+   "delete": 0,
+   "email": 1,
+   "permlevel": 0,
+   "print": 1,
+   "read": 1,
+   "report": 1,
+   "role": "Accounts User",
+   "submit": 1,
    "write": 1
-  }, 
+  },
   {
-   "apply_user_permissions": 1, 
-   "cancel": 0, 
-   "delete": 0, 
-   "email": 1, 
-   "permlevel": 0, 
-   "print": 1, 
-   "read": 1, 
-   "report": 1, 
+   "apply_user_permissions": 1,
+   "cancel": 0,
+   "delete": 0,
+   "email": 1,
+   "permlevel": 0,
+   "print": 1,
+   "read": 1,
+   "report": 1,
    "role": "Customer"
-  }, 
+  },
   {
-   "permlevel": 1, 
-   "read": 1, 
-   "role": "Accounts Manager", 
+   "permlevel": 1,
+   "read": 1,
+   "role": "Accounts Manager",
    "write": 1
   }
- ], 
- "read_only_onload": 1, 
- "search_fields": "posting_date, due_date, customer, fiscal_year, grand_total, outstanding_amount", 
- "sort_field": "modified", 
+ ],
+ "read_only_onload": 1,
+ "search_fields": "posting_date, due_date, customer, fiscal_year, grand_total, outstanding_amount",
+ "sort_field": "modified",
  "sort_order": "DESC"
-}
\ No newline at end of file
+}
diff --git a/erpnext/accounts/general_ledger.py b/erpnext/accounts/general_ledger.py
index 38ad733..5b1bd28 100644
--- a/erpnext/accounts/general_ledger.py
+++ b/erpnext/accounts/general_ledger.py
@@ -97,8 +97,7 @@
 
 		for entry in gl_map:
 			if entry.account in aii_accounts:
-				frappe.throw(_("Account: {0} can only be updated via \
-					Stock Transactions").format(entry.account), StockAccountInvalidTransaction)
+				frappe.throw(_("Account: {0} can only be updated via Stock Transactions").format(entry.account), StockAccountInvalidTransaction)
 
 
 def delete_gl_entries(gl_entries=None, voucher_type=None, voucher_no=None,
diff --git a/erpnext/accounts/page/accounts_browser/accounts_browser.py b/erpnext/accounts/page/accounts_browser/accounts_browser.py
index 15cfdd2..1a81e7b 100644
--- a/erpnext/accounts/page/accounts_browser/accounts_browser.py
+++ b/erpnext/accounts/page/accounts_browser/accounts_browser.py
@@ -10,38 +10,38 @@
 @frappe.whitelist()
 def get_companies():
 	"""get a list of companies based on permission"""
-	return [d.name for d in frappe.get_list("Company", fields=["name"], 
+	return [d.name for d in frappe.get_list("Company", fields=["name"],
 		order_by="name")]
 
 @frappe.whitelist()
 def get_children():
 	args = frappe.local.form_dict
 	ctype, company = args['ctype'], args['comp']
-	
+
 	# root
 	if args['parent'] in ("Accounts", "Cost Centers"):
-		acc = frappe.db.sql(""" select 
+		acc = frappe.db.sql(""" select
 			name as value, if(group_or_ledger='Group', 1, 0) as expandable
 			from `tab%s`
 			where ifnull(parent_%s,'') = ''
-			and `company` = %s	and docstatus<2 
+			and `company` = %s	and docstatus<2
 			order by name""" % (ctype, ctype.lower().replace(' ','_'), '%s'),
 				company, as_dict=1)
-	else:	
+	else:
 		# other
-		acc = frappe.db.sql("""select 
+		acc = frappe.db.sql("""select
 			name as value, if(group_or_ledger='Group', 1, 0) as expandable
-	 		from `tab%s` 
+	 		from `tab%s`
 			where ifnull(parent_%s,'') = %s
-			and docstatus<2 
+			and docstatus<2
 			order by name""" % (ctype, ctype.lower().replace(' ','_'), '%s'),
 				args['parent'], as_dict=1)
-				
+
 	if ctype == 'Account':
 		currency = frappe.db.sql("select default_currency from `tabCompany` where name = %s", company)[0][0]
 		for each in acc:
 			bal = get_balance_on(each.get("value"))
 			each["currency"] = currency
 			each["balance"] = flt(bal)
-		
+
 	return acc
diff --git a/erpnext/accounts/print_format/credit_note/credit_note.json b/erpnext/accounts/print_format/credit_note/credit_note.json
index 31507b4..ac0de75 100644
--- a/erpnext/accounts/print_format/credit_note/credit_note.json
+++ b/erpnext/accounts/print_format/credit_note/credit_note.json
@@ -4,9 +4,9 @@
  "doc_type": "Journal Voucher", 
  "docstatus": 0, 
  "doctype": "Print Format", 
- "html": "{%- from \"templates/print_formats/standard_macros.html\" import add_header -%}\n\n<div class=\"page-break\">\n    {%- if not doc.get(\"print_heading\") and not doc.get(\"select_print_heading\") \n        and doc.set(\"select_print_heading\", _(\"Credit Note\")) -%}{%- endif -%}\n    {{ add_header(0, 1, doc, letter_head, no_letterhead) }}\n\n    {%- for label, value in (\n        (_(\"Credit To\"), doc.pay_to_recd_from),\n        (_(\"Date\"), frappe.utils.formatdate(doc.voucher_date)),\n        (_(\"Amount\"), \"<strong>\" + doc.total_amount + \"</strong><br>\" + (doc.total_amount_in_words or \"\") + \"<br>\"),\n        (_(\"Remarks\"), doc.remark)\n    ) -%}\n\n    <div class=\"row\">\n        <div class=\"col-sm-3\"><label class=\"text-right\">{{ label }}</label></div>\n        <div class=\"col-sm-9\">{{ value }}</div>\n    </div>\n\n    {%- endfor -%}\n\n    <hr>\n    <br>\n    <p class=\"strong\">\n        {{ _(\"For\") }} {{ doc.company }},<br>\n        <br>\n        <br>\n        <br>\n        {{ _(\"Authorized Signatory\") }}\n    </p>\n</div>\n\n\n", 
+ "html": "{%- from \"templates/print_formats/standard_macros.html\" import add_header -%}\n\n<div class=\"page-break\">\n    {%- if not doc.get(\"print_heading\") and not doc.get(\"select_print_heading\") \n        and doc.set(\"select_print_heading\", _(\"Credit Note\")) -%}{%- endif -%}\n    {{ add_header(0, 1, doc, letter_head, no_letterhead) }}\n\n    {%- for label, value in (\n        (_(\"Credit To\"), doc.pay_to_recd_from),\n        (_(\"Date\"), frappe.utils.formatdate(doc.voucher_date)),\n        (_(\"Amount\"), \"<strong>\" + frappe.utils.cstr(doc.total_amount) + \"</strong><br>\" + (doc.total_amount_in_words or \"\") + \"<br>\"),\n        (_(\"Remarks\"), doc.remark)\n    ) -%}\n\n    <div class=\"row\">\n        <div class=\"col-sm-3\"><label class=\"text-right\">{{ label }}</label></div>\n        <div class=\"col-sm-9\">{{ value }}</div>\n    </div>\n\n    {%- endfor -%}\n\n    <hr>\n    <br>\n    <p class=\"strong\">\n        {{ _(\"For\") }} {{ doc.company }},<br>\n        <br>\n        <br>\n        <br>\n        {{ _(\"Authorized Signatory\") }}\n    </p>\n</div>\n\n\n", 
  "idx": 2, 
- "modified": "2014-08-29 13:20:15.789533", 
+ "modified": "2014-10-17 17:20:02.740340", 
  "modified_by": "Administrator", 
  "module": "Accounts", 
  "name": "Credit Note", 
diff --git a/erpnext/accounts/report/accounts_payable/accounts_payable.py b/erpnext/accounts/report/accounts_payable/accounts_payable.py
index bc42033..3972421 100644
--- a/erpnext/accounts/report/accounts_payable/accounts_payable.py
+++ b/erpnext/accounts/report/accounts_payable/accounts_payable.py
@@ -26,7 +26,8 @@
 	data = []
 	for gle in entries:
 		if cstr(gle.against_voucher) == gle.voucher_no or not gle.against_voucher \
-				or [gle.against_voucher_type, gle.against_voucher] in entries_after_report_date:
+				or [gle.against_voucher_type, gle.against_voucher] in entries_after_report_date \
+				or (gle.against_voucher_type == "Purchase Order"):
 			voucher_details = voucher_detail_map.get(gle.voucher_type, {}).get(gle.voucher_no, {})
 
 			invoiced_amount = gle.credit > 0 and gle.credit or 0
diff --git a/erpnext/accounts/report/accounts_receivable/accounts_receivable.py b/erpnext/accounts/report/accounts_receivable/accounts_receivable.py
index b239289..a0ae70e 100644
--- a/erpnext/accounts/report/accounts_receivable/accounts_receivable.py
+++ b/erpnext/accounts/report/accounts_receivable/accounts_receivable.py
@@ -28,8 +28,8 @@
 			_("Due Date") + ":Date:80", _("Invoiced Amount") + ":Currency:100",
 			_("Payment Received") + ":Currency:100", _("Outstanding Amount") + ":Currency:100",
 			_("Age") + ":Int:50", "0-" + self.filters.range1 + ":Currency:100",
-			self.filters.range1 + "-" + self.filters.range2 + ":Currency:100", 
-			self.filters.range2 + "-" + self.filters.range3 + ":Currency:100", 
+			self.filters.range1 + "-" + self.filters.range2 + ":Currency:100",
+			self.filters.range2 + "-" + self.filters.range3 + ":Currency:100",
 			self.filters.range3 + _("-Above") + ":Currency:100",
 			_("Territory") + ":Link/Territory:80", _("Remarks") + "::200"
 		]
@@ -81,6 +81,9 @@
 			# advance
 			(not gle.against_voucher) or
 
+			# against sales order
+			(gle.against_voucher_type == "Sales Order") or
+
 			# sales invoice
 			(gle.against_voucher==gle.voucher_no and gle.debit > 0) or
 
diff --git a/erpnext/accounts/report/general_ledger/general_ledger.py b/erpnext/accounts/report/general_ledger/general_ledger.py
index ed0fd9d..b19c77b 100644
--- a/erpnext/accounts/report/general_ledger/general_ledger.py
+++ b/erpnext/accounts/report/general_ledger/general_ledger.py
@@ -34,9 +34,9 @@
 		frappe.throw(_("From Date must be before To Date"))
 
 def get_columns():
-	return ["Posting Date:Date:100", "Account:Link/Account:200", "Debit:Float:100",
-		"Credit:Float:100", "Voucher Type::120", "Voucher No:Dynamic Link/Voucher Type:160",
-		"Against Account::120", "Cost Center:Link/Cost Center:100", "Remarks::400"]
+	return [_("Posting Date") + ":Date:100", _("Account") + ":Link/Account:200", _("Debit") + ":Float:100",
+		_("Credit") + ":Float:100", _("Voucher Type") + "::120", _("Voucher No") + ":Dynamic Link/Voucher Type:160",
+		_("Against Account") + "::120", _("Cost Center") + ":Link/Cost Center:100", _("Remarks") + "::400"]
 
 def get_result(filters, account_details):
 	gl_entries = get_gl_entries(filters)
diff --git a/erpnext/accounts/utils.py b/erpnext/accounts/utils.py
index 0c108a4..e9de551 100644
--- a/erpnext/accounts/utils.py
+++ b/erpnext/accounts/utils.py
@@ -254,7 +254,7 @@
 				(d.diff, d.voucher_type, d.voucher_no))
 
 def get_stock_and_account_difference(account_list=None, posting_date=None):
-	from erpnext.stock.utils import get_stock_balance_on
+	from erpnext.stock.utils import get_stock_value_on
 
 	if not posting_date: posting_date = nowdate()
 
@@ -266,7 +266,7 @@
 
 	for account, warehouse in account_warehouse.items():
 		account_balance = get_balance_on(account, posting_date)
-		stock_value = get_stock_balance_on(warehouse, posting_date)
+		stock_value = get_stock_value_on(warehouse, posting_date)
 		if abs(flt(stock_value) - flt(account_balance)) > 0.005:
 			difference.setdefault(account, flt(stock_value) - flt(account_balance))
 
diff --git a/erpnext/buying/doctype/purchase_order/purchase_order.json b/erpnext/buying/doctype/purchase_order/purchase_order.json
index 142781c..f072b65 100644
--- a/erpnext/buying/doctype/purchase_order/purchase_order.json
+++ b/erpnext/buying/doctype/purchase_order/purchase_order.json
@@ -102,24 +102,6 @@
    "search_index": 1
   }, 
   {
-   "allow_on_submit": 1, 
-   "description": "Start date of current order's period", 
-   "fieldname": "from_date", 
-   "fieldtype": "Date", 
-   "label": "From Date", 
-   "no_copy": 1, 
-   "permlevel": 0
-  }, 
-  {
-   "allow_on_submit": 1, 
-   "description": "End date of current order's period", 
-   "fieldname": "to_date", 
-   "fieldtype": "Date", 
-   "label": "To Date", 
-   "no_copy": 1, 
-   "permlevel": 0
-  }, 
-  {
    "fieldname": "amended_from", 
    "fieldtype": "Link", 
    "hidden": 0, 
@@ -708,6 +690,26 @@
   {
    "allow_on_submit": 1, 
    "depends_on": "eval:doc.is_recurring==1", 
+   "description": "Start date of current order's period", 
+   "fieldname": "from_date", 
+   "fieldtype": "Date", 
+   "label": "From Date", 
+   "no_copy": 1, 
+   "permlevel": 0
+  }, 
+  {
+   "allow_on_submit": 1, 
+   "depends_on": "eval:doc.is_recurring==1", 
+   "description": "End date of current order's period", 
+   "fieldname": "to_date", 
+   "fieldtype": "Date", 
+   "label": "To Date", 
+   "no_copy": 1, 
+   "permlevel": 0
+  }, 
+  {
+   "allow_on_submit": 1, 
+   "depends_on": "eval:doc.is_recurring==1", 
    "description": "The day of the month on which auto order will be generated e.g. 05, 28 etc", 
    "fieldname": "repeat_on_day_of_month", 
    "fieldtype": "Int", 
@@ -717,17 +719,6 @@
    "print_hide": 1
   }, 
   {
-   "depends_on": "eval:doc.is_recurring==1", 
-   "description": "The date on which next invoice will be generated. It is generated on submit.", 
-   "fieldname": "next_date", 
-   "fieldtype": "Date", 
-   "label": "Next Date", 
-   "no_copy": 1, 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 1
-  }, 
-  {
    "allow_on_submit": 1, 
    "depends_on": "eval:doc.is_recurring==1", 
    "description": "The date on which recurring order will be stop", 
@@ -747,6 +738,17 @@
   }, 
   {
    "depends_on": "eval:doc.is_recurring==1", 
+   "description": "The date on which next invoice will be generated. It is generated on submit.", 
+   "fieldname": "next_date", 
+   "fieldtype": "Date", 
+   "label": "Next Date", 
+   "no_copy": 1, 
+   "permlevel": 0, 
+   "print_hide": 1, 
+   "read_only": 1
+  }, 
+  {
+   "depends_on": "eval:doc.is_recurring==1", 
    "fieldname": "recurring_id", 
    "fieldtype": "Data", 
    "label": "Recurring Id", 
@@ -770,7 +772,7 @@
  "icon": "icon-file-text", 
  "idx": 1, 
  "is_submittable": 1, 
- "modified": "2014-09-18 03:16:06.299317", 
+ "modified": "2014-10-08 14:23:29.718779", 
  "modified_by": "Administrator", 
  "module": "Buying", 
  "name": "Purchase Order", 
diff --git a/erpnext/buying/doctype/purchase_order/test_purchase_order.py b/erpnext/buying/doctype/purchase_order/test_purchase_order.py
index 6612d30..4be8ab3 100644
--- a/erpnext/buying/doctype/purchase_order/test_purchase_order.py
+++ b/erpnext/buying/doctype/purchase_order/test_purchase_order.py
@@ -114,6 +114,6 @@
 		test_recurring_document(self, test_records)
 
 
-test_dependencies = ["BOM"]
+test_dependencies = ["BOM", "Item Price"]
 
 test_records = frappe.get_test_records('Purchase Order')
diff --git a/erpnext/buying/doctype/quality_inspection/quality_inspection.py b/erpnext/buying/doctype/quality_inspection/quality_inspection.py
index da34108..216d165 100644
--- a/erpnext/buying/doctype/quality_inspection/quality_inspection.py
+++ b/erpnext/buying/doctype/quality_inspection/quality_inspection.py
@@ -8,11 +8,15 @@
 from frappe.model.document import Document
 
 class QualityInspection(Document):
-
 	def get_item_specification_details(self):
 		self.set('qa_specification_details', [])
-		specification = frappe.db.sql("select specification, value from `tabItem Quality Inspection Parameter` \
-			where parent = '%s' order by idx" % (self.item_code))
+		variant_of = frappe.db.get_query("Item", self.item_code, "variant_of")
+		if variant_of:
+			specification = frappe.db.sql("select specification, value from `tabItem Quality Inspection Parameter` \
+				where parent in (%s, %s) order by idx", (self.item_code, variant_of))
+		else:
+			specification = frappe.db.sql("select specification, value from `tabItem Quality Inspection Parameter` \
+				where parent = %s order by idx", self.item_code)
 		for d in specification:
 			child = self.append('qa_specification_details', {})
 			child.specification = d[0]
@@ -21,18 +25,18 @@
 
 	def on_submit(self):
 		if self.purchase_receipt_no:
-			frappe.db.sql("""update `tabPurchase Receipt Item` t1, `tabPurchase Receipt` t2 
-				set t1.qa_no = %s, t2.modified = %s 
-				where t1.parent = %s and t1.item_code = %s and t1.parent = t2.name""",  
-				(self.name, self.modified, self.purchase_receipt_no, 
+			frappe.db.sql("""update `tabPurchase Receipt Item` t1, `tabPurchase Receipt` t2
+				set t1.qa_no = %s, t2.modified = %s
+				where t1.parent = %s and t1.item_code = %s and t1.parent = t2.name""",
+				(self.name, self.modified, self.purchase_receipt_no,
 					self.item_code))
-		
+
 
 	def on_cancel(self):
 		if self.purchase_receipt_no:
-			frappe.db.sql("""update `tabPurchase Receipt Item` t1, `tabPurchase Receipt` t2 
+			frappe.db.sql("""update `tabPurchase Receipt Item` t1, `tabPurchase Receipt` t2
 				set t1.qa_no = '', t2.modified = %s
-				where t1.parent = %s and t1.item_code = %s and t1.parent = t2.name""", 
+				where t1.parent = %s and t1.item_code = %s and t1.parent = t2.name""",
 				(self.modified, self.purchase_receipt_no, self.item_code))
 
 
@@ -45,6 +49,6 @@
 			"start": start,
 			"page_len": page_len
 		})
-		return frappe.db.sql("""select item_code from `tab%(from)s` 
+		return frappe.db.sql("""select item_code from `tab%(from)s`
 			where parent='%(parent)s' and docstatus < 2 and item_code like '%%%(txt)s%%' %(mcond)s
-			order by item_code limit %(start)s, %(page_len)s""" % filters)
\ No newline at end of file
+			order by item_code limit %(start)s, %(page_len)s""" % filters)
diff --git a/erpnext/config/desktop.py b/erpnext/config/desktop.py
index 34f1599..ce9b255 100644
--- a/erpnext/config/desktop.py
+++ b/erpnext/config/desktop.py
@@ -48,5 +48,12 @@
 			"color": "#2c3e50",
 			"icon": "icon-phone",
 			"type": "module"
+		},
+		"Shopping Cart": {
+			"color": "#B7E090",
+			"icon": "icon-shopping-cart",
+			"label": _("Shopping Cart"),
+			"link": "Form/Shopping Cart Settings",
+			"type": "module"
 		}
 	}
diff --git a/erpnext/config/stock.py b/erpnext/config/stock.py
index 7a4345e..8423a16 100644
--- a/erpnext/config/stock.py
+++ b/erpnext/config/stock.py
@@ -129,6 +129,11 @@
 					"description": _("Multiple Item prices."),
 					"route": "Report/Item Price"
 				},
+				{
+					"type": "doctype",
+					"name": "Item Attribute",
+					"description": _("Attributes for Item Variants. e.g Size, Color etc."),
+				},
 			]
 		},
 		{
@@ -142,10 +147,10 @@
 					"doctype": "Item",
 				},
 				{
-					"type": "page",
-					"name": "stock-balance",
-					"label": _("Stock Balance"),
-					"icon": "icon-table",
+					"type": "report",
+					"is_query_report": True,
+					"name": "Stock Balance",
+					"doctype": "Warehouse"
 				},
 				{
 					"type": "report",
@@ -170,13 +175,7 @@
 					"name": "stock-analytics",
 					"label": _("Stock Analytics"),
 					"icon": "icon-bar-chart"
-				},
-				{
-					"type": "report",
-					"is_query_report": True,
-					"name": "Warehouse-Wise Stock Balance",
-					"doctype": "Warehouse"
-				},
+				}
 			]
 		},
 		{
diff --git a/erpnext/controllers/accounts_controller.py b/erpnext/controllers/accounts_controller.py
index 7a0b51a..2cecdc0 100644
--- a/erpnext/controllers/accounts_controller.py
+++ b/erpnext/controllers/accounts_controller.py
@@ -392,7 +392,7 @@
 
 		res = frappe.db.sql("""
 			select
-				t1.name as jv_no, t1.remark, t2.%s as amount, t2.name as jv_detail_no
+				t1.name as jv_no, t1.remark, t2.{0} as amount, t2.name as jv_detail_no, `against_{1}` as against_order
 			from
 				`tabJournal Voucher` t1, `tabJournal Voucher Detail` t2
 			where
@@ -405,10 +405,9 @@
 						and ifnull(t2.against_jv, '')  = ''
 						and ifnull(t2.against_sales_order, '')  = ''
 						and ifnull(t2.against_purchase_order, '')  = ''
-				) %s)
-			order by t1.posting_date""" %
-			(dr_or_cr, '%s', '%s', '%s', cond), tuple([account_head, party_type, party] + so_list), as_dict=1)
-
+				) {2})
+			order by t1.posting_date""".format(dr_or_cr, against_order_field, cond),
+			[account_head, party_type, party] + so_list, as_dict=1)
 
 		self.set(parentfield, [])
 		for d in res:
@@ -418,7 +417,7 @@
 				"jv_detail_no": d.jv_detail_no,
 				"remarks": d.remark,
 				"advance_amount": flt(d.amount),
-				"allocate_amount": 0
+				"allocated_amount": flt(d.amount) if d.against_order else 0
 			})
 
 	def validate_advance_jv(self, advance_table_fieldname, against_order_field):
diff --git a/erpnext/controllers/buying_controller.py b/erpnext/controllers/buying_controller.py
index e8f35f1..d31075c 100644
--- a/erpnext/controllers/buying_controller.py
+++ b/erpnext/controllers/buying_controller.py
@@ -8,6 +8,7 @@
 
 from erpnext.setup.utils import get_company_currency
 from erpnext.accounts.party import get_party_details
+from erpnext.stock.get_item_details import get_conversion_factor
 
 from erpnext.controllers.stock_controller import StockController
 
@@ -194,9 +195,8 @@
 
 				self.round_floats_in(item)
 
-				item.conversion_factor = item.conversion_factor or flt(frappe.db.get_value(
-					"UOM Conversion Detail", {"parent": item.item_code, "uom": item.uom},
-					"conversion_factor")) or 1
+				item.conversion_factor = get_conversion_factor(item.item_code, item.uom).get("conversion_factor") or 1.0
+
 				qty_in_stock_uom = flt(item.qty * item.conversion_factor)
 				rm_supp_cost = flt(item.rm_supp_cost) if self.doctype=="Purchase Receipt" else 0.0
 
@@ -260,8 +260,6 @@
 			rm.required_qty = required_qty
 
 			rm.conversion_factor = item.conversion_factor
-			rm.rate = bom_item.rate
-			rm.amount = required_qty * flt(bom_item.rate)
 			rm.idx = rm_supplied_idx
 
 			if self.doctype == "Purchase Receipt":
@@ -272,7 +270,25 @@
 
 			rm_supplied_idx += 1
 
-			raw_materials_cost += required_qty * flt(bom_item.rate)
+			# get raw materials rate
+			if self.doctype == "Purchase Receipt":
+				from erpnext.stock.utils import get_incoming_rate
+				rm.rate = get_incoming_rate({
+					"item_code": bom_item.item_code,
+					"warehouse": self.supplier_warehouse,
+					"posting_date": self.posting_date,
+					"posting_time": self.posting_time,
+					"qty": -1 * required_qty,
+					"serial_no": rm.serial_no
+				})
+				if not rm.rate:
+					from erpnext.stock.stock_ledger import get_valuation_rate
+					rm.rate = get_valuation_rate(bom_item.item_code, self.supplier_warehouse)
+			else:
+				rm.rate = bom_item.rate
+
+			rm.amount = required_qty * flt(rm.rate)
+			raw_materials_cost += flt(rm.amount)
 
 		if self.doctype == "Purchase Receipt":
 			item.rm_supp_cost = raw_materials_cost
diff --git a/erpnext/controllers/queries.py b/erpnext/controllers/queries.py
index cbbd82c..2f98dbd 100644
--- a/erpnext/controllers/queries.py
+++ b/erpnext/controllers/queries.py
@@ -165,6 +165,7 @@
 			concat(substr(tabItem.description, 1, 40), "..."), description) as decription
 		from tabItem
 		where tabItem.docstatus < 2
+			and ifnull(tabItem.has_variants, 0)=0
 			and (tabItem.end_of_life > %(today)s or ifnull(tabItem.end_of_life, '0000-00-00')='0000-00-00')
 			and (tabItem.`{key}` LIKE %(txt)s
 				or tabItem.item_name LIKE %(txt)s
diff --git a/erpnext/controllers/stock_controller.py b/erpnext/controllers/stock_controller.py
index 06a3aa0..af1d91b 100644
--- a/erpnext/controllers/stock_controller.py
+++ b/erpnext/controllers/stock_controller.py
@@ -8,7 +8,7 @@
 import frappe.defaults
 
 from erpnext.controllers.accounts_controller import AccountsController
-from erpnext.accounts.general_ledger import make_gl_entries, delete_gl_entries
+from erpnext.accounts.general_ledger import make_gl_entries, delete_gl_entries, process_gl_map
 
 class StockController(AccountsController):
 	def make_gl_entries(self, repost_future_gle=True):
@@ -24,11 +24,12 @@
 
 			if repost_future_gle:
 				items, warehouses = self.get_items_and_warehouses()
-				update_gl_entries_after(self.posting_date, self.posting_time, warehouses, items, warehouse_account)
+				update_gl_entries_after(self.posting_date, self.posting_time, warehouses, items,
+					warehouse_account)
 
 	def get_gl_entries(self, warehouse_account=None, default_expense_account=None,
 			default_cost_center=None):
-		from erpnext.accounts.general_ledger import process_gl_map
+
 		if not warehouse_account:
 			warehouse_account = get_warehouse_account()
 
@@ -118,7 +119,8 @@
 
 	def get_stock_ledger_details(self):
 		stock_ledger = {}
-		for sle in frappe.db.sql("""select warehouse, stock_value_difference, voucher_detail_no
+		for sle in frappe.db.sql("""select warehouse, stock_value_difference,
+			voucher_detail_no, item_code, posting_date, actual_qty
 			from `tabStock Ledger Entry` where voucher_type=%s and voucher_no=%s""",
 			(self.doctype, self.name), as_dict=True):
 				stock_ledger.setdefault(sle.voucher_detail_no, []).append(sle)
@@ -214,7 +216,8 @@
 
 		return serialized_items
 
-def update_gl_entries_after(posting_date, posting_time, for_warehouses=None, for_items=None, warehouse_account=None):
+def update_gl_entries_after(posting_date, posting_time, for_warehouses=None, for_items=None,
+		warehouse_account=None):
 	def _delete_gl_entries(voucher_type, voucher_no):
 		frappe.db.sql("""delete from `tabGL Entry`
 			where voucher_type=%s and voucher_no=%s""", (voucher_type, voucher_no))
diff --git a/erpnext/hooks.py b/erpnext/hooks.py
index f9ac629..ea65400 100644
--- a/erpnext/hooks.py
+++ b/erpnext/hooks.py
@@ -11,14 +11,18 @@
 app_include_js = "assets/js/erpnext.min.js"
 app_include_css = "assets/css/erpnext.css"
 web_include_js = "assets/js/erpnext-web.min.js"
+web_include_css = "assets/css/shopping-cart-web.css"
 
 after_install = "erpnext.setup.install.after_install"
 
 boot_session = "erpnext.startup.boot.boot_session"
 notification_config = "erpnext.startup.notifications.get_notification_config"
 
+on_session_creation = "erpnext.shopping_cart.utils.set_cart_count"
+on_logout = "erpnext.shopping_cart.utils.clear_cart_count"
+update_website_context = ["erpnext.shopping_cart.utils.update_website_context", "erpnext.startup.webutils.update_website_context"]
+
 dump_report_map = "erpnext.startup.report_data_map.data_map"
-update_website_context = "erpnext.startup.webutils.update_website_context"
 
 before_tests = "erpnext.setup.utils.before_tests"
 
@@ -36,15 +40,22 @@
 	"User": {
 		"validate": "erpnext.hr.doctype.employee.employee.validate_employee_role",
 		"on_update": "erpnext.hr.doctype.employee.employee.update_user_permissions"
-	}
+	},
+	"Sales Taxes and Charges Master": {
+		"on_update": "erpnext.shopping_cart.doctype.shopping_cart_settings.shopping_cart_settings.validate_cart_settings"
+	},
+	"Price List": {
+		"on_update": "erpnext.shopping_cart.doctype.shopping_cart_settings.shopping_cart_settings.validate_cart_settings"
+	},
 }
 
 scheduler_events = {
 	"daily": [
 		"erpnext.controllers.recurring_document.create_recurring_documents",
-		"erpnext.stock.utils.reorder_item",
+		"erpnext.stock.reorder_item.reorder_item",
 		"erpnext.setup.doctype.email_digest.email_digest.send",
 		"erpnext.support.doctype.support_ticket.support_ticket.auto_close_tickets"
+		"erpnext.accounts.doctype.fiscal_year.fiscal_year.auto_create_fiscal_year"
 	],
 	"daily_long": [
 		"erpnext.setup.doctype.backup_manager.backup_manager.take_backups_daily"
@@ -54,6 +65,5 @@
 	]
 }
 
-default_mail_footer = """<div style="padding: 7px; text-align: right; color: #888"><small>
-	<a style="color: #888" href="https://erpnext.com">Sent via ERPNext</a></div>"""
-
+default_mail_footer = """<div style="padding: 7px; text-align: right;">
+	<a style="color: #888; font-size: 80%;" href="https://erpnext.com">Sent via ERPNext</a></div>"""
diff --git a/erpnext/manufacturing/doctype/bom/bom.js b/erpnext/manufacturing/doctype/bom/bom.js
index cb96478..34598b6 100644
--- a/erpnext/manufacturing/doctype/bom/bom.js
+++ b/erpnext/manufacturing/doctype/bom/bom.js
@@ -182,10 +182,7 @@
 
 cur_frm.fields_dict['item'].get_query = function(doc) {
  	return{
-		query: "erpnext.controllers.queries.item_query",
-		filters:{
-			'is_manufactured_item': 'Yes'
-		}
+		query: "erpnext.controllers.queries.item_query"
 	}
 }
 
diff --git a/erpnext/manufacturing/doctype/bom/bom.py b/erpnext/manufacturing/doctype/bom/bom.py
index 75c4ffb..399e71c 100644
--- a/erpnext/manufacturing/doctype/bom/bom.py
+++ b/erpnext/manufacturing/doctype/bom/bom.py
@@ -54,7 +54,7 @@
 	def get_item_det(self, item_code):
 		item = frappe.db.sql("""select name, is_asset_item, is_purchase_item,
 			docstatus, description, is_sub_contracted_item, stock_uom, default_bom,
-			last_purchase_rate, is_manufactured_item
+			last_purchase_rate
 			from `tabItem` where name=%s""", item_code, as_dict = 1)
 
 		return item
@@ -115,6 +115,9 @@
 		return rate
 
 	def update_cost(self):
+		if self.docstatus == 2:
+			return
+
 		for d in self.get("bom_materials"):
 			d.rate = self.get_bom_material_detail({
 				'item_code': d.item_code,
@@ -122,9 +125,10 @@
 				'qty': d.qty
 			})["rate"]
 
-		if self.docstatus in (0, 1):
+		if self.docstatus == 1:
 			self.ignore_validate_update_after_submit = True
-			self.save()
+			self.calculate_cost()
+		self.save()
 
 	def get_bom_unitcost(self, bom_no):
 		bom = frappe.db.sql("""select name, total_variable_cost/quantity as unit_cost from `tabBOM`
@@ -149,14 +153,19 @@
 		if self.is_default and self.is_active:
 			from frappe.model.utils import set_default
 			set_default(self, "item")
-			frappe.db.set_value("Item", self.item, "default_bom", self.name)
+			item = frappe.get_doc("Item", self.item)
+			if item.default_bom != self.name:
+				item.default_bom = self.name
+				item.save()
 
 		else:
 			if not self.is_active:
 				frappe.db.set(self, "is_default", 0)
 
-			frappe.db.sql("update `tabItem` set default_bom = null where name = %s and default_bom = %s",
-				 (self.item, self.name))
+				item = frappe.get_doc("Item", self.item)
+				if item.default_bom == self.name:
+					item.default_bom = None
+					item.save()
 
 	def clear_operations(self):
 		if not self.with_operations:
@@ -169,9 +178,6 @@
 		item = self.get_item_det(self.item)
 		if not item:
 			frappe.throw(_("Item {0} does not exist in the system or has expired").format(self.item))
-		elif item[0]['is_manufactured_item'] != 'Yes' \
-				and item[0]['is_sub_contracted_item'] != 'Yes':
-			frappe.throw(_("Item {0} must be manufactured or sub-contracted").format(self.item))
 		else:
 			ret = frappe.db.get_value("Item", self.item, ["description", "stock_uom"])
 			self.description = ret[0]
@@ -195,28 +201,14 @@
 			if self.with_operations and cstr(m.operation_no) not in self.op:
 				frappe.throw(_("Operation {0} not present in Operations Table").format(m.operation_no))
 
-			item = self.get_item_det(m.item_code)
-			if item[0]['is_manufactured_item'] == 'Yes':
-				if not m.bom_no:
-					frappe.throw(_("BOM number is required for manufactured Item {0} in row {1}").format(m.item_code, m.idx))
-				else:
-					self.validate_bom_no(m.item_code, m.bom_no, m.idx)
-
-			elif m.bom_no:
-				frappe.throw(_("BOM number not allowed for non-manufactured Item {0} in row {1}").format(m.item_code, m.idx))
+			if m.bom_no:
+				validate_bom_no(m.item_code, m.bom_no)
 
 			if flt(m.qty) <= 0:
 				frappe.throw(_("Quantity required for Item {0} in row {1}").format(m.item_code, m.idx))
 
 			self.check_if_item_repeated(m.item_code, m.operation_no, check_list)
 
-	def validate_bom_no(self, item, bom_no, idx):
-		"""Validate BOM No of sub-contracted items"""
-		bom = frappe.db.sql("""select name from `tabBOM` where name = %s and item = %s
-			and is_active=1 and docstatus=1""",
-			(bom_no, item), as_dict =1)
-		if not bom:
-			frappe.throw(_("BOM {0} for Item {1} in row {2} is inactive or not submitted").format(bom_no, item, idx))
 
 	def check_if_item_repeated(self, item, op, check_list):
 		if [cstr(item), cstr(op)] in check_list:
@@ -269,29 +261,27 @@
 		"""Calculate bom totals"""
 		self.calculate_op_cost()
 		self.calculate_rm_cost()
-		self.calculate_fixed_cost()
 		self.total_variable_cost = self.raw_material_cost + self.operating_cost
+		self.total_cost = self.total_variable_cost + self.total_fixed_cost
 
 	def calculate_op_cost(self):
 		"""Update workstation rate and calculates totals"""
-		total_op_cost = 0
+		total_op_cost, fixed_cost = 0, 0
 		for d in self.get('bom_operations'):
-			if d.workstation and not d.hour_rate:
-				d.hour_rate = frappe.db.get_value("Workstation", d.workstation, "hour_rate")
+			if d.workstation:
+				w = frappe.db.get_value("Workstation", d.workstation, ["hour_rate", "fixed_cycle_cost"])
+				if not d.hour_rate:
+					d.hour_rate = flt(w[0])
+
+				fixed_cost += flt(w[1])
+
 			if d.hour_rate and d.time_in_mins:
 				d.operating_cost = flt(d.hour_rate) * flt(d.time_in_mins) / 60.0
 			total_op_cost += flt(d.operating_cost)
+
 		self.operating_cost = total_op_cost
-
-	def calculate_fixed_cost(self):
-		"""Update workstation rate and calculates totals"""
-		fixed_cost = 0
-		for d in self.get('bom_operations'):
-			if d.workstation:
-				fixed_cost += flt(frappe.db.get_value("Workstation", d.workstation, "fixed_cycle_cost"))
 		self.total_fixed_cost = fixed_cost
 
-
 	def calculate_rm_cost(self):
 		"""Fetch RM rate as per today's valuation rate and calculate totals"""
 		total_rm_cost = 0
@@ -424,3 +414,16 @@
 	items = get_bom_items_as_dict(bom, qty, fetch_exploded).values()
 	items.sort(lambda a, b: a.item_code > b.item_code and 1 or -1)
 	return items
+
+def validate_bom_no(item, bom_no):
+	"""Validate BOM No of sub-contracted items"""
+	bom = frappe.get_doc("BOM", bom_no)
+	if not bom.is_active:
+		frappe.throw(_("BOM {0} must be active").format(bom_no))
+	if not bom.docstatus!=1:
+		if not getattr(frappe.flags, "in_test", False):
+			frappe.throw(_("BOM {0} must be submitted").format(bom_no))
+	if item and not (bom.item == item or \
+		bom.item == frappe.db.get_value("Item", item, "variant_of")):
+		frappe.throw(_("BOM {0} does not belong to Item {1}").format(bom_no, item))
+
diff --git a/erpnext/manufacturing/doctype/bom/test_bom.py b/erpnext/manufacturing/doctype/bom/test_bom.py
index 28ee49a..753a708 100644
--- a/erpnext/manufacturing/doctype/bom/test_bom.py
+++ b/erpnext/manufacturing/doctype/bom/test_bom.py
@@ -28,3 +28,15 @@
 	def test_get_items_list(self):
 		from erpnext.manufacturing.doctype.bom.bom import get_bom_items
 		self.assertEquals(len(get_bom_items(bom="BOM/_Test FG Item 2/001", qty=1, fetch_exploded=1)), 3)
+
+	def test_default_bom(self):
+		bom = frappe.get_doc("BOM", "BOM/_Test FG Item 2/001")
+		bom.is_active = 0
+		bom.save()
+
+		self.assertEqual(frappe.db.get_value("Item", "_Test FG Item 2", "default_bom"), "")
+
+		bom.is_active = 1
+		bom.save()
+
+		self.assertTrue(frappe.db.get_value("Item", "_Test FG Item 2", "default_bom"), "BOM/_Test FG Item 2/001")
diff --git a/erpnext/manufacturing/doctype/bom/test_records.json b/erpnext/manufacturing/doctype/bom/test_records.json
index 17c28d5..26aa6d3 100644
--- a/erpnext/manufacturing/doctype/bom/test_records.json
+++ b/erpnext/manufacturing/doctype/bom/test_records.json
@@ -2,98 +2,128 @@
  {
   "bom_materials": [
    {
-    "amount": 5000.0, 
-    "doctype": "BOM Item", 
-    "item_code": "_Test Serialized Item With Series", 
-    "parentfield": "bom_materials", 
-    "qty": 1.0, 
-    "rate": 5000.0, 
+    "amount": 5000.0,
+    "doctype": "BOM Item",
+    "item_code": "_Test Serialized Item With Series",
+    "parentfield": "bom_materials",
+    "qty": 1.0,
+    "rate": 5000.0,
     "stock_uom": "_Test UOM"
-   }, 
+   },
    {
-    "amount": 2000.0, 
-    "doctype": "BOM Item", 
-    "item_code": "_Test Item 2", 
-    "parentfield": "bom_materials", 
-    "qty": 2.0, 
-    "rate": 1000.0, 
+    "amount": 2000.0,
+    "doctype": "BOM Item",
+    "item_code": "_Test Item 2",
+    "parentfield": "bom_materials",
+    "qty": 2.0,
+    "rate": 1000.0,
     "stock_uom": "_Test UOM"
    }
-  ], 
-  "docstatus": 1, 
-  "doctype": "BOM", 
-  "is_active": 1, 
-  "is_default": 1, 
-  "item": "_Test Item Home Desktop Manufactured", 
+  ],
+  "docstatus": 1,
+  "doctype": "BOM",
+  "is_active": 1,
+  "is_default": 1,
+  "item": "_Test Item Home Desktop Manufactured",
   "quantity": 1.0
- }, 
+ },
  {
   "bom_materials": [
    {
-    "amount": 5000.0, 
-    "doctype": "BOM Item", 
-    "item_code": "_Test Item", 
-    "parentfield": "bom_materials", 
-    "qty": 1.0, 
-    "rate": 5000.0, 
+    "amount": 5000.0,
+    "doctype": "BOM Item",
+    "item_code": "_Test Item",
+    "parentfield": "bom_materials",
+    "qty": 1.0,
+    "rate": 5000.0,
     "stock_uom": "_Test UOM"
-   }, 
+   },
    {
-    "amount": 2000.0, 
-    "doctype": "BOM Item", 
-    "item_code": "_Test Item Home Desktop 100", 
-    "parentfield": "bom_materials", 
-    "qty": 2.0, 
-    "rate": 1000.0, 
+    "amount": 2000.0,
+    "doctype": "BOM Item",
+    "item_code": "_Test Item Home Desktop 100",
+    "parentfield": "bom_materials",
+    "qty": 2.0,
+    "rate": 1000.0,
     "stock_uom": "_Test UOM"
    }
-  ], 
-  "docstatus": 1, 
-  "doctype": "BOM", 
-  "is_active": 1, 
-  "is_default": 1, 
-  "item": "_Test FG Item", 
+  ],
+  "docstatus": 1,
+  "doctype": "BOM",
+  "is_active": 1,
+  "is_default": 1,
+  "item": "_Test FG Item",
   "quantity": 1.0
  },
  {
   "bom_operations": [
    {
-    "operation_no": "1", 
-    "opn_description": "_Test", 
-    "workstation": "_Test Workstation 1", 
+    "operation_no": "1",
+    "opn_description": "_Test",
+    "workstation": "_Test Workstation 1",
     "time_in_min": 60,
     "operating_cost": 100
    }
-   ], 
+   ],
   "bom_materials": [
    {
     "operation_no": 1,
-    "amount": 5000.0, 
-    "doctype": "BOM Item", 
-    "item_code": "_Test Item", 
-    "parentfield": "bom_materials", 
-    "qty": 1.0, 
-    "rate": 5000.0, 
+    "amount": 5000.0,
+    "doctype": "BOM Item",
+    "item_code": "_Test Item",
+    "parentfield": "bom_materials",
+    "qty": 1.0,
+    "rate": 5000.0,
     "stock_uom": "_Test UOM"
-   }, 
+   },
    {
     "operation_no": 1,
-    "amount": 2000.0, 
-    "bom_no": "BOM/_Test Item Home Desktop Manufactured/001", 
-    "doctype": "BOM Item", 
-    "item_code": "_Test Item Home Desktop Manufactured", 
-    "parentfield": "bom_materials", 
-    "qty": 2.0, 
-    "rate": 1000.0, 
+    "amount": 2000.0,
+    "bom_no": "BOM/_Test Item Home Desktop Manufactured/001",
+    "doctype": "BOM Item",
+    "item_code": "_Test Item Home Desktop Manufactured",
+    "parentfield": "bom_materials",
+    "qty": 2.0,
+    "rate": 1000.0,
     "stock_uom": "_Test UOM"
    }
-  ], 
-  "docstatus": 1, 
-  "doctype": "BOM", 
-  "is_active": 1, 
-  "is_default": 1, 
-  "item": "_Test FG Item 2", 
+  ],
+  "docstatus": 1,
+  "doctype": "BOM",
+  "is_active": 1,
+  "is_default": 1,
+  "item": "_Test FG Item 2",
+  "quantity": 1.0,
+  "with_operations": 1
+ },
+ {
+  "bom_operations": [
+   {
+    "operation_no": "1",
+    "opn_description": "_Test",
+    "workstation": "_Test Workstation 1",
+    "time_in_min": 60,
+    "operating_cost": 140
+   }
+   ],
+  "bom_materials": [
+   {
+    "operation_no": 1,
+    "amount": 5000.0,
+    "doctype": "BOM Item",
+    "item_code": "_Test Item",
+    "parentfield": "bom_materials",
+    "qty": 2.0,
+    "rate": 3000.0,
+    "stock_uom": "_Test UOM"
+   }
+  ],
+  "docstatus": 1,
+  "doctype": "BOM",
+  "is_active": 1,
+  "is_default": 1,
+  "item": "_Test Variant Item",
   "quantity": 1.0,
   "with_operations": 1
  }
-]
\ No newline at end of file
+]
diff --git a/erpnext/manufacturing/doctype/production_order/production_order.py b/erpnext/manufacturing/doctype/production_order/production_order.py
index 309f47c..fbca0d5 100644
--- a/erpnext/manufacturing/doctype/production_order/production_order.py
+++ b/erpnext/manufacturing/doctype/production_order/production_order.py
@@ -7,12 +7,12 @@
 from frappe.utils import flt, nowdate
 from frappe import _
 from frappe.model.document import Document
+from erpnext.manufacturing.doctype.bom.bom import validate_bom_no
 
 class OverProductionError(frappe.ValidationError): pass
 class StockOverProductionError(frappe.ValidationError): pass
 
 class ProductionOrder(Document):
-
 	def validate(self):
 		if self.docstatus == 0:
 			self.status = "Draft"
@@ -21,7 +21,9 @@
 		validate_status(self.status, ["Draft", "Submitted", "Stopped",
 			"In Process", "Completed", "Cancelled"])
 
-		self.validate_bom_no()
+		if self.bom_no:
+			validate_bom_no(self.production_item, self.bom_no)
+
 		self.validate_sales_order()
 		self.validate_warehouse()
 		self.set_fixed_cost()
@@ -29,14 +31,6 @@
 		from erpnext.utilities.transaction_base import validate_uom_is_integer
 		validate_uom_is_integer(self, "stock_uom", ["qty", "produced_qty"])
 
-	def validate_bom_no(self):
-		if self.bom_no:
-			bom = frappe.db.sql("""select name from `tabBOM` where name=%s and docstatus=1
-				and is_active=1 and item=%s"""
-				, (self.bom_no, self.production_item), as_dict =1)
-			if not bom:
-				frappe.throw(_("BOM {0} is not active or not submitted").format(self.bom_no))
-
 	def validate_sales_order(self):
 		if self.sales_order:
 			so = frappe.db.sql("""select name, delivery_date from `tabSales Order`
@@ -185,5 +179,5 @@
 		stock_entry.from_warehouse = production_order.wip_warehouse
 		stock_entry.to_warehouse = production_order.fg_warehouse
 
-	stock_entry.run_method("get_items")
+	stock_entry.get_items()
 	return stock_entry.as_dict()
diff --git a/erpnext/manufacturing/doctype/production_order/test_production_order.py b/erpnext/manufacturing/doctype/production_order/test_production_order.py
index a9975c1..96fe6e4 100644
--- a/erpnext/manufacturing/doctype/production_order/test_production_order.py
+++ b/erpnext/manufacturing/doctype/production_order/test_production_order.py
@@ -20,8 +20,10 @@
 		pro_doc.submit()
 
 		# add raw materials to stores
-		test_stock_entry.make_stock_entry("_Test Item", None, "Stores - _TC", 100, 100)
-		test_stock_entry.make_stock_entry("_Test Item Home Desktop 100", None, "Stores - _TC", 100, 100)
+		test_stock_entry.make_stock_entry(item_code="_Test Item",
+			target="Stores - _TC", qty=100, incoming_rate=100)
+		test_stock_entry.make_stock_entry(item_code="_Test Item Home Desktop 100",
+			target="Stores - _TC", qty=100, incoming_rate=100)
 
 		# from stores to wip
 		s = frappe.get_doc(make_stock_entry(pro_doc.name, "Material Transfer", 4))
@@ -46,12 +48,14 @@
 		from erpnext.manufacturing.doctype.production_order.production_order import StockOverProductionError
 		pro_doc = self.test_planned_qty()
 
-		test_stock_entry.make_stock_entry("_Test Item", None, "_Test Warehouse - _TC", 100, 100)
-		test_stock_entry.make_stock_entry("_Test Item Home Desktop 100", None, "_Test Warehouse - _TC", 100, 100)
+		test_stock_entry.make_stock_entry(item_code="_Test Item",
+			target="_Test Warehouse - _TC", qty=100, incoming_rate=100)
+		test_stock_entry.make_stock_entry(item_code="_Test Item Home Desktop 100",
+			target="_Test Warehouse - _TC", qty=100, incoming_rate=100)
 
 		s = frappe.get_doc(make_stock_entry(pro_doc.name, "Manufacture", 7))
 		s.insert()
 
 		self.assertRaises(StockOverProductionError, s.submit)
 
-test_records = frappe.get_test_records('Production Order')
\ No newline at end of file
+test_records = frappe.get_test_records('Production Order')
diff --git a/erpnext/modules.txt b/erpnext/modules.txt
index 68d095e..243c2d8 100644
--- a/erpnext/modules.txt
+++ b/erpnext/modules.txt
@@ -9,3 +9,4 @@
 Support
 Utilities
 Contacts
+Shopping Cart
diff --git a/erpnext/patches.txt b/erpnext/patches.txt
index 1a45c59..346930d 100644
--- a/erpnext/patches.txt
+++ b/erpnext/patches.txt
@@ -82,6 +82,11 @@
 erpnext.patches.v4_2.update_sales_order_invoice_field_name
 erpnext.patches.v4_2.cost_of_production_cycle
 erpnext.patches.v4_2.seprate_manufacture_and_repack
+execute:frappe.delete_doc("Report", "Warehouse-Wise Stock Balance")
+execute:frappe.delete_doc("DocType", "Purchase Request")
+execute:frappe.delete_doc("DocType", "Purchase Request Item")
+erpnext.patches.v4_2.recalculate_bom_cost
+erpnext.patches.v4_2.fix_gl_entries_for_stock_transactions
 erpnext.patches.v4_2.party_model
 erpnext.patches.v5_0.update_frozen_accounts_permission_role
 erpnext.patches.v5_0.update_dn_against_doc_fields
diff --git a/erpnext/patches/v4_2/default_website_style.py b/erpnext/patches/v4_2/default_website_style.py
index 5fbbd48..6f375b9 100644
--- a/erpnext/patches/v4_2/default_website_style.py
+++ b/erpnext/patches/v4_2/default_website_style.py
@@ -2,6 +2,7 @@
 from frappe.templates.pages.style_settings import default_properties
 
 def execute():
+	frappe.reload_doc('website', 'doctype', 'style_settings')
 	style_settings = frappe.get_doc("Style Settings", "Style Settings")
 	if not style_settings.apply_style:
 		style_settings.update(default_properties)
diff --git a/erpnext/patches/v4_2/fix_gl_entries_for_stock_transactions.py b/erpnext/patches/v4_2/fix_gl_entries_for_stock_transactions.py
index e065d2d..a72b954 100644
--- a/erpnext/patches/v4_2/fix_gl_entries_for_stock_transactions.py
+++ b/erpnext/patches/v4_2/fix_gl_entries_for_stock_transactions.py
@@ -3,24 +3,50 @@
 
 from __future__ import unicode_literals
 import frappe
+from frappe.utils import flt
 
 def execute():
-	warehouses_with_account = frappe.db.sql_list("""select master_name from tabAccount
+	from erpnext.utilities.repost_stock import repost
+	repost(allow_zero_rate=True, only_actual=True)
+
+	warehouse_account = frappe.db.sql("""select name, master_name from tabAccount
 		where ifnull(account_type, '') = 'Warehouse'""")
+	if warehouse_account:
+		warehouses = [d[1] for d in warehouse_account]
+		accounts = [d[0] for d in warehouse_account]
 
-	stock_vouchers_without_gle = frappe.db.sql("""select distinct sle.voucher_type, sle.voucher_no
-		from `tabStock Ledger Entry` sle
-		where sle.warehouse in (%s)
-		and not exists(select name from `tabGL Entry`
-			where voucher_type=sle.voucher_type and voucher_no=sle.voucher_no)
-		order by sle.posting_date""" %
-		', '.join(['%s']*len(warehouses_with_account)), tuple(warehouses_with_account))
+		stock_vouchers = frappe.db.sql("""select distinct sle.voucher_type, sle.voucher_no
+			from `tabStock Ledger Entry` sle
+			where sle.warehouse in (%s)
+			order by sle.posting_date""" %
+			', '.join(['%s']*len(warehouses)), tuple(warehouses))
 
-	for voucher_type, voucher_no in stock_vouchers_without_gle:
-		print voucher_type, voucher_no
-		frappe.db.sql("""delete from `tabGL Entry`
-			where voucher_type=%s and voucher_no=%s""", (voucher_type, voucher_no))
+		rejected = []
+		for voucher_type, voucher_no in stock_vouchers:
+			stock_bal = frappe.db.sql("""select sum(stock_value_difference) from `tabStock Ledger Entry`
+				where voucher_type=%s and voucher_no =%s and warehouse in (%s)""" %
+				('%s', '%s', ', '.join(['%s']*len(warehouses))), tuple([voucher_type, voucher_no] + warehouses))
 
-		voucher = frappe.get_doc(voucher_type, voucher_no)
-		voucher.make_gl_entries()
-		frappe.db.commit()
+			account_bal = frappe.db.sql("""select ifnull(sum(ifnull(debit, 0) - ifnull(credit, 0)), 0)
+				from `tabGL Entry`
+				where voucher_type=%s and voucher_no =%s and account in (%s)
+				group by voucher_type, voucher_no""" %
+				('%s', '%s', ', '.join(['%s']*len(accounts))), tuple([voucher_type, voucher_no] + accounts))
+
+			if stock_bal and account_bal and abs(flt(stock_bal[0][0]) - flt(account_bal[0][0])) > 0.1:
+				try:
+					print voucher_type, voucher_no, stock_bal[0][0], account_bal[0][0]
+
+					frappe.db.sql("""delete from `tabGL Entry`
+						where voucher_type=%s and voucher_no=%s""", (voucher_type, voucher_no))
+
+					voucher = frappe.get_doc(voucher_type, voucher_no)
+					voucher.make_gl_entries(repost_future_gle=False)
+					frappe.db.commit()
+				except Exception, e:
+					print frappe.get_traceback()
+					rejected.append([voucher_type, voucher_no])
+					frappe.db.rollback()
+
+		print "Failed to repost: "
+		print rejected
diff --git a/erpnext/patches/v4_2/party_model.py b/erpnext/patches/v4_2/party_model.py
index e1fa982..2871531 100644
--- a/erpnext/patches/v4_2/party_model.py
+++ b/erpnext/patches/v4_2/party_model.py
@@ -74,6 +74,9 @@
 	for d in accounts:
 		account_map.setdefault(d.name, d)
 
+	if not account_map:
+		return
+
 	for dt in ["Journal Voucher Detail", "GL Entry"]:
 		records = frappe.db.sql("""select name, account from `tab%s` where account in (%s)""" %
 			(dt, ", ".join(['%s']*len(account_map))), tuple(account_map.keys()))
diff --git a/erpnext/patches/v4_2/recalculate_bom_cost.py b/erpnext/patches/v4_2/recalculate_bom_cost.py
new file mode 100644
index 0000000..3a194ff
--- /dev/null
+++ b/erpnext/patches/v4_2/recalculate_bom_cost.py
@@ -0,0 +1,16 @@
+# 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():
+	for d in frappe.db.sql("select name from `tabBOM` where docstatus < 2"):
+		try:	
+			document = frappe.get_doc('BOM', d[0])
+			if document.docstatus == 1:
+				document.ignore_validate_update_after_submit = True
+				document.calculate_cost()
+			document.save()
+		except:
+			pass
\ No newline at end of file
diff --git a/erpnext/patches/v5_0/update_frozen_accounts_permission_role.py b/erpnext/patches/v5_0/update_frozen_accounts_permission_role.py
index f569695..e4bf9a9 100644
--- a/erpnext/patches/v5_0/update_frozen_accounts_permission_role.py
+++ b/erpnext/patches/v5_0/update_frozen_accounts_permission_role.py
@@ -7,6 +7,6 @@
 	account_settings = frappe.get_doc("Accounts Settings")
 
 	if not account_settings.frozen_accounts_modifier and account_settings.bde_auth_role:
-		account_settings.frozen_accounts_modifier = account_settings.bde_auth_role
+		frappe.db.set_value("Account Settings", None,
+			"frozen_accounts_modifier", account_settings.bde_auth_role)
 
-	account_settings.save()
diff --git a/erpnext/public/build.json b/erpnext/public/build.json
index 0998c53..3f6dd12 100644
--- a/erpnext/public/build.json
+++ b/erpnext/public/build.json
@@ -3,7 +3,8 @@
 		"public/css/erpnext.css"
 	],
 	"js/erpnext-web.min.js": [
-		"public/js/website_utils.js"
+		"public/js/website_utils.js",
+		"public/js/shopping_cart.js"
 	],
 	"js/erpnext.min.js": [
 		"public/js/conf.js",
@@ -11,5 +12,8 @@
 		"public/js/utils.js",
 		"public/js/queries.js",
 		"public/js/utils/party.js"
+	],
+	"css/shopping-cart-web.css":  [
+		"public/css/shopping_cart.css"
 	]
 }
diff --git a/erpnext/public/css/shopping_cart.css b/erpnext/public/css/shopping_cart.css
new file mode 100644
index 0000000..5e86972
--- /dev/null
+++ b/erpnext/public/css/shopping_cart.css
@@ -0,0 +1,11 @@
+.item-main-image {
+	max-width: 100%;
+	margin: auto;
+}
+.web-long-description {
+	font-size: 18px;
+	line-height: 200%;
+}
+.item-stock {
+	margin-bottom: 10px !important;
+}
diff --git a/erpnext/public/js/shopping_cart.js b/erpnext/public/js/shopping_cart.js
new file mode 100644
index 0000000..0c718b0
--- /dev/null
+++ b/erpnext/public/js/shopping_cart.js
@@ -0,0 +1,66 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
+// License: GNU General Public License v3. See license.txt
+
+// shopping cart
+frappe.provide("shopping_cart");
+
+$(function() {
+	// update user
+	if(full_name) {
+		$('.navbar li[data-label="User"] a')
+			.html('<i class="icon-fixed-width icon-user"></i> ' + full_name);
+	}
+
+	// update login
+	shopping_cart.set_cart_count();
+});
+
+$.extend(shopping_cart, {
+	update_cart: function(opts) {
+		if(!full_name) {
+			if(localStorage) {
+				localStorage.setItem("last_visited", window.location.pathname);
+				localStorage.setItem("pending_add_to_cart", opts.item_code);
+			}
+			window.location.href = "/login";
+		} else {
+			return frappe.call({
+				type: "POST",
+				method: "erpnext.shopping_cart.cart.update_cart",
+				args: {
+					item_code: opts.item_code,
+					qty: opts.qty,
+					with_doc: opts.with_doc || 0
+				},
+				btn: opts.btn,
+				callback: function(r) {
+					if(opts.callback)
+						opts.callback(r);
+
+					shopping_cart.set_cart_count();
+				}
+			});
+		}
+	},
+
+	set_cart_count: function() {
+		var cart_count = getCookie("cart_count");
+		var $cart = $("#website-post-login").find('[data-label="Cart"]');
+		var $badge = $cart.find(".badge");
+		var $cog = $("#website-post-login").find(".dropdown-toggle");
+		var $cog_count = $cog.find(".cart-count");
+		if(cart_count) {
+			if($badge.length === 0) {
+				var $badge = $('<span class="badge pull-right"></span>').prependTo($cart.find("a"));
+			}
+			$badge.html(cart_count);
+			if($cog_count.length === 0) {
+				var $cog_count = $('<sup class="cart-count"></span>').insertAfter($cog.find(".icon-cog"));
+			}
+			$cog_count.html(cart_count);
+		} else {
+			$badge.remove();
+			$cog_count.remove();
+		}
+	}
+});
diff --git a/erpnext/public/js/stock_analytics.js b/erpnext/public/js/stock_analytics.js
index d4f43e9..a86d7ad 100644
--- a/erpnext/public/js/stock_analytics.js
+++ b/erpnext/public/js/stock_analytics.js
@@ -138,9 +138,20 @@
 						item.valuation_method : sys_defaults.valuation_method;
 					var is_fifo = valuation_method == "FIFO";
 
-					var diff = me.get_value_diff(wh, sl, is_fifo);
+					if(sl.voucher_type=="Stock Reconciliation") {
+						var diff = (sl.qty_after_transaction * sl.valuation_rate) - item.closing_qty_value;
+						wh.fifo_stack.push([sl.qty_after_transaction, sl.valuation_rate, sl.posting_date]);
+						wh.balance_qty = sl.qty_after_transaction;
+						wh.balance_value = sl.valuation_rate * sl.qty_after_transaction;
+					} else {
+						var diff = me.get_value_diff(wh, sl, is_fifo);
+					}
 				} else {
-					var diff = sl.qty;
+					if(sl.voucher_type=="Stock Reconciliation") {
+						var diff = sl.qty_after_transaction - item.closing_qty_value;
+					} else {
+						var diff = sl.qty;
+					}
 				}
 
 				if(posting_datetime < from_date) {
@@ -150,6 +161,8 @@
 				} else {
 					break;
 				}
+
+				item.closing_qty_value += diff;
 			}
 		}
 	},
diff --git a/erpnext/public/js/stock_grid_report.js b/erpnext/public/js/stock_grid_report.js
index f58c1ab..726852f 100644
--- a/erpnext/public/js/stock_grid_report.js
+++ b/erpnext/public/js/stock_grid_report.js
@@ -9,8 +9,8 @@
 		};
 		return this.item_warehouse[item][warehouse];
 	},
-	
-	get_value_diff: function(wh, sl, is_fifo) {			
+
+	get_value_diff: function(wh, sl, is_fifo) {
 		// value
 		if(sl.qty > 0) {
 			// incoming - rate is given
@@ -30,9 +30,9 @@
 			} else {
 				var value_diff = (rate * add_qty);
 			}
-		
+
 			if(add_qty)
-				wh.fifo_stack.push([add_qty, sl.incoming_rate, sl.posting_date]);				
+				wh.fifo_stack.push([add_qty, sl.incoming_rate, sl.posting_date]);
 		} else {
 			// called everytime for maintaining fifo stack
 			var fifo_value_diff = this.get_fifo_value_diff(wh, sl);
@@ -44,13 +44,13 @@
 				var value_diff = fifo_value_diff;
 			} else {
 				// average rate for weighted average
-				var rate = (wh.balance_qty.toFixed(2) == 0.00 ? 0 : 
+				var rate = (wh.balance_qty.toFixed(2) == 0.00 ? 0 :
 					flt(wh.balance_value) / flt(wh.balance_qty));
-			
+
 				// no change in value if negative qty
 				if((wh.balance_qty + sl.qty).toFixed(2) >= 0.00)
 					var value_diff = (rate * sl.qty);
-				else 
+				else
 					var value_diff = -wh.balance_value;
 			}
 		}
@@ -58,7 +58,6 @@
 		// update balance (only needed in case of valuation)
 		wh.balance_qty += sl.qty;
 		wh.balance_value += value_diff;
-		
 		return value_diff;
 	},
 	get_fifo_value_diff: function(wh, sl) {
@@ -66,19 +65,19 @@
 		var fifo_stack = (wh.fifo_stack || []).reverse();
 		var fifo_value_diff = 0.0;
 		var qty = -sl.qty;
-	
+
 		for(var i=0, j=fifo_stack.length; i<j; i++) {
 			var batch = fifo_stack.pop();
 			if(batch[0] >= qty) {
 				batch[0] = batch[0] - qty;
 				fifo_value_diff += (qty * batch[1]);
-			
+
 				qty = 0.0;
 				if(batch[0]) {
 					// batch still has qty put it back
 					fifo_stack.push(batch);
 				}
-			
+
 				// all qty found
 				break;
 			} else {
@@ -87,35 +86,34 @@
 				qty = qty - batch[0];
 			}
 		}
-	
 		// reset the updated stack
 		wh.fifo_stack = fifo_stack.reverse();
 		return -fifo_value_diff;
 	},
-	
+
 	get_serialized_value_diff: function(sl) {
 		var me = this;
-		
+
 		var value_diff = 0.0;
-		
+
 		$.each(sl.serial_no.trim().split("\n"), function(i, sr) {
 			if(sr) {
 				value_diff += flt(me.serialized_buying_rates[sr.trim().toLowerCase()]);
 			}
 		});
-		
+
 		return value_diff;
 	},
-	
+
 	get_serialized_buying_rates: function() {
 		var serialized_buying_rates = {};
-		
+
 		if (frappe.report_dump.data["Serial No"]) {
 			$.each(frappe.report_dump.data["Serial No"], function(i, sn) {
 				serialized_buying_rates[sn.name.toLowerCase()] = flt(sn.incoming_rate);
 			});
 		}
-		
+
 		return serialized_buying_rates;
 	},
-});
\ No newline at end of file
+});
diff --git a/erpnext/selling/doctype/quotation/quotation.py b/erpnext/selling/doctype/quotation/quotation.py
index ab6e4ba..f12f396 100644
--- a/erpnext/selling/doctype/quotation/quotation.py
+++ b/erpnext/selling/doctype/quotation/quotation.py
@@ -23,7 +23,7 @@
 		self.validate_order_type()
 		self.validate_for_items()
 		self.validate_uom_is_integer("stock_uom", "qty")
-		self.quotation_to = "Customer" if self.customer else "Lead"
+		self.validate_quotation_to()
 
 	def has_sales_order(self):
 		return frappe.db.get_value("Sales Order Item", {"prevdoc_docname": self.name, "docstatus": 1})
@@ -54,6 +54,13 @@
 				if is_sales_item == 'No':
 					frappe.throw(_("Item {0} must be Sales Item").format(d.item_code))
 
+	def validate_quotation_to(self):
+		if self.customer:
+			self.quotation_to = "Customer"
+			self.lead = None
+		elif self.lead:
+			self.quotation_to = "Lead"
+
 	def update_opportunity(self):
 		for opportunity in list(set([d.prevdoc_docname for d in self.get("quotation_details")])):
 			if opportunity:
@@ -139,8 +146,8 @@
 	return doclist
 
 def _make_customer(source_name, ignore_permissions=False):
-	quotation = frappe.db.get_value("Quotation", source_name, ["lead", "order_type"])
-	if quotation and quotation[0]:
+	quotation = frappe.db.get_value("Quotation", source_name, ["lead", "order_type", "customer"])
+	if quotation and quotation[0] and not quotation[2]:
 		lead_name = quotation[0]
 		customer_name = frappe.db.get_value("Customer", {"lead_name": lead_name},
 			["name", "customer_name"], as_dict=True)
diff --git a/erpnext/selling/doctype/sales_order/sales_order.json b/erpnext/selling/doctype/sales_order/sales_order.json
index c78e3d8..3f77006 100644
--- a/erpnext/selling/doctype/sales_order/sales_order.json
+++ b/erpnext/selling/doctype/sales_order/sales_order.json
@@ -1,1112 +1,1114 @@
 {
- "allow_import": 1, 
- "autoname": "naming_series:", 
- "creation": "2013-06-18 12:39:59", 
- "docstatus": 0, 
- "doctype": "DocType", 
- "document_type": "Transaction", 
+ "allow_import": 1,
+ "autoname": "naming_series:",
+ "creation": "2013-06-18 12:39:59",
+ "docstatus": 0,
+ "doctype": "DocType",
+ "document_type": "Transaction",
  "fields": [
   {
-   "fieldname": "customer_section", 
-   "fieldtype": "Section Break", 
-   "label": "Customer", 
-   "options": "icon-user", 
+   "fieldname": "customer_section",
+   "fieldtype": "Section Break",
+   "label": "Customer",
+   "options": "icon-user",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "column_break0", 
-   "fieldtype": "Column Break", 
-   "in_filter": 0, 
-   "oldfieldtype": "Column Break", 
-   "permlevel": 0, 
-   "search_index": 0, 
+   "fieldname": "column_break0",
+   "fieldtype": "Column Break",
+   "in_filter": 0,
+   "oldfieldtype": "Column Break",
+   "permlevel": 0,
+   "search_index": 0,
    "width": "50%"
-  }, 
+  },
   {
-   "fieldname": "naming_series", 
-   "fieldtype": "Select", 
-   "label": "Series", 
-   "no_copy": 1, 
-   "oldfieldname": "naming_series", 
-   "oldfieldtype": "Select", 
-   "options": "SO-", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "naming_series",
+   "fieldtype": "Select",
+   "label": "Series",
+   "no_copy": 1,
+   "oldfieldname": "naming_series",
+   "oldfieldtype": "Select",
+   "options": "SO-",
+   "permlevel": 0,
+   "print_hide": 1,
    "reqd": 1
-  }, 
+  },
   {
-   "fieldname": "customer", 
-   "fieldtype": "Link", 
-   "in_filter": 1, 
-   "in_list_view": 1, 
-   "label": "Customer", 
-   "oldfieldname": "customer", 
-   "oldfieldtype": "Link", 
-   "options": "Customer", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "reqd": 1, 
+   "fieldname": "customer",
+   "fieldtype": "Link",
+   "in_filter": 1,
+   "in_list_view": 1,
+   "label": "Customer",
+   "oldfieldname": "customer",
+   "oldfieldtype": "Link",
+   "options": "Customer",
+   "permlevel": 0,
+   "print_hide": 1,
+   "reqd": 1,
    "search_index": 1
-  }, 
+  },
   {
-   "fieldname": "customer_name", 
-   "fieldtype": "Data", 
-   "hidden": 0, 
-   "label": "Name", 
-   "permlevel": 0, 
+   "fieldname": "customer_name",
+   "fieldtype": "Data",
+   "hidden": 0,
+   "label": "Name",
+   "permlevel": 0,
    "read_only": 1
-  }, 
+  },
   {
-   "fieldname": "address_display", 
-   "fieldtype": "Small Text", 
-   "hidden": 1, 
-   "label": "Address", 
-   "permlevel": 0, 
+   "fieldname": "address_display",
+   "fieldtype": "Small Text",
+   "hidden": 1,
+   "label": "Address",
+   "permlevel": 0,
    "read_only": 1
-  }, 
+  },
   {
-   "fieldname": "contact_display", 
-   "fieldtype": "Small Text", 
-   "hidden": 1, 
-   "label": "Contact", 
-   "permlevel": 0, 
+   "fieldname": "contact_display",
+   "fieldtype": "Small Text",
+   "hidden": 1,
+   "label": "Contact",
+   "permlevel": 0,
    "read_only": 1
-  }, 
+  },
   {
-   "fieldname": "contact_mobile", 
-   "fieldtype": "Small Text", 
-   "hidden": 1, 
-   "label": "Mobile No", 
-   "permlevel": 0, 
+   "fieldname": "contact_mobile",
+   "fieldtype": "Small Text",
+   "hidden": 1,
+   "label": "Mobile No",
+   "permlevel": 0,
    "read_only": 1
-  }, 
+  },
   {
-   "fieldname": "contact_email", 
-   "fieldtype": "Small Text", 
-   "hidden": 1, 
-   "label": "Contact Email", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "contact_email",
+   "fieldtype": "Small Text",
+   "hidden": 1,
+   "label": "Contact Email",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 1
-  }, 
+  },
   {
-   "default": "Sales", 
-   "fieldname": "order_type", 
-   "fieldtype": "Select", 
-   "in_list_view": 1, 
-   "label": "Order Type", 
-   "oldfieldname": "order_type", 
-   "oldfieldtype": "Select", 
-   "options": "\nSales\nMaintenance\nShopping Cart", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "default": "Sales",
+   "fieldname": "order_type",
+   "fieldtype": "Select",
+   "in_list_view": 1,
+   "label": "Order Type",
+   "oldfieldname": "order_type",
+   "oldfieldtype": "Select",
+   "options": "\nSales\nMaintenance\nShopping Cart",
+   "permlevel": 0,
+   "print_hide": 1,
    "reqd": 1
-  }, 
+  },
   {
-   "fieldname": "column_break1", 
-   "fieldtype": "Column Break", 
-   "oldfieldtype": "Column Break", 
-   "permlevel": 0, 
+   "fieldname": "column_break1",
+   "fieldtype": "Column Break",
+   "oldfieldtype": "Column Break",
+   "permlevel": 0,
    "width": "50%"
-  }, 
+  },
   {
-   "fieldname": "amended_from", 
-   "fieldtype": "Link", 
-   "hidden": 1, 
-   "ignore_user_permissions": 1, 
-   "label": "Amended From", 
-   "no_copy": 1, 
-   "oldfieldname": "amended_from", 
-   "oldfieldtype": "Data", 
-   "options": "Sales Order", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 1, 
+   "fieldname": "amended_from",
+   "fieldtype": "Link",
+   "hidden": 1,
+   "ignore_user_permissions": 1,
+   "label": "Amended From",
+   "no_copy": 1,
+   "oldfieldname": "amended_from",
+   "oldfieldtype": "Data",
+   "options": "Sales Order",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 1,
    "width": "150px"
-  }, 
+  },
   {
-   "description": "Select the relevant company name if you have multiple companies.", 
-   "fieldname": "company", 
-   "fieldtype": "Link", 
-   "in_filter": 1, 
-   "label": "Company", 
-   "oldfieldname": "company", 
-   "oldfieldtype": "Link", 
-   "options": "Company", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "reqd": 1, 
-   "search_index": 1, 
+   "description": "Select the relevant company name if you have multiple companies.",
+   "fieldname": "company",
+   "fieldtype": "Link",
+   "in_filter": 1,
+   "label": "Company",
+   "oldfieldname": "company",
+   "oldfieldtype": "Link",
+   "options": "Company",
+   "permlevel": 0,
+   "print_hide": 1,
+   "reqd": 1,
+   "search_index": 1,
    "width": "150px"
-  }, 
+  },
   {
-   "default": "Today", 
-   "fieldname": "transaction_date", 
-   "fieldtype": "Date", 
-   "in_filter": 1, 
-   "label": "Date", 
-   "no_copy": 1, 
-   "oldfieldname": "transaction_date", 
-   "oldfieldtype": "Date", 
-   "permlevel": 0, 
-   "print_hide": 0, 
-   "reqd": 1, 
-   "search_index": 1, 
+   "default": "Today",
+   "fieldname": "transaction_date",
+   "fieldtype": "Date",
+   "in_filter": 1,
+   "label": "Date",
+   "no_copy": 1,
+   "oldfieldname": "transaction_date",
+   "oldfieldtype": "Date",
+   "permlevel": 0,
+   "print_hide": 0,
+   "reqd": 1,
+   "search_index": 1,
    "width": "160px"
-  }, 
+  },
   {
-   "depends_on": "eval:doc.order_type == 'Sales'", 
-   "fieldname": "delivery_date", 
-   "fieldtype": "Date", 
-   "hidden": 0, 
-   "in_filter": 1, 
-   "label": "Delivery Date", 
-   "oldfieldname": "delivery_date", 
-   "oldfieldtype": "Date", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "reqd": 0, 
-   "search_index": 1, 
+   "depends_on": "eval:doc.order_type == 'Sales'",
+   "fieldname": "delivery_date",
+   "fieldtype": "Date",
+   "hidden": 0,
+   "in_filter": 1,
+   "label": "Delivery Date",
+   "oldfieldname": "delivery_date",
+   "oldfieldtype": "Date",
+   "permlevel": 0,
+   "print_hide": 1,
+   "reqd": 0,
+   "search_index": 1,
    "width": "160px"
-  }, 
+  },
   {
-   "allow_on_submit": 1, 
-   "description": "Start date of current order's period", 
-   "fieldname": "from_date", 
-   "fieldtype": "Date", 
-   "label": "From Date", 
-   "no_copy": 1, 
-   "permlevel": 0
-  }, 
-  {
-   "allow_on_submit": 1, 
-   "description": "End date of current order's period", 
-   "fieldname": "to_date", 
-   "fieldtype": "Date", 
-   "label": "To Date", 
-   "no_copy": 1, 
-   "permlevel": 0
-  }, 
-  {
-   "description": "Customer's Purchase Order Number", 
-   "fieldname": "po_no", 
-   "fieldtype": "Data", 
-   "hidden": 0, 
-   "label": "PO No", 
-   "oldfieldname": "po_no", 
-   "oldfieldtype": "Data", 
-   "permlevel": 0, 
-   "print_hide": 0, 
-   "reqd": 0, 
+   "description": "Customer's Purchase Order Number",
+   "fieldname": "po_no",
+   "fieldtype": "Data",
+   "hidden": 0,
+   "label": "PO No",
+   "oldfieldname": "po_no",
+   "oldfieldtype": "Data",
+   "permlevel": 0,
+   "print_hide": 0,
+   "reqd": 0,
    "width": "100px"
-  }, 
+  },
   {
-   "depends_on": "eval:doc.po_no", 
-   "description": "Customer's Purchase Order Date", 
-   "fieldname": "po_date", 
-   "fieldtype": "Date", 
-   "hidden": 0, 
-   "label": "PO Date", 
-   "oldfieldname": "po_date", 
-   "oldfieldtype": "Date", 
-   "permlevel": 0, 
-   "print_hide": 0, 
-   "reqd": 0, 
+   "depends_on": "eval:doc.po_no",
+   "description": "Customer's Purchase Order Date",
+   "fieldname": "po_date",
+   "fieldtype": "Date",
+   "hidden": 0,
+   "label": "PO Date",
+   "oldfieldname": "po_date",
+   "oldfieldtype": "Date",
+   "permlevel": 0,
+   "print_hide": 0,
+   "reqd": 0,
    "width": "100px"
-  }, 
+  },
   {
-   "fieldname": "shipping_address_name", 
-   "fieldtype": "Link", 
-   "hidden": 1, 
-   "in_filter": 1, 
-   "label": "Shipping Address Name", 
-   "options": "Address", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "shipping_address_name",
+   "fieldtype": "Link",
+   "hidden": 1,
+   "in_filter": 1,
+   "label": "Shipping Address Name",
+   "options": "Address",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 0
-  }, 
+  },
   {
-   "fieldname": "shipping_address", 
-   "fieldtype": "Small Text", 
-   "hidden": 1, 
-   "in_filter": 0, 
-   "label": "Shipping Address", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "shipping_address",
+   "fieldtype": "Small Text",
+   "hidden": 1,
+   "in_filter": 0,
+   "label": "Shipping Address",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 1
-  }, 
+  },
   {
-   "fieldname": "sec_break45", 
-   "fieldtype": "Section Break", 
-   "label": "Currency and Price List", 
-   "options": "icon-tag", 
-   "permlevel": 0, 
+   "fieldname": "sec_break45",
+   "fieldtype": "Section Break",
+   "label": "Currency and Price List",
+   "options": "icon-tag",
+   "permlevel": 0,
    "print_hide": 1
-  }, 
+  },
   {
-   "fieldname": "currency", 
-   "fieldtype": "Link", 
-   "label": "Currency", 
-   "oldfieldname": "currency", 
-   "oldfieldtype": "Select", 
-   "options": "Currency", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "reqd": 1, 
+   "fieldname": "currency",
+   "fieldtype": "Link",
+   "label": "Currency",
+   "oldfieldname": "currency",
+   "oldfieldtype": "Select",
+   "options": "Currency",
+   "permlevel": 0,
+   "print_hide": 1,
+   "reqd": 1,
    "width": "100px"
-  }, 
+  },
   {
-   "description": "Rate at which customer's currency is converted to company's base currency", 
-   "fieldname": "conversion_rate", 
-   "fieldtype": "Float", 
-   "label": "Exchange Rate", 
-   "oldfieldname": "conversion_rate", 
-   "oldfieldtype": "Currency", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "reqd": 1, 
+   "description": "Rate at which customer's currency is converted to company's base currency",
+   "fieldname": "conversion_rate",
+   "fieldtype": "Float",
+   "label": "Exchange Rate",
+   "oldfieldname": "conversion_rate",
+   "oldfieldtype": "Currency",
+   "permlevel": 0,
+   "print_hide": 1,
+   "reqd": 1,
    "width": "100px"
-  }, 
+  },
   {
-   "fieldname": "column_break2", 
-   "fieldtype": "Column Break", 
-   "permlevel": 0, 
+   "fieldname": "column_break2",
+   "fieldtype": "Column Break",
+   "permlevel": 0,
    "width": "50%"
-  }, 
+  },
   {
-   "fieldname": "selling_price_list", 
-   "fieldtype": "Link", 
-   "label": "Price List", 
-   "oldfieldname": "price_list_name", 
-   "oldfieldtype": "Select", 
-   "options": "Price List", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "reqd": 1, 
+   "fieldname": "selling_price_list",
+   "fieldtype": "Link",
+   "label": "Price List",
+   "oldfieldname": "price_list_name",
+   "oldfieldtype": "Select",
+   "options": "Price List",
+   "permlevel": 0,
+   "print_hide": 1,
+   "reqd": 1,
    "width": "100px"
-  }, 
+  },
   {
-   "fieldname": "price_list_currency", 
-   "fieldtype": "Link", 
-   "label": "Price List Currency", 
-   "options": "Currency", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 1, 
+   "fieldname": "price_list_currency",
+   "fieldtype": "Link",
+   "label": "Price List Currency",
+   "options": "Currency",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 1,
    "reqd": 1
-  }, 
+  },
   {
-   "description": "Rate at which Price list currency is converted to company's base currency", 
-   "fieldname": "plc_conversion_rate", 
-   "fieldtype": "Float", 
-   "label": "Price List Exchange Rate", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "description": "Rate at which Price list currency is converted to company's base currency",
+   "fieldname": "plc_conversion_rate",
+   "fieldtype": "Float",
+   "label": "Price List Exchange Rate",
+   "permlevel": 0,
+   "print_hide": 1,
    "reqd": 1
-  }, 
+  },
   {
-   "fieldname": "ignore_pricing_rule", 
-   "fieldtype": "Check", 
-   "label": "Ignore Pricing Rule", 
-   "no_copy": 1, 
-   "permlevel": 1, 
+   "fieldname": "ignore_pricing_rule",
+   "fieldtype": "Check",
+   "label": "Ignore Pricing Rule",
+   "no_copy": 1,
+   "permlevel": 1,
    "print_hide": 1
-  }, 
+  },
   {
-   "fieldname": "items", 
-   "fieldtype": "Section Break", 
-   "label": "Items", 
-   "oldfieldtype": "Section Break", 
-   "options": "icon-shopping-cart", 
+   "fieldname": "items",
+   "fieldtype": "Section Break",
+   "label": "Items",
+   "oldfieldtype": "Section Break",
+   "options": "icon-shopping-cart",
    "permlevel": 0
-  }, 
+  },
   {
-   "allow_on_submit": 1, 
-   "fieldname": "sales_order_details", 
-   "fieldtype": "Table", 
-   "label": "Sales Order Items", 
-   "oldfieldname": "sales_order_details", 
-   "oldfieldtype": "Table", 
-   "options": "Sales Order Item", 
-   "permlevel": 0, 
-   "print_hide": 0, 
+   "allow_on_submit": 1,
+   "fieldname": "sales_order_details",
+   "fieldtype": "Table",
+   "label": "Sales Order Items",
+   "oldfieldname": "sales_order_details",
+   "oldfieldtype": "Table",
+   "options": "Sales Order Item",
+   "permlevel": 0,
+   "print_hide": 0,
    "reqd": 1
-  }, 
+  },
   {
-   "fieldname": "section_break_31", 
-   "fieldtype": "Section Break", 
+   "fieldname": "section_break_31",
+   "fieldtype": "Section Break",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "column_break_33a", 
-   "fieldtype": "Column Break", 
+   "fieldname": "column_break_33a",
+   "fieldtype": "Column Break",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "column_break_33", 
-   "fieldtype": "Column Break", 
+   "fieldname": "column_break_33",
+   "fieldtype": "Column Break",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "net_total_export", 
-   "fieldtype": "Currency", 
-   "label": "Net Total", 
-   "options": "currency", 
-   "permlevel": 0, 
+   "fieldname": "net_total_export",
+   "fieldtype": "Currency",
+   "label": "Net Total",
+   "options": "currency",
+   "permlevel": 0,
    "read_only": 1
-  }, 
+  },
   {
-   "fieldname": "net_total", 
-   "fieldtype": "Currency", 
-   "label": "Net Total (Company Currency)", 
-   "oldfieldname": "net_total", 
-   "oldfieldtype": "Currency", 
-   "options": "Company:company:default_currency", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 1, 
-   "reqd": 0, 
+   "fieldname": "net_total",
+   "fieldtype": "Currency",
+   "label": "Net Total (Company Currency)",
+   "oldfieldname": "net_total",
+   "oldfieldtype": "Currency",
+   "options": "Company:company:default_currency",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 1,
+   "reqd": 0,
    "width": "150px"
-  }, 
+  },
   {
-   "fieldname": "taxes", 
-   "fieldtype": "Section Break", 
-   "label": "Taxes and Charges", 
-   "oldfieldtype": "Section Break", 
-   "options": "icon-money", 
-   "permlevel": 0, 
+   "fieldname": "taxes",
+   "fieldtype": "Section Break",
+   "label": "Taxes and Charges",
+   "oldfieldtype": "Section Break",
+   "options": "icon-money",
+   "permlevel": 0,
    "print_hide": 0
-  }, 
+  },
   {
-   "fieldname": "taxes_and_charges", 
-   "fieldtype": "Link", 
-   "label": "Taxes and Charges", 
-   "oldfieldname": "charge", 
-   "oldfieldtype": "Link", 
-   "options": "Sales Taxes and Charges Master", 
-   "permlevel": 0, 
+   "fieldname": "taxes_and_charges",
+   "fieldtype": "Link",
+   "label": "Taxes and Charges",
+   "oldfieldname": "charge",
+   "oldfieldtype": "Link",
+   "options": "Sales Taxes and Charges Master",
+   "permlevel": 0,
    "print_hide": 1
-  }, 
+  },
   {
-   "fieldname": "column_break_38", 
-   "fieldtype": "Column Break", 
+   "fieldname": "column_break_38",
+   "fieldtype": "Column Break",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "shipping_rule", 
-   "fieldtype": "Link", 
-   "label": "Shipping Rule", 
-   "oldfieldtype": "Button", 
-   "options": "Shipping Rule", 
-   "permlevel": 0, 
+   "fieldname": "shipping_rule",
+   "fieldtype": "Link",
+   "label": "Shipping Rule",
+   "oldfieldtype": "Button",
+   "options": "Shipping Rule",
+   "permlevel": 0,
    "print_hide": 1
-  }, 
+  },
   {
-   "fieldname": "section_break_40", 
-   "fieldtype": "Section Break", 
+   "fieldname": "section_break_40",
+   "fieldtype": "Section Break",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "other_charges", 
-   "fieldtype": "Table", 
-   "label": "Sales Taxes and Charges", 
-   "oldfieldname": "other_charges", 
-   "oldfieldtype": "Table", 
-   "options": "Sales Taxes and Charges", 
+   "fieldname": "other_charges",
+   "fieldtype": "Table",
+   "label": "Sales Taxes and Charges",
+   "oldfieldname": "other_charges",
+   "oldfieldtype": "Table",
+   "options": "Sales Taxes and Charges",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "other_charges_calculation", 
-   "fieldtype": "HTML", 
-   "label": "Taxes and Charges Calculation", 
-   "oldfieldtype": "HTML", 
-   "permlevel": 0, 
+   "fieldname": "other_charges_calculation",
+   "fieldtype": "HTML",
+   "label": "Taxes and Charges Calculation",
+   "oldfieldtype": "HTML",
+   "permlevel": 0,
    "print_hide": 1
-  }, 
+  },
   {
-   "fieldname": "section_break_43", 
-   "fieldtype": "Section Break", 
+   "fieldname": "section_break_43",
+   "fieldtype": "Section Break",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "other_charges_total_export", 
-   "fieldtype": "Currency", 
-   "label": "Taxes and Charges Total", 
-   "options": "currency", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "other_charges_total_export",
+   "fieldtype": "Currency",
+   "label": "Taxes and Charges Total",
+   "options": "currency",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 1
-  }, 
+  },
   {
-   "fieldname": "column_break_46", 
-   "fieldtype": "Column Break", 
+   "fieldname": "column_break_46",
+   "fieldtype": "Column Break",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "other_charges_total", 
-   "fieldtype": "Currency", 
-   "label": "Taxes and Charges Total (Company Currency)", 
-   "oldfieldname": "other_charges_total", 
-   "oldfieldtype": "Currency", 
-   "options": "Company:company:default_currency", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 1, 
+   "fieldname": "other_charges_total",
+   "fieldtype": "Currency",
+   "label": "Taxes and Charges Total (Company Currency)",
+   "oldfieldname": "other_charges_total",
+   "oldfieldtype": "Currency",
+   "options": "Company:company:default_currency",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 1,
    "width": "150px"
-  }, 
+  },
   {
-   "fieldname": "discount_amount", 
-   "fieldtype": "Currency", 
-   "label": "Discount Amount", 
-   "options": "Company:company:default_currency", 
+   "fieldname": "discount_amount",
+   "fieldtype": "Currency",
+   "label": "Discount Amount",
+   "options": "Company:company:default_currency",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "totals", 
-   "fieldtype": "Section Break", 
-   "label": "Totals", 
-   "oldfieldtype": "Section Break", 
-   "options": "icon-money", 
-   "permlevel": 0, 
+   "fieldname": "totals",
+   "fieldtype": "Section Break",
+   "label": "Totals",
+   "oldfieldtype": "Section Break",
+   "options": "icon-money",
+   "permlevel": 0,
    "print_hide": 1
-  }, 
+  },
   {
-   "fieldname": "grand_total", 
-   "fieldtype": "Currency", 
-   "label": "Grand Total (Company Currency)", 
-   "oldfieldname": "grand_total", 
-   "oldfieldtype": "Currency", 
-   "options": "Company:company:default_currency", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 1, 
-   "reqd": 0, 
+   "fieldname": "grand_total",
+   "fieldtype": "Currency",
+   "label": "Grand Total (Company Currency)",
+   "oldfieldname": "grand_total",
+   "oldfieldtype": "Currency",
+   "options": "Company:company:default_currency",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 1,
+   "reqd": 0,
    "width": "150px"
-  }, 
+  },
   {
-   "fieldname": "rounded_total", 
-   "fieldtype": "Currency", 
-   "label": "Rounded Total (Company Currency)", 
-   "oldfieldname": "rounded_total", 
-   "oldfieldtype": "Currency", 
-   "options": "Company:company:default_currency", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 1, 
+   "fieldname": "rounded_total",
+   "fieldtype": "Currency",
+   "label": "Rounded Total (Company Currency)",
+   "oldfieldname": "rounded_total",
+   "oldfieldtype": "Currency",
+   "options": "Company:company:default_currency",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 1,
    "width": "150px"
-  }, 
+  },
   {
-   "description": "In Words will be visible once you save the Sales Order.", 
-   "fieldname": "in_words", 
-   "fieldtype": "Data", 
-   "label": "In Words (Company Currency)", 
-   "oldfieldname": "in_words", 
-   "oldfieldtype": "Data", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 1, 
+   "description": "In Words will be visible once you save the Sales Order.",
+   "fieldname": "in_words",
+   "fieldtype": "Data",
+   "label": "In Words (Company Currency)",
+   "oldfieldname": "in_words",
+   "oldfieldtype": "Data",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 1,
    "width": "200px"
-  }, 
+  },
   {
-   "fieldname": "advance_paid", 
-   "fieldtype": "Currency", 
-   "label": "Advance Paid", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "advance_paid",
+   "fieldtype": "Currency",
+   "label": "Advance Paid",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 1
-  }, 
+  },
   {
-   "fieldname": "column_break3", 
-   "fieldtype": "Column Break", 
-   "oldfieldtype": "Column Break", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "column_break3",
+   "fieldtype": "Column Break",
+   "oldfieldtype": "Column Break",
+   "permlevel": 0,
+   "print_hide": 1,
    "width": "50%"
-  }, 
+  },
   {
-   "fieldname": "grand_total_export", 
-   "fieldtype": "Currency", 
-   "label": "Grand Total", 
-   "oldfieldname": "grand_total_export", 
-   "oldfieldtype": "Currency", 
-   "options": "currency", 
-   "permlevel": 0, 
-   "print_hide": 0, 
-   "read_only": 1, 
-   "reqd": 0, 
+   "fieldname": "grand_total_export",
+   "fieldtype": "Currency",
+   "label": "Grand Total",
+   "oldfieldname": "grand_total_export",
+   "oldfieldtype": "Currency",
+   "options": "currency",
+   "permlevel": 0,
+   "print_hide": 0,
+   "read_only": 1,
+   "reqd": 0,
    "width": "150px"
-  }, 
+  },
   {
-   "fieldname": "rounded_total_export", 
-   "fieldtype": "Currency", 
-   "label": "Rounded Total", 
-   "oldfieldname": "rounded_total_export", 
-   "oldfieldtype": "Currency", 
-   "options": "currency", 
-   "permlevel": 0, 
-   "print_hide": 0, 
-   "read_only": 1, 
+   "fieldname": "rounded_total_export",
+   "fieldtype": "Currency",
+   "label": "Rounded Total",
+   "oldfieldname": "rounded_total_export",
+   "oldfieldtype": "Currency",
+   "options": "currency",
+   "permlevel": 0,
+   "print_hide": 0,
+   "read_only": 1,
    "width": "150px"
-  }, 
+  },
   {
-   "fieldname": "in_words_export", 
-   "fieldtype": "Data", 
-   "label": "In Words", 
-   "oldfieldname": "in_words_export", 
-   "oldfieldtype": "Data", 
-   "permlevel": 0, 
-   "print_hide": 0, 
-   "read_only": 1, 
+   "fieldname": "in_words_export",
+   "fieldtype": "Data",
+   "label": "In Words",
+   "oldfieldname": "in_words_export",
+   "oldfieldtype": "Data",
+   "permlevel": 0,
+   "print_hide": 0,
+   "read_only": 1,
    "width": "200px"
-  }, 
+  },
   {
-   "fieldname": "view_details", 
-   "fieldtype": "Fold", 
-   "label": "View Details", 
+   "fieldname": "view_details",
+   "fieldtype": "Fold",
+   "label": "View Details",
    "permlevel": 0
-  }, 
+  },
   {
-   "description": "Display all the individual items delivered with the main items", 
-   "fieldname": "packing_list", 
-   "fieldtype": "Section Break", 
-   "hidden": 0, 
-   "label": "Packing List", 
-   "oldfieldtype": "Section Break", 
-   "options": "icon-suitcase", 
-   "permlevel": 0, 
+   "description": "Display all the individual items delivered with the main items",
+   "fieldname": "packing_list",
+   "fieldtype": "Section Break",
+   "hidden": 0,
+   "label": "Packing List",
+   "oldfieldtype": "Section Break",
+   "options": "icon-suitcase",
+   "permlevel": 0,
    "print_hide": 1
-  }, 
+  },
   {
-   "fieldname": "packing_details", 
-   "fieldtype": "Table", 
-   "label": "Packing Details", 
-   "oldfieldname": "packing_details", 
-   "oldfieldtype": "Table", 
-   "options": "Packed Item", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "packing_details",
+   "fieldtype": "Table",
+   "label": "Packing Details",
+   "oldfieldname": "packing_details",
+   "oldfieldtype": "Table",
+   "options": "Packed Item",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 1
-  }, 
+  },
   {
-   "fieldname": "terms_section_break", 
-   "fieldtype": "Section Break", 
-   "label": "Terms and Conditions", 
-   "oldfieldtype": "Section Break", 
-   "options": "icon-legal", 
-   "permlevel": 0, 
+   "fieldname": "terms_section_break",
+   "fieldtype": "Section Break",
+   "label": "Terms and Conditions",
+   "oldfieldtype": "Section Break",
+   "options": "icon-legal",
+   "permlevel": 0,
    "print_hide": 0
-  }, 
+  },
   {
-   "fieldname": "tc_name", 
-   "fieldtype": "Link", 
-   "label": "Terms", 
-   "oldfieldname": "tc_name", 
-   "oldfieldtype": "Link", 
-   "options": "Terms and Conditions", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "tc_name",
+   "fieldtype": "Link",
+   "label": "Terms",
+   "oldfieldname": "tc_name",
+   "oldfieldtype": "Link",
+   "options": "Terms and Conditions",
+   "permlevel": 0,
+   "print_hide": 1,
    "search_index": 0
-  }, 
+  },
   {
-   "fieldname": "terms", 
-   "fieldtype": "Text Editor", 
-   "label": "Terms and Conditions Details", 
-   "oldfieldname": "terms", 
-   "oldfieldtype": "Text Editor", 
-   "permlevel": 0, 
+   "fieldname": "terms",
+   "fieldtype": "Text Editor",
+   "label": "Terms and Conditions Details",
+   "oldfieldname": "terms",
+   "oldfieldtype": "Text Editor",
+   "permlevel": 0,
    "print_hide": 0
-  }, 
+  },
   {
-   "depends_on": "customer", 
-   "fieldname": "contact_info", 
-   "fieldtype": "Section Break", 
-   "label": "Contact Info", 
-   "options": "icon-bullhorn", 
+   "depends_on": "customer",
+   "fieldname": "contact_info",
+   "fieldtype": "Section Break",
+   "label": "Contact Info",
+   "options": "icon-bullhorn",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "col_break45", 
-   "fieldtype": "Column Break", 
-   "permlevel": 0, 
+   "fieldname": "col_break45",
+   "fieldtype": "Column Break",
+   "permlevel": 0,
    "width": "50%"
-  }, 
+  },
   {
-   "description": "<a href=\"#Sales Browser/Territory\">Add / Edit</a>", 
-   "fieldname": "territory", 
-   "fieldtype": "Link", 
-   "in_filter": 1, 
-   "label": "Territory", 
-   "options": "Territory", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "reqd": 1, 
+   "description": "<a href=\"#Sales Browser/Territory\">Add / Edit</a>",
+   "fieldname": "territory",
+   "fieldtype": "Link",
+   "in_filter": 1,
+   "label": "Territory",
+   "options": "Territory",
+   "permlevel": 0,
+   "print_hide": 1,
+   "reqd": 1,
    "search_index": 1
-  }, 
+  },
   {
-   "description": "<a href=\"#Sales Browser/Customer Group\">Add / Edit</a>", 
-   "fieldname": "customer_group", 
-   "fieldtype": "Link", 
-   "in_filter": 1, 
-   "label": "Customer Group", 
-   "options": "Customer Group", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "reqd": 1, 
+   "description": "<a href=\"#Sales Browser/Customer Group\">Add / Edit</a>",
+   "fieldname": "customer_group",
+   "fieldtype": "Link",
+   "in_filter": 1,
+   "label": "Customer Group",
+   "options": "Customer Group",
+   "permlevel": 0,
+   "print_hide": 1,
+   "reqd": 1,
    "search_index": 1
-  }, 
+  },
   {
-   "fieldname": "col_break46", 
-   "fieldtype": "Column Break", 
-   "permlevel": 0, 
+   "fieldname": "col_break46",
+   "fieldtype": "Column Break",
+   "permlevel": 0,
    "width": "50%"
-  }, 
+  },
   {
-   "fieldname": "customer_address", 
-   "fieldtype": "Link", 
-   "hidden": 0, 
-   "in_filter": 1, 
-   "label": "Customer Address", 
-   "options": "Address", 
-   "permlevel": 0, 
+   "fieldname": "customer_address",
+   "fieldtype": "Link",
+   "hidden": 0,
+   "in_filter": 1,
+   "label": "Customer Address",
+   "options": "Address",
+   "permlevel": 0,
    "print_hide": 1
-  }, 
+  },
   {
-   "fieldname": "contact_person", 
-   "fieldtype": "Link", 
-   "in_filter": 1, 
-   "label": "Contact Person", 
-   "options": "Contact", 
-   "permlevel": 0, 
+   "fieldname": "contact_person",
+   "fieldtype": "Link",
+   "in_filter": 1,
+   "label": "Contact Person",
+   "options": "Contact",
+   "permlevel": 0,
    "print_hide": 1
-  }, 
+  },
   {
-   "fieldname": "more_info", 
-   "fieldtype": "Section Break", 
-   "label": "More Info", 
-   "oldfieldtype": "Section Break", 
-   "options": "icon-file-text", 
-   "permlevel": 0, 
+   "fieldname": "more_info",
+   "fieldtype": "Section Break",
+   "label": "More Info",
+   "oldfieldtype": "Section Break",
+   "options": "icon-file-text",
+   "permlevel": 0,
    "print_hide": 1
-  }, 
+  },
   {
-   "description": "Track this Sales Order against any Project", 
-   "fieldname": "project_name", 
-   "fieldtype": "Link", 
-   "in_filter": 1, 
-   "label": "Project Name", 
-   "oldfieldname": "project_name", 
-   "oldfieldtype": "Link", 
-   "options": "Project", 
-   "permlevel": 0, 
+   "description": "Track this Sales Order against any Project",
+   "fieldname": "project_name",
+   "fieldtype": "Link",
+   "in_filter": 1,
+   "label": "Project Name",
+   "oldfieldname": "project_name",
+   "oldfieldtype": "Link",
+   "options": "Project",
+   "permlevel": 0,
    "search_index": 1
-  }, 
+  },
   {
-   "depends_on": "eval:doc.source == 'Campaign'", 
-   "fieldname": "campaign", 
-   "fieldtype": "Link", 
-   "label": "Campaign", 
-   "oldfieldname": "campaign", 
-   "oldfieldtype": "Link", 
-   "options": "Campaign", 
-   "permlevel": 0, 
+   "depends_on": "eval:doc.source == 'Campaign'",
+   "fieldname": "campaign",
+   "fieldtype": "Link",
+   "label": "Campaign",
+   "oldfieldname": "campaign",
+   "oldfieldtype": "Link",
+   "options": "Campaign",
+   "permlevel": 0,
    "print_hide": 1
-  }, 
+  },
   {
-   "fieldname": "source", 
-   "fieldtype": "Select", 
-   "label": "Source", 
-   "oldfieldname": "source", 
-   "oldfieldtype": "Select", 
-   "options": "\nExisting Customer\nReference\nAdvertisement\nCold Calling\nExhibition\nSupplier Reference\nMass Mailing\nCustomer's Vendor\nCampaign", 
-   "permlevel": 0, 
+   "fieldname": "source",
+   "fieldtype": "Select",
+   "label": "Source",
+   "oldfieldname": "source",
+   "oldfieldtype": "Select",
+   "options": "\nExisting Customer\nReference\nAdvertisement\nCold Calling\nExhibition\nSupplier Reference\nMass Mailing\nCustomer's Vendor\nCampaign",
+   "permlevel": 0,
    "print_hide": 1
-  }, 
+  },
   {
-   "fieldname": "column_break4", 
-   "fieldtype": "Column Break", 
-   "oldfieldtype": "Column Break", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "column_break4",
+   "fieldtype": "Column Break",
+   "oldfieldtype": "Column Break",
+   "permlevel": 0,
+   "print_hide": 1,
    "width": "50%"
-  }, 
+  },
   {
-   "allow_on_submit": 1, 
-   "fieldname": "letter_head", 
-   "fieldtype": "Link", 
-   "label": "Letter Head", 
-   "oldfieldname": "letter_head", 
-   "oldfieldtype": "Select", 
-   "options": "Letter Head", 
-   "permlevel": 0, 
+   "allow_on_submit": 1,
+   "fieldname": "letter_head",
+   "fieldtype": "Link",
+   "label": "Letter Head",
+   "oldfieldname": "letter_head",
+   "oldfieldtype": "Select",
+   "options": "Letter Head",
+   "permlevel": 0,
    "print_hide": 1
-  }, 
+  },
   {
-   "allow_on_submit": 1, 
-   "fieldname": "select_print_heading", 
-   "fieldtype": "Link", 
-   "label": "Print Heading", 
-   "no_copy": 1, 
-   "oldfieldname": "select_print_heading", 
-   "oldfieldtype": "Link", 
-   "options": "Print Heading", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "allow_on_submit": 1,
+   "fieldname": "select_print_heading",
+   "fieldtype": "Link",
+   "label": "Print Heading",
+   "no_copy": 1,
+   "oldfieldname": "select_print_heading",
+   "oldfieldtype": "Link",
+   "options": "Print Heading",
+   "permlevel": 0,
+   "print_hide": 1,
    "report_hide": 1
-  }, 
+  },
   {
-   "fieldname": "fiscal_year", 
-   "fieldtype": "Link", 
-   "in_filter": 1, 
-   "label": "Fiscal Year", 
-   "oldfieldname": "fiscal_year", 
-   "oldfieldtype": "Select", 
-   "options": "Fiscal Year", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "reqd": 1, 
-   "search_index": 1, 
+   "fieldname": "fiscal_year",
+   "fieldtype": "Link",
+   "in_filter": 1,
+   "label": "Fiscal Year",
+   "oldfieldname": "fiscal_year",
+   "oldfieldtype": "Select",
+   "options": "Fiscal Year",
+   "permlevel": 0,
+   "print_hide": 1,
+   "reqd": 1,
+   "search_index": 1,
    "width": "150px"
-  }, 
+  },
   {
-   "fieldname": "section_break_78", 
-   "fieldtype": "Section Break", 
-   "oldfieldtype": "Column Break", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "section_break_78",
+   "fieldtype": "Section Break",
+   "oldfieldtype": "Column Break",
+   "permlevel": 0,
+   "print_hide": 1,
    "width": "50%"
-  }, 
+  },
   {
-   "default": "Draft", 
-   "fieldname": "status", 
-   "fieldtype": "Select", 
-   "in_filter": 1, 
-   "in_list_view": 1, 
-   "label": "Status", 
-   "no_copy": 1, 
-   "oldfieldname": "status", 
-   "oldfieldtype": "Select", 
-   "options": "\nDraft\nSubmitted\nStopped\nCancelled", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 1, 
-   "reqd": 1, 
-   "search_index": 1, 
+   "default": "Draft",
+   "fieldname": "status",
+   "fieldtype": "Select",
+   "in_filter": 1,
+   "in_list_view": 1,
+   "label": "Status",
+   "no_copy": 1,
+   "oldfieldname": "status",
+   "oldfieldtype": "Select",
+   "options": "\nDraft\nSubmitted\nStopped\nCancelled",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 1,
+   "reqd": 1,
+   "search_index": 1,
    "width": "100px"
-  }, 
+  },
   {
-   "fieldname": "delivery_status", 
-   "fieldtype": "Select", 
-   "hidden": 1, 
-   "label": "Delivery Status", 
-   "no_copy": 1, 
-   "options": "Not Delivered\nFully Delivered\nPartly Delivered\nClosed\nNot Applicable", 
-   "permlevel": 0, 
+   "fieldname": "delivery_status",
+   "fieldtype": "Select",
+   "hidden": 1,
+   "label": "Delivery Status",
+   "no_copy": 1,
+   "options": "Not Delivered\nFully Delivered\nPartly Delivered\nClosed\nNot Applicable",
+   "permlevel": 0,
    "print_hide": 1
-  }, 
+  },
   {
-   "depends_on": "eval:!doc.__islocal", 
-   "description": "% of materials delivered against this Sales Order", 
-   "fieldname": "per_delivered", 
-   "fieldtype": "Percent", 
-   "in_filter": 1, 
-   "in_list_view": 1, 
-   "label": "%  Delivered", 
-   "no_copy": 1, 
-   "oldfieldname": "per_delivered", 
-   "oldfieldtype": "Currency", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 1, 
+   "depends_on": "eval:!doc.__islocal",
+   "description": "% of materials delivered against this Sales Order",
+   "fieldname": "per_delivered",
+   "fieldtype": "Percent",
+   "in_filter": 1,
+   "in_list_view": 1,
+   "label": "%  Delivered",
+   "no_copy": 1,
+   "oldfieldname": "per_delivered",
+   "oldfieldtype": "Currency",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 1,
    "width": "100px"
-  }, 
+  },
   {
-   "fieldname": "column_break_81", 
-   "fieldtype": "Column Break", 
+   "fieldname": "column_break_81",
+   "fieldtype": "Column Break",
    "permlevel": 0
-  }, 
+  },
   {
-   "depends_on": "eval:!doc.__islocal", 
-   "description": "% of materials billed against this Sales Order", 
-   "fieldname": "per_billed", 
-   "fieldtype": "Percent", 
-   "in_filter": 1, 
-   "in_list_view": 1, 
-   "label": "% Amount Billed", 
-   "no_copy": 1, 
-   "oldfieldname": "per_billed", 
-   "oldfieldtype": "Currency", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 1, 
+   "depends_on": "eval:!doc.__islocal",
+   "description": "% of materials billed against this Sales Order",
+   "fieldname": "per_billed",
+   "fieldtype": "Percent",
+   "in_filter": 1,
+   "in_list_view": 1,
+   "label": "% Amount Billed",
+   "no_copy": 1,
+   "oldfieldname": "per_billed",
+   "oldfieldtype": "Currency",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 1,
    "width": "100px"
-  }, 
+  },
   {
-   "fieldname": "billing_status", 
-   "fieldtype": "Select", 
-   "hidden": 1, 
-   "label": "Billing Status", 
-   "no_copy": 1, 
-   "options": "Not Billed\nFully Billed\nPartly Billed\nClosed", 
-   "permlevel": 0, 
+   "fieldname": "billing_status",
+   "fieldtype": "Select",
+   "hidden": 1,
+   "label": "Billing Status",
+   "no_copy": 1,
+   "options": "Not Billed\nFully Billed\nPartly Billed\nClosed",
+   "permlevel": 0,
    "print_hide": 1
-  }, 
+  },
   {
-   "fieldname": "sales_team_section_break", 
-   "fieldtype": "Section Break", 
-   "label": "Sales Team", 
-   "oldfieldtype": "Section Break", 
-   "options": "icon-group", 
-   "permlevel": 0, 
+   "fieldname": "sales_team_section_break",
+   "fieldtype": "Section Break",
+   "label": "Sales Team",
+   "oldfieldtype": "Section Break",
+   "options": "icon-group",
+   "permlevel": 0,
    "print_hide": 1
-  }, 
+  },
   {
-   "fieldname": "sales_partner", 
-   "fieldtype": "Link", 
-   "in_filter": 1, 
-   "label": "Sales Partner", 
-   "oldfieldname": "sales_partner", 
-   "oldfieldtype": "Link", 
-   "options": "Sales Partner", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "search_index": 1, 
+   "fieldname": "sales_partner",
+   "fieldtype": "Link",
+   "in_filter": 1,
+   "label": "Sales Partner",
+   "oldfieldname": "sales_partner",
+   "oldfieldtype": "Link",
+   "options": "Sales Partner",
+   "permlevel": 0,
+   "print_hide": 1,
+   "search_index": 1,
    "width": "150px"
-  }, 
+  },
   {
-   "fieldname": "column_break7", 
-   "fieldtype": "Column Break", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "column_break7",
+   "fieldtype": "Column Break",
+   "permlevel": 0,
+   "print_hide": 1,
    "width": "50%"
-  }, 
+  },
   {
-   "fieldname": "commission_rate", 
-   "fieldtype": "Float", 
-   "label": "Commission Rate", 
-   "oldfieldname": "commission_rate", 
-   "oldfieldtype": "Currency", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "commission_rate",
+   "fieldtype": "Float",
+   "label": "Commission Rate",
+   "oldfieldname": "commission_rate",
+   "oldfieldtype": "Currency",
+   "permlevel": 0,
+   "print_hide": 1,
    "width": "100px"
-  }, 
+  },
   {
-   "fieldname": "total_commission", 
-   "fieldtype": "Currency", 
-   "label": "Total Commission", 
-   "oldfieldname": "total_commission", 
-   "oldfieldtype": "Currency", 
-   "options": "Company:company:default_currency", 
-   "permlevel": 0, 
+   "fieldname": "total_commission",
+   "fieldtype": "Currency",
+   "label": "Total Commission",
+   "oldfieldname": "total_commission",
+   "oldfieldtype": "Currency",
+   "options": "Company:company:default_currency",
+   "permlevel": 0,
    "print_hide": 1
-  }, 
+  },
   {
-   "fieldname": "section_break1", 
-   "fieldtype": "Section Break", 
-   "permlevel": 0, 
+   "fieldname": "section_break1",
+   "fieldtype": "Section Break",
+   "permlevel": 0,
    "print_hide": 1
-  }, 
+  },
   {
-   "fieldname": "sales_team", 
-   "fieldtype": "Table", 
-   "label": "Sales Team1", 
-   "oldfieldname": "sales_team", 
-   "oldfieldtype": "Table", 
-   "options": "Sales Team", 
-   "permlevel": 0, 
+   "fieldname": "sales_team",
+   "fieldtype": "Table",
+   "label": "Sales Team1",
+   "oldfieldname": "sales_team",
+   "oldfieldtype": "Table",
+   "options": "Sales Team",
+   "permlevel": 0,
    "print_hide": 1
-  }, 
+  },
   {
-   "fieldname": "recurring_order", 
-   "fieldtype": "Section Break", 
-   "label": "Recurring Order", 
-   "options": "icon-time", 
+   "fieldname": "recurring_order",
+   "fieldtype": "Section Break",
+   "label": "Recurring Order",
+   "options": "icon-time",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "column_break82", 
-   "fieldtype": "Column Break", 
-   "label": "Column Break", 
+   "fieldname": "column_break82",
+   "fieldtype": "Column Break",
+   "label": "Column Break",
    "permlevel": 0
-  }, 
+  },
   {
-   "allow_on_submit": 1, 
-   "depends_on": "eval:doc.docstatus<2", 
-   "description": "Check if recurring order, uncheck to stop recurring or put proper End Date", 
-   "fieldname": "is_recurring", 
-   "fieldtype": "Check", 
-   "label": "Is Recurring", 
-   "no_copy": 1, 
-   "permlevel": 0, 
+   "allow_on_submit": 1,
+   "depends_on": "eval:doc.docstatus<2",
+   "description": "Check if recurring order, uncheck to stop recurring or put proper End Date",
+   "fieldname": "is_recurring",
+   "fieldtype": "Check",
+   "label": "Is Recurring",
+   "no_copy": 1,
+   "permlevel": 0,
    "print_hide": 1
-  }, 
+  },
   {
-   "allow_on_submit": 1, 
-   "depends_on": "eval:doc.is_recurring==1", 
-   "description": "Select the period when the invoice will be generated automatically", 
-   "fieldname": "recurring_type", 
-   "fieldtype": "Select", 
-   "label": "Recurring Type", 
-   "no_copy": 1, 
-   "options": "\nMonthly\nQuarterly\nHalf-yearly\nYearly", 
-   "permlevel": 0, 
+   "allow_on_submit": 1,
+   "depends_on": "eval:doc.is_recurring==1",
+   "description": "Select the period when the invoice will be generated automatically",
+   "fieldname": "recurring_type",
+   "fieldtype": "Select",
+   "label": "Recurring Type",
+   "no_copy": 1,
+   "options": "\nMonthly\nQuarterly\nHalf-yearly\nYearly",
+   "permlevel": 0,
    "print_hide": 1
-  }, 
+  },
   {
-   "allow_on_submit": 1, 
-   "depends_on": "eval:doc.is_recurring==1", 
-   "description": "The day of the month on which auto order will be generated e.g. 05, 28 etc ", 
-   "fieldname": "repeat_on_day_of_month", 
-   "fieldtype": "Int", 
-   "label": "Repeat on Day of Month", 
-   "no_copy": 1, 
-   "permlevel": 0, 
+   "allow_on_submit": 1,
+   "depends_on": "eval:doc.is_recurring==1",
+   "description": "Start date of current order's period",
+   "fieldname": "from_date",
+   "fieldtype": "Date",
+   "label": "From Date",
+   "no_copy": 1,
+   "permlevel": 0
+  },
+  {
+   "allow_on_submit": 1,
+   "depends_on": "eval:doc.is_recurring==1",
+   "description": "End date of current order's period",
+   "fieldname": "to_date",
+   "fieldtype": "Date",
+   "label": "To Date",
+   "no_copy": 1,
+   "permlevel": 0
+  },
+  {
+   "allow_on_submit": 1,
+   "depends_on": "eval:doc.is_recurring==1",
+   "description": "The day of the month on which auto order will be generated e.g. 05, 28 etc ",
+   "fieldname": "repeat_on_day_of_month",
+   "fieldtype": "Int",
+   "label": "Repeat on Day of Month",
+   "no_copy": 1,
+   "permlevel": 0,
    "print_hide": 1
-  }, 
+  },
   {
-   "depends_on": "eval:doc.is_recurring==1", 
-   "description": "The date on which next invoice will be generated. It is generated on submit.", 
-   "fieldname": "next_date", 
-   "fieldtype": "Date", 
-   "label": "Next Date", 
-   "no_copy": 1, 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "allow_on_submit": 1,
+   "depends_on": "eval:doc.is_recurring==1",
+   "description": "The date on which recurring order will be stop",
+   "fieldname": "end_date",
+   "fieldtype": "Date",
+   "label": "End Date",
+   "no_copy": 1,
+   "permlevel": 0,
+   "print_hide": 1
+  },
+  {
+   "fieldname": "column_break83",
+   "fieldtype": "Column Break",
+   "label": "Column Break",
+   "permlevel": 0,
+   "print_hide": 1
+  },
+  {
+   "depends_on": "eval:doc.is_recurring==1",
+   "description": "The date on which next invoice will be generated. It is generated on submit.",
+   "fieldname": "next_date",
+   "fieldtype": "Date",
+   "label": "Next Date",
+   "no_copy": 1,
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 1
-  }, 
+  },
   {
-   "allow_on_submit": 1, 
-   "depends_on": "eval:doc.is_recurring==1", 
-   "description": "The date on which recurring order will be stop", 
-   "fieldname": "end_date", 
-   "fieldtype": "Date", 
-   "label": "End Date", 
-   "no_copy": 1, 
-   "permlevel": 0, 
-   "print_hide": 1
-  }, 
-  {
-   "fieldname": "column_break83", 
-   "fieldtype": "Column Break", 
-   "label": "Column Break", 
-   "permlevel": 0, 
-   "print_hide": 1
-  }, 
-  {
-   "depends_on": "eval:doc.is_recurring==1", 
-   "fieldname": "recurring_id", 
-   "fieldtype": "Data", 
-   "label": "Recurring Id", 
-   "no_copy": 1, 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "depends_on": "eval:doc.is_recurring==1",
+   "fieldname": "recurring_id",
+   "fieldtype": "Data",
+   "label": "Recurring Id",
+   "no_copy": 1,
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 1
-  }, 
+  },
   {
-   "allow_on_submit": 1, 
-   "depends_on": "eval:doc.is_recurring==1", 
-   "description": "Enter email id separated by commas, order will be mailed automatically on particular date", 
-   "fieldname": "notification_email_address", 
-   "fieldtype": "Small Text", 
-   "ignore_user_permissions": 0, 
-   "label": "Notification Email Address", 
-   "no_copy": 1, 
-   "permlevel": 0, 
+   "allow_on_submit": 1,
+   "depends_on": "eval:doc.is_recurring==1",
+   "description": "Enter email id separated by commas, order will be mailed automatically on particular date",
+   "fieldname": "notification_email_address",
+   "fieldtype": "Small Text",
+   "ignore_user_permissions": 0,
+   "label": "Notification Email Address",
+   "no_copy": 1,
+   "permlevel": 0,
    "print_hide": 1
   }
- ], 
- "icon": "icon-file-text", 
- "idx": 1, 
- "is_submittable": 1, 
- "issingle": 0, 
- "modified": "2014-10-09 12:08:37.193169", 
- "modified_by": "Administrator", 
- "module": "Selling", 
- "name": "Sales Order", 
- "owner": "Administrator", 
+ ],
+ "icon": "icon-file-text",
+ "idx": 1,
+ "is_submittable": 1,
+ "issingle": 0,
+ "modified": "2014-10-08 14:22:44.717108",
+ "modified_by": "Administrator",
+ "module": "Selling",
+ "name": "Sales Order",
+ "owner": "Administrator",
  "permissions": [
   {
-   "amend": 1, 
-   "apply_user_permissions": 1, 
-   "cancel": 1, 
-   "create": 1, 
-   "delete": 1, 
-   "email": 1, 
-   "permlevel": 0, 
-   "print": 1, 
-   "read": 1, 
-   "report": 1, 
-   "role": "Sales User", 
-   "submit": 1, 
+   "amend": 1,
+   "apply_user_permissions": 1,
+   "cancel": 1,
+   "create": 1,
+   "delete": 1,
+   "email": 1,
+   "permlevel": 0,
+   "print": 1,
+   "read": 1,
+   "report": 1,
+   "role": "Sales User",
+   "submit": 1,
    "write": 1
-  }, 
+  },
   {
-   "amend": 1, 
-   "cancel": 1, 
-   "create": 1, 
-   "delete": 1, 
-   "email": 1, 
-   "export": 1, 
-   "import": 1, 
-   "permlevel": 0, 
-   "print": 1, 
-   "read": 1, 
-   "report": 1, 
-   "role": "Sales Manager", 
-   "set_user_permissions": 1, 
-   "submit": 1, 
+   "amend": 1,
+   "cancel": 1,
+   "create": 1,
+   "delete": 1,
+   "email": 1,
+   "export": 1,
+   "import": 1,
+   "permlevel": 0,
+   "print": 1,
+   "read": 1,
+   "report": 1,
+   "role": "Sales Manager",
+   "set_user_permissions": 1,
+   "submit": 1,
    "write": 1
-  }, 
+  },
   {
-   "amend": 1, 
-   "apply_user_permissions": 1, 
-   "cancel": 1, 
-   "create": 1, 
-   "delete": 1, 
-   "email": 1, 
-   "permlevel": 0, 
-   "print": 1, 
-   "read": 1, 
-   "report": 1, 
-   "role": "Maintenance User", 
-   "submit": 1, 
+   "amend": 1,
+   "apply_user_permissions": 1,
+   "cancel": 1,
+   "create": 1,
+   "delete": 1,
+   "email": 1,
+   "permlevel": 0,
+   "print": 1,
+   "read": 1,
+   "report": 1,
+   "role": "Maintenance User",
+   "submit": 1,
    "write": 1
-  }, 
+  },
   {
-   "apply_user_permissions": 1, 
-   "cancel": 0, 
-   "delete": 0, 
-   "email": 1, 
-   "permlevel": 0, 
-   "print": 1, 
-   "read": 1, 
+   "apply_user_permissions": 1,
+   "cancel": 0,
+   "delete": 0,
+   "email": 1,
+   "permlevel": 0,
+   "print": 1,
+   "read": 1,
    "role": "Accounts User"
-  }, 
+  },
   {
-   "apply_user_permissions": 1, 
-   "cancel": 0, 
-   "delete": 0, 
-   "email": 1, 
-   "permlevel": 0, 
-   "print": 1, 
-   "read": 1, 
+   "apply_user_permissions": 1,
+   "cancel": 0,
+   "delete": 0,
+   "email": 1,
+   "permlevel": 0,
+   "print": 1,
+   "read": 1,
    "role": "Customer"
-  }, 
+  },
   {
-   "apply_user_permissions": 1, 
-   "permlevel": 0, 
-   "read": 1, 
-   "report": 1, 
+   "apply_user_permissions": 1,
+   "permlevel": 0,
+   "read": 1,
+   "report": 1,
    "role": "Material User"
-  }, 
+  },
   {
-   "permlevel": 1, 
-   "read": 1, 
-   "role": "Sales Manager", 
+   "permlevel": 1,
+   "read": 1,
+   "role": "Sales Manager",
    "write": 1
   }
- ], 
- "read_only_onload": 1, 
- "search_fields": "status,transaction_date,customer,customer_name, territory,order_type,company", 
- "sort_field": "modified", 
+ ],
+ "read_only_onload": 1,
+ "search_fields": "status,transaction_date,customer,customer_name, territory,order_type,company",
+ "sort_field": "modified",
  "sort_order": "DESC"
-}
\ No newline at end of file
+}
diff --git a/erpnext/setup/doctype/global_defaults/global_defaults.js b/erpnext/setup/doctype/global_defaults/global_defaults.js
index 546fbd4..acc1c8e 100644
--- a/erpnext/setup/doctype/global_defaults/global_defaults.js
+++ b/erpnext/setup/doctype/global_defaults/global_defaults.js
@@ -7,7 +7,7 @@
 		this.timezone = doc.time_zone;
 
 		frappe.call({
-			method: "frappe.country_info.get_country_timezone_info",
+			method: "frappe.geo.country_info.get_country_timezone_info",
 			callback: function(data) {
 				frappe.country_info = data.message.country_info;
 				frappe.all_timezones = data.message.all_timezones;
diff --git a/erpnext/setup/page/setup_wizard/setup_wizard.js b/erpnext/setup/page/setup_wizard/setup_wizard.js
index c02b5bf..44f6297 100644
--- a/erpnext/setup/page/setup_wizard/setup_wizard.js
+++ b/erpnext/setup/page/setup_wizard/setup_wizard.js
@@ -139,7 +139,7 @@
 				help: __('Select your home country and check the timezone and currency.'),
 				onload: function(slide, form) {
 					frappe.call({
-						method:"frappe.country_info.get_country_timezone_info",
+						method:"frappe.geo.country_info.get_country_timezone_info",
 						callback: function(data) {
 							frappe.country_info = data.message.country_info;
 							frappe.all_timezones = data.message.all_timezones;
diff --git a/erpnext/setup/page/setup_wizard/setup_wizard.py b/erpnext/setup/page/setup_wizard/setup_wizard.py
index cc1cd23..586ee23 100644
--- a/erpnext/setup/page/setup_wizard/setup_wizard.py
+++ b/erpnext/setup/page/setup_wizard/setup_wizard.py
@@ -71,16 +71,17 @@
 
 		frappe.db.set_default('desktop:home_page', 'desktop')
 
-		website_maker(args.company_name, args.company_tagline, args.name)
+		website_maker(args.company_name.strip(), args.company_tagline, args.name)
 		create_logo(args)
 
 		frappe.clear_cache()
 		frappe.db.commit()
 
 	except:
-		traceback = frappe.get_traceback()
-		for hook in frappe.get_hooks("setup_wizard_exception"):
-			frappe.get_attr(hook)(traceback, args)
+		if args:
+			traceback = frappe.get_traceback()
+			for hook in frappe.get_hooks("setup_wizard_exception"):
+				frappe.get_attr(hook)(traceback, args)
 
 		raise
 
@@ -134,7 +135,7 @@
 	frappe.get_doc({
 		"doctype":"Company",
 		'domain': args.get("industry"),
-		'company_name':args.get('company_name'),
+		'company_name':args.get('company_name').strip(),
 		'abbr':args.get('company_abbr'),
 		'default_currency':args.get('currency'),
 		'country': args.get('country'),
@@ -165,7 +166,7 @@
 	global_defaults.update({
 		'current_fiscal_year': args.curr_fiscal_year,
 		'default_currency': args.get('currency'),
-		'default_company':args.get('company_name'),
+		'default_company':args.get('company_name').strip(),
 		"country": args.get("country"),
 	})
 
@@ -286,7 +287,7 @@
 			try:
 				frappe.get_doc({
 					"doctype":"Account",
-					"company": args.get("company_name"),
+					"company": args.get("company_name").strip(),
 					"parent_account": _("Duties and Taxes") + " - " + args.get("company_abbr"),
 					"account_name": args.get("tax_" + str(i)),
 					"group_or_ledger": "Ledger",
@@ -346,7 +347,7 @@
 				"customer_type": "Company",
 				"customer_group": _("Commercial"),
 				"territory": args.get("country"),
-				"company": args.get("company_name")
+				"company": args.get("company_name").strip()
 			}).insert()
 
 			if args.get("customer_contact_" + str(i)):
@@ -366,7 +367,7 @@
 				"doctype":"Supplier",
 				"supplier_name": supplier,
 				"supplier_type": _("Local"),
-				"company": args.get("company_name")
+				"company": args.get("company_name").strip()
 			}).insert()
 
 			if args.get("supplier_contact_" + str(i)):
diff --git a/erpnext/shopping_cart/__init__.py b/erpnext/shopping_cart/__init__.py
new file mode 100644
index 0000000..656918b
--- /dev/null
+++ b/erpnext/shopping_cart/__init__.py
@@ -0,0 +1,126 @@
+# 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
+from frappe import _
+from frappe.utils import get_fullname, flt
+from erpnext.shopping_cart.doctype.shopping_cart_settings.shopping_cart_settings import is_shopping_cart_enabled, get_default_territory
+
+# TODO
+# validate stock of each item in Website Warehouse or have a list of possible warehouses in Shopping Cart Settings
+
+def get_quotation(user=None):
+	if not user:
+		user = frappe.session.user
+	if user == "Guest":
+		raise frappe.PermissionError
+
+	is_shopping_cart_enabled()
+	party = get_party(user)
+	values = {
+		"order_type": "Shopping Cart",
+		party.doctype.lower(): party.name,
+		"docstatus": 0,
+		"contact_email": user
+	}
+
+	try:
+		quotation = frappe.get_doc("Quotation", values)
+	except frappe.DoesNotExistError:
+		quotation = frappe.new_doc("Quotation")
+		quotation.update(values)
+		if party.doctype == "Customer":
+			quotation.contact_person = frappe.db.get_value("Contact", {"customer": party.name, "email_id": user})
+		quotation.insert(ignore_permissions=True)
+
+	return quotation
+
+def set_item_in_cart(item_code, qty, user=None):
+	validate_item(item_code)
+	quotation = get_quotation(user=user)
+	qty = flt(qty)
+	quotation_item = quotation.get("quotation_details", {"item_code": item_code})
+
+	if qty==0:
+		if quotation_item:
+			# remove
+			quotation.get("quotation_details").remove(quotation_item[0])
+	else:
+		# add or update
+		if quotation_item:
+			quotation_item[0].qty = qty
+		else:
+			quotation.append("quotation_details", {
+				"doctype": "Quotation Item",
+				"item_code": item_code,
+				"qty": qty
+			})
+
+	quotation.save(ignore_permissions=True)
+	return quotation
+
+def set_address_in_cart(address_fieldname, address, user=None):
+	quotation = get_quotation(user=user)
+	validate_address(quotation, address_fieldname, address)
+
+	if quotation.get(address_fieldname) != address:
+		quotation.set(address_fieldname, address)
+		if address_fieldname=="customer_address":
+			quotation.set("address_display", None)
+		else:
+			quotation.set("shipping_address", None)
+
+		quotation.save(ignore_permissions=True)
+
+	return quotation
+
+def validate_item(item_code):
+	item = frappe.db.get_value("Item", item_code, ["item_name", "show_in_website"], as_dict=True)
+	if not item.show_in_website:
+		frappe.throw(_("{0} cannot be purchased using Shopping Cart").format(item.item_name))
+
+def validate_address(quotation, address_fieldname, address):
+	party = get_party(quotation.contact_email)
+	address_doc = frappe.get_doc(address)
+	if address_doc.get(party.doctype.lower()) != party.name:
+		if address_fieldname=="customer_address":
+			frappe.throw(_("Invalid Billing Address"))
+		else:
+			frappe.throw(_("Invalid Shipping Address"))
+
+def get_party(user):
+	def _get_party(user):
+		customer = frappe.db.get_value("Contact", {"email_id": user}, "customer")
+		if customer:
+			return frappe.get_doc("Customer", customer)
+
+		lead = frappe.db.get_value("Lead", {"email_id": user})
+		if lead:
+			return frappe.get_doc("Lead", lead)
+
+		# create a lead
+		lead = frappe.new_doc("Lead")
+		lead.update({
+			"email_id": user,
+			"lead_name": get_fullname(user),
+			"territory": guess_territory()
+		})
+		lead.insert(ignore_permissions=True)
+
+		return lead
+
+	if not getattr(frappe.local, "shopping_cart_party", None):
+		frappe.local.shopping_cart_party = {}
+
+	if not frappe.local.shopping_cart_party.get(user):
+		frappe.local.shopping_cart_party[user] = _get_party(user)
+
+	return frappe.local.shopping_cart_party[user]
+
+def guess_territory():
+	territory = None
+	if frappe.session.get("session_country"):
+		territory = frappe.db.get_value("Territory", frappe.session.get("session_country"))
+
+	return territory or get_default_territory()
diff --git a/erpnext/shopping_cart/cart.py b/erpnext/shopping_cart/cart.py
new file mode 100644
index 0000000..e39a54c
--- /dev/null
+++ b/erpnext/shopping_cart/cart.py
@@ -0,0 +1,434 @@
+# 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
+from frappe import throw, _
+import frappe.defaults
+from frappe.utils import flt, get_fullname, fmt_money, cstr
+from erpnext.utilities.doctype.address.address import get_address_display
+from frappe.utils.nestedset import get_root_of
+
+class WebsitePriceListMissingError(frappe.ValidationError): pass
+
+def set_cart_count(quotation=None):
+	if not quotation:
+		quotation = _get_cart_quotation()
+	cart_count = cstr(len(quotation.get("quotation_details")))
+	frappe.local.cookie_manager.set_cookie("cart_count", cart_count)
+
+@frappe.whitelist()
+def get_cart_quotation(doc=None):
+	party = get_lead_or_customer()
+
+	if not doc:
+		quotation = _get_cart_quotation(party)
+		doc = quotation
+		set_cart_count(quotation)
+
+	return {
+		"doc": decorate_quotation_doc(doc),
+		"addresses": [{"name": address.name, "display": address.display}
+			for address in get_address_docs(party)],
+		"shipping_rules": get_applicable_shipping_rules(party)
+	}
+
+@frappe.whitelist()
+def place_order():
+	quotation = _get_cart_quotation()
+	quotation.company = frappe.db.get_value("Shopping Cart Settings", None, "company")
+	for fieldname in ["customer_address", "shipping_address_name"]:
+		if not quotation.get(fieldname):
+			throw(_("{0} is required").format(quotation.meta.get_label(fieldname)))
+
+	quotation.ignore_permissions = True
+	quotation.submit()
+
+	if quotation.lead:
+		# company used to create customer accounts
+		frappe.defaults.set_user_default("company", quotation.company)
+
+	from erpnext.selling.doctype.quotation.quotation import _make_sales_order
+	sales_order = frappe.get_doc(_make_sales_order(quotation.name, ignore_permissions=True))
+	for item in sales_order.get("sales_order_details"):
+		item.reserved_warehouse = frappe.db.get_value("Item", item.item_code, "website_warehouse") or None
+
+	sales_order.ignore_permissions = True
+	sales_order.insert()
+	sales_order.submit()
+	frappe.local.cookie_manager.delete_cookie("cart_count")
+
+	return sales_order.name
+
+@frappe.whitelist()
+def update_cart(item_code, qty, with_doc):
+	quotation = _get_cart_quotation()
+
+	qty = flt(qty)
+	if qty == 0:
+		quotation.set("quotation_details", quotation.get("quotation_details", {"item_code": ["!=", item_code]}))
+		if not quotation.get("quotation_details") and \
+			not quotation.get("__islocal"):
+				quotation.__delete = True
+
+	else:
+		quotation_items = quotation.get("quotation_details", {"item_code": item_code})
+		if not quotation_items:
+			quotation.append("quotation_details", {
+				"doctype": "Quotation Item",
+				"item_code": item_code,
+				"qty": qty
+			})
+		else:
+			quotation_items[0].qty = qty
+
+	apply_cart_settings(quotation=quotation)
+
+	if hasattr(quotation, "__delete"):
+		frappe.delete_doc("Quotation", quotation.name, ignore_permissions=True)
+		quotation = _get_cart_quotation()
+	else:
+		quotation.ignore_permissions = True
+		quotation.save()
+
+	set_cart_count(quotation)
+
+	if with_doc:
+		return get_cart_quotation(quotation)
+	else:
+		return quotation.name
+
+@frappe.whitelist()
+def update_cart_address(address_fieldname, address_name):
+	quotation = _get_cart_quotation()
+	address_display = get_address_display(frappe.get_doc("Address", address_name).as_dict())
+
+	if address_fieldname == "shipping_address_name":
+		quotation.shipping_address_name = address_name
+		quotation.shipping_address = address_display
+
+		if not quotation.customer_address:
+			address_fieldname == "customer_address"
+
+	if address_fieldname == "customer_address":
+		quotation.customer_address = address_name
+		quotation.address_display = address_display
+
+
+	apply_cart_settings(quotation=quotation)
+
+	quotation.ignore_permissions = True
+	quotation.save()
+
+	return get_cart_quotation(quotation)
+
+def guess_territory():
+	territory = None
+	geoip_country = frappe.session.get("session_country")
+	if geoip_country:
+		territory = frappe.db.get_value("Territory", geoip_country)
+
+	return territory or \
+		frappe.db.get_value("Shopping Cart Settings", None, "territory") or \
+			get_root_of("Territory")
+
+def decorate_quotation_doc(quotation_doc):
+	doc = frappe._dict(quotation_doc.as_dict())
+	for d in doc.get("quotation_details", []):
+		d.update(frappe.db.get_value("Item", d["item_code"],
+			["website_image", "description", "page_name"], as_dict=True))
+		d["formatted_rate"] = fmt_money(d.get("rate"), currency=doc.currency)
+		d["formatted_amount"] = fmt_money(d.get("amount"), currency=doc.currency)
+
+	for d in doc.get("other_charges", []):
+		d["formatted_tax_amount"] = fmt_money(flt(d.get("tax_amount")) / doc.conversion_rate,
+			currency=doc.currency)
+
+	doc.formatted_grand_total_export = fmt_money(doc.grand_total_export,
+		currency=doc.currency)
+
+	return doc
+
+def _get_cart_quotation(party=None):
+	if not party:
+		party = get_lead_or_customer()
+
+	quotation = frappe.db.get_value("Quotation",
+		{party.doctype.lower(): party.name, "order_type": "Shopping Cart", "docstatus": 0})
+
+	if quotation:
+		qdoc = frappe.get_doc("Quotation", quotation)
+	else:
+		qdoc = frappe.get_doc({
+			"doctype": "Quotation",
+			"naming_series": frappe.defaults.get_user_default("shopping_cart_quotation_series") or "QTN-CART-",
+			"quotation_to": party.doctype,
+			"company": frappe.db.get_value("Shopping Cart Settings", None, "company"),
+			"order_type": "Shopping Cart",
+			"status": "Draft",
+			"docstatus": 0,
+			"__islocal": 1,
+			(party.doctype.lower()): party.name
+		})
+
+		if party.doctype == "Customer":
+			qdoc.contact_person = frappe.db.get_value("Contact", {"email_id": frappe.session.user,
+				"customer": party.name})
+
+		qdoc.ignore_permissions = True
+		qdoc.run_method("set_missing_values")
+		apply_cart_settings(party, qdoc)
+
+	return qdoc
+
+def update_party(fullname, company_name=None, mobile_no=None, phone=None):
+	party = get_lead_or_customer()
+
+	if party.doctype == "Lead":
+		party.company_name = company_name
+		party.lead_name = fullname
+		party.mobile_no = mobile_no
+		party.phone = phone
+	else:
+		party.customer_name = company_name or fullname
+		party.customer_type == "Company" if company_name else "Individual"
+
+		contact_name = frappe.db.get_value("Contact", {"email_id": frappe.session.user,
+			"customer": party.name})
+		contact = frappe.get_doc("Contact", contact_name)
+		contact.first_name = fullname
+		contact.last_name = None
+		contact.customer_name = party.customer_name
+		contact.mobile_no = mobile_no
+		contact.phone = phone
+		contact.ignore_permissions = True
+		contact.save()
+
+	party_doc = frappe.get_doc(party.as_dict())
+	party_doc.ignore_permissions = True
+	party_doc.save()
+
+	qdoc = _get_cart_quotation(party)
+	if not qdoc.get("__islocal"):
+		qdoc.customer_name = company_name or fullname
+		qdoc.run_method("set_missing_lead_customer_details")
+		qdoc.ignore_permissions = True
+		qdoc.save()
+
+def apply_cart_settings(party=None, quotation=None):
+	if not party:
+		party = get_lead_or_customer()
+	if not quotation:
+		quotation = _get_cart_quotation(party)
+
+	cart_settings = frappe.get_doc("Shopping Cart Settings")
+
+	billing_territory = get_address_territory(quotation.customer_address) or \
+		party.territory or get_root_of("Territory")
+
+	set_price_list_and_rate(quotation, cart_settings, billing_territory)
+
+	quotation.run_method("calculate_taxes_and_totals")
+
+	set_taxes(quotation, cart_settings, billing_territory)
+
+	_apply_shipping_rule(party, quotation, cart_settings)
+
+def set_price_list_and_rate(quotation, cart_settings, billing_territory):
+	"""set price list based on billing territory"""
+	quotation.selling_price_list = cart_settings.get_price_list(billing_territory)
+
+	# reset values
+	quotation.price_list_currency = quotation.currency = \
+		quotation.plc_conversion_rate = quotation.conversion_rate = None
+	for item in quotation.get("quotation_details"):
+		item.price_list_rate = item.discount_percentage = item.rate = item.amount = None
+
+	# refetch values
+	quotation.run_method("set_price_list_and_item_details")
+
+	# set it in cookies for using in product page
+	frappe.local.cookie_manager.set_cookie("selling_price_list", quotation.selling_price_list)
+
+def set_taxes(quotation, cart_settings, billing_territory):
+	"""set taxes based on billing territory"""
+	quotation.taxes_and_charges = cart_settings.get_tax_master(billing_territory)
+
+	# clear table
+	quotation.set("other_charges", [])
+
+	# append taxes
+	quotation.append_taxes_from_master("other_charges", "taxes_and_charges")
+
+def get_lead_or_customer():
+	customer = frappe.db.get_value("Contact", {"email_id": frappe.session.user}, "customer")
+	if customer:
+		return frappe.get_doc("Customer", customer)
+
+	lead = frappe.db.get_value("Lead", {"email_id": frappe.session.user})
+	if lead:
+		return frappe.get_doc("Lead", lead)
+	else:
+		lead_doc = frappe.get_doc({
+			"doctype": "Lead",
+			"email_id": frappe.session.user,
+			"lead_name": get_fullname(frappe.session.user),
+			"territory": guess_territory(),
+			"status": "Open" # TODO: set something better???
+		})
+
+		if frappe.session.user not in ("Guest", "Administrator"):
+			lead_doc.ignore_permissions = True
+			lead_doc.insert()
+
+		return lead_doc
+
+def get_address_docs(party=None):
+	if not party:
+		party = get_lead_or_customer()
+
+	address_docs = frappe.db.sql("""select * from `tabAddress`
+		where `%s`=%s order by name""" % (party.doctype.lower(), "%s"), party.name,
+		as_dict=True, update={"doctype": "Address"})
+
+	for address in address_docs:
+		address.display = get_address_display(address)
+		address.display = (address.display).replace("\n", "<br>\n")
+
+	return address_docs
+
+@frappe.whitelist()
+def apply_shipping_rule(shipping_rule):
+	quotation = _get_cart_quotation()
+
+	quotation.shipping_rule = shipping_rule
+
+	apply_cart_settings(quotation=quotation)
+
+	quotation.ignore_permissions = True
+	quotation.save()
+
+	return get_cart_quotation(quotation)
+
+def _apply_shipping_rule(party=None, quotation=None, cart_settings=None):
+	shipping_rules = get_shipping_rules(party, quotation, cart_settings)
+
+	if not shipping_rules:
+		return
+
+	elif quotation.shipping_rule not in shipping_rules:
+		quotation.shipping_rule = shipping_rules[0]
+
+	quotation.run_method("apply_shipping_rule")
+	quotation.run_method("calculate_taxes_and_totals")
+
+def get_applicable_shipping_rules(party=None, quotation=None):
+	shipping_rules = get_shipping_rules(party, quotation)
+
+	if shipping_rules:
+		rule_label_map = frappe.db.get_values("Shipping Rule", shipping_rules, "label")
+		# we need this in sorted order as per the position of the rule in the settings page
+		return [[rule, rule_label_map.get(rule)] for rule in shipping_rules]
+
+def get_shipping_rules(party=None, quotation=None, cart_settings=None):
+	if not party:
+		party = get_lead_or_customer()
+	if not quotation:
+		quotation = _get_cart_quotation()
+	if not cart_settings:
+		cart_settings = frappe.get_doc("Shopping Cart Settings")
+
+	# set shipping rule based on shipping territory
+	shipping_territory = get_address_territory(quotation.shipping_address_name) or \
+		party.territory
+
+	shipping_rules = cart_settings.get_shipping_rules(shipping_territory)
+
+	return shipping_rules
+
+def get_address_territory(address_name):
+	"""Tries to match city, state and country of address to existing territory"""
+	territory = None
+
+	if address_name:
+		address_fields = frappe.db.get_value("Address", address_name,
+			["city", "state", "country"])
+		for value in address_fields:
+			territory = frappe.db.get_value("Territory", value)
+			if territory:
+				break
+
+	return territory
+
+import unittest
+test_dependencies = ["Item", "Price List", "Contact", "Shopping Cart Settings"]
+
+class TestCart(unittest.TestCase):
+	def tearDown(self):
+		return
+
+		cart_settings = frappe.get_doc("Shopping Cart Settings")
+		cart_settings.ignore_permissions = True
+		cart_settings.enabled = 0
+		cart_settings.save()
+
+	def enable_shopping_cart(self):
+		return
+		if not frappe.db.get_value("Shopping Cart Settings", None, "enabled"):
+			cart_settings = frappe.get_doc("Shopping Cart Settings")
+			cart_settings.ignore_permissions = True
+			cart_settings.enabled = 1
+			cart_settings.save()
+
+	def test_get_lead_or_customer(self):
+		frappe.session.user = "test@example.com"
+		party1 = get_lead_or_customer()
+		party2 = get_lead_or_customer()
+		self.assertEquals(party1.name, party2.name)
+		self.assertEquals(party1.doctype, "Lead")
+
+		frappe.session.user = "test_contact_customer@example.com"
+		party = get_lead_or_customer()
+		self.assertEquals(party.name, "_Test Customer")
+
+	def test_add_to_cart(self):
+		self.enable_shopping_cart()
+		frappe.session.user = "test@example.com"
+
+		update_cart("_Test Item", 1)
+
+		quotation = _get_cart_quotation()
+		quotation_items = quotation.get("quotation_details", {"item_code": "_Test Item"})
+		self.assertTrue(quotation_items)
+		self.assertEquals(quotation_items[0].qty, 1)
+
+		return quotation
+
+	def test_update_cart(self):
+		self.test_add_to_cart()
+
+		update_cart("_Test Item", 5)
+
+		quotation = _get_cart_quotation()
+		quotation_items = quotation.get("quotation_details", {"item_code": "_Test Item"})
+		self.assertTrue(quotation_items)
+		self.assertEquals(quotation_items[0].qty, 5)
+
+		return quotation
+
+	def test_remove_from_cart(self):
+		quotation0 = self.test_add_to_cart()
+
+		update_cart("_Test Item", 0)
+
+		quotation = _get_cart_quotation()
+		self.assertEquals(quotation0.name, quotation.name)
+
+		quotation_items = quotation.get("quotation_details", {"item_code": "_Test Item"})
+		self.assertEquals(quotation_items, [])
+
+	def test_place_order(self):
+		quotation = self.test_update_cart()
+		sales_order_name = place_order()
+		sales_order = frappe.get_doc("Sales Order", sales_order_name)
+		self.assertEquals(sales_order.getone({"item_code": "_Test Item"}).prevdoc_docname, quotation.name)
diff --git a/erpnext/stock/page/stock_balance/__init__.py b/erpnext/shopping_cart/doctype/__init__.py
similarity index 100%
copy from erpnext/stock/page/stock_balance/__init__.py
copy to erpnext/shopping_cart/doctype/__init__.py
diff --git a/erpnext/stock/page/stock_balance/__init__.py b/erpnext/shopping_cart/doctype/shopping_cart_price_list/__init__.py
similarity index 100%
copy from erpnext/stock/page/stock_balance/__init__.py
copy to erpnext/shopping_cart/doctype/shopping_cart_price_list/__init__.py
diff --git a/erpnext/shopping_cart/doctype/shopping_cart_price_list/shopping_cart_price_list.json b/erpnext/shopping_cart/doctype/shopping_cart_price_list/shopping_cart_price_list.json
new file mode 100644
index 0000000..12b6290
--- /dev/null
+++ b/erpnext/shopping_cart/doctype/shopping_cart_price_list/shopping_cart_price_list.json
@@ -0,0 +1,23 @@
+{
+ "creation": "2013-06-20 16:00:18.000000", 
+ "docstatus": 0, 
+ "doctype": "DocType", 
+ "fields": [
+  {
+   "fieldname": "selling_price_list", 
+   "fieldtype": "Link", 
+   "in_list_view": 1, 
+   "label": "Price List", 
+   "options": "Price List", 
+   "permlevel": 0, 
+   "reqd": 1
+  }
+ ], 
+ "idx": 1, 
+ "istable": 1, 
+ "modified": "2013-12-20 19:30:47.000000", 
+ "modified_by": "Administrator", 
+ "module": "Shopping Cart", 
+ "name": "Shopping Cart Price List", 
+ "owner": "Administrator"
+}
\ No newline at end of file
diff --git a/erpnext/shopping_cart/doctype/shopping_cart_price_list/shopping_cart_price_list.py b/erpnext/shopping_cart/doctype/shopping_cart_price_list/shopping_cart_price_list.py
new file mode 100644
index 0000000..cd92576
--- /dev/null
+++ b/erpnext/shopping_cart/doctype/shopping_cart_price_list/shopping_cart_price_list.py
@@ -0,0 +1,12 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
+# License: GNU General Public License v3. See license.txt
+
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+import frappe
+
+from frappe.model.document import Document
+
+class ShoppingCartPriceList(Document):
+	pass
\ No newline at end of file
diff --git a/erpnext/stock/page/stock_balance/__init__.py b/erpnext/shopping_cart/doctype/shopping_cart_settings/__init__.py
similarity index 100%
copy from erpnext/stock/page/stock_balance/__init__.py
copy to erpnext/shopping_cart/doctype/shopping_cart_settings/__init__.py
diff --git a/erpnext/shopping_cart/doctype/shopping_cart_settings/shopping_cart_settings.js b/erpnext/shopping_cart/doctype/shopping_cart_settings/shopping_cart_settings.js
new file mode 100644
index 0000000..5ea8e3e
--- /dev/null
+++ b/erpnext/shopping_cart/doctype/shopping_cart_settings/shopping_cart_settings.js
@@ -0,0 +1,10 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
+// License: GNU General Public License v3. See license.txt
+
+$.extend(cur_frm.cscript, {
+	onload: function() {
+		if(cur_frm.doc.__onload && cur_frm.doc.__onload.quotation_series) {
+			cur_frm.fields_dict.quotation_series.df.options = cur_frm.doc.__onload.quotation_series;
+		}
+	}
+});
diff --git a/erpnext/shopping_cart/doctype/shopping_cart_settings/shopping_cart_settings.json b/erpnext/shopping_cart/doctype/shopping_cart_settings/shopping_cart_settings.json
new file mode 100644
index 0000000..7340930
--- /dev/null
+++ b/erpnext/shopping_cart/doctype/shopping_cart_settings/shopping_cart_settings.json
@@ -0,0 +1,115 @@
+{
+ "creation": "2013-06-19 15:57:32", 
+ "description": "Default settings for Shopping Cart", 
+ "docstatus": 0, 
+ "doctype": "DocType", 
+ "fields": [
+  {
+   "fieldname": "enabled", 
+   "fieldtype": "Check", 
+   "in_list_view": 1, 
+   "label": "Enable Shopping Cart", 
+   "permlevel": 0
+  }, 
+  {
+   "fieldname": "section_break_2", 
+   "fieldtype": "Section Break", 
+   "permlevel": 0
+  }, 
+  {
+   "fieldname": "company", 
+   "fieldtype": "Link", 
+   "in_list_view": 1, 
+   "label": "Company", 
+   "options": "Company", 
+   "permlevel": 0, 
+   "reqd": 1
+  }, 
+  {
+   "description": "<a href=\"#Sales Browser/Territory\">Add / Edit</a>", 
+   "fieldname": "default_territory", 
+   "fieldtype": "Link", 
+   "ignore_user_permissions": 1, 
+   "in_list_view": 1, 
+   "label": "Default Territory", 
+   "options": "Territory", 
+   "permlevel": 0, 
+   "reqd": 1
+  }, 
+  {
+   "fieldname": "column_break_4", 
+   "fieldtype": "Column Break", 
+   "permlevel": 0
+  }, 
+  {
+   "description": "<a href=\"#Sales Browser/Customer Group\">Add / Edit</a>", 
+   "fieldname": "default_customer_group", 
+   "fieldtype": "Link", 
+   "ignore_user_permissions": 1, 
+   "label": "Default Customer Group", 
+   "options": "Customer Group", 
+   "permlevel": 0, 
+   "reqd": 1
+  }, 
+  {
+   "fieldname": "quotation_series", 
+   "fieldtype": "Select", 
+   "label": "Quotation Series", 
+   "permlevel": 0, 
+   "reqd": 1
+  }, 
+  {
+   "fieldname": "section_break_6", 
+   "fieldtype": "Section Break", 
+   "permlevel": 0
+  }, 
+  {
+   "fieldname": "price_lists", 
+   "fieldtype": "Table", 
+   "label": "Shopping Cart Price Lists", 
+   "options": "Shopping Cart Price List", 
+   "permlevel": 0, 
+   "reqd": 0
+  }, 
+  {
+   "fieldname": "shipping_rules", 
+   "fieldtype": "Table", 
+   "label": "Shopping Cart Shipping Rules", 
+   "options": "Shopping Cart Shipping Rule", 
+   "permlevel": 0, 
+   "reqd": 0
+  }, 
+  {
+   "fieldname": "column_break_10", 
+   "fieldtype": "Column Break", 
+   "permlevel": 0
+  }, 
+  {
+   "fieldname": "sales_taxes_and_charges_masters", 
+   "fieldtype": "Table", 
+   "label": "Shopping Cart Taxes and Charges Masters", 
+   "options": "Shopping Cart Taxes and Charges Master", 
+   "permlevel": 0, 
+   "reqd": 0
+  }
+ ], 
+ "icon": "icon-shopping-cart", 
+ "idx": 1, 
+ "issingle": 1, 
+ "modified": "2014-05-26 03:05:53.747800", 
+ "modified_by": "Administrator", 
+ "module": "Shopping Cart", 
+ "name": "Shopping Cart Settings", 
+ "owner": "Administrator", 
+ "permissions": [
+  {
+   "create": 1, 
+   "email": 1, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "role": "Website Manager", 
+   "write": 1
+  }
+ ]
+}
\ No newline at end of file
diff --git a/erpnext/shopping_cart/doctype/shopping_cart_settings/shopping_cart_settings.py b/erpnext/shopping_cart/doctype/shopping_cart_settings/shopping_cart_settings.py
new file mode 100644
index 0000000..48e31f6
--- /dev/null
+++ b/erpnext/shopping_cart/doctype/shopping_cart_settings/shopping_cart_settings.py
@@ -0,0 +1,215 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
+# License: GNU General Public License v3. See license.txt
+
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+import frappe
+from frappe import _, msgprint
+from frappe.utils import comma_and
+from frappe.model.document import Document
+from frappe.utils.nestedset import get_ancestors_of
+from erpnext.utilities.doctype.address.address import get_territory_from_address
+
+class ShoppingCartSetupError(frappe.ValidationError): pass
+
+class ShoppingCartSettings(Document):
+	def onload(self):
+		self.get("__onload").quotation_series = frappe.get_meta("Quotation").get_options("naming_series")
+
+	def validate(self):
+		if self.enabled:
+			self.validate_price_lists()
+			self.validate_tax_masters()
+			self.validate_exchange_rates_exist()
+
+	def on_update(self):
+		frappe.db.set_default("shopping_cart_enabled", self.get("enabled") or 0)
+		frappe.db.set_default("shopping_cart_quotation_series", self.get("quotation_series"))
+
+	def validate_overlapping_territories(self, parentfield, fieldname):
+		# for displaying message
+		doctype = self.meta.get_field(parentfield).options
+
+		# specify atleast one entry in the table
+		self.validate_table_has_rows(parentfield, raise_exception=ShoppingCartSetupError)
+
+		territory_name_map = self.get_territory_name_map(parentfield, fieldname)
+		for territory, names in territory_name_map.items():
+			if len(names) > 1:
+				frappe.throw(_("{0} {1} has a common territory {2}").format(_(doctype), comma_and(names), territory), ShoppingCartSetupError)
+
+		return territory_name_map
+
+	def validate_price_lists(self):
+		territory_name_map = self.validate_overlapping_territories("price_lists", "selling_price_list")
+
+		# validate that a Shopping Cart Price List exists for the default territory as a catch all!
+		price_list_for_default_territory = self.get_name_from_territory(self.default_territory, "price_lists",
+			"selling_price_list")
+
+		if not price_list_for_default_territory:
+			msgprint(_("Please specify a Price List which is valid for Territory") +
+				": " + self.default_territory, raise_exception=ShoppingCartSetupError)
+
+	def validate_tax_masters(self):
+		self.validate_overlapping_territories("sales_taxes_and_charges_masters",
+			"sales_taxes_and_charges_master")
+
+	def get_territory_name_map(self, parentfield, fieldname):
+		territory_name_map = {}
+
+		# entries in table
+		names = [doc.get(fieldname) for doc in self.get(parentfield)]
+
+		if names:
+			# for condition in territory check
+			parenttype = frappe.get_meta(self.meta.get_options(parentfield)).get_options(fieldname)
+
+			# to validate territory overlap
+			# make a map of territory: [list of names]
+			# if list against each territory has more than one element, raise exception
+			territory_name = frappe.db.sql("""select `territory`, `parent`
+				from `tabApplicable Territory`
+				where `parenttype`=%s and `parent` in (%s)""" %
+				("%s", ", ".join(["%s"]*len(names))), tuple([parenttype] + names))
+
+			for territory, name in territory_name:
+				territory_name_map.setdefault(territory, []).append(name)
+
+				if len(territory_name_map[territory]) > 1:
+					territory_name_map[territory].sort(key=lambda val: names.index(val))
+
+		return territory_name_map
+
+	def validate_exchange_rates_exist(self):
+		"""check if exchange rates exist for all Price List currencies (to company's currency)"""
+		company_currency = frappe.db.get_value("Company", self.company, "default_currency")
+		if not company_currency:
+			msgprint(_("Please specify currency in Company") + ": " + self.company,
+				raise_exception=ShoppingCartSetupError)
+
+		price_list_currency_map = frappe.db.get_values("Price List",
+			[d.selling_price_list for d in self.get("price_lists")],
+			"currency")
+
+		# check if all price lists have a currency
+		for price_list, currency in price_list_currency_map.items():
+			if not currency:
+				frappe.throw(_("Currency is required for Price List {0}").format(price_list))
+
+		expected_to_exist = [currency + "-" + company_currency
+			for currency in price_list_currency_map.values()
+			if currency != company_currency]
+
+		if expected_to_exist:
+			exists = frappe.db.sql_list("""select name from `tabCurrency Exchange`
+				where name in (%s)""" % (", ".join(["%s"]*len(expected_to_exist)),),
+				tuple(expected_to_exist))
+
+			missing = list(set(expected_to_exist).difference(exists))
+
+			if missing:
+				msgprint(_("Missing Currency Exchange Rates for {0}").format(comma_and(missing)),
+					raise_exception=ShoppingCartSetupError)
+
+	def get_name_from_territory(self, territory, parentfield, fieldname):
+		name = None
+		territory_name_map = self.get_territory_name_map(parentfield, fieldname)
+
+		if territory_name_map.get(territory):
+			name = territory_name_map.get(territory)
+		else:
+			territory_ancestry = self.get_territory_ancestry(territory)
+			for ancestor in territory_ancestry:
+				if territory_name_map.get(ancestor):
+					name = territory_name_map.get(ancestor)
+					break
+
+		return name
+
+	def get_price_list(self, billing_territory):
+		price_list = self.get_name_from_territory(billing_territory, "price_lists", "selling_price_list")
+		return price_list and price_list[0] or None
+
+	def get_tax_master(self, billing_territory):
+		tax_master = self.get_name_from_territory(billing_territory, "sales_taxes_and_charges_masters",
+			"sales_taxes_and_charges_master")
+		return tax_master and tax_master[0] or None
+
+	def get_shipping_rules(self, shipping_territory):
+		return self.get_name_from_territory(shipping_territory, "shipping_rules", "shipping_rule")
+
+	def get_territory_ancestry(self, territory):
+		if not hasattr(self, "_territory_ancestry"):
+			self._territory_ancestry = {}
+
+		if not self._territory_ancestry.get(territory):
+			self._territory_ancestry[territory] = get_ancestors_of("Territory", territory)
+
+		return self._territory_ancestry[territory]
+
+def validate_cart_settings(doc, method):
+	frappe.get_doc("Shopping Cart Settings", "Shopping Cart Settings").run_method("validate")
+
+def get_shopping_cart_settings():
+	if not getattr(frappe.local, "shopping_cart_settings", None):
+		frappe.local.shopping_cart_settings = frappe.get_doc("Shopping Cart Settings", "Shopping Cart Settings")
+
+	return frappe.local.shopping_cart_settings
+
+def get_default_territory():
+	return get_shopping_cart_settings().default_territory
+
+def is_shopping_cart_enabled():
+	if not get_shopping_cart_settings().enabled:
+		frappe.throw(_("You need to enable Shopping Cart"), ShoppingCartSetupError)
+
+def apply_shopping_cart_settings(quotation, method):
+	"""Called via a validate hook on Quotation"""
+	from erpnext.shopping_cart import get_party
+	if quotation.order_type != "Shopping Cart":
+		return
+
+	quotation.billing_territory = (get_territory_from_address(quotation.customer_address)
+		or get_party(quotation.contact_email).territory or get_default_territory())
+	quotation.shipping_territory = (get_territory_from_address(quotation.shipping_address_name)
+		or get_party(quotation.contact_email).territory or get_default_territory())
+
+	set_price_list(quotation)
+	set_taxes_and_charges(quotation)
+	quotation.calculate_taxes_and_totals()
+	set_shipping_rule(quotation)
+
+def set_price_list(quotation):
+	previous_selling_price_list = quotation.selling_price_list
+	quotation.selling_price_list = get_shopping_cart_settings().get_price_list(quotation.billing_territory)
+
+	if not quotation.selling_price_list:
+		quotation.selling_price_list = get_shopping_cart_settings().get_price_list(get_default_territory())
+
+	if previous_selling_price_list != quotation.selling_price_list:
+		quotation.price_list_currency = quotation.currency = quotation.plc_conversion_rate = quotation.conversion_rate = None
+		for d in quotation.get("quotation_details"):
+			d.price_list_rate = d.discount_percentage = d.rate = d.amount = None
+
+	quotation.set_price_list_and_item_details()
+
+def set_taxes_and_charges(quotation):
+	previous_taxes_and_charges = quotation.taxes_and_charges
+	quotation.taxes_and_charges = get_shopping_cart_settings().get_tax_master(quotation.billing_territory)
+
+	if previous_taxes_and_charges != quotation.taxes_and_charges:
+		quotation.set_other_charges()
+
+def set_shipping_rule(quotation):
+	shipping_rules = get_shopping_cart_settings().get_shipping_rules(quotation.shipping_territory)
+	if not shipping_rules:
+		quotation.remove_shipping_charge()
+		return
+
+	if quotation.shipping_rule not in shipping_rules:
+		quotation.remove_shipping_charge()
+		quotation.shipping_rule = shipping_rules[0]
+
+	quotation.apply_shipping_rule()
diff --git a/erpnext/shopping_cart/doctype/shopping_cart_settings/test_shopping_cart_settings.py b/erpnext/shopping_cart/doctype/shopping_cart_settings/test_shopping_cart_settings.py
new file mode 100644
index 0000000..a45aaa4
--- /dev/null
+++ b/erpnext/shopping_cart/doctype/shopping_cart_settings/test_shopping_cart_settings.py
@@ -0,0 +1,79 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
+# License: GNU General Public License v3. See license.txt
+
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+import frappe
+import unittest
+from erpnext.shopping_cart.doctype.shopping_cart_settings.shopping_cart_settings import ShoppingCartSetupError
+
+class TestShoppingCartSettings(unittest.TestCase):
+	def setUp(self):
+		frappe.db.sql("""delete from `tabSingles` where doctype="Shipping Cart Settings" """)
+		frappe.db.sql("""delete from `tabShopping Cart Price List`""")
+		frappe.db.sql("""delete from `tabShopping Cart Taxes and Charges Master`""")
+		frappe.db.sql("""delete from `tabShopping Cart Shipping Rule`""")
+		
+	def get_cart_settings(self):
+		return frappe.get_doc({"doctype": "Shopping Cart Settings",
+			"company": "_Test Company"})
+		
+	def test_price_list_territory_overlap(self):
+		cart_settings = self.get_cart_settings()
+		
+		def _add_price_list(price_list):
+			cart_settings.append("price_lists", {
+				"doctype": "Shopping Cart Price List",
+				"selling_price_list": price_list
+			})
+		
+		for price_list in ("_Test Price List Rest of the World", "_Test Price List India",
+			"_Test Price List"):
+			_add_price_list(price_list)
+		
+		controller = cart_settings
+		controller.validate_overlapping_territories("price_lists", "selling_price_list")
+		
+		_add_price_list("_Test Price List 2")
+		
+		controller = cart_settings
+		self.assertRaises(ShoppingCartSetupError, controller.validate_overlapping_territories,
+			"price_lists", "selling_price_list")
+			
+		return cart_settings
+		
+	def test_taxes_territory_overlap(self):
+		cart_settings = self.get_cart_settings()
+		
+		def _add_tax_master(tax_master):
+			cart_settings.append("sales_taxes_and_charges_masters", {
+				"doctype": "Shopping Cart Taxes and Charges Master",
+				"sales_taxes_and_charges_master": tax_master
+			})
+		
+		for tax_master in ("_Test Sales Taxes and Charges Master", "_Test India Tax Master"):
+			_add_tax_master(tax_master)
+			
+		controller = cart_settings
+		controller.validate_overlapping_territories("sales_taxes_and_charges_masters",
+			"sales_taxes_and_charges_master")
+			
+		_add_tax_master("_Test Sales Taxes and Charges Master - Rest of the World")
+		
+		controller = cart_settings
+		self.assertRaises(ShoppingCartSetupError, controller.validate_overlapping_territories,
+			"sales_taxes_and_charges_masters", "sales_taxes_and_charges_master")
+		
+	def test_exchange_rate_exists(self):
+		frappe.db.sql("""delete from `tabCurrency Exchange`""")
+		
+		cart_settings = self.test_price_list_territory_overlap()
+		controller = cart_settings
+		self.assertRaises(ShoppingCartSetupError, controller.validate_exchange_rates_exist)
+		
+		from erpnext.setup.doctype.currency_exchange.test_currency_exchange import test_records as \
+			currency_exchange_records
+		frappe.get_doc(currency_exchange_records[0]).insert()
+		controller.validate_exchange_rates_exist()
+		
diff --git a/erpnext/stock/page/stock_balance/__init__.py b/erpnext/shopping_cart/doctype/shopping_cart_shipping_rule/__init__.py
similarity index 100%
copy from erpnext/stock/page/stock_balance/__init__.py
copy to erpnext/shopping_cart/doctype/shopping_cart_shipping_rule/__init__.py
diff --git a/erpnext/shopping_cart/doctype/shopping_cart_shipping_rule/shopping_cart_shipping_rule.json b/erpnext/shopping_cart/doctype/shopping_cart_shipping_rule/shopping_cart_shipping_rule.json
new file mode 100644
index 0000000..5ff55f9
--- /dev/null
+++ b/erpnext/shopping_cart/doctype/shopping_cart_shipping_rule/shopping_cart_shipping_rule.json
@@ -0,0 +1,23 @@
+{
+ "creation": "2013-07-03 13:15:34.000000", 
+ "docstatus": 0, 
+ "doctype": "DocType", 
+ "fields": [
+  {
+   "fieldname": "shipping_rule", 
+   "fieldtype": "Link", 
+   "in_list_view": 1, 
+   "label": "Shipping Rule", 
+   "options": "Shipping Rule", 
+   "permlevel": 0, 
+   "reqd": 1
+  }
+ ], 
+ "idx": 1, 
+ "istable": 1, 
+ "modified": "2013-12-20 19:30:47.000000", 
+ "modified_by": "Administrator", 
+ "module": "Shopping Cart", 
+ "name": "Shopping Cart Shipping Rule", 
+ "owner": "Administrator"
+}
\ No newline at end of file
diff --git a/erpnext/shopping_cart/doctype/shopping_cart_shipping_rule/shopping_cart_shipping_rule.py b/erpnext/shopping_cart/doctype/shopping_cart_shipping_rule/shopping_cart_shipping_rule.py
new file mode 100644
index 0000000..17aa964
--- /dev/null
+++ b/erpnext/shopping_cart/doctype/shopping_cart_shipping_rule/shopping_cart_shipping_rule.py
@@ -0,0 +1,12 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
+# License: GNU General Public License v3. See license.txt
+
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+import frappe
+
+from frappe.model.document import Document
+
+class ShoppingCartShippingRule(Document):
+	pass
\ No newline at end of file
diff --git a/erpnext/stock/page/stock_balance/__init__.py b/erpnext/shopping_cart/doctype/shopping_cart_taxes_and_charges_master/__init__.py
similarity index 100%
copy from erpnext/stock/page/stock_balance/__init__.py
copy to erpnext/shopping_cart/doctype/shopping_cart_taxes_and_charges_master/__init__.py
diff --git a/erpnext/shopping_cart/doctype/shopping_cart_taxes_and_charges_master/shopping_cart_taxes_and_charges_master.json b/erpnext/shopping_cart/doctype/shopping_cart_taxes_and_charges_master/shopping_cart_taxes_and_charges_master.json
new file mode 100644
index 0000000..bfe31e5
--- /dev/null
+++ b/erpnext/shopping_cart/doctype/shopping_cart_taxes_and_charges_master/shopping_cart_taxes_and_charges_master.json
@@ -0,0 +1,23 @@
+{
+ "creation": "2013-06-20 16:57:03.000000", 
+ "docstatus": 0, 
+ "doctype": "DocType", 
+ "fields": [
+  {
+   "fieldname": "sales_taxes_and_charges_master", 
+   "fieldtype": "Link", 
+   "in_list_view": 1, 
+   "label": "Tax Master", 
+   "options": "Sales Taxes and Charges Master", 
+   "permlevel": 0, 
+   "reqd": 1
+  }
+ ], 
+ "idx": 1, 
+ "istable": 1, 
+ "modified": "2013-12-20 19:30:47.000000", 
+ "modified_by": "Administrator", 
+ "module": "Shopping Cart", 
+ "name": "Shopping Cart Taxes and Charges Master", 
+ "owner": "Administrator"
+}
\ No newline at end of file
diff --git a/erpnext/shopping_cart/doctype/shopping_cart_taxes_and_charges_master/shopping_cart_taxes_and_charges_master.py b/erpnext/shopping_cart/doctype/shopping_cart_taxes_and_charges_master/shopping_cart_taxes_and_charges_master.py
new file mode 100644
index 0000000..e0d0f9f
--- /dev/null
+++ b/erpnext/shopping_cart/doctype/shopping_cart_taxes_and_charges_master/shopping_cart_taxes_and_charges_master.py
@@ -0,0 +1,12 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
+# License: GNU General Public License v3. See license.txt
+
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+import frappe
+
+from frappe.model.document import Document
+
+class ShoppingCartTaxesandChargesMaster(Document):
+	pass
diff --git a/erpnext/shopping_cart/product.py b/erpnext/shopping_cart/product.py
new file mode 100644
index 0000000..5a86d1d
--- /dev/null
+++ b/erpnext/shopping_cart/product.py
@@ -0,0 +1,54 @@
+# 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
+from frappe.utils import cint, fmt_money, cstr
+from erpnext.shopping_cart.cart import _get_cart_quotation
+from urllib import unquote
+
+@frappe.whitelist(allow_guest=True)
+def get_product_info(item_code):
+	"""get product price / stock info"""
+	if not cint(frappe.db.get_default("shopping_cart_enabled")):
+		return {}
+
+	cart_quotation = _get_cart_quotation()
+
+	price_list = cstr(unquote(frappe.local.request.cookies.get("selling_price_list")))
+
+	warehouse = frappe.db.get_value("Item", item_code, "website_warehouse")
+	if warehouse:
+		in_stock = frappe.db.sql("""select actual_qty from tabBin where
+			item_code=%s and warehouse=%s""", (item_code, warehouse))
+		if in_stock:
+			in_stock = in_stock[0][0] > 0 and 1 or 0
+	else:
+		in_stock = -1
+
+	price = price_list and frappe.db.sql("""select price_list_rate, currency from
+		`tabItem Price` where item_code=%s and price_list=%s""",
+		(item_code, price_list), as_dict=1) or []
+
+	price = price and price[0] or None
+	qty = 0
+
+	if price:
+		price["formatted_price"] = fmt_money(price["price_list_rate"], currency=price["currency"])
+
+		price["currency"] = not cint(frappe.db.get_default("hide_currency_symbol")) \
+			and (frappe.db.get_value("Currency", price.currency, "symbol") or price.currency) \
+			or ""
+
+		if frappe.session.user != "Guest":
+			item = cart_quotation.get({"item_code": item_code})
+			if item:
+				qty = item[0].qty
+
+	return {
+		"price": price,
+		"stock": in_stock,
+		"uom": frappe.db.get_value("Item", item_code, "stock_uom"),
+		"qty": qty
+	}
diff --git a/erpnext/shopping_cart/test_shopping_cart.py b/erpnext/shopping_cart/test_shopping_cart.py
new file mode 100644
index 0000000..f77522a
--- /dev/null
+++ b/erpnext/shopping_cart/test_shopping_cart.py
@@ -0,0 +1,230 @@
+# 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 unittest
+import frappe
+from erpnext.shopping_cart import get_quotation, set_item_in_cart
+
+class TestShoppingCart(unittest.TestCase):
+	"""
+		Note:
+		Shopping Cart == Quotation
+	"""
+	def setUp(self):
+		frappe.set_user("Administrator")
+		self.enable_shopping_cart()
+
+	def tearDown(self):
+		frappe.set_user("Administrator")
+		self.disable_shopping_cart()
+
+	def test_get_cart_new_user(self):
+		self.login_as_new_user()
+
+		# test if lead is created and quotation with new lead is fetched
+		quotation = get_quotation()
+		self.assertEquals(quotation.quotation_to, "Lead")
+		self.assertEquals(frappe.db.get_value("Lead", quotation.lead, "email_id"), "test_cart_user@example.com")
+		self.assertEquals(quotation.customer, None)
+		self.assertEquals(quotation.contact_email, frappe.session.user)
+
+		return quotation
+
+	def test_get_cart_lead(self):
+		self.login_as_lead()
+
+		# test if quotation with lead is fetched
+		quotation = get_quotation()
+		self.assertEquals(quotation.quotation_to, "Lead")
+		self.assertEquals(quotation.lead, frappe.db.get_value("Lead", {"email_id": "test_cart_lead@example.com"}))
+		self.assertEquals(quotation.customer, None)
+		self.assertEquals(quotation.contact_email, frappe.session.user)
+
+		return quotation
+
+	def test_get_cart_customer(self):
+		self.login_as_customer()
+
+		# test if quotation with customer is fetched
+		quotation = get_quotation()
+		self.assertEquals(quotation.quotation_to, "Customer")
+		self.assertEquals(quotation.customer, "_Test Customer")
+		self.assertEquals(quotation.lead, None)
+		self.assertEquals(quotation.contact_email, frappe.session.user)
+
+		return quotation
+
+	def test_add_to_cart(self):
+		self.login_as_lead()
+
+		# add first item
+		set_item_in_cart("_Test Item", 1)
+		quotation = self.test_get_cart_lead()
+		self.assertEquals(quotation.get("quotation_details")[0].item_code, "_Test Item")
+		self.assertEquals(quotation.get("quotation_details")[0].qty, 1)
+		self.assertEquals(quotation.get("quotation_details")[0].amount, 10)
+
+		# add second item
+		set_item_in_cart("_Test Item 2", 1)
+		quotation = self.test_get_cart_lead()
+		self.assertEquals(quotation.get("quotation_details")[1].item_code, "_Test Item 2")
+		self.assertEquals(quotation.get("quotation_details")[1].qty, 1)
+		self.assertEquals(quotation.get("quotation_details")[1].amount, 20)
+
+		self.assertEquals(len(quotation.get("quotation_details")), 2)
+
+	def test_update_cart(self):
+		# first, add to cart
+		self.test_add_to_cart()
+
+		# update first item
+		set_item_in_cart("_Test Item", 5)
+		quotation = self.test_get_cart_lead()
+		self.assertEquals(quotation.get("quotation_details")[0].item_code, "_Test Item")
+		self.assertEquals(quotation.get("quotation_details")[0].qty, 5)
+		self.assertEquals(quotation.get("quotation_details")[0].amount, 50)
+		self.assertEquals(quotation.net_total, 70)
+		self.assertEquals(len(quotation.get("quotation_details")), 2)
+
+	def test_remove_from_cart(self):
+		# first, add to cart
+		self.test_add_to_cart()
+
+		# remove first item
+		set_item_in_cart("_Test Item", 0)
+		quotation = self.test_get_cart_lead()
+		self.assertEquals(quotation.get("quotation_details")[0].item_code, "_Test Item 2")
+		self.assertEquals(quotation.get("quotation_details")[0].qty, 1)
+		self.assertEquals(quotation.get("quotation_details")[0].amount, 20)
+		self.assertEquals(quotation.net_total, 20)
+		self.assertEquals(len(quotation.get("quotation_details")), 1)
+
+		# remove second item
+		set_item_in_cart("_Test Item 2", 0)
+		quotation = self.test_get_cart_lead()
+		self.assertEquals(quotation.net_total, 0)
+		self.assertEquals(len(quotation.get("quotation_details")), 0)
+
+	def test_set_billing_address(self):
+		return
+
+		# first, add to cart
+		self.test_add_to_cart()
+
+		quotation = self.test_get_cart_lead()
+		default_address = frappe.get_doc("Address", {"lead": quotation.lead, "is_primary_address": 1})
+		self.assertEquals("customer_address", default_address.name)
+
+	def test_set_shipping_address(self):
+		# first, add to cart
+		self.test_add_to_cart()
+
+
+
+	def test_shipping_rule(self):
+		self.test_set_shipping_address()
+
+		# check if shipping rule changed
+		pass
+
+	def test_price_list(self):
+		self.test_set_billing_address()
+
+		# check if price changed
+		pass
+
+	def test_place_order(self):
+		pass
+
+	# helper functions
+	def enable_shopping_cart(self):
+		settings = frappe.get_doc("Shopping Cart Settings", "Shopping Cart Settings")
+
+		if settings.default_territory == "_Test Territory Rest Of The World":
+			settings.enabled = 1
+		else:
+			settings.update({
+				"enabled": 1,
+				"company": "_Test Company",
+				"default_territory": "_Test Territory Rest Of The World",
+				"default_customer_group": "_Test Customer Group",
+				"quotation_series": "_T-Quotation-"
+			})
+			settings.set("price_lists", [
+				# price lists
+				{"doctype": "Shopping Cart Price List", "parentfield": "price_lists",
+					"selling_price_list": "_Test Price List India"},
+				{"doctype": "Shopping Cart Price List", "parentfield": "price_lists",
+					"selling_price_list": "_Test Price List Rest of the World"}
+			])
+			settings.set("sales_taxes_and_charges_masters", [
+				# tax masters
+				{"doctype": "Shopping Cart Taxes and Charges Master", "parentfield": "sales_taxes_and_charges_masters",
+					"sales_taxes_and_charges_master": "_Test India Tax Master"},
+				{"doctype": "Shopping Cart Taxes and Charges Master", "parentfield": "sales_taxes_and_charges_masters",
+					"sales_taxes_and_charges_master": "_Test Sales Taxes and Charges Master - Rest of the World"},
+			])
+			settings.set("shipping_rules", {"doctype": "Shopping Cart Shipping Rule", "parentfield": "shipping_rules",
+					"shipping_rule": "_Test Shipping Rule - India"})
+
+		settings.save()
+		frappe.local.shopping_cart_settings = None
+
+	def disable_shopping_cart(self):
+		settings = frappe.get_doc("Shopping Cart Settings", "Shopping Cart Settings")
+		settings.enabled = 0
+		settings.save()
+		frappe.local.shopping_cart_settings = None
+
+	def login_as_new_user(self):
+		frappe.set_user("test_cart_user@example.com")
+
+	def login_as_lead(self):
+		self.create_lead()
+		frappe.set_user("test_cart_lead@example.com")
+
+	def login_as_customer(self):
+		frappe.set_user("test_contact_customer@example.com")
+
+	def create_lead(self):
+		if frappe.db.get_value("Lead", {"email_id": "test_cart_lead@example.com"}):
+			return
+
+		lead = frappe.get_doc({
+			"doctype": "Lead",
+			"email_id": "test_cart_lead@example.com",
+			"lead_name": "_Test Website Lead",
+			"status": "Open",
+			"territory": "_Test Territory Rest Of The World"
+		})
+		lead.insert(ignore_permissions=True)
+
+		frappe.get_doc({
+			"doctype": "Address",
+			"address_line1": "_Test Address Line 1",
+			"address_title": "_Test Cart Lead Address",
+			"address_type": "Office",
+			"city": "_Test City",
+			"country": "United States",
+			"lead": lead.name,
+			"lead_name": "_Test Website Lead",
+			"is_primary_address": 1,
+			"phone": "+91 0000000000"
+		}).insert(ignore_permissions=True)
+
+		frappe.get_doc({
+			"doctype": "Address",
+			"address_line1": "_Test Address Line 1",
+			"address_title": "_Test Cart Lead Address",
+			"address_type": "Home",
+			"city": "_Test City",
+			"country": "India",
+			"lead": lead.name,
+			"lead_name": "_Test Website Lead",
+			"phone": "+91 0000000000"
+		}).insert(ignore_permissions=True)
+
+
+test_dependencies = ["Sales Taxes and Charges Master", "Price List", "Item Price", "Shipping Rule", "Currency Exchange",
+	"Customer Group", "Lead", "Customer", "Contact", "Address", "Item"]
diff --git a/erpnext/shopping_cart/utils.py b/erpnext/shopping_cart/utils.py
new file mode 100644
index 0000000..ee011a4
--- /dev/null
+++ b/erpnext/shopping_cart/utils.py
@@ -0,0 +1,47 @@
+# 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
+import frappe.defaults
+from frappe.utils import cint
+
+def show_cart_count():
+	if (frappe.db.get_default("shopping_cart_enabled") and
+		frappe.db.get_value("User", frappe.session.user, "user_type") == "Website User"):
+		return True
+
+	return False
+
+def set_cart_count(login_manager):
+	if show_cart_count():
+		from .shopping_cart.cart import set_cart_count
+		set_cart_count()
+
+def clear_cart_count(login_manager):
+	if show_cart_count():
+		frappe.local.cookie_manager.delete_cookie("cart_count")
+
+def update_website_context(context):
+	post_login = []
+	cart_enabled = cint(frappe.db.get_default("shopping_cart_enabled"))
+	context["shopping_cart_enabled"] = cart_enabled
+
+	if cart_enabled:
+		post_login += [
+			{"label": "Cart", "url": "cart", "icon": "icon-shopping-cart", "class": "cart-count"},
+			{"class": "divider"}
+		]
+
+	post_login += [
+		{"label": "User", "url": "user", "icon": "icon-user"},
+		{"label": "Addresses", "url": "addresses", "icon": "icon-map-marker"},
+		{"label": "My Orders", "url": "orders", "icon": "icon-list"},
+		{"label": "My Tickets", "url": "tickets", "icon": "icon-tags"},
+		{"label": "Invoices", "url": "invoices", "icon": "icon-file-text"},
+		{"label": "Shipments", "url": "shipments", "icon": "icon-truck"},
+		{"class": "divider"}
+	]
+
+	context["post_login"] = post_login + context.get("post_login", [])
diff --git a/erpnext/startup/report_data_map.py b/erpnext/startup/report_data_map.py
index ce71310..81d378c 100644
--- a/erpnext/startup/report_data_map.py
+++ b/erpnext/startup/report_data_map.py
@@ -78,7 +78,8 @@
 	"Stock Ledger Entry": {
 		"columns": ["name", "posting_date", "posting_time", "item_code", "warehouse",
 			"actual_qty as qty", "voucher_type", "voucher_no", "project",
-			"ifnull(incoming_rate,0) as incoming_rate", "stock_uom", "serial_no"],
+			"ifnull(incoming_rate,0) as incoming_rate", "stock_uom", "serial_no",
+			"qty_after_transaction", "valuation_rate"],
 		"order_by": "posting_date, posting_time, name",
 		"links": {
 			"item_code": ["Item", "name"],
diff --git a/erpnext/stock/doctype/bin/bin.py b/erpnext/stock/doctype/bin/bin.py
index 3f74c5c..e3269e8 100644
--- a/erpnext/stock/doctype/bin/bin.py
+++ b/erpnext/stock/doctype/bin/bin.py
@@ -11,27 +11,27 @@
 	def validate(self):
 		if self.get("__islocal") or not self.stock_uom:
 			self.stock_uom = frappe.db.get_value('Item', self.item_code, 'stock_uom')
-				
+
 		self.validate_mandatory()
-		
+
 		self.projected_qty = flt(self.actual_qty) + flt(self.ordered_qty) + \
 		 	flt(self.indented_qty) + flt(self.planned_qty) - flt(self.reserved_qty)
-		
+
 	def validate_mandatory(self):
 		qf = ['actual_qty', 'reserved_qty', 'ordered_qty', 'indented_qty']
 		for f in qf:
-			if (not getattr(self, f, None)) or (not self.get(f)): 
+			if (not getattr(self, f, None)) or (not self.get(f)):
 				self.set(f, 0.0)
-		
+
 	def update_stock(self, args):
 		self.update_qty(args)
-		
-		if args.get("actual_qty"):
+
+		if args.get("actual_qty") or args.get("voucher_type") == "Stock Reconciliation":
 			from erpnext.stock.stock_ledger import update_entries_after
-			
+
 			if not args.get("posting_date"):
 				args["posting_date"] = nowdate()
-			
+
 			# update valuation and qty after transaction for post dated entry
 			update_entries_after({
 				"item_code": self.item_code,
@@ -39,21 +39,34 @@
 				"posting_date": args.get("posting_date"),
 				"posting_time": args.get("posting_time")
 			})
-			
+
 	def update_qty(self, args):
 		# update the stock values (for current quantities)
-		
-		self.actual_qty = flt(self.actual_qty) + flt(args.get("actual_qty"))
+		if args.get("voucher_type")=="Stock Reconciliation":
+			if args.get('is_cancelled') == 'No':
+				self.actual_qty = args.get("qty_after_transaction")
+			else:
+				qty_after_transaction = frappe.db.get_value("""select qty_after_transaction
+					from `tabStock Ledger Entry`
+					where item_code=%s and warehouse=%s
+					and not (voucher_type='Stock Reconciliation' and voucher_no=%s)
+					order by posting_date desc limit 1""",
+					(self.item_code, self.warehouse, args.get('voucher_no')))
+
+				self.actual_qty = flt(qty_after_transaction[0][0]) if qty_after_transaction else 0.0
+		else:
+			self.actual_qty = flt(self.actual_qty) + flt(args.get("actual_qty"))
+
 		self.ordered_qty = flt(self.ordered_qty) + flt(args.get("ordered_qty"))
 		self.reserved_qty = flt(self.reserved_qty) + flt(args.get("reserved_qty"))
 		self.indented_qty = flt(self.indented_qty) + flt(args.get("indented_qty"))
 		self.planned_qty = flt(self.planned_qty) + flt(args.get("planned_qty"))
-		
+
 		self.projected_qty = flt(self.actual_qty) + flt(self.ordered_qty) + \
 		 	flt(self.indented_qty) + flt(self.planned_qty) - flt(self.reserved_qty)
-		
+
 		self.save()
-		
+
 	def get_first_sle(self):
 		sle = frappe.db.sql("""
 			select * from `tabStock Ledger Entry`
@@ -62,4 +75,4 @@
 			order by timestamp(posting_date, posting_time) asc, name asc
 			limit 1
 		""", (self.item_code, self.warehouse), as_dict=1)
-		return sle and sle[0] or None
\ No newline at end of file
+		return sle and sle[0] or None
diff --git a/erpnext/stock/doctype/delivery_note/delivery_note.py b/erpnext/stock/doctype/delivery_note/delivery_note.py
index 67a33c9..5c4c7b4 100644
--- a/erpnext/stock/doctype/delivery_note/delivery_note.py
+++ b/erpnext/stock/doctype/delivery_note/delivery_note.py
@@ -261,7 +261,7 @@
 		sl_entries = []
 		for d in self.get_item_list():
 			if frappe.db.get_value("Item", d.item_code, "is_stock_item") == "Yes" \
-					and d.warehouse:
+					and d.warehouse and flt(d['qty']):
 				self.update_reserved_qty(d)
 
 				sl_entries.append(self.get_sl_entries(d, {
diff --git a/erpnext/stock/doctype/item/item.js b/erpnext/stock/doctype/item/item.js
index fce8dfa..b05ce25 100644
--- a/erpnext/stock/doctype/item/item.js
+++ b/erpnext/stock/doctype/item/item.js
@@ -9,6 +9,17 @@
 
 	cur_frm.cscript.make_dashboard();
 
+	cur_frm.set_intro();
+	if (cur_frm.doc.has_variants) {
+		cur_frm.set_intro(__("This Item is a Template and cannot be used in transactions. Item attributes will be copied over into the variants unless 'No Copy' is set"));
+		cur_frm.add_custom_button(__("Show Variants"), function() {
+			frappe.set_route("List", "Item", {"variant_of": cur_frm.doc.name});
+		}, "icon-list", "btn-default");
+	}
+	if (cur_frm.doc.variant_of) {
+		cur_frm.set_intro(__("This Item is a Variant of {0} (Template). Attributes will be copied over from the template unless 'No Copy' is set", [cur_frm.doc.variant_of]));
+	}
+
 	if (frappe.defaults.get_default("item_naming_by")!="Naming Series") {
 		cur_frm.toggle_display("naming_series", false);
 	} else {
@@ -25,7 +36,7 @@
 
 	if (!doc.__islocal && doc.show_in_website) {
 		cur_frm.set_intro(__("Published on website at: {0}",
-			[repl('<a href="/%(website_route)s" target="_blank">/%(website_route)s</a>', doc.__onload)]));
+			[repl('<a href="/%(website_route)s" target="_blank">/%(website_route)s</a>', doc.__onload)]), true);
 	}
 
 	erpnext.item.toggle_reqd(cur_frm);
@@ -35,11 +46,32 @@
 	frm.toggle_reqd("default_warehouse", frm.doc.is_stock_item==="Yes");
 };
 
-frappe.ui.form.on("Item", "is_stock_item", function(frm) {
-	erpnext.item.toggle_reqd(frm);
+frappe.ui.form.on("Item", "onload", function(frm) {
+	var df = frappe.meta.get_docfield("Item Variant", "item_attribute_value");
+	df.on_make = function(field) {
+		field.$input.autocomplete({
+			minLength: 0,
+			minChars: 0,
+			source: function(request, response) {
+				frappe.call({
+					method:"frappe.client.get_list",
+					args:{
+						doctype:"Item Attribute Value",
+						filters: [
+							["parent","=", field.doc.item_attribute],
+							["attribute_value", "like", request.term + "%"]
+						],
+						fields: ["attribute_value"]
+					},
+					callback: function(r) {
+						response($.map(r.message, function(d) { return d.attribute_value; }));
+					}
+				});
+			}
+		})
+	}
 });
 
-
 cur_frm.cscript.make_dashboard = function() {
 	cur_frm.dashboard.reset();
 	if(cur_frm.doc.__islocal)
@@ -49,7 +81,7 @@
 cur_frm.cscript.edit_prices_button = function() {
 	cur_frm.add_custom_button(__("Add / Edit Prices"), function() {
 		frappe.set_route("Report", "Item Price", {"item_code": cur_frm.doc.name});
-	}, "icon-money");
+	}, "icon-money", "btn-default");
 }
 
 cur_frm.cscript.item_code = function(doc) {
@@ -59,16 +91,6 @@
 		cur_frm.set_value("description", doc.item_code);
 }
 
-cur_frm.fields_dict['default_bom'].get_query = function(doc) {
-	return {
-		filters: {
-			'item': doc.item_code,
-			'is_active': 0
-		}
-	}
-}
-
-
 // Expense Account
 // ---------------------------------
 cur_frm.fields_dict['expense_account'].get_query = function(doc) {
@@ -143,7 +165,9 @@
 	doc.description_html = repl('<table style="width: 100%; table-layout: fixed;">' +
 		'<tr><td style="width:110px"><img src="%(imgurl)s" width="100px"></td>' +
 		'<td>%(desc)s</td></tr>' +
-		'</table>', {imgurl: frappe.utils.get_file_link(doc.image), desc:doc.description});
+		'</table>', {
+			imgurl: frappe.utils.get_file_link(doc.image),
+			desc: doc.description.replace(/\n/g, "<br>")});
 
 	refresh_field('description_html');
 }
@@ -185,4 +209,4 @@
 	else {
 		msgprint(__("You may need to update: {0}", [frappe.meta.get_docfield(cur_frm.doc.doctype, "description_html").label]));
 	}
-}
\ No newline at end of file
+}
diff --git a/erpnext/stock/doctype/item/item.json b/erpnext/stock/doctype/item/item.json
index db39f7b..12ff900 100644
--- a/erpnext/stock/doctype/item/item.json
+++ b/erpnext/stock/doctype/item/item.json
@@ -1,905 +1,946 @@
 {
-  "allow_import": 1,
- "allow_rename": 1,
- "autoname": "field:item_code",
- "creation": "2013-05-03 10:45:46",
- "default_print_format": "Standard",
- "description": "A Product or a Service that is bought, sold or kept in stock.",
- "docstatus": 0,
- "doctype": "DocType",
- "document_type": "Master",
+ "allow_import": 1, 
+ "allow_rename": 1, 
+ "autoname": "field:item_code", 
+ "creation": "2013-05-03 10:45:46", 
+ "default_print_format": "Standard", 
+ "description": "A Product or a Service that is bought, sold or kept in stock.", 
+ "docstatus": 0, 
+ "doctype": "DocType", 
+ "document_type": "Master", 
  "fields": [
   {
-   "fieldname": "name_and_description_section",
-   "fieldtype": "Section Break",
-   "label": "Name and Description",
-   "no_copy": 0,
-   "oldfieldtype": "Section Break",
-   "options": "icon-flag",
-   "permlevel": 0,
+   "fieldname": "name_and_description_section", 
+   "fieldtype": "Section Break", 
+   "label": "Name and Description", 
+   "no_copy": 0, 
+   "oldfieldtype": "Section Break", 
+   "options": "icon-flag", 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "fieldname": "naming_series",
-   "fieldtype": "Select",
-   "label": "Series",
-   "options": "ITEM-",
-   "permlevel": 0,
+   "fieldname": "naming_series", 
+   "fieldtype": "Select", 
+   "label": "Series", 
+   "options": "ITEM-", 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "description": "Item will be saved by this name in the data base.",
-   "fieldname": "item_code",
-   "fieldtype": "Data",
-   "in_filter": 0,
-   "label": "Item Code",
-   "no_copy": 1,
-   "oldfieldname": "item_code",
-   "oldfieldtype": "Data",
-   "permlevel": 0,
-   "read_only": 0,
-   "reqd": 0,
+   "description": "Item will be saved by this name in the data base.", 
+   "fieldname": "item_code", 
+   "fieldtype": "Data", 
+   "in_filter": 0, 
+   "label": "Item Code", 
+   "no_copy": 1, 
+   "oldfieldname": "item_code", 
+   "oldfieldtype": "Data", 
+   "permlevel": 0, 
+   "read_only": 0, 
+   "reqd": 0, 
    "search_index": 0
-  },
+  }, 
   {
-   "fieldname": "item_name",
-   "fieldtype": "Data",
-   "in_filter": 1,
-   "in_list_view": 1,
-   "label": "Item Name",
-   "oldfieldname": "item_name",
-   "oldfieldtype": "Data",
-   "permlevel": 0,
-   "read_only": 0,
-   "reqd": 1,
+   "depends_on": "variant_of", 
+   "description": "If item is a variant of another item then description, image, pricing, taxes etc will be set from the template unless explicitly specified", 
+   "fieldname": "variant_of", 
+   "fieldtype": "Link", 
+   "label": "Variant Of", 
+   "options": "Item", 
+   "permlevel": 0, 
+   "precision": "", 
+   "read_only": 1
+  }, 
+  {
+   "fieldname": "item_name", 
+   "fieldtype": "Data", 
+   "in_filter": 1, 
+   "in_list_view": 1, 
+   "label": "Item Name", 
+   "oldfieldname": "item_name", 
+   "oldfieldtype": "Data", 
+   "permlevel": 0, 
+   "read_only": 0, 
+   "reqd": 1, 
    "search_index": 1
-  },
+  }, 
   {
-   "description": "<a href=\"#Sales Browser/Item Group\">Add / Edit</a>",
-   "fieldname": "item_group",
-   "fieldtype": "Link",
-   "in_filter": 1,
-   "label": "Item Group",
-   "oldfieldname": "item_group",
-   "oldfieldtype": "Link",
-   "options": "Item Group",
-   "permlevel": 0,
-   "read_only": 0,
+   "description": "<a href=\"#Sales Browser/Item Group\">Add / Edit</a>", 
+   "fieldname": "item_group", 
+   "fieldtype": "Link", 
+   "in_filter": 1, 
+   "label": "Item Group", 
+   "oldfieldname": "item_group", 
+   "oldfieldtype": "Link", 
+   "options": "Item Group", 
+   "permlevel": 0, 
+   "read_only": 0, 
    "reqd": 1
-  },
+  }, 
   {
-   "description": "Unit of measurement of this item (e.g. Kg, Unit, No, Pair).",
-   "fieldname": "stock_uom",
-   "fieldtype": "Link",
-   "ignore_user_permissions": 1,
-   "label": "Default Unit of Measure",
-   "oldfieldname": "stock_uom",
-   "oldfieldtype": "Link",
-   "options": "UOM",
-   "permlevel": 0,
-   "read_only": 0,
+   "description": "Unit of measurement of this item (e.g. Kg, Unit, No, Pair).", 
+   "fieldname": "stock_uom", 
+   "fieldtype": "Link", 
+   "ignore_user_permissions": 1, 
+   "label": "Default Unit of Measure", 
+   "oldfieldname": "stock_uom", 
+   "oldfieldtype": "Link", 
+   "options": "UOM", 
+   "permlevel": 0, 
+   "read_only": 0, 
    "reqd": 1
-  },
+  }, 
   {
-   "fieldname": "brand",
-   "fieldtype": "Link",
-   "hidden": 0,
-   "label": "Brand",
-   "oldfieldname": "brand",
-   "oldfieldtype": "Link",
-   "options": "Brand",
-   "permlevel": 0,
-   "print_hide": 1,
-   "read_only": 0,
+   "fieldname": "brand", 
+   "fieldtype": "Link", 
+   "hidden": 0, 
+   "label": "Brand", 
+   "oldfieldname": "brand", 
+   "oldfieldtype": "Link", 
+   "options": "Brand", 
+   "permlevel": 0, 
+   "print_hide": 1, 
+   "read_only": 0, 
    "reqd": 0
-  },
+  }, 
   {
-   "fieldname": "barcode",
-   "fieldtype": "Data",
-   "label": "Barcode",
-   "permlevel": 0,
+   "fieldname": "barcode", 
+   "fieldtype": "Data", 
+   "label": "Barcode", 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "fieldname": "column_break0",
-   "fieldtype": "Column Break",
-   "permlevel": 0,
+   "fieldname": "column_break0", 
+   "fieldtype": "Column Break", 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "fieldname": "image",
-   "fieldtype": "Attach",
-   "label": "Image",
-   "options": "",
-   "permlevel": 0,
+   "fieldname": "image", 
+   "fieldtype": "Attach", 
+   "label": "Image", 
+   "options": "", 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "fieldname": "image_view",
-   "fieldtype": "Image",
-   "in_list_view": 1,
-   "label": "Image View",
-   "options": "image",
-   "permlevel": 0,
+   "fieldname": "image_view", 
+   "fieldtype": "Image", 
+   "in_list_view": 1, 
+   "label": "Image View", 
+   "options": "image", 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "fieldname": "description",
-   "fieldtype": "Small Text",
-   "in_filter": 0,
-   "in_list_view": 1,
-   "label": "Description",
-   "oldfieldname": "description",
-   "oldfieldtype": "Text",
-   "permlevel": 0,
-   "read_only": 0,
-   "reqd": 1,
+   "fieldname": "description", 
+   "fieldtype": "Small Text", 
+   "in_filter": 0, 
+   "in_list_view": 1, 
+   "label": "Description", 
+   "oldfieldname": "description", 
+   "oldfieldtype": "Text", 
+   "permlevel": 0, 
+   "read_only": 0, 
+   "reqd": 1, 
    "search_index": 0
-  },
+  }, 
   {
-   "fieldname": "description_html",
-   "fieldtype": "Small Text",
-   "label": "Description HTML",
-   "permlevel": 0,
+   "fieldname": "description_html", 
+   "fieldtype": "Small Text", 
+   "label": "Description HTML", 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "description": "Generates HTML to include selected image in the description",
-   "fieldname": "add_image",
-   "fieldtype": "Button",
-   "label": "Generate Description HTML",
-   "permlevel": 0,
+   "description": "Generates HTML to include selected image in the description", 
+   "fieldname": "add_image", 
+   "fieldtype": "Button", 
+   "label": "Generate Description HTML", 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "fieldname": "inventory",
-   "fieldtype": "Section Break",
-   "label": "Inventory",
-   "oldfieldtype": "Section Break",
-   "options": "icon-truck",
-   "permlevel": 0,
+   "fieldname": "variants", 
+   "fieldtype": "Section Break", 
+   "label": "Variants", 
+   "permlevel": 0, 
+   "precision": ""
+  }, 
+  {
+   "description": "Automatically set. If this item has variants, then it cannot be selected in sales orders etc.", 
+   "fieldname": "has_variants", 
+   "fieldtype": "Check", 
+   "label": "Has Variants", 
+   "options": "", 
+   "permlevel": 0, 
+   "precision": "", 
    "read_only": 0
-  },
+  }, 
   {
-   "default": "Yes",
-   "description": "Select \"Yes\" if you are maintaining stock of this item in your Inventory.",
-   "fieldname": "is_stock_item",
-   "fieldtype": "Select",
-   "label": "Is Stock Item",
-   "oldfieldname": "is_stock_item",
-   "oldfieldtype": "Select",
-   "options": "Yes\nNo",
-   "permlevel": 0,
-   "read_only": 0,
+   "depends_on": "has_variants", 
+   "description": "A new variant (Item) will be created for each attribute value combination", 
+   "fieldname": "item_variants", 
+   "fieldtype": "Table", 
+   "label": "Item Variants", 
+   "options": "Item Variant", 
+   "permlevel": 0, 
+   "precision": ""
+  }, 
+  {
+   "fieldname": "inventory", 
+   "fieldtype": "Section Break", 
+   "label": "Inventory", 
+   "oldfieldtype": "Section Break", 
+   "options": "icon-truck", 
+   "permlevel": 0, 
+   "read_only": 0
+  }, 
+  {
+   "default": "Yes", 
+   "description": "Select \"Yes\" if you are maintaining stock of this item in your Inventory.", 
+   "fieldname": "is_stock_item", 
+   "fieldtype": "Select", 
+   "label": "Is Stock Item", 
+   "oldfieldname": "is_stock_item", 
+   "oldfieldtype": "Select", 
+   "options": "Yes\nNo", 
+   "permlevel": 0, 
+   "read_only": 0, 
    "reqd": 1
-  },
+  }, 
   {
-   "depends_on": "",
-   "description": "Mandatory if Stock Item is \"Yes\". Also the default warehouse where reserved quantity is set from Sales Order.",
-   "fieldname": "default_warehouse",
-   "fieldtype": "Link",
-   "ignore_user_permissions": 1,
-   "label": "Default Warehouse",
-   "oldfieldname": "default_warehouse",
-   "oldfieldtype": "Link",
-   "options": "Warehouse",
-   "permlevel": 0,
+   "depends_on": "", 
+   "description": "Mandatory if Stock Item is \"Yes\". Also the default warehouse where reserved quantity is set from Sales Order.", 
+   "fieldname": "default_warehouse", 
+   "fieldtype": "Link", 
+   "ignore_user_permissions": 1, 
+   "label": "Default Warehouse", 
+   "oldfieldname": "default_warehouse", 
+   "oldfieldtype": "Link", 
+   "options": "Warehouse", 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "depends_on": "eval:doc.is_stock_item==\"Yes\"",
-   "description": "Percentage variation in quantity to be allowed while receiving or delivering this item.",
-   "fieldname": "tolerance",
-   "fieldtype": "Float",
-   "label": "Allowance Percent",
-   "oldfieldname": "tolerance",
-   "oldfieldtype": "Currency",
-   "permlevel": 0,
+   "depends_on": "eval:doc.is_stock_item==\"Yes\"", 
+   "description": "Percentage variation in quantity to be allowed while receiving or delivering this item.", 
+   "fieldname": "tolerance", 
+   "fieldtype": "Float", 
+   "label": "Allowance Percent", 
+   "oldfieldname": "tolerance", 
+   "oldfieldtype": "Currency", 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "depends_on": "eval:doc.is_stock_item==\"Yes\"",
-   "fieldname": "valuation_method",
-   "fieldtype": "Select",
-   "label": "Valuation Method",
-   "options": "\nFIFO\nMoving Average",
-   "permlevel": 0,
+   "depends_on": "eval:doc.is_stock_item==\"Yes\"", 
+   "fieldname": "valuation_method", 
+   "fieldtype": "Select", 
+   "label": "Valuation Method", 
+   "options": "\nFIFO\nMoving Average", 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "default": "0.00",
-   "depends_on": "eval:doc.is_stock_item==\"Yes\"",
-   "description": "You can enter the minimum quantity of this item to be ordered.",
-   "fieldname": "min_order_qty",
-   "fieldtype": "Float",
-   "hidden": 0,
-   "label": "Minimum Order Qty",
-   "oldfieldname": "min_order_qty",
-   "oldfieldtype": "Currency",
-   "permlevel": 0,
+   "default": "0.00", 
+   "depends_on": "eval:doc.is_stock_item==\"Yes\"", 
+   "description": "You can enter the minimum quantity of this item to be ordered.", 
+   "fieldname": "min_order_qty", 
+   "fieldtype": "Float", 
+   "hidden": 0, 
+   "label": "Minimum Order Qty", 
+   "oldfieldname": "min_order_qty", 
+   "oldfieldtype": "Currency", 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "depends_on": "eval:doc.is_stock_item==\"Yes\"",
-   "fieldname": "column_break1",
-   "fieldtype": "Column Break",
-   "oldfieldtype": "Column Break",
-   "permlevel": 0,
-   "read_only": 0,
+   "depends_on": "eval:doc.is_stock_item==\"Yes\"", 
+   "fieldname": "column_break1", 
+   "fieldtype": "Column Break", 
+   "oldfieldtype": "Column Break", 
+   "permlevel": 0, 
+   "read_only": 0, 
    "width": "50%"
-  },
+  }, 
   {
-   "default": "No",
-   "depends_on": "eval:doc.is_stock_item==\"Yes\"",
-   "description": "Select \"Yes\" if this item is used for some internal purpose in your company.",
-   "fieldname": "is_asset_item",
-   "fieldtype": "Select",
-   "label": "Is Fixed Asset Item",
-   "oldfieldname": "is_asset_item",
-   "oldfieldtype": "Select",
-   "options": "Yes\nNo",
-   "permlevel": 0,
-   "read_only": 0,
+   "default": "No", 
+   "depends_on": "eval:doc.is_stock_item==\"Yes\"", 
+   "description": "Select \"Yes\" if this item is used for some internal purpose in your company.", 
+   "fieldname": "is_asset_item", 
+   "fieldtype": "Select", 
+   "label": "Is Fixed Asset Item", 
+   "oldfieldname": "is_asset_item", 
+   "oldfieldtype": "Select", 
+   "options": "Yes\nNo", 
+   "permlevel": 0, 
+   "read_only": 0, 
    "reqd": 1
-  },
+  }, 
   {
-   "default": "No",
-   "depends_on": "eval:doc.is_stock_item==\"Yes\"",
-   "fieldname": "has_batch_no",
-   "fieldtype": "Select",
-   "label": "Has Batch No",
-   "oldfieldname": "has_batch_no",
-   "oldfieldtype": "Select",
-   "options": "Yes\nNo",
-   "permlevel": 0,
-   "read_only": 0,
+   "default": "No", 
+   "depends_on": "eval:doc.is_stock_item==\"Yes\"", 
+   "fieldname": "has_batch_no", 
+   "fieldtype": "Select", 
+   "label": "Has Batch No", 
+   "oldfieldname": "has_batch_no", 
+   "oldfieldtype": "Select", 
+   "options": "Yes\nNo", 
+   "permlevel": 0, 
+   "read_only": 0, 
    "reqd": 1
-  },
+  }, 
   {
-   "default": "No",
-   "depends_on": "eval:doc.is_stock_item==\"Yes\"",
-   "description": "Selecting \"Yes\" will give a unique identity to each entity of this item which can be viewed in the Serial No master.",
-   "fieldname": "has_serial_no",
-   "fieldtype": "Select",
-   "in_filter": 1,
-   "label": "Has Serial No",
-   "oldfieldname": "has_serial_no",
-   "oldfieldtype": "Select",
-   "options": "Yes\nNo",
-   "permlevel": 0,
-   "read_only": 0,
+   "default": "No", 
+   "depends_on": "eval:doc.is_stock_item==\"Yes\"", 
+   "description": "Selecting \"Yes\" will give a unique identity to each entity of this item which can be viewed in the Serial No master.", 
+   "fieldname": "has_serial_no", 
+   "fieldtype": "Select", 
+   "in_filter": 1, 
+   "label": "Has Serial No", 
+   "oldfieldname": "has_serial_no", 
+   "oldfieldtype": "Select", 
+   "options": "Yes\nNo", 
+   "permlevel": 0, 
+   "read_only": 0, 
    "reqd": 1
-  },
+  }, 
   {
-   "depends_on": "eval: doc.has_serial_no===\"Yes\"",
-   "description": "Example: ABCD.#####\nIf series is set and Serial No is not mentioned in transactions, then automatic serial number will be created based on this series. If you always want to explicitly mention Serial Nos for this item. leave this blank.",
-   "fieldname": "serial_no_series",
-   "fieldtype": "Data",
-   "label": "Serial Number Series",
-   "no_copy": 1,
+   "depends_on": "eval: doc.has_serial_no===\"Yes\"", 
+   "description": "Example: ABCD.#####\nIf series is set and Serial No is not mentioned in transactions, then automatic serial number will be created based on this series. If you always want to explicitly mention Serial Nos for this item. leave this blank.", 
+   "fieldname": "serial_no_series", 
+   "fieldtype": "Data", 
+   "label": "Serial Number Series", 
+   "no_copy": 0, 
    "permlevel": 0
-  },
+  }, 
   {
-   "depends_on": "eval:doc.is_stock_item==\"Yes\"",
-   "fieldname": "warranty_period",
-   "fieldtype": "Data",
-   "label": "Warranty Period (in days)",
-   "oldfieldname": "warranty_period",
-   "oldfieldtype": "Data",
-   "permlevel": 0,
+   "depends_on": "eval:doc.is_stock_item==\"Yes\"", 
+   "fieldname": "warranty_period", 
+   "fieldtype": "Data", 
+   "label": "Warranty Period (in days)", 
+   "oldfieldname": "warranty_period", 
+   "oldfieldtype": "Data", 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "depends_on": "eval:doc.is_stock_item==\"Yes\"",
-   "fieldname": "end_of_life",
-   "fieldtype": "Date",
-   "label": "End of Life",
-   "oldfieldname": "end_of_life",
-   "oldfieldtype": "Date",
-   "permlevel": 0,
+   "depends_on": "eval:doc.is_stock_item==\"Yes\"", 
+   "fieldname": "end_of_life", 
+   "fieldtype": "Date", 
+   "label": "End of Life", 
+   "oldfieldname": "end_of_life", 
+   "oldfieldtype": "Date", 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "depends_on": "eval:doc.is_stock_item==\"Yes\"",
-   "description": "Net Weight of each Item",
-   "fieldname": "net_weight",
-   "fieldtype": "Float",
-   "label": "Net Weight",
-   "permlevel": 0,
+   "depends_on": "eval:doc.is_stock_item==\"Yes\"", 
+   "description": "Net Weight of each Item", 
+   "fieldname": "net_weight", 
+   "fieldtype": "Float", 
+   "label": "Net Weight", 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "depends_on": "eval:doc.is_stock_item==\"Yes\"",
-   "fieldname": "weight_uom",
-   "fieldtype": "Link",
-   "ignore_user_permissions": 1,
-   "label": "Weight UOM",
-   "options": "UOM",
-   "permlevel": 0,
+   "depends_on": "eval:doc.is_stock_item==\"Yes\"", 
+   "fieldname": "weight_uom", 
+   "fieldtype": "Link", 
+   "ignore_user_permissions": 1, 
+   "label": "Weight UOM", 
+   "options": "UOM", 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "description": "Auto-raise Material Request if quantity goes below re-order level in a warehouse",
-   "fieldname": "reorder_section",
-   "fieldtype": "Section Break",
-   "label": "Re-order",
-   "options": "icon-rss",
-   "permlevel": 0,
+   "description": "Auto-raise Material Request if quantity goes below re-order level in a warehouse", 
+   "fieldname": "reorder_section", 
+   "fieldtype": "Section Break", 
+   "label": "Re-order", 
+   "options": "icon-rss", 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "depends_on": "eval:doc.is_stock_item==\"Yes\"",
-   "fieldname": "re_order_level",
-   "fieldtype": "Float",
-   "label": "Re-Order Level",
-   "oldfieldname": "re_order_level",
-   "oldfieldtype": "Currency",
-   "permlevel": 0,
+   "depends_on": "eval:doc.is_stock_item==\"Yes\"", 
+   "fieldname": "re_order_level", 
+   "fieldtype": "Float", 
+   "label": "Re-Order Level", 
+   "oldfieldname": "re_order_level", 
+   "oldfieldtype": "Currency", 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "depends_on": "eval:doc.is_stock_item==\"Yes\"",
-   "fieldname": "re_order_qty",
-   "fieldtype": "Float",
-   "label": "Re-Order Qty",
-   "permlevel": 0,
+   "depends_on": "eval:doc.is_stock_item==\"Yes\"", 
+   "fieldname": "re_order_qty", 
+   "fieldtype": "Float", 
+   "label": "Re-Order Qty", 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "fieldname": "section_break_31",
-   "fieldtype": "Section Break",
-   "permlevel": 0,
+   "fieldname": "section_break_31", 
+   "fieldtype": "Section Break", 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "fieldname": "item_reorder",
-   "fieldtype": "Table",
-   "label": "Warehouse-wise Item Reorder",
-   "options": "Item Reorder",
-   "permlevel": 0,
+   "description": "Will also apply for variants unless overrridden", 
+   "fieldname": "item_reorder", 
+   "fieldtype": "Table", 
+   "label": "Warehouse-wise Item Reorder", 
+   "options": "Item Reorder", 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "fieldname": "purchase_details",
-   "fieldtype": "Section Break",
-   "label": "Purchase Details",
-   "oldfieldtype": "Section Break",
-   "options": "icon-shopping-cart",
-   "permlevel": 0,
+   "fieldname": "purchase_details", 
+   "fieldtype": "Section Break", 
+   "label": "Purchase Details", 
+   "oldfieldtype": "Section Break", 
+   "options": "icon-shopping-cart", 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "default": "Yes",
-   "description": "Selecting \"Yes\" will allow this item to appear in Purchase Order , Purchase Receipt.",
-   "fieldname": "is_purchase_item",
-   "fieldtype": "Select",
-   "label": "Is Purchase Item",
-   "oldfieldname": "is_purchase_item",
-   "oldfieldtype": "Select",
-   "options": "Yes\nNo",
-   "permlevel": 0,
-   "read_only": 0,
+   "default": "Yes", 
+   "description": "Selecting \"Yes\" will allow this item to appear in Purchase Order , Purchase Receipt.", 
+   "fieldname": "is_purchase_item", 
+   "fieldtype": "Select", 
+   "label": "Is Purchase Item", 
+   "oldfieldname": "is_purchase_item", 
+   "oldfieldtype": "Select", 
+   "options": "Yes\nNo", 
+   "permlevel": 0, 
+   "read_only": 0, 
    "reqd": 1
-  },
+  }, 
   {
-   "fieldname": "default_supplier",
-   "fieldtype": "Link",
-   "ignore_user_permissions": 1,
-   "label": "Default Supplier",
-   "options": "Supplier",
+   "fieldname": "default_supplier", 
+   "fieldtype": "Link", 
+   "ignore_user_permissions": 1, 
+   "label": "Default Supplier", 
+   "options": "Supplier", 
    "permlevel": 0
-  },
+  }, 
   {
-   "depends_on": "eval:doc.is_purchase_item==\"Yes\"",
-   "description": "Lead Time days is number of days by which this item is expected in your warehouse. This days is fetched in Material Request when you select this item.",
-   "fieldname": "lead_time_days",
-   "fieldtype": "Int",
-   "label": "Lead Time Days",
-   "no_copy": 1,
-   "oldfieldname": "lead_time_days",
-   "oldfieldtype": "Int",
-   "permlevel": 0,
+   "depends_on": "eval:doc.is_purchase_item==\"Yes\"", 
+   "description": "Lead Time days is number of days by which this item is expected in your warehouse. This days is fetched in Material Request when you select this item.", 
+   "fieldname": "lead_time_days", 
+   "fieldtype": "Int", 
+   "label": "Lead Time Days", 
+   "no_copy": 0, 
+   "oldfieldname": "lead_time_days", 
+   "oldfieldtype": "Int", 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "depends_on": "eval:doc.is_purchase_item==\"Yes\"",
-   "description": "Default Purchase Account in which cost of the item will be debited.",
-   "fieldname": "expense_account",
-   "fieldtype": "Link",
-   "ignore_user_permissions": 1,
-   "label": "Default Expense Account",
-   "oldfieldname": "purchase_account",
-   "oldfieldtype": "Link",
-   "options": "Account",
-   "permlevel": 0,
+   "depends_on": "eval:doc.is_purchase_item==\"Yes\"", 
+   "description": "Default Purchase Account in which cost of the item will be debited.", 
+   "fieldname": "expense_account", 
+   "fieldtype": "Link", 
+   "ignore_user_permissions": 1, 
+   "label": "Default Expense Account", 
+   "oldfieldname": "purchase_account", 
+   "oldfieldtype": "Link", 
+   "options": "Account", 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "depends_on": "eval:doc.is_purchase_item==\"Yes\"",
-   "description": "",
-   "fieldname": "buying_cost_center",
-   "fieldtype": "Link",
-   "ignore_user_permissions": 1,
-   "label": "Default Buying Cost Center",
-   "oldfieldname": "cost_center",
-   "oldfieldtype": "Link",
-   "options": "Cost Center",
-   "permlevel": 0,
+   "depends_on": "eval:doc.is_purchase_item==\"Yes\"", 
+   "description": "", 
+   "fieldname": "buying_cost_center", 
+   "fieldtype": "Link", 
+   "ignore_user_permissions": 1, 
+   "label": "Default Buying Cost Center", 
+   "oldfieldname": "cost_center", 
+   "oldfieldtype": "Link", 
+   "options": "Cost Center", 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "depends_on": "eval:doc.is_purchase_item==\"Yes\"",
-   "fieldname": "last_purchase_rate",
-   "fieldtype": "Float",
-   "label": "Last Purchase Rate",
-   "no_copy": 1,
-   "oldfieldname": "last_purchase_rate",
-   "oldfieldtype": "Currency",
-   "permlevel": 0,
+   "depends_on": "eval:doc.is_purchase_item==\"Yes\"", 
+   "fieldname": "last_purchase_rate", 
+   "fieldtype": "Float", 
+   "label": "Last Purchase Rate", 
+   "no_copy": 1, 
+   "oldfieldname": "last_purchase_rate", 
+   "oldfieldtype": "Currency", 
+   "permlevel": 0, 
    "read_only": 1
-  },
+  }, 
   {
-   "depends_on": "eval:doc.is_purchase_item==\"Yes\"",
-   "fieldname": "column_break2",
-   "fieldtype": "Column Break",
-   "oldfieldtype": "Column Break",
-   "permlevel": 0,
-   "read_only": 0,
+   "depends_on": "eval:doc.is_purchase_item==\"Yes\"", 
+   "fieldname": "column_break2", 
+   "fieldtype": "Column Break", 
+   "oldfieldtype": "Column Break", 
+   "permlevel": 0, 
+   "read_only": 0, 
    "width": "50%"
-  },
+  }, 
   {
-   "depends_on": "eval:doc.is_purchase_item==\"Yes\"",
-   "fieldname": "uom_conversion_details",
-   "fieldtype": "Table",
-   "label": "UOM Conversion Details",
-   "no_copy": 1,
-   "oldfieldname": "uom_conversion_details",
-   "oldfieldtype": "Table",
-   "options": "UOM Conversion Detail",
-   "permlevel": 0,
+   "depends_on": "eval:doc.is_purchase_item==\"Yes\"", 
+   "description": "Will also apply for variants", 
+   "fieldname": "uom_conversion_details", 
+   "fieldtype": "Table", 
+   "label": "UOM Conversion Details", 
+   "no_copy": 1, 
+   "oldfieldname": "uom_conversion_details", 
+   "oldfieldtype": "Table", 
+   "options": "UOM Conversion Detail", 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "depends_on": "eval:doc.is_purchase_item==\"Yes\"",
-   "fieldname": "manufacturer",
-   "fieldtype": "Data",
-   "label": "Manufacturer",
-   "permlevel": 0,
+   "depends_on": "eval:doc.is_purchase_item==\"Yes\"", 
+   "fieldname": "manufacturer", 
+   "fieldtype": "Data", 
+   "label": "Manufacturer", 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "depends_on": "eval:doc.is_purchase_item==\"Yes\"",
-   "fieldname": "manufacturer_part_no",
-   "fieldtype": "Data",
-   "label": "Manufacturer Part Number",
-   "permlevel": 0,
+   "depends_on": "eval:doc.is_purchase_item==\"Yes\"", 
+   "fieldname": "manufacturer_part_no", 
+   "fieldtype": "Data", 
+   "label": "Manufacturer Part Number", 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "depends_on": "eval:doc.is_purchase_item==\"Yes\"",
-   "fieldname": "item_supplier_details",
-   "fieldtype": "Table",
-   "label": "Item Supplier Details",
-   "options": "Item Supplier",
-   "permlevel": 0,
+   "depends_on": "eval:doc.is_purchase_item==\"Yes\"", 
+   "fieldname": "item_supplier_details", 
+   "fieldtype": "Table", 
+   "label": "Item Supplier Details", 
+   "options": "Item Supplier", 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "fieldname": "sales_details",
-   "fieldtype": "Section Break",
-   "label": "Sales Details",
-   "oldfieldtype": "Section Break",
-   "options": "icon-tag",
-   "permlevel": 0,
+   "fieldname": "sales_details", 
+   "fieldtype": "Section Break", 
+   "label": "Sales Details", 
+   "oldfieldtype": "Section Break", 
+   "options": "icon-tag", 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "default": "Yes",
-   "description": "Selecting \"Yes\" will allow this item to figure in Sales Order, Delivery Note",
-   "fieldname": "is_sales_item",
-   "fieldtype": "Select",
-   "in_filter": 1,
-   "label": "Is Sales Item",
-   "oldfieldname": "is_sales_item",
-   "oldfieldtype": "Select",
-   "options": "Yes\nNo",
-   "permlevel": 0,
-   "read_only": 0,
+   "default": "Yes", 
+   "description": "Selecting \"Yes\" will allow this item to figure in Sales Order, Delivery Note", 
+   "fieldname": "is_sales_item", 
+   "fieldtype": "Select", 
+   "in_filter": 1, 
+   "label": "Is Sales Item", 
+   "oldfieldname": "is_sales_item", 
+   "oldfieldtype": "Select", 
+   "options": "Yes\nNo", 
+   "permlevel": 0, 
+   "read_only": 0, 
    "reqd": 1
-  },
+  }, 
   {
-   "default": "No",
-   "depends_on": "eval:doc.is_sales_item==\"Yes\"",
-   "description": "Select \"Yes\" if this item represents some work like training, designing, consulting etc.",
-   "fieldname": "is_service_item",
-   "fieldtype": "Select",
-   "in_filter": 1,
-   "label": "Is Service Item",
-   "oldfieldname": "is_service_item",
-   "oldfieldtype": "Select",
-   "options": "Yes\nNo",
-   "permlevel": 0,
-   "read_only": 0,
+   "default": "No", 
+   "depends_on": "eval:doc.is_sales_item==\"Yes\"", 
+   "description": "Select \"Yes\" if this item represents some work like training, designing, consulting etc.", 
+   "fieldname": "is_service_item", 
+   "fieldtype": "Select", 
+   "in_filter": 1, 
+   "label": "Is Service Item", 
+   "oldfieldname": "is_service_item", 
+   "oldfieldtype": "Select", 
+   "options": "Yes\nNo", 
+   "permlevel": 0, 
+   "read_only": 0, 
    "reqd": 1
-  },
+  }, 
   {
-   "depends_on": "eval:doc.is_sales_item==\"Yes\"",
-   "fieldname": "max_discount",
-   "fieldtype": "Float",
-   "label": "Max Discount (%)",
-   "oldfieldname": "max_discount",
-   "oldfieldtype": "Currency",
-   "permlevel": 0,
+   "depends_on": "eval:doc.is_sales_item==\"Yes\"", 
+   "fieldname": "max_discount", 
+   "fieldtype": "Float", 
+   "label": "Max Discount (%)", 
+   "oldfieldname": "max_discount", 
+   "oldfieldtype": "Currency", 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "depends_on": "eval:doc.is_sales_item==\"Yes\"",
-   "fieldname": "income_account",
-   "fieldtype": "Link",
-   "ignore_user_permissions": 1,
-   "label": "Default Income Account",
-   "options": "Account",
-   "permlevel": 0,
+   "depends_on": "eval:doc.is_sales_item==\"Yes\"", 
+   "fieldname": "income_account", 
+   "fieldtype": "Link", 
+   "ignore_user_permissions": 1, 
+   "label": "Default Income Account", 
+   "options": "Account", 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "depends_on": "eval:doc.is_sales_item==\"Yes\"",
-   "fieldname": "selling_cost_center",
-   "fieldtype": "Link",
-   "ignore_user_permissions": 1,
-   "label": "Default Selling Cost Center",
-   "options": "Cost Center",
-   "permlevel": 0,
+   "depends_on": "eval:doc.is_sales_item==\"Yes\"", 
+   "fieldname": "selling_cost_center", 
+   "fieldtype": "Link", 
+   "ignore_user_permissions": 1, 
+   "label": "Default Selling Cost Center", 
+   "options": "Cost Center", 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "depends_on": "eval:doc.is_sales_item==\"Yes\"",
-   "fieldname": "column_break3",
-   "fieldtype": "Column Break",
-   "oldfieldtype": "Column Break",
-   "permlevel": 0,
-   "read_only": 0,
+   "depends_on": "eval:doc.is_sales_item==\"Yes\"", 
+   "fieldname": "column_break3", 
+   "fieldtype": "Column Break", 
+   "oldfieldtype": "Column Break", 
+   "permlevel": 0, 
+   "read_only": 0, 
    "width": "50%"
-  },
+  }, 
   {
-   "depends_on": "eval:doc.is_sales_item==\"Yes\"",
-   "description": "For the convenience of customers, these codes can be used in print formats like Invoices and Delivery Notes",
-   "fieldname": "item_customer_details",
-   "fieldtype": "Table",
-   "label": "Customer Codes",
-   "options": "Item Customer Detail",
-   "permlevel": 0,
+   "depends_on": "eval:doc.is_sales_item==\"Yes\"", 
+   "description": "For the convenience of customers, these codes can be used in print formats like Invoices and Delivery Notes", 
+   "fieldname": "item_customer_details", 
+   "fieldtype": "Table", 
+   "label": "Customer Codes", 
+   "options": "Item Customer Detail", 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "fieldname": "item_tax_section_break",
-   "fieldtype": "Section Break",
-   "label": "Item Tax",
-   "oldfieldtype": "Section Break",
-   "options": "icon-money",
-   "permlevel": 0,
+   "fieldname": "item_tax_section_break", 
+   "fieldtype": "Section Break", 
+   "label": "Item Tax", 
+   "oldfieldtype": "Section Break", 
+   "options": "icon-money", 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "fieldname": "item_tax",
-   "fieldtype": "Table",
-   "label": "Item Tax1",
-   "oldfieldname": "item_tax",
-   "oldfieldtype": "Table",
-   "options": "Item Tax",
-   "permlevel": 0,
+   "description": "Will also apply for variants", 
+   "fieldname": "item_tax", 
+   "fieldtype": "Table", 
+   "label": "Item Tax1", 
+   "oldfieldname": "item_tax", 
+   "oldfieldtype": "Table", 
+   "options": "Item Tax", 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "fieldname": "inspection_criteria",
-   "fieldtype": "Section Break",
-   "label": "Inspection Criteria",
-   "oldfieldtype": "Section Break",
-   "options": "icon-search",
-   "permlevel": 0,
+   "fieldname": "inspection_criteria", 
+   "fieldtype": "Section Break", 
+   "label": "Inspection Criteria", 
+   "oldfieldtype": "Section Break", 
+   "options": "icon-search", 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "default": "No",
-   "fieldname": "inspection_required",
-   "fieldtype": "Select",
-   "label": "Inspection Required",
-   "no_copy": 0,
-   "oldfieldname": "inspection_required",
-   "oldfieldtype": "Select",
-   "options": "\nYes\nNo",
-   "permlevel": 0,
-   "read_only": 0,
+   "default": "No", 
+   "fieldname": "inspection_required", 
+   "fieldtype": "Select", 
+   "label": "Inspection Required", 
+   "no_copy": 0, 
+   "oldfieldname": "inspection_required", 
+   "oldfieldtype": "Select", 
+   "options": "\nYes\nNo", 
+   "permlevel": 0, 
+   "read_only": 0, 
    "reqd": 1
-  },
+  }, 
   {
-   "depends_on": "eval:doc.inspection_required==\"Yes\"",
-   "description": "Quality Inspection Parameters",
-   "fieldname": "item_specification_details",
-   "fieldtype": "Table",
-   "label": "Item Quality Inspection Parameter",
-   "oldfieldname": "item_specification_details",
-   "oldfieldtype": "Table",
-   "options": "Item Quality Inspection Parameter",
-   "permlevel": 0,
+   "depends_on": "eval:doc.inspection_required==\"Yes\"", 
+   "description": "Will also apply to variants", 
+   "fieldname": "item_specification_details", 
+   "fieldtype": "Table", 
+   "label": "Item Quality Inspection Parameter", 
+   "oldfieldname": "item_specification_details", 
+   "oldfieldtype": "Table", 
+   "options": "Item Quality Inspection Parameter", 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "fieldname": "manufacturing",
-   "fieldtype": "Section Break",
-   "label": "Manufacturing",
-   "oldfieldtype": "Section Break",
-   "options": "icon-cogs",
-   "permlevel": 0,
+   "fieldname": "manufacturing", 
+   "fieldtype": "Section Break", 
+   "label": "Manufacturing", 
+   "oldfieldtype": "Section Break", 
+   "options": "icon-cogs", 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "default": "No",
-   "description": "Selecting \"Yes\" will allow you to create Bill of Material showing raw material and operational costs incurred to manufacture this item.",
-   "fieldname": "is_manufactured_item",
-   "fieldtype": "Select",
-   "label": "Allow Bill of Materials",
-   "oldfieldname": "is_manufactured_item",
-   "oldfieldtype": "Select",
-   "options": "Yes\nNo",
-   "permlevel": 0,
-   "read_only": 0,
+   "default": "No", 
+   "description": "Selecting \"Yes\" will allow you to create Bill of Material showing raw material and operational costs incurred to manufacture this item.", 
+   "fieldname": "is_manufactured_item", 
+   "fieldtype": "Select", 
+   "label": "Allow Bill of Materials", 
+   "oldfieldname": "is_manufactured_item", 
+   "oldfieldtype": "Select", 
+   "options": "Yes\nNo", 
+   "permlevel": 0, 
+   "read_only": 0, 
    "reqd": 1
-  },
+  }, 
   {
-   "depends_on": "eval:doc.is_manufactured_item==\"Yes\"",
-   "fieldname": "default_bom",
-   "fieldtype": "Link",
-   "ignore_user_permissions": 1,
-   "label": "Default BOM",
-   "no_copy": 1,
-   "oldfieldname": "default_bom",
-   "oldfieldtype": "Link",
-   "options": "BOM",
-   "permlevel": 0,
+   "depends_on": "eval:doc.is_manufactured_item==\"Yes\"", 
+   "fieldname": "default_bom", 
+   "fieldtype": "Link", 
+   "ignore_user_permissions": 1, 
+   "label": "Default BOM", 
+   "no_copy": 1, 
+   "oldfieldname": "default_bom", 
+   "oldfieldtype": "Link", 
+   "options": "BOM", 
+   "permlevel": 0, 
    "read_only": 1
-  },
+  }, 
   {
-   "default": "No",
-   "depends_on": "eval:doc.is_manufactured_item==\"Yes\"",
-   "description": "Selecting \"Yes\" will allow you to make a Production Order for this item.",
-   "fieldname": "is_pro_applicable",
-   "fieldtype": "Select",
-   "label": "Allow Production Order",
-   "oldfieldname": "is_pro_applicable",
-   "oldfieldtype": "Select",
-   "options": "Yes\nNo",
-   "permlevel": 0,
-   "read_only": 0,
+   "default": "No", 
+   "depends_on": "eval:doc.is_manufactured_item==\"Yes\"", 
+   "description": "Selecting \"Yes\" will allow you to make a Production Order for this item.", 
+   "fieldname": "is_pro_applicable", 
+   "fieldtype": "Select", 
+   "label": "Allow Production Order", 
+   "oldfieldname": "is_pro_applicable", 
+   "oldfieldtype": "Select", 
+   "options": "Yes\nNo", 
+   "permlevel": 0, 
+   "read_only": 0, 
    "reqd": 1
-  },
+  }, 
   {
-   "default": "No",
-   "description": "Select \"Yes\" if you supply raw materials to your supplier to manufacture this item.",
-   "fieldname": "is_sub_contracted_item",
-   "fieldtype": "Select",
-   "label": "Is Sub Contracted Item",
-   "oldfieldname": "is_sub_contracted_item",
-   "oldfieldtype": "Select",
-   "options": "Yes\nNo",
-   "permlevel": 0,
-   "read_only": 0,
+   "default": "No", 
+   "description": "Select \"Yes\" if you supply raw materials to your supplier to manufacture this item.", 
+   "fieldname": "is_sub_contracted_item", 
+   "fieldtype": "Select", 
+   "label": "Is Sub Contracted Item", 
+   "oldfieldname": "is_sub_contracted_item", 
+   "oldfieldtype": "Select", 
+   "options": "Yes\nNo", 
+   "permlevel": 0, 
+   "read_only": 0, 
    "reqd": 1
-  },
+  }, 
   {
-   "fieldname": "customer_code",
-   "fieldtype": "Data",
-   "hidden": 1,
-   "in_filter": 1,
-   "label": "Customer Code",
-   "no_copy": 1,
-   "permlevel": 0,
-   "print_hide": 1,
+   "fieldname": "customer_code", 
+   "fieldtype": "Data", 
+   "hidden": 1, 
+   "in_filter": 1, 
+   "label": "Customer Code", 
+   "no_copy": 1, 
+   "permlevel": 0, 
+   "print_hide": 1, 
    "read_only": 0
-  },
+  }, 
   {
-   "fieldname": "website_section",
-   "fieldtype": "Section Break",
-   "label": "Website",
-   "options": "icon-globe",
-   "permlevel": 0,
+   "fieldname": "website_section", 
+   "fieldtype": "Section Break", 
+   "label": "Website", 
+   "options": "icon-globe", 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "fieldname": "show_in_website",
-   "fieldtype": "Check",
-   "label": "Show in Website",
-   "permlevel": 0,
+   "fieldname": "show_in_website", 
+   "fieldtype": "Check", 
+   "label": "Show in Website", 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "depends_on": "show_in_website",
-   "description": "website page link",
-   "fieldname": "page_name",
-   "fieldtype": "Data",
-   "label": "Page Name",
-   "no_copy": 1,
-   "permlevel": 0,
+   "depends_on": "show_in_website", 
+   "description": "website page link", 
+   "fieldname": "page_name", 
+   "fieldtype": "Data", 
+   "label": "Page Name", 
+   "no_copy": 1, 
+   "permlevel": 0, 
    "read_only": 1
-  },
+  }, 
   {
-   "depends_on": "show_in_website",
-   "description": "Products will be sorted by weight-age in default searches. More the weight-age, higher the product will appear in the list.",
-   "fieldname": "weightage",
-   "fieldtype": "Int",
-   "label": "Weightage",
-   "permlevel": 0,
-   "read_only": 0,
+   "depends_on": "show_in_website", 
+   "description": "Products will be sorted by weight-age in default searches. More the weight-age, higher the product will appear in the list.", 
+   "fieldname": "weightage", 
+   "fieldtype": "Int", 
+   "label": "Weightage", 
+   "permlevel": 0, 
+   "read_only": 0, 
    "search_index": 1
-  },
+  }, 
   {
-   "depends_on": "show_in_website",
-   "description": "Show a slideshow at the top of the page",
-   "fieldname": "slideshow",
-   "fieldtype": "Link",
-   "label": "Slideshow",
-   "options": "Website Slideshow",
-   "permlevel": 0,
+   "depends_on": "show_in_website", 
+   "description": "Show a slideshow at the top of the page", 
+   "fieldname": "slideshow", 
+   "fieldtype": "Link", 
+   "label": "Slideshow", 
+   "options": "Website Slideshow", 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "depends_on": "show_in_website",
-   "description": "Item Image (if not slideshow)",
-   "fieldname": "website_image",
-   "fieldtype": "Select",
-   "label": "Image",
-   "options": "attach_files:",
-   "permlevel": 0,
+   "depends_on": "show_in_website", 
+   "description": "Item Image (if not slideshow)", 
+   "fieldname": "website_image", 
+   "fieldtype": "Select", 
+   "label": "Image", 
+   "options": "attach_files:", 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "fieldname": "cb72",
-   "fieldtype": "Column Break",
-   "permlevel": 0,
+   "fieldname": "cb72", 
+   "fieldtype": "Column Break", 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "depends_on": "show_in_website",
-   "description": "Show \"In Stock\" or \"Not in Stock\" based on stock available in this warehouse.",
-   "fieldname": "website_warehouse",
-   "fieldtype": "Link",
-   "ignore_user_permissions": 1,
-   "label": "Website Warehouse",
-   "options": "Warehouse",
-   "permlevel": 0,
+   "depends_on": "show_in_website", 
+   "description": "Show \"In Stock\" or \"Not in Stock\" based on stock available in this warehouse.", 
+   "fieldname": "website_warehouse", 
+   "fieldtype": "Link", 
+   "ignore_user_permissions": 1, 
+   "label": "Website Warehouse", 
+   "options": "Warehouse", 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "depends_on": "show_in_website",
-   "description": "List this Item in multiple groups on the website.",
-   "fieldname": "website_item_groups",
-   "fieldtype": "Table",
-   "label": "Website Item Groups",
-   "options": "Website Item Group",
-   "permlevel": 0,
+   "depends_on": "show_in_website", 
+   "description": "List this Item in multiple groups on the website.", 
+   "fieldname": "website_item_groups", 
+   "fieldtype": "Table", 
+   "label": "Website Item Groups", 
+   "options": "Website Item Group", 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "depends_on": "show_in_website",
-   "fieldname": "sb72",
-   "fieldtype": "Section Break",
-   "permlevel": 0,
+   "depends_on": "show_in_website", 
+   "fieldname": "sb72", 
+   "fieldtype": "Section Break", 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "depends_on": "show_in_website",
-   "fieldname": "copy_from_item_group",
-   "fieldtype": "Button",
-   "label": "Copy From Item Group",
-   "permlevel": 0,
+   "depends_on": "show_in_website", 
+   "fieldname": "copy_from_item_group", 
+   "fieldtype": "Button", 
+   "label": "Copy From Item Group", 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "depends_on": "show_in_website",
-   "fieldname": "item_website_specifications",
-   "fieldtype": "Table",
-   "label": "Item Website Specifications",
-   "options": "Item Website Specification",
-   "permlevel": 0,
+   "depends_on": "show_in_website", 
+   "fieldname": "item_website_specifications", 
+   "fieldtype": "Table", 
+   "label": "Item Website Specifications", 
+   "options": "Item Website Specification", 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "depends_on": "show_in_website",
-   "fieldname": "web_long_description",
-   "fieldtype": "Text Editor",
-   "label": "Website Description",
-   "permlevel": 0,
+   "depends_on": "show_in_website", 
+   "fieldname": "web_long_description", 
+   "fieldtype": "Text Editor", 
+   "label": "Website Description", 
+   "permlevel": 0, 
    "read_only": 0
-  },
+  }, 
   {
-   "fieldname": "parent_website_route",
-   "fieldtype": "Read Only",
-   "ignore_user_permissions": 1,
-   "label": "Parent Website Route",
-   "no_copy": 1,
-   "options": "",
+   "fieldname": "parent_website_route", 
+   "fieldtype": "Read Only", 
+   "ignore_user_permissions": 1, 
+   "label": "Parent Website Route", 
+   "no_copy": 1, 
+   "options": "", 
    "permlevel": 0
   }
- ],
- "icon": "icon-tag",
- "idx": 1,
- "max_attachments": 1,
- "modified": "2014-08-19 06:41:28.565607",
- "modified_by": "Administrator",
- "module": "Stock",
- "name": "Item",
- "owner": "Administrator",
+ ], 
+ "icon": "icon-tag", 
+ "idx": 1, 
+ "max_attachments": 1, 
+ "modified": "2014-10-07 05:25:19.921651", 
+ "modified_by": "Administrator", 
+ "module": "Stock", 
+ "name": "Item", 
+ "owner": "Administrator", 
  "permissions": [
   {
-   "create": 1,
-   "delete": 1,
-   "email": 1,
-   "import": 1,
-   "permlevel": 0,
-   "print": 1,
-   "read": 1,
-   "report": 1,
-   "role": "Material Master Manager",
-   "submit": 0,
+   "create": 1, 
+   "delete": 1, 
+   "email": 1, 
+   "import": 1, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Material Master Manager", 
+   "submit": 0, 
    "write": 1
-  },
+  }, 
   {
-   "amend": 0,
-   "create": 0,
-   "delete": 0,
-   "email": 1,
-   "permlevel": 0,
-   "print": 1,
-   "read": 1,
-   "report": 1,
-   "role": "Material Manager",
-   "submit": 0,
+   "amend": 0, 
+   "create": 0, 
+   "delete": 0, 
+   "email": 1, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Material Manager", 
+   "submit": 0, 
    "write": 0
-  },
+  }, 
   {
-   "amend": 0,
-   "apply_user_permissions": 1,
-   "create": 0,
-   "delete": 0,
-   "email": 1,
-   "permlevel": 0,
-   "print": 1,
-   "read": 1,
-   "report": 1,
-   "role": "Material User",
-   "submit": 0,
+   "amend": 0, 
+   "apply_user_permissions": 1, 
+   "create": 0, 
+   "delete": 0, 
+   "email": 1, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Material User", 
+   "submit": 0, 
    "write": 0
-  },
+  }, 
   {
-   "apply_user_permissions": 1,
-   "permlevel": 0,
-   "read": 1,
+   "apply_user_permissions": 1, 
+   "permlevel": 0, 
+   "read": 1, 
    "role": "Sales User"
-  },
+  }, 
   {
-   "apply_user_permissions": 1,
-   "permlevel": 0,
-   "read": 1,
+   "apply_user_permissions": 1, 
+   "permlevel": 0, 
+   "read": 1, 
    "role": "Purchase User"
-  },
+  }, 
   {
-   "apply_user_permissions": 1,
-   "permlevel": 0,
-   "read": 1,
+   "apply_user_permissions": 1, 
+   "permlevel": 0, 
+   "read": 1, 
    "role": "Maintenance User"
-  },
+  }, 
   {
-   "apply_user_permissions": 1,
-   "permlevel": 0,
-   "read": 1,
+   "apply_user_permissions": 1, 
+   "permlevel": 0, 
+   "read": 1, 
    "role": "Accounts User"
-  },
+  }, 
   {
-   "apply_user_permissions": 1,
-   "permlevel": 0,
-   "read": 1,
+   "apply_user_permissions": 1, 
+   "permlevel": 0, 
+   "read": 1, 
    "role": "Manufacturing User"
   }
- ],
+ ], 
  "search_fields": "item_name,description,item_group,customer_code"
-}
+}
\ No newline at end of file
diff --git a/erpnext/stock/doctype/item/item.py b/erpnext/stock/doctype/item/item.py
index b8a3190..cf46372 100644
--- a/erpnext/stock/doctype/item/item.py
+++ b/erpnext/stock/doctype/item/item.py
@@ -9,8 +9,11 @@
 from erpnext.setup.doctype.item_group.item_group import invalidate_cache_for, get_parent_item_groups
 from frappe.website.render import clear_cache
 from frappe.website.doctype.website_slideshow.website_slideshow import get_slideshow
+import copy
 
 class WarehouseNotSet(frappe.ValidationError): pass
+class DuplicateVariant(frappe.ValidationError): pass
+class ItemTemplateCannotHaveStock(frappe.ValidationError): pass
 
 class Item(WebsiteGenerator):
 	page_title_field = "item_name"
@@ -23,7 +26,7 @@
 		self.get("__onload").sle_exists = self.check_if_sle_exists()
 
 	def autoname(self):
-		if frappe.db.get_default("item_naming_by")=="Naming Series":
+		if frappe.db.get_default("item_naming_by")=="Naming Series" and not self.variant_of:
 			from frappe.model.naming import make_autoname
 			self.item_code = make_autoname(self.naming_series+'.#####')
 		elif not self.item_code:
@@ -39,6 +42,8 @@
 		if self.image and not self.website_image:
 			self.website_image = self.image
 
+		if self.variant_of:
+			self.copy_attributes_to_variant(frappe.get_doc("Item", self.variant_of), self)
 		self.check_warehouse_is_set_for_stock_item()
 		self.check_stock_uom_with_bin()
 		self.add_default_uom_in_conversion_factor_table()
@@ -50,6 +55,7 @@
 		self.validate_barcode()
 		self.cant_change()
 		self.validate_item_type_for_reorder()
+		self.validate_variants()
 
 		if not self.get("__islocal"):
 			self.old_item_group = frappe.db.get_value(self.doctype, self.name, "item_group")
@@ -61,6 +67,7 @@
 		invalidate_cache_for_item(self)
 		self.validate_name_with_item_group()
 		self.update_item_price()
+		self.sync_variants()
 
 	def get_context(self, context):
 		context["parent_groups"] = get_parent_item_groups(self.item_group) + \
@@ -114,6 +121,146 @@
 			if not matched:
 				frappe.throw(_("Default Unit of Measure can not be changed directly because you have already made some transaction(s) with another UOM. To change default UOM, use 'UOM Replace Utility' tool under Stock module."))
 
+	def validate_variants(self):
+		self.validate_variants_are_unique()
+		self.validate_stock_for_template_must_be_zero()
+
+	def validate_stock_for_template_must_be_zero(self):
+		if self.has_variants:
+			stock_in = frappe.db.sql_list("""select warehouse from tabBin
+				where item_code=%s and ifnull(actual_qty, 0) > 0""", self.name)
+			if stock_in:
+				frappe.throw(_("Item Template cannot have stock and varaiants. Please remove stock from warehouses {0}").format(", ".join(stock_in)),
+					ItemTemplateCannotHaveStock)
+
+	def validate_variants_are_unique(self):
+		if not self.has_variants:
+			self.item_variants = []
+
+		if self.item_variants and self.variant_of:
+			frappe.throw(_("Item cannot be a variant of a variant"))
+
+		variants = []
+		for d in self.item_variants:
+			key = (d.item_attribute, d.item_attribute_value)
+			if key in variants:
+				frappe.throw(_("{0} {1} is entered more than once in Item Variants table").format(d.item_attribute,
+					d.item_attribute_value), DuplicateVariant)
+			variants.append(key)
+
+	def sync_variants(self):
+		variant_item_codes = self.get_variant_item_codes()
+
+		# delete missing variants
+		existing_variants = [d.name for d in frappe.get_all("Item",
+			{"variant_of":self.name})]
+
+		updated, deleted = [], []
+		for existing_variant in existing_variants:
+			if existing_variant not in variant_item_codes:
+				frappe.delete_doc("Item", existing_variant)
+				deleted.append(existing_variant)
+			else:
+				self.update_variant(existing_variant)
+				updated.append(existing_variant)
+
+		inserted = []
+		for item_code in variant_item_codes:
+			if item_code not in existing_variants:
+				self.make_variant(item_code)
+				inserted.append(item_code)
+
+		if inserted:
+			frappe.msgprint(_("Item Variants {0} created").format(", ".join(inserted)))
+
+		if updated:
+			frappe.msgprint(_("Item Variants {0} updated").format(", ".join(updated)))
+
+		if deleted:
+			frappe.msgprint(_("Item Variants {0} deleted").format(", ".join(deleted)))
+
+	def get_variant_item_codes(self):
+		if not self.item_variants:
+			return []
+
+		self.variant_attributes = {}
+		variant_dict = {}
+		variant_item_codes = []
+
+		for d in self.item_variants:
+			variant_dict.setdefault(d.item_attribute, []).append(d.item_attribute_value)
+
+		all_attributes = [d.name for d in frappe.get_all("Item Attribute", order_by = "priority asc")]
+
+		# sort attributes by their priority
+		attributes = filter(None, map(lambda d: d if d in variant_dict else None, all_attributes))
+
+		def add_attribute_suffixes(item_code, my_attributes, attributes):
+			attr = frappe.get_doc("Item Attribute", attributes[0])
+			for value in attr.item_attribute_values:
+				if value.attribute_value in variant_dict[attr.name]:
+					_my_attributes = copy.deepcopy(my_attributes)
+					_my_attributes.append([attr.name, value.attribute_value])
+					if len(attributes) > 1:
+						add_attribute_suffixes(item_code + "-" + value.abbr, _my_attributes, attributes[1:])
+					else:
+						variant_item_codes.append(item_code + "-" + value.abbr)
+						self.variant_attributes[item_code + "-" + value.abbr] = _my_attributes
+
+		add_attribute_suffixes(self.name, [], attributes)
+
+		return variant_item_codes
+
+	def make_variant(self, item_code):
+		item = frappe.new_doc("Item")
+		item.item_code = item_code
+		self.copy_attributes_to_variant(self, item, insert=True)
+		item.insert()
+
+	def update_variant(self, item_code):
+		item = frappe.get_doc("Item", item_code)
+		item.item_code = item_code
+		self.copy_attributes_to_variant(self, item)
+		item.save()
+
+	def copy_attributes_to_variant(self, template, variant, insert=False):
+		from frappe.model import no_value_fields
+		for field in self.meta.fields:
+			if field.fieldtype not in no_value_fields and (insert or not field.no_copy)\
+				and field.fieldname != "item_code":
+				if variant.get(field.fieldname) != template.get(field.fieldname):
+					variant.set(field.fieldname, template.get(field.fieldname))
+					variant.__dirty = True
+
+		variant.description += "\n"
+
+		if not getattr(template, "variant_attributes", None):
+			template.get_variant_item_codes()
+
+		for attr in template.variant_attributes[variant.item_code]:
+			variant.description += "\n" + attr[0] + ": " + attr[1]
+			if variant.description_html:
+				variant.description_html += "<div style='margin-top: 4px; font-size: 80%'>" + attr[0] + ": " + attr[1] + "</div>"
+		variant.variant_of = template.name
+		variant.has_variants = 0
+		variant.show_in_website = 0
+
+	def update_template_tables(self):
+		template = frappe.get_doc("Item", self.variant_of)
+
+		# add item taxes from template
+		for d in template.get("item_tax"):
+			self.append("item_tax", {"tax_type": d.tax_type, "tax_rate": d.tax_rate})
+
+		# copy re-order table if empty
+		if not self.get("item_reorder"):
+			for d in template.get("item_reorder"):
+				n = {}
+				for k in ("warehouse", "warehouse_reorder_level",
+					"warehouse_reorder_qty", "material_request_type"):
+					n[k] = d.get(k)
+				self.append("item_reorder", n)
+
 	def validate_conversion_factor(self):
 		check_list = []
 		for d in self.get('uom_conversion_details'):
@@ -126,9 +273,6 @@
 				frappe.throw(_("Conversion factor for default Unit of Measure must be 1 in row {0}").format(d.idx))
 
 	def validate_item_type(self):
-		if cstr(self.is_manufactured_item) == "No":
-			self.is_pro_applicable = "No"
-
 		if self.is_pro_applicable == 'Yes' and self.is_stock_item == 'No':
 			frappe.throw(_("As Production Order can be made for this item, it must be a stock item."))
 
@@ -140,6 +284,11 @@
 
 
 	def check_for_active_boms(self):
+		if self.default_bom:
+			bom_item = frappe.db.get_value("BOM", self.default_bom, "item")
+			if bom_item not in (self.name, self.variant_of):
+				frappe.throw(_("Default BOM must be for this item or its template"))
+
 		if self.is_purchase_item != "Yes":
 			bom_mat = frappe.db.sql("""select distinct t1.parent
 				from `tabBOM Item` t1, `tabBOM` t2 where t2.name = t1.parent
@@ -149,12 +298,6 @@
 			if bom_mat and bom_mat[0][0]:
 				frappe.throw(_("Item must be a purchase item, as it is present in one or many Active BOMs"))
 
-		if self.is_manufactured_item != "Yes":
-			bom = frappe.db.sql("""select name from `tabBOM` where item = %s
-				and is_active = 1""", (self.name,))
-			if bom and bom[0][0]:
-				frappe.throw(_("""Allow Bill of Materials should be 'Yes'. Because one or many active BOMs present for this item"""))
-
 	def fill_customer_code(self):
 		""" Append all the customer codes and insert into "customer_code" field of item table """
 		cust_code=[]
@@ -222,6 +365,8 @@
 	def on_trash(self):
 		super(Item, self).on_trash()
 		frappe.db.sql("""delete from tabBin where item_code=%s""", self.item_code)
+		for variant_of in frappe.get_all("Item", {"variant_of": self.name}):
+			frappe.delete_doc("Item", variant_of.name)
 
 	def before_rename(self, olddn, newdn, merge=False):
 		if merge:
diff --git a/erpnext/stock/doctype/item/item_list.html b/erpnext/stock/doctype/item/item_list.html
index ebc2c7f..abfc2c6 100644
--- a/erpnext/stock/doctype/item/item_list.html
+++ b/erpnext/stock/doctype/item/item_list.html
@@ -26,11 +26,11 @@
 				<i class="icon-shopping-cart text-muted"></i>
 			</span>
 			{% } %}
-			{% if(doc.is_manufactured_item==="Yes") { %}
+			{% if(doc.default_bom==="Yes") { %}
 			<span style="margin-right: 8px;"
 				title="{%= __("Manufactured Item") %}" class="filterable"
-				data-filter="is_manufactured_item,=,Yes">
-				<i class="icon-wrench text-muted"></i>
+				data-filter="default_bom,=,{%= doc.default_bom %}">
+				<i class="icon-site-map text-muted"></i>
 			</span>
 			{% } %}
 			{% if(doc.show_in_website) { %}
diff --git a/erpnext/stock/doctype/item/item_list.js b/erpnext/stock/doctype/item/item_list.js
index e1cd020..c6a437b 100644
--- a/erpnext/stock/doctype/item/item_list.js
+++ b/erpnext/stock/doctype/item/item_list.js
@@ -1,5 +1,5 @@
 frappe.listview_settings['Item'] = {
-	add_fields: ["`tabItem`.`item_name`", "`tabItem`.`stock_uom`", "`tabItem`.`item_group`", "`tabItem`.`image`",
-		"`tabItem`.`is_stock_item`", "`tabItem`.`is_sales_item`", "`tabItem`.`is_purchase_item`",
-		"`tabItem`.`is_manufactured_item`", "`tabItem`.`show_in_website`"]
+	add_fields: ["item_name", "stock_uom", "item_group", "image",
+		"is_stock_item", "is_sales_item", "is_purchase_item", "show_in_website",
+		"default_bom"]
 };
diff --git a/erpnext/stock/doctype/item/test_item.py b/erpnext/stock/doctype/item/test_item.py
index 56150ca..803913f 100644
--- a/erpnext/stock/doctype/item/test_item.py
+++ b/erpnext/stock/doctype/item/test_item.py
@@ -6,13 +6,81 @@
 import frappe
 
 from frappe.test_runner import make_test_records
+from erpnext.stock.doctype.item.item import WarehouseNotSet, DuplicateVariant, ItemTemplateCannotHaveStock
 
 test_ignore = ["BOM"]
 test_dependencies = ["Warehouse"]
 
 class TestItem(unittest.TestCase):
+	def get_item(self, idx):
+		item_code = test_records[idx].get("item_code")
+		if not frappe.db.exists("Item", item_code):
+			item = frappe.copy_doc(test_records[idx])
+			item.insert()
+		else:
+			item = frappe.get_doc("Item", item_code)
+
+		return item
+
+	def test_duplicate_variant(self):
+		item = frappe.copy_doc(test_records[11])
+		item.append("item_variants", {"item_attribute": "Test Size", "item_attribute_value": "Small"})
+		self.assertRaises(DuplicateVariant, item.insert)
+
+	def test_template_cannot_have_stock(self):
+		item = self.get_item(10)
+
+		se = frappe.new_doc("Stock Entry")
+		se.purpose = "Material Receipt"
+		se.append("mtn_details", {
+			"item_code": item.name,
+			"t_warehouse": "Stores - _TC",
+			"qty": 1,
+			"incoming_rate": 1
+		})
+		se.insert()
+		se.submit()
+
+		item.has_variants = 1
+		self.assertRaises(ItemTemplateCannotHaveStock, item.save)
+
+	def test_variant_item_codes(self):
+		item = self.get_item(11)
+
+		variants = ['_Test Variant Item-S', '_Test Variant Item-M', '_Test Variant Item-L']
+		self.assertEqual(item.get_variant_item_codes(), variants)
+		for v in variants:
+			self.assertTrue(frappe.db.get_value("Item", {"variant_of": item.name, "name": v}))
+
+		item.append("item_variants", {"item_attribute": "Test Colour", "item_attribute_value": "Red"})
+		item.append("item_variants", {"item_attribute": "Test Colour", "item_attribute_value": "Blue"})
+		item.append("item_variants", {"item_attribute": "Test Colour", "item_attribute_value": "Green"})
+
+		self.assertEqual(item.get_variant_item_codes(), ['_Test Variant Item-S-R',
+			'_Test Variant Item-S-G', '_Test Variant Item-S-B',
+			'_Test Variant Item-M-R', '_Test Variant Item-M-G',
+			'_Test Variant Item-M-B', '_Test Variant Item-L-R',
+			'_Test Variant Item-L-G', '_Test Variant Item-L-B'])
+
+		self.assertEqual(item.variant_attributes['_Test Variant Item-L-R'], [['Test Size', 'Large'], ['Test Colour', 'Red']])
+		self.assertEqual(item.variant_attributes['_Test Variant Item-S-G'], [['Test Size', 'Small'], ['Test Colour', 'Green']])
+
+		# check stock entry cannot be made
+	def test_stock_entry_cannot_be_made_for_template(self):
+		item = self.get_item(11)
+
+		se = frappe.new_doc("Stock Entry")
+		se.purpose = "Material Receipt"
+		se.append("mtn_details", {
+			"item_code": item.name,
+			"t_warehouse": "Stores - WP",
+			"qty": 1,
+			"incoming_rate": 1
+		})
+		se.insert()
+		self.assertRaises(ItemTemplateCannotHaveStock, se.submit)
+
 	def test_default_warehouse(self):
-		from erpnext.stock.doctype.item.item import WarehouseNotSet
 		item = frappe.copy_doc(test_records[0])
 		item.is_stock_item = "Yes"
 		item.default_warehouse = None
@@ -23,12 +91,12 @@
 		to_check = {
 			"item_code": "_Test Item",
 			"item_name": "_Test Item",
-			"description": "_Test Item",
+			"description": "_Test Item 1",
 			"warehouse": "_Test Warehouse - _TC",
 			"income_account": "Sales - _TC",
 			"expense_account": "_Test Account Cost for Goods Sold - _TC",
 			"cost_center": "_Test Cost Center 2 - _TC",
-			"qty": 1.0,
+			"qty": 0.0,
 			"price_list_rate": 100.0,
 			"base_price_list_rate": 0.0,
 			"discount_percentage": 0.0,
diff --git a/erpnext/stock/doctype/item/test_records.json b/erpnext/stock/doctype/item/test_records.json
index a256149..7f5271e 100644
--- a/erpnext/stock/doctype/item/test_records.json
+++ b/erpnext/stock/doctype/item/test_records.json
@@ -1,7 +1,7 @@
 [
  {
   "default_warehouse": "_Test Warehouse - _TC",
-  "description": "_Test Item",
+  "description": "_Test Item 1",
   "doctype": "Item",
   "expense_account": "_Test Account Cost for Goods Sold - _TC",
   "has_batch_no": "No",
@@ -9,7 +9,7 @@
   "income_account": "Sales - _TC",
   "inspection_required": "No",
   "is_asset_item": "No",
-  "is_pro_applicable": "Yes",
+  "is_pro_applicable": "No",
   "is_purchase_item": "Yes",
   "is_sales_item": "Yes",
   "is_service_item": "No",
@@ -20,9 +20,7 @@
   "item_name": "_Test Item",
   "item_reorder": [
    {
-    "doctype": "Item Reorder",
     "material_request_type": "Purchase",
-    "parentfield": "item_reorder",
     "warehouse": "_Test Warehouse - _TC",
     "warehouse_reorder_level": 20,
     "warehouse_reorder_qty": 20
@@ -57,7 +55,7 @@
  },
  {
   "default_warehouse": "_Test Warehouse - _TC",
-  "description": "_Test Item Home Desktop 100",
+  "description": "_Test Item Home Desktop 100 3",
   "doctype": "Item",
   "expense_account": "_Test Account Cost for Goods Sold - _TC",
   "has_batch_no": "No",
@@ -83,11 +81,11 @@
     "tax_type": "_Test Account Excise Duty - _TC"
    }
   ],
-  "stock_uom": "_Test UOM"
+  "stock_uom": "_Test UOM 1"
  },
  {
   "default_warehouse": "_Test Warehouse - _TC",
-  "description": "_Test Item Home Desktop 200",
+  "description": "_Test Item Home Desktop 200 4",
   "doctype": "Item",
   "expense_account": "_Test Account Cost for Goods Sold - _TC",
   "has_batch_no": "No",
@@ -105,10 +103,10 @@
   "item_code": "_Test Item Home Desktop 200",
   "item_group": "_Test Item Group Desktops",
   "item_name": "_Test Item Home Desktop 200",
-  "stock_uom": "_Test UOM"
+  "stock_uom": "_Test UOM 1"
  },
  {
-  "description": "_Test Sales BOM Item",
+  "description": "_Test Sales BOM Item 5",
   "doctype": "Item",
   "expense_account": "_Test Account Cost for Goods Sold - _TC",
   "has_batch_no": "No",
@@ -129,7 +127,7 @@
  },
  {
   "default_warehouse": "_Test Warehouse - _TC",
-  "description": "_Test FG Item",
+  "description": "_Test FG Item 6",
   "doctype": "Item",
   "expense_account": "_Test Account Cost for Goods Sold - _TC",
   "has_batch_no": "No",
@@ -149,7 +147,7 @@
   "stock_uom": "_Test UOM"
  },
  {
-  "description": "_Test Non Stock Item",
+  "description": "_Test Non Stock Item 7",
   "doctype": "Item",
   "has_batch_no": "No",
   "has_serial_no": "No",
@@ -168,7 +166,7 @@
  },
  {
   "default_warehouse": "_Test Warehouse - _TC",
-  "description": "_Test Serialized Item",
+  "description": "_Test Serialized Item 8",
   "doctype": "Item",
   "has_batch_no": "No",
   "has_serial_no": "Yes",
@@ -187,7 +185,7 @@
  },
  {
   "default_warehouse": "_Test Warehouse - _TC",
-  "description": "_Test Serialized Item",
+  "description": "_Test Serialized Item 9",
   "doctype": "Item",
   "has_batch_no": "No",
   "has_serial_no": "Yes",
@@ -207,7 +205,7 @@
  },
  {
   "default_warehouse": "_Test Warehouse - _TC",
-  "description": "_Test Item Home Desktop Manufactured",
+  "description": "_Test Item Home Desktop Manufactured 10",
   "doctype": "Item",
   "expense_account": "_Test Account Cost for Goods Sold - _TC",
   "has_batch_no": "No",
@@ -229,7 +227,7 @@
  },
  {
   "default_warehouse": "_Test Warehouse - _TC",
-  "description": "_Test FG Item 2",
+  "description": "_Test FG Item 2 11",
   "doctype": "Item",
   "expense_account": "_Test Account Cost for Goods Sold - _TC",
   "has_batch_no": "No",
@@ -243,9 +241,47 @@
   "is_service_item": "No",
   "is_stock_item": "Yes",
   "is_sub_contracted_item": "Yes",
+  "is_manufactured_item": "Yes",
   "item_code": "_Test FG Item 2",
   "item_group": "_Test Item Group Desktops",
   "item_name": "_Test FG Item 2",
   "stock_uom": "_Test UOM"
+ },
+ {
+  "default_warehouse": "_Test Warehouse - _TC",
+  "description": "_Test Variant Item 12",
+  "doctype": "Item",
+  "expense_account": "_Test Account Cost for Goods Sold - _TC",
+  "has_batch_no": "No",
+  "has_serial_no": "No",
+  "income_account": "Sales - _TC",
+  "inspection_required": "No",
+  "is_asset_item": "No",
+  "is_pro_applicable": "Yes",
+  "is_purchase_item": "Yes",
+  "is_sales_item": "Yes",
+  "is_service_item": "No",
+  "is_stock_item": "Yes",
+  "is_manufactured_item": "Yes",
+  "is_sub_contracted_item": "Yes",
+  "item_code": "_Test Variant Item",
+  "item_group": "_Test Item Group Desktops",
+  "item_name": "_Test Variant Item",
+  "stock_uom": "_Test UOM",
+  "has_variants": 1,
+  "item_variants": [
+	  {"item_attribute": "Test Size", "item_attribute_value": "Small"},
+	  {"item_attribute": "Test Size", "item_attribute_value": "Medium"},
+	  {"item_attribute": "Test Size", "item_attribute_value": "Large"}
+  ],
+  "item_reorder": [
+      {
+       "material_request_type": "Purchase",
+       "warehouse": "_Test Warehouse - _TC",
+       "warehouse_reorder_level": 20,
+       "warehouse_reorder_qty": 20
+      }
+  ]
  }
+
 ]
diff --git a/erpnext/stock/page/stock_balance/__init__.py b/erpnext/stock/doctype/item_attribute/__init__.py
similarity index 100%
copy from erpnext/stock/page/stock_balance/__init__.py
copy to erpnext/stock/doctype/item_attribute/__init__.py
diff --git a/erpnext/stock/doctype/item_attribute/item_attribute.json b/erpnext/stock/doctype/item_attribute/item_attribute.json
new file mode 100644
index 0000000..d41646c
--- /dev/null
+++ b/erpnext/stock/doctype/item_attribute/item_attribute.json
@@ -0,0 +1,87 @@
+{
+ "allow_copy": 0, 
+ "allow_import": 1, 
+ "allow_rename": 0, 
+ "autoname": "field:attribute_name", 
+ "creation": "2014-09-26 03:49:54.899170", 
+ "custom": 0, 
+ "docstatus": 0, 
+ "doctype": "DocType", 
+ "document_type": "Master", 
+ "fields": [
+  {
+   "allow_on_submit": 0, 
+   "fieldname": "attribute_name", 
+   "fieldtype": "Data", 
+   "hidden": 0, 
+   "ignore_user_permissions": 0, 
+   "in_filter": 0, 
+   "in_list_view": 1, 
+   "label": "Attribute Name", 
+   "no_copy": 0, 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 0, 
+   "read_only": 0, 
+   "report_hide": 0, 
+   "reqd": 1, 
+   "search_index": 0, 
+   "set_only_once": 0
+  }, 
+  {
+   "default": "1", 
+   "description": "Lower the number, higher the priority in the Item Code suffix that will be created for this Item Attribute for the Item Variant", 
+   "fieldname": "priority", 
+   "fieldtype": "Int", 
+   "label": "Priority", 
+   "permlevel": 0, 
+   "precision": ""
+  }, 
+  {
+   "fieldname": "item_attribute_values", 
+   "fieldtype": "Table", 
+   "label": "Item Attribute Values", 
+   "options": "Item Attribute Value", 
+   "permlevel": 0, 
+   "precision": ""
+  }
+ ], 
+ "hide_heading": 0, 
+ "hide_toolbar": 0, 
+ "icon": "icon-edit", 
+ "in_create": 0, 
+ "in_dialog": 0, 
+ "is_submittable": 0, 
+ "issingle": 0, 
+ "istable": 0, 
+ "modified": "2014-09-26 06:08:28.729519", 
+ "modified_by": "Administrator", 
+ "module": "Stock", 
+ "name": "Item Attribute", 
+ "name_case": "", 
+ "owner": "Administrator", 
+ "permissions": [
+  {
+   "amend": 0, 
+   "apply_user_permissions": 0, 
+   "cancel": 0, 
+   "create": 1, 
+   "delete": 1, 
+   "email": 0, 
+   "export": 0, 
+   "import": 0, 
+   "permlevel": 0, 
+   "print": 0, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Material Master Manager", 
+   "set_user_permissions": 0, 
+   "submit": 0, 
+   "write": 1
+  }
+ ], 
+ "read_only": 0, 
+ "read_only_onload": 0, 
+ "sort_field": "modified", 
+ "sort_order": "DESC"
+}
\ No newline at end of file
diff --git a/erpnext/stock/doctype/item_attribute/item_attribute.py b/erpnext/stock/doctype/item_attribute/item_attribute.py
new file mode 100644
index 0000000..e4fd38c
--- /dev/null
+++ b/erpnext/stock/doctype/item_attribute/item_attribute.py
@@ -0,0 +1,19 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors and contributors
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+import frappe
+from frappe.model.document import Document
+from frappe import _
+
+class ItemAttribute(Document):
+	def validate(self):
+		values, abbrs = [], []
+		for d in self.item_attribute_values:
+			if d.attribute_value in values:
+				frappe.throw(_("{0} must appear only once").format(d.attribute_value))
+			values.append(d.attribute_value)
+
+			if d.abbr in abbrs:
+				frappe.throw(_("{0} must appear only once").format(d.abbr))
+			abbrs.append(d.abbr)
diff --git a/erpnext/stock/doctype/item_attribute/test_item_attribute.py b/erpnext/stock/doctype/item_attribute/test_item_attribute.py
new file mode 100644
index 0000000..51c335c
--- /dev/null
+++ b/erpnext/stock/doctype/item_attribute/test_item_attribute.py
@@ -0,0 +1,10 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors and Contributors
+# See license.txt
+
+import frappe
+import unittest
+
+test_records = frappe.get_test_records('Item Attribute')
+
+class TestItemAttribute(unittest.TestCase):
+	pass
diff --git a/erpnext/stock/doctype/item_attribute/test_records.json b/erpnext/stock/doctype/item_attribute/test_records.json
new file mode 100644
index 0000000..0208c17
--- /dev/null
+++ b/erpnext/stock/doctype/item_attribute/test_records.json
@@ -0,0 +1,22 @@
+[
+	{
+		"doctype": "Item Attribute",
+		"attribute_name": "Test Size",
+		"priority": 1,
+		"item_attribute_values": [
+			{"attribute_value": "Small", "abbr": "S"},
+			{"attribute_value": "Medium", "abbr": "M"},
+			{"attribute_value": "Large", "abbr": "L"}
+		]
+	},
+	{
+		"doctype": "Item Attribute",
+		"attribute_name": "Test Colour",
+		"priority": 2,
+		"item_attribute_values": [
+			{"attribute_value": "Red", "abbr": "R"},
+			{"attribute_value": "Green", "abbr": "G"},
+			{"attribute_value": "Blue", "abbr": "B"}
+		]
+	}
+]
diff --git a/erpnext/stock/page/stock_balance/__init__.py b/erpnext/stock/doctype/item_attribute_value/__init__.py
similarity index 100%
copy from erpnext/stock/page/stock_balance/__init__.py
copy to erpnext/stock/doctype/item_attribute_value/__init__.py
diff --git a/erpnext/stock/doctype/item_attribute_value/item_attribute_value.json b/erpnext/stock/doctype/item_attribute_value/item_attribute_value.json
new file mode 100644
index 0000000..f6d66bc
--- /dev/null
+++ b/erpnext/stock/doctype/item_attribute_value/item_attribute_value.json
@@ -0,0 +1,64 @@
+{
+ "allow_copy": 0, 
+ "allow_import": 1, 
+ "allow_rename": 0, 
+ "autoname": "", 
+ "creation": "2014-09-26 03:52:31.161255", 
+ "custom": 0, 
+ "docstatus": 0, 
+ "doctype": "DocType", 
+ "document_type": "Master", 
+ "fields": [
+  {
+   "allow_on_submit": 0, 
+   "fieldname": "attribute_value", 
+   "fieldtype": "Data", 
+   "hidden": 0, 
+   "ignore_user_permissions": 0, 
+   "in_filter": 0, 
+   "in_list_view": 1, 
+   "label": "Attribute Value", 
+   "no_copy": 0, 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 0, 
+   "read_only": 0, 
+   "report_hide": 0, 
+   "reqd": 1, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "description": "This will be appended to the Item Code of the variant. For example, if your abbreviation is \"SM\", and the item code is \"T-SHIRT\", the item code of the variant will be \"T-SHIRT-SM\"", 
+   "fieldname": "abbr", 
+   "fieldtype": "Data", 
+   "in_list_view": 1, 
+   "label": "Abbreviation", 
+   "permlevel": 0, 
+   "precision": "", 
+   "reqd": 1, 
+   "search_index": 1, 
+   "unique": 0
+  }
+ ], 
+ "hide_heading": 0, 
+ "hide_toolbar": 0, 
+ "icon": "icon-edit", 
+ "in_create": 0, 
+ "in_dialog": 0, 
+ "is_submittable": 0, 
+ "issingle": 0, 
+ "istable": 1, 
+ "modified": "2014-09-26 06:17:47.136386", 
+ "modified_by": "Administrator", 
+ "module": "Stock", 
+ "name": "Item Attribute Value", 
+ "name_case": "", 
+ "owner": "Administrator", 
+ "permissions": [], 
+ "read_only": 0, 
+ "read_only_onload": 0, 
+ "sort_field": "modified", 
+ "sort_order": "DESC"
+}
\ No newline at end of file
diff --git a/erpnext/stock/doctype/item_attribute_value/item_attribute_value.py b/erpnext/stock/doctype/item_attribute_value/item_attribute_value.py
new file mode 100644
index 0000000..c3a83b7
--- /dev/null
+++ b/erpnext/stock/doctype/item_attribute_value/item_attribute_value.py
@@ -0,0 +1,9 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors and contributors
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+import frappe
+from frappe.model.document import Document
+
+class ItemAttributeValue(Document):
+	pass
diff --git a/erpnext/stock/doctype/item_price/test_records.json b/erpnext/stock/doctype/item_price/test_records.json
index b4ceb92..36870cd 100644
--- a/erpnext/stock/doctype/item_price/test_records.json
+++ b/erpnext/stock/doctype/item_price/test_records.json
@@ -16,5 +16,11 @@
   "item_code": "_Test Item 2",
   "price_list": "_Test Price List Rest of the World",
   "price_list_rate": 20
+ },
+ {
+  "doctype": "Item Price",
+  "item_code": "_Test Item Home Desktop 100",
+  "price_list": "_Test Price List",
+  "price_list_rate": 1000
  }
 ]
diff --git a/erpnext/stock/page/stock_balance/__init__.py b/erpnext/stock/doctype/item_variant/__init__.py
similarity index 100%
copy from erpnext/stock/page/stock_balance/__init__.py
copy to erpnext/stock/doctype/item_variant/__init__.py
diff --git a/erpnext/stock/doctype/item_variant/item_variant.json b/erpnext/stock/doctype/item_variant/item_variant.json
new file mode 100644
index 0000000..aeb445e
--- /dev/null
+++ b/erpnext/stock/doctype/item_variant/item_variant.json
@@ -0,0 +1,72 @@
+{
+ "allow_copy": 0, 
+ "allow_import": 1, 
+ "allow_rename": 0, 
+ "autoname": "", 
+ "creation": "2014-09-26 03:54:04.370259", 
+ "custom": 0, 
+ "docstatus": 0, 
+ "doctype": "DocType", 
+ "document_type": "Other", 
+ "fields": [
+  {
+   "allow_on_submit": 0, 
+   "fieldname": "item_attribute", 
+   "fieldtype": "Link", 
+   "hidden": 0, 
+   "ignore_user_permissions": 0, 
+   "in_filter": 0, 
+   "in_list_view": 1, 
+   "label": "Item Attribute", 
+   "no_copy": 0, 
+   "options": "Item Attribute", 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 0, 
+   "read_only": 0, 
+   "report_hide": 0, 
+   "reqd": 1, 
+   "search_index": 0, 
+   "set_only_once": 0
+  }, 
+  {
+   "allow_on_submit": 0, 
+   "fieldname": "item_attribute_value", 
+   "fieldtype": "Data", 
+   "hidden": 0, 
+   "ignore_user_permissions": 0, 
+   "in_filter": 0, 
+   "in_list_view": 1, 
+   "label": "Item Attribute Value", 
+   "no_copy": 0, 
+   "options": "", 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 0, 
+   "read_only": 0, 
+   "report_hide": 0, 
+   "reqd": 1, 
+   "search_index": 0, 
+   "set_only_once": 0
+  }
+ ], 
+ "hide_heading": 0, 
+ "hide_toolbar": 0, 
+ "icon": "", 
+ "in_create": 0, 
+ "in_dialog": 0, 
+ "is_submittable": 0, 
+ "issingle": 0, 
+ "istable": 1, 
+ "modified": "2014-09-26 06:24:14.248364", 
+ "modified_by": "Administrator", 
+ "module": "Stock", 
+ "name": "Item Variant", 
+ "name_case": "", 
+ "owner": "Administrator", 
+ "permissions": [], 
+ "read_only": 0, 
+ "read_only_onload": 0, 
+ "sort_field": "modified", 
+ "sort_order": "DESC"
+}
\ No newline at end of file
diff --git a/erpnext/stock/doctype/item_variant/item_variant.py b/erpnext/stock/doctype/item_variant/item_variant.py
new file mode 100644
index 0000000..7b3c15d
--- /dev/null
+++ b/erpnext/stock/doctype/item_variant/item_variant.py
@@ -0,0 +1,9 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors and contributors
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+import frappe
+from frappe.model.document import Document
+
+class ItemVariant(Document):
+	pass
diff --git a/erpnext/stock/doctype/landed_cost_voucher/landed_cost_voucher.py b/erpnext/stock/doctype/landed_cost_voucher/landed_cost_voucher.py
index b4fa971..3046c5e 100644
--- a/erpnext/stock/doctype/landed_cost_voucher/landed_cost_voucher.py
+++ b/erpnext/stock/doctype/landed_cost_voucher/landed_cost_voucher.py
@@ -97,10 +97,10 @@
 
 			# update stock & gl entries for cancelled state of PR
 			pr.docstatus = 2
-			pr.update_stock()
+			pr.update_stock_ledger()
 			pr.make_gl_entries_on_cancel()
 
 			# update stock & gl entries for submit state of PR
 			pr.docstatus = 1
-			pr.update_stock()
+			pr.update_stock_ledger()
 			pr.make_gl_entries()
diff --git a/erpnext/stock/doctype/packing_slip/packing_slip.py b/erpnext/stock/doctype/packing_slip/packing_slip.py
index 63657b7..bd79835 100644
--- a/erpnext/stock/doctype/packing_slip/packing_slip.py
+++ b/erpnext/stock/doctype/packing_slip/packing_slip.py
@@ -162,8 +162,7 @@
 	from erpnext.controllers.queries import get_match_cond
 	return frappe.db.sql("""select name, item_name, description from `tabItem`
 				where name in ( select item_code FROM `tabDelivery Note Item`
-	 						where parent= %s
-	 							and ifnull(qty, 0) > ifnull(packed_qty, 0))
+	 						where parent= %s)
 	 			and %s like "%s" %s
 	 			limit  %s, %s """ % ("%s", searchfield, "%s",
 	 			get_match_cond(doctype), "%s", "%s"),
diff --git a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py
index a7fa6bb..13495a0 100644
--- a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py
+++ b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py
@@ -130,7 +130,7 @@
 				 if not d.prevdoc_docname:
 					 frappe.throw(_("Purchase Order number required for Item {0}").format(d.item_code))
 
-	def update_stock(self):
+	def update_stock_ledger(self):
 		sl_entries = []
 		stock_items = self.get_stock_items()
 
@@ -234,7 +234,7 @@
 
 		self.update_ordered_qty()
 
-		self.update_stock()
+		self.update_stock_ledger()
 
 		from erpnext.stock.doctype.serial_no.serial_no import update_serial_nos_after_submit
 		update_serial_nos_after_submit(self, "purchase_receipt_details")
@@ -267,7 +267,7 @@
 
 		self.update_ordered_qty()
 
-		self.update_stock()
+		self.update_stock_ledger()
 
 		self.update_prevdoc_status()
 		pc_obj.update_last_purchase_rate(self, 0)
diff --git a/erpnext/stock/doctype/purchase_receipt/test_purchase_receipt.py b/erpnext/stock/doctype/purchase_receipt/test_purchase_receipt.py
index 9de05fb..1a6a375 100644
--- a/erpnext/stock/doctype/purchase_receipt/test_purchase_receipt.py
+++ b/erpnext/stock/doctype/purchase_receipt/test_purchase_receipt.py
@@ -95,7 +95,7 @@
 		pr.insert()
 
 		self.assertEquals(len(pr.get("pr_raw_material_details")), 2)
-		self.assertEquals(pr.get("purchase_receipt_details")[0].rm_supp_cost, 70000.0)
+		self.assertEquals(pr.get("purchase_receipt_details")[0].rm_supp_cost, 20750.0)
 
 
 	def test_serial_no_supplier(self):
@@ -151,6 +151,6 @@
 	accounts_settings.save()
 
 
-test_dependencies = ["BOM"]
+test_dependencies = ["BOM", "Item Price"]
 
 test_records = frappe.get_test_records('Purchase Receipt')
diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.py b/erpnext/stock/doctype/stock_entry/stock_entry.py
index a2a156f..d06a761 100644
--- a/erpnext/stock/doctype/stock_entry/stock_entry.py
+++ b/erpnext/stock/doctype/stock_entry/stock_entry.py
@@ -11,7 +11,8 @@
 from erpnext.stock.utils import get_incoming_rate
 from erpnext.stock.stock_ledger import get_previous_sle
 from erpnext.controllers.queries import get_match_cond
-from erpnext.stock.get_item_details import get_available_qty
+from erpnext.stock.get_item_details import get_available_qty, get_default_cost_center, get_conversion_factor
+from erpnext.manufacturing.doctype.bom.bom import validate_bom_no
 
 class NotUpdateStockError(frappe.ValidationError): pass
 class StockOverReturnError(frappe.ValidationError): pass
@@ -42,8 +43,8 @@
 		pro_obj = self.production_order and \
 			frappe.get_doc('Production Order', self.production_order) or None
 
-		self.set_transfer_qty()
 		self.validate_item()
+		self.set_transfer_qty()
 		self.validate_uom_is_integer("uom", "qty")
 		self.validate_uom_is_integer("stock_uom", "transfer_qty")
 		self.validate_warehouse(pro_obj)
@@ -96,21 +97,23 @@
 		for item in self.get("mtn_details"):
 			if item.item_code not in stock_items:
 				frappe.throw(_("{0} is not a stock Item").format(item.item_code))
-			if not item.stock_uom:
-				item.stock_uom = frappe.db.get_value("Item", item.item_code, "stock_uom")
-			if not item.uom:
-				item.uom = item.stock_uom
-			if not item.conversion_factor:
-				item.conversion_factor = 1
+
+			item_details = self.get_item_details(frappe._dict({"item_code": item.item_code,
+				"company": self.company, "project_name": self.project_name}))
+
+			for f in ("uom", "stock_uom", "description", "item_name", "expense_account",
+				"cost_center", "conversion_factor"):
+				item.set(f, item_details.get(f))
+
 			if not item.transfer_qty:
 				item.transfer_qty = item.qty * item.conversion_factor
+
 			if (self.purpose in ("Material Transfer", "Sales Return", "Purchase Return")
 				and not item.serial_no
 				and item.item_code in serialized_items):
 				frappe.throw(_("Row #{0}: Please specify Serial No for Item {1}").format(item.idx, item.item_code),
 					frappe.MandatoryError)
 
-
 	def validate_warehouse(self, pro_obj):
 		"""perform various (sometimes conditional) validations on warehouse"""
 
@@ -227,7 +230,7 @@
 				"posting_date": self.posting_date,
 				"posting_time": self.posting_time,
 				"qty": d.s_warehouse and -1*d.transfer_qty or d.transfer_qty,
-				"serial_no": d.serial_no
+				"serial_no": d.serial_no,
 			})
 
 			# get actual stock at source warehouse
@@ -240,17 +243,16 @@
 					self.posting_date, self.posting_time, d.actual_qty, d.transfer_qty))
 
 			# get incoming rate
-			if not d.bom_no:
-				if not flt(d.incoming_rate) or d.s_warehouse or self.purpose == "Sales Return" or force:
-					incoming_rate = flt(self.get_incoming_rate(args), self.precision("incoming_rate", d))
-					if incoming_rate > 0:
-						d.incoming_rate = incoming_rate
-				d.amount = flt(d.transfer_qty) * flt(d.incoming_rate)
-				if not d.t_warehouse:
-					raw_material_cost += flt(d.amount)
+			if not flt(d.incoming_rate) or d.s_warehouse or self.purpose == "Sales Return" or force:
+				incoming_rate = flt(self.get_incoming_rate(args), self.precision("incoming_rate", d))
+				if incoming_rate > 0:
+					d.incoming_rate = incoming_rate
+			d.amount = flt(d.transfer_qty) * flt(d.incoming_rate)
+			if not d.t_warehouse:
+				raw_material_cost += flt(d.amount)
 
 		# set incoming rate for fg item
-		if self.purpose in ["Manufacture", "Repack"]:
+		if self.purpose in ("Manufacture", "Repack"):
 			number_of_fg_items = len([t.t_warehouse for t in self.get("mtn_details") if t.t_warehouse])
 			for d in self.get("mtn_details"):
 				if d.bom_no or (d.t_warehouse and number_of_fg_items == 1):
@@ -291,10 +293,8 @@
 
 	def validate_bom(self):
 		for d in self.get('mtn_details'):
-			if d.bom_no and not frappe.db.sql("""select name from `tabBOM`
-					where item = %s and name = %s and docstatus = 1 and is_active = 1""",
-					(d.item_code, d.bom_no)):
-				frappe.throw(_("BOM {0} is not submitted or inactive BOM for Item {1}").format(d.bom_no, d.item_code))
+			if d.bom_no:
+				validate_bom_no(d.item_code, d.bom_no)
 
 	def validate_finished_goods(self):
 		"""validation: finished good quantity should be same as manufacturing quantity"""
@@ -408,20 +408,21 @@
 
 	def get_item_details(self, args):
 		item = frappe.db.sql("""select stock_uom, description, item_name,
-			expense_account, buying_cost_center from `tabItem`
+			expense_account, buying_cost_center, item_group from `tabItem`
 			where name = %s and (ifnull(end_of_life,'0000-00-00')='0000-00-00' or end_of_life > now())""",
 			(args.get('item_code')), as_dict = 1)
 		if not item:
 			frappe.throw(_("Item {0} is not active or end of life has been reached").format(args.get("item_code")))
+		item = item[0]
 
 		ret = {
-			'uom'			      	: item and item[0]['stock_uom'] or '',
-			'stock_uom'			  	: item and item[0]['stock_uom'] or '',
-			'description'		  	: item and item[0]['description'] or '',
-			'item_name' 		  	: item and item[0]['item_name'] or '',
+			'uom'			      	: item.stock_uom,
+			'stock_uom'			  	: item.stock_uom,
+			'description'		  	: item.description,
+			'item_name' 		  	: item.item_name,
 			'expense_account'		: args.get("expense_account") \
 				or frappe.db.get_value("Company", args.get("company"), "stock_adjustment_account"),
-			'cost_center'			: item and item[0]['buying_cost_center'] or args.get("cost_center"),
+			'cost_center'			: get_default_cost_center(args, item),
 			'qty'					: 0,
 			'transfer_qty'			: 0,
 			'conversion_factor'		: 1,
@@ -434,8 +435,7 @@
 		return ret
 
 	def get_uom_details(self, args):
-		conversion_factor = frappe.db.get_value("UOM Conversion Detail", {"parent": args.get("item_code"),
-			"uom": args.get("uom")}, "conversion_factor")
+		conversion_factor = get_conversion_factor(args.get("item_code"), args.get("uom")).get("conversion_factor")
 
 		if not conversion_factor:
 			frappe.msgprint(_("UOM coversion factor required for UOM: {0} in Item: {1}")
@@ -478,29 +478,47 @@
 				self.production_order = None
 
 		if self.bom_no:
-			if self.purpose in ["Material Issue", "Material Transfer", "Manufacture", "Repack",
-					"Subcontract"]:
-				if self.production_order and self.purpose == "Material Transfer":
-					item_dict = self.get_pending_raw_materials(pro_obj)
+			if self.purpose in ("Material Issue", "Material Transfer", "Manufacture",
+				"Repack", "Subcontract"):
+
+				if self.production_order:
+					# production: stores -> wip
+					if self.purpose == "Material Transfer":
+						item_dict = self.get_pending_raw_materials(pro_obj)
+						for item in item_dict.values():
+							item["to_warehouse"] = pro_obj.wip_warehouse
+
+					# production: wip -> finished goods
+					elif self.purpose == "Manufacture":
+						item_dict = self.get_bom_raw_materials(self.fg_completed_qty)
+						for item in item_dict.values():
+								item["from_warehouse"] = pro_obj.wip_warehouse
+
+					else:
+						frappe.throw(_("Stock Entry against Production Order must be for 'Material Transfer' or 'Manufacture'"))
 				else:
 					if not self.fg_completed_qty:
 						frappe.throw(_("Manufacturing Quantity is mandatory"))
 					item_dict = self.get_bom_raw_materials(self.fg_completed_qty)
-					for item in item_dict.values():
-						if pro_obj:
-							item["from_warehouse"] = pro_obj.wip_warehouse
-						item["to_warehouse"] = ""
 
 				# add raw materials to Stock Entry Detail table
 				self.add_to_stock_entry_detail(item_dict)
 
-			# add finished good item to Stock Entry Detail table -- along with bom_no
-			if self.production_order and self.purpose == "Manufacture":
-				item = frappe.db.get_value("Item", pro_obj.production_item, ["item_name",
-					"description", "stock_uom", "expense_account", "buying_cost_center"], as_dict=1)
+			# add finished goods item
+			if self.purpose in ("Manufacture", "Repack"):
+				if self.production_order:
+					item_code = pro_obj.production_item
+					to_warehouse = pro_obj.fg_warehouse
+				else:
+					item_code = frappe.db.get_value("BOM", self.bom_no, "item")
+					to_warehouse = ""
+
+				item = frappe.db.get_value("Item", item_code, ["item_name",
+					"description", "stock_uom", "expense_account", "buying_cost_center", "name"], as_dict=1)
+
 				self.add_to_stock_entry_detail({
-					cstr(pro_obj.production_item): {
-						"to_warehouse": pro_obj.fg_warehouse,
+					item.name: {
+						"to_warehouse": to_warehouse,
 						"from_warehouse": "",
 						"qty": self.fg_completed_qty,
 						"item_name": item.item_name,
@@ -509,27 +527,7 @@
 						"expense_account": item.expense_account,
 						"cost_center": item.buying_cost_center,
 					}
-				}, bom_no=pro_obj.bom_no)
-
-			elif self.purpose in ["Material Receipt", "Repack"]:
-				if self.purpose=="Material Receipt":
-					self.from_warehouse = ""
-
-				item = frappe.db.sql("""select name, item_name, description,
-					stock_uom, expense_account, buying_cost_center from `tabItem`
-					where name=(select item from tabBOM where name=%s)""",
-					self.bom_no, as_dict=1)
-				self.add_to_stock_entry_detail({
-					item[0]["name"] : {
-						"qty": self.fg_completed_qty,
-						"item_name": item[0].item_name,
-						"description": item[0]["description"],
-						"stock_uom": item[0]["stock_uom"],
-						"from_warehouse": "",
-						"expense_account": item[0].expense_account,
-						"cost_center": item[0].buying_cost_center,
-					}
-				}, bom_no=self.bom_no)
+				}, bom_no = self.bom_no)
 
 		self.get_stock_and_rate()
 
@@ -541,6 +539,7 @@
 
 		for item in item_dict.values():
 			item.from_warehouse = item.default_warehouse
+			item.to_warehouse = ""
 
 		return item_dict
 
@@ -597,8 +596,8 @@
 
 		for d in item_dict:
 			se_child = self.append('mtn_details')
-			se_child.s_warehouse = item_dict[d].get("from_warehouse", self.from_warehouse)
-			se_child.t_warehouse = item_dict[d].get("to_warehouse", self.to_warehouse)
+			se_child.s_warehouse = item_dict[d].get("from_warehouse")
+			se_child.t_warehouse = item_dict[d].get("to_warehouse")
 			se_child.item_code = cstr(d)
 			se_child.item_name = item_dict[d]["item_name"]
 			se_child.description = item_dict[d]["description"]
@@ -608,6 +607,11 @@
 			se_child.expense_account = item_dict[d]["expense_account"] or expense_account
 			se_child.cost_center = item_dict[d]["cost_center"] or cost_center
 
+			if se_child.s_warehouse==None:
+				se_child.s_warehouse = self.from_warehouse
+			if se_child.t_warehouse==None:
+				se_child.t_warehouse = self.to_warehouse
+
 			# in stock uom
 			se_child.transfer_qty = flt(item_dict[d]["qty"])
 			se_child.conversion_factor = 1.00
diff --git a/erpnext/stock/doctype/stock_entry/test_stock_entry.py b/erpnext/stock/doctype/stock_entry/test_stock_entry.py
index c2dcdc1..fd878bc 100644
--- a/erpnext/stock/doctype/stock_entry/test_stock_entry.py
+++ b/erpnext/stock/doctype/stock_entry/test_stock_entry.py
@@ -9,35 +9,103 @@
 from erpnext.stock.doctype.purchase_receipt.test_purchase_receipt import set_perpetual_inventory
 from erpnext.stock.doctype.stock_ledger_entry.stock_ledger_entry import StockFreezeError
 
-class TestStockEntry(unittest.TestCase):
+def get_sle(**args):
+	condition, values = "", []
+	for key, value in args.iteritems():
+		condition += " and " if condition else " where "
+		condition += "`{0}`=%s".format(key)
+		values.append(value)
 
+	return frappe.db.sql("""select * from `tabStock Ledger Entry` %s
+		order by timestamp(posting_date, posting_time) desc, name desc limit 1"""% condition,
+		values, as_dict=1)
+
+def make_zero(item_code, warehouse):
+	sle = get_sle(item_code = item_code, warehouse = warehouse)
+	qty = sle[0].qty_after_transaction if sle else 0
+	if qty < 0:
+		make_stock_entry(item_code, None, warehouse, abs(qty), incoming_rate=10)
+	elif qty > 0:
+		make_stock_entry(item_code, warehouse, None, qty, incoming_rate=10)
+
+class TestStockEntry(unittest.TestCase):
 	def tearDown(self):
 		frappe.set_user("Administrator")
 		set_perpetual_inventory(0)
 		if hasattr(self, "old_default_company"):
 			frappe.db.set_default("company", self.old_default_company)
 
+	def test_fifo(self):
+		frappe.db.set_default("allow_negative_stock", 1)
+		item_code = "_Test Item 2"
+		warehouse = "_Test Warehouse - _TC"
+		make_zero(item_code, warehouse)
+
+		make_stock_entry(item_code, None, warehouse, 1, incoming_rate=10)
+		sle = get_sle(item_code = item_code, warehouse = warehouse)[0]
+
+		self.assertEqual([[1, 10]], eval(sle.stock_queue))
+
+		# negative qty
+		make_zero(item_code, warehouse)
+		make_stock_entry(item_code, warehouse, None, 1, incoming_rate=10)
+		sle = get_sle(item_code = item_code, warehouse = warehouse)[0]
+
+		self.assertEqual([[-1, 10]], eval(sle.stock_queue))
+
+		# further negative
+		make_stock_entry(item_code, warehouse, None, 1)
+		sle = get_sle(item_code = item_code, warehouse = warehouse)[0]
+
+		self.assertEqual([[-2, 10]], eval(sle.stock_queue))
+
+		# move stock to positive
+		make_stock_entry(item_code, None, warehouse, 3, incoming_rate=10)
+		sle = get_sle(item_code = item_code, warehouse = warehouse)[0]
+
+		self.assertEqual([[1, 10]], eval(sle.stock_queue))
+
+		frappe.db.set_default("allow_negative_stock", 0)
+
 	def test_auto_material_request(self):
-		frappe.db.sql("""delete from `tabMaterial Request Item`""")
-		frappe.db.sql("""delete from `tabMaterial Request`""")
-		self._clear_stock_account_balance()
+		self._test_auto_material_request("_Test Item")
+
+	def test_auto_material_request_for_variant(self):
+		self._test_auto_material_request("_Test Variant Item-S")
+
+	def _test_auto_material_request(self, item_code):
+		item = frappe.get_doc("Item", item_code)
+
+		if item.variant_of:
+			template = frappe.get_doc("Item", item.variant_of)
+		else:
+			template = item
+
+		warehouse = "_Test Warehouse - _TC"
+
+		# stock entry reqd for auto-reorder
+		make_stock_entry(item_code=item_code, target="_Test Warehouse 1 - _TC", qty=1, incoming_rate=1)
 
 		frappe.db.set_value("Stock Settings", None, "auto_indent", 1)
+		projected_qty = frappe.db.get_value("Bin", {"item_code": item_code,
+			"warehouse": warehouse}, "projected_qty") or 0
 
-		st1 = frappe.copy_doc(test_records[0])
-		st1.insert()
-		st1.submit()
-		st2 = frappe.copy_doc(test_records[1])
-		st2.insert()
-		st2.submit()
+		# update re-level qty so that it is more than projected_qty
+		if projected_qty > template.item_reorder[0].warehouse_reorder_level:
+			template.item_reorder[0].warehouse_reorder_level += projected_qty
+			template.save()
 
-		from erpnext.stock.utils import reorder_item
-		reorder_item()
+		from erpnext.stock.reorder_item import reorder_item
+		mr_list = reorder_item()
 
-		mr_name = frappe.db.sql("""select parent from `tabMaterial Request Item`
-			where item_code='_Test Item'""")
+		frappe.db.set_value("Stock Settings", None, "auto_indent", 0)
 
-		self.assertTrue(mr_name)
+		items = []
+		for mr in mr_list:
+			for d in mr.indent_details:
+				items.append(d.item_code)
+
+		self.assertTrue(item_code in items)
 
 	def test_material_receipt_gl_entry(self):
 		self._clear_stock_account_balance()
@@ -853,11 +921,35 @@
 			"total_fixed_cost": 1000
 		})
 		stock_entry.get_items()
+
 		fg_rate = [d.amount for d in stock_entry.get("mtn_details") if d.item_code=="_Test FG Item 2"][0]
 		self.assertEqual(fg_rate, 1200.00)
 		fg_rate = [d.amount for d in stock_entry.get("mtn_details") if d.item_code=="_Test Item"][0]
 		self.assertEqual(fg_rate, 100.00)
 
+	def test_variant_production_order(self):
+		bom_no = frappe.db.get_value("BOM", {"item": "_Test Variant Item",
+			"is_default": 1, "docstatus": 1})
+
+		production_order = frappe.new_doc("Production Order")
+		production_order.update({
+			"company": "_Test Company",
+			"fg_warehouse": "_Test Warehouse 1 - _TC",
+			"production_item": "_Test Variant Item-S",
+			"bom_no": bom_no,
+			"qty": 1.0,
+			"stock_uom": "Nos",
+			"wip_warehouse": "_Test Warehouse - _TC"
+		})
+		production_order.insert()
+		production_order.submit()
+
+		from erpnext.manufacturing.doctype.production_order.production_order import make_stock_entry
+
+		stock_entry = frappe.get_doc(make_stock_entry(production_order.name, "Manufacture", 1))
+		stock_entry.insert()
+		self.assertTrue("_Test Variant Item-S" in [d.item_code for d in stock_entry.mtn_details])
+
 def make_serialized_item(item_code=None, serial_no=None, target_warehouse=None):
 	se = frappe.copy_doc(test_records[0])
 	se.get("mtn_details")[0].item_code = item_code or "_Test Serialized Item With Series"
@@ -872,21 +964,27 @@
 	se.submit()
 	return se
 
-def make_stock_entry(item, source, target, qty, incoming_rate=None):
+def make_stock_entry(**args):
 	s = frappe.new_doc("Stock Entry")
-	if source and target:
-		s.purpose = "Material Transfer"
-	elif source:
-		s.purpose = "Material Issue"
-	else:
-		s.purpose = "Material Receipt"
-	s.company = "_Test Company"
+	args = frappe._dict(args)
+	if args.posting_date:
+		s.posting_date = args.posting_date
+	if args.posting_time:
+		s.posting_time = args.posting_time
+	if not args.purpose:
+		if args.source and args.target:
+			s.purpose = "Material Transfer"
+		elif args.source:
+			s.purpose = "Material Issue"
+		else:
+			s.purpose = "Material Receipt"
+	s.company = args.company or "_Test Company"
 	s.append("mtn_details", {
-		"item_code": item,
-		"s_warehouse": source,
-		"t_warehouse": target,
-		"qty": qty,
-		"incoming_rate": incoming_rate,
+		"item_code": args.item or args.item_code,
+		"s_warehouse": args.from_warehouse or args.source,
+		"t_warehouse": args.to_warehouse or args.target,
+		"qty": args.qty,
+		"incoming_rate": args.incoming_rate,
 		"conversion_factor": 1.0
 	})
 	s.insert()
diff --git a/erpnext/stock/doctype/stock_ledger_entry/stock_ledger_entry.py b/erpnext/stock/doctype/stock_ledger_entry/stock_ledger_entry.py
index 0e92b5d..a47878a 100644
--- a/erpnext/stock/doctype/stock_ledger_entry/stock_ledger_entry.py
+++ b/erpnext/stock/doctype/stock_ledger_entry/stock_ledger_entry.py
@@ -8,6 +8,7 @@
 from frappe.utils import flt, getdate, add_days, formatdate
 from frappe.model.document import Document
 from datetime import date
+from erpnext.stock.doctype.item.item import ItemTemplateCannotHaveStock
 
 class StockFreezeError(frappe.ValidationError): pass
 
@@ -44,13 +45,17 @@
 						formatdate(self.posting_date), self.posting_time))
 
 	def validate_mandatory(self):
-		mandatory = ['warehouse','posting_date','voucher_type','voucher_no','actual_qty','company']
+		mandatory = ['warehouse','posting_date','voucher_type','voucher_no','company']
 		for k in mandatory:
 			if not self.get(k):
 				frappe.throw(_("{0} is required").format(self.meta.get_label(k)))
 
+		if self.voucher_type != "Stock Reconciliation" and not self.actual_qty:
+			frappe.throw(_("Actual Qty is mandatory"))
+
 	def validate_item(self):
-		item_det = frappe.db.sql("""select name, has_batch_no, docstatus, is_stock_item
+		item_det = frappe.db.sql("""select name, has_batch_no, docstatus,
+			is_stock_item, has_variants
 			from tabItem where name=%s""", self.item_code, as_dict=True)[0]
 
 		if item_det.is_stock_item != 'Yes':
@@ -66,6 +71,10 @@
 					{"item": self.item_code, "name": self.batch_no}):
 				frappe.throw(_("{0} is not a valid Batch Number for Item {1}").format(self.batch_no, self.item_code))
 
+		if item_det.has_variants:
+			frappe.throw(_("Stock cannot exist for Item {0} since has variants").format(self.item_code),
+				ItemTemplateCannotHaveStock)
+
 		if not self.stock_uom:
 			self.stock_uom = item_det.stock_uom
 
diff --git a/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.json b/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.json
index 0035fe7..a7de288 100644
--- a/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.json
+++ b/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.json
@@ -1,144 +1,145 @@
 {
- "allow_copy": 1, 
- "autoname": "SR/.######", 
- "creation": "2013-03-28 10:35:31", 
- "description": "This tool helps you to update or fix the quantity and valuation of stock in the system. It is typically used to synchronise the system values and what actually exists in your warehouses.", 
- "docstatus": 0, 
- "doctype": "DocType", 
+ "allow_copy": 1,
+ "autoname": "SR/.######",
+ "creation": "2013-03-28 10:35:31",
+ "description": "This tool helps you to update or fix the quantity and valuation of stock in the system. It is typically used to synchronise the system values and what actually exists in your warehouses.",
+ "docstatus": 0,
+ "doctype": "DocType",
  "fields": [
   {
-   "fieldname": "posting_date", 
-   "fieldtype": "Date", 
-   "in_filter": 0, 
-   "in_list_view": 1, 
-   "label": "Posting Date", 
-   "oldfieldname": "reconciliation_date", 
-   "oldfieldtype": "Date", 
-   "permlevel": 0, 
-   "read_only": 0, 
+   "default": "Today",
+   "fieldname": "posting_date",
+   "fieldtype": "Date",
+   "in_filter": 0,
+   "in_list_view": 1,
+   "label": "Posting Date",
+   "oldfieldname": "reconciliation_date",
+   "oldfieldtype": "Date",
+   "permlevel": 0,
+   "read_only": 0,
    "reqd": 1
-  }, 
+  },
   {
-   "fieldname": "posting_time", 
-   "fieldtype": "Time", 
-   "in_filter": 0, 
-   "in_list_view": 1, 
-   "label": "Posting Time", 
-   "oldfieldname": "reconciliation_time", 
-   "oldfieldtype": "Time", 
-   "permlevel": 0, 
-   "read_only": 0, 
+   "fieldname": "posting_time",
+   "fieldtype": "Time",
+   "in_filter": 0,
+   "in_list_view": 1,
+   "label": "Posting Time",
+   "oldfieldname": "reconciliation_time",
+   "oldfieldtype": "Time",
+   "permlevel": 0,
+   "read_only": 0,
    "reqd": 1
-  }, 
+  },
   {
-   "fieldname": "amended_from", 
-   "fieldtype": "Link", 
-   "ignore_user_permissions": 1, 
-   "label": "Amended From", 
-   "no_copy": 1, 
-   "options": "Stock Reconciliation", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "amended_from",
+   "fieldtype": "Link",
+   "ignore_user_permissions": 1,
+   "label": "Amended From",
+   "no_copy": 1,
+   "options": "Stock Reconciliation",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 1
-  }, 
+  },
   {
-   "fieldname": "company", 
-   "fieldtype": "Link", 
-   "label": "Company", 
-   "options": "Company", 
-   "permlevel": 0, 
+   "fieldname": "company",
+   "fieldtype": "Link",
+   "label": "Company",
+   "options": "Company",
+   "permlevel": 0,
    "reqd": 1
-  }, 
+  },
   {
-   "fieldname": "fiscal_year", 
-   "fieldtype": "Link", 
-   "label": "Fiscal Year", 
-   "options": "Fiscal Year", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "fiscal_year",
+   "fieldtype": "Link",
+   "label": "Fiscal Year",
+   "options": "Fiscal Year",
+   "permlevel": 0,
+   "print_hide": 1,
    "reqd": 1
-  }, 
+  },
   {
-   "depends_on": "eval:cint(sys_defaults.auto_accounting_for_stock)", 
-   "fieldname": "expense_account", 
-   "fieldtype": "Link", 
-   "label": "Difference Account", 
-   "options": "Account", 
+   "depends_on": "eval:cint(sys_defaults.auto_accounting_for_stock)",
+   "fieldname": "expense_account",
+   "fieldtype": "Link",
+   "label": "Difference Account",
+   "options": "Account",
    "permlevel": 0
-  }, 
+  },
   {
-   "depends_on": "eval:cint(sys_defaults.auto_accounting_for_stock)", 
-   "fieldname": "cost_center", 
-   "fieldtype": "Link", 
-   "label": "Cost Center", 
-   "options": "Cost Center", 
+   "depends_on": "eval:cint(sys_defaults.auto_accounting_for_stock)",
+   "fieldname": "cost_center",
+   "fieldtype": "Link",
+   "label": "Cost Center",
+   "options": "Cost Center",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "col1", 
-   "fieldtype": "Column Break", 
+   "fieldname": "col1",
+   "fieldtype": "Column Break",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "upload_html", 
-   "fieldtype": "HTML", 
-   "label": "Upload HTML", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "upload_html",
+   "fieldtype": "HTML",
+   "label": "Upload HTML",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 1
-  }, 
+  },
   {
-   "depends_on": "reconciliation_json", 
-   "fieldname": "sb2", 
-   "fieldtype": "Section Break", 
-   "label": "Reconciliation Data", 
+   "depends_on": "reconciliation_json",
+   "fieldname": "sb2",
+   "fieldtype": "Section Break",
+   "label": "Reconciliation Data",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "reconciliation_html", 
-   "fieldtype": "HTML", 
-   "hidden": 0, 
-   "label": "Reconciliation HTML", 
-   "permlevel": 0, 
-   "print_hide": 0, 
+   "fieldname": "reconciliation_html",
+   "fieldtype": "HTML",
+   "hidden": 0,
+   "label": "Reconciliation HTML",
+   "permlevel": 0,
+   "print_hide": 0,
    "read_only": 1
-  }, 
+  },
   {
-   "fieldname": "reconciliation_json", 
-   "fieldtype": "Long Text", 
-   "hidden": 1, 
-   "label": "Reconciliation JSON", 
-   "no_copy": 1, 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "reconciliation_json",
+   "fieldtype": "Long Text",
+   "hidden": 1,
+   "label": "Reconciliation JSON",
+   "no_copy": 1,
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 1
   }
- ], 
- "icon": "icon-upload-alt", 
- "idx": 1, 
- "is_submittable": 1, 
- "max_attachments": 1, 
- "modified": "2014-10-08 12:47:52.102135", 
- "modified_by": "Administrator", 
- "module": "Stock", 
- "name": "Stock Reconciliation", 
- "owner": "Administrator", 
+ ],
+ "icon": "icon-upload-alt",
+ "idx": 1,
+ "is_submittable": 1,
+ "max_attachments": 1,
+ "modified": "2014-10-08 12:47:52.102135",
+ "modified_by": "Administrator",
+ "module": "Stock",
+ "name": "Stock Reconciliation",
+ "owner": "Administrator",
  "permissions": [
   {
-   "amend": 0, 
-   "cancel": 1, 
-   "create": 1, 
-   "delete": 1, 
-   "permlevel": 0, 
-   "read": 1, 
-   "report": 1, 
-   "role": "Material Manager", 
-   "submit": 1, 
+   "amend": 0,
+   "cancel": 1,
+   "create": 1,
+   "delete": 1,
+   "permlevel": 0,
+   "read": 1,
+   "report": 1,
+   "role": "Material Manager",
+   "submit": 1,
    "write": 1
   }
- ], 
- "read_only_onload": 0, 
- "search_fields": "posting_date", 
- "sort_field": "modified", 
+ ],
+ "read_only_onload": 0,
+ "search_fields": "posting_date",
+ "sort_field": "modified",
  "sort_order": "DESC"
-}
\ No newline at end of file
+}
diff --git a/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py b/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py
index 40a980d..530ab9a 100644
--- a/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py
+++ b/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py
@@ -16,13 +16,11 @@
 		self.head_row = ["Item Code", "Warehouse", "Quantity", "Valuation Rate"]
 
 	def validate(self):
-		self.entries = []
-
 		self.validate_data()
 		self.validate_expense_account()
 
 	def on_submit(self):
-		self.insert_stock_ledger_entries()
+		self.update_stock_ledger()
 		self.make_gl_entries()
 
 	def on_cancel(self):
@@ -126,10 +124,9 @@
 		except Exception, e:
 			self.validation_messages.append(_("Row # ") + ("%d: " % (row_num)) + cstr(e))
 
-	def insert_stock_ledger_entries(self):
+	def update_stock_ledger(self):
 		"""	find difference between current and expected entries
 			and create stock ledger entries based on the difference"""
-		from erpnext.stock.utils import get_valuation_method
 		from erpnext.stock.stock_ledger import get_previous_sle
 
 		row_template = ["item_code", "warehouse", "qty", "valuation_rate"]
@@ -141,105 +138,27 @@
 		for row_num, row in enumerate(data[data.index(self.head_row)+1:]):
 			row = frappe._dict(zip(row_template, row))
 			row["row_num"] = row_num
-			previous_sle = get_previous_sle({
-				"item_code": row.item_code,
-				"warehouse": row.warehouse,
-				"posting_date": self.posting_date,
-				"posting_time": self.posting_time
-			})
 
-			# check valuation rate mandatory
-			if row.qty not in ["", None] and not row.valuation_rate and \
-					flt(previous_sle.get("qty_after_transaction")) <= 0:
-				frappe.throw(_("Valuation Rate required for Item {0}").format(row.item_code))
+			if row.qty in ("", None) or row.valuation_rate in ("", None):
+				previous_sle = get_previous_sle({
+					"item_code": row.item_code,
+					"warehouse": row.warehouse,
+					"posting_date": self.posting_date,
+					"posting_time": self.posting_time
+				})
 
-			change_in_qty = row.qty not in ["", None] and \
-				(flt(row.qty) - flt(previous_sle.get("qty_after_transaction")))
+				if row.qty in ("", None):
+					row.qty = previous_sle.get("qty_after_transaction")
 
-			change_in_rate = row.valuation_rate not in ["", None] and \
-				(flt(row.valuation_rate) - flt(previous_sle.get("valuation_rate")))
+				if row.valuation_rate in ("", None):
+					row.valuation_rate = previous_sle.get("valuation_rate")
 
-			if get_valuation_method(row.item_code) == "Moving Average":
-				self.sle_for_moving_avg(row, previous_sle, change_in_qty, change_in_rate)
+			# if row.qty and not row.valuation_rate:
+			# 	frappe.throw(_("Valuation Rate required for Item {0}").format(row.item_code))
 
-			else:
-				self.sle_for_fifo(row, previous_sle, change_in_qty, change_in_rate)
+			self.insert_entries(row)
 
-	def sle_for_moving_avg(self, row, previous_sle, change_in_qty, change_in_rate):
-		"""Insert Stock Ledger Entries for Moving Average valuation"""
-		def _get_incoming_rate(qty, valuation_rate, previous_qty, previous_valuation_rate):
-			if previous_valuation_rate == 0:
-				return flt(valuation_rate)
-			else:
-				if valuation_rate in ["", None]:
-					valuation_rate = previous_valuation_rate
-				return (qty * valuation_rate - previous_qty * previous_valuation_rate) \
-					/ flt(qty - previous_qty)
-
-		if change_in_qty:
-			# if change in qty, irrespective of change in rate
-			incoming_rate = _get_incoming_rate(flt(row.qty), flt(row.valuation_rate),
-				flt(previous_sle.get("qty_after_transaction")), flt(previous_sle.get("valuation_rate")))
-
-			row["voucher_detail_no"] = "Row: " + cstr(row.row_num) + "/Actual Entry"
-			self.insert_entries({"actual_qty": change_in_qty, "incoming_rate": incoming_rate}, row)
-
-		elif change_in_rate and flt(previous_sle.get("qty_after_transaction")) > 0:
-			# if no change in qty, but change in rate
-			# and positive actual stock before this reconciliation
-			incoming_rate = _get_incoming_rate(
-				flt(previous_sle.get("qty_after_transaction"))+1, flt(row.valuation_rate),
-				flt(previous_sle.get("qty_after_transaction")),
-				flt(previous_sle.get("valuation_rate")))
-
-			# +1 entry
-			row["voucher_detail_no"] = "Row: " + cstr(row.row_num) + "/Valuation Adjustment +1"
-			self.insert_entries({"actual_qty": 1, "incoming_rate": incoming_rate}, row)
-
-			# -1 entry
-			row["voucher_detail_no"] = "Row: " + cstr(row.row_num) + "/Valuation Adjustment -1"
-			self.insert_entries({"actual_qty": -1}, row)
-
-	def sle_for_fifo(self, row, previous_sle, change_in_qty, change_in_rate):
-		"""Insert Stock Ledger Entries for FIFO valuation"""
-		previous_stock_queue = json.loads(previous_sle.get("stock_queue") or "[]")
-		previous_stock_qty = sum((batch[0] for batch in previous_stock_queue))
-		previous_stock_value = sum((batch[0] * batch[1] for batch in \
-			previous_stock_queue))
-
-		def _insert_entries():
-			if previous_stock_queue != [[row.qty, row.valuation_rate]]:
-				# make entry as per attachment
-				if flt(row.qty):
-					row["voucher_detail_no"] = "Row: " + cstr(row.row_num) + "/Actual Entry"
-					self.insert_entries({"actual_qty": row.qty,
-						"incoming_rate": flt(row.valuation_rate)}, row)
-
-				# Make reverse entry
-				if previous_stock_qty:
-					row["voucher_detail_no"] = "Row: " + cstr(row.row_num) + "/Reverse Entry"
-					self.insert_entries({"actual_qty": -1 * previous_stock_qty,
-						"incoming_rate": previous_stock_qty < 0 and
-							flt(row.valuation_rate) or 0}, row)
-
-
-		if change_in_qty:
-			if row.valuation_rate in ["", None]:
-				# dont want change in valuation
-				if previous_stock_qty > 0:
-					# set valuation_rate as previous valuation_rate
-					row.valuation_rate = previous_stock_value / flt(previous_stock_qty)
-
-			_insert_entries()
-
-		elif change_in_rate and previous_stock_qty > 0:
-			# if no change in qty, but change in rate
-			# and positive actual stock before this reconciliation
-
-			row.qty = previous_stock_qty
-			_insert_entries()
-
-	def insert_entries(self, opts, row):
+	def insert_entries(self, row):
 		"""Insert Stock Ledger Entries"""
 		args = frappe._dict({
 			"doctype": "Stock Ledger Entry",
@@ -251,16 +170,13 @@
 			"voucher_no": self.name,
 			"company": self.company,
 			"stock_uom": frappe.db.get_value("Item", row.item_code, "stock_uom"),
-			"voucher_detail_no": row.voucher_detail_no,
 			"fiscal_year": self.fiscal_year,
-			"is_cancelled": "No"
+			"is_cancelled": "No",
+			"qty_after_transaction": row.qty,
+			"valuation_rate": row.valuation_rate
 		})
-		args.update(opts)
 		self.make_sl_entries([args])
 
-		# append to entries
-		self.entries.append(args)
-
 	def delete_and_repost_sle(self):
 		"""	Delete Stock Ledger Entries related to this voucher
 			and repost future Stock Ledger Entries"""
@@ -295,7 +211,7 @@
 
 		if not self.expense_account:
 			msgprint(_("Please enter Expense Account"), raise_exception=1)
-		elif not frappe.db.sql("""select * from `tabStock Ledger Entry`"""):
+		elif not frappe.db.sql("""select name from `tabStock Ledger Entry` limit 1"""):
 			if frappe.db.get_value("Account", self.expense_account, "report_type") == "Profit and Loss":
 				frappe.throw(_("Difference Account must be a 'Liability' type account, since this Stock Reconciliation is an Opening Entry"))
 
diff --git a/erpnext/stock/doctype/stock_reconciliation/test_stock_reconciliation.py b/erpnext/stock/doctype/stock_reconciliation/test_stock_reconciliation.py
index 183e3e5..91775d9 100644
--- a/erpnext/stock/doctype/stock_reconciliation/test_stock_reconciliation.py
+++ b/erpnext/stock/doctype/stock_reconciliation/test_stock_reconciliation.py
@@ -28,7 +28,7 @@
 			[20, "", "2012-12-26", "12:05", 16000, 15, 18000],
 			[10, 2000, "2012-12-26", "12:10", 20000, 5, 6000],
 			[1, 1000, "2012-12-01", "00:00", 1000, 11, 13200],
-			[0, "", "2012-12-26", "12:10", 0, -5, 0]
+			[0, "", "2012-12-26", "12:10", 0, -5, -6000]
 		]
 
 		for d in input_data:
@@ -63,16 +63,16 @@
 		input_data = [
 			[50, 1000, "2012-12-26", "12:00", 50000, 45, 48000],
 			[5, 1000, "2012-12-26", "12:00", 5000, 0, 0],
-			[15, 1000, "2012-12-26", "12:00", 15000, 10, 12000],
+			[15, 1000, "2012-12-26", "12:00", 15000, 10, 11500],
 			[25, 900, "2012-12-26", "12:00", 22500, 20, 22500],
 			[20, 500, "2012-12-26", "12:00", 10000, 15, 18000],
 			[50, 1000, "2013-01-01", "12:00", 50000, 65, 68000],
 			[5, 1000, "2013-01-01", "12:00", 5000, 20, 23000],
-			["", 1000, "2012-12-26", "12:05", 15000, 10, 12000],
+			["", 1000, "2012-12-26", "12:05", 15000, 10, 11500],
 			[20, "", "2012-12-26", "12:05", 18000, 15, 18000],
-			[10, 2000, "2012-12-26", "12:10", 20000, 5, 6000],
-			[1, 1000, "2012-12-01", "00:00", 1000, 11, 13200],
-			[0, "", "2012-12-26", "12:10", 0, -5, 0]
+			[10, 2000, "2012-12-26", "12:10", 20000, 5, 7600],
+			[1, 1000, "2012-12-01", "00:00", 1000, 11, 12512.73],
+			[0, "", "2012-12-26", "12:10", 0, -5, -5142.86]
 
 		]
 
diff --git a/erpnext/stock/doctype/stock_settings/stock_settings.py b/erpnext/stock/doctype/stock_settings/stock_settings.py
index b505394..12ab0c9 100644
--- a/erpnext/stock/doctype/stock_settings/stock_settings.py
+++ b/erpnext/stock/doctype/stock_settings/stock_settings.py
@@ -6,18 +6,17 @@
 from __future__ import unicode_literals
 import frappe
 from frappe import _
-
+from frappe.utils import cint
 from frappe.model.document import Document
 
 class StockSettings(Document):
 
 	def validate(self):
-		for key in ["item_naming_by", "item_group", "stock_uom",
-			"allow_negative_stock"]:
+		for key in ["item_naming_by", "item_group", "stock_uom", "allow_negative_stock"]:
 			frappe.db.set_default(key, self.get(key, ""))
-			
+
 		from erpnext.setup.doctype.naming_series.naming_series import set_by_naming_series
-		set_by_naming_series("Item", "item_code", 
+		set_by_naming_series("Item", "item_code",
 			self.get("item_naming_by")=="Naming Series", hide_name_field=True)
 
 		stock_frozen_limit = 356
@@ -25,3 +24,5 @@
 		if submitted_stock_frozen > stock_frozen_limit:
 			self.stock_frozen_upto_days = stock_frozen_limit
 			frappe.msgprint (_("`Freeze Stocks Older Than` should be smaller than %d days.") %stock_frozen_limit)
+
+
diff --git a/erpnext/stock/doctype/stock_uom_replace_utility/stock_uom_replace_utility.py b/erpnext/stock/doctype/stock_uom_replace_utility/stock_uom_replace_utility.py
index a14c21e..864a2c6 100644
--- a/erpnext/stock/doctype/stock_uom_replace_utility/stock_uom_replace_utility.py
+++ b/erpnext/stock/doctype/stock_uom_replace_utility/stock_uom_replace_utility.py
@@ -33,7 +33,7 @@
 		item_doc.stock_uom = self.new_stock_uom
 		item_doc.save()
 
-		frappe.msgprint(_("Stock UOM updatd for Item {0}").format(self.item_code))
+		frappe.msgprint(_("Stock UOM updated for Item {0}").format(self.item_code))
 
 	def update_bin(self):
 		# update bin
diff --git a/erpnext/stock/get_item_details.py b/erpnext/stock/get_item_details.py
index 19f9724..0789a33 100644
--- a/erpnext/stock/get_item_details.py
+++ b/erpnext/stock/get_item_details.py
@@ -40,7 +40,7 @@
 
 	validate_item_details(args, item)
 
-	out = get_basic_details(args, item_doc)
+	out = get_basic_details(args, item)
 
 	get_party_item_code(args, item_doc, out)
 
@@ -129,8 +129,12 @@
 		if args.get("is_subcontracted") == "Yes" and item.is_sub_contracted_item != "Yes":
 			throw(_("Item {0} must be a Sub-contracted Item").format(item.name))
 
-def get_basic_details(args, item_doc):
-	item = item_doc
+def get_basic_details(args, item):
+	if not item:
+		item = frappe.get_doc("Item", args.get("item_code"))
+
+	if item.variant_of:
+		item.update_template_tables()
 
 	from frappe.defaults import get_user_default_as_list
 	user_default_warehouse_list = get_user_default_as_list('warehouse')
@@ -138,31 +142,21 @@
 		if len(user_default_warehouse_list)==1 else ""
 
 	out = frappe._dict({
-
 		"item_code": item.name,
 		"item_name": item.item_name,
 		"description": item.description_html or item.description,
 		"warehouse": user_default_warehouse or args.warehouse or item.default_warehouse,
-		"income_account": (item.income_account
-			or args.income_account
-			or frappe.db.get_value("Item Group", item.item_group, "default_income_account")
-			or frappe.db.get_value("Company", args.company, "default_income_account")),
-		"expense_account": (item.expense_account
-			or args.expense_account
-			or frappe.db.get_value("Item Group", item.item_group, "default_expense_account")
-			or frappe.db.get_value("Company", args.company, "default_expense_account")),
-		"cost_center": (frappe.db.get_value("Project", args.project_name, "cost_center")
-			or (item.selling_cost_center if args.transaction_type == "selling" else item.buying_cost_center)
-			or frappe.db.get_value("Item Group", item.item_group, "default_cost_center")
-			or frappe.db.get_value("Company", args.company, "cost_center")),
+		"income_account": get_default_income_account(args, item),
+		"expense_account": get_default_expense_account(args, item),
+		"cost_center": get_default_cost_center(args, item),
 		"batch_no": None,
 		"item_tax_rate": json.dumps(dict(([d.tax_type, d.tax_rate] for d in
-			item_doc.get("item_tax")))),
+			item.get("item_tax")))),
 		"uom": item.stock_uom,
 		"min_order_qty": flt(item.min_order_qty) if args.parenttype == "Material Request" else "",
 		"conversion_factor": 1.0,
-		"qty": 1.0,
-		"stock_qty": 1.0,
+		"qty": 0.0,
+		"stock_qty": 0.0,
 		"price_list_rate": 0.0,
 		"base_price_list_rate": 0.0,
 		"rate": 0.0,
@@ -177,6 +171,24 @@
 
 	return out
 
+def get_default_income_account(args, item):
+	return (item.income_account
+		or args.income_account
+		or frappe.db.get_value("Item Group", item.item_group, "default_income_account")
+		or frappe.db.get_value("Company", args.company, "default_income_account"))
+
+def get_default_expense_account(args, item):
+	return (item.expense_account
+		or args.expense_account
+		or frappe.db.get_value("Item Group", item.item_group, "default_expense_account")
+		or frappe.db.get_value("Company", args.company, "default_expense_account"))
+
+def get_default_cost_center(args, item):
+	return (frappe.db.get_value("Project", args.get("project_name"), "cost_center")
+		or (item.selling_cost_center if args.get("transaction_type") == "selling" else item.buying_cost_center)
+		or frappe.db.get_value("Item Group", item.item_group, "default_cost_center")
+		or frappe.db.get_value("Company", args.get("company"), "cost_center"))
+
 def get_price_list_rate(args, item_doc, out):
 	meta = frappe.get_meta(args.parenttype)
 
@@ -185,10 +197,12 @@
 		validate_conversion_rate(args, meta)
 
 
-		price_list_rate = frappe.db.get_value("Item Price",
-			{"price_list": args.price_list, "item_code": args.item_code}, "price_list_rate")
+		price_list_rate = get_price_list_rate_for(args, item_doc.name)
+		if not price_list_rate and item_doc.variant_of:
+			price_list_rate = get_price_list_rate_for(args, item_doc.variant_of)
 
-		if not price_list_rate: return {}
+		if not price_list_rate:
+			return {}
 
 		out.price_list_rate = flt(price_list_rate) * flt(args.plc_conversion_rate) \
 			/ flt(args.conversion_rate)
@@ -198,6 +212,10 @@
 			out.update(get_last_purchase_details(item_doc.name,
 				args.parent, args.conversion_rate))
 
+def get_price_list_rate_for(args, item_code):
+	return frappe.db.get_value("Item Price",
+			{"price_list": args.price_list, "item_code": item_code}, "price_list_rate")
+
 def validate_price_list(args):
 	if args.get("price_list"):
 		if not frappe.db.get_value("Price List",
@@ -236,7 +254,6 @@
 		item_supplier = item_doc.get("item_supplier_details", {"supplier": args.supplier})
 		out.supplier_part_no = item_supplier[0].supplier_part_no if item_supplier else None
 
-
 def get_pos_settings_item_details(company, args, pos_settings=None):
 	res = frappe._dict()
 
@@ -276,8 +293,13 @@
 
 @frappe.whitelist()
 def get_conversion_factor(item_code, uom):
+	variant_of = frappe.db.get_value("Item", item_code, "variant_of")
+	filters = {"parent": item_code, "uom": uom}
+	if variant_of:
+		filters = {"parent": ("in", (item_code, variant_of))}
+
 	return {"conversion_factor": frappe.db.get_value("UOM Conversion Detail",
-		{"parent": item_code, "uom": uom}, "conversion_factor")}
+		filters, "conversion_factor")}
 
 @frappe.whitelist()
 def get_projected_qty(item_code, warehouse):
diff --git a/erpnext/stock/page/stock_balance/README.md b/erpnext/stock/page/stock_balance/README.md
deleted file mode 100644
index 6522aeb..0000000
--- a/erpnext/stock/page/stock_balance/README.md
+++ /dev/null
@@ -1 +0,0 @@
-Stock balances on a particular day, per warehouse.
\ No newline at end of file
diff --git a/erpnext/stock/page/stock_balance/stock_balance.js b/erpnext/stock/page/stock_balance/stock_balance.js
deleted file mode 100644
index 1083414..0000000
--- a/erpnext/stock/page/stock_balance/stock_balance.js
+++ /dev/null
@@ -1,181 +0,0 @@
-// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
-// License: GNU General Public License v3. See license.txt
-
-frappe.require("assets/erpnext/js/stock_analytics.js");
-
-frappe.pages['stock-balance'].onload = function(wrapper) {
-	frappe.ui.make_app_page({
-		parent: wrapper,
-		title: __('Stock Balance'),
-		single_column: true
-	});
-
-	new erpnext.StockBalance(wrapper);
-
-	wrapper.appframe.add_module_icon("Stock");
-}
-
-erpnext.StockBalance = erpnext.StockAnalytics.extend({
-	init: function(wrapper) {
-		this._super(wrapper, {
-			title: __("Stock Balance"),
-			doctypes: ["Item", "Item Group", "Warehouse", "Stock Ledger Entry", "Brand",
-				"Stock Entry", "Project", "Serial No"],
-		});
-	},
-	setup_columns: function() {
-		this.columns = [
-			{id: "name", name: __("Item"), field: "name", width: 300,
-				formatter: this.tree_formatter},
-			{id: "item_name", name: __("Item Name"), field: "item_name", width: 100},
-			{id: "description", name: __("Description"), field: "description", width: 200,
-				formatter: this.text_formatter},
-			{id: "brand", name: __("Brand"), field: "brand", width: 100},
-			{id: "stock_uom", name: __("UOM"), field: "stock_uom", width: 100},
-			{id: "opening_qty", name: __("Opening Qty"), field: "opening_qty", width: 100,
-				formatter: this.currency_formatter},
-			{id: "inflow_qty", name: __("In Qty"), field: "inflow_qty", width: 100,
-				formatter: this.currency_formatter},
-			{id: "outflow_qty", name: __("Out Qty"), field: "outflow_qty", width: 100,
-				formatter: this.currency_formatter},
-			{id: "closing_qty", name: __("Closing Qty"), field: "closing_qty", width: 100,
-				formatter: this.currency_formatter},
-
-			{id: "opening_value", name: __("Opening Value"), field: "opening_value", width: 100,
-				formatter: this.currency_formatter},
-			{id: "inflow_value", name: __("In Value"), field: "inflow_value", width: 100,
-				formatter: this.currency_formatter},
-			{id: "outflow_value", name: __("Out Value"), field: "outflow_value", width: 100,
-				formatter: this.currency_formatter},
-			{id: "closing_value", name: __("Closing Value"), field: "closing_value", width: 100,
-				formatter: this.currency_formatter},
-			{id: "valuation_rate", name: __("Valuation Rate"), field: "valuation_rate", width: 100,
-				formatter: this.currency_formatter},
-		];
-	},
-
-	filters: [
-		{fieldtype:"Select", label: __("Brand"), link:"Brand", fieldname: "brand",
-			default_value: __("Select Brand..."), filter: function(val, item, opts) {
-				return val == opts.default_value || item.brand == val || item._show;
-			}, link_formatter: {filter_input: "brand"}},
-		{fieldtype:"Select", label: __("Warehouse"), link:"Warehouse", fieldname: "warehouse",
-			default_value: __("Select Warehouse..."), filter: function(val, item, opts, me) {
-				return me.apply_zero_filter(val, item, opts, me);
-			}},
-		{fieldtype:"Select", label: __("Project"), link:"Project", fieldname: "project",
-			default_value: __("Select Project..."), filter: function(val, item, opts, me) {
-				return me.apply_zero_filter(val, item, opts, me);
-			}, link_formatter: {filter_input: "project"}},
-		{fieldtype:"Date", label: __("From Date"), fieldname: "from_date"},
-		{fieldtype:"Label", label: __("To")},
-		{fieldtype:"Date", label: __("To Date"), fieldname: "to_date"},
-		{fieldtype:"Button", label: __("Refresh"), icon:"icon-refresh icon-white"},
-		{fieldtype:"Button", label: __("Reset Filters"), icon: "icon-filter"}
-	],
-
-	setup_plot_check: function() {
-		return;
-	},
-
-	prepare_data: function() {
-		this.stock_entry_map = this.make_name_map(frappe.report_dump.data["Stock Entry"], "name");
-		this._super();
-	},
-
-	prepare_balances: function() {
-		var me = this;
-		var from_date = dateutil.str_to_obj(this.from_date);
-		var to_date = dateutil.str_to_obj(this.to_date);
-		var data = frappe.report_dump.data["Stock Ledger Entry"];
-
-		this.item_warehouse = {};
-		this.serialized_buying_rates = this.get_serialized_buying_rates();
-
-		for(var i=0, j=data.length; i<j; i++) {
-			var sl = data[i];
-			var sl_posting_date = dateutil.str_to_obj(sl.posting_date);
-
-			if((me.is_default("warehouse") ? true : me.warehouse == sl.warehouse) &&
-				(me.is_default("project") ? true : me.project == sl.project)) {
-				var item = me.item_by_name[sl.item_code];
-				var wh = me.get_item_warehouse(sl.warehouse, sl.item_code);
-				var valuation_method = item.valuation_method ?
-					item.valuation_method : sys_defaults.valuation_method;
-				var is_fifo = valuation_method == "FIFO";
-
-				var qty_diff = sl.qty;
-				var value_diff = me.get_value_diff(wh, sl, is_fifo);
-
-				if(sl_posting_date < from_date) {
-					item.opening_qty += qty_diff;
-					item.opening_value += value_diff;
-				} else if(sl_posting_date <= to_date) {
-					var ignore_inflow_outflow = this.is_default("warehouse")
-						&& sl.voucher_type=="Stock Entry"
-						&& this.stock_entry_map[sl.voucher_no].purpose=="Material Transfer";
-
-					if(!ignore_inflow_outflow) {
-						if(qty_diff < 0) {
-							item.outflow_qty += Math.abs(qty_diff);
-						} else {
-							item.inflow_qty += qty_diff;
-						}
-						if(value_diff < 0) {
-							item.outflow_value += Math.abs(value_diff);
-						} else {
-							item.inflow_value += value_diff;
-						}
-
-						item.closing_qty += qty_diff;
-						item.closing_value += value_diff;
-					}
-
-				} else {
-					break;
-				}
-			}
-		}
-
-		// opening + diff = closing
-		// adding opening, since diff already added to closing
-		$.each(me.item_by_name, function(key, item) {
-			item.closing_qty += item.opening_qty;
-			item.closing_value += item.opening_value;
-
-			// valuation rate
-			if(!item.is_group && flt(item.closing_qty) > 0)
-				item.valuation_rate = flt(item.closing_value) / flt(item.closing_qty);
-			else item.valuation_rate = 0.0
-		});
-	},
-
-	update_groups: function() {
-		var me = this;
-
-		$.each(this.data, function(i, item) {
-			// update groups
-			if(!item.is_group && me.apply_filter(item, "brand")) {
-				var parent = me.parent_map[item.name];
-				while(parent) {
-					parent_group = me.item_by_name[parent];
-					$.each(me.columns, function(c, col) {
-						if (col.formatter == me.currency_formatter && col.field != "valuation_rate") {
-							parent_group[col.field] = flt(parent_group[col.field]) + flt(item[col.field]);
-						}
-					});
-
-					// show parent if filtered by brand
-					if(item.brand == me.brand)
-						parent_group._show = true;
-
-					parent = me.parent_map[parent];
-				}
-			}
-		});
-	},
-
-	get_plot_data: function() {
-		return;
-	}
-});
diff --git a/erpnext/stock/page/stock_balance/stock_balance.json b/erpnext/stock/page/stock_balance/stock_balance.json
deleted file mode 100644
index 6f25be4..0000000
--- a/erpnext/stock/page/stock_balance/stock_balance.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "creation": "2012-12-27 18:57:47.000000", 
- "docstatus": 0, 
- "doctype": "Page", 
- "icon": "icon-table", 
- "idx": 1, 
- "modified": "2013-07-11 14:44:15.000000", 
- "modified_by": "Administrator", 
- "module": "Stock", 
- "name": "stock-balance", 
- "owner": "Administrator", 
- "page_name": "stock-balance", 
- "roles": [
-  {
-   "role": "Material Manager"
-  }, 
-  {
-   "role": "Analytics"
-  }
- ], 
- "standard": "Yes", 
- "title": "Stock Balance"
-}
\ No newline at end of file
diff --git a/erpnext/stock/reorder_item.py b/erpnext/stock/reorder_item.py
new file mode 100644
index 0000000..3afbb4b
--- /dev/null
+++ b/erpnext/stock/reorder_item.py
@@ -0,0 +1,196 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
+# License: GNU General Public License v3. See license.txt
+
+import frappe
+from frappe import _
+from frappe.utils import flt, cstr, nowdate, add_days, cint
+from erpnext.accounts.utils import get_fiscal_year, FiscalYearError
+
+def reorder_item():
+	""" Reorder item if stock reaches reorder level"""
+	# if initial setup not completed, return
+	if not frappe.db.sql("select name from `tabFiscal Year` limit 1"):
+		return
+
+	if getattr(frappe.local, "auto_indent", None) is None:
+		frappe.local.auto_indent = cint(frappe.db.get_value('Stock Settings', None, 'auto_indent'))
+
+	if frappe.local.auto_indent:
+		return _reorder_item()
+
+def _reorder_item():
+	material_requests = {"Purchase": {}, "Transfer": {}}
+
+	item_warehouse_projected_qty = get_item_warehouse_projected_qty()
+
+	warehouse_company = frappe._dict(frappe.db.sql("""select name, company
+		from `tabWarehouse`"""))
+	default_company = (frappe.defaults.get_defaults().get("company") or
+		frappe.db.sql("""select name from tabCompany limit 1""")[0][0])
+
+	def add_to_material_request(item_code, warehouse, reorder_level, reorder_qty, material_request_type):
+		if warehouse not in item_warehouse_projected_qty[item_code]:
+			# likely a disabled warehouse or a warehouse where BIN does not exist
+			return
+
+		reorder_level = flt(reorder_level)
+		reorder_qty = flt(reorder_qty)
+		projected_qty = item_warehouse_projected_qty[item_code][warehouse]
+
+		if reorder_level and projected_qty < reorder_level:
+			deficiency = reorder_level - projected_qty
+			if deficiency > reorder_qty:
+				reorder_qty = deficiency
+
+			company = warehouse_company.get(warehouse) or default_company
+
+			material_requests[material_request_type].setdefault(company, []).append({
+				"item_code": item_code,
+				"warehouse": warehouse,
+				"reorder_qty": reorder_qty
+			})
+
+	for item_code in item_warehouse_projected_qty:
+		item = frappe.get_doc("Item", item_code)
+
+		if item.variant_of and not item.get("item_reorder"):
+			item.update_template_tables()
+
+		if item.get("item_reorder"):
+			for d in item.get("item_reorder"):
+				add_to_material_request(item_code, d.warehouse, d.warehouse_reorder_level,
+					d.warehouse_reorder_qty, d.material_request_type)
+
+		else:
+			# raise for default warehouse
+			add_to_material_request(item_code, item.default_warehouse, item.re_order_level, item.re_order_qty, "Purchase")
+
+	if material_requests:
+		return create_material_request(material_requests)
+
+def get_item_warehouse_projected_qty():
+	item_warehouse_projected_qty = {}
+
+	for item_code, warehouse, projected_qty in frappe.db.sql("""select item_code, warehouse, projected_qty
+		from tabBin where ifnull(item_code, '') != '' and ifnull(warehouse, '') != ''
+		and exists (select name from `tabItem`
+			where `tabItem`.name = `tabBin`.item_code and
+			is_stock_item='Yes' and (is_purchase_item='Yes' or is_sub_contracted_item='Yes') and
+			(ifnull(end_of_life, '0000-00-00')='0000-00-00' or end_of_life > %s))
+		and exists (select name from `tabWarehouse`
+			where `tabWarehouse`.name = `tabBin`.warehouse
+			and ifnull(disabled, 0)=0)""", nowdate()):
+
+		item_warehouse_projected_qty.setdefault(item_code, {})[warehouse] = flt(projected_qty)
+
+	return item_warehouse_projected_qty
+
+def create_material_request(material_requests):
+	"""	Create indent on reaching reorder level	"""
+	mr_list = []
+	defaults = frappe.defaults.get_defaults()
+	exceptions_list = []
+
+	def _log_exception():
+		if frappe.local.message_log:
+			exceptions_list.extend(frappe.local.message_log)
+			frappe.local.message_log = []
+		else:
+			exceptions_list.append(frappe.get_traceback())
+
+	try:
+		current_fiscal_year = get_fiscal_year(nowdate())[0] or defaults.fiscal_year
+
+	except FiscalYearError:
+		_log_exception()
+		notify_errors(exceptions_list)
+		return
+
+	for request_type in material_requests:
+		for company in material_requests[request_type]:
+			try:
+				items = material_requests[request_type][company]
+				if not items:
+					continue
+
+				mr = frappe.new_doc("Material Request")
+				mr.update({
+					"company": company,
+					"fiscal_year": current_fiscal_year,
+					"transaction_date": nowdate(),
+					"material_request_type": request_type
+				})
+
+				for d in items:
+					d = frappe._dict(d)
+					item = frappe.get_doc("Item", d.item_code)
+					mr.append("indent_details", {
+						"doctype": "Material Request Item",
+						"item_code": d.item_code,
+						"schedule_date": add_days(nowdate(),cint(item.lead_time_days)),
+						"uom":	item.stock_uom,
+						"warehouse": d.warehouse,
+						"item_name": item.item_name,
+						"description": item.description,
+						"item_group": item.item_group,
+						"qty": d.reorder_qty,
+						"brand": item.brand,
+					})
+
+				mr.insert()
+				mr.submit()
+				mr_list.append(mr)
+
+			except:
+				_log_exception()
+
+	if mr_list:
+		if getattr(frappe.local, "reorder_email_notify", None) is None:
+			frappe.local.reorder_email_notify = cint(frappe.db.get_value('Stock Settings', None,
+				'reorder_email_notify'))
+
+		if(frappe.local.reorder_email_notify):
+			send_email_notification(mr_list)
+
+	if exceptions_list:
+		notify_errors(exceptions_list)
+
+	return mr_list
+
+def send_email_notification(mr_list):
+	""" Notify user about auto creation of indent"""
+
+	email_list = frappe.db.sql_list("""select distinct r.parent
+		from tabUserRole r, tabUser p
+		where p.name = r.parent and p.enabled = 1 and p.docstatus < 2
+		and r.role in ('Purchase Manager','Material Manager')
+		and p.name not in ('Administrator', 'All', 'Guest')""")
+
+	msg="""<h3>Following Material Requests has been raised automatically \
+		based on item reorder level:</h3>"""
+	for mr in mr_list:
+		msg += "<p><b><u>" + mr.name + """</u></b></p><table class='table table-bordered'><tr>
+			<th>Item Code</th><th>Warehouse</th><th>Qty</th><th>UOM</th></tr>"""
+		for item in mr.get("indent_details"):
+			msg += "<tr><td>" + item.item_code + "</td><td>" + item.warehouse + "</td><td>" + \
+				cstr(item.qty) + "</td><td>" + cstr(item.uom) + "</td></tr>"
+		msg += "</table>"
+	frappe.sendmail(recipients=email_list, subject='Auto Material Request Generation Notification', msg = msg)
+
+def notify_errors(exceptions_list):
+	subject = "[Important] [ERPNext] Auto Reorder Errors"
+	content = """Dear System Manager,
+
+An error occured for certain Items while creating Material Requests based on Re-order level.
+
+Please rectify these issues:
+---
+<pre>
+%s
+</pre>
+---
+Regards,
+Administrator""" % ("\n\n".join(exceptions_list),)
+
+	from frappe.email import sendmail_to_system_managers
+	sendmail_to_system_managers(subject, content)
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 9b94ee6..3679457 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
@@ -4,7 +4,7 @@
 from __future__ import unicode_literals
 import frappe
 from frappe import _
-from frappe.utils import flt
+from frappe.utils import flt, cint
 
 def execute(filters=None):
 	if not filters: filters = {}
@@ -57,6 +57,7 @@
 		conditions, as_dict=1)
 
 def get_item_warehouse_batch_map(filters):
+	float_precision = cint(frappe.db.get_default("float_precision")) or 3
 	sle = get_stock_ledger_entries(filters)
 	iwb_map = {}
 
@@ -67,14 +68,14 @@
 			}))
 		qty_dict = iwb_map[d.item_code][d.warehouse][d.batch_no]
 		if d.posting_date < filters["from_date"]:
-			qty_dict.opening_qty += flt(d.actual_qty)
+			qty_dict.opening_qty += flt(d.actual_qty, float_precision)
 		elif d.posting_date >= filters["from_date"] and d.posting_date <= filters["to_date"]:
 			if flt(d.actual_qty) > 0:
-				qty_dict.in_qty += flt(d.actual_qty)
+				qty_dict.in_qty += flt(d.actual_qty, float_precision)
 			else:
-				qty_dict.out_qty += abs(flt(d.actual_qty))
+				qty_dict.out_qty += abs(flt(d.actual_qty, float_precision))
 
-		qty_dict.bal_qty += flt(d.actual_qty)
+		qty_dict.bal_qty += flt(d.actual_qty, float_precision)
 
 	return iwb_map
 
diff --git a/erpnext/stock/report/stock_ageing/stock_ageing.py b/erpnext/stock/report/stock_ageing/stock_ageing.py
index fc47861..fb5e9f9 100644
--- a/erpnext/stock/report/stock_ageing/stock_ageing.py
+++ b/erpnext/stock/report/stock_ageing/stock_ageing.py
@@ -4,10 +4,10 @@
 from __future__ import unicode_literals
 import frappe
 from frappe import _
-from frappe.utils import date_diff
+from frappe.utils import date_diff, flt
 
 def execute(filters=None):
-	
+
 	columns = get_columns()
 	item_details = get_fifo_queue(filters)
 	to_date = filters["to_date"]
@@ -16,35 +16,40 @@
 		fifo_queue = item_dict["fifo_queue"]
 		details = item_dict["details"]
 		if not fifo_queue: continue
-		
+
 		average_age = get_average_age(fifo_queue, to_date)
 		earliest_age = date_diff(to_date, fifo_queue[0][1])
 		latest_age = date_diff(to_date, fifo_queue[-1][1])
-		
-		data.append([item, details.item_name, details.description, details.item_group, 
+
+		data.append([item, details.item_name, details.description, details.item_group,
 			details.brand, average_age, earliest_age, latest_age, details.stock_uom])
-		
+
 	return columns, data
-	
+
 def get_average_age(fifo_queue, to_date):
 	batch_age = age_qty = total_qty = 0.0
 	for batch in fifo_queue:
 		batch_age = date_diff(to_date, batch[1])
 		age_qty += batch_age * batch[0]
 		total_qty += batch[0]
-	
+
 	return (age_qty / total_qty) if total_qty else 0.0
-	
+
 def get_columns():
-	return [_("Item Code") + ":Link/Item:100", _("Item Name") + "::100", _("Description") + "::200", 
-		_("Item Group") + ":Link/Item Group:100", _("Brand") + ":Link/Brand:100", _("Average Age") + ":Float:100", 
+	return [_("Item Code") + ":Link/Item:100", _("Item Name") + "::100", _("Description") + "::200",
+		_("Item Group") + ":Link/Item Group:100", _("Brand") + ":Link/Brand:100", _("Average Age") + ":Float:100",
 		_("Earliest") + ":Int:80", _("Latest") + ":Int:80", _("UOM") + ":Link/UOM:100"]
-		
+
 def get_fifo_queue(filters):
 	item_details = {}
+	prev_qty = 0.0
 	for d in get_stock_ledger_entries(filters):
 		item_details.setdefault(d.name, {"details": d, "fifo_queue": []})
 		fifo_queue = item_details[d.name]["fifo_queue"]
+
+		if d.voucher_type == "Stock Reconciliation":
+			d.actual_qty = flt(d.qty_after_transaction) - flt(prev_qty)
+
 		if d.actual_qty > 0:
 			fifo_queue.append([d.actual_qty, d.posting_date])
 		else:
@@ -52,7 +57,7 @@
 			while qty_to_pop:
 				batch = fifo_queue[0] if fifo_queue else [0, None]
 				if 0 < batch[0] <= qty_to_pop:
-					# if batch qty > 0 
+					# if batch qty > 0
 					# not enough or exactly same qty in current batch, clear batch
 					qty_to_pop -= batch[0]
 					fifo_queue.pop(0)
@@ -61,12 +66,14 @@
 					batch[0] -= qty_to_pop
 					qty_to_pop = 0
 
+		prev_qty = d.qty_after_transaction
+
 	return item_details
-	
+
 def get_stock_ledger_entries(filters):
-	return frappe.db.sql("""select 
-			item.name, item.item_name, item_group, brand, description, item.stock_uom, 
-			actual_qty, posting_date
+	return frappe.db.sql("""select
+			item.name, item.item_name, item_group, brand, description, item.stock_uom,
+			actual_qty, posting_date, voucher_type, qty_after_transaction
 		from `tabStock Ledger Entry` sle,
 			(select name, item_name, description, stock_uom, brand, item_group
 				from `tabItem` {item_conditions}) item
@@ -77,19 +84,19 @@
 			order by posting_date, posting_time, sle.name"""\
 		.format(item_conditions=get_item_conditions(filters),
 			sle_conditions=get_sle_conditions(filters)), filters, as_dict=True)
-	
+
 def get_item_conditions(filters):
 	conditions = []
 	if filters.get("item_code"):
 		conditions.append("item_code=%(item_code)s")
 	if filters.get("brand"):
 		conditions.append("brand=%(brand)s")
-	
+
 	return "where {}".format(" and ".join(conditions)) if conditions else ""
-	
+
 def get_sle_conditions(filters):
 	conditions = []
 	if filters.get("warehouse"):
 		conditions.append("warehouse=%(warehouse)s")
-	
-	return "and {}".format(" and ".join(conditions)) if conditions else ""
\ No newline at end of file
+
+	return "and {}".format(" and ".join(conditions)) if conditions else ""
diff --git a/erpnext/stock/page/stock_balance/__init__.py b/erpnext/stock/report/stock_balance/__init__.py
similarity index 100%
rename from erpnext/stock/page/stock_balance/__init__.py
rename to erpnext/stock/report/stock_balance/__init__.py
diff --git a/erpnext/stock/report/warehouse_wise_stock_balance/warehouse_wise_stock_balance.js b/erpnext/stock/report/stock_balance/stock_balance.js
similarity index 74%
rename from erpnext/stock/report/warehouse_wise_stock_balance/warehouse_wise_stock_balance.js
rename to erpnext/stock/report/stock_balance/stock_balance.js
index 2543fa4..c0aed51 100644
--- a/erpnext/stock/report/warehouse_wise_stock_balance/warehouse_wise_stock_balance.js
+++ b/erpnext/stock/report/stock_balance/stock_balance.js
@@ -1,7 +1,7 @@
-// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
-// License: GNU General Public License v3. See license.txt
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors and contributors
+// For license information, please see license.txt
 
-frappe.query_reports["Warehouse-Wise Stock Balance"] = {
+frappe.query_reports["Stock Balance"] = {
 	"filters": [
 		{
 			"fieldname":"from_date",
@@ -18,4 +18,4 @@
 			"default": frappe.datetime.get_today()
 		}
 	]
-}
\ No newline at end of file
+}
diff --git a/erpnext/stock/report/stock_balance/stock_balance.json b/erpnext/stock/report/stock_balance/stock_balance.json
new file mode 100644
index 0000000..ab331dc
--- /dev/null
+++ b/erpnext/stock/report/stock_balance/stock_balance.json
@@ -0,0 +1,17 @@
+{
+ "add_total_row": 0, 
+ "apply_user_permissions": 1, 
+ "creation": "2014-10-10 17:58:11.577901", 
+ "disabled": 0, 
+ "docstatus": 0, 
+ "doctype": "Report", 
+ "is_standard": "Yes", 
+ "modified": "2014-10-10 17:58:11.577901", 
+ "modified_by": "Administrator", 
+ "module": "Stock", 
+ "name": "Stock Balance", 
+ "owner": "Administrator", 
+ "ref_doctype": "Stock Ledger Entry", 
+ "report_name": "Stock Balance", 
+ "report_type": "Script Report"
+}
\ No newline at end of file
diff --git a/erpnext/stock/report/warehouse_wise_stock_balance/warehouse_wise_stock_balance.py b/erpnext/stock/report/stock_balance/stock_balance.py
similarity index 80%
rename from erpnext/stock/report/warehouse_wise_stock_balance/warehouse_wise_stock_balance.py
rename to erpnext/stock/report/stock_balance/stock_balance.py
index dc552cb..daef2eb 100644
--- a/erpnext/stock/report/warehouse_wise_stock_balance/warehouse_wise_stock_balance.py
+++ b/erpnext/stock/report/stock_balance/stock_balance.py
@@ -58,10 +58,10 @@
 #get all details
 def get_stock_ledger_entries(filters):
 	conditions = get_conditions(filters)
-	return frappe.db.sql("""select item_code, warehouse, posting_date,
-		actual_qty, valuation_rate, stock_uom, company
+	return frappe.db.sql("""select item_code, warehouse, posting_date, actual_qty, valuation_rate,
+	stock_uom, company, voucher_type, qty_after_transaction, stock_value_difference
 		from `tabStock Ledger Entry`
-		where docstatus < 2 %s order by item_code, warehouse""" %
+		where docstatus < 2 %s order by posting_date, posting_time, name""" %
 		conditions, as_dict=1)
 
 def get_item_warehouse_map(filters):
@@ -80,21 +80,27 @@
 		qty_dict = iwb_map[d.company][d.item_code][d.warehouse]
 		qty_dict.uom = d.stock_uom
 
+		if d.voucher_type == "Stock Reconciliation":
+			qty_diff = flt(d.qty_after_transaction) - qty_dict.bal_qty
+		else:
+			qty_diff = flt(d.actual_qty)
+
+		value_diff = flt(d.stock_value_difference)
+
 		if d.posting_date < filters["from_date"]:
-			qty_dict.opening_qty += flt(d.actual_qty)
-			qty_dict.opening_val += flt(d.actual_qty) * flt(d.valuation_rate)
+			qty_dict.opening_qty += qty_diff
+			qty_dict.opening_val += value_diff
 		elif d.posting_date >= filters["from_date"] and d.posting_date <= filters["to_date"]:
 			qty_dict.val_rate = d.valuation_rate
-
-			if flt(d.actual_qty) > 0:
-				qty_dict.in_qty += flt(d.actual_qty)
-				qty_dict.in_val += flt(d.actual_qty) * flt(d.valuation_rate)
+			if qty_diff > 0:
+				qty_dict.in_qty += qty_diff
+				qty_dict.in_val += value_diff
 			else:
-				qty_dict.out_qty += abs(flt(d.actual_qty))
-				qty_dict.out_val += flt(abs(flt(d.actual_qty) * flt(d.valuation_rate)))
+				qty_dict.out_qty += abs(qty_diff)
+				qty_dict.out_val += abs(value_diff)
 
-		qty_dict.bal_qty += flt(d.actual_qty)
-		qty_dict.bal_val += flt(d.actual_qty) * flt(d.valuation_rate)
+		qty_dict.bal_qty += qty_diff
+		qty_dict.bal_val += value_diff
 
 	return iwb_map
 
diff --git a/erpnext/stock/report/warehouse_wise_stock_balance/__init__.py b/erpnext/stock/report/warehouse_wise_stock_balance/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/stock/report/warehouse_wise_stock_balance/__init__.py
+++ /dev/null
diff --git a/erpnext/stock/report/warehouse_wise_stock_balance/warehouse_wise_stock_balance.json b/erpnext/stock/report/warehouse_wise_stock_balance/warehouse_wise_stock_balance.json
deleted file mode 100644
index f911956..0000000
--- a/erpnext/stock/report/warehouse_wise_stock_balance/warehouse_wise_stock_balance.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "apply_user_permissions": 1, 
- "creation": "2013-06-05 11:00:31", 
- "docstatus": 0, 
- "doctype": "Report", 
- "idx": 1, 
- "is_standard": "Yes", 
- "modified": "2014-06-03 07:18:17.384923", 
- "modified_by": "Administrator", 
- "module": "Stock", 
- "name": "Warehouse-Wise Stock Balance", 
- "owner": "Administrator", 
- "ref_doctype": "Stock Ledger Entry", 
- "report_name": "Warehouse-Wise Stock Balance", 
- "report_type": "Script Report"
-}
\ No newline at end of file
diff --git a/erpnext/stock/stock_ledger.py b/erpnext/stock/stock_ledger.py
index 3717bf1..edbdb1a 100644
--- a/erpnext/stock/stock_ledger.py
+++ b/erpnext/stock/stock_ledger.py
@@ -27,7 +27,7 @@
 			if sle.get('is_cancelled') == 'Yes':
 				sle['actual_qty'] = -flt(sle['actual_qty'])
 
-			if sle.get("actual_qty"):
+			if sle.get("actual_qty") or sle.voucher_type=="Stock Reconciliation":
 				sle_id = make_entry(sle)
 
 			args = sle.copy()
@@ -36,9 +36,9 @@
 				"is_amended": is_amended
 			})
 			update_bin(args)
+
 		if cancel:
-			delete_cancelled_entry(sl_entries[0].get('voucher_type'),
-				sl_entries[0].get('voucher_no'))
+			delete_cancelled_entry(sl_entries[0].get('voucher_type'), sl_entries[0].get('voucher_no'))
 
 def set_as_cancel(voucher_type, voucher_no):
 	frappe.db.sql("""update `tabStock Ledger Entry` set is_cancelled='Yes',
@@ -58,7 +58,7 @@
 	frappe.db.sql("""delete from `tabStock Ledger Entry`
 		where voucher_type=%s and voucher_no=%s""", (voucher_type, voucher_no))
 
-def update_entries_after(args, verbose=1):
+def update_entries_after(args, allow_zero_rate=False, verbose=1):
 	"""
 		update valution rate and qty after transaction
 		from the current time-bucket onwards
@@ -83,7 +83,6 @@
 
 	entries_to_fix = get_sle_after_datetime(previous_sle or \
 		{"item_code": args["item_code"], "warehouse": args["warehouse"]}, for_update=True)
-
 	valuation_method = get_valuation_method(args["item_code"])
 	stock_value_difference = 0.0
 
@@ -95,21 +94,30 @@
 				qty_after_transaction += flt(sle.actual_qty)
 				continue
 
+
 		if sle.serial_no:
 			valuation_rate = get_serialized_values(qty_after_transaction, sle, valuation_rate)
-		elif valuation_method == "Moving Average":
-			valuation_rate = get_moving_average_values(qty_after_transaction, sle, valuation_rate)
-		else:
-			valuation_rate = get_fifo_values(qty_after_transaction, sle, stock_queue)
+			qty_after_transaction += flt(sle.actual_qty)
 
-		qty_after_transaction += flt(sle.actual_qty)
+		else:
+			if sle.voucher_type=="Stock Reconciliation":
+				valuation_rate = sle.valuation_rate
+				qty_after_transaction = sle.qty_after_transaction
+				stock_queue = [[qty_after_transaction, valuation_rate]]
+			else:
+				if valuation_method == "Moving Average":
+					valuation_rate = get_moving_average_values(qty_after_transaction, sle, valuation_rate, allow_zero_rate)
+				else:
+					valuation_rate = get_fifo_values(qty_after_transaction, sle, stock_queue, allow_zero_rate)
+
+
+				qty_after_transaction += flt(sle.actual_qty)
 
 		# get stock value
 		if sle.serial_no:
 			stock_value = qty_after_transaction * valuation_rate
 		elif valuation_method == "Moving Average":
-			stock_value = (qty_after_transaction > 0) and \
-				(qty_after_transaction * valuation_rate) or 0
+			stock_value = qty_after_transaction * valuation_rate
 		else:
 			stock_value = sum((flt(batch[0]) * flt(batch[1]) for batch in stock_queue))
 
@@ -243,69 +251,72 @@
 
 	return valuation_rate
 
-def get_moving_average_values(qty_after_transaction, sle, valuation_rate):
+def get_moving_average_values(qty_after_transaction, sle, valuation_rate, allow_zero_rate):
 	incoming_rate = flt(sle.incoming_rate)
 	actual_qty = flt(sle.actual_qty)
 
-	if not incoming_rate:
-		# In case of delivery/stock issue in_rate = 0 or wrong incoming rate
-		incoming_rate = valuation_rate
+	if flt(sle.actual_qty) > 0:
+		if qty_after_transaction < 0 and not valuation_rate:
+			# if negative stock, take current valuation rate as incoming rate
+			valuation_rate = incoming_rate
 
-	elif qty_after_transaction < 0:
-		# if negative stock, take current valuation rate as incoming rate
-		valuation_rate = incoming_rate
+		new_stock_qty = abs(qty_after_transaction) + actual_qty
+		new_stock_value = (abs(qty_after_transaction) * valuation_rate) + (actual_qty * incoming_rate)
 
-	new_stock_qty = qty_after_transaction + actual_qty
-	new_stock_value = qty_after_transaction * valuation_rate + actual_qty * incoming_rate
+		if new_stock_qty:
+			valuation_rate = new_stock_value / flt(new_stock_qty)
+	elif not valuation_rate and qty_after_transaction <= 0:
+		valuation_rate = get_valuation_rate(sle.item_code, sle.warehouse, allow_zero_rate)
 
-	if new_stock_qty > 0 and new_stock_value > 0:
-		valuation_rate = new_stock_value / flt(new_stock_qty)
-	elif new_stock_qty <= 0:
-		valuation_rate = 0.0
+	return abs(flt(valuation_rate))
 
-	# NOTE: val_rate is same as previous entry if new stock value is negative
-
-	return valuation_rate
-
-def get_fifo_values(qty_after_transaction, sle, stock_queue):
+def get_fifo_values(qty_after_transaction, sle, stock_queue, allow_zero_rate):
 	incoming_rate = flt(sle.incoming_rate)
 	actual_qty = flt(sle.actual_qty)
-	if not stock_queue:
-		stock_queue.append([0, 0])
 
 	if actual_qty > 0:
+		if not stock_queue:
+			stock_queue.append([0, 0])
+
 		if stock_queue[-1][0] > 0:
 			stock_queue.append([actual_qty, incoming_rate])
 		else:
 			qty = stock_queue[-1][0] + actual_qty
-			stock_queue[-1] = [qty, qty > 0 and incoming_rate or 0]
+			if qty == 0:
+				stock_queue.pop(-1)
+			else:
+				stock_queue[-1] = [qty, incoming_rate]
 	else:
-		incoming_cost = 0
 		qty_to_pop = abs(actual_qty)
 		while qty_to_pop:
 			if not stock_queue:
-				stock_queue.append([0, 0])
+				stock_queue.append([0, get_valuation_rate(sle.item_code, sle.warehouse, allow_zero_rate)
+					if qty_after_transaction <= 0 else 0])
 
 			batch = stock_queue[0]
 
-			if 0 < batch[0] <= qty_to_pop:
-				# if batch qty > 0
-				# not enough or exactly same qty in current batch, clear batch
-				incoming_cost += flt(batch[0]) * flt(batch[1])
-				qty_to_pop -= batch[0]
+			if qty_to_pop >= batch[0]:
+				# consume current batch
+				qty_to_pop = qty_to_pop - batch[0]
 				stock_queue.pop(0)
+				if not stock_queue and qty_to_pop:
+					# stock finished, qty still remains to be withdrawn
+					# negative stock, keep in as a negative batch
+					stock_queue.append([-qty_to_pop, batch[1]])
+					break
+
 			else:
-				# all from current batch
-				incoming_cost += flt(qty_to_pop) * flt(batch[1])
-				batch[0] -= qty_to_pop
+				# qty found in current batch
+				# consume it and exit
+				batch[0] = batch[0] - qty_to_pop
 				qty_to_pop = 0
 
 	stock_value = sum((flt(batch[0]) * flt(batch[1]) for batch in stock_queue))
 	stock_qty = sum((flt(batch[0]) for batch in stock_queue))
 
-	valuation_rate = stock_qty and (stock_value / flt(stock_qty)) or 0
+	valuation_rate = (stock_value / flt(stock_qty)) if stock_qty else 0
 
-	return valuation_rate
+	return abs(valuation_rate)
 
 def _raise_exceptions(args, verbose=1):
 	deficiency = min(e["diff"] for e in _exceptions)
@@ -337,3 +348,26 @@
 		"timestamp(posting_date, posting_time) <= timestamp(%(posting_date)s, %(posting_time)s)"],
 		"desc", "limit 1", for_update=for_update)
 	return sle and sle[0] or {}
+
+def get_valuation_rate(item_code, warehouse, allow_zero_rate=False):
+	last_valuation_rate = frappe.db.sql("""select valuation_rate
+		from `tabStock Ledger Entry`
+		where item_code = %s and warehouse = %s
+		and ifnull(valuation_rate, 0) > 0
+		order by posting_date desc, posting_time desc, name desc limit 1""", (item_code, warehouse))
+
+	if not last_valuation_rate:
+		last_valuation_rate = frappe.db.sql("""select valuation_rate
+			from `tabStock Ledger Entry`
+			where item_code = %s and ifnull(valuation_rate, 0) > 0
+			order by posting_date desc, posting_time desc, name desc limit 1""", item_code)
+
+	valuation_rate = flt(last_valuation_rate[0][0]) if last_valuation_rate else 0
+
+	if not valuation_rate:
+		valuation_rate = frappe.db.get_value("Item Price", {"item_code": item_code, "buying": 1}, "price_list_rate")
+
+	if not allow_zero_rate and not valuation_rate and cint(frappe.db.get_value("Accounts Settings", None, "auto_accounting_for_stock")):
+		frappe.throw(_("Purchase rate for item: {0} not found, which is required to book accounting entry (expense). Please mention item price against a buying price list.").format(item_code))
+
+	return valuation_rate
diff --git a/erpnext/stock/utils.py b/erpnext/stock/utils.py
index 2b4e368..3a78e07 100644
--- a/erpnext/stock/utils.py
+++ b/erpnext/stock/utils.py
@@ -4,24 +4,29 @@
 import frappe
 from frappe import _
 import json
-from frappe.utils import flt, cstr, nowdate, add_days, cint
-from frappe.defaults import get_global_default
-from erpnext.accounts.utils import get_fiscal_year, FiscalYearError
+from frappe.utils import flt, cstr, nowdate, nowtime
 
 class InvalidWarehouseCompany(frappe.ValidationError): pass
 
-def get_stock_balance_on(warehouse, posting_date=None):
+def get_stock_value_on(warehouse=None, posting_date=None, item_code=None):
 	if not posting_date: posting_date = nowdate()
 
+	values, condition = [posting_date], ""
+
+	if warehouse:
+		values.append(warehouse)
+		condition += " AND warehouse = %s"
+
+	if item_code:
+		values.append(item_code)
+		condition.append(" AND item_code = %s")
+
 	stock_ledger_entries = frappe.db.sql("""
-		SELECT
-			item_code, stock_value
-		FROM
-			`tabStock Ledger Entry`
-		WHERE
-			warehouse=%s AND posting_date <= %s
+		SELECT item_code, stock_value
+		FROM `tabStock Ledger Entry`
+		WHERE posting_date <= %s {0}
 		ORDER BY timestamp(posting_date, posting_time) DESC, name DESC
-	""", (warehouse, posting_date), as_dict=1)
+	""".format(condition), values, as_dict=1)
 
 	sle_map = {}
 	for sle in stock_ledger_entries:
@@ -29,6 +34,20 @@
 
 	return sum(sle_map.values())
 
+def get_stock_balance(item_code, warehouse, posting_date=None, posting_time=None):
+	if not posting_date: posting_date = nowdate()
+	if not posting_time: posting_time = nowtime()
+	last_entry = frappe.db.sql("""select qty_after_transaction from `tabStock Ledger Entry`
+		where item_code=%s and warehouse=%s
+			and timestamp(posting_date, posting_time) < timestamp(%s, %s)
+		order by timestamp(posting_date, posting_time) limit 1""",
+			(item_code, warehouse, posting_date, posting_time))
+
+	if last_entry:
+		return last_entry[0][0]
+	else:
+		return 0.0
+
 def get_latest_stock_balance():
 	bin_map = {}
 	for d in frappe.db.sql("""SELECT item_code, warehouse, stock_value as stock_value
@@ -93,7 +112,7 @@
 	"""get valuation method from item or default"""
 	val_method = frappe.db.get_value('Item', item_code, 'valuation_method')
 	if not val_method:
-		val_method = get_global_default('valuation_method') or "FIFO"
+		val_method = frappe.db.get_value("Stock Settings", None, "valuation_method") or "FIFO"
 	return val_method
 
 def get_fifo_rate(previous_stock_queue, qty):
@@ -181,185 +200,3 @@
 
 	return 0.0
 
-
-def reorder_item():
-	""" Reorder item if stock reaches reorder level"""
-	# if initial setup not completed, return
-	if not frappe.db.sql("select name from `tabFiscal Year` limit 1"):
-		return
-
-	if getattr(frappe.local, "auto_indent", None) is None:
-		frappe.local.auto_indent = cint(frappe.db.get_value('Stock Settings', None, 'auto_indent'))
-
-	if frappe.local.auto_indent:
-		_reorder_item()
-
-def _reorder_item():
-	# {"Purchase": {"Company": [{"item_code": "", "warehouse": "", "reorder_qty": 0.0}]}, "Transfer": {...}}
-	material_requests = {"Purchase": {}, "Transfer": {}}
-
-	item_warehouse_projected_qty = get_item_warehouse_projected_qty()
-	warehouse_company = frappe._dict(frappe.db.sql("""select name, company from `tabWarehouse`"""))
-	default_company = (frappe.defaults.get_defaults().get("company") or
-		frappe.db.sql("""select name from tabCompany limit 1""")[0][0])
-
-	def add_to_material_request(item_code, warehouse, reorder_level, reorder_qty, material_request_type):
-		if warehouse not in item_warehouse_projected_qty[item_code]:
-			# likely a disabled warehouse or a warehouse where BIN does not exist
-			return
-
-		reorder_level = flt(reorder_level)
-		reorder_qty = flt(reorder_qty)
-		projected_qty = item_warehouse_projected_qty[item_code][warehouse]
-
-		if reorder_level and projected_qty < reorder_level:
-			deficiency = reorder_level - projected_qty
-			if deficiency > reorder_qty:
-				reorder_qty = deficiency
-
-			company = warehouse_company.get(warehouse) or default_company
-
-			material_requests[material_request_type].setdefault(company, []).append({
-				"item_code": item_code,
-				"warehouse": warehouse,
-				"reorder_qty": reorder_qty
-			})
-
-	for item_code in item_warehouse_projected_qty:
-		item = frappe.get_doc("Item", item_code)
-		if item.get("item_reorder"):
-			for d in item.get("item_reorder"):
-				add_to_material_request(item_code, d.warehouse, d.warehouse_reorder_level,
-					d.warehouse_reorder_qty, d.material_request_type)
-
-		else:
-			# raise for default warehouse
-			add_to_material_request(item_code, item.default_warehouse, item.re_order_level, item.re_order_qty, "Purchase")
-
-	if material_requests:
-		create_material_request(material_requests)
-
-def get_item_warehouse_projected_qty():
-	item_warehouse_projected_qty = {}
-
-	for item_code, warehouse, projected_qty in frappe.db.sql("""select item_code, warehouse, projected_qty
-		from tabBin where ifnull(item_code, '') != '' and ifnull(warehouse, '') != ''
-		and exists (select name from `tabItem`
-			where `tabItem`.name = `tabBin`.item_code and
-			is_stock_item='Yes' and (is_purchase_item='Yes' or is_sub_contracted_item='Yes') and
-			(ifnull(end_of_life, '0000-00-00')='0000-00-00' or end_of_life > %s))
-		and exists (select name from `tabWarehouse`
-			where `tabWarehouse`.name = `tabBin`.warehouse
-			and ifnull(disabled, 0)=0)""", nowdate()):
-
-		item_warehouse_projected_qty.setdefault(item_code, {})[warehouse] = flt(projected_qty)
-
-	return item_warehouse_projected_qty
-
-def create_material_request(material_requests):
-	"""	Create indent on reaching reorder level	"""
-	mr_list = []
-	defaults = frappe.defaults.get_defaults()
-	exceptions_list = []
-
-	def _log_exception():
-		if frappe.local.message_log:
-			exceptions_list.extend(frappe.local.message_log)
-			frappe.local.message_log = []
-		else:
-			exceptions_list.append(frappe.get_traceback())
-
-	try:
-		current_fiscal_year = get_fiscal_year(nowdate())[0] or defaults.fiscal_year
-
-	except FiscalYearError:
-		_log_exception()
-		notify_errors(exceptions_list)
-		return
-
-	for request_type in material_requests:
-		for company in material_requests[request_type]:
-			try:
-				items = material_requests[request_type][company]
-				if not items:
-					continue
-
-				mr = frappe.new_doc("Material Request")
-				mr.update({
-					"company": company,
-					"fiscal_year": current_fiscal_year,
-					"transaction_date": nowdate(),
-					"material_request_type": request_type
-				})
-
-				for d in items:
-					d = frappe._dict(d)
-					item = frappe.get_doc("Item", d.item_code)
-					mr.append("indent_details", {
-						"doctype": "Material Request Item",
-						"item_code": d.item_code,
-						"schedule_date": add_days(nowdate(),cint(item.lead_time_days)),
-						"uom":	item.stock_uom,
-						"warehouse": d.warehouse,
-						"item_name": item.item_name,
-						"description": item.description,
-						"item_group": item.item_group,
-						"qty": d.reorder_qty,
-						"brand": item.brand,
-					})
-
-				mr.insert()
-				mr.submit()
-				mr_list.append(mr)
-
-			except:
-				_log_exception()
-
-	if mr_list:
-		if getattr(frappe.local, "reorder_email_notify", None) is None:
-			frappe.local.reorder_email_notify = cint(frappe.db.get_value('Stock Settings', None,
-				'reorder_email_notify'))
-
-		if(frappe.local.reorder_email_notify):
-			send_email_notification(mr_list)
-
-	if exceptions_list:
-		notify_errors(exceptions_list)
-
-def send_email_notification(mr_list):
-	""" Notify user about auto creation of indent"""
-
-	email_list = frappe.db.sql_list("""select distinct r.parent
-		from tabUserRole r, tabUser p
-		where p.name = r.parent and p.enabled = 1 and p.docstatus < 2
-		and r.role in ('Purchase Manager','Material Manager')
-		and p.name not in ('Administrator', 'All', 'Guest')""")
-
-	msg="""<h3>Following Material Requests has been raised automatically \
-		based on item reorder level:</h3>"""
-	for mr in mr_list:
-		msg += "<p><b><u>" + mr.name + """</u></b></p><table class='table table-bordered'><tr>
-			<th>Item Code</th><th>Warehouse</th><th>Qty</th><th>UOM</th></tr>"""
-		for item in mr.get("indent_details"):
-			msg += "<tr><td>" + item.item_code + "</td><td>" + item.warehouse + "</td><td>" + \
-				cstr(item.qty) + "</td><td>" + cstr(item.uom) + "</td></tr>"
-		msg += "</table>"
-	frappe.sendmail(recipients=email_list, subject='Auto Material Request Generation Notification', msg = msg)
-
-def notify_errors(exceptions_list):
-	subject = "[Important] [ERPNext] Error(s) while creating Material Requests based on Re-order Levels"
-	content = """Dear System Manager,
-
-An error occured for certain Items while creating Material Requests based on Re-order level.
-
-Please rectify these issues:
----
-<pre>
-%s
-</pre>
----
-Regards,
-Administrator""" % ("\n\n".join(exceptions_list),)
-
-	from frappe.email import sendmail_to_system_managers
-	sendmail_to_system_managers(subject, content)
diff --git a/erpnext/templates/includes/cart.js b/erpnext/templates/includes/cart.js
new file mode 100644
index 0000000..90cfea5
--- /dev/null
+++ b/erpnext/templates/includes/cart.js
@@ -0,0 +1,297 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
+// License: GNU General Public License v3. See license.txt
+
+// js inside blog page
+
+// shopping cart
+frappe.provide("shopping_cart");
+
+$.extend(shopping_cart, {
+	show_error: function(title, text) {
+		$("#cart-container").html('<div class="well"><h4>' + title + '</h4> ' + text + '</div>');
+	},
+
+	bind_events: function() {
+		// bind update button
+		$(document).on("click", ".item-update-cart button", function() {
+			var item_code = $(this).attr("data-item-code");
+			shopping_cart.update_cart({
+				item_code: item_code,
+				qty: $('input[data-item-code="'+item_code+'"]').val(),
+				with_doc: 1,
+				btn: this,
+				callback: function(r) {
+					if(!r.exc) {
+						shopping_cart.render(r.message);
+						var $button = $('button[data-item-code="'+item_code+'"]').addClass("btn-success");
+						setTimeout(function() { $button.removeClass("btn-success"); }, 1000);
+					}
+				},
+			});
+		});
+
+		$("#cart-add-shipping-address").on("click", function() {
+			window.location.href = "address?address_fieldname=shipping_address_name";
+		});
+
+		$("#cart-add-billing-address").on("click", function() {
+			window.location.href = "address?address_fieldname=customer_address";
+		});
+
+		$(".btn-place-order").on("click", function() {
+			shopping_cart.place_order(this);
+		});
+	},
+
+	render: function(out) {
+		var doc = out.doc;
+		var addresses = out.addresses;
+
+		var $cart_items = $("#cart-items").empty();
+		var $cart_taxes = $("#cart-taxes").empty();
+		var $cart_totals = $("#cart-totals").empty();
+		var $cart_billing_address = $("#cart-billing-address").empty();
+		var $cart_shipping_address = $("#cart-shipping-address").empty();
+
+		var no_items = $.map(doc.quotation_details || [],
+			function(d) { return d.item_code || null;}).length===0;
+		if(no_items) {
+			shopping_cart.show_error("Empty :-(", frappe._("Go ahead and add something to your cart."));
+			$("#cart-addresses").toggle(false);
+			return;
+		}
+
+		var shipping_rule_added = false;
+		var taxes_exist = false;
+		var shipping_rule_labels = $.map(out.shipping_rules || [], function(rule) { return rule[1]; });
+
+		$.each(doc.quotation_details || [], function(i, d) {
+			shopping_cart.render_item_row($cart_items, d);
+		});
+
+		$.each(doc.other_charges || [], function(i, d) {
+			if(out.shipping_rules && out.shipping_rules.length &&
+				shipping_rule_labels.indexOf(d.description)!==-1) {
+					shipping_rule_added = true;
+					shopping_cart.render_tax_row($cart_taxes, d, out.shipping_rules);
+			} else {
+				shopping_cart.render_tax_row($cart_taxes, d);
+			}
+
+			taxes_exist = true;
+		});
+
+		if(out.shipping_rules && out.shipping_rules.length && !shipping_rule_added) {
+			shopping_cart.render_tax_row($cart_taxes, {description: "", formatted_tax_amount: ""},
+				out.shipping_rules);
+			taxes_exist = true;
+		}
+
+		if(taxes_exist)
+			$('<hr>').appendTo($cart_taxes);
+
+		shopping_cart.render_tax_row($cart_totals, {
+			description: "<strong>Total</strong>",
+			formatted_tax_amount: "<strong>" + doc.formatted_grand_total_export + "</strong>"
+		});
+
+		if(!(addresses && addresses.length)) {
+			$cart_shipping_address.html('<div class="well">'+frappe._("Hey! Go ahead and add an address")+'</div>');
+		} else {
+			shopping_cart.render_address($cart_shipping_address, addresses, doc.shipping_address_name);
+			shopping_cart.render_address($cart_billing_address, addresses, doc.customer_address);
+		}
+	},
+
+	render_item_row: function($cart_items, doc) {
+		doc.image_html = doc.website_image ?
+			'<div style="height: 120px; overflow: hidden;"><img src="' + doc.website_image + '" /></div>' :
+			'{% include "templates/includes/product_missing_image.html" %}';
+
+		if(doc.description === doc.item_name) doc.description = "";
+
+		$(repl('<div class="row">\
+			<div class="col-md-9 col-sm-9">\
+				<div class="row">\
+					<div class="col-md-3">%(image_html)s</div>\
+					<div class="col-md-9">\
+						<h4><a href="%(page_name)s">%(item_name)s</a></h4>\
+						<p>%(description)s</p>\
+					</div>\
+				</div>\
+			</div>\
+			<div class="col-md-3 col-sm-3 text-right">\
+				<div class="input-group item-update-cart">\
+					<input type="text" placeholder="Qty" value="%(qty)s" \
+						data-item-code="%(item_code)s" class="text-right form-control">\
+					<div class="input-group-btn">\
+						<button class="btn btn-primary" data-item-code="%(item_code)s">\
+							<i class="icon-ok"></i></button>\
+					</div>\
+				</div>\
+				<p style="margin-top: 10px;">at %(formatted_rate)s</p>\
+				<small class="text-muted" style="margin-top: 10px;">= %(formatted_amount)s</small>\
+			</div>\
+		</div><hr>', doc)).appendTo($cart_items);
+	},
+
+	render_tax_row: function($cart_taxes, doc, shipping_rules) {
+		var shipping_selector;
+		if(shipping_rules) {
+			shipping_selector = '<select class="form-control">' + $.map(shipping_rules, function(rule) {
+					return '<option value="' + rule[0] + '">' + rule[1] + '</option>' }).join("\n") +
+				'</select>';
+		}
+
+		var $tax_row = $(repl('<div class="row">\
+			<div class="col-md-9 col-sm-9">\
+				<div class="row">\
+					<div class="col-md-9 col-md-offset-3">' +
+					(shipping_selector || '<p>%(description)s</p>') +
+					'</div>\
+				</div>\
+			</div>\
+			<div class="col-md-3 col-sm-3 text-right">\
+				<p' + (shipping_selector ? ' style="margin-top: 5px;"' : "") + '>%(formatted_tax_amount)s</p>\
+			</div>\
+		</div>', doc)).appendTo($cart_taxes);
+
+		if(shipping_selector) {
+			$tax_row.find('select option').each(function(i, opt) {
+				if($(opt).html() == doc.description) {
+					$(opt).attr("selected", "selected");
+				}
+			});
+			$tax_row.find('select').on("change", function() {
+				shopping_cart.apply_shipping_rule($(this).val(), this);
+			});
+		}
+	},
+
+	apply_shipping_rule: function(rule, btn) {
+		return frappe.call({
+			btn: btn,
+			type: "POST",
+			method: "erpnext.shopping_cart.cart.apply_shipping_rule",
+			args: { shipping_rule: rule },
+			callback: function(r) {
+				if(!r.exc) {
+					shopping_cart.render(r.message);
+				}
+			}
+		});
+	},
+
+	render_address: function($address_wrapper, addresses, address_name) {
+		$.each(addresses, function(i, address) {
+			$(repl('<div class="panel panel-default"> \
+				<div class="panel-heading"> \
+					<div class="row"> \
+						<div class="col-md-10 address-title" \
+							data-address-name="%(name)s"><strong>%(name)s</strong></div> \
+						<div class="col-md-2"><input type="checkbox" \
+							data-address-name="%(name)s"></div> \
+					</div> \
+				</div> \
+				<div class="panel-collapse collapse" data-address-name="%(name)s"> \
+					<div class="panel-body">%(display)s</div> \
+				</div> \
+			</div>', address))
+				.css({"margin": "10px auto"})
+				.appendTo($address_wrapper);
+		});
+
+		$address_wrapper.find(".panel-heading")
+			.find(".address-title")
+				.css({"cursor": "pointer"})
+				.on("click", function() {
+					$address_wrapper.find('.panel-collapse[data-address-name="'
+						+$(this).attr("data-address-name")+'"]').collapse("toggle");
+				});
+
+		$address_wrapper.find('input[type="checkbox"]').on("click", function() {
+			if($(this).prop("checked")) {
+				var me = this;
+				$address_wrapper.find('input[type="checkbox"]').each(function(i, chk) {
+					if($(chk).attr("data-address-name")!=$(me).attr("data-address-name")) {
+						$(chk).prop("checked", false);
+					}
+				});
+
+				return frappe.call({
+					type: "POST",
+					method: "erpnext.shopping_cart.cart.update_cart_address",
+					args: {
+						address_fieldname: $address_wrapper.attr("data-fieldname"),
+						address_name: $(this).attr("data-address-name")
+					},
+					callback: function(r) {
+						if(!r.exc) {
+							shopping_cart.render(r.message);
+						}
+					}
+				});
+			} else {
+				return false;
+			}
+		});
+
+		$address_wrapper.find('input[type="checkbox"][data-address-name="'+ address_name +'"]')
+			.prop("checked", true);
+
+		$address_wrapper.find(".panel-collapse").collapse({
+			parent: $address_wrapper,
+			toggle: false
+		});
+
+		$address_wrapper.find('.panel-collapse[data-address-name="'+ address_name +'"]')
+			.collapse("show");
+	},
+
+	place_order: function(btn) {
+		return frappe.call({
+			type: "POST",
+			method: "erpnext.shopping_cart.cart.place_order",
+			btn: btn,
+			callback: function(r) {
+				if(r.exc) {
+					var msg = "";
+					if(r._server_messages) {
+						msg = JSON.parse(r._server_messages || []).join("<br>");
+					}
+
+					$("#cart-error")
+						.empty()
+						.html(msg || frappe._("Something went wrong!"))
+						.toggle(true);
+				} else {
+					window.location.href = "order?name=" + encodeURIComponent(r.message);
+				}
+			}
+		});
+	}
+});
+
+$(document).ready(function() {
+	shopping_cart.bind_events();
+	return frappe.call({
+		type: "POST",
+		method: "erpnext.shopping_cart.cart.get_cart_quotation",
+		callback: function(r) {
+			$("#cart-container").removeClass("hide");
+			$(".progress").remove();
+			if(r.exc) {
+				if(r.exc.indexOf("WebsitePriceListMissingError")!==-1) {
+					shopping_cart.show_error("Oops!", frappe._("Price List not configured."));
+				} else if(r["403"]) {
+					shopping_cart.show_error("Hey!", frappe._("You need to be logged in to view your cart."));
+				} else {
+					shopping_cart.show_error("Oops!", frappe._("Something went wrong."));
+				}
+			} else {
+				shopping_cart.set_cart_count();
+				shopping_cart.render(r.message);
+			}
+		}
+	});
+});
diff --git a/erpnext/templates/includes/product_page.js b/erpnext/templates/includes/product_page.js
index 42d4ae7..03520fc 100644
--- a/erpnext/templates/includes/product_page.js
+++ b/erpnext/templates/includes/product_page.js
@@ -7,7 +7,7 @@
 	
 	frappe.call({
 		type: "POST",
-		method: "shopping_cart.shopping_cart.product.get_product_info",
+		method: "erpnext.shopping_cart.product.get_product_info",
 		args: {
 			item_code: "{{ name }}"
 		},
diff --git a/erpnext/templates/includes/sale.html b/erpnext/templates/includes/sale.html
new file mode 100644
index 0000000..e823248
--- /dev/null
+++ b/erpnext/templates/includes/sale.html
@@ -0,0 +1,85 @@
+<div class="sale-content">
+    <ul class="breadcrumb">
+    	<li><a href="index">Home</a></li>
+    	<li><a href="{{ parent_link }}">{{ parent_title }}</a></li>
+    	<li class="active"><i class="icon-file icon-fixed-width"></i> {{ doc.name }}</li>
+    </ul>
+	<h3><i class="icon-file icon-fixed-width"></i> {{ doc.name }}</h3>
+	{% if doc.name == _("Not Allowed") -%}
+		<script>ask_to_login();</script>
+	{% else %}
+	<hr>
+	<div>
+	<div class="row">
+		<div class="col-xs-6">
+			{% if doc.status -%}{{ doc.status }}{%- endif %}
+		</div>
+		<div class="col-xs-6">
+			<span class="pull-right">{{ frappe.utils.formatdate(doc.posting_date or doc.transaction_date) }}</span>
+		</div>
+	</div>
+	<br>
+	<div class="row">
+		<div class="col-md-12">
+		<table class="table table-bordered">
+			<tbody>
+				<tr>
+					<th>Sr</th>
+					<th>Item Name</th>
+					<th>Description</th>
+					<th>Qty</th>
+					<th>UoM</th>
+					<th>Basic Rate</th>
+					<th>Amount</th>
+				</tr>
+				{%- for row in doc.get({"doctype": doc.doctype + " Item"}) %}
+				<tr>
+					<td style="width: 3%;">{{ row.idx }}</td>
+					<td style="width: 20%;">{{ row.item_name }}</td>
+					<td style="width: 37%;">{{ row.description }}</td>
+					<td style="width: 5%; text-align: right;">{{ row.qty }}</td>
+					<td style="width: 5%;">{{ row.stock_uom }}</td>
+					<td style="width: 15%; text-align: right;">{{ frappe.utils.fmt_money(row.rate, currency=doc.currency) }}</td>
+					<td style="width: 15%; text-align: right;">{{ frappe.utils.fmt_money(row.amount, currency=doc.currency) }}</td>
+				</tr>
+				{% endfor -%}
+			</tbody>
+		</table>
+		</div>
+	</div>
+	<div class="row">
+		<div class="col-md-6"></div>
+		<div class="col-md-6">
+		<table cellspacing=0 width=100%>
+		<tbody>
+			<tr>
+				<td>Net Total</td>
+				<td width=40% style="text-align: right;">{{
+					frappe.utils.fmt_money(doc.net_total/doc.conversion_rate, currency=doc.currency)
+				}}</td>
+			</tr>
+			{%- for charge in doc.get({"doctype":"Sales Taxes and Charges"}) -%}
+			{%- if not charge.included_in_print_rate -%}
+			<tr>
+				<td>{{ charge.description }}</td>
+				<td style="text-align: right;">{{ frappe.utils.fmt_money(charge.tax_amount / doc.conversion_rate, currency=doc.currency) }}</td>
+			</tr>
+			{%- endif -%}
+			{%- endfor -%}
+			<tr>
+				<td>Grand Total</td>
+				<td style="text-align: right;">{{ frappe.utils.fmt_money(doc.grand_total_export, currency=doc.currency) }}</td>
+			</tr>
+			<tr style='font-weight: bold'>
+				<td>Rounded Total</td>
+				<td style="text-align: right;">{{ frappe.utils.fmt_money(doc.rounded_total_export, currency=doc.currency) }}</td>
+			</tr>
+		</tbody>
+		</table>
+		</div>
+	</div>
+	</div>
+	{%- endif %}
+</div>
+
+<!-- no-sidebar -->
diff --git a/erpnext/templates/includes/sales_transactions.html b/erpnext/templates/includes/sales_transactions.html
new file mode 100644
index 0000000..e8717af
--- /dev/null
+++ b/erpnext/templates/includes/sales_transactions.html
@@ -0,0 +1,30 @@
+<script>
+$(document).ready(function() {
+	global_number_format = "{{ global_number_format }}";
+	currency = "{{ currency }}";
+	frappe.currency_symbols = {{ currency_symbols }};
+});
+</script>
+
+{% include "templates/includes/transactions.html" %}
+
+<script>
+	var render = function(doc) {
+		doc.grand_total_export = format_currency(doc.grand_total_export, doc.currency);
+		if(!doc.status) doc.status = "";
+
+		$(repl('<a href="{{ page }}?name=%(name)s" class="list-group-item">\
+				<div class="row">\
+					<div class="col-md-6">\
+						<div class="row col-md-12">%(name)s</div>\
+						<div class="row col-md-12 text-muted">%(items)s</div>\
+						<div class="row col-md-12">%(status)s</div>\
+					</div>\
+					<div class="col-md-3 text-right">%(grand_total_export)s</div>\
+					<div class="col-md-3 text-right text-muted">%(creation)s</div>\
+				</div>\
+			</a>', doc)).appendTo($list);
+	};
+</script>
+
+<!-- no-sidebar -->
diff --git a/erpnext/templates/includes/transactions.html b/erpnext/templates/includes/transactions.html
new file mode 100644
index 0000000..b0eda19
--- /dev/null
+++ b/erpnext/templates/includes/transactions.html
@@ -0,0 +1,53 @@
+<div class="transactions-content">
+    <ul class="breadcrumb">
+    	<li><a href="index">Home</a></li>
+    	<li class="active"><i class="{{ icon }} icon-fixed-width"></i> {{ title }}</li>
+    </ul>
+	<p id="msgprint-alert" class="alert alert-danger"
+		style="display: none;">&nbsp;</p>
+	<div class="list-group transaction-list">
+		<div class="progress progress-striped active">
+			<div class="progress-bar progress-bar-info" style="width: 100%;"></div>
+		</div>
+	</div>
+	<div class="text-center">
+		<button class="btn btn-default btn-show-more hide">More</button>
+	</div>
+</div>
+<script>
+var get_transactions = function(btn) {
+	frappe.call({
+		method: "{{ method }}",
+		args: { start: start },
+		btn: btn,
+		callback: function(r) {
+			$list.find(".progress").remove();
+			$show_more.toggleClass("hide", !(r.message && r.message.length===20));
+			if(!(r.message && r.message.length)) {
+				if(!$list.html().trim()) {
+					$list.html("<div class='text-muted'>\
+						{{ empty_list_message }}</div>");
+				}
+				return;
+			}
+
+			start += r.message.length;
+
+			$.each(r.message, function(i, doc) {
+				render(doc);
+			});
+		}
+	})
+};
+
+$(document).ready(function() {
+	window.start = 0;
+	window.$list = $(".transaction-list");
+	window.$list.find(".list-group-item").remove();
+	window.$show_more = $(".btn-show-more").on("click", function() { get_transactions(this); })
+
+	get_transactions();
+});
+</script>
+
+<!-- no-sidebar -->
diff --git a/erpnext/templates/pages/address.html b/erpnext/templates/pages/address.html
new file mode 100644
index 0000000..0e221ac
--- /dev/null
+++ b/erpnext/templates/pages/address.html
@@ -0,0 +1,112 @@
+{% block title %} {{ title }} {% endblock %}
+
+{% block header %}<h2>{{ title }}</h2>{% endblock %}
+
+{% block content %}
+{% macro render_fields(docfields) -%}
+{% for df in docfields -%}
+	{% if df.fieldtype == "Data" -%}
+	<fieldset>
+		<label>{{ df.label }}</label>
+		<input class="form-control" type="text" placeholder="Type {{ df.label }}"
+			data-fieldname="{{ df.fieldname }}" data-fieldtype="{{ df.fieldtype }}"
+			{% if doc and doc.get(df.fieldname) -%} value="{{ doc[df.fieldname] }}" {%- endif %}>
+	</fieldset>
+	{% elif df.fieldtype == "Check" -%}
+	<fieldset class="checkbox">
+		<label><input type="checkbox" data-fieldname="{{ df.fieldname }}"
+			data-fieldtype="{{ df.fieldtype }}"
+			{% if doc and frappe.utils.cint(doc.get(df.fieldname)) -%} checked="checked" {%- endif %}>
+			{{ df.label }}</label>
+	</fieldset>
+	{% elif df.fieldtype in ("Select", "Link") -%}
+	<fieldset>
+		{% set select_options = frappe.get_list(df.options)|map(attribute="name")
+			if df.fieldtype == "Link" else df.options.split("\n") %}
+		<label>{{ df.label }}</label>
+		<select class="form-control" data-fieldname="{{ df.fieldname }}" data-fieldtype="{{ df.fieldtype }}">
+			{% for value in select_options -%}
+			{% if doc and doc.get(df.fieldname) == value -%}
+			<option selected="selected">{{ value }}</option>
+			{% else -%}
+			<option>{{ value }}</option>
+			{%- endif %}
+			{%- endfor %}
+		</select>
+	</fieldset>
+	{%- endif %}
+{%- endfor %}
+{%- endmacro %}
+
+<div class="container content">
+    <ul class="breadcrumb">
+    	<li><a href="index">Home</a></li>
+    	<li><a href="addresses">My Addresses</a></li>
+    	<li class="active"><i class="icon-map-marker icon-fixed-width"></i> {{ title }}</li>
+    </ul>
+	<h3><i class="icon-map-marker icon-fixed-width"></i> {{ title }}</h3>
+	<button type="button" class="btn btn-primary pull-right" id="address-save"><i class="icon-ok"></i>
+		{{ doc and "Save" or "Insert" }}</button>
+	<div class="clearfix"></div>
+	<hr>
+	<div id="address-error" class="alert alert-danger" style="display:none"></div>
+	<form autocomplete="on">
+		<div class="row">
+			<section class="col-md-6">
+				{{ render_fields(meta.left_fields) }}
+			</section>
+			<section class="col-md-6">
+				{{ render_fields(meta.right_fields) }}
+			</section>
+		</section>
+	</form>
+</div>
+
+<script>
+;(function() {
+	console.log("yoyo");
+	frappe.ready(function() {
+		bind_save();
+	});
+
+	var bind_save = function() {
+		$("#address-save").on("click", function() {
+			console.log("clicked!");
+
+			var fields = {
+				name: "{{ docname or '' }}"
+			};
+
+			$("form").find("[data-fieldname]").each(function(i, input) {
+				var $input = $(input);
+				var fieldname = $(input).attr("data-fieldname");
+				var fieldtype = $(input).attr("data-fieldtype");
+
+				if(fieldtype == "Check") {
+					fields[fieldname] = $input.is(":checked") ? 1 : 0;
+				} else {
+					fields[fieldname] = $input.val();
+				}
+			});
+
+			frappe.call({
+				btn: $(this),
+				type: "POST",
+				method: "erpnext.templates.pages.address.save_address",
+				args: { fields: fields, address_fieldname: get_url_arg("address_fieldname") },
+				error_msg: "#address-error",
+				callback: function(r) {
+					if(get_url_arg("address_fieldname")) {
+						window.location.href = "cart";
+					} else {
+						window.location.href = "address?name=" + encodeURIComponent(r.message);
+					}
+				}
+			});
+		});
+	};
+})();
+</script>
+
+<!-- no-sidebar -->
+{% endblock %}
diff --git a/erpnext/templates/pages/address.py b/erpnext/templates/pages/address.py
new file mode 100644
index 0000000..46dde92
--- /dev/null
+++ b/erpnext/templates/pages/address.py
@@ -0,0 +1,62 @@
+# 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 json
+
+import frappe
+from erpnext.shopping_cart.cart import get_lead_or_customer, update_cart_address
+from frappe.desk.form.meta import get_meta
+
+no_cache = 1
+no_sitemap = 1
+
+def get_context(context):
+	def _get_fields(fieldnames):
+		return [frappe._dict(zip(["label", "fieldname", "fieldtype", "options"],
+				[df.label, df.fieldname, df.fieldtype, df.options]))
+			for df in get_meta("Address").get("fields", {"fieldname": ["in", fieldnames]})]
+
+	docname = doc = None
+	title = "New Address"
+	if frappe.form_dict.name:
+		doc = frappe.get_doc("Address", frappe.form_dict.name)
+		docname = doc.name
+		title = doc.name
+
+	return {
+		"doc": doc,
+		"meta": frappe._dict({
+			"left_fields": _get_fields(["address_title", "address_type", "address_line1", "address_line2",
+				"city", "state", "pincode", "country"]),
+			"right_fields": _get_fields(["email_id", "phone", "fax", "is_primary_address",
+				"is_shipping_address"])
+		}),
+		"docname": docname,
+		"title": title
+	}
+
+@frappe.whitelist()
+def save_address(fields, address_fieldname=None):
+	party = get_lead_or_customer()
+	fields = json.loads(fields)
+
+	if fields.get("name"):
+		doc = frappe.get_doc("Address", fields.get("name"))
+	else:
+		doc = frappe.get_doc({"doctype": "Address", "__islocal": 1})
+
+	doc.update(fields)
+
+	party_fieldname = party.doctype.lower()
+	doc.update({
+		party_fieldname: party.name,
+		(party_fieldname + "_name"): party.get(party_fieldname + "_name")
+	})
+	doc.ignore_permissions = True
+	doc.save()
+
+	if address_fieldname:
+		update_cart_address(address_fieldname, doc.name)
+
+	return doc.name
diff --git a/erpnext/templates/pages/addresses.html b/erpnext/templates/pages/addresses.html
new file mode 100644
index 0000000..5cb56c0
--- /dev/null
+++ b/erpnext/templates/pages/addresses.html
@@ -0,0 +1,52 @@
+{% block title %} {{ "My Addresses" }} {% endblock %}
+
+{% block header %}<h2>My Addresses</h2>{% endblock %}
+
+{% block breadcrumbs %}{% include "templates/includes/breadcrumbs.html" %}{% endblock %}
+
+{% block content %}
+<div class="addresses-content">
+	<p><a class="btn btn-default" href="address"><i class="icon-plus"> New Address</i></a></p>
+	<hr>
+	<div id="address-list">
+		<div class="progress progress-striped active">
+			<div class="progress-bar progress-bar-info" style="width: 100%;"></div>
+		</div>
+	</div>
+</div>
+
+<script>
+;(function() {
+	var fetch_addresses = function() {
+		frappe.call({
+			method: "erpnext.templates.pages.addresses.get_addresses",
+			callback: function(r) {
+				$("#address-list .progress").remove();
+				var $list = $("#address-list");
+
+				if(!(r.message && r.message.length)) {
+					$list.html("<div class='alert'>No Addresses Found</div>");
+					return;
+				}
+
+				$.each(r.message, function(i, address) {
+					address.url_name = encodeURIComponent(address.name);
+					$(repl('<div> \
+						<p><a href="address?name=%(url_name)s">%(name)s</a></p> \
+						<p>%(display)s</p> \
+						<hr> \
+					</div>', address)).appendTo($list);
+				});
+			}
+		});
+	};
+
+	$(document).ready(function() {
+		fetch_addresses();
+	});
+})();
+</script>
+
+<!-- no-sidebar -->
+{% endblock %}
+
diff --git a/erpnext/templates/pages/addresses.py b/erpnext/templates/pages/addresses.py
new file mode 100644
index 0000000..531d3a3
--- /dev/null
+++ b/erpnext/templates/pages/addresses.py
@@ -0,0 +1,13 @@
+# 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
+from erpnext.shopping_cart.cart import get_address_docs
+
+no_cache = 1
+no_sitemap = 1
+
+@frappe.whitelist()
+def get_addresses():
+	return get_address_docs()
diff --git a/erpnext/templates/pages/cart.html b/erpnext/templates/pages/cart.html
new file mode 100644
index 0000000..a8dc03e
--- /dev/null
+++ b/erpnext/templates/pages/cart.html
@@ -0,0 +1,57 @@
+{% block title %} {{ "Shopping Cart" }} {% endblock %}
+
+{% block header %}<h2><i class="icon-shopping-cart"></i> Shopping Cart</h2>{% endblock %}
+
+{% block script %}{% include "templates/includes/cart.js" %}{% endblock %}
+
+{% block content %}
+<div class="cart-content">
+	<div class="progress progress-striped active">
+		<div class="progress-bar progress-bar-info" style="width: 100%;"></div>
+	</div>
+	<div id="cart-container" class="hide">
+		<p class="pull-right"><button class="btn btn-success btn-place-order" type="button">Place Order</button></p>
+		<div class="clearfix"></div>
+		<div id="cart-error" class="alert alert-danger" style="display: none;"></div>
+		<hr>
+		<div class="row">
+			<div class="col-md-9 col-sm-9">
+				<div class="row">
+					<div class="col-md-9 col-md-offset-3"><h4>Item Details</h4></div>
+				</div>
+			</div>
+			<div class="col-md-3 col-sm-3 text-right"><h4>Qty, Amount</h4></div>
+		</div><hr>
+		<div id="cart-items">
+		</div>
+		<div id="cart-taxes">
+		</div>
+		<div id="cart-totals">
+		</div>
+		<hr>
+		<div id="cart-addresses">
+			<div class="row">
+				<div class="col-md-6">
+					<h4>Shipping Address</h4>
+					<div id="cart-shipping-address" class="panel-group"
+						data-fieldname="shipping_address_name"></div>
+					<button class="btn btn-default" type="button" id="cart-add-shipping-address">
+						<span class="icon icon-plus"></span> New Shipping Address</button>
+				</div>
+				<div class="col-md-6">
+					<h4>Billing Address</h4>
+					<div id="cart-billing-address" class="panel-group"
+						data-fieldname="customer_address"></div>
+					<button class="btn btn-default" type="button" id="cart-add-billing-address">
+						<span class="icon icon-plus"></span> New Billing Address</button>
+				</div>
+			</div>
+			<hr>
+		</div>
+		<p class="pull-right"><button class="btn btn-success btn-place-order" type="button">Place Order</button></p>
+	</div>
+</div>
+
+<!-- no-sidebar -->
+{% endblock %}
+
diff --git a/erpnext/templates/pages/cart.py b/erpnext/templates/pages/cart.py
new file mode 100644
index 0000000..9c9f096
--- /dev/null
+++ b/erpnext/templates/pages/cart.py
@@ -0,0 +1,7 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
+# License: GNU General Public License v3. See license.txt
+
+from __future__ import unicode_literals
+
+no_cache = 1
+no_sitemap = 1
\ No newline at end of file
diff --git a/erpnext/templates/pages/invoice.html b/erpnext/templates/pages/invoice.html
new file mode 100644
index 0000000..13b0e72
--- /dev/null
+++ b/erpnext/templates/pages/invoice.html
@@ -0,0 +1,6 @@
+{% block title %} {{ doc.name }} {% endblock %}
+
+{% block header %}<h2>{{ doc.name }}</h2>{% endblock %}
+
+{% block content%}{% include "templates/includes/sale.html" %}{% endblock %}
+
diff --git a/erpnext/templates/pages/invoice.py b/erpnext/templates/pages/invoice.py
new file mode 100644
index 0000000..8109109
--- /dev/null
+++ b/erpnext/templates/pages/invoice.py
@@ -0,0 +1,31 @@
+# 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
+from frappe import _
+from frappe.utils import flt, fmt_money
+from erpnext.templates.utils import get_transaction_context
+
+no_cache = 1
+no_sitemap = 1
+
+def get_context(context):
+	invoice_context = frappe._dict({
+		"parent_link": "invoices",
+		"parent_title": "Invoices"
+	})
+	invoice_context.update(get_transaction_context("Sales Invoice", frappe.form_dict.name))
+	modify_status(invoice_context.doc)
+	return invoice_context
+	
+def modify_status(doc):
+	doc.status = ""
+	if flt(doc.outstanding_amount):
+		doc.status = '<span class="label %s"><i class="icon-fixed-width %s"></i> %s</span>' % \
+			("label-warning", "icon-exclamation-sign", 
+			_("To Pay") + " = " + fmt_money(doc.outstanding_amount, currency=doc.currency))
+	else:
+		doc.status = '<span class="label %s"><i class="icon-fixed-width %s"></i> %s</span>' % \
+			("label-success", "icon-ok", _("Paid"))
+		
\ No newline at end of file
diff --git a/erpnext/templates/pages/invoices.html b/erpnext/templates/pages/invoices.html
new file mode 100644
index 0000000..9f493ca
--- /dev/null
+++ b/erpnext/templates/pages/invoices.html
@@ -0,0 +1,6 @@
+{% block title %} {{ title }} {% endblock %}
+
+{% block header %}<h2>{{ title }}</h2>{% endblock %}
+
+{% block content %}{% include "templates/includes/sales_transactions.html" %}{% endblock %}
+
diff --git a/erpnext/templates/pages/invoices.py b/erpnext/templates/pages/invoices.py
new file mode 100644
index 0000000..87aff21
--- /dev/null
+++ b/erpnext/templates/pages/invoices.py
@@ -0,0 +1,29 @@
+# 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
+from erpnext.templates.utils import get_currency_context
+
+no_cache = 1
+no_sitemap = 1
+
+def get_context(context):
+	invoices_context = get_currency_context()
+	invoices_context.update({
+		"title": "Invoices",
+		"method": "erpnext.templates.pages.invoices.get_invoices",
+		"icon": "icon-file-text",
+		"empty_list_message": "No Invoices Found",
+		"page": "invoice"
+	})
+	return invoices_context
+	
+@frappe.whitelist()
+def get_invoices(start=0):
+	from erpnext.templates.utils import get_transaction_list
+	from erpnext.templates.pages.invoice import modify_status
+	invoices = get_transaction_list("Sales Invoice", start, ["outstanding_amount"])
+	for d in invoices:
+		modify_status(d)
+	return invoices
\ No newline at end of file
diff --git a/erpnext/templates/pages/order.html b/erpnext/templates/pages/order.html
new file mode 100644
index 0000000..13b0e72
--- /dev/null
+++ b/erpnext/templates/pages/order.html
@@ -0,0 +1,6 @@
+{% block title %} {{ doc.name }} {% endblock %}
+
+{% block header %}<h2>{{ doc.name }}</h2>{% endblock %}
+
+{% block content%}{% include "templates/includes/sale.html" %}{% endblock %}
+
diff --git a/erpnext/templates/pages/order.py b/erpnext/templates/pages/order.py
new file mode 100644
index 0000000..527caba
--- /dev/null
+++ b/erpnext/templates/pages/order.py
@@ -0,0 +1,34 @@
+# 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
+from frappe import _
+from erpnext.templates.utils import get_transaction_context
+
+no_cache = 1
+no_sitemap = 1
+
+def get_context(context):
+	order_context = frappe._dict({
+		"parent_link": "orders",
+		"parent_title": "My Orders"
+	})
+
+	order_context.update(get_transaction_context("Sales Order", frappe.form_dict.name))
+	modify_status(order_context.doc)
+	return order_context
+
+def modify_status(doc):
+	doc.status = []
+	if 0 < doc.per_billed < 100:
+		doc.status.append(("label-warning", "icon-ok", _("Partially Billed")))
+	elif doc.per_billed == 100:
+		doc.status.append(("label-success", "icon-ok", _("Billed")))
+
+	if 0 < doc.per_delivered < 100:
+		doc.status.append(("label-warning", "icon-truck", _("Partially Delivered")))
+	elif doc.per_delivered == 100:
+		doc.status.append(("label-success", "icon-truck", _("Delivered")))
+	doc.status = " " + " ".join(('<span class="label %s"><i class="icon-fixed-width %s"></i> %s</span>' % s
+			for s in doc.status))
diff --git a/erpnext/templates/pages/orders.html b/erpnext/templates/pages/orders.html
new file mode 100644
index 0000000..d58cbd8
--- /dev/null
+++ b/erpnext/templates/pages/orders.html
@@ -0,0 +1,5 @@
+{% block title %} {{ title }} {% endblock %}
+
+{% block header %}<h2>{{ title }}</h2>{% endblock %}
+
+{% block content %}{% include "templates/includes/sales_transactions.html" %}{% endblock %}
diff --git a/erpnext/templates/pages/orders.py b/erpnext/templates/pages/orders.py
new file mode 100644
index 0000000..ebf75b3
--- /dev/null
+++ b/erpnext/templates/pages/orders.py
@@ -0,0 +1,30 @@
+# 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
+from erpnext.templates.utils import get_currency_context, get_transaction_list
+from erpnext.templates.pages.order import modify_status
+
+no_cache = 1
+no_sitemap = 1
+
+def get_context(context):
+	orders_context = get_currency_context()
+	orders_context.update({
+		"title": "My Orders",
+		"method": "erpnext.templates.pages.orders.get_orders",
+		"icon": "icon-list",
+		"empty_list_message": "No Orders Yet",
+		"page": "order",
+	})
+	return orders_context
+	
+@frappe.whitelist()
+def get_orders(start=0):
+	orders = get_transaction_list("Sales Order", start, ["per_billed", "per_delivered"])
+	for d in orders:
+		modify_status(d)
+		
+	return orders
+	
\ No newline at end of file
diff --git a/erpnext/templates/pages/shipment.html b/erpnext/templates/pages/shipment.html
new file mode 100644
index 0000000..13b0e72
--- /dev/null
+++ b/erpnext/templates/pages/shipment.html
@@ -0,0 +1,6 @@
+{% block title %} {{ doc.name }} {% endblock %}
+
+{% block header %}<h2>{{ doc.name }}</h2>{% endblock %}
+
+{% block content%}{% include "templates/includes/sale.html" %}{% endblock %}
+
diff --git a/erpnext/templates/pages/shipment.py b/erpnext/templates/pages/shipment.py
new file mode 100644
index 0000000..a8047f5
--- /dev/null
+++ b/erpnext/templates/pages/shipment.py
@@ -0,0 +1,17 @@
+# 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
+from erpnext.templates.utils import get_transaction_context
+
+no_cache = 1
+no_sitemap = 1
+
+def get_context(context):
+	shipment_context = frappe._dict({
+		"parent_link": "shipments",
+		"parent_title": "Shipments"
+	})
+	shipment_context.update(get_transaction_context("Delivery Note", frappe.form_dict.name))
+	return shipment_context
diff --git a/erpnext/templates/pages/shipments.html b/erpnext/templates/pages/shipments.html
new file mode 100644
index 0000000..d58cbd8
--- /dev/null
+++ b/erpnext/templates/pages/shipments.html
@@ -0,0 +1,5 @@
+{% block title %} {{ title }} {% endblock %}
+
+{% block header %}<h2>{{ title }}</h2>{% endblock %}
+
+{% block content %}{% include "templates/includes/sales_transactions.html" %}{% endblock %}
diff --git a/erpnext/templates/pages/shipments.py b/erpnext/templates/pages/shipments.py
new file mode 100644
index 0000000..350b3e4
--- /dev/null
+++ b/erpnext/templates/pages/shipments.py
@@ -0,0 +1,25 @@
+# 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
+from erpnext.templates.utils import get_currency_context
+
+no_cache = 1
+no_sitemap = 1
+
+def get_context(context):
+	shipments_context = get_currency_context()
+	shipments_context.update({
+		"title": "Shipments",
+		"method": "erpnext.templates.pages.shipments.get_shipments",
+		"icon": "icon-truck",
+		"empty_list_message": "No Shipments Found",
+		"page": "shipment"
+	})
+	return shipments_context
+	
+@frappe.whitelist()
+def get_shipments(start=0):
+	from erpnext.templates.utils import get_transaction_list
+	return get_transaction_list("Delivery Note", start)
diff --git a/erpnext/templates/pages/ticket.html b/erpnext/templates/pages/ticket.html
new file mode 100644
index 0000000..cff019c
--- /dev/null
+++ b/erpnext/templates/pages/ticket.html
@@ -0,0 +1,116 @@
+{% block title %} {{ title }} {% endblock %}
+
+{% block header %}<h2><i class="icon-ticket icon-fixed-width"></i> {{ title }}</h2>{% endblock %}
+
+{% block content %}
+{% set status_label = {
+	"Open": "label-success",
+	"To Reply": "label-danger",
+	"Closed": "label-default"
+} %}
+
+<div class="ticket-content">
+    <ul class="breadcrumb">
+    	<li><a href="index">Home</a></li>
+    	<li><a href="tickets">My Tickets</a></li>
+    	<li class="active"><i class="icon-ticket icon-fixed-width"></i> {{ doc.name or "" }}</li>
+    </ul>
+	{% if not doc -%}
+		<script>ask_to_login();</script>
+	{% else %}
+	<hr>
+	{%- if doc.status -%}
+	{% if doc.status == "Waiting for Customer" -%}
+		{% set status = "To Reply" %}
+	{% else %}
+		{% set status = doc.status %}
+	{%- endif -%}
+	<div class="row">
+		<div class="col-md-2" style="margin-bottom: 7px;">
+			<span class="label {{ status_label.get(status) or 'label-default' }}">{{ status }}</span>
+		</div>
+		<div class="col-md-8">
+			<div class="row col-md-12">{{ doc.subject }}</div>
+		</div>
+		<div class="col-md-2">
+			<span class="text-muted pull-right">{{ frappe.utils.formatdate(doc.creation) }}</span>
+		</div>
+	</div>
+	<div class="row">
+		<h4 class="col-xs-6">Messages</h4>
+		<div class="col-xs-6">
+			 <button class="btn btn-sm btn-primary pull-right" id="ticket-reply">
+				  <i class="icon-envelope icon-fixed-width"></i> Reply</button>
+			 <button class="btn btn-sm btn-success pull-right hide" id="ticket-reply-send">
+				  <i class="icon-arrow-right icon-fixed-width"></i> Send</button>
+		</div>
+	</div>
+	<p id="ticket-alert" class="alert alert-danger"
+		style="display: none;">&nbsp;</p>
+	<div>
+		<table class="table table-bordered table-striped" id="ticket-thread">
+			<tbody>
+				{%- for comm in
+					(doc.get({"doctype":"Communication"})|sort(reverse=True, attribute="creation")) %}
+				<tr>
+					<td>
+					<h5 style="text-transform: none">
+						{{ comm.sender }} on {{ frappe.utils.formatdate(comm.creation) }}</h5>
+					<hr>
+					<p>{{ frappe.utils.is_html(comm.content) and comm.content or
+						comm.content.replace("\n", "<br>")}}</p>
+					</td>
+				</tr>
+				{% endfor -%}
+			</tbody>
+		</table>
+	</div>
+	{%- endif -%}
+	{% endif -%}
+</div>
+
+<script>
+$(document).ready(function() {
+	$("#ticket-reply").on("click", function() {
+		if(!$("#ticket-reply-editor").length) {
+			$('<tr id="ticket-reply-editor"><td>\
+				<h5 style="text-transform: none">Reply</h5>\
+				<hr>\
+				<textarea rows=10 class="form-control" style="resize: vertical;"></textarea>\
+			</td></tr>').prependTo($("#ticket-thread").find("tbody"));
+			$("#ticket-reply").addClass("hide");
+			$("#ticket-reply-send").removeClass("hide");
+		}
+	});
+
+	$("#ticket-reply-send").on("click", function() {
+		var reply = $("#ticket-reply-editor").find("textarea").val().trim();
+		if(!reply) {
+			msgprint("Please write something in reply!");
+		} else {
+			frappe.call({
+				type: "POST",
+				method: "erpnext.templates.pages.ticket.add_reply",
+				btn: this,
+				args: { ticket: "{{ doc.name }}", message: reply },
+				callback: function(r) {
+					if(r.exc) {
+						msgprint(r._server_messages
+							? JSON.parse(r._server_messages).join("<br>")
+							: "Something went wrong!");
+					} else {
+						window.location.reload();
+					}
+				}
+			})
+		}
+	});
+});
+
+var msgprint = function(txt) {
+	if(txt) $("#ticket-alert").html(txt).toggle(true);
+}
+</script>
+
+<!-- no-sidebar -->
+{% endblock %}
diff --git a/erpnext/templates/pages/ticket.py b/erpnext/templates/pages/ticket.py
new file mode 100644
index 0000000..9582146
--- /dev/null
+++ b/erpnext/templates/pages/ticket.py
@@ -0,0 +1,41 @@
+# 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
+from frappe import _
+from frappe.utils import today
+
+no_cache = 1
+no_sitemap = 1
+
+def get_context(context):
+	doc = frappe.get_doc("Support Ticket", frappe.form_dict.name)
+	if doc.raised_by == frappe.session.user:
+		ticket_context = {
+			"title": doc.name,
+			"doc": doc
+		}
+	else:
+		ticket_context = {"title": "Not Allowed", "doc": {}}
+
+	return ticket_context
+
+@frappe.whitelist()
+def add_reply(ticket, message):
+	if not message:
+		raise frappe.throw(_("Please write something"))
+
+	doc = frappe.get_doc("Support Ticket", ticket)
+	if doc.raised_by != frappe.session.user:
+		raise frappe.throw(_("You are not allowed to reply to this ticket."), frappe.PermissionError)
+
+	comm = frappe.get_doc({
+		"doctype":"Communication",
+		"subject": doc.subject,
+		"content": message,
+		"sender": doc.raised_by,
+		"sent_or_received": "Received"
+	})
+	comm.insert(ignore_permissions=True)
+
diff --git a/erpnext/templates/pages/tickets.html b/erpnext/templates/pages/tickets.html
new file mode 100644
index 0000000..40cd80e
--- /dev/null
+++ b/erpnext/templates/pages/tickets.html
@@ -0,0 +1,92 @@
+{% block title %} {{ title }} {% endblock %}
+
+{% block header %}<h2>{{ title }}</h2>{% endblock %}
+
+{% block content %}
+{% include "templates/includes/transactions.html" %}
+
+<script>
+	var status_label = {
+		"Open": "label-success",
+		"Waiting for Customer": "label-danger",
+		"Closed": "label-default"
+	}
+
+	var render = function(doc) {
+		doc.status = doc.status.trim();
+		doc.label_class = status_label[doc.status] || "label-default";
+		if(doc.status==="Waiting for Customer") doc.status = "To Reply";
+
+		$(repl('<a href="{{ page }}?name=%(name)s" class="list-group-item">\
+				<div class="row">\
+					<div class="col-md-2" style="margin-bottom: 7px;"><span class="label %(label_class)s">\
+						%(status)s</span></div>\
+					<div class="col-md-8">\
+						<div class="row col-md-12">%(name)s</div>\
+						<div class="row col-md-12 text-muted">%(subject)s</div>\
+					</div>\
+					<div class="col-md-2 pull-right">\
+						<span class="text-muted">%(creation)s</span>\
+					</div>\
+				</div>\
+			</a>', doc)).appendTo($list);
+	};
+
+	frappe.ready(function() {
+		if(!window.$new_ticket) {
+			window.$new_ticket = $('<div>\
+					<button class="btn btn-primary" style="margin-bottom: 15px;" id="new-ticket">\
+						<i class="icon-tag icon-fixed-width"></i> New Ticket\
+					</button>\
+					<button class="btn btn-success hide" style="margin-bottom: 15px;" id="new-ticket-send">\
+						<i class="icon-arrow-right icon-fixed-width"></i> Send\
+					</button>\
+				</div>').insertBefore(".transaction-list");
+		}
+
+		window.$new_ticket.find("#new-ticket").on("click", function() {
+			$(this).addClass("hide");
+			$(window.$new_ticket).find("#new-ticket-send").removeClass("hide");
+			$('<div class="well" id="ticket-editor">\
+					<div class="form-group"><input class="form-control" type="data"\
+						 placeholder="Subject" data-fieldname="subject"></div>\
+					<div class="form-group"><textarea rows=10 class="form-control" \
+						 style="resize: vertical;" placeholder="Message" \
+						 data-fieldname="message"></textarea></div>\
+				</div>')
+				.insertAfter(window.$new_ticket);
+		});
+
+		window.$new_ticket.find("#new-ticket-send").on("click", function() {
+			var subject = $("#ticket-editor").find('[data-fieldname="subject"]').val().trim();
+			var message = $("#ticket-editor").find('[data-fieldname="message"]').val().trim();
+			if(!(subject && message)) {
+				msgprint("Please write something in subject and message!");
+			} else {
+				frappe.call({
+					type: "POST",
+					method: "erpnext.templates.pages.tickets.make_new_ticket",
+					btn: this,
+					args: { subject: subject, message: message },
+					callback: function(r) {
+						if(r.exc) {
+							msgprint(r._server_messages
+								? JSON.parse(r._server_messages).join("<br>")
+								: "Something went wrong!");
+						} else {
+							window.location.href = "ticket?name=" + encodeURIComponent(r.message);
+						}
+					}
+				})
+			}
+		});
+	});
+
+	var msgprint = function(txt) {
+		if(txt) $("#msgprint-alert").html(txt).toggle(true);
+	}
+</script>
+
+<!-- no-sidebar -->
+{% endblock %}
+
diff --git a/erpnext/templates/pages/tickets.py b/erpnext/templates/pages/tickets.py
new file mode 100644
index 0000000..539cde6
--- /dev/null
+++ b/erpnext/templates/pages/tickets.py
@@ -0,0 +1,54 @@
+# 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
+from frappe.utils import cint, formatdate
+
+no_cache = 1
+no_sitemap = 1
+
+def get_context(context):
+	return {
+		"title": "My Tickets",
+		"method": "erpnext.templates.pages.tickets.get_tickets",
+		"icon": "icon-ticket",
+		"empty_list_message": "No Tickets Raised",
+		"page": "ticket"
+	}
+
+@frappe.whitelist()
+def get_tickets(start=0):
+	tickets = frappe.db.sql("""select name, subject, status, creation
+		from `tabSupport Ticket` where raised_by=%s
+		order by modified desc
+		limit %s, 20""", (frappe.session.user, cint(start)), as_dict=True)
+	for t in tickets:
+		t.creation = formatdate(t.creation)
+
+	return tickets
+
+@frappe.whitelist()
+def make_new_ticket(subject, message):
+	if not (subject and message):
+		raise frappe.throw(_("Please write something in subject and message!"))
+
+	ticket = frappe.get_doc({
+		"doctype":"Support Ticket",
+		"subject": subject,
+		"raised_by": frappe.session.user,
+	})
+	ticket.insert(ignore_permissions=True)
+
+	comm = frappe.get_doc({
+		"doctype":"Communication",
+		"subject": subject,
+		"content": message,
+		"sender": frappe.session.user,
+		"sent_or_received": "Received",
+		"reference_doctype": "Support Ticket",
+		"reference_name": ticket.name
+	})
+	comm.insert(ignore_permissions=True)
+
+	return ticket.name
diff --git a/erpnext/templates/pages/user.html b/erpnext/templates/pages/user.html
new file mode 100644
index 0000000..1d1d0b3
--- /dev/null
+++ b/erpnext/templates/pages/user.html
@@ -0,0 +1,57 @@
+{% block title %} {{ "My Profile" }} {% endblock %}
+
+{% block header %}<h2>My Profile</h2>{% endblock %}
+
+{% block content %}
+<div class="user-content" style="max-width: 500px;">
+    <ul class="breadcrumb">
+    	<li><a href="index">Home</a></li>
+    	<li class="active"><i class="icon-user icon-fixed-width"></i> My Profile</li>
+    </ul>
+	<div class="alert alert-warning" id="message" style="display: none;"></div>
+	<form>
+		<fieldset>
+			<label>Full Name</label>
+			<input class="form-control" type="text" id="fullname" placeholder="Your Name">
+		</fieldset>
+		<fieldset>
+			<label>Company Name</label>
+			<input class="form-control" type="text" id="company_name" placeholder="Company Name" value="{{ company_name }}">
+		</fieldset>
+		<fieldset>
+			<label>Mobile No</label>
+			<input class="form-control" type="text" id="mobile_no" placeholder="Mobile No" value="{{ mobile_no }}">
+		</fieldset>
+		<fieldset>
+			<label>Phone</label>
+			<input class="form-control" type="text" id="phone" placeholder="Phone" value="{{ phone }}">
+		</fieldset>
+		<button id="update_user" type="submit" class="btn btn-default">Update</button>
+	</form>
+</div>
+<script>
+$(document).ready(function() {
+	$("#fullname").val(getCookie("full_name") || "");
+	$("#update_user").click(function() {
+		frappe.call({
+			method: "erpnext.templates.pages.user.update_user",
+			type: "POST",
+			args: {
+				fullname: $("#fullname").val(),
+				company_name: $("#company_name").val(),
+				mobile_no: $("#mobile_no").val(),
+				phone: $("#phone").val()
+			},
+			btn: this,
+			msg: $("#message"),
+			callback: function(r) {
+				if(!r.exc) $("#user-full-name").html($("#fullname").val());
+			}
+		});
+		return false;
+	})
+})
+</script>
+<!-- no-sidebar -->
+{% endblock %}
+
diff --git a/erpnext/templates/pages/user.py b/erpnext/templates/pages/user.py
new file mode 100644
index 0000000..5869e98
--- /dev/null
+++ b/erpnext/templates/pages/user.py
@@ -0,0 +1,40 @@
+# 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
+from frappe import _
+from frappe.utils import cstr
+from erpnext.shopping_cart.cart import get_lead_or_customer
+
+no_cache = 1
+no_sitemap = 1
+
+def get_context(context):
+	party = get_lead_or_customer()
+	if party.doctype == "Lead":
+		mobile_no = party.mobile_no
+		phone = party.phone
+	else:
+		mobile_no, phone = frappe.db.get_value("Contact", {"email_id": frappe.session.user, 
+			"customer": party.name}, ["mobile_no", "phone"])
+		
+	return {
+		"company_name": cstr(party.customer_name if party.doctype == "Customer" else party.company_name),
+		"mobile_no": cstr(mobile_no),
+		"phone": cstr(phone)
+	}
+	
+@frappe.whitelist()
+def update_user(fullname, password=None, company_name=None, mobile_no=None, phone=None):
+	from erpnext.shopping_cart.cart import update_party
+	update_party(fullname, company_name, mobile_no, phone)
+	
+	if not fullname:
+		return _("Name is required")
+		
+	frappe.db.set_value("User", frappe.session.user, "first_name", fullname)
+	frappe.local.cookie_manager.set_cookie("full_name", fullname)
+	
+	return _("Updated")
+	
\ No newline at end of file
diff --git a/erpnext/templates/utils.py b/erpnext/templates/utils.py
index 9892924..139e63a 100644
--- a/erpnext/templates/utils.py
+++ b/erpnext/templates/utils.py
@@ -2,7 +2,10 @@
 # License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
-import frappe
+
+import frappe, json
+from frappe import _
+from frappe.utils import cint, formatdate
 
 @frappe.whitelist(allow_guest=True)
 def send_message(subject="Website Query", message="", sender="", status="Open"):
@@ -18,3 +21,47 @@
 		"sent_or_received": "Received"
 	})
 	comm.insert(ignore_permissions=True)
+
+def get_transaction_list(doctype, start, additional_fields=None):
+	# find customer id
+	customer = frappe.db.get_value("Contact", {"email_id": frappe.session.user},
+		"customer")
+
+	if customer:
+		if additional_fields:
+			additional_fields = ", " + ", ".join(("`%s`" % f for f in additional_fields))
+		else:
+			additional_fields = ""
+
+		transactions = frappe.db.sql("""select name, creation, currency, grand_total_export
+			%s
+			from `tab%s` where customer=%s and docstatus=1
+			order by creation desc
+			limit %s, 20""" % (additional_fields, doctype, "%s", "%s"),
+			(customer, cint(start)), as_dict=True)
+		for doc in transactions:
+			items = frappe.db.sql_list("""select item_name
+				from `tab%s Item` where parent=%s limit 6""" % (doctype, "%s"), doc.name)
+			doc.items = ", ".join(items[:5]) + ("..." if (len(items) > 5) else "")
+			doc.creation = formatdate(doc.creation)
+		return transactions
+	else:
+		return []
+
+def get_currency_context():
+	return {
+		"global_number_format": frappe.db.get_default("number_format") or "#,###.##",
+		"currency": frappe.db.get_default("currency"),
+		"currency_symbols": json.dumps(dict(frappe.db.sql("""select name, symbol
+			from tabCurrency where ifnull(enabled,0)=1""")))
+	}
+
+def get_transaction_context(doctype, name):
+	customer = frappe.db.get_value("Contact", {"email_id": frappe.session.user},
+		"customer")
+
+	doc = frappe.get_doc(doctype, name)
+	if doc.customer != customer:
+		return { "doc": frappe._dict({"name": _("Not Allowed")}) }
+	else:
+		return { "doc": doc }
diff --git a/erpnext/translations/ar.csv b/erpnext/translations/ar.csv
index b942f4c..aefb890 100644
--- a/erpnext/translations/ar.csv
+++ b/erpnext/translations/ar.csv
@@ -34,20 +34,20 @@
 "<a href=""#Sales Browser/Territory"">Add / Edit</a>","<a href=""#Sales Browser/Territory""> إضافة / تحرير < / A>"
 "<h4>Default Template</h4><p>Uses <a href=""http://jinja.pocoo.org/docs/templates/"">Jinja Templating</a> and all the fields of Address (including Custom Fields if any) will be available</p><pre><code>{{ address_line1 }}&lt;br&gt;{% if address_line2 %}{{ address_line2 }}&lt;br&gt;{% endif -%}{{ city }}&lt;br&gt;{% if state %}{{ state }}&lt;br&gt;{% endif -%}{% if pincode %} PIN:  {{ pincode }}&lt;br&gt;{% endif -%}{{ country }}&lt;br&gt;{% if phone %}Phone: {{ phone }}&lt;br&gt;{% endif -%}{% if fax %}Fax: {{ fax }}&lt;br&gt;{% endif -%}{% if email_id %}Email: {{ email_id }}&lt;br&gt;{% endif -%}</code></pre>","<h4> افتراضي قالب </ H4>  <p> ويستخدم <a href=""http://jinja.pocoo.org/docs/templates/""> جنجا القولبة </ a> و كافة الحقول من العنوان ( بما في ذلك الحقول المخصصة إن وجدت) وسوف تكون متاحة </ P>  <PRE> على <code> {{}} address_line1 <BR>  {٪ إذا address_line2٪} {{}} address_line2 <BR> { ENDIF٪ -٪}  {{المدينة}} <BR>  {٪ إذا الدولة٪} {{الدولة}} {<BR>٪ ENDIF -٪}  {٪ إذا كان الرقم السري٪} PIN: {{}} الرقم السري {<BR>٪ ENDIF -٪}  {{البلد}} <BR>  {٪ إذا كان الهاتف٪} الهاتف: {{هاتف}} {<BR> ENDIF٪ -٪}  {٪ إذا الفاكس٪} فاكس: {{}} الفاكس <BR> {٪ ENDIF -٪}  {٪٪ إذا email_id} البريد الإلكتروني: {{}} email_id <BR> ؛ {٪ ENDIF -٪}  </ رمز> </ قبل>"
 A Customer Group exists with same name please change the Customer name or rename the Customer Group,يوجد مجموعة العملاء مع نفس الاسم الرجاء تغيير اسم العميل أو إعادة تسمية المجموعة العملاء
-A Customer exists with same name,العملاء من وجود نفس الاسم مع
+A Customer exists with same name,يوجد في قائمة العملاء عميل بنفس الاسم
 A Lead with this email id should exist,وينبغي أن يكون هذا المعرف الرصاص مع البريد الإلكتروني موجود
 A Product or Service,منتج أو خدمة
 A Supplier exists with same name,وهناك مورد موجود مع نفس الاسم
 A symbol for this currency. For e.g. $,رمزا لهذه العملة. على سبيل المثال ل$
 AMC Expiry Date,AMC تاريخ انتهاء الاشتراك
 Abbr,ابر
-Abbreviation cannot have more than 5 characters,اختصار لا يمكن أن يكون أكثر من 5 أحرف
+Abbreviation cannot have more than 5 characters,الاختصار لا يمكن أن يكون أكثر من 5 أحرف
 Above Value,فوق القيمة
 Absent,غائب
 Acceptance Criteria,معايير القبول
 Accepted,مقبول
 Accepted + Rejected Qty must be equal to Received quantity for Item {0},يجب أن يكون مقبول مرفوض + الكمية مساوية ل كمية تلقى القطعة ل {0}
-Accepted Quantity,قبلت الكمية
+Accepted Quantity,كمية مقبولة
 Accepted Warehouse,قبلت مستودع
 Account,حساب
 Account Balance,رصيد حسابك
@@ -65,12 +65,12 @@
 Account with existing transaction can not be converted to group.,حساب مع الصفقة الحالية لا يمكن تحويلها إلى المجموعة.
 Account with existing transaction can not be deleted,حساب مع الصفقة الحالية لا يمكن حذف
 Account with existing transaction cannot be converted to ledger,حساب مع الصفقة الحالية لا يمكن تحويلها إلى دفتر الأستاذ
-Account {0} cannot be a Group,حساب {0} لا يمكن أن تكون المجموعة
-Account {0} does not belong to Company {1},حساب {0} لا تنتمي إلى شركة {1}
+Account {0} cannot be a Group,حساب {0} لا يمكن أن يكون مجموعة
+Account {0} does not belong to Company {1},حساب {0} لا ينتمي إلى شركة {1}
 Account {0} does not belong to company: {1},حساب {0} لا تنتمي إلى الشركة: {1}
 Account {0} does not exist,حساب {0} غير موجود
-Account {0} has been entered more than once for fiscal year {1},حساب {0} تم إدخال أكثر من مرة للعام المالي {1}
-Account {0} is frozen,حساب {0} يتم تجميد
+Account {0} has been entered more than once for fiscal year {1},تم إدخال حساب {0} أكثر من مرة للعام المالي {1}
+Account {0} is frozen,حساب {0} مجمد
 Account {0} is inactive,حساب {0} غير نشط
 Account {0} is not valid,حساب {0} غير صالح
 Account {0} must be of type 'Fixed Asset' as Item {1} is an Asset Item,"حساب {0} يجب أن تكون من النوع ' الأصول الثابتة ""كما البند {1} هو البند الأصول"
@@ -85,8 +85,8 @@
 "Accounting entry frozen up to this date, nobody can do / modify entry except role specified below.",قيد محاسبي المجمدة تصل إلى هذا التاريخ، لا أحد يمكن أن تفعل / تعديل إدخال باستثناء دور المحددة أدناه.
 Accounting journal entries.,المحاسبة إدخالات دفتر اليومية.
 Accounts,حسابات
-Accounts Browser,حسابات متصفح
-Accounts Frozen Upto,حسابات مجمدة لغاية
+Accounts Browser,متصفح الحسابات 
+Accounts Frozen Upto,حسابات مجمدة حتي
 Accounts Payable,ذمم دائنة
 Accounts Receivable,حسابات القبض
 Accounts Settings,إعدادات الحسابات
@@ -94,14 +94,14 @@
 Active: Will extract emails from ,نشط: سيتم استخراج رسائل البريد الإلكتروني من
 Activity,نشاط
 Activity Log,سجل النشاط
-Activity Log:,النشاط المفتاح:
-Activity Type,النشاط نوع
+Activity Log:,:سجل النشاط
+Activity Type,نوع النشاط
 Actual,فعلي
 Actual Budget,الميزانية الفعلية
 Actual Completion Date,تاريخ الإنتهاء الفعلي
-Actual Date,تاريخ الفعلية
+Actual Date,التاريخ الفعلي
 Actual End Date,تاريخ الإنتهاء الفعلي
-Actual Invoice Date,الفعلي تاريخ الفاتورة
+Actual Invoice Date,التاريخ الفعلي للفاتورة
 Actual Posting Date,تاريخ النشر الفعلي
 Actual Qty,الكمية الفعلية
 Actual Qty (at source/target),الكمية الفعلية (في المصدر / الهدف)
@@ -112,7 +112,7 @@
 Add,إضافة
 Add / Edit Taxes and Charges,إضافة / تعديل الضرائب والرسوم
 Add Child,إضافة الطفل
-Add Serial No,إضافة رقم المسلسل
+Add Serial No,إضافة رقم تسلسلي
 Add Taxes,إضافة الضرائب
 Add Taxes and Charges,إضافة الضرائب والرسوم
 Add or Deduct,إضافة أو خصم
@@ -131,7 +131,7 @@
 Address Template,قالب عنوان
 Address Title,عنوان عنوان
 Address Title is mandatory.,عنوان عنوانها إلزامية.
-Address Type,عنوان نوع
+Address Type,نوع العنوان
 Address master.,عنوان رئيسي.
 Administrative Expenses,المصاريف الإدارية
 Administrative Officer,موظف إداري
@@ -217,7 +217,7 @@
 An Customer exists with same name,موجود على العملاء مع نفس الاسم
 "An Item Group exists with same name, please change the item name or rename the item group",وجود فريق المدينة مع نفس الاسم، الرجاء تغيير اسم العنصر أو إعادة تسمية المجموعة البند
 "An item exists with same name ({0}), please change the item group name or rename the item",عنصر موجود مع نفس الاسم ( {0} ) ، الرجاء تغيير اسم المجموعة البند أو إعادة تسمية هذا البند
-Analyst,المحلل
+Analyst,محلل
 Annual,سنوي
 Another Period Closing Entry {0} has been made after {1},دخول أخرى الفترة الإنتهاء {0} أحرز بعد {1}
 Another Salary Structure {0} is active for employee {0}. Please make its status 'Inactive' to proceed.,"هيكل الرواتب أخرى {0} نشطة للموظف {0} . يرجى التأكد مكانتها ""غير نشطة "" والمضي قدما."
@@ -266,15 +266,15 @@
 Atleast one warehouse is mandatory,واحدة على الاقل مستودع إلزامي
 Attach Image,إرفاق صورة
 Attach Letterhead,نعلق رأسية
-Attach Logo,نعلق شعار
-Attach Your Picture,نعلق صورتك
+Attach Logo,إرفاق صورة الشعار/العلامة التجارية
+Attach Your Picture,إرفاق صورتك
 Attendance,الحضور
 Attendance Date,تاريخ الحضور
 Attendance Details,تفاصيل الحضور
 Attendance From Date,الحضور من تاريخ
 Attendance From Date and Attendance To Date is mandatory,الحضور من التسجيل والحضور إلى تاريخ إلزامي
 Attendance To Date,الحضور إلى تاريخ
-Attendance can not be marked for future dates,لا يمكن أن تكون علامة لحضور تواريخ مستقبلية
+Attendance can not be marked for future dates,لا يمكن أن ىكون تاريخ الحضور تاريخ مستقبلي
 Attendance for employee {0} is already marked,الحضور للموظف {0} تم وضع علامة بالفعل
 Attendance record.,سجل الحضور.
 Authorization Control,إذن التحكم
@@ -287,13 +287,13 @@
 Automatically extract Leads from a mail box e.g.,استخراج الشراء تلقائيا من صندوق البريد على سبيل المثال
 Automatically updated via Stock Entry of type Manufacture/Repack,تحديثها تلقائيا عن طريق إدخال الأسهم الصنع نوع / أعد حزم
 Automotive,السيارات
-Autoreply when a new mail is received,عندما رد تلقائي تلقي بريد جديد
+Autoreply when a new mail is received,رد تلقائي عند تلقي بريد جديد
 Available,متاح
 Available Qty at Warehouse,الكمية المتاحة في مستودع
 Available Stock for Packing Items,الأسهم المتاحة للتعبئة وحدات
 "Available in BOM, Delivery Note, Purchase Invoice, Production Order, Purchase Order, Purchase Receipt, Sales Invoice, Sales Order, Stock Entry, Timesheet",المتاحة في BOM ، تسليم مذكرة ، شراء الفاتورة ، ترتيب الإنتاج، طلب شراء ، شراء استلام ، فاتورة المبيعات ، ترتيب المبيعات ، اسهم الدخول و الجدول الزمني
 Average Age,متوسط ​​العمر
-Average Commission Rate,متوسط ​​سعر جنة
+Average Commission Rate,متوسط ​​العمولة
 Average Discount,متوسط ​​الخصم
 Awesome Products,المنتجات رهيبة
 Awesome Services,خدمات رهيبة
@@ -331,9 +331,9 @@
 Bank Draft,البنك مشروع
 Bank Name,اسم البنك
 Bank Overdraft Account,حساب السحب على المكشوف المصرفي
-Bank Reconciliation,البنك المصالحة
-Bank Reconciliation Detail,البنك المصالحة تفاصيل
-Bank Reconciliation Statement,بيان التسويات المصرفية
+Bank Reconciliation,تسوية البنك
+Bank Reconciliation Detail,تفاصيل تسوية البنك
+Bank Reconciliation Statement,بيان تسوية البنك
 Bank Voucher,البنك قسيمة
 Bank/Cash Balance,بنك / النقد وما في حكمه
 Banking,مصرفي
@@ -405,21 +405,21 @@
 Business Development Manager,مدير تطوير الأعمال
 Buying,شراء
 Buying & Selling,شراء وبيع
-Buying Amount,شراء المبلغ
-Buying Settings,شراء إعدادات
+Buying Amount,مبلغ الشراء
+Buying Settings,إعدادات الشراء
 "Buying must be checked, if Applicable For is selected as {0}",يجب أن يتم التحقق الشراء، إذا تم تحديد مطبق للك {0}
 C-Form,نموذج C-
 C-Form Applicable,C-نموذج قابل للتطبيق
-C-Form Invoice Detail,C-نموذج تفاصيل الفاتورة
-C-Form No,C-الاستمارة رقم
-C-Form records,سجلات نموذج C-
+C-Form Invoice Detail, تفاصيل الفاتورة نموذج - س 
+C-Form No,رقم النموذج - س 
+C-Form records,سجلات النموذج - س
 CENVAT Capital Goods,CENVAT السلع الرأسمالية
 CENVAT Edu Cess,CENVAT ايدو سيس
 CENVAT SHE Cess,CENVAT SHE سيس
 CENVAT Service Tax,CENVAT ضريبة الخدمة
 CENVAT Service Tax Cess 1,خدمة CENVAT ضريبة سيس 1
 CENVAT Service Tax Cess 2,خدمة CENVAT ضريبة سيس 2
-Calculate Based On,حساب الربح بناء على
+Calculate Based On,إحسب الربح بناء على
 Calculate Total Score,حساب النتيجة الإجمالية
 Calendar Events,الأحداث
 Call,دعوة
@@ -538,7 +538,7 @@
 Commission rate cannot be greater than 100,معدل العمولة لا يمكن أن يكون أكبر من 100
 Communication,اتصالات
 Communication HTML,الاتصالات HTML
-Communication History,الاتصال التاريخ
+Communication History,تاريخ الاتصال
 Communication log.,سجل الاتصالات.
 Communications,الاتصالات
 Company,شركة
@@ -1025,7 +1025,7 @@
 FCFS Rate,FCFS قيم
 Failed: ,فشل:
 Family Background,الخلفية العائلية
-Fax,بالفاكس
+Fax,فاكس
 Features Setup,ميزات الإعداد
 Feed,أطعم
 Feed Type,إطعام نوع
@@ -1041,7 +1041,7 @@
 Financial Analytics,تحليلات مالية
 Financial Services,الخدمات المالية
 Financial Year End Date,تاريخ نهاية السنة المالية
-Financial Year Start Date,السنة المالية تاريخ بدء
+Financial Year Start Date,تاريخ بدء السنة المالية
 Finished Goods,السلع تامة الصنع
 First Name,الاسم الأول
 First Responded On,أجاب أولا على
@@ -1059,7 +1059,7 @@
 For Company,لشركة
 For Employee,لموظف
 For Employee Name,لاسم الموظف
-For Price List,ل ائحة الأسعار
+For Price List,لائحة الأسعار
 For Production,للإنتاج
 For Reference Only.,للإشارة فقط.
 For Sales Invoice,لفاتورة المبيعات
@@ -1823,7 +1823,7 @@
 Number Format,عدد تنسيق
 Offer Date,عرض التسجيل
 Office,مكتب
-Office Equipments,معدات المكاتب
+Office Equipments,أدوات المكتب
 Office Maintenance Expenses,مصاريف صيانة المكاتب
 Office Rent,مكتب للإيجار
 Old Parent,العمر الرئيسي
@@ -1840,7 +1840,7 @@
 Open Tickets,تذاكر مفتوحة
 Opening (Cr),افتتاح (الكروم )
 Opening (Dr),افتتاح ( الدكتور )
-Opening Date,فتح تاريخ
+Opening Date,تاريخ الفتح
 Opening Entry,فتح دخول
 Opening Qty,فتح الكمية
 Opening Time,يفتح من الساعة
@@ -1854,7 +1854,7 @@
 Operation {0} not present in Operations Table,عملية {0} غير موجودة في جدول العمليات
 Operations,عمليات
 Opportunity,فرصة
-Opportunity Date,الفرصة تاريخ
+Opportunity Date,تاريخ الفرصة
 Opportunity From,فرصة من
 Opportunity Item,فرصة السلعة
 Opportunity Items,فرصة الأصناف
@@ -1914,9 +1914,9 @@
 Packing Slip Item,التعبئة الإغلاق زلة
 Packing Slip Items,التعبئة عناصر زلة
 Packing Slip(s) cancelled,زلة التعبئة (ق ) إلغاء
-Page Break,الصفحة استراحة
-Page Name,الصفحة اسم
-Paid Amount,دفع المبلغ
+Page Break,فاصل الصفحة
+Page Name,اسم الصفحة
+Paid Amount,المبلغ المدفوع
 Paid amount + Write Off Amount can not be greater than Grand Total,المبلغ المدفوع + شطب المبلغ لا يمكن أن يكون أكبر من المجموع الكلي
 Pair,زوج
 Parameter,المعلمة
@@ -3128,7 +3128,7 @@
 Users with this role are allowed to set frozen accounts and create / modify accounting entries against frozen accounts,يسمح للمستخدمين مع هذا الدور لضبط الحسابات المجمدة و إنشاء / تعديل القيود المحاسبية على حسابات مجمدة
 Utilities,خدمات
 Utility Expenses,مصاريف فائدة
-Valid For Territories,صالحة للالأقاليم
+Valid For Territories,صالحة للأقاليم
 Valid From,صالحة من
 Valid Upto,صالحة لغاية
 Valid for Territories,صالحة للالأقاليم
@@ -3237,7 +3237,7 @@
 Wrong Template: Unable to find head row.,قالب الخطأ: تعذر العثور على صف الرأس.
 Year,عام
 Year Closed,مغلق العام
-Year End Date,نهاية التاريخ العام
+Year End Date,تاريخ نهاية العام
 Year Name,اسم العام
 Year Start Date,تاريخ بدء العام
 Year of Passing,اجتياز سنة
@@ -3261,8 +3261,8 @@
 You may need to update: {0},قد تحتاج إلى تحديث : {0}
 You must Save the form before proceeding,يجب حفظ النموذج قبل الشروع
 Your Customer's TAX registration numbers (if applicable) or any general information,عميلك أرقام التسجيل الضريبي (إن وجدت) أو أي معلومات عامة
-Your Customers,الزبائن
-Your Login Id,تسجيل الدخول اسم المستخدم الخاص بك
+Your Customers,العملاء
+Your Login Id,تسجيل الدخول - اسم المستخدم الخاص بك
 Your Products or Services,المنتجات أو الخدمات الخاصة بك
 Your Suppliers,لديك موردون
 Your email address,عنوان البريد الإلكتروني الخاص بك
@@ -3329,3 +3329,49 @@
 {0} {1}: Cost Center is mandatory for Item {2},{0} {1}: مركز التكلفة إلزامي القطعة ل{2}
 {0}: {1} not found in Invoice Details table,{0}: {1} غير موجود في جدول تفاصيل الفاتورة
 ﻿ (Half Day),(نصف يوم)
+"<a href=""#Sales Browser/Customer Group"">Add / Edit</a>","<a href=""#Sales Browser/Customer Group""> إضافة / تحرير < / A>"
+"<a href=""#Sales Browser/Territory"">Add / Edit</a>","<a href=""#Sales Browser/Territory""> إضافة / تحرير < / A>"
+Billed,توصف
+Company,شركة
+Currency is required for Price List {0},مطلوب العملة ل قائمة الأسعار {0}
+Default Customer Group,المجموعة الافتراضية العملاء
+Default Territory,الافتراضي الإقليم
+Delivered,تسليم
+Enable Shopping Cart,تمكين سلة التسوق
+Go ahead and add something to your cart.,المضي قدما وإضافة شيء إلى عربة التسوق.
+Hey! Go ahead and add an address,احترس المضي قدما وإضافة عنوان
+Invalid Billing Address,عنوان الفواتير غير صالحة
+Invalid Shipping Address,العنوان شحن غير صالحة
+Missing Currency Exchange Rates for {0},أسعار صرف العملات في عداد المفقودين ل {0}
+Name is required,مطلوب اسم
+Not Allowed,غير مسموح
+Paid,مدفوع
+Partially Billed,وصفت جزئيا
+Partially Delivered,سلمت جزئيا
+Please specify a Price List which is valid for Territory,الرجاء تحديد قائمة الأسعار التي هي صالحة للأراضي
+Please specify currency in Company,يرجى تحديد العملة في شركة
+Please write something,يرجى كتابة شيء
+Please write something in subject and message!,يرجى كتابة شيء في الموضوع و رسالة !
+Price List,قائمة الأسعار
+Price List not configured.,قائمة السعر لم يتم تكوين.
+Quotation Series,سلسلة الاقتباس
+Shipping Rule,الشحن القاعدة
+Shopping Cart,سلة التسوق
+Shopping Cart Price List,عربة التسوق قائمة الأسعار
+Shopping Cart Price Lists,سلة التسوق قوائم الأسعار
+Shopping Cart Settings,إعدادات سلة التسوق
+Shopping Cart Shipping Rule,سلة التسوق الشحن القاعدة
+Shopping Cart Shipping Rules,سلة التسوق قواعد الشحن
+Shopping Cart Taxes and Charges Master,التسوق سلة الضرائب والرسوم ماجستير
+Shopping Cart Taxes and Charges Masters,التسوق سلة الضرائب والرسوم الماجستير
+Something went wrong!,ذهب شيئا خاطئا!
+Something went wrong.,ذهب شيئا خاطئا.
+Tax Master,ماستر الضرائب
+To Pay,على الدفع
+Updated,تحديث
+You are not allowed to reply to this ticket.,لا يسمح لك للرد على هذه التذكرة .
+You need to be logged in to view your cart.,تحتاج إلى تسجيل الدخول لمشاهدة عربة التسوق.
+You need to enable Shopping Cart,تحتاج إلى تمكين سلة التسوق
+{0} cannot be purchased using Shopping Cart,{0} لا يمكن شراؤها باستخدام عربة التسوق
+{0} is required,{0} مطلوب
+{0} {1} has a common territory {2},{0} {1} لديه أراضي مشتركة {2}
diff --git a/erpnext/translations/de.csv b/erpnext/translations/de.csv
index 276649f..ac797e1 100644
--- a/erpnext/translations/de.csv
+++ b/erpnext/translations/de.csv
@@ -40,14 +40,14 @@
 "<a href=""#Sales Browser/Item Group"">Add / Edit</a>","<a href=""#Sales Browser/Item Group""> Hinzufügen / Bearbeiten </ a>"
 "<a href=""#Sales Browser/Territory"">Add / Edit</a>","<a href=""#Sales Browser/Territory""> Hinzufügen / Bearbeiten </ a>"
 "<h4>Default Template</h4><p>Uses <a href=""http://jinja.pocoo.org/docs/templates/"">Jinja Templating</a> and all the fields of Address (including Custom Fields if any) will be available</p><pre><code>{{ address_line1 }}&lt;br&gt;{% if address_line2 %}{{ address_line2 }}&lt;br&gt;{% endif -%}{{ city }}&lt;br&gt;{% if state %}{{ state }}&lt;br&gt;{% endif -%}{% if pincode %} PIN:  {{ pincode }}&lt;br&gt;{% endif -%}{{ country }}&lt;br&gt;{% if phone %}Phone: {{ phone }}&lt;br&gt;{% endif -%}{% if fax %}Fax: {{ fax }}&lt;br&gt;{% endif -%}{% if email_id %}Email: {{ email_id }}&lt;br&gt;{% endif -%}</code></pre>",
-A Customer Group exists with same name please change the Customer name or rename the Customer Group,Eine Kundengruppe mit dem gleichen Namen existiert bereits. Ändern Sie den Kundennamen oder nennen Sie die Kundengruppe um
+A Customer Group exists with same name please change the Customer name or rename the Customer Group,Eine Kundengruppe mit dem gleichen Namen existiert bereits. Ändern Sie den Kundennamen oder benennen Sie die Kundengruppe um
 A Customer exists with same name,Ein Kunde mit dem gleichen Namen existiert bereits
-A Lead with this email id should exist,Ein Lead mit dieser E-Mail Adresse sollte vorhanden sein
-A Product or Service,Ein Produkt oder Dienstleistung
-"A Product or a Service that is bought, sold or kept in stock.","Ein Produkt oder eine Dienstleistung, die gekauft, verkauft oder auf Lager gehalten wird."
+A Lead with this email id should exist,Ein Leiter mit dieser E-Mail-Adresse sollte vorhanden sein
+A Product or Service,Produkt oder Dienstleistung
+"A Product or a Service that is bought, sold or kept in stock.","Produkt oder Dienstleistung, die gekauft, verkauft oder auf Lager gehalten wird."
 A Supplier exists with same name,Ein Lieferant mit dem gleichen Namen existiert bereits
-A condition for a Shipping Rule,Eine Bedingung für eine Versandregel
-A logical Warehouse against which stock entries are made.,"Eine logisches Warenlager, für das Bestandseinträge gemacht werden."
+A condition for a Shipping Rule,Bedingung für eine Versandregel
+A logical Warehouse against which stock entries are made.,Eine logisches Warenlager für das Bestandseinträge gemacht werden.
 A symbol for this currency. For e.g. $,"Ein Symbol für diese Währung, z.B. €"
 A third party distributor / dealer / commission agent / affiliate / reseller who sells the companies products for a commission.,"Ein dritter Vertriebspartner/Händler/Kommissionär/Tochterunternehmer/ Fachhändler, der die Produkte es Unternehmens auf Provision vertreibt."
 "A user with ""Expense Approver"" role",
@@ -65,13 +65,13 @@
 Account Balance,Kontostand
 Account Created: {0},Konto {0} erstellt
 Account Details,Kontendaten
-Account Head,Konto Kopf
-Account Name,Konto Name
-Account Type,Konto Typ
+Account Head,Kontoführer
+Account Name,Kontoname
+Account Type,Kontotyp
 "Account balance already in Credit, you are not allowed to set 'Balance Must Be' as 'Debit'","Kontostand bereits im Kredit, Sie dürfen nicht eingestellt ""Balance Must Be"" als ""Debit"""
 "Account balance already in Debit, you are not allowed to set 'Balance Must Be' as 'Credit'","Kontostand bereits in Lastschrift, sind Sie nicht berechtigt, festgelegt als ""Kredit"" ""Balance Must Be '"
 Account for the warehouse (Perpetual Inventory) will be created under this Account.,Konto für das Lager (Laufende Inventur) wird unter diesem Konto erstellt.
-Account head {0} created,Konto Kopf {0} erstellt
+Account head {0} created,Kontoführer {0} erstellt
 Account must be a balance sheet account,Konto muss ein Bilanzkonto sein
 Account with child nodes cannot be converted to ledger,Ein Konto mit Kind-Knoten kann nicht in ein Kontoblatt umgewandelt werden
 Account with existing transaction can not be converted to group.,Ein Konto mit bestehenden Transaktion kann nicht in eine Gruppe umgewandelt werden
@@ -79,11 +79,11 @@
 Account with existing transaction cannot be converted to ledger,Ein Konto mit bestehenden Transaktion kann nicht in ein Kontoblatt umgewandelt werden
 Account {0} cannot be a Group,Konto {0} kann keine Gruppe sein
 Account {0} does not belong to Company {1},Konto {0} gehört nicht zum Unternehmen {1}
-Account {0} does not belong to company: {1},Konto {0} gehört nicht zum Unternehmen {1}
+Account {0} does not belong to company: {1},Konto {0} gehört nicht zum Unternehmen: {1}
 Account {0} does not exist,Konto {0} existiert nicht
 Account {0} does not exists,
 Account {0} has been entered more than once for fiscal year {1},Konto {0} wurde mehr als einmal für das Geschäftsjahr {1} eingegeben 
-Account {0} is frozen,Konto {0} ist eingefroren
+Account {0} is frozen,Konto {0} ist gesperrt
 Account {0} is inactive,Konto {0} ist inaktiv
 Account {0} is not valid,Konto {0} ist nicht gültig
 Account {0} must be of type 'Fixed Asset' as Item {1} is an Asset Item,"Konto {0} muss vom Typ ""Aktivposten"" sein, weil der Artikel {1} ein Aktivposten ist"
@@ -99,18 +99,18 @@
 "Accounting entry frozen up to this date, nobody can do / modify entry except role specified below.","Bis zu diesem Zeitpunkt eingefrorener Buchhaltungseintrag, niemand außer der unten genannten Position kann den Eintrag bearbeiten/ändern."
 Accounting journal entries.,Buchhaltungsjournaleinträge
 Accounts,Konten
-Accounts Browser,Konten Browser
-Accounts Frozen Upto,Eingefrorene Konten bis
-Accounts Manager,
+Accounts Browser,Kontenbrowser
+Accounts Frozen Upto,Konten gesperrt bis
+Accounts Manager,Kontenmanager
 Accounts Payable,Kreditoren
 Accounts Receivable,Forderungen
-Accounts Settings,Kontoeinstellungen
-Accounts User,
+Accounts Settings,Konteneinstellungen
+Accounts User,Kontenbenutzer
 Active,Aktiv
 Active: Will extract emails from ,Aktiv: Werden E-Mails extrahieren
 Activity,Aktivität
 Activity Log,Aktivitätsprotokoll
-Activity Log:,Activity Log:
+Activity Log:,Aktivitätsprotokoll:
 Activity Type,Aktivitätstyp
 Actual,Tatsächlich
 Actual Budget,Tatsächliches Budget
@@ -127,7 +127,7 @@
 Actual Start Date,Tatsächliches Startdatum
 Add,Hinzufügen
 Add / Edit Taxes and Charges,Hinzufügen/Bearbeiten von Steuern und Abgaben
-Add Child,Kind hinzufügen
+Add Child,Untergeordnetes Element hinzufügen
 Add Serial No,In Seriennummer
 Add Taxes,Steuern hinzufügen
 Add or Deduct,Hinzuaddieren oder abziehen
@@ -338,12 +338,12 @@
 Backup Manager,Datensicherungsverwaltung
 Backup Right Now,Jetzt eine Datensicherung durchführen
 Backups will be uploaded to,Datensicherungen werden hochgeladen nach
-Balance Qty,Bilanz Menge
+Balance Qty,Bilanzmenge
 Balance Sheet,Bilanz
 Balance Value,Bilanzwert
 Balance for Account {0} must always be {1},Saldo für Konto {0} muss immer {1} sein
 Balance must be,Saldo muss sein
-"Balances of Accounts of type ""Bank"" or ""Cash""","Guthaben von Konten vom Typ "" Bank"" oder "" Cash"""
+"Balances of Accounts of type ""Bank"" or ""Cash""","Guthaben von Konten vom Typ ""Bank"" oder ""Cash"""
 Bank,Bank
 Bank / Cash Account,Bank / Geldkonto
 Bank A/C No.,Bankkonto-Nr.
@@ -351,25 +351,25 @@
 Bank Account No.,Bankkonto-Nr.
 Bank Accounts,Bankkonten
 Bank Clearance Summary,Zusammenfassung Bankgenehmigung
-Bank Draft,Bank Draft
+Bank Draft,Banktratte
 Bank Name,Name der Bank
 Bank Overdraft Account,Kontokorrentkredit Konto
 Bank Reconciliation,Kontenabstimmung
 Bank Reconciliation Detail,Kontenabstimmungsdetail
 Bank Reconciliation Statement,Kontenabstimmungsauszug
-Bank Voucher,Bankgutschein
+Bank Voucher,Bankbeleg
 Bank/Cash Balance,Bank-/Bargeldsaldo
 Banking,Bankwesen
 Barcode,Strichcode
-Barcode {0} already used in Item {1},Barcode {0} bereits im Artikel verwendet {1}
+Barcode {0} already used in Item {1},Barcode {0} bereits in Artikel {1} verwendet 
 Based On,Beruht auf
 Basic,Grundlagen
-Basic Info,Basis Informationen
-Basic Information,Basis Informationen
-Basic Rate,Basisrate
-Basic Rate (Company Currency),Basisrate (Unternehmenswährung)
+Basic Info,Grundinfo
+Basic Information,Grundinformationen
+Basic Rate,Grundrate
+Basic Rate (Company Currency),Grundrate (Unternehmenswährung)
 Batch,Stapel
-Batch (lot) of an Item.,Stapel (Charge) eines Artikels.
+Batch (lot) of an Item.,Stapel (Partie) eines Artikels.
 Batch Finished Date,Enddatum des Stapels
 Batch ID,Stapel-ID
 Batch No,Stapelnr.
@@ -381,7 +381,7 @@
 Better Prospects,Bessere zukünftige Kunden
 Bill Date,Rechnungsdatum
 Bill No,Rechnungsnr.
-Bill of Material,Bill of Material
+Bill of Material,Stückliste
 Bill of Material to be considered for manufacturing,"Stückliste, die für die Herstellung berücksichtigt werden soll"
 Bill of Materials (BOM),Stückliste (SL)
 Billable,Abrechenbar
@@ -389,7 +389,7 @@
 Billed Amount,Rechnungsbetrag
 Billed Amt,Rechnungsbetrag
 Billing,Abrechnung
-Billing (Sales Invoice),
+Billing (Sales Invoice),Abrechung (Handelsrechnung)
 Billing Address,Rechnungsadresse
 Billing Address Name,Name der Rechnungsadresse
 Billing Status,Abrechnungsstatus
@@ -3460,3 +3460,51 @@
 {0} {1} status is Unstopped,{0} {1} Status unstopped
 {0} {1}: Cost Center is mandatory for Item {2},{0} {1}: Kostenstelle ist obligatorisch für Artikel {2}
 {0}: {1} not found in Invoice Details table,{0}: {1} nicht in der Rechnungs Details-Tabelle gefunden
+"<a href=""#Sales Browser/Customer Group"">Add / Edit</a>","<a href=""#Sales Browser/Customer Group""> Hinzufügen / Bearbeiten </ a>"
+"<a href=""#Sales Browser/Territory"">Add / Edit</a>","<a href=""#Sales Browser/Territory""> Hinzufügen / Bearbeiten </ a>"
+Billed,Abgerechnet
+Company,Unternehmen
+Currency is required for Price List {0},Die Währung ist für Preisliste erforderlich {0}
+Default Customer Group,Standardkundengruppe
+Default Territory,Standardregion
+Default settings for Shopping Cart,Standardeinstellungen für Einkaufswagen
+Delivered,Geliefert
+Enable Shopping Cart,Einkaufswagen aktivieren
+Go ahead and add something to your cart.,Gehen Sie voran und fügen Sie etwas in Ihren Warenkorb.
+Hey! Go ahead and add an address,Hallo! Gehen Sie voran und fügen Sie eine Adresse
+Invalid Billing Address,Ungültige Rechnungsadresse
+Invalid Shipping Address,Falsche Lieferadresse
+Missing Currency Exchange Rates for {0},Fehlende Wechselkurse für {0}
+Name is required,Name ist erforderlich
+Not Allowed,Nicht erlaubt
+Paid,bezahlt
+Partially Billed,teilweise Angekündigt
+Partially Delivered,teilweise Lieferung
+Please specify a Price List which is valid for Territory,"Legen Sie eine Preisliste fest, die für die Region gültig ist"
+Please specify currency in Company,Geben Sie die Währung im Unternehmen an
+Please write something,Bitte schreiben Sie etwas
+Please write something in subject and message!,Bitte schreiben Sie etwas in Betreff und die Nachricht !
+Price List,Preisliste
+Price List not configured.,Preisliste nicht konfiguriert.
+Quotation Series,Angebotsserie
+Shipping Rule,Versandregel
+Shopping Cart,Einkaufswagen
+Shopping Cart Price List,Einkaufswagen Preisliste
+Shopping Cart Price Lists,Einkaufswagen Preislisten
+Shopping Cart Settings,Einkaufswageneinstellungen
+Shopping Cart Shipping Rule,Einkaufswagen-Versandregel
+Shopping Cart Shipping Rules,Einkaufswagen-Versandregeln
+Shopping Cart Taxes and Charges Master,Einkaufswagen-Steuern und Abgabenstamm
+Shopping Cart Taxes and Charges Masters,Einkaufswagen-Steuern und Abgabenstämme
+Something went wrong!,Etwas ist schiefgelaufen!
+Something went wrong.,Es gab ein Problem.
+Tax Master,Steuerstamm
+To Pay,To Pay
+Updated,Aktualisiert
+Website Manager,
+You are not allowed to reply to this ticket.,"Sie sind nicht berechtigt, auf diesem Ticket antworten ."
+You need to be logged in to view your cart.,"Sie müssen angemeldet sein, um Ihren Warenkorb zu sehen."
+You need to enable Shopping Cart,Sie benötigen den Einkaufswagen zu ermöglichen
+{0} cannot be purchased using Shopping Cart,{0} kann nicht mit Einkaufswagen erworben werden
+{0} is required,{0} ist erforderlich
+{0} {1} has a common territory {2},{0} {1} hat einen gemeinsamen Territorium {2}
diff --git a/erpnext/translations/el.csv b/erpnext/translations/el.csv
index d918cf0..7526120 100644
--- a/erpnext/translations/el.csv
+++ b/erpnext/translations/el.csv
@@ -41,8 +41,8 @@
 A Supplier exists with same name,Ένας προμηθευτής υπάρχει με το ίδιο όνομα
 A symbol for this currency. For e.g. $,Ένα σύμβολο για το νόμισμα αυτό. Για παράδειγμα $
 AMC Expiry Date,AMC Ημερομηνία Λήξης
-Abbr,Abbr
-Abbreviation cannot have more than 5 characters,Συντομογραφία δεν μπορεί να έχει περισσότερα από 5 χαρακτήρες
+Abbr,Συντ.
+Abbreviation cannot have more than 5 characters,Μια συντομογραφία δεν μπορεί να έχει περισσότερα από 5 χαρακτήρες
 Above Value,Πάνω Value
 Absent,Απών
 Acceptance Criteria,Κριτήρια αποδοχής
@@ -50,9 +50,9 @@
 Accepted + Rejected Qty must be equal to Received quantity for Item {0},Αποδεκτές + Απορρίπτεται Ποσότητα πρέπει να είναι ίση με Ελήφθη ποσότητα για τη θέση {0}
 Accepted Quantity,ΠΟΣΟΤΗΤΑ
 Accepted Warehouse,Αποδεκτές αποθήκη
-Account,λογαριασμός
-Account Balance,Υπόλοιπο λογαριασμού
-Account Created: {0},Ο λογαριασμός Δημιουργήθηκε : {0}
+Account,Λογαριασμός
+Account Balance,Υπόλοιπο Λογαριασμού
+Account Created: {0},Ο λογαριασμός δημιουργήθηκε : {0}
 Account Details,Στοιχεία Λογαριασμού
 Account Head,Επικεφαλής λογαριασμού
 Account Name,Όνομα λογαριασμού
@@ -3329,3 +3329,49 @@
 {0} {1} status is Unstopped,{0} {1} η κατάσταση είναι ανεμπόδιστη
 {0} {1}: Cost Center is mandatory for Item {2},{0} {1}: Κέντρο Κόστους είναι υποχρεωτική για τη θέση {2}
 {0}: {1} not found in Invoice Details table,{0}: {1} δεν βρέθηκε στον πίνακα Στοιχεία τιμολογίου
+"<a href=""#Sales Browser/Customer Group"">Add / Edit</a>","<a href=""#Sales Browser/Customer Group""> Προσθήκη / Επεξεργασία < / a>"
+"<a href=""#Sales Browser/Territory"">Add / Edit</a>","<a href=""#Sales Browser/Territory""> Προσθήκη / Επεξεργασία < / a>"
+Billed,Χρεώνεται
+Company,Εταιρεία
+Currency is required for Price List {0},Νόμισμα απαιτείται για Τιμοκατάλογος {0}
+Default Customer Group,Προεπιλογή Ομάδα πελατών
+Default Territory,Έδαφος Προεπιλογή
+Delivered,Δημοσιεύθηκε
+Enable Shopping Cart,Ενεργοποίηση Καλάθι Αγορών
+Go ahead and add something to your cart.,Προχωρήστε και να προσθέσω κάτι στο καλάθι σας.
+Hey! Go ahead and add an address,Γειά! Προχωρήστε και να προσθέσετε μια διεύθυνση
+Invalid Billing Address,Μη έγκυρη διεύθυνση χρέωσης
+Invalid Shipping Address,Μη έγκυρη διεύθυνση αποστολής
+Missing Currency Exchange Rates for {0},Λείπει Τιμές συναλλάγματος για {0}
+Name is required,Όνομα απαιτείται
+Not Allowed,δεν επιτρέπονται κατοικίδια
+Paid,Αμειβόμενος
+Partially Billed,μερικώς Billed
+Partially Delivered,μερικώς Δημοσιεύθηκε
+Please specify a Price List which is valid for Territory,Παρακαλείστε να προσδιορίσετε μια λίστα τιμών που ισχύει για Επικράτεια
+Please specify currency in Company,Παρακαλείστε να προσδιορίσετε το νόμισμα στην εταιρεία
+Please write something,Παρακαλώ γράψτε κάτι
+Please write something in subject and message!,Παρακαλώ γράψτε κάτι στο θέμα και το μήνυμα !
+Price List,Τιμοκατάλογος
+Price List not configured.,Τιμοκατάλογος δεν έχει ρυθμιστεί.
+Quotation Series,Σειρά Προσφοράς
+Shipping Rule,Αποστολές Κανόνας
+Shopping Cart,Καλάθι Αγορών
+Shopping Cart Price List,Shopping Τιμοκατάλογος Καλάθι
+Shopping Cart Price Lists,Τιμοκατάλογοι Καλάθι Αγορών
+Shopping Cart Settings,Ρυθμίσεις Καλάθι Αγορών
+Shopping Cart Shipping Rule,Καλάθι Αγορών αποστολή Κανόνας
+Shopping Cart Shipping Rules,Κανόνες Shipping Καλάθι Αγορών
+Shopping Cart Taxes and Charges Master,Φόροι Καλάθι και Χρεώσεις Δάσκαλος
+Shopping Cart Taxes and Charges Masters,Φόροι Καλάθι και Χρεώσεις Masters
+Something went wrong!,Κάτι πήγε στραβά!
+Something went wrong.,Κάτι πήγε στραβά.
+Tax Master,Δάσκαλος φόρου
+To Pay,να πληρώσει
+Updated,Ενημέρωση
+You are not allowed to reply to this ticket.,Δεν επιτρέπεται να απαντήσετε σε αυτό το εισιτήριο .
+You need to be logged in to view your cart.,Θα πρέπει να είστε συνδεδεμένοι για να δείτε το καλάθι σας.
+You need to enable Shopping Cart,Χρειάζεται να ενεργοποιήσετε Καλάθι Αγορών
+{0} cannot be purchased using Shopping Cart,{0} δεν μπορούν να αγοραστούν χρησιμοποιώντας Καλάθι Αγορών
+{0} is required,{0} απαιτείται
+{0} {1} has a common territory {2},{0} {1} έχει ένα κοινό έδαφος {2}
diff --git a/erpnext/translations/es.csv b/erpnext/translations/es.csv
index 192e373..1688562 100644
--- a/erpnext/translations/es.csv
+++ b/erpnext/translations/es.csv
@@ -59,10 +59,10 @@
 Account Type,Tipo de Cuenta
 "Account balance already in Credit, you are not allowed to set 'Balance Must Be' as 'Debit'","Balance de la cuenta ya en Crédito, no le está permitido establecer 'Balance Debe Ser' como 'Débito'"
 "Account balance already in Debit, you are not allowed to set 'Balance Must Be' as 'Credit'","Balance de la cuenta ya en Débito, no le está permitido establecer ""Balance Debe Ser"" como ""Crédito"""
-Account for the warehouse (Perpetual Inventory) will be created under this Account.,Cuenta para el almacén ( inventario permanente ) se creará en esta Cuenta.
+Account for the warehouse (Perpetual Inventory) will be created under this Account.,Cuenta para el almacén ( Inventario Permanente ) se creará en esta Cuenta.
 Account head {0} created,Cabeza de cuenta {0} creado
 Account must be a balance sheet account,La cuenta debe ser una cuenta de balance
-Account with child nodes cannot be converted to ledger,Cuenta con nodos hijos no se puede convertir en el libro mayor
+Account with child nodes cannot be converted to ledger,Cuenta con nodos hijos no se puede convertir a cuentas del libro mayor
 Account with existing transaction can not be converted to group.,Cuenta con transacción existente no se puede convertir al grupo.
 Account with existing transaction can not be deleted,Cuenta con transacción existente no se puede eliminar
 Account with existing transaction cannot be converted to ledger,Cuenta con la transacción existente no se puede convertir en el libro mayor
@@ -74,7 +74,7 @@
 Account {0} is frozen,Cuenta {0} está congelada
 Account {0} is inactive,Cuenta {0} está inactiva
 Account {0} is not valid,Cuenta {0} no es válida
-Account {0} must be of type 'Fixed Asset' as Item {1} is an Asset Item,Cuenta {0} debe ser de tipo 'Activos Fijos' como Artículo {1} es un Elemento de Activo
+Account {0} must be of type 'Fixed Asset' as Item {1} is an Asset Item,Cuenta {0} debe ser de tipo 'Activos Fijos' porque Artículo {1} es un Elemento de Activo Fijo
 Account {0}: Parent account {1} can not be a ledger,Cuenta {0}: Cuenta Padre {1} no puede ser un libro de contabilidad
 Account {0}: Parent account {1} does not belong to company: {2},Cuenta {0}: Cuenta Padre {1} no pertenece a la compañía: {2}
 Account {0}: Parent account {1} does not exist,Cuenta {0}: Cuenta Padre {1} no existe
@@ -83,7 +83,7 @@
 Accountant,Contador
 Accounting,Contabilidad
 "Accounting Entries can be made against leaf nodes, called","Los comentarios de Contabilidad se pueden hacer contra los nodos hoja , llamada"
-"Accounting entry frozen up to this date, nobody can do / modify entry except role specified below.","Asiento contable congelado hasta la fecha , nadie puede hacer / modificar la entrada , excepto el papel se especifica a continuación ."
+"Accounting entry frozen up to this date, nobody can do / modify entry except role specified below.","Asiento contable congelado hasta la fecha , nadie puede hacer / modificar la entrada , excepto el roll que se especifica a continuación ."
 Accounting journal entries.,Entradas de diario de contabilidad.
 Accounts,Cuentas
 Accounts Browser,Navegador de Cuentas
@@ -111,7 +111,7 @@
 Actual Quantity,Cantidad Real
 Actual Start Date,Fecha de Comienzo Real
 Add,Añadir
-Add / Edit Taxes and Charges,Añadir / Editar las tasas y cargos
+Add / Edit Taxes and Charges,Añadir / Editar Impuestos y Cargos
 Add Child,Añadir Hijo
 Add Serial No,Añadir Serial No
 Add Taxes,Añadir impuestos
@@ -379,11 +379,11 @@
 Block Date,Bloquear Fecha
 Block Days,Bloquear Días
 Block leave applications by department.,Bloquee aplicaciones de permiso por departamento.
-Blog Post,Blog
-Blog Subscriber,Blog suscriptor
+Blog Post,Entrada al Blog
+Blog Subscriber,Suscriptor del Blog
 Blood Group,Grupos Sanguíneos
-Both Warehouse must belong to same Company,Tanto Almacén debe pertenecer a una misma empresa
-Box,caja
+Both Warehouse must belong to same Company,Ambos Almacenes deben pertenecer a una misma empresa
+Box,Caja
 Branch,Rama
 Brand,Marca
 Brand Name,Marca
@@ -391,7 +391,7 @@
 Brands,Marcas
 Breakdown,desglose
 Broadcasting,radiodifusión
-Brokerage,corretaje
+Brokerage,Corretaje
 Budget,Presupuesto
 Budget Allocated,Presupuesto asignado
 Budget Detail,Detalle del Presupuesto
@@ -399,9 +399,9 @@
 Budget Distribution,Presupuesto de Distribución
 Budget Distribution Detail,Detalle Presupuesto Distribución
 Budget Distribution Details,Detalles Presupuesto de Distribución
-Budget Variance Report,Presupuesto Varianza Reportar
+Budget Variance Report,Informe de  Varianza en el Presupuesto 
 Budget cannot be set for Group Cost Centers,El presupuesto no se puede establecer para Centros de costes del Grupo
-Build Report,Informe Construir
+Build Report,Construir Informe
 Bundle items at time of sale.,Agrupe elementos en el momento de la venta.
 Business Development Manager,Gerente de Desarrollo de Negocios
 Buying,Compra
@@ -423,16 +423,16 @@
 Calculate Based On,Calcular basado en
 Calculate Total Score,Calcular Puntaje Total
 Calendar Events,Calendario de Eventos
-Call,llamada
-Calls,llamadas
-Campaign,campaña
+Call,Llamada
+Calls,Llamadas
+Campaign,Campaña
 Campaign Name,Nombre de la campaña
-Campaign Name is required,El nombre es necesario Campaña
-Campaign Naming By,Naming Campaña Por
-Campaign-.####,Campaña . # # # #
+Campaign Name is required,Es necesario ingresar el nombre  de la Campaña 
+Campaign Naming By,Nombramiento de la Campaña Por
+Campaign-.####,Campaña-.#### 
 Can be approved by {0},Puede ser aprobado por {0}
 "Can not filter based on Account, if grouped by Account","No se puede filtrar en función de la cuenta , si se agrupan por cuenta"
-"Can not filter based on Voucher No, if grouped by Voucher","No se puede filtrar en función de la hoja no , si agrupados por Bono"
+"Can not filter based on Voucher No, if grouped by Voucher","No se puede filtrar en función del número de hoja, si agrupados por Bono"
 Can refer row only if the charge type is 'On Previous Row Amount' or 'Previous Row Total',"Puede referirse fila sólo si el tipo de carga es 'On anterior Importe Fila ""o"" Anterior Fila Total """
 Cancel Material Visit {0} before cancelling this Customer Issue,Cancelar material Visita {0} antes de cancelar esta edición al Cliente
 Cancel Material Visits {0} before cancelling this Maintenance Visit,Cancelar Visitas Materiales {0} antes de cancelar el Mantenimiento Visita
@@ -460,7 +460,7 @@
 Cannot select charge type as 'On Previous Row Amount' or 'On Previous Row Total' for valuation. You can select only 'Total' option for previous row amount or previous row total,"No se puede seleccionar el tipo de carga como 'On Fila Anterior Importe ' o ' En Fila Anterior Total "" para la valoración. Sólo puede seleccionar la opción ""Total"" para la cantidad fila anterior o siguiente de filas total"
 Cannot set as Lost as Sales Order is made.,No se puede definir tan perdido como está hecha de órdenes de venta .
 Cannot set authorization on basis of Discount for {0},No se puede establecer la autorización sobre la base de Descuento para {0}
-Capacity,capacidad
+Capacity,Capacidad
 Capacity Units,Unidades de Capacidad
 Capital Account,cuenta de Capital
 Capital Equipments,Equipos de capitales
@@ -468,8 +468,8 @@
 Carry Forwarded Leaves,Llevar Hojas reenviados
 Case No(s) already in use. Try from Case No {0},Case No. (s ) ya en uso. Trate de Caso n {0}
 Case No. cannot be 0,Caso No. No puede ser 0
-Cash,efectivo
-Cash In Hand,Efectivo disponible
+Cash,Efectivo
+Cash In Hand,Efectivo Disponible
 Cash Voucher,Bono Cash
 Cash or Bank Account is mandatory for making payment entry,Dinero en efectivo o cuenta bancaria es obligatoria para la toma de entrada de pago
 Cash/Bank Account,Cuenta de Caja / Banco
@@ -479,11 +479,11 @@
 Change the starting / current sequence number of an existing series.,Cambie el inicio / número de secuencia actual de una serie existente .
 Channel Partner,Channel Partner
 Charge of type 'Actual' in row {0} cannot be included in Item Rate,Cargo del tipo ' real ' en la fila {0} no puede ser incluido en el Punto de Cambio
-Chargeable,cobrable
+Chargeable,Cobrable
 Charity and Donations,Caridad y Donaciones
 Chart Name,Nombre del diagrama
 Chart of Accounts,Plan General de Contabilidad
-Chart of Cost Centers,Gráfico de Centros de Coste
+Chart of Cost Centers,Gráfico de Centros de Costos
 Check how the newsletter looks in an email by sending it to your email.,Comprobar cómo el boletín se ve en un correo electrónico mediante el envío a su correo electrónico .
 "Check if recurring invoice, uncheck to stop recurring or put proper End Date","Compruebe si se repite la factura , desmarque para detener recurrente o poner fin propio Fecha"
 "Check if you need automatic recurring invoices. After submitting any sales invoice, Recurring section will be visible.","Compruebe si necesita facturas recurrentes automáticos. Después de la presentación de cualquier factura de venta , sección recurrente será visible."
@@ -493,45 +493,45 @@
 Check this to disallow fractions. (for Nos),Active esta opción para no permitir fracciones. ( para refs )
 Check this to pull emails from your mailbox,Active esta opción para tirar de correos electrónicos de su buzón
 Check to activate,Compruebe para activar
-Check to make Shipping Address,Revise para asegurarse de dirección del envío
+Check to make Shipping Address,Seleccione para hacer ésta la de dirección de envío
 Check to make primary address,Verifique que la dirección primaria
-Chemical,químico
+Chemical,Químico
 Cheque,Cheque
 Cheque Date,Cheque Fecha
 Cheque Number,Número de Cheque
 Child account exists for this account. You can not delete this account.,Cuenta Child existe para esta cuenta. No es posible eliminar esta cuenta.
-City,ciudad
+City,Ciudad
 City/Town,Ciudad / Pueblo
 Claim Amount,Reclamación Importe
 Claims for company expense.,Las reclamaciones por los gastos de la empresa.
 Class / Percentage,Clase / Porcentaje
-Classic,clásico
+Classic,Clásico
 Clear Table,Borrar la tabla
 Clearance Date,Liquidación Fecha
 Clearance Date not mentioned,Liquidación La fecha no se menciona
 Clearance date cannot be before check date in row {0},Fecha de Liquidación no puede ser antes de la fecha de verificación de la fila {0}
 Click on 'Make Sales Invoice' button to create a new Sales Invoice.,"Haga clic en el botón ' Hacer la factura de venta ""para crear una nueva factura de venta ."
 Click on a link to get options to expand get options ,
-Client,cliente
+Client,Cliente
 Close Balance Sheet and book Profit or Loss.,Cerrar Balance General y el libro de pérdidas y ganancias .
-Closed,cerrado
+Closed,Cerrado
 Closing (Cr),Cierre (Cr)
 Closing (Dr),Cierre (Dr)
 Closing Account Head,Cierre Head Cuenta
 Closing Account {0} must be of type 'Liability',Cuenta {0} de cierre debe ser de tipo ' Responsabilidad '
-Closing Date,fecha tope
+Closing Date,Fecha de Cierre
 Closing Fiscal Year,Cerrando el Año Fiscal
 Closing Qty,Cantidad de Clausura
 Closing Value,Valor de Cierre
 CoA Help,CoA Ayuda
-Code,código
+Code,Código
 Cold Calling,Llamadas en frío
-Color,color
+Color,Color
 Column Break,Salto de columna
 Comma separated list of email addresses,Lista separada por comas de direcciones de correo electrónico separados
-Comment,comentario
+Comment,Comentario
 Comments,Comentarios
-Commercial,comercial
+Commercial,Comercial
 Commission,comisión
 Commission Rate,Comisión de Tarifas
 Commission Rate (%),Comisión de Cambio (% )
@@ -542,14 +542,14 @@
 Communication History,Historia de Comunicación
 Communication log.,Registro de Comunicación.
 Communications,Comunicaciones
-Company,empresa
+Company,Empresa
 Company (not Customer or Supplier) master.,Company (no cliente o proveedor ) maestro.
 Company Abbreviation,Abreviatura de la empresa
 Company Details,Datos de la empresa
 Company Email,Empresa Email
 "Company Email ID not found, hence mail not sent","Empresa Email ID no se encuentra, por lo tanto, no envíe por correo enviado"
 Company Info,Información de la empresa
-Company Name,nombre de compañía
+Company Name,Nombre de compañía
 Company Settings,Configuración de la compañía
 Company is missing in warehouses {0},Compañía no se encuentra en los almacenes {0}
 Company is required,Se requiere Compañía
@@ -557,14 +557,16 @@
 Company registration numbers for your reference. Tax numbers etc.,"Los números de registro de la empresa para su referencia . Números fiscales, etc"
 "Company, Month and Fiscal Year is mandatory","Company, mes y del año fiscal es obligatoria"
 Compensatory Off,compensatorio
-Complete,completo
+Complete,Completar
 Complete Setup,Instalación completa
 Completed,terminado
 Completed Production Orders,Órdenes de fabricación completadas
-Completed Qty,Completado Cantidad
+Completed Qty,"Cantidad Completada
+"
 Completion Date,Fecha de Terminación
 Completion Status,Estado de finalización
-Computer,ordenador
+Computer,"Computador
+"
 Computers,Computadoras
 Confirmation Date,Confirmación Fecha
 Confirmed orders from Customers.,Pedidos en firme de los clientes.
@@ -572,30 +574,31 @@
 Considered as Opening Balance,Considerado como balance de apertura
 Considered as an Opening Balance,Considerado como un saldo inicial
 Consultant,consultor
-Consulting,Consulting
+Consulting,Consuloría
 Consumable,consumible
 Consumable Cost,Costo de consumibles
 Consumable cost per hour,Costo de consumibles por hora
 Consumed Qty,consumido Cantidad
 Consumer Products,Productos de Consumo
-Contact,contacto
+Contact,Contacto
 Contact Control,Contactar con el Control
 Contact Desc,Contactar con la descripción
-Contact Details,Datos de contacto
+Contact Details,Datos del Contacto
 Contact Email,Correo electrónico de contacto
-Contact HTML,Contactar con HTML
-Contact Info,Contacto
+Contact HTML,"HTML del Contacto
+"
+Contact Info,Información del Contacto
 Contact Mobile No,Contacto Móvil No
 Contact Name,Nombre de contacto
 Contact No.,Contacto No.
 Contact Person,persona de Contacto
 Contact Type,Tipo de contacto
-Contact master.,Contacto amo.
+Contact master.,Contacto (principal).
 Contacts,Contactos
-Content,contenido
+Content,Contenido
 Content Type,Tipo de contenido
 Contra Voucher,Contra Voucher
-Contract,contrato
+Contract,Contrato
 Contract End Date,Fin del contrato Fecha
 Contract End Date must be greater than Date of Joining,Fin del contrato Fecha debe ser mayor que Fecha de acceso
 Contribution (%),Contribución (% )
@@ -611,8 +614,9 @@
 Converted,convertido
 Copy From Item Group,Copiar de Grupo Tema
 Cosmetics,productos cosméticos
-Cost Center,Centro de Costo
-Cost Center Details,Centro de coste detalles
+Cost Center,Centro de Costos
+Cost Center Details,"Detalles del Centro de Costos
+"
 Cost Center Name,Costo Nombre del centro
 Cost Center is required for 'Profit and Loss' account {0},"Se requiere de centros de coste para la cuenta "" Pérdidas y Ganancias "" {0}"
 Cost Center is required in row {0} in Taxes table for type {1},Se requiere de centros de coste en la fila {0} en la tabla Impuestos para el tipo {1}
@@ -621,14 +625,14 @@
 Cost Center {0} does not belong to Company {1},Centro de coste {0} no pertenece a la empresa {1}
 Cost of Goods Sold,Costo de las Ventas
 Costing,Costeo
-Country,país
+Country,País
 Country Name,Nombre del país
 Country wise default Address Templates,Plantillas País sabia dirección predeterminada
 "Country, Timezone and Currency","País , Zona horaria y moneda"
 Create Bank Voucher for the total salary paid for the above selected criteria,Cree Banco Vale para el salario total pagado por los criterios seleccionados anteriormente
 Create Customer,Crear cliente
 Create Material Requests,Crear solicitudes de material
-Create New,Crear nuevo
+Create New,Crear Nuevo
 Create Opportunity,Crear Oportunidad
 Create Production Orders,Crear órdenes de producción
 Create Quotation,Cree Cotización
@@ -639,12 +643,12 @@
 Create rules to restrict transactions based on values.,Crear reglas para restringir las transacciones basadas en valores .
 Created By,Creado por
 Creates salary slip for above mentioned criteria.,Crea nómina de los criterios antes mencionados.
-Creation Date,Fecha de creación
+Creation Date,Fecha de Creación
 Creation Document No,Creación del documento No
 Creation Document Type,Tipo de creación de documentos
 Creation Time,Momento de la creación
 Credentials,cartas credenciales
-Credit,crédito
+Credit,Crédito
 Credit Amt,crédito Amt
 Credit Card,Tarjeta de Crédito
 Credit Card Voucher,Vale la tarjeta de crédito
@@ -653,7 +657,7 @@
 Credit Limit,Límite de Crédito
 Credit Note,Nota de Crédito
 Credit To,crédito Para
-Currency,moneda
+Currency,Divisa
 Currency Exchange,Cambio de divisas
 Currency Name,Nombre de Divisa
 Currency Settings,Configuración de Moneda
@@ -669,10 +673,10 @@
 Current Stock,Stock actual
 Current Stock UOM,Stock actual UOM
 Current Value,Valor actual
-Custom,costumbre
+Custom,Personalizar
 Custom Autoreply Message,Mensaje de autorespuesta personalizado
 Custom Message,Mensaje personalizado
-Customer,cliente
+Customer,Cliente
 Customer (Receivable) Account,Cliente ( por cobrar ) Cuenta
 Customer / Item Name,Nombre del cliente / artículo
 Customer / Lead Address,Cliente / Dirección de plomo
@@ -695,7 +699,7 @@
 Customer Issue against Serial No.,Problema al cliente contra el número de serie
 Customer Name,Nombre del cliente
 Customer Naming By,Naming Cliente Por
-Customer Service,servicio al cliente
+Customer Service,Servicio al Cliente
 Customer database.,Base de datos de clientes .
 Customer is required,Se requiere al Cliente
 Customer master.,Maestro de clientes .
@@ -713,11 +717,11 @@
 Customize the Notification,Personalice la Notificación
 Customize the introductory text that goes as a part of that email. Each transaction has a separate introductory text.,Personalizar el texto de introducción que va como una parte de ese correo electrónico. Cada transacción tiene un texto introductorio separada.
 DN Detail,Detalle DN
-Daily,diario
+Daily,Diario
 Daily Time Log Summary,Resumen diario Hora de registro
 Database Folder ID,Base de Datos de Identificación de carpetas
 Database of potential customers.,Base de datos de clientes potenciales.
-Date,fecha
+Date,Fecha
 Date Format,Formato de la fecha
 Date Of Retirement,Fecha de la jubilación
 Date Of Retirement must be greater than Date of Joining,Fecha de la jubilación debe ser mayor que Fecha de acceso
@@ -777,10 +781,10 @@
 Default settings for buying transactions.,Ajustes por defecto para la compra de las transacciones .
 Default settings for selling transactions.,Los ajustes por defecto para la venta de las transacciones .
 Default settings for stock transactions.,Los ajustes por defecto para las transacciones bursátiles.
-Defense,defensa
+Defense,Defensa
 "Define Budget for this Cost Center. To set budget action, see <a href=""#!List/Company"">Company Master</a>","Definir Presupuesto para este centro de coste . Para configurar la acción presupuestaria, ver <a href=""#!List/Company""> Company Maestro < / a>"
-Del,Del
-Delete,borrar
+Del,Sup.
+Delete,Eliminar
 Delete {0} {1}?,Eliminar {0} {1} ?
 Delivered,liberado
 Delivered Items To Be Billed,Material que se adjunta a facturar
@@ -807,37 +811,37 @@
 Department Stores,Tiendas por Departamento
 Depends on LWP,Depende LWP
 Depreciation,depreciación
-Description,descripción
+Description,Descripción
 Description HTML,Descripción HTML
 Designation,designación
 Designer,diseñador
 Detailed Breakup of the totals,Breakup detallada de los totales
 Details,Detalles
-Difference (Dr - Cr),Diferencia ( Dr - Cr)
-Difference Account,cuenta Diferencia
+Difference (Dr - Cr),Diferencia ( Db - Cr)
+Difference Account,Cuenta para la Diferencia
 "Difference Account must be a 'Liability' type account, since this Stock Reconciliation is an Opening Entry","Cuenta diferencia debe ser una cuenta de tipo ' Responsabilidad ' , ya que esta Stock reconciliación es una entrada de Apertura"
 Different UOM for items will lead to incorrect (Total) Net Weight value. Make sure that Net Weight of each item is in the same UOM.,UOM diferente para elementos dará lugar a incorrecto ( Total) Valor neto Peso . Asegúrese de que peso neto de cada artículo esté en la misma UOM .
-Direct Expenses,gastos directos
-Direct Income,Ingreso directo
-Disable,inhabilitar
-Disable Rounded Total,Desactivar Total redondeado
+Direct Expenses,Gastos Directos
+Direct Income,Ingreso Directo
+Disable,Inhabilitar
+Disable Rounded Total,Desactivar Total Redondeado
 Disabled,discapacitado
 Discount  %,Descuento%
 Discount %,Descuento%
 Discount (%),Descuento (% )
 Discount Amount,Cantidad de Descuento
 "Discount Fields will be available in Purchase Order, Purchase Receipt, Purchase Invoice","Los campos descuento estará disponible en orden de compra, recibo de compra , factura de compra"
-Discount Percentage,Descuento de porcentaje
+Discount Percentage,Porcentaje de Descuento
 Discount Percentage can be applied either against a Price List or for all Price List.,Porcentaje de descuento puede ser aplicado ya sea en contra de una lista de precios o para toda la lista de precios.
 Discount must be less than 100,El descuento debe ser inferior a 100
 Discount(%),Descuento (% )
 Dispatch,despacho
 Display all the individual items delivered with the main items,Ver todas las partidas individuales se suministran con los elementos principales
 Distribute transport overhead across items.,Distribuir por encima transporte a través de artículos.
-Distribution,distribución
+Distribution,Distribución
 Distribution Id,Id Distribución
-Distribution Name,Distribución Nombre
-Distributor,distribuidor
+Distribution Name,Nombre del Distribución
+Distributor,Distribuidor
 Divorced,divorciado
 Do Not Contact,No entre en contacto
 Do not show any symbol like $ etc next to currencies.,No volver a mostrar cualquier símbolo como $ etc junto a monedas.
@@ -850,30 +854,30 @@
 Do you really want to stop production order: ,
 Doc Name,Nombre del documento
 Doc Type,Tipo Doc.
-Document Description,documento Descripción
-Document Type,Tipo de documento
+Document Description,Descripción del Documento
+Document Type,Tipo de Documento
 Documents,Documentos
-Domain,dominio
+Domain,Dominio
 Don't send Employee Birthday Reminders,No envíe Empleado Birthday Reminders
-Download Materials Required,Descarga Materiales necesarios
-Download Reconcilation Data,Descarga reconciliación de datos
+Download Materials Required,Descargar Materiales Necesarios
+Download Reconcilation Data,Descarga Reconciliación de Datos
 Download Template,Descargar Plantilla
 Download a report containing all raw materials with their latest inventory status,Descargar un informe con todas las materias primas con su estado actual inventario
 "Download the Template, fill appropriate data and attach the modified file.","Descarga la plantilla , rellenar los datos correspondientes y adjuntar el archivo modificado."
-"Download the Template, fill appropriate data and attach the modified file.All dates and employee combination in the selected period will come in the template, with existing attendance records","Descarga la plantilla, rellenar los datos correspondientes y adjuntar el archivo modificado. Todas las fechas y combinación empleado en el período seleccionado vendrán en la plantilla, con los registros de asistencia existentes"
-Draft,borrador
+"Download the Template, fill appropriate data and attach the modified file.All dates and employee combination in the selected period will come in the template, with existing attendance records","Descarga la plantilla, rellenar los datos correspondientes y adjuntar el archivo modificado. Todas las fechas y combinaciones de empleados en el período seleccionado vendrán en la plantilla, con los registros de asistencia existentes"
+Draft,Borrador
 Dropbox,Dropbox
 Dropbox Access Allowed,Dropbox Acceso mascotas
-Dropbox Access Key,Dropbox clave de acceso
-Dropbox Access Secret,Dropbox Acceso Secreto
+Dropbox Access Key,Clave de Acceso de Dropbox 
+Dropbox Access Secret,Acceso Secreto de Dropbox
 Due Date,Fecha de vencimiento
 Due Date cannot be after {0},Fecha de vencimiento no puede ser posterior a {0}
 Due Date cannot be before Posting Date,Fecha de vencimiento no puede ser anterior Fecha de publicación
 Duplicate Entry. Please check Authorization Rule {0},"Duplicate Entry. Por favor, consulte Autorización Rule {0}"
 Duplicate Serial No entered for Item {0},Duplicar Serial No entró a la partida {0}
-Duplicate entry,Duplicate entry
+Duplicate entry,Entrada Duplicada
 Duplicate row {0} with same {1},Duplicar fila {0} con el mismo {1}
-Duties and Taxes,Derechos e impuestos
+Duties and Taxes,Derechos e Impuestos
 ERPNext Setup,Configuración ERPNext
 Earliest,Primeras
 Earnest Money,dinero Earnest
@@ -885,7 +889,7 @@
 Edu. Cess on Excise,Edu. Cess sobre Impuestos Especiales
 Edu. Cess on Service Tax,Edu. Impuesto sobre el Servicio de Impuestos
 Edu. Cess on TDS,Edu. Impuesto sobre el TDS
-Education,educación
+Education,Educación
 Educational Qualification,Capacitación para la Educación
 Educational Qualification Details,Educational Qualification Detalles
 Eg. smsgateway.com/api/send_sms.cgi,Eg . smsgateway.com / api / send_sms.cgi
@@ -943,9 +947,9 @@
 End Date can not be less than Start Date,Fecha de finalización no puede ser inferior a Fecha de Inicio
 End date of current invoice's period,Fecha de finalización del periodo de facturación actual
 End of Life,Final de la Vida
-Energy,energía
-Engineer,ingeniero
-Enter Verification Code,Ingrese el código de verificación
+Energy,Energía
+Engineer,Ingeniero
+Enter Verification Code,Ingrese el Código de Verificación
 Enter campaign name if the source of lead is campaign.,Ingrese nombre de la campaña si la fuente del plomo es la campaña .
 Enter department to which this Contact belongs,Introduzca departamento al que pertenece este Contacto
 Enter designation of this Contact,Introduzca designación de este contacto
@@ -957,8 +961,8 @@
 Enter url parameter for message,Introduzca el parámetro url para el mensaje
 Enter url parameter for receiver nos,Introduzca el parámetro url para el receptor nos
 Entertainment & Leisure,Entretenimiento y Ocio
-Entertainment Expenses,gastos de Entretenimiento
-Entries,entradas
+Entertainment Expenses,Gastos de Entretenimiento
+Entries,Entradas
 Entries against ,
 Entries are not allowed against this Fiscal Year if the year is closed.,"Las entradas no están permitidos en contra de este año fiscal , si el año está cerrado."
 Equity,equidad
@@ -1026,12 +1030,12 @@
 FCFS Rate,FCFS Cambio
 Failed: ,Error:
 Family Background,antecedentes familiares
-Fax,fax
+Fax,Fax
 Features Setup,Características del programa de instalación
-Feed,pienso
-Feed Type,Tipo de alimentación
+Feed,Fuente
+Feed Type,Tipo de Fuente
 Feedback,feedback
-Female,femenino
+Female,Femenino
 Fetch exploded BOM (including sub-assemblies),Fetch BOM explotado (incluyendo subconjuntos )
 "Field available in Delivery Note, Quotation, Sales Invoice, Sales Order","El campo disponible en la nota de entrega , la cita , la factura de venta , órdenes de venta"
 Files Folder ID,Carpeta de archivos ID
@@ -1046,15 +1050,15 @@
 Finished Goods,productos terminados
 First Name,Nombre
 First Responded On,Primero respondió el
-Fiscal Year,año fiscal
+Fiscal Year,Año Fiscal
 Fiscal Year Start Date and Fiscal Year End Date are already set in Fiscal Year {0},Año fiscal Fecha de Inicio y Fin de ejercicio Fecha ya están establecidas en el Año Fiscal {0}
 Fiscal Year Start Date and Fiscal Year End Date cannot be more than a year apart.,Año fiscal Fecha de Inicio y Fin de ejercicio La fecha no puede ser más que un año de diferencia.
 Fiscal Year Start Date should not be greater than Fiscal Year End Date,Año fiscal Fecha de inicio no debe ser mayor de Fin de ejercicio Fecha
-Fixed Asset,activos Fijos
+Fixed Asset,Activos Fijos
 Fixed Assets,Activos Fijos
 Follow via Email,Siga a través de correo electrónico
 "Following table will show values if items are sub - contracted. These values will be fetched from the master of ""Bill of Materials"" of sub - contracted items.","La siguiente tabla se muestran los valores si los artículos son sub - contratado. Estos valores se pueden recuperar desde el maestro de la "" Lista de materiales "" de los sub - elementos contratados."
-Food,comida
+Food,Comida
 "Food, Beverage & Tobacco","Alimentos, Bebidas y Tabaco"
 "For 'Sales BOM' items, Warehouse, Serial No and Batch No will be considered from the 'Packing List' table. If Warehouse and Batch No are same for all packing items for any 'Sales BOM' item, those values can be entered in the main Item table, values will be copied to 'Packing List' table.","Para los artículos 'BOM Ventas', bodega, Número de Serie y Lote No se considerará a partir de la tabla de ""Packing List"". Si Almacén y lotes No son las mismas para todos los elementos de embalaje para cualquier artículo 'BOM Sales', esos valores se pueden introducir en el cuadro principal del artículo, los valores se copiarán a la mesa ""Packing List""."
 For Company,Para la empresa
@@ -1077,8 +1081,8 @@
 Freeze Stock Entries,Helada Stock comentarios
 Freeze Stocks Older Than [Days],Congele Acciones Older Than [ días ]
 Freight and Forwarding Charges,Freight Forwarding y Cargos
-Friday,viernes
-From,desde
+Friday,Viernes
+From,Desde
 From Bill of Materials,De la lista de materiales
 From Company,De Compañía
 From Currency,De moneda
@@ -1091,11 +1095,11 @@
 From Date should be within the Fiscal Year. Assuming From Date = {0},De fecha debe estar dentro del año fiscal. Suponiendo Desde Fecha = {0}
 From Delivery Note,De la nota de entrega
 From Employee,De Empleado
-From Lead,De plomo
+From Lead,De la iniciativa
 From Maintenance Schedule,Desde Programa de mantenimiento
 From Material Request,Desde Solicitud de material
 From Opportunity,De Oportunidades
-From Package No.,Del N º Paquete
+From Package No.,Del Paquete N º 
 From Purchase Order,De la Orden de Compra
 From Purchase Receipt,Desde recibo de compra
 From Quotation,desde la cotización
@@ -1107,7 +1111,7 @@
 From value must be less than to value in row {0},De valor debe ser inferior al valor de la fila {0}
 Frozen,congelado
 Frozen Accounts Modifier,Frozen Accounts modificador
-Fulfilled,cumplido
+Fulfilled,Cumplido
 Full Name,Nombre Completo
 Full-time,De jornada completa
 Fully Billed,Totalmente Facturad
@@ -1178,15 +1182,15 @@
 HR Settings,Configuración de recursos humanos
 HTML / Banner that will show on the top of product list.,HTML / Banner que aparecerá en la parte superior de la lista de productos.
 Half Day,Medio Día
-Half Yearly,semestral
+Half Yearly,Semestral
 Half-yearly,Semestral
 Happy Birthday!,¡Feliz cumpleaños!
-Hardware,hardware
+Hardware,Hardware
 Has Batch No,Tiene lotes No
 Has Child Node,Tiene Nodo Niño
 Has Serial No,Tiene de serie n
 Head of Marketing and Sales,Director de Marketing y Ventas
-Header,encabezamiento
+Header,Encabezado
 Health Care,Cuidado de la Salud
 Health Concerns,Preocupaciones de salud
 Health Details,Detalles de la Salud
@@ -1203,11 +1207,11 @@
 Holiday List,Lista de vacaciones
 Holiday List Name,Lista de nombres de vacaciones
 Holiday master.,Master de vacaciones .
-Holidays,vacaciones
-Home,casa
+Holidays,Vacaciones
+Home,Casa
 Host,anfitrión
 "Host, Email and Password required if emails are to be pulled","Host , correo electrónico y la contraseña requerida si los correos electrónicos son para ser tirado"
-Hour,hora
+Hour,Hora
 Hour Rate,Hora de Cambio
 Hour Rate Labour,Hora Cambio del Trabajo
 Hours,Horas
@@ -1243,7 +1247,7 @@
 "If you have created a standard template in Sales Taxes and Charges Master, select one and click on the button below.","Si ha creado un modelo estándar de las tasas y cargos de venta principales, seleccione uno y haga clic en el botón de abajo ."
 "If you have long print formats, this feature can be used to split the page to be printed on multiple pages with all headers and footers on each page","Si usted tiene formatos de impresión largos , esta característica puede ser utilizada para dividir la página que se imprimirá en varias páginas con todos los encabezados y pies de página en cada página"
 If you involve in manufacturing activity. Enables Item 'Is Manufactured',Si usted involucra en la actividad manufacturera . Permite artículo ' está fabricado '
-Ignore,pasar por alto
+Ignore,Pasar por Alto
 Ignore Pricing Rule,No haga caso de la Regla Precios
 Ignored: ,Ignorado:
 Image,imagen
@@ -1252,7 +1256,7 @@
 Import Attendance,Asistencia de importación
 Import Failed!,Import Error !
 Import Log,Importar registro
-Import Successful!,Importación correcta !
+Import Successful!,¡Importación correcta!
 Imports,Importaciones
 In Hours,En Horas
 In Process,En proceso
@@ -1271,9 +1275,9 @@
 Incentives,Incentivos
 Include Reconciled Entries,Incluya los comentarios conciliadas
 Include holidays in Total no. of Working Days,Incluya vacaciones en total no. de días laborables
-Income,ingresos
+Income,Ingresos
 Income / Expense,Ingresos / gastos
-Income Account,cuenta de Ingresos
+Income Account,Cuenta de Ingresos
 Income Booked,Ingresos Reservados
 Income Tax,Impuesto sobre la Renta
 Income Year to Date,Ingresos Año a la Fecha
@@ -1287,7 +1291,7 @@
 Indirect Expenses,gastos indirectos
 Indirect Income,Ingresos Indirectos
 Individual,individual
-Industry,industria
+Industry,Industria
 Industry Type,Tipo de Industria
 Inspected By,Inspección realizada por
 Inspection Criteria,Criterios de Inspección
@@ -1304,11 +1308,11 @@
 Installed Qty,Cantidad instalada
 Instructions,instrucciones
 Integrate incoming support emails to Support Ticket,Integrar los correos electrónicos de apoyo recibidas de Apoyo Ticket
-Interested,interesado
-Intern,interno
-Internal,interno
+Interested,Interesado
+Intern,Interno
+Internal,Interno
 Internet Publishing,Internet Publishing
-Introduction,introducción
+Introduction,Introducción
 Invalid Barcode,Código de barras no válido
 Invalid Barcode or Serial No,Código de barras de serie no válido o No
 Invalid Mail Server. Please rectify and try again.,Servidor de correo válida . Por favor rectifique y vuelva a intentarlo .
@@ -1318,23 +1322,23 @@
 Inventory,inventario
 Inventory & Support,Soporte de Inventario y
 Investment Banking,Banca de Inversión
-Investments,inversiones
+Investments,Inversiones
 Invoice Date,Fecha de la factura
-Invoice Details,detalles de la factura
-Invoice No,Factura no
-Invoice Number,Número de factura
+Invoice Details,Detalles de la Factura
+Invoice No,Factura N º
+Invoice Number,Número de la Factura
 Invoice Period From,Factura Periodo Del
 Invoice Period From and Invoice Period To dates mandatory for recurring invoice,Factura Periodo Del Período y Factura Para las fechas obligatorias para la factura recurrente
 Invoice Period To,Período Factura Para
-Invoice Type,Tipo Factura
-Invoice/Journal Voucher Details,Factura / Diario Vale Detalles
-Invoiced Amount (Exculsive Tax),Cantidad facturada ( Impuesto exculsive )
-Is Active,está activo
+Invoice Type,Tipo de Factura
+Invoice/Journal Voucher Details,Detalles de Factura / Comprobante de Diario
+Invoiced Amount (Exculsive Tax),Cantidad facturada ( Impuesto exclusive )
+Is Active,Está Activo
 Is Advance,Es Avance
 Is Cancelled,CANCELADO
 Is Carry Forward,Es llevar adelante
 Is Default,Es por defecto
-Is Encash,es convertirá en efectivo
+Is Encash,Se convertirá en efectivo
 Is Fixed Asset Item,Es partidas del activo inmovilizado
 Is LWP,es LWP
 Is Opening,está abriendo
@@ -1347,7 +1351,7 @@
 Is Stock Item,Es Stock Artículo
 Is Sub Contracted Item,Es subcontratación artículo
 Is Subcontracted,se subcontrata
-Is this Tax included in Basic Rate?,¿Este Impuestos incluidos en la tarifa básica ?
+Is this Tax included in Basic Rate?,¿Está incluido este Impuesto la tarifa básica ?
 Issue,cuestión
 Issue Date,Fecha de Emisión
 Issue Details,Detalles del problema
@@ -1365,30 +1369,30 @@
 Item Code required at Row No {0},Código del artículo requerido en la fila n {0}
 Item Customer Detail,Elemento Detalle Cliente
 Item Description,Descripción del Artículo
-Item Desription,Desription artículo
+Item Desription,Desription del Artículo
 Item Details,Detalles del artículo
 Item Group,Grupo de artículos
 Item Group Name,Nombre del grupo de artículos
 Item Group Tree,Artículo Grupo Árbol
 Item Group not mentioned in item master for item {0},Grupo El artículo no se menciona en maestro de artículos para el elemento {0}
 Item Groups in Details,Grupos de componentes en detalles
-Item Image (if not slideshow),Item Image (si no presentación de diapositivas)
+Item Image (if not slideshow),"Imagen del Artículo (si no, presentación de diapositivas)"
 Item Name,Nombre del elemento
 Item Naming By,Artículo Naming Por
-Item Price,artículo Precio
-Item Prices,artículo precios
+Item Price,Precio del Artículo
+Item Prices,Precios de los Artículos
 Item Quality Inspection Parameter,Artículo Calidad de parámetros de Inspección
 Item Reorder,artículo reorden
 Item Serial No,Artículo N º de serie
-Item Serial Nos,Artículo de serie n
+Item Serial Nos,N º de serie de los Artículo
 Item Shortage Report,Artículo Escasez Reportar
-Item Supplier,artículo Proveedor
-Item Supplier Details,Detalles del artículo Proveedor
-Item Tax,Impuesto artículo
-Item Tax Amount,Total de impuestos de artículos
+Item Supplier,Proveedor del Artículo
+Item Supplier Details,Detalles del Proveedor del artículo
+Item Tax,Impuesto del artículo
+Item Tax Amount,Total de impuestos de los artículos
 Item Tax Rate,Artículo Tasa de Impuesto
 Item Tax Row {0} must have account of type Tax or Income or Expense or Chargeable,Artículo Impuesto Row {0} debe tener en cuenta el tipo de impuestos o ingresos o de gastos o Imponible
-Item Tax1,Tax1 artículo
+Item Tax1,Impuesto1 del  artículo
 Item To Manufacture,Artículo Para Fabricación
 Item UOM,artículo UOM
 Item Website Specification,Artículo Website Especificación
@@ -1399,7 +1403,7 @@
 Item is updated,Artículo se actualiza
 Item master.,Maestro de artículos .
 "Item must be a purchase item, as it is present in one or many Active BOMs","El artículo debe ser un artículo de la compra , ya que está presente en una o varias listas de materiales activos"
-Item or Warehouse for row {0} does not match Material Request,Artículo o de almacenes para la fila {0} no coincide Solicitud de material
+Item or Warehouse for row {0} does not match Material Request,Artículo o Bodega para la fila {0} no coincide Solicitud de material
 Item table can not be blank,Tabla de artículos no puede estar en blanco
 Item to be manufactured or repacked,Artículo a fabricar o embalados de nuevo
 Item valuation updated,Valoración Artículo actualizado
@@ -1458,10 +1462,10 @@
 Journal Entries,entradas de diario
 Journal Entry,Entrada de diario
 Journal Voucher,Comprobante de Diario
-Journal Voucher Detail,Detalle Diario Voucher
-Journal Voucher Detail No,Detalle Diario Voucher No
+Journal Voucher Detail,Detalle del Asiento de Diario
+Journal Voucher Detail No,Detalle del Asiento de Diario No
 Journal Voucher {0} does not have account {1} or already matched,Comprobante de Diario {0} no tiene cuenta {1} o ya emparejado
-Journal Vouchers {0} are un-linked,Documentos preliminares {0} están vinculados a la ONU
+Journal Vouchers {0} are un-linked,Asientos de Diario {0} no están vinculados.
 Keep a track of communication related to this enquiry which will help for future reference.,Mantenga un registro de la comunicación en relación con esta investigación que ayudará para futuras consultas.
 Keep it web friendly 900px (w) by 100px (h),Manténgalo web 900px mascotas ( w ) por 100px ( h )
 Key Performance Area,Área clave de rendimiento
@@ -1469,29 +1473,29 @@
 Kg,kg
 LR Date,LR Fecha
 LR No,LR No
-Label,etiqueta
+Label,Etiqueta
 Landed Cost Item,Landed Cost artículo
 Landed Cost Items,Landed Partidas de gastos
 Landed Cost Purchase Receipt,Landed Cost recibo de compra
 Landed Cost Purchase Receipts,Landed Cost Recibos de compra
 Landed Cost Wizard,Asistente Landed Cost
 Landed Cost updated successfully,Landed Cost actualizado correctamente
-Language,idioma
-Last Name,apellido
+Language,Idioma
+Last Name,Apellido
 Last Purchase Rate,Última Compra Cambio
-Latest,más reciente
-Lead,plomo
-Lead Details,CONTENIDO
-Lead Id,Id plomo
-Lead Name,Nombre de plomo
-Lead Owner,propietario de plomo
-Lead Source,Fuente de plomo
-Lead Status,Estado de plomo
+Latest,Más Reciente
+Lead,Iniciativa
+Lead Details,Detalle de la Iniciativa
+Lead Id,Iniciativa ID
+Lead Name,Nombre de la Iniciativa
+Lead Owner,Propietario de la Iniciativa
+Lead Source,Fuente de de la Iniciativa
+Lead Status,Estado de la Iniciativa
 Lead Time Date,Plazo de ejecución Fecha
 Lead Time Days,Tiempo de Entrega Días
 Lead Time days is number of days by which this item is expected in your warehouse. This days is fetched in Material Request when you select this item.,Plomo día Tiempo es el número de días en que se espera que este artículo en su almacén. Este día es descabellada en Solicitud de materiales cuando se selecciona este elemento .
-Lead Type,Tipo plomo
-Lead must be set if Opportunity is made from Lead,El plomo se debe establecer si la oportunidad está hecha de plomo
+Lead Type,Tipo de Iniciativa
+Lead must be set if Opportunity is made from Lead,La iniciativa se debe establecer si la oportunidad está hecha de plomo
 Leave Allocation,Deja Asignación
 Leave Allocation Tool,Deja Herramienta de Asignación
 Leave Application,Deja Aplicación
@@ -1505,7 +1509,7 @@
 Leave Block List Dates,Deja lista Fechas Bloque
 Leave Block List Name,Agregar Nombre Lista de bloqueo
 Leave Blocked,Deja Bloqueado
-Leave Control Panel,Deja Panel de control
+Leave Control Panel,Salir del Panel de Control
 Leave Encashed?,Deja cobrados ?
 Leave Encashment Amount,Deja Cobro Monto
 Leave Type,Deja Tipo
@@ -1523,14 +1527,14 @@
 Leaves Allocated Successfully for {0},Hojas distribuidos con éxito para {0}
 Leaves for type {0} already allocated for Employee {1} for Fiscal Year {0},Hojas para el tipo {0} ya asignado para Empleado {1} para el Año Fiscal {0}
 Leaves must be allocated in multiples of 0.5,"Las hojas deben ser asignados en múltiplos de 0,5"
-Ledger,libro mayor
+Ledger,Libro Mayor
 Ledgers,Libros de contabilidad
-Left,izquierda
-Legal,legal
-Legal Expenses,gastos legales
-Letter Head,Cabeza Carta
-Letter Heads for print templates.,Jefes de letras para las plantillas de impresión.
-Level,nivel
+Left,Izquierda
+Legal,Legal
+Legal Expenses,Gastos Legales
+Letter Head,Membrete
+Letter Heads for print templates.,Membretes para las plantillas de impresión.
+Level,Nivel
 Lft,Lft
 Liability,responsabilidad
 List a few of your customers. They could be organizations or individuals.,Enumere algunos de sus clientes. Pueden ser organizaciones o individuos.
@@ -1543,20 +1547,20 @@
 Loans (Liabilities),Préstamos (pasivos )
 Loans and Advances (Assets),Préstamos y anticipos (Activos )
 Local,local
-Login,login
+Login,Iniciar Sesión
 Login with your new User ID,Acceda con su nuevo ID de usuario
-Logo,logo
-Logo and Letter Heads,Logo y Carta Jefes
-Lost,perdido
-Lost Reason,Razón perdido
-Low,bajo
-Lower Income,Ingreso bajo
+Logo,Logo
+Logo and Letter Heads,Logo y Membrete
+Lost,Perdido
+Lost Reason,Razón de la pérdida
+Low,Bajo
+Lower Income,Ingreso Bajo
 MTN Details,MTN Detalles
-Main,principal
+Main,Principal
 Main Reports,Informes principales
 Maintain Same Rate Throughout Sales Cycle,Mantener mismo ritmo durante todo el ciclo de ventas
 Maintain same rate throughout purchase cycle,Mantener mismo ritmo durante todo el ciclo de compra
-Maintenance,mantenimiento
+Maintenance,Mantenimiento
 Maintenance Date,Mantenimiento Fecha
 Maintenance Details,Detalles Mantenimiento
 Maintenance Schedule,Programa de mantenimiento
@@ -1574,7 +1578,7 @@
 Maintenance Visit {0} must be cancelled before cancelling this Sales Order,Mantenimiento Visita {0} debe ser cancelado antes de cancelar el pedido de ventas
 Maintenance start date can not be before delivery date for Serial No {0},Mantenimiento fecha de inicio no puede ser antes de la fecha de entrega para la serie n {0}
 Major/Optional Subjects,Principales / Asignaturas optativas
-Make ,
+Make ,Hacer
 Make Accounting Entry For Every Stock Movement,Hacer asiento contable para cada movimiento de acciones
 Make Bank Voucher,Hacer Banco Voucher
 Make Credit Note,Hacer Nota de Crédito
@@ -1599,31 +1603,31 @@
 Make Sales Order,Asegúrese de órdenes de venta
 Make Supplier Quotation,Hacer cita Proveedor
 Make Time Log Batch,Haga la hora de lotes sesión
-Male,masculino
+Male,Masculino
 Manage Customer Group Tree.,Gestione Grupo de Clientes Tree.
 Manage Sales Partners.,Administrar Puntos de ventas.
 Manage Sales Person Tree.,Gestione Sales Person árbol .
 Manage Territory Tree.,Gestione Territorio Tree.
 Manage cost of operations,Gestione costo de las operaciones
 Management,administración
-Manager,gerente
+Manager,Gerente
 "Mandatory if Stock Item is ""Yes"". Also the default warehouse where reserved quantity is set from Sales Order.","Obligatorio si Stock Item es "" Sí"" . También el almacén por defecto en que la cantidad reservada se establece a partir de órdenes de venta ."
 Manufacture against Sales Order,Fabricación contra pedido de ventas
 Manufacture/Repack,Fabricación / Repack
 Manufactured Qty,Fabricado Cantidad
 Manufactured quantity will be updated in this warehouse,Fabricado cantidad se actualizará en este almacén
 Manufactured quantity {0} cannot be greater than planned quanitity {1} in Production Order {2},Cantidad Fabricado {0} no puede ser mayor que quanitity planeado {1} en la orden de producción {2}
-Manufacturer,fabricante
+Manufacturer,Fabricante
 Manufacturer Part Number,Número de pieza
 Manufacturing,fabricación
 Manufacturing Quantity,Fabricación Cantidad
 Manufacturing Quantity is mandatory,Fabricación Cantidad es obligatorio
-Margin,margen
-Marital Status,estado civil
-Market Segment,sector de mercado
-Marketing,mercadeo
+Margin,Margen
+Marital Status,Estado Civil
+Market Segment,Sector de Mercado
+Marketing,Mercadeo
 Marketing Expenses,gastos de comercialización
-Married,casado
+Married,Casado
 Mass Mailing,Mass Mailing
 Master Name,Maestro Nombre
 Master Name is mandatory if account type is Warehouse,Maestro nombre es obligatorio si el tipo de cuenta es Almacén
@@ -1657,10 +1661,10 @@
 Maximum allowed credit is {0} days after posting date,Crédito máximo permitido es {0} días después de la fecha de publicar
 Maximum {0} rows allowed,Máximo {0} filas permitidos
 Maxiumm discount for Item {0} is {1}%,Descuento Maxiumm de elemento {0} es {1}%
-Medical,médico
-Medium,medio
+Medical,Médico
+Medium,Medio
 "Merging is only possible if following properties are same in both records. Group or Ledger, Root Type, Company",La fusión sólo es posible si las propiedades son las mismas en ambos registros.
-Message,mensaje
+Message,Mensaje
 Message Parameter,Parámetro Mensaje
 Message Sent,Mensaje enviado
 Message updated,Mensaje actualizado
@@ -1676,33 +1680,33 @@
 Min Qty can not be greater than Max Qty,Qty del minuto no puede ser mayor que Max Und
 Minimum Amount,Volumen mínimo de
 Minimum Order Qty,Mínimo Online con su nombre
-Minute,minuto
+Minute,Minuto
 Misc Details,Otros Detalles
 Miscellaneous Expenses,gastos varios
 Miscelleneous,Miscelleneous
 Mobile No,Mobile No
-Mobile No.,número Móvil
+Mobile No.,Número Móvil
 Mode of Payment,Modo de Pago
-Modern,moderno
-Monday,lunes
-Month,mes
-Monthly,mensual
+Modern,Moderno
+Monday,Lunes
+Month,Mes
+Monthly,Mensual
 Monthly Attendance Sheet,Hoja de Asistencia Mensual
 Monthly Earning & Deduction,Ingresos mensuales y Deducción
 Monthly Salary Register,Salario mensual Registrarse
-Monthly salary statement.,Nómina mensual .
+Monthly salary statement.,Nómina Mensual.
 More Details,Más detalles
 More Info,Más información
 Motion Picture & Video,Motion Picture & Video
 Moving Average,media Móvil
 Moving Average Rate,Mover Tarifa media
 Mr,Sr.
-Ms,ms
+Ms,Sra.
 Multiple Item prices.,Precios de los artículos múltiples.
 "Multiple Price Rule exists with same criteria, please resolve \			conflict by assigning priority. Price Rules: {0}","Múltiple Precio Regla existe con los mismos criterios, por favor resuelva \ conflicto mediante la asignación de prioridad. Reglas Precio: {0}"
-Music,música
+Music,Música
 Must be Whole Number,Debe ser un número entero
-Name,nombre
+Name,Nombre
 Name and Description,Nombre y descripción
 Name and Employee ID,Nombre y ID de empleado
 "Name of new Account. Note: Please don't create accounts for Customers and Suppliers, they are created automatically from the Customer and Supplier master","Nombre de la nueva cuenta . Nota : Por favor no crear cuentas para clientes y proveedores , se crean automáticamente desde el cliente y el proveedor principal"
@@ -1895,19 +1899,21 @@
 PL or BS,PL o BS
 PO Date,PO Fecha
 PO No,PO No
-POP3 Mail Server,POP3 Mail Server
+POP3 Mail Server,Servidor de Correo POP3
 POP3 Mail Settings,Configuración de Mensajes POP3
-POP3 mail server (e.g. pop.gmail.com),Servidor de correo POP3 (por ejemplo pop.gmail.com )
+POP3 mail server (e.g. pop.gmail.com),Servidor de Correo POP3 (por ejemplo pop.gmail.com )
 POP3 server e.g. (pop.gmail.com),Por ejemplo el servidor POP3 ( pop.gmail.com )
 POS Setting,POS Ajuste
 POS Setting required to make POS Entry,POS de ajuste necesario para hacer la entrada POS
 POS Setting {0} already created for user: {1} and company {2},POS Ajuste {0} ya creado para el usuario: {1} y {2} empresa
 POS View,POS Ver
 PR Detail,Detalle PR
-Package Item Details,Artículo Detalles del paquete
-Package Items,paquete de
+Package Item Details,"Detalles del Contenido del Paquete
+"
+Package Items,"Contenido del Paquete
+"
 Package Weight Details,Peso del paquete Detalles
-Packed Item,Embalado artículo
+Packed Item,Artículo Empacado
 Packed quantity must equal quantity for Item {0} in row {1},Embalado cantidad debe ser igual a la cantidad de elemento {0} en la fila {1}
 Packing Details,Detalles del embalaje
 Packing List,Lista de embalaje
@@ -1916,16 +1922,16 @@
 Packing Slip Items,Albarán Artículos
 Packing Slip(s) cancelled,Slip ( s ) de Embalaje cancelado
 Page Break,Salto de página
-Page Name,Nombre de la página
+Page Name,Nombre de la Página
 Paid Amount,Cantidad pagada
 Paid amount + Write Off Amount can not be greater than Grand Total,Cantidad pagada + Escribir Off La cantidad no puede ser mayor que Gran Total
-Pair,par
-Parameter,parámetro
-Parent Account,cuenta primaria
+Pair,Par
+Parameter,Parámetro
+Parent Account,Cuenta Primaria
 Parent Cost Center,Centro de Costo de Padres
 Parent Customer Group,Padres Grupo de Clientes
 Parent Detail docname,DocNombre Detalle de Padres
-Parent Item,artículo Padre
+Parent Item,Artículo Padre
 Parent Item Group,Grupo de Padres del artículo
 Parent Item {0} must be not Stock Item and must be a Sales Item,Artículo Padre {0} debe estar Stock punto y debe ser un elemento de Ventas
 Parent Party Type,Tipo Partido Padres
@@ -1934,26 +1940,26 @@
 Parent Website Page,Sitio web Padres Page
 Parent Website Route,Padres Website Ruta
 Parenttype,ParentType
-Part-time,A media jornada
-Partially Completed,Completó parcialmente
+Part-time,Medio Tiempo
+Partially Completed,Completó Parcialmente
 Partly Billed,Parcialmente Anunciado
 Partly Delivered,Parcialmente Entregado
 Partner Target Detail,Detalle Target Socio
-Partner Type,Tipos de Partner
+Partner Type,Tipos de Socios
 Partner's Website,Sitio Web del Socio
 Party,Parte
 Party Account,Cuenta Party
 Party Type,Tipo del partido
 Party Type Name,Tipo del partido Nombre
-Passive,pasivo
+Passive,Pasivo
 Passport Number,Número de pasaporte
-Password,contraseña
+Password,Contraseña
 Pay To / Recd From,Pagar a / Recd Desde
-Payable,pagadero
-Payables,Cuentas por pagar
+Payable,Pagadero
+Payables,Cuentas por Pagar
 Payables Group,Deudas Grupo
-Payment Days,días de pago
-Payment Due Date,Pago Fecha de vencimiento
+Payment Days,Días de Pago
+Payment Due Date,Pago Fecha de Vencimiento
 Payment Period Based On Invoice Date,Período de pago basado en Fecha de la factura
 Payment Reconciliation,Reconciliación Pago
 Payment Reconciliation Invoice,Factura Reconciliación Pago
@@ -1969,40 +1975,40 @@
 Payments made during the digest period,Los pagos efectuados durante el período de digestión
 Payments received during the digest period,Los pagos recibidos durante el período de digestión
 Payroll Settings,Configuración de Nómina
-Pending,pendiente
-Pending Amount,Pendiente Monto
+Pending,Pendiente
+Pending Amount,Monto Pendiente
 Pending Items {0} updated,Elementos Pendientes {0} actualizado
 Pending Review,opinión pendiente
 Pending SO Items For Purchase Request,A la espera de SO Artículos A la solicitud de compra
 Pension Funds,Fondos de Pensiones
-Percent Complete,Porcentaje completado
+Percent Complete,Porcentaje Completado
 Percentage Allocation,Porcentaje de asignación de
 Percentage Allocation should be equal to 100%,Porcentaje de asignación debe ser igual al 100 %
 Percentage variation in quantity to be allowed while receiving or delivering this item.,La variación porcentual de la cantidad que se le permita al recibir o entregar este artículo.
 Percentage you are allowed to receive or deliver more against the quantity ordered. For example: If you have ordered 100 units. and your Allowance is 10% then you are allowed to receive 110 units.,"Porcentaje que se les permite recibir o entregar más en contra de la cantidad pedida . Por ejemplo : Si se ha pedido 100 unidades. y el subsidio es de 10 %, entonces se le permite recibir 110 unidades."
-Performance appraisal.,La evaluación del desempeño .
-Period,período
+Performance appraisal.,Evaluación del Desempeño .
+Period,Período
 Period Closing Voucher,Vale Período de Cierre
-Periodicity,periodicidad
-Permanent Address,Dirección permanente
+Periodicity,Periodicidad
+Permanent Address,Dirección Permanente
 Permanent Address Is,Dirección permanente es
-Permission,permiso
-Personal,personal
+Permission,Permiso
+Personal,Personal
 Personal Details,Datos Personales
-Personal Email,Correo electrónico personal
-Pharmaceutical,farmacéutico
+Personal Email,Correo Electrónico Personal
+Pharmaceutical,Farmacéutico
 Pharmaceuticals,Productos farmacéuticos
-Phone,teléfono
+Phone,Teléfono
 Phone No,Teléfono No
 Piecework,trabajo a destajo
 Pincode,pincode
 Place of Issue,Lugar de emisión
 Plan for maintenance visits.,Plan para las visitas de mantenimiento .
-Planned Qty,Planificada Cantidad
+Planned Qty,Cantidad Planificada
 "Planned Qty: Quantity, for which, Production Order has been raised, but is pending to be manufactured.","Planificada Cantidad : Cantidad , para lo cual, orden de producción se ha elevado , pero está a la espera de ser fabricados ."
-Planned Quantity,Cantidad planificada
-Planning,planificación
-Plant,planta
+Planned Quantity,Cantidad Planificada
+Planning,Planificación
+Plant,Planta
 Plant and Machinery,Instalaciones técnicas y maquinaria
 Please Enter Abbreviation or Short Name properly as it will be added as Suffix to all Account Heads.,"Por favor, introduzca Abreviatura o Nombre corto correctamente ya que se añadirá como sufijo a todos los Jefes de Cuenta."
 Please Update SMS Settings,Por favor actualizar la configuración de SMS
@@ -2111,8 +2117,8 @@
 Point of Sale,Punto de Venta
 Point-of-Sale Setting,Point -of -Sale Marco
 Post Graduate,Postgrado
-Postal,postal
-Postal Expenses,gastos postales
+Postal,Postal
+Postal Expenses,Gastos Postales
 Posting Date,Fecha de publicación
 Posting Time,Hora de publicación
 Posting date and posting time is mandatory,Fecha de publicación y el envío tiempo es obligatorio
@@ -2120,16 +2126,16 @@
 Potential opportunities for selling.,Posibles oportunidades para vender .
 Preferred Billing Address,Preferida Dirección de Facturación
 Preferred Shipping Address,Preferida Dirección Envío
-Prefix,prefijo
-Present,presente
+Prefix,Prefijo
+Present,Presente
 Prevdoc DocType,DocType Prevdoc
 Prevdoc Doctype,Doctype Prevdoc
-Preview,avance
-Previous,anterior
+Preview,Vista Previa
+Previous,Anterior
 Previous Work Experience,Experiencia laboral previa
-Price,precio
+Price,Precio
 Price / Discount,Precio / Descuento
-Price List,Lista de precios
+Price List,Lista de Precios
 Price List Currency,Lista de precios de divisas
 Price List Currency not selected,Lista de precios de divisas no seleccionado
 Price List Exchange Rate,Lista de precios Tipo de Cambio
@@ -2141,8 +2147,8 @@
 Price List not selected,Lista de precios no seleccionado
 Price List {0} is disabled,Lista de precios {0} está deshabilitado
 Price or Discount,Precio o Descuento
-Pricing Rule,Regla Precios
-Pricing Rule Help,Regla precios Ayuda
+Pricing Rule,Regla de Precios
+Pricing Rule Help,Ayuda de Regla de Precios
 "Pricing Rule is first selected based on 'Apply On' field, which can be Item, Item Group or Brand.","Regla precios se selecciona por primera vez basado en 'Aplicar On' de campo, que puede ser elemento, elemento de grupo o Marca."
 "Pricing Rule is made to overwrite Price List / define discount percentage, based on some criteria.","Regla de precios está sobrescribir Precio de lista / definir porcentaje de descuento, sobre la base de algunos criterios."
 Pricing Rules are further filtered based on quantity.,Reglas de las tarifas se filtran más basado en la cantidad.
@@ -2151,20 +2157,20 @@
 Print Without Amount,Imprimir sin Importe
 Print and Stationary,Impresión y Papelería
 Printing and Branding,Prensa y Branding
-Priority,prioridad
+Priority,Prioridad
 Private Equity,Private Equity
 Privilege Leave,Privilege Dejar
 Probation,libertad condicional
-Process Payroll,nómina de Procesos
-Produced,producido
+Process Payroll,Nómina de Procesos
+Produced,Producido
 Produced Quantity,Cantidad producida
 Product Enquiry,Consulta de producto
-Production,producción
+Production,Producción
 Production Order,Orden de Producción
 Production Order status is {0},Estado de la orden de producción es de {0}
 Production Order {0} must be cancelled before cancelling this Sales Order,Orden de producción {0} debe ser cancelado antes de cancelar esta orden Ventas
 Production Order {0} must be submitted,Orden de producción {0} debe ser presentado
-Production Orders,órdenes de Producción
+Production Orders,Órdenes de Producción
 Production Orders in Progress,Órdenes de producción en Construcción
 Production Plan Item,Plan de Producción de artículos
 Production Plan Items,Elementos del Plan de Producción
@@ -2175,41 +2181,41 @@
 "Products will be sorted by weight-age in default searches. More the weight-age, higher the product will appear in the list.","Los productos se clasifican por peso-edad en las búsquedas por defecto. Más del peso-edad , más alto es el producto aparecerá en la lista."
 Professional Tax,Profesional de Impuestos
 Profit and Loss,Pérdidas y Ganancias
-Profit and Loss Statement,Ganancias y Pérdidas
-Project,proyecto
+Profit and Loss Statement,Estado de Pérdidas y Ganancias
+Project,Proyecto
 Project Costing,Proyecto de Costos
 Project Details,Detalles del Proyecto
 Project Manager,Gerente de Proyectos
-Project Milestone,Proyecto Milestone
+Project Milestone,Hito del Proyecto
 Project Milestones,Hitos del Proyecto
 Project Name,Nombre del proyecto
-Project Start Date,Proyecto Fecha de inicio
+Project Start Date,Fecha de inicio del Proyecto
 Project Type,Tipo de Proyecto
 Project Value,Valor del Proyecto
-Project activity / task.,Actividad del proyecto / tarea.
+Project activity / task.,Actividad del Proyecto / Tarea.
 Project master.,Master de Proyectos.
 Project will get saved and will be searchable with project name given,Proyecto conseguirá guardará y se podrá buscar con el nombre de proyecto determinado
 Project wise Stock Tracking,Sabio proyecto Stock Tracking
 Project-wise data is not available for Quotation,Datos del proyecto - sabio no está disponible para la cita
-Projected,proyectado
-Projected Qty,proyectado Cantidad
+Projected,Proyectado
+Projected Qty,Cantidad Projectada
 Projects,Proyectos
 Projects & System,Proyectos y Sistema
 Prompt for Email on Submission of,Preguntar por el correo electrónico en la presentación de
 Proposal Writing,Redacción de Propuestas
 Provide email id registered in company,Proporcionar correo electrónico de identificación registrado en la compañía
-Provisional Profit / Loss (Credit),Beneficio Provisional / Pérdida (Crédito)
-Public,público
+Provisional Profit / Loss (Credit),Beneficio / Pérdida (Crédito) Provisional 
+Public,Público
 Published on website at: {0},Publicado en el sitio web en: {0}
-Publishing,publicación
+Publishing,Publicación
 Pull sales orders (pending to deliver) based on the above criteria,Tire de las órdenes de venta (pendiente de entregar ) sobre la base de los criterios anteriores
-Purchase,compra
+Purchase,Compra
 Purchase / Manufacture Details,Detalles de compra / Fábricas
-Purchase Analytics,Compra Analytics
-Purchase Common,Compra común
-Purchase Details,compra Detalles
-Purchase Discounts,Compra Descuentos
-Purchase Invoice,Compra factura
+Purchase Analytics,Analitico de Compras
+Purchase Common,Compra Común
+Purchase Details,Detalles de Compra
+Purchase Discounts,Descuentos sobre Compra
+Purchase Invoice,Factura de Compra
 Purchase Invoice Advance,Compra Factura Anticipada
 Purchase Invoice Advances,Avances Compra Factura
 Purchase Invoice Item,Factura de compra del artículo
@@ -2230,7 +2236,7 @@
 Purchase Order {0} is 'Stopped',Orden de Compra {0} ' Detenido '
 Purchase Order {0} is not submitted,Orden de Compra {0} no se presenta
 Purchase Orders given to Suppliers.,Órdenes de Compra otorgados a Proveedores .
-Purchase Receipt,recibo de compra
+Purchase Receipt,Recibo de Compra
 Purchase Receipt Item,Recibo de compra del artículo
 Purchase Receipt Item Supplied,Recibo de compra del artículo suministrado
 Purchase Receipt Item Supplieds,Compra de recibos Supplieds artículo
@@ -2246,10 +2252,10 @@
 Purchase Returned,compra vuelta
 Purchase Taxes and Charges,Impuestos de Compra y Cargos
 Purchase Taxes and Charges Master,Impuestos de Compra y Cargos Maestro
-Purchse Order number required for Item {0},Número de orden purchse requiere para el elemento {0}
-Purpose,propósito
+Purchse Order number required for Item {0},Número de Orden de Compra se requiere para el elemento {0}
+Purpose,Propósito
 Purpose must be one of {0},Propósito debe ser uno de {0}
-QA Inspection,QA Inspección
+QA Inspection,Control de Calidad
 Qty,Cantidad
 Qty Consumed Per Unit,Cantidad consumida por unidad
 Qty To Manufacture,Cant. Para Fabricación
@@ -2259,14 +2265,14 @@
 Qty to Receive,Cantidad a Recibir
 Qty to Transfer,Cantidad de Transferencia
 Qualification,calificación
-Quality,calidad
+Quality,Calidad
 Quality Inspection,Inspección de Calidad
 Quality Inspection Parameters,Parámetros de Inspección de Calidad
 Quality Inspection Reading,Inspección Reading Quality
 Quality Inspection Readings,Lecturas de Inspección de Calidad
 Quality Inspection required for Item {0},Inspección de la calidad requerida para el punto {0}
 Quality Management,Gestión de la Calidad
-Quantity,cantidad
+Quantity,Cantidad
 Quantity Requested for Purchase,Cantidad solicitada para la compra
 Quantity and Rate,Cantidad y Cambio
 Quantity and Warehouse,Cantidad y Almacén
@@ -2275,10 +2281,10 @@
 Quantity in row {0} ({1}) must be same as manufactured quantity {2},Cantidad en la fila {0} ({1} ) debe ser la misma que la cantidad fabricada {2}
 Quantity of item obtained after manufacturing / repacking from given quantities of raw materials,Cantidad del punto obtenido después de la fabricación / reempaque de cantidades determinadas de materias primas
 Quantity required for Item {0} in row {1},Cantidad requerida para el punto {0} en la fila {1}
-Quarter,trimestre
-Quarterly,trimestral
+Quarter,Trimestre
+Quarterly,Trimestral
 Quick Help,Ayuda Rápida
-Quotation,cita
+Quotation,Nota
 Quotation Item,Cotización del artículo
 Quotation Items,Cotización Artículos
 Quotation Lost Reason,Cita Perdida Razón
@@ -2316,19 +2322,19 @@
 Re-order,Reordenar
 Re-order Level,Reordenar Nivel
 Re-order Qty,Reordenar Cantidad
-Read,leer
-Reading 1,lectura 1
-Reading 10,lectura 10
-Reading 2,lectura 2
-Reading 3,lectura 3
-Reading 4,Reading 4
-Reading 5,Reading 5
-Reading 6,lectura 6
-Reading 7,lectura 7
-Reading 8,lectura 8
-Reading 9,lectura 9
+Read,Lectura
+Reading 1,Lectura 1
+Reading 10,Lectura 10
+Reading 2,Lectura 2
+Reading 3,Lectura 3
+Reading 4,Lectura 4
+Reading 5,Lectura 5
+Reading 6,Lectura 6
+Reading 7,Lectura 7
+Reading 8,Lectura 8
+Reading 9,Lectura 9
 Real Estate,Bienes Raíces
-Reason,razón
+Reason,Razón
 Reason for Leaving,Razones para dejar el
 Reason for Resignation,Motivo de la renuncia
 Reason for losing,Razón por la pérdida de
@@ -2400,36 +2406,36 @@
 Request Type,Tipo de solicitud
 Request for Information,Solicitud de Información
 Request for purchase.,Solicitar a la venta.
-Requested,requerido
-Requested For,solicitados para
+Requested,Requerido
+Requested For,Solicitados para
 Requested Items To Be Ordered,Artículos solicitados será condenada
 Requested Items To Be Transferred,Artículos solicitados para ser transferido
-Requested Qty,Solicitado Cantidad
+Requested Qty,Cant. Solicitada
 "Requested Qty: Quantity requested for purchase, but not ordered.","Solicitado Cantidad : Cantidad solicitada para la compra, pero no ordenado ."
 Requests for items.,Las solicitudes de artículos.
-Required By,Requerido por la
-Required Date,Fecha requerida
-Required Qty,Cantidad necesaria
+Required By,Requerido por
+Required Date,Fecha Requerida
+Required Qty,Cant. Necesaria
 Required only for sample item.,Sólo es necesario para el artículo de muestra .
 Required raw materials issued to the supplier for producing a sub - contracted item.,Las materias primas necesarias emitidas al proveedor para la producción de un sub - ítem contratado .
-Research,investigación
+Research,Investigación
 Research & Development,Investigación y Desarrollo
-Researcher,investigador
+Researcher,Investigador
 Reseller,Reseller
-Reserved,reservado
-Reserved Qty,reservados Cantidad
+Reserved,Reservado
+Reserved Qty,Cant. Reservada
 "Reserved Qty: Quantity ordered for sale, but not delivered.","Reservados Cantidad : Cantidad a pedir a la venta , pero no entregado."
-Reserved Quantity,Cantidad reservada
-Reserved Warehouse,Almacén Reserved
+Reserved Quantity,Cantidad Reservada
+Reserved Warehouse,Almacén Reservado
 Reserved Warehouse in Sales Order / Finished Goods Warehouse,Almacén reservado en ventas por pedido / Finalizado Productos Almacén
 Reserved Warehouse is missing in Sales Order,Almacén Reservado falta de órdenes de venta
 Reserved Warehouse required for stock Item {0} in row {1},Almacén Reservado requerido para la acción del artículo {0} en la fila {1}
 Reserved warehouse required for stock item {0},Almacén Reservado requerido para la acción del artículo {0}
 Reserves and Surplus,Reservas y Superávit
-Reset Filters,restablecer los filtros
-Resignation Letter Date,Carta de renuncia Fecha
-Resolution,resolución
-Resolution Date,Resolución Fecha
+Reset Filters,Restablecer los Filtros
+Resignation Letter Date,Fecha de Carta de Renuncia 
+Resolution,Resolución
+Resolution Date,Fecha de Resolución
 Resolution Details,Detalles de la resolución
 Resolved By,Resuelto por
 Rest Of The World,Resto del mundo
@@ -2478,7 +2484,7 @@
 SO Date,SO Fecha
 SO Pending Qty,SO Pendiente Cantidad
 SO Qty,SO Cantidad
-Salary,salario
+Salary,Salario
 Salary Information,La información sobre sueldos
 Salary Manager,Administrador de Salario
 Salary Mode,Modo Salario
@@ -2486,28 +2492,28 @@
 Salary Slip Deduction,Deducción nómina
 Salary Slip Earning,Ganar nómina
 Salary Slip of employee {0} already created for this month,Nómina de empleado {0} ya creado para este mes
-Salary Structure,Estructura salarial
+Salary Structure,Estructura Salarial
 Salary Structure Deduction,Estructura salarial Deducción
 Salary Structure Earning,Estructura salarial Earning
 Salary Structure Earnings,Estructura salarial Ganancias
 Salary breakup based on Earning and Deduction.,Ruptura Salario basado en la ganancia y la deducción.
 Salary components.,Componentes salariales.
 Salary template master.,Plantilla maestra Salario .
-Sales,venta
-Sales Analytics,análisis de ventas
+Sales,Venta
+Sales Analytics,Análisis de Ventas
 Sales BOM,BOM Ventas
 Sales BOM Help,BOM Ventas Ayuda
 Sales BOM Item,BOM Sales Item
 Sales BOM Items,BOM Ventas Artículos
 Sales Browser,Navegador de Ventas
-Sales Details,Detalles Ventas
-Sales Discounts,Descuentos sobre ventas
+Sales Details,Detalles de Ventas
+Sales Discounts,Descuentos sobre Ventas
 Sales Email Settings,Configuración de Ventas Email
-Sales Expenses,gastos de ventas
+Sales Expenses,Gastos de Ventas
 Sales Extras,Extras Ventas
 Sales Funnel,Embudo de Ventas
-Sales Invoice,factura de venta
-Sales Invoice Advance,Factura anticipadas
+Sales Invoice,Factura de Venta
+Sales Invoice Advance,Factura Anticipadas
 Sales Invoice Item,La factura de venta de artículos
 Sales Invoice Items,Artículos factura de venta
 Sales Invoice Message,Factura Mensaje
@@ -2515,7 +2521,7 @@
 Sales Invoice Trends,Ventas Tendencias Factura
 Sales Invoice {0} has already been submitted,Factura {0} ya se ha presentado
 Sales Invoice {0} must be cancelled before cancelling this Sales Order,Factura {0} debe ser cancelado antes de cancelar esta orden Ventas
-Sales Order,órdenes de venta
+Sales Order,Ordenes de Venta
 Sales Order Date,Órdenes de venta Fecha
 Sales Order Item,Solicitar Sales Item
 Sales Order Items,Solicitar Sales Artículos
@@ -2541,16 +2547,16 @@
 Sales Returned,Obtenidos Ventas
 Sales Taxes and Charges,Los impuestos y cargos de venta
 Sales Taxes and Charges Master,Los impuestos y cargos de venta Maestro
-Sales Team,equipo de ventas
+Sales Team,Equipo de Ventas
 Sales Team Details,Detalles del equipo de ventas
 Sales Team1,Team1 Ventas
-Sales and Purchase,Venta y Compra
+Sales and Purchase,Ventas y Compras
 Sales campaigns.,Campañas de ventas.
-Salutation,saludo
+Salutation,Saludo
 Sample Size,Tamaño de la muestra
 Sanctioned Amount,importe sancionado
-Saturday,sábado
-Schedule,horario
+Saturday,Sábado
+Schedule,Horario
 Schedule Date,Horario Fecha
 Schedule Details,Agenda Detalles
 Scheduled,Programado
@@ -2564,7 +2570,7 @@
 Score must be less than or equal to 5,Puntuación debe ser menor o igual a 5
 Scrap %,Scrap %
 Seasonality for setting budgets.,Estacionalidad de establecer presupuestos.
-Secretary,secretario
+Secretary,Secretario
 Secured Loans,Préstamos Garantizados
 Securities & Commodity Exchanges,Valores y Bolsas de Productos
 Securities and Deposits,Valores y Depósitos
@@ -2603,10 +2609,10 @@
 "Selecting ""Yes"" will allow you to create Bill of Material showing raw material and operational costs incurred to manufacture this item.","Al seleccionar "" Sí"" le permitirá crear la lista de materiales que muestran la materia prima y los costos operativos incurridos en la fabricación de este artículo."
 "Selecting ""Yes"" will allow you to make a Production Order for this item.","Al seleccionar "" Sí "" permitirá que usted haga una orden de producción por este concepto."
 "Selecting ""Yes"" will give a unique identity to each entity of this item which can be viewed in the Serial No master.","Al seleccionar "" Sí"" le dará una identidad única a cada entidad de este artículo que se puede ver en la serie No amo."
-Selling,de venta
+Selling,Ventas
 Selling Settings,La venta de Ajustes
 "Selling must be checked, if Applicable For is selected as {0}","Selling debe comprobar, si se selecciona aplicable Para que {0}"
-Send,enviar
+Send,Enviar
 Send Autoreply,Enviar Respuesta automática
 Send Email,Enviar Email
 Send From,Enviar Desde
@@ -2618,7 +2624,7 @@
 Send mass SMS to your contacts,Enviar SMS masivo a sus contactos
 Send to this list,Enviar a esta lista
 Sender Name,Nombre del remitente
-Sent On,enviado Por
+Sent On,Enviado Por
 Separate production order will be created for each finished good item.,Para la producción por separado se crea para cada buen artículo terminado.
 Serial No,No de orden
 Serial No / Batch,N º de serie / lote
@@ -2642,16 +2648,16 @@
 Serial Number Series,Número de Serie Serie
 Serial number {0} entered more than once,Número de serie {0} entraron más de una vez
 Serialized Item {0} cannot be updated \					using Stock Reconciliation,Artículo Serialized {0} no se puede actualizar \ mediante Stock Reconciliación
-Series,serie
+Series,Serie
 Series List for this Transaction,Lista de series para esta transacción
 Series Updated,Series Actualizado
 Series Updated Successfully,Serie actualizado correctamente
 Series is mandatory,Serie es obligatorio
 Series {0} already used in {1},Serie {0} ya se utiliza en {1}
-Service,servicio
+Service,Servicio
 Service Address,Dirección del Servicio
 Service Tax,Impuestos de Servicio
-Services,servicios
+Services,Servicios
 Set,conjunto
 "Set Default Values like Company, Currency, Current Fiscal Year, etc.","Establecer valores predeterminados , como empresa , vigencia actual año fiscal , etc"
 Set Item Group-wise budgets on this Territory. You can also include seasonality by setting the Distribution.,Establecer presupuestos - Grupo sabio artículo en este Territorio. También puede incluir la estacionalidad mediante el establecimiento de la Distribución .
@@ -2666,20 +2672,20 @@
 Settings,Configuración
 Settings for HR Module,Ajustes para el Módulo de Recursos Humanos
 "Settings to extract Job Applicants from a mailbox e.g. ""jobs@example.com""","Ajustes para extraer los solicitantes de empleo de un buzón por ejemplo, "" jobs@example.com """
-Setup,disposición
-Setup Already Complete!!,Configuración ya completo !
-Setup Complete,Instalación completa
+Setup,Configuración
+Setup Already Complete!!,Configuración completa !
+Setup Complete,Configuración completa
 Setup SMS gateway settings,Configuración de puerta de enlace de configuración de SMS
 Setup Series,Serie de configuración
 Setup Wizard,Asistente de configuración
 Setup incoming server for jobs email id. (e.g. jobs@example.com),Configuración del servidor de correo entrante para los trabajos de identificación del email . (por ejemplo jobs@example.com )
 Setup incoming server for sales email id. (e.g. sales@example.com),Configuración del servidor de correo entrante de correo electrónico de identificación de las ventas. (por ejemplo sales@example.com )
 Setup incoming server for support email id. (e.g. support@example.com),Configuración del servidor de correo entrante para el apoyo de id de correo electrónico. (por ejemplo support@example.com )
-Share,cuota
+Share,Cuota
 Share With,Comparte con
 Shareholders Funds,Accionistas Fondos
 Shipments to customers.,Los envíos a los clientes .
-Shipping,envío
+Shipping,Envío
 Shipping Account,cuenta Envíos
 Shipping Address,Dirección de envío
 Shipping Amount,Importe del envío
@@ -2698,19 +2704,19 @@
 Show rows with zero values,Mostrar filas con valores de cero
 Show this slideshow at the top of the page,Mostrar esta presentación de diapositivas en la parte superior de la página
 Sick Leave,baja por enfermedad
-Signature,firma
+Signature,Firma
 Signature to be appended at the end of every email,Firma que se adjunta al final de cada correo electrónico
 Single,solo
 Single unit of an Item.,Una sola unidad de un elemento .
 Sit tight while your system is being setup. This may take a few moments.,Estar tranquilos mientras el sistema está siendo configuración. Esto puede tomar un momento .
 Slideshow,Presentación
 Soap & Detergent,Jabón y Detergente
-Software,software
-Software Developer,desarrollador de Software
+Software,Software
+Software Developer,Desarrollador de Software
 "Sorry, Serial Nos cannot be merged","Lo sentimos , Nos de serie no se puede fusionar"
 "Sorry, companies cannot be merged","Lo sentimos , las empresas no se pueden combinar"
-Source,fuente
-Source File,archivo de origen
+Source,Fuente
+Source File,Archivo de Origen
 Source Warehouse,fuente de depósito
 Source and target warehouse cannot be same for row {0},Fuente y el almacén de destino no pueden ser la misma para la fila {0}
 Source of Funds (Liabilities),Fuente de los fondos ( Pasivo )
@@ -2735,12 +2741,12 @@
 Start Date,Fecha de inicio
 Start date of current invoice's period,Fecha del período de facturación actual Inicie
 Start date should be less than end date for Item {0},La fecha de inicio debe ser menor que la fecha de finalización para el punto {0}
-State,estado
+State,Estado
 Statement of Account,Estado de cuenta
 Static Parameters,Parámetros estáticos
 Status,estado
 Status must be one of {0},Estado debe ser uno de {0}
-Status of {0} {1} is now {2},Situación de {0} {1} { 2 es ahora }
+Status of {0} {1} is now {2},Situación de {0} {1} {2} es ahora
 Status updated to {0},Estado actualizado a {0}
 Statutory info and other general information about your Supplier,Información legal y otra información general acerca de su proveedor
 Stay Updated,Manténgase actualizado
@@ -2791,17 +2797,17 @@
 Sub Assemblies,Asambleas Sub
 "Sub-currency. For e.g. ""Cent""","Sub -moneda. Por ejemplo, "" Cent """
 Subcontract,subcontrato
-Subject,sujeto
+Subject,Sujeto
 Submit Salary Slip,Presentar nómina
 Submit all salary slips for the above selected criteria,Presentar todas las nóminas para los criterios seleccionados anteriormente
 Submit this Production Order for further processing.,Enviar esta Orden de Producción para su posterior procesamiento .
 Submitted,Enviado
-Subsidiary,filial
+Subsidiary,Filial
 Successful: ,Con éxito:
 Successfully Reconciled,Con éxito Reconciled
 Suggestions,Sugerencias
-Sunday,domingo
-Supplier,proveedor
+Sunday,Domingo
+Supplier,Proveedor
 Supplier (Payable) Account,Proveedor (A pagar ) Cuenta
 Supplier (vendor) name as entered in supplier master,Proveedor (vendedor ) nombre que ingresó en el maestro de proveedores
 Supplier > Supplier Type,Proveedor> Tipo de Proveedor
@@ -2839,7 +2845,7 @@
 Sync Support Mails,Sync Soporte Mails
 Sync with Dropbox,Sincronización con Dropbox
 Sync with Google Drive,Sincronización con Google Drive
-System,sistema
+System,Sistema
 System Settings,Configuración del sistema
 "System User (login) ID. If set, it will become default for all HR forms.","Usuario del sistema (login ) de diámetro. Si se establece , será por defecto para todas las formas de recursos humanos."
 TDS (Advertisement),TDS (Publicidad)
@@ -2858,10 +2864,10 @@
 Target Warehouse,destino de depósito
 Target warehouse in row {0} must be same as Production Order,Almacenes de destino de la fila {0} debe ser la misma que la producción del pedido
 Target warehouse is mandatory for row {0},Almacenes Target es obligatorio para la fila {0}
-Task,tarea
+Task,Tarea
 Task Details,Detalles de la tarea
 Tasks,Tareas
-Tax,impuesto
+Tax,Impuesto
 Tax Amount After Discount Amount,Total de impuestos Después Cantidad de Descuento
 Tax Assets,Activos por Impuestos
 Tax Category can not be 'Valuation' or 'Valuation and Total' as all items are non-stock items,"Categoría de impuesto no puede ser ' Valoración ' o ' de Valoración y Total ""como todos los artículos son no-acción"
@@ -2870,7 +2876,7 @@
 Tax detail table fetched from item master as a string and stored in this field.Used for Taxes and Charges,Tabla de detalles de impuestos recoger del maestro de artículos en forma de cadena y se almacena en este campo. Se utiliza para las tasas y cargos
 Tax template for buying transactions.,Plantilla de impuestos para la compra de las transacciones.
 Tax template for selling transactions.,Plantilla Tributaria para la venta de las transacciones.
-Taxable,imponible
+Taxable,Imponible
 Taxes,Impuestos
 Taxes and Charges,Impuestos y Cargos
 Taxes and Charges Added,Impuestos y cargos adicionales
@@ -2880,10 +2886,10 @@
 Taxes and Charges Deducted (Company Currency),Impuestos y gastos deducidos ( Compañía de divisas )
 Taxes and Charges Total,Los impuestos y cargos totales
 Taxes and Charges Total (Company Currency),Impuestos y Cargos total ( Compañía de divisas )
-Technology,tecnología
+Technology,Tecnología
 Telecommunications,Telecomunicaciones
 Telephone Expenses,gastos por servicios telefónicos
-Television,televisión
+Television,Televisión
 Template,Plantilla
 Template for performance appraisals.,Plantilla para las evaluaciones de desempeño .
 Template of terms or contract.,Plantilla de términos o contrato.
@@ -2892,24 +2898,24 @@
 Temporary Assets,Activos temporales
 Temporary Liabilities,Pasivos temporales
 Term Details,Detalles plazo
-Terms,condiciones
+Terms,Condiciones
 Terms and Conditions,Términos y Condiciones
 Terms and Conditions Content,Términos y Condiciones de contenido
-Terms and Conditions Details,Términos y Condiciones Detalles
-Terms and Conditions Template,Términos y Condiciones de plantilla
+Terms and Conditions Details,Detalle de Términos y Condiciones 
+Terms and Conditions Template,Plantilla de Términos y Condiciones
 Terms and Conditions1,Términos y Condiciones 1
-Terretory,Terretory
-Territory,territorio
+Terretory,Territorio
+Territory,Territorio
 Territory / Customer,Localidad / Cliente
 Territory Manager,Gerente de Territorio
 Territory Name,Nombre Territorio
 Territory Target Variance Item Group-Wise,Territorio Target Varianza Artículo Group- Wise
 Territory Targets,Objetivos Territorio
-Test,prueba
+Test,Prueba
 Test Email Id,Prueba de Identificación del email
 Test the Newsletter,Pruebe el Boletín
 The BOM which will be replaced,La lista de materiales que será sustituido
-The First User: You,La Primera Usuario:
+The First User: You,El Primer Usuario: Usted
 "The Item that represents the Package. This Item must have ""Is Stock Item"" as ""No"" and ""Is Sales Item"" as ""Yes""","El artículo que representa el paquete . Este artículo debe haber "" Es Stock Item"" como "" No"" y ""¿ Punto de venta"" como "" Sí"""
 The Organization,La Organización
 "The account head under Liability, in which Profit/Loss will be booked","El director cuenta con la responsabilidad civil , en el que será reservado Ganancias / Pérdidas"
@@ -2947,7 +2953,7 @@
 This is the number of the last created transaction with this prefix,Este es el número de la última transacción creado con este prefijo
 This will be used for setting rule in HR module,Esto se utiliza para ajustar la regla en el módulo HR
 Thread HTML,HTML Tema
-Thursday,jueves
+Thursday,Jueves
 Time Log,Hora de registro
 Time Log Batch,Lote Hora de registro
 Time Log Batch Detail,Detalle de lotes Hora de registro
@@ -2957,20 +2963,20 @@
 Time Log for tasks.,Hora de registro para las tareas.
 Time Log is not billable,Hora de registro no es facturable
 Time Log {0} must be 'Submitted',Hora de registro {0} debe ser ' Enviado '
-Time Zone,huso horario
+Time Zone,Huso Horario
 Time Zones,Husos horarios
 Time and Budget,Tiempo y Presupuesto
 Time at which items were delivered from warehouse,Momento en que los artículos fueron entregados desde el almacén
 Time at which materials were received,Momento en que se recibieron los materiales
-Title,título
+Title,Título
 Titles for print templates e.g. Proforma Invoice.,"Títulos para plantillas de impresión , por ejemplo, Factura proforma ."
 To,a
-To Currency,Para moneda
+To Currency,Para la moneda
 To Date,Hasta la fecha
 To Date should be same as From Date for Half Day leave,Hasta la fecha debe ser igual a partir de la fecha para la licencia de medio día
 To Date should be within the Fiscal Year. Assuming To Date = {0},Hasta la fecha debe estar dentro del año fiscal. Asumiendo la fecha = {0}
 To Discuss,Para Discuta
-To Do List,Para hacer la lista
+To Do List,Lista para hacer
 To Package No.,Al paquete No.
 To Produce,Producir
 To Time,Para Tiempo
@@ -2979,7 +2985,7 @@
 "To add child nodes, explore tree and click on the node under which you want to add more nodes.","Para agregar nodos secundarios , explorar el árbol y haga clic en el nodo en el que desea agregar más nodos."
 "To assign this issue, use the ""Assign"" button in the sidebar.","Para asignar este problema, utilice el botón "" Assign"" en la barra lateral ."
 To create a Bank Account,Para crear una Cuenta Bancaria
-To create a Tax Account,Para crear una cuenta de impuestos
+To create a Tax Account,Para crear una Cuenta de impuestos
 "To create an Account Head under a different company, select the company and save customer.","Para crear un Jefe de Cuenta bajo una compañía diferente , seleccione la empresa y salvar a los clientes."
 To date cannot be before from date,Hasta la fecha no puede ser antes de la fecha de
 To enable <b>Point of Sale</b> features,Para activar <b> punto de venta </ b> características
@@ -2995,8 +3001,8 @@
 To track items in sales and purchase documents with batch nos<br><b>Preferred Industry: Chemicals etc</b>,Para realizar un seguimiento de los elementos de las ventas y la compra de los documentos con lotes nos <br> <b> Industria preferido: Productos químicos etc < / b >
 To track items using barcode. You will be able to enter items in Delivery Note and Sales Invoice by scanning barcode of item.,Para realizar un seguimiento de elementos mediante código de barras. Usted será capaz de entrar en los elementos de la nota de entrega y la factura de venta mediante el escaneo de código de barras del artículo.
 Too many columns. Export the report and print it using a spreadsheet application.,Hay demasiadas columnas. Exportar el informe e imprimirlo mediante una aplicación de hoja de cálculo.
-Tools,instrumentos
-Total,total
+Tools,Herramientas
+Total,Total
 Total ({0}),Total ({0})
 Total Advance,Avance total
 Total Amount,Importe total
@@ -3005,15 +3011,15 @@
 Total Billing This Year: ,Facturación total de este año:
 Total Characters,Total Jugadores
 Total Claimed Amount,Total Reclamado
-Total Commission,total Comisión
+Total Commission,Total Comisión
 Total Cost,Coste total
-Total Credit,total del Crédito
-Total Debit,débito total
+Total Credit,Crédito Total
+Total Debit,Débito Total
 Total Debit must be equal to Total Credit. The difference is {0},Débito total debe ser igual al crédito total .
 Total Deduction,Deducción total
 Total Earning,Ganar total
 Total Experience,Experiencia total
-Total Hours,total de horas
+Total Hours,Total de Horas
 Total Hours (Expected),Total de horas (Esperada )
 Total Invoiced Amount,Total facturado
 Total Leave Days,Total Dejar días
@@ -3035,30 +3041,30 @@
 Total points for all goals should be 100. It is {0},Total de puntos para todos los objetivos deben ser 100 . Es {0}
 Total valuation for manufactured or repacked item(s) can not be less than total valuation of raw materials,Valoración total para cada elemento (s) de la empresa o embalados de nuevo no puede ser inferior al valor total de las materias primas
 Total weightage assigned should be 100%. It is {0},Weightage total asignado debe ser de 100 %. Es {0}
-Totals,totales
+Totals,Totales
 Track Leads by Industry Type.,Pista conduce por tipo de industria .
 Track this Delivery Note against any Project,Seguir este albarán en contra de cualquier proyecto
 Track this Sales Order against any Project,Seguir este de órdenes de venta en contra de cualquier proyecto
-Transaction,transacción
+Transaction,Transacción
 Transaction Date,Fecha de Transacción
 Transaction not allowed against stopped Production Order {0},La transacción no permitida contra detenido Orden Producción {0}
-Transfer,transferencia
+Transfer,Transferencia
 Transfer Material,transferencia de material
 Transfer Raw Materials,Transferencia de Materias Primas
-Transferred Qty,Transferido Cantidad
-Transportation,transporte
+Transferred Qty,Cantidad Transferida
+Transportation,Transporte
 Transporter Info,Información Transporter
-Transporter Name,transportista Nombre
+Transporter Name,Nombre del Transportista
 Transporter lorry number,Número de camiones Transportador
-Travel,viajes
-Travel Expenses,gastos de Viaje
+Travel,Viajes
+Travel Expenses,Gastos de Viaje
 Tree Type,Tipo de árbol
 Tree of Item Groups.,Árbol de los grupos de artículos .
 Tree of finanial Cost Centers.,Árbol de Centros de Coste finanial .
 Tree of finanial accounts.,Árbol de las cuentas finanial .
 Trial Balance,balance de Comprobación
-Tuesday,martes
-Type,tipo
+Tuesday,Martes
+Type,Tipo
 Type of document to rename.,Tipo de documento para cambiar el nombre.
 "Type of leaves like casual, sick etc.","Tipo de hojas como casual, etc enfermo"
 Types of Expense Claim.,Tipos de Reclamación de Gastos .
@@ -3156,13 +3162,13 @@
 Voucher Type,Tipo de Vales
 Voucher Type and Date,Tipo Bono y Fecha
 Walk In,Walk In
-Warehouse,almacén
-Warehouse Contact Info,Almacén Contacto
+Warehouse,Almacén
+Warehouse Contact Info,Información de Contacto del Almacén 
 Warehouse Detail,Detalle de almacenes
-Warehouse Name,Nombre de almacenes
+Warehouse Name,Nombre del Almacén
 Warehouse and Reference,Almacén y Referencia
 Warehouse can not be deleted as stock ledger entry exists for this warehouse.,Almacén no se puede suprimir porque hay una entrada en registro de acciones para este almacén.
-Warehouse can only be changed via Stock Entry / Delivery Note / Purchase Receipt,Depósito sólo se puede cambiar a través de la entrada Stock / nota de entrega / recibo de compra
+Warehouse can only be changed via Stock Entry / Delivery Note / Purchase Receipt,Depósito sólo se puede cambiar a través de la Entrada de Almacén / Nota de Entrega / Recibo de Compra
 Warehouse cannot be changed for Serial No.,Almacén no se puede cambiar para el N º de serie
 Warehouse is mandatory for stock Item {0} in row {1},Warehouse es obligatoria para la acción del artículo {0} en la fila {1}
 Warehouse is missing in Purchase Order,Almacén falta en la Orden de Compra
@@ -3185,33 +3191,33 @@
 Warning: System will not check overbilling since amount for Item {0} in {1} is zero,Advertencia : El sistema no comprobará sobrefacturación desde monto para el punto {0} en {1} es cero
 Warranty / AMC Details,Garantía / AMC Detalles
 Warranty / AMC Status,Garantía / AMC Estado
-Warranty Expiry Date,Garantía de caducidad Fecha
+Warranty Expiry Date,Fecha de caducidad de la Garantía
 Warranty Period (Days),Período de garantía ( Días)
 Warranty Period (in days),Período de garantía ( en días)
 We buy this Item,Compramos este artículo
 We sell this Item,Vendemos este artículo
-Website,sitio web
-Website Description,Sitio Web Descripción
+Website,Sitio Web
+Website Description,Descripción del Sitio Web 
 Website Item Group,Group Website artículo
 Website Item Groups,Grupos Sitios Web item
 Website Settings,Configuración del sitio web
 Website Warehouse,Almacén Web
-Wednesday,miércoles
-Weekly,semanal
+Wednesday,Miércoles
+Weekly,Semanal
 Weekly Off,Semanal Off
 Weight UOM,Peso UOM
 "Weight is mentioned,\nPlease mention ""Weight UOM"" too","El peso se ha mencionado, \ nPor favor, menciona "" Peso UOM "" demasiado"
 Weightage,weightage
 Weightage (%),Coeficiente de ponderación (% )
-Welcome,bienvenido
-Welcome to ERPNext. Over the next few minutes we will help you setup your ERPNext account. Try and fill in as much information as you have even if it takes a bit longer. It will save you a lot of time later. Good Luck!,"Bienvenido a ERPNext . En los próximos minutos vamos a ayudarle a configurar su cuenta ERPNext . Trate de llenar toda la información que usted tiene , incluso si se necesita un poco más largo. Esto le ahorrará mucho tiempo después. ¡Buena suerte!"
+Welcome,Bienvenido
+Welcome to ERPNext. Over the next few minutes we will help you setup your ERPNext account. Try and fill in as much information as you have even if it takes a bit longer. It will save you a lot of time later. Good Luck!,"Bienvenido a ERPNext . En los próximos minutos vamos a ayudarle a configurar su cuenta ERPNext . Trate de llenar toda la información que usted tiene , incluso si se necesita un poco más de tiempo ahora. Esto le ahorrará mucho tiempo después. ¡Buena suerte!"
 Welcome to ERPNext. Please select your language to begin the Setup Wizard.,Bienvenido a ERPNext . Por favor seleccione su idioma para iniciar el asistente de configuración.
 What does it do?,¿Qué hace?
 "When any of the checked transactions are ""Submitted"", an email pop-up automatically opened to send an email to the associated ""Contact"" in that transaction, with the transaction as an attachment. The user may or may not send the email.","Cuando alguna de las operaciones controladas son "" Enviado "" , un e-mail emergente abre automáticamente al enviar un email a la asociada "" Contacto"" en esa transacción , la transacción como un archivo adjunto. El usuario puede o no puede enviar el correo electrónico."
 "When submitted, the system creates difference entries to set the given stock and valuation on this date.","Cuando presentado , el sistema crea asientos de diferencia para definir las acciones y la valoración dada en esta fecha."
 Where items are stored.,¿Dónde se almacenan los artículos .
 Where manufacturing operations are carried out.,Cuando las operaciones de elaboración se lleven a cabo .
-Widowed,viudo
+Widowed,Viudo
 Will be calculated automatically when you enter the details,Se calcularán automáticamente cuando entras en los detalles
 Will be updated after Sales Invoice is Submitted.,Se actualizará después de la factura de venta se considera sometida .
 Will be updated when batched.,Se actualizará cuando por lotes.
@@ -3236,14 +3242,14 @@
 Write Off Outstanding Amount,Escribe Off Monto Pendiente
 Write Off Voucher,Escribe Off Voucher
 Wrong Template: Unable to find head row.,Plantilla incorrecto : no se puede encontrar la fila cabeza.
-Year,año
+Year,Año
 Year Closed,Año Cerrado
 Year End Date,Año Fecha de finalización
-Year Name,Nombre Año
+Year Name,Nombre de Año
 Year Start Date,Año Fecha de inicio
-Year of Passing,Año de fallecimiento
-Yearly,anual
-Yes,sí
+Year of Passing,Año de Fallecimiento
+Yearly,Anual
+Yes,Sí
 You are not authorized to add or update entries before {0},No tiene permisos para agregar o actualizar las entradas antes de {0}
 You are not authorized to set Frozen value,Usted no está autorizado para fijar el valor congelado
 You are the Expense Approver for this record. Please Update the 'Status' and Save,Usted es el aprobador de gastos para este registro. Actualice el 'Estado' y Save
@@ -3279,7 +3285,7 @@
 and,y
 are not allowed.,no están permitidos.
 assigned by,asignado por
-cannot be greater than 100,no puede ser mayor que 100
+cannot be greater than 100,No puede ser mayor que 100
 "e.g. ""Build tools for builders""","por ejemplo "" Construir herramientas para los constructores """
 "e.g. ""MC""","por ejemplo ""MC """
 "e.g. ""My Company LLC""","por ejemplo ""Mi Company LLC """
@@ -3329,3 +3335,49 @@
 {0} {1} status is Unstopped,{0} {1} Estado es destapados
 {0} {1}: Cost Center is mandatory for Item {2},{0} {1}: Centro de Costo es obligatorio para el punto {2}
 {0}: {1} not found in Invoice Details table,{0}: {1} no se encuentra en la factura Detalles mesa
+"<a href=""#Sales Browser/Customer Group"">Add / Edit</a>","<a href=""#Sales Browser/Customer grupo""> Añadir / Editar < / a>"
+"<a href=""#Sales Browser/Territory"">Add / Edit</a>","<a href=""#Sales Browser/Territory""> Añadir / Editar < / a>"
+Billed,Anunciado
+Company,Empresa
+Currency is required for Price List {0},Se requiere de divisas para el precio de lista {0}
+Default Customer Group,Grupo predeterminado Cliente
+Default Territory,Territorio predeterminado
+Delivered,liberado
+Enable Shopping Cart,Habilitar Compras
+Go ahead and add something to your cart.,Seguir adelante y añadir algo a su carrito.
+Hey! Go ahead and add an address,¡Hey! Seguir adelante y añadir una dirección
+Invalid Billing Address,No válida dirección de facturación
+Invalid Shipping Address,Dirección no válida de envío
+Missing Currency Exchange Rates for {0},Missing Tipo de Cambio para {0}
+Name is required,El nombre es necesario
+Not Allowed,No se permite
+Paid,pagado
+Partially Billed,Parcialmente Anunciado
+Partially Delivered,Parcialmente Entregado
+Please specify a Price List which is valid for Territory,"Por favor, especifique una lista de precios que es válido para el territorio"
+Please specify currency in Company,"Por favor, especifique la moneda en la empresa"
+Please write something,"Por favor, escribir algo"
+Please write something in subject and message!,"Por favor, escriba algo en asunto y el mensaje !"
+Price List,Lista de Precios
+Price List not configured.,Lista de precios no está configurado.
+Quotation Series,Serie Cotización
+Shipping Rule,Regla de envío
+Shopping Cart,Cesta de la compra
+Shopping Cart Price List,Cesta de la compra Precio de lista
+Shopping Cart Price Lists,Compras Listas de precios
+Shopping Cart Settings,Compras Ajustes
+Shopping Cart Shipping Rule,Compras Regla de envío
+Shopping Cart Shipping Rules,Compras Reglas de Envío
+Shopping Cart Taxes and Charges Master,Compras Impuestos y Cargos Maestro
+Shopping Cart Taxes and Charges Masters,Carrito impuestos y las cargas Masters
+Something went wrong!,¡Algo salió mal!
+Something went wrong.,Algo salió mal.
+Tax Master,Maestro de Impuestos
+To Pay,Pagar
+Updated,actualizado
+You are not allowed to reply to this ticket.,No se le permite responder a este boleto.
+You need to be logged in to view your cart.,Tienes que estar registrado para ver su carrito.
+You need to enable Shopping Cart,Necesita habilitar Compras
+{0} cannot be purchased using Shopping Cart,{0} no puede ser comprado usando Compras
+{0} is required,{0} es necesario
+{0} {1} has a common territory {2},{0} {1} tiene un territorio común {2}
diff --git a/erpnext/translations/fr.csv b/erpnext/translations/fr.csv
index 99a9158..34cdafa 100644
--- a/erpnext/translations/fr.csv
+++ b/erpnext/translations/fr.csv
@@ -35,41 +35,42 @@
 "<a href=""#Sales Browser/Territory"">Add / Edit</a>","<a href=""#Sales Browser/Territory""> Ajouter / Modifier < / a>"
 "<h4>Default Template</h4><p>Uses <a href=""http://jinja.pocoo.org/docs/templates/"">Jinja Templating</a> and all the fields of Address (including Custom Fields if any) will be available</p><pre><code>{{ address_line1 }}&lt;br&gt;{% if address_line2 %}{{ address_line2 }}&lt;br&gt;{% endif -%}{{ city }}&lt;br&gt;{% if state %}{{ state }}&lt;br&gt;{% endif -%}{% if pincode %} PIN:  {{ pincode }}&lt;br&gt;{% endif -%}{{ country }}&lt;br&gt;{% if phone %}Phone: {{ phone }}&lt;br&gt;{% endif -%}{% if fax %}Fax: {{ fax }}&lt;br&gt;{% endif -%}{% if email_id %}Email: {{ email_id }}&lt;br&gt;{% endif -%}</code></pre>","<h4> modèle par défaut </ h4>  <p> Utilise <a href=""http://jinja.pocoo.org/docs/templates/""> Jinja création de modèles </ a> et tous les domaines de l'Adresse ( y compris les champs personnalisés cas échéant) sera disponible </ p>  <pre> <code> {{}} address_line1 Photos  {% si address_line2%} {{}} address_line2 <br> { % endif -%}  {{ville}} Photos  {% si l'état%} {{état}} {% endif Photos -%}  {% if%} code PIN PIN: {{code PIN}} {% endif Photos -%}  {{pays}} Photos  {% si le téléphone%} Téléphone: {{phone}} {<br> % endif -%}  {% if%} fax Fax: {{fax}} {% endif Photos -%}  {% if%} email_id Email: {{}} email_id Photos ; {% endif -%}  </ code> </ pre>"
 A Customer Group exists with same name please change the Customer name or rename the Customer Group,BOM récursivité : {0} ne peut pas être le parent ou l'enfant de {2}
-A Customer exists with same name,Une clientèle existe avec le même nom
-A Lead with this email id should exist,Un responsable de cette id e-mail doit exister
-A Product or Service,Nouveau N ° de série ne peut pas avoir d'entrepôt . Entrepôt doit être réglé par Stock entrée ou ticket de caisse
-A Supplier exists with same name,Un Fournisseur existe avec le même nom
-A symbol for this currency. For e.g. $,Un symbole de cette monnaie. Pour exemple $
+A Customer exists with same name,Un client existe avec le même nom
+A Lead with this email id should exist,Un responsable de cet identifiant de courriel doit exister
+A Product or Service,Un produit ou service
+A Supplier exists with same name,Un fournisseur existe avec ce même nom
+A symbol for this currency. For e.g. $,Un symbole pour cette monnaie. Par exemple $
 AMC Expiry Date,AMC Date d&#39;expiration
 Abbr,Abbr
-Abbreviation cannot have more than 5 characters,Compte avec la transaction existante ne peut pas être converti en groupe.
+Abbreviation cannot have more than 5 characters,L'abbréviation ne peut pas avoir plus de 5 caractères
 Above Value,Au-dessus de la valeur
 Absent,Absent
 Acceptance Criteria,Critères d&#39;acceptation
 Accepted,Accepté
-Accepted + Rejected Qty must be equal to Received quantity for Item {0},Compte {0} doit être SAMES comme débit pour tenir compte de la facture de vente en ligne {0}
+Accepted + Rejected Qty must be equal to Received quantity for Item {0},"La quantité acceptée + rejetée doit être égale à la quantité reçue pour l'Item {0}
+Compte {0} doit être SAMES comme débit pour tenir compte de la facture de vente en ligne {0}"
 Accepted Quantity,Quantité acceptés
-Accepted Warehouse,Entrepôt acceptés
+Accepted Warehouse,Entrepôt acceptable
 Account,compte
 Account Balance,Solde du compte
 Account Created: {0},Compte créé : {0}
 Account Details,Détails du compte
-Account Head,Chef du compte
+Account Head,Responsable du compte
 Account Name,Nom du compte
 Account Type,Type de compte
 "Account balance already in Credit, you are not allowed to set 'Balance Must Be' as 'Debit'","Le solde du compte déjà en crédit, vous n'êtes pas autorisé à mettre en 'équilibre doit être' comme 'débit'"
 "Account balance already in Debit, you are not allowed to set 'Balance Must Be' as 'Credit'","Le solde du compte déjà en débit, vous n'êtes pas autorisé à définir 'équilibre doit être' comme 'Crédit'"
 Account for the warehouse (Perpetual Inventory) will be created under this Account.,Compte de l'entrepôt ( de l'inventaire permanent ) sera créé sous ce compte .
-Account head {0} created,Employé soulagé sur {0} doit être défini comme «gauche»
-Account must be a balance sheet account,arrhes
+Account head {0} created,Responsable du compte {0} a été crée
+Account must be a balance sheet account,Le compte doit être un bilan
 Account with child nodes cannot be converted to ledger,Liste des prix non sélectionné
 Account with existing transaction can not be converted to group.,{0} n'est pas un congé approbateur valide
 Account with existing transaction can not be deleted,Compte avec la transaction existante ne peut pas être supprimé
 Account with existing transaction cannot be converted to ledger,Compte avec la transaction existante ne peut pas être converti en livre
 Account {0} cannot be a Group,Compte {0} ne peut pas être un groupe
-Account {0} does not belong to Company {1},{0} créé
+Account {0} does not belong to Company {1},Compte {0} n'appartient pas à la société {1}
 Account {0} does not belong to company: {1},Compte {0} n'appartient pas à l'entreprise: {1}
-Account {0} does not exist,Votre adresse e-mail
+Account {0} does not exist,Compte {0} n'existe pas
 Account {0} has been entered more than once for fiscal year {1},S'il vous plaît entrer « Répétez le jour du Mois de la« valeur de champ
 Account {0} is frozen,Attention: Commande {0} existe déjà contre le même numéro de bon de commande
 Account {0} is inactive,dépenses directes
@@ -80,13 +81,13 @@
 Account {0}: Parent account {1} does not exist,Compte {0}: compte de Parent {1} n'existe pas
 Account {0}: You can not assign itself as parent account,Compte {0}: Vous ne pouvez pas lui attribuer que compte parent
 Account: {0} can only be updated via \					Stock Transactions,Compte: {0} ne peut être mise à jour via \ Transactions de stock
-Accountant,comptable
+Accountant,Comptable
 Accounting,Comptabilité
 "Accounting Entries can be made against leaf nodes, called","Écritures comptables peuvent être faites contre nœuds feuilles , appelé"
 "Accounting entry frozen up to this date, nobody can do / modify entry except role specified below.","Saisie comptable gelé jusqu&#39;à cette date, personne ne peut faire / modifier entrée sauf rôle spécifié ci-dessous."
 Accounting journal entries.,Les écritures comptables.
 Accounts,Comptes
-Accounts Browser,comptes navigateur
+Accounts Browser,Navigateur des comptes
 Accounts Frozen Upto,Jusqu&#39;à comptes gelés
 Accounts Payable,Comptes à payer
 Accounts Receivable,Débiteurs
@@ -113,28 +114,28 @@
 Add,Ajouter
 Add / Edit Taxes and Charges,Ajouter / Modifier Taxes et frais
 Add Child,Ajouter un enfant
-Add Serial No,Ajouter N ° de série
+Add Serial No,Ajouter Numéro de série
 Add Taxes,Ajouter impôts
 Add Taxes and Charges,Ajouter Taxes et frais
 Add or Deduct,Ajouter ou déduire
-Add rows to set annual budgets on Accounts.,Ajoutez des lignes d&#39;établir des budgets annuels des comptes.
-Add to Cart,ERP open source construit pour le web
-Add to calendar on this date,Ajouter au calendrier à cette date
+Add rows to set annual budgets on Accounts.,Ajoutez des lignes pour établir des budgets annuels sur des comptes.
+Add to Cart,Ajouter au panier
+Add to calendar on this date,Ajouter cette date au calendrier
 Add/Remove Recipients,Ajouter / supprimer des destinataires
 Address,Adresse
 Address & Contact,Adresse et coordonnées
-Address & Contacts,Adresse &amp; Contacts
+Address & Contacts,Adresse & Coordonnées
 Address Desc,Adresse Desc
 Address Details,Détails de l&#39;adresse
 Address HTML,Adresse HTML
 Address Line 1,Adresse ligne 1
 Address Line 2,Adresse ligne 2
 Address Template,Adresse modèle
-Address Title,Titre Adresse
+Address Title,Titre de l'adresse
 Address Title is mandatory.,Vous n'êtes pas autorisé à imprimer ce document
 Address Type,Type d&#39;adresse
-Address master.,Ou créés par
-Administrative Expenses,applicabilité
+Address master.,Adresse principale
+Administrative Expenses,Dépenses administratives
 Administrative Officer,de l'administration
 Advance Amount,Montant de l&#39;avance
 Advance amount,Montant de l&#39;avance
@@ -142,7 +143,7 @@
 Advertisement,Publicité
 Advertising,publicité
 Aerospace,aérospatial
-After Sale Installations,Après Installations Vente
+After Sale Installations,Installations Après Vente
 Against,Contre
 Against Account,Contre compte
 Against Bill {0} dated {1},Courriel invalide : {0}
@@ -197,7 +198,7 @@
 Allow Bill of Materials,Laissez Bill of Materials
 Allow Bill of Materials should be 'Yes'. Because one or many active BOMs present for this item,Commande {0} n'est pas valide
 Allow Children,permettre aux enfants
-Allow Dropbox Access,Autoriser l&#39;accès Dropbox
+Allow Dropbox Access,Autoriser l'accès au Dropbox
 Allow Google Drive Access,Autoriser Google Drive accès
 Allow Negative Balance,Laissez solde négatif
 Allow Negative Stock,Laissez Stock Négatif
@@ -219,7 +220,7 @@
 "An Item Group exists with same name, please change the item name or rename the item group","Un groupe d'objet existe avec le même nom , s'il vous plaît changer le nom de l'élément ou de renommer le groupe de l'article"
 "An item exists with same name ({0}), please change the item group name or rename the item",Le compte doit être un compte de bilan
 Analyst,analyste
-Annual,Nomenclature
+Annual,Annuel
 Another Period Closing Entry {0} has been made after {1},Point Wise impôt Détail
 Another Salary Structure {0} is active for employee {0}. Please make its status 'Inactive' to proceed.,Le taux de conversion ne peut pas être égal à 0 ou 1
 "Any other comments, noteworthy effort that should go in the records.","D&#39;autres commentaires, l&#39;effort remarquable qui devrait aller dans les dossiers."
@@ -288,20 +289,20 @@
 Automatically extract Leads from a mail box e.g.,Extraire automatiquement des prospects à partir d'une boîte aux lettres par exemple
 Automatically updated via Stock Entry of type Manufacture/Repack,Automatiquement mis à jour via l&#39;entrée de fabrication de type Stock / Repack
 Automotive,automobile
-Autoreply when a new mail is received,Autoreply quand un nouveau message est reçu
+Autoreply when a new mail is received,Réponse automatique lorsqu'un nouveau message est reçu
 Available,disponible
 Available Qty at Warehouse,Qté disponible à l&#39;entrepôt
 Available Stock for Packing Items,Disponible en stock pour l&#39;emballage Articles
 "Available in BOM, Delivery Note, Purchase Invoice, Production Order, Purchase Order, Purchase Receipt, Sales Invoice, Sales Order, Stock Entry, Timesheet","Disponible en nomenclature , bon de livraison , facture d'achat , ordre de production, bon de commande , bon de réception , la facture de vente , Sales Order , Stock entrée , des feuilles de temps"
-Average Age,moyen âge
-Average Commission Rate,Taux moyen Commission
-Average Discount,D&#39;actualisation moyen
-Awesome Products,"Pour suivre le nom de la marque dans la note qui suit documents de livraison , Opportunité , Demande de Matériel , article , bon de commande, bon d'achat, l'acheteur réception , offre , facture de vente , ventes BOM , Sales Order , No de série"
-Awesome Services,Restrictions d'autorisation de l'utilisateur
-BOM Detail No,Détail BOM Non
+Average Age,âge moyen
+Average Commission Rate,Taux moyen de la commission
+Average Discount,Remise moyenne
+Awesome Products,Produits impressionnants
+Awesome Services,Services impressionnants
+BOM Detail No,Numéro du détail BOM
 BOM Explosion Item,Article éclatement de la nomenclature
 BOM Item,Article BOM
-BOM No,Aucune nomenclature
+BOM No,Numéro BOM
 BOM No. for a Finished Good Item,N ° nomenclature pour un produit fini Bonne
 BOM Operation,Opération BOM
 BOM Operations,Opérations de nomenclature
@@ -314,50 +315,50 @@
 BOM {0} is not active or not submitted,Eléments requis
 BOM {0} is not submitted or inactive BOM for Item {1},BOM {0} n'est pas soumis ou inactif nomenclature pour objet {1}
 Backup Manager,Gestionnaire de sauvegarde
-Backup Right Now,Sauvegarde Right Now
+Backup Right Now,Sauvegarder immédiatement
 Backups will be uploaded to,Les sauvegardes seront téléchargées sur
-Balance Qty,solde Quantité
-Balance Sheet,Fournisseur Type maître .
-Balance Value,Valeur de balance
-Balance for Account {0} must always be {1},Point {0} avec Serial Non {1} est déjà installé
-Balance must be,avec des grands livres
-"Balances of Accounts of type ""Bank"" or ""Cash""",Date de vieillissement est obligatoire pour l'ouverture d'entrée
+Balance Qty,Qté soldée
+Balance Sheet,Bilan
+Balance Value,Valeur du solde
+Balance for Account {0} must always be {1},Solde pour le compte {0} doit toujours être {1}
+Balance must be,Solde doit être
+"Balances of Accounts of type ""Bank"" or ""Cash""","Solde du compte de type ""Banque"" ou ""Espèces"""
 Bank,Banque
-Bank / Cash Account,Banque / Compte de trésorerie
-Bank A/C No.,Bank A / C No.
+Bank / Cash Account,Compte en Banque / trésorerie
+Bank A/C No.,No. de compte bancaire
 Bank Account,Compte bancaire
-Bank Account No.,N ° de compte bancaire
+Bank Account No.,No. de compte bancaire
 Bank Accounts,Comptes bancaires
-Bank Clearance Summary,Banque Résumé de dégagement
+Bank Clearance Summary,Résumé de l'approbation de la banque
 Bank Draft,Projet de la Banque
 Bank Name,Nom de la banque
-Bank Overdraft Account,Inspection de la qualité requise pour objet {0}
+Bank Overdraft Account,Compte du découvert bancaire
 Bank Reconciliation,Rapprochement bancaire
-Bank Reconciliation Detail,Détail de rapprochement bancaire
-Bank Reconciliation Statement,État de rapprochement bancaire
-Bank Voucher,Bon Banque
-Bank/Cash Balance,Banque / Balance trésorerie
-Banking,bancaire
+Bank Reconciliation Detail,Détail du rapprochement bancaire
+Bank Reconciliation Statement,Énoncé de rapprochement bancaire
+Bank Voucher,Coupon de la banque
+Bank/Cash Balance,Solde de la banque / trésorerie
+Banking,Bancaire
 Barcode,Barcode
-Barcode {0} already used in Item {1},Lettre d'information a déjà été envoyé
+Barcode {0} already used in Item {1},Le code barre {0} est déjà utilisé dans l'article {1}
 Based On,Basé sur
 Basic,de base
 Basic Info,Informations de base
 Basic Information,Renseignements de base
 Basic Rate,Taux de base
-Basic Rate (Company Currency),Taux de base (Société Monnaie)
+Basic Rate (Company Currency),Taux de base (Monnaie de la Société )
 Batch,Lot
-Batch (lot) of an Item.,Batch (lot) d&#39;un élément.
-Batch Finished Date,Date de lot fini
-Batch ID,ID du lot
-Batch No,Aucun lot
-Batch Started Date,Date de démarrage du lot
+Batch (lot) of an Item.,Lot d'une article.
+Batch Finished Date,La date finie d'un lot
+Batch ID,Identifiant du lot
+Batch No,Numéro du lot
+Batch Started Date,Date de début du lot
 Batch Time Logs for billing.,Temps de lots des journaux pour la facturation.
 Batch-Wise Balance History,Discontinu Histoire de la balance
 Batched for Billing,Par lots pour la facturation
 Better Prospects,De meilleures perspectives
-Bill Date,Bill Date
-Bill No,Le projet de loi no
+Bill Date,Date de la facture
+Bill No,Numéro de la facture
 Bill No {0} already booked in Purchase Invoice {1},Centre de coûts de transactions existants ne peut pas être converti en livre
 Bill of Material,De la valeur doit être inférieure à la valeur à la ligne {0}
 Bill of Material to be considered for manufacturing,Bill of Material être considéré pour la fabrication
@@ -386,22 +387,22 @@
 Box,boîte
 Branch,Branche
 Brand,Marque
-Brand Name,Nom de marque
+Brand Name,La marque
 Brand master.,Marque maître.
 Brands,Marques
 Breakdown,Panne
-Broadcasting,radiodiffusion
+Broadcasting,Diffusion
 Brokerage,courtage
 Budget,Budget
 Budget Allocated,Budget alloué
 Budget Detail,Détail du budget
 Budget Details,Détails du budget
 Budget Distribution,Répartition du budget
-Budget Distribution Detail,Détail Répartition du budget
+Budget Distribution Detail,Détail de la répartition du budget
 Budget Distribution Details,Détails de la répartition du budget
-Budget Variance Report,Rapport sur les écarts de budget
+Budget Variance Report,Rapport sur les écarts du budget
 Budget cannot be set for Group Cost Centers,Imprimer et stationnaire
-Build Report,construire Rapport
+Build Report,Créer un rapport
 Bundle items at time of sale.,Regrouper des envois au moment de la vente.
 Business Development Manager,Directeur du développement des affaires
 Buying,Achat
@@ -501,7 +502,7 @@
 Cheque Number,Numéro de chèque
 Child account exists for this account. You can not delete this account.,Les matières premières ne peut pas être le même que l'article principal
 City,Ville
-City/Town,Ville /
+City/Town,Ville
 Claim Amount,Montant réclamé
 Claims for company expense.,Les réclamations pour frais de la société.
 Class / Percentage,Classe / Pourcentage
@@ -561,11 +562,11 @@
 Complete Setup,congé de maladie
 Completed,Terminé
 Completed Production Orders,Terminé les ordres de fabrication
-Completed Qty,Complété Quantité
+Completed Qty,Quantité complétée
 Completion Date,Date d&#39;achèvement
 Completion Status,L&#39;état d&#39;achèvement
 Computer,ordinateur
-Computers,Informatique
+Computers,Ordinateurs
 Confirmation Date,date de confirmation
 Confirmed orders from Customers.,Confirmé commandes provenant de clients.
 Consider Tax or Charge for,Prenons l&#39;impôt ou charge pour
@@ -715,7 +716,7 @@
 DN Detail,Détail DN
 Daily,Quotidien
 Daily Time Log Summary,Daily Time Sommaire du journal
-Database Folder ID,Database ID du dossier
+Database Folder ID,Identifiant du dossier de la base de données
 Database of potential customers.,Base de données de clients potentiels.
 Date,Date
 Date Format,Format de date
@@ -745,7 +746,7 @@
 Default,Par défaut
 Default Account,Compte par défaut
 Default Address Template cannot be deleted,Adresse par défaut modèle ne peut pas être supprimé
-Default Amount,Montant en défaut
+Default Amount,Montant par défaut
 Default BOM,Nomenclature par défaut
 Default Bank / Cash account will be automatically updated in POS Invoice when this mode is selected.,Par défaut Banque / argent compte sera automatiquement mis à jour dans la facture POS lorsque ce mode est sélectionné.
 Default Bank Account,Compte bancaire par défaut
@@ -779,18 +780,18 @@
 Default settings for stock transactions.,minute
 Defense,défense
 "Define Budget for this Cost Center. To set budget action, see <a href=""#!List/Company"">Company Master</a>","Définir le budget pour ce centre de coûts. Pour définir l&#39;action budgétaire, voir <a href=""#!List/Company"">Maître Société</a>"
-Del,Eff
-Delete,Effacer
+Del,Suppr
+Delete,Supprimer
 Delete {0} {1}?,Supprimer {0} {1} ?
 Delivered,Livré
-Delivered Items To Be Billed,Les articles livrés être facturé
+Delivered Items To Be Billed,Les items livrés à être facturés
 Delivered Qty,Qté livrée
 Delivered Serial No {0} cannot be deleted,médical
 Delivery Date,Date de livraison
 Delivery Details,Détails de la livraison
 Delivery Document No,Pas de livraison de documents
 Delivery Document Type,Type de document de livraison
-Delivery Note,Remarque livraison
+Delivery Note,Bon de livraison
 Delivery Note Item,Point de Livraison
 Delivery Note Items,Articles bordereau de livraison
 Delivery Note Message,Note Message de livraison
@@ -800,9 +801,9 @@
 Delivery Note {0} is not submitted,Livraison Remarque {0} n'est pas soumis
 Delivery Note {0} must not be submitted,Pas de clients ou fournisseurs Comptes trouvé
 Delivery Notes {0} must be cancelled before cancelling this Sales Order,Quantité en ligne {0} ( {1} ) doit être la même que la quantité fabriquée {2}
-Delivery Status,Delivery Status
-Delivery Time,Délai de livraison
-Delivery To,Pour livraison
+Delivery Status,Statut de la livraison
+Delivery Time,L'heure de la livraison
+Delivery To,Livrer à
 Department,Département
 Department Stores,Grands Magasins
 Depends on LWP,Dépend de LWP
@@ -822,8 +823,8 @@
 Disable,"Groupe ajoutée, rafraîchissant ..."
 Disable Rounded Total,Désactiver totale arrondie
 Disabled,Handicapé
-Discount  %,% De réduction
-Discount %,% De réduction
+Discount  %,% Remise
+Discount %,% Remise
 Discount (%),Remise (%)
 Discount Amount,S'il vous plaît tirer des articles de livraison Note
 "Discount Fields will be available in Purchase Order, Purchase Receipt, Purchase Invoice","Les champs d&#39;actualisation sera disponible en commande, reçu d&#39;achat, facture d&#39;achat"
@@ -1464,8 +1465,8 @@
 Journal Vouchers {0} are un-linked,Date de livraison prévue ne peut pas être avant ventes Date de commande
 Keep a track of communication related to this enquiry which will help for future reference.,Gardez une trace de la communication liée à cette enquête qui aidera pour référence future.
 Keep it web friendly 900px (w) by 100px (h),Gardez web 900px amical ( w) par 100px ( h )
-Key Performance Area,Zone de performance clé
-Key Responsibility Area,Secteur de responsabilité clé
+Key Performance Area,Section de performance clé
+Key Responsibility Area,Section à responsabilité importante
 Kg,kg
 LR Date,LR Date
 LR No,LR Non
@@ -1723,9 +1724,9 @@
 Net Weight of each Item,Poids net de chaque article
 Net pay cannot be negative,Landed Cost correctement mis à jour
 Never,Jamais
-New ,
+New ,Nouveau
 New Account,nouveau compte
-New Account Name,Nouveau compte Nom
+New Account Name,Nom du nouveau compte
 New BOM,Nouvelle nomenclature
 New Communications,Communications Nouveau-
 New Company,nouvelle entreprise
@@ -1761,11 +1762,11 @@
 Next,Nombre purchse de commande requis pour objet {0}
 Next Contact By,Suivant Par
 Next Contact Date,Date Contact Suivant
-Next Date,Date d&#39;
+Next Date,Date suivante
 Next email will be sent on:,Email sera envoyé le:
-No,Aucun
+No,Non
 No Customer Accounts found.,Aucun client ne représente trouvés.
-No Customer or Supplier Accounts found,Encaisse
+No Customer or Supplier Accounts found,Aucun compte client ou fournisseur trouvé
 No Expense Approvers. Please assign 'Expense Approver' Role to atleast one user,Compte {0} est inactif
 No Item with Barcode {0},Bon de commande {0} ' arrêté '
 No Item with Serial No {0},non autorisé
@@ -1775,13 +1776,13 @@
 No Production Orders created,Section de base
 No Supplier Accounts found. Supplier Accounts are identified based on 'Master Type' value in account record.,Aucun fournisseur ne représente trouvés. Comptes fournisseurs sont identifiés sur la base de la valeur «Maître Type ' dans le compte rendu.
 No accounting entries for the following warehouses,Pas d'entrées comptables pour les entrepôts suivants
-No addresses created,Aucune adresse créés
+No addresses created,Aucune adresse créée
 No contacts created,Pas de contacts créés
 No default Address Template found. Please create a new one from Setup > Printing and Branding > Address Template.,Aucune valeur par défaut Adresse modèle trouvé. S'il vous plaît créer un nouveau à partir de Configuration> Presse et Branding> Adresse modèle.
 No default BOM exists for Item {0},services impressionnants
 No description given,Le jour (s ) sur lequel vous postulez pour congé sont les vacances . Vous n'avez pas besoin de demander l'autorisation .
-No employee found,Aucun employé
-No employee found!,Aucun employé !
+No employee found,Aucun employé trouvé
+No employee found!,Aucun employé trouvé!
 No of Requested SMS,Pas de SMS demandés
 No of Sent SMS,Pas de SMS envoyés
 No of Visits,Pas de visites
@@ -1816,14 +1817,14 @@
 Note: {0},Compte avec des nœuds enfants ne peut pas être converti en livre
 Notes,Remarques
 Notes:,notes:
-Nothing to request,Rien à demander
+Nothing to request,Pas de requête à demander
 Notice (days),Avis ( jours )
 Notification Control,Contrôle de notification
 Notification Email Address,Adresse e-mail de notification
 Notify by Email on creation of automatic Material Request,Notification par courriel lors de la création de la demande de matériel automatique
 Number Format,Format numérique
-Offer Date,offre date
-Office,Fonction
+Offer Date,Date de l'offre
+Office,Bureau
 Office Equipments,Équipement de bureau
 Office Maintenance Expenses,Date d'adhésion doit être supérieure à Date de naissance
 Office Rent,POS Global Setting {0} déjà créé pour la compagnie {1}
@@ -1970,7 +1971,7 @@
 Payments received during the digest period,Les paiements reçus au cours de la période digest
 Payroll Settings,Paramètres de la paie
 Pending,En attendant
-Pending Amount,Montant attente
+Pending Amount,Montant en attente
 Pending Items {0} updated,Machines et installations
 Pending Review,Attente d&#39;examen
 Pending SO Items For Purchase Request,"Articles en attente Donc, pour demande d&#39;achat"
@@ -2097,11 +2098,11 @@
 Please setup Employee Naming System in Human Resource > HR Settings,S&#39;il vous plaît configuration Naming System employés en ressources humaines&gt; Paramètres RH
 Please setup numbering series for Attendance via Setup > Numbering Series,S'il vous plaît configuration série de numérotation à la fréquentation via Configuration> Série de numérotation
 Please setup your chart of accounts before you start Accounting Entries,S'il vous plaît configurer votre plan de comptes avant de commencer Écritures comptables
-Please specify,S&#39;il vous plaît spécifier
+Please specify,Veuillez spécifier
 Please specify Company,S&#39;il vous plaît préciser Company
 Please specify Company to proceed,Veuillez indiquer Société de procéder
 Please specify Default Currency in Company Master and Global Defaults,N ° de série {0} n'existe pas
-Please specify a,S&#39;il vous plaît spécifier une
+Please specify a,Veuillez spécifier un
 Please specify a valid 'From Case No.',S&#39;il vous plaît indiquer une valide »De Affaire n &#39;
 Please specify a valid Row ID for {0} in row {1},Il s'agit d'un site d'exemple généré automatiquement à partir de ERPNext
 Please specify either Quantity or Valuation Rate or both,S'il vous plaît spécifier Quantité ou l'évaluation des taux ou à la fois
@@ -2205,7 +2206,7 @@
 Pull sales orders (pending to deliver) based on the above criteria,Tirez les ordres de vente (en attendant de livrer) sur la base des critères ci-dessus
 Purchase,Acheter
 Purchase / Manufacture Details,Achat / Fabrication Détails
-Purchase Analytics,Achat Analytics
+Purchase Analytics,Les analyses des achats
 Purchase Common,Achat commune
 Purchase Details,Conditions de souscription
 Purchase Discounts,Rabais sur l&#39;achat
@@ -2256,7 +2257,7 @@
 Qty as per Stock UOM,Qté en stock pour Emballage
 Qty to Deliver,Quantité à livrer
 Qty to Order,Quantité à commander
-Qty to Receive,Quantité pour recevoir
+Qty to Receive,Quantité à recevoir
 Qty to Transfer,Quantité de Transfert
 Qualification,Qualification
 Quality,Qualité
@@ -2278,11 +2279,11 @@
 Quarter,Trimestre
 Quarterly,Trimestriel
 Quick Help,Aide rapide
-Quotation,Citation
+Quotation,Devis
 Quotation Item,Article devis
 Quotation Items,Articles de devis
 Quotation Lost Reason,Devis perdu la raison
-Quotation Message,Devis message
+Quotation Message,Message du devis
 Quotation To,Devis Pour
 Quotation Trends,Devis Tendances
 Quotation {0} is cancelled,Devis {0} est annulée
@@ -2296,8 +2297,8 @@
 Range,Gamme
 Rate,Taux
 Rate ,Taux
-Rate (%),S'il vous plaît entrer la date soulager .
-Rate (Company Currency),Taux (Société Monnaie)
+Rate (%),Taux (%)
+Rate (Company Currency),Taux (Monnaie de la société)
 Rate Of Materials Based On,Taux de matériaux à base
 Rate and Amount,Taux et le montant
 Rate at which Customer Currency is converted to customer's base currency,Vitesse à laquelle la devise du client est converti en devise de base du client
@@ -2318,15 +2319,15 @@
 Re-order Qty,Re-order Quantité
 Read,Lire
 Reading 1,Lecture 1
-Reading 10,Lecture le 10
+Reading 10,Lecture 10
 Reading 2,Lecture 2
 Reading 3,Reading 3
 Reading 4,Reading 4
 Reading 5,Reading 5
 Reading 6,Lecture 6
-Reading 7,Lecture le 7
+Reading 7,Lecture 7
 Reading 8,Lecture 8
-Reading 9,Lectures suggérées 9
+Reading 9,Lecture 9
 Real Estate,Immobilier
 Reason,Raison
 Reason for Leaving,Raison du départ
@@ -2345,7 +2346,7 @@
 Receiver List,Liste des récepteurs
 Receiver List is empty. Please create Receiver List,Soit quantité de cible ou le montant cible est obligatoire .
 Receiver Parameter,Paramètre récepteur
-Recipients,Récipiendaires
+Recipients,Destinataires
 Reconcile,réconcilier
 Reconciliation Data,Données de réconciliation
 Reconciliation HTML,Réconciliation HTML
@@ -2383,7 +2384,7 @@
 Remarks Custom,Remarques sur commande
 Rename,rebaptiser
 Rename Log,Renommez identifiez-vous
-Rename Tool,Renommer l&#39;outil
+Rename Tool,Outils de renommage
 Rent Cost,louer coût
 Rent per hour,Louer par heure
 Rented,Loué
@@ -2419,8 +2420,8 @@
 Reserved,réservé
 Reserved Qty,Quantité réservés
 "Reserved Qty: Quantity ordered for sale, but not delivered.","Réservés Quantité: Quantité de commande pour la vente , mais pas livré ."
-Reserved Quantity,Quantité réservés
-Reserved Warehouse,Réservé Entrepôt
+Reserved Quantity,Quantité réservée
+Reserved Warehouse,Entrepôt réservé 
 Reserved Warehouse in Sales Order / Finished Goods Warehouse,Entrepôt réservé à des commandes clients / entrepôt de produits finis
 Reserved Warehouse is missing in Sales Order,Réservé entrepôt est manquant dans l&#39;ordre des ventes
 Reserved Warehouse required for stock Item {0} in row {1},Centre de coûts par défaut de vente
@@ -3158,8 +3159,8 @@
 Walk In,Walk In
 Warehouse,entrepôt
 Warehouse Contact Info,Entrepôt Info Contact
-Warehouse Detail,Détail d&#39;entrepôt
-Warehouse Name,Nom d&#39;entrepôt
+Warehouse Detail,Détail de l'entrepôt
+Warehouse Name,Nom de l'entrepôt
 Warehouse and Reference,Entrepôt et référence
 Warehouse can not be deleted as stock ledger entry exists for this warehouse.,Descendre : {0}
 Warehouse can only be changed via Stock Entry / Delivery Note / Purchase Receipt,Entrepôt ne peut être modifié via Stock Entrée / bon de livraison / reçu d'achat
@@ -3177,15 +3178,15 @@
 Warehouse-Wise Stock Balance,Warehouse-Wise Stock Solde
 Warehouse-wise Item Reorder,Warehouse-sage Réorganiser article
 Warehouses,Entrepôts
-Warehouses.,applicable
+Warehouses.,Entrepôts.
 Warn,Avertir
 Warning: Leave application contains following block dates,Attention: la demande d&#39;autorisation contient les dates de blocs suivants
 Warning: Material Requested Qty is less than Minimum Order Qty,Attention: Matériel requis Quantité est inférieure Quantité minimum à commander
 Warning: Sales Order {0} already exists against same Purchase Order number,S'il vous plaît vérifier ' Est Advance' contre compte {0} si c'est une entrée avance .
 Warning: System will not check overbilling since amount for Item {0} in {1} is zero,Attention : Le système ne vérifie pas la surfacturation depuis montant pour objet {0} dans {1} est nulle
-Warranty / AMC Details,Garantie / AMC Détails
-Warranty / AMC Status,Garantie / AMC Statut
-Warranty Expiry Date,Date d&#39;expiration de garantie
+Warranty / AMC Details,Garantie / Détails AMC
+Warranty / AMC Status,Garantie / Statut AMC
+Warranty Expiry Date,Date d'expiration de la garantie
 Warranty Period (Days),Période de garantie (jours)
 Warranty Period (in days),Période de garantie (en jours)
 We buy this Item,Nous achetons cet article
@@ -3237,7 +3238,7 @@
 Write Off Voucher,Ecrire Off Bon
 Wrong Template: Unable to find head row.,Modèle tort: ​​Impossible de trouver la ligne de tête.
 Year,Année
-Year Closed,L&#39;année Fermé
+Year Closed,L'année est fermée
 Year End Date,Fin de l'exercice Date de
 Year Name,Nom Année
 Year Start Date,Date de début Année
@@ -3329,3 +3330,49 @@
 {0} {1} status is Unstopped,Vous ne pouvez pas reporter le numéro de rangée supérieure ou égale à numéro de la ligne actuelle pour ce type de charge
 {0} {1}: Cost Center is mandatory for Item {2},{0} {1}: Centre de coûts est obligatoire pour objet {2}
 {0}: {1} not found in Invoice Details table,{0}: {1} ne trouve pas dans la table Détails de la facture
+"<a href=""#Sales Browser/Customer Group"">Add / Edit</a>","<a href=""#Sales Browser/Customer Group""> Ajouter / Modifier < / a>"
+"<a href=""#Sales Browser/Territory"">Add / Edit</a>","<a href=""#Sales Browser/Territory""> Ajouter / Modifier < / a>"
+Billed,Facturé
+Company,Entreprise
+Currency is required for Price List {0},{0} est obligatoire
+Default Customer Group,Groupe de clients par défaut
+Default Territory,Territoire défaut
+Delivered,Livré
+Enable Shopping Cart,Activer Panier
+Go ahead and add something to your cart.,Allez-y et ajouter quelque chose à votre panier.
+Hey! Go ahead and add an address,Hé ! Allez-y et ajoutez une adresse
+Invalid Billing Address,"Pour exécuter un test ajouter le nom du module dans la route après '{0}' . Par exemple, {1}"
+Invalid Shipping Address,effondrement
+Missing Currency Exchange Rates for {0},Vider le cache
+Name is required,Le nom est obligatoire
+Not Allowed,"Groupe ajoutée, rafraîchissant ..."
+Paid,payé
+Partially Billed,partiellement Facturé
+Partially Delivered,Livré partiellement
+Please specify a Price List which is valid for Territory,S&#39;il vous plaît spécifier une liste de prix qui est valable pour le territoire
+Please specify currency in Company,S&#39;il vous plaît préciser la devise dans la société
+Please write something,S'il vous plaît écrire quelque chose
+Please write something in subject and message!,S'il vous plaît écrire quelque chose dans le thème et le message !
+Price List,Liste des Prix
+Price List not configured.,Liste des prix non configuré.
+Quotation Series,Série de devis
+Shipping Rule,Livraison règle
+Shopping Cart,Panier
+Shopping Cart Price List,Panier Liste des prix
+Shopping Cart Price Lists,Panier Liste des prix
+Shopping Cart Settings,Panier Paramètres
+Shopping Cart Shipping Rule,Panier Livraison règle
+Shopping Cart Shipping Rules,Panier Règles d&#39;expédition
+Shopping Cart Taxes and Charges Master,Panier taxes et redevances Maître
+Shopping Cart Taxes and Charges Masters,Panier Taxes et frais de maîtrise
+Something went wrong!,Quelque chose s'est mal passé!
+Something went wrong.,Une erreur est survenue.
+Tax Master,Maître d&#39;impôt
+To Pay,à payer
+Updated,Mise à jour
+You are not allowed to reply to this ticket.,Vous n'êtes pas autorisé à répondre à ce billet .
+You need to be logged in to view your cart.,Vous devez être connecté pour voir votre panier.
+You need to enable Shopping Cart,Poster n'existe pas . S'il vous plaît ajoutez poste !
+{0} cannot be purchased using Shopping Cart,Envoyer permanence {0} ?
+{0} is required,{0} ne peut pas être acheté en utilisant Panier
+{0} {1} has a common territory {2},Alternative lien de téléchargement
diff --git a/erpnext/translations/hi.csv b/erpnext/translations/hi.csv
index 63e2323..b9b64fe 100644
--- a/erpnext/translations/hi.csv
+++ b/erpnext/translations/hi.csv
@@ -38,30 +38,30 @@
 A Customer exists with same name,यह नाम से दूसरा ग्राहक मौजूद हैं
 A Lead with this email id should exist,इस ईमेल आईडी के साथ एक लीड मौजूद होना चाहिए
 A Product or Service,उत्पाद या सेवा
-A Supplier exists with same name,सप्लायर एक ही नाम के साथ मौजूद है
-A symbol for this currency. For e.g. $,इस मुद्रा के लिए एक प्रतीक है. उदाहरण के लिए $
+A Supplier exists with same name,यह नाम से दूसरा आपूर्तिकर्ता मौजूद है 
+A symbol for this currency. For e.g. $,इस मुद्रा के लिए एक प्रतीक. उदाहरण के लिए $
 AMC Expiry Date,एएमसी समाप्ति तिथि
-Abbr,Abbr
-Abbreviation cannot have more than 5 characters,संक्षिप्त 5 से अधिक वर्ण नहीं हो सकता
-Above Value,मूल्य से ऊपर
+Abbr,संक्षिप्त
+Abbreviation cannot have more than 5 characters,संक्षिप्त 5 से अधिक वर्ण की नहीं हो सकती
+Above Value,ऊपर मूल्य
 Absent,अनुपस्थित
-Acceptance Criteria,स्वीकृति मानदंड
+Acceptance Criteria,स्वीकृति मापदंड
 Accepted,स्वीकार किया
 Accepted + Rejected Qty must be equal to Received quantity for Item {0},स्वीकृत + अस्वीकृत मात्रा मद के लिए प्राप्त मात्रा के बराबर होना चाहिए {0}
 Accepted Quantity,स्वीकार किए जाते हैं मात्रा
-Accepted Warehouse,स्वीकार किए जाते हैं वेअरहाउस
+Accepted Warehouse,स्वीकार किए जाते हैं गोदाम
 Account,खाता
-Account Balance,खाता शेष
-Account Created: {0},खाता बनाया : {0}
+Account Balance,खाते की शेष राशि
+Account Created: {0},खाता बन गया : {0}
 Account Details,खाता विवरण
 Account Head,लेखाशीर्ष
 Account Name,खाते का नाम
 Account Type,खाता प्रकार
-"Account balance already in Credit, you are not allowed to set 'Balance Must Be' as 'Debit'","खाता शेष राशि पहले से ही क्रेडिट में, आप सेट करने की अनुमति नहीं है 'डेबिट' के रूप में 'बैलेंस होना चाहिए'"
-"Account balance already in Debit, you are not allowed to set 'Balance Must Be' as 'Credit'","पहले से ही डेबिट में खाता शेष, आप के रूप में 'क्रेडिट' 'बैलेंस होना चाहिए' स्थापित करने के लिए अनुमति नहीं है"
+"Account balance already in Credit, you are not allowed to set 'Balance Must Be' as 'Debit'","खाते की शेष राशि पहले से ही क्रेडिट में है, कृपया आप शेष राशि को डेबिट के रूप में ही रखें "
+"Account balance already in Debit, you are not allowed to set 'Balance Must Be' as 'Credit'","खाते की शेष राशि पहले से ही डेबिट में है, कृपया आप शेष राशि को क्रेडिट के रूप में ही रखें"
 Account for the warehouse (Perpetual Inventory) will be created under this Account.,गोदाम ( सदा सूची ) के लिए खाते में इस खाते के तहत बनाया जाएगा .
-Account head {0} created,लेखा शीर्ष {0} बनाया
-Account must be a balance sheet account,खाता एक वित्तीय स्थिति विवरण खाता होना चाहिए
+Account head {0} created,लेखाशीर्ष {0} बनाया
+Account must be a balance sheet account,खाता एक वित्तीय स्थिति विवरण का खाता होना चाहिए
 Account with child nodes cannot be converted to ledger,बच्चे नोड्स के साथ खाता लेजर को परिवर्तित नहीं किया जा सकता है
 Account with existing transaction can not be converted to group.,मौजूदा लेन - देन के साथ खाता समूह को नहीं बदला जा सकता .
 Account with existing transaction can not be deleted,मौजूदा लेन - देन के साथ खाता हटाया नहीं जा सकता
@@ -3329,3 +3329,49 @@
 {0} {1} status is Unstopped,{0} {1} स्थिति unstopped है
 {0} {1}: Cost Center is mandatory for Item {2},{0} {1}: लागत केंद्र मद के लिए अनिवार्य है {2}
 {0}: {1} not found in Invoice Details table,{0} {1} चालान विवरण तालिका में नहीं मिला
+"<a href=""#Sales Browser/Customer Group"">Add / Edit</a>","<a href=""#Sales Browser/Customer Group""> जोड़ें / संपादित करें </ a >"
+"<a href=""#Sales Browser/Territory"">Add / Edit</a>","<a href=""#Sales Browser/Territory""> जोड़ें / संपादित करें </ a >"
+Billed,का बिल
+Company,कंपनी
+Currency is required for Price List {0},मुद्रा मूल्य सूची के लिए आवश्यक है {0}
+Default Customer Group,डिफ़ॉल्ट ग्राहक समूह
+Default Territory,Default टेरिटरी
+Delivered,दिया गया
+Enable Shopping Cart,शॉपिंग कार्ट सक्षम करें
+Go ahead and add something to your cart.,आगे बढ़ो और अपनी गाड़ी को कुछ जोड़ सकते.
+Hey! Go ahead and add an address,अरे! आगे बढ़ो और एक पते जोड़
+Invalid Billing Address,अवैध बिलिंग पता
+Invalid Shipping Address,अवैध शिपिंग पता
+Missing Currency Exchange Rates for {0},के लिए मुद्रा विनिमय दरें गुम {0}
+Name is required,नाम आवश्यक है
+Not Allowed,अनुमति नहीं
+Paid,प्रदत्त
+Partially Billed,आंशिक रूप से बिल
+Partially Delivered,आंशिक रूप से वितरित
+Please specify a Price List which is valid for Territory,राज्य क्षेत्र के लिए मान्य है जो एक मूल्य सूची निर्दिष्ट करें
+Please specify currency in Company,कंपनी में मुद्रा निर्दिष्ट करें
+Please write something,कुछ लिखें
+Please write something in subject and message!,विषय और संदेश में कुछ लिखने के लिए धन्यवाद !
+Price List,कीमत सूची
+Price List not configured.,मूल्य सूची कॉन्फ़िगर नहीं.
+Quotation Series,कोटेशन सीरीज
+Shipping Rule,नौवहन नियम
+Shopping Cart,खरीदारी की टोकरी
+Shopping Cart Price List,शॉपिंग कार्ट में मूल्य सूची
+Shopping Cart Price Lists,शॉपिंग कार्ट में मूल्य सूची
+Shopping Cart Settings,शॉपिंग कार्ट सेटिंग्स
+Shopping Cart Shipping Rule,शॉपिंग कार्ट शिपिंग नियम
+Shopping Cart Shipping Rules,शॉपिंग कार्ट शिपिंग नियम
+Shopping Cart Taxes and Charges Master,शॉपिंग कार्ट में करों और शुल्कों मास्टर
+Shopping Cart Taxes and Charges Masters,शॉपिंग कार्ट में करों और शुल्कों मास्टर्स
+Something went wrong!,कुछ गलत हो गया!
+Something went wrong.,कुछ गलत हो गया.
+Tax Master,टैक्स मास्टर
+To Pay,भुगतान करने के लिए
+Updated,अद्यतित
+You are not allowed to reply to this ticket.,आप इस टिकट का उत्तर देने की अनुमति नहीं है .
+You need to be logged in to view your cart.,आप अपनी गाड़ी को देखने के लिए लॉग इन करना होगा.
+You need to enable Shopping Cart,आप शॉपिंग कार्ट में सक्रिय करने की जरूरत
+{0} cannot be purchased using Shopping Cart,{0} शॉपिंग कार्ट का उपयोग कर खरीदा नहीं जा सकता
+{0} is required,{0} के लिए आवश्यक है
+{0} {1} has a common territory {2},{0} {1} एक सामान्य क्षेत्र है {2}
diff --git a/erpnext/translations/hr.csv b/erpnext/translations/hr.csv
index 4f5c050..70a8a90 100644
--- a/erpnext/translations/hr.csv
+++ b/erpnext/translations/hr.csv
@@ -3329,3 +3329,49 @@
 {0} {1} status is Unstopped,{0} {1} status Unstopped
 {0} {1}: Cost Center is mandatory for Item {2},{0} {1}: troška je obvezno za točku {2}
 {0}: {1} not found in Invoice Details table,{0}: {1} nije pronađen u Pojedinosti dostavnice stolu
+"<a href=""#Sales Browser/Customer Group"">Add / Edit</a>","<a href=""#Sales Browser/Customer Group""> Dodaj / Uredi < />"
+"<a href=""#Sales Browser/Territory"">Add / Edit</a>","<a href=""#Sales Browser/Territory""> Dodaj / Uredi < />"
+Billed,Naplaćeno
+Company,Društvo
+Currency is required for Price List {0},Valuta je potrebno za Cjenika {0}
+Default Customer Group,Zadani Korisnik Grupa
+Default Territory,Zadani Regija
+Delivered,Isporučena
+Enable Shopping Cart,Omogućite Košarica
+Go ahead and add something to your cart.,Ići naprijed i dodati nešto u košaricu.
+Hey! Go ahead and add an address,Hej! Ići naprijed i dodati adresu
+Invalid Billing Address,Pogrešna adresa naplate
+Invalid Shipping Address,Invalid Dostava Adresa
+Missing Currency Exchange Rates for {0},Nedostaje Tečajne stope za {0}
+Name is required,Ime je potrebno
+Not Allowed,Not Allowed
+Paid,plaćen
+Partially Billed,djelomično Naplaćeno
+Partially Delivered,djelomično Isporučeno
+Please specify a Price List which is valid for Territory,Navedite cjenik koji vrijedi za teritoriju
+Please specify currency in Company,Navedite valutu u Društvu
+Please write something,Molimo napisati nešto
+Please write something in subject and message!,Molimo napisati nešto u temi i poruke !
+Price List,Cjenik
+Price List not configured.,Popis Cijena nije konfiguriran.
+Quotation Series,Ponuda Serija
+Shipping Rule,Dostava Pravilo
+Shopping Cart,Košarica
+Shopping Cart Price List,Košarica Cjenik
+Shopping Cart Price Lists,Košarica cjenike
+Shopping Cart Settings,Košarica Postavke
+Shopping Cart Shipping Rule,Košarica Dostava Pravilo
+Shopping Cart Shipping Rules,Košarica Dostava Pravila
+Shopping Cart Taxes and Charges Master,Košarica poreze i troškove Master
+Shopping Cart Taxes and Charges Masters,Košarica Porezi i naknade Masters
+Something went wrong!,Nešto je pošlo po krivu!
+Something went wrong.,Nešto je pošlo po zlu.
+Tax Master,Porezna Master
+To Pay,platiti
+Updated,Obnovljeno
+You are not allowed to reply to this ticket.,Vi ne smijete odgovoriti na ovu kartu.
+You need to be logged in to view your cart.,Morate biti prijavljeni da biste vidjeli svoju košaricu.
+You need to enable Shopping Cart,Morate omogućiti Košarica
+{0} cannot be purchased using Shopping Cart,{0} ne može se kupiti pomoću Košarica
+{0} is required,{0} je potrebno
+{0} {1} has a common territory {2},{0} {1} ima zajednički teritorij {2}
diff --git a/erpnext/translations/id.csv b/erpnext/translations/id.csv
index 7cb67de..025baa0 100644
--- a/erpnext/translations/id.csv
+++ b/erpnext/translations/id.csv
@@ -37,9 +37,9 @@
 A Customer Group exists with same name please change the Customer name or rename the Customer Group,"Sebuah Kelompok Pelanggan ada dengan nama yang sama, silakan mengubah nama Nasabah atau mengubah nama Grup Pelanggan"
 A Customer exists with same name,Nasabah ada dengan nama yang sama
 A Lead with this email id should exist,Sebuah Lead dengan id email ini harus ada
-A Product or Service,Sebuah Produk atau Jasa
-A Supplier exists with same name,Sebuah Pemasok ada dengan nama yang sama
-A symbol for this currency. For e.g. $,Sebuah simbol untuk mata uang ini. Untuk misalnya $
+A Product or Service,Produk atau Jasa
+A Supplier exists with same name,Pemasok dengan nama yang sama sudah terdaftar
+A symbol for this currency. For e.g. $,Simbol untuk mata uang ini. Contoh $
 AMC Expiry Date,AMC Tanggal Berakhir
 Abbr,Abbr
 Abbreviation cannot have more than 5 characters,Singkatan tak bisa memiliki lebih dari 5 karakter
@@ -3329,3 +3329,49 @@
 {0} {1} status is Unstopped,{0} {1} status unstopped
 {0} {1}: Cost Center is mandatory for Item {2},{0} {1}: Biaya Pusat adalah wajib untuk Item {2}
 {0}: {1} not found in Invoice Details table,{0}: {1} tidak ditemukan dalam Faktur Rincian table
+"<a href=""#Sales Browser/Customer Group"">Add / Edit</a>","<a href=""#Sales Browser/Customer Group""> Add / Edit </ a>"
+"<a href=""#Sales Browser/Territory"">Add / Edit</a>","<a href=""#Sales Browser/Territory""> Tambah / Edit </ a>"
+Billed,Ditagih
+Company,Perusahaan
+Currency is required for Price List {0},Mata Uang diperlukan untuk Daftar Harga {0}
+Default Customer Group,Bawaan Pelanggan Grup
+Default Territory,Wilayah standar
+Delivered,Disampaikan
+Enable Shopping Cart,Aktifkan Keranjang Belanja
+Go ahead and add something to your cart.,Pergi ke depan dan menambahkan sesuatu ke keranjang Anda.
+Hey! Go ahead and add an address,Hei! Pergi ke depan dan menambahkan alamat
+Invalid Billing Address,Alamat Penagihan valid
+Invalid Shipping Address,Alamat Pengiriman valid
+Missing Currency Exchange Rates for {0},Hilang Kurs mata uang Tarif untuk {0}
+Name is required,Nama dibutuhkan
+Not Allowed,Tidak Diizinkan
+Paid,Terbayar
+Partially Billed,Sebagian Ditagih
+Partially Delivered,Sebagian Disampaikan
+Please specify a Price List which is valid for Territory,Tentukan Daftar Harga yang berlaku untuk Wilayah
+Please specify currency in Company,Silakan tentukan mata uang di Perusahaan
+Please write something,Silahkan menulis sesuatu
+Please write something in subject and message!,Silahkan menulis sesuatu dalam subjek dan pesan!
+Price List,Daftar Harga
+Price List not configured.,Daftar Harga belum dikonfigurasi.
+Quotation Series,Quotation Series
+Shipping Rule,Aturan Pengiriman
+Shopping Cart,Daftar Belanja
+Shopping Cart Price List,Daftar Belanja Daftar Harga
+Shopping Cart Price Lists,Daftar Harga Daftar Belanja
+Shopping Cart Settings,Pengaturan Keranjang Belanja
+Shopping Cart Shipping Rule,Belanja Pengiriman Rule
+Shopping Cart Shipping Rules,Daftar Belanja Pengiriman Aturan
+Shopping Cart Taxes and Charges Master,Pajak Keranjang Belanja dan Biaya Guru
+Shopping Cart Taxes and Charges Masters,Daftar Belanja Pajak dan Biaya Masters
+Something went wrong!,Ada yang tidak beres!
+Something went wrong.,Ada Sesuatu yang tidak beres.
+Tax Master,Guru Pajak
+To Pay,Untuk Bayar
+Updated,Diperbarui
+You are not allowed to reply to this ticket.,Anda tidak diizinkan untuk membalas tiket ini.
+You need to be logged in to view your cart.,Anda harus login untuk melihat keranjang Anda.
+You need to enable Shopping Cart,Anda harus mengaktifkan Keranjang Belanja
+{0} cannot be purchased using Shopping Cart,{0} tidak dapat dibeli dengan menggunakan Keranjang Belanja
+{0} is required,{0} diperlukan
+{0} {1} has a common territory {2},{0} {1} memiliki wilayah umum {2}
diff --git a/erpnext/translations/it.csv b/erpnext/translations/it.csv
index 6ca5f99..f59fdd6 100644
--- a/erpnext/translations/it.csv
+++ b/erpnext/translations/it.csv
@@ -3329,3 +3329,49 @@
 {0} {1} status is Unstopped,{0} {1} stato è unstopped
 {0} {1}: Cost Center is mandatory for Item {2},{0} {1}: centro di costo è obbligatoria per la voce {2}
 {0}: {1} not found in Invoice Details table,{0}: {1} non trovato in fattura tabella Dettagli
+"<a href=""#Sales Browser/Customer Group"">Add / Edit</a>","<a href=""#Sales Browser/Customer Group""> Aggiungi / Modifica < / a>"
+"<a href=""#Sales Browser/Territory"">Add / Edit</a>","<a href=""#Sales Browser/Territory""> Aggiungi / Modifica < / a>"
+Billed,Addebbitato
+Company,Azienda
+Currency is required for Price List {0},È richiesto di valuta per il listino prezzi {0}
+Default Customer Group,Gruppo Clienti Predefinito
+Default Territory,Territorio Predefinito
+Delivered,Consegnato
+Enable Shopping Cart,Abilita Carello Acquisti
+Go ahead and add something to your cart.,Vai avanti e aggiungere qualcosa al tuo carrello.
+Hey! Go ahead and add an address,Ehi! Vai avanti e aggiungere un indirizzo
+Invalid Billing Address,Valido indirizzo di fatturazione
+Invalid Shipping Address,Valido Indirizzo di spedizione
+Missing Currency Exchange Rates for {0},Manca valuta Tassi di cambio {0}
+Name is required,Il nome è obbligatorio
+Not Allowed,non sono ammessi
+Paid,pagato
+Partially Billed,parzialmente Fatturato
+Partially Delivered,parzialmente Consegnato
+Please specify a Price List which is valid for Territory,Si prega di specificare una lista di prezzi è valido per il Territorio
+Please specify currency in Company,Si prega di specificare la valuta in Azienda
+Please write something,Si prega di scrivere qualcosa
+Please write something in subject and message!,Si prega di scrivere qualcosa in oggetto e il messaggio !
+Price List,Listino Prezzi
+Price List not configured.,Prezzo di listino non è configurato.
+Quotation Series,Serie Quotazione
+Shipping Rule,Spedizione Rule
+Shopping Cart,Carrello spesa
+Shopping Cart Price List,Carrello Prezzo di listino
+Shopping Cart Price Lists,Carrello Listini
+Shopping Cart Settings,Carrello Impostazioni
+Shopping Cart Shipping Rule,Carrello Spedizioni Rule
+Shopping Cart Shipping Rules,Carrello Regole di Spedizione
+Shopping Cart Taxes and Charges Master,Carrello Tasse e Spese master
+Shopping Cart Taxes and Charges Masters,Carrello Tasse e Costi Masters
+Something went wrong!,Qualcosa è andato storto!
+Something went wrong.,Qualcosa è andato storto.
+Tax Master,Tax Maestro
+To Pay,To Pay
+Updated,Aggiornato
+You are not allowed to reply to this ticket.,Non sei autorizzato a rispondere a questo biglietto .
+You need to be logged in to view your cart.,Devi essere loggato per vedere il tuo carrello.
+You need to enable Shopping Cart,È necessario abilitare Carrello
+{0} cannot be purchased using Shopping Cart,{0} non può essere acquistato tramite Carrello
+{0} is required,{0} è richiesto
+{0} {1} has a common territory {2},{0} {1} ha un territorio comune {2}
diff --git a/erpnext/translations/ja.csv b/erpnext/translations/ja.csv
index a6e1461..e755a4a 100644
--- a/erpnext/translations/ja.csv
+++ b/erpnext/translations/ja.csv
@@ -302,7 +302,7 @@
 BOM Explosion Item,BOM爆発アイテム
 BOM Item,BOM明細
 BOM No,部品表はありません
-BOM No. for a Finished Good Item,完成品アイテムのBOM番号
+BOM No. for a Finished Good Item,完成品アイテムの部品表番号
 BOM Operation,部品表の操作
 BOM Operations,部品表の操作
 BOM Replace Tool,BOMはツールを交換してください
@@ -912,27 +912,28 @@
 Emergency Phone,緊急電話
 Employee,正社員
 Employee Birthday,従業員の誕生日
-Employee Details,社員詳細
-Employee Education,社員教育
+Employee Details,従業員詳細
+Employee Education,従業員教育
 Employee External Work History,従業外部仕事の歴史
-Employee Information,社員情報
+Employee Information,従業員情報
 Employee Internal Work History,従業員内部作業歴史
 Employee Internal Work Historys,従業員内部作業Historys
 Employee Leave Approver,従業員休暇承認者
 Employee Leave Balance,従業員の脱退バランス
-Employee Name,社員名
-Employee Number,社員番号
-Employee Records to be created by,によって作成される従業員レコード
+Employee Name,従業員名
+Employee Number,従業員番号
+Employee Records to be created by,従業員レコードは次式で作成される
 Employee Settings,従業員の設定
-Employee Type,社員タイプ
+Employee Type,従業員タイプ
 "Employee designation (e.g. CEO, Director etc.).",従業員の名称（例：最高経営責任者（CEO）、取締役など）。
 Employee master.,従業員マスタ。
-Employee record is created using selected field. ,
+Employee record is created using selected field. ,従業員レコードは選択されたフィールドを使用して作成されます。
 Employee records.,従業員レコード。
-Employee relieved on {0} must be set as 'Left',{0}にホッと従業員が「左」として設定する必要があります
-Employee {0} has already applied for {1} between {2} and {3},従業員は{0}はすでに{1} {2}と{3}の間を申請している
-Employee {0} is not active or does not exist,従業員{0}アクティブでないか、存在しません
-Employee {0} was on leave on {1}. Cannot mark attendance.,従業員は{0} {1}に休職していた。出席をマークすることはできません。
+Employee relieved on {0} must be set as 'Left',{0}の上で取り除かれた従業員は、「左」としてセットされなければなりません
+Employee {0} has already applied for {1} between {2} and {3},"従業員{0}は{2} と{3}の間の{1}を既に申請しました。
+"
+Employee {0} is not active or does not exist,従業員{0}活発でないか、存在しません
+Employee {0} was on leave on {1}. Cannot mark attendance.,従業員は{0} {1}に休暇中でした。出席をマークすることはできません。
 Employees Email Id,従業員の電子メールID
 Employment Details,雇用の詳細
 Employment Type,雇用の種類
@@ -947,8 +948,9 @@
 Engineer,エンジニア
 Enter Verification Code,確認コードを入力してください
 Enter campaign name if the source of lead is campaign.,鉛の発生源は、キャンペーンの場合はキャンペーン名を入力してください。
-Enter department to which this Contact belongs,この連絡が所属する部署を入力してください
-Enter designation of this Contact,この連絡の指定を入力してください
+Enter department to which this Contact belongs,この連絡先が属する部署を入力してください。
+Enter designation of this Contact,"この連絡先の指定を入力してください。
+"
 "Enter email id separated by commas, invoice will be mailed automatically on particular date",カンマで区切られた電子メールIDを入力して、請求書が特定の日に自動的に郵送されます
 Enter items and planned qty for which you want to raise production orders or download raw materials for analysis.,あなたが製造指図を上げたり、分析のための原材料をダウンロードするための項目と計画された数量を入力してください。
 Enter name of campaign if source of enquiry is campaign,問い合わせ元は、キャンペーンの場合はキャンペーンの名前を入力してください
@@ -1129,9 +1131,9 @@
 Generate Schedule,スケジュールを生成
 Generates HTML to include selected image in the description,説明で選択した画像が含まれるようにHTMLを生成
 Get Advances Paid,進歩は報酬を得る
-Get Advances Received,進歩は受信ゲット
-Get Current Stock,現在の株式を取得
-Get Items,アイテムを取得
+Get Advances Received,前受金を取得する
+Get Current Stock,在庫状況を取得する
+Get Items,項目を取得
 Get Items From Sales Orders,販売注文から項目を取得
 Get Items from BOM,部品表から項目を取得
 Get Last Purchase Rate,最後の購入料金を得る
@@ -1156,17 +1158,17 @@
 Google Drive,Googleのドライブ
 Google Drive Access Allowed,グーグルドライブアクセス可
 Government,政府
-Graduate,大学院
+Graduate,大学卒業生
 Grand Total,総額
 Grand Total (Company Currency),総合計（会社通貨）
 "Grid ""","グリッド """
 Grocery,食料品
-Gross Margin %,粗利益％
+Gross Margin %,総利益％
 Gross Margin Value,グロスマージン値
 Gross Pay,給与総額
 Gross Pay + Arrear Amount +Encashment Amount - Total Deduction,給与総額+滞納額+現金化金額 - 合計控除
-Gross Profit,売上総利益
-Gross Profit (%),売上総利益（％）
+Gross Profit,粗利益
+Gross Profit (%),粗利益（％）
 Gross Weight,総重量
 Gross Weight UOM,総重量UOM
 Group,コミュニティ
@@ -1213,7 +1215,7 @@
 Hours,時間
 How Pricing Rule is applied?,どのように価格設定ルールが適用されている？
 How frequently?,どのくらいの頻度？
-"How should this currency be formatted? If not set, will use system defaults",どのようにこの通貨は、フォーマットする必要があります？設定されていない場合は、システムデフォルトを使用します
+"How should this currency be formatted? If not set, will use system defaults",どのようにこの通貨は、フォーマットする必要がありますか？設定されていない場合は、システムデフォルトを使用します
 Human Resources,人事
 Identification of the package for the delivery (for print),（印刷用）の配信用のパッケージの同定
 If Income or Expense,もし収益又は費用
@@ -1450,17 +1452,17 @@
 Itemwise Discount,Itemwise割引
 Itemwise Recommended Reorder Level,Itemwiseは再注文レベルを推奨
 Job Applicant,求職者
-Job Opening,就職口
-Job Profile,仕事のプロフィール
+Job Opening,求人
+Job Profile,職務内容
 Job Title,職業名
-"Job profile, qualifications required etc.",必要なジョブプロファイル、資格など
-Jobs Email Settings,ジョブズのメール設定
+"Job profile, qualifications required etc.",必要な業務内容、資格など
+Jobs Email Settings,仕事のメール設定
 Journal Entries,仕訳
 Journal Entry,仕訳
-Journal Voucher,ジャーナルバウチャー
-Journal Voucher Detail,ジャーナルバウチャー詳細
-Journal Voucher Detail No,ジャーナルクーポンの詳細はありません
-Journal Voucher {0} does not have account {1} or already matched,ジャーナルバウチャーは{0}アカウントを持っていない{1}、またはすでに一致
+Journal Voucher,伝票
+Journal Voucher Detail,伝票の詳細
+Journal Voucher Detail No,伝票の詳細番号
+Journal Voucher {0} does not have account {1} or already matched,伝票は{0}アカウントを持っていない{1}、またはすでに一致
 Journal Vouchers {0} are un-linked,ジャーナルバウチャー{0}アンリンクされている
 Keep a track of communication related to this enquiry which will help for future reference.,今後の参考のために役立つ、この問い合わせに関連する通信を追跡する。
 Keep it web friendly 900px (w) by 100px (h),100pxにすることで、Webに優しい900px（W）それを維持する（H）
@@ -1523,12 +1525,12 @@
 Leaves Allocated Successfully for {0},{0}のために正常に割り当てられた葉
 Leaves for type {0} already allocated for Employee {1} for Fiscal Year {0},葉タイプの{0}はすでに従業員のために割り当てられた{1}年度の{0}
 Leaves must be allocated in multiples of 0.5,葉は0.5の倍数で割り当てられなければならない
-Ledger,元帳
-Ledgers,元帳
+Ledger,元帳／取引記録
+Ledgers,元帳／取引記録
 Left,左
 Legal,免責事項
 Legal Expenses,訴訟費用
-Letter Head,レターヘッド
+Letter Head,レターヘッド（会社名•所在地などを便箋上部に印刷したもの）
 Letter Heads for print templates.,印刷テンプレートの手紙ヘッド。
 Level,レベル
 Lft,LFT
@@ -1907,14 +1909,15 @@
 Package Item Details,パッケージアイテムの詳細
 Package Items,パッケージアイテム
 Package Weight Details,パッケージの重量の詳細
-Packed Item,ランチアイテム
-Packed quantity must equal quantity for Item {0} in row {1},{0}行{1}ランチ量はアイテムの量と等しくなければなりません
+Packed Item,梱包されたアイテム
+Packed quantity must equal quantity for Item {0} in row {1},"梱包された量は、列{1}の中のアイテム{0}のための量と等しくなければなりません。
+"
 Packing Details,梱包の詳細
 Packing List,パッキングリスト
-Packing Slip,送付状
+Packing Slip,梱包伝票
 Packing Slip Item,梱包伝票項目
 Packing Slip Items,梱包伝票項目
-Packing Slip(s) cancelled,パッキングスリップ（S）をキャンセル
+Packing Slip(s) cancelled,梱包伝票（S）をキャンセル
 Page Break,改ページ
 Page Name,ページ名
 Paid Amount,支払金額
@@ -1925,7 +1928,7 @@
 Parent Cost Center,親コストセンター
 Parent Customer Group,親カスタマー·グループ
 Parent Detail docname,親ディテールDOCNAME
-Parent Item,親アイテム
+Parent Item,親項目
 Parent Item Group,親項目グループ
 Parent Item {0} must be not Stock Item and must be a Sales Item,親項目{0}取り寄せ商品であってはならないこと及び販売項目でなければなりません
 Parent Party Type,親パーティーの種類
@@ -1935,7 +1938,7 @@
 Parent Website Route,親サイトルート
 Parenttype,Parenttype
 Part-time,パートタイム
-Partially Completed,部分的に完了
+Partially Completed,部分的に完成
 Partly Billed,部分的に銘打た
 Partly Delivered,部分的に配信
 Partner Target Detail,パートナーターゲットの詳細
@@ -2249,13 +2252,13 @@
 Purchse Order number required for Item {0},アイテム{0}に必要なPurchse注文番号
 Purpose,目的
 Purpose must be one of {0},目的は、{0}のいずれかである必要があります
-QA Inspection,QA検査
+QA Inspection,品質保証検査
 Qty,数量
-Qty Consumed Per Unit,購入単位あたりに消費
-Qty To Manufacture,製造するの数量
+Qty Consumed Per Unit,数量は単位当たりで消費されました。
+Qty To Manufacture,製造する数量
 Qty as per Stock UOM,証券UOMに従って数量
 Qty to Deliver,お届けする数量
-Qty to Order,数量は受注
+Qty to Order,注文する数量
 Qty to Receive,受信する数量
 Qty to Transfer,転送する数量
 Qualification,資格
@@ -2267,28 +2270,28 @@
 Quality Inspection required for Item {0},アイテム{0}に必要な品質検査
 Quality Management,品質管理
 Quantity,数量
-Quantity Requested for Purchase,購入のために発注
+Quantity Requested for Purchase,数量購入のために発注
 Quantity and Rate,数量とレート
-Quantity and Warehouse,数量や倉庫
+Quantity and Warehouse,数量と倉庫
 Quantity cannot be a fraction in row {0},数量行の割合にすることはできません{0}
 Quantity for Item {0} must be less than {1},数量のため{0}より小さくなければなりません{1}
 Quantity in row {0} ({1}) must be same as manufactured quantity {2},行の数量{0}（{1}）で製造量{2}と同じでなければなりません
 Quantity of item obtained after manufacturing / repacking from given quantities of raw materials,原材料の与えられた量から再梱包/製造後に得られたアイテムの数量
 Quantity required for Item {0} in row {1},行のアイテム{0}のために必要な量{1}
-Quarter,四半期
+Quarter,４分の１
 Quarterly,4半期ごと
-Quick Help,簡潔なヘルプ
-Quotation,見積
-Quotation Item,見積明細
+Quick Help,迅速なヘルプ
+Quotation,引用
+Quotation Item,引用アイテム
 Quotation Items,引用アイテム
 Quotation Lost Reason,引用ロスト理由
 Quotation Message,引用メッセージ
 Quotation To,引用へ
 Quotation Trends,引用動向
 Quotation {0} is cancelled,引用{0}キャンセルされる
-Quotation {0} not of type {1},{0}ではないタイプの引用符{1}
+Quotation {0} not of type {1},タイプ{1}のではない引用{0}
 Quotations received from Suppliers.,引用文は、サプライヤーから受け取った。
-Quotes to Leads or Customers.,リードや顧客に引用している。
+Quotes to Leads or Customers.,鉛板や顧客への引用。
 Raise Material Request when stock reaches re-order level,在庫が再注文レベルに達したときに素材要求を上げる
 Raised By,が提起した
 Raised By (Email),（電子メール）が提起した
@@ -2703,7 +2706,7 @@
 Single,シングル
 Single unit of an Item.,アイテムの単一のユニット。
 Sit tight while your system is being setup. This may take a few moments.,システムがセットアップされている間、じっと。これはしばらく時間がかかる場合があります。
-Slideshow,スライドショー
+Slideshow,スライドショー（一連の画像を順次表示するもの）
 Soap & Detergent,石鹸＆洗剤
 Software,ソフトウェア
 Software Developer,ソフトウェア開発者
@@ -3064,39 +3067,39 @@
 Types of Expense Claim.,経費請求の種類。
 Types of activities for Time Sheets,タイムシートのための活動の種類
 "Types of employment (permanent, contract, intern etc.).",雇用の種類（永続的、契約、インターンなど）。
-UOM Conversion Detail,UOMコンバージョンの詳細
-UOM Conversion Details,UOMコンバージョンの詳細
-UOM Conversion Factor,UOM換算係数
+UOM Conversion Detail,UOMコンバージョンの詳細（測定／計量単位変換の詳細）
+UOM Conversion Details,UOMコンバージョンの詳細（測定／計量単位変更の詳細）
+UOM Conversion Factor,UOM換算係数（測定／計量単位の換算係数）
 UOM Conversion factor is required in row {0},UOM換算係数は、行に必要とされる{0}
-UOM Name,UOM名前
-UOM coversion factor required for UOM: {0} in Item: {1},UOMに必要なUOM coversion率：アイテム{0}：{1}
-Under AMC,AMCの下で
-Under Graduate,大学院の下で
+UOM Name,UOM（測定／計量単位）の名前
+UOM coversion factor required for UOM: {0} in Item: {1},UOM{0}の項目{1}に測定／計量単位の換算係数が必要です。
+Under AMC,AMC（経営コンサルタント協会）の下で
+Under Graduate,在学中の大学生
 Under Warranty,保証期間中
-Unit,ユニット
-Unit of Measure,数量単位
-Unit of Measure {0} has been entered more than once in Conversion Factor Table,測定単位は、{0}は複数の変換係数表で複数回に入ってきた
-"Unit of measurement of this item (e.g. Kg, Unit, No, Pair).",このアイテムの測定単位（例えばキロ、ユニット、いや、ペア）。
+Unit,ユニット／単位
+Unit of Measure,計量／測定単位
+Unit of Measure {0} has been entered more than once in Conversion Factor Table,測定単位{0}が変換係数表に複数回記入されました。
+"Unit of measurement of this item (e.g. Kg, Unit, No, Pair).",（キログラク（質量）、ユニット（個）、数、組）の測定単位。
 Units/Hour,単位/時間
-Units/Shifts,単位/シフト
+Units/Shifts,単位/シフト（交替制）
 Unpaid,未払い
 Unreconciled Payment Details,未照合支払いの詳細
-Unscheduled,予定外の
+Unscheduled,予定外の／臨時の
 Unsecured Loans,無担保ローン
-Unstop,栓を抜く
-Unstop Material Request,栓を抜く素材リクエスト
-Unstop Purchase Order,栓を抜く発注
+Unstop,継続
+Unstop Material Request,資材請求の継続
+Unstop Purchase Order,発注の継続
 Unsubscribed,購読解除
 Update,更新
-Update Clearance Date,アップデートクリアランス日
-Update Cost,更新費用
-Update Finished Goods,完成品を更新
-Update Landed Cost,更新はコストを上陸させた
-Update Series,アップデートシリーズ
-Update Series Number,アップデートシリーズ番号
-Update Stock,株式を更新
-Update bank payment dates with journals.,雑誌で銀行の支払日を更新します。
-Update clearance date of Journal Entries marked as 'Bank Vouchers',「銀行券」としてマークされて仕訳の逃げ日を更新
+Update Clearance Date,クリアランス日(清算日）の更新。
+Update Cost,費用の更新
+Update Finished Goods,完成品の更新
+Update Landed Cost,陸上げ原価の更新
+Update Series,シリーズの更新
+Update Series Number,シリーズ番号の更新
+Update Stock,在庫の更新
+Update bank payment dates with journals.,銀行支払日と履歴を更新して下さい。
+Update clearance date of Journal Entries marked as 'Bank Vouchers',履歴欄を「銀行決済」と明記してクリアランス日（清算日）を更新して下さい。
 Updated,更新日
 Updated Birthday Reminders,更新された誕生日リマインダー
 Upload Attendance,出席をアップロードする
@@ -3112,7 +3115,7 @@
 Use Multi-Level BOM,マルチレベルのBOMを使用
 Use SSL,SSLを使用する
 Used for Production Plan,生産計画のために使用
-User,ユーザー
+User,ユーザー（使用者）
 User ID,ユーザ ID
 User ID not set for Employee {0},ユーザーID従業員に設定されていない{0}
 User Name,ユーザ名
@@ -3129,67 +3132,69 @@
 Users with this role are allowed to set frozen accounts and create / modify accounting entries against frozen accounts,このロールを持つユーザーは、凍結されたアカウントを設定し、作成/冷凍アカウントに対するアカウンティングエントリを修正することが許される
 Utilities,便利なオプション
 Utility Expenses,光熱費
-Valid For Territories,領土に対して有効
+Valid For Territories,有効な範囲
 Valid From,から有効
-Valid Upto,有効な点で最大
+Valid Upto,まで有効
 Valid for Territories,準州の有効な
 Validate,検証
 Valuation,評価
 Valuation Method,評価方法
-Valuation Rate,評価レート
-Valuation Rate required for Item {0},アイテム{0}に必要な評価レート
+Valuation Rate,評価率
+Valuation Rate required for Item {0},アイテム{0}に評価率が必要です。
 Valuation and Total,評価と総合
 Value,値
 Value or Qty,値または数量
-Vehicle Dispatch Date,配車日
-Vehicle No,車両はありません
-Venture Capital,ベンチャーキャピタル
-Verified By,審査
-View Ledger,ビュー元帳
-View Now,今すぐ見る
-Visit report for maintenance call.,メンテナンスコールのレポートをご覧ください。
-Voucher #,バウチャー＃
-Voucher Detail No,バウチャーの詳細はありません
-Voucher Detail Number,バウチャーディテール数
-Voucher ID,バウチャー番号
-Voucher No,バウチャーはありません
-Voucher Type,バウチャータイプ
-Voucher Type and Date,バウチャーの種類と日付
+Vehicle Dispatch Date,車の発送日
+Vehicle No,車両番号
+Venture Capital,ベンチャーキャピタル(投資会社）
+Verified By,によって証明／確認された。
+View Ledger,"元帳の表示
+"
+View Now,"表示
+"
+Visit report for maintenance call.,整備の電話はレポートにアクセスして下さい。
+Voucher #,領収書番号
+Voucher Detail No,領収書の詳細番号
+Voucher Detail Number,領収書の詳細番号
+Voucher ID,領収書のID（証明書）
+Voucher No,領収書番号
+Voucher Type,領収書の種類
+Voucher Type and Date,領収書の種類と日付
 Walk In,中に入る
 Warehouse,倉庫
-Warehouse Contact Info,倉庫に連絡しなさい
+Warehouse Contact Info,倉庫への連絡先
 Warehouse Detail,倉庫の詳細
 Warehouse Name,倉庫名
-Warehouse and Reference,倉庫およびリファレンス
-Warehouse can not be deleted as stock ledger entry exists for this warehouse.,株式元帳エントリはこの倉庫のために存在する倉庫を削除することはできません。
-Warehouse can only be changed via Stock Entry / Delivery Note / Purchase Receipt,倉庫には在庫のみエントリー/納品書/購入時の領収書を介して変更することができます
-Warehouse cannot be changed for Serial No.,倉庫は、車台番号を変更することはできません
-Warehouse is mandatory for stock Item {0} in row {1},倉庫在庫アイテムは必須です{0}行{1}
-Warehouse is missing in Purchase Order,倉庫は、注文書にありません
-Warehouse not found in the system,倉庫システムには見られない
-Warehouse required for stock Item {0},ストックアイテム{0}に必要な倉庫
-Warehouse where you are maintaining stock of rejected items,あなたが拒否されたアイテムのストックを維持している倉庫
-Warehouse {0} can not be deleted as quantity exists for Item {1},量はアイテムのために存在する倉庫{0}を削除することはできません{1}
-Warehouse {0} does not belong to company {1},倉庫には{0}に属していない会社{1}
+Warehouse and Reference,倉庫と整理番号
+Warehouse can not be deleted as stock ledger entry exists for this warehouse.,倉庫に商品の在庫があるため在庫品元帳の入力を削除することはできません。
+Warehouse can only be changed via Stock Entry / Delivery Note / Purchase Receipt,倉庫のみが在庫記入/納品書/購入商品の領収書を介して変更することができます。
+Warehouse cannot be changed for Serial No.,倉庫は、製造番号を変更することはできません。
+Warehouse is mandatory for stock Item {0} in row {1},商品{0}を{1}列に品入れするのに倉庫名は必須です。
+Warehouse is missing in Purchase Order,注文書に倉庫名を記入して下さい。
+Warehouse not found in the system,システムに倉庫がありません。
+Warehouse required for stock Item {0},商品{0}を品入れするのに倉庫名が必要です。
+Warehouse where you are maintaining stock of rejected items,不良品の保管倉庫
+Warehouse {0} can not be deleted as quantity exists for Item {1},商品{1}は在庫があるため削除することはできません。
+Warehouse {0} does not belong to company {1},倉庫{0}は会社{1}に属していない。
 Warehouse {0} does not exist,倉庫{0}は存在しません
 Warehouse {0}: Company is mandatory,倉庫{0}：当社は必須です
-Warehouse {0}: Parent account {1} does not bolong to the company {2},倉庫{0}：親勘定は、{1}会社にボロングません{2}
-Warehouse-Wise Stock Balance,倉庫·ワイズ証券残高
-Warehouse-wise Item Reorder,倉庫ワイズアイテムの並べ替え
+Warehouse {0}: Parent account {1} does not bolong to the company {2},倉庫{0}：親会社{1}は会社{2}に属していない。
+Warehouse-Wise Stock Balance,倉庫ワイズ在庫残品
+Warehouse-wise Item Reorder,倉庫ワイズ商品の再注文
 Warehouses,倉庫
 Warehouses.,倉庫。
 Warn,警告する
-Warning: Leave application contains following block dates,警告：アプリケーションは以下のブロック日付が含まれたままに
-Warning: Material Requested Qty is less than Minimum Order Qty,警告：数量要求された素材は、最小注文数量に満たない
-Warning: Sales Order {0} already exists against same Purchase Order number,警告：受注{0}はすでに同じ発注番号に対して存在
-Warning: System will not check overbilling since amount for Item {0} in {1} is zero,警告：システムは、{0} {1}が0の内のアイテムの量が過大請求をチェックしません
-Warranty / AMC Details,保証書/ AMCの詳細
-Warranty / AMC Status,保証/ AMCステータス
+Warning: Leave application contains following block dates,警告：休暇願い届に受理出来ない日が含まれています。
+Warning: Material Requested Qty is less than Minimum Order Qty,警告：材料の注文数が注文最小数量を下回っています。
+Warning: Sales Order {0} already exists against same Purchase Order number,警告：同じ発注番号の販売注文{0}がすでに存在します。
+Warning: System will not check overbilling since amount for Item {0} in {1} is zero,警告：{1}の商品{0} が欠品のため、システムは過大請求を確認しません。
+Warranty / AMC Details,保証/ AMCの詳細（経営コンサルタント協会の詳細）
+Warranty / AMC Status,保証/ AMC情報（経営コンサルタント協会の情報）
 Warranty Expiry Date,保証有効期限
 Warranty Period (Days),保証期間（日数）
-Warranty Period (in days),（日数）保証期間
-We buy this Item,我々は、この商品を購入
-We sell this Item,我々は、このアイテムを売る
+Warranty Period (in days),保証期間（日数）
+We buy this Item,我々は、この商品を購入する。
+We sell this Item,我々は、この商品を売る。
 Website,ウェブサイト
 Website Description,ウェブサイトの説明
 Website Item Group,ウェブサイトの項目グループ
@@ -3198,81 +3203,82 @@
 Website Warehouse,ウェブサイトの倉庫
 Wednesday,水曜日
 Weekly,毎週
-Weekly Off,毎週オフ
-Weight UOM,重さUOM
-"Weight is mentioned,\nPlease mention ""Weight UOM"" too","重量が記載され、\n ""重量UOM」をお伝えくださいすぎ"
-Weightage,Weightage
-Weightage (%),Weightage（％）
+Weekly Off,毎週の休日
+Weight UOM,UOM重量（重量の測定単位）
+"Weight is mentioned,\nPlease mention ""Weight UOM"" too",重量が記載済み。 ''UOM重量’’も記載して下さい。
+Weightage,高価値の／より重要性の高い方
+Weightage (%),高価値の値（％）
 Welcome,ようこそ
-Welcome to ERPNext. Over the next few minutes we will help you setup your ERPNext account. Try and fill in as much information as you have even if it takes a bit longer. It will save you a lot of time later. Good Luck!,ERPNextへようこそ。次の数分間にわたって、私たちはあなたのセットアップあなたERPNextアカウントを助ける。試してみて、あなたはそれは少し時間がかかる場合でも、持っているできるだけ多くの情報を記入。それは後にあなたに多くの時間を節約します。グッドラック！
-Welcome to ERPNext. Please select your language to begin the Setup Wizard.,ERPNextへようこそ。セットアップウィザードを開始するためにあなたの言語を選択してください。
-What does it do?,機能
-"When any of the checked transactions are ""Submitted"", an email pop-up automatically opened to send an email to the associated ""Contact"" in that transaction, with the transaction as an attachment. The user may or may not send the email.",チェックしたトランザクションのいずれかが「提出」された場合、電子メールポップアップが自動的に添付ファイルとしてトランザクションと、そのトランザクションに関連する「お問い合わせ」にメールを送信するためにオープンしました。ユーザーは、または電子メールを送信しない場合があります。
-"When submitted, the system creates difference entries to set the given stock and valuation on this date.",提出すると、システムは、この日に与えられた株式および評価を設定するために、差分のエントリが作成されます。
+Welcome to ERPNext. Over the next few minutes we will help you setup your ERPNext account. Try and fill in as much information as you have even if it takes a bit longer. It will save you a lot of time later. Good Luck!,ERPNextへようこそ。これから数分間にわたって、あなたのERPNextアカウント設定の手伝いをします。少し時間がかかっても構わないので、あなたの情報をできるだけ多くのを記入して下さい。それらの情報が後に多くの時間を節約します。グットラック！（頑張っていきましょう！）
+Welcome to ERPNext. Please select your language to begin the Setup Wizard.,ERPNextへようこそ。ウィザード設定を開始するためにあなたの言語を選択してください。
+What does it do?,それは何をするのですか？
+"When any of the checked transactions are ""Submitted"", an email pop-up automatically opened to send an email to the associated ""Contact"" in that transaction, with the transaction as an attachment. The user may or may not send the email.",資料／報告書を''提出’’すると、提出した資料／報告書に関連する人物宛のメールが添付ファイル付きで自動的に画面に表示されます。ユーザーはメールの送信または未送信を選ぶことが出来ます。
+"When submitted, the system creates difference entries to set the given stock and valuation on this date.",提出すると、システムが在庫品と評価を設定するための別の欄をその日に作ります。
 Where items are stored.,項目が保存される場所。
 Where manufacturing operations are carried out.,製造作業が行われる場所。
-Widowed,夫と死別した
-Will be calculated automatically when you enter the details,[詳細]を入力すると自動的に計算されます
-Will be updated after Sales Invoice is Submitted.,納品書が送信された後に更新されます。
-Will be updated when batched.,バッチ処理時に更新されます。
+Widowed,未亡人
+Will be calculated automatically when you enter the details,詳細を入力すると自動的に計算されます
+Will be updated after Sales Invoice is Submitted.,売上請求書を提出すると更新されます。
+Will be updated when batched.,処理が一括されると更新されます。
 Will be updated when billed.,請求時に更新されます。
 Wire Transfer,電信送金
 With Operations,操作で
-With Period Closing Entry,期間決算仕訳で
+With Period Closing Entry,最終登録期間で
 Work Details,作業内容
-Work Done,作業が完了
+Work Done,作業完了
 Work In Progress,進行中の作業
 Work-in-Progress Warehouse,作業中の倉庫
-Work-in-Progress Warehouse is required before Submit,作業中の倉庫を提出する前に必要です
+Work-in-Progress Warehouse is required before Submit,作業中／提出する前に倉庫名が必要です。
 Working,{0}{/0} {1}就労{/1}
-Working Days,営業日
-Workstation,ワークステーション
-Workstation Name,ワークステーション名
-Write Off Account,アカウントを償却
-Write Off Amount,額を償却
+Working Days,勤務日
+Workstation,ワークステーション（仕事場）
+Workstation Name,ワークステーション名（仕事名）
+Write Off Account,事業経費口座
+Write Off Amount,事業経費額
 Write Off Amount <=,金額を償却<=
 Write Off Based On,ベースオンを償却
-Write Off Cost Center,コストセンターを償却
-Write Off Outstanding Amount,発行残高を償却
-Write Off Voucher,バウチャーを償却
-Wrong Template: Unable to find head row.,間違ったテンプレート：ヘッド列が見つかりません。
+Write Off Cost Center,原価の事業経費
+Write Off Outstanding Amount,事業経費未払金額
+Write Off Voucher,事業経費領収書
+Wrong Template: Unable to find head row.,間違ったテンプレートです。：見出し／最初の行が見つかりません。
 Year,年
 Year Closed,年間休館
-Year End Date,決算日
+Year End Date,"年間の最終日
+"
 Year Name,年間の名前
 Year Start Date,年間の開始日
 Year of Passing,渡すの年
 Yearly,毎年
 Yes,はい
-You are not authorized to add or update entries before {0},あなたは前にエントリを追加または更新する権限がありません{0}
+You are not authorized to add or update entries before {0},{0}の前に入力を更新または追加する権限がありません。
 You are not authorized to set Frozen value,あなたは冷凍値を設定する権限がありません
-You are the Expense Approver for this record. Please Update the 'Status' and Save,あなたは、このレコードの経費承認者である。「ステータス」を更新し、保存してください
-You are the Leave Approver for this record. Please Update the 'Status' and Save,あなたは、このレコードに向けて出発承認者である。「ステータス」を更新し、保存してください
-You can enter any date manually,手動で任意の日付を入力することができます
-You can enter the minimum quantity of this item to be ordered.,あなたが注文するには、このアイテムの最小量を入力することができます。
-You can not change rate if BOM mentioned agianst any item,BOMが任意の項目agianst述べた場合は、レートを変更することはできません
-You can not enter both Delivery Note No and Sales Invoice No. Please enter any one.,あなたは、両方の納品書を入力することはできませんし、納品書番号は、任意の1を入力してください。
-You can not enter current voucher in 'Against Journal Voucher' column,あなたは 'に対するジャーナルバウチャー」の欄に、現在の伝票を入力することはできません
-You can set Default Bank Account in Company master,あなたは、会社のマスターにデフォルト銀行口座を設定することができます
-You can start by selecting backup frequency and granting access for sync,あなたは、バックアップの頻度を選択し、同期のためのアクセス権を付与することから始めることができます
+You are the Expense Approver for this record. Please Update the 'Status' and Save,あなたは、この記録の経費承認者です。情報を更新し、保存してください。
+You are the Leave Approver for this record. Please Update the 'Status' and Save,あなたは、この記録の休暇承認者です。情報を更新し、保存してください。
+You can enter any date manually,手動で日付を入力することができます
+You can enter the minimum quantity of this item to be ordered.,最小限の数量からこの商品を注文することができます
+You can not change rate if BOM mentioned agianst any item,部品表が否認した商品は、料金を変更することができません
+You can not enter both Delivery Note No and Sales Invoice No. Please enter any one.,納品書と売上請求書の両方を入力することはできません。どちらら一つを記入して下さい
+You can not enter current voucher in 'Against Journal Voucher' column,''アゲンストジャーナルバウチャー’’の欄に、最新の領収証を入力することはできません。
+You can set Default Bank Account in Company master,あなたは、会社のマスターにメイン銀行口座を設定することができます
+You can start by selecting backup frequency and granting access for sync,バックアップの頻度を選択し、同期するためのアクセスに承諾することで始めることができます
 You can submit this Stock Reconciliation.,あなたは、この株式調整を提出することができます。
-You can update either Quantity or Valuation Rate or both.,あなたは、数量または評価レートのいずれか、または両方を更新することができます。
+You can update either Quantity or Valuation Rate or both.,数量もしくは見積もり額のいずれか一方、または両方を更新することができます。
 You cannot credit and debit same account at the same time,あなたが同時に同じアカウントをクレジットカードやデビットすることはできません
-You have entered duplicate items. Please rectify and try again.,あなたは、重複する項目を入力しました。修正してから、もう一度やり直してください。
-You may need to update: {0},あなたが更新する必要があります：{0}
-You must Save the form before proceeding,先に進む前に、フォームを保存する必要があります
-Your Customer's TAX registration numbers (if applicable) or any general information,顧客の税務登録番号（該当する場合）、または任意の一般的な情報
+You have entered duplicate items. Please rectify and try again.,同じ商品を入力しました。修正して、もう一度やり直してください。
+You may need to update: {0},{0}を更新する必要があります
+You must Save the form before proceeding,続行する前に、フォーム（書式）を保存して下さい
+Your Customer's TAX registration numbers (if applicable) or any general information,顧客の税務登録番号（該当する場合）、または一般的な情報。
 Your Customers,あなたの顧客
-Your Login Id,ログインID
+Your Login Id,あなたのログインID(プログラムに入るための身元証明のパスワード）
 Your Products or Services,あなたの製品またはサービス
-Your Suppliers,サプライヤー
-Your email address,メール アドレス
-Your financial year begins on,あなたの会計年度は、から始まり
-Your financial year ends on,あなたの会計年度は、日に終了
-Your sales person who will contact the customer in future,将来的に顧客に連絡しますあなたの販売員
-Your sales person will get a reminder on this date to contact the customer,あなたの営業担当者は、顧客に連絡することをこの日にリマインダが表示されます
-Your setup is complete. Refreshing...,あなたのセットアップは完了です。さわやかな...
-Your support email id - must be a valid email - this is where your emails will come!,あなたのサポートの電子メールIDは、 - 有効な電子メールである必要があります - あなたの電子メールが来る場所です！
+Your Suppliers,納入／供給者　購入先
+Your email address,あなたのメール アドレス
+Your financial year begins on,あなたの会計年度開始日は
+Your financial year ends on,あなたの会計年度終了日は
+Your sales person who will contact the customer in future,将来的に顧客に連絡するあなたの販売員
+Your sales person will get a reminder on this date to contact the customer,営業担当者には、顧客と連絡を取り合うを日にリマインダ（事前通知）が表示されます。
+Your setup is complete. Refreshing...,設定完了。更新中。
+Your support email id - must be a valid email - this is where your emails will come!,サポートメールIDはメールを受信する場所なので有効なメールであることが必要です。
 [Error],[ERROR]
 [Select],[SELECT]
 `Freeze Stocks Older Than` should be smaller than %d days.,`％d個の日数よりも小さくすべきであるより古い`フリーズ株式。
@@ -3294,7 +3300,7 @@
 rgt,RGT
 subject,被験者
 to,上を以下のように変更します。
-website page link,ウェブサイトのページリンク
+website page link,ウェブサイトのページリンク（ウェブサイト上で他のページへ連結させること）
 {0} '{1}' not in Fiscal Year {2},{0} '{1}'ではない年度中の{2}
 {0} Credit limit {0} crossed,{0}与信限度{0}交差
 {0} Serial Numbers required for Item {0}. Only {0} provided.,{0}商品に必要なシリアル番号{0}。唯一の{0}提供。
@@ -3329,3 +3335,49 @@
 {0} {1} status is Unstopped,{0} {1}ステータスが塞がです
 {0} {1}: Cost Center is mandatory for Item {2},{0} {1}：コストセンターではアイテムのために必須である{2}
 {0}: {1} not found in Invoice Details table,{0}：{1}請求書詳細テーブルにない
+"<a href=""#Sales Browser/Customer Group"">Add / Edit</a>","もし、ごhref=""#Sales Browser/Customer Group"">追加/編集</ A>"
+"<a href=""#Sales Browser/Territory"">Add / Edit</a>","もし、ごhref=""#Sales Browser/Territory"">追加/編集</ A>"
+Billed,課金
+Company,会社
+Currency is required for Price List {0},通貨は価格表{0}に必要です
+Default Customer Group,デフォルトの顧客グループ
+Default Territory,デフォルトの地域
+Delivered,配送
+Enable Shopping Cart,ショッピングカートを使用可能に
+Go ahead and add something to your cart.,先に行くと、ショッピングカートに何かを追加。
+Hey! Go ahead and add an address,ハイ！先に行くとアドレスを追加
+Invalid Billing Address,無効な請求先住所
+Invalid Shipping Address,無効な配送先住所
+Missing Currency Exchange Rates for {0},{0}のために為替レートが不足して
+Name is required,名前が必要です
+Not Allowed,許可されていない
+Paid,料金
+Partially Billed,部分的に銘打た
+Partially Delivered,部分的に配信
+Please specify a Price List which is valid for Territory,地域で有効な価格表を指定してください
+Please specify currency in Company,会社で通貨を指定してください
+Please write something,何かを書いてください
+Please write something in subject and message!,件名とメッセージで何かを書いてください！
+Price List,価格リスト
+Price List not configured.,価格表が構成されていません。
+Quotation Series,引用シリーズ
+Shipping Rule,出荷ルール
+Shopping Cart,カート
+Shopping Cart Price List,ショッピングカート価格表
+Shopping Cart Price Lists,ショッピングカート価格表
+Shopping Cart Settings,ショッピングカートの設定
+Shopping Cart Shipping Rule,ショッピングカート配送ルール
+Shopping Cart Shipping Rules,ショッピングカート配送ルール
+Shopping Cart Taxes and Charges Master,ショッピングカートの税金、料金マスター
+Shopping Cart Taxes and Charges Masters,ショッピングカートの税金、料金のマスターズ
+Something went wrong!,何かが間違っていた！
+Something went wrong.,エラーが発生しました。
+Tax Master,税金のマスター
+To Pay,支払わなければ
+Updated,更新日
+You are not allowed to reply to this ticket.,あなたは、このチケットに返信することはできません。
+You need to be logged in to view your cart.,あなたは買い物カゴを見るためにログインする必要があります。
+You need to enable Shopping Cart,あなたはショッピングカートを有効にする必要があります
+{0} cannot be purchased using Shopping Cart,{0}ショッピングカートを使用して購入することはできません
+{0} is required,{0}が必要である
+{0} {1} has a common territory {2},{0} {1}は、共通の領土を持っている{2}
diff --git a/erpnext/translations/kn.csv b/erpnext/translations/kn.csv
index 8dae972..f01e48a 100644
--- a/erpnext/translations/kn.csv
+++ b/erpnext/translations/kn.csv
@@ -3329,3 +3329,49 @@
 {0} {1} status is Unstopped,{0} {1} ಸ್ಥಿತಿಯನ್ನು unstopped ಆಗಿದೆ
 {0} {1}: Cost Center is mandatory for Item {2},{0} {1}: ವೆಚ್ಚ ಸೆಂಟರ್ ಐಟಂ ಕಡ್ಡಾಯ {2}
 {0}: {1} not found in Invoice Details table,{0}: {1} ಸರಕುಪಟ್ಟಿ ವಿವರಗಳು ಟೇಬಲ್ ಕಂಡುಬಂದಿಲ್ಲ
+"<a href=""#Sales Browser/Customer Group"">Add / Edit</a>","ಕವಿದ href=""#Sales Browser/Customer Group""> ಸೇರಿಸಿ / ಸಂಪಾದಿಸಿ </ ಒಂದು >"
+"<a href=""#Sales Browser/Territory"">Add / Edit</a>","ಕವಿದ href=""#Sales Browser/Territory""> ಸೇರಿಸಿ / ಸಂಪಾದಿಸಿ </ ಒಂದು >"
+Billed,ಖ್ಯಾತವಾದ
+Company,ಕಂಪನಿ
+Currency is required for Price List {0},ಕರೆನ್ಸಿ ಬೆಲೆ ಪಟ್ಟಿ ಅಗತ್ಯವಿದೆ {0}
+Default Customer Group,ಡೀಫಾಲ್ಟ್ ಗ್ರಾಹಕ ಗುಂಪಿನ
+Default Territory,ಡೀಫಾಲ್ಟ್ ಪ್ರದೇಶ
+Delivered,ತಲುಪಿಸಲಾಗಿದೆ
+Enable Shopping Cart,ಶಾಪಿಂಗ್ ಕಾರ್ಟ್ ಸಕ್ರಿಯಗೊಳಿಸಿ
+Go ahead and add something to your cart.,ಮುಂದೆ ಹೋಗಿ ಮತ್ತು ನಿಮ್ಮ ಕಾರ್ಟ್ ಏನಾದರೂ ಸೇರಿಸಿ.
+Hey! Go ahead and add an address,ಹೇ! ಮುಂದೆ ಹೋಗಿ ಒಂದು ಸೇರಿಸಿ
+Invalid Billing Address,ಅಮಾನ್ಯವಾದ ಬಿಲ್ಲಿಂಗ್ ವಿಳಾಸ
+Invalid Shipping Address,ಅಮಾನ್ಯವಾದ ಶಿಪ್ಪಿಂಗ್ ವಿಳಾಸ
+Missing Currency Exchange Rates for {0},ಕರೆನ್ಸಿ ವಿನಿಮಯ ದರಗಳು ಮಿಸ್ಸಿಂಗ್ {0}
+Name is required,ಹೆಸರು ಅಗತ್ಯವಿದೆ
+Not Allowed,ಅನುಮತಿಸಲಾಗುವುದಿಲ್ಲ
+Paid,ಪಾವತಿಸಿದ
+Partially Billed,ಭಾಗಶಃ ಖ್ಯಾತವಾದ
+Partially Delivered,ಭಾಗಶಃ ತಲುಪಿಸಲಾಗಿದೆ
+Please specify a Price List which is valid for Territory,ಪ್ರದೇಶ ಮಾನ್ಯ ಬೆಲೆ ಪಟ್ಟಿ ಸೂಚಿಸಲು ದಯವಿಟ್ಟು
+Please specify currency in Company,ಕಂಪನಿ ಕರೆನ್ಸಿ ಸೂಚಿಸಲು ದಯವಿಟ್ಟು
+Please write something,ಏನೋ ಬರೆಯಲು ಮಾಡಿ
+Please write something in subject and message!,ವಿಷಯ ಮತ್ತು ಸಂದೇಶದ ಏನೋ ಬರೆಯಲು ಮಾಡಿ !
+Price List,ಬೆಲೆ ಪಟ್ಟಿ
+Price List not configured.,ಬೆಲೆ ಪಟ್ಟಿ ಕಾನ್ಫಿಗರ್.
+Quotation Series,ನುಡಿಮುತ್ತುಗಳು ಸರಣಿ
+Shipping Rule,ಶಿಪ್ಪಿಂಗ್ ರೂಲ್
+Shopping Cart,ಶಾಪಿಂಗ್ ಕಾರ್ಟ್
+Shopping Cart Price List,ಶಾಪಿಂಗ್ ಕಾರ್ಟ್ ಬೆಲೆ ಪಟ್ಟಿ
+Shopping Cart Price Lists,ಶಾಪಿಂಗ್ ಕಾರ್ಟ್ ಬೆಲೆ ಪಟ್ಟಿ
+Shopping Cart Settings,ಶಾಪಿಂಗ್ ಕಾರ್ಟ್ ಸೆಟ್ಟಿಂಗ್ಗಳು
+Shopping Cart Shipping Rule,ಶಾಪಿಂಗ್ ಕಾರ್ಟ್ ಶಿಪ್ಪಿಂಗ್ ರೂಲ್
+Shopping Cart Shipping Rules,ಶಾಪಿಂಗ್ ಕಾರ್ಟ್ ಶಿಪ್ಪಿಂಗ್ ನಿಯಮಗಳು
+Shopping Cart Taxes and Charges Master,ಶಾಪಿಂಗ್ ಕಾರ್ಟ್ ತೆರಿಗೆಗಳು ಮತ್ತು ಶುಲ್ಕಗಳು ಮಾಸ್ಟರ್
+Shopping Cart Taxes and Charges Masters,ಶಾಪಿಂಗ್ ಕಾರ್ಟ್ ತೆರಿಗೆಗಳು ಮತ್ತು ಶುಲ್ಕಗಳು ಮಾಸ್ಟರ್ಸ್
+Something went wrong!,ಏನೋ ತಪ್ಪಾಗಿದೆ!
+Something went wrong.,ಯಾವುದೋ ತಪ್ಪು ಸಂಭವಿಸಿದೆ.
+Tax Master,ತೆರಿಗೆ ಮಾಸ್ಟರ್
+To Pay,ಪಾವತಿಸಲು
+Updated,ನವೀಕರಿಸಲಾಗಿದೆ
+You are not allowed to reply to this ticket.,ಈ ಟಿಕೆಟ್ ಪ್ರತ್ಯುತ್ತರ ಅನುಮತಿಸಲಾಗುವುದಿಲ್ಲ.
+You need to be logged in to view your cart.,ನಿಮ್ಮ ಕಾರ್ಟ್ ಲಾಗಿನ್ ಅಗತ್ಯವಿದೆ.
+You need to enable Shopping Cart,ನೀವು ಶಾಪಿಂಗ್ ಕಾರ್ಟ್ ಸಕ್ರಿಯಗೊಳಿಸಬೇಕು
+{0} cannot be purchased using Shopping Cart,{0} ಶಾಪಿಂಗ್ ಕಾರ್ಟ್ ಬಳಸಿ ಕೊಳ್ಳಬಹುದು ಸಾಧ್ಯವಿಲ್ಲ
+{0} is required,{0} ಅಗತ್ಯವಿದೆ
+{0} {1} has a common territory {2},{0} {1} ಸಾಮಾನ್ಯ ಪ್ರದೇಶವನ್ನು ಹೊಂದಿದೆ {2}
diff --git a/erpnext/translations/ko.csv b/erpnext/translations/ko.csv
index 34e7a44..4a7ea61 100644
--- a/erpnext/translations/ko.csv
+++ b/erpnext/translations/ko.csv
@@ -3329,3 +3329,49 @@
 {0} {1} status is Unstopped,{0} {1} 상태 Unstopped입니다
 {0} {1}: Cost Center is mandatory for Item {2},{0} {1} : 코스트 센터는 항목에 대해 필수입니다 {2}
 {0}: {1} not found in Invoice Details table,{0} {1} 송장 정보 테이블에서 찾을 수 없습니다
+"<a href=""#Sales Browser/Customer Group"">Add / Edit</a>","만약 당신이 좋아 href=""#Sales Browser/Customer Group""> 추가 / 편집 </ A>"
+"<a href=""#Sales Browser/Territory"">Add / Edit</a>","만약 당신이 좋아 href=""#Sales Browser/Territory""> 추가 / 편집 </ A>"
+Billed,청구
+Company,회사
+Currency is required for Price List {0},환율은 가격 목록에 필요한 {0}
+Default Customer Group,기본 고객 그룹
+Default Territory,기본 지역
+Delivered,배달
+Enable Shopping Cart,쇼핑 카트를 사용
+Go ahead and add something to your cart.,가서 당신의 손수레로 뭔가를 추가 할 수 있습니다.
+Hey! Go ahead and add an address,야!가서 주소를 추가
+Invalid Billing Address,잘못된 청구 주소
+Invalid Shipping Address,잘못된 배송 주소
+Missing Currency Exchange Rates for {0},를 위해 환율 누락 {0}
+Name is required,이름이 필요합니다
+Not Allowed,허용하지 않음
+Paid,유료
+Partially Billed,일부 청구
+Partially Delivered,부분적으로 배달
+Please specify a Price List which is valid for Territory,지역에 유효한 가격 목록을 지정하십시오
+Please specify currency in Company,회사에 통화를 지정하십시오
+Please write something,뭔가를 작성 해주세요
+Please write something in subject and message!,제목과 메시지에 무언가를 써주세요!
+Price List,가격리스트
+Price List not configured.,가격 목록이 구성되어 있지.
+Quotation Series,견적 시리즈
+Shipping Rule,배송 규칙
+Shopping Cart,쇼핑 카트
+Shopping Cart Price List,쇼핑 카트의 가격 목록
+Shopping Cart Price Lists,쇼핑 카트의 가격 목록
+Shopping Cart Settings,쇼핑 카트 설정
+Shopping Cart Shipping Rule,장바구니 배송 규칙
+Shopping Cart Shipping Rules,장바구니 배송 규칙
+Shopping Cart Taxes and Charges Master,쇼핑 카트 세금과 요금 마스터
+Shopping Cart Taxes and Charges Masters,쇼핑 카트 세금과 요금의 석사
+Something went wrong!,문제가 발생했습니다!
+Something went wrong.,문제가 발생했습니다.
+Tax Master,세금 마스터
+To Pay,지불하는
+Updated,업데이트
+You are not allowed to reply to this ticket.,당신이 티켓에 회신 할 수 없습니다.
+You need to be logged in to view your cart.,당신은 당신의 카트를 보려면 로그인해야합니다.
+You need to enable Shopping Cart,당신은 쇼핑 카트를 활성화해야
+{0} cannot be purchased using Shopping Cart,{0} 쇼핑 카트를 사용하여 구입 할 수 없습니다
+{0} is required,{0}이 필요합니다
+{0} {1} has a common territory {2},{0} {1} 공통의 영토가 {2}
diff --git a/erpnext/translations/nl.csv b/erpnext/translations/nl.csv
index f8bc987..94cab1d 100644
--- a/erpnext/translations/nl.csv
+++ b/erpnext/translations/nl.csv
@@ -3329,3 +3329,49 @@
 {0} {1} status is Unstopped,{0} {1} status ontsloten
 {0} {1}: Cost Center is mandatory for Item {2},{0} {1}: kostenplaats is verplicht voor Item {2}
 {0}: {1} not found in Invoice Details table,{0}: {1} niet gevonden in Factuur Details tabel
+"<a href=""#Sales Browser/Customer Group"">Add / Edit</a>","<a href=""#Sales Browser/Customer Group""> toevoegen / bewerken < / a>"
+"<a href=""#Sales Browser/Territory"">Add / Edit</a>","<a href=""#Sales Browser/Territory""> toevoegen / bewerken < / a>"
+Billed,Gefactureerd
+Company,Vennootschap
+Currency is required for Price List {0},Valuta is vereist voor prijslijst {0}
+Default Customer Group,Standaard Klant Groep
+Default Territory,Standaard Territory
+Delivered,Geleverd
+Enable Shopping Cart,Enable Winkelwagen
+Go ahead and add something to your cart.,Ga je gang en iets toe te voegen aan uw winkelwagen.
+Hey! Go ahead and add an address,Hé! Ga je gang en voeg een adres
+Invalid Billing Address,Ongeldig Factuuradres
+Invalid Shipping Address,Ongeldig verzendadres
+Missing Currency Exchange Rates for {0},Ontbrekende wisselkoersen gedurende {0}
+Name is required,Naam is vereist
+Not Allowed,niet toegestaan
+Paid,betaald
+Partially Billed,gedeeltelijk gefactureerde
+Partially Delivered,gedeeltelijk Geleverd
+Please specify a Price List which is valid for Territory,Geef een prijslijst die geldig is voor het grondgebied
+Please specify currency in Company,Specificeer munt in Bedrijf
+Please write something,Iets schrijven aub
+Please write something in subject and message!,Schrijf iets in het onderwerp en een bericht !
+Price List,Prijslijst
+Price List not configured.,Prijslijst niet geconfigureerd.
+Quotation Series,Offerte Series
+Shipping Rule,Verzending Rule
+Shopping Cart,Winkelwagen
+Shopping Cart Price List,Winkelwagen Prijslijst
+Shopping Cart Price Lists,Winkelwagen Prijslijsten
+Shopping Cart Settings,Winkelwagen Instellingen
+Shopping Cart Shipping Rule,Winkelwagen Scheepvaart Rule
+Shopping Cart Shipping Rules,Winkelwagen Scheepvaart Regels
+Shopping Cart Taxes and Charges Master,Winkelwagen en-heffingen Master
+Shopping Cart Taxes and Charges Masters,Winkelwagen en-heffingen Masters
+Something went wrong!,Er ging iets mis!
+Something went wrong.,Er is iets fout gegaan
+Tax Master,Fiscale Master
+To Pay,te betalen
+Updated,Bijgewerkt
+You are not allowed to reply to this ticket.,Het is niet toegestaan ​​om te reageren op dit kaartje .
+You need to be logged in to view your cart.,Je moet ingelogd zijn om uw winkelwagentje te bekijken.
+You need to enable Shopping Cart,U moet Winkelwagen stellen
+{0} cannot be purchased using Shopping Cart,{0} kan niet worden aangeschaft met Winkelwagen
+{0} is required,{0} is verplicht
+{0} {1} has a common territory {2},{0} {1} heeft een gemeenschappelijk grondgebied {2}
diff --git a/erpnext/translations/pt-BR.csv b/erpnext/translations/pt-BR.csv
index df558c5..7796842 100644
--- a/erpnext/translations/pt-BR.csv
+++ b/erpnext/translations/pt-BR.csv
@@ -3377,3 +3377,49 @@
 {0} {1} status is Unstopped,{0} {1} status é abrirão
 {0} {1}: Cost Center is mandatory for Item {2},{0} {1}: Centro de Custo é obrigatória para item {2}
 {0}: {1} not found in Invoice Details table,{0}: {1} não foi encontrado na fatura Detalhes Mesa
+"<a href=""#Sales Browser/Customer Group"">Add / Edit</a>","<a href=""#Sales Browser/Customer grupo""> Adicionar / Editar </ a>"
+"<a href=""#Sales Browser/Territory"">Add / Edit</a>","<a href=""#Sales Browser/Territory""> Adicionar / Editar </ a>"
+Billed,Faturado
+Company,Empresa
+Currency is required for Price List {0},Moeda é necessário para Preço de {0}
+Default Customer Group,Grupo de Clientes padrão
+Default Territory,Território padrão
+Delivered,Entregue
+Enable Shopping Cart,Ativar Carrinho de Compras
+Go ahead and add something to your cart.,Vá em frente e acrescentar algo ao seu carrinho.
+Hey! Go ahead and add an address,Ei! Vá em frente e adicionar um endereço
+Invalid Billing Address,Inválido Endereço de Cobrança
+Invalid Shipping Address,Inválido envio Endereço
+Missing Currency Exchange Rates for {0},Falta de câmbio de moeda para {0}
+Name is required,Nome é obrigatório
+Not Allowed,não Permitido
+Paid,pago
+Partially Billed,parcialmente faturado
+Partially Delivered,parcialmente entregues
+Please specify a Price List which is valid for Territory,"Por favor, especifique uma lista de preços que é válido para o território"
+Please specify currency in Company,"Por favor, especificar a moeda em Empresa"
+Please write something,"Por favor, escreva algo"
+Please write something in subject and message!,"Por favor, escreva algo no assunto e uma mensagem !"
+Price List,Lista de Preços
+Price List not configured.,Lista de Preço não configurado.
+Quotation Series,Série citação
+Shipping Rule,Regra de envio
+Shopping Cart,Carrinho de Compras
+Shopping Cart Price List,Carrinho de Compras Lista de Preços
+Shopping Cart Price Lists,Carrinho listas de preços
+Shopping Cart Settings,Carrinho Configurações
+Shopping Cart Shipping Rule,Carrinho de Compras Rule envio
+Shopping Cart Shipping Rules,Carrinho Regras frete
+Shopping Cart Taxes and Charges Master,Carrinho impostos e taxas Mestre
+Shopping Cart Taxes and Charges Masters,Carrinho Impostos e Taxas de mestrado
+Something went wrong!,Algo deu errado!
+Something went wrong.,Algo deu errado.
+Tax Master,Imposto de Mestre
+To Pay,pagar
+Updated,Atualizado
+You are not allowed to reply to this ticket.,Você não tem permissão para responder a este bilhete .
+You need to be logged in to view your cart.,Você precisa estar logado para ver seu carrinho.
+You need to enable Shopping Cart,Você precisa habilitar o Carrinho de Compras
+{0} cannot be purchased using Shopping Cart,{0} não pode ser comprado usando Carrinho de Compras
+{0} is required,{0} é necessária
+{0} {1} has a common territory {2},{0} {1} tem um território comum {2}
diff --git a/erpnext/translations/pt.csv b/erpnext/translations/pt.csv
index 18c4617..b4d9bd6 100644
--- a/erpnext/translations/pt.csv
+++ b/erpnext/translations/pt.csv
@@ -3329,3 +3329,49 @@
 {0} {1} status is Unstopped,{0} {1} status é abrirão
 {0} {1}: Cost Center is mandatory for Item {2},{0} {1}: Centro de Custo é obrigatória para item {2}
 {0}: {1} not found in Invoice Details table,{0}: {1} não foi encontrado na fatura Detalhes Mesa
+"<a href=""#Sales Browser/Customer Group"">Add / Edit</a>","<a href=""#Sales Browser/Customer Group""> toevoegen / bewerken < / a>"
+"<a href=""#Sales Browser/Territory"">Add / Edit</a>","<a href=""#Sales Browser/Territory""> toevoegen / bewerken < / a>"
+Billed,Faturado
+Company,Companhia
+Currency is required for Price List {0},Moeda é necessário para Preço de {0}
+Default Customer Group,Grupo de Clientes padrão
+Default Territory,Território padrão
+Delivered,Entregue
+Enable Shopping Cart,Ativar Carrinho de Compras
+Go ahead and add something to your cart.,Vá em frente e acrescentar algo ao seu carrinho.
+Hey! Go ahead and add an address,Ei! Vá em frente e adicionar um endereço
+Invalid Billing Address,Inválido Endereço de Cobrança
+Invalid Shipping Address,Inválido envio Endereço
+Missing Currency Exchange Rates for {0},Falta de câmbio de moeda para {0}
+Name is required,Nome é obrigatório
+Not Allowed,não Permitido
+Paid,betaald
+Partially Billed,gedeeltelijk gefactureerde
+Partially Delivered,gedeeltelijk Geleverd
+Please specify a Price List which is valid for Territory,"Por favor, especifique uma lista de preços que é válido para o território"
+Please specify currency in Company,"Por favor, especificar a moeda em Empresa"
+Please write something,Iets schrijven aub
+Please write something in subject and message!,Schrijf iets in het onderwerp en een bericht !
+Price List,Lista de Preços
+Price List not configured.,Lista de Preço não configurado.
+Quotation Series,Série citação
+Shipping Rule,Regra de envio
+Shopping Cart,Carrinho de Compras
+Shopping Cart Price List,Carrinho de Compras Lista de Preços
+Shopping Cart Price Lists,Carrinho listas de preços
+Shopping Cart Settings,Carrinho Configurações
+Shopping Cart Shipping Rule,Carrinho de Compras Rule envio
+Shopping Cart Shipping Rules,Carrinho Regras frete
+Shopping Cart Taxes and Charges Master,Carrinho impostos e taxas Mestre
+Shopping Cart Taxes and Charges Masters,Carrinho Impostos e Taxas de mestrado
+Something went wrong!,Algo deu errado!
+Something went wrong.,Algo deu errado.
+Tax Master,Imposto de Mestre
+To Pay,te betalen
+Updated,Atualizado
+You are not allowed to reply to this ticket.,Het is niet toegestaan ​​om te reageren op dit kaartje .
+You need to be logged in to view your cart.,Você precisa estar logado para ver seu carrinho.
+You need to enable Shopping Cart,Você precisa habilitar o Carrinho de Compras
+{0} cannot be purchased using Shopping Cart,{0} não pode ser comprado usando Carrinho de Compras
+{0} is required,{0} é necessária
+{0} {1} has a common territory {2},{0} {1} tem um território comum {2}
diff --git a/erpnext/translations/ro.csv b/erpnext/translations/ro.csv
index fc6d6ce..a5aa7c4 100644
--- a/erpnext/translations/ro.csv
+++ b/erpnext/translations/ro.csv
@@ -3329,3 +3329,49 @@
 {0} {1} status is Unstopped,{0} {1} statut este destupate
 {0} {1}: Cost Center is mandatory for Item {2},{0} {1}: Cost Center este obligatorie pentru postul {2}
 {0}: {1} not found in Invoice Details table,{0}: {1} nu a fost găsit în factură Detalii masă
+"<a href=""#Sales Browser/Customer Group"">Add / Edit</a>","<a href=""#Sales Browser/Customer Group""> Add / Edit </ a>"
+"<a href=""#Sales Browser/Territory"">Add / Edit</a>","<a href=""#Sales Browser/Territory""> Add / Edit </ a>"
+Billed,Facturat
+Company,Firma
+Currency is required for Price List {0},Monedă este necesară pentru lista de prețuri {0}
+Default Customer Group,Implicit Client Group
+Default Territory,Implicit Teritoriul
+Delivered,Livrat
+Enable Shopping Cart,Activați Cosul de cumparaturi
+Go ahead and add something to your cart.,Du-te și adaugă ceva la coș.
+Hey! Go ahead and add an address,Hei! Du-te și adăugați o adresă
+Invalid Billing Address,Adresa de facturare invalid
+Invalid Shipping Address,Adresa Transport invalid
+Missing Currency Exchange Rates for {0},Lipsește valutar Curs valutar pentru {0}
+Name is required,Este necesar numele
+Not Allowed,Nu este permis
+Paid,Platit
+Partially Billed,Parțial Taxat
+Partially Delivered,Parțial livrate
+Please specify a Price List which is valid for Territory,"Vă rugăm să specificați o listă de prețuri, care este valabil pentru teritoriul"
+Please specify currency in Company,Vă rugăm să specificați în valută de companie
+Please write something,Vă rugăm să scrieți ceva
+Please write something in subject and message!,Vă rugăm să scrieți ceva în subiect și un mesaj!
+Price List,Lista de prețuri
+Price List not configured.,Lista de prețuri nu a fost configurat.
+Quotation Series,Citat Series
+Shipping Rule,Regula de transport maritim
+Shopping Cart,Cosul de cumparaturi
+Shopping Cart Price List,Cosul de cumparaturi Lista de prețuri
+Shopping Cart Price Lists,Cosul de cumparaturi Liste de prețuri
+Shopping Cart Settings,Setări Cosul de cumparaturi
+Shopping Cart Shipping Rule,Cosul de cumparaturi Regula Transport
+Shopping Cart Shipping Rules,Cosul de cumparaturi Reguli de expediere
+Shopping Cart Taxes and Charges Master,Taxele coș de cumpărături și taxe de Master
+Shopping Cart Taxes and Charges Masters,Cumpărături Impozite și taxe cos Masters
+Something went wrong!,Ceva a mers prost!
+Something went wrong.,Ceva nu a funcționat.
+Tax Master,Taxa de Master
+To Pay,Pentru a Pay
+Updated,Actualizat
+You are not allowed to reply to this ticket.,Nu vi se permite să răspundeți la acest bilet.
+You need to be logged in to view your cart.,Ai nevoie să fii logat pentru a vedea cosul de cumparaturi.
+You need to enable Shopping Cart,Ai nevoie pentru a permite Cosul de cumparaturi
+{0} cannot be purchased using Shopping Cart,{0} nu pot fi achiziționate cu ajutorul Cosul de cumparaturi
+{0} is required,{0} este necesară
+{0} {1} has a common territory {2},{0} {1} are un teritoriu comun {2}
diff --git a/erpnext/translations/ru.csv b/erpnext/translations/ru.csv
index 1ef537c..d79039c 100644
--- a/erpnext/translations/ru.csv
+++ b/erpnext/translations/ru.csv
@@ -35,13 +35,14 @@
 "<a href=""#Sales Browser/Territory"">Add / Edit</a>","<a href=""#Sales Browser/Territory""> Добавить / Изменить </>"
 "<h4>Default Template</h4><p>Uses <a href=""http://jinja.pocoo.org/docs/templates/"">Jinja Templating</a> and all the fields of Address (including Custom Fields if any) will be available</p><pre><code>{{ address_line1 }}&lt;br&gt;{% if address_line2 %}{{ address_line2 }}&lt;br&gt;{% endif -%}{{ city }}&lt;br&gt;{% if state %}{{ state }}&lt;br&gt;{% endif -%}{% if pincode %} PIN:  {{ pincode }}&lt;br&gt;{% endif -%}{{ country }}&lt;br&gt;{% if phone %}Phone: {{ phone }}&lt;br&gt;{% endif -%}{% if fax %}Fax: {{ fax }}&lt;br&gt;{% endif -%}{% if email_id %}Email: {{ email_id }}&lt;br&gt;{% endif -%}</code></pre>","<h4> умолчанию шаблона </ h4>  <p> Использует <a href=""http://jinja.pocoo.org/docs/templates/""> Jinja шаблонов </ A> и все поля Адрес ( в том числе пользовательских полей если таковые имеются) будут доступны </ P>  <pre> <code> {{address_line1}} инструменты  {%, если address_line2%} {{address_line2}} инструменты { % ENDIF -%}  {{город}} инструменты  {%, если состояние%} {{состояние}} инструменты {% ENDIF -%}  {%, если пин-код%} PIN-код: {{пин-код}} инструменты {% ENDIF -%}  {{страна}} инструменты  {%, если телефон%} Телефон: {{телефон}} инструменты { % ENDIF -%}  {%, если факс%} Факс: {{факс}} инструменты {% ENDIF -%}  {%, если email_id%} Email: {{email_id}} инструменты ; {% ENDIF -%}  </ код> </ предварительно>"
 A Customer Group exists with same name please change the Customer name or rename the Customer Group,"Группа клиентов существует с тем же именем, пожалуйста изменить имя клиентов или переименовать группу клиентов"
-A Customer exists with same name,Существует клиентов с одноименным названием
+A Customer exists with same name,"Клиент с таким именем уже существует
+"
 A Lead with this email id should exist,Ведущий с этим электронный идентификатор должен существовать
 A Product or Service,Продукт или сервис
 A Supplier exists with same name,Поставщик существует с одноименным названием
 A symbol for this currency. For e.g. $,"Символ для этой валюты. Для например, $"
 AMC Expiry Date,КУА срок действия
-Abbr,Сокр
+Abbr,Аббревиатура
 Abbreviation cannot have more than 5 characters,Аббревиатура не может иметь более 5 символов
 Above Value,Выше стоимости
 Absent,Рассеянность
@@ -53,10 +54,10 @@
 Account,Аккаунт
 Account Balance,Остаток на счете
 Account Created: {0},Учетная запись создана: {0}
-Account Details,Детали аккаунта
+Account Details,Подробности аккаунта
 Account Head,Счет руководитель
 Account Name,Имя Учетной Записи
-Account Type,Тип счета
+Account Type,Тип учетной записи
 "Account balance already in Credit, you are not allowed to set 'Balance Must Be' as 'Debit'","Баланс счета уже в кредит, вы не можете установить ""баланс должен быть 'как' Debit '"
 "Account balance already in Debit, you are not allowed to set 'Balance Must Be' as 'Credit'","Баланс счета уже в дебет, вы не можете установить ""баланс должен быть 'как' Кредит»"
 Account for the warehouse (Perpetual Inventory) will be created under this Account.,Счет для склада (непрерывной инвентаризации) будут созданы под этой учетной записью.
@@ -66,13 +67,13 @@
 Account with existing transaction can not be converted to group.,Счет с существующей сделки не могут быть преобразованы в группы.
 Account with existing transaction can not be deleted,Счет с существующей сделки не могут быть удалены
 Account with existing transaction cannot be converted to ledger,Счет с существующей сделки не могут быть преобразованы в книге
-Account {0} cannot be a Group,Счет {0} не может быть группа
-Account {0} does not belong to Company {1},Счет {0} не принадлежит компании {1}
-Account {0} does not belong to company: {1},Счет {0} не принадлежит компании: {1}
-Account {0} does not exist,Счет {0} не существует
+Account {0} cannot be a Group,Аккаунт {0} не может быть в группе
+Account {0} does not belong to Company {1},Аккаунт {0} не принадлежит компании {1}
+Account {0} does not belong to company: {1},Аккаунт {0} не принадлежит компании: {1}
+Account {0} does not exist,Аккаунт {0} не существует
 Account {0} has been entered more than once for fiscal year {1},Счет {0} был введен более чем один раз в течение финансового года {1}
-Account {0} is frozen,Счет {0} заморожен
-Account {0} is inactive,Счет {0} неактивен
+Account {0} is frozen,Аккаунт {0} заморожен
+Account {0} is inactive,Аккаунт {0} неактивен
 Account {0} is not valid,Счет {0} не является допустимым
 Account {0} must be of type 'Fixed Asset' as Item {1} is an Asset Item,"Счет {0} должен быть типа ""Fixed Asset"", как товара {1} является активом Пункт"
 Account {0}: Parent account {1} can not be a ledger,Счет {0}: Родитель счета {1} не может быть книга
@@ -84,16 +85,16 @@
 Accounting,Пользователи
 "Accounting Entries can be made against leaf nodes, called","Бухгалтерские записи могут быть сделаны против конечных узлов, называется"
 "Accounting entry frozen up to this date, nobody can do / modify entry except role specified below.","Бухгалтерская запись заморожены до этой даты, никто не может сделать / изменить запись, кроме роли, указанной ниже."
-Accounting journal entries.,Бухгалтерские Journal.
+Accounting journal entries.,Журнал бухгалтерских записей.
 Accounts,Учётные записи
 Accounts Browser,Дебиторская Браузер
 Accounts Frozen Upto,Счета заморожены До
 Accounts Payable,Ежемесячные счета по кредиторской задолженности
 Accounts Receivable,Дебиторская задолженность
-Accounts Settings,Счета Настройки
+Accounts Settings, Настройки аккаунта
 Active,Активен
 Active: Will extract emails from ,
-Activity,Деятельность
+Activity,Активность
 Activity Log,Журнал активности
 Activity Log:,Журнал активности:
 Activity Type,Тип активности
@@ -313,8 +314,8 @@
 BOM {0} for Item {1} in row {2} is inactive or not submitted,BOM {0} для Пункт {1} в строке {2} неактивен или не представили
 BOM {0} is not active or not submitted,BOM {0} не является активным или не представили
 BOM {0} is not submitted or inactive BOM for Item {1},BOM {0} не представлено или неактивным спецификации по пункту {1}
-Backup Manager,Backup Manager
-Backup Right Now,Резервное копирование прямо сейчас
+Backup Manager,Менеджер резервных копий
+Backup Right Now,Сделать резервную копию
 Backups will be uploaded to,Резервные копии будут размещены на
 Balance Qty,Баланс Кол-во
 Balance Sheet,Балансовый отчет
@@ -323,7 +324,7 @@
 Balance must be,Баланс должен быть
 "Balances of Accounts of type ""Bank"" or ""Cash""",Остатки на счетах типа «Банк» или «Денежные средства»
 Bank,Банк:
-Bank / Cash Account,Банк / Денежный счет
+Bank / Cash Account,Банк / Расчетный счет
 Bank A/C No.,Bank A / С №
 Bank Account,Банковский счет
 Bank Account No.,Счет №
@@ -336,10 +337,10 @@
 Bank Reconciliation Detail,Банк примирения Подробно
 Bank Reconciliation Statement,Заявление Банк примирения
 Bank Voucher,Банк Ваучер
-Bank/Cash Balance,Банк / Остатки денежных средств
+Bank/Cash Balance,Банк / Баланс счета
 Banking,Банковское дело
-Barcode,Штрих
-Barcode {0} already used in Item {1},Штрих {0} уже используется в пункте {1}
+Barcode,Штрихкод
+Barcode {0} already used in Item {1},Штрихкод {0} уже используется в позиции {1}
 Based On,На основе
 Basic,Базовый
 Basic Info,Введение
@@ -357,9 +358,9 @@
 Batched for Billing,Batched для биллинга
 Better Prospects,Лучшие перспективы
 Bill Date,Дата оплаты
-Bill No,Билл Нет
+Bill No,Номер накладной
 Bill No {0} already booked in Purchase Invoice {1},Билл Нет {0} уже заказали в счете-фактуре {1}
-Bill of Material,Спецификация материала
+Bill of Material,Накладная материалов
 Bill of Material to be considered for manufacturing,"Билл материала, который будет рассматриваться на производстве"
 Bill of Materials (BOM),Ведомость материалов (BOM)
 Billable,Платежные
@@ -379,10 +380,10 @@
 Block Date,Блок Дата
 Block Days,Блок дня
 Block leave applications by department.,Блок отпуска приложений отделом.
-Blog Post,Сообщение блога
+Blog Post,Пост блога
 Blog Subscriber,Блог абонента
 Blood Group,Группа крови
-Both Warehouse must belong to same Company,Оба Склад должен принадлежать той же компании
+Both Warehouse must belong to same Company,Оба Склад должены принадлежать той же компании
 Box,Рамка
 Branch,Ветвь:
 Brand,Бренд
@@ -401,13 +402,13 @@
 Budget Distribution Details,Распределение бюджета Подробности
 Budget Variance Report,Бюджет Разница Сообщить
 Budget cannot be set for Group Cost Centers,Бюджет не может быть установлено для группы МВЗ
-Build Report,Построить Сообщить
+Build Report,Создать отчет
 Bundle items at time of sale.,Bundle детали на момент продажи.
 Business Development Manager,Менеджер по развитию бизнеса
 Buying,Покупка
 Buying & Selling,Покупка и продажа
 Buying Amount,Покупка Сумма
-Buying Settings,Покупка Настройки
+Buying Settings,Настройка покупки
 "Buying must be checked, if Applicable For is selected as {0}","Покупка должна быть проверена, если выбран Применимо для как {0}"
 C-Form,C-образный
 C-Form Applicable,C-образный Применимо
@@ -421,13 +422,13 @@
 CENVAT Service Tax Cess 1,CENVAT налоговой службы Цесс 1
 CENVAT Service Tax Cess 2,CENVAT налоговой службы Цесс 2
 Calculate Based On,Рассчитать на основе
-Calculate Total Score,Рассчитать общее количество баллов
-Calendar Events,Календарь
-Call,Вызов
-Calls,Вызовы
+Calculate Total Score,Рассчитать общую сумму
+Calendar Events,Календарные события
+Call,Звонок
+Calls,Звонки
 Campaign,Кампания
 Campaign Name,Название кампании
-Campaign Name is required,Название кампании требуется
+Campaign Name is required,Необходимо ввести имя компании
 Campaign Naming By,Кампания Именование По
 Campaign-.####,Кампания-.# # # #
 Can be approved by {0},Может быть одобрено {0}
@@ -469,12 +470,12 @@
 Case No(s) already in use. Try from Case No {0},Случай Нет (ы) уже используется. Попробуйте из дела № {0}
 Case No. cannot be 0,Дело № не может быть 0
 Cash,Наличные
-Cash In Hand,Наличность кассовая
+Cash In Hand,Наличность кассы
 Cash Voucher,Кассовый чек
 Cash or Bank Account is mandatory for making payment entry,Наличными или банковский счет является обязательным для внесения записи платежей
-Cash/Bank Account,Счет Наличный / Банк
+Cash/Bank Account, Наличные / Банковский счет
 Casual Leave,Повседневная Оставить
-Cell Number,Количество сотовых
+Cell Number,Количество звонков
 Change UOM for an Item.,Изменение UOM для элемента.
 Change the starting / current sequence number of an existing series.,Изменение начального / текущий порядковый номер существующей серии.
 Channel Partner,Channel ДУrtner
@@ -501,12 +502,12 @@
 Cheque Number,Чек Количество
 Child account exists for this account. You can not delete this account.,Детский учетная запись существует для этой учетной записи. Вы не можете удалить этот аккаунт.
 City,Город
-City/Town,Город /
+City/Town,Город / поселок
 Claim Amount,Сумма претензии
 Claims for company expense.,Претензии по счет компании.
 Class / Percentage,Класс / в процентах
 Classic,Классические
-Clear Table,Ясно Таблица
+Clear Table,Очистить таблицу
 Clearance Date,Клиренс Дата
 Clearance Date not mentioned,Клиренс Дата не упоминается
 Clearance date cannot be before check date in row {0},Дата просвет не может быть до даты регистрации в строке {0}
@@ -641,8 +642,8 @@
 Creates salary slip for above mentioned criteria.,Создает ведомость расчета зарплаты за вышеуказанные критерии.
 Creation Date,Дата создания
 Creation Document No,Создание документа Нет
-Creation Document Type,Тип документа Создание
-Creation Time,Времени создания
+Creation Document Type,Создание типа документа
+Creation Time,Время создания
 Credentials,Сведения о профессиональной квалификации
 Credit,Кредит
 Credit Amt,Кредитная Amt
@@ -751,8 +752,8 @@
 Default Bank Account,По умолчанию Банковский счет
 Default Buying Cost Center,По умолчанию Покупка МВЗ
 Default Buying Price List,По умолчанию Покупка Прайс-лист
-Default Cash Account,По умолчанию денежного счета
-Default Company,По умолчанию компании
+Default Cash Account,Расчетный счет по умолчанию
+Default Company,Компания по умолчанию
 Default Currency,Базовая валюта
 Default Customer Group,По умолчанию Группа клиентов
 Default Expense Account,По умолчанию расходов счета
@@ -787,7 +788,7 @@
 Delivered Qty,Поставляется Кол-во
 Delivered Serial No {0} cannot be deleted,Поставляется Серийный номер {0} не может быть удален
 Delivery Date,Дата поставки
-Delivery Details,План поставки
+Delivery Details,Подробности доставки
 Delivery Document No,Доставка документов Нет
 Delivery Document Type,Тип доставки документов
 Delivery Note,· Отметки о доставке
@@ -801,7 +802,7 @@
 Delivery Note {0} must not be submitted,Доставка Примечание {0} не должны быть представлены
 Delivery Notes {0} must be cancelled before cancelling this Sales Order,Примечания Доставка {0} должно быть отменено до отмены этого заказ клиента
 Delivery Status,Статус доставки
-Delivery Time,Срок поставки
+Delivery Time,Время доставки
 Delivery To,Доставка Для
 Department,Отдел
 Department Stores,Универмаги
@@ -812,7 +813,7 @@
 Designation,Назначение
 Designer,Дизайнер
 Detailed Breakup of the totals,Подробное Распад итогам
-Details,Детали
+Details,Подробности
 Difference (Dr - Cr),Отличия (д-р - Cr)
 Difference Account,Счет разницы
 "Difference Account must be a 'Liability' type account, since this Stock Reconciliation is an Opening Entry","Разница счета должна быть учетной записью типа ""Ответственность"", так как это со Примирение Открытие Вступление"
@@ -848,7 +849,7 @@
 Do you really want to UNSTOP ,
 Do you really want to UNSTOP this Material Request?,"Вы действительно хотите, чтобы Unstop этот материал запрос?"
 Do you really want to stop production order: ,
-Doc Name,Док Имя
+Doc Name,Имя документа
 Doc Type,Тип документа
 Document Description,Документ Описание
 Document Type,Тип документа
@@ -858,15 +859,15 @@
 Download Materials Required,Скачать Необходимые материалы
 Download Reconcilation Data,Скачать приведению данных
 Download Template,Скачать шаблон
-Download a report containing all raw materials with their latest inventory status,"Скачать доклад, содержащий все сырье с их последней инвентаризации статус"
+Download a report containing all raw materials with their latest inventory status,Скачать отчет содержащий все материал со статусом  последней инвентаризации
 "Download the Template, fill appropriate data and attach the modified file.","Скачать шаблон, заполнить соответствующие данные и приложить измененный файл."
 "Download the Template, fill appropriate data and attach the modified file.All dates and employee combination in the selected period will come in the template, with existing attendance records","Скачать шаблон, заполнить соответствующие данные и приложить измененный файл. Все даты и сочетание работник в выбранном периоде придет в шаблоне, с существующими рекорды посещаемости"
-Draft,Новый
+Draft,Черновик
 Dropbox,Dropbox
 Dropbox Access Allowed,Dropbox доступ разрешен
 Dropbox Access Key,Dropbox Ключ доступа
-Dropbox Access Secret,Dropbox Доступ Секрет
-Due Date,Дата исполнения
+Dropbox Access Secret,Dropbox Секретный ключ
+Due Date,Дата выполнения
 Due Date cannot be after {0},Впритык не может быть после {0}
 Due Date cannot be before Posting Date,"Впритык не может быть, прежде чем отправлять Дата"
 Duplicate Entry. Please check Authorization Rule {0},"Копия записи. Пожалуйста, проверьте Авторизация Правило {0}"
@@ -963,7 +964,7 @@
 Entries are not allowed against this Fiscal Year if the year is closed.,"Записи не допускаются против этого финансовый год, если год закрыт."
 Equity,Ценные бумаги
 Error: {0} > {1},Ошибка: {0}> {1}
-Estimated Material Cost,Расчетное Материал Стоимость
+Estimated Material Cost,Примерная стоимость материалов
 "Even if there are multiple Pricing Rules with highest priority, then following internal priorities are applied:","Даже если есть несколько правил ценообразования с наивысшим приоритетом, то следующие внутренние приоритеты применяются:"
 Everyone can read,Каждый может читать
 "Example: ABCD.#####If series is set and Serial No is not mentioned in transactions, then automatic serial number will be created based on this series. If you always want to explicitly mention Serial Nos for this item. leave this blank.",". Пример: ABCD # # # # #  Если серии установлен и Серийный номер не упоминается в сделках, то автоматическая серийный номер будет создана на основе этой серии. Если вы всегда хотите явно упомянуть серийный Нос для этого элемента. оставьте поле пустым."
@@ -1066,7 +1067,7 @@
 For Sales Invoice,Для продаж счета-фактуры
 For Server Side Print Formats,Для стороне сервера форматов печати
 For Supplier,Для поставщиков
-For Warehouse,Для Склад
+For Warehouse,Для Склада
 For Warehouse is required before Submit,Для требуется Склад перед Отправить
 "For e.g. 2012, 2012-13","Для, например 2012, 2012-13"
 For reference,Для справки
@@ -1083,7 +1084,7 @@
 From Company,От компании
 From Currency,Из валюты
 From Currency and To Currency cannot be same,"Из валюты и В валюту не может быть таким же,"
-From Customer,От клиентов
+From Customer,От клиента
 From Customer Issue,Из выпуска Пользовательское
 From Date,С Даты
 From Date cannot be greater than To Date,"С даты не может быть больше, чем к дате"
@@ -1161,8 +1162,8 @@
 Grand Total (Company Currency),Общий итог (Компания Валюта)
 "Grid ""","Сетка """
 Grocery,Продуктовый
-Gross Margin %,Валовая маржа%
-Gross Margin Value,Валовая маржа Значение
+Gross Margin %,Валовая маржа %
+Gross Margin Value,Значение валовой маржи
 Gross Pay,Зарплата до вычетов
 Gross Pay + Arrear Amount +Encashment Amount - Total Deduction,Валовой Платное + просроченной задолженности суммы + Инкассация Сумма - Всего Вычет
 Gross Profit,Валовая прибыль
@@ -1196,7 +1197,7 @@
 "Here you can maintain family details like name and occupation of parent, spouse and children","Здесь Вы можете сохранить семейные подробности, как имя и оккупации родитель, супруг и детей"
 "Here you can maintain height, weight, allergies, medical concerns etc","Здесь вы можете поддерживать рост, вес, аллергии, медицинские проблемы и т.д."
 Hide Currency Symbol,Скрыть Символа Валюты
-High,Высокая
+High,Высокий
 History In Company,История В компании
 Hold,Удержание
 Holiday,Выходной
@@ -1214,7 +1215,7 @@
 How Pricing Rule is applied?,Как Ценообразование Правило применяется?
 How frequently?,Как часто?
 "How should this currency be formatted? If not set, will use system defaults","Как это должно валюта быть отформатирован? Если не установлен, будет использовать системные значения по умолчанию"
-Human Resources,Работа с персоналом
+Human Resources,Человеческие ресурсы
 Identification of the package for the delivery (for print),Идентификация пакета на поставку (для печати)
 If Income or Expense,Если доходов или расходов
 If Monthly Budget Exceeded,Если Месячный бюджет Превышен
@@ -1250,11 +1251,11 @@
 Image View,Просмотр изображения
 Implementation Partner,Реализация Партнер
 Import Attendance,Импорт Посещаемость
-Import Failed!,Импорт удалось!
-Import Log,Импорт Вход
-Import Successful!,Импорт успешным!
+Import Failed!,Ошибка при импортировании!
+Import Log,Лог импорта
+Import Successful!,Успешно импортированно!
 Imports,Импорт
-In Hours,В часы
+In Hours,В час
 In Process,В процессе
 In Qty,В Кол-во
 In Value,В поле Значение
@@ -1273,7 +1274,7 @@
 Include holidays in Total no. of Working Days,Включите праздники в общей сложности не. рабочих дней
 Income,Доход
 Income / Expense,Доходы / расходы
-Income Account,Счет Доходы
+Income Account,Счет Доходов
 Income Booked,Доход Заказанный
 Income Tax,Подоходный налог
 Income Year to Date,Доход С начала года
@@ -1298,7 +1299,7 @@
 Installation Note Item,Установка Примечание Пункт
 Installation Note {0} has already been submitted,Установка Примечание {0} уже представлен
 Installation Status,Состояние установки
-Installation Time,Время монтажа
+Installation Time,Время установки
 Installation date cannot be before delivery date for Item {0},Дата установки не может быть до даты доставки для Пункт {0}
 Installation record for a Serial No.,Установка рекорд для серийный номер
 Installed Qty,Установленная Кол-во
@@ -1306,15 +1307,15 @@
 Integrate incoming support emails to Support Ticket,Интеграция входящих поддержки письма на техподдержки
 Interested,Заинтересованный
 Intern,Стажер
-Internal,Внутренний GPS без антенны или с внешней антенной
+Internal,Внутренний
 Internet Publishing,Интернет издания
 Introduction,Введение
-Invalid Barcode,Неверный код
-Invalid Barcode or Serial No,Неверный код или Серийный номер
-Invalid Mail Server. Please rectify and try again.,"Неверный Сервер Почта. Пожалуйста, исправить и попробовать еще раз."
+Invalid Barcode,Неверный штрихкод
+Invalid Barcode or Serial No,Неверный штрихкод или Серийный номер
+Invalid Mail Server. Please rectify and try again.,"Неверный почтовый сервер. Пожалуйста, исправьте и попробуйте еще раз."
 Invalid Master Name,Неверный Мастер Имя
 Invalid User Name or Support Password. Please rectify and try again.,"Неверное имя пользователя или поддержки Пароль. Пожалуйста, исправить и попробовать еще раз."
-Invalid quantity specified for item {0}. Quantity should be greater than 0.,"Неверный количество, указанное для элемента {0}. Количество должно быть больше 0."
+Invalid quantity specified for item {0}. Quantity should be greater than 0.,"Неверное количество, указанное для элемента {0}. Количество должно быть больше 0."
 Inventory,Инвентаризация
 Inventory & Support,Инвентаризация и поддержка
 Investment Banking,Инвестиционно-банковская деятельность
@@ -1326,7 +1327,7 @@
 Invoice Period From,Счет Период С
 Invoice Period From and Invoice Period To dates mandatory for recurring invoice,Счет Период С и счет-фактура Период до даты обязательных для повторяющихся счет
 Invoice Period To,Счет Период до
-Invoice Type,Счет Тип
+Invoice Type,Тип счета
 Invoice/Journal Voucher Details,Счет / Журнал Подробности Ваучер
 Invoiced Amount (Exculsive Tax),Сумма по счетам (Exculsive стоимость)
 Is Active,Активен
@@ -1549,7 +1550,7 @@
 Logo and Letter Heads,Логотип и бланки
 Lost,Поражений
 Lost Reason,Забыли Причина
-Low,Низкая
+Low,Низкий
 Lower Income,Нижняя Доход
 MTN Details,MTN Подробнее
 Main,Основные
@@ -1574,7 +1575,7 @@
 Maintenance Visit {0} must be cancelled before cancelling this Sales Order,Техническое обслуживание Посетить {0} должно быть отменено до отмены этого заказ клиента
 Maintenance start date can not be before delivery date for Serial No {0},Техническое обслуживание дата не может быть до даты доставки для Serial No {0}
 Major/Optional Subjects,Основные / факультативных предметов
-Make ,
+Make ,Создать
 Make Accounting Entry For Every Stock Movement,Сделать учета запись для каждого фондовой Движения
 Make Bank Voucher,Сделать банк ваучер
 Make Credit Note,Сделать кредит-нота
@@ -1583,7 +1584,7 @@
 Make Difference Entry,Сделать Разница запись
 Make Excise Invoice,Сделать акцизного счет-фактура
 Make Installation Note,Сделать Установка Примечание
-Make Invoice,Сделать Счет
+Make Invoice,Создать счет-фактуру
 Make Maint. Schedule,Сделать Maint. Расписание
 Make Maint. Visit,Сделать Maint. Посетите нас по адресу
 Make Maintenance Visit,Сделать ОБСЛУЖИВАНИЕ Посетите
@@ -1599,7 +1600,7 @@
 Make Sales Order,Сделать заказ клиента
 Make Supplier Quotation,Сделать Поставщик цитаты
 Make Time Log Batch,Найдите время Войдите Batch
-Male,Муж
+Male,Мужчина
 Manage Customer Group Tree.,Управление групповой клиентов дерево.
 Manage Sales Partners.,Управление партнеры по сбыту.
 Manage Sales Person Tree.,Управление менеджера по продажам дерево.
@@ -1628,7 +1629,7 @@
 Master Name,Мастер Имя
 Master Name is mandatory if account type is Warehouse,"Мастер Имя является обязательным, если тип счета Склад"
 Master Type,Мастер Тип
-Masters,Эффективно используем APM в высшей лиге
+Masters,Организация
 Match non-linked Invoices and Payments.,"Подходим, не связанных Счета и платежи."
 Material Issue,Материал выпуск
 Material Receipt,Материал Поступление
@@ -1658,31 +1659,31 @@
 Maximum {0} rows allowed,Максимальные {0} строк разрешено
 Maxiumm discount for Item {0} is {1}%,Maxiumm скидка на Пункт {0} {1}%
 Medical,Медицинский
-Medium,Средние булки
+Medium,Средний
 "Merging is only possible if following properties are same in both records. Group or Ledger, Root Type, Company","Слияние возможно только при следующие свойства одинаковы в обоих записей. Группа или Леджер, корень Тип, Компания"
 Message,Сообщение
-Message Parameter,Сообщение Параметр
+Message Parameter,Параметры сообщения
 Message Sent,Сообщение отправлено
-Message updated,Сообщение обновляется
+Message updated,Сообщение обновлено
 Messages,Сообщения
 Messages greater than 160 characters will be split into multiple messages,"Сообщения больше, чем 160 символов будет разделен на несколько сообщений"
-Middle Income,Средним уровнем доходов
-Milestone,Веха
-Milestone Date,Дата реализации
+Middle Income,Средний доход
+Milestone,Этап
+Milestone Date,Дата реализации этапа
 Milestones,Основные этапы
-Milestones will be added as Events in the Calendar,Вехи будет добавлен в качестве событий в календаре
+Milestones will be added as Events in the Calendar,Этапы проекта будут добавлены в качестве событий календаря
 Min Order Qty,Минимальный заказ Кол-во
 Min Qty,Мин Кол-во
-Min Qty can not be greater than Max Qty,"Мин Кол-во не может быть больше, чем Max Кол-во"
+Min Qty can not be greater than Max Qty,"Мин Кол-во не может быть больше, чем максимальное Кол-во"
 Minimum Amount,Минимальная сумма
 Minimum Order Qty,Минимальное количество заказа
-Minute,Минут
+Minute,Минута
 Misc Details,Разное Подробности
 Miscellaneous Expenses,Прочие расходы
 Miscelleneous,Miscelleneous
-Mobile No,Мобильная Нет
+Mobile No,Мобильный номер
 Mobile No.,Мобильный номер
-Mode of Payment,Способ платежа
+Mode of Payment,Способ оплаты
 Modern,"модные,"
 Monday,Понедельник
 Month,Mесяц
@@ -1708,7 +1709,7 @@
 "Name of new Account. Note: Please don't create accounts for Customers and Suppliers, they are created automatically from the Customer and Supplier master","Имя нового счета. Примечание: Пожалуйста, не создавать учетные записи для клиентов и поставщиков, они создаются автоматически от Заказчика и поставщика оригиналов"
 Name of person or organization that this address belongs to.,"Имя лица или организации, что этот адрес принадлежит."
 Name of the Budget Distribution,Название Распределение бюджета
-Naming Series,Именование Series
+Naming Series,Наименование серии
 Negative Quantity is not allowed,Отрицательный Количество не допускается
 Negative Stock Error ({6}) for Item {0} in Warehouse {1} on {2} {3} in {4} {5},Отрицательный Ошибка со ({6}) по пункту {0} в Склад {1} на {2} {3} в {4} {5}
 Negative Valuation Rate is not allowed,Отрицательный Оценка курс не допускается
@@ -1723,7 +1724,7 @@
 Net Weight of each Item,Вес нетто каждого пункта
 Net pay cannot be negative,Чистая зарплата не может быть отрицательным
 Never,Никогда
-New ,
+New ,Новый
 New Account,Новая учетная запись
 New Account Name,Новый Имя счета
 New BOM,Новый BOM
@@ -1754,11 +1755,11 @@
 New Workplace,Новый Место работы
 Newsletter,Рассылка новостей
 Newsletter Content,Рассылка Содержимое
-Newsletter Status,Рассылка Статус
+Newsletter Status, Статус рассылки
 Newsletter has already been sent,Информационный бюллетень уже был отправлен
 "Newsletters to contacts, leads.","Бюллетени для контактов, приводит."
 Newspaper Publishers,Газетных издателей
-Next,Следующая
+Next,Следующий
 Next Contact By,Следующая Контактные По
 Next Contact Date,Следующая контакты
 Next Date,Следующая Дата
@@ -1790,38 +1791,38 @@
 No records found in the Invoice table,Не записи не найдено в таблице счетов
 No records found in the Payment table,Не записи не найдено в таблице оплаты
 No salary slip found for month: ,
-Non Profit,Разное
+Non Profit,Не коммерческое
 Nos,кол-во
-Not Active,Не активность
+Not Active,Не активно
 Not Applicable,Не применяется
 Not Available,Не доступен
 Not Billed,Не Объявленный
-Not Delivered,Не Поставляются
+Not Delivered,Не доставлен
 Not Set,Не указано
 Not allowed to update stock transactions older than {0},"Не допускается, чтобы обновить биржевые операции старше {0}"
 Not authorized to edit frozen Account {0},Не разрешается редактировать замороженный счет {0}
 Not authroized since {0} exceeds limits,Не Authroized с {0} превышает пределы
 Not permitted,Не допускается
-Note,Заметье
-Note User,Примечание Пользователь
+Note,Заметка
+Note User,Примечание пользователя
 "Note: Backups and files are not deleted from Dropbox, you will have to delete them manually.","Примечание: Резервные копии и файлы не удаляются из Dropbox, вам придется удалить их вручную."
 "Note: Backups and files are not deleted from Google Drive, you will have to delete them manually.","Примечание: Резервные копии и файлы не удаляются из Google Drive, вам придется удалить их вручную."
 Note: Due Date exceeds the allowed credit days by {0} day(s),Примечание: В связи Дата превышает разрешенный кредит дня на {0} день (дни)
-Note: Email will not be sent to disabled users,Примечание: E-mail не будет отправлен пользователей с ограниченными возможностями
-Note: Item {0} entered multiple times,Примечание: Пункт {0} вошли несколько раз
+Note: Email will not be sent to disabled users,Примечание: E-mail не будет отправлен отключенному пользователю
+Note: Item {0} entered multiple times,Примечание: Пункт {0} имеет несколько вхождений
 Note: Payment Entry will not be created since 'Cash or Bank Account' was not specified,"Примечание: Оплата Вступление не будет создана, так как ""Наличные или Банковский счет"" не был указан"
 Note: System will not check over-delivery and over-booking for Item {0} as quantity or amount is 0,Примечание: Система не будет проверять по-доставки и избыточного бронирования по пункту {0} как количестве 0
 Note: There is not enough leave balance for Leave Type {0},Примечание: Существует не хватает отпуск баланс для отпуске Тип {0}
 Note: This Cost Center is a Group. Cannot make accounting entries against groups.,Примечание: Эта МВЗ является Группа. Невозможно сделать бухгалтерские проводки против групп.
 Note: {0},Примечание: {0}
-Notes,Примечания
-Notes:,Примечание:
+Notes,Заметки
+Notes:,Заметки:
 Nothing to request,Ничего просить
 Notice (days),Уведомление (дней)
-Notification Control,Контроль Уведомление
-Notification Email Address,Уведомление E-mail адрес
+Notification Control,Контроль Уведомлений
+Notification Email Address,E-mail адрес для уведомлений
 Notify by Email on creation of automatic Material Request,Сообщите по электронной почте по созданию автоматической запрос материалов
-Number Format,Number Формат
+Number Format,Числовой\валютный формат
 Offer Date,Предложение Дата
 Office,Офис
 Office Equipments,Оборудование офиса
@@ -1836,9 +1837,9 @@
 "Only Serial Nos with status ""Available"" can be delivered.","Только Серийный Нос со статусом ""В наличии"" может быть доставлено."
 Only leaf nodes are allowed in transaction,Только листовые узлы допускаются в сделке
 Only the selected Leave Approver can submit this Leave Application,Только выбранный Оставить утверждающий мог представить этот Оставить заявку
-Open,Открыть
+Open,Открыт
 Open Production Orders,Открыть Производственные заказы
-Open Tickets,Открытые Билеты
+Open Tickets,Открытые заявку
 Opening (Cr),Открытие (Cr)
 Opening (Dr),Открытие (д-р)
 Opening Date,Открытие Дата
@@ -1965,7 +1966,7 @@
 Payment of salary for the month {0} and year {1},Выплата заработной платы за месяц {0} и год {1}
 Payments,Оплата
 Payments Made,"Выплаты, производимые"
-Payments Received,"Платежи, полученные"
+Payments Received,Полученные платежи
 Payments made during the digest period,Платежи в период дайджест
 Payments received during the digest period,"Платежи, полученные в период дайджест"
 Payroll Settings,Настройки по заработной плате
@@ -1993,7 +1994,7 @@
 Pharmaceutical,Фармацевтический
 Pharmaceuticals,Фармацевтика
 Phone,Телефон
-Phone No,Телефон Нет
+Phone No,Номер телефона
 Piecework,Сдельная работа
 Pincode,Pincode
 Place of Issue,Место выдачи
@@ -2176,17 +2177,17 @@
 Professional Tax,Профессиональный Налоговый
 Profit and Loss,Прибыль и убытки
 Profit and Loss Statement,Счет прибылей и убытков
-Project,Адаптация
-Project Costing,Проект стоимостью
-Project Details,Детали проекта
+Project,Проект
+Project Costing,Стоимость проекта
+Project Details,Подробности проекта
 Project Manager,Руководитель проекта
-Project Milestone,Проект Milestone
-Project Milestones,Основные этапы проекта
+Project Milestone,Этап проекта
+Project Milestones,Этапы проекта
 Project Name,Название проекта
 Project Start Date,Дата начала проекта
 Project Type,Тип проекта
-Project Value,Значение проекта
-Project activity / task.,Проектная деятельность / задачей.
+Project Value,Значимость проекта
+Project activity / task.,Проектная деятельность / задачи.
 Project master.,Мастер проекта.
 Project will get saved and will be searchable with project name given,Проект будет спастись и будут доступны для поиска с именем проекта дается
 Project wise Stock Tracking,Проект мудрый слежения со
@@ -2199,7 +2200,7 @@
 Proposal Writing,Предложение Написание
 Provide email id registered in company,Обеспечить электронный идентификатор зарегистрирован в компании
 Provisional Profit / Loss (Credit),Предварительная прибыль / убыток (Кредит)
-Public,Публичный
+Public,Публично
 Published on website at: {0},Опубликовано на веб-сайте по адресу: {0}
 Publishing,Публикация
 Pull sales orders (pending to deliver) based on the above criteria,"Потяните заказы на продажу (в ожидании, чтобы доставить) на основе вышеуказанных критериев"
@@ -2542,17 +2543,17 @@
 Sales Taxes and Charges,Продажи Налоги и сборы
 Sales Taxes and Charges Master,Продажи Налоги и сборы Мастер
 Sales Team,Отдел продаж
-Sales Team Details,Отдел продаж Подробнее
+Sales Team Details,Описание отдела продаж
 Sales Team1,Команда1 продаж
 Sales and Purchase,Купли-продажи
 Sales campaigns.,Кампании по продажам.
-Salutation,Заключение
+Salutation,Обращение
 Sample Size,Размер выборки
 Sanctioned Amount,Санкционированный Количество
 Saturday,Суббота
 Schedule,Расписание
-Schedule Date,Расписание Дата
-Schedule Details,Расписание Подробнее
+Schedule Date,Дата планирования
+Schedule Details,Подробности расписания
 Scheduled,Запланированно
 Scheduled Date,Запланированная дата
 Scheduled to send to {0},Планируется отправить {0}
@@ -2564,7 +2565,7 @@
 Score must be less than or equal to 5,Оценка должна быть меньше или равна 5
 Scrap %,Лом%
 Seasonality for setting budgets.,Сезонность для установления бюджетов.
-Secretary,СЕКРЕТАРЬ
+Secretary,Секретарь
 Secured Loans,Обеспеченные кредиты
 Securities & Commodity Exchanges,Ценные бумаги и товарных бирж
 Securities and Deposits,Ценные бумаги и депозиты
@@ -2578,7 +2579,7 @@
 Select Budget Distribution to unevenly distribute targets across months.,Выберите бюджета Распределение чтобы неравномерно распределить цели через месяцев.
 "Select Budget Distribution, if you want to track based on seasonality.","Выберите бюджета Distribution, если вы хотите, чтобы отслеживать на основе сезонности."
 Select Company...,Выберите компанию ...
-Select DocType,Выберите DocType
+Select DocType,Выберите тип документа
 Select Fiscal Year...,Выберите финансовый год ...
 Select Items,Выберите товары
 Select Project...,Выберите проект ...
@@ -2586,8 +2587,8 @@
 Select Sales Orders,Выберите заказы на продажу
 Select Sales Orders from which you want to create Production Orders.,Выберите Заказы из которого вы хотите создать производственных заказов.
 Select Time Logs and Submit to create a new Sales Invoice.,Выберите Журналы время и предоставить для создания нового счета-фактуры.
-Select Transaction,Выберите сделка
-Select Warehouse...,Выберите Warehouse ...
+Select Transaction,Выберите операцию
+Select Warehouse...,Выберите склад...
 Select Your Language,Выбор языка
 Select account head of the bank where cheque was deposited.,"Выберите учетную запись глава банка, в котором проверка была размещена."
 Select company name first.,Выберите название компании в первую очередь.
@@ -2608,7 +2609,7 @@
 "Selling must be checked, if Applicable For is selected as {0}","Продажа должна быть проверена, если выбран Применимо для как {0}"
 Send,Отправить
 Send Autoreply,Отправить автоответчике
-Send Email,Отправить на e-mail
+Send Email,Отправить e-mail
 Send From,Отправить От
 Send Notifications To,Отправлять уведомления
 Send Now,Отправить Сейчас
@@ -2621,10 +2622,10 @@
 Sent On,Направлено на
 Separate production order will be created for each finished good item.,Отдельный производственный заказ будет создан для каждого готового хорошего пункта.
 Serial No,Серийный номер
-Serial No / Batch,Серийный номер / Пакетный
-Serial No Details,Серийный Нет Информация
+Serial No / Batch,Серийный номер / Партия
+Serial No Details,Серийный номер подробнее
 Serial No Service Contract Expiry,Серийный номер Сервисный контракт Срок
-Serial No Status,не Серийный Нет Положение
+Serial No Status,Серийный номер статус
 Serial No Warranty Expiry,не Серийный Нет Гарантия Срок
 Serial No is mandatory for Item {0},Серийный номер является обязательным для п. {0}
 Serial No {0} created,Серийный номер {0} создан
@@ -2632,7 +2633,7 @@
 Serial No {0} does not belong to Item {1},Серийный номер {0} не принадлежит Пункт {1}
 Serial No {0} does not belong to Warehouse {1},Серийный номер {0} не принадлежит Склад {1}
 Serial No {0} does not exist,Серийный номер {0} не существует
-Serial No {0} has already been received,Серийный номер {0} уже получил
+Serial No {0} has already been received,Серийный номер {0} уже существует
 Serial No {0} is under maintenance contract upto {1},Серийный номер {0} находится под контрактом на техническое обслуживание ДО {1}
 Serial No {0} is under warranty upto {1},Серийный номер {0} находится на гарантии ДО {1}
 Serial No {0} not in stock,Серийный номер {0} не в наличии
@@ -2650,7 +2651,7 @@
 Series {0} already used in {1},Серия {0} уже используется в {1}
 Service,Услуга
 Service Address,Адрес сервисного центра
-Service Tax,Налоговой службы
+Service Tax,Налоговая служба
 Services,Услуги
 Set,Задать
 "Set Default Values like Company, Currency, Current Fiscal Year, etc.","Установить значения по умолчанию, как Болгарии, Валюта, текущий финансовый год и т.д."
@@ -2666,7 +2667,7 @@
 Settings,Настройки
 Settings for HR Module,Настройки для модуля HR
 "Settings to extract Job Applicants from a mailbox e.g. ""jobs@example.com""","Настройки для извлечения Работа Кандидаты от почтового ящика, например ""jobs@example.com"""
-Setup,Настройка
+Setup,Настройки
 Setup Already Complete!!,Настройка Уже завершена!!
 Setup Complete,Завершение установки
 Setup SMS gateway settings,Настройки Настройка SMS Gateway
@@ -2676,7 +2677,7 @@
 Setup incoming server for sales email id. (e.g. sales@example.com),Настройка сервера входящей для продажи электронный идентификатор. (Например sales@example.com)
 Setup incoming server for support email id. (e.g. support@example.com),Настройка сервера входящей для поддержки электронный идентификатор. (Например support@example.com)
 Share,Поделиться
-Share With,Поделись с
+Share With,Поделиться с
 Shareholders Funds,Акционеры фонды
 Shipments to customers.,Поставки клиентам.
 Shipping,Доставка
@@ -2692,7 +2693,7 @@
 Short biography for website and other publications.,Краткая биография для веб-сайта и других изданий.
 "Show ""In Stock"" or ""Not in Stock"" based on stock available in this warehouse.","Показать ""На складе"" или ""нет на складе"", основанный на складе имеющейся в этом складе."
 "Show / Hide features like Serial Nos, POS etc.","Показать / скрыть функции, такие как последовательный Нос, POS и т.д."
-Show In Website,Показать В веб-сайте
+Show In Website,Показать на сайте
 Show a slideshow at the top of the page,Показ слайдов в верхней части страницы
 Show in Website,Показать в веб-сайт
 Show rows with zero values,Показать строки с нулевыми значениями
@@ -2700,7 +2701,7 @@
 Sick Leave,Отпуск по болезни
 Signature,Подпись
 Signature to be appended at the end of every email,"Подпись, которая будет добавлена в конце каждого письма"
-Single,1
+Single,Единственный
 Single unit of an Item.,Одно устройство элемента.
 Sit tight while your system is being setup. This may take a few moments.,"Сиди, пока система в настоящее время установки. Это может занять несколько секунд."
 Slideshow,Слайд-шоу
@@ -2717,7 +2718,7 @@
 Source warehouse is mandatory for row {0},Источник склад является обязательным для ряда {0}
 Spartan,Спартанский
 "Special Characters except ""-"" and ""/"" not allowed in naming series","Специальные символы, кроме ""-"" и ""/"" не допускается в серию называя"
-Specification Details,Спецификация Подробности
+Specification Details,Подробности спецификации
 Specifications,Спецификации
 "Specify a list of Territories, for which, this Price List is valid","Укажите список территорий, для которых, это прайс-лист действителен"
 "Specify a list of Territories, for which, this Shipping Rule is valid","Укажите список территорий, на которые это правило пересылки действует"
@@ -2744,13 +2745,14 @@
 Status updated to {0},Статус обновлен до {0}
 Statutory info and other general information about your Supplier,Уставный информации и другие общие сведения о вашем Поставщик
 Stay Updated,Будьте в курсе
-Stock,Акции
-Stock Adjustment,Фото со Регулировка
-Stock Adjustment Account,Фото со Регулировка счета
-Stock Ageing,Фото Старение
-Stock Analytics,Акции Аналитика
-Stock Assets,Фондовые активы
-Stock Balance,Фото со Баланс
+Stock,Запас
+Stock Adjustment,Регулирование запасов
+Stock Adjustment Account,Регулирование счета запасов
+Stock Ageing,Старение запасов
+Stock Analytics, Анализ запасов
+Stock Assets,"Капитал запасов
+"
+Stock Balance,Баланс запасов
 Stock Entries already created for Production Order ,
 Stock Entry,Фото Вступление
 Stock Entry Detail,Фото Вступление Подробно
@@ -2962,7 +2964,7 @@
 Time and Budget,Время и бюджет
 Time at which items were delivered from warehouse,"Момент, в который предметы были доставлены со склада"
 Time at which materials were received,"Момент, в который были получены материалы"
-Title,Как к вам обращаться?
+Title,Заголовок
 Titles for print templates e.g. Proforma Invoice.,"Титулы для шаблонов печати, например, счет-проформа."
 To,До
 To Currency,В валюту
@@ -2970,7 +2972,7 @@
 To Date should be same as From Date for Half Day leave,"Чтобы Дата должна быть такой же, как С даты в течение половины дня отпуска"
 To Date should be within the Fiscal Year. Assuming To Date = {0},Чтобы Дата должна быть в пределах финансового года. Предполагая To Date = {0}
 To Discuss,Для Обсудить
-To Do List,Задачи
+To Do List,Список задач
 To Package No.,Для пакета №
 To Produce,Чтобы продукты
 To Time,Чтобы время
@@ -3159,7 +3161,7 @@
 Warehouse,Склад
 Warehouse Contact Info,Склад Контактная информация
 Warehouse Detail,Склад Подробно
-Warehouse Name,Склад Имя
+Warehouse Name,Название склада
 Warehouse and Reference,Склад и справочники
 Warehouse can not be deleted as stock ledger entry exists for this warehouse.,Склад не может быть удален как существует запись складе книга для этого склада.
 Warehouse can only be changed via Stock Entry / Delivery Note / Purchase Receipt,Склад может быть изменен только с помощью со входа / накладной / Покупка получении
@@ -3219,12 +3221,13 @@
 Wire Transfer,Банковский перевод
 With Operations,С операций
 With Period Closing Entry,С Период закрытия въезда
-Work Details,Рабочие Подробнее
+Work Details,"Подробности работы
+"
 Work Done,Сделано
 Work In Progress,Работа продолжается
 Work-in-Progress Warehouse,Работа-в-Прогресс Склад
 Work-in-Progress Warehouse is required before Submit,Работа-в-Прогресс Склад требуется перед Отправить
-Working,На рабо
+Working,Работающий
 Working Days,В рабочие дни
 Workstation,Рабочая станция
 Workstation Name,Имя рабочей станции
@@ -3329,3 +3332,49 @@
 {0} {1} status is Unstopped,{0} {1} статус отверзутся
 {0} {1}: Cost Center is mandatory for Item {2},{0} {1}: МВЗ является обязательным для п. {2}
 {0}: {1} not found in Invoice Details table,{0} {1} не найден в счете-фактуре таблице
+"<a href=""#Sales Browser/Customer Group"">Add / Edit</a>","<a href=""#Sales Browser/Customer Group""> Добавить / Изменить </>"
+"<a href=""#Sales Browser/Territory"">Add / Edit</a>","<a href=""#Sales Browser/Territory""> Добавить / Изменить </>"
+Billed,Объявленный
+Company,Организация
+Currency is required for Price List {0},Валюта необходима для Прейскурантом {0}
+Default Customer Group,По умолчанию Группа клиентов
+Default Territory,По умолчанию Территория
+Delivered,Доставлено
+Enable Shopping Cart,Включить Корзина
+Go ahead and add something to your cart.,Идем дальше и добавить что-то в корзину.
+Hey! Go ahead and add an address,16.35 Эй! Идем дальше и добавить адрес
+Invalid Billing Address,Неверный Адрес для выставления счета
+Invalid Shipping Address,Неверный адрес пересылки
+Missing Currency Exchange Rates for {0},Отсутствует валютный курс для {0}
+Name is required,Имя обязательно
+Not Allowed,Не разрешены
+Paid,Оплачено
+Partially Billed,Частично Объявленный
+Partially Delivered,Частично Поставляются
+Please specify a Price List which is valid for Territory,"Пожалуйста, сформулируйте прайс-лист, который действителен для территории"
+Please specify currency in Company,"Пожалуйста, сформулируйте валюту в компании"
+Please write something,"Пожалуйста, напишите что-нибудь"
+Please write something in subject and message!,"Пожалуйста, напишите что-нибудь в тему и текст сообщения!"
+Price List,Прайс-лист
+Price List not configured.,Прайс-лист не настроен.
+Quotation Series,Цитата серии
+Shipping Rule,Правило Доставка
+Shopping Cart,Корзина
+Shopping Cart Price List,Корзина Прайс-лист
+Shopping Cart Price Lists,Корзина Прайс-листы
+Shopping Cart Settings,Корзина Настройки
+Shopping Cart Shipping Rule,Корзина Правило Доставка
+Shopping Cart Shipping Rules,Корзина Правила Доставка
+Shopping Cart Taxes and Charges Master,Корзина Налоги и сборы Мастер
+Shopping Cart Taxes and Charges Masters,Налоги Корзина Торговые и сборы Мастера
+Something went wrong!,Что-то пошло не так!
+Something went wrong.,Что-то пошло не так.
+Tax Master,Налоговый Мастер
+To Pay,Платить
+Updated,Обновлено
+You are not allowed to reply to this ticket.,Вы не можете отвечать на этот билет.
+You need to be logged in to view your cart.,"Вы должны войти в систему, чтобы просмотреть свою корзину."
+You need to enable Shopping Cart,Вам необходимо включить Корзина
+{0} cannot be purchased using Shopping Cart,{0} не может быть приобретен с помощью Корзина
+{0} is required,{0} требуется
+{0} {1} has a common territory {2},{0} {1} имеет общую территорию {2}
diff --git a/erpnext/translations/sr.csv b/erpnext/translations/sr.csv
index 8ff80e0..8a84ef7 100644
--- a/erpnext/translations/sr.csv
+++ b/erpnext/translations/sr.csv
@@ -3329,3 +3329,49 @@
 {0} {1} status is Unstopped,{0} {1} статус отверзутся
 {0} {1}: Cost Center is mandatory for Item {2},{0} {1}: Трошкови Центар је обавезан за пункт {2}
 {0}: {1} not found in Invoice Details table,{0}: {1} није пронађен у табели Фактура Детаљи
+"<a href=""#Sales Browser/Customer Group"">Add / Edit</a>","<а хреф=""#Салес Бровсер/Цустомер Гроуп""> Додај / Уреди < />"
+"<a href=""#Sales Browser/Territory"">Add / Edit</a>","<а хреф=""#Салес Бровсер/Территори""> Додај / Уреди < />"
+Billed,Изграђена
+Company,Компанија
+Currency is required for Price List {0},Валюта необходима для Прейскурантом {0}
+Default Customer Group,Уобичајено групу потрошача
+Default Territory,Уобичајено Територија
+Delivered,Испоручено
+Enable Shopping Cart,Омогући Корпа
+Go ahead and add something to your cart.,Само напред и додати нешто у вашој корпи.
+Hey! Go ahead and add an address,Хеј! Само напред и додај адресу
+Invalid Billing Address,Неверный Адрес для выставления счета
+Invalid Shipping Address,Неверный адрес пересылки
+Missing Currency Exchange Rates for {0},Отсутствует валютный курс для {0}
+Name is required,Име је обавезно
+Not Allowed,Не разрешены
+Paid,плаћен
+Partially Billed,Делимично Изграђена
+Partially Delivered,Делимично Испоручено
+Please specify a Price List which is valid for Territory,Наведите ценовник који важи за територију
+Please specify currency in Company,Наведите валуту у компанији
+Please write something,Молимо вас да напишете нешто
+Please write something in subject and message!,Молимо вас да напишете нешто у теми и поруци !
+Price List,Ценовник
+Price List not configured.,Ценовник није подесио.
+Quotation Series,Цитат серија
+Shipping Rule,Достава Правило
+Shopping Cart,Корпа
+Shopping Cart Price List,Корпа Ценовник
+Shopping Cart Price Lists,Корпа Ценовници
+Shopping Cart Settings,Корпа Подешавања
+Shopping Cart Shipping Rule,Корпа Достава Правило
+Shopping Cart Shipping Rules,Корпа испоруке Правила
+Shopping Cart Taxes and Charges Master,Корпа такси и накнада Мастер
+Shopping Cart Taxes and Charges Masters,Корпа такси и накнада Мастерс
+Something went wrong!,Нешто је пошло наопако!
+Something went wrong.,Нешто је пошло наопако.
+Tax Master,Пореска Мастер
+To Pay,То Паи
+Updated,Ажурирано
+You are not allowed to reply to this ticket.,Нисте дозвољено да одговори на ову карту .
+You need to be logged in to view your cart.,Морате бити пријављени да бисте видели вашу корпу.
+You need to enable Shopping Cart,Вам необходимо включить Корзина
+{0} cannot be purchased using Shopping Cart,{0} не может быть приобретен с помощью Корзина
+{0} is required,{0} требуется
+{0} {1} has a common territory {2},{0} {1} имеет общую территорию {2}
diff --git a/erpnext/translations/ta.csv b/erpnext/translations/ta.csv
index c32864b..7717a7f 100644
--- a/erpnext/translations/ta.csv
+++ b/erpnext/translations/ta.csv
@@ -3329,3 +3329,49 @@
 {0} {1} status is Unstopped,{0} {1} நிலையை ஐபோனில் இருக்கிறது
 {0} {1}: Cost Center is mandatory for Item {2},{0} {1}: செலவு மையம் பொருள் கட்டாய {2}
 {0}: {1} not found in Invoice Details table,{0} {1} விலைப்பட்டியல் விவரம் அட்டவணையில் இல்லை
+"<a href=""#Sales Browser/Customer Group"">Add / Edit</a>","மிக href=""#Sales Browser/Customer Group""> சேர் / திருத்து </ a>"
+"<a href=""#Sales Browser/Territory"">Add / Edit</a>","மிக href=""#Sales Browser/Territory""> சேர் / திருத்து </ a>"
+Billed,கட்டணம்
+Company,நிறுவனம்
+Currency is required for Price List {0},நாணய விலை பட்டியல் தேவை {0}
+Default Customer Group,முன்னிருப்பு வாடிக்கையாளர் பிரிவு
+Default Territory,முன்னிருப்பு மண்டலம்
+Delivered,வழங்கினார்
+Enable Shopping Cart,வணிக வண்டியில் செயல்படுத்த
+Go ahead and add something to your cart.,முன்னோக்கி சென்று உங்கள் வண்டி ஒன்று சேர்க்க.
+Hey! Go ahead and add an address,ஏய்! போய் ஒரு முகவரியை சேர்க்க
+Invalid Billing Address,தவறான பில்லிங் முகவரி
+Invalid Shipping Address,செல்லாத கப்பல் முகவரி
+Missing Currency Exchange Rates for {0},ஐந்து நாணய மாற்று விகிதங்கள் காணவில்லை {0}
+Name is required,பெயர் தேவை
+Not Allowed,அனுமதி இல்லை
+Paid,பணம்
+Partially Billed,பகுதி கூறப்படுவது
+Partially Delivered,பகுதியளவு வழங்கப்படுகிறது
+Please specify a Price List which is valid for Territory,மண்டலம் செல்லுபடியாகும் ஒரு விலை பட்டியல் குறிப்பிடவும்
+Please specify currency in Company,நிறுவனத்தின் நாணய குறிப்பிடவும்
+Please write something,ஏதாவது எழுத கொள்ளவும்
+Please write something in subject and message!,பொருள் மற்றும் செய்தி ஏதாவது எழுத கொள்ளவும் !
+Price List,விலை பட்டியல்
+Price List not configured.,விலை பட்டியல் கட்டமைக்கப்பட்ட.
+Quotation Series,மேற்கோள் தொடர்
+Shipping Rule,கப்பல் விதி
+Shopping Cart,வணிக வண்டி
+Shopping Cart Price List,வணிக வண்டியில் விலை பட்டியல்
+Shopping Cart Price Lists,வணிக வண்டியில் விலை பட்டியல்கள்
+Shopping Cart Settings,வணிக வண்டியில் அமைப்புகள்
+Shopping Cart Shipping Rule,வணிக வண்டியில் கப்பல் போக்குவரத்து விதி
+Shopping Cart Shipping Rules,வணிக வண்டியில் கப்பல் போக்குவரத்து விதிகள்
+Shopping Cart Taxes and Charges Master,வணிக வண்டியில் வரிகள் மற்றும் கட்டணங்கள் மாஸ்டர்
+Shopping Cart Taxes and Charges Masters,வணிக வண்டியில் வரிகள் மற்றும் கட்டணங்கள் முதுநிலை
+Something went wrong!,ஏதோ தவறு!
+Something went wrong.,ஏதோ தவறு நடந்துவிட்டது.
+Tax Master,வரி மாஸ்டர்
+To Pay,பணம்
+Updated,புதுப்பிக்கப்பட்ட
+You are not allowed to reply to this ticket.,இந்த டிக்கெட் பதில் அனுமதி இல்லை .
+You need to be logged in to view your cart.,உங்கள் வண்டி பார்வையிட உள்நுழைந்திருக்க வேண்டும்.
+You need to enable Shopping Cart,வணிக வண்டியில் செயல்படுத்த வேண்டும்
+{0} cannot be purchased using Shopping Cart,{0} வணிக வண்டியில் பயன்படுத்தி வாங்க முடியாது
+{0} is required,{0} தேவைப்படுகிறது
+{0} {1} has a common territory {2},{0} {1} ஒரு பொதுவான பகுதியில் உள்ளது {2}
diff --git a/erpnext/translations/th.csv b/erpnext/translations/th.csv
index 47462b7..7f59ef7 100644
--- a/erpnext/translations/th.csv
+++ b/erpnext/translations/th.csv
@@ -1559,9 +1559,9 @@
 Maintenance,การบำรุงรักษา
 Maintenance Date,วันที่การบำรุงรักษา
 Maintenance Details,รายละเอียดการบำรุงรักษา
-Maintenance Schedule,ตารางการบำรุงรักษา
-Maintenance Schedule Detail,รายละเอียดตารางการบำรุงรักษา
-Maintenance Schedule Item,รายการตารางการบำรุงรักษา
+Maintenance Schedule,กำหนดการซ่อมบำรุง
+Maintenance Schedule Detail,รายละเอียดกำหนดการซ่อมบำรุง
+Maintenance Schedule Item,รายการกำหนดการซ่อมบำรุง
 Maintenance Schedule is not generated for all the items. Please click on 'Generate Schedule',ตาราง การบำรุงรักษา ที่ไม่ได้ สร้างขึ้นสำหรับ รายการทั้งหมด กรุณา คลิกที่ 'สร้าง ตาราง '
 Maintenance Schedule {0} exists against {0},ตาราง การบำรุงรักษา {0} อยู่ กับ {0}
 Maintenance Schedule {0} must be cancelled before cancelling this Sales Order,ตาราง การบำรุงรักษา {0} ต้อง ถูกยกเลิก ก่อนที่จะ ยกเลิกการ สั่งซื้อการขาย นี้
@@ -1574,7 +1574,7 @@
 Maintenance Visit {0} must be cancelled before cancelling this Sales Order,การบำรุงรักษา ไปที่ {0} ต้อง ถูกยกเลิก ก่อนที่จะ ยกเลิกการ สั่งซื้อการขาย นี้
 Maintenance start date can not be before delivery date for Serial No {0},วันที่เริ่มต้น การบำรุงรักษา ไม่สามารถ ก่อนวัน ส่งสำหรับ อนุกรม ไม่มี {0}
 Major/Optional Subjects,วิชาเอก / เสริม
-Make ,
+Make ,สร้าง
 Make Accounting Entry For Every Stock Movement,ทำให้ รายการ บัญชี สำหรับ ทุก การเคลื่อนไหวของ หุ้น
 Make Bank Voucher,ทำให้บัตรของธนาคาร
 Make Credit Note,ให้ เครดิต หมายเหตุ
@@ -1587,7 +1587,7 @@
 Make Maint. Schedule,ทำให้ Maint ตารางเวลา
 Make Maint. Visit,ทำให้ Maint เยือน
 Make Maintenance Visit,ทำให้ การบำรุงรักษา เยี่ยมชม
-Make Packing Slip,ให้ บรรจุ สลิป
+Make Packing Slip,สร้าง รายการบรรจุภัณฑ์
 Make Payment,ชำระเงิน
 Make Payment Entry,ทำ รายการ ชำระเงิน
 Make Purchase Invoice,ให้ ซื้อ ใบแจ้งหนี้
@@ -1628,7 +1628,7 @@
 Master Name,ชื่อปริญญาโท
 Master Name is mandatory if account type is Warehouse,ชื่อ ปริญญาโท มีผลบังคับใช้ ถ้าชนิด บัญชี คลังสินค้า
 Master Type,ประเภทหลัก
-Masters,โท
+Masters,ข้อมูลหลัก
 Match non-linked Invoices and Payments.,ตรงกับใบแจ้งหนี้ไม่ได้เชื่อมโยงและการชำระเงิน
 Material Issue,ฉบับวัสดุ
 Material Receipt,ใบเสร็จรับเงินวัสดุ
@@ -2465,7 +2465,7 @@
 Rules for adding shipping costs.,กฎระเบียบ สำหรับการเพิ่ม ค่าใช้จ่ายใน การจัดส่งสินค้า
 Rules for applying pricing and discount.,กฎระเบียบ สำหรับการใช้ การกำหนดราคาและ ส่วนลด
 Rules to calculate shipping amount for a sale,กฎระเบียบในการคำนวณปริมาณการขนส่งสินค้าสำหรับการขาย
-S.O. No.,S.O. เลขที่
+S.O. No.,เลขที่ใบสั่งขาย
 SHE Cess on Excise,SHE Cess บนสรรพสามิต
 SHE Cess on Service Tax,SHE Cess กับภาษีบริการ
 SHE Cess on TDS,SHE Cess ใน TDS
@@ -2550,7 +2550,7 @@
 Sample Size,ขนาดของกลุ่มตัวอย่าง
 Sanctioned Amount,จำนวนตามทำนองคลองธรรม
 Saturday,วันเสาร์
-Schedule,กำหนด
+Schedule,กำหนดการ
 Schedule Date,กำหนดการ วันที่
 Schedule Details,รายละเอียดตาราง
 Scheduled,กำหนด
@@ -2564,7 +2564,7 @@
 Score must be less than or equal to 5,คะแนน ต้องน้อยกว่า หรือ เท่ากับ 5
 Scrap %,เศษ%
 Seasonality for setting budgets.,ฤดูกาลสำหรับงบประมาณการตั้งค่า
-Secretary,เลขานุการ
+Secretary,เลขา
 Secured Loans,เงินให้กู้ยืม ที่มีหลักประกัน
 Securities & Commodity Exchanges,หลักทรัพย์และ การแลกเปลี่ยน สินค้าโภคภัณฑ์
 Securities and Deposits,หลักทรัพย์และ เงินฝาก
@@ -2603,14 +2603,14 @@
 "Selecting ""Yes"" will allow you to create Bill of Material showing raw material and operational costs incurred to manufacture this item.",เลือก &quot;ใช่&quot; จะช่วยให้คุณสามารถสร้างบิลของวัสดุแสดงวัตถุดิบและต้นทุนการดำเนินงานที่เกิดขึ้นในการผลิตรายการนี​​้
 "Selecting ""Yes"" will allow you to make a Production Order for this item.",เลือก &quot;ใช่&quot; จะช่วยให้คุณที่จะทำให้การสั่งซื้อการผลิตสำหรับรายการนี​​้
 "Selecting ""Yes"" will give a unique identity to each entity of this item which can be viewed in the Serial No master.",เลือก &quot;Yes&quot; จะให้เอกลักษณ์เฉพาะของแต่ละองค์กรเพื่อรายการนี​​้ซึ่งสามารถดูได้ในหลักหมายเลขเครื่อง
-Selling,ขาย
-Selling Settings,การขายการตั้งค่า
+Selling,การขาย
+Selling Settings,ตั้งค่าระบบการขาย
 "Selling must be checked, if Applicable For is selected as {0}",ขายจะต้องตรวจสอบถ้าใช้สำหรับการถูกเลือกเป็น {0}
 Send,ส่ง
 Send Autoreply,ส่ง autoreply
 Send Email,ส่งอีเมล์
-Send From,ส่งเริ่มต้นที่
-Send Notifications To,ส่งการแจ้งเตือนไป
+Send From,ส่งจาก
+Send Notifications To,แจ้งเตือนไปให้
 Send Now,ส่งเดี๋ยวนี้
 Send SMS,ส่ง SMS
 Send To,ส่งให้
@@ -3329,3 +3329,49 @@
 {0} {1} status is Unstopped,{0} {1} สถานะ เบิก
 {0} {1}: Cost Center is mandatory for Item {2},{0} {1}: ศูนย์ต้นทุนจำเป็นสำหรับรายการ {2}
 {0}: {1} not found in Invoice Details table,{0}: {1} ไม่พบในตารางรายละเอียดใบแจ้งหนี้
+"<a href=""#Sales Browser/Customer Group"">Add / Edit</a>","<a href=""#Sales Browser/Customer Group""> เพิ่ม / แก้ไข </ a>"
+"<a href=""#Sales Browser/Territory"">Add / Edit</a>","<a href=""#Sales Browser/Territory""> เพิ่ม / แก้ไข </ a>"
+Billed,เรียกเก็บเงิน
+Company,บริษัท
+Currency is required for Price List {0},สกุลเงิน เป็นสิ่งจำเป็นสำหรับ ราคาตามรายการ {0}
+Default Customer Group,กลุ่มลูกค้าเริ่มต้น
+Default Territory,ดินแดนเริ่มต้น
+Delivered,ส่ง
+Enable Shopping Cart,เปิดใช้งานรถเข็น
+Go ahead and add something to your cart.,ไปข้างหน้าและเพิ่มสิ่งที่รถเข็นของคุณ
+Hey! Go ahead and add an address,นี่ ไปข้างหน้าและเพิ่มที่อยู่
+Invalid Billing Address,ที่อยู่ การเรียกเก็บเงิน ไม่ถูกต้อง
+Invalid Shipping Address,ที่อยู่ ในการจัดส่ง ที่ไม่ถูกต้อง
+Missing Currency Exchange Rates for {0},หายไป สกุลเงิน อัตราแลกเปลี่ยน เพื่อ {0}
+Name is required,ชื่อจะต้อง
+Not Allowed,ไม่อนุญาตให้
+Paid,ต้องจ่าย
+Partially Billed,ในจำนวน บางส่วน
+Partially Delivered,ส่ง บางส่วน
+Please specify a Price List which is valid for Territory,โปรดระบุรายชื่อราคาที่ถูกต้องสำหรับดินแดน
+Please specify currency in Company,โปรดระบุสกุลเงินใน บริษัท
+Please write something,กรุณาเขียน บางสิ่งบางอย่าง
+Please write something in subject and message!,กรุณาเขียน อะไรบางอย่างใน เรื่อง และ ข้อความ !
+Price List,บัญชีแจ้งราคาสินค้า
+Price List not configured.,ราคาไม่ได้กำหนดค่า
+Quotation Series,ชุดใบเสนอราคา
+Shipping Rule,กฎการจัดส่งสินค้า
+Shopping Cart,รถเข็นช้อปปิ้ง
+Shopping Cart Price List,รายการสินค้าราคาสินค้าในรถเข็น
+Shopping Cart Price Lists,ช้อปปิ้งสินค้าราคา Lists
+Shopping Cart Settings,การตั้งค่ารถเข็น
+Shopping Cart Shipping Rule,ช้อปปิ้งรถเข็นกฎการจัดส่งสินค้า
+Shopping Cart Shipping Rules,รถเข็นกฎการจัดส่งสินค้า
+Shopping Cart Taxes and Charges Master,ภาษีรถเข็นและปริญญาโทค่าใช้จ่าย
+Shopping Cart Taxes and Charges Masters,ภาษีรถเข็นช้อปปิ้งและปริญญาโทค่าใช้จ่าย
+Something went wrong!,สิ่งที่ผิดพลาด!
+Something went wrong.,สิ่งที่ผิดพลาด
+Tax Master,ปริญญาโทภาษี
+To Pay,การชำระเงิน
+Updated,อัพเดต
+You are not allowed to reply to this ticket.,คุณยังไม่ได้ รับอนุญาตให้ ตอบกลับ ตั๋ว นี้
+You need to be logged in to view your cart.,คุณต้องเข้าสู่ระบบเพื่อดูรถเข็นของคุณ
+You need to enable Shopping Cart,คุณต้อง เปิดการใช้งาน รถเข็น
+{0} cannot be purchased using Shopping Cart,{0} ไม่สามารถ ซื้อโดยใช้ รถเข็น
+{0} is required,{0} จะต้อง
+{0} {1} has a common territory {2},{0} {1} มีดินแดน ที่พบบ่อย {2}
diff --git a/erpnext/translations/tr.csv b/erpnext/translations/tr.csv
index 0d9fb01..cf023dd 100644
--- a/erpnext/translations/tr.csv
+++ b/erpnext/translations/tr.csv
@@ -34,65 +34,65 @@
 "<a href=""#Sales Browser/Item Group"">Add / Edit</a>","<a href=""#Sales Browser/Item Group""> Ekle / Düzenle </ a>"
 "<a href=""#Sales Browser/Territory"">Add / Edit</a>","<a href=""#Sales Browser/Territory""> Ekle / Düzenle </ a>"
 "<h4>Default Template</h4><p>Uses <a href=""http://jinja.pocoo.org/docs/templates/"">Jinja Templating</a> and all the fields of Address (including Custom Fields if any) will be available</p><pre><code>{{ address_line1 }}&lt;br&gt;{% if address_line2 %}{{ address_line2 }}&lt;br&gt;{% endif -%}{{ city }}&lt;br&gt;{% if state %}{{ state }}&lt;br&gt;{% endif -%}{% if pincode %} PIN:  {{ pincode }}&lt;br&gt;{% endif -%}{{ country }}&lt;br&gt;{% if phone %}Phone: {{ phone }}&lt;br&gt;{% endif -%}{% if fax %}Fax: {{ fax }}&lt;br&gt;{% endif -%}{% if email_id %}Email: {{ email_id }}&lt;br&gt;{% endif -%}</code></pre>","<h4> Standart Şablon </ h4>  <p> <a href=""http://jinja.pocoo.org/docs/templates/""> Jinja Şablon Oluşturma </ a> ve Adres tüm alanları (kullanır Özel alanlar varsa) dahil olmak üzere mevcut olacaktır </ p>  <pre> <code> {{}} address_line1 <br>  {% if address_line2%} {{}} address_line2 <br> { % endif -%}  {{şehir}} <br>  {% eğer devlet%} {{}} devlet <br> {% endif -%}  {% if pinkodu%} PIN: {{}} pinkodu <br> {% endif -%}  {{ülke}} <br>  {% if telefon%} Telefon: {{}} telefon <br> { % endif -%}  {% if%} faks Faks: {{}} faks <br> {% endif -%}  {% email_id%} E-posta ise: {{}} email_id <br> ; {% endif -%}  </ code> </ pre>"
-A Customer Group exists with same name please change the Customer name or rename the Customer Group,Bir Müşteri Grubu aynı adla Müşteri adını değiştirebilir veya Müşteri Grubu yeniden adlandırma lütfen
+A Customer Group exists with same name please change the Customer name or rename the Customer Group,Aynı adlı bir Müşteri Grubu bulunmaktadır. Lütfen Müşteri Grubu ismini değiştirin.
 A Customer exists with same name,Bir Müşteri aynı adla
 A Lead with this email id should exist,Bu e-posta kimliği ile bir Kurşun bulunmalıdır
 A Product or Service,Bir Ürün veya Hizmet
-A Supplier exists with same name,A Tedarikçi aynı adla
-A symbol for this currency. For e.g. $,Bu para için bir sembol. Örneğin $ için
+A Supplier exists with same name,Aynı isimli bir Tedarikçi mevcuttur.
+A symbol for this currency. For e.g. $,Para biriminiz için bir sembol girin. Örneğin $
 AMC Expiry Date,AMC Son Kullanma Tarihi
 Abbr,Kısaltma
-Abbreviation cannot have more than 5 characters,Kısaltma fazla 5 karakter olamaz
-Above Value,Değer üstünde
-Absent,Kimse yok
-Acceptance Criteria,Kabul Kriterleri
-Accepted,Kabul Edilen
-Accepted + Rejected Qty must be equal to Received quantity for Item {0},Kabul + Reddedilen Miktar Ürün Alınan miktara eşit olması gerekir {0}
+Abbreviation cannot have more than 5 characters,Kısaltma 5 karakterden fazla olamaz.
+Above Value,Değerinin üstünde
+Absent,Eksik
+Acceptance Criteria,Onaylanma Kriterleri
+Accepted,Onaylanmış
+Accepted + Rejected Qty must be equal to Received quantity for Item {0},Onaylanan ve reddedilen miktarların toplamı alınan ürün miktarına eşit olmak zorundadır. {0}
 Accepted Quantity,Kabul edilen Miktar
-Accepted Warehouse,Kabul Depo
+Accepted Warehouse,Kabul edilen depo
 Account,Hesap
 Account Balance,Hesap Bakiyesi
 Account Created: {0},Hesap Oluşturuldu: {0}
 Account Details,Hesap Detayları
-Account Head,Hesap Başkanı
+Account Head,Hesap Başlığı
 Account Name,Hesap adı
-Account Type,Hesap Türü
-"Account balance already in Credit, you are not allowed to set 'Balance Must Be' as 'Debit'","Hesap bakiyesi zaten Kredi, sen ayarlamak için izin verilmez 'Debit' olarak 'Balance Olmalı'"
-"Account balance already in Debit, you are not allowed to set 'Balance Must Be' as 'Credit'","Zaten Debit hesap bakiyesi, siz 'Kredi' Balance Olmalı 'ayarlamak için izin verilmez"
-Account for the warehouse (Perpetual Inventory) will be created under this Account.,Depo (Devamlı Envanter) Hesap bu hesap altında oluşturulacaktır.
-Account head {0} created,Hesap kafa {0} oluşturuldu
+Account Type,Hesap Tipi
+"Account balance already in Credit, you are not allowed to set 'Balance Must Be' as 'Debit'",Bakiye alacaklı durumdaysa borçlu duruma çevrilemez.
+"Account balance already in Debit, you are not allowed to set 'Balance Must Be' as 'Credit'",Bakiye borçlu durumdaysa alacaklı duruma çevrilemez.
+Account for the warehouse (Perpetual Inventory) will be created under this Account.,Depo hesabı (Devamlı Envanter) bu hesap altında oluşturulacaktır.
+Account head {0} created,Hesap başlığı {0} oluşturuldu
 Account must be a balance sheet account,Hesabınız bir bilanço hesabı olmalıdır
-Account with child nodes cannot be converted to ledger,Çocuk düğümleri ile hesap defterine dönüştürülebilir olamaz
-Account with existing transaction can not be converted to group.,Mevcut işlem ile hesap grubuna dönüştürülemez.
-Account with existing transaction can not be deleted,Mevcut işlem ile hesap silinemez
-Account with existing transaction cannot be converted to ledger,Mevcut işlem ile hesap defterine dönüştürülebilir olamaz
+Account with child nodes cannot be converted to ledger,Çocuk düğümlü hesaplar muhasebe defterine dönüştürülemez.
+Account with existing transaction can not be converted to group.,İşlem görmüş hesaplar gruba dönüştürülemez.
+Account with existing transaction can not be deleted,İşlem görmüş hesaplar silinemez.
+Account with existing transaction cannot be converted to ledger,İşlem görmüş hesaplar muhasebe defterine dönüştürülemez.
 Account {0} cannot be a Group,Hesap {0} Grup olamaz
-Account {0} does not belong to Company {1},Hesap {0} Şirket'e ait olmayan {1}
-Account {0} does not belong to company: {1},Hesap {0} şirkete ait değil: {1}
+Account {0} does not belong to Company {1},Hesap {0} Şirkete ait değil {1}
+Account {0} does not belong to company: {1},Hesap {0} Şirkete ait değil: {1}
 Account {0} does not exist,Hesap {0} yok
-Account {0} has been entered more than once for fiscal year {1},Hesap {0} daha fazla mali yıl için birden çok kez girildi {1}
-Account {0} is frozen,Hesap {0} dondu
+Account {0} has been entered more than once for fiscal year {1},Hesap {0} bir mali yıl içerisinde birden fazla girildi {1}
+Account {0} is frozen,Hesap {0} donduruldu
 Account {0} is inactive,Hesap {0} etkin değil
 Account {0} is not valid,Hesap {0} geçerli değil
 Account {0} must be of type 'Fixed Asset' as Item {1} is an Asset Item,Öğe {1} bir Varlık Öğe olduğu gibi hesap {0} türündeki 'Demirbaş' olmalı
 Account {0}: Parent account {1} can not be a ledger,Hesap {0}: Ana hesap {1} bir defter olamaz
 Account {0}: Parent account {1} does not belong to company: {2},Hesap {0}: Ana hesap {1} şirkete ait değil: {2}
 Account {0}: Parent account {1} does not exist,Hesap {0}: Ana hesap {1} yok
-Account {0}: You can not assign itself as parent account,Hesap {0}: Siz ebeveyn hesabı olarak atanamıyor
-Account: {0} can only be updated via \					Stock Transactions,Hesap: \ Stok İşlemler {0} sadece aracılığıyla güncellenebilir
+Account {0}: You can not assign itself as parent account,Hesap {0}: Hesabınız ebeveyn hesabı olarak atanamıyor.
+Account: {0} can only be updated via \					Stock Transactions,Hesap: {0} sadece stok işlemler aracılığıyla güncellenebilir
 Accountant,Muhasebeci
 Accounting,Muhasebe
-"Accounting Entries can be made against leaf nodes, called","Muhasebe Yazılar denilen, yaprak düğümlere karşı yapılabilir"
-"Accounting entry frozen up to this date, nobody can do / modify entry except role specified below.","Muhasebe entry bu tarihe kadar dondurulmuş, kimse / aşağıda belirtilen rolü dışında girdisini değiştirin yapabilirsiniz."
+"Accounting Entries can be made against leaf nodes, called",Muhasebe girişleri yaprak düğümlere karşı yapılabilir.
+"Accounting entry frozen up to this date, nobody can do / modify entry except role specified below.","Muhasebe girişi bu tarihe kadar dondurulmuş, kimse / aşağıda belirtilen rolü dışında bir girdi değiştiremez."
 Accounting journal entries.,Muhasebe günlük girişleri.
 Accounts,Hesaplar
-Accounts Browser,Hesapları Tarayıcı
-Accounts Frozen Upto,Dondurulmuş kadar Hesapları
-Accounts Payable,Borç Hesapları
+Accounts Browser,Hesap Tarayıcı
+Accounts Frozen Upto,Dondurulmuş hesaplar
+Accounts Payable,Vadesi gelmiş hesaplar
 Accounts Receivable,Alacak hesapları
-Accounts Settings,Ayarları Hesapları
+Accounts Settings,Hesap ayarları
 Active,Etkin
-Active: Will extract emails from ,
+Active: Will extract emails from ,Etkin: E-maillerden ayrılacak
 Activity,Aktivite
 Activity Log,Etkinlik Günlüğü
 Activity Log:,Etkinlik Günlüğü:
@@ -107,7 +107,7 @@
 Actual Qty,Gerçek Adet
 Actual Qty (at source/target),Fiili Miktar (kaynak / hedef)
 Actual Qty After Transaction,İşlem sonrası gerçek Adet
-Actual Qty: Quantity available in the warehouse.,Gerçek Adet: depoda mevcut miktarı.
+Actual Qty: Quantity available in the warehouse.,Gerçek Adet: depoda mevcut miktar.
 Actual Quantity,Gerçek Miktar
 Actual Start Date,Fiili Başlangıç ​​Tarihi
 Add,Ekle
@@ -299,32 +299,32 @@
 Awesome Products,Başar Ürünler
 Awesome Services,Başar Hizmetleri
 BOM Detail No,BOM Detay yok
-BOM Explosion Item,BOM Patlama Ürün
+BOM Explosion Item,BOM Ani artış yaşayan ürün
 BOM Item,BOM Ürün
-BOM No,BOM yok
-BOM No. for a Finished Good Item,Bir Biten İyi Ürün için BOM No
+BOM No,BOM numarası
+BOM No. for a Finished Good Item,Biten İyi Ürün için BOM numarası
 BOM Operation,BOM Operasyonu
 BOM Operations,BOM İşlemleri
 BOM Replace Tool,BOM Aracı değiştirin
 BOM number is required for manufactured Item {0} in row {1},BOM numara imal Öğe için gereklidir {0} üst üste {1}
-BOM number not allowed for non-manufactured Item {0} in row {1},Non-Üretilen Ürün için izin BOM sayı {0} üst üste {1}
+BOM number not allowed for non-manufactured Item {0} in row {1},Üretilmemiş ürün için BOM sayısı verilmez{0} 
 BOM recursion: {0} cannot be parent or child of {2},BOM özyineleme: {0} ebeveyn veya çocuk olamaz {2}
 BOM replaced,BOM yerine
 BOM {0} for Item {1} in row {2} is inactive or not submitted,BOM {0} öğesi için {1} üste {2} teslim inaktif ya da değildir
 BOM {0} is not active or not submitted,BOM {0} teslim aktif ya da değil değil
 BOM {0} is not submitted or inactive BOM for Item {1},BOM {0} teslim veya değildir inaktif BOM Ürün için {1}
-Backup Manager,Backup Manager
-Backup Right Now,Yedekleme Right Now
-Backups will be uploaded to,Yedekler yüklenir
+Backup Manager,Yedek Yöneticisi
+Backup Right Now,Yedek Kullanılabilir
+Backups will be uploaded to,Yedekler yüklenecek
 Balance Qty,Denge Adet
 Balance Sheet,Bilanço
 Balance Value,Denge Değeri
-Balance for Account {0} must always be {1},{0} her zaman olmalı Hesabı dengelemek {1}
-Balance must be,Denge olmalı
-"Balances of Accounts of type ""Bank"" or ""Cash""","Tip ""Banka"" Hesap bakiyeleri veya ""Nakit"""
+Balance for Account {0} must always be {1},Hesap {0} her zaman dengede olmalı {1}
+Balance must be,Hesap olmalı
+"Balances of Accounts of type ""Bank"" or ""Cash""",Banka ve Nakit denge hesapları
 Bank,Banka
 Bank / Cash Account,Banka / Kasa Hesabı
-Bank A/C No.,Bank A / C No
+Bank A/C No.,Banka A / C Numarası
 Bank Account,Banka Hesabı
 Bank Account No.,Banka Hesap No
 Bank Accounts,Banka Hesapları
@@ -339,47 +339,47 @@
 Bank/Cash Balance,Banka / Nakit Dengesi
 Banking,Bankacılık
 Barcode,Barkod
-Barcode {0} already used in Item {1},Barkod {0} zaten Öğe kullanılan {1}
+Barcode {0} already used in Item {1},Barkod {0} zaten öğede kullanılmakta{1}
 Based On,Göre
 Basic,Temel
 Basic Info,Temel Bilgiler
 Basic Information,Temel  Bilgi
-Basic Rate,Temel Oranı
-Basic Rate (Company Currency),Basic Rate (Şirket para birimi)
+Basic Rate,Temel Oran
+Basic Rate (Company Currency),Temel oran (Şirket para birimi)
 Batch,Yığın
 Batch (lot) of an Item.,Bir Öğe toplu (lot).
-Batch Finished Date,Toplu bitirdi Tarih
-Batch ID,Toplu Kimliği
+Batch Finished Date,Parti bitiş tarihi
+Batch ID,Parti Kimliği
 Batch No,Parti No
-Batch Started Date,Toplu Tarihi başladı
-Batch Time Logs for billing.,Fatura için Toplu Saat Kayıtlar.
+Batch Started Date,Parti başlangıç tarihi
+Batch Time Logs for billing.,Fatura için parti kayıt zamanı
 Batch-Wise Balance History,Toplu-Wise Dengesi Tarihi
-Batched for Billing,Fatura için batched
+Batched for Billing,Fatura için gruplanmış
 Better Prospects,Iyi Beklentiler
-Bill Date,Bill Tarih
-Bill No,Fatura yok
-Bill No {0} already booked in Purchase Invoice {1},Bill Hayır {0} zaten Satınalma Fatura rezervasyonu {1}
-Bill of Material,Malzeme Listesi
-Bill of Material to be considered for manufacturing,Üretim için dikkat edilmesi gereken Malzeme Bill
-Bill of Materials (BOM),Malzeme Listesi (BOM)
+Bill Date,Fatura tarihi
+Bill No,Fatura numarası
+Bill No {0} already booked in Purchase Invoice {1},Fatura numarası{0} Alım faturası zaten kayıtlı {1}
+Bill of Material,Materyal faturası
+Bill of Material to be considered for manufacturing,Üretim için incelenecek materyal faturası
+Bill of Materials (BOM),Ürün Ağacı (BOM)
 Billable,Faturalandırılabilir
-Billed,Gagalı
+Billed,Faturalanmış
 Billed Amount,Faturalı Tutar
 Billed Amt,Faturalı Tutarı
-Billing,Ödeme
-Billing Address,Fatura Adresi
+Billing,Faturalama
+Billing Address,Faturalama  Adresi
 Billing Address Name,Fatura Adresi Adı
 Billing Status,Fatura Durumu
-Bills raised by Suppliers.,Tedarikçiler tarafından dile Bono.
-Bills raised to Customers.,Müşteriler kaldırdı Bono.
+Bills raised by Suppliers.,Tedarikçiler tarafından yükseltilmiş faturalar.
+Bills raised to Customers.,Müşterilere yükseltilmiş faturalar.
 Bin,Kutu
-Bio,Bio
+Bio,Biyo
 Biotechnology,Biyoteknoloji
 Birthday,Doğum günü
 Block Date,Blok Tarih
 Block Days,Blok Gün
-Block leave applications by department.,Departmanı tarafından izin uygulamaları engellemek.
-Blog Post,Blog Post
+Block leave applications by department.,Departman tarafından engellenen uygulamalar.
+Blog Post,Blog postası
 Blog Subscriber,Blog Abone
 Blood Group,Kan grubu
 Both Warehouse must belong to same Company,Hem Depo Aynı Şirkete ait olmalıdır
@@ -406,13 +406,13 @@
 Business Development Manager,İş Geliştirme Müdürü
 Buying,Satın alma
 Buying & Selling,Alış ve Satış
-Buying Amount,Tutar Alış
+Buying Amount,Alış Tutarı
 Buying Settings,Ayarları Alma
 "Buying must be checked, if Applicable For is selected as {0}","Uygulanabilir için seçilmiş ise satın alma, kontrol edilmelidir {0}"
-C-Form,C-Form
+C-Form,C-Formu
 C-Form Applicable,Uygulanabilir C-Formu
 C-Form Invoice Detail,C-Form Fatura Ayrıntısı
-C-Form No,C-Form
+C-Form No,C-Form Numarası
 C-Form records,C-Form kayıtları
 CENVAT Capital Goods,CENVAT Sermaye Malı
 CENVAT Edu Cess,CENVAT Edu Cess
@@ -422,17 +422,17 @@
 CENVAT Service Tax Cess 2,CENVAT Hizmet Vergisi Vergisi 2
 Calculate Based On,Tabanlı hesaplayın
 Calculate Total Score,Toplam Puan Hesapla
-Calendar Events,Takvim Olayları
+Calendar Events,Takvim etkinlikleri
 Call,Çağrı
 Calls,Aramalar
 Campaign,Kampanya
 Campaign Name,Kampanya Adı
 Campaign Name is required,Kampanya Adı gereklidir
-Campaign Naming By,Kampanya İsimlendirme tarafından
-Campaign-.####,Kampanya.# # # #
-Can be approved by {0},{0} tarafından onaylanmış olabilir
-"Can not filter based on Account, if grouped by Account","Hesap göre gruplandırılmış eğer, hesabına dayalı süzemezsiniz"
-"Can not filter based on Voucher No, if grouped by Voucher","Çeki dayalı süzemezsiniz Hayır, Fiş göre gruplandırılmış eğer"
+Campaign Naming By,Kampanya ... tarafından isimlendirilmiştir.
+Campaign-.####,Kampanya-.####
+Can be approved by {0},{0} tarafından onaylanmış
+"Can not filter based on Account, if grouped by Account","Hesap tarafından gruplandırma yapılmışsa, süzme hesap tabanlı yapılamaz."
+"Can not filter based on Voucher No, if grouped by Voucher","Gruplandırma çek tarafından yapılmışsa, çek numarası tabanlı süzme yapılamaz."
 Can refer row only if the charge type is 'On Previous Row Amount' or 'Previous Row Total',Şarj tipi veya 'Sıra Önceki Toplamı' 'Sıra Önceki Tutar Açık' ise satır başvurabilirsiniz
 Cancel Material Visit {0} before cancelling this Customer Issue,İptal Malzeme ziyaret {0} Bu Müşteri Sayımız iptalinden önce
 Cancel Material Visits {0} before cancelling this Maintenance Visit,Bu Bakım Ziyaret iptalinden önce Malzeme Ziyaretler {0} İptal
@@ -3329,3 +3329,49 @@
 {0} {1} status is Unstopped,{0} {1} durumu Unstopped olduğunu
 {0} {1}: Cost Center is mandatory for Item {2},{0} {1}: Maliyet Merkezi Ürün için zorunludur {2}
 {0}: {1} not found in Invoice Details table,{0}: {1} Fatura Ayrıntıları tablosunda bulunamadı
+"<a href=""#Sales Browser/Customer Group"">Add / Edit</a>","<a href=""#Sales Browser/Customer Group""> Ekle / Düzenle </ a>"
+"<a href=""#Sales Browser/Territory"">Add / Edit</a>","<a href=""#Sales Browser/Territory""> Ekle / Düzenle </ a>"
+Billed,Faturalanmış
+Company,Şirket
+Currency is required for Price List {0},Döviz Fiyat Listesi için gereklidir {0}
+Default Customer Group,Varsayılan Müşteri Grubu
+Default Territory,Standart Bölge
+Delivered,Teslim Edildi
+Enable Shopping Cart,Alışveriş sepeti etkinleştirin
+Go ahead and add something to your cart.,Devam edin ve sepetinize şey eklemek.
+Hey! Go ahead and add an address,Hey! Devam edin ve bir adres eklemek
+Invalid Billing Address,Geçersiz Fatura Adresi
+Invalid Shipping Address,Geçersiz Teslimat Adresi
+Missing Currency Exchange Rates for {0},Döviz Kurların eksik {0}
+Name is required,Adı gerekli
+Not Allowed,İzin Verilmedi
+Paid,Ödendi
+Partially Billed,Kısmen Faturalı
+Partially Delivered,Kısmen Teslim
+Please specify a Price List which is valid for Territory,Territory için geçerli olan bir Fiyat Listesi belirtin
+Please specify currency in Company,Şirket para birimi belirtiniz
+Please write something,Bir şeyler yazınız
+Please write something in subject and message!,Konu ve mesaj bir şeyler yazınız!
+Price List,Fiyat listesi
+Price List not configured.,Fiyat Listesi yapılandırılmamış.
+Quotation Series,Teklif Serisi
+Shipping Rule,Kargo Kural
+Shopping Cart,Alışveriş Sepeti
+Shopping Cart Price List,Alışveriş Sepeti Fiyat Listesi
+Shopping Cart Price Lists,Alışveriş Sepeti Fiyat Listeleri
+Shopping Cart Settings,Alışveriş sepeti Ayarları
+Shopping Cart Shipping Rule,Alışveriş Sepeti Kargo Kural
+Shopping Cart Shipping Rules,Alışveriş Sepeti Nakliye Kuralları
+Shopping Cart Taxes and Charges Master,Alışveriş Sepeti Vergi ve Harçlar Usta
+Shopping Cart Taxes and Charges Masters,Alışveriş Sepeti Vergi ve Harçlar Masters
+Something went wrong!,Bir şeyler yanlış gitti!
+Something went wrong.,Bir şeyler yanlış gitti.
+Tax Master,Vergi Usta
+To Pay,Ödeme
+Updated,Güncellenmiş
+You are not allowed to reply to this ticket.,Bu bilet için cevap izin verilmez.
+You need to be logged in to view your cart.,Eğer sepeti görmek için oturum açmanız gerekir.
+You need to enable Shopping Cart,Sen Alışveriş Sepeti etkinleştirmeniz gerekir
+{0} cannot be purchased using Shopping Cart,{0} sepeti kullanarak satın alınamaz
+{0} is required,{0} gereklidir
+{0} {1} has a common territory {2},"{0} {1}, ortak bir bölge var {2}"
diff --git a/erpnext/translations/vi.csv b/erpnext/translations/vi.csv
index 3e714f5..ab272e9 100644
--- a/erpnext/translations/vi.csv
+++ b/erpnext/translations/vi.csv
@@ -3329,3 +3329,49 @@
 {0} {1} status is Unstopped,{0} {1} tình trạng là Unstopped
 {0} {1}: Cost Center is mandatory for Item {2},{0} {1}: Trung tâm chi phí là bắt buộc đối với hàng {2}
 {0}: {1} not found in Invoice Details table,{0}: {1} không tìm thấy trong hóa đơn chi tiết bảng
+"<a href=""#Sales Browser/Customer Group"">Add / Edit</a>",{0} là cần thiết
+"<a href=""#Sales Browser/Territory"">Add / Edit</a>",Tiền tệ là cần thiết cho Giá liệt kê {0}
+Billed,Một cái gì đó đã đi sai!
+Company,Giỏ hàng Giá liệt kê
+Currency is required for Price List {0},Danh sách giá
+Default Customer Group,Xin vui lòng viết một cái gì đó trong chủ đề và thông điệp!
+Default Territory,Vui lòng ghi rõ tiền tệ tại Công ty
+Delivered,"Nếu được chỉ định, gửi các bản tin sử dụng địa chỉ email này"
+Enable Shopping Cart,Dòng báo giá
+Go ahead and add something to your cart.,Được quảng cáo một phần
+Hey! Go ahead and add an address,Một cái gì đó đã đi sai.
+Invalid Billing Address,Thuế Thạc sĩ
+Invalid Shipping Address,Để trả tiền
+Missing Currency Exchange Rates for {0},Quy tắc vận chuyển
+Name is required,{0} không thể mua được bằng Giỏ hàng
+Not Allowed,Giỏ hàng Thuế và phí Thạc sĩ
+Paid,Quy định vận chuyển Giỏ hàng
+Partially Billed,Bạn cần phải kích hoạt Giỏ hàng
+Partially Delivered,Địa chỉ thanh toán không hợp lệ
+Please specify a Price List which is valid for Territory,Mặc định Territory
+Please specify currency in Company,Giỏ hàng Vận chuyển Rule
+Please write something,Giỏ hàng Chức năng Giá
+Please write something in subject and message!,{0} {1} có một lãnh thổ chung {2}
+Price List,"<a href=""#Sales Browser/Customer Group""> Add / Edit </ a>"
+Price List not configured.,Một phần Giao
+Quotation Series,Giỏ hàng Thuế và phí Masters
+Shipping Rule,Này ! Đi trước và thêm một địa chỉ
+Shopping Cart,"<a href=""#Sales Browser/Territory""> Add / Edit </ a>"
+Shopping Cart Price List,Đã cập nhật
+Shopping Cart Price Lists,Danh sách giá không được cấu hình.
+Shopping Cart Settings,Mặc định khách hàng Nhóm
+Shopping Cart Shipping Rule,Bạn cần phải đăng nhập để xem giỏ hàng của bạn.
+Shopping Cart Shipping Rules,Không phép
+Shopping Cart Taxes and Charges Master,Công ty
+Shopping Cart Taxes and Charges Masters,Địa chỉ Vận chuyển không hợp lệ
+Something went wrong!,Bạn không được phép trả lời vé này.
+Something went wrong.,Đi trước và thêm một cái gì đó vào giỏ hàng của bạn.
+Tax Master,Giao
+To Pay,Thanh toán
+Updated,Xin vui lòng viết một cái gì đó
+You are not allowed to reply to this ticket.,Vui lòng xác định Bảng giá có giá trị trong lãnh thổ
+You need to be logged in to view your cart.,Giỏ hàng
+You need to enable Shopping Cart,Giỏ hàng mua sắm thiết lập
+{0} cannot be purchased using Shopping Cart,Lập hóa đơn
+{0} is required,Cho phép Giỏ hàng
+{0} {1} has a common territory {2},Yêu cầu nhập tên
diff --git a/erpnext/translations/zh-cn.csv b/erpnext/translations/zh-cn.csv
index faef822..36a4473 100644
--- a/erpnext/translations/zh-cn.csv
+++ b/erpnext/translations/zh-cn.csv
@@ -3377,3 +3377,49 @@
 {0} {1} status is Unstopped,{0} {1}状态为开通
 {0} {1}: Cost Center is mandatory for Item {2},{0} {1}：成本中心是强制性的项目{2}
 {0}: {1} not found in Invoice Details table,{0}：{1}不是在发票明细表中找到
+"<a href=""#Sales Browser/Customer Group"">Add / Edit</a>","<a href=""#Sales Browser/Customer Group"">添加/编辑</a>"
+"<a href=""#Sales Browser/Territory"">Add / Edit</a>","<a href=""#Sales Browser/Territory"">添加/编辑</a>"
+Billed,计费
+Company,公司
+Currency is required for Price List {0},货币需要价格表{0}
+Default Customer Group,默认用户组
+Default Territory,默认领地
+Delivered,交付
+Enable Shopping Cart,启用的购物车
+Go ahead and add something to your cart.,来吧，讲一下你的车。
+Hey! Go ahead and add an address,嘿！来吧，添加一个地址
+Invalid Billing Address,无效的帐单地址
+Invalid Shipping Address,无效的送货地址
+Missing Currency Exchange Rates for {0},缺少货币汇率的{0}
+Name is required,名称是必需的
+Not Allowed,不允许
+Paid,支付
+Partially Billed,部分帐单
+Partially Delivered,部分交付
+Please specify a Price List which is valid for Territory,请指定一个价格表，有效期为领地
+Please specify currency in Company,请公司指定的货币
+Please write something,请写东西
+Please write something in subject and message!,请写东西的主题和消息！
+Price List,价格表
+Price List not configured.,未配置价格表。
+Quotation Series,系列报价
+Shipping Rule,送货规则
+Shopping Cart,购物车
+Shopping Cart Price List,购物车价格表
+Shopping Cart Price Lists,购物车价目表
+Shopping Cart Settings,购物车设置
+Shopping Cart Shipping Rule,购物车运费规则
+Shopping Cart Shipping Rules,购物车运费规则
+Shopping Cart Taxes and Charges Master,购物车税收和收费硕士
+Shopping Cart Taxes and Charges Masters,购物车税收和收费硕士
+Something went wrong!,出事了！
+Something went wrong.,出事了。
+Tax Master,税务硕士
+To Pay,支付方式
+Updated,更新
+You are not allowed to reply to this ticket.,你不允许回复此票。
+You need to be logged in to view your cart.,您需要登录才能查看您的购物车。
+You need to enable Shopping Cart,您需要启用的购物车
+{0} cannot be purchased using Shopping Cart,{0}不能使用购物车购买
+{0} is required,{0}是必需的
+{0} {1} has a common territory {2},{0} {1}有一个共同的领土{2}
diff --git a/erpnext/translations/zh-tw.csv b/erpnext/translations/zh-tw.csv
index 29522e6..609806b 100644
--- a/erpnext/translations/zh-tw.csv
+++ b/erpnext/translations/zh-tw.csv
@@ -3377,3 +3377,49 @@
 {0} {1} status is Unstopped,{0} {1}狀態為開通
 {0} {1}: Cost Center is mandatory for Item {2},{0} {1}：成本中心是強制性的項目{2}
 {0}: {1} not found in Invoice Details table,{0}：{1}不是在發票明細表中找到
+"<a href=""#Sales Browser/Customer Group"">Add / Edit</a>","<a href=""#Sales Browser/Customer Group"">添加/編輯</a>"
+"<a href=""#Sales Browser/Territory"">Add / Edit</a>","<a href=""#Sales Browser/Territory"">添加/編輯</a>"
+Billed,計費
+Company,公司
+Currency is required for Price List {0},貨幣需要價格表{0}
+Default Customer Group,默認用戶組
+Default Territory,默認領地
+Delivered,交付
+Enable Shopping Cart,啟用的購物車
+Go ahead and add something to your cart.,來吧，講一下你的車。
+Hey! Go ahead and add an address,嘿！來吧，添加一個地址
+Invalid Billing Address,無效的帳單地址
+Invalid Shipping Address,無效的送貨地址
+Missing Currency Exchange Rates for {0},缺少貨幣匯率的{0}
+Name is required,名稱是必需的
+Not Allowed,不允許
+Paid,支付
+Partially Billed,部分帳單
+Partially Delivered,部分交付
+Please specify a Price List which is valid for Territory,請指定一個價格表，有效期為領地
+Please specify currency in Company,請公司指定的貨幣
+Please write something,請寫東西
+Please write something in subject and message!,請寫東西的主題和消息！
+Price List,價格表
+Price List not configured.,未配置價格表。
+Quotation Series,系列報價
+Shipping Rule,送貨規則
+Shopping Cart,購物車
+Shopping Cart Price List,購物車價格表
+Shopping Cart Price Lists,購物車價目表
+Shopping Cart Settings,購物車設置
+Shopping Cart Shipping Rule,購物車運費規則
+Shopping Cart Shipping Rules,購物車運費規則
+Shopping Cart Taxes and Charges Master,購物車稅收和收費碩士
+Shopping Cart Taxes and Charges Masters,購物車稅收和收費碩士
+Something went wrong!,出事了！
+Something went wrong.,出事了。
+Tax Master,稅務碩士
+To Pay,支付方式
+Updated,更新
+You are not allowed to reply to this ticket.,你不允許回复此票。
+You need to be logged in to view your cart.,您需要登錄才能查看您的購物車。
+You need to enable Shopping Cart,您需要啟用的購物車
+{0} cannot be purchased using Shopping Cart,{0}不能使用購物車購買
+{0} is required,{0}是必需的
+{0} {1} has a common territory {2},{0} {1}有一個共同的領土{2}
diff --git a/erpnext/utilities/repost_stock.py b/erpnext/utilities/repost_stock.py
index 5fd9bfb..f1ba179 100644
--- a/erpnext/utilities/repost_stock.py
+++ b/erpnext/utilities/repost_stock.py
@@ -9,7 +9,7 @@
 from erpnext.stock.stock_ledger import update_entries_after
 from erpnext.accounts.utils import get_fiscal_year
 
-def repost(allow_negative_stock=False):
+def repost(only_actual=False, allow_negative_stock=False, allow_zero_rate=False):
 	"""
 	Repost everything!
 	"""
@@ -22,17 +22,21 @@
 		(select item_code, warehouse from tabBin
 		union
 		select item_code, warehouse from `tabStock Ledger Entry`) a"""):
-			repost_stock(d[0], d[1])
+			try:
+				repost_stock(d[0], d[1], allow_zero_rate, only_actual)
+				frappe.db.commit()
+			except:
+				frappe.db.rollback()
 
 	if allow_negative_stock:
 		frappe.db.set_default("allow_negative_stock",
 			frappe.db.get_value("Stock Settings", None, "allow_negative_stock"))
 	frappe.db.auto_commit_on_many_writes = 0
 
-def repost_stock(item_code, warehouse):
-	repost_actual_qty(item_code, warehouse)
+def repost_stock(item_code, warehouse, allow_zero_rate=False, only_actual=False):
+	repost_actual_qty(item_code, warehouse, allow_zero_rate)
 
-	if item_code and warehouse:
+	if item_code and warehouse and not only_actual:
 		update_bin_qty(item_code, warehouse, {
 			"reserved_qty": get_reserved_qty(item_code, warehouse),
 			"indented_qty": get_indented_qty(item_code, warehouse),
@@ -40,9 +44,9 @@
 			"planned_qty": get_planned_qty(item_code, warehouse)
 		})
 
-def repost_actual_qty(item_code, warehouse):
+def repost_actual_qty(item_code, warehouse, allow_zero_rate=False):
 	try:
-		update_entries_after({ "item_code": item_code, "warehouse": warehouse })
+		update_entries_after({ "item_code": item_code, "warehouse": warehouse }, allow_zero_rate)
 	except:
 		pass
 
@@ -69,7 +73,7 @@
 					from `tabPacked Item` dnpi_in
 					where item_code = %s and warehouse = %s
 					and parenttype="Sales Order"
-				and item_code != parent_item
+					and item_code != parent_item
 					and exists (select * from `tabSales Order` so
 					where name = dnpi_in.parent and docstatus = 1 and status != 'Stopped')
 				) dnpi)
@@ -208,3 +212,39 @@
 				pass
 
 		frappe.db.sql("""update `tabSerial No` set warehouse='' where status in ('Delivered', 'Purchase Returned')""")
+
+def repost_all_stock_vouchers():
+	warehouses_with_account = frappe.db.sql_list("""select master_name from tabAccount
+		where ifnull(account_type, '') = 'Warehouse'""")
+
+	vouchers = frappe.db.sql("""select distinct voucher_type, voucher_no
+		from `tabStock Ledger Entry` sle
+		where voucher_type != "Serial No" and sle.warehouse in (%s)
+		order by posting_date, posting_time, name""" %
+		', '.join(['%s']*len(warehouses_with_account)), tuple(warehouses_with_account))
+
+	rejected = []
+	i = 0
+	for voucher_type, voucher_no in vouchers:
+		i+=1
+		print i, "/", len(vouchers)
+		try:
+			for dt in ["Stock Ledger Entry", "GL Entry"]:
+				frappe.db.sql("""delete from `tab%s` where voucher_type=%s and voucher_no=%s"""%
+					(dt, '%s', '%s'), (voucher_type, voucher_no))
+
+			doc = frappe.get_doc(voucher_type, voucher_no)
+			if voucher_type=="Stock Entry" and doc.purpose in ["Manufacture", "Repack"]:
+				doc.get_stock_and_rate(force=1)
+			elif voucher_type=="Purchase Receipt" and doc.is_subcontracted == "Yes":
+				doc.validate()
+
+			doc.update_stock_ledger()
+			doc.make_gl_entries(repost_future_gle=False, allow_negative_stock=True)
+			frappe.db.commit()
+		except Exception, e:
+			print frappe.get_traceback()
+			rejected.append([voucher_type, voucher_no])
+			frappe.db.rollback()
+
+	print rejected
diff --git a/test_sites/test_site/site_config.json b/test_sites/test_site/site_config.json
index 05bf562..12007b8 100644
--- a/test_sites/test_site/site_config.json
+++ b/test_sites/test_site/site_config.json
@@ -1,5 +1,6 @@
 {
  "db_name": "test_frappe",
  "db_password": "test_frappe",
+ "admin_password": "admin",
  "mute_emails": 1
 }
