/// <summary>
        /// Register new project data
        /// </summary>
        /// <param name="Cond"></param>
        /// <returns></returns>
        public string RegisterData(doRegisterProjectData Cond)
        {
            using (TransactionScope scope = new TransactionScope())
            {
                try
                {
                    ICommonHandler  chandler    = ServiceContainer.GetService <ICommonHandler>() as ICommonHandler;
                    IProjectHandler hand        = ServiceContainer.GetService <IProjectHandler>() as IProjectHandler;
                    string          ProjectCode = hand.GenerateProjectCode();

                    #region  prepare_do
                    Cond.doTbt_Project.ProjectCode   = ProjectCode;
                    Cond.doTbt_Project.ProjectStatus = ProjectStatus.C_PROJECT_STATUS_PROCESSING;
                    if (Cond.doTbt_ProjectExpectedInstrumentDetail != null)
                    {
                        foreach (tbt_ProjectExpectedInstrumentDetails i in Cond.doTbt_ProjectExpectedInstrumentDetail)
                        {
                            i.ProjectCode = ProjectCode;
                        }
                    }
                    if (Cond.doTbt_ProjectOtherRalatedCompany != null)
                    {
                        foreach (tbt_ProjectOtherRalatedCompany i in Cond.doTbt_ProjectOtherRalatedCompany)
                        {
                            i.ProjectCode = ProjectCode;
                        }
                    }

                    //============================================================================================================================
                    if (Cond.doTbt_ProjectPurchaserCustomer != null)
                    {
                        if (!CommonUtil.IsNullOrEmpty(Cond.doTbt_ProjectPurchaserCustomer.CustCode))
                        {
                            string CustCode = Cond.doTbt_ProjectPurchaserCustomer.CustCode;
                            Cond.doTbt_ProjectPurchaserCustomer          = null;
                            Cond.doTbt_ProjectPurchaserCustomer          = new tbt_ProjectPurchaserCustomer();
                            Cond.doTbt_ProjectPurchaserCustomer.CustCode = CustCode;
                        }
                        Cond.doTbt_ProjectPurchaserCustomer.ProjectCode = ProjectCode;
                    }

                    if (Cond.doTbt_ProjectSupportStaffDetails != null)
                    {
                        foreach (tbt_ProjectSupportStaffDetails i in Cond.doTbt_ProjectSupportStaffDetails)
                        {
                            i.ProjectCode = ProjectCode;
                        }
                    }
                    if (Cond.doTbt_ProjectSystemDetails != null)
                    {
                        foreach (tbt_ProjectSystemDetails i in Cond.doTbt_ProjectSystemDetails)
                        {
                            i.ProjectCode = ProjectCode;
                        }
                    }
                    #endregion

                    if (Cond.doTbt_Project.OverallBudgetAmountCurrencyType == SECOM_AJIS.Common.Util.ConstantValue.CurrencyUtil.C_CURRENCY_US)
                    {
                        Cond.doTbt_Project.OverallBudgetAmountUsd = Cond.doTbt_Project.OverallBudgetAmount;
                        Cond.doTbt_Project.OverallBudgetAmount    = null;
                    }
                    else
                    {
                        Cond.doTbt_Project.OverallBudgetAmountUsd = null;
                    }

                    if (Cond.doTbt_Project.ReceivedBudgetAmountCurrencyType == SECOM_AJIS.Common.Util.ConstantValue.CurrencyUtil.C_CURRENCY_US)
                    {
                        Cond.doTbt_Project.ReceivedBudgetAmountUsd = Cond.doTbt_Project.ReceivedBudgetAmount;
                        Cond.doTbt_Project.ReceivedBudgetAmount    = null;
                    }
                    else
                    {
                        Cond.doTbt_Project.ReceivedBudgetAmountUsd = null;
                    }

                    hand.CreateProjectData(Cond);

                    ICommonHandler comHand = ServiceContainer.GetService <ICommonHandler>() as ICommonHandler;
                    //comHand.UpdateFlagAttachFile(AttachmentModule.Project, Session.SessionID, ProjectCode);
                    //================= Update Attach ======================
                    string temp = Path.Combine(comHand.GetTemporaryAttachFilePath(), GetCurrentKey());
                    if (Directory.Exists(temp))
                    {
                        chandler.UpdateFlagAttachFile(AttachmentModule.Project, GetCurrentKey(), ProjectCode);
                    }
                    //======================================================
                    scope.Complete();
                    return(ProjectCode);
                }
                catch (Exception)
                {
                    throw;
                }
            }
        }
        //public bool CTS230_CheckBeforeAddAttachFile(CTS230_AttachFile Cond)
        //{

        //    ObjectResultData res = new ObjectResultData();
        //    res.MessageType = MessageModel.MESSAGE_TYPE.WARNING;

        //    if (ModelState.IsValid == false)
        //    {
        //        ValidatorUtil.BuildErrorMessage(res, this, null);
        //        //  if (res.IsError)
        //        //return Json(res);
        //    }



        //    return true;
        //}
        #endregion

        /// <summary>
        /// Register new project data
        /// </summary>
        /// <param name="Cond"></param>
        /// <returns></returns>
        public ActionResult CTS230_RegisterNewProject(doRegisterProjectData Cond)
        {
            ObjectResultData res = new ObjectResultData();

            res.MessageType = MessageModel.MESSAGE_TYPE.WARNING;
            ICommonHandler comhand = ServiceContainer.GetService <ICommonHandler>() as ICommonHandler;

            if (comhand.IsSystemSuspending())
            {
                res.MessageType = MessageModel.MESSAGE_TYPE.INFORMATION;
                res.AddErrorMessage(MessageUtil.MODULE_COMMON, MessageUtil.MessageList.MSG0049);
                return(Json(res));
            }

            if (!CheckUserPermission(ScreenID.C_SCREEN_ID_PROJ_NEW, FunctionID.C_FUNC_ID_OPERATE))
            {
                res.AddErrorMessage(MessageUtil.MODULE_COMMON, MessageUtil.MessageList.MSG0063);
                return(Json(res));
            }

            CTS230_ProjectPurchaseCustomer Customer = CommonUtil.CloneObject <tbt_ProjectPurchaserCustomer, CTS230_ProjectPurchaseCustomer>(Cond.doTbt_ProjectPurchaserCustomer);
            tbt_Project_CTS230             Project  = CommonUtil.CloneObject <tbt_Project_CTS230, tbt_Project_CTS230>(Cond.doTbt_Project);

            ValidatorUtil.BuildErrorMessage(res, new object[] { Project, Customer }, null, false);
            if (res.IsError)
            {
                res.MessageType = MessageModel.MESSAGE_TYPE.WARNING;
                return(Json(res));
            }
            CTS230_doValidateEmpNo EmpError = CTS230_ValidateEmployee(Cond.doTbt_Project);

            if (EmpError.isError)
            {
                res.AddErrorMessage(MessageUtil.MODULE_COMMON, MessageUtil.MessageList.MSG0095, new string[] { EmpError.EmpNo }, new string[] { EmpError.controls });
                return(Json(res));
            }

            #region Line-up type

            if (Cond.doTbt_ProjectExpectedInstrumentDetail != null)
            {
                foreach (tbt_ProjectExpectedInstrumentDetails inst in Cond.doTbt_ProjectExpectedInstrumentDetail)
                {
                    if (inst.LineUpTypeCode == LineUpType.C_LINE_UP_TYPE_STOP_SALE ||
                        inst.LineUpTypeCode == LineUpType.C_LINE_UP_TYPE_ONE_TIME ||
                        inst.LineUpTypeCode == LineUpType.C_LINE_UP_TYPE_TEMPORARY)
                    {
                        res.AddErrorMessage(MessageUtil.MODULE_CONTRACT, MessageUtil.MessageList.MSG3296);
                        res.MessageType = MessageModel.MESSAGE_TYPE.WARNING_DIALOG_LIST;
                        break;
                    }
                }
            }

            #endregion

            CTS230_ScreenParameter param = GetScreenObject <CTS230_ScreenParameter>();
            if (param != null)
            {
                if (param.InitialData != null)
                {
                    Cond.doTbt_ProjectPurchaserCustomer = param.InitialData.doProjectPurchaserData;
                }
            }
            param.InitialData.doRegisterData = new doRegisterProjectData();
            param.InitialData.doRegisterData = Cond;

            UpdateScreenObject(param);
            res.ResultData = true;
            return(Json(res));
        }