Exemplo n.º 1
0
 public override void _PhysicsProcess(float delta)
 {
     delta *= Game.SPEED;
     if (ActionInProgress == null)
     {
         IEnumerable <DefossiliserAction> doableActionsRightNow =
             possibleProcesses.Where(p => p.CanBeDoneWith(InInventory) && OutInventory.CanAdd(p.outItemID, p.outItemCount));
         if (doableActionsRightNow.Any())
         {
             ActionInProgress = doableActionsRightNow.OrderBy(action => action.ProcessingTime).First();
         }
     }
     else
     {
         if (ActionInProgress.CanBeDoneWith(InInventory) &&
             OutInventory.CanAdd(ActionInProgress.outItemID, ActionInProgress.outItemCount))
         {
             DefossilisingProgress += delta / ActionInProgress.ProcessingTime;
             if (DefossilisingProgress >= 1)
             {
                 OutInventory.TryAddItemStack(ActionInProgress.Process(InInventory));
                 Callback?.Invoke();
                 ActionInProgress      = null;
                 DefossilisingProgress = 0;
             }
         }
         else
         {
             ActionInProgress      = null;
             DefossilisingProgress = 0;
         }
     }
 }
Exemplo n.º 2
0
        private void BindGrid()
        {
            string message             = string.Empty;
            SalesCodeSearchInput input = new SalesCodeSearchInput();

            input.Code = this.txtCode.Text;
            if (this.dtFrom.Checked)
            {
                input.FromDate = this.dtFrom.Value;
            }
            if (this.dtTo.Checked)
            {
                input.ToDate = this.dtTo.Value;
            }
            input.isImport = this.checkBox1.Checked ? 1 : 0;

            OutInventory[] list = new OutInventory[0];
            if (this.Status == OutInventoryStatus.Outing)
            {
                list = PharmacyDatabaseService.GetSubmitedOutInventoryByCondition(out pager, out message, input, this.pagerControl.PageIndex, this.pagerControl.PageSize);
            }
            else if (this.Status == OutInventoryStatus.Outed)
            {
                list = PharmacyDatabaseService.GetAcceptedOutInventoryByCondition(out pager, out message, input, this.pagerControl.PageIndex, this.pagerControl.PageSize);
            }
            dgvOutInventory.DataSource = list;
            FormatRows();
        }
Exemplo n.º 3
0
        /// <summary>
        /// 根据出库单生成销退单(允许退货一次)
        /// </summary>
        /// <param name="orderInfo"></param>
        public FormSalesOrderReturn(OutInventory outInventory)
        {
            InitializeComponent();

            this.OutInfo = outInventory;
            this.dgvDrugDetailList.RowPostPaint       += delegate(object o, DataGridViewRowPostPaintEventArgs ex) { DataGridViewOperator.SetRowNumber((DataGridView)o, ex); };
            this.dgvDrugDetailList.AutoGenerateColumns = false;
        }
