Example #1
0
        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();
        }
Example #2
0
        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);
                    }
                }
            }
        }
Example #3
0
        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();
        }
Example #4
0
        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();
        }
Example #6
0
        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));
            }
        }
Example #7
0
        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);
            }
        }
Example #8
0
        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);
            }
        }
Example #9
0
        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);
        }
Example #10
0
        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"] = "";
            }
        }
Example #11
0
        /// <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);
        }
Example #12
0
 public Status(ReworkFacade reworkFacade, ReworkSheet reworkSheet)
 {
     this._reworkFacade = reworkFacade;
     this._reworkSheet  = reworkSheet;
 }
Example #13
0
        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);
        }
Example #14
0
        [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);
        }
Example #15
0
 public WaitingStatus(ReworkFacade reworkFacade, ReworkSheet reworkSheet) : base(reworkFacade, reworkSheet)
 {
     this._status = BenQGuru.eMES.Web.Helper.ReworkStatus.REWORKSTATUS_WAITING;
 }
Example #16
0
 public NewStatus(ReworkFacade reworkFacade, ReworkSheet reworkSheet) : base(reworkFacade, reworkSheet)
 {
     this._status = BenQGuru.eMES.Web.Helper.ReworkStatus.REWORKSTATUS_NEW;
 }
Example #17
0
        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);
        }
Example #18
0
 public ReleaseStatus(ReworkFacade reworkFacade, ReworkSheet reworkSheet) : base(reworkFacade, reworkSheet)
 {
     this._status = BenQGuru.eMES.Web.Helper.ReworkStatus.REWORKSTATUS_RELEASE;
 }