/// <summary> /// 添加【其它出入库单】 /// </summary> /// <param name="db"></param> /// <param name="bill">其它出入库单</param> /// <param name="details">其它出入库明细</param> /// <returns></returns> public static void AddOtherIn(SpareEntities db, TB_BILL bill, List <TB_OTHER_IN> details) { { SetBillNum(bill); //设置单据编号 details.ForEach(p => p.BillNum = bill.BillNum); //设置明细编号 BillController.AddOrUpdate(db, bill); //添加单据 foreach (var detail in details) { OtherInController.AddOrUpdate(db, detail); //添加明细 } var subBillType = (SubBillType)bill.SubBillType; switch (subBillType) { //出库 case SubBillType.OtherOut: //其它出库 // case SubBillType.ReturnToSupplier: //原料退货 case SubBillType.InventoryLoss: //盘亏 case SubBillType.ScrapDestroy: //报废销毁 // var detailsOut = details.Select(detail => detail.ToStockDetailOut(bill)).ToList(); // StockDetailController.ListOut(db, bill, detailsOut); //更新【库存主表】【库存明细】出库 // break; //入库 case SubBillType.OtherIn: //其它入库 // case SubBillType.ProductReturn: //成品退货 case SubBillType.InventoryProfit: //盘盈 var detailsIn = details.Select(detail => detail.ToStockDetailIn(bill)).ToList(); StockDetailController.ListIn(db, bill, detailsIn); //更新【库存主表】【库存明细】入库 break; case SubBillType.ProductUndecide: //隔离 case SubBillType.ProductScrap: //报废 // var detailsMove = details.Select(p => p.ToStockMove()).ToList(); // StockDetailController.ListMove(db, bill, detailsMove); //更新【库存主表】【库存明细】 break; default: throw new WmsException(ResultCode.Exception, bill.BillNum, "单据二级类型错误"); } NotifyController.AddNotify(db, bill.OperName, NotifyType.OtherInApprove, bill.BillNum, ""); } }
/// <summary> /// 添加【原料收货单】 /// </summary> /// <param name="db"></param> /// <param name="billList">原料收货单列表</param> /// <param name="detailList">原料收货明细列表</param> /// <returns></returns> public static void AddMaterialIn(SpareEntities db, List <TB_BILL> billList, List <TB_IN> detailList) { { foreach (var bill in billList) { SetBillNum(bill); //设置单据编号 detailList.ForEach(p => p.BillNum = bill.BillNum); //设置明细编号 BillController.AddOrUpdate(db, bill); //添加【原料收货单】单据 SpareInController.AddList(db, detailList); //添加【原料收货单】明细 var stockDetails = detailList.Select(detail => detail.ToStockDetailIn(bill)).ToList(); StockDetailController.ListIn(db, bill, stockDetails); //更新【库存主表】【库存明细】 } EntitiesFactory.SaveDb(db); } }
/// <summary> /// 执行【领用还回单】 /// </summary> /// <param name="db"></param> /// <param name="billList">领用还回单列表</param> /// <param name="detailList">领用还回明细列表</param> /// <returns></returns> public static void ExecuteSpareReturn(SpareEntities db, TB_BILL bill, List <TB_RETURN> detailList) { { foreach (var detail in detailList) { var stockDetail = new TS_STOCK_DETAIL() { LocCode = detail.ToLocCode, PartCode = detail.PartCode, Batch = detail.Batch, Qty = (decimal)detail.InQty, UnitPrice = detail.UnitPrice, UpdateQty = (decimal)detail.InQty }; var stockDetails = new List <TS_STOCK_DETAIL>(); stockDetails.Add(stockDetail); StockDetailController.ListIn(db, bill, stockDetails); //更新【库存主表】【库存明细】 NotifyController.AddNotify(db, bill.OperName, NotifyType.SpareReturnApprove, bill.BillNum, ""); } EntitiesFactory.SaveDb(db); } }