Exemplo n.º 4
0
        /// <summary>
        /// 保存出库信息
        /// </summary>
        /// <param name="entity"></param>
        public void SubmitOutInventory(OutInventory entity)
        {
            try
            {
                var order = BusinessHandlerFactory.SalesOrderBusinessHandler.Get(entity.SalesOrderID);

                entity.Id               = Guid.NewGuid();
                entity.OrderCode        = order.OrderCode;
                entity.OutInventoryDate = DateTime.Now;
                entity.CreateTime       = DateTime.Now;
                entity.TotalMoney       = entity.SalesOutInventoryDetails.Sum(p => p.OutAmount * p.ActualUnitPrice);



                this.Add(entity);

                order.OutInventoryId          = entity.Id;
                order.OrderOutInventoryUserID = entity.CreateUserId;
                order.OrderOutInventoryTime   = DateTime.Now;
                order.OrderOutInventoryCode   = entity.OrderCode;



                foreach (var detail in entity.SalesOutInventoryDetails)
                {
                    var sDetail = BusinessHandlerFactory.SalesOrderDetailBusinessHandler.Get(detail.SalesOrderDetailId);
                    sDetail.OutAmount += detail.OutAmount;//更新到订详细中
                    BusinessHandlerFactory.SalesOrderDetailBusinessHandler.Save(sDetail);

                    detail.Id = Guid.NewGuid();
                    detail.SalesOutInventoryID   = entity.Id;
                    detail.CreateTime            = DateTime.Now;
                    detail.DrugInventoryRecordID = sDetail.DrugInventoryRecordID;
                    detail.ActualUnitPrice       = sDetail.ActualUnitPrice;

                    if (string.IsNullOrEmpty(detail.Description))
                    {
                        detail.Description = "无备注";//必须字段
                    }
                    BusinessHandlerFactory.OutInventoryDetailBusinessHandler.Add(detail);
                }

                this.Save();

                var tmpDetail = BusinessHandlerFactory.SalesOrderDetailBusinessHandler.Fetch(p => p.OutAmount < p.Amount - p.ReturnAmount).FirstOrDefault();

                //有未出库的商品,则此订单为出库中,否则作为配送中...
                order.OrderStatus = (tmpDetail == null) ? OrderStatus.Delivering : OrderStatus.Outing;
                BusinessHandlerFactory.SalesOrderBusinessHandler.Save(order);
                this.Save();
            }
            catch (Exception ex)
            {
                throw new Exception("提交出库信息处理失败!", ex);
            }
        }
Exemplo n.º 5
0
        public bool CheckSpecial(OutInventory oi)
        {
            bool b = false;

            foreach (var o in oi.SalesOutInventoryDetails)
            {
                return(false);
            }
            return(true);
        }
        /// <summary>
        /// 同意出库,并添加配送信息
        /// </summary>
        /// <param name="entity"></param>
        public void AcceptOutInverntory(OutInventory entity)
        {
            try
            {
                lock (Locker)
                {
                    var m = BusinessHandlerFactory.OutInventoryBusinessHandler.Get(entity.Id);
                    m.UpdateTime = DateTime.Now;
                    m.OrderOutInventoryCheckTime = DateTime.Now;
                    m.OrderOutInventoryTime      = DateTime.Now;
                    m.OutInventoryDate           = DateTime.Now;
                    m.ReviewerId = entity.ReviewerId;
                    if (m.OutInventoryStatus == OutInventoryStatus.Outing)
                    {
                        m.OrderOutInventoryCheckTime = DateTime.Now;
                    }
                    else
                    {
                        m.SecondCheckDateTime = DateTime.Now;
                    }

                    m.OutInventoryStatus = entity.OutInventoryStatus;
                    this.Save(m);

                    var order = BusinessHandlerFactory.SalesOrderBusinessHandler.Get(entity.SalesOrderID);

                    //追加配送表
                    var c = RepositoryProvider.Db.Deliverys.Where(r => r.OutInventoryID == entity.Id).FirstOrDefault();
                    if (c == null && entity.OutInventoryStatusValue == (int)OutInventoryStatus.Outed)
                    {
                        Delivery delivery = new Delivery();
                        delivery.Id = Guid.NewGuid();
                        delivery.DeliveryStatusValue = (int)DeliveryStatus.Reservation;//配送预约
                        delivery.ReceivingCompasnyID = order.PurchaseUnitId;
                        delivery.ShippingAddress     = PharmacyFileBusinessHandler.CurrentStore.Address;
                        delivery.DeliveryAddress     = BusinessHandlerFactory.PurchaseUnitBusinessHandler.Get(order.PurchaseUnitId).ReceiveAddress;
                        delivery.DrugsCount          = entity.SalesOutInventoryDetails.Sum(p => p.OutAmount);
                        delivery.CreateTime          = delivery.UpdateTime = DateTime.Now;
                        delivery.CreateUserId        = entity.ReviewerId;
                        delivery.UpdateUserId        = entity.ReviewerId;
                        delivery.OrderID             = order.Id;
                        delivery.OutInventoryID      = entity.Id;
                        delivery.outedNo             = BusinessHandlerFactory.BillDocumentCodeBusinessHandler.GenerateBillDocumentCodeByTypeValue((int)BillDocumentType.Delivery).Code;
                        delivery.DeliveryMethodValue = order.PickUpGoodTypeValue == 0 ? 1 : order.PickUpGoodTypeValue == 1 ? 0 : (int)DeliveryMethod.Entrust;
                        delivery.Memo = "执行配送,销售单号:" + order.OrderCode;
                        BusinessHandlerFactory.DeliveryBusinessHandler.Add(delivery);
                    }
                    this.Save();
                }
            }
            catch (Exception ex)
            {
                throw new Exception("审核出库单时出错!", ex);
            }
        }
