private bool InputRcard(string rcard, string companyCode) { InventoryFacade inventoryFacade = new InventoryFacade(this.DataProvider); //转换产品序列号为原始序列号 DataCollect.DataCollectFacade dcf = new BenQGuru.eMES.DataCollect.DataCollectFacade(DataProvider); string sourceRCard = dcf.GetSourceCard(rcard.Trim().ToUpper(), string.Empty); ////检查此垛位是否存在相关产品 // object[] objRcardToStackPalletList = inventoryFacade.GetRcardToStackPallet("", "", sourceRCard); if (objRcardToStackPalletList == null) { //Message:垛位不存在相关产品 ApplicationRun.GetInfoForm().Add( new UserControl.Message(MessageType.Error, "$CS_RCARD_NOT_EXIST_IN_STACK")); return(false); } PackageFacade pf = new PackageFacade(this.DataProvider); object objPalletRcrad = pf.GetPallet2RCardByRCard(sourceRCard); if (objPalletRcrad != null) { //序列号存在栈板,请以栈板号来进行公司变更 ApplicationRun.GetInfoForm().Add( new UserControl.Message(MessageType.Error, "$CS_RCARD_EXIST_PALLET_NOT_CHANGE_COMPANY")); return(false); } ////变更Company // inventoryFacade.UpdateCompany("", "", sourceRCard, companyCode, ApplicationService.Current().LoginInfo.UserCode); ////Add To Grid // this.LoadDataSource(objRcardToStackPalletList); return(true); }
//检查此Rcard所属栈板下Rcard在同一垛位下 private bool CheckRcardIsInTheSameStack(string rcard, string stackCode) { InventoryFacade inventoryFacade = new InventoryFacade(this.DataProvider); PackageFacade packageFacade = new PackageFacade(this.DataProvider); DataCollectFacade dataCollectFacade = new DataCollectFacade(this.DataProvider); Pallet2RCard pallet2RCard = (Pallet2RCard)packageFacade.GetPallet2RCardByRCard(rcard); if (pallet2RCard == null) { return(true); } object[] pallet2RCardList = packageFacade.GetPallet2RCardListByPallet(pallet2RCard.PalletCode); if (pallet2RCardList == null) { return(true); } for (int i = 0; i < pallet2RCardList.Length; i++) { string cartonCode = string.Empty; SimulationReport simulationReport = (SimulationReport)dataCollectFacade.GetLastSimulationReport(((Pallet2RCard)pallet2RCardList[i]).RCard); if (simulationReport != null) { cartonCode = simulationReport.CartonCode; } object[] stack2RcardList = inventoryFacade.QueryStacktoRcardByRcardAndCarton(((Pallet2RCard)pallet2RCardList[i]).RCard, cartonCode); if (stack2RcardList != null && !((StackToRcard)stack2RcardList[0]).StackCode.Equals(stackCode)) { ApplicationRun.GetInfoForm().Add( new UserControl.Message(MessageType.Error, "$CS_RCARD_IS_NOT_INSAME_STACK:" + ((StackToRcard)stack2RcardList[0]).StackCode)); return(false); } } return(true); }
private bool CheckRcardInput(string rcard, bool needAddToGrid) { if (!this.CheckSelecetedStackAndStorage(this.SelectedStorage, this.SelectedStack, Convert.ToString(this.ucLabelComboxINVType.SelectedItemValue))) { return(false); } InventoryFacade objInvFacade = new InventoryFacade(this.DataProvider); DataTable dtInfo = objInvFacade.GetSimulationReportInfo(rcard, packRcard); if (dtInfo.Rows.Count == 0) { //该序列号不存在 ApplicationRun.GetInfoForm().Add( new UserControl.Message(MessageType.Error, "$CS_RCARD_IS_NOT_EXIT")); return(false); } if (!CheckRule(rcard)) { return(false); } if (!CheckRcardIsInTheSameStack(rcard, this.ucLabelEditStock.Value)) { return(false); } PackageFacade pf = new PackageFacade(this.DataProvider); object objPalletRcrad = pf.GetPallet2RCardByRCard(rcard); string palletCode = ""; if (objPalletRcrad != null) { palletCode = ((Pallet2RCard)objPalletRcrad).PalletCode; //序列号存在栈板,请以栈板号来进行入库 //ApplicationRun.GetInfoForm().Add( //new UserControl.Message(MessageType.Error, "$CS_RCARD_EXIST_PALLET=" + palletCode)); //return false; } //foreach (DataRow dr in dtInfo.Rows) //{ DataRow dr = dtInfo.Rows[0]; if (!this.CheckStackAndRcardInfo(dr["rcard"].ToString(), this.ucLabelEditStock.Value.Trim(), dr["itemcode"].ToString(), palletCode, this.ucLabelComboxCompany.SelectedItemValue.ToString(), this.ucLabelComboxINVType.SelectedItemValue.ToString())) { return(false); } else { if (needAddToGrid) { if (CheckDuplicateInput(rcard, packRcard)) { //重复输入 ApplicationRun.GetInfoForm().Add( new UserControl.Message(MessageType.Error, "$CS_IDRepeatCollect $CS_Param_RunSeq=" + dr["rcard"].ToString())); return(false); } if (objInvFacade.CheckStackIsOnlyAllowOneItem(this.ucLabelEditStock.Value.Trim()) && CheckExistItem(dr["itemcode"].ToString())) { ApplicationRun.GetInfoForm().Add( new UserControl.Message(MessageType.Error, "$CS_ONLY_ONE_ITEM_IN_STACK")); return(false); } DataRow drNew = this.m_dtRcard.NewRow(); drNew["palletcode"] = palletCode; drNew["cartoncode"] = dr["cartoncode"]; drNew["rcard"] = dr["rcard"]; drNew["mocode"] = dr["mocode"]; drNew["itemcode"] = dr["itemcode"]; drNew["itemdesc"] = dr["itemdesc"]; drNew["inputtype"] = packRcard; drNew["sscode"] = dr["sscode"]; this.m_dtRcard.Rows.Add(drNew); this.ucLabelEditQty.Value = Convert.ToString(Convert.ToInt32(this.ucLabelEditQty.Value) + 1); } } //} return(true); }
/// <summary> /// 成品入库检查 /// </summary> /// <returns>true/false</returns> private bool CheckStackAndRcardInfo(string rcard, string stackCode, string itemCode, string palletCode, string companyCode, string storageCode) { DataCollectFacade dcFacade = new DataCollectFacade(this.DataProvider); SimulationReport report = dcFacade.GetLastSimulationReport(rcard); if (report != null) { if (!report.ItemCode.Equals(itemCode)) { //Message:产品序列号所对应的物料与输入物料不对应 ApplicationRun.GetInfoForm().Add( new UserControl.Message(MessageType.Error, "$CS_PRODUCT_ITEM_NOT_SAME $ITEM_CODE=" + report.ItemCode)); return(false); } } ////Check从垛位使用状况的页面带过来的垛位和库位 //if (!this.CheckSelecetedStackAndStorage(this.SelectedStorage, this.SelectedStack, Convert.ToString(this.ucLabelComboxINVType.SelectedItemValue))) //{ // return false; //} //else //{ //Check序列号对应的料号是否和垛位的不一样 InventoryFacade inventoryFacade = new InventoryFacade(this.DataProvider); object[] objStackToRcards = inventoryFacade.GetAnyStack2RCardByStack(stackCode); if (objStackToRcards != null) { if (inventoryFacade.CheckStackIsOnlyAllowOneItem(stackCode) && !((StackToRcard)objStackToRcards[0]).ItemCode.Equals(itemCode)) { //垛位的料号和当前产品的料号不一至 //ucMessage1.AddEx(this._FunctionName, this.opsetPackObject.CheckedItem.DisplayText + ": " + this.txtRCard.Value + ";料号:" + this.txtItemCode.Value, new UserControl.Message(MessageType.Error, "$CS_STACK_AND_PRODUCT_ITEM_NOT_SAME"), true); ApplicationRun.GetInfoForm().Add( new UserControl.Message(MessageType.Error, "$CS_STACK_AND_PRODUCT_ITEM_NOT_SAME $ITEM_CODE=" + itemCode)); return(false); } } //Check 序列号是否已经入过库 object objStarckToRcard = inventoryFacade.GetStackToRcard(rcard); if (objStarckToRcard != null) { //序列号重复入库 //ucMessage1.AddEx(this._FunctionName, "序列号" + ": " + this.txtRCard.Value, new UserControl.Message(MessageType.Error, "$CS_SERIAL_EXIST"), true); ApplicationRun.GetInfoForm().Add( new UserControl.Message(MessageType.Error, "$CS_SERIAL_EXIST $SERIAL_NO=" + rcard)); return(false); } //} //Check 序列号是否已经在其他栈板上 PackageFacade objPFFacade = new PackageFacade(this.DataProvider); object objPallet2RCard = objPFFacade.GetPallet2RCardByRCard(rcard); if (objPallet2RCard != null) { ApplicationRun.GetInfoForm().Add( new UserControl.Message(MessageType.Error, "$CS_RCARD_EXIST_IN_PALLET " + ((Pallet2RCard)objPallet2RCard).PalletCode)); return(false); } //Check栈板(如果入栈板,而且栈板在系统中已经存在)的公司别,产品别和产品等级是否和当前的一致 if (palletCode.Length > 0) { object[] objStackToRcardList = inventoryFacade.GetStackToRcardInfoByPallet(palletCode); if (objStackToRcardList != null) { string strErrorMessage = string.Empty; StackToRcard obj = (StackToRcard)objStackToRcardList[0]; if (obj.ItemCode != itemCode) { strErrorMessage = strErrorMessage + "itemcode"; ApplicationRun.GetInfoForm().Add( new UserControl.Message(MessageType.Error, "$CS_ITEM_NOT_SAME_IN_PALLET=" + obj.ItemCode)); } if (obj.Company != companyCode) { strErrorMessage = strErrorMessage + "companycode"; ApplicationRun.GetInfoForm().Add( new UserControl.Message(MessageType.Error, "$CS_COMPANY_NOT_SAME_IN_PALLET=" + obj.Company)); } //if (obj.ItemGrade != itemGrade) //{ // //ApplicationRun.GetInfoForm().Add( // //new UserControl.Message(MessageType.Error, "$CS_RCARD_EXIST_IN_PALLET" + ((Pallet2RCard)objPallet2RCard).PalletCode)); // //return false; // strErrorMessage = strErrorMessage + "itemgrade"; // ApplicationRun.GetInfoForm().Add( // new UserControl.Message(MessageType.Error, "$CS_ITEMGRADE_NOT_SAME_IN_PALLET=" + obj.ItemGrade)); //} if (strErrorMessage != string.Empty) { return(false); } } else { if (!inventoryFacade.CheckStackCapacity(storageCode, stackCode)) { ApplicationRun.GetInfoForm().Add( new UserControl.Message(MessageType.Error, "$CS_STACK_CAPACITY_FULL")); return(false); } } } //Check 出库的产品和当前选择的产品不一致 object[] outTransList = inventoryFacade.GetInvOutTransaction(rcard, ""); if (outTransList != null) { if (!((InvOutTransaction)outTransList[0]).ItemCode.Equals(itemCode)) { //Message:出库的产品:XXXXXXXXXXX和当前选择的产品不一致,是否继续使用当前选择的产品 if (MessageBox.Show(UserControl.MutiLanguages.ParserMessage("$CS_OUT_INV_ITEM_NOT_SAME") + "=" + ((InvOutTransaction)outTransList[0]).ItemCode + "," + UserControl.MutiLanguages.ParserMessage("$CS_OUT_INV_ITEM_NOT_SAME_ASK") + "?", UserControl.MutiLanguages.ParserMessage("$CS_CONFIRM"), MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return(false); } } } if (!this.CheckRule(rcard)) { return(false); } return(true); }