示例#1
0
        public WIPWHTotal(Session session, ProdRouteListTransfer rTransfer)
            : base(session)
        {
            _Warehouse = rTransfer.ProdOrder.Warehouse;
            OnChanged("Warehouse");

            _PhysicalQty = 0;
            OnChanged("PhysicalQty");

            _AvailQty = 0;
            OnChanged("AvailQty");

            _Item = rTransfer.ProdOrder.Item;
            OnChanged("Item");
        }
        private void btnCancelProdRouteListTransfer_Execute(object sender, SimpleActionExecuteEventArgs e)
        {
            UnitOfWork uow = (UnitOfWork)((XPObjectSpace)View.ObjectSpace).Session;
            uow.BeginTransaction();

            try
            {
                rListTransfer = (ProdRouteListTransfer)View.CurrentObject;

                rListTransfer.Cancel();
                uow.CommitTransaction();
                View.ObjectSpace.Refresh();
            }
            catch (Exception ex)
            {
                DevExpress.XtraEditors.XtraMessageBox.Show(ex.Message, "錯誤", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error);
                uow.RollbackTransaction();
            }

            UpdateViewState();
        }
示例#3
0
        private void btnAllocatePO_Click(object sender, EventArgs e)
        {
            XPCollection<SalesOrderLine> salesOrderLines;
            uow.BeginTransaction();

            if (chkAllPO.Checked == true)
                salesOrderLines = SalesOrderLine.GetOpenSalesOrderLine(uow, ProdRoute.Item, DateTime.Today.AddYears(1));
            else
                salesOrderLines = SalesOrderLine.GetOpenSalesOrderLine(uow, ProdRoute.Item);

            float balQty = this.IssueQty;
            float soQty = 0;
            float invQty = 0;

            ProdOrder prodOrder = uow.FindObject<ProdOrder>(new BinaryOperator("OrderNo", ProdRoute.ProdOrder.OrderNo));
            ArrayList shipmentList = new ArrayList();

            soList = new ArrayList();

            if (chkAllWarehouse.Checked != true)
            {
                foreach (SalesOrderLine soLine in salesOrderLines)
                {
                    if (soLine.LackQty > 0)
                    {
                        Shipment shipment;

                        if (soLine.LackQty > balQty)
                        {
                            shipment = soLine.CreateShipment(uow, balQty);
                            shipment.ProdOrder = prodOrder;
                            shipment.ProdRoute = this.ProdRoute;
                            soQty = soQty + balQty;
                            balQty = 0;
                        }
                        else
                        {
                            balQty = balQty - soLine.LackQty;
                            soQty = soQty + soLine.LackQty;
                            shipment = soLine.CreateShipment(uow, soLine.LackQty);
                            shipment.ProdOrder = prodOrder;
                            shipment.ProdRoute = this.ProdRoute;
                        }

                        shipmentList.Add(shipment);
                        shipment.Save();

                        SoGrid soGrid = new SoGrid(shipment);
                        soList.Add(soGrid);
                    }
                }
            }

            invQty = balQty;

            if (invQty > 0)
            {
                // Change to Create RoutListTransfer //
                ProdRouteListTransfer rListTransfer = new ProdRouteListTransfer(uow);
                rListTransfer.ProdOrder = this.ProdRoute.ProdOrder;
                rListTransfer.FromProdRoute = this.ProdRoute;
                rListTransfer.Qty = invQty;
                rListTransfer.ScrapQty = 0;
                rListTransfer.ToProdRoute = this.ProdRoute;
                //rListTransfer.IRNo = this. .ProdRoute mpFQC.IrNo;
                rListTransfer.Save();
            }

            uow.CommitTransaction();

            txtTotalPOQty.Text = soQty.ToString();
            txtTotalWHQty.Text = invQty.ToString();
            btnAllocatePO.Enabled = false;
            btnPrintLabel.Enabled = true;
            gridPO.DataSource = soList;
        }
示例#4
0
        public void Post()
        {
            ProdRoute ToProdRoute = this.ProdOrder.GetFirstProdRoute();

            if (ToProdRoute == null)
            {
                DevExpress.XtraEditors.XtraMessageBox.Show(string.Format("不能開始生產單{0}, 因為没有流程", this.ProdOrder.OrderNo), "提示", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Warning);
                return;
            }

            if (this.Status != OrderStartStatus.Active)
            {
                DevExpress.XtraEditors.XtraMessageBox.Show(string.Format("不能開始生產單{0}, 因為狀態不是{1}", this.ProdOrder.OrderNo, ProdOrderStart.OrderStartStatus.Active.ToString()), "提示", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Warning);
                return;
            }

            ProdRouteListTransfer rListTransfer = new ProdRouteListTransfer(Session);
            rListTransfer.ProdOrder = this.ProdOrder;
            //rListTransfer.FromProdRoute = null ; // No FromProdRoute for the first Start.
            rListTransfer.ToProdRoute = ToProdRoute;
            rListTransfer.ToCellLine = this.ProdOrder.CellLine;
            rListTransfer.Qty = this.Qty;
            rListTransfer.ScrapQty = 0;
            rListTransfer.Save();
            rListTransfer.Post();

            _Status = OrderStartStatus.Complete;
            OnChanged("Status");

            _StartedDate = ServerHelper.GetCurrentDateTime();
            OnChanged("StartedDate");

            _StartedBy = base.CurrentUser;
            OnChanged("StartedBy");
        }