Exemplo n.º 7
0
        public UCOutInventory(OutInventory entity, SalesOrder order)
        {
            InitializeComponent();
            this.dgvDrugDetailList.AutoGenerateColumns = false;

            this.cmbOutType.DataSource = new List <ListItem>
            {
                new ListItem()
                {
                    ID   = ((int)OutInventoryType.SalesNormal).ToString(),
                    Name = Utility.getEnumTypeDisplayName <OutInventoryType>(OutInventoryType.SalesNormal)
                },
                new ListItem()
                {
                    ID   = ((int)OutInventoryType.SalesReissue).ToString(),
                    Name = Utility.getEnumTypeDisplayName <OutInventoryType>(OutInventoryType.SalesReissue)
                }
            };
            this.cmbOutType.ValueMember   = "ID";
            this.cmbOutType.DisplayMember = "Name";

            this.OutInventory = entity;
            this.SalesOrder   = order;

            if (OutInventory.Id == Guid.Empty || OutInventory.OutInventoryStatusValue == (int)OutInventoryStatus.None)
            {
                OutInventory.SalesOrderID            = SalesOrder.Id;
                OutInventory.OutInventoryStatusValue = (int)OutInventoryStatus.None;
                OutInventory.StoreId            = SalesOrder.StoreId;
                OutInventory.OutInventoryNumber = userControlBillDocumentCode1.GenarateCode();
            }

            lblOrderNo.Text    = order.OrderCode;
            lblCreateDate.Text = order.CreateTime.ToString("yyyy年MM月dd日");
            lblOutStatus.Text  = "出库";
            string msg      = string.Empty;
            var    strPName = this.PharmacyDatabaseService.GetPurchaseUnit(out msg, order.PurchaseUnitId);

            label3.Text = strPName.Name;
            var FHY = this.PharmacyDatabaseService.GetUser(out msg, order.OrderOutInventoryCheckUserID);

            txt金额合计.Text       = order.TotalMoney.ToString("0.00");
            txt备注.Text         = entity.Description;
            this.lblTitle.Text = "销售出库拣货复核";
        }
Exemplo n.º 8
0
        /// <summary>
        /// 提交处理
        /// </summary>
        /// <param name="order"></param>
        /// <param name="outInventory"></param>
        public void SaveOutInventoryByOrderOutInventory(SalesOrder order, OutInventory outInventory)
        {
            //1. 更新订单表()
            //2. 添加出库表
            //3. 添加出库明细表
            SalesOrder neworder = BusinessHandlerFactory.SalesOrderBusinessHandler.Get(order.Id);

            this.BusinessHandlerFactory.SalesOrderBusinessHandler.Save(order);
            outInventory.Id = Guid.NewGuid();
            neworder.OrderOutInventoryCode = outInventory.OutInventoryNumber;
            neworder.OrderOutInventoryTime = outInventory.CreateTime;
            this.Add(outInventory);
            ICollection <OutInventoryDetail> details = outInventory.SalesOutInventoryDetails;

            foreach (OutInventoryDetail detail in details)
            {
                detail.SalesOutInventoryID = outInventory.Id;
                detail.UpdateTime          = DateTime.Now;
                detail.CreateTime          = DateTime.Now;
                BusinessHandlerFactory.OutInventoryDetailBusinessHandler.Add(detail);
            }
            this.Save();
        }
