private void UpdateView() { if (this.OrderNo != null) { OrderHead orderHead = TheOrderHeadMgr.LoadOrderHead(this.OrderNo); string orderStatus = orderHead.Status; #region 只有Create状态,控件可以输入 TextBox tbWinTime = (TextBox)this.FV_Order.FindControl("tbWinTime"); TextBox tbStartTime = (TextBox)this.FV_Order.FindControl("tbStartTime"); if (orderStatus != BusinessConstants.CODE_MASTER_STATUS_VALUE_CREATE) { TextBox tbExtOrderNo = (TextBox)this.FV_Order.FindControl("tbExtOrderNo"); TextBox tbRefOrderNo = (TextBox)this.FV_Order.FindControl("tbRefOrderNo"); TextBox tbMemo = (TextBox)this.FV_Order.FindControl("tbMemo"); if (tbExtOrderNo != null) { tbExtOrderNo.Attributes.Add("onfocus", "this.blur();"); } if (tbRefOrderNo != null) { tbRefOrderNo.Attributes.Add("onfocus", "this.blur();"); } if (tbMemo != null) { tbMemo.Attributes.Add("onfocus", "this.blur();"); } if (tbWinTime != null) { tbWinTime.Attributes.Add("onfocus", "this.blur();"); } if (tbStartTime != null) { tbStartTime.Attributes.Add("onfocus", "this.blur();"); } } else { string userLanguage = this.CurrentUser.UserLanguage; tbWinTime.Attributes.Add("onclick", "WdatePicker({dateFmt:'yyyy-MM-dd HH:mm',lang:'" + this.CurrentUser.UserLanguage + "'})"); tbStartTime.Attributes.Add("onclick", "WdatePicker({dateFmt:'yyyy-MM-dd HH:mm',lang:'" + this.CurrentUser.UserLanguage + "'})"); } #endregion #region 根据订单状态显示按钮 if (orderStatus == BusinessConstants.CODE_MASTER_STATUS_VALUE_CREATE) { this.btnEdit.Visible = true; this.btnSubmit.Visible = true; this.btnCancel.Visible = false; this.btnStart.Visible = false; this.btnReceive.Visible = false; this.btnComplete.Visible = false; this.btnDelete.Visible = true; } else if (orderStatus == BusinessConstants.CODE_MASTER_STATUS_VALUE_SUBMIT) { this.btnEdit.Visible = false; this.btnSubmit.Visible = false; this.btnCancel.Visible = true; this.btnStart.Visible = true; this.btnReceive.Visible = false; this.btnComplete.Visible = false; this.btnDelete.Visible = false; } else if (orderStatus == BusinessConstants.CODE_MASTER_STATUS_VALUE_CANCEL) { this.btnEdit.Visible = false; this.btnSubmit.Visible = false; this.btnCancel.Visible = false; this.btnStart.Visible = false; this.btnReceive.Visible = false; this.btnComplete.Visible = false; this.btnDelete.Visible = false; } else if (orderStatus == BusinessConstants.CODE_MASTER_STATUS_VALUE_INPROCESS) { this.btnEdit.Visible = false; this.btnSubmit.Visible = false; this.btnCancel.Visible = true; this.btnStart.Visible = false; this.btnReceive.Visible = true; this.btnComplete.Visible = true; this.btnDelete.Visible = false; } else if (orderStatus == BusinessConstants.CODE_MASTER_STATUS_VALUE_COMPLETE) { this.btnEdit.Visible = false; this.btnSubmit.Visible = false; this.btnCancel.Visible = false; this.btnStart.Visible = false; this.btnReceive.Visible = false; this.btnComplete.Visible = false; this.btnDelete.Visible = false; } else if (orderStatus == BusinessConstants.CODE_MASTER_STATUS_VALUE_CLOSE) { this.btnEdit.Visible = false; this.btnSubmit.Visible = false; this.btnCancel.Visible = false; this.btnStart.Visible = false; this.btnReceive.Visible = false; this.btnComplete.Visible = false; this.btnDelete.Visible = false; } #endregion //原材料报废 if (this.IsScrap) { btnEdit.Visible = false; btnSubmit.Visible = false; btnStart.Visible = false; btnCancel.Visible = false; btnExport.Visible = false; btnPrint.Visible = false; if (orderHead.Status == BusinessConstants.CODE_MASTER_STATUS_VALUE_CREATE) { btnConfirm.Visible = true; } else { btnConfirm.Visible = false; } } this.ucDetail.InitPageParameter(this.OrderNo); } }
private void ReceiveRender(object sender, EventArgs e) { bool isOddCreateHu = (bool)sender; IList <ReceiptDetail> receiptDetailList = this.ucDetailList.PopulateReceiptDetailList(); bool isReceiptOneItem = bool.Parse(TheEntityPreferenceMgr.LoadEntityPreference(BusinessConstants.ENTITY_PREFERENCE_CODE_IS_RECEIPT_ONE_ITEM).Value); if (this.ModuleType == BusinessConstants.CODE_MASTER_ORDER_TYPE_VALUE_PRODUCTION && this.ModuleSubType == BusinessConstants.CODE_MASTER_ORDER_SUB_TYPE_VALUE_ADJ && isReceiptOneItem && receiptDetailList.Count > 1) { ShowErrorMessage("MasterData.Receipt.One.Item"); return; } IList <OrderLocationTransaction> inLocTransList = new List <OrderLocationTransaction>(); foreach (ReceiptDetail receiptDetail in receiptDetailList) { OrderLocationTransaction ol = receiptDetail.OrderLocationTransaction; ol.CurrentReceiveQty = ol.UnitQty * (receiptDetail.ReceivedQty.HasValue ? (decimal)receiptDetail.ReceivedQty : 0); ol.CurrentRejectQty = ol.UnitQty * (receiptDetail.RejectedQty.HasValue ? (decimal)receiptDetail.RejectedQty : 0); ol.CurrentScrapQty = ol.UnitQty * (receiptDetail.ScrapQty.HasValue ? (decimal)receiptDetail.ScrapQty : 0); inLocTransList.Add(ol); } IList <OrderLocationTransaction> orderLocTransList = this.ucInLocTransList.InLocTransList; //投入原材料List IList <OrderLocationTransaction> outLocTransList = new List <OrderLocationTransaction>(); //非零原材料List IList <OrderLocationTransaction> rwoLocTransList = new List <OrderLocationTransaction>(); //返工成品List foreach (OrderLocationTransaction inLocTrans in this.ucInLocTransList.InLocTransList) { if (inLocTrans.BomDetail == null) { rwoLocTransList.Add(inLocTrans); } else if (inLocTrans.CurrentReceiveQty != 0) { outLocTransList.Add(inLocTrans); } } try { #region 正常生产收货 if (outLocTransList.Count > 0) { foreach (ReceiptDetail receiptDetail in receiptDetailList) { foreach (OrderLocationTransaction orderLocationTransaction in outLocTransList) { MaterialFlushBack materialFlushBack = new MaterialFlushBack(); materialFlushBack.RawMaterial = orderLocationTransaction.Item; materialFlushBack.Uom = orderLocationTransaction.OrderDetail.Uom; materialFlushBack.Operation = orderLocationTransaction.Operation; materialFlushBack.Qty = orderLocationTransaction.CurrentReceiveQty; IList <MaterialFlushBack> materialFlushBackList = TheMaterialFlushBackMgr.AssignMaterialFlushBack(materialFlushBack, inLocTransList); foreach (MaterialFlushBack m in materialFlushBackList) { if (m.OrderLocationTransaction.OrderDetail.Id == receiptDetail.OrderLocationTransaction.OrderDetail.Id) { if (m.OrderLocationTransaction.UnitQty != 0) { m.Qty = m.Qty / m.OrderLocationTransaction.UnitQty; } materialFlushBack = m; receiptDetail.AddMaterialFlushBack(materialFlushBack); break; } } } } } #endregion #region 新品收货 if (this.IsNewItem) { IList <TransformerDetail> transformerDetailList = this.ucNewItemInLocTransList.NewItemInLocTransList; //新品原材料List if (transformerDetailList.Count > 0) { foreach (ReceiptDetail receiptDetail in receiptDetailList) { foreach (TransformerDetail transformerDetail in transformerDetailList) { MaterialFlushBack materialFlushBack = new MaterialFlushBack(); LocationLotDetail newItemLocationLotDetail = TheLocationLotDetailMgr.LoadLocationLotDetail(transformerDetail.LocationLotDetId); materialFlushBack.RawMaterial = newItemLocationLotDetail.Item; materialFlushBack.Uom = newItemLocationLotDetail.Hu.Uom; materialFlushBack.Qty = newItemLocationLotDetail.Qty; materialFlushBack.HuId = newItemLocationLotDetail.Hu.HuId; IList <MaterialFlushBack> materialFlushBackList = TheMaterialFlushBackMgr.AssignMaterialFlushBack(materialFlushBack, inLocTransList); foreach (MaterialFlushBack m in materialFlushBackList) { if (m.OrderLocationTransaction.OrderDetail.Id == receiptDetail.OrderLocationTransaction.OrderDetail.Id) { if (m.OrderLocationTransaction.UnitQty != 0) { m.Qty = m.Qty / m.OrderLocationTransaction.UnitQty; } materialFlushBack = m; receiptDetail.AddMaterialFlushBack(materialFlushBack); break; } } } } } } #endregion #region 返工收货 if (rwoLocTransList.Count > 0) { foreach (OrderLocationTransaction rwoOrderLocTran in rwoLocTransList) { foreach (ReceiptDetail receiptDetail in receiptDetailList) { if (receiptDetail.OrderLocationTransaction.Item.Code == rwoOrderLocTran.Item.Code) { MaterialFlushBack materialFlushBack = new MaterialFlushBack(); materialFlushBack.RawMaterial = rwoOrderLocTran.Item; materialFlushBack.Uom = rwoOrderLocTran.OrderDetail.Uom; materialFlushBack.Operation = rwoOrderLocTran.Operation; materialFlushBack.Qty = rwoOrderLocTran.CurrentReceiveQty; IList <MaterialFlushBack> materialFlushBackList = TheMaterialFlushBackMgr.AssignMaterialFlushBack(materialFlushBack, inLocTransList); foreach (MaterialFlushBack m in materialFlushBackList) { if (m.OrderLocationTransaction.OrderDetail.Id == receiptDetail.OrderLocationTransaction.OrderDetail.Id) { if (m.OrderLocationTransaction.UnitQty != 0) { m.Qty = m.Qty / m.OrderLocationTransaction.UnitQty; } materialFlushBack = m; receiptDetail.AddMaterialFlushBack(materialFlushBack); break; } } } } } } #endregion Receipt receipt = TheOrderMgr.ReceiveOrder(receiptDetailList, this.CurrentUser, null, null, null, true, isOddCreateHu); OrderHead orderHead = TheOrderHeadMgr.LoadOrderHead(this.OrderNo); if (RefreshListEvent != null) { this.RefreshListEvent(new object[] { receipt.ReceiptNo, orderHead.NeedPrintReceipt }, e); } } catch (BusinessErrorException ex) { this.ShowErrorMessage(ex); } }