string Common.Number_Function_New(String module_name)
{
	//---------Sales Order - Contract prefix should be "CO" - Direct & Tooling is "SO" - user requirement dt 25/04/2023
	if(module_name == "Sales Order Direct")
	{
		fetch_sale_rec = Sales_Order[Sale_Order_No != null && Sale_Order_No != "" && Sales_Type != "Contract"] sort by Sale_Order_No desc;
		//fetch_sale_rec = Sales_Order[Sale_Order_No != null && Sale_Order_No != ""] sort by Sale_Order_No desc;
		fet_mod = Module_Master[Module_Name == module_name];
		fetch_module = Auto_Generate_Numbers[Module_Name.Module_Name == fet_mod.Module_Name];
		mod_short = fetch_module.Module_Short_Name;
		if(fetch_module.Choose_Prefix == "New Prefix")
		{
			num_prefix = fetch_module.Prefix;
		}
		else if(fetch_module.Choose_Prefix == "Company Short Name")
		{
			num_prefix = fetch_module.Company_Short_Name;
		}
		if(fetch_sale_rec.count() == 0)
		{
			so_value = fetch_module.Number_Should_Start_at;
		}
		else
		{
			last_so = getsuffix(getSuffix(fetch_sale_rec.Sale_Order_No,"-"),"-");
			so_value = (last_so.toLong() + 1).trim().leftpad(6).replaceAll(" ","0");
		}
		Order_no = mod_short + "-" + num_prefix + "-" + so_value;
	}
	//Sales Order Contract 27/04/2023
	else if(module_name == "Sales Order Contract")
	{
		fetch_sale_co = Sales_Order[Sale_Order_No != null && Sale_Order_No != "" && Sales_Type == "Contract"] sort by Added_Time desc;
		fet_mod = Module_Master[Module_Name == module_name];
		fetch_module = Auto_Generate_Numbers[Module_Name.Module_Name == fet_mod.Module_Name];
		mod_short = fetch_module.Module_Short_Name;
		if(fetch_module.Choose_Prefix == "New Prefix")
		{
			num_prefix = fetch_module.Prefix;
		}
		else if(fetch_module.Choose_Prefix == "Company Short Name")
		{
			num_prefix = fetch_module.Company_Short_Name;
		}
		if(fetch_sale_co.count() == 0)
		{
			co_value = fetch_module.Number_Should_Start_at;
		}
		else
		{
			last_co = getsuffix(getSuffix(fetch_sale_co.Sale_Order_No,"-"),"-");
			co_value = (last_co.toLong() + 1).trim().leftpad(6).replaceAll(" ","0");
		}
		Order_no = mod_short + "-" + num_prefix + "-" + co_value;
	}
	// for Dispatch Note Format
	else if(module_name == "Purchase Order")
	{
		get_prev_num = Purchase_Order[ID != null && Purchase_Order_No != ""] sort by Purchase_Order_No desc;
		fet_mod = Module_Master[Module_Name == module_name];
		fetch_module = Auto_Generate_Numbers[Module_Name.Module_Name == fet_mod.Module_Name];
		mod_short = fetch_module.Module_Short_Name;
		if(fetch_module.Choose_Prefix == "New Prefix")
		{
			num_prefix = fetch_module.Prefix;
		}
		else if(fetch_module.Choose_Prefix == "Company Short Name")
		{
			num_prefix = fetch_module.Company_Short_Name;
		}
		if(get_prev_num.count() == 0)
		{
			po_value = fetch_module.Number_Should_Start_at;
		}
		else
		{
			last_po = getsuffix(getSuffix(get_prev_num.Purchase_Order_No,"-"),"-");
			po_value = (last_po.toLong() + 1).trim().leftpad(6).replaceAll(" ","0");
		}
		Order_no = mod_short + "-" + num_prefix + "-" + po_value;
	}
	// for work order
	else if(module_name == "Work Order")
	{
		fetch_work_rec = Work_Order[ID != null && Work_Order_No != ""] sort by Work_Order_No desc;
		fet_mod = Module_Master[Module_Name == module_name];
		fetch_module = Auto_Generate_Numbers[Module_Name.Module_Name == fet_mod.Module_Name];
		mod_short = fetch_module.Module_Short_Name;
		if(fetch_module.Choose_Prefix == "New Prefix")
		{
			num_prefix = fetch_module.Prefix;
		}
		else if(fetch_module.Choose_Prefix == "Company Short Name")
		{
			num_prefix = fetch_module.Company_Short_Name;
		}
		if(fetch_work_rec.count() == 0)
		{
			wo_value = fetch_module.Number_Should_Start_at;
		}
		else
		{
			last_wo = getsuffix(getSuffix(fetch_work_rec.Work_Order_No,"-"),"-");
			wo_value = (last_wo.toLong() + 1).trim().leftpad(6).replaceAll(" ","0");
		}
		Order_no = mod_short + "-" + num_prefix + "-" + wo_value;
	}
	// for calibration Gauge No
	else if(module_name == "Gauge No")
	{
		fetch_gaug = Calibration_Master[ID != null && Gauge_No != ""] sort by Gauge_No desc;
		fet_mod = Module_Master[Module_Name == module_name];
		fetch_module = Auto_Generate_Numbers[Module_Name.Module_Name == fet_mod.Module_Name];
		mod_short = fetch_module.Module_Short_Name;
		if(fetch_module.Choose_Prefix == "New Prefix")
		{
			num_prefix = fetch_module.Prefix;
		}
		else if(fetch_module.Choose_Prefix == "Company Short Name")
		{
			num_prefix = fetch_module.Company_Short_Name;
		}
		if(fetch_gaug.count() == 0)
		{
			gaug_value = fetch_module.Number_Should_Start_at;
		}
		else
		{
			last_gaug = getsuffix(getSuffix(fetch_gaug.Gauge_No,"/"),"/");
			gaug_value = (last_gaug.toLong() + 1).trim().leftpad(6).replaceAll(" ","0");
		}
		Order_no = mod_short + "/" + num_prefix + "/" + gaug_value;
	}
	else if(module_name == "Cal Master No")
	{
		fetch_mast = Calibration_Master[ID != null && Cal_Master_No != ""] sort by Cal_Master_No desc;
		fet_mod = Module_Master[Module_Name == module_name];
		fetch_module = Auto_Generate_Numbers[Module_Name.Module_Name == fet_mod.Module_Name];
		mod_short = fetch_module.Module_Short_Name;
		if(fetch_module.Choose_Prefix == "New Prefix")
		{
			num_prefix = fetch_module.Prefix;
		}
		else if(fetch_module.Choose_Prefix == "Company Short Name")
		{
			num_prefix = fetch_module.Company_Short_Name;
		}
		if(fetch_mast.count() == 0)
		{
			mast_value = fetch_module.Number_Should_Start_at;
		}
		else
		{
			last_mast = getsuffix(getSuffix(fetch_mast.Cal_Master_No,"/"),"/");
			mast_value = (last_mast.toLong() + 1).trim().leftpad(6).replaceAll(" ","0");
		}
		Order_no = mod_short + "/" + num_prefix + "/" + mast_value;
	}
  return Order_no;
}