/// <summary> /// 更新出库单明细 /// </summary> /// <param name="item">出库单明细实体</param> /// <returns></returns> /// <remarks>2013-07-15 朱成果 创建</remarks> public abstract void UpdateOutItem(WhStockOutItem item);
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); }
/// <summary> /// 在出库单明细表上添加一条记录 /// </summary> /// <param name="item">出库明细</param> /// <returns>出库明细编号</returns> /// <remarks>2013-06-25 朱成果 创建</remarks> public abstract int InsertItem(WhStockOutItem item);
/// <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); }