diff --git a/.travis.yml b/.travis.yml
index 1b4e340..c136aa0 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@develop
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/__version__.py b/erpnext/__version__.py
index d04f92a..52fde38 100644
--- a/erpnext/__version__.py
+++ b/erpnext/__version__.py
@@ -1 +1 @@
-__version__ = '4.5.2'
+__version__ = '4.6.0'
diff --git a/erpnext/accounts/doctype/accounts_settings/accounts_settings.py b/erpnext/accounts/doctype/accounts_settings/accounts_settings.py
index f0890dd..7280322 100644
--- a/erpnext/accounts/doctype/accounts_settings/accounts_settings.py
+++ b/erpnext/accounts/doctype/accounts_settings/accounts_settings.py
@@ -14,6 +14,9 @@
 		frappe.db.set_default("auto_accounting_for_stock", self.auto_accounting_for_stock)
 
 		if cint(self.auto_accounting_for_stock):
+			if cint(frappe.db.get_value("Stock Settings", None, "allow_negative_stock")):
+				frappe.throw(_("Negative stock is not allowed in case of Perpetual Inventory, please disable it from Stock Settings"))
+
 			# set default perpetual account in company
 			for company in frappe.db.sql("select name from tabCompany"):
 				frappe.get_doc("Company", company[0]).save()
diff --git a/erpnext/accounts/doctype/journal_voucher/journal_voucher.py b/erpnext/accounts/doctype/journal_voucher/journal_voucher.py
index 7bf6fcc..3c67508 100644
--- a/erpnext/accounts/doctype/journal_voucher/journal_voucher.py
+++ b/erpnext/accounts/doctype/journal_voucher/journal_voucher.py
@@ -76,13 +76,14 @@
 
 	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):
 				master_type = frappe.db.get_value("Account", d.account, "master_type")
 				if (master_type == 'Customer' and flt(d.credit) > 0) or \
 						(master_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.idx, 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'):
@@ -177,7 +178,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))
@@ -185,7 +186,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]))
 
diff --git a/erpnext/accounts/doctype/payment_tool/payment_tool.py b/erpnext/accounts/doctype/payment_tool/payment_tool.py
index d8d6df3..578a316 100644
--- a/erpnext/accounts/doctype/payment_tool/payment_tool.py
+++ b/erpnext/accounts/doctype/payment_tool/payment_tool.py
@@ -91,6 +91,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'),
diff --git a/erpnext/accounts/doctype/payment_tool/test_payment_tool.py b/erpnext/accounts/doctype/payment_tool/test_payment_tool.py
index c91a5de..2192aeb 100644
--- a/erpnext/accounts/doctype/payment_tool/test_payment_tool.py
+++ b/erpnext/accounts/doctype/payment_tool/test_payment_tool.py
@@ -31,9 +31,10 @@
 			"customer": "_Test Customer 3"
 		})
 
-		jv_against_so1 = self.create_against_jv(jv_test_records[0], { 
+		jv_against_so1 = self.create_against_jv(jv_test_records[0], {
 			"account": "_Test Customer 3 - _TC",
-			"against_sales_order": so1.name
+			"against_sales_order": so1.name,
+			"is_advance": "Yes"
 		})
 
 
@@ -42,10 +43,11 @@
 			"customer": "_Test Customer 3"
 		})
 