示例#5
0
        private void CreateRListTransfer()
        {
            ProdRouteListTransfer sorListTransfer = new ProdRouteListTransfer(Session);

            sorListTransfer.ProdOrder = this.ProdOrder;
            sorListTransfer.FromProdRoute = this.ProdRoute;
            sorListTransfer.Qty = this.Qty;
            sorListTransfer.ScrapQty = 0;
            sorListTransfer.IsToSO = true;
            sorListTransfer.Remark = "出货单号 - " + this.PackingListNo;
            sorListTransfer.Save();
            sorListTransfer.Post();
        }
        private void btnSplitProdRouteListTransfer_Execute(object sender, SimpleActionExecuteEventArgs e)
        {
            if (View.CurrentObject == null)
                return;

            UnitOfWork uow = (UnitOfWork)((XPObjectSpace)View.ObjectSpace).Session;

            uow.BeginTransaction();

            rListTransfer = (ProdRouteListTransfer)View.CurrentObject;

            float SplitQty = 0;

            try
            {
                SplitQty = float.Parse(Microsoft.VisualBasic.Interaction.InputBox(
                    string.Format("你已选取了单号 : {0}, 产品编码 : {1}, 数量 : {2}\n请输入要分单数量 !! ",
                    rListTransfer.ProdOrder.OrderNo, rListTransfer.ProdOrder.Item.ItemNo, rListTransfer.Qty),
                    "分单", "", 0, 0));

                if (SplitQty >= rListTransfer.Qty)
                {
                    XtraMessageBox.Show(string.Format("不能分单, 分单数量 {0} 大于原有数量 {1}", SplitQty, rListTransfer.Qty), "错误");
                    uow.RollbackTransaction();
                    return;
                }

                rListTransfer.Qty = rListTransfer.Qty - SplitQty;
                rListTransfer.Save();

                ProdRouteListTransfer newListTransfer = new ProdRouteListTransfer(uow);
                newListTransfer.FromCellLine = rListTransfer.FromCellLine;
                newListTransfer.FromProdRoute = rListTransfer.FromProdRoute;
                newListTransfer.IRNo = rListTransfer.IRNo;
                newListTransfer.IsToSO = rListTransfer.IsToSO;
                newListTransfer.Qty = SplitQty;
                newListTransfer.ProdOrder = rListTransfer.ProdOrder;
                newListTransfer.Remark = rListTransfer.Remark;
                newListTransfer.ToCellLine = rListTransfer.ToCellLine;
                newListTransfer.ToProdRoute = rListTransfer.ToProdRoute;
                newListTransfer.Save();

                uow.CommitTransaction();

                View.ObjectSpace.Refresh();
            }
            catch (Exception ex)
            {
                XtraMessageBox.Show(string.Format("不能分单, 错误信息如下: \n{0}", ex.Message), "错误");
                uow.RollbackTransaction();
            }
        }
        private void CreateProdOrderFinishToHKWarehouse(SimpleActionExecuteEventArgs e)
        {
            UnitOfWork uow = new UnitOfWork();

            uow.BeginTransaction();
            rListTransfer = (ProdRouteListTransfer)View.CurrentObject;
            ProdOrder prodOrder = uow.GetObjectByKey<ProdOrder>(rListTransfer.ProdOrder.Oid);
            WareHouse hkWH = WareHouse.Find(uow, "HK良品仓");
            prodOrderFinish = new ProdOrderFinish(uow);
            prodOrderFinish.ProdOrder = prodOrder;
            prodOrderFinish.Qty = rListTransfer.Qty;
            prodOrderFinish.Warehouse = hkWH;
            prodOrderFinish.ScrapQty = rListTransfer.ScrapQty;
            prodOrderFinish.ScrapWarehouse = hkWH;
            prodOrderFinish.Save();
            uow.CommitChanges();

            ProdRouteListTransfer rL = uow.GetObjectByKey<ProdRouteListTransfer>(rListTransfer.Oid);
            prodOrderFinish.Post(uow);
            rL.Post();

            uow.CommitTransaction();

            View.ObjectSpace.Refresh();
        }
        private void ConfirmProdRouteListTransfer_Execute(object sender, SimpleActionExecuteEventArgs e)
        {
            try
            {
                rListTransfer = (ProdRouteListTransfer)View.CurrentObject;

                if (rListTransfer.ToProdRoute == null)
                    CreateProdOrderFinish(e);
                else
                {
                    uow = (UnitOfWork)((XPObjectSpace)View.ObjectSpace).Session;
                    uow.BeginTransaction();
                    rListTransfer.Post();
                    uow.CommitChanges();
                    View.ObjectSpace.Refresh();
                }
            }
            catch (Exception ex)
            {
                XtraMessageBox.Show(ex.Message, "錯誤", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error);
                uow.RollbackTransaction();
            }

            UpdateViewState();

            //View.ObjectSpace.Refresh();
        }