/// <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)); } }); } }); }
private void QueryAllTool() { AllTools = ToolInfoEx.GetToolByToolClass("DIE"); AllTools = AllTools.OrderBy(p => p.ToolName).ToList(); BindGridView(); }
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); } }
/// <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; }