Merge pull request #13096 from manassolanki/fix-fee-schedule

Fixes in the Fees Schedule
diff --git a/erpnext/stock/doctype/serial_no/serial_no.py b/erpnext/stock/doctype/serial_no/serial_no.py
index 80c93ef..7194ec1 100644
--- a/erpnext/stock/doctype/serial_no/serial_no.py
+++ b/erpnext/stock/doctype/serial_no/serial_no.py
@@ -187,7 +187,7 @@
 	update_serial_nos(sle, item_det)
 
 def validate_serial_no(sle, item_det):
-	if item_det.has_serial_no==0:
+	if item_det.has_serial_no==0 and sle.is_cancelled == "No":
 		if sle.serial_no:
 			frappe.throw(_("Item {0} is not setup for Serial Nos. Column must be blank").format(sle.item_code),
 				SerialNoNotRequiredError)
diff --git a/erpnext/stock/report/itemwise_recommended_reorder_level/itemwise_recommended_reorder_level.py b/erpnext/stock/report/itemwise_recommended_reorder_level/itemwise_recommended_reorder_level.py
index fdf4442..e1249ea 100644
--- a/erpnext/stock/report/itemwise_recommended_reorder_level/itemwise_recommended_reorder_level.py
+++ b/erpnext/stock/report/itemwise_recommended_reorder_level/itemwise_recommended_reorder_level.py
@@ -24,9 +24,8 @@
 
 	data = []
 	for item in items:
-
-		total_outgoing = consumed_item_map.get(item.name, 0)+delivered_item_map.get(item.name,0)
-		avg_daily_outgoing = flt(total_outgoing/diff, float_preceision)
+		total_outgoing = consumed_item_map.get(item.name, 0) + delivered_item_map.get(item.name,0)
+		avg_daily_outgoing = flt(total_outgoing / diff, float_preceision)
 		reorder_level = (avg_daily_outgoing * flt(item.lead_time_days)) + flt(item.safety_stock)
 
 		data.append([item.name, item.item_name, item.description, item.safety_stock, item.lead_time_days,
@@ -45,12 +44,11 @@
 
 def get_item_info():
 	return frappe.db.sql("""select name, item_name, description, safety_stock,
-		lead_time_days	from tabItem""", as_dict=1)
+		lead_time_days from tabItem""", as_dict=1)
 
 def get_consumed_items(condition):
-
 	cn_items = frappe.db.sql("""select se_item.item_code,
-				sum(se_item.actual_qty) as 'consume_qty'
+			sum(se_item.transfer_qty) as 'consume_qty'
 		from `tabStock Entry` se, `tabStock Entry Detail` se_item
 		where se.name = se_item.parent and se.docstatus = 1
 		and ifnull(se_item.t_warehouse, '') = '' %s
@@ -63,17 +61,16 @@
 	return cn_items_map
 
 def get_delivered_items(condition):
-
-	dn_items = frappe.db.sql("""select dn_item.item_code, sum(dn_item.qty) as dn_qty
+	dn_items = frappe.db.sql("""select dn_item.item_code, sum(dn_item.stock_qty) as dn_qty
 		from `tabDelivery Note` dn, `tabDelivery Note Item` dn_item
 		where dn.name = dn_item.parent and dn.docstatus = 1 %s
 		group by dn_item.item_code""" % (condition), as_dict=1)
 
-	si_items = frappe.db.sql("""select si_item.item_name, sum(si_item.qty) as si_qty
+	si_items = frappe.db.sql("""select si_item.item_code, sum(si_item.stock_qty) as si_qty
 		from `tabSales Invoice` si, `tabSales Invoice Item` si_item
 		where si.name = si_item.parent and si.docstatus = 1 and
-		si.update_stock = 1 and si.is_pos = 1 %s
-		group by si_item.item_name""" % (condition), as_dict=1)
+		si.update_stock = 1 %s
+		group by si_item.item_code""" % (condition), as_dict=1)
 
 	dn_item_map = {}
 	for item in dn_items:
diff --git a/erpnext/templates/emails/reorder_item.html b/erpnext/templates/emails/reorder_item.html
index c1aa897..05af316 100644
--- a/erpnext/templates/emails/reorder_item.html
+++ b/erpnext/templates/emails/reorder_item.html
@@ -9,7 +9,7 @@
 				<th style="border: 1px solid #d1d8dd; width: 35%; text-align: left; padding: 5px;">{{ _("Warehouse") }}</th>
 				<th style="border: 1px solid #d1d8dd; width: 10%; text-align: right; padding: 5px;">{{ _("Quantity") }}</th>
 				<th style="border: 1px solid #d1d8dd; width: 10%; text-align: left; padding: 5px;">{{ _("UOM") }}</th>
-				<th style="border: 1px solid #d1d8dd; width: 10%; text-align: left; padding: 5px;">{{ _("Balance Qty") }}</th>
+				<th style="border: 1px solid #d1d8dd; width: 10%; text-align: left; padding: 5px;">{{ _("Projected Qty") }}</th>
 			</tr>
 		</thead>
 		<tbody>
@@ -22,7 +22,7 @@
 				<td style="border: 1px solid #d1d8dd; text-align: left; padding: 5px;">{{ item.warehouse }}</td>
 				<td style="border: 1px solid #d1d8dd; text-align: right; padding: 5px;">{{ item.qty }}</td>
 				<td style="border: 1px solid #d1d8dd; text-align: left; padding: 5px;">{{ item.uom }}</td>
-				<td style="border: 1px solid #d1d8dd; text-align: left; padding: 5px;">{{ item.balance_qty }}</td>
+				<td style="border: 1px solid #d1d8dd; text-align: left; padding: 5px;">{{ frappe.utils.flt(item.projected_qty) + frappe.utils.flt(item.qty) }}</td>
 			</tr>
 			{%- endfor %}
 		</tbody>