diff --git a/erpnext/regional/india/address_template.html b/erpnext/regional/india/address_template.html
index 46879ad..1bcc5ad 100644
--- a/erpnext/regional/india/address_template.html
+++ b/erpnext/regional/india/address_template.html
@@ -1,6 +1,7 @@
 {{ address_line1 }}<br>{% if address_line2 %}{{ address_line2 }}<br>{% endif -%}{{ city }}<br>
-{% if state %}{{ state }}<br>{% endif -%}
-{% if pincode %}{{ pincode }}<br>{% endif -%}
+{% if gst_state %}{{ gst_state }}{% endif -%},
+{% if gst_state_number %}State Code: {{ gst_state_number }}<br>{% endif -%}
+{% if pincode %}PIN: {{ pincode }}<br>{% endif -%}
 {{ country }}<br>
 {% if phone %}Phone: {{ phone }}<br>{% endif -%}
 {% if fax %}Fax: {{ fax }}<br>{% endif -%}
diff --git a/erpnext/regional/india/setup.py b/erpnext/regional/india/setup.py
index 46cfdb8..f547b82 100644
--- a/erpnext/regional/india/setup.py
+++ b/erpnext/regional/india/setup.py
@@ -74,12 +74,17 @@
 	frappe.reload_doc("regional", "print_format", "gst_tax_invoice")
 
 def make_custom_fields():
+	hsn_sac_field = dict(fieldname='gst_hsn_code', label='HSN/SAC',
+		fieldtype='Data', options='item_code.gst_hsn_code', insert_after='description')
+	
 	custom_fields = {
 		'Address': [
 			dict(fieldname='gstin', label='Party GSTIN', fieldtype='Data',
 				insert_after='fax'),
 			dict(fieldname='gst_state', label='GST State', fieldtype='Select',
-				options='\n'.join(states), insert_after='gstin')
+				options='\n'.join(states), insert_after='gstin'),
+			dict(fieldname='gst_state_number', label='GST State Number',
+				fieldtype='Int', insert_after='gst_state'),
 		],
 		'Purchase Invoice': [
 			dict(fieldname='supplier_gstin', label='Supplier GSTIN',
@@ -96,21 +101,20 @@
 			dict(fieldname='company_gstin', label='Company GSTIN',
 				fieldtype='Data', insert_after='company_address',
 				options='company_address.gstin', print_hide=1),
+			dict(fieldname='invoice_copy', label='Invoice Copy',
+				fieldtype='Select', insert_after='project', print_hide=1,
+				options='ORIGINAL FOR RECIPIENT\nDUPLICATE FOR TRANSPORTER\nTRIPLICATE FOR SUPPLIER')
 		],
 		'Item': [
-			dict(fieldname='gst_hsn_code', label='HSN/SAC Code',
+			dict(fieldname='gst_hsn_code', label='HSN/SAC',
 				fieldtype='Link', options='GST HSN Code', insert_after='item_group'),
 		],
-		'Sales Invoice Item': [
-			dict(fieldname='gst_hsn_code', label='HSN/SAC Code',
-				fieldtype='Data', options='item_code.gst_hsn_code',
-				insert_after='description'),
-		],
-		'Purchase Invoice Item': [
-			dict(fieldname='gst_hsn_code', label='HSN/SAC Code',
-				fieldtype='Data', options='item_code.gst_hsn_code',
-				insert_after='description'),
-		]
+		'Sales Order Item': [hsn_sac_field],
+		'Delivery Note Item': [hsn_sac_field],
+		'Sales Invoice Item': [hsn_sac_field],
+		'Purchase Order Item': [hsn_sac_field],
+		'Purchase Receipt Item': [hsn_sac_field],
+		'Purchase Invoice Item': [hsn_sac_field]
 	}
 
 	for doctype, fields in custom_fields.items():
diff --git a/erpnext/regional/india/utils.py b/erpnext/regional/india/utils.py
index c4acafc..62de7a9 100644
--- a/erpnext/regional/india/utils.py
+++ b/erpnext/regional/india/utils.py
@@ -7,6 +7,7 @@
 		return
 
 	if doc.gstin:
+		doc.gstin = doc.gstin.upper()
 		if doc.gstin != "NA":
 			p = re.compile("[0-9]{2}[a-zA-Z]{5}[0-9]{4}[a-zA-Z]{1}[1-9A-Za-z]{1}[Z]{1}[0-9a-zA-Z]{1}")
 			if not p.match(doc.gstin):
@@ -17,6 +18,7 @@
 				doc.gst_state = doc.state
 
 		if doc.gst_state:
-			state_number = state_numbers[doc.gst_state]
-			if state_number != doc.gstin[:2]:
-				frappe.throw(_("First 2 digits of GSTIN should match with State number {0}").format(state_number))
+			doc.gst_state_number = state_numbers[doc.gst_state]
+			if doc.gst_state_number != doc.gstin[:2]:
+				frappe.throw(_("First 2 digits of GSTIN should match with State number {0}")
+					.format(doc.gst_state_number))
\ No newline at end of file
