コード例 #1
0
        protected void btnSave_Click(object sender, EventArgs e)
        {
            List <XMApplication> XMApplicationList = new List <XMApplication>();
            List <int>           AddIDs            = new List <int>();
            string WareHourses   = this.ddlWareHourses.SelectedValue;
            bool   AddToDelivery = this.chkAddToDelivery.Checked;

            if (Ids.Count() <= 0)
            {
                base.ShowMessage("你没有选择任何记录!");
            }

            if (WareHourses == "-1" || WareHourses == "")
            {
                base.ShowMessage("请先选择出库仓库!");
                return;
            }

            if (AddToDelivery)
            {
                string msg = "";
                XMApplicationList = XMApplicationService.GetXMApplicationListByIds(Ids);
                foreach (var item in XMApplicationList)
                {
                    if (!item.OrderCode.StartsWith("NoOrder"))
                    {
                        var DeliveryList = base.XMDeliveryService.GetXMDeliveryListByOrderCode(item.OrderCode, 708);
                        if (DeliveryList != null && DeliveryList.Count > 0)
                        {
                            AddIDs.Add(item.ID);
                        }
                        else
                        {
                            msg += "订单号:" + item.OrderCode + "的换货,未生成正式发货单,不能追加!<br/>";
                        }
                    }
                }

                if (msg != "")
                {
                    base.ShowMessage(msg);
                    return;
                }
            }

            SingleRow(Ids, WareHourses, AddIDs);//排单
        }
