Example #1
0
        private void edtMoCode_TxtboxKeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == '\r')
            {
                string moCode = FormatHelper.CleanString(this.edtMoCode.Value.Trim().ToUpper());
                if (moCode == string.Empty)
                {
                    this.edtMoCode.TextFocus(true, true);
                    return;
                }

                MOFacade          moFacade = new MOFacade(this.DataProvider);
                Domain.MOModel.MO mo       = (Domain.MOModel.MO)moFacade.GetMO(moCode);

                if (mo == null)
                {
                    ApplicationRun.GetInfoForm().Add(new UserControl.Message(MessageType.Error, "$CS_MO_Not_Exist $CS_Param_MOCode:" + moCode));
                    this.edtMoCode.TextFocus(false, true);
                    return;
                }

                this.edtitemDesc.Value  = mo.MaterialDescription.Trim();
                this.edtMoPlanQty.Value = Convert.ToString(Convert.ToInt32(mo.MOPlanQty - mo.MOActualQty));
                this.edtMoPlanQty.TextFocus(false, true);
            }
        }
Example #2
0
        //显示工单信息
        private Messages DisplayMoInfo(string moCode)
        {
            Messages msg = new Messages();

            object obj = GetMo(moCode);

            if (obj == null)
            {
                msg.Add(new UserControl.Message(MessageType.Error, "$CS_MO_Not_Exist $Domain_MO=" + moCode));
            }
            else
            {
                Domain.MOModel.MO mo = obj as Domain.MOModel.MO;

                ClearMoInfo();

                if (mo.MOStatus != Web.Helper.MOManufactureStatus.MOSTATUS_RELEASE &&
                    mo.MOStatus != Web.Helper.MOManufactureStatus.MOSTATUS_OPEN)
                {
                    msg.Add(new UserControl.Message(MessageType.Error, ">>$Error_CS_MO_Should_be_Release_or_Open"));
                }
                else
                {
                    SetMoValue(mo);
                }
            }

            return(msg);
        }
Example #3
0
 //设置工单显示值
 private void SetMoValue(Domain.MOModel.MO mo)
 {
     txtMoCode.Value   = mo.MOCode;
     txtItemCode.Value = mo.ItemCode;
     txtInputQty.Value = Convert.ToString(Convert.ToInt32(mo.MOInputQty));
     txtPlanQty.Value  = Convert.ToString(Convert.ToInt32(mo.MOPlanQty));
     txtScrapQty.Value = Convert.ToString(Convert.ToInt32(mo.MOScrapQty));
     txtActQty.Value   = Convert.ToString(Convert.ToInt32(mo.MOActualQty));
     txtOffQty.Value   = Convert.ToString(Convert.ToInt32(mo.MOOffQty));
 }
Example #4
0
        //从数据库获取工单
        private object GetMo(string moCode)
        {
//			if(listActionCheckStatus.Contains(moCode))
//			{
//				return ((ActionCheckStatus)listActionCheckStatus[moCode]).MO;
//			}
//			else
//			{
//			if(MO == null || (MO != null && MO.MOCode  != moCode))
//			{
            MO = (new MOFacade(DataProvider)).GetMO(moCode) as Domain.MOModel.MO;
//			}
            return(MO);
//			}
        }
