public int SaveAdjust(TAdjust obj) { if (obj.Content.ID != null && obj.Content.ID > 0) { MMS_AdjustContent content = dao.GetInfo(obj.Content.ID); if (content.AuditFlag == true) { throw new Exception("该单据已经审核" + content.AdjustBillCode); } } return(dao.SaveAdjust(obj)); }
/// <summary> /// 获得组合实体 /// </summary> /// <param name="id"> 实体id号 </param> /// <returns> 自定义组合实体 </returns> public TAdjust GetAdjust(int id) { TAdjust resu = new TAdjust(); resu.OprType = OperateType.otNone; resu.Content = dc.MMS_AdjustContent.Where(itm => itm.ID == id).First(); List <MMS_AdjustDetail> tempList = dc.MMS_AdjustDetail.Where(itm => itm.AdjustBillCode == resu.Content.AdjustBillCode).ToList(); foreach (MMS_AdjustDetail item in tempList) { TAdjustDetail TDetail = new TAdjustDetail(); TDetail.OprType = OperateType.otNone; TDetail.DetDetail = item; resu.Detail.Add(TDetail); } return(resu); }
/// <summary> /// 保存组合实体 /// </summary> /// <param name="obj"> 实体id号 </param> /// <returns> 自定义组合实体 </returns> public int SaveAdjust(TAdjust obj) { if (obj.OprType == OperateType.otInsert) { dc.MMS_AdjustContent.InsertOnSubmit(obj.Content); } else if (obj.OprType == OperateType.otUpdate) { var query = from item in dc.MMS_AdjustContent where item.ID == obj.Content.ID select item; BatchEvaluate.Eval(obj.Content, query.First()); } else if (obj.OprType == OperateType.otDelete) { dc.MMS_AdjustContent.DeleteOnSubmit(obj.Content); } foreach (TAdjustDetail item in obj.Detail) { if (item.OprType == OperateType.otInsert) { dc.MMS_AdjustDetail.InsertOnSubmit(item.DetDetail); } else if (item.OprType == OperateType.otUpdate) { var query = from itm in dc.MMS_AdjustDetail where itm.ID == item.DetDetail.ID select itm; BatchEvaluate.Eval(item.DetDetail, query.First()); } else if (item.OprType == OperateType.otDelete) { dc.MMS_AdjustDetail.DeleteOnSubmit(item.DetDetail); } } dc.SubmitChanges(); return(obj.Content.ID); }
/// <summary> /// 打印调拨单时调用 /// </summary> /// <param name="id"> </param> /// <param name="isAudit"> </param> /// <param name="operatorCode"> </param> /// <returns> </returns> public bool AuditAdjust(int id, bool isAudit, string operatorCode) { using (TransactionScope ts = new TransactionScope()) { TAdjust tad = dao.GetAdjust(id); MMS_AdjustContent adContent = tad.Content; foreach (TAdjustDetail adDetail in tad.Detail) { string productCode = adDetail.DetDetail.ProductCode; int qty = adDetail.DetDetail.Quantity; double price = adDetail.DetDetail.Price; if (qty != 0) { MMS_Store Param1 = new MMS_Store(); Param1.Warehouse = adContent.SourceWareHouse; Param1.ProductCode = productCode; MMS_Store sourceStore = daoStore.GetStore(Param1); if (sourceStore == null) { throw new Exception("货品在源仓库不存在"); } if (qty > sourceStore.Quantity) { throw new Exception("源仓库货品数量不足"); } sourceStore.Quantity -= qty; sourceStore.Amount -= qty * price; if (sourceStore.Quantity != 0) { sourceStore.Price = sourceStore.Amount / sourceStore.Quantity; } daoStore.UpdateInfo(sourceStore); MMS_Store Param2 = new MMS_Store(); Param2.Warehouse = adContent.TargetWareHouse; Param2.ProductCode = productCode; MMS_Store targetStore = daoStore.GetStore(Param2); if (targetStore != null) { targetStore.Quantity += qty; targetStore.Amount += qty * price; if (targetStore.Quantity != 0) { targetStore.Price = targetStore.Amount / targetStore.Quantity; } daoStore.UpdateInfo(targetStore); } else { MMS_Store newTarSto = new MMS_Store(); newTarSto.Warehouse = adContent.TargetWareHouse; newTarSto.ProductCode = productCode; newTarSto.Quantity = qty; newTarSto.Price = price; newTarSto.Amount = qty * price; daoStore.InsertInfo(newTarSto); } } } adContent.AuditFlag = true; dao.UpdateInfo(adContent); ts.Complete(); } return(true); }