-		jv_against_so2 = self.create_against_jv(jv_test_records[0], { 
+		jv_against_so2 = self.create_against_jv(jv_test_records[0], {
 			"account": "_Test Customer 3 - _TC",
 			"against_sales_order": so2.name,
-			"credit": 1000
+			"credit": 1000,
+			"is_advance": "Yes"
 		})
 		po = self.create_voucher(po_test_records[1], {
 			"supplier": "_Test Supplier 1"
@@ -54,20 +56,20 @@
 		#Create SI with partial outstanding
 		si1 = self.create_voucher(si_test_records[0], {
 			"customer": "_Test Customer 3",
-			"debit_to": "_Test Customer 3 - _TC" 
+			"debit_to": "_Test Customer 3 - _TC"
 		})
-		
-		jv_against_si1 = self.create_against_jv(jv_test_records[0], { 
+
+		jv_against_si1 = self.create_against_jv(jv_test_records[0], {
 			"account": "_Test Customer 3 - _TC",
 			"against_invoice": si1.name
 		})
 		#Create SI with no outstanding
 		si2 = self.create_voucher(si_test_records[0], {
 			"customer": "_Test Customer 3",
-			"debit_to": "_Test Customer 3 - _TC" 
+			"debit_to": "_Test Customer 3 - _TC"
 		})
-		
-		jv_against_si2 = self.create_against_jv(jv_test_records[0], { 
+
+		jv_against_si2 = self.create_against_jv(jv_test_records[0], {
 			"account": "_Test Customer 3 - _TC",
 			"against_invoice": si2.name,
 			"credit": 561.80
@@ -75,7 +77,7 @@
 
 		pi = self.create_voucher(pi_test_records[0], {
 			"supplier": "_Test Supplier 1",
-			"credit_to": "_Test Supplier 1 - _TC" 
+			"credit_to": "_Test Supplier 1 - _TC"
 		})
 
 		#Create a dict containing properties and expected values
@@ -137,7 +139,7 @@
 			payment_tool_doc.set(k, v)
 
 		self.check_outstanding_vouchers(payment_tool_doc, args, expected_outstanding)
-		
+
 
 	def check_outstanding_vouchers(self, doc, args, expected_outstanding):
 		from erpnext.accounts.doctype.payment_tool.payment_tool import get_outstanding_vouchers
@@ -161,7 +163,7 @@
 
 		new_jv = paytool.make_journal_voucher()
 
-		#Create a list of expected values as [party account, payment against, against_jv, against_invoice, 
+		#Create a list of expected values as [party account, payment against, against_jv, against_invoice,
 		#against_voucher, against_sales_order, against_purchase_order]
 		expected_values = [
 			[paytool.party_account, 100.00, expected_outstanding.get("Journal Voucher")[0], None, None, None, None],
@@ -171,7 +173,7 @@
 			[paytool.party_account, 100.00, None, None, None, None, expected_outstanding.get("Purchase Order")[0]]
 		]
 
-		for jv_entry in new_jv.get("entries"): 
+		for jv_entry in new_jv.get("entries"):
 			if paytool.party_account == jv_entry.get("account"):
 				row = [
 					jv_entry.get("account"),
@@ -183,11 +185,11 @@
 					jv_entry.get("against_purchase_order"),
 				]
 				self.assertTrue(row in expected_values)
-			
+
 		self.assertEquals(new_jv.get("cheque_no"), paytool.reference_no)
 		self.assertEquals(new_jv.get("cheque_date"), paytool.reference_date)
 
 	def clear_table_entries(self):
 		frappe.db.sql("""delete from `tabGL Entry` where (account = "_Test Customer 3 - _TC" or account = "_Test Supplier 1 - _TC")""")
 		frappe.db.sql("""delete from `tabSales Order` where customer_name = "_Test Customer 3" """)
-		frappe.db.sql("""delete from `tabPurchase Order` where supplier_name = "_Test Supplier 1" """)	
+		frappe.db.sql("""delete from `tabPurchase Order` where supplier_name = "_Test Supplier 1" """)
diff --git a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.json b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.json
index 153b8d8..7e37400 100755
--- a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.json
+++ b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.json
@@ -783,6 +783,18 @@
   {
    "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": "Monthly\nQuarterly\nHalf-yearly\nYearly", 
+   "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", 
@@ -803,18 +815,6 @@
   {
    "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": "Monthly\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 invoice will be generated e.g. 05, 28 etc", 
    "fieldname": "repeat_on_day_of_month", 
    "fieldtype": "Int", 
@@ -878,7 +878,7 @@
  "icon": "icon-file-text", 
  "idx": 1, 
  "is_submittable": 1, 
- "modified": "2014-10-06 12:57:32.064210", 
+ "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 21c96e7..3dcf136 100644
--- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.json
+++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.json
@@ -169,6 +169,27 @@
    "search_index": 0
   }, 
   {
+   "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, 
+   "read_only": 1
+  }, 
+  {
    "fieldname": "currency_section", 
    "fieldtype": "Section Break", 
    "label": "Currency and Price List", 
@@ -1074,13 +1095,14 @@
   {
    "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", 
+   "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": 0, 
+   "print_hide": 1, 
    "read_only": 0
   }, 
   {
@@ -1098,14 +1120,13 @@
   {
    "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", 
+   "description": "End date of current invoice's period", 
+   "fieldname": "to_date", 
+   "fieldtype": "Date", 
+   "label": "To Date", 
    "no_copy": 1, 
-   "options": "\nMonthly\nQuarterly\nHalf-yearly\nYearly", 
    "permlevel": 0, 
-   "print_hide": 1, 
+   "print_hide": 0, 
    "read_only": 0
   }, 
   {
@@ -1192,7 +1213,7 @@
  "icon": "icon-file-text", 
  "idx": 1, 
  "is_submittable": 1, 
- "modified": "2014-10-06 12:54:42.549361", 
+ "modified": "2014-10-10 16:54:22.284284", 
  "modified_by": "Administrator", 
  "module": "Accounts", 
  "name": "Sales Invoice", 
diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
index a2bf78c..31f7113 100644
--- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
+++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
@@ -7,7 +7,7 @@
 from frappe.utils import cint, cstr, flt
 from frappe import _, msgprint, throw
 from erpnext.accounts.party import get_party_account, get_due_date
-from erpnext.controllers.stock_controller import update_gl_entries_after
+from erpnext.controllers.stock_controller import update_gl_entries_after, block_negative_stock
 from frappe.model.mapper import get_mapped_doc
 
 from erpnext.controllers.selling_controller import SellingController
@@ -456,8 +456,8 @@
 
 		self.make_sl_entries(sl_entries)
 
-	def make_gl_entries(self, repost_future_gle=True):
-		gl_entries = self.get_gl_entries()
+	def make_gl_entries(self, repost_future_gle=True, allow_negative_stock=False):
+		gl_entries = self.get_gl_entries(allow_negative_stock=allow_negative_stock)
 
 		if gl_entries:
 			from erpnext.accounts.general_ledger import make_gl_entries
@@ -476,7 +476,7 @@
 					items, warehouses = self.get_items_and_warehouses()
 					update_gl_entries_after(self.posting_date, self.posting_time, warehouses, items)
 
-	def get_gl_entries(self, warehouse_account=None):
+	def get_gl_entries(self, warehouse_account=None, allow_negative_stock=False):
 		from erpnext.accounts.general_ledger import merge_similar_entries
 
 		gl_entries = []
@@ -485,7 +485,7 @@
 
 		self.make_tax_gl_entries(gl_entries)
 
-		self.make_item_gl_entries(gl_entries)
+		self.make_item_gl_entries(gl_entries, allow_negative_stock)
 
 		# merge gl entries before adding pos entries
 		gl_entries = merge_similar_entries(gl_entries)
@@ -520,7 +520,7 @@
 					})
 				)
 
-	def make_item_gl_entries(self, gl_entries):
+	def make_item_gl_entries(self, gl_entries, allow_negative_stock=False):
 		# income account gl entries
 		for item in self.get("entries"):
 			if flt(item.base_amount):
@@ -537,7 +537,7 @@
 		# expense account gl entries
 		if cint(frappe.defaults.get_global_default("auto_accounting_for_stock")) \
 				and cint(self.update_stock):
-			gl_entries += super(SalesInvoice, self).get_gl_entries()
+			gl_entries += super(SalesInvoice, self).get_gl_entries(allow_negative_stock=allow_negative_stock)
 
 	def make_pos_gl_entries(self, gl_entries):
 		if cint(self.is_pos) and self.cash_bank_account and self.paid_amount:
diff --git a/erpnext/accounts/general_ledger.py b/erpnext/accounts/general_ledger.py
index 2114768..073ef8a 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/report/accounts_payable/accounts_payable.py b/erpnext/accounts/report/accounts_payable/accounts_payable.py
index 3ae741e..5ce2c56 100644
--- a/erpnext/accounts/report/accounts_payable/accounts_payable.py
+++ b/erpnext/accounts/report/accounts_payable/accounts_payable.py
@@ -30,7 +30,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 3a0fb31..3dc81d1 100644
--- a/erpnext/accounts/report/accounts_receivable/accounts_receivable.py
+++ b/erpnext/accounts/report/accounts_receivable/accounts_receivable.py
@@ -79,6 +79,9 @@
 		return (
 			# 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/buying/doctype/purchase_order/purchase_order.json b/erpnext/buying/doctype/purchase_order/purchase_order.json
index 8380e86..f072b65 100644
--- a/erpnext/buying/doctype/purchase_order/purchase_order.json
+++ b/erpnext/buying/doctype/purchase_order/purchase_order.json
@@ -680,6 +680,16 @@
   {
    "allow_on_submit": 1, 
    "depends_on": "eval:doc.is_recurring==1", 
+   "fieldname": "recurring_type", 
+   "fieldtype": "Select", 
+   "label": "Recurring Type", 
+   "no_copy": 1, 
+   "options": "Monthly\nQuarterly\nHalf-yearly\nYearly", 
+   "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", 
@@ -700,16 +710,6 @@
   {
    "allow_on_submit": 1, 
    "depends_on": "eval:doc.is_recurring==1", 
-   "fieldname": "recurring_type", 
-   "fieldtype": "Select", 
-   "label": "Recurring Type", 
-   "no_copy": 1, 
-   "options": "Monthly\nQuarterly\nHalf-yearly\nYearly", 
-   "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", 
@@ -772,7 +772,7 @@
  "icon": "icon-file-text", 
  "idx": 1, 
  "is_submittable": 1, 
- "modified": "2014-10-06 12:16:44.453946", 
+ "modified": "2014-10-08 14:23:29.718779", 
  "modified_by": "Administrator", 
  "module": "Buying", 
  "name": "Purchase Order", 
diff --git a/erpnext/config/stock.py b/erpnext/config/stock.py
index 7a4345e..04e45d4 100644
--- a/erpnext/config/stock.py
+++ b/erpnext/config/stock.py
@@ -142,10 +142,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 +170,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 9a62fc2..af0a96e 100644
--- a/erpnext/controllers/accounts_controller.py
+++ b/erpnext/controllers/accounts_controller.py
@@ -387,7 +387,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.%s as amount, t2.name as jv_detail_no, `against_%s` as against_order
 			from
 				`tabJournal Voucher` t1, `tabJournal Voucher Detail` t2
 			where
@@ -400,7 +400,7 @@
 						and ifnull(t2.against_purchase_order, '')  = ''
 					) %s)
 			order by t1.posting_date""" %
-			(dr_or_cr, '%s', cond),
+			(dr_or_cr, against_order_field, '%s', cond),
 			tuple([account_head] + so_list), as_dict= True)
 
 		self.set(parentfield, [])
@@ -411,7 +411,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 69ab661..66d5792 100644
--- a/erpnext/controllers/buying_controller.py
+++ b/erpnext/controllers/buying_controller.py
@@ -256,8 +256,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":
@@ -268,7 +266,23 @@
 
 			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
+				item_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
+				})
+				rm.rate = item_rate or bom_item.rate
+			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/stock_controller.py b/erpnext/controllers/stock_controller.py
index 5755253..ad553d8 100644
--- a/erpnext/controllers/stock_controller.py
+++ b/erpnext/controllers/stock_controller.py
@@ -8,10 +8,10 @@
 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):
+	def make_gl_entries(self, repost_future_gle=True, allow_negative_stock=False):
 		if self.docstatus == 2:
 			delete_gl_entries(voucher_type=self.doctype, voucher_no=self.name)
 
@@ -19,16 +19,19 @@
 			warehouse_account = get_warehouse_account()
 
 			if self.docstatus==1:
-				gl_entries = self.get_gl_entries(warehouse_account)
+				gl_entries = self.get_gl_entries(warehouse_account, allow_negative_stock=allow_negative_stock)
 				make_gl_entries(gl_entries)
 
 			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, allow_negative_stock)
 
 	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
+			default_cost_center=None, allow_negative_stock=False):
+
+		block_negative_stock(allow_negative_stock)
+
 		if not warehouse_account:
 			warehouse_account = get_warehouse_account()
 
@@ -46,12 +49,17 @@
 
 						self.check_expense_account(detail)
 
+						stock_value_difference = flt(sle.stock_value_difference, 2)
+						if not stock_value_difference:
+							valuation_rate = get_valuation_rate(sle.item_code, sle.warehouse)
+							stock_value_difference = flt(sle.actual_qty)*flt(valuation_rate)
+
 						gl_list.append(self.get_gl_dict({
 							"account": warehouse_account[sle.warehouse],
 							"against": detail.expense_account,
 							"cost_center": detail.cost_center,
 							"remarks": self.get("remarks") or "Accounting Entry for Stock",
-							"debit": flt(sle.stock_value_difference, 2)
+							"debit": stock_value_difference
 						}))
 
 						# to target warehouse / expense account
@@ -60,7 +68,7 @@
 							"against": warehouse_account[sle.warehouse],
 							"cost_center": detail.cost_center,
 							"remarks": self.get("remarks") or "Accounting Entry for Stock",
-							"credit": flt(sle.stock_value_difference, 2)
+							"credit": stock_value_difference
 						}))
 					elif sle.warehouse not in warehouse_with_no_account:
 						warehouse_with_no_account.append(sle.warehouse)
@@ -118,7 +126,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 +223,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, allow_negative_stock=False):
 	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))
@@ -228,12 +238,12 @@
 	for voucher_type, voucher_no in future_stock_vouchers:
 		existing_gle = gle.get((voucher_type, voucher_no), [])
 		voucher_obj = frappe.get_doc(voucher_type, voucher_no)
-		expected_gle = voucher_obj.get_gl_entries(warehouse_account)
+		expected_gle = voucher_obj.get_gl_entries(warehouse_account, allow_negative_stock=allow_negative_stock)
 		if expected_gle:
 			if not existing_gle or not compare_existing_and_expected_gle(existing_gle,
 				expected_gle):
 					_delete_gl_entries(voucher_type, voucher_no)
-					voucher_obj.make_gl_entries(repost_future_gle=False)
+					voucher_obj.make_gl_entries(repost_future_gle=False, allow_negative_stock=allow_negative_stock)
 		else:
 			_delete_gl_entries(voucher_type, voucher_no)
 
@@ -285,3 +295,28 @@
 	warehouse_account = dict(frappe.db.sql("""select master_name, name from tabAccount
 		where account_type = 'Warehouse' and ifnull(master_name, '') != ''"""))
 	return warehouse_account
+
+def block_negative_stock(allow_negative_stock=False):
+	if cint(frappe.defaults.get_global_default("auto_accounting_for_stock")) and not allow_negative_stock:
+		if cint(frappe.db.get_value("Stock Settings", None, "allow_negative_stock")):
+			frappe.throw(_("Negative stock is not allowed in case of Perpetual Inventory, please disable it from Stock Settings"))
+
+def get_valuation_rate(item_code, warehouse):
+	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")
+
+	return valuation_rate
diff --git a/erpnext/hooks.py b/erpnext/hooks.py
index bda5c80..6c91c39 100644
--- a/erpnext/hooks.py
+++ b/erpnext/hooks.py
@@ -4,7 +4,7 @@
 app_description = "Open Source Enterprise Resource Planning for Small and Midsized Organizations"
 app_icon = "icon-th"
 app_color = "#e74c3c"
-app_version = "4.5.2"
+app_version = "4.6.0"
 
 error_report_email = "support@erpnext.com"
 
diff --git a/erpnext/manufacturing/doctype/bom/bom.py b/erpnext/manufacturing/doctype/bom/bom.py
index 75c4ffb..e8a8682 100644
--- a/erpnext/manufacturing/doctype/bom/bom.py
+++ b/erpnext/manufacturing/doctype/bom/bom.py
@@ -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`
@@ -269,29 +273,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
diff --git a/erpnext/patches.txt b/erpnext/patches.txt
index 29049f7..92f8395 100644
--- a/erpnext/patches.txt
+++ b/erpnext/patches.txt
@@ -81,4 +81,8 @@
 erpnext.patches.v4_2.set_company_country
 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
\ No newline at end of file
+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
\ No newline at end of file
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..3c554ae 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,49 @@
 
 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
-		where ifnull(account_type, '') = 'Warehouse'""")
+	from erpnext.utilities.repost_stock import repost
+	repost()
 
-	stock_vouchers_without_gle = frappe.db.sql("""select distinct sle.voucher_type, sle.voucher_no
+	warehouse_account = frappe.db.sql("""select name, master_name from tabAccount
+		where ifnull(account_type, '') = 'Warehouse'""")
+	warehouses = [d[1] for d in warehouse_account]
+	accounts = [d[0] for d in warehouse_account]
+
+	stock_vouchers = 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))
+		', '.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, allow_negative_stock=True)
+				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/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/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/sales_order/sales_order.json b/erpnext/selling/doctype/sales_order/sales_order.json
index 5af9a26..69693a7 100644
--- a/erpnext/selling/doctype/sales_order/sales_order.json
+++ b/erpnext/selling/doctype/sales_order/sales_order.json
@@ -924,6 +924,18 @@
   {
    "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": "Start date of current order's period", 
    "fieldname": "from_date", 
    "fieldtype": "Date", 
@@ -944,18 +956,6 @@
   {
    "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", 
@@ -1020,7 +1020,7 @@
  "idx": 1, 
  "is_submittable": 1, 
  "issingle": 0, 
- "modified": "2014-10-06 12:16:41.256013", 
+ "modified": "2014-10-08 14:22:44.717108", 
  "modified_by": "Administrator", 
  "module": "Selling", 
  "name": "Sales Order", 
diff --git a/erpnext/setup/page/setup_wizard/setup_wizard.py b/erpnext/setup/page/setup_wizard/setup_wizard.py
index d3942e4..bf643dd 100644
--- a/erpnext/setup/page/setup_wizard/setup_wizard.py
+++ b/erpnext/setup/page/setup_wizard/setup_wizard.py
@@ -78,9 +78,10 @@
 		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
 
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/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/purchase_receipt/purchase_receipt.py b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py
index a7fa6bb..fc35222 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)
@@ -283,8 +283,11 @@
 	def get_rate(self,arg):
 		return frappe.get_doc('Purchase Common').get_rate(arg,self)
 
-	def get_gl_entries(self, warehouse_account=None):
+	def get_gl_entries(self, warehouse_account=None, allow_negative_stock=False):
 		from erpnext.accounts.general_ledger import process_gl_map
+		from erpnext.controllers.stock_controller import block_negative_stock
+
+		block_negative_stock(allow_negative_stock)
 
 		stock_rbnb = self.get_company_default("stock_received_but_not_billed")
 		expenses_included_in_valuation = self.get_company_default("expenses_included_in_valuation")
diff --git a/erpnext/stock/doctype/purchase_receipt/test_purchase_receipt.py b/erpnext/stock/doctype/purchase_receipt/test_purchase_receipt.py
index 51c85ce..67f621a 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):
diff --git a/erpnext/stock/doctype/stock_entry/test_stock_entry.py b/erpnext/stock/doctype/stock_entry/test_stock_entry.py
index 038606c..e010bd1 100644
--- a/erpnext/stock/doctype/stock_entry/test_stock_entry.py
+++ b/erpnext/stock/doctype/stock_entry/test_stock_entry.py
@@ -9,14 +9,64 @@
 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
 
+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`""")
@@ -821,19 +871,19 @@
 		se = frappe.copy_doc(test_records[0]).insert()
 		self.assertRaises (StockFreezeError, se.submit)
 		frappe.db.set_value("Stock Settings", None, "stock_frozen_upto_days", 0)
-		
+
 	def test_production_order(self):
-		bom_no = frappe.db.get_value("BOM", {"item": "_Test FG Item 2", 
+		bom_no = frappe.db.get_value("BOM", {"item": "_Test FG Item 2",
 			"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 FG Item 2", 
+			"fg_warehouse": "_Test Warehouse 1 - _TC",
+			"production_item": "_Test FG Item 2",
 			"bom_no": bom_no,
 			"qty": 1.0,
-			"stock_uom": "Nos", 
+			"stock_uom": "Nos",
 			"wip_warehouse": "_Test Warehouse - _TC"
 		})
 		production_order.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..7fdd440 100644
--- a/erpnext/stock/doctype/stock_ledger_entry/stock_ledger_entry.py
+++ b/erpnext/stock/doctype/stock_ledger_entry/stock_ledger_entry.py
@@ -44,11 +44,14 @@
 						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
 			from tabItem where name=%s""", self.item_code, as_dict=True)[0]
diff --git a/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.json b/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.json
index daba967..8434f60 100644
--- a/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.json
+++ b/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.json
@@ -1,5 +1,5 @@
 {
-  "allow_copy": 1, 
+ "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.", 
@@ -7,6 +7,7 @@
  "doctype": "DocType", 
  "fields": [
   {
+   "default": "Today", 
    "fieldname": "posting_date", 
    "fieldtype": "Date", 
    "in_filter": 0, 
@@ -118,7 +119,7 @@
  "idx": 1, 
  "is_submittable": 1, 
  "max_attachments": 1, 
- "modified": "2014-05-26 03:05:54.024413", 
+ "modified": "2014-10-07 12:43:52.825575", 
  "modified_by": "Administrator", 
  "module": "Stock", 
  "name": "Stock Reconciliation", 
diff --git a/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py b/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py
index 40a980d..b67090d 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"""
@@ -282,12 +198,12 @@
 				"posting_time": self.posting_time
 			})
 
-	def get_gl_entries(self, warehouse_account=None):
+	def get_gl_entries(self, warehouse_account=None, allow_negative_stock=False):
 		if not self.cost_center:
 			msgprint(_("Please enter Cost Center"), raise_exception=1)
 
 		return super(StockReconciliation, self).get_gl_entries(warehouse_account,
-			self.expense_account, self.cost_center)
+			self.expense_account, self.cost_center, allow_negative_stock=allow_negative_stock)
 
 	def validate_expense_account(self):
 		if not cint(frappe.defaults.get_global_default("auto_accounting_for_stock")):
@@ -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..95ace86 100644
--- a/erpnext/stock/doctype/stock_settings/stock_settings.py
+++ b/erpnext/stock/doctype/stock_settings/stock_settings.py
@@ -6,18 +6,20 @@
 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"]:
+		if cint(self.allow_negative_stock) and cint(frappe.defaults.get_global_default("auto_accounting_for_stock")):
+			frappe.throw(_("Negative stock is not allowed in case of Perpetual Inventory"))
+
+		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 +27,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/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/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/stock_ledger/stock_ledger.py b/erpnext/stock/report/stock_ledger/stock_ledger.py
index 4c5458d..44f32c9 100644
--- a/erpnext/stock/report/stock_ledger/stock_ledger.py
+++ b/erpnext/stock/report/stock_ledger/stock_ledger.py
@@ -13,16 +13,13 @@
 	data = []
 	for sle in sl_entries:
 		item_detail = item_details[sle.item_code]
-		voucher_link_icon = """<a href="%s"><i class="icon icon-share"
-			style="cursor: pointer;"></i></a>""" \
-			% ("/".join(["#Form", sle.voucher_type, sle.voucher_no]),)
 
 		data.append([sle.date, sle.item_code, item_detail.item_name, item_detail.item_group,
 			item_detail.brand, item_detail.description, sle.warehouse,
 			item_detail.stock_uom, sle.actual_qty, sle.qty_after_transaction,
 			(sle.incoming_rate if sle.actual_qty > 0 else 0.0),
 			sle.valuation_rate, sle.stock_value, sle.voucher_type, sle.voucher_no,
-			voucher_link_icon, sle.batch_no, sle.serial_no, sle.company])
+			sle.batch_no, sle.serial_no, sle.company])
 
 	return columns, data
 
@@ -31,7 +28,7 @@
 		_("Brand") + ":Link/Brand:100", _("Description") + "::200", _("Warehouse") + ":Link/Warehouse:100",
 		_("Stock UOM") + ":Link/UOM:100", _("Qty") + ":Float:50", _("Balance Qty") + ":Float:100",
 		_("Incoming Rate") + ":Currency:110", _("Valuation Rate") + ":Currency:110", _("Balance Value") + ":Currency:110",
-		_("Voucher Type") + "::110", _("Voucher #") + "::100", _("Link") + "::30", _("Batch") + ":Link/Batch:100",
+		_("Voucher Type") + "::110", _("Voucher #") + ":Dynamic Link/Voucher Type:100", _("Batch") + ":Link/Batch:100",
 		_("Serial #") + ":Link/Serial No:100", _("Company") + ":Link/Company:100"]
 
 def get_stock_ledger_entries(filters):
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..a2614d7 100644
--- a/erpnext/stock/stock_ledger.py
+++ b/erpnext/stock/stock_ledger.py
@@ -6,6 +6,7 @@
 from frappe import _
 from frappe.utils import cint, flt, cstr, now
 from erpnext.stock.utils import get_valuation_method
+from erpnext.controllers.stock_controller import get_valuation_rate
 import json
 
 # future reposting
@@ -27,7 +28,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 +37,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',
@@ -83,7 +84,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 +95,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)
+				else:
+					valuation_rate = get_fifo_values(qty_after_transaction, sle, stock_queue)
+
+
+				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))
 
@@ -247,65 +256,72 @@
 	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:
+		valuation_rate = get_valuation_rate(sle.item_code, sle.warehouse)
 
-	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
-
-	# NOTE: val_rate is same as previous entry if new stock value is negative
-
-	return valuation_rate
+	return abs(valuation_rate)
 
 def get_fifo_values(qty_after_transaction, sle, stock_queue):
 	incoming_rate = flt(sle.incoming_rate)
 	actual_qty = flt(sle.actual_qty)
-	if not stock_queue:
-		stock_queue.append([0, 0])
+
+	intialize_stock_queue(stock_queue, sle.item_code, sle.warehouse)
 
 	if actual_qty > 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])
+			intialize_stock_queue(stock_queue, sle.item_code, sle.warehouse)
 
 			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]
+			# print qty_to_pop, batch
+
+			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 intialize_stock_queue(stock_queue, item_code, warehouse):
+	if not stock_queue:
+		estimated_val_rate = get_valuation_rate(item_code, warehouse)
+		stock_queue.append([0, estimated_val_rate])
 
 def _raise_exceptions(args, verbose=1):
 	deficiency = min(e["diff"] for e in _exceptions)
diff --git a/erpnext/stock/utils.py b/erpnext/stock/utils.py
index 7264f36..b444e84 100644
--- a/erpnext/stock/utils.py
+++ b/erpnext/stock/utils.py
@@ -5,7 +5,6 @@
 from frappe import _
 import json
 from frappe.utils import flt, cstr, nowdate, add_days, cint
-from frappe.defaults import get_global_default
 from frappe.utils.email_lib import sendmail
 from erpnext.accounts.utils import get_fiscal_year, FiscalYearError
 
@@ -94,7 +93,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):
diff --git a/erpnext/translations/ar.csv b/erpnext/translations/ar.csv
index b942f4c..c031928 100644
--- a/erpnext/translations/ar.csv
+++ b/erpnext/translations/ar.csv
@@ -34,7 +34,7 @@
 "<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,وهناك مورد موجود مع نفس الاسم