Example #5
0
        protected override string[] FormatExportRecord(object obj)
        {
            /*
             * MOStock stock = (MOStock)obj;
             * string dNGRateManual, dNGRateFromItem, dWearOffRateTotal;
             * if (stock.IssueQty != 0)
             * {
             *      dNGRateManual = Math.Round(stock.ScrapQty / stock.IssueQty * 100, 2).ToString() + "%";
             *      dNGRateFromItem = Math.Round((stock.ReturnScrapQty - stock.ScrapQty) / stock.IssueQty * 100, 2).ToString() + "%";
             *      dWearOffRateTotal = Math.Round(stock.ReturnScrapQty / stock.IssueQty * 100, 2).ToString() + "%";
             * }
             * else
             * {
             *      dNGRateManual = dNGRateFromItem = dWearOffRateTotal = "0%";
             * }
             * string[] strArr =
             *      new string[]{	stock.MOCode,
             *                                      stock.ItemCode,
             *                                      GetItemName(stock.ItemCode),
             *                                      Math.Round(stock.ReceiptQty, 2).ToString(),
             *                                      Math.Round(stock.IssueQty, 2).ToString(),
             *                                      Math.Round(stock.ScrapQty, 2).ToString(),
             *                                      Math.Round(stock.ReturnQty, 2).ToString(),
             *                                      Math.Round(stock.ReturnScrapQty, 2).ToString(),
             *                                      Math.Round(stock.ReceiptQty - stock.IssueQty - stock.ReturnQty - stock.ReturnScrapQty, 2).ToString(),
             *                                      dNGRateManual,
             *                                      dNGRateFromItem,
             *                                      dWearOffRateTotal
             *                              };
             * stock = null;
             * return strArr;
             */
            MOStock stock = (MOStock)obj;
            string  dNGRateManual, dNGRateFromItem, dWearOffRateTotal;


            string dMOWasteRate = "0%";                 //工单损耗率
            string dMOScrapRate = "0%";;                //工单报废率

            #region 工单损耗率,工单报废率 不显示不计算

            //			decimal wasteRate = 0;
            //			decimal scrapRate = 0;
            //			if(stock.MOLoadingQty !=0 && (stock.MOLoadingQty + stock.TSLoadingQty) != 0 )
            //			if(stock.MOStatus == BenQGuru.eMES.Web.Helper.MOManufactureStatus.MOSTATUS_CLOSE)
            //			{
            //					wasteRate = (stock.ScrapQty + stock.TSUnCompletedQty) / stock.MOLoadingQty;
            //					scrapRate = (stock.ScrapQty + stock.TSUnCompletedQty) / (stock.MOLoadingQty + stock.TSLoadingQty);
            //			}
            //			else
            //			{
            //				wasteRate = stock.ScrapQty/ stock.MOLoadingQty;
            //				scrapRate = stock.ScrapQty / (stock.MOLoadingQty + stock.TSLoadingQty);
            //			}
            //			if(wasteRate != 0)
            //			{
            //				dMOWasteRate = wasteRate.ToString("##.##%");
            //			}
            //			if(scrapRate != 0)
            //			{
            //				dMOScrapRate = scrapRate.ToString("##.##%");
            //			}

            #endregion

            if (stock.IssueQty != 0)
            {
                dNGRateManual     = Math.Round(stock.ScrapQty / stock.IssueQty * 100, 2).ToString() + "%";
                dNGRateFromItem   = Math.Round((stock.ReturnScrapQty - stock.ScrapQty) / stock.IssueQty * 100, 2).ToString() + "%";
                dWearOffRateTotal = Math.Round(stock.ReturnScrapQty / stock.IssueQty * 100, 2).ToString() + "%";
            }
            else
            {
                dNGRateManual = dNGRateFromItem = dWearOffRateTotal = "0%";
            }


            //
            if (htMOList == null)
            {
                htMOList = new Hashtable();
            }
            if (htMOList.Contains(stock.MOCode) == false)
            {
                if (moFacade == null)
                {
                    moFacade = new BenQGuru.eMES.MOModel.MOFacade(this.DataProvider);
                }
                Domain.MOModel.MO mo = (Domain.MOModel.MO)moFacade.GetMO(stock.MOCode);
                if (sbomFacade == null)
                {
                    sbomFacade = new BenQGuru.eMES.MOModel.SBOMFacade(this.DataProvider);
                }
                object[] objsBom  = sbomFacade.Query(mo.ItemCode);
                object[] objValue = new object[] { mo, objsBom };
                htMOList.Add(stock.MOCode, objValue);
            }
            object[]          objMOValue       = (object[])htMOList[stock.MOCode];
            Domain.MOModel.MO moValue          = (Domain.MOModel.MO)objMOValue[0];
            string            strMOQty         = Convert.ToInt32(moValue.MOPlanQty).ToString();
            object[]          objMOBom         = (object[])objMOValue[1];
            string            strMOMaterialQty = "0";
            if (objMOBom != null)
            {
                for (int i = 0; i < objMOBom.Length; i++)
                {
                    Domain.MOModel.SBOM sbom = (Domain.MOModel.SBOM)objMOBom[i];
                    if (sbom.SBOMItemCode == stock.ItemCode)
                    {
                        strMOMaterialQty = Math.Round(moValue.MOPlanQty * sbom.SBOMItemQty, 2).ToString();
                        break;
                    }
                }
            }
            string strDiffMaterialQty = "0";
            try
            {
                decimal dTmp = Convert.ToDecimal(strMOMaterialQty) - stock.ReceiptQty + stock.ReturnScrapQty + stock.ReturnQty;
                strDiffMaterialQty = Math.Round(dTmp, 2).ToString();
            }
            catch {}
            string strMemoQty = this.GetMemoQty(stock.MOCode, stock.ItemCode);
            //
            string[] row =
                new string[] {
                stock.MOCode,
                stock.ItemCode,
                GetItemName(stock.ItemCode),
                strMOQty,
                strMOMaterialQty,
                Math.Round(stock.ReceiptQty, 2).ToString(),
                strDiffMaterialQty,
                Math.Round(stock.IssueQty, 2).ToString(),
                Math.Round(stock.ScrapQty, 2).ToString(),
                Math.Round(stock.ReturnQty, 2).ToString(),
                Math.Round(stock.ReturnScrapQty, 2).ToString(),
                Math.Round(stock.ReceiptQty - stock.IssueQty - stock.ReturnQty - stock.ReturnScrapQty, 2).ToString(),
                strMemoQty,
                ""
            };
            stock = null;
            return(row);
        }