コード例 #2
0
        private void SingleRow(List <int> Ids, string WareHoursesID, List <int> AddIDs)
        {
            //查询所有选中的退换货信息
            var XMApplicationList = XMApplicationService.GetXMApplicationListByIds(Ids);

            var NoPassList = XMApplicationList.Where(a => a.IsSend == false || a.SupervisorStatus == false || a.IsSingleRow == true).ToList();

            if (NoPassList.Count > 0)
            {
                base.ShowMessage("请选择已送出,已审核,未排单的数据!");
                return;
            }

            //事务
            using (TransactionScope scope = new TransactionScope())
            {
                bool   isSucess   = true;
                string errMessage = "";
                foreach (var item in Ids)
                {
                    bool          isEnough            = true;
                    XMApplication XMApplicationEntity = XMApplicationList.Where(a => a.ID == item).SingleOrDefault();
                    if (XMApplicationEntity != null)
                    {
                        int xmDeliveryID = 1;
                        //var xmorderinfo = base.XMOrderInfoService.GetXMOrderByOrderCode(XMApplicationEntity.OrderCode);//订单号查询订单
                        if (XMApplicationEntity.IsSingleRow != null && (bool)XMApplicationEntity.IsSingleRow)
                        {
                            base.ShowMessage("订单" + XMApplicationEntity.OrderCode + "已排单!");
                            return;
                        }
                        //查询换货明细
                        List <XMApplicationExchange> list = XMApplicationExchangeService.GetXMApplicationExchangeListByApplicationIDType(XMApplicationEntity.ID, 1);
                        if (list.Count <= 0)
                        {
                            base.ShowMessage("订单" + XMApplicationEntity.OrderCode + "无换货明细数据!");
                            return;
                        }

                        foreach (var entity in list)
                        {
                            int totalInventCount = 0; //总库存数量
                            int canInventCount   = 0; //可用库存

                            string ManufacturersCode = "";
                            if (!string.IsNullOrEmpty(entity.PlatformMerchantCode))
                            {
                                var productDetail = base.XMProductDetailsService.GetXMProductDetailsByPlatformMerchantCode(entity.PlatformMerchantCode, (int)XMApplicationEntity.PlatformTypeId);
                                if (productDetail.Count > 0)
                                {
                                    ManufacturersCode = productDetail[0].ManufacturersCode;
                                }
                            }
                            if (string.IsNullOrEmpty(ManufacturersCode))
                            {
                                isSucess = false;
                                break;
                            }
                            //获取该产品对应仓库的实际库存数量
                            var inventoryInfo = base.XMInventoryInfoService.GetXMInventoryInfoByParm(ManufacturersCode, int.Parse(WareHoursesID));
                            if (inventoryInfo != null)
                            {
                                totalInventCount = inventoryInfo.StockNumber.Value;
                            }
                            if (totalInventCount != 0)          //存在库存
                            {
                                //canInventCount = totalInventCount - outCount;
                                canInventCount = int.Parse(inventoryInfo.CanOrderCount.ToString());
                                if (canInventCount < entity.ProductNum)             //剩余库存不足
                                {
                                    errMessage = errMessage + "商品编码为:" + entity.PlatformMerchantCode + " ";
                                    isEnough   = false;
                                }
                            }
                            else
                            {
                                errMessage = errMessage + "商品编码为:" + entity.PlatformMerchantCode + " ";
                                isEnough   = false;
                            }
                        }

                        if (isSucess == false)
                        {
                            base.ShowMessage("订单号为" + XMApplicationEntity.OrderCode + "的退换货商品格式不正确,排单失败!");
                            break;
                        }

                        if (isEnough == false)               //库存不足   弹出提示
                        {
                            base.ShowMessage(errMessage + "的产品库存不足,请及时补货!");
                            return;
                        }


                        //根据订单号 、是否发货:否0、未打印:0  查询发货单
                        var xmDeliveryList = base.XMDeliveryService.GetXMDeliveryListByInfo(XMApplicationEntity.OrderCode, 687, 708);

                        XMDelivery xd = new XMDelivery();
                        //未返回明细数据 新增发货单主表信息
                        if (AddIDs.Contains(item))
                        {
                            var DeliveryList = base.XMDeliveryService.GetXMDeliveryListByOrderCode(XMApplicationEntity.OrderCode, 708);
                            if (DeliveryList != null && DeliveryList.Count > 0)
                            {
                                xd           = DeliveryList[0];
                                xmDeliveryID = xd.Id;
                            }
                        }
                        else if (xmDeliveryList.Count == 0)//根据订单号、未发货查询 未返回数据 则新增发货单
                        {
                            //新增
                            xd.DeliveryTypeId = 708;
                            xd.DeliveryNumber = "ZP" + DateTime.Now.ToString("yyyyMMddHHmmssfff"); //赠品发货单号(自动生成)
                            xd.OrderCode      = XMApplicationEntity.OrderCode;
                            xd.Price          = 0;                                                 //运费
                            xd.Shipper        = 687;                                               //发货方
                                                                                                   //判断无订单
                            if (XMApplicationEntity.OrderCode.StartsWith("NoOrder"))
                            {
                                //备用地址
                                var SpareAddress = base.XMSpareAddressService.GetXMSpareAddressByParm(XMApplicationEntity.ID, 710);
                                if (SpareAddress == null)
                                {
                                    base.ShowMessage("无订单赠品必须填写备用地址!");
                                    return;
                                }
                                else
                                {
                                    xd.FullName        = SpareAddress.FullName;
                                    xd.Mobile          = SpareAddress.Mobile;
                                    xd.Tel             = SpareAddress.Tel;
                                    xd.Province        = SpareAddress.Province;
                                    xd.City            = SpareAddress.City;
                                    xd.County          = SpareAddress.County;
                                    xd.DeliveryAddress = SpareAddress.DeliveryAddress;
                                }
                            }
                            else
                            {
                                var OrderInfo = base.XMOrderInfoService.GetXMOrderByOrderCode(XMApplicationEntity.OrderCode);
                                if (OrderInfo != null)
                                {
                                    xd.FullName        = OrderInfo.FullName;
                                    xd.Mobile          = OrderInfo.Mobile;
                                    xd.Tel             = OrderInfo.Tel;
                                    xd.Province        = OrderInfo.Province;
                                    xd.City            = OrderInfo.City;
                                    xd.County          = OrderInfo.County;
                                    xd.DeliveryAddress = OrderInfo.DeliveryAddress;
                                }
                                else
                                {
                                    base.ShowMessage("订单号" + XMApplicationEntity.OrderCode + "不存在!");
                                    return;
                                }
                            }

                            xd.IsDelivery    = false;//是否发货
                            xd.IsEnabled     = false;
                            xd.CreateId      = HozestERPContext.Current.User.CustomerID;
                            xd.CreateDate    = DateTime.Now;
                            xd.UpdateId      = HozestERPContext.Current.User.CustomerID;
                            xd.UpdateDate    = DateTime.Now;
                            xd.PrintQuantity = 0; //打印次数
                            xd.PrintBatch    = 0; //打印批次
                            base.XMDeliveryService.InsertXMDelivery(xd);
                            xmDeliveryID = xd.Id;
                        }
                        else
                        {
                            //返回明细数据 ,根据明细主表Id查询主表信息
                            xd           = xmDeliveryList[0];
                            xmDeliveryID = xd.Id;
                        }

                        if (xd != null)
                        {
                            foreach (var entity in list)
                            {
                                var productDetail = base.XMProductDetailsService.GetXMProductDetailsByPlatformMerchantCode(entity.PlatformMerchantCode, (int)XMApplicationEntity.PlatformTypeId);
                                if (productDetail.Count <= 0)
                                {
                                    base.ShowMessage("商品信息查询失败,请联系管理员!");
                                    return;
                                }

                                XMDeliveryDetails deliverDetails = new XMDeliveryDetails();
                                deliverDetails.OrderNo              = XMApplicationEntity.OrderCode;
                                deliverDetails.DetailsTypeId        = 10;
                                deliverDetails.DeliveryId           = xd.Id;
                                deliverDetails.ProductlId           = productDetail[0].Id;
                                deliverDetails.SourceID             = entity.ID;
                                deliverDetails.PlatformMerchantCode = entity.PlatformMerchantCode;
                                deliverDetails.PrdouctName          = entity.ProductName;
                                deliverDetails.Specifications       = entity.Specifications;
                                deliverDetails.ProductNum           = entity.ProductNum;
                                deliverDetails.IsEnabled            = false;
                                deliverDetails.CreateID             = HozestERPContext.Current.User.CustomerID;
                                deliverDetails.CreateDate           = DateTime.Now;
                                deliverDetails.UpdateID             = HozestERPContext.Current.User.CustomerID;
                                deliverDetails.UpdateDate           = DateTime.Now;
                                deliverDetails.WarehouseID          = int.Parse(WareHoursesID);
                                base.XMDeliveryDetailsService.InsertXMDeliveryDetails(deliverDetails);
                            }
                        }

                        //发票先忽略

                        foreach (var entity in list)
                        {
                            var productDetail = base.XMProductDetailsService.GetXMProductDetailsByPlatformMerchantCode(entity.PlatformMerchantCode, (int)XMApplicationEntity.PlatformTypeId);
                            if (productDetail.Count <= 0)
                            {
                                base.ShowMessage("商品信息查询失败,请联系管理员!");
                                return;
                            }

                            var inventory = base.XMInventoryInfoService.GetXMInventoryInfoByParm(productDetail[0].ManufacturersCode, int.Parse(WareHoursesID)); //其他项目判断库存管理里面的可订购数量
                                                                                                                                                                //扣减可订购数量
                            if (inventory != null)
                            {
                                inventory.CanOrderCount -= entity.ProductNum;
                                base.XMInventoryInfoService.UpdateXMInventoryInfo(inventory);
                            }
                        }

                        ////生成销售出库单
                        //var saleDelviery = base.XMSaleDeliveryService.GetXMSaleDeliveryByParm(XMApplicationEntity.ID, xmDeliveryID);
                        ////数据不存在 生成销售出库单
                        //if (saleDelviery == null)
                        //{
                        //    //插入销售出库单主表数据
                        //    XMSaleDelivery saleDeliveryInfo = new XMSaleDelivery();
                        //    saleDeliveryInfo.Ref = AutoSaleDeliveryNumber();
                        //    saleDeliveryInfo.SaleInfoId = 0;
                        //    if (!string.IsNullOrEmpty(XMApplicationEntity.OrderCode))
                        //    {
                        //        var orderInfo = base.XMOrderInfoService.GetXMOrderByOrderCode(XMApplicationEntity.OrderCode);
                        //        if (orderInfo != null)
                        //        {
                        //            saleDeliveryInfo.OrderInfoID = orderInfo.ID;
                        //        }
                        //    }
                        //    else
                        //    {
                        //        saleDeliveryInfo.OrderInfoID = 0;
                        //    }
                        //    saleDeliveryInfo.WareHouseId = int.Parse(WareHoursesID);
                        //    saleDeliveryInfo.BillStatus = 0;
                        //    saleDeliveryInfo.SaleMoney = 0;      //换货金额为0
                        //    saleDeliveryInfo.ReceivingType = 701;
                        //    saleDeliveryInfo.BizUserId = HozestERPContext.Current.User.CustomerID;
                        //    saleDeliveryInfo.BizDt = DateTime.Now;
                        //    saleDeliveryInfo.CreateID = HozestERPContext.Current.User.CustomerID;
                        //    saleDeliveryInfo.CreateDate = DateTime.Now;
                        //    saleDeliveryInfo.UpdateDate = DateTime.Now;
                        //    saleDeliveryInfo.UpdateID = HozestERPContext.Current.User.CustomerID;
                        //    saleDeliveryInfo.IsEnable = false;
                        //    saleDeliveryInfo.IsAudit = true;
                        //    saleDeliveryInfo.DeliveryID = xmDeliveryID;
                        //    base.XMSaleDeliveryService.InsertXMSaleDelivery(saleDeliveryInfo);

                        //    //插入销售出库单明细数据
                        //    foreach (var entity in list)
                        //    {
                        //        var productDetail = base.XMProductDetailsService.GetXMProductDetailsByPlatformMerchantCode(entity.PlatformMerchantCode, (int)XMApplicationEntity.PlatformTypeId);
                        //        if (productDetail.Count <= 0)
                        //        {
                        //            base.ShowMessage("商品信息查询失败,请联系管理员!");
                        //            return;
                        //        }

                        //        XMSaleDeliveryProductDetails saleDeliveryDetail = new XMSaleDeliveryProductDetails();
                        //        saleDeliveryDetail.SaleDeliveryId = saleDeliveryInfo.Id;
                        //        saleDeliveryDetail.ProductId = productDetail[0].Id;
                        //        saleDeliveryDetail.PlatformMerchantCode = productDetail[0].ManufacturersCode;
                        //        saleDeliveryDetail.SaleCount = entity.ProductNum;
                        //        saleDeliveryDetail.ProductMoney = 0;
                        //        saleDeliveryDetail.ProductPrice = 0;   //退换货单价为0;
                        //        saleDeliveryDetail.CreateDate = saleDeliveryDetail.UpdateDate = DateTime.Now;
                        //        saleDeliveryDetail.CreateID = saleDeliveryDetail.UpdateID = HozestERPContext.Current.User.CustomerID;
                        //        saleDeliveryDetail.IsEnable = false;
                        //        base.XMSaleDeliveryProductDetailsService.InsertXMSaleDeliveryProductDetails(saleDeliveryDetail);

                        //        var inventory = base.XMInventoryInfoService.GetXMInventoryInfoByParm(productDetail[0].ManufacturersCode, int.Parse(WareHoursesID));//其他项目判断库存管理里面的可订购数量
                        //                                                                                                                          //扣减可订购数量
                        //        if (inventory != null)
                        //        {
                        //            inventory.CanOrderCount -= entity.ProductNum;
                        //            base.XMInventoryInfoService.UpdateXMInventoryInfo(inventory);
                        //        }
                        //    }
                        //}

                        XMApplicationEntity.IsSingleRow = true;
                        XMApplicationEntity.UpdateDate  = DateTime.Now;
                        XMApplicationEntity.UpdateID    = HozestERPContext.Current.User.CustomerID;
                        XMApplicationService.UpdateXMApplication(XMApplicationEntity);
                    }
                }

                scope.Complete();
            }
            base.ShowMessage("操作成功!");
        }