diff --git a/accounts/Print Format/POS Invoice/POS Invoice.txt b/accounts/Print Format/POS Invoice/POS Invoice.txt
index 672c107..ebf25e4 100644
--- a/accounts/Print Format/POS Invoice/POS Invoice.txt
+++ b/accounts/Print Format/POS Invoice/POS Invoice.txt
@@ -2,14 +2,14 @@
  {
   "creation": "2011-12-21 11:08:55", 
   "docstatus": 0, 
-  "modified": "2013-08-16 16:15:46", 
+  "modified": "2013-08-30 12:46:21", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
  {
   "doc_type": "Sales Invoice", 
   "doctype": "Print Format", 
-  "html": "<html>\n<head>\n<!--Other charges function-->\n<script>\nvar make_row = function(title,val,bold){\nvar bstart = '<b>'; var bend = '</b>';\nreturn '<tr><td style=\"width:50%\">'+(bold?bstart:'')+title+(bold?bend:'')+'</td>'\n        +'<td style=\"width:20%\">'+doc.currency+'</td>'\n        +'<td style=\"width:30%;text-align:right\">'+(val?val:'0.00')+'</td>'\n        +'</tr>'\n}\nvar make_row1 = function(title,val,bold){\n    var bstart = '<b>'; var bend = '</b>';\n    \n    return '<tr style=\"font-family:courier new; line-height:150%\"><td style=\"width:50%\">'+(bold?bstart:'')+title+(bold?bend:'')+'</td>'\n            +'<td style=\"width:50%;text-align:right\">'+(bold?bstart:'')+(val?val:'0.00')+(bold?bend:'')+'</td>'\n            +'</tr>'\n}\n\nfunction get_letter_head() {\n    // add letter head\n    var cp = wn.boot.control_panel;\n    if(doc.letter_head)\n        var lh= cstr(_p.letter_heads[doc.letter_head]);\n    else if(cp.letter_head)\n        var lh= cp.letter_head;\n    else \n        var lh= '';\n        \n    return lh;\n}\n\nfunction get_tax_details(){\n    var cl = getchildren('Sales Taxes and Charges',doc.name,'other_charges');\n    var out = '';\n\n    out += '<div><table style=\"float: right;\">';\n    for(var i=0;i<cl.length;i++){\n        if(cl[i].tax_amount) {\n            out += make_row1(cl[i].description,fmt_money(convert_rate(cl[i].tax_amount)),0);\n        }\n    }\n    out += make_row1('TOTAL',doc.currency + \" \" + fmt_money(convert_rate(doc.grand_total)),1);\n    out +='</table></div>';\n    return out;\n}\n\nfunction convert_rate(val){    \n    var new_val = flt(val)/flt(doc.conversion_rate);\n    return new_val;\n}\n</script>\n<style>\n    table, td, tr, div, span {\n        font-family: courier new;\n        line-height: 200%;\n    }\n</style>\n</head>\n\n<body>\n<table width=\"100%\" style=\"font-family: courier new; line-height:200%\">\n<tr>\n    <td align=\"left\">NO: <script>doc.name</script></td>\n    <td align=\"right\">DATE: <script>date.str_to_user(doc.posting_date)</script></td>\n</tr>\n<tr>\n    <td>M/s <script>doc.contact_display</script></td>\n</tr>\n</table>\n<!--Item Table-->\n<div>\n<script>\nvar t = print_table(\n    \t\t\t'Sales Invoice',\n\t\t\t\tdoc.name,\n\t\t\t\t'entries',\n\t\t\t\t'Sales Invoice Item',\n\t\t\t\t[// Here specify the table columns to be displayed\n\t\t\t\t\t'SR', 'description', 'qty', 'export_rate', 'export_amount'\n\t\t\t\t],\n\t\t\t\t[// Here specify the labels of column headings\n\t\t\t\t\t'Sr', 'Description', 'Qty', 'Rate', 'Amount'\n\t\t\t\t],\n\t\t\t\t[// Here specify the column widths\n\t\t\t\t\t'5%', '35%', '20%', '20%', '20%'\n\t\t\t\t],\n\t\t\t\tnull,\n\t\t\t\tnull\n\t\t\t);\nif(t.appendChild) { // single\n    out = t.innerHTML.replace(/style=\"/gi,'style=\"font-family:courier new;line-height:150%;');\n} else { //multiple\n    out = '<table class=\"None\" border=\"0px\" width=\"100%\" style=\"border:0px; font-family:courier-new\">';\n\n    for(var i=0;i<t.length;i++) {\n        if(i==0) {\n            out += '<tr>' + t[i].childNodes[0].childNodes[0].childNodes[0].innerHTML\n                .replace(/style=\"border: 1px solid rgb\\(0, 0, 0\\);/gi,'style=\"font-family:courier new;')\n                + '</tr>';\n        }\n        out += '<tr>' + t[i].childNodes[0].childNodes[0].childNodes[1].innerHTML\n                .replace(/style=\"border: 1px solid rgb\\(0, 0, 0\\);/gi,'style=\"font-family:courier new;')\n                + '</tr>';\n    }\n    out += '</table>';\n}\nout;\n</script>\n</div>\n<!--Tax table-->\n<div><script>get_tax_details();</script></div><br />\n<table style=\"font-family:courier new;\">\n    <tr><td><b><script>doc.terms</script></b></td></tr>\n    <tr><td nowrap><b>For <script>doc.company</script></b></td></tr>\n    <tr><td>&nbsp;</td></tr>\n    <tr><td nowrap><b>Signatory</b></td></tr>\n</table>\n</body>\n</html>\n", 
+  "html": "<html>\n<head>\n<!--Item Table, Totals and Other Charges-->\n<script>\nfunction get_print_format() {\n\tvar oc = getchildren('Sales Invoice Item', doc.name, 'entries');\n\tvar rows = '<table width=\"100%\" cellpadding=\"0\" class=\"cart\">\\\n                <tr>\\\n                    <td colspan=\"3\"><hr></td>\\\n                </tr>\\\n                <tr>\\\n                    <td width=\"60%\" align=\"left\">ITEM CODE/DESC.</td>\\\n                    <td width=\"10%\" align=\"right\">QTY</td>\\\n                    <td width=\"30%\" align=\"right\">RATE</td>\\\n                </tr>\\\n                <tr>\\\n                    <td colspan=\"3\"><hr></td>\\\n                </tr>';\n\tfor (var x=0; x<oc.length; x++) {\n\t\trows += '<tr>\\\n                    <td align=\"left\">' + oc[x].item_code + '<br>' + oc[x].item_name + '</td>\\\n                    <td align=\"right\" style=\"vertical-align:top;\">' + oc[x].qty + '</td>\\\n                    <td align=\"right\" valign=\"top\">' + format_currency(oc[x].export_amount) + '</td>\\\n                </tr>';\n\t}\n    rows += '<tr>\\\n                <td colspan=\"3\"><hr></td>\\\n            </tr>\\\n            <tr>\\\n                <td colspan=\"2\" align=\"right\">Net Total</td>\\\n                <td align=\"right\">' + format_currency(doc.net_total_export) + '</td>\\\n            </tr>';\n    if (doc.other_charges_total_export != 0) {\n        var taxes = wn.model.get_children(\"Sales Taxes and Charges\", doc.name, \"other_charges\", \"Sales Invoice\");\n\t\t$.each(taxes, function(i, d) {\n\t\t\trows += '<tr>\\\n        \t\t\t\t<td colspan=\"2\" align=\"right\">' + d.description + '</td>\\\n        \t\t\t\t<td style=\"text-align: right;\">' + format_currency(d.tax_amount) + '</td>\\\n        \t\t\t<tr>';\n\t\t});\n    }\n    rows += '<tr>\\\n                <td colspan=\"2\" align=\"right\" style=\"vertical-align:middle;\">Grand Total</td>\\\n                <td align=\"right\"><hr width=\"90%\" align=\"right\">' + format_currency(doc.grand_total_export) + '<br>\\\n                    <hr width=\"90%\" align=\"right\"></td>\\\n            </tr>\\\n            <tr>\\\n                <td align=\"center\" colspan=\"3\">Thank You. Please visit again.</td>\\\n            </tr>\\\n            </table>';\n\treturn rows;\n}\n</script>\n<style>\n    table, tr, td, div, p {\n        font-family: Monospace;\n        line-height: 200%;\n    }\n    h1, h2, h3, h4, h5, h6 {\n        text-align: center;\n    }\n\t@media screen {\n\t\tbody {\n\t\t\twidth: 4in;\n\t\t}\n\t}\n</style>\n</head>\n\n<body>\n<table width=\"100%\" cellpadding=\"4\">\n    <tr>\n        <td align=\"left\">RECEIPT NO: <script>doc.name</script></td>\n        <td align=\"right\">DATE: <script>date.str_to_user(doc.posting_date)</script></td>\n    </tr>\n    <tr>\n        <td>M/s <script>doc.customer</script></td>\n    </tr>\n</table>\n<!--Item Table & Totals-->\n<div><script>get_print_format();</script></div>\n</body>\n</html>\n", 
   "module": "Accounts", 
   "name": "__common__", 
   "print_format_type": "Client", 
diff --git a/accounts/doctype/pos_setting/pos_setting.js b/accounts/doctype/pos_setting/pos_setting.js
index 641b3ef..af4f993 100755
--- a/accounts/doctype/pos_setting/pos_setting.js
+++ b/accounts/doctype/pos_setting/pos_setting.js
@@ -49,15 +49,9 @@
 	}	
 }
 
-// ------------------ Get Print Heading ------------------------------------
-cur_frm.fields_dict['select_print_heading'].get_query = function(doc, cdt, cdn) {
-	return{
-		filters:[
-			['Print Heading', 'docstatus', '!=', 2]
-		]	
-	}	
-}
 
+// Expense Account 
+// -----------------------------
 cur_frm.fields_dict["expense_account"].get_query = function(doc) {
 	return {
 		filters: {
@@ -69,6 +63,16 @@
 	}
 }
 
+// ------------------ Get Print Heading ------------------------------------
+cur_frm.fields_dict['select_print_heading'].get_query = function(doc, cdt, cdn) {
+	return{
+		filters:[
+			['Print Heading', 'docstatus', '!=', 2]
+		]	
+	}	
+}
+
+
 cur_frm.fields_dict.user.get_query = function(doc,cdt,cdn) {
 	return{	query:"core.doctype.profile.profile.profile_query"}
 }
diff --git a/accounts/doctype/pos_setting/pos_setting.py b/accounts/doctype/pos_setting/pos_setting.py
index 21d848f..7762927 100755
--- a/accounts/doctype/pos_setting/pos_setting.py
+++ b/accounts/doctype/pos_setting/pos_setting.py
@@ -7,7 +7,7 @@
 from webnotes.utils import cint
 
 class DocType:
-	def __init__(self,doc,doclist=[]):
+	def __init__(self,doc,doclist):
 		self.doc, self.doclist = doc,doclist
 
 	def get_series(self):
@@ -20,7 +20,8 @@
 	def validate(self):
 		self.check_for_duplicate()
 		self.validate_expense_account()
-	
+		self.validate_all_link_fields()
+		
 	def check_for_duplicate(self):
 		res = webnotes.conn.sql("""select name, user from `tabPOS Setting` 
 			where ifnull(user, '') = %s and name != %s and company = %s""", 
@@ -36,4 +37,26 @@
 	def validate_expense_account(self):
 		if cint(webnotes.defaults.get_global_default("auto_accounting_for_stock")) \
 				and not self.doc.expense_account:
-			msgprint(_("Expense Account is mandatory"), raise_exception=1)
\ No newline at end of file
+			msgprint(_("Expense Account is mandatory"), raise_exception=1)
+
+	def validate_all_link_fields(self):
+		accounts = {"Account": [self.doc.cash_bank_account, self.doc.income_account, self.doc.expense_account], \
+			"Cost Center": [self.doc.cost_center], "Warehouse": [self.doc.warehouse]}
+		
+		for link_dt, dn_list in accounts.items():
+			for link_dn in dn_list:
+				if not webnotes.conn.exists({"doctype": link_dt, "company": self.doc.company, "name": link_dn}):
+					msgprint(link_dn +_(" does not belong to ") + self.doc.company)
+
+	def on_update(self):
+		webnotes.defaults.clear_default("is_pos")
+
+		pos_view_users = webnotes.conn.sql_list("""select user from `tabPOS Setting`""")
+		for user in pos_view_users:
+			if user:
+				webnotes.defaults.set_user_default("is_pos", 1, user)
+			else:
+				webnotes.defaults.set_global_default("is_pos", 1)
+
+	def on_trash(self):
+		self.on_update()
diff --git a/accounts/doctype/sales_invoice/pos.js b/accounts/doctype/sales_invoice/pos.js
index 1bd6de1..5dfe6c2 100644
--- a/accounts/doctype/sales_invoice/pos.js
+++ b/accounts/doctype/sales_invoice/pos.js
@@ -16,7 +16,7 @@
 				<div class="col-sm-6">\
 					<div class="pos-bill">\
 						<div class="item-cart">\
-							<table class="table table-condensed table-hover" id="cart"  style="table-layout: fixed;">\
+							<table class="table table-condensed table-hover" id="cart" style="table-layout: fixed;">\
 								<thead>\
 									<tr>\
 										<th style="width: 50%">Item</th>\
@@ -160,8 +160,10 @@
 			parent: this.wrapper.find(".barcode-area")
 		});
 		this.barcode.make_input();