Exemplo n.º 9
0
        /// <summary>
        /// 获取订单相关的出库信息(包括详细信息)
        /// </summary>
        /// <param name="orderID"></param>
        /// <returns></returns>
        public List <OutInventory> GetOutInventoryByOrderID(Guid orderID)
        {
            var list = this.Fetch(p => p.SalesOrderID == orderID).OrderBy(p => p.CreateTime).ToList();

            //更新详细信息
            if (list.Count > 0)
            {
                return(list);
            }
            list.ForEach(p => p.SalesOutInventoryDetails = BusinessHandlerFactory.OutInventoryDetailBusinessHandler.Fetch(o => o.SalesOutInventoryID == p.Id).ToList());

            var newDetails = GetOutInventoryDetailFromOrderDetail(orderID);

            if (newDetails.Count > 0)
            {
                OutInventory newOut = new OutInventory();
                newOut.OutInventoryStatus       = OutInventoryStatus.None;
                newOut.SalesOutInventoryDetails = newDetails;
                list.Add(newOut);
            }

            return(list);
        }
Exemplo n.º 10
0
        /// <summary>
        /// 添加出库信息
        /// </summary>
        /// <param name="index"></param>
        /// <param name="order"></param>
        /// <param name="outInventory"></param>
        private void InitTabPage(int index, string tabPageName, SalesOrder order, OutInventory outInventory)
        {
            var ucOutInventory = new UCOutInventory(outInventory, order);

            ucOutInventory.Dock     = System.Windows.Forms.DockStyle.Fill;
            ucOutInventory.Location = new System.Drawing.Point(0, 0);
            ucOutInventory.Name     = tabPageName;
            ucOutInventory.Size     = new System.Drawing.Size(861, 440);
            ucOutInventory.TabIndex = 0;

            var tabPage = new System.Windows.Forms.TabPage();

            tabPage.Controls.Add(ucOutInventory);
            tabPage.Location = new System.Drawing.Point(4, 22);
            tabPage.Name     = tabPageName;
            tabPage.Padding  = new System.Windows.Forms.Padding(3);
            tabPage.Size     = new System.Drawing.Size(867, 446);
            tabPage.TabIndex = 1;
            tabPage.Text     = tabPageName;
            tabPage.UseVisualStyleBackColor = true;
            tabPage.Tag = ucOutInventory;

            tabContorl.TabPages.Add(tabPage);
        }
        /// <summary>
        ///销退单入库保存
        /// </summary>
        /// <param name="so"></param>
        public void SaveReturnOrderInventory(SalesOrderReturn sor)
        {
            try
            {
                //处理库存的退库信息
                List <SalesOrderReturnDetail> salesOrderReturnDetailList = sor.SalesOrderReturnDetails.ToList();
                OutInventory oi    = null;
                int          index = 0;
                foreach (SalesOrderReturnDetail item in salesOrderReturnDetailList)
                {
                    index++;
                    Guid    drugInventoryID = item.DrugInventoryRecordID;
                    decimal returnQtyIn     = item.CanInAmount;

                    //获取药物库存实体
                    DrugInventoryRecord drugInventory = BusinessHandlerFactory.DrugInventoryRecordBusinessHandler.Get(drugInventoryID);
                    //在销售单但未出库数量 累计当前订单明细数量
                    drugInventory.SalesCount            -= returnQtyIn;
                    drugInventory.CurrentInventoryCount += returnQtyIn;

                    if (item.IsReissue)
                    {
                        drugInventory.OnSalesOrderCount += returnQtyIn;
                        if (oi == null)
                        {
                            OutInventory oib = BusinessHandlerFactory.OutInventoryBusinessHandler.GetOutInventoryByOrderID(sor.SalesOrderID).ToList().First();
                            oi = new OutInventory();
                            oi.CreateUserId = oib.CreateUserId;
                            oi.OrderCode    = oib.OrderCode;
                            oi.OrderOutInventoryCheckNumber = oib.OrderOutInventoryCheckNumber;
                            oi.OrderOutInventoryCheckTime   = oib.OrderOutInventoryCheckTime;
                            oi.OrderOutInventoryCheckUserID = oib.OrderOutInventoryCheckUserID;
                            oi.OrderOutInventoryTime        = oib.OrderOutInventoryTime;
                            oi.OrderOutInventoryUserID      = oib.OrderOutInventoryUserID;
                            oi.OutInventoryDate             = DateTime.Now;
                            oi.OutInventoryNumber           = new BillDocumentCodeBusinessHandler(BusinessHandlerFactory.RepositoryProvider, null).GenerateBillDocumentCodeByTypeValue((int)BillDocumentType.SalesOrderOutInventory).Code;
                            oi.ReviewerId    = new Guid();
                            oi.SalesOrderID  = oib.SalesOrderID;
                            oi.storekeeperId = oib.storekeeperId;

                            oi.Id                      = Guid.NewGuid();
                            oi.CreateTime              = DateTime.Now;
                            oi.Deleted                 = false;
                            oi.Description             = "销退补货出库单";
                            oi.OutInventoryStatus      = OutInventoryStatus.Outing;
                            oi.OutInventoryStatusValue = (int)OutInventoryStatus.Outing;
                            oi.OutInventoryType        = OutInventoryType.SalesReissue;
                            oi.OutInventoryTypeValue   = (int)OutInventoryType.SalesReissue;
                            oi.SalesOrderReturnID      = sor.Id;
                            oi.TotalMoney              = item.ActualUnitPrice * item.ReturnAmount;
                            BusinessHandlerFactory.OutInventoryBusinessHandler.Add(oi);
                        }
                        OutInventoryDetail oid = new OutInventoryDetail();
                        oid.ActualUnitPrice       = item.ActualUnitPrice;
                        oid.Amount                = item.ReturnAmount;
                        oid.BatchNumber           = item.BatchNumber;
                        oid.CanSaleNum            = BusinessHandlerFactory.DrugInventoryRecordBusinessHandler.Get(item.DrugInventoryRecordID).CanSaleNum + item.CanInAmount;
                        oid.CreateTime            = DateTime.Now;
                        oid.CreateUserId          = item.CreateUserId;
                        oid.Deleted               = false;
                        oid.Description           = "销退补货出库细节";
                        oid.DictionaryDosageCode  = item.DictionaryDosageCode;
                        oid.DrugInventoryRecordID = item.DrugInventoryRecordID;
                        oid.FactoryName           = item.FactoryName;
                        oid.Id                       = Guid.NewGuid();
                        oid.Index                    = index;
                        oid.MeasurementUnit          = item.MeasurementUnit;
                        oid.Origin                   = item.Origin;
                        oid.OutAmount                = item.ReturnAmount;
                        oid.OutValidDate             = item.OutValidDate;
                        oid.Price                    = item.Price;
                        oid.productCode              = item.productCode;
                        oid.productName              = item.productName;
                        oid.PruductDate              = item.PruductDate;
                        oid.SalesOrderDetailId       = item.SalesOrderDetailID;
                        oid.SalesOrderDetailReturnId = item.Id;
                        oid.SalesOrderId             = sor.SalesOrderID;
                        oid.SalesOrderReturnId       = sor.Id;
                        oid.SalesOutInventoryID      = oi.Id;
                        oid.SpecificationCode        = item.SpecificationCode;
                        oid.StoreId                  = item.StoreId;
                        oid.UnitPrice                = item.UnitPrice;
                        oid.UpdateTime               = DateTime.Now;
                        oid.UpdateUserId             = item.UpdateUserId;
                        OutInventoryDetail outinv = BusinessHandlerFactory.OutInventoryDetailBusinessHandler.Get(item.OutInventoryDetailID);
                        oid.WarehouseCode     = outinv.WarehouseCode;
                        oid.WarehouseName     = outinv.WarehouseName;
                        oid.WarehouseZoneCode = outinv.WarehouseZoneCode;
                        oid.WarehouseZoneName = outinv.WarehouseZoneName;

                        BusinessHandlerFactory.OutInventoryDetailBusinessHandler.Add(oid);
                    }
                    //drugInventory.PurchaseReturnNumber = item.ReturnAmount;
                    drugInventory.Valid = true;
                    BusinessHandlerFactory.DrugInventoryRecordBusinessHandler.Save(drugInventory);


                    //在销售单但未出库数量 累计当前订单明细数量

                    if (item.IsReissue)
                    {
                        drugInventory.OnSalesOrderCount += returnQtyIn;
                    }
                }
                this.Save(sor);
                this.Save();
            }
            catch (Exception ex)
            {
                this.HandleException("销退单入库保存失败", ex);
            }
        }
