/// <summary> /// 修改销售单 /// </summary> /// <param name="info"> </param> /// <returns> </returns> public bool UpdateInfo(MMS_SaleContent info) { var query = from item in dc.MMS_SaleContent where item.ID == info.ID select item; BatchEvaluate.Eval(info, query.First()); dc.SubmitChanges(); return(true); }
/// <summary> /// 验证记录中是否有重复值 /// </summary> /// <param name="info"> 实体 </param> /// <returns> 如果不重复返回"" </returns> public string ValidateRepeat(MMS_SaleContent info) { int cnt1 = dc.MMS_SaleContent.Where(itm => itm.SaleBillCode == info.SaleBillCode && itm.ID != info.ID).Count(); if (cnt1 > 0) { return("代码重复"); } return(""); }
/// <summary> /// 保存销售单 /// </summary> /// <param name="obj"> 自定义销售单实体 </param> /// <returns> 销售单ID号 </returns> public int SaveSale(TSale obj) { if (obj.Content.ID != null && obj.Content.ID > 0) { MMS_SaleContent content = dao.GetInfo(obj.Content.ID); if (content.AuditFlag == true) { throw new Exception("该单据已经审核" + content.SaleBillCode); } } return(dao.SaveSale(obj)); }
/// <summary> /// 插入销售单 /// </summary> /// <param name="info"> </param> /// <returns> </returns> public int InsertInfo(MMS_SaleContent info) { string msg = dao.ValidateRepeat(info); if (msg == "") { return(dao.InsertInfo(info)); } else { throw new Exception(msg); } }
/// <summary> /// 打印销售单 /// </summary> /// <param name="id"> </param> /// <param name="isAudit"> </param> /// <param name="operatorCode"> </param> /// <returns> </returns> public bool AuditSale(int id, bool isAudit, string operatorCode) { using (TransactionScope ts = new TransactionScope()) //开启DTC事务 { TSale tsale = dao.GetSale(id); //取销售单组合实体 MMS_SaleContent content = tsale.Content; //取入销售主内容实体 if (content.AuditFlag == true) //如果销售单已审核 { throw new Exception("该单据已经审核" + content.SaleBillCode); } foreach (TSaleDetail 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) //库存中没有该商品 { throw new Exception("库存中没有该商品,不能销售" + tSaleDetail.DetDetail.ProductCode); } else { if (tSaleDetail.DetDetail.Quantity > sto.Quantity) //如果销售数量大于库存数量 { throw new Exception("库存数据不足,不能销售" + tSaleDetail.DetDetail.ProductCode); } sto.Quantity -= tSaleDetail.DetDetail.Quantity; //销售冲减数量 sto.Amount -= tSaleDetail.DetDetail.Quantity * sto.Price; //销售冲减金额 if (sto.Quantity > 0) { sto.Price = sto.Amount / sto.Quantity; //生新计算单价 } daoStore.UpdateInfo(sto); //更新库存表 } //更新成本价 MMS_SaleDetail saleDet = tSaleDetail.DetDetail; saleDet.Cost = sto.Price; dao.UpdateSaleDetail(saleDet); } content.AuditFlag = isAudit; //设销售单已审核 content.Operator = operatorCode; content.OperateDate = DateTime.Now; dao.UpdateInfo(content); ts.Complete(); //提交事务 } return(true); }
/// <summary> /// 插入销售单 /// </summary> /// <param name="info"> </param> /// <returns> </returns> public int InsertInfo(MMS_SaleContent info) { dc.MMS_SaleContent.InsertOnSubmit(info); dc.SubmitChanges(); return(info.ID); }
/// <summary> /// 修改销售单 /// </summary> /// <param name="info"> </param> /// <returns> </returns> public bool UpdateInfo(MMS_SaleContent info) { return(dao.UpdateInfo(info)); }