-		this.barcode.$input.on("change", function() {
-			me.add_item_thru_barcode();
+		this.barcode.$input.on("keypress", function() {
+			if(me.barcode_timeout)
+				clearTimeout(me.barcode_timeout);
+			me.barcode_timeout = setTimeout(function() { me.add_item_thru_barcode(); }, 1000);
 		});
 	},
 	make_item_list: function() {
@@ -178,12 +180,13 @@
 				me.wrapper.find(".item-list").empty();
 				$.each(r.message, function(index, obj) {
 					if (obj.image)
-						image = "<img src='" + obj.image + "' class='img-responsive'>";
+						image = '<img src="' + obj.image + '" class="img-responsive" \
+								style="border:1px solid #eee;height:140px;width:100%;">';
 					else
 						image = '<div class="missing-image"><i class="icon-camera"></i></div>';
 
 					$(repl('<div class="col-xs-3 pos-item" data-item_code="%(item_code)s">\
-								%(item_image)s\
+								<div>%(item_image)s</div>\
 								<div class="small">%(item_code)s</div>\
 								<div class="small">%(item_name)s</div>\
 								<div class="small">%(item_price)s</div>\
@@ -196,13 +199,16 @@
 						})).appendTo($wrap);
 				});
 
-				$("div.pos-item").on("click", function() {
-					if(!cur_frm.doc.customer) {
-						msgprint("Please select customer first.");
-						return;
-					}
-					me.add_to_cart($(this).attr("data-item_code"));
-				});
+				// if form is local then allow this function
+				if (cur_frm.doc.docstatus===0) {
+					$("div.pos-item").on("click", function() {
+						if(!cur_frm.doc.customer) {
+							msgprint("Please select customer first.");
+							return;
+						}
+						me.add_to_cart($(this).attr("data-item_code"));
+					});
+				}
 			}
 		});
 	},
@@ -230,22 +236,25 @@
 			var child = wn.model.add_child(me.frm.doc, "Sales Invoice Item", "entries");
 			child.item_code = item_code;
 			me.frm.cscript.item_code(me.frm.doc, child.doctype, child.name);
-			//me.refresh();
 		}
 	},
-	update_qty: function(item_code, qty) {
+	update_qty: function(item_code, qty, textbox_qty) {
 		var me = this;
 		$.each(wn.model.get_children("Sales Invoice Item", this.frm.doc.name, "entries", 
 		"Sales Invoice"), function(i, d) {
 			if (d.item_code == item_code) {
-				if (qty == 1)
-					d.qty += 1;
-				else
+				if (textbox_qty) {
+					if (qty == 0 && d.item_code == item_code)
+						wn.model.clear_doc(d.doctype, d.name);
 					d.qty = qty;
+				}
+				else
+					d.qty += 1;
 
 				me.frm.cscript.qty(me.frm.doc, d.doctype, d.name);
 			}
 		});
+		me.frm.dirty();
 		me.refresh();
 	},
 	refresh: function() {
@@ -262,7 +271,7 @@
 					<td>%(item_code)s%(item_name)s</td>\
 					<td><input type="text" value="%(qty)s" \
 						class="form-control qty" style="text-align: right;"></td>\
-					<td style="text-align: right;">%(rate)s<br><b>%(amount)s</b></td>\
+					<td style="text-align: right;"><b>%(amount)s</b><br>%(rate)s</td>\
 				</tr>',
 				{
 					item_code: d.item_code,
@@ -283,10 +292,11 @@
 		
 		$.each(taxes, function(i, d) {
 			$(repl('<tr>\
-				<td>%(description)s</td>\
+				<td>%(description)s (%(rate)s%)</td>\
 				<td style="text-align: right;">%(tax_amount)s</td>\
 			<tr>', {
 				description: d.description,
+				rate: d.rate,
 				tax_amount: format_currency(d.tax_amount, me.frm.doc.price_list_currency)
 			})).appendTo(".tax-table tbody");
 		});
@@ -297,44 +307,63 @@
 		this.wrapper.find(".grand-total").text(format_currency(this.frm.doc.grand_total_export, 
 			cur_frm.doc.price_list_currency));
 
-		// append quantity to the respective item after change from input box
-		$("input.qty").on("change", function() {
-			var item_code = $(this).closest("tr")[0].id;
-			me.update_qty(item_code, $(this).val());
-		});
+		// if form is local then only run all these functions
+		if (cur_frm.doc.docstatus===0) {
+			$("input.qty").on("focus", function() {
+				$(this).select();
+			});
 
-		// on td click highlight the respective row
-		$("td").on("click", function() {
-			var row = $(this).closest("tr");
-			if (row.attr("data-selected") == "false") {
-				row.attr("class", "warning");
-				row.attr("data-selected", "true");
-			}
-			else {
-				row.prop("class", null);
-				row.attr("data-selected", "false");
-			}
+			// append quantity to the respective item after change from input box
+			$("input.qty").on("change", function() {
+				var item_code = $(this).closest("tr")[0].id;
+				me.update_qty(item_code, $(this).val(), true);
+			});
+
+			// on td click toggle the highlighting of row
+			$("#cart tbody tr td").on("click", function() {
+				var row = $(this).closest("tr");
+				if (row.attr("data-selected") == "false") {
+					row.attr("class", "warning");
+					row.attr("data-selected", "true");
+				}
+				else {
+					row.prop("class", null);
+					row.attr("data-selected", "false");
+				}
+				me.refresh_delete_btn();
+				
+			});
+
 			me.refresh_delete_btn();
-			
-		});
-		
-		me.refresh_delete_btn();
+			cur_frm.pos.barcode.$input.focus();
+		}
+
+		// if form is submitted & cancelled then disable all input box & buttons
+		if (cur_frm.doc.docstatus>=1) {
+			me.wrapper.find('input, button').each(function () {
+				$(this).prop('disabled', true);
+			});
+			$(".delete-items").hide();
+			$(".make-payment").hide();
+		}
 	},
 	refresh_delete_btn: function() {
 		$(".delete-items").toggle($(".item-cart .warning").length ? true : false);		
 	},
 	add_item_thru_barcode: function() {
 		var me = this;
+		me.barcode_timeout = null;
 		wn.call({
 			method: 'accounts.doctype.sales_invoice.pos.get_item_from_barcode',
 			args: {barcode: this.barcode.$input.val()},
 			callback: function(r) {
 				if (r.message) {
 					me.add_to_cart(r.message[0].name);
-					me.refresh();
 				}
 				else
 					msgprint(wn._("Invalid Barcode"));
+
+				me.refresh();
 			}
 		});
 	},
@@ -348,20 +377,20 @@
 				selected_items.push(row.attr("id"));
 			}
 		}
-
-		if (!selected_items[0])
-			msgprint(wn._("Please select any item to remove it"));
 		
 		var child = wn.model.get_children("Sales Invoice Item", this.frm.doc.name, "entries", 
 		"Sales Invoice");
 		$.each(child, function(i, d) {
 			for (var i in selected_items) {
 				if (d.item_code == selected_items[i]) {
+					// cur_frm.fields_dict["entries"].grid.grid_rows[d.idx].remove();
 					wn.model.clear_doc(d.doctype, d.name);
 				}
 			}
 		});
 		cur_frm.fields_dict["entries"].grid.refresh();
+		cur_frm.script_manager.trigger("calculate_taxes_and_totals");
+		me.frm.dirty();
 		me.refresh();
 	},
 	make_payment: function() {
@@ -394,12 +423,14 @@
 						"total_amount": $(".grand-total").text()
 					});
 					dialog.show();
+					cur_frm.pos.barcode.$input.focus();
 					
 					dialog.get_input("total_amount").attr("disabled", "disabled");
 					
 					dialog.fields_dict.pay.input.onclick = function() {
 						cur_frm.set_value("mode_of_payment", dialog.get_values().mode_of_payment);
 						cur_frm.set_value("paid_amount", dialog.get_values().total_amount);
+						cur_frm.cscript.mode_of_payment(cur_frm.doc);
 						cur_frm.save();
 						dialog.hide();
 						me.refresh();
diff --git a/accounts/doctype/sales_invoice/pos.py b/accounts/doctype/sales_invoice/pos.py
index 2f2ad6a..1b867cb 100644
--- a/accounts/doctype/sales_invoice/pos.py
+++ b/accounts/doctype/sales_invoice/pos.py
@@ -3,6 +3,7 @@
 
 from __future__ import unicode_literals
 import webnotes
+from webnotes import msgprint
 
 @webnotes.whitelist()
 def get_items(price_list, item=None, item_group=None):
diff --git a/accounts/doctype/sales_invoice/sales_invoice.js b/accounts/doctype/sales_invoice/sales_invoice.js
index 16e1195..732fac8 100644
--- a/accounts/doctype/sales_invoice/sales_invoice.js
+++ b/accounts/doctype/sales_invoice/sales_invoice.js
@@ -26,7 +26,18 @@
 			}
 		}
 		
-		cur_frm.cscript.toggle_pos(true);
+		// toggle to pos view if is_pos is 1 in user_defaults
+		if (cint(wn.defaults.get_user_defaults("is_pos"))===1 || cur_frm.doc.is_pos) {
+			this.frm.set_value("is_pos", 1);
+			this.is_pos();
+			cur_frm.cscript.toggle_pos(true);
+		}
+		
+		// if document is POS then change default print format to "POS Invoice"
+		if(cur_frm.doc.is_pos && cur_frm.doc.docstatus===1) {
+			locals.DocType[cur_frm.doctype].default_print_format = "POS Invoice";
+			cur_frm.setup_print();
+		}
 	},
 	
 	refresh: function(doc, dt, dn) {
@@ -90,16 +101,11 @@
 						}
 					});
 				});
-			
-			if(cint(sys_defaults.fs_pos_view)===1)
-				cur_frm.cscript.pos_btn();
-				
-			// setTimeout(function() { cur_frm.$pos_btn.click(); }, 1000);
-				
-		} else {
-			// hide shown pos for submitted records
-			if(cur_frm.pos_active) cur_frm.cscript.toggle_pos(false);
 		}
+		
+		// Show POS button only if it enabled from features setup
+		if(cint(sys_defaults.fs_pos_view)===1)
+			cur_frm.cscript.pos_btn();
 	},
 
 	pos_btn: function() {
@@ -118,13 +124,9 @@
 			cur_frm.cscript.toggle_pos();
 			cur_frm.cscript.pos_btn();
 		}, icon);
-		
 	},
 
