Merge branch 'master' of github.com:webnotes/erpnext
diff --git a/accounts/doctype/pos_setting/pos_setting.js b/accounts/doctype/pos_setting/pos_setting.js
index 2f8beab..62549bb 100755
--- a/accounts/doctype/pos_setting/pos_setting.js
+++ b/accounts/doctype/pos_setting/pos_setting.js
@@ -60,17 +60,6 @@
 	}	
 }
 
-//get query select Territory
-//=================================================================
-cur_frm.fields_dict['territory'].get_query = function(doc,cdt,cdn) {
-	return{
-		filters:{
-			'is_group': "No"
-		}
-	}	
-}
-
-
 // ------------------ Get Print Heading ------------------------------------
 cur_frm.fields_dict['select_print_heading'].get_query = function(doc, cdt, cdn) {
 	return{
diff --git a/accounts/doctype/sales_invoice/sales_invoice.js b/accounts/doctype/sales_invoice/sales_invoice.js
index 773956a..1ef7334 100644
--- a/accounts/doctype/sales_invoice/sales_invoice.js
+++ b/accounts/doctype/sales_invoice/sales_invoice.js
@@ -283,14 +283,6 @@
 	}	
 }
 
-//Territory
-//-----------------------------
-cur_frm.fields_dict['territory'].get_query = function(doc,cdt,cdn) {
-	return{
-		filters: {'is_group': 'NO'}
-	}	
-}
-
 // Income Account in Details Table
 // --------------------------------
 cur_frm.set_query("income_account", "entries", function(doc) {
diff --git a/hr/doctype/expense_claim/expense_claim.js b/hr/doctype/expense_claim/expense_claim.js
index 406b57a..ce3cbea 100644
--- a/hr/doctype/expense_claim/expense_claim.js
+++ b/hr/doctype/expense_claim/expense_claim.js
@@ -14,10 +14,46 @@
 // You should have received a copy of the GNU General Public License
 // along with this program.	If not, see <http://www.gnu.org/licenses/>.
 
+wn.provide("erpnext.hr");
+
+erpnext.hr.ExpenseClaimController = wn.ui.form.Controller.extend({
+	make_bank_voucher: function() {
+		var me = this;
+		wn.call({
+			method: "accounts.doctype.journal_voucher.journal_voucher.get_default_bank_cash_account",
+			args: {
+				"company": cur_frm.doc.company,
+				"voucher_type": "Bank Voucher"
+			},
+			callback: function(r) {
+				var jv = wn.model.make_new_doc_and_get_name('Journal Voucher');
+				jv = locals['Journal Voucher'][jv];
+				jv.voucher_type = 'Bank Voucher';
+				jv.company = cur_frm.doc.company;
+				jv.remark = 'Payment against Expense Claim: ' + cur_frm.doc.name;
+				jv.fiscal_year = cur_frm.doc.fiscal_year;
+
+				var d1 = wn.model.add_child(jv, 'Journal Voucher Detail', 'entries');
+				d1.debit = cur_frm.doc.total_sanctioned_amount;
+
+				// credit to bank
+				var d1 = wn.model.add_child(jv, 'Journal Voucher Detail', 'entries');
+				d1.account = r.message[0].account;
+				d1.credit = cur_frm.doc.total_sanctioned_amount;
+				d1.balance = r.message[0].balance;
+
+				loaddoc('Journal Voucher', jv.name);
+			}
+		});
+	}
+})
+
+$.extend(cur_frm.cscript, new erpnext.hr.ExpenseClaimController({frm: cur_frm}));
+
 cur_frm.add_fetch('employee', 'company', 'company');
 cur_frm.add_fetch('employee','employee_name','employee_name');
 
-cur_frm.cscript.onload = function(doc,cdt,cdn){
+cur_frm.cscript.onload = function(doc,cdt,cdn) {
 	if(!doc.approval_status)
 		cur_frm.set_value("approval_status", "Draft")
 			
@@ -71,15 +107,15 @@
 		} else {
 			if(doc.approval_status=="Approved") {
 				cur_frm.set_intro("Expense Claim has been approved.");
+				if(doc.docstatus==0) cur_frm.savesubmit();
+				if(doc.docstatus==1) cur_frm.add_custom_button("Make Bank Voucher", 
+					cur_frm.cscript.make_bank_voucher);
 			} else if(doc.approval_status=="Rejected") {
 				cur_frm.set_intro("Expense Claim has been rejected.");
 			}
 		}
 	}
-	
-	if(doc.approval_status=="Approved" && doc.docstatus==0) {
-		cur_frm.savesubmit()
-	}}
+}
 
 cur_frm.cscript.validate = function(doc) {
 	cur_frm.cscript.calculate_total(doc);
diff --git a/selling/doctype/installation_note/installation_note.js b/selling/doctype/installation_note/installation_note.js
index 3f02c83..dce0a31 100644
--- a/selling/doctype/installation_note/installation_note.js
+++ b/selling/doctype/installation_note/installation_note.js
@@ -48,12 +48,6 @@
 			}
 		});
 		
