Merge pull request #46 from nabinhait/master

check actual qty with total number of serial no in store
diff --git a/accounts/doctype/account/account.py b/accounts/doctype/account/account.py
index 52c66a9..6c8003a 100644
--- a/accounts/doctype/account/account.py
+++ b/accounts/doctype/account/account.py
@@ -31,7 +31,7 @@
 	def get_address(self):		
 		add=sql("Select address from `tab%s` where name='%s'"%(self.doc.master_type,self.doc.master_name))
 		ret={'address':add[0][0]}
-		return cstr(ret)
+		return ret
 
 
 	# check whether master name entered for supplier/customer
diff --git a/accounts/doctype/form_16a/form_16a.py b/accounts/doctype/form_16a/form_16a.py
index 0bcef6b..018b834 100644
--- a/accounts/doctype/form_16a/form_16a.py
+++ b/accounts/doctype/form_16a/form_16a.py
@@ -56,7 +56,7 @@
 			'party_address': cstr(address_display)
 		}
           	
-		return cstr(ret)
+		return ret
 	
 	# Get TDS Return acknowledgement
 	#-------------------------------
diff --git a/accounts/doctype/payable_voucher/payable_voucher.py b/accounts/doctype/payable_voucher/payable_voucher.py
index e88066a..d7f628f 100644
--- a/accounts/doctype/payable_voucher/payable_voucher.py
+++ b/accounts/doctype/payable_voucher/payable_voucher.py
@@ -345,7 +345,7 @@
 	# get tds rate
 	# -------------
 	def get_tds_rate(self):
-		return str({'rate' : flt(get_value('Account', self.doc.tax_code, 'tax_rate'))})
+		return {'rate' : flt(get_value('Account', self.doc.tax_code, 'tax_rate'))}
 
 	# set aging date
 	#-------------------
diff --git a/accounts/doctype/receivable_voucher/receivable_voucher.py b/accounts/doctype/receivable_voucher/receivable_voucher.py
index 185b0b1..0aaebbb 100644
--- a/accounts/doctype/receivable_voucher/receivable_voucher.py
+++ b/accounts/doctype/receivable_voucher/receivable_voucher.py
@@ -162,7 +162,7 @@
 			if ret['warehouse']:
 				actual_qty = sql("select actual_qty from `tabBin` where item_code = '%s' and warehouse = '%s'" % (item_code, ret['warehouse']))		
 				ret['actual_qty']= actual_qty and flt(actual_qty[0][0]) or 0
-		return str(ret)
+		return ret
  
 
 	# Get tax rate if account type is tax
diff --git a/buying/doctype/indent/indent.py b/buying/doctype/indent/indent.py
index 450ea64..882098f 100644
--- a/buying/doctype/indent/indent.py
+++ b/buying/doctype/indent/indent.py
@@ -90,12 +90,12 @@
 	# get item details
 	# ---------------------------------
 	def get_item_details(self, arg =''):
-		return cstr( get_obj(dt='Purchase Common').get_item_details(self,arg) )
+		return get_obj(dt='Purchase Common').get_item_details(self,arg)
 
 	# Get UOM Details
 	# ---------------------------------
 	def get_uom_details(self, arg = ''):
-		return cstr(get_obj(dt='Purchase Common').get_uom_details(arg))
+		return get_obj(dt='Purchase Common').get_uom_details(arg)
 
 	# GET TERMS & CONDITIONS
 	#-----------------------------
diff --git a/hr/doctype/leave_application/leave_application.py b/hr/doctype/leave_application/leave_application.py
index 5f69c63..01bf7fe 100755
--- a/hr/doctype/leave_application/leave_application.py
+++ b/hr/doctype/leave_application/leave_application.py
@@ -33,7 +33,7 @@
     leave_app = sql("select total_leave_days from `tabLeave Application` where employee = '%s' and leave_type = '%s' and fiscal_year = '%s' and docstatus = 1" % (self.doc.employee, self.doc.leave_type, self.doc.fiscal_year))
     leave_app = leave_app and flt(leave_app[0][0]) or 0
     ret = {'leave_balance':leave_all - leave_app}
-    return str(ret)
+    return ret
 
 
 # ************************************************ utilities *************************************************
@@ -55,7 +55,7 @@
     tot_days = date_diff(self.doc.to_date, self.doc.from_date) + 1
     holidays = self.get_holidays()
     ret = {'total_leave_days':flt(tot_days)-flt(holidays)}
-    return str(ret)
+    return ret
 
 
 # ************************************************ validate *************************************************
diff --git a/production/doctype/bill_of_materials/bill_of_materials.py b/production/doctype/bill_of_materials/bill_of_materials.py
index d7d3db5..d287d2f 100644
--- a/production/doctype/bill_of_materials/bill_of_materials.py
+++ b/production/doctype/bill_of_materials/bill_of_materials.py
@@ -106,7 +106,7 @@
             'standard_rate'      : 0
             }
           ret_item.update(ret_bom_rates)
