Merge branch 'develop'
diff --git a/accounts/doctype/payment_to_invoice_matching_tool/payment_to_invoice_matching_tool.py b/accounts/doctype/payment_to_invoice_matching_tool/payment_to_invoice_matching_tool.py
index 6a31191..dea5fb5 100644
--- a/accounts/doctype/payment_to_invoice_matching_tool/payment_to_invoice_matching_tool.py
+++ b/accounts/doctype/payment_to_invoice_matching_tool/payment_to_invoice_matching_tool.py
@@ -145,6 +145,8 @@
 	        	and voucher_no != gle.voucher_no) 
 					!= abs(ifnull(gle.debit, 0) - ifnull(gle.credit, 0)
 			) 
+			and if(gle.voucher_type='Sales Invoice', (select is_pos from `tabSales Invoice` 
+				where name=gle.voucher_no), 0)=0
 			%(mcond)s
 	    ORDER BY gle.posting_date desc, gle.voucher_no desc 
 	    limit %(start)s, %(page_len)s""" % {
diff --git a/config.json b/config.json
index 779f063..77a00b8 100644
--- a/config.json
+++ b/config.json
@@ -1,6 +1,6 @@
 {
  "app_name": "ERPNext", 
- "app_version": "3.2.0", 
+ "app_version": "3.2.1", 
  "base_template": "app/portal/templates/base.html", 
  "modules": {
   "Accounts": {
diff --git a/hr/doctype/leave_allocation/leave_allocation.txt b/hr/doctype/leave_allocation/leave_allocation.txt
index a24823a..38e3eb5 100644
--- a/hr/doctype/leave_allocation/leave_allocation.txt
+++ b/hr/doctype/leave_allocation/leave_allocation.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-02-20 19:10:38", 
   "docstatus": 0, 
-  "modified": "2013-07-05 14:44:19", 
+  "modified": "2013-12-12 17:41:52", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -131,10 +131,12 @@
   "label": "Carry Forward"
  }, 
  {
+  "depends_on": "carry_forward", 
   "doctype": "DocField", 
   "fieldname": "carry_forwarded_leaves", 
   "fieldtype": "Float", 
-  "label": "Carry Forwarded Leaves"
+  "label": "Carry Forwarded Leaves", 
+  "read_only": 1
  }, 
  {
   "allow_on_submit": 1, 
diff --git a/hr/doctype/salary_manager/salary_manager.py b/hr/doctype/salary_manager/salary_manager.py
index 29b13ae..37a8c5d 100644
--- a/hr/doctype/salary_manager/salary_manager.py
+++ b/hr/doctype/salary_manager/salary_manager.py
@@ -12,7 +12,6 @@
 		self.doc = doc
 		self.doclist = doclist
 		
-		
 	def get_emp_list(self):
 		"""
 			Returns list of active employees based on selected criteria 
diff --git a/hr/doctype/salary_slip/salary_slip.py b/hr/doctype/salary_slip/salary_slip.py
index f5eeea1..94660d0 100644
--- a/hr/doctype/salary_slip/salary_slip.py
+++ b/hr/doctype/salary_slip/salary_slip.py
@@ -29,18 +29,17 @@
 			if struct:
 				self.pull_sal_struct(struct)
 
-
 	def check_sal_struct(self):
-		struct = webnotes.conn.sql("select name from `tabSalary Structure` where employee ='%s' and is_active = 'Yes' "%self.doc.employee)
+		struct = webnotes.conn.sql("""select name from `tabSalary Structure` 
+			where employee=%s and is_active = 'Yes'""", self.doc.employee)
 		if not struct:
-			msgprint("Please create Salary Structure for employee '%s'"%self.doc.employee)
-			self.doc.employee = ''
+			msgprint("Please create Salary Structure for employee '%s'" % self.doc.employee)
+			self.doc.employee = None
 		return struct and struct[0][0] or ''
 
-
 	def pull_sal_struct(self, struct):
-		from hr.doctype.salary_structure.salary_structure import make_salary_slip
-		self.doclist = make_salary_slip(struct, self.doclist)
+		from hr.doctype.salary_structure.salary_structure import get_mapped_doclist
+		self.doclist = get_mapped_doclist(struct, self.doclist)
 		
 	def pull_emp_details(self):
 		emp = webnotes.conn.get_value("Employee", self.doc.employee, 
diff --git a/hr/doctype/salary_structure/salary_structure.py b/hr/doctype/salary_structure/salary_structure.py
index 2dc056d..a034b90 100644
--- a/hr/doctype/salary_structure/salary_structure.py
+++ b/hr/doctype/salary_structure/salary_structure.py
@@ -74,6 +74,9 @@
 		
 @webnotes.whitelist()
 def make_salary_slip(source_name, target_doclist=None):
+	return [d.fields for d in get_mapped_doclist(source_name, target_doclist)]
+	
+def get_mapped_doclist(source_name, target_doclist=None):
 	from webnotes.model.mapper import get_mapped_doclist
 	
 	def postprocess(source, target):
@@ -109,4 +112,4 @@
 		}
 	}, target_doclist, postprocess)
 
-	return [d.fields for d in doclist]
\ No newline at end of file
+	return doclist
\ No newline at end of file