public void UpdateQty() { _ReceiveQty = 0; _ReceiveDefectQty = 0; _ReceiveNWDefectQty = 0; _BalQty = 0; _LostQty = 0; foreach (SubProdOrderReceive receive in SubProdOrderReceives) { if (receive.OrderStatus == SubProdOrderReceive.ReceiveStatus.Complete) { _ReceiveQty = _ReceiveQty + receive.Qty; _ReceiveDefectQty = _ReceiveDefectQty + receive.DefectQty; _ReceiveNWDefectQty = _ReceiveNWDefectQty + receive.NWDefectQty; _LostQty = _LostQty + receive.LostQty; } } _BalQty = Qty - _ReceiveQty - _ReceiveDefectQty - _ReceiveNWDefectQty - _LostQty ; if (_BalQty < 0) throw new Exception(string.Format("生产单 {0} 余数不能少于0", OrderNo)); OnChanged("BalQty"); OnChanged("ReceiveQty"); OnChanged("ReceiveDefectQty"); OnChanged("ReceiveNWDefectQty"); OnChanged("LostQty"); if (OrderStatus != ProdOrderStatus.Cancel && OrderStatus != ProdOrderStatus.Waiting) { if (_BalQty == 0) _OrderStatus = ProdOrderStatus.Complete; else _OrderStatus = ProdOrderStatus.Active; OnChanged("OrderStatus"); } }
public void CancelProdOrder() { _OrderStatus = ProdOrderStatus.Cancel; OnChanged("OrderStatus"); }
public void ReActiveProdOrder() { if (BalQty > 0) { _OrderStatus = ProdOrderStatus.Active; } else { _OrderStatus = ProdOrderStatus.Complete; } OnChanged("OrderStatus"); }
public void UpdateStartQty() { _StartQty = 0; foreach (ProdOrderStart orderStart in ProdOrderStarts) { if (orderStart.Status != ProdOrderStart.OrderStartStatus.Cancel) _StartQty += orderStart.Qty; } OnChanged("StartQty"); if ((OrderStatus == ProdOrderStatus.Calculated || OrderStatus == ProdOrderStatus.Waiting ) && _StartQty > 0 ) { _OrderStatus = ProdOrderStatus.Active; OnChanged("OrderStatus"); } this.updateTimeStamp = false; }
public void ReActiveOrder(UnitOfWork uow) { _OrderStatus = ProdOrderStatus.Active; OnChanged("OrderStatus"); Save(); }
public void CompleteOrder(UnitOfWork uow) { // TODO : Validate the Order; bool isValid = true; StringBuilder sb = new StringBuilder(); foreach (ProdBom pBom in ProdBoms) { if (pBom.RemainReturnQty > 1 || pBom.RemainReturnQty < -1) { isValid = false; sb.AppendLine(String.Format("产品 '{0}' 还有余数 {1} 未入仓 !! ", pBom.bomItem.ItemNo, pBom.RemainReturnQty)); } } foreach (ProdOrderStart prodOrderStart in ProdOrderStarts) { if (prodOrderStart.Status == ProdOrderStart.OrderStartStatus.Waiting || prodOrderStart.Status == ProdOrderStart.OrderStartStatus.Active) { isValid = false; sb.AppendLine(String.Format("生产开始单 '{0}' 还未过帐 !!", prodOrderStart.ProdOrderStartNo)); } } XPCollection<ProdOrderPickList> prodOrderPickLists = new XPCollection<ProdOrderPickList>(Session); prodOrderPickLists.Criteria = CriteriaOperator.Parse(string.Format("Status == '{0}' && ProdOrder.Oid == '{1}'", ProdOrderPickList.PickListStatus.Waiting, this.Oid)); foreach (ProdOrderPickList poPickList in prodOrderPickLists) { isValid = false; sb.AppendLine(String.Format("产品 '{0}' 已发领料单但未过帐 !! ", poPickList.Item.ItemNo)); } XPCollection<ProdOrderReturnList> prodOrderReturnLists = new XPCollection<ProdOrderReturnList>(Session); prodOrderReturnLists.Criteria = CriteriaOperator.Parse(string.Format("Status == '{0}' && ProdOrder.Oid == '{1}'", ProdOrderReturnList.ProdOrderReturnListStatus.Waiting, this.Oid)); foreach (ProdOrderReturnList poReturnList in prodOrderReturnLists) { isValid = false; sb.AppendLine(String.Format("产品 '{0}' 已退入仓但未过帐 !! ", poReturnList.Item.ItemNo)); } if (isValid) { _CompletedBy = base.CurrentUser; OnChanged("CompletedBy"); _CompletedDate = ServerHelper.GetCurrentDateTime(); OnChanged("CompletedDate"); _OrderStatus = ProdOrderStatus.Complete; OnChanged("OrderStatus"); this.Save(); } else { if (SecurityHelper.IsAdministrator()) { DialogResult result = DevExpress.XtraEditors.XtraMessageBox.Show(string.Format("{0}\n{1}", "你有管理员权限可以结此单 !!", sb.ToString()), string.Format("錯誤 - 生产单 {0} 不能结单", this.OrderNo), MessageBoxButtons.YesNo, MessageBoxIcon.Error); if (result == DialogResult.Yes) { _CompletedBy = base.CurrentUser; OnChanged("CompletedBy"); _CompletedDate = ServerHelper.GetCurrentDateTime(); OnChanged("CompletedDate"); _OrderStatus = ProdOrderStatus.Complete; OnChanged("OrderStatus"); this.Save(); } } else { DevExpress.XtraEditors.XtraMessageBox.Show(sb.ToString(), string.Format("錯誤 - 生产单 {0} 不能结单", this.OrderNo), MessageBoxButtons.OK, MessageBoxIcon.Error); } } }
public void CancelOrder(UnitOfWork uow) { _OrderStatus = ProdOrderStatus.Cancel; OnChanged("OrderStatus"); Save(); }
public void CalculateOrder(UnitOfWork uow) { foreach (ProdBom prodBom in ProdBoms) { prodBom.CalculateOrder(uow); } _OrderStatus = ProdOrderStatus.Calculated; OnChanged("OrderStatus"); this.updateTimeStamp = false; this.Save(); }