-		this.frm.set_query("territory", function() {
-			return {
-				filters: {'is_group': "No" }
-			}
-		});
-		
 		this.frm.set_query("customer", function() {
 			return {
 				query: "controllers.queries.customer_query"
diff --git a/selling/doctype/sales_order/sales_order.js b/selling/doctype/sales_order/sales_order.js
index 7eeb22d..88442ea 100644
--- a/selling/doctype/sales_order/sales_order.js
+++ b/selling/doctype/sales_order/sales_order.js
@@ -197,12 +197,6 @@
 	}
 }
 
-cur_frm.fields_dict['territory'].get_query = function(doc,cdt,cdn) {
-	return{
-		filters:{ 'is_group': "No"}
-	}
-}
-
 cur_frm.cscript.on_submit = function(doc, cdt, cdn) {
 	if(cint(wn.boot.notification_settings.sales_order)) {
 		cur_frm.email_doc(wn.boot.notification_settings.sales_order_message);
diff --git a/stock/doctype/delivery_note/delivery_note.js b/stock/doctype/delivery_note/delivery_note.js
index e93e6d3..3dac29d 100644
--- a/stock/doctype/delivery_note/delivery_note.js
+++ b/stock/doctype/delivery_note/delivery_note.js
@@ -130,14 +130,6 @@
 	loaddoc('Packing Slip', n);
 }
 
-
-//get query select Territory
-cur_frm.fields_dict['territory'].get_query = function(doc,cdt,cdn) {
-	return{
-		filters: { 'is_group': "No" }
-	}
-}
-
 var set_print_hide= function(doc, cdt, cdn){
 	var dn_fields = wn.meta.docfield_map['Delivery Note'];
 	var dn_item_fields = wn.meta.docfield_map['Delivery Note Item'];
diff --git a/support/doctype/customer_issue/customer_issue.js b/support/doctype/customer_issue/customer_issue.js
index 2268493..96662b9 100644
--- a/support/doctype/customer_issue/customer_issue.js
+++ b/support/doctype/customer_issue/customer_issue.js
@@ -117,11 +117,6 @@
 cur_frm.add_fetch('item_code', 'item_name', 'item_name');
 cur_frm.add_fetch('item_code', 'description', 'description');
 
-cur_frm.fields_dict['territory'].get_query = function(doc,cdt,cdn) {
-	return{
-		filters:{ 'is_group': "No"}
-	}
-}
 
 cur_frm.fields_dict.customer.get_query = function(doc,cdt,cdn) {
 	return{	query:"controllers.queries.customer_query" } }
diff --git a/support/doctype/maintenance_schedule/maintenance_schedule.js b/support/doctype/maintenance_schedule/maintenance_schedule.js
index fab9b2a..d847269 100644
--- a/support/doctype/maintenance_schedule/maintenance_schedule.js
+++ b/support/doctype/maintenance_schedule/maintenance_schedule.js
@@ -123,11 +123,5 @@
   }  
 }
 
-cur_frm.fields_dict['territory'].get_query = function(doc,cdt,cdn) {
-  return{
-    filters:{ 'is_group': "No"}
-  }  
-}
-
 cur_frm.fields_dict.customer.get_query = function(doc,cdt,cdn) {
   return{ query:"controllers.queries.customer_query" } }
diff --git a/support/doctype/maintenance_visit/maintenance_visit.js b/support/doctype/maintenance_visit/maintenance_visit.js
index 0b0d010..f3faf3f 100644
--- a/support/doctype/maintenance_visit/maintenance_visit.js
+++ b/support/doctype/maintenance_visit/maintenance_visit.js
@@ -118,14 +118,6 @@
 	}
 }
 
-//get query select Territory
-cur_frm.fields_dict['territory'].get_query = function(doc,cdt,cdn) {
-  	return{
-    	filters:{
-      		'is_group': "No"
-    	}
-  	}
-}
 
 cur_frm.fields_dict.customer.get_query = function(doc,cdt,cdn) {
 	return {query: "controllers.queries.customer_query" }