protected void cmdDelete_ServerClick(object sender, System.EventArgs e) { if (_facade == null) { _facade = new ReworkFacadeFactory(base.DataProvider).Create(); } ArrayList array = this.gridHelper.GetCheckedRows(); ArrayList reworkSheets = new ArrayList(array.Count); foreach (GridRecord row in array) { ReworkSheet rSheet = (ReworkSheet)this.GetEditObject(row); if (rSheet.Status != ReworkStatus.REWORKSTATUS_NEW && !(rSheet.Status == ReworkStatus.REWORKSTATUS_RELEASE && rSheet.NeedCheck == "N")) { ExceptionManager.Raise(this.GetType(), "$Error_Delete_ReworkSheet_NotNew"); return; } reworkSheets.Add(rSheet); } this._facade.DeleteReworkSheet((ReworkSheet[])reworkSheets.ToArray(typeof(ReworkSheet))); this.RequestData(); }
private void AddRes2ReworkSheet(string resCode, string reworkCodeListString) { ReworkFacade reworkFacade = new ReworkFacade(this.DataProvider); if (_facade == null) { _facade = new BaseModelFacadeFactory(base.DataProvider).Create(); } if (reworkCodeListString.Trim().Length > 0) { string[] reworkCodeList = reworkCodeListString.Trim().ToUpper().Split(','); if (reworkCodeList == null) { reworkCodeList = new string[0]; } foreach (string reworkCode in reworkCodeList) { ReworkSheet reworkSheet = (ReworkSheet)reworkFacade.GetReworkSheet(reworkCode); if (reworkSheet != null) { Resource2ReworkSheet res2ReworkSheet = _facade.CreateNewResource2ReworkSheet(); res2ReworkSheet.ResourceCode = resCode; res2ReworkSheet.ItemCode = reworkSheet.ItemCode; res2ReworkSheet.LotNo = reworkSheet.LotList; res2ReworkSheet.ReworkCode = reworkSheet.ReworkCode; res2ReworkSheet.MaintainUser = this.GetUserCode(); _facade.AddResource2ReworkSheet(res2ReworkSheet); } } } }
protected void cmdInitial_ServerClick(object sender, EventArgs e) { if (_facade == null) { _facade = new ReworkFacadeFactory(base.DataProvider).Create(); } ArrayList array = this.gridHelper.GetCheckedRows(); ArrayList reworkSheets = new ArrayList(array.Count); foreach (GridRecord row in array) { ReworkSheet rSheet = (ReworkSheet)this.GetEditObject(row); if (string.Compare(rSheet.Status, ReworkStatus.REWORKSTATUS_OPEN, true) != 0) { ExceptionManager.Raise(this.GetType(), "$Error_ReworkSheet_Status_Not_Open"); return; } if (string.Compare(rSheet.ReworkType, ReworkType.REWORKTYPE_ONLINE, true) != 0) { ExceptionManager.Raise(this.GetType(), "$Error_ReworkSheet_ReworkType_Not_Online"); return; } reworkSheets.Add(rSheet); } this._facade.CancelOpenReworkSheet((ReworkSheet[])reworkSheets.ToArray(typeof(ReworkSheet))); this.RequestData(); }
private void InitData() { string code = this.GetRequestParam("ReworkSheetCode"); // 新建 if (code == string.Empty) { this.txtDate.Text = FormatHelper.ToDateString(FormatHelper.TODateInt(DateTime.Now)); this.txtUser.Text = this.GetUserCode(); } else // 编辑 { if (_facade == null) { _facade = new ReworkFacadeFactory(base.DataProvider).Create(); } ReworkSheet rs = (ReworkSheet)(this._facade.GetReworkSheet(code)); if (rs != null) { this.txtDate.Text = FormatHelper.ToDateString(rs.CreateDate); this.txtUser.Text = rs.CreateUser; this.txtDepartment.Text = rs.Department; //选中料号 this.txtItemQuery.Text = rs.ItemCode; //选中工单 this.txtMOQuery.Text = rs.MOCode; //sammer kong 2005/05/17 this.txtReworkHC.Text = rs.ReworkHC.ToString(); this.txtReworkQty.Text = rs.ReworkQty.ToString(); this.txtReworkSheetCode.Text = rs.ReworkCode; //选中工单 //SetDropDownListValue(drpMOCode,rs.MOCode); //选中返工来源 SetDropDownListValue(drpReworkSource, rs.ReworkSourceCode); //选中返工类型 SetDropDownListValue(drpReworkType, rs.ReworkType); // Added by Icyer 2006/07/12 this.txtReworkReason.Text = rs.ReworkReason; this.txtReasonAnalyse.Text = rs.ReasonAnalyse; this.txtSolution.Text = rs.Soluation; // Added end this.txtDutyCodeQuery.Text = rs.DutyCode; this.txtOQCLotQuery.Text = rs.LotList; this.chkNeedConfirmFlow.Checked = rs.NeedCheck == "Y" ? true : false; } else { ExceptionManager.Raise(this.GetType().BaseType, "$Error_ReworkSheet_Lost"); } } }
private void InitViewPanel() { if (_facade == null) { _facade = new ReworkFacadeFactory(base.DataProvider).Create(); } this.txtReworkCodeQuery.Text = ReworkCode; this.txtReworkCodeQuery.ReadOnly = true; ReworkSheet rs = (ReworkSheet)this._facade.GetReworkSheet(ReworkCode); if (rs == null) { ExceptionManager.Raise(this.GetType(), "$Error_ReworkCode_Invalid"); } this.txtMOCode.Text = rs.MOCode; this.RequestData(); }
private BenQGuru.eMES.Rework.ReworkFacade _facade; //= ReworkFacadeFactory.Create(); #region Stable protected void Page_Load(object sender, System.EventArgs e) { if (this.GetRequestParam("ReworkSheetCode") == string.Empty) { ExceptionManager.Raise(this.GetType(), "$Error_RequestUrlParameter_Lost"); } if (_facade == null) { _facade = new ReworkFacadeFactory(base.DataProvider).Create(); } ReworkSheet rs = (ReworkSheet)this._facade.GetReworkSheet(this.GetRequestParam("ReworkSheetCode")); if (rs == null) { ExceptionManager.Raise(this.GetType(), "$Error_ReworkCode_Invalid"); } if (rs.Status != ReworkStatus.REWORKSTATUS_NEW) { cmdDelete.Disabled = true; cmdAppend.Visible = false; } else { cmdDelete.Disabled = false; cmdAppend.Visible = true; } if (!this.IsPostBack) { // 初始化页面语言 this.InitPageLanguage(this.languageComponent1, false); this.txtReworkSheetCode.Text = this.GetRequestParam("ReworkSheetCode"); //this.dateFrom.Text = FormatHelper.ToDateString( FormatHelper.TODateInt( DateTime.Now )) ; //this.dateTo.Text = FormatHelper.ToDateString( FormatHelper.TODateInt( DateTime.Now )) ; this.timeFrom.Text = FormatHelper.ToTimeString(0); this.timeTo.Text = FormatHelper.ToTimeString(FormatHelper.TOTimeInt(DateTime.Now)); } }
public void SendMailToFirst(ReworkSheet[] reworkSheets) { ReworkFacade _facade = new ReworkFacadeFactory(_domainDataProvider).Create(); if (reworkSheets == null || reworkSheets.Length == 0) { return; } for (int i = 0; i < reworkSheets.Length; i++) { ReworkSheet reworkSheet = reworkSheets[i]; object[] users = _facade.GetFirstApprover(reworkSheet); if (users == null || users.Length == 0) { continue; } System.Web.Mail.MailMessage message = BuildMessage(reworkSheet.ReworkCode, reworkSheet.MaintainUser, reworkSheet.MaintainDate, reworkSheet.MaintainTime); MailFacade.SendMail(fromUserMail, users, message); } }
protected void Page_Load(object sender, System.EventArgs e) { if (_facade == null) { _facade = new ReworkFacadeFactory(base.DataProvider).Create(); } ReworkSheet rs = (ReworkSheet)this._facade.GetReworkSheet(this.GetRequestParam("ReworkSheetCode")); if (rs == null) { ExceptionManager.Raise(this.GetType(), "$Error_ReworkCode_Invalid"); } if (rs.Status != ReworkStatus.REWORKSTATUS_RELEASE) { cmdSave.Visible = false; cmdCancel.Visible = false; } else { cmdSave.Visible = true; cmdCancel.Visible = true; } if (!this.IsPostBack) { // 初始化页面语言 this.InitPageLanguage(this.languageComponent1, false); this.txtReworkCode.Text = this.GetRequestParam("ReworkSheetCode"); ReworkSheet obj = (ReworkSheet)this._facade.GetReworkSheet(this.txtReworkCode.Text); this.txtItemCode.Text = obj.ItemCode; this.txtReworkStatus.Text = this.languageComponent1.GetString(obj.Status); this.txtReworkType.Text = this.languageComponent1.GetString(obj.ReworkType); } }
private string GetRouteCodeFromReworkCodeList(string reworkCodeListString) { ReworkFacade reworkFacade = new ReworkFacade(this.DataProvider); string returnValue = string.Empty; //此处需要保证各个ReworkCode抓取出的NewRouteCode都相同,否则返回空字符串 if (reworkCodeListString.Trim().Length > 0) { string[] reworkCodeList = reworkCodeListString.Trim().ToUpper().Split(','); if (reworkCodeList == null) { reworkCodeList = new string[0]; } foreach (string reworkCode in reworkCodeList) { ReworkSheet reworkSheet = (ReworkSheet)reworkFacade.GetReworkSheet(reworkCode); if (reworkSheet == null || reworkSheet.NewRouteCode == null || reworkSheet.NewRouteCode.Trim().Length <= 0) { returnValue = string.Empty; break; } else if (returnValue.Trim().Length > 0 && string.Compare(returnValue.Trim(), reworkSheet.NewRouteCode.Trim(), true) != 0) { returnValue = string.Empty; break; } else { returnValue = reworkSheet.NewRouteCode.Trim().ToUpper(); } } } return(returnValue); }
private void initUI() { if (_facade == null) { _facade = new ReworkFacadeFactory(base.DataProvider).Create(); } //根据返工类型,处理界面,不需要清空数据 DoReworkTypeChange(false); //根据工单,处理界面,不需要清空数据 DoMOCodeChange(false); string code = this.GetRequestParam("ReworkSheetCode"); if (code != string.Empty) //传参,即为编辑 { Session["ReworkSheetCode"] = code; //供弹出页面使用 //取得sheet的基本信息 ReworkSheet rs = (ReworkSheet)(this._facade.GetReworkSheet(code)); //状态为“新”,除了代码为都可以编辑 if (rs.Status == BenQGuru.eMES.Web.Helper.ReworkStatus.REWORKSTATUS_NEW) { this.txtReworkSheetCode.ReadOnly = true; } else { this.txtDate.Enabled = false; this.txtUser.Enabled = false; this.txtDepartment.Enabled = false; this.txtItemQuery.Readonly = true; this.txtMOQuery.Readonly = true; this.txtReworkHC.Enabled = false; this.txtReworkQty.Enabled = false; this.txtReworkSheetCode.Enabled = false; //this.drpMOCode.Enabled = false ; this.drpReworkSource.Enabled = false; this.drpReworkType.Enabled = false; //this.txtOQCLotQuery.Readonly = true; this.chkNeedConfirmFlow.Enabled = false; this.cmdSave.Disabled = true; this.txtDutyCodeQuery.Readonly = true; // Added by Icyer 2006/07/12 this.txtReworkReason.Enabled = false; this.txtReasonAnalyse.Enabled = false; this.txtSolution.Enabled = false; if (rs.Status == BenQGuru.eMES.Web.Helper.ReworkStatus.REWORKSTATUS_NEW || rs.Status == BenQGuru.eMES.Web.Helper.ReworkStatus.REWORKSTATUS_WAITING || rs.Status == BenQGuru.eMES.Web.Helper.ReworkStatus.REWORKSTATUS_RELEASE || rs.Status == BenQGuru.eMES.Web.Helper.ReworkStatus.REWORKSTATUS_OPEN) { this.txtReworkReason.Enabled = true; this.txtReasonAnalyse.Enabled = true; this.txtSolution.Enabled = true; this.cmdSave.Disabled = false; this.txtDutyCodeQuery.Readonly = false; } // Added end } } else { Session["ReworkSheetCode"] = ""; } }
/// <summary> /// /// </summary> /// <param name="actionEventArgs"> </param> params (0,lotno) /// <returns></returns> public Messages Execute(ActionEventArgs actionEventArgs) { Messages messages = new Messages(); DataCollectDebug dataCollectDebug = new DataCollectDebug(this.GetType().ToString() + "Collect"); dataCollectDebug.WhenFunctionIn(messages); OQCRejectEventArgs oqcRejectEventArgs = actionEventArgs as OQCRejectEventArgs; try { ActionOnLineHelper dataCollect = new ActionOnLineHelper(this.DataProvider); ActionOQCHelper oqcHelper = new ActionOQCHelper(this.DataProvider); OQCFacade oqcFacade = new OQCFacade(this.DataProvider); ReworkFacade reworkFacade = new ReworkFacade(this.DataProvider); TSFacade tsFacade = new TSFacade(this.DataProvider); //check oqcStatus #region CheckOQCLotStatus // object objOQClot = oqcFacade.GetOQCLot(oqcRejectEventArgs.OQCLotNO,OQCFacade.Lot_Sequence_Default); // if(objOQClot == null) // { // throw new Exception("$Error_OQCLotNotExisted"); // } // if( ((OQCLot)objOQClot).LOTStatus == OQCLotStatus.OQCLotStatus_Initial) // { // throw new Exception("$Error_OQCLotNO_Cannot_Initial"); // } // if( ((OQCLot)objOQClot).LOTStatus == OQCLotStatus.OQCLotStatus_NoExame) // { // throw new Exception("$Error_OQCLotNO_Cannot_NoExame"); // } // if( (((OQCLot)objOQClot).LOTStatus == OQCLotStatus.OQCLotStatus_Reject)||((((OQCLot)objOQClot).LOTStatus == OQCLotStatus.OQCLotStatus_Pass) )) // { // throw new Exception("$Error_OQCLotNO_HasComplete"); // } #endregion if (!oqcRejectEventArgs.IsForceReject) { //必须要有NG而且在送修状态的板子 if (tsFacade.HaveNewStatusCardInOQCLot(oqcRejectEventArgs.OQCLotNO, String.Empty)) { throw new Exception("$Error_OQCLotNo_HasNoTS"); } } object objLot = null; if (oqcRejectEventArgs.Lot == null) { objLot = oqcFacade.GetExamingOQCLot(oqcRejectEventArgs.OQCLotNO, OQCFacade.Lot_Sequence_Default); } else { objLot = oqcRejectEventArgs.Lot; } //update each running card reject #region 取得每个板子进行批退,填充reject,Reject2ErrorCode信息 //reject object[] RCards = null; if (oqcRejectEventArgs.CardOfLot != null) { RCards = oqcRejectEventArgs.CardOfLot; } else { RCards = oqcHelper.QueryCardOfLot(oqcRejectEventArgs.OQCLotNO, OQCFacade.Lot_Sequence_Default); } if (!oqcRejectEventArgs.IsForceReject) { int iNGCount = 0; for (int j = 0; j < RCards.Length; j++) { if (((Simulation)RCards[j]).ProductStatus == ProductStatus.NG) { iNGCount = 1; break; } } int funcNGCount = 0; funcNGCount = oqcFacade.QueryFuncTesCount(oqcRejectEventArgs.OQCLotNO, OQCFacade.Lot_Sequence_Default.ToString(), ProductStatus.NG); if (iNGCount == 0 && funcNGCount == 0) { throw new Exception("$CS_LOT_NOT_EXIST_NG"); } } #region reject errorCodes object[] objs = oqcFacade.ExtraQueryOQCLotCard2ErrorCode(oqcRejectEventArgs.OQCLotNO, OQCFacade.Lot_Sequence_Default.ToString()); Reject2ErrorCode reject2ErrorCode = reworkFacade.CreateNewReject2ErrorCode(); //Reject2ErrorCode if (objs != null) { for (int i = 0; i < objs.Length; i++) { bool needInsert = false; foreach (Simulation sim in RCards) { if (sim.RunningCard == ((OQCLotCard2ErrorCode)objs[i]).RunningCard && sim.RunningCardSequence == ((OQCLotCard2ErrorCode)objs[i]).RunningCardSequence) { needInsert = true; } } if (needInsert) { reject2ErrorCode.ErrorCode = ((OQCLotCard2ErrorCode)objs[i]).ErrorCode; reject2ErrorCode.ErrorCodeGroup = ((OQCLotCard2ErrorCode)objs[i]).ErrorCodeGroup; reject2ErrorCode.MaintainUser = actionEventArgs.UserCode; reject2ErrorCode.RunningCard = ((OQCLotCard2ErrorCode)objs[i]).RunningCard; reject2ErrorCode.RunningCardSequence = ((OQCLotCard2ErrorCode)objs[i]).RunningCardSequence + 1; reject2ErrorCode.MOCode = ((OQCLotCard2ErrorCode)objs[i]).MOCode; reject2ErrorCode.LotNo = ((OQCRejectEventArgs)actionEventArgs).OQCLotNO; reject2ErrorCode.MOSeq = ((OQCLotCard2ErrorCode)objs[i]).MOSeq; // Added by Icyer 2007/07/03 if (reworkFacade.GetReject2ErrorCode(reject2ErrorCode.ErrorCode, reject2ErrorCode.RunningCard, reject2ErrorCode.RunningCardSequence, reject2ErrorCode.ErrorCodeGroup) == null) { reworkFacade.AddReject2ErrorCode(reject2ErrorCode); } } } } #endregion #endregion #region OQCLotCheckList object objLotCheckList = oqcFacade.GetOQCLOTCheckList(oqcRejectEventArgs.OQCLotNO, OQCFacade.Lot_Sequence_Default); if (objLotCheckList != null) { OQCLOTCheckList oqcLotCheckList = objLotCheckList as OQCLOTCheckList; oqcLotCheckList.Result = OQCLotStatus.OQCLotStatus_Reject; oqcFacade.UpdateOQCLOTCheckList(oqcLotCheckList); } #endregion //把整个lot中的ID全变成reject #region 整个lot中的ID全变成reject object[] objsInTS = oqcFacade.GetOQCLot2CardInTS(string.Empty, string.Empty, string.Empty, string.Empty, oqcRejectEventArgs.OQCLotNO, OQCFacade.Lot_Sequence_Default.ToString()); if (objsInTS == null) { oqcFacade.UpdateOQCLot2CardByOQCResult(oqcRejectEventArgs.OQCLotNO, OQCFacade.Lot_Sequence_Default.ToString(), string.Empty, string.Empty, ProductStatus.Reject, true); } else { string tmpString = string.Empty; for (int i = 0; i < objsInTS.Length; i++) { tmpString += ": " + ((OQCLot2Card)objsInTS[i]).RunningCard; } throw new Exception(String.Format("$Error_RunningCardInTS: {0}", tmpString)); } #endregion messages.AddMessages(SetReworkInformation(messages, RCards, oqcRejectEventArgs, dataCollect, reworkFacade)); #region updateOQCLot DBDateTime dbDateTime; dbDateTime = FormatHelper.GetNowDBDateTime(DataProvider); OQCLot oqcLot = objLot as OQCLot; oqcLot.LOTStatus = OQCLotStatus.OQCLotStatus_Reject; oqcLot.DealDate = dbDateTime.DBDate; oqcLot.DealTime = dbDateTime.DBTime; oqcLot.DealUser = actionEventArgs.UserCode; oqcLot.Memo = oqcRejectEventArgs.Memo; oqcFacade.UpdateOQCLotStatus(oqcLot); #endregion if (oqcRejectEventArgs.IsAutoGenerateReworkSheet) { //ReworkSheet reworkSheet = reworkFacade.GetMaxReworkSheet(dbDateTime.DBDate); //reworkSheet.ReworkCode = reworkSheet.ReworkCode.Substring(0, 9) + Convert.ToString(int.Parse(reworkSheet.ReworkCode.Substring(9, 3)) + 1).PadLeft(3, '0'); ReworkSheet reworkSheet = new ReworkSheet(); reworkSheet.ReworkCode = oqcLot.LOTNO; reworkSheet.CreateDate = dbDateTime.DBDate; reworkSheet.CreateTime = dbDateTime.DBTime; reworkSheet.CreateUser = actionEventArgs.UserCode; reworkSheet.Department = ""; reworkSheet.EAttribute1 = ""; reworkSheet.ItemCode = (RCards[0] as Simulation).ItemCode; reworkSheet.LotList = oqcRejectEventArgs.OQCLotNO; reworkSheet.MaintainDate = dbDateTime.DBDate; reworkSheet.MaintainTime = dbDateTime.DBTime; reworkSheet.MaintainUser = actionEventArgs.UserCode; reworkSheet.MOCode = ""; reworkSheet.NeedCheck = "N"; reworkSheet.NewMOCode = ""; reworkSheet.NewOPBOMCode = ""; reworkSheet.NewOPBOMVersion = ""; reworkSheet.NewOPCode = ""; reworkSheet.NewRouteCode = ""; reworkSheet.ReasonAnalyse = ""; reworkSheet.ReworkContent = ""; reworkSheet.ReworkDate = 0; reworkSheet.ReworkHC = 0; reworkSheet.ReworkMaxQty = 0; reworkSheet.ReworkQty = RCards.Length; reworkSheet.ReworkRealQty = 0; reworkSheet.ReworkReason = oqcRejectEventArgs.Memo; reworkSheet.ReworkSourceCode = " "; reworkSheet.ReworkTime = 0; reworkSheet.ReworkType = ReworkType.REWORKTYPE_ONLINE; reworkSheet.Soluation = ""; reworkSheet.Status = ReworkStatus.REWORKSTATUS_RELEASE; reworkSheet.AutoLot = oqcRejectEventArgs.IsCreateNewLot ? "Y" : ""; reworkFacade.AddReworkSheetWithOutTrans(reworkSheet); } //add by roger.xue 2008/10/27 if (oqcRejectEventArgs.IsUnFrozen) { oqcFacade.UpdateUnFrozenOnLot(oqcRejectEventArgs.OQCLotNO, oqcRejectEventArgs.UnFrozenReason, dbDateTime.DBDate, dbDateTime.DBTime, oqcRejectEventArgs.UserCode, OQCFacade.Lot_Sequence_Default); oqcFacade.UnFreezeFrozen(oqcRejectEventArgs.OQCLotNO, oqcRejectEventArgs.UnFrozenReason, dbDateTime.DBDate, dbDateTime.DBTime, oqcRejectEventArgs.UserCode, OQCFacade.Lot_Sequence_Default); } //end add AlertFacade alertFacade = new AlertFacade(this.DataProvider); alertFacade.AlertOQCReject(oqcLot.ItemCode, oqcLot.SSCode, oqcLot.LOTNO, oqcLot.Memo); } catch (Exception e) { messages.Add(new Message(e)); } dataCollectDebug.WhenFunctionOut(messages); return(messages); }
public Status(ReworkFacade reworkFacade, ReworkSheet reworkSheet) { this._reworkFacade = reworkFacade; this._reworkSheet = reworkSheet; }
protected override bool ValidateInput() { ReworkFacade reworkFacade = new ReworkFacade(this.DataProvider); PageCheckManager manager = new PageCheckManager(); manager.Add(new LengthCheck(this.lblResourceCodeEdit, this.txtResourceCodeEdit, 40, true)); manager.Add(new LengthCheck(this.lblResourceDescriptionEdit, this.txtResourceDescriptionEdit, 100, false)); manager.Add(new LengthCheck(this.lblOrgIDEdit, this.DropDownListOrg, 8, true)); if (!manager.Check()) { WebInfoPublish.Publish(this, manager.CheckMessage, this.languageComponent1); return(false); } if (this.txtReworkRoute.Text.Trim().Length != 0) { object route = (new BaseModelFacade(this.DataProvider)).GetRoute(this.txtReworkRoute.Text.Trim().ToUpper()); if (route == null) { WebInfoPublish.Publish(this, "$Error_RouteNotExist", this.languageComponent1); return(false); } object route2OP = (new BaseModelFacade(this.DataProvider)).GetOperationByRouteCode(this.txtReworkRoute.Text.Trim().ToUpper()); if (route2OP == null) { WebInfoPublish.Publish(this, "$Error_RouteHasNoOperations", this.languageComponent1); return(false); } } if (this.txtReworkMo.Text.Trim().Length > 0) { string[] reworkCodeList = this.txtReworkMo.Text.Trim().ToUpper().Split(','); if (reworkCodeList == null) { reworkCodeList = new string[0]; } //返工需求单必须都存在 string errorMessage = string.Empty; foreach (string reworkCode in reworkCodeList) { ReworkSheet reworkSheet = (ReworkSheet)reworkFacade.GetReworkSheet(reworkCode); if (reworkSheet == null) { errorMessage += "$Error_ReworkSheet_NotExist" + " : " + reworkCode + "\n"; } } if (errorMessage.Trim().Length > 0) { WebInfoPublish.Publish(this, errorMessage, this.languageComponent1); return(false); } //保证相同产品的多张返工需求单,只能有一张没有判退批(及LotNo不能重复) List <string> itemCodeAndLotNoList = new List <string>(); foreach (string reworkCode in reworkCodeList) { ReworkSheet reworkSheet = (ReworkSheet)reworkFacade.GetReworkSheet(reworkCode); string itemCodeAndLotNo = reworkSheet.ItemCode + "\t" + (reworkSheet.LotList == null ? string.Empty : reworkSheet.LotList); if (itemCodeAndLotNoList.Contains(itemCodeAndLotNo)) { WebInfoPublish.Publish(this, "$Error_Res2ReworkSheetPK", this.languageComponent1); return(false); } else { itemCodeAndLotNoList.Add(itemCodeAndLotNo); } } //保证所选择的ReworkSheet的Route一致,并且存在 string routeCode = GetRouteCodeFromReworkCodeList(this.txtReworkMo.Text.Trim().ToUpper()); if (routeCode.Trim().Length <= 0) { //返工需求单的返工途程不存在或者不一致 WebInfoPublish.Publish(this, "$Error_ReworkSheetsNewRouteNotSame", this.languageComponent1); return(false); } else { object route = (new BaseModelFacade(this.DataProvider)).GetRoute(routeCode); if (route == null) { WebInfoPublish.Publish(this, "$Error_RouteNotExist", this.languageComponent1); return(false); } object route2OP = (new BaseModelFacade(this.DataProvider)).GetOperationByRouteCode(routeCode); if (route2OP == null) { WebInfoPublish.Publish(this, "$Error_RouteHasNoOperations", this.languageComponent1); return(false); } } } return(true); }
[Test] public void TestStatusManager() { //add item this.persistBroker.Execute(String.Format("delete from tblreworksheet where reworkcode ='{0}'", reworkCode)); this.persistBroker.Execute(String.Format("delete from tblreworksource where reworkscode = '{0}'", sourceCode)); this.persistBroker.Execute(String.Format("delete from tblitem where itemcode = '{0}'", itemCode)); Item item = this.itemFacade.CreateNewItem(); item.ItemCode = itemCode; item.ItemUOM = "lot"; item.ItemType = "lot"; item.ItemControlType = "No control"; item.ItemUser = "******"; item.ItemDate = FormatHelper.TODateInt(DateTime.Today.ToShortDateString()); item.MaintainUser = "******"; item.ItemDescription = "test add"; this.itemFacade.AddItem(item); Assert.AreEqual(itemFacade.QueryItemCount(itemCode, string.Empty, string.Empty, string.Empty, string.Empty), 1); //add sourceitemoce ReworkSource reworkSource = this.reworkFacade.CreateNewReworkSource(); reworkSource.ReworkSourceCode = sourceCode; reworkSource.MaintainUser = "******"; reworkSource.Description = "this is for test!"; this.reworkFacade.AddReworkSource(reworkSource); Assert.AreEqual(reworkFacade.QueryReworkSourceCount(sourceCode), 1); //add reworksheet ReworkSheet reworkSheet = this.reworkFacade.CreateNewReworkSheet(); reworkSheet.ItemCode = itemCode; reworkSheet.ReworkCode = reworkCode; reworkSheet.CreateDate = FormatHelper.TODateInt(DateTime.Today.ToShortDateString()); reworkSheet.CreateTime = FormatHelper.TOTimeInt(DateTime.Now.ToLongTimeString()); reworkSheet.CreateUser = "******"; reworkSheet.Department = "rd department"; reworkSheet.MaintainUser = "******"; reworkSheet.MOCode = "MOCode"; reworkSheet.NewMOCode = "New MOCode"; reworkSheet.NewMOType = "NewMOType"; reworkSheet.ReworkCode = "ReworkCode"; reworkSheet.ReworkContent = "ReworkContent"; reworkSheet.ReworkDate = FormatHelper.TODateInt(DateTime.Today.ToShortDateString()); reworkSheet.ReworkHC = 0; reworkSheet.ReworkMaxQty = 10; reworkSheet.ReworkQty = 1; reworkSheet.ReworkRealQty = 1; reworkSheet.ReworkSourceCode = sourceCode; reworkSheet.ReworkTime = FormatHelper.TOTimeInt(DateTime.Now.ToLongTimeString()); reworkSheet.ReworkType = "rework Type"; reworkSheet.Status = ReworkFacade.REWORKSTATUS_NEW; this.reworkFacade.AddReworkSheet(reworkSheet); Assert.AreEqual(this.reworkFacade.QueryReworkSheetCount(reworkSheet.ReworkCode), 1); StatusManager statusManager = new StatusManager(this.reworkFacade, reworkSheet); statusManager.Waiting(); ReworkSheet currentReworkSheet = (ReworkSheet)this.reworkFacade.GetReworkSheet(reworkSheet.ReworkCode); Assert.AreEqual(currentReworkSheet.Status, ReworkFacade.REWORKSTATUS_WAITING); statusManager.NOApprove(); ReworkSheet currentReworkSheet1 = (ReworkSheet)this.reworkFacade.GetReworkSheet(reworkSheet.ReworkCode); Assert.AreEqual(currentReworkSheet1.Status, ReworkFacade.REWORKSTATUS_NEW); statusManager.Waiting(); ReworkSheet currentReworkSheet2 = (ReworkSheet)this.reworkFacade.GetReworkSheet(reworkSheet.ReworkCode); Assert.AreEqual(currentReworkSheet2.Status, ReworkFacade.REWORKSTATUS_WAITING); statusManager.Approve(); ReworkSheet currentReworkSheet3 = (ReworkSheet)this.reworkFacade.GetReworkSheet(reworkSheet.ReworkCode); Assert.AreEqual(currentReworkSheet3.Status, ReworkFacade.REWORKSTATUS_OPEN); }
public WaitingStatus(ReworkFacade reworkFacade, ReworkSheet reworkSheet) : base(reworkFacade, reworkSheet) { this._status = BenQGuru.eMES.Web.Helper.ReworkStatus.REWORKSTATUS_WAITING; }
public NewStatus(ReworkFacade reworkFacade, ReworkSheet reworkSheet) : base(reworkFacade, reworkSheet) { this._status = BenQGuru.eMES.Web.Helper.ReworkStatus.REWORKSTATUS_NEW; }
public Messages GenerateLot(ActionEventArgs actionEventArgs) { Messages messages = new Messages(); DataCollectDebug dataCollectDebug = new DataCollectDebug(this.GetType().ToString() + "Collect"); dataCollectDebug.WhenFunctionIn(messages); try { string itemCode = actionEventArgs.ProductInfo.NowSimulation.ItemCode; string rCard = actionEventArgs.ProductInfo.NowSimulation.RunningCard; string moCode = actionEventArgs.ProductInfo.NowSimulation.MOCode; ItemFacade itemFacade = new ItemFacade(this.DataProvider); BaseModelFacade baseModelFacade = new BaseModelFacade(this.DataProvider); OQCFacade oqcFacade = new OQCFacade(this.DataProvider); object item = itemFacade.GetItem(itemCode, GlobalVariables.CurrentOrganizations.First().OrganizationID); if (item == null) { messages.Add(new Message(MessageType.Error, "$Error_ItemCode_NotExist $Domain_ItemCode=" + itemCode)); return(messages); } //if (((Item)item).CheckItemOP == null || ((Item)item).CheckItemOP.Trim().Length == 0) //{ // messages.Add(new Message(MessageType.Error, "$Error_NoItemGenerateLotOPCode $Domain_ItemCode=" + itemCode)); // return messages; //} DBDateTime currentDBDateTime = FormatHelper.GetNowDBDateTime(this.DataProvider); OQCLot lot; // Resource auto generate lotno for ReworkSheet Resource res = actionEventArgs.ProductInfo.Resource; if (res == null) { res = (Resource)baseModelFacade.GetResource(actionEventArgs.ResourceCode); actionEventArgs.ProductInfo.Resource = res; } ReworkFacade reworkFacade = new ReworkFacade(this.DataProvider); ReworkRange reworkRange = null; OQCLot currentLot = (OQCLot)oqcFacade.GetLatestOQCLot(actionEventArgs.RunningCard); if (currentLot != null && currentLot.LOTStatus == OQCLotStatus.OQCLotStatus_Reject) { reworkRange = (ReworkRange)reworkFacade.GetLatestReworkRange(actionEventArgs.RunningCard); } //产生新批的情况有两种 //情况一:返工Res(Res.ReworkRouteCode不为空),RCard有当前的返工需求单,且此返工需求单要求自动产生新批(ReworkSheet.AutoLot等于Y) //情况二:其他情况,当前工序为Item的产生批工序(当前工序等于Item.CheckItemOP) // if (res != null && res.ReworkRouteCode != null && res.ReworkRouteCode.Trim().Length > 0 && reworkRange != null && reworkRange.ReworkCode != null && reworkRange.ReworkCode.Trim().Length > 0) { object reworkSheet = reworkFacade.GetReworkSheet(reworkRange.ReworkCode); ReworkSheet rs = reworkSheet as ReworkSheet; if (rs.AutoLot != null && string.Compare(rs.AutoLot, "Y", true) == 0 && rs.LotList != null && rs.LotList.Trim().Length > 0) { //Get rework lot by oldlotno (reworkcode=oldlotno=lotlist) object rLot = oqcFacade.GetOQCLotByOldLotNo(rs.LotList); if (rLot == null) { lot = this.CreateNewLot(actionEventArgs, (Item)item, currentDBDateTime, true, rs.LotList); } else { lot = rLot as OQCLot; } } else { return(messages); } } else { if (string.Compare(((Item)item).CheckItemOP, actionEventArgs.ProductInfo.NowSimulation.OPCode, true) != 0) { return(messages); } // GetLot2Card By RCard+LotStatus if (oqcFacade.IsCardUsedByAnyLot(rCard, moCode, itemCode)) { return(messages); } else { lot = this.CreateNewLot(actionEventArgs, (Item)item, currentDBDateTime, false, ""); } } object oldLot2Card = oqcFacade.GetOQCLot2Card(actionEventArgs.ProductInfo.NowSimulation.RunningCard, actionEventArgs.ProductInfo.NowSimulation.MOCode, lot.LOTNO, lot.LotSequence); if (oldLot2Card != null) { //messages.Add(new Message(MessageType.Error, "$Error_IDHasExistedInOtherOQCLotNO $CS_LotNo=" + lot.LOTNO)); return(messages); } actionEventArgs.ProductInfo.NowSimulation.LOTNO = lot.LOTNO; actionEventArgs.ProductInfo.NowSimulationReport.LOTNO = lot.LOTNO; DataCollectFacade dataCollect = new DataCollectFacade(this.DataProvider); dataCollect.UpdateSimulation(actionEventArgs.ProductInfo.NowSimulation); dataCollect.UpdateSimulationReport(actionEventArgs.ProductInfo.NowSimulationReport); OQCLot2Card oqcLot2Card = oqcFacade.CreateNewOQCLot2Card(); oqcLot2Card.ItemCode = actionEventArgs.ProductInfo.NowSimulation.ItemCode; oqcLot2Card.CollectType = "pcs"; oqcLot2Card.LOTNO = lot.LOTNO; oqcLot2Card.LotSequence = OQCFacade.Lot_Sequence_Default; oqcLot2Card.MaintainUser = actionEventArgs.UserCode; oqcLot2Card.MaintainDate = currentDBDateTime.DBDate; oqcLot2Card.MaintainTime = currentDBDateTime.DBTime; oqcLot2Card.MOCode = actionEventArgs.ProductInfo.NowSimulation.MOCode; oqcLot2Card.ModelCode = actionEventArgs.ProductInfo.NowSimulation.ModelCode; oqcLot2Card.OPCode = actionEventArgs.ProductInfo.NowSimulation.OPCode; oqcLot2Card.ResourceCode = actionEventArgs.ProductInfo.NowSimulation.ResourceCode; oqcLot2Card.RouteCode = actionEventArgs.ProductInfo.NowSimulation.RouteCode; oqcLot2Card.RunningCard = actionEventArgs.ProductInfo.NowSimulation.RunningCard; oqcLot2Card.RunningCardSequence = actionEventArgs.ProductInfo.NowSimulation.RunningCardSequence; oqcLot2Card.SegmnetCode = actionEventArgs.ProductInfo.NowSimulationReport.SegmentCode; oqcLot2Card.ShiftCode = actionEventArgs.ProductInfo.NowSimulationReport.ShiftCode; oqcLot2Card.ShiftTypeCode = actionEventArgs.ProductInfo.NowSimulationReport.ShiftTypeCode; oqcLot2Card.Status = actionEventArgs.ProductInfo.NowSimulationReport.Status; oqcLot2Card.StepSequenceCode = actionEventArgs.ProductInfo.NowSimulationReport.StepSequenceCode; oqcLot2Card.TimePeriodCode = actionEventArgs.ProductInfo.NowSimulationReport.TimePeriodCode; //oqcLot2Card.EAttribute1 = actionEventArgs.ProductInfo.NowSimulation.CartonCode; oqcLot2Card.EAttribute1 = ""; //现在这里只能是空,后面Carton包装时候会更新为CartonCode oqcLot2Card.MOSeq = actionEventArgs.ProductInfo.NowSimulation.MOSeq; oqcFacade.AddOQCLot2Card(oqcLot2Card); // Added By Hi1/Venus.Feng on 20081027 for Hisense Version : Add Frozen by lot logic if (lot.FrozenStatus == FrozenStatus.STATUS_FRONZEN) { Frozen frozen = new Frozen(); frozen.RCard = actionEventArgs.ProductInfo.NowSimulation.RunningCard; frozen.EAttribute1 = ""; frozen.FrozenBy = lot.FrozenBy; frozen.FrozenDate = lot.FrozenDate; frozen.FrozenReason = lot.FrozenReason; int seq = 0; object[] oldFrozenRCard = oqcFacade.QueryFrozen(frozen.RCard, frozen.RCard, string.Empty, string.Empty, string.Empty, string.Empty, -1, -1, -1, -1, int.MinValue, int.MaxValue); if (oldFrozenRCard != null) { foreach (Frozen f in oldFrozenRCard) { seq = Math.Max(seq, f.FrozenSequence); } } frozen.FrozenSequence = seq + 1; frozen.FrozenStatus = FrozenStatus.STATUS_FRONZEN; frozen.FrozenTime = lot.FrozenTime; frozen.ItemCode = actionEventArgs.ProductInfo.NowSimulation.ItemCode; frozen.LotNo = lot.LOTNO; frozen.LotSequence = Convert.ToInt32(lot.LotSequence); frozen.MaintainDate = currentDBDateTime.DBDate; frozen.MaintainTime = currentDBDateTime.DBTime; frozen.MaintainUser = actionEventArgs.UserCode; frozen.MOCode = actionEventArgs.ProductInfo.NowSimulation.MOCode; frozen.ModelCode = actionEventArgs.ProductInfo.NowSimulation.ModelCode; frozen.UnfrozenBy = ""; frozen.UnfrozenDate = 0; frozen.UnfrozenReason = ""; frozen.UnfrozenTime = 0; oqcFacade.AddFrozen(frozen); } // End Added //Update tbloqclot.lotsize++ lot.LotSize = 1; oqcFacade.UpdateOQCLotSize(lot); } catch (Exception ex) { messages.Add(new Message(ex)); } dataCollectDebug.WhenFunctionOut(messages); return(messages); }
public ReleaseStatus(ReworkFacade reworkFacade, ReworkSheet reworkSheet) : base(reworkFacade, reworkSheet) { this._status = BenQGuru.eMES.Web.Helper.ReworkStatus.REWORKSTATUS_RELEASE; }