-	toggle_pos: function(show) {
-		if(cint(sys_defaults.fs_pos_view)===0) return;
-		if(!(this.frm.doc.is_pos && this.frm.doc.docstatus===0)) return;
-		
+	toggle_pos: function(show) {		
 		if (!this.frm.doc.selling_price_list)
 			msgprint(wn._("Please select Price List"))
 		else {
diff --git a/accounts/doctype/sales_invoice/sales_invoice.txt b/accounts/doctype/sales_invoice/sales_invoice.txt
index 2a2a2e1..f921f24 100644
--- a/accounts/doctype/sales_invoice/sales_invoice.txt
+++ b/accounts/doctype/sales_invoice/sales_invoice.txt
@@ -2,13 +2,14 @@
  {
   "creation": "2013-05-24 19:29:05", 
   "docstatus": 0, 
-  "modified": "2013-08-31 10:19:01", 
+  "modified": "2013-09-01 05:26:13", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
  {
   "allow_attach": 1, 
   "autoname": "naming_series:", 
+  "default_print_format": "Standard", 
   "doctype": "DocType", 
   "document_type": "Transaction", 
   "icon": "icon-file-text", 
diff --git a/docs/user/accounts/docs.user.accounts.closing.md b/docs/user/accounts/docs.user.accounts.closing.md
index 2c40bfa..a825918 100644
--- a/docs/user/accounts/docs.user.accounts.closing.md
+++ b/docs/user/accounts/docs.user.accounts.closing.md
@@ -12,7 +12,7 @@
 
 etc. and book your Profit or Loss.
 
-By doing this, your Income and Expense Accounts become zero and you start a new Fiscal Year (or period) with a balanced Balance Sheet and fresh Profit and Loss.
+By doing this, your Income and Expense Accounts become zero .You start a new Fiscal Year (or period) with a balanced Balance Sheet and fresh Profit and Loss account.
 
 In ERPNext after making all the special entries via Journal Voucher, you can make all your Income and Expense accounts to zero via:
 
diff --git a/docs/user/accounts/docs.user.accounts.payments.md b/docs/user/accounts/docs.user.accounts.payments.md
index 4bb064c..ce81073 100644
--- a/docs/user/accounts/docs.user.accounts.payments.md
+++ b/docs/user/accounts/docs.user.accounts.payments.md
@@ -7,9 +7,20 @@
 
 1. Update the “Bank Account” (you can also set the default account in the Company master).
 1. Update posting date.
-1. Enter the check number, check date.
+1. Enter the cheque number, cheque date.
 1. Save and Submit.
 
+
+
+
+
+![Payment Entry](img/payment-entry.png)
+
+
+
+
+
+
 Payments can also be made independent of invoices by creating a new Journal Voucher and selecting the type of payment.
 
 #### Incoming Payment
@@ -32,7 +43,7 @@
 
 ---
 
-### Reconciling Cheque (Check) Payments
+### Reconciling Cheque Payments
 
 If you are receiving payments or making payments via cheques, the bank statements will not accurately match the dates of your entry, this is because the bank usually takes time to “clear” these payments. Also you may have mailed a cheque to your Supplier and it may be a few days before it is received and deposited by the Supplier. In ERPNext you can synchronize your bank statements and your Journal Vouchers using the “Bank Reconciliation” tool.
 
@@ -42,13 +53,13 @@
 
 Select your “Bank” Account and enter the dates of your statement. Here you will get all the “Bank Voucher” type entries. In each of the entry on the right most column, update the “Clearance Date” and click on “Update”.
 
-This way you will be able to sync your bank statements and entries in the system.
+By doing this you will be able to sync your bank statements and entries into the system.
 
 ---
 
 ## Managing Outstanding Payments
 
-In most cases, apart from retail sales, billing and payment are separate activities. There are several combinations in which these payments are done. These cases apply to both sales and purchases.
+In most cases, apart from retail sales, billing and payments are separate activities. There are several combinations in which these payments are done. These cases apply to both sales and purchases.
 
 - They can be upfront (100% in advance).
 - Post shipment. Either on delivery or within a few days of delivery.
@@ -62,7 +73,7 @@
 
 ### Matching Payments to Invoices
 ￼
-In complex scenarios, especially in the capital goods industry, sometimes there is no direct link between payments and invoices. You send invoices to your Customers and your Customer send you block payments or payments based on some schedule that is not linked to your invoices. 
+In complex scenarios, especially in the capital goods industry, sometimes there is no direct link between payments and invoices. You send invoices to your Customers and your Customer sends you block payments or payments based on some schedule that is not linked to your invoices. 
 
 In such cases, you can use the Payment to Invoice Matching Tool.
 
diff --git a/docs/user/accounts/docs.user.accounts.pos.md b/docs/user/accounts/docs.user.accounts.pos.md
index a4ca430..654a5d6 100644
--- a/docs/user/accounts/docs.user.accounts.pos.md
+++ b/docs/user/accounts/docs.user.accounts.pos.md
@@ -3,7 +3,7 @@
 	"_label": "Point of Sale (POS) Invoice"
 }
 ---
-For retail operations, the delivery of goods, accrual of sale and payment all happens in one event, that is usually called the “Point of Sale”. 
+Point of sale (POS) is the place where a retail transaction is completed. It is the point at which a customer makes a payment to the merchant in exchange for goods or services. For retail operations, the delivery of goods, accrual of sale and payment all happens in one event, that is usually called the “Point of Sale”.
 
 You can make a Sales Invoice of type POS by checking on “Is POS”. When you check this, you will notice that some fields get hidden and some new ones emerge.
 
@@ -11,20 +11,62 @@
 
 #### Different sections of the POS
 
-- Update Stock: If this is checked, Stock Ledger Entries will be made when you “Submit” this Sales Invoice and there is no need for a separate Delivery Note. 
-- In your Items table, you will also have to update inventory information like “Warehouse” (can come as default), “Serial Number” or “Batch Number” if applicable. 
-- Update “Payment Details” like your Bank / Cash Account, paid amount etc. 
-- If you are writing off certain amount, for example change or you get extra change, check on “Write off Outstanding Amount” and set the Account.
+- Update Stock: If this is checked, Stock Ledger Entries will be made when you “Submit” this Sales Invoice thereby eliminating the need for a separate Delivery Note. 
+- In your Items table, update inventory information like Warehouse  (saved as default), Serial Number, or Batch Number if applicable. 
+- Update Payment Details like your Bank / Cash Account, paid amount etc. 
+- If you are writing off certain amount. For example when you receive extra cash as a result of not having exact denomination of change, check on ‘Write off Outstanding Amount’ and set the Account.
 
-#### POS Settings
+Setup [POS Setting](docs.user.setup.pos_setting.html)
 
-If you are in retail operations, you want your Point of Sale to be as quick and efficient as possible. To do this, you can create a POS Setting for a user from:
+#### Enable POS View
 
-Accounts > Point of Sale (POS) Setting
+Sales Invoice has 2 different interfaces, Invoice View and POS View. The current view used by most users is the Invoice View. This view is preferred by non-retailing companies.The POS view is used by retailing companies. For retailers it is very important to provide bill or sales invoice at the point of sale. Their customers cannot wait to receive the bill by post. The customers want an immediate bill for the payment which they make. In such cases, the POS View is preferred.
 
-and set default values as defined.
+ > Setup  > Show/Hide Features
 
----
+![POS View](img/pos-features-setup.png)
+
+### Adding an Item
+
+At the billing counter, the retailer needs to select Items which the consumer buys. In the POS interface you can select an Item by two methods. One, is by clicking on the Item image and the other, is through the Barcode. 
+
+**Select Item** - To select a  product click on the Item image and add it into the cart. A cart is an area that prepares a customer for checkout by allowing to edit product information, adjust taxes and add discounts.
+
+**Barcode** - A Barcode is an optical machine-readable representation of data relating to the object to which it is attached. Enter Barcode in the barcode box and pause for a second. The  Item will be automatically added to the cart.
+
+![POS](img/pos-add-item.png)
+
+> Tip: To change the quantity of an Item, enter your desired quantity in the quantity box. These are mostly used if the same Item is purchased in bulk.
+
+
+If your product list is very long use the universal search field, to type the  product name and select faster. 
+
+### Removing an Item
+
+There are two ways to remove an Item.
+
+- Select an Item by clicking on the row of that Item from Item cart. Then click on “Del” button. OR
+
+
+- Type 0 in  the ‘select quantity’ field to delete the record.
+
+To remove multiple Items together, select multiple rows & click on “Del” button. 
+
+> Delete button appears only when Items are selected.
+
+![POS](img/pos-remove-item.png)
+
+### Make Payment
+
+After all the Items and their quantities are added into the cart, you are ready to make the Payment. Payment process is divided into 3 steps - 
+
+1. Click on “Make Payment” to get the Payment window.
+1. Select your “Mode of Payment”.
+1. Click on “Pay” button to Save the Sales Invoice.
+
+![POS Payment](img/pos-make-payment.png)
+
+Submit the document to finalise the record. After the Invoice is submitted, you can either print an invoice or email it directly to the customer.
 
 #### Accounting entries (GL Entry) for a Point of Sale:
 
@@ -40,5 +82,5 @@
 - Customer (payment)
 - Write Off (optional)
 
-To see entries after “Submit”, click on “View Ledger”.
-￼
+To see entries after “Submit”, click on “View Ledger”.￼
+
diff --git a/docs/user/accounts/docs.user.accounts.purchase_invoice.md b/docs/user/accounts/docs.user.accounts.purchase_invoice.md
index 371a26f..32be689 100644
--- a/docs/user/accounts/docs.user.accounts.purchase_invoice.md
+++ b/docs/user/accounts/docs.user.accounts.purchase_invoice.md
@@ -11,11 +11,21 @@
 
 or click on “Make Purchase Invoice” in Purchase Order or Purchase Receipt.
 
-The concept of “Posting Date” is again same as Sales Invoice. “Bill No” and “Bill Date” help you  to track the bill number as set by your Supplier for reference.
+
+
+
+![Purchase Invoice](img/purchase-invoice.png)
+
+
+
+
+
+
+The concept of “Posting Date” is again same as Sales Invoice. “Bill No” and “Bill Date” helps to track the bill number as set by your Supplier for reference.
 
 #### Accounting Impact
 
-Like in Sales Invoice, you have to enter an Expense or Asset account for each row in your Items table to indicate if the Item is an Asset or an Expense. You must also enter a Cost Center.  These can also be set in the Item master.
+Like in Sales Invoice, you have to enter an Expense or an Asset account for each row in your Items table. This helps to indicate if the Item is an Asset or an Expense. You must also enter a Cost Center. These can also be set in the Item master.
 
 The Purchase Invoice will affect your accounts as follows:
 
@@ -36,17 +46,15 @@
 
 #### Is a purchase an “Expense” or “Asset”?
 
-If the Item is consumed immediately on purchase or if it is a service, then the purchase becomes an “Expense”. For example, a telephone bill or travel bill is an “Expense” - it is already consumed.
+If the Item is consumed immediately on purchase, or if it is a service, then the purchase becomes an “Expense”. For example, a telephone bill or travel bill is an “Expense” - it is already consumed.
 
 For inventory Items, that have a value, these purchases are not yet “Expense”, because they still have a value while they remain in your stock. They are “Assets”. If they are raw-materials (used in a process), they will become “Expense” the moment they are consumed in the process. If they are to be sold to a Customer, they become “Expense” when you ship them to the Customer.
 
-Note: In ERPNext, this conversion from “Asset” to “Expense” is not clear. As of the current version, you will have to manually convert an item from an “Asset” to “Expense” via a Journal Voucher. We know its a shortcoming and will be fixed in an upcoming version pretty soon.
-
 ---
 
 #### Deducting Taxes at Source
 
-In many countries, your laws may require to deduct taxes by a standard rate when you make payments to your Suppliers. Under these type of schemes, typically if a Supplier crosses a certain threshold of payment and if the type of product is taxable, you may have to deduct some tax (that you pay back to your government, on your Supplier’s behalf).
+In many countries, the law may require you to deduct taxes, while paying your suppliers. These taxes could be based on a standard rate. Under these type of schemes, typically if a Supplier crosses a certain threshold of payment, and if the type of product is taxable, you may have to deduct some tax (which you pay back to your government, on your Supplier’s behalf).
 
 To do this, you will have to make a new Tax Account under “Tax Liabilities” or similar and credit this Account by the percent you are bound to deduct for every transaction.
 
diff --git a/docs/user/accounts/docs.user.accounts.reports.md b/docs/user/accounts/docs.user.accounts.reports.md
index 84356f6..9d4ec1b 100644
--- a/docs/user/accounts/docs.user.accounts.reports.md
+++ b/docs/user/accounts/docs.user.accounts.reports.md
@@ -28,4 +28,4 @@
 
 ### Sales and Purchase Register
 
-This is useful for making your tax statements invoice and Item wise. In this report, each tax Account is transposed in columns and for each Invoice and invoice Item, you will get the amount of individual tax that has been paid based on the Taxes and Charges table.
+In this report, each tax Account is transposed in columns.For each Invoice and invoice Item, you will get the amount of individual tax that has been paid, based on the Taxes and Charges table.
diff --git a/docs/user/accounts/docs.user.accounts.sales_invoice.md b/docs/user/accounts/docs.user.accounts.sales_invoice.md
index c30b166..fff37a5 100644
--- a/docs/user/accounts/docs.user.accounts.sales_invoice.md
+++ b/docs/user/accounts/docs.user.accounts.sales_invoice.md
@@ -3,9 +3,9 @@
 	"_label": "Sales Invoice"
 }
 ---
-A Sales Invoice is a bill you send to your Customers against which they will process your payment. 
+A Sales Invoice is a bill that you send to your Customers, against which they will process your payment. 
 
-If you have managed to create Sales Orders or Delivery Notes, creating a Sales Invoice should be more of the same. 
+If you have managed to create Sales Orders or Delivery Notes, creating a Sales Invoice follows the same process. 
 
 You can create a Sales Invoice directly from
 
@@ -13,6 +13,19 @@
 
 or from the “Make Sales Invoice” button in the Sales Order or Delivery Note.
 
+
+
+
+
+
+
+
+![Sales Invoice](img/sales-invoice.png)
+
+
+
+
+
 #### Accounting Impact
 
 All Sales must be booked against an “Income Account”. This refers to an Account in the “Income” section of your Chart of Accounts. It is a good practice to classify your income by type (like product income, service income etc). The Income Account must be set for each row of the Items table.
@@ -21,7 +34,7 @@
 
 The other account that is affected is the Account of the Customer. That is automatically set from “Debit To” in the heading section.
 
-You must also mention the Cost Centers in which your Income must be booked. Remember that your Cost Centers tell you the profitability of the different lines of business or product. Again, you can set a default Cost Center in your Item master.
+You must also mention the Cost Centers in which your Income must be booked. Remember that your Cost Centers tell you the profitability of the different lines of business or product. You can also set a default Cost Center in the Item master.
 
 #### Accounting entries (GL Entry) for a typical double entry “Sale”:
 
diff --git a/docs/user/buying/docs.user.buying.material_request.md b/docs/user/buying/docs.user.buying.material_request.md
index 2ccb399..c6a7785 100644
--- a/docs/user/buying/docs.user.buying.material_request.md
+++ b/docs/user/buying/docs.user.buying.material_request.md
@@ -5,6 +5,23 @@
 ---
 A Material Request is a simple document identifying a requirement of a set of Items (products or services) for a particular reason.
 
+
+![Workflow](img/material-request-workflow.jpg)
+
+
+
+
+To generate a Material Request manually go to:
+
+> Buying > Material Request > New Material Request
+
+**Step 1**
+
+![Material Request](img/material-request-1.png)
+
+
+
+
 A Material Request can be generated:
 
 - By a User.
@@ -12,20 +29,25 @@
 - Automatically when the Projected Quantity of an Item in stores reaches a particular level.
 - Automatically from your Bill of Materials if you use Production Plan to plan your manufacturing activities.
 
-To generate a Material Request manually go to:
+**Step 2**
 
-> Buying > Material Request > New Material Request
+![Material Request 2](img/material-request-2.png)
+
+
+
 
 In the Material Request form, 
 
 - Fill in the Items you want and their quantities.
-- If your Items are inventory items, you must also mention the Warehouse where you expect these Items to be delivered. This helps to keep track of the Projected Quantity for this Item.
-- You can also automatically get the Items from a Sales Order.
+
+- If your Items are inventory items, you must also mention the Warehouse where you expect these Items to be delivered. This helps to keep track of the [Projected Quantity](docs.user.stock.projected_quantity.html)for this Item.
+
+
 - You can optionally add the Terms, using the Terms and Conditions master and also the reason.
 
+
 > Info: Material Request is not mandatory. It is ideal if you have centralized buying so that you can collect this information from various departments.
 
 #### Authorization
 
-If you want your Material Request to be authorized by a senior person like a Purchase Manager then you can give “Submit” rights only to that person. Everyone can create requests, but only the authorized person can “Submit”.
-
+If you want your Material Request to be authorized by a senior person like a Purchase Manager then you can give “Submit” rights only to that person. Everyone can create requests, but only the authorized person can “Submit”.
\ No newline at end of file
diff --git a/docs/user/buying/docs.user.buying.md b/docs/user/buying/docs.user.buying.md
index 55e8437..8247475 100644
--- a/docs/user/buying/docs.user.buying.md
+++ b/docs/user/buying/docs.user.buying.md
@@ -1,10 +1,28 @@
 ---
 {
-	"_label": "Buying"
+	"_label": "Buying",
+	"_toc": [
+		"docs.user.buying.supplier_type",
+		"docs.user.buying.supplier",
+		"docs.user.buying.material_request",
+		"docs.user.buying.supplier_quotation",
+		"docs.user.buying.purchase_order",
+		"docs.user.buying.purchase_taxes",
+		"docs.user.buying.price_lists",
+		"docs.user.buying.sub_contracting"
+	]
 }
 ---
+
+
+
+![Buying](img/buying-home.png)
+
+
+
+
 If your business involves physical goods, buying is one of your core business activity. Your suppliers are as important as your customers and they must be provided with as much accurate information as possible.
 
 Buying in right amounts, in right quantities, can affect your cash flow and profitability.
 
-ERPNext contains a set of transactions that will make your buying process as efficient and seamless as possible.
+ERPNext contains a set of transactions that will make your buying process as efficient and seamless as possible.
\ No newline at end of file
diff --git a/docs/user/buying/docs.user.buying.purchase_order.md b/docs/user/buying/docs.user.buying.purchase_order.md
index 90db2bd..d78b2b5 100644
--- a/docs/user/buying/docs.user.buying.purchase_order.md
+++ b/docs/user/buying/docs.user.buying.purchase_order.md
@@ -11,6 +11,12 @@
 ￼
 A Purchase Order can also be automatically created from a Purchase Request or  Supplier Quotation.
 
+
+![Purchase Order](img/purchase-order.png)
+
+
+
+
 Entering a Purchase Order is very similar to a Purchase Request, additionally you will have to set:
 
 - Supplier. 
diff --git a/docs/user/buying/docs.user.buying.purchase_taxes.md b/docs/user/buying/docs.user.buying.purchase_taxes.md
new file mode 100644
index 0000000..31e58bf
--- /dev/null
+++ b/docs/user/buying/docs.user.buying.purchase_taxes.md
@@ -0,0 +1,37 @@
+---
+{
+
+	"_label": "Purchase Taxes"
+}
+---
+For Tax Accounts that you want to use in the tax templates, you must mention them as type “Tax” in your Chart of Accounts.
+
+Similar to your Sales Taxes and Charges Master is the Purchase Taxes and Charges Master. This is the tax template that you can use in your Purchase Orders and Purchase Invoices. 
+
+> Buying > Purchase Taxes and Charges Master > New Purchase Taxes and Charges Master
+
+
+![Purchase-Taxes](img/purchase-taxes.png)
+
+
+<br>
+
+
+You can specify if the tax / charge is only for valuation (not a part of total) or only for total (does not add value to the item) or for both.
+
+If  you select a particular tax as your Default tax, the system will apply this tax to all the purchase transactions by default.
+Calculation Type:
+
+This can be on Net Total (that is the sum of basic amount).
+On Previous Row Total / Amount (for cumulative taxes or charges). If you select this option, the tax will be applied as a percentage of the previous row (in the tax table) amount or total.
+Actual (as mentioned).
+
+- **Account Head:** The Account ledger under which this tax will be booked.
+- **Cost Center:** If the tax / charge is an income (like shipping) or expense it needs to be booked against a Cost Center.
+- **Description:** Description of the tax (that will be printed in invoices / quotes).
+- **Rate:** Tax rate.
+- **Amount:** Tax amount.
+- **Total:** Cumulative total to this point.
+- **Enter Row:** If based on "Previous Row Total" you can select the row number which will be taken as a base for this calculation (default is the previous row).
+- **Consider Tax or Charge for:** In this section you can specify if the tax / charge is only for valuation (not a part of total) or only for total (does not add value to the item) or for both.
+- **Add or Deduct:** Whether you want to add or deduct the tax.
diff --git a/docs/user/buying/docs.user.buying.supplier.md b/docs/user/buying/docs.user.buying.supplier.md
index aa53a78..e477fa2 100644
--- a/docs/user/buying/docs.user.buying.supplier.md
+++ b/docs/user/buying/docs.user.buying.supplier.md
@@ -5,13 +5,29 @@
 ---
 Suppliers are companies or individuals who provide you with products or services. They are treated in exactly the same manner as Customers in ERPNext.
 
-1. Separate Account Ledgers are created for the Supplier in the Company under “Accounts Payable”.
-1. You can have multiple Addresses and Contacts for Suppliers.
-1. Suppliers are categorized as Supplier Type.
-1. If you set “Credit Days”, ERPNext will automatically set the due date in Purchase Invoices.
 
 You can create a new Supplier via:
 
 > Buying > Supplier > New Supplier
 
-or import from the Data Import Tool
+![Supplier](img/supplier.png)
+
+
+### Contacts and Addresses
+
+ Contacts and Addresses in ERPNext are stored separately so that you can attach multiple Contacts or Addresses to Customers and Suppliers. To add a Contact or Address go to Buying and click on “New Contact” or “New Address”.
+
+
+> Tip: When you select a Supplier in any transaction, one Contact and Address gets pre-selected. This is the “Default Contact or Address”. So make sure you set your defaults correctly!
+
+
+
+
+> Buying > Contact > New Contact
+
+![Contact](img/contact.png)
+
+
+
+
+You can also import from the Data Import Tool
\ No newline at end of file
diff --git a/docs/user/buying/docs.user.buying.supplier_quotation.md b/docs/user/buying/docs.user.buying.supplier_quotation.md
index 37431f3..1308182 100644
--- a/docs/user/buying/docs.user.buying.supplier_quotation.md
+++ b/docs/user/buying/docs.user.buying.supplier_quotation.md
@@ -3,6 +3,21 @@
 	"_label": "Supplier Quotation"
 }
 ---
+A Supplier Quotation is a formal statement of promise by potential supplier to supply the goods or services required by a buyer, at specified prices, and within a specified period. A quotation may also contain terms of sale and payment, and warranties. Acceptance of quotation by the buyer constitutes an agreement binding on both parties.
+
+
+You can make a Supplier Quotation directly from:
+
+> Buying > Supplier Quotation > New Supplier Quotation
+
+or directly from the Purchase Request.
+
+
+
+![Supplier Quotation](img/supplier-quotation.png)
+
+
+
 If you have multiple **Suppliers** who supply you with the same **Item**, you usually send out a message (Request for Quote) to various **Suppliers**. In many cases, especially if you have centralized buying, you may want to record all the quotes so that 
 
 - You can easily compare prices in the future 
@@ -10,8 +25,3 @@
 
 Supplier Quotations are not necessary for most small businesses. Always evaluate the cost of collecting information to the value it really provides! You could only do this for high value items.
 
-You can make a Supplier Quotation directly from:
-
-> Buying > Supplier Quotation > New Supplier Quotation
-
-or directly from the Purchase Request.
diff --git a/docs/user/buying/docs.user.buying.supplier_type.md b/docs/user/buying/docs.user.buying.supplier_type.md
new file mode 100644
index 0000000..deaf01f
--- /dev/null
+++ b/docs/user/buying/docs.user.buying.supplier_type.md
@@ -0,0 +1,19 @@
+---
+{
+	"_label": "Supplier Type"
+}
+---
+
+Based on what the suppliers supply, they are classified into different categories called Supplier Type.
+There can be different types of suppliers. You can create your own category of Supplier Type.
+
+> Buying > Supplier Type > New Supplier Type
+
+![Buying](img/supplier-type.png)
+
+You can classify your suppliers from a range of choice available in ERPNext. Choose from a set of given options like Distributor, Electrical,Hardware, Local, Pharmaceutical, Raw material, Services etc.
+
+Classifying your supplier into different types facilitates accounting and payments. 
+
+
+Type your new supplier category and Save.
diff --git a/docs/user/docs.user.help.md b/docs/user/docs.user.help.md
index 55d12d2..9563ce1 100644
--- a/docs/user/docs.user.help.md
+++ b/docs/user/docs.user.help.md
@@ -4,11 +4,12 @@
 	"_icon": "question"
 }
 ---
-If you are stuck and have searched all the help that is available online and need to talk to someone, here is how you do it:
+If you are stuck, have searched all the posible help that is available online, and need to talk to someone, here is how you do it:
 
 ### 1. Head to the Forums
 
-- If you are a user or evaluating and want to talk to other ERPNext users, go to the [ERPNext User Forum](groups.google.com/group/erpnext-user-forum/)
+- If you are a user or you are evaluating and want to talk to other ERPNext users, go to the [ERPNext User Forum](groups.google.com/group/erpnext-user-forum/)
+
 - If you are a developer and want help in customizing or extending ERPNext, head to the developer forums [ERPNext Developer Forum](groups.google.com/group/erpnext-developer-forum/)
 
 ### 2. Report an Issue / Suggestion at GitHub
@@ -19,7 +20,7 @@
 
 ### 3. Get in touch with a local partner.
 
-ERPNext has an expanding partner community so check this page out if there is a local partner  in your region.
+ERPNext has an expanding partner community. So check this page out if there is a local partner in your region.
 
 - [ERPNext Parter List](https://erpnext.com/partners)
 
diff --git a/docs/user/docs.user.md b/docs/user/docs.user.md
index 9c6c66d..d82e71e 100644
--- a/docs/user/docs.user.md
+++ b/docs/user/docs.user.md
@@ -50,6 +50,8 @@
 	1. [Setting up Taxes](docs.user.setup.taxes.html)
 	1. [Price Lists](docs.user.setup.price_lists.html)
 	1. [Adding Opening Entries](docs.user.setup.opening.html)
+	1. [POS Setting](docs.user.setup.pos_setting.html)
+	1. [Third Party Backups](docs.user.setup.third_party_backups.html)	
 1. [Selling](docs.user.selling.html)
 	1. Selling Setup
 		1. [Customer Group](docs.user.selling.customer_groups.html)
@@ -74,7 +76,7 @@
 	1. [Price Lists](docs.user.setup.price_lists.html)
 	1. [Sub Contracting](docs.user.stock.sub_contracting.html)
 1. [Stock (Inventory)](docs.user.stock.html)
-	1. [Warehouse](docs.user.stock.item.html)
+	1. [Warehouse](docs.user.stock.warehouse.html)
 	1. [Item Group](docs.user.stock.item_group.html)
 	1. [Item](docs.user.stock.item.html)
 	1. [Serialized Inventory](docs.user.stock.serialized.html)
@@ -82,10 +84,11 @@
 	1. [Delivery Note](docs.user.stock.delivery_note.html)
 	1. [Stock Entry / Material Transfer](docs.user.stock.stock_entry.html)
 	1. [Material Issue](docs.user.stock.material_issue.html)
-	1. [Material Issue](docs.user.stock.material_issue.html)
 	1. [Sales Return](docs.user.stock.sales_return.html)
-	1. [Purchase Return](docs.user.stock.sales_return.html)
+	1. [Purchase Return](docs.user.stock.purchase_return.html)
+	1. [Projected Quantity](docs.user.stock.projected_quantity.html)
 	1. [Accounting for Stock](docs.user.stock.accounting_for_stock.html)
+	1. [Perpetual Inventory](docs.user.stock.perpetual_inventory.html)
 1. [Accounting](docs.user.accounting.html)
 	1. [Chart of Accounts](docs.user.setup.accounting.html)
 	1. [Chart of Cost Centers](docs.user.setup.cost_centers.html)
@@ -97,6 +100,7 @@
 	1. [Period Closing](docs.user.accounts.closing.html)
 	1. [Accounting Reports](docs.user.accounts.reports.html)
 	1. [Upload Journal Entries in Bulk](docs.user.accounts.voucher_import.html)
+	1. [Point of Sale (POS) Invoice](docs.user.accounts.pos.html)
 1. [Human Resources (HR)](docs.user.hr.html)
 	1. [HR Setup](docs.user.hr.setup.html)
 	1. [Employee](docs.user.hr.employee.html)
diff --git a/docs/user/hr/docs.user.hr.employee.md b/docs/user/hr/docs.user.hr.employee.md
index a3f065d..f63b9ac 100644
--- a/docs/user/hr/docs.user.hr.employee.md
+++ b/docs/user/hr/docs.user.hr.employee.md
@@ -3,7 +3,7 @@
 	"_label": "Employee Master"
 }
 ---
-There are many fields you can add in your Employee records and the more information you update it will be useful as your organization keeps growing and more and more people come and go.
+There are many fields you can add in your Employee records. As the organisation grows, it becomes difficult to manage more records. It is advisable to keep updating and entering records to facilitate data management of employees.
 
 Employee records also help in keeping a list of your team’s skills, previous employment history and also emergency information.
 
diff --git a/docs/user/hr/docs.user.hr.expense_claim.md b/docs/user/hr/docs.user.hr.expense_claim.md
index 37c63cc..53218b2 100644
--- a/docs/user/hr/docs.user.hr.expense_claim.md
+++ b/docs/user/hr/docs.user.hr.expense_claim.md
@@ -3,7 +3,7 @@
 	"_label": "Expense Claim"
 }
 ---