Example #6
0
        //更新显示列表
        private Messages UpdateList(string[] moCodes)
        {
            Messages msg = new Messages();

            CurrentSequence = 1;
            dsMo.Clear();

            MOModel.MOFacade moFAC = new MOModel.MOFacade(this.DataProvider);
            foreach (string moCode in moCodes)
            {
                //获取MO
                object obj = moFAC.GetMO(moCode);

                if (obj != null)
                {
                    Domain.MOModel.MO mo = obj as Domain.MOModel.MO;

                    if (mo.MOStatus != Web.Helper.MOManufactureStatus.MOSTATUS_OPEN &&
                        mo.MOStatus != Web.Helper.MOManufactureStatus.MOSTATUS_RELEASE)
                    {
                        msg.Add(new UserControl.Message(MessageType.Error, "$CS_MO_Status_Error $CS_Param_MOStatus=$"
                                                        + mo.MOStatus + " $Domain_MO=" + mo.MOCode));
                        break;
                    }
                    //将MO添加到列表中
                    int moRestQty = Convert.ToInt32(mo.MOPlanQty - mo.MOInputQty + mo.MOScrapQty + mo.MOOffQty);
                    try
                    {
                        bool isExistMo = false;

                        foreach (DataRow dr in dsMo.MultiMo.Rows)
                        {
                            if (Convert.ToString(dr["工单"]) == mo.MOCode)
                            {
                                isExistMo = true;
                                break;
                            }
                        }
                        if (!isExistMo)
                        {
                            dsMo.MultiMo.Rows.Add(new object[] {
                                mo.MOCode
                                , ""
                                , mo.ItemCode
                                , Convert.ToInt32(mo.MOInputQty)
                                , Convert.ToInt32(mo.MOPlanQty)
                                , Convert.ToInt32(mo.MOScrapQty)
                                , Convert.ToInt32(mo.MOOffQty)
                                , Convert.ToInt32(mo.MOActualQty)
                                , moRestQty
                            });
                            dsMo.AcceptChanges();
                        }
                        else
                        {                        /*需要修改*/
                            msg.Add(new UserControl.Message(MessageType.Error, "$CS_MOCODE_REPEAT $Domain_MO=" + moCode));
                        }
                    }
                    catch (Exception E)
                    {
                        msg.Add(new UserControl.Message(E));
                    }
                }
                else
                {
                    msg.Add(new UserControl.Message(MessageType.Error, "$CS_MO_Not_Exist $Domain_MO=" + moCode));
                    break;
                }
            }
            return(msg);
        }
