/// <summary>
        /// Generate product type combobox for screen QUS010
        /// </summary>
        /// <param name="helper"></param>
        /// <param name="id"></param>
        /// <param name="strServiceTypeCode"></param>
        /// <param name="attribute"></param>
        /// <param name="firstElement"></param>
        /// <returns></returns>
        public static MvcHtmlString ProductTypeComboboxQUS010(this HtmlHelper helper, string id, string strServiceTypeCode, object attribute = null, string firstElement = null)
        {
            if (strServiceTypeCode == "")
            {
                strServiceTypeCode = null;
            }
            ICommonHandler         hand = ServiceContainer.GetService <ICommonHandler>() as ICommonHandler;
            List <tbs_ProductType> lst  = hand.GetTbs_ProductType(strServiceTypeCode, null);

            return(CommonUtil.CommonComboBoxWithCustomFirstElement <tbs_ProductType>(id, lst, "ProductTypeCodeName", "ProductTypeCode", firstElement, attribute));
        }
        /// <summary>
        /// To generate contract code
        /// </summary>
        /// <param name="strProductTypeCode"></param>
        /// <returns></returns>
        public string GenerateContractCode(string strProductTypeCode)
        {
            try
            {
                //1.	Get product type data
                ICommonHandler         hand            = ServiceContainer.GetService <ICommonHandler>() as ICommonHandler;
                List <tbs_ProductType> productTypeList = hand.GetTbs_ProductType(null, strProductTypeCode);

                //1.2.	Check existing of returned data
                if (productTypeList.Count <= 0 || productTypeList[0].ContractPrefix == null || productTypeList[0].ContractPrefix == string.Empty)
                {
                    throw ApplicationErrorException.ThrowErrorException(MessageUtil.MODULE_CONTRACT, MessageUtil.MessageList.MSG3022);
                }

                //2.	Call method for get next running code
                List <doRunningNo> runningNoList = hand.GetNextRunningCode(NameCode.C_NAME_CODE_CONTRACT_CODE);

                if (runningNoList.Count <= 0 || runningNoList[0].RunningNo == null || runningNoList[0].RunningNo == string.Empty)
                {
                    throw ApplicationErrorException.ThrowErrorException(MessageUtil.MODULE_CONTRACT, MessageUtil.MessageList.MSG3130);
                }

                //3.	Call method for get the check digit
                //3.1.	Call		CommonHandler.GenerateCheckDigit
                string iCheckDigit = hand.GenerateCheckDigit(runningNoList[0].RunningNo);

                //4.	Create contract code
                //4.1.	Set strContractCode = dtTbs_ProductType[0].ContractPrefix + strRunningCode + iCheckDigit
                string strContractCode = productTypeList[0].ContractPrefix + runningNoList[0].RunningNo + iCheckDigit;

                //5.	Return strContractCode
                return(strContractCode);
            }
            catch (Exception)
            {
                throw;
            }
        }