diff --git a/erpnext/accounts/doctype/payment_order/regional/india.js b/erpnext/accounts/doctype/payment_order/regional/india.js
index 2b49a06..3601b4f 100644
--- a/erpnext/accounts/doctype/payment_order/regional/india.js
+++ b/erpnext/accounts/doctype/payment_order/regional/india.js
@@ -1,30 +1,30 @@
 frappe.ui.form.on('Payment Order', {
 	refresh: function(frm) {
-        if (frm.doc.docstatus==1 && frm.doc.payment_order_type==='Payment Entry') {
-            frm.add_custom_button(__('Generate Text File'),
+		if (frm.doc.docstatus==1 && frm.doc.payment_order_type==='Payment Entry') {
+			frm.add_custom_button(__('Generate Text File'),
 				function() {
 					frm.trigger("generate_text_and_download_file");
-            });
-        }
-    },
-    generate_text_and_download_file: (frm) => {
-        return frappe.call({
-            method: "erpnext.regional.india.bank_remittance_txt.generate_report",
-            args: {
-                name: frm.doc.name
-            },
-            freeze: true,
-            callback: function(r) {
-                {
-                    frm.refresh();
-                    const a = document.createElement('a');
-                    let file_obj = r.message;
+			});
+		}
+	},
+	generate_text_and_download_file: (frm) => {
+		return frappe.call({
+			method: "erpnext.regional.india.bank_remittance_txt.generate_report",
+			args: {
+				name: frm.doc.name
+			},
+			freeze: true,
+			callback: function(r) {
+				{
+					frm.refresh();
+					const a = document.createElement('a');
+					let file_obj = r.message;
 					a.href = file_obj.file_url;
 					a.target = '_blank';
 					a.download = file_obj.file_name;
 					a.click();
 				}
-            }
-        });
-    }
+			}
+		});
+	}
 });
\ No newline at end of file
