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); } }
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); }