Beispiel #1
0
        /// <summary>
        /// 更新刀具已設定的刀壽次數
        /// </summary>
        /// <param name="toolTypeLife"></param>
        /// <param name="userID"></param>
        /// <param name="recordTime"></param>
        private void UpdateToolLifes(CSTToolTypeLifeInfo toolTypeLife, string userID, string recordTime)
        {
            //依據刀具型態及供應商取得有刀具清單
            var toolList = ToolInfoEx.GetToolByToolTypeAndVendor(toolTypeLife.ToolType, toolTypeLife.Supplier);

            //執行更新每支刀具對應的基本刀壽次數
            toolList.ForEach(tool =>
            {
                //取得刀具基本刀壽資料
                var toolLifeList = CSTToolLifeInfo.GetToolLifeByToolNmae(tool.ToolName);

                //取得此刀具所在的機台清單
                var equipToolList = EquipToolInfo.GetByToolName(tool.ToolName);

                //如果此刀具沒有在任何機台上,則進行修改基本刀壽次數
                if (equipToolList.Count == 0)
                {
                    toolLifeList.ForEach(toolLife =>
                    {
                        //確認基本刀壽次數是否一致,如果不一致,則直接更新資料
                        if (toolLife.Life != toolTypeLife.Life)
                        {
                            //更新基本刀壽次數
                            toolLife.Life = toolTypeLife.Life;
                            toolLife.UpdateToDB(userID, recordTime);

                            //記錄LOG
                            LogCenter.LogToDB(toolLife, LogCenter.LogIndicator.Create(ActionType.Set, userID, recordTime));
                        }
                    });
                }
            });
        }
Beispiel #2
0
 private void QueryAllTool()
 {
     AllTools = ToolInfoEx.GetToolByToolClass("DIE");
     AllTools = AllTools.OrderBy(p => p.ToolName).ToList();
     BindGridView();
 }
Beispiel #3
0
        protected void btnSave_Click(object sender, EventArgs e)
        {
            try
            {
                #region 檢查輸入資料
                ttbToolName.Must(lblToolName);
                ddlType.Must(lblType);

                if (!rbtDisable.Checked && !rbtEnable.Checked)
                {
                    throw new CimesException(TextMessage.Error.T00841(lblStates.Text));
                }


                CurrentToolData.ToolName = ttbToolName.Text.Trim();
                if (CurrentToolData.InfoState == InfoState.NewCreate)
                {
                    if (ToolInfo.GetToolByName(CurrentToolData.ToolName) != null)
                    {
                        throw new CimesException(TextMessage.Error.T00710(CurrentToolData.ToolName));
                    }
                }

                ToolAttributeSetup.ValidateCheck();
                #endregion

                //儲存系統屬性
                _SystemAttribute.SaveSystemAttribute(CurrentToolData);

                //預設ActiveFlag = "F"
                if (CurrentToolData.InfoState == InfoState.NewCreate)
                {
                    CurrentToolData.ActiveFlag = "F";
                    CurrentToolData.Location   = "Warehouse";
                    CurrentToolData.ToolClass  = "DIE";
                }

                CurrentToolData.UsingStatus = (rbtEnable.Checked ? UsingStatus.Enable : UsingStatus.Disable);
                CurrentToolData.ToolTypeSID = ddlType.SelectedItem.Value;
                CurrentToolData.ToolType    = ddlType.SelectedItem.Text;
                if (rbtEnable.Checked)
                {
                    //若啟用,則ActiveFlag=T
                    CurrentToolData.ActiveFlag = "T";
                }
                if (ddlState.SelectedItem != null && !ddlState.SelectedItem.Value.IsNullOrTrimEmpty())
                {
                    CurrentToolData.CurrentState = ddlState.SelectedItem.Text;
                    CurrentToolData.ToolStateSID = ddlState.SelectedItem.Value;
                }
                CurrentToolData.Description = ttbDescr.Text.Trim();

                #region 將使用次數寫至ToolMaster
                DropDownList ddlCountType = (DropDownList)FindControl("PMCounterSetup1$ddlCountType");
                if (ddlCountType != null)
                {
                    CurrentToolData.CountType = ddlCountType.Text;
                }

                TextBox ttbCountRatio = (TextBox)FindControl("PMCounterSetup1$ttbCountRatio");
                if (ttbCountRatio != null)
                {
                    CheckTextBox(ttbCountRatio, GetUIResource("CountRatio"), CheckDataType.GreaterEqualZeroDecimal);
                    CurrentToolData.CountRatio = ttbCountRatio.Text.ToDecimal();
                }

                TextBox ttbTotalCount = (TextBox)FindControl("PMCounterSetup1$ttbTotalCount");
                if (ttbTotalCount != null)
                {
                    CheckTextBox(ttbTotalCount, GetUIResource("TotalCount"), CheckDataType.GreaterEqualZeroDecimal);
                    CurrentToolData.TotalCount = ttbTotalCount.Text.ToDecimal();
                }

                TextBox ttbScrapCount = (TextBox)FindControl("PMCounterSetup1$ttbScrapCount");
                if (ttbScrapCount != null)
                {
                    CheckTextBox(ttbScrapCount, GetUIResource("ScrapCount"), CheckDataType.GreaterEqualZeroDecimal);
                    CurrentToolData.ScrapCount = ttbScrapCount.Text.ToDecimal();
                }
                #endregion

                ToolInfo         toolData       = (ToolInfo)CurrentToolData.DeepCopy();
                bool             bCheckPMSSetup = true;
                TransactionStamp txnStamp       = new TransactionStamp(User.Identity.Name, ProgramRight, ProgramRight, this.ApplicationName);
                using (CimesTransactionScope cts = CimesTransactionScope.Create())
                {
                    //UserDefineColumnSet1.ModifyInfoRecordWithoutUpdate(toolData);
                    if (toolData.InfoState == InfoState.NewCreate)
                    {
                        toolData.InsertImmediately(this.User.Identity.Name, DBCenter.GetSystemTime());
                        LogCenter.LogToDB(toolData, LogCenter.LogIndicator.Default);

                        if (PMSSetupInfo.GetSetupData("TOOL", "Type", toolData.ToolType).Count == 0)
                        {
                            bCheckPMSSetup = false;
                        }
                    }
                    else
                    {
                        if (toolData.UpdateImmediately(this.User.Identity.Name, DBCenter.GetSystemTime()) != 1)
                        {
                            throw new CimesException(TextMessage.Error.T00747(""));
                        }
                        LogCenter.LogToDB(toolData, LogCenter.LogIndicator.Create(ActionType.Set));

                        if (PMSSetupInfo.GetSetupData("TOOL", "Type", toolData.ToolType).Count == 0 && PMSSetupInfo.GetSetupData("TOOL", "ID", toolData.ToolName).Count == 0)
                        {
                            bCheckPMSSetup = false;
                        }
                    }

                    ToolAttributeSetup.ExcuteTransaction(toolData.ID);

                    if (bCheckPMSSetup == true)
                    {
                        PMCounterSetupInterface.SyncSettingToDB(toolData.ID, "ToolID", txnStamp);
                    }
                    cts.Complete();
                }

                CurrentToolData = (ToolInfoEx)toolData.DeepCopy();
                BindDataByCurrentToolData();
                gvToolList.ResetCloneDataSource();
                //QueryAllTool();
                //001
                AllTools = ToolInfoEx.GetToolByToolClass("DIE");

                int index = AllTools.FindIndex(p => p.ID == CurrentToolData.ID);

                //int pageIndex = index / gvToolList.PageSize;
                int selectedIndex = index % gvToolList.PageSize;

                //換頁要放在bind資料前
                //指定選擇行放在bind資料後
                gvToolList.PageIndex = gvToolList.CurrentPageIndex;
                gvToolList.SetDataSource(AllTools, true);
                gvToolList.SelectedIndex = selectedIndex;

                DisableTab();

                _ProgramInformationBlock.ShowMessage(TextMessage.Hint.T00083(""));
            }
            catch (Exception ex)
            {
                HandleError(ex);
            }
        }
