Added test cases
diff --git a/erpnext/patches/v12_0/stock_entry_enhancements.py b/erpnext/patches/v12_0/stock_entry_enhancements.py
index ef847d5..b7f9a8b 100644
--- a/erpnext/patches/v12_0/stock_entry_enhancements.py
+++ b/erpnext/patches/v12_0/stock_entry_enhancements.py
@@ -16,6 +16,7 @@
 
 def create_stock_entry_types():
     frappe.reload_doc('stock', 'doctype', 'stock_entry_type')
+    frappe.reload_doc('stock', 'doctype', 'stock_entry')
 
     for purpose in ["Material Issue", "Material Receipt", "Material Transfer",
         "Material Transfer for Manufacture", "Material Consumption for Manufacture", "Manufacture",
diff --git a/erpnext/stock/doctype/stock_entry/test_records.json b/erpnext/stock/doctype/stock_entry/test_records.json
index b1daf12..c434bcc 100644
--- a/erpnext/stock/doctype/stock_entry/test_records.json
+++ b/erpnext/stock/doctype/stock_entry/test_records.json
@@ -18,6 +18,7 @@
     "uom": "_Test UOM"
    }
   ],
+  "stock_entry_type": "Material Receipt",
   "purpose": "Material Receipt"
  },
 
@@ -42,7 +43,8 @@
    }
   ],
   "posting_date": "2013-01-25",
-  "purpose": "Material Issue"
+  "purpose": "Material Issue",
+  "stock_entry_type": "Material Issue"
  },
 
 
@@ -67,7 +69,8 @@
    }
   ],
   "posting_date": "2013-01-25",
-  "purpose": "Material Transfer"
+  "purpose": "Material Transfer",
+  "stock_entry_type": "Material Transfer"
  },
 
 
@@ -104,6 +107,7 @@
     "uom": "_Test UOM"
    }
   ],
-  "purpose": "Repack"
+  "purpose": "Repack",
+  "stock_entry_type": "Repack"
  }
 ]
diff --git a/erpnext/stock/doctype/stock_entry/test_stock_entry.py b/erpnext/stock/doctype/stock_entry/test_stock_entry.py
index c04962e..abfdf24 100644
--- a/erpnext/stock/doctype/stock_entry/test_stock_entry.py
+++ b/erpnext/stock/doctype/stock_entry/test_stock_entry.py
@@ -15,7 +15,7 @@
 from erpnext.stock.doctype.item.test_item import set_item_variant_settings, make_item_variant, create_item
 from erpnext.stock.doctype.stock_entry.stock_entry_utils import make_stock_entry
 from erpnext.accounts.doctype.account.test_account import get_inventory_account
-from erpnext.stock.doctype.stock_entry.stock_entry import move_sample_to_retention_warehouse
+from erpnext.stock.doctype.stock_entry.stock_entry import move_sample_to_retention_warehouse, make_stock_in_entry
 
 from six import iteritems
 
@@ -660,6 +660,7 @@
 			"cost_center": "_Test Cost Center - _TC",
 			"sample_quantity": 4
 		})
+		receipt_entry.set_stock_entry_type()
 		receipt_entry.insert()
 		receipt_entry.submit()
 
@@ -676,6 +677,7 @@
 			"cost_center": "_Test Cost Center - _TC",
 			"batch_no": receipt_entry.get("items")[0].batch_no
 		})
+		retention_entry.set_stock_entry_type()
 		retention_entry.insert()
 		retention_entry.submit()
 
@@ -742,6 +744,33 @@
 		self.assertEqual(se.get("items")[0].allow_zero_valuation_rate, 1)
 		self.assertEqual(se.get("items")[0].amount, 0)
 
+	def test_goods_in_transit(self):
+		from erpnext.stock.doctype.warehouse.test_warehouse import create_warehouse
+		warehouse = "_Test Warehouse FG 1 - _TC"
+
+		if not frappe.db.exists('Warehouse', warehouse):
+			create_warehouse("_Test Warehouse FG 1")
+
+		outward_entry = make_stock_entry(item_code="_Test Item",
+			purpose="Stock Out",
+			source="_Test Warehouse - _TC",
+			target="_Test Warehouse 1 - _TC", qty=50, basic_rate=100)
+
+		inward_entry1 = make_stock_in_entry(outward_entry.name)
+		inward_entry1.items[0].t_warehouse = warehouse
+		inward_entry1.items[0].qty = 25
+		inward_entry1.submit()
+
+		doc = frappe.get_doc('Stock Entry', outward_entry.name)
+		self.assertEqual(doc.per_transferred, 50)
+
+		inward_entry2 = make_stock_in_entry(outward_entry.name)
+		inward_entry2.items[0].t_warehouse = warehouse
+		inward_entry2.items[0].qty = 25
+		inward_entry2.submit()
+
+		doc = frappe.get_doc('Stock Entry', outward_entry.name)
+		self.assertEqual(doc.per_transferred, 100)
 
 def make_serialized_item(item_code=None, serial_no=None, target_warehouse=None):
 	se = frappe.copy_doc(test_records[0])