Beispiel #1
0
        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);
            }
        }
Beispiel #2
0
 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();
     }
 }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        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());
        }
Beispiel #6
0
        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();
            }
        }
Beispiel #7
0
        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);
        }
Beispiel #8
0
 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;
        }