Back flush issue fixed in sub contracting #1567
diff --git a/erpnext/controllers/stock_controller.py b/erpnext/controllers/stock_controller.py
index 86f1dd9..96b8a6e 100644
--- a/erpnext/controllers/stock_controller.py
+++ b/erpnext/controllers/stock_controller.py
@@ -242,7 +242,7 @@
 
 	def get_sl_entries(self, d, args):
 		sl_dict = {
-			"item_code": d.item_code,
+			"item_code": d.get("item_code", None),
 			"warehouse": d.get("warehouse", None),
 			"posting_date": self.posting_date,
 			"posting_time": self.posting_time,
@@ -250,12 +250,12 @@
 			"voucher_no": self.name,
 			"voucher_detail_no": d.name,
 			"actual_qty": (self.docstatus==1 and 1 or -1)*flt(d.get("stock_qty")),
-			"stock_uom": d.stock_uom,
+			"stock_uom": d.get("stock_uom"),
 			"incoming_rate": 0,
 			"company": self.company,
 			"fiscal_year": self.fiscal_year,
-			"batch_no": cstr(d.batch_no).strip(),
-			"serial_no": d.serial_no,
+			"batch_no": cstr(d.get("batch_no")).strip(),
+			"serial_no": d.get("serial_no"),
 			"project": d.get("project_name"),
 			"is_cancelled": self.docstatus==2 and "Yes" or "No"
 		}
diff --git a/erpnext/stock/doctype/delivery_note/delivery_note.js b/erpnext/stock/doctype/delivery_note/delivery_note.js
index e9ce9bd..c265830 100644
--- a/erpnext/stock/doctype/delivery_note/delivery_note.js
+++ b/erpnext/stock/doctype/delivery_note/delivery_note.js
@@ -16,19 +16,19 @@
 erpnext.stock.DeliveryNoteController = erpnext.selling.SellingController.extend({
 	refresh: function(doc, dt, dn) {
 		this._super();
-		
+
 		if(!doc.__billing_complete && doc.docstatus==1) {
 			// show Make Invoice button only if Delivery Note is not created from Sales Invoice
 			var from_sales_invoice = false;
-			from_sales_invoice = cur_frm.doc.delivery_note_details.some(function(item) { 
-					return item.against_sales_invoice ? true : false; 
+			from_sales_invoice = cur_frm.doc.delivery_note_details.some(function(item) {
+					return item.against_sales_invoice ? true : false;
 				});
-			
+
 			if(!from_sales_invoice)
 				cur_frm.add_custom_button(__('Make Invoice'), this.make_sales_invoice);
 		}
-	
-		if(flt(doc.per_installed, 2) < 100 && doc.docstatus==1) 
+
+		if(flt(doc.per_installed, 2) < 100 && doc.docstatus==1)
 			cur_frm.add_custom_button(__('Make Installation Note'), this.make_installation_note);
 
 		if (doc.docstatus==1) {
@@ -40,15 +40,15 @@
 		if(doc.docstatus==0 && !doc.__islocal) {
 			cur_frm.add_custom_button(__('Make Packing Slip'), cur_frm.cscript['Make Packing Slip']);
 		}
-	
+
 		set_print_hide(doc, dt, dn);
-	
+
 		// unhide expense_account and cost_center is auto_accounting_for_stock enabled
 		var aii_enabled = cint(sys_defaults.auto_accounting_for_stock)
 		cur_frm.fields_dict[cur_frm.cscript.fname].grid.set_column_disp(["expense_account", "cost_center"], aii_enabled);
 
 		if (this.frm.doc.docstatus===0) {
-			cur_frm.add_custom_button(__('From Sales Order'), 
+			cur_frm.add_custom_button(__('From Sales Order'),
 				function() {
 					frappe.model.map_current_doc({
 						method: "erpnext.selling.doctype.sales_order.sales_order.make_delivery_note",
@@ -65,15 +65,15 @@
 				});
 		}
 
-	}, 
-	
+	},
+
 	make_sales_invoice: function() {
 		frappe.model.open_mapped_doc({
 			method: "erpnext.stock.doctype.delivery_note.delivery_note.make_sales_invoice",
 			source_name: cur_frm.doc.name
 		})
-	}, 
-	
+	},
+
 	make_installation_note: function() {
 		frappe.model.open_mapped_doc({
 			method: "erpnext.stock.doctype.delivery_note.delivery_note.make_installation_note",
@@ -88,7 +88,7 @@
 	delivery_note_details_on_form_rendered: function(doc, grid_row) {
 		erpnext.setup_serial_no(grid_row)
 	}
-	
+
 });
 
 // for backward compatibility: combine new and previous states
@@ -115,7 +115,7 @@
 cur_frm.fields_dict['transporter_name'].get_query = function(doc) {
 	return{
 		filters: { 'supplier_type': "transporter" }
-	}	
+	}
 }
 
 cur_frm.cscript['Make Packing Slip'] = function() {
@@ -155,7 +155,7 @@
 //****************** For print sales order no and date*************************
 cur_frm.pformat.sales_order_no= function(doc, cdt, cdn){
 	//function to make row of table
-	
+
 	var make_row = function(title,val1, val2, bold){
 		var bstart = '<b>'; var bend = '</b>';
 
@@ -165,12 +165,12 @@
 	}
 
 	out ='';
-	
+
 	var cl = doc.delivery_note_details || [];
 
-	// outer table	
+	// outer table
 	var out='<div><table class="noborder" style="width:100%"><tr><td style="width: 50%"></td><td>';
-	
+
 	// main table
 	out +='<table class="noborder" style="width:100%">';
 
@@ -234,14 +234,14 @@
 		}
 		refresh_field(cur_frm.cscript.fname);
 	}
-	
+
 	cur_frm.fields_dict.delivery_note_details.grid.get_field("cost_center").get_query = function(doc) {
 		return {
 
-			filters: { 
+			filters: {
 				'company': doc.company,
 				'group_or_ledger': "Ledger"
 			}
 		}
 	}
-}
\ No newline at end of file
+}