-    return cstr(ret_item)
+    return ret_item
 
   def set_as_default_bom(self):
     # set Is Default as 1
diff --git a/production/doctype/production_order/production_order.py b/production/doctype/production_order/production_order.py
index ce8f082..570c802 100644
--- a/production/doctype/production_order/production_order.py
+++ b/production/doctype/production_order/production_order.py
@@ -34,7 +34,7 @@
             'stock_uom'   : item and item[0]['stock_uom'] or '',
             'default_bom' : item and item[0]['default_bom'] or ''
     }
-    return cstr(ret)
+    return ret
     
   def validate(self):
     if not self.doc.production_item :
diff --git a/projects/doctype/project/project.py b/projects/doctype/project/project.py
index 084df6c..9930bf4 100644
--- a/projects/doctype/project/project.py
+++ b/projects/doctype/project/project.py
@@ -52,7 +52,7 @@
         'contact_no' : contact and contact[0]['contact_no'] or '',
         'email_id' : contact and contact[0]['email_id'] or ''
       }
-      return str(ret)
+      return ret
     else:
       msgprint("Contact Person : %s does not exist in the system." % (self.doc,contact_person))
       raise Exception
diff --git a/setup/doctype/workflow_rule/workflow_rule.py b/setup/doctype/workflow_rule/workflow_rule.py
index 3a8cc82..792cbf0 100644
--- a/setup/doctype/workflow_rule/workflow_rule.py
+++ b/setup/doctype/workflow_rule/workflow_rule.py
@@ -281,4 +281,4 @@
         elif cond_hold =='Yes':
           all_cond_hold ='Yes'
    
-    return all_cond_hold
\ No newline at end of file
+    return all_cond_hold
diff --git a/stock/doctype/item/item.py b/stock/doctype/item/item.py
index d51fb3a..b506541 100644
--- a/stock/doctype/item/item.py
+++ b/stock/doctype/item/item.py
@@ -169,7 +169,7 @@
 			'description'	:	file and file[0]['description'] or ''
 			
 		}
-		return str(ret)
+		return ret
 		
 	def check_if_sle_exists(self):
 		"""
diff --git a/utilities/doctype/file_browser_control/file_browser_control.py b/utilities/doctype/file_browser_control/file_browser_control.py
index 8008ae9..d5ad0cc 100644
--- a/utilities/doctype/file_browser_control/file_browser_control.py
+++ b/utilities/doctype/file_browser_control/file_browser_control.py
@@ -69,7 +69,7 @@
             'name'  :   f_obj.doc.name,
             'label' :   f_obj.doc.file_name
         }
-        return cstr(ret)
+        return ret
     
     # Update changes done to selected file group.
     def update_grp(self,arg):
@@ -160,7 +160,7 @@
                     'file_name' :   f.file_name
                 }
                     
-                return cstr(ret)
+                return ret
             else:
                 return 'No file found.'
         else:
@@ -195,4 +195,4 @@
     def get_privileges(self,arg):
         arg = eval(arg)
         privilege = convert_to_lists(sql("select ifnull(can_edit,''), ifnull(can_view,''),owner from `tab%s` where name='%s'" % (arg['dt'],arg['dn'])))
-        return privilege
\ No newline at end of file
+        return privilege
diff --git a/utilities/transaction_base.py b/utilities/transaction_base.py
index 332e201..3678298 100644
--- a/utilities/transaction_base.py
+++ b/utilities/transaction_base.py
@@ -53,7 +53,7 @@
 			'contact_email' : contact_email,
 			'contact_mobile' : contact_mobile
 		}
-		return cstr(ret)	
+		return ret	
 			
 	# Get Address Text
 	# -----------------------
@@ -125,7 +125,7 @@
 			'shipping_address_name' : details and details[0]['name'] or '',
 			'shipping_address' : address_display
 		}
-		return cstr(ret)
+		return ret
 		
 	# Get Lead Details
 	# -----------------------
@@ -144,7 +144,7 @@
 			'contact_mobile' : extract('mobile_no'),
 			'contact_email' : extract('email_id')
 		}
-		return cstr(ret)
+		return ret
 		
 		
 	# Get Supplier Default Primary Address - first load
@@ -162,7 +162,7 @@
 			'contact_mobile' : contact_mobile						
 		}
 		ret.update(self.get_supplier_details(args['supplier']))
-		return cstr(ret)
+		return ret
 		
 	# Get Supplier Address
 	# -----------------------
@@ -178,7 +178,7 @@
 			'contact_email' : contact_email,
 			'contact_mobile' : contact_mobile
 		}
-		return cstr(ret)	
+		return ret
 	
 	# Get Supplier Details
 	# -----------------------