Example #7
0
        private void edtItemCode_TxtboxKeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == '\r')
            {
                if (this.edtMoCode.Value.Trim() == string.Empty)
                {
                    ApplicationRun.GetInfoForm().AddEx("$CS_CMPleaseInputMO");
                    this.edtMoCode.TextFocus(true, true);
                    return;
                }

                if (this.edtCarton.Value.Trim() == string.Empty)
                {
                    ApplicationRun.GetInfoForm().AddEx("$CS_PLEASE_INPUT_CARTONNO");
                    this.edtCarton.TextFocus(true, true);
                    return;
                }

                if (ultraGridDetail.Rows.Count <= 0)
                {
                    ApplicationRun.GetInfoForm().Add(new UserControl.Message(MessageType.Error, "$CS_GRID_NO_RECORD"));
                    this.edtItemCode.TextFocus(true, true);
                    return;
                }

                if (!this.CheckGrid())
                {
                    ApplicationRun.GetInfoForm().Add(new UserControl.Message(MessageType.Error, "$CS_GRID_SELECT_ONE_RECORD"));
                    this.edtItemCode.TextFocus(false, true);
                    return;
                }

                Package.PackageFacade         packageFacade     = new BenQGuru.eMES.Package.PackageFacade(this.DataProvider);
                DataCollect.DataCollectFacade dataCollectFacade = new DataCollectFacade(this.DataProvider);
                ItemFacade itemFacade = new ItemFacade(this.DataProvider);

                SKDCartonDetail skdCartonDetail = (SKDCartonDetail)packageFacade.GetSKDCartonDetail(this.edtMoCode.Value.Trim().ToUpper(),
                                                                                                    this.edtItemCode.Value.Trim().ToUpper());
                if (skdCartonDetail != null)
                {
                    ApplicationRun.GetInfoForm().Add(new UserControl.Message(MessageType.Error, "$CS_Carton_Have_In_This_moCode"));
                    this.edtItemCode.TextFocus(true, true);
                    return;
                }

                //下面做物料的检查
                Messages msg          = new Messages();
                string   materialCode = string.Empty;

                for (int i = 0; i < ultraGridDetail.Rows.Count; i++)
                {
                    if (ultraGridDetail.Rows[i].Cells[0].Value.ToString().ToLower() == "true")
                    {
                        materialCode = ultraGridDetail.Rows[i].Cells[1].Value.ToString();
                        _itemCode    = materialCode;
                        break;
                    }
                }

                Domain.MOModel.Material material = (Domain.MOModel.Material)itemFacade.GetMaterial(materialCode, GlobalVariables.CurrentOrganizations.First().OrganizationID);

                if (material == null)
                {
                    ApplicationRun.GetInfoForm().Add(new UserControl.Message(MessageType.Error, "$Error_Material_NotFound"));
                    this.edtItemCode.TextFocus(true, true);
                    return;
                }

                OPBOMDetail detailTemp = new OPBOMDetail();

                //模拟一个OPBOMDetail
                detailTemp.OPBOMItemControlType = material.MaterialControlType;
                detailTemp.OPBOMParseType       = material.MaterialParseType;
                detailTemp.OPBOMCheckType       = material.MaterialCheckType;
                detailTemp.CheckStatus          = material.CheckStatus;
                detailTemp.SerialNoLength       = material.SerialNoLength;
                detailTemp.NeedVendor           = material.NeedVendor;
                detailTemp.OPBOMSourceItemCode  = materialCode;
                detailTemp.OPBOMItemCode        = materialCode;
                detailTemp.OPBOMItemQty         = 1;

                MINNO newMinno = new MINNO();

                newMinno.MOCode    = this.edtMoCode.Value.Trim().ToUpper();
                newMinno.MItemCode = material.MaterialCode.Trim();

                msg = dataCollectFacade.GetMINNOByBarcode(detailTemp, this.edtItemCode.Value.Trim().ToUpper(), this.edtMoCode.Value.Trim().ToUpper(), null, false, true, out newMinno);

                if (!msg.IsSuccess())
                {
                    ApplicationRun.GetInfoForm().Add(msg);
                    this.edtItemCode.TextFocus(true, true);
                    return;
                }

                //检查上料资料
                if (this.checkCINNO.Checked)
                {
                    object[] onWipItemObjects = dataCollectFacade.QueryOnWIPItemWithmoCode(this.edtItemCode.Value.Trim().ToUpper(), materialCode, this.edtMoCode.Value.Trim().ToUpper());
                    if (onWipItemObjects == null)
                    {
                        ApplicationRun.GetInfoForm().Add(new UserControl.Message(MessageType.Error, "$CS_Have_CollectMertial"));
                        this.edtItemCode.TextFocus(true, true);
                        return;
                    }
                }

                this.DataProvider.BeginTransaction();
                try
                {
                    MOFacade          moFacade   = new MOFacade(this.DataProvider);
                    DBDateTime        dBDateTime = FormatHelper.GetNowDBDateTime(this.DataProvider);
                    Domain.MOModel.MO mo         = (Domain.MOModel.MO)moFacade.GetMO(this.edtMoCode.Value.Trim().ToUpper());

                    SKDCartonDetail newSKDCartonDetail = new SKDCartonDetail();

                    newSKDCartonDetail.moCode   = this.edtMoCode.Value.Trim().ToUpper();
                    newSKDCartonDetail.CartonNO = this.edtCarton.Value.Trim().ToUpper();
                    if (mo != null)
                    {
                        newSKDCartonDetail.ItemCode = mo.ItemCode;
                    }

                    newSKDCartonDetail.SBItemCode   = materialCode;
                    newSKDCartonDetail.MCard        = this.edtItemCode.Value.Trim().ToUpper();
                    newSKDCartonDetail.MaintainUser = ApplicationService.Current().UserCode;
                    newSKDCartonDetail.MaintainDate = dBDateTime.DBDate;
                    newSKDCartonDetail.MaintainTime = dBDateTime.DBTime;

                    packageFacade.AddSKDCartonDetail(newSKDCartonDetail);

                    ApplicationRun.GetInfoForm().Add(new UserControl.Message(MessageType.Success, "$CS_SKDCarton_Succes"));
                }
                catch (Exception ex)
                {
                    this.DataProvider.RollbackTransaction();
                    msg.Add(new UserControl.Message(ex));
                    ApplicationRun.GetInfoForm().Add(msg);
                }
                finally
                {
                    this.DataProvider.CommitTransaction();
                    this.LoadData();
                    this.MakeGridChecked();
                    this.edtItemCode.TextFocus(true, true);
                }
            }
        }