예제 #1
0
 /// <summary>
 /// 更新出库单明细
 /// </summary>
 /// <param name="item">出库单明细实体</param>
 /// <returns></returns>
 /// <remarks>2013-07-15 朱成果 创建</remarks>
 public abstract void UpdateOutItem(WhStockOutItem item);
예제 #2
0
        public Extra.Erp.Model.Result ErpSellOutStockAdd(int orderSysNo, int ActionType = 0)
        {
            Extra.Erp.Model.Result result = new Model.Result();
            try
            {
                var         stockout  = Hyt.DataAccess.Warehouse.IOutStockDao.Instance.GetModel(orderSysNo);
                WhWarehouse wareHouse = Hyt.DataAccess.Warehouse.IWhWarehouseDao.Instance.GetWarehouse(stockout.WarehouseSysNo);
                SoOrder     odrder    = Hyt.DataAccess.Order.ISoOrderDao.Instance.GetEntity(stockout.OrderSysNO);
                odrder.ReceiveAddress = ISoReceiveAddressDao.Instance.GetOrderReceiveAddress(odrder.ReceiveAddressSysNo);
                string actionPath = "/base/StockOutAdd";
                //if (ActionType == 1)
                //{
                //    actionPath = "/bill/stockModi";
                //}

                string          postDataPath = Config.root + actionPath;
                EasSellOutStock mod          = new EasSellOutStock();
                mod.FBillNo      = odrder.OrderNo;
                mod.FEntryID     = "1";
                mod.Fdate        = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                mod.FConsignee   = odrder.ReceiveAddress.Name;
                mod.FDeptID      = "";
                mod.FEmpID       = "";
                mod.FExplanation = "";
                mod.FFetchAdd    = odrder.ReceiveAddress.StreetAddress;
                mod.FFManagerID  = "";
                mod.FSaleStyle   = "网单销售";
                mod.FSManagerID  = "";
                mod.FCustID      = FCustID;
                mod.FDCStockID   = wareHouse.ErpCode;
                mod.FROB         = "1";
                List <Hyt.Model.Transfer.CBSoOrderItem> orderItems = Hyt.DataAccess.Order.ISoOrderDao.Instance.GetOrderItemsByOrderId(new int[] { odrder.SysNo });
                int indx = 1;
                foreach (var itemMod in orderItems)
                {
                    WhStockOutItem outStockItem = stockout.Items.First(p => p.ProductSysNo == itemMod.ProductSysNo);
                    if (outStockItem != null)
                    {
                        EasSellOutStockItem item = new EasSellOutStockItem()
                        {
                            FItemID        = itemMod.ErpCode,
                            Fauxqty        = outStockItem.ProductQuantity.ToString(),
                            FItemName      = itemMod.ProductName,
                            FDCStockID     = wareHouse.ErpCode,
                            FUnitID        = "kg",
                            FConsignPrice  = itemMod.SalesUnitPrice.ToString("0.00"),
                            FConsignAmount = itemMod.SalesAmount.ToString("0.00")
                        };
                        mod.item.Add(item);
                    }
                }
                string strProduct = Hyt.Util.Serialization.JsonUtil.ToJson(mod);
                strProduct = strProduct.Replace("\"APP_Key\":\"\",\"APP_scode\":\"\",", "");
                string posData = Hyt.Util.MyHttp.PostJsonData(postDataPath, strProduct);
                if (posData.IndexOf("没有对应") != -1)
                {
                    result.Status  = false;
                    result.Message = posData;
                }
                else
                {
                    EasResult easResult = Hyt.Util.Serialization.JsonUtil.ToObject <EasResult>(posData);
                    result.Status  = easResult.success;
                    result.Message = easResult.message;
                }
            }
            catch (Exception e)
            {
                result.Status  = false;
                result.Message = e.Message;
            }
            return(result);
        }
예제 #3
0
 /// <summary>
 /// 在出库单明细表上添加一条记录
 /// </summary>
 /// <param name="item">出库明细</param>
 /// <returns>出库明细编号</returns>
 /// <remarks>2013-06-25 朱成果 创建</remarks>
 public abstract int InsertItem(WhStockOutItem item);
