public static void AddMaterialReturn(SpareEntities db, TB_BILL bill, List <TB_RETURN> details) { BillController.AddOrUpdate(db, bill); //添加单据 foreach (var detail in details) { var dbReturns = SpareReturnController.GetList(db, bill.BillNum).ToList(); foreach (var sparereturn in dbReturns) { if (details.FirstOrDefault(p => p.UID == sparereturn.UID) == null) { SpareReturnController.RemaveDetail(db, sparereturn); } } SpareReturnController.AddOrUpdate(db, detail);//添加或修改【领用归还单】明细 } NotifyController.AddNotify(db, bill.OperName, NotifyType.SpareReturnUpdate, bill.BillNum, ""); }
/// <summary> /// 根据【领用出库单】,生成【领用还回单】 /// </summary> /// <param name="db"></param> /// <param name="billAsk">申请单</param> /// <param name="details">申请明细</param> /// <returns></returns> public static string HandleMaterialReturn(SpareEntities db, TB_BILL billOut, List <TB_OUT> details) { try { //校验【领用单】状态是否为批准 if (billOut.State != (int)BillState.Finished) { return("申请单状态错误,不应为:" + billOut.State); } if (billOut.SubBillType != (int)SubBillType.SpareLoan) { return("非借出单,不能进行还回操作!"); } var partPickList = new List <TB_RETURN>(); foreach (var detail in details) { var pList = SpareReturnController.OutToReturnList(detail); partPickList.Add(pList); } var billPick = new TB_BILL { BillNum = "", SourceBillNum = billOut.BillNum, BillType = (int)BillType.SpareReturn, SubBillType = (int)SubBillType.SpareReturn, BillTime = DateTime.Now, OperName = billOut.OperName, SplyId = billOut.SplyId, State = (int)BillState.New, Remark = "", }; SetBillNum(billPick); partPickList.ForEach(p => p.BillNum = billPick.BillNum); BillController.AddOrUpdate(db, billPick); SpareReturnController.AddList(db, partPickList); NotifyController.AddNotify(db, billPick.OperName, NotifyType.SpareReturn, billPick.BillNum, ""); return("OK"); } catch (Exception ex) { BillController.UpdateState(db, billOut, BillState.Failed); billOut.Remark = ex.ToString(); return(ex.ToString()); } }