Exemplo n.º 12
0
        /// <summary>
        ///  更新配送信息
        /// </summary>
        /// <param name="userId"></param>
        /// <returns></returns>
        public void UpdateDelivery(Delivery delivery)
        {
            try
            {
                //更新配送信息表
                this.Save(delivery);

                if (delivery.DeliveryStatus == DeliveryStatus.Outed)
                {
                    if (delivery.OutInventoryID != Guid.Empty)
                    {
                        OutInventory oi = BusinessHandlerFactory.OutInventoryBusinessHandler.Get(delivery.OutInventoryID);

                        SalesOrder so = BusinessHandlerFactory.SalesOrderBusinessHandler.Get(oi.SalesOrderID);
                        so.OrderStatusValue = OrderStatus.Delivering.GetHashCode();
                        //更新库存信息

                        List <OutInventoryDetail> outInventoryList = BusinessHandlerFactory.OutInventoryDetailBusinessHandler.Fetch(p => p.SalesOutInventoryID == delivery.OutInventoryID).ToList();
                        foreach (OutInventoryDetail item in outInventoryList)
                        {
                            Guid    drugInventoryID = item.DrugInventoryRecordID;
                            decimal outQty          = item.OutAmount;
                            //获取药物库存实体
                            DrugInventoryRecord drugInventory = BusinessHandlerFactory.DrugInventoryRecordBusinessHandler.Get(drugInventoryID);
                            //在销售单但未出库数量 累计当前订单明细数量
                            drugInventory.SalesCount            += outQty;
                            drugInventory.CurrentInventoryCount -= outQty;
                            drugInventory.OnSalesOrderCount     -= outQty;
                            drugInventory.Valid = drugInventory.CanSaleNum > 0;
                            BusinessHandlerFactory.DrugInventoryRecordBusinessHandler.Save(drugInventory);

                            //获取库存实体
                            InventoryRecord inventory = BusinessHandlerFactory.InventoryRecordBusinessHandler.GetInventoryRecordByDrugInfoID(drugInventory.DrugInfoId);
                            if (inventory != null) //应该能为NULL,Debug中却出现了.
                            {
                                //在销售单但未出库数量 累计当前订单明细数量
                                inventory.SalesCount            += outQty;
                                inventory.CurrentInventoryCount -= outQty;
                                inventory.OnSalesOrderCount     -= outQty;
                                BusinessHandlerFactory.InventoryRecordBusinessHandler.Save(inventory);
                            }
                        }
                    }
                }
                //签收后
                if (delivery.DeliveryStatus == DeliveryStatus.Signed)
                {
                    //更新车辆信息
                    if (delivery.VehicleID != Guid.Empty)
                    {
                        var vehicle = BusinessHandlerFactory.VehicleBusinessHandler.Get(delivery.VehicleID);
                        vehicle.Status = false; //设置状态为可用
                        BusinessHandlerFactory.VehicleBusinessHandler.Save(vehicle);
                    }
                }
                this.Save();
            }
            catch (Exception ex)
            {
                this.HandleException("更新配送信息失败", ex);
            }
            finally
            {
                Dispose();
            }
        }
        /// <summary>
        /// 保存出库信息
        /// </summary>
        /// <param name="entity"></param>
        public void SubmitOutInventory(OutInventory entity)
        {
            try
            {
                var order = BusinessHandlerFactory.SalesOrderBusinessHandler.Get(entity.SalesOrderID);
                entity.storekeeperId           = entity.CreateUserId;
                entity.OrderOutInventoryUserID = entity.CreateUserId;
                entity.Id                           = Guid.NewGuid();
                entity.OrderCode                    = order.OrderCode;
                entity.OutInventoryDate             = DateTime.Now;
                entity.CreateTime                   = DateTime.Now;
                entity.TotalMoney                   = entity.SalesOutInventoryDetails.Sum(p => p.OutAmount * p.ActualUnitPrice);
                entity.OrderOutInventoryCheckNumber = BusinessHandlerFactory.BillDocumentCodeBusinessHandler.GenerateBillDocumentCodeByTypeValue((int)BillDocumentType.SalesOrderOutInventory).Code;

                order.OutInventoryId          = entity.Id;
                order.OrderOutInventoryUserID = entity.CreateUserId;
                order.OrderOutInventoryTime   = DateTime.Now;
                order.OrderOutInventoryCode   = entity.OrderCode;

                bool IsSpecial = false;
                foreach (var detail in entity.SalesOutInventoryDetails)
                {
                    var sDetail = BusinessHandlerFactory.SalesOrderDetailBusinessHandler.Get(detail.SalesOrderDetailId);

                    if (IsSpecial == false)
                    {
                        var druginventoryrecorder = BusinessHandlerFactory.DrugInventoryRecordBusinessHandler.Get(sDetail.DrugInventoryRecordID);
                        IsSpecial = druginventoryrecorder.DrugInfo.IsSpecialDrugCategory;
                    }

                    sDetail.OutAmount += detail.OutAmount;//更新到订详细中
                    BusinessHandlerFactory.SalesOrderDetailBusinessHandler.Save(sDetail);

                    detail.Id = Guid.NewGuid();
                    detail.SalesOutInventoryID   = entity.Id;
                    detail.CreateTime            = DateTime.Now;
                    detail.DrugInventoryRecordID = sDetail.DrugInventoryRecordID;
                    detail.ActualUnitPrice       = sDetail.ActualUnitPrice;

                    if (string.IsNullOrEmpty(detail.Description))
                    {
                        detail.Description = "无备注";//必须字段
                    }
                    BusinessHandlerFactory.OutInventoryDetailBusinessHandler.Add(detail);
                }

                var rules = SearialiserHelper <SalePriceControlRulesModel> .DeSerializeFileToObj("SalePriceControlRulesModel.bin");

                if (IsSpecial == false)
                {
                    entity.OrderOutInventoryCheckUserID = rules.SaleChecker.OrdinaryChecker;
                }
                else
                {
                    entity.OrderOutInventoryCheckUserID = rules.SaleChecker.SpacialDrugFirstChecker;
                    entity.SpecialDrugSecondChecker     = rules.SaleChecker.SpacialDrugSecondChecker;
                }
                this.Add(entity);

                order.OrderStatus = OrderStatus.Outing;

                this.Save();
            }
            catch (Exception ex)
            {
                throw new Exception("提交出库信息处理失败!", ex);
            }
        }