-When Employee’s make expenses out of their pocket on behalf of the company, for example, if they take a customer out for lunch, they can make a request for reimbursement via the Expense Claim form. 
+Expense Claim is made when Employee’s make expenses out of their pocket on behalf of the company. For example, if they take a customer out for lunch, they can make a request for reimbursement via the Expense Claim form. 
 
 To make a new Expense Claim, go to:
 
diff --git a/docs/user/hr/docs.user.hr.md b/docs/user/hr/docs.user.hr.md
index e6f88b7..8657454 100644
--- a/docs/user/hr/docs.user.hr.md
+++ b/docs/user/hr/docs.user.hr.md
@@ -3,10 +3,6 @@
 	"_label": "Human Resource Management"
 }
 ---
-The Human Resources (HR) Module covers the processes linked to administering a team of co-workers. Most common among this is processing payroll by using the Salary Manager to generate Salary Slips. Most countries have complex tax rules stating what expenses can the company make on behalf of Employees and also expect the company to deduct taxes and social security from their payroll.
+The Human Resources (HR) Module covers the processes linked to managing a team of co-workers. Most important feature here is processing the payroll by using the Salary Manager to generate Salary Slips. Most countries have complex tax rules stating which expenses the company can make on behalf of the Employees. There are a set of rules for the company to deduct taxes and social security from employee payroll. ERPNext allows to accomodate all types of taxes and their calculation.
 
