70 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
 | |
| # License: GNU General Public License v3. See license.txt
 | |
| 
 | |
| 
 | |
| import frappe
 | |
| from frappe.custom.doctype.custom_field.custom_field import create_custom_fields
 | |
| 
 | |
| 
 | |
| def execute():
 | |
| 	create_stock_entry_types()
 | |
| 
 | |
| 	company = frappe.db.get_value("Company", {"country": "India"}, "name")
 | |
| 	if company:
 | |
| 		add_gst_hsn_code_field()
 | |
| 
 | |
| 
 | |
| def create_stock_entry_types():
 | |
| 	frappe.reload_doc("stock", "doctype", "stock_entry_type")
 | |
| 	frappe.reload_doc("stock", "doctype", "stock_entry")
 | |
| 
 | |
| 	for purpose in [
 | |
| 		"Material Issue",
 | |
| 		"Material Receipt",
 | |
| 		"Material Transfer",
 | |
| 		"Material Transfer for Manufacture",
 | |
| 		"Material Consumption for Manufacture",
 | |
| 		"Manufacture",
 | |
| 		"Repack",
 | |
| 		"Send to Subcontractor",
 | |
| 	]:
 | |
| 
 | |
| 		ste_type = frappe.get_doc({"doctype": "Stock Entry Type", "name": purpose, "purpose": purpose})
 | |
| 
 | |
| 		try:
 | |
| 			ste_type.insert()
 | |
| 		except frappe.DuplicateEntryError:
 | |
| 			pass
 | |
| 
 | |
| 	frappe.db.sql(
 | |
| 		" UPDATE `tabStock Entry` set purpose = 'Send to Subcontractor' where purpose = 'Subcontract'"
 | |
| 	)
 | |
| 	frappe.db.sql(" UPDATE `tabStock Entry` set stock_entry_type = purpose ")
 | |
| 
 | |
| 
 | |
| def add_gst_hsn_code_field():
 | |
| 	custom_fields = {
 | |
| 		"Stock Entry Detail": [
 | |
| 			dict(
 | |
| 				fieldname="gst_hsn_code",
 | |
| 				label="HSN/SAC",
 | |
| 				fieldtype="Data",
 | |
| 				fetch_from="item_code.gst_hsn_code",
 | |
| 				insert_after="description",
 | |
| 				allow_on_submit=1,
 | |
| 				print_hide=0,
 | |
| 			)
 | |
| 		]
 | |
| 	}
 | |
| 
 | |
| 	create_custom_fields(custom_fields, ignore_validate=frappe.flags.in_patch, update=True)
 | |
| 
 | |
| 	frappe.db.sql(
 | |
| 		""" update `tabStock Entry Detail`, `tabItem`
 | |
| 		SET
 | |
| 			`tabStock Entry Detail`.gst_hsn_code = `tabItem`.gst_hsn_code
 | |
| 		Where
 | |
| 			`tabItem`.name = `tabStock Entry Detail`.item_code and `tabItem`.gst_hsn_code is not null
 | |
| 	"""
 | |
| 	)
 |