fix: share transfer validations for journal entry (#19018)

* fix share transfer validations for journal entry

* fix: share transfer test

* fix: tests
diff --git a/erpnext/accounts/doctype/share_transfer/share_transfer.py b/erpnext/accounts/doctype/share_transfer/share_transfer.py
index 1a1f036..e95c694 100644
--- a/erpnext/accounts/doctype/share_transfer/share_transfer.py
+++ b/erpnext/accounts/doctype/share_transfer/share_transfer.py
@@ -86,17 +86,23 @@
 				frappe.throw(_('The field From Shareholder cannot be blank'))
 			if self.from_folio_no is None or self.from_folio_no is '':
 				self.to_folio_no = self.autoname_folio(self.to_shareholder)
+			if self.asset_account is None:
+				frappe.throw(_('The field Asset Account cannot be blank'))
 		elif (self.transfer_type == 'Issue'):
 			self.from_shareholder = ''
 			if self.to_shareholder is None or self.to_shareholder == '':
 				frappe.throw(_('The field To Shareholder cannot be blank'))
 			if self.to_folio_no is None or self.to_folio_no is '':
 				self.to_folio_no = self.autoname_folio(self.to_shareholder)
+			if self.asset_account is None:
+				frappe.throw(_('The field Asset Account cannot be blank'))
 		else:
 			if self.from_shareholder is None or self.to_shareholder is None:
 				frappe.throw(_('The fields From Shareholder and To Shareholder cannot be blank'))
 			if self.to_folio_no is None or self.to_folio_no is '':
 				self.to_folio_no = self.autoname_folio(self.to_shareholder)
+		if self.equity_or_liability_account is None:
+				frappe.throw(_('The field Equity/Liability Account cannot be blank'))
 		if self.from_shareholder == self.to_shareholder:
 			frappe.throw(_('The seller and the buyer cannot be the same'))
 		if self.no_of_shares != self.to_no - self.from_no + 1:
diff --git a/erpnext/accounts/doctype/share_transfer/test_share_transfer.py b/erpnext/accounts/doctype/share_transfer/test_share_transfer.py
index f1cf31b..910dfd0 100644
--- a/erpnext/accounts/doctype/share_transfer/test_share_transfer.py
+++ b/erpnext/accounts/doctype/share_transfer/test_share_transfer.py
@@ -15,67 +15,74 @@
 		frappe.db.sql("delete from `tabShare Balance`")
 		share_transfers = [
 			{
-				"doctype"			: "Share Transfer",
-				"transfer_type"		: "Issue",
-				"date"				: "2018-01-01",
-				"to_shareholder"	: "SH-00001",
-				"share_type"		: "Equity",
-				"from_no"			: 1,
-				"to_no"				: 500,
-				"no_of_shares"		: 500,
-				"rate"				: 10,
-				"company"			: "_Test Company"
+				"doctype"					 : "Share Transfer",
+				"transfer_type"				 : "Issue",
+				"date"						 : "2018-01-01",
+				"to_shareholder"			 : "SH-00001",
+				"share_type"				 : "Equity",
+				"from_no"					 : 1,
+				"to_no"						 : 500,
+				"no_of_shares"				 : 500,
+				"rate"						 : 10,
+				"company"					 : "_Test Company",
+				"asset_account"				 : "Cash - _TC",
+				"equity_or_liability_account": "Creditors - _TC"
 			},
 			{
-				"doctype"			: "Share Transfer",
-				"transfer_type"		: "Transfer",
-				"date"				: "2018-01-02",
-				"from_shareholder"	: "SH-00001",
-				"to_shareholder"	: "SH-00002",
-				"share_type"		: "Equity",
-				"from_no"			: 101,
-				"to_no"				: 200,
-				"no_of_shares"		: 100,
-				"rate"				: 15,
-				"company"			: "_Test Company"
+				"doctype"					 : "Share Transfer",
+				"transfer_type"				 : "Transfer",
+				"date"						 : "2018-01-02",
+				"from_shareholder"			 : "SH-00001",
+				"to_shareholder"			 : "SH-00002",
+				"share_type"				 : "Equity",
+				"from_no"					 : 101,
+				"to_no"						 : 200,
+				"no_of_shares"				 : 100,
+				"rate"						 : 15,
+				"company"					 : "_Test Company",
+				"equity_or_liability_account": "Creditors - _TC"
 			},
 			{
-				"doctype"			: "Share Transfer",
-				"transfer_type"		: "Transfer",
-				"date"				: "2018-01-03",
-				"from_shareholder"	: "SH-00001",
-				"to_shareholder"	: "SH-00003",
-				"share_type"		: "Equity",
-				"from_no"			: 201,
-				"to_no"				: 500,
-				"no_of_shares"		: 300,
-				"rate"				: 20,
-				"company"			: "_Test Company"
+				"doctype"					 : "Share Transfer",
+				"transfer_type"				 : "Transfer",
+				"date"						 : "2018-01-03",
+				"from_shareholder"			 : "SH-00001",
+				"to_shareholder"			 : "SH-00003",
+				"share_type"				 : "Equity",
+				"from_no"					 : 201,
+				"to_no"						 : 500,
+				"no_of_shares"				 : 300,
+				"rate"						 : 20,
+				"company"					 : "_Test Company",
+				"equity_or_liability_account": "Creditors - _TC"
 			},
 			{
-				"doctype"			: "Share Transfer",
-				"transfer_type"		: "Transfer",
-				"date"				: "2018-01-04",
-				"from_shareholder"	: "SH-00003",
-				"to_shareholder"	: "SH-00002",
-				"share_type"		: "Equity",
-				"from_no"			: 201,
-				"to_no"				: 400,
-				"no_of_shares"		: 200,
-				"rate"				: 15,
-				"company"			: "_Test Company"
+				"doctype"					 : "Share Transfer",
+				"transfer_type"				 : "Transfer",
+				"date"						 : "2018-01-04",
+				"from_shareholder"			 : "SH-00003",
+				"to_shareholder"			 : "SH-00002",
+				"share_type"				 : "Equity",
+				"from_no"					 : 201,
+				"to_no"						 : 400,
+				"no_of_shares"				 : 200,
+				"rate"						 : 15,
+				"company"					 : "_Test Company",
+				"equity_or_liability_account": "Creditors - _TC"
 			},
 			{
-				"doctype"			: "Share Transfer",
-				"transfer_type"		: "Purchase",
-				"date"				: "2018-01-05",
-				"from_shareholder"	: "SH-00003",
-				"share_type"		: "Equity",
-				"from_no"			: 401,
-				"to_no"				: 500,
-				"no_of_shares"		: 100,
-				"rate"				: 25,
-				"company"			: "_Test Company"
+				"doctype"					 : "Share Transfer",
+				"transfer_type"				 : "Purchase",
+				"date"						 : "2018-01-05",
+				"from_shareholder"			 : "SH-00003",
+				"share_type"				 : "Equity",
+				"from_no"					 : 401,
+				"to_no"						 : 500,
+				"no_of_shares"				 : 100,
+				"rate"						 : 25,
+				"company"					 : "_Test Company",
+				"asset_account"				 : "Cash - _TC",
+				"equity_or_liability_account": "Creditors - _TC"
 			}
 		]
 		for d in share_transfers:
@@ -84,30 +91,33 @@
 
 	def test_invalid_share_transfer(self):
 		doc = frappe.get_doc({
-			"doctype"			: "Share Transfer",
-			"transfer_type"		: "Transfer",
-			"date"				: "2018-01-05",
-			"from_shareholder"	: "SH-00003",
-			"to_shareholder"	: "SH-00002",
-			"share_type"		: "Equity",
-			"from_no"			: 1,
-			"to_no"				: 100,
-			"no_of_shares"		: 100,
-			"rate"				: 15,
-			"company"			: "_Test Company"
+			"doctype"					 : "Share Transfer",
+			"transfer_type"				 : "Transfer",
+			"date"						 : "2018-01-05",
+			"from_shareholder"			 : "SH-00003",
+			"to_shareholder"			 : "SH-00002",
+			"share_type"				 : "Equity",
+			"from_no"					 : 1,
+			"to_no"						 : 100,
+			"no_of_shares"				 : 100,
+			"rate"						 : 15,
+			"company"					 : "_Test Company",
+			"equity_or_liability_account": "Creditors - _TC"
 		})
 		self.assertRaises(ShareDontExists, doc.insert)
 
 		doc = frappe.get_doc({
-			"doctype"			: "Share Transfer",
-			"transfer_type"		: "Purchase",
-			"date"				: "2018-01-02",
-			"from_shareholder"	: "SH-00001",
-			"share_type"		: "Equity",
-			"from_no"			: 1,
-			"to_no"				: 200,
-			"no_of_shares"		: 200,
-			"rate"				: 15,
-			"company"			: "_Test Company"
+			"doctype"					 : "Share Transfer",
+			"transfer_type"				 : "Purchase",
+			"date"						 : "2018-01-02",
+			"from_shareholder"			 : "SH-00001",
+			"share_type"				 : "Equity",
+			"from_no"					 : 1,
+			"to_no"						 : 200,
+			"no_of_shares"				 : 200,
+			"rate"						 : 15,
+			"company"					 : "_Test Company",
+			"asset_account"				 : "Cash - _TC",
+			"equity_or_liability_account": "Creditors - _TC"
 		})
 		self.assertRaises(ShareDontExists, doc.insert)