-Apart from that you can also track Leave Applications and balances, Expense Claims and upload Attendance data (even though the world has moved to a result-oriented culture, some countries still mandate companies to maintain an attendance register to ensure you are not over-working your team).
-
-You can also create a template for Appraisals and also record the performance using the Appraisal record.
-
-> Confession: No, we don’t like the terms human “resources” and “employees” either, but since this terms are widely used and accepted for administrative procedures, we will use them here.
\ No newline at end of file
+It  also maintains a complete employee database including contact information, salary details, attendance, performance evaluation, and appraisal records.
\ No newline at end of file
diff --git a/docs/user/intro/docs.user.implement.concepts.md b/docs/user/intro/docs.user.implement.concepts.md
index ac481d4..31b4358 100644
--- a/docs/user/intro/docs.user.implement.concepts.md
+++ b/docs/user/intro/docs.user.implement.concepts.md
@@ -3,7 +3,7 @@
 	"_label": "Concepts and Terms"
 }
 ---
-Before you start implementation, lets get familiar with the terminology used and some basic concepts in ERPNext.
+Before you start implementation, lets get familiar with the terminology that is used and some basic concepts in ERPNext.
 
 ---
 
@@ -77,7 +77,7 @@
 
 #### Cost Center
 
-A Cost Center is like an Account, but the only difference is that it's structure represents your business more closely than Accounts. For example in your Chart of Accounts, you separate your expenses by type (say travel, marketing etc). In your Chart of Cost Centers, you can separate them by product line or business group (for example online sales, retail sales)
+A Cost Center is like an Account, but the only difference is that its structure represents your business more closely than Accounts. For example in your Chart of Accounts, you separate your expenses by type (say travel, marketing etc). In your Chart of Cost Centers, you can separate them by product line or business group (for example online sales, retail sales)
 
 > Accounts > Chart of Cost Centers
 
@@ -101,7 +101,7 @@
 
 #### Currency
 
-ERPNext allows you to book transactions in multiple currencies. There is only one currency for your books of accounts though. While posting your Invoices, payments in different currencies, the amounts are converted to the default currency by the specified conversion rate.
+ERPNext allows you to book transactions in multiple currencies. There is only one currency for your book of accounts though. While posting your Invoices, payments in different currencies, the amount is converted to the default currency by the specified conversion rate.
 
 > Setup > Company > Currencies
 
@@ -209,7 +209,7 @@
 
 #### Stock Ledger Entry
 
-A unified table for all material movement from one warehouse to another. This is the table that is updated when a Stock Entry, Delivery Note, Purchase Receipt, Sales Invoice (POS) is made.
+A unified table for all material movement from one warehouse to another. This is the table that is updated when a Stock Entry, Delivery Note, Purchase Receipt, and Sales Invoice (POS) is made.
 
 #### Stock Reconciliation
 
@@ -265,7 +265,7 @@
 
 #### Salary Structure
 
-A template identifying all the components of an Employee’s salary (earnings) and tax and other social security deductions.
+A template identifying all the components of an Employees' salary (earnings) and tax and other social security deductions.
 
 > Human Resource > Salary and Payroll > Salary Structure
 
diff --git a/docs/user/intro/docs.user.implement.md b/docs/user/intro/docs.user.implement.md
index f42d661..59f2c49 100644
--- a/docs/user/intro/docs.user.implement.md
+++ b/docs/user/intro/docs.user.implement.md
@@ -7,7 +7,7 @@
 	]
 }
 ---
-We have seem dozens of ERP implementations over the past few years and we realize that successful implementations are a lot about intangibles and attitude.
+We have seen dozens of ERP implementations over the past few years and we realize that successful implementation is a lot about intangibles and attitude.
 
 **ERPs are not required.**
 
@@ -23,12 +23,12 @@
 
 ## The Champion
 
-ERP means organization wide change and it does not happen without effort. Every change requires a champion and it is the duty of the champion to organize and energize the entire team towards implementation. The champion is all the fall guy (or fall gal) incase something goes wrong and hence needs to be resilient. Who becomes a champion without putting effort anyways?
+ERP means organization wide change and it does not happen without effort. Every change requires a champion and it is the duty of the champion to organize and energize the entire team towards implementation. The champion needs to be resilient incase something goes wrong .
 
-In many organizations we have seen, the champion is most often the owner or a senior manager. Occasionally, the champion is an outsider who is hired for the purpose.
+In many organizations we have seen, the champion is most often the owner or a senior manager. Occasionally, the champion is an outsider who is hired for a particular purpose.
 
 In either case, you must identify your champion first.
 
-Most likely its **you!** 
+Most likely it's **you!** 
 
-Lets Begin!
+Lets Begin!
\ No newline at end of file
diff --git a/docs/user/intro/docs.user.implement.strategy.md b/docs/user/intro/docs.user.implement.strategy.md
index 3abb91a..9ec58e8 100644
--- a/docs/user/intro/docs.user.implement.strategy.md
+++ b/docs/user/intro/docs.user.implement.strategy.md
@@ -10,7 +10,7 @@
 ### Test Phase
 
 - Read the Manual
-- Create your first Customer, Supplier and Item. Add a few more so you get familiar.
+- Create your first Customer, Supplier and Item. Add a few more so you get familiar with them.
 - Create Customer Groups, Item Groups, Warehouses, Supplier Groups, so that you can classify your Items.
 - Complete a standard sales cycle - Lead > Opportunity > Quotation > Sales Order > Delivery Note > Sales Invoice > Payment (Journal Voucher)
 - Complete a standard purchase cycle - Purchase Request > Purchase Order > Purchase Receipt > Payment (Journal Voucher).
@@ -20,11 +20,10 @@
 
 ### Live Phase
 
-Once you have made yourself familiar with ERPNext, start entering your live data!
+Once you are familiar with ERPNext, start entering your live data!
 
 - Clean up the account of test data or better, start a fresh install.
 - Setup all the modules with Customer Groups, Item Groups, Warehouses, BOMs etc.
 - Import Customers, Suppliers, Items, Contacts and Addresses using Data Import Tool.
 - Import opening stock using Stock Reconciliation Tool.
-- Create opening accounting entries via Journal Voucher and create outstanding Sales Invoices and Purchase Invoices.
-
+- Create opening accounting entries via Journal Voucher and create outstanding Sales Invoices and Purchase Invoices.
\ No newline at end of file
diff --git a/docs/user/intro/docs.user.intro.md b/docs/user/intro/docs.user.intro.md
index a6debe8..5c1cb56 100644
--- a/docs/user/intro/docs.user.intro.md
+++ b/docs/user/intro/docs.user.intro.md
@@ -11,18 +11,15 @@
 ---
 ## What is an ERP and why should I care?
 
-(If you are already convinced you need an all-in-one system for your organization, you can skip this.)
+(If you are already convinced you need an all-in-one system for your organization, you can skip this page.)
 
-If you are running a small business that has some employees, you understand its hard to manage the dynamic nature of doing businesses. 
-You are already using software like Accounting, and may be some other one to manage your inventory and sales (or CRM). 
+If you are running a small business that has a few employees, you understand that it's hard to manage the dynamic nature of doing businesses. You are already using a software like Accounting, and may be some more to manage your inventory and sales (or CRM). 
+
 An ERP brings all of this together in one place.
 
-Small businesses are not so different from large ones. They contain most of the complexities of a large business along with many other constraints. 
-Small businesses have to communicate with customers, do accounts, pay taxes, do payroll, manage timelines, deliver quality, answer questions 
-and keep everyone happy just like in large businesses.
+Small businesses are not so different from large ones. They contain most of the complexities of a large business along with many other constraints. Small businesses have to communicate with customers, do accounts, pay taxes, do payroll, manage timelines, deliver quality, answer questions, and keep everyone happy just like in large businesses.
 
-Large businesses have the advantage of using advanced data systems to manage their process efficiently. 
-Small businesses typically struggle to keep things organized. They often use a mix of apps like spreadsheets, accounting software, web CRM etc to manage.The problem is, not everyone is on the same page. An ERP changes that.
+Large businesses have the advantage of using advanced data systems to manage their process efficiently. Small businesses, on the other hand, typically struggle to keep things organized. They often use a mix of apps like spreadsheets, accounting software, web CRM etc to manage.The problem is, not everyone is on the same page. An ERP changes that.
 
 ---
 
@@ -30,6 +27,13 @@
 
 ERPNext helps you to manage all your business information in one application and use it to manage operations and take decisions based on data.
 
+
+
+![ERPNext-Introduction](img/erpnext-introduction.png)
+
+
+
+
 Among other things, ERPNext will help you to:
 
 - Track all Invoices and Payments.
@@ -48,19 +52,19 @@
 
 ## Why Should I Use ERPNext?
 
-ERPNext is a modern tool that covers not only accounting but also all other business functions on an integrated platform. It has many benefits over both traditional accounting as well as ERP applications.
+ERPNext is a modern tool that covers not only accounting but also all other business functions, on an integrated platform. It has many benefits over both traditional accounting as well as ERP applications.
 
 ### Benefits over traditional accounting software:
 
 - Do a lot more than just accounting! Manage inventory, billing, quotes, leads, payroll and a lot more.
 - Keep all your data safe and in one place. Don’t keep hunting for data when you need it across spreadsheets and different computers.
 -Manage everyone on the same page. All users get the same updated data.
-- Stop repetitive work. Don’t enter the same information from your word processor to your accounting tool. Its all integrated.
+- Stop repetitive work. Don’t enter the same information from your word processor to your accounting tool. It's all integrated.
 - Keep track. Get the entire history of a customer or a deal in one place.
 
 ### Benefits over big ERPs
 
-- $$$ - Save money.
-- Easier to configure. Big ERPs are notoriously hard to setup and will ask you a zillion questions before you can do something meaningful.
-- Easier to use. Modern web like user interface will keep your users happy and in familiar territory.
-- Open Source. This software is always free and you can host it anywhere you like.
+- $$$ - Saves money.
+- **Easier to configure:** Big ERPs are notoriously hard to setup and will ask you a zillion questions before you can do something meaningful.
+- **Easier to use:** Modern web like user interface will keep your users happy and in familiar territory.
+- **Open Source :** This software is always free and you can host it anywhere you like.
\ No newline at end of file
diff --git a/docs/user/intro/docs.user.intro.open_source.md b/docs/user/intro/docs.user.intro.open_source.md
index 37e23c4..bc36ce4 100644
--- a/docs/user/intro/docs.user.intro.open_source.md
+++ b/docs/user/intro/docs.user.intro.open_source.md
@@ -8,9 +8,9 @@
 Advantages of an Open Source software are:
 
 1. You can choose to change your service provider anytime.
-1. You can host the application anywhere, including your own server so you have complete ownership and privacy of the data.
-1. There will always be a community to support you incase you need help and you are not dependant  only on your service provider.
-1. The product is critiqued and used by a wide range of people who have reported hundreds of issues and suggestions to make this product better, and this will always continue.
+1. You can host the application anywhere, including your own server to gain complete ownership and privacy of the data.
+1. You can access a community to support you, incase you need help. You are not dependant on your service provider.
+1. You can benefit from using a product that is critiqued and used by a wide range of people, who have reported hundreds of issues and suggestions to make this product better, and this will always continue.
 
 ---
 
@@ -22,5 +22,4 @@
 1. OpenBravo
 1. Apache OfBiz
 1. xTuple
-1. Compiere (and forks)
-
+1. Compiere (and forks)
\ No newline at end of file
diff --git a/docs/user/intro/docs.user.intro.try.md b/docs/user/intro/docs.user.intro.try.md
index 051caab..2a53ca5 100644
--- a/docs/user/intro/docs.user.intro.try.md
+++ b/docs/user/intro/docs.user.intro.try.md
@@ -7,7 +7,7 @@
 
 ### 1. See the Demo
 
-If you just want to check out the user interface and **feel** the application, just see the demo at:
+If you want to check out the user interface and **feel** the application, just see the demo at:
 
 - [https://demo.erpnext.com](https://demo.erpnext.com)
 
diff --git a/docs/user/mfg/docs.user.mfg.md b/docs/user/mfg/docs.user.mfg.md
index 9f01f76..3755987 100644
--- a/docs/user/mfg/docs.user.mfg.md
+++ b/docs/user/mfg/docs.user.mfg.md
@@ -3,7 +3,7 @@
 	"_label": "Manufacturing"
 }
 ---
-The Manufacturing module in ERPNext helps you maintain multi-level Bill of Materials (BOMs) for your Items, help you in Product Costing, plan your production via Production Plan, create Production Orders for your manufacturing shop floor and plan your inventory by getting your material requirement via your BOMs (also called Material Requirements Planning MRP).
+The Manufacturing module in ERPNext helps you to maintain multi-level Bill of Materials (BOMs) for your Items. It helps you in Product Costing, planing your production via Production Plan, creating Production Orders for your manufacturing shop floor,s and planing your inventory by getting your material requirement via BOMs (also called Material Requirements Planning MRP).
 
 ### Types of Production Planning
 
@@ -19,7 +19,7 @@
 
 #### Manufacturing and Inventory
 ￼
