payment entry improvements and deletion of payment tool
diff --git a/erpnext/accounts/doctype/accounts_settings/accounts_settings.json b/erpnext/accounts/doctype/accounts_settings/accounts_settings.json
index aca83da..a02e591 100644
--- a/erpnext/accounts/doctype/accounts_settings/accounts_settings.json
+++ b/erpnext/accounts/doctype/accounts_settings/accounts_settings.json
@@ -9,6 +9,7 @@
  "docstatus": 0, 
  "doctype": "DocType", 
  "document_type": "Other", 
+ "editable_grid": 1, 
  "fields": [
   {
    "allow_on_submit": 0, 
@@ -115,31 +116,6 @@
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
-   "fieldname": "allow_payment_entry_via_journal_entry", 
-   "fieldtype": "Check", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_list_view": 0, 
-   "label": "Allow Payment Entry via Journal Entry", 
-   "length": 0, 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 0, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
    "description": "Role that is allowed to submit transactions that exceed credit limits set.", 
    "fieldname": "credit_controller", 
    "fieldtype": "Link", 
@@ -199,7 +175,7 @@
  "issingle": 1, 
  "istable": 0, 
  "max_attachments": 0, 
- "modified": "2016-06-27 15:18:28.566087", 
+ "modified": "2016-07-14 14:32:06.056888", 
  "modified_by": "Administrator", 
  "module": "Accounts", 
  "name": "Accounts Settings", 
diff --git a/erpnext/accounts/doctype/payment_entry/payment_entry.py b/erpnext/accounts/doctype/payment_entry/payment_entry.py
index f7d2272..5ed14d5 100644
--- a/erpnext/accounts/doctype/payment_entry/payment_entry.py
+++ b/erpnext/accounts/doctype/payment_entry/payment_entry.py
@@ -36,6 +36,7 @@
 	def validate(self):
 		self.setup_party_account_field()
 		self.set_missing_values()
+		self.validate_payment_type()
 		self.validate_party_details()
 		self.validate_bank_accounts()
 		self.set_exchange_rate()
@@ -108,6 +109,10 @@
 				for field, value in ref_details.items():
 					if not d.get(field):
 						d.set(field, value)
+						
+	def validate_payment_type(self):
+		if self.payment_type not in ("Receive", "Pay", "Internal Transfer"):
+			frappe.throw(_("Payment Type must be one of Receive, Pay and Internal Transfer"))
 	
 	def validate_party_details(self):
 		if self.party:
diff --git a/erpnext/accounts/doctype/payment_tool/__init__.py b/erpnext/accounts/doctype/payment_tool/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/accounts/doctype/payment_tool/__init__.py
+++ /dev/null
diff --git a/erpnext/accounts/doctype/payment_tool/payment_tool.js b/erpnext/accounts/doctype/payment_tool/payment_tool.js
deleted file mode 100644
index 8d8e0ce..0000000
--- a/erpnext/accounts/doctype/payment_tool/payment_tool.js
+++ /dev/null
@@ -1,274 +0,0 @@
-// Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
-// For license information, please see license.txt
-
-frappe.provide("erpnext.payment_tool");
-
-// Help content
-frappe.ui.form.on("Payment Tool", "onload", function(frm) {
-	frm.set_value("make_jv_help",
-		+ __("Note: If payment is not made against any reference, make Journal Entry manually."));
-
-	frm.set_query("party_type", function() {
-		return {
-			filters: {"name": ["in", ["Customer", "Supplier"]]}
-		};
-	});
-
-	frm.set_query("payment_account", function() {
-		return {
-			filters: {
-				"account_type": ["in", ["Bank", "Cash"]],
-				"is_group": 0,
-				"company": frm.doc.company
-			}
-		}
-	});
-
-	frm.set_query("against_voucher_type", "vouchers", function() {
-		if (frm.doc.party_type=="Customer") {
-			var doctypes = ["Sales Order", "Sales Invoice", "Journal Entry"];
-		} else {
-			var doctypes = ["Purchase Order", "Purchase Invoice", "Journal Entry"];
-		}
-
-		return {
-			filters: { "name": ["in", doctypes] }
-		};
-	});
-});
-
-frappe.ui.form.on("Payment Tool", "refresh", function(frm) {
-	frm.disable_save();
-	frappe.ui.form.trigger("Payment Tool", "party_type");
-});
-
-frappe.ui.form.on("Payment Tool", "party_type", function(frm) {
-	frm.set_value("received_or_paid", frm.doc.party_type=="Customer" ? "Received" : "Paid");
-});
-
-frappe.ui.form.on("Payment Tool", "party", function(frm) {
-	if(frm.doc.party_type && frm.doc.party) {
-		return frappe.call({
-			method: "erpnext.accounts.party.get_party_account",
-			args: {
-				company: frm.doc.company,
-				party_type: frm.doc.party_type,
-				party: frm.doc.party
-			},
-			callback: function(r) {
-				if(!r.exc && r.message) {
-					frm.set_value("party_account", r.message);
-					erpnext.payment_tool.check_mandatory_to_set_button(frm);
-				}
-			}
-		});
-	}
-})
-
-frappe.ui.form.on("Payment Tool", "party_account", function(frm) {
-	if(frm.doc.party_account) {
-		frm.call({
-			method: "frappe.client.get_value",
-			args: {
-				doctype: "Account",
-				fieldname: "account_currency",
-				filters: { name: frm.doc.party_account },
-			},
-			callback: function(r, rt) {
-				if(r.message) {
-					frm.set_value("party_account_currency", r.message.account_currency);
-					erpnext.payment_tool.check_mandatory_to_set_button(frm);
-				}
-			}
-		});
-	}
-})
-
-frappe.ui.form.on("Payment Tool", "company", function(frm) {
-	erpnext.payment_tool.check_mandatory_to_set_button(frm);
-});
-
-frappe.ui.form.on("Payment Tool", "received_or_paid", function(frm) {
-	erpnext.payment_tool.check_mandatory_to_set_button(frm);
-});
-
-// Fetch bank/cash account based on payment mode
-frappe.ui.form.on("Payment Tool", "payment_mode", function(frm) {
-	return  frappe.call({
-		method: "erpnext.accounts.doctype.sales_invoice.sales_invoice.get_bank_cash_account",
-		args: {
-				"mode_of_payment": frm.doc.payment_mode,
-				"company": frm.doc.company
-		},
-		callback: function(r, rt) {
-			if(r.message) {
-				cur_frm.set_value("payment_account", r.message['account']);
-			}
-		}
-	});
-});
-
-
-erpnext.payment_tool.check_mandatory_to_set_button = function(frm) {
-	if (frm.doc.company && frm.doc.party_type && frm.doc.party && frm.doc.received_or_paid && frm.doc.party_account) {
-		frm.fields_dict.get_outstanding_vouchers.$input.addClass("btn-primary");
-	}
-}
-
-// Get outstanding vouchers
-frappe.ui.form.on("Payment Tool", "get_outstanding_vouchers", function(frm) {
-	erpnext.payment_tool.check_mandatory_to_fetch(frm.doc);
-
-	frm.set_value("vouchers", []);
-
-	return  frappe.call({
-		method: 'erpnext.accounts.doctype.payment_tool.payment_tool.get_outstanding_vouchers',
-		args: {
-			args: {
-				"company": frm.doc.company,
-				"party_type": frm.doc.party_type,
-				"received_or_paid": frm.doc.received_or_paid,
-				"party": frm.doc.party,
-				"party_account": frm.doc.party_account
-			}
-		},
-		callback: function(r, rt) {
-			if(r.message) {
-				frm.fields_dict.get_outstanding_vouchers.$input.removeClass("btn-primary");
-				frm.fields_dict.make_journal_entry.$input.addClass("btn-primary");
-
-				frm.clear_table("vouchers");
-
-				$.each(r.message, function(i, d) {
-					var c = frm.add_child("vouchers");
-					c.against_voucher_type = d.voucher_type;
-					c.against_voucher_no = d.voucher_no;
-					c.total_amount = d.invoice_amount;
-					c.outstanding_amount = d.outstanding_amount;
-
-					if (in_list(['Sales Invoice', 'Purchase Invoice'], d.voucher_type)){
-						c.due_date = d.due_date
-					}
-
-					if (frm.doc.set_payment_amount) {
-						c.payment_amount = d.outstanding_amount;
-					}
-				});
-			}
-			refresh_field("vouchers");
-			frm.layout.refresh_sections();
-			erpnext.payment_tool.set_total_payment_amount(frm);
-		}
-	});
-});
-
-// validate against_voucher_type
-frappe.ui.form.on("Payment Tool Detail", "against_voucher_type", function(frm, cdt, cdn) {
-	var row = frappe.model.get_doc(cdt, cdn);
-	erpnext.payment_tool.validate_against_voucher(frm, row);
-});
-
-erpnext.payment_tool.validate_against_voucher = function(frm, row) {
-	var _validate = function(i, row) {
-		if (!row.against_voucher_type) {
-			return;
-		}
-
-		if(frm.doc.party_type=="Customer"
-			&& !in_list(["Sales Order", "Sales Invoice", "Journal Entry"], row.against_voucher_type)) {
-				frappe.model.set_value(row.doctype, row.name, "against_voucher_type", "");
-				frappe.msgprint(__("Against Voucher Type must be one of Sales Order, Sales Invoice or Journal Entry"));
-				return false;
-			}
-
-		if(frm.doc.party_type=="Supplier"
-			&& !in_list(["Purchase Order", "Purchase Invoice", "Journal Entry"], row.against_voucher_type)) {
-				frappe.model.set_value(row.doctype, row.name, "against_voucher_type", "");
-				frappe.msgprint(__("Against Voucher Type must be one of Purchase Order, Purchase Invoice or Journal Entry"));
-				return false;
-			}
-
-	}
-
-	if (row) {
-		_validate(0, row);
-	} else {
-		$.each(frm.doc.vouchers || [], _validate);
-	}
-
-}
-
-// validate against_voucher_type
-frappe.ui.form.on("Payment Tool Detail", "against_voucher_no", function(frm, cdt, cdn) {
-	var row = locals[cdt][cdn];
-	if (!row.against_voucher_no) {
-		return;
-	}
-
-	frappe.call({
-		method: 'erpnext.accounts.doctype.payment_tool.payment_tool.get_against_voucher_details',
-		args: {
-			"against_voucher_type": row.against_voucher_type,
-			"against_voucher_no": row.against_voucher_no,
-			"party_account": frm.doc.party_account,
-			"company": frm.doc.company
-		},
-		callback: function(r) {
-			if(!r.exc) {
-				$.each(r.message, function(k, v) {
-					frappe.model.set_value(cdt, cdn, k, v);
-				});
-
-				frappe.model.set_value(cdt, cdn, "payment_amount", r.message.outstanding_amount);
-			}
-		}
-	});
-});
-
-// Set total payment amount
-frappe.ui.form.on("Payment Tool Detail", "payment_amount", function(frm) {
-	erpnext.payment_tool.set_total_payment_amount(frm);
-});
-
-frappe.ui.form.on("Payment Tool Detail", "vouchers_remove", function(frm) {
-	erpnext.payment_tool.set_total_payment_amount(frm);
-});
-
-erpnext.payment_tool.set_total_payment_amount = function(frm) {
-	var total_amount = 0.00;
-	$.each(frm.doc.vouchers || [], function(i, row) {
-		if (row.payment_amount && (row.payment_amount <= row.outstanding_amount)) {
-			total_amount = total_amount + row.payment_amount;
-		} else {
-			if(row.payment_amount < 0)
-				msgprint(__("Row {0}: Payment amount can not be negative", [row.idx]));
-			else if(row.payment_amount > row.outstanding_amount)
-				msgprint(__("Row {0}: Payment Amount cannot be greater than Outstanding Amount", [__(row.idx)]));
-
-			frappe.model.set_value(row.doctype, row.name, "payment_amount", 0.0);
-		}
-	});
-	frm.set_value("total_payment_amount", total_amount);
-}
-
-
-// Make Journal Entry
-frappe.ui.form.on("Payment Tool", "make_journal_entry", function(frm) {
-	erpnext.payment_tool.check_mandatory_to_fetch(frm.doc);
-
-	return  frappe.call({
-		method: 'make_journal_entry',
-		doc: frm.doc,
-		callback: function(r) {
-			frm.fields_dict.make_journal_entry.$input.addClass("btn-primary");
-			var doclist = frappe.model.sync(r.message);
-			frappe.set_route("Form", doclist[0].doctype, doclist[0].name);
-		}
-	});
-});
-
-erpnext.payment_tool.check_mandatory_to_fetch = function(doc) {
-	$.each(["Company", "Party Type", "Party", "Received or Paid"], function(i, field) {
-		if(!doc[frappe.model.scrub(field)]) frappe.throw(__("Please select {0} first", [field]));
-	});
-}
diff --git a/erpnext/accounts/doctype/payment_tool/payment_tool.json b/erpnext/accounts/doctype/payment_tool/payment_tool.json
deleted file mode 100644
index a99054f..0000000
--- a/erpnext/accounts/doctype/payment_tool/payment_tool.json
+++ /dev/null
@@ -1,551 +0,0 @@
-{
- "allow_copy": 0, 
- "allow_import": 0, 
- "allow_rename": 0, 
- "creation": "2014-07-23 15:12:27.746665", 
- "custom": 0, 
- "docstatus": 0, 
- "doctype": "DocType", 
- "document_type": "", 
- "fields": [
-  {
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "fieldname": "sec_break1", 
-   "fieldtype": "Section Break", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "in_filter": 0, 
-   "in_list_view": 0, 
-   "label": "Find Invoices to Match", 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "print_hide": 0, 
-   "read_only": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "fieldname": "company", 
-   "fieldtype": "Link", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "in_filter": 0, 
-   "in_list_view": 0, 
-   "label": "Company", 
-   "no_copy": 0, 
-   "options": "Company", 
-   "permlevel": 0, 
-   "print_hide": 0, 
-   "read_only": 0, 
-   "report_hide": 0, 
-   "reqd": 1, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "default": "Customer", 
-   "fieldname": "party_type", 
-   "fieldtype": "Link", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "in_filter": 0, 
-   "in_list_view": 1, 
-   "label": "Party Type", 
-   "no_copy": 0, 
-   "options": "DocType", 
-   "permlevel": 0, 
-   "print_hide": 0, 
-   "read_only": 0, 
-   "report_hide": 0, 
-   "reqd": 1, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "fieldname": "received_or_paid", 
-   "fieldtype": "Select", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "in_filter": 0, 
-   "in_list_view": 1, 
-   "label": "Received Or Paid", 
-   "no_copy": 0, 
-   "options": "Received\nPaid", 
-   "permlevel": 0, 
-   "print_hide": 0, 
-   "read_only": 0, 
-   "report_hide": 0, 
-   "reqd": 1, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "fieldname": "col_break1", 
-   "fieldtype": "Column Break", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "in_filter": 0, 
-   "in_list_view": 0, 
-   "label": "", 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "print_hide": 0, 
-   "read_only": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "depends_on": "", 
-   "fieldname": "party", 
-   "fieldtype": "Dynamic Link", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "in_filter": 0, 
-   "in_list_view": 1, 
-   "label": "Party", 
-   "no_copy": 0, 
-   "options": "party_type", 
-   "permlevel": 0, 
-   "print_hide": 0, 
-   "read_only": 0, 
-   "report_hide": 0, 
-   "reqd": 1, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "fieldname": "party_account", 
-   "fieldtype": "Link", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "in_filter": 0, 
-   "in_list_view": 0, 
-   "label": "Party Account", 
-   "no_copy": 1, 
-   "options": "Account", 
-   "permlevel": 0, 
-   "print_hide": 0, 
-   "read_only": 0, 
-   "report_hide": 0, 
-   "reqd": 1, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "fieldname": "party_account_currency", 
-   "fieldtype": "Link", 
-   "hidden": 1, 
-   "ignore_user_permissions": 0, 
-   "in_filter": 0, 
-   "in_list_view": 0, 
-   "label": "Party Account Currency", 
-   "no_copy": 1, 
-   "options": "Currency", 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 1, 
-   "read_only": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "fieldname": "set_payment_amount", 
-   "fieldtype": "Check", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "in_filter": 0, 
-   "in_list_view": 0, 
-   "label": "Set Payment Amount = Outstanding Amount", 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 0, 
-   "read_only": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "fieldname": "get_outstanding_vouchers", 
-   "fieldtype": "Button", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "in_filter": 0, 
-   "in_list_view": 0, 
-   "label": "Get Outstanding Vouchers", 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "print_hide": 0, 
-   "read_only": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "depends_on": "eval:(doc.company && doc.party_type && doc.received_or_paid && doc.party_account)", 
-   "fieldname": "sec_break3", 
-   "fieldtype": "Section Break", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "in_filter": 0, 
-   "in_list_view": 0, 
-   "label": "Set Matching Amounts", 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "print_hide": 0, 
-   "read_only": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "fieldname": "vouchers", 
-   "fieldtype": "Table", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "in_filter": 0, 
-   "in_list_view": 0, 
-   "label": "Against Vouchers", 
-   "no_copy": 0, 
-   "options": "Payment Tool Detail", 
-   "permlevel": 0, 
-   "print_hide": 0, 
-   "read_only": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "depends_on": "eval:(doc.company && doc.party_type && doc.received_or_paid && doc.party_account)", 
-   "fieldname": "section_break_19", 
-   "fieldtype": "Section Break", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "in_filter": 0, 
-   "in_list_view": 0, 
-   "label": "Make Payment Entry", 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 0, 
-   "read_only": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "fieldname": "payment_mode", 
-   "fieldtype": "Link", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "in_filter": 0, 
-   "in_list_view": 0, 
-   "label": "Payment Mode", 
-   "no_copy": 0, 
-   "options": "Mode of Payment", 
-   "permlevel": 0, 
-   "print_hide": 0, 
-   "read_only": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "fieldname": "payment_account", 
-   "fieldtype": "Link", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "in_filter": 0, 
-   "in_list_view": 0, 
-   "label": "Payment Account", 
-   "no_copy": 0, 
-   "options": "Account", 
-   "permlevel": 0, 
-   "print_hide": 0, 
-   "read_only": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "fieldname": "total_payment_amount", 
-   "fieldtype": "Currency", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "in_filter": 0, 
-   "in_list_view": 0, 
-   "label": "Total Payment Amount", 
-   "no_copy": 0, 
-   "options": "party_account_currency", 
-   "permlevel": 0, 
-   "print_hide": 0, 
-   "read_only": 1, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "fieldname": "data_22", 
-   "fieldtype": "Column Break", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "in_filter": 0, 
-   "in_list_view": 0, 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 0, 
-   "read_only": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "fieldname": "reference_date", 
-   "fieldtype": "Date", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "in_filter": 0, 
-   "in_list_view": 0, 
-   "label": "Reference Date", 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "print_hide": 0, 
-   "read_only": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "fieldname": "reference_no", 
-   "fieldtype": "Data", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "in_filter": 0, 
-   "in_list_view": 0, 
-   "label": "Reference No", 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "print_hide": 0, 
-   "read_only": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "fieldname": "make_journal_entry", 
-   "fieldtype": "Button", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "in_filter": 0, 
-   "in_list_view": 0, 
-   "label": "Make Journal Entry", 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "print_hide": 0, 
-   "read_only": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "depends_on": "eval:(doc.company && doc.party_type && doc.received_or_paid && doc.party_account)", 
-   "fieldname": "section_break_21", 
-   "fieldtype": "Section Break", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "in_filter": 0, 
-   "in_list_view": 0, 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 0, 
-   "read_only": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "fieldname": "make_jv_help", 
-   "fieldtype": "Small Text", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "in_filter": 0, 
-   "in_list_view": 0, 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "print_hide": 0, 
-   "read_only": 1, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
-  }
- ], 
- "hide_heading": 0, 
- "hide_toolbar": 1, 
- "icon": "icon-magic", 
- "in_create": 0, 
- "in_dialog": 0, 
- "is_submittable": 0, 
- "issingle": 1, 
- "istable": 0, 
- "modified": "2015-10-01 09:43:24.199025", 
- "modified_by": "Administrator", 
- "module": "Accounts", 
- "name": "Payment Tool", 
- "name_case": "", 
- "owner": "Administrator", 
- "permissions": [
-  {
-   "amend": 0, 
-   "apply_user_permissions": 0, 
-   "cancel": 0, 
-   "create": 1, 
-   "delete": 0, 
-   "email": 0, 
-   "export": 0, 
-   "if_owner": 0, 
-   "import": 0, 
-   "permlevel": 0, 
-   "print": 0, 
-   "read": 1, 
-   "report": 0, 
-   "role": "Accounts Manager", 
-   "set_user_permissions": 0, 
-   "share": 1, 
-   "submit": 0, 
-   "write": 1
-  }, 
-  {
-   "amend": 0, 
-   "apply_user_permissions": 0, 
-   "cancel": 0, 
-   "create": 1, 
-   "delete": 0, 
-   "email": 0, 
-   "export": 0, 
-   "if_owner": 0, 
-   "import": 0, 
-   "permlevel": 0, 
-   "print": 0, 
-   "read": 1, 
-   "report": 0, 
-   "role": "Accounts User", 
-   "set_user_permissions": 0, 
-   "share": 1, 
-   "submit": 0, 
-   "write": 1
-  }
- ], 
- "read_only": 0, 
- "read_only_onload": 0, 
- "sort_field": "modified", 
- "sort_order": "DESC"
-}
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/payment_tool/payment_tool.py b/erpnext/accounts/doctype/payment_tool/payment_tool.py
deleted file mode 100644
index 5c5b393..0000000
--- a/erpnext/accounts/doctype/payment_tool/payment_tool.py
+++ /dev/null
@@ -1,170 +0,0 @@
-# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors and contributors
-# For license information, please see license.txt
-
-from __future__ import unicode_literals
-import frappe
-from frappe import _, scrub
-from frappe.utils import flt
-from frappe.model.document import Document
-import json
-from erpnext.accounts.utils import get_account_currency
-from erpnext.accounts.doctype.journal_entry.journal_entry import get_exchange_rate
-
-class PaymentTool(Document):
-	def make_journal_entry(self):
-		from erpnext.accounts.utils import get_balance_on
-		total_payment_amount = 0.00
-
-		jv = frappe.new_doc('Journal Entry')
-		jv.voucher_type = 'Journal Entry'
-		jv.company = self.company
-		jv.cheque_no = self.reference_no
-		jv.cheque_date = self.reference_date
-
-		party_account_currency, party_account_type = frappe.db.get_value("Account", self.party_account,
-			["account_currency", "account_type"])
-
-		bank_account_currency, bank_account_type = None, None
-		if self.payment_account:
-			bank_account_currency, bank_account_type = frappe.db.get_value("Account", self.payment_account,
-				["account_currency", "account_type"])
-
-		if not self.total_payment_amount:
-			frappe.throw(_("Please enter Payment Amount in atleast one row"))
-
-		for v in self.get("vouchers"):
-			if not frappe.db.get_value(v.against_voucher_type, {"name": v.against_voucher_no}):
-				frappe.throw(_("Row {0}: {1} is not a valid {2}").format(v.idx, v.against_voucher_no,
-					v.against_voucher_type))
-
-			if v.payment_amount:
-				exchange_rate = get_exchange_rate(self.party_account, party_account_currency,
-					self.company, v.against_voucher_type, v.against_voucher_no)
-
-				d1 = jv.append("accounts")
-				d1.account = self.party_account
-				d1.party_type = self.party_type
-				d1.party = self.party
-				d1.account_currency = party_account_currency
-				d1.account_type = party_account_type
-				d1.balance = get_balance_on(self.party_account)
-				d1.party_balance = get_balance_on(party=self.party, party_type=self.party_type)
-				d1.exchange_rate = exchange_rate
-				d1.set("debit_in_account_currency" if self.received_or_paid=="Paid" \
-					else "credit_in_account_currency", flt(v.payment_amount))
-				d1.reference_type = v.against_voucher_type
-				d1.reference_name = v.against_voucher_no
-				d1.is_advance = 'Yes' \
-					if v.against_voucher_type in ['Sales Order', 'Purchase Order'] else 'No'
-
-				amount = flt(d1.debit_in_account_currency) - flt(d1.credit_in_account_currency)
-				if bank_account_currency == party_account_currency:
-					total_payment_amount += amount
-				else:
-					total_payment_amount += amount*exchange_rate
-
-		d2 = jv.append("accounts")
-		if self.payment_account:
-			bank_account_currency, bank_account_type = frappe.db.get_value("Account", self.payment_account,
-				["account_currency", "account_type"])
-
-			d2.account = self.payment_account
-			d2.account_currency = bank_account_currency
-			d2.account_type = bank_account_type
-			d2.exchange_rate = get_exchange_rate(self.payment_account, bank_account_currency, self.company,
-				debit=(abs(total_payment_amount) if total_payment_amount < 0 else 0),
-				credit=(total_payment_amount if total_payment_amount > 0 else 0))
-			d2.account_balance = get_balance_on(self.payment_account)
-
-		amount_field_bank = 'debit_in_account_currency' if total_payment_amount < 0 \
-			else 'credit_in_account_currency'
-
-		d2.set(amount_field_bank, abs(total_payment_amount))
-
-		company_currency = frappe.db.get_value("Company", self.company, "default_currency")
-		if party_account_currency != company_currency or \
-			(bank_account_currency and bank_account_currency != company_currency):
-				jv.multi_currency = 1
-
-		jv.set_amounts_in_company_currency()
-		jv.set_total_debit_credit()
-
-		return jv.as_dict()
-
-@frappe.whitelist()
-def get_outstanding_vouchers(args):
-	from erpnext.accounts.utils import get_outstanding_invoices
-
-	if not frappe.has_permission("Payment Tool"):
-		frappe.throw(_("No permission to use Payment Tool"), frappe.PermissionError)
-
-	args = json.loads(args)
-
-	party_account_currency = get_account_currency(args.get("party_account"))
-	company_currency = frappe.db.get_value("Company", args.get("company"), "default_currency")
-
-	if ((args.get("party_type") == "Customer" and args.get("received_or_paid") == "Paid")
-		or (args.get("party_type") == "Supplier" and args.get("received_or_paid") == "Received")):
-
-		frappe.throw(_("Please enter the Against Vouchers manually"))
-
-	# Get all outstanding sales /purchase invoices
-	outstanding_invoices = get_outstanding_invoices(args.get("party_type"), args.get("party"), args.get("party_account"))
-
-	# Get all SO / PO which are not fully billed or aginst which full advance not paid
-	orders_to_be_billed = get_orders_to_be_billed(args.get("party_type"), args.get("party"),
-		party_account_currency, company_currency)
-
-	return outstanding_invoices + orders_to_be_billed
-
-def get_orders_to_be_billed(party_type, party, party_account_currency, company_currency):
-	voucher_type = 'Sales Order' if party_type == "Customer" else 'Purchase Order'
-
-	ref_field = "base_grand_total" if party_account_currency == company_currency else "grand_total"
-
-	orders = frappe.db.sql("""
-		select
-			name as voucher_no,
-			{ref_field} as invoice_amount,
-			({ref_field} - advance_paid) as outstanding_amount,
-			transaction_date as posting_date
-		from
-			`tab{voucher_type}`
-		where
-			{party_type} = %s
-			and docstatus = 1
-			and ifnull(status, "") != "Closed"
-			and {ref_field} > advance_paid
-			and abs(100 - per_billed) > 0.01
-		""".format(**{
-			"ref_field": ref_field,
-			"voucher_type": voucher_type,
-			"party_type": scrub(party_type)
-		}), party, as_dict = True)
-
-	order_list = []
-	for d in orders:
-		d["voucher_type"] = voucher_type
-		order_list.append(d)
-
-	return order_list
-
-@frappe.whitelist()
-def get_against_voucher_details(against_voucher_type, against_voucher_no, party_account, company):
-	party_account_currency = get_account_currency(party_account)
-	company_currency = frappe.db.get_value("Company", company, "default_currency")
-	ref_field = "base_grand_total" if party_account_currency == company_currency else "grand_total"
-
-	if against_voucher_type in ["Sales Order", "Purchase Order"]:
-		select_cond = "{0} as total_amount, {0} - advance_paid as outstanding_amount"\
-			.format(ref_field)
-	elif against_voucher_type in ["Sales Invoice", "Purchase Invoice"]:
-		select_cond = "{0} as total_amount, outstanding_amount".format(ref_field)
-	elif against_voucher_type == "Journal Entry":
-		ref_field = "total_debit" if party_account_currency == company_currency else "total_debit/exchange_rate"
-		select_cond = "{0} as total_amount".format(ref_field)
-
-	details = frappe.db.sql("""select {0} from `tab{1}` where name = %s"""
-		.format(select_cond, frappe.db.escape(against_voucher_type)), against_voucher_no, as_dict=1)
-
-	return details[0] if details else {}
diff --git a/erpnext/accounts/doctype/payment_tool/test_payment_tool.py b/erpnext/accounts/doctype/payment_tool/test_payment_tool.py
deleted file mode 100644
index 4f1c9e9..0000000
--- a/erpnext/accounts/doctype/payment_tool/test_payment_tool.py
+++ /dev/null
@@ -1,175 +0,0 @@
-# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
-# License: GNU General Public License v3. See license.txt
-
-from __future__ import unicode_literals
-import unittest, frappe, json
-from frappe.utils import flt
-from erpnext.selling.doctype.sales_order.test_sales_order import make_sales_order
-from erpnext.buying.doctype.purchase_order.test_purchase_order import create_purchase_order
-from erpnext.accounts.doctype.sales_invoice.test_sales_invoice import test_records as si_test_records
-from erpnext.accounts.doctype.purchase_invoice.test_purchase_invoice import test_records as pi_test_records
-from erpnext.accounts.doctype.journal_entry.test_journal_entry import test_records as jv_test_records
-
-test_dependencies = ["Item"]
-
-class TestPaymentTool(unittest.TestCase):
-	def test_make_journal_entry(self):
-		self.clear_table_entries()
-		frappe.db.set_default("currency", "INR")
-
-		base_customer_jv = self.create_against_jv(jv_test_records[2], { "party": "_Test Customer 3"})
-		base_supplier_jv = self.create_against_jv(jv_test_records[1], { "party": "_Test Supplier 1"})
-
-
-		# Create SO with partial outstanding
-		so1 = make_sales_order(customer="_Test Customer 3", qty=10, rate=100)
-
-		self.create_against_jv(jv_test_records[0], {
-			"party": "_Test Customer 3",
-			"reference_type": "Sales Order",
-			"reference_name": so1.name,
-			"is_advance": "Yes"
-		})
-
-
-		#Create SO with no outstanding
-		so2 = make_sales_order(customer="_Test Customer 3")
-
-		self.create_against_jv(jv_test_records[0], {
-			"party": "_Test Customer 3",
-			"reference_type": "Sales Order",
-			"reference_name": so2.name,
-			"credit_in_account_currency": 1000,
-			"is_advance": "Yes"
-		})
-
-		# Purchase order
-		po = create_purchase_order(supplier="_Test Supplier 1")
-
-		#Create SI with partial outstanding
-		si1 = self.create_voucher(si_test_records[0], {
-			"customer": "_Test Customer 3",
-			"debit_to": "_Test Receivable - _TC"
-		})
-
-		self.create_against_jv(jv_test_records[0], {
-			"party": "_Test Customer 3",
-			"reference_type": si1.doctype,
-			"reference_name": si1.name
-		})
-		#Create SI with no outstanding
-		si2 = self.create_voucher(si_test_records[0], {
-			"customer": "_Test Customer 3",
-			"debit_to": "_Test Receivable - _TC"
-		})
-
-		self.create_against_jv(jv_test_records[0], {
-			"party": "_Test Customer 3",
-			"reference_type": si2.doctype,
-			"reference_name": si2.name,
-			"credit_in_account_currency": 561.80
-		})
-
-		pi = self.create_voucher(pi_test_records[0], {
-			"supplier": "_Test Supplier 1",
-			"credit_to": "_Test Payable - _TC"
-		})
-
-		#Create a dict containing properties and expected values
-		expected_outstanding = {
-			"Journal Entry"	: [base_customer_jv.name, 400.00],
-			"Sales Invoice"		: [si1.name, 161.80],
-			"Purchase Invoice"	: [pi.name, 1512.30],
-			"Sales Order"		: [so1.name, 600.00],
-			"Purchase Order"	: [po.name, 5000.00]
-		}
-
-		args = {
-			"company": "_Test Company",
-			"party_type": "Customer",
-			"received_or_paid": "Received",
-			"party": "_Test Customer 3",
-			"party_account": "_Test Receivable - _TC",
-			"payment_mode": "Cheque",
-			"payment_account": "_Test Bank - _TC",
-			"reference_no": "123456",
-			"reference_date": "2013-02-14"
-		}
-
-		self.make_voucher_for_party(args, expected_outstanding)
-
-		args.update({
-			"party_type": "Supplier",
-			"received_or_paid": "Paid",
-			"party": "_Test Supplier 1",
-			"party_account": "_Test Payable - _TC"
-		})
-		expected_outstanding["Journal Entry"] = [base_supplier_jv.name, 400.00]
-		self.make_voucher_for_party(args, expected_outstanding)
-
-	def create_voucher(self, test_record, args):
-		doc = frappe.copy_doc(test_record)
-		doc.update(args)
-		doc.insert()
-		doc.submit()
-		return doc
-
-	def create_against_jv(self, test_record, args):
-		jv = frappe.copy_doc(test_record)
-		jv.get("accounts")[0].update(args)
-		if args.get("debit_in_account_currency"):
-			jv.get("accounts")[1].credit_in_account_currency = args["debit_in_account_currency"]
-		elif args.get("credit_in_account_currency"):
-			jv.get("accounts")[1].debit_in_account_currency = args["credit_in_account_currency"]
-
-		jv.insert()
-		jv.submit()
-		return jv
-
-	def make_voucher_for_party(self, args, expected_outstanding):
-		#Make Journal Entry for Party
-		payment_tool_doc = frappe.new_doc("Payment Tool")
-
-		for k, v in args.items():
-			payment_tool_doc.set(k, v)
-
-		self.check_outstanding_vouchers(payment_tool_doc, args, expected_outstanding)
-
-
-	def check_outstanding_vouchers(self, doc, args, expected_outstanding):
-		from erpnext.accounts.doctype.payment_tool.payment_tool import get_outstanding_vouchers
-		outstanding_entries = get_outstanding_vouchers(json.dumps(args))
-
-		for d in outstanding_entries:
-			self.assertEquals(flt(d.get("outstanding_amount"), 2), 
-				expected_outstanding.get(d.get("voucher_type"))[1])
-
-		self.check_jv_entries(doc, outstanding_entries, expected_outstanding)
-
-	def check_jv_entries(self, paytool, outstanding_entries, expected_outstanding):
-		for e in outstanding_entries:
-			d1 = paytool.append("vouchers")
-			d1.against_voucher_type = e.get("voucher_type")
-			d1.against_voucher_no = e.get("voucher_no")
-			d1.total_amount = e.get("invoice_amount")
-			d1.outstanding_amount = e.get("outstanding_amount")
-			d1.payment_amount = 100.00
-		paytool.total_payment_amount = 300
-
-		new_jv = paytool.make_journal_entry()
-		for jv_entry in new_jv.get("accounts"):
-			if paytool.party_account == jv_entry.get("account") and paytool.party == jv_entry.get("party"):
-				self.assertEquals(100.00, jv_entry.get("debit_in_account_currency" 
-					if paytool.party_type=="Supplier" else "credit_in_account_currency"))
-				self.assertEquals(jv_entry.reference_name,
-					expected_outstanding[jv_entry.reference_type][0])
-
-		self.assertEquals(new_jv.get("cheque_no"), paytool.reference_no)
-		self.assertEquals(new_jv.get("cheque_date"), paytool.reference_date)
-
-	def clear_table_entries(self):
-		frappe.db.sql("""delete from `tabGL Entry` where party in ("_Test Customer 3", "_Test Supplier 1")""")
-		frappe.db.sql("""delete from `tabSales Order` where customer = "_Test Customer 3" """)
-		frappe.db.sql("""delete from `tabSales Invoice` where customer = "_Test Customer 3" """)
-		frappe.db.sql("""delete from `tabPurchase Order` where supplier = "_Test Supplier 1" """)
-		frappe.db.sql("""delete from `tabPurchase Invoice` where supplier = "_Test Supplier 1" """)
diff --git a/erpnext/accounts/doctype/payment_tool_detail/__init__.py b/erpnext/accounts/doctype/payment_tool_detail/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/accounts/doctype/payment_tool_detail/__init__.py
+++ /dev/null
diff --git a/erpnext/accounts/doctype/payment_tool_detail/payment_tool_detail.json b/erpnext/accounts/doctype/payment_tool_detail/payment_tool_detail.json
deleted file mode 100644
index 0eb37b5..0000000
--- a/erpnext/accounts/doctype/payment_tool_detail/payment_tool_detail.json
+++ /dev/null
@@ -1,213 +0,0 @@
-{
- "allow_copy": 0, 
- "allow_import": 0, 
- "allow_rename": 0, 
- "beta": 0, 
- "creation": "2014-08-11 14:27:54.463897", 
- "custom": 0, 
- "docstatus": 0, 
- "doctype": "DocType", 
- "document_type": "", 
- "editable_grid": 1, 
- "fields": [
-  {
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "fieldname": "against_voucher_type", 
-   "fieldtype": "Link", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_list_view": 0, 
-   "label": "Against Voucher Type", 
-   "length": 0, 
-   "no_copy": 0, 
-   "options": "DocType", 
-   "permlevel": 0, 
-   "print_hide": 0, 
-   "print_hide_if_no_value": 0, 
-   "print_width": "", 
-   "read_only": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0, 
-   "width": ""
-  }, 
-  {
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "fieldname": "against_voucher_no", 
-   "fieldtype": "Dynamic Link", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_list_view": 1, 
-   "label": "Against Voucher No", 
-   "length": 0, 
-   "no_copy": 0, 
-   "options": "against_voucher_type", 
-   "permlevel": 0, 
-   "print_hide": 0, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "fieldname": "due_date", 
-   "fieldtype": "Date", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_list_view": 1, 
-   "label": "Due Date", 
-   "length": 0, 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 0, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 1, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "fieldname": "column_break_3", 
-   "fieldtype": "Column Break", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_list_view": 0, 
-   "length": 0, 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 0, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "fieldname": "total_amount", 
-   "fieldtype": "Currency", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_list_view": 1, 
-   "label": "Total Amount", 
-   "length": 0, 
-   "no_copy": 0, 
-   "options": "party_account_currency", 
-   "permlevel": 0, 
-   "print_hide": 0, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 1, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "fieldname": "outstanding_amount", 
-   "fieldtype": "Currency", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_list_view": 1, 
-   "label": "Outstanding Amount", 
-   "length": 0, 
-   "no_copy": 0, 
-   "options": "party_account_currency", 
-   "permlevel": 0, 
-   "print_hide": 0, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 1, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "fieldname": "payment_amount", 
-   "fieldtype": "Currency", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_list_view": 1, 
-   "label": "Payment Amount", 
-   "length": 0, 
-   "no_copy": 0, 
-   "options": "party_account_currency", 
-   "permlevel": 0, 
-   "print_hide": 0, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 0, 
-   "report_hide": 0, 
-   "reqd": 1, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
-  }
- ], 
- "hide_heading": 0, 
- "hide_toolbar": 0, 
- "idx": 0, 
- "image_view": 0, 
- "in_create": 0, 
- "in_dialog": 0, 
- "is_submittable": 0, 
- "issingle": 0, 
- "istable": 1, 
- "max_attachments": 0, 
- "modified": "2016-07-11 03:28:03.793149", 
- "modified_by": "Administrator", 
- "module": "Accounts", 
- "name": "Payment Tool Detail", 
- "name_case": "", 
- "owner": "Administrator", 
- "permissions": [], 
- "quick_entry": 0, 
- "read_only": 0, 
- "read_only_onload": 0, 
- "sort_field": "modified", 
- "sort_order": "DESC", 
- "track_seen": 0
-}
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/payment_tool_detail/payment_tool_detail.py b/erpnext/accounts/doctype/payment_tool_detail/payment_tool_detail.py
deleted file mode 100644
index 21fd1c6..0000000
--- a/erpnext/accounts/doctype/payment_tool_detail/payment_tool_detail.py
+++ /dev/null
@@ -1,9 +0,0 @@
-# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors and contributors
-# For license information, please see license.txt
-
-from __future__ import unicode_literals
-import frappe
-from frappe.model.document import Document
-
-class PaymentToolDetail(Document):
-	pass
diff --git a/erpnext/config/accounts.py b/erpnext/config/accounts.py
index 66b59a5..a0fcb63 100644
--- a/erpnext/config/accounts.py
+++ b/erpnext/config/accounts.py
@@ -131,11 +131,6 @@
 			"items": [
 				{
 					"type": "doctype",
-					"name": "Payment Tool",
-					"description": _("Create Payment Entries against Orders or Invoices.")
-				},
-				{
-					"type": "doctype",
 					"label": _("Update Bank Transaction Dates"),
 					"name": "Bank Reconciliation",
 					"description": _("Update bank payment dates with journals.")
diff --git a/erpnext/patches.txt b/erpnext/patches.txt
index 45fa3f3..9a584cb 100644
--- a/erpnext/patches.txt
+++ b/erpnext/patches.txt
@@ -294,4 +294,5 @@
 erpnext.patches.v7_0.make_is_group_fieldtype_as_check
 execute:frappe.reload_doc('projects', 'doctype', 'timesheet', force=True)
 execute:frappe.delete_doc_if_exists("Report", "Employee Holiday Attendance")
-
+execute:frappe.delete_doc_if_exists("DocType", "Payment Tool")
+execute:frappe.delete_doc_if_exists("DocType", "Payment Tool Detail")