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); } }
//显示工单信息 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); }
//设置工单显示值 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)); }
//从数据库获取工单 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); // } }
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); }
//更新显示列表 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); }
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); } } }