Beispiel #4
0
        /// <summary>
        /// 輸入刀具零組件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void ttbToolName_TextChanged(object sender, EventArgs e)
        {
            try
            {
                _ToolData = ToolInfo.GetToolByName(ttbToolName.Text);

                # region 確認刀具零組件是否存在
                if (_ToolData == null)
                {
                    // [00030]{0}:{1}不存在!
                    throw new Exception(TextMessage.Error.T00030(lblToolName.Text, ttbToolName.Text));
                }
                #endregion

                #region 搜尋相同 GroupID 的刀具
                if (_ToolData["GROUPID"].ToString() == null || _ToolData["GROUPID"].ToString() == "")
                {
                    // [C10131]刀具零組件:{0}沒有刀具群組編號資訊!
                    //throw new Exception(RuleMessage.Error.C10131(ttbToolName.Text));

                    _ToolGroupData = new List <ToolInfoEx>();
                    _ToolGroupData.Add(_ToolData.ChangeTo <ToolInfoEx>());
                }
                else
                {
                    _ToolGroupData = ToolInfoEx.GetToolListByGroupID(_ToolData["GROUPID"].ToString());
                }

                foreach (var tool in _ToolGroupData)
                {
                    //尚未確認刀具在產線的判斷

                    #region 確認刀具零組件是否啟用
                    if (tool.UsingStatus == UsingStatus.Disable)
                    {
                        //刀具零組件:{0}已停用,如需使用,請至"刀具零組件進料作業"啟用!!
                        throw new Exception(RuleMessage.Error.C10128(tool.ToolName));
                    }
                    #endregion

                    #region 確認刀具零組件的LOCATION是否為Hub
                    if (tool.Location != "Hub")
                    {
                        //{0}: {1} 狀態不為: {2},不可使用!
                        throw new Exception(RuleMessage.Error.C00006(lblToolName.Text, tool.ToolName, "Hub"));
                    }
                    #endregion


                    #region 驗證模治具是否在別的機台上,如是要報錯
                    var equipToolDataList = EquipToolInfo.GetByToolName(tool.ToolName);

                    if (equipToolDataList.Count > 0)
                    {
                        //[C10138]刀具零組件:{0}已在機台:{1}上,不可執行刀具零組件歸還!
                        throw new Exception(RuleMessage.Error.C10138(tool.ToolName, equipToolDataList[0].EquipmentName));
                    }
                    #endregion
                }

                #endregion

                gvQuery.SetDataSource(_ToolGroupData, true);
                btnOK.Enabled = true;
            }