-You can track you work-in-progress by creating work-in-progress Warehouses. 
+You can track work-in-progress by creating work-in-progress Warehouses. 
 
 ERPNext will help you track material movement by automatically creating Stock Entries from your Production Orders by building form Bill of Materials.
 
diff --git a/docs/user/selling/docs.user.selling.customer.md b/docs/user/selling/docs.user.selling.customer.md
index 05c4d96..396aef0 100644
--- a/docs/user/selling/docs.user.selling.customer.md
+++ b/docs/user/selling/docs.user.selling.customer.md
@@ -61,4 +61,4 @@
 
 A Sales Partner is a third party distributor / dealer / commission agent / affiliate / reseller who sells the companies products, for a commission. This is useful if you make the end sale to the Customer, involving your Sales Partner.
 
-If you sell to your Sales Partner who in-turn sells it to the Customer, then you must make a Customer instead.
+If you sell to your Sales Partner who in-turn sells it to the Customer, then you must make a Customer instead.
\ No newline at end of file
diff --git a/docs/user/setup/docs.user.setup.accounting.md b/docs/user/setup/docs.user.setup.accounting.md
index af91539..baa0585 100644
--- a/docs/user/setup/docs.user.setup.accounting.md
+++ b/docs/user/setup/docs.user.setup.accounting.md
@@ -9,17 +9,17 @@
 ---
 The Chart of Accounts forms the blueprint of your organization. The overall structure of your Chart of Accounts is based on a system of double entry accounting that has become a standard all over the world to quantify how a company is doing financially. 
 
-The Chart of Accounts helps you answer:
+The Chart of Accounts helps you to answer:
 
-- What is your organization worth?
+- What is your organisation worth?
 - How much debt have you taken?
 - How much profit are you making (and hence paying tax)?
 - How much are you selling?
-- What is your expense break- up
+- What is your expense break-up
 
- You may note that as a business manager,it is very valuable  to see how well your business is doing. 
+ You may note that as a business manager,it is very valuable to see how well your business is doing. 
 
-> Tip: If you can’t read a Balance Sheet (I confess it took me a long time to figure this out) its a good opportunity to start learning about this. It will be worth the effort. You can also take the help of your accountant to setup your Chart of Accounts.
+> Tip: If you can’t read a Balance Sheet (I confess it took me a long time to figure this out) it's a good opportunity to start learning about this. It will be worth the effort. You can also take the help of your accountant to setup your Chart of Accounts.
 
 To edit your Chart of Accounts in ERPNext go to:
 
@@ -39,7 +39,7 @@
 
 > Accounting: If you are new to accounting, you might be wondering, how can Assets be equal to Liabilities? That would mean the company has nothing of its own. Thats right. All the “investment” made in the company to buy assets (like land, furniture, machines) is made by the owners and is a liability to the company. If the company would want to shut down, it would need to sell all the assets and pay back all the liabilities (including profits) to the owners, leaving itself with nothing.
 
-All the accounts under this represent an asset owned by company like "Bank Account", "Land and Property", "Furniture" or a liability (funds that the company owes to others) like "Owners funds", "Debt" etc.
+All the accounts under this represent an asset owned by the company like "Bank Account", "Land and Property", "Furniture" or a liability (funds that the company owes to others) like "Owners funds", "Debt" etc.
 
 Two special accounts to note here are Accounts Receivable (money you have to collect from your customers) and Accounts Payable (money you have to pay to your suppliers) under Assets and Liabilities respectively.
 
@@ -65,7 +65,7 @@
 
 ### Other Account Types
 
-In ERPNext, you can also specify more information when you create a new Account, this is there to help you select that particular account in a scenario like Bank Account or a Tax Account and has no affect on the Chart itself.
+In ERPNext, you can also specify more information when you create a new Account, this is there to help you select that particular account in a scenario like Bank Account or a Tax Account and has no effect on the Chart itself.
 
 You can also tag if an account represents a Customer, Supplier or Employee in "Master Type".
 
@@ -84,4 +84,4 @@
 - Types of Expenses (travel, salaries, telephone etc) under Expenses.
 - Taxes (VAT, Sales Tax etc based on your country) under Current Liabilities.
 - Types of Sales (for example, Product Sales, Service Sales etc.) under Income.
-- Types of Assets (building, machinery, furniture etc.) under Fixed Assets.
+- Types of Assets (building, machinery, furniture etc.) under Fixed Assets.
\ No newline at end of file
diff --git a/docs/user/setup/docs.user.setup.cost_centers.md b/docs/user/setup/docs.user.setup.cost_centers.md
index ca5e595..e4841d8 100644
--- a/docs/user/setup/docs.user.setup.cost_centers.md
+++ b/docs/user/setup/docs.user.setup.cost_centers.md
@@ -8,9 +8,9 @@
 }
 ---
 
-Your Chart of Accounts is mainly for reporting your information for governmental purposes and less for how your business actually performs. Though you can tweak it a bit to resemble your business.
+Your Chart of Accounts is mainly designed to provide reports to the government and tax authorities.
 ￼
-Most businesses have multiple activities like different product lines, market segments, areas of business that share some common overheads but should ideally have their own structure to report whether they are profitable or not. For this purpose, there is an alternate structure, called the Chart of Cost Centers.
+Most businesses have multiple activities like different product lines, market segments, areas of business, etc that share some common overheads.They should ideally have their own structure to report, whether they are profitable or not. For this purpose, there is an alternate structure, called the Chart of Cost Centers.
 
 You can create a tree of Cost Centers to represent your business better. Each Income / Expense entry is also tagged against a Cost Center. 
 
@@ -19,9 +19,9 @@
 - Walk-in Sales
 - Online Sales
 
-You may not have shipping expenses for your walk-in customers, and no shop-rent for your online customers. If you want to get the profitability of each of these separately, you create the two as Cost Centers and you can mark all sales as either "Walk-in" or "Online" and also all your purchases in the same way.
+You may not have shipping expenses for your walk-in customers, and no shop-rent for your online customers. If you want to get the profitability of each of these separately, you should create the two as Cost Centers and mark all sales as either "Walk-in" or "Online". Mark your all your purchases in the same way.
 
-So when you do your analysis you get a better understanding as to which side of your business is doing better.  Since ERPNext has an option to add multiple Companies, you can create Cost Centers for each Company and manage it separately.
+Thus when you do your analysis you get a better understanding as to which side of your business is doing better. Since ERPNext has an option to add multiple Companies, you can create Cost Centers for each Company and manage it separately.
 
 ### Chart of Cost Centers
 
@@ -35,7 +35,7 @@
 
 ERPNext will help you set and manage budgets on your Cost Centers. This is useful when, for example, you are doing online sales. You have a budget for search ads, and you want ERPNext to stop or warn you from over spending, based on that budget. 
 
-Budgets are also great for planning purposes. When you are making your plans for the next financial year, you would typically target a revenue based on which you would set your expenses. Setting a budget will ensure that your expenses do not get out of hand, at any point,as per your plans.
+Budgets are also great for planning purposes. When you are making plans for the next financial year, you would typically target a revenue based on which you would set your expenses. Setting a budget will ensure that your expenses do not get out of hand, at any point, as per your plans.
 
 You can define it in the Cost Center. If you have seasonal sales you can also define a budget distribution that the budget will follow.
 ￼
diff --git a/docs/user/setup/docs.user.setup.first.md b/docs/user/setup/docs.user.setup.first.md
index c7d4aff..5e1c5d8 100644
--- a/docs/user/setup/docs.user.setup.first.md
+++ b/docs/user/setup/docs.user.setup.first.md
@@ -2,8 +2,8 @@
 {
 	"_label": "Initial Setup"
 }