@@ -47,7 +47,7 @@
 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} 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,7 +85,7 @@
 "Accounting entry frozen up to this date, nobody can do / modify entry except role specified below.",قيد محاسبي المجمدة تصل إلى هذا التاريخ، لا أحد يمكن أن تفعل / تعديل إدخال باستثناء دور المحددة أدناه.
 Accounting journal entries.,المحاسبة إدخالات دفتر اليومية.
 Accounts,حسابات
-Accounts Browser,حسابات متصفح
+Accounts Browser,متصفح الحسابات 
 Accounts Frozen Upto,حسابات مجمدة لغاية
 Accounts Payable,ذمم دائنة
 Accounts Receivable,حسابات القبض
@@ -95,13 +95,13 @@
 Activity,نشاط
 Activity Log,سجل النشاط
 Activity Log:,النشاط المفتاح:
-Activity Type,النشاط نوع
+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,8 +405,8 @@
 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-نموذج قابل للتطبيق
@@ -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,عنوان البريد الإلكتروني الخاص بك
diff --git a/erpnext/translations/el.csv b/erpnext/translations/el.csv
index d918cf0..4e1e05f 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,Όνομα λογαριασμού
diff --git a/erpnext/translations/es.csv b/erpnext/translations/es.csv
index 192e373..3566919 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,7 +2741,7 @@
 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