예제 #4
0
        /// <summary>
        /// 订单分配出库
        /// </summary>
        /// <param name="datas">出库商品列表:Model.Quantity 为出库数量</param>
        /// <param name="warehouseSysNo">仓库编号</param>
        /// <param name="user">操作人</param>
        /// <returns></returns>
        /// <remarks>
        /// 2013-07-16 黄伟 创建
        /// 2013-12-19 黄志勇 修改订单日志
        /// </remarks>
        private WhStockOut CreateOutStock(IList <Model.SoOrderItem> datas, int warehouseSysNo, SyUser user)
        {
            if (datas == null || !datas.Any())
            {
                return(null);
            }
            if (warehouseSysNo < 1)
            {
                throw new ArgumentNullException("warehouseSysNo", @"必需选择一个仓库");
            }
            var so      = SoOrderBo.Instance.GetEntity(datas[0].OrderSysNo);
            var soItems = SoOrderBo.Instance.GetOrderItemsByOrderId(so.SysNo);

            var whStockOut = new WhStockOut()
            {
                ContactBeforeDelivery = so.ContactBeforeDelivery,
                CreatedBy             = user.SysNo,
                CreatedDate           = DateTime.Now,
                ReceiveAddressSysNo   = so.ReceiveAddressSysNo,
                CustomerMessage       = so.CustomerMessage,
                DeliveryRemarks       = so.DeliveryRemarks,
                DeliveryTime          = so.DeliveryTime,
                DeliveryTypeSysNo     = so.DeliveryTypeSysNo,
                InvoiceSysNo          = so.InvoiceSysNo,
                IsCOD = 1,
                IsPrintedPackageCover = 1,
                IsPrintedPickupCover  = 1,
                LastUpdateBy          = user.SysNo,
                LastUpdateDate        = DateTime.Now,
                OrderSysNO            = so.SysNo,
                Receivable            = so.CashPay,
                Remarks          = so.Remarks,
                Status           = (int)WarehouseStatus.出库单状态.待配送,
                StockOutAmount   = so.OrderAmount,
                TransactionSysNo = so.TransactionSysNo,
                WarehouseSysNo   = warehouseSysNo,
                StockOutDate     = DateTime.Now,
                StockOutBy       = user.SysNo
            };

            //note:调用保存出库单主表的方法
            whStockOut.SysNo = IOutStockDao.Instance.InsertMain(whStockOut);

            foreach (var data in datas)
            {
                var whStockOutItem = new WhStockOutItem()
                {
                    CreatedBy        = user.SysNo,
                    CreatedDate      = DateTime.Now,
                    LastUpdateBy     = user.SysNo,
                    LastUpdateDate   = DateTime.Now,
                    Measurement      = "",
                    OrderSysNo       = so.SysNo,
                    OriginalPrice    = data.OriginalPrice,
                    ProductName      = data.ProductName,
                    ProductQuantity  = data.Quantity,
                    RealSalesAmount  = data.SalesAmount / data.Quantity * data.RealStockOutQuantity,
                    ProductSysNo     = data.ProductSysNo,
                    Status           = 1,
                    StockOutSysNo    = whStockOut.SysNo,
                    TransactionSysNo = so.TransactionSysNo,
                    Weight           = 0m,
                    OrderItemSysNo   = data.SysNo
                };

                //调用保存出库单明细表的方法
                IOutStockDao.Instance.InsertItem(whStockOutItem); //朱成果 添加
                var soItem = soItems.First(p => p.SysNo == data.SysNo);
                //更新当前出库明细中的出库数量
                soItem.RealStockOutQuantity += data.Quantity;
                //出库数量到数据库
                ISoOrderItemDao.Instance.UpdateOutStockQuantity(soItem.SysNo, soItem.RealStockOutQuantity);
            }

            //更新销售单主表
            so.Status       = (int)OrderStatus.销售单状态.已创建出库单;
            so.OnlineStatus = Constant.OlineStatusType.已发货;

            //调用更新销售单主表方法
            so.DefaultWarehouseSysNo = warehouseSysNo;

            SoOrderBo.Instance.UpdateOrder(so); //更新订单 余勇修改为调用业务层方法  ISoOrderDao.Instance.Update(so); //更新订单状态,默认出库仓库

            var warehouseName = WhWarehouseBo.Instance.GetWarehouseEntity(warehouseSysNo).WarehouseName;

            SoOrderBo.Instance.WriteSoTransactionLog(so.TransactionSysNo,
                                                     string.Format(Constant.ORDER_TRANSACTIONLOG_OUTSTOCK_CREATE,
                                                                   warehouseName, whStockOut.SysNo), user.UserName);

            return(whStockOut);
        }