----
-After a successful sign-up / installation of ERPNext, on your first sign-in, you will be shown a form to fill.
+---`
+After a successful sign-up / installation of ERPNext, on your first sign-in, you will get a form to fill.
 
 ![First Screen](img/setup-first-screen.png)
 ￼
@@ -11,11 +11,11 @@
 
 Some definitions:
 
-- Fiscal Year: is your financial year, the fiscal year usually starts on 1st Jan or 1st March for most regions. If you are not sure, consult an accountant.
+- Fiscal Year: This is your financial year, the fiscal year usually starts on 1st Jan or 1st March for most regions. If you are not sure, consult an accountant.
 - Abbreviation: In a multi-company setup, the abbreviation is appended to each account, so keep it small (2-4) characters and all caps.
 
 This will also set the default **Currency** and time zone for your account. Once you complete this, your first **Company** and **Chart of Accounts** will be created.
 
 Congrats! You are already on your way.
 
-The next step is to follow implementation instructions.
+The next step is to follow implementation instructions.
\ No newline at end of file
diff --git a/docs/user/setup/docs.user.setup.md b/docs/user/setup/docs.user.setup.md
index 847a215..bd5c499 100644
--- a/docs/user/setup/docs.user.setup.md
+++ b/docs/user/setup/docs.user.setup.md
@@ -19,13 +19,14 @@
 		"docs.user.setup.sms",
 		"docs.user.setup.taxes",
 		"docs.user.setup.price_lists",
-		"docs.user.setup.opening"
+		"docs.user.setup.opening",
+		"docs.user.setup.pos_setting",
+		"docs.user.setup.third_party_backups"
 	]
 }
 ---
-Setting up an ERP system is like starting your business all over again, but in the virtual
-world. Thankfully it is not as hard as the real thing and you get to do a trial too.
+Setting up an ERP system is like starting your business all over again, although in the virtual world. Thankfully it is not as hard as the real business and you get to do a trial too!
 
-Implementation requires the implementer to take a step back and set aside some time to do this right. This is usually not a couple-of-hours after-work kind of a project.
+Implementation requires the implementer to take a step back and set aside some time to do this right. This is usually not a couple-of-hours, after-work kind of a project.
 
-Let us start with the screen which you see the first time you login.
+Let us start with the screen that you see, the first time you login.
\ No newline at end of file
diff --git a/docs/user/setup/docs.user.setup.pos_setting.md b/docs/user/setup/docs.user.setup.pos_setting.md
new file mode 100644
index 0000000..8ea863b
--- /dev/null
+++ b/docs/user/setup/docs.user.setup.pos_setting.md
@@ -0,0 +1,21 @@
+---
+{
+	"_label": "POS Setting"
+}
+---
+
+#### POS Settings
+
+POS includes advanced features to cater to different functionality, such as inventory management, CRM, financials, warehousing, etc., all built into the POS software. Prior to the modern POS, all of these functions were done independently and required the manual re-keying of information, which could lead to entry errors.
+
+If you are in retail operations, you want your Point of Sale to be as quick and efficient as possible. To do this, you can create a POS Setting for a user from:
+
+> Accounts > Point-of-Sale Setting
+
+Set default values as defined.
+
+
+![POS Setting](img/pos-setting.png)
+
+
+> Important : If you specify a particular User, the POS setting will be applied only to that User. If the User option is left blank, the setting will be set for all users.
diff --git a/docs/user/setup/docs.user.setup.price_list.md b/docs/user/setup/docs.user.setup.price_list.md
index c746ee7..0103cc3d 100644
--- a/docs/user/setup/docs.user.setup.price_list.md
+++ b/docs/user/setup/docs.user.setup.price_list.md
@@ -2,4 +2,14 @@
 {
 	"_label": "Price Lists"
 }
----
\ No newline at end of file
+---
+
+Price List is a  table of sale price for an Item. An Item can have multiple prices based on customer, currency, region, shipping cost etc. 
+
+A Price List is a place where different rate plans can be stored. It’s a name you can give to a set of Item prices. In case you have different zones (based on the shipping costs), for different currencies etc, you can maintain different Price Lists.You can maintain a Price List for your international customers with USD as transacting currency.
+
+
+![Price-List](img/price-lists.png)
+
+
+ A Price List is formed when you create different Item Prices. To import Item Price visit “Import Item Price”.
\ No newline at end of file
diff --git a/docs/user/setup/docs.user.setup.third_party_backups.md b/docs/user/setup/docs.user.setup.third_party_backups.md
new file mode 100644
index 0000000..04f6a4c
--- /dev/null
+++ b/docs/user/setup/docs.user.setup.third_party_backups.md
@@ -0,0 +1,47 @@
+---
+{
+	"_label": "Third Party Backups"
+}
+---
+
+If you wish to store your backups on a periodic basis,on Dropbox, you can do it directly through ERPNext.
+
+> Setup > Manage 3rd Party Backups
+
+
+
+![Third Party Backups](img/third-party-backups.png)
+
+
+On the Backup Manager page, enter the email addresses of those people whom you wish to notify about the upload status. Under the topic 'Sync with Dropbox', select whether you wish to upload Daily, Weekly or Never. The third step is to click on **Allow Dropbox Access**.
+
+> Tip: In future, if you wish to discontinue uploading backups to dropbox, then select the Never option.
+
+![Backup Manager](img/backup-manager.png)
+
+
+
+ You need to login to your dropbox account, with your user id and password.
+
+
+
+![Dropbox Access](img/dropbox-access.png)
+
+
+
+## Open Source Users
+
+
+Installing Pre-Requisites
+
+    pip install dropbox
+    pip install google-api-python-client
+
+<br>
+#### Create an App in Dropbox
+
+First create your Dropbox account.After successful creation of account you will receive `app_key`, `app_secret` and `access_type`. Now open `conf.py` and set `app_key` as `dropbox_access_key` and `app_secret` as `dropbox_secret_key` 
+
+
+<br>
+> Note: Please ensure Allow Pop-ups are enabled in your browser.
diff --git a/docs/user/stock/docs.user.stock.delivery_note.md b/docs/user/stock/docs.user.stock.delivery_note.md
index b1d1736..3017a1b 100644
--- a/docs/user/stock/docs.user.stock.delivery_note.md
+++ b/docs/user/stock/docs.user.stock.delivery_note.md
@@ -13,6 +13,16 @@
 
 or from a “Submitted” Sales Order (that is not already shipped) by clicking on “Make Delivery Note”.
 
+
+
+
+![Delivery Note](img/delivery-note.png)
+
+
+
+
+
+
 You can also “fetch” the details from an unshipped Sales Order. 
 
 You will notice that all the information about unshipped Items and other details are carried over from your Sales Order.
diff --git a/docs/user/stock/docs.user.stock.item_group.md b/docs/user/stock/docs.user.stock.item_group.md
new file mode 100644
index 0000000..aca2a78
--- /dev/null
+++ b/docs/user/stock/docs.user.stock.item_group.md
@@ -0,0 +1,9 @@
+---
+{
+	"_label": "Item Group"
+}
+---
+
+Item Group is the classification category. Depending on the type of product, you have to categorise it under its respective field. If the product is service oriented, you have to name it under the group head Service. If the product is used as a raw-material, you have to name it under the Raw-material category. In case, your product is used only in trading, you can categorise it under Trading. 
+
+You can also create your own groups . Go to Setup- Master Data- Item Group- Item Group Tree- Add Child.
diff --git a/docs/user/stock/docs.user.stock.material_issue b/docs/user/stock/docs.user.stock.material_issue
new file mode 100644
index 0000000..e372e7f
--- /dev/null
+++ b/docs/user/stock/docs.user.stock.material_issue
@@ -0,0 +1,26 @@
+---
+{
+	"_label": "Material Issue"
+}
+---
+
+A Warehouse stocks materials required for manufacturing or trading. The Material Issue form has to be submitted to order materials out of a Warehouse by any department.
+
+> Stock > Stock Entry > New Stock Entry
+
+
+Go to Stock Entry.
+Click on New Stock Entry
+Select the option “Material Issue” under Purpose.
+Provide Source Warehouse details.
+Provide the BOM Number.
+Save
+
+
+![Material Issue](img/material-issue.png)
+
+
+
+
+
+Note: If you have done a stock entry and selected “Material Issue” under Purpose, that particular amount of stock will reflect as negative in stock details.
diff --git a/docs/user/stock/docs.user.stock.material_issue.md b/docs/user/stock/docs.user.stock.material_issue.md
new file mode 100644
index 0000000..45e3d98
--- /dev/null
+++ b/docs/user/stock/docs.user.stock.material_issue.md
@@ -0,0 +1,26 @@
+---
+{
+	"_label": "Material Issue"
+}
+---
+
+A Warehouse stocks materials required for manufacturing or trading. The Material Issue form has to be submitted to order materials out of a Warehouse by any department.
+
+> Stock > Stock Entry > New Stock Entry
+
+
+Go to Stock Entry.
+Click on New Stock Entry
+Select the option “Material Issue” under Purpose.
+Provide Source Warehouse details.
+Provide the BOM Number.
+Save
+
+
+![Material Issue](img/material-issue.png)
+
+
+
+
+
+Note: If you have done a stock entry and selected “Material Issue” under Purpose, that particular amount of stock will reflect as negative in stock details.
\ No newline at end of file
diff --git a/docs/user/stock/docs.user.stock.md b/docs/user/stock/docs.user.stock.md
index 1fa01da..85392ea 100644
--- a/docs/user/stock/docs.user.stock.md
+++ b/docs/user/stock/docs.user.stock.md
@@ -3,6 +3,13 @@
 	"_label": "Stock / Inventory"
 }
 ---
+
+![Stock-Inventory](img/stock-inventory.png)
+
+
+
+
+
 For most small business that deal in physical goods, a large part of their net worth is invested in the stock in hand. 
 
 ### Best Practice
@@ -10,7 +17,7 @@
 There are two aspects to good material management:
 
 - **Good housekeeping / visual control:** Keep all your items in separate bins,neatly stacked and labelled.  “A place for everything and everything in its place” 
-- **Accurate Data:** Accurate data comes from good processes and recording each and every transaction. If you are only partially recording your inventory then your reports will be incorrect  “Garbage In Garbage Out”
+- **Accurate Data:** Accurate data comes from good processes and recording each and every transaction. If you are only partially recording your inventory then your reports will be incorrect   “Garbage In Garbage Out”
 
 If you have good processes to control movement of goods within your organization, implementation in ERPNext will be a breeze.
 
diff --git a/docs/user/stock/docs.user.stock.projected_quantity.md b/docs/user/stock/docs.user.stock.projected_quantity.md
new file mode 100644
index 0000000..8fff133
--- /dev/null
+++ b/docs/user/stock/docs.user.stock.projected_quantity.md
@@ -0,0 +1,27 @@
+---
+{
+	"_label": "Projected Quantity"
+}
+---
+
+Projected Quantity is the level of stock that is predicted for a particular Item, based on the current stock levels and other requirements.It is the quantity of gross inventory that includes supply and demand in the past which is done as part of the planning process.
+
+The projected inventory is used by the planning system to monitor the reorder point and to determine the reorder quantity. The projected Quantity is used by the planning engine to monitor the safety stock levels. These levels are maintained to serve unexpected demands.
+
+Having a tight control of the projected inventory is crucial to determine shortages and to calculate the right order quantity.
+
+
+
+![Projected Quantity Stock Report](img/projected-quantity-stock-report.png)
+
+
+
+
+
+> Projected Qty = Actual Qty + Planned Qty + Requested Qty + Ordered Qty - Reserved Qty
+
+- Actual Qty: Quantity available in the warehouse.
+- Planned Qty: Quantity, for which, Production Order has been raised, but is pending to be manufactured.
+- Requested Qty: Quantity requested for purchase, but not ordered.
+- Ordered Qty: Quantity ordered for purchase, but not received.
+- Reserved Qty: Quantity ordered for sale, but not delivered.
\ No newline at end of file
diff --git a/docs/user/stock/docs.user.stock.purchase_receipt b/docs/user/stock/docs.user.stock.purchase_receipt
new file mode 100644
index 0000000..fd934d2
--- /dev/null
+++ b/docs/user/stock/docs.user.stock.purchase_receipt
@@ -0,0 +1,24 @@
+---
+{
+	"_label": "Purchase Return"
+}
+---
+ERPNext has an option to account for products that are returned to the supplier. This may be on account of a number of reasons like defects in goods, quality not matching, the buyer not needing the stock, etc. The transactions dealing with return of goods are also accounting transactions and have to be recorded in the books of accounts just like any other accounting transaction. 
+
+
+> Stock > Stock Entry > New Stock Entry
+
+
+![Purchase Return](img/purchase-return.png)
+
+
+
+
+
+
+- To select Purchase Return go to Stock Entry.
+- Select Purchase Return under Purpose.
+- Enter Purchase Receipt number.
+- Enter Source Warehouse details.
+- Provide Supplier Information.
+- Save the document.
\ No newline at end of file
diff --git a/docs/user/stock/docs.user.stock.purchase_receipt.md b/docs/user/stock/docs.user.stock.purchase_receipt.md
index 1d403d5..a2e428d 100644
--- a/docs/user/stock/docs.user.stock.purchase_receipt.md
+++ b/docs/user/stock/docs.user.stock.purchase_receipt.md
@@ -13,6 +13,14 @@
 
 or from a “Submitted” Purchase Order, by clicking on “Make Purchase Receipt”.
 
+
+
+![Purchase Receipt](img/purchase-receipt.png)
+
+
+
+
+
 ### Rejections
 
 In the Purchase Receipt, you are required to enter whether all the materials you receive are of accepted quality (in case you check). If you have any rejections, update the “Rejected Quantity” column in the Items table.
@@ -21,7 +29,7 @@
 
 ### Quality Inspections
 
-If for certain Items it is mandatory for you to record Quality Inspections (you have set it in your Item master), you will need to update the “Quality Inspection No” (QA No) column. The system will only allow you to “Submit” the Purchase Receipt if you update the “Quality Inspection No”.
+If for certain Items, it is mandatory to record Quality Inspections (if you have set it in your Item master), you will need to update the “Quality Inspection No” (QA No) column. The system will only allow you to “Submit” the Purchase Receipt if you update the “Quality Inspection No”.
 
 ### UOM Conversions
 
diff --git a/docs/user/stock/docs.user.stock.purchase_return.md b/docs/user/stock/docs.user.stock.purchase_return.md
new file mode 100644
index 0000000..13a325a
--- /dev/null
+++ b/docs/user/stock/docs.user.stock.purchase_return.md
@@ -0,0 +1,23 @@
+---
+{
+	"_label": "Purchase Return"
+}
+---
+ERPNext has an option to account for products that are returned to the supplier.This may be on account of a number of reasons like defects in goods, quality not matching, the buyer not needing the stock, etc. The transactions dealing with return of goods are also accounting transactions and have to be recorded in the books of accounts just like any other accounting transaction. 
+
+
+> Stock > Stock Entry > New Stock Entry
+
+
+![Purchase Return](img/purchase-return.png)
+
+
+
+
+- To select Purchase Return go to Stock Entry.
+- Select Purchase Return under Purpose.
+- Enter Purchase Receipt number.
+- Enter Source Warehouse details.
+- Provide Supplier Information.
+- Save the document.
+
diff --git a/docs/user/stock/docs.user.stock.sales_return.md b/docs/user/stock/docs.user.stock.sales_return.md
new file mode 100644
index 0000000..3198db0
--- /dev/null
+++ b/docs/user/stock/docs.user.stock.sales_return.md
@@ -0,0 +1,21 @@
+---
+{
+	"_label": "Sales Return"
+}
+---
+Goods sold being returned is quite a common practice in Business. They could be returned by the customer on quality issues, non-delivery on agreed date, or any other reason. ERPNext allows this transaction for ease of accounting.
+
+> Stock > Stock Entry > New Stock Entry
+
+
+
+![Sales Return](img/sales-return.png)
+
+
+
+
+- For Sales Return click on Stock Entry
+- Select Sales Return under Purpose
+- Mention the Delivery Note number and the Sales Invoice number.
+- Mention Contact Information of the Customer.
+- Save the file.
\ No newline at end of file
diff --git a/docs/user/stock/docs.user.stock.stock_entry.md b/docs/user/stock/docs.user.stock.stock_entry.md
index 8eda743..0b49585 100644
--- a/docs/user/stock/docs.user.stock.stock_entry.md
+++ b/docs/user/stock/docs.user.stock.stock_entry.md
@@ -5,6 +5,20 @@
 ---
 A Stock Entry is a simple document that lets you record Item movement from a Warehouse, to a Warehouse and between Warehouses.
 
+To make a Stock Entry you have to go to:
+
+> Stock > Stock Entry
+
+
+
+
+
+![Stock Entry](img/stock-entry.png)
+
+
+
+
+
 This can also be useful in tracking:
 
 - Material Issues from Stores
@@ -13,11 +27,7 @@
 
 We will look into the special features of the Stock Entry later when we discuss Accounting and Manufacturing processes.
 
-To make a Stock Entry you have to go to:
-
-> Stock > Stock Entry
 
 In the Stock Entry you have to update the Items table with all your transactions. For each row, you must enter a “Source Warehouse” or a “Target Warehouse” or both (if you are recording a movement).
 
-> **Note:** To update Stock from a spreadsheet, see Stock Reconciliation.
-
+> **Note:** To update Stock from a spreadsheet, see Stock Reconciliation.
\ No newline at end of file
diff --git a/docs/user/stock/docs.user.stock.sub_contracting.md b/docs/user/stock/docs.user.stock.sub_contracting.md
index 7538404..23a102c 100644
--- a/docs/user/stock/docs.user.stock.sub_contracting.md
+++ b/docs/user/stock/docs.user.stock.sub_contracting.md
@@ -10,7 +10,17 @@
 1. Create separate Items for the unprocessed and the processed product. For example if you supply unpainted X to your Supplier and the Supplier returns you X, you can create two Items: “X-unpainted” and “X”.
 1. Create a Warehouse for your Supplier so that you can keep track of Items supplied. (you may supply a months worth of Items in one go).
 1. For the processed Item, in the Item master, set “Is Sub Contracted Item” to “Yes”.
-1. Make a Bill of Materials for the processed Item, with the unprocessed Items as sub-items.
+
+
+
+![Subcontract](img/subcontract.png)
+
+
+
+
+
+
+1. Make a Bill of Materials for the processed Item, with the unprocessed Items as sub-items.For example, If you are manufacturing a pen, the processed pen will be named under Bill of Materials(BOM), whereas, the refill, knob, and other items which go into the making of pen, will be categorised as sub-items.
 1. Make a Purchase Order for the processed Item. When you “Save”, in the “Raw Materials Detail”, all your un-processed Items will be updated based on your Bill of Materials.
 	1. Make sure that the “Rate” of this Item is the processing rate (excluding the raw material rate).
 	1. ERPNext will automatically add the raw material rate for your valuation purpose when you receive the finished Item in your stock. 
diff --git a/docs/user/stock/docs.user.stock.warehouse.md b/docs/user/stock/docs.user.stock.warehouse.md
new file mode 100644
index 0000000..dd8273a
--- /dev/null
+++ b/docs/user/stock/docs.user.stock.warehouse.md
@@ -0,0 +1,30 @@
+---
+{
+	"_label": "Warehouse"
+}
+---
+
+A warehouse is a commercial building for storage of goods. Warehouses are used by manufacturers, importers, exporters, wholesalers, transport businesses, customs, etc. They are usually large plain buildings in industrial areas of cities,towns, and villages. They usually have loading docks to load and unload goods from trucks.
+
+To go to Warehouse, click on Stock and go to Warehouse under Masters.
+
+
+> Stock > Warehouse > New Warehouse
+
+
+
+![Warehouse](img/warehouse.png)
+
+
+
+
+In ERPNext, every different company can have a separate Warehouse. Every Warehouse will belong to a specific company. User can get company wise accurate stock balance. The Warehouses are saved with their respective company’s abbreviations. This facilitates in identifying which Warehouse belongs to which company, at a glance.
+
+You can include user restrictions for these Warehouses. In case you do not wish a particular user to operate on a particular Warehouse, you can refrain the user from accessing that Warehouse.
+
+### Merge Warehouse
+
+In day to day transactions, if duplicate entries are done by mistake resulting in duplicate Warehouse, these mistakes can be rectified. Duplicate records can be merged into a single Warehouse. Enter the place where you want to keep all the warehouse records. Click on the Merge button. Once this transaction is done, delete the empty Warehouse.
+
+ERPNext system maintains stock balance for every distinct combination of Item and Warehouse. Thus you can get stock balance for any specific Item in a particular Warehouse on any particular date.
+
diff --git a/home/page/activity/activity.js b/home/page/activity/activity.js
index 17e00c9..8d45193 100644
--- a/home/page/activity/activity.js
+++ b/home/page/activity/activity.js
@@ -32,6 +32,7 @@
 	init: function(row, data) {
 		this.scrub_data(data);
 		this.add_date_separator(row, data);
+		if(!data.add_class) data.add_class = "label-default";
 		$(row).append(repl('<div style="margin: 0px">\
 			<span class="avatar avatar-small"><img src="%(imgsrc)s" /></span> \
 			<span %(onclick)s class="label %(add_class)s">%(feed_type)s</span>\
@@ -50,7 +51,7 @@
 		
 		// color for comment
 		if(data.feed_type=='Comment') {
-			data.add_class = "label-important";
+			data.add_class = "label-danger";
 		}
 		
 		if(data.feed_type=='Assignment') {
diff --git a/hr/doctype/job_applicant/job_applicant.py b/hr/doctype/job_applicant/job_applicant.py
index 04b6da9..9927230 100644
--- a/hr/doctype/job_applicant/job_applicant.py
+++ b/hr/doctype/job_applicant/job_applicant.py
@@ -6,6 +6,7 @@
 from __future__ import unicode_literals
 import webnotes
 from utilities.transaction_base import TransactionBase
+from webnotes.utils import extract_email_id
 
 class DocType(TransactionBase):
 	def __init__(self, d, dl):
@@ -14,8 +15,13 @@
 	def get_sender(self, comm):
 		return webnotes.conn.get_value('Jobs Email Settings',None,'email_id')
 		
-	def on_communication_sent(self, comm):
-		webnotes.conn.set(self.doc, 'status', 'Replied')
+	def on_communication(self, comm):
+		if webnotes.conn.get_value("Profile", extract_email_id(comm.sender), "user_type")=="System User":
+			status = "Replied"
+		else:
+			status = "Open"
+			
+		webnotes.conn.set(self.doc, 'status', status)
 
 	def on_trash(self):
 		webnotes.conn.sql("""delete from `tabCommunication` 
diff --git a/patches/patch_list.py b/patches/patch_list.py
index d4c395a..086d294 100644
--- a/patches/patch_list.py
+++ b/patches/patch_list.py
@@ -259,6 +259,8 @@
 	"patches.august_2013.p06_deprecate_is_cancelled",
 	"patches.august_2013.p06_fix_sle_against_stock_entry",
 	"execute:webnotes.bean('Style Settings').save() #2013-08-20",
+	"patches.september_2013.p01_add_user_defaults_from_pos_setting",
+	"execute:webnotes.reload_doc('accounts', 'Print Format', 'POS Invoice') # 2013-09-02",
 	"patches.september_2013.p01_fix_buying_amount_gl_entries",
 	"patches.september_2013.p01_update_communication",
 	"patches.september_2013.p02_fix_serial_no_status",
diff --git a/patches/september_2013/__init__.py b/patches/september_2013/__init__.py
index e69de29..baffc48 100644
--- a/patches/september_2013/__init__.py
+++ b/patches/september_2013/__init__.py
@@ -0,0 +1 @@
+from __future__ import unicode_literals
diff --git a/patches/september_2013/p01_add_user_defaults_from_pos_setting.py b/patches/september_2013/p01_add_user_defaults_from_pos_setting.py
new file mode 100644
index 0000000..f3a9344
--- /dev/null
+++ b/patches/september_2013/p01_add_user_defaults_from_pos_setting.py
@@ -0,0 +1,13 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
+from __future__ import unicode_literals
+import webnotes
+
+def execute():
+	pos_view_users = webnotes.conn.sql_list("""select user from `tabPOS Setting`""")
+	for user in pos_view_users:
+		if user:
+			webnotes.defaults.set_user_default("is_pos", 1, user)
+		else:
+			webnotes.defaults.set_global_default("is_pos", 1)
\ No newline at end of file
diff --git a/selling/doctype/lead/lead.py b/selling/doctype/lead/lead.py
index 063c5f0..1aff8c8 100644
--- a/selling/doctype/lead/lead.py
+++ b/selling/doctype/lead/lead.py
@@ -4,7 +4,7 @@
 from __future__ import unicode_literals
 import webnotes
 from webnotes import _
-from webnotes.utils import cstr, validate_email_add, cint
+from webnotes.utils import cstr, validate_email_add, cint, extract_email_id
 from webnotes import session, msgprint
 
 sql = webnotes.conn.sql
@@ -28,8 +28,14 @@
 		if customer:
 			self.doc.fields["__is_customer"] = customer
 
-	def on_communication_sent(self, comm):
-		webnotes.conn.set(self.doc, 'status', 'Replied')
+	def on_communication(self, comm):
+		if comm.sender == self.get_sender(comm) or \
+			webnotes.conn.get_value("Profile", extract_email_id(comm.sender), "user_type")=="System User":
+				status = "Replied"
+		else:
+			status = "Open"
+			
+		webnotes.conn.set(self.doc, 'status', status)
 
 	def check_status(self):
 		chk = sql("select status from `tabLead` where name=%s", self.doc.name)
diff --git a/selling/doctype/quotation/quotation.js b/selling/doctype/quotation/quotation.js
index fcebe35..ea1b62a 100644
--- a/selling/doctype/quotation/quotation.js
+++ b/selling/doctype/quotation/quotation.js
@@ -62,11 +62,11 @@
 
 		if (!doc.__islocal) {
 			cur_frm.communication_view = new wn.views.CommunicationList({
-				list: wn.model.get("Communication", {"quotation": doc.name}),
+				list: wn.model.get("Communication", {"parent": doc.name, "parenttype": "Quotation"}),
 				parent: cur_frm.fields_dict.communication_html.wrapper,
 				doc: doc,
 				recipients: doc.contact_email
-			});		
+			});
 		}
 		
 		this.quotation_to();
diff --git a/setup/doctype/company/company.js b/setup/doctype/company/company.js
index a8358fa..ca3c93b 100644
--- a/setup/doctype/company/company.js
+++ b/setup/doctype/company/company.js
@@ -36,8 +36,6 @@
   }
 }
 
-cur_frm.fields_dict.default_cash_account.get_query = cur_frm.fields_dict.default_bank_account.get_query;
-
 cur_frm.fields_dict.default_bank_account.get_query = function(doc) {    
 	return{
 		filters:{
@@ -48,7 +46,7 @@
 	}  
 }
 
-cur_frm.fields_dict.payables_group.get_query = cur_frm.fields_dict.receivables_group.get_query;
+cur_frm.fields_dict.default_cash_account.get_query = cur_frm.fields_dict.default_bank_account.get_query;
 
 cur_frm.fields_dict.receivables_group.get_query = function(doc) {  
 	return{
@@ -59,6 +57,39 @@
 	}  
 }
 
+cur_frm.fields_dict.payables_group.get_query = cur_frm.fields_dict.receivables_group.get_query;
+
+cur_frm.fields_dict.default_expense_account.get_query = function(doc) {    
+	return{
+		filters:{
+			'company': doc.name,
+			'group_or_ledger': "Ledger",
+			'is_pl_account': "Yes",
+			'debit_or_credit': "Debit"
+		}
+	}  
+}
+
+cur_frm.fields_dict.default_income_account.get_query = function(doc) {    
+	return{
+		filters:{
+			'company': doc.name,
+			'group_or_ledger': "Ledger",
+			'is_pl_account': "Yes",
+			'debit_or_credit': "Credit"
+		}
+	}  
+}
+
+cur_frm.fields_dict.cost_center.get_query = function(doc) {    
+	return{
+		filters:{
+			'company': doc.name,
+			'group_or_ledger': "Ledger",
+		}
+	}  
+}
+
 if (sys_defaults.auto_accounting_for_stock) {
 	cur_frm.fields_dict["stock_adjustment_account"].get_query = function(doc) {
 		return {
diff --git a/setup/doctype/company/company.py b/setup/doctype/company/company.py
index 0f3b2ff..38093e7 100644
--- a/setup/doctype/company/company.py
+++ b/setup/doctype/company/company.py
@@ -48,7 +48,8 @@
 			self.create_default_warehouses()
 			self.create_default_web_page()
 		
-		if not self.doc.cost_center:
+		if not webnotes.conn.get_value("Cost Center", {"group_or_ledger": "Ledger", 
+				"company": self.doc.name}):
 			self.create_default_cost_center()
 			
 		self.set_default_accounts()
diff --git a/support/doctype/support_ticket/get_support_mails.py b/support/doctype/support_ticket/get_support_mails.py
index fb26e57..fa4f304 100644
--- a/support/doctype/support_ticket/get_support_mails.py
+++ b/support/doctype/support_ticket/get_support_mails.py
@@ -3,7 +3,7 @@
 
 from __future__ import unicode_literals
 import webnotes
-from webnotes.utils import cstr, cint
+from webnotes.utils import cstr, cint, decode_dict
 from webnotes.utils.email_lib import sendmail		
 from webnotes.utils.email_lib.receive import POP3Mailbox
 from core.doctype.communication.communication import make
@@ -31,14 +31,15 @@
 			ticket.doc.save()
 				
 		else:
-			ticket = webnotes.bean([{
+			ticket = webnotes.bean([decode_dict({
 				"doctype":"Support Ticket",
 				"description": mail.content,
 				"subject": mail.subject,
 				"raised_by": mail.from_email,
 				"content_type": mail.content_type,
 				"status": "Open",
-			}])
+			})])
+						
 			ticket.insert()
 			new_ticket = True
 
diff --git a/support/doctype/support_ticket/support_ticket.py b/support/doctype/support_ticket/support_ticket.py
index 8e723ee..9f36480 100644
--- a/support/doctype/support_ticket/support_ticket.py
+++ b/support/doctype/support_ticket/support_ticket.py
@@ -5,7 +5,7 @@
 import webnotes
 
 from utilities.transaction_base import TransactionBase
-from webnotes.utils import now
+from webnotes.utils import now, extract_email_id
 
 class DocType(TransactionBase):
 	def __init__(self, doc, doclist=[]):
@@ -33,8 +33,12 @@
 			from webnotes.widgets.form.assign_to import clear
 			clear(self.doc.doctype, self.doc.name)
 		
-	def on_communication_sent(self, comm):
-		self.doc.status = "Waiting for Customer"
+	def on_communication(self, comm):
+		if comm.sender == self.get_sender(comm) or \
+			webnotes.conn.get_value("Profile", extract_email_id(comm.sender), "user_type")=="System User":
+				self.doc.status = "Waiting for Customer"
+		else:
+			self.doc.status = "Open"
 		self.update_status()
 		self.doc.save()
 		
diff --git a/utilities/doctype/contact/contact.js b/utilities/doctype/contact/contact.js
index 608b1e7..3b5255c 100644
--- a/utilities/doctype/contact/contact.js
+++ b/utilities/doctype/contact/contact.js
@@ -5,7 +5,7 @@
 
 cur_frm.cscript.refresh = function(doc) {
 	cur_frm.communication_view = new wn.views.CommunicationList({
-		list: wn.model.get("Communication", {"contact": doc.name}),
+		list: wn.model.get("Communication", {"parent": doc.name, "parenttype": "Contact"}),
 		parent: cur_frm.fields_dict.communication_html.wrapper,
 		doc: doc,
 		recipients: doc.email_id
diff --git a/utilities/doctype/contact/contact.py b/utilities/doctype/contact/contact.py
index 9997cab..a116edb 100644
--- a/utilities/doctype/contact/contact.py
+++ b/utilities/doctype/contact/contact.py
@@ -3,7 +3,7 @@
 
 from __future__ import unicode_literals
 import webnotes
-from webnotes.utils import cstr
+from webnotes.utils import cstr, extract_email_id
 
 from utilities.transaction_base import TransactionBase
 
@@ -12,8 +12,13 @@
 		self.doc = doc
 		self.doclist = doclist
 
-	def on_communication_sent(self, comm):
-		webnotes.conn.set(self.doc, 'status', 'Replied')
+	def on_communication(self, comm):
+		if webnotes.conn.get_value("Profile", extract_email_id(comm.sender), "user_type")=="System User":
+			status = "Replied"
+		else:
+			status = "Open"
+			
+		webnotes.conn.set(self.doc, 'status', status)
 
 	def autoname(self):
 		# concat first and last name
diff --git a/website/helpers/make_web_include_files.py b/website/helpers/make_web_include_files.py
index 7ff3d6a..a9df23b 100644
--- a/website/helpers/make_web_include_files.py
+++ b/website/helpers/make_web_include_files.py
@@ -3,14 +3,14 @@
 
 import os
 import webnotes
-import webnotes.webutils
 
 def make():
+	from startup.webutils import get_home_page
 
 	if not webnotes.conn:
 		webnotes.connect()
 	
-	home_page = webnotes.webutils.get_home_page()
+	home_page = get_home_page()
 
 	fname = 'js/wn-web.js'
 	if os.path.basename(os.path.abspath('.'))!='public':
