public int SaveSaleReturn(TSaleReturn obj) { if (obj.Content.ID != null && obj.Content.ID > 0) { MMS_SaleReturnContent content = dao.GetInfo(obj.Content.ID); if (content.AuditFlag == true) { throw new Exception("该单据已经审核" + content.SaleBillCode); } } return(dao.SaveSaleReturn(obj)); }
public bool AuditSaleReturn(int id, bool isAudit, string operatorCode) { using (TransactionScope ts = new TransactionScope()) //开启DTC事务 { TSaleReturn tsale = dao.GetSaleReturn(id); MMS_SaleReturnContent content = tsale.Content; if (content.AuditFlag == true) //??存在缓存 { throw new Exception("该单据已经审核" + content.SaleBillCode); } foreach (TSaleReturnDetail tSaleDetail in tsale.Detail) { MMS_Store storeParam = new MMS_Store(); storeParam.Warehouse = content.WareHouse; storeParam.ProductCode = tSaleDetail.DetDetail.ProductCode; MMS_Store sto = null; sto = daoStore.GetStore(storeParam); if (sto == null) //库存中没有该商品 { sto = new MMS_Store(); sto.Warehouse = tsale.Content.WareHouse; sto.ProductCode = tSaleDetail.DetDetail.ProductCode; sto.Quantity = tSaleDetail.DetDetail.Quantity; sto.Price = tSaleDetail.DetDetail.Price; sto.Amount = sto.Quantity * sto.Price; sto.Memo = ""; daoStore.InsertInfo(sto); } else { sto.Quantity += tSaleDetail.DetDetail.Quantity; sto.Amount += tSaleDetail.DetDetail.Quantity * sto.Price; //* tSaleDetail.DetDetail.Price; if (sto.Quantity > 0) { sto.Price = sto.Amount / sto.Quantity; } daoStore.UpdateInfo(sto); } //更新销售退回成本价 MMS_SaleReturnDetail saleRetDet = tSaleDetail.DetDetail; saleRetDet.Cost = sto.Price; dao.UpdateSaleReturnDetail(saleRetDet); } content.AuditFlag = isAudit; content.Operator = operatorCode; content.OperateDate = DateTime.Now; dao.UpdateInfo(content); ts.Complete(); } return(true); }
/// <summary> /// 获得组合实体 /// </summary> /// <param name="id"> 实体id号 </param> /// <returns> 自定义组合实体 </returns> public TSaleReturn GetSaleReturn(int id) { TSaleReturn resu = new TSaleReturn(); resu.OprType = OperateType.otNone; resu.Content = dc.MMS_SaleReturnContent.First(itm => itm.ID == id); List <MMS_SaleReturnDetail> tempList = dc.MMS_SaleReturnDetail.Where(itm => itm.SaleBillCode == resu.Content.SaleBillCode).ToList(); foreach (MMS_SaleReturnDetail item in tempList) { TSaleReturnDetail TDetail = new TSaleReturnDetail(); TDetail.OprType = OperateType.otNone; TDetail.DetDetail = item; resu.Detail.Add(TDetail); } return(resu); }
/// <summary> /// 保存组合实体 /// </summary> /// <param name="obj"> 实体id号 </param> /// <returns> 自定义组合实体 </returns> public int SaveSaleReturn(TSaleReturn obj) { if (obj.OprType == OperateType.otInsert) { dc.MMS_SaleReturnContent.InsertOnSubmit(obj.Content); } else if (obj.OprType == OperateType.otUpdate) { var query = from item in dc.MMS_SaleReturnContent where item.ID == obj.Content.ID select item; BatchEvaluate.Eval(obj.Content, query.First()); } else if (obj.OprType == OperateType.otDelete) { dc.MMS_SaleReturnContent.DeleteOnSubmit(obj.Content); } foreach (TSaleReturnDetail item in obj.Detail) { if (item.OprType == OperateType.otInsert) { dc.MMS_SaleReturnDetail.InsertOnSubmit(item.DetDetail); } else if (item.OprType == OperateType.otUpdate) { var query = from itm in dc.MMS_SaleReturnContent where itm.ID == item.DetDetail.ID select itm; BatchEvaluate.Eval(item.DetDetail, query.First()); } else if (item.OprType == OperateType.otDelete) { dc.MMS_SaleReturnDetail.DeleteOnSubmit(item.DetDetail); } } dc.SubmitChanges(); return(obj.Content.ID); }