void btnOK_Click(object sender, EventArgs e) { if (prodOrderP.dictItemList.ContainsKey(cboWorkOper.Text) && prodOrderP.ProdOrderGroup != null && float.Parse(txtNeedQty.Text.ToString()) > 0) { UnitOfWork uow = (UnitOfWork)((XPObjectSpace)detailView.ObjectSpace).Session; try { uow.BeginTransaction(); Item item = prodOrderP.dictItemList[cboWorkOper.Text]; Item item2 = uow.FindObject<Item>(DevExpress.Data.Filtering.CriteriaOperator.Parse(string.Format("Oid = '{0}'", item.Oid))); ProdOrderGroup prodOrderGroup = uow.FindObject<ProdOrderGroup>(DevExpress.Data.Filtering.CriteriaOperator.Parse(string.Format("Oid = '{0}'", prodOrderP.ProdOrderGroup.Oid))); WareHouse warehouse = uow.FindObject<WareHouse>(DevExpress.Data.Filtering.CriteriaOperator.Parse(string.Format("Oid = '{0}'", prodOrderP.defaultWH.Oid))); ProdOrder prodOrder = new ProdOrder(uow); prodOrder.Item = item2; prodOrder.Warehouse = warehouse; prodOrder.CellLine = txtMachine.Text; prodOrder.NeedDate = (DateTime)datNeedDate.EditValue; prodOrder.NeedQty = (float)txtNeedQty.Value; //prodOrder.ProdOrderGroup = prodOrderGroup; prodOrder.Save(); uow.CommitChanges(); DevExpress.XtraEditors.XtraMessageBox.Show(string.Format("成功建立生產單, 單號為 : {0}", prodOrder.OrderNo), "成功", MessageBoxButtons.OK, MessageBoxIcon.Information); View.Close(); } catch { uow.RollbackTransaction(); DevExpress.XtraEditors.XtraMessageBox.Show(string.Format("未能成功建立生產單"), "錯誤", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { DevExpress.XtraEditors.XtraMessageBox.Show(string.Format("未能成功建立生產單. \n請選好生產組, 工序名稱及數量"), "錯誤", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void CalculateProdOrder(ProdOrder pOrder) { UnitOfWork uow = new UnitOfWork(); // (UnitOfWork)((ObjectSpace)View.ObjectSpace).Session; ProdOrder prodOrder = ProdOrder.Find(uow, pOrder.OrderNo); try { uow.BeginTransaction(); prodOrder.CalculateOrder(uow); uow.CommitChanges(); View.ObjectSpace.Refresh(); } catch (Exception e) { DevExpress.XtraEditors.XtraMessageBox.Show(e.Message, string.Format("錯誤 - 生产单 {0} 不能计算", prodOrder.OrderNo)); uow.RollbackTransaction(); } }
private void StartProdOrder(ProdOrder prodOrder, SingleChoiceActionExecuteEventArgs e) { if (prodOrder.ProdRoutes.Count == 0) { DevExpress.XtraEditors.XtraMessageBox.Show(string.Format("此产品({0})还没有定义流程, 所以不能发单", prodOrder.Item.ItemNo), string.Format("生产单 {0}", prodOrder.OrderNo)); return; } if (prodOrder.ProdBoms.Count == 0) { DevExpress.XtraEditors.XtraMessageBox.Show(string.Format("此产品({0})还没有定义Bom, 所以不能发单", prodOrder.Item.ItemNo), string.Format("生产单 {0}", prodOrder.OrderNo)); return; } if (prodOrder.NeedQty - prodOrder.StartQty <= 0) { DialogResult result = DevExpress.XtraEditors.XtraMessageBox.Show("你曾经开始过这张生产单, 请问是否要重覆再开始?", "警告", MessageBoxButtons.YesNo); if (result == DialogResult.No) return; } XPObjectSpace objectSpace = (XPObjectSpace)Application.CreateObjectSpace(); prodOrderStart = objectSpace.CreateObject<ProdOrderStart>(); objectSpace.Committed += new EventHandler(objectSpace_ProdOrderStart); ProdOrder parentProdOrder = objectSpace.Session.GetObjectByKey<ProdOrder>(prodOrder.Oid); prodOrderStart.ProdOrder = parentProdOrder; prodOrderStart.Qty = parentProdOrder.NeedQty - parentProdOrder.StartQty; if (prodOrderStart.Qty < 0) prodOrderStart.Qty = 0; e.ShowViewParameters.CreatedView = Application.CreateDetailView(objectSpace, prodOrderStart); e.ShowViewParameters.TargetWindow = TargetWindow.NewModalWindow; e.ShowViewParameters.Context = TemplateContext.PopupWindow; e.ShowViewParameters.CreateAllControllers = true; DialogController dialogController = new DialogController(); e.ShowViewParameters.Controllers.Add(dialogController); }
private void FinishProdOrder(ProdOrder prodOrder, SingleChoiceActionExecuteEventArgs e) { XPObjectSpace objectSpace = (XPObjectSpace)Application.CreateObjectSpace(); objectSpace.Committed += new EventHandler(objectSpace_Committed); ProdOrderFinish prodOrderFinish = objectSpace.CreateObject<ProdOrderFinish>(); prodOrderFinish.ProdOrder = objectSpace.Session.GetObjectByKey<ProdOrder>(prodOrder.Oid); e.ShowViewParameters.CreatedView = Application.CreateDetailView(objectSpace, prodOrderFinish); e.ShowViewParameters.TargetWindow = TargetWindow.NewModalWindow; e.ShowViewParameters.Context = TemplateContext.PopupWindow; e.ShowViewParameters.CreateAllControllers = true; DialogController dialogController = new DialogController(); e.ShowViewParameters.Controllers.Add(dialogController); }
private void CreateRouteTransfer(ProdOrder prodOrder, SingleChoiceActionExecuteEventArgs e) { XPObjectSpace objectSpace = (XPObjectSpace)Application.CreateObjectSpace(); ProdRouteListTransfer rListTransfer = objectSpace.CreateObject<ProdRouteListTransfer>(); rListTransfer.ProdOrder = objectSpace.Session.GetObjectByKey<ProdOrder>(prodOrder.Oid); e.ShowViewParameters.CreatedView = Application.CreateDetailView(objectSpace, rListTransfer); e.ShowViewParameters.TargetWindow = TargetWindow.NewModalWindow; e.ShowViewParameters.Context = TemplateContext.PopupWindow; e.ShowViewParameters.CreateAllControllers = true; DialogController dialogController = new DialogController(); e.ShowViewParameters.Controllers.Add(dialogController); DevExpress.XtraEditors.XtraMessageBox.Show(rListTransfer.Status.ToString()); }
private void CompleteProdOrder(ProdOrder pOrder) { UnitOfWork uow = new UnitOfWork(); // (UnitOfWork)((ObjectSpace)View.ObjectSpace).Session; ProdOrder prodOrder = uow.GetObjectByKey<ProdOrder>(pOrder.Oid); try { uow.BeginTransaction(); prodOrder.CompleteOrder(uow); uow.CommitChanges(); View.ObjectSpace.Refresh(); } catch (Exception ex) { DevExpress.XtraEditors.XtraMessageBox.Show(ex.Message, string.Format("錯誤 - 生产单 {0} 不能结单", prodOrder.OrderNo)); uow.RollbackTransaction(); } }
public void CreateProdOrder(UnitOfWork uow) { ProdOrder newProdOrder = new ProdOrder(uow); newProdOrder.Item = bomItem; newProdOrder.OrderType = ProdOrder.OrderType; newProdOrder.NeedDate = ProdOrder.NeedDate; newProdOrder.NeedQty = RecommendQty; newProdOrder.SetParentOrder(ProdOrder); newProdOrder.Priority = ProdOrder.Priority; newProdOrder.Unit = Unit; newProdOrder.Warehouse = Warehouse; newProdOrder.GenerateChild(); newProdOrder.Save(); _RefNo = newProdOrder.OrderNo; _RefType = ReferenceType.Production; //_RefOid = newProdOrder; //OnChanged("RefOid"); OnChanged("RefNo"); OnChanged("RefType"); this.Save(); newProdOrder.CalculateOrder(uow); }
public void SetParentOrder(ProdOrder parentOrder) { _ParentProdOrder = parentOrder.OrderNo ; _RootProdOrder = parentOrder.RootProdOrder; OnChanged("RootProdOrder"); OnChanged("ParentProdOrder"); }
public void SetProdBom(ProdBom prodBom) { _ProdBom = prodBom; if (_ProdOrder != _ProdBom.ProdOrder) { _ProdOrder = _ProdBom.ProdOrder; OnChanged("ProdOrder"); } if (_Item != _ProdBom.bomItem) { _Item = _ProdBom.bomItem; OnChanged("Item"); } Warehouse = prodBom.Warehouse; this.Qty = prodBom.RemainReturnQty; }
private BindingList<ProdBomReturn> GetProdBomReturnIList(ProdOrder prodOrder) { XPCollection<ProdBom> prodBoms = new XPCollection<ProdBom>(session); prodBoms.Criteria = CriteriaOperator.Parse(string.Format("ProdOrder.Oid == '{0}' ", prodOrder.Oid)); BindingList<ProdBomReturn> prodBomReturns = new BindingList<ProdBomReturn>(); foreach (ProdBom pBom in prodBoms) { ProdBomReturn pReturn = new ProdBomReturn(); pReturn.Warehouse = pBom.Warehouse; pReturn.ProdBom = pBom; prodBomReturns.Add(pReturn); } return prodBomReturns; }