@@ -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 """
diff --git a/erpnext/translations/fr.csv b/erpnext/translations/fr.csv
index 99a9158..2d3af17 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
diff --git a/erpnext/translations/hi.csv b/erpnext/translations/hi.csv
index 63e2323..e109249 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,मौजूदा लेन - देन के साथ खाता हटाया नहीं जा सकता
diff --git a/erpnext/translations/ja.csv b/erpnext/translations/ja.csv
index a6e1461..4b2a015 100644
--- a/erpnext/translations/ja.csv
+++ b/erpnext/translations/ja.csv
@@ -44,7 +44,7 @@
 Abbr,略称
 Abbreviation cannot have more than 5 characters,略語は、5つ以上の文字を使用することはできません
 Above Value,値を上回る
-Absent,ない
+Absent,いんない
 Acceptance Criteria,合否基準
 Accepted,承認済
 Accepted + Rejected Qty must be equal to Received quantity for Item {0},一般に認められた+拒否数量、アイテムの受信量と等しくなければなりません{0}
diff --git a/erpnext/translations/th.csv b/erpnext/translations/th.csv
index 47462b7..8043eca 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,ส่งให้
diff --git a/erpnext/translations/tr.csv b/erpnext/translations/tr.csv
index 0d9fb01..67b2c24 100644
--- a/erpnext/translations/tr.csv
+++ b/erpnext/translations/tr.csv
@@ -38,7 +38,7 @@
 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 Supplier exists with same name,Bu Tedarikçi mevcut
 A symbol for this currency. For e.g. $,Bu para için bir sembol. Örneğin $ için
 AMC Expiry Date,AMC Son Kullanma Tarihi
 Abbr,Kısaltma
diff --git a/erpnext/utilities/repost_stock.py b/erpnext/utilities/repost_stock.py
index 4c14548..89494ad 100644
--- a/erpnext/utilities/repost_stock.py
+++ b/erpnext/utilities/repost_stock.py
@@ -22,7 +22,11 @@
 		(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])
+				frappe.db.commit()
+			except:
+				frappe.db.rollback()
 
 	if allow_negative_stock:
 		frappe.db.set_default("allow_negative_stock",
@@ -209,3 +213,38 @@
 
 		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/setup.py b/setup.py
index 8b03743..c6d1f84 100644
--- a/setup.py
+++ b/setup.py
@@ -1,7 +1,7 @@
 from setuptools import setup, find_packages
 import os
 
-version = "4.5.2"
+version = "4.6.0"
 
 with open("requirements.txt", "r") as f:
 	install_requires = f.readlines()
