/// <summary> /// 检查 /// </summary> /// <param name="purchaseNotice"></param> /// <returns></returns> private ResultData <string> CheckValid(WPurchaseNotice purchaseNotice) { ResultData <string> rt = new ResultData <string>(); if (purchaseNotice.WarehouseID < 0) { rt.status = -1; rt.message = "仓库不能为空"; return(rt); } foreach (var item in purchaseNotice.Lines) { //删除行,不验证 if (item.CURD == CurdEnum.Delete) { continue; } if (item.MaterialID < 1) { rt.status = -1; rt.message = BuilderErrorMessage(item, "物料不能为空"); break; } else if (item.InCount <= 0) { rt.status = -1; rt.message = BuilderErrorMessage(item, "入库数量必须大于0"); break; } } return(rt); }
/// <summary> /// 下推 /// </summary> /// <returns></returns> public ContentResult PushDown() { ResultData <string> rt = new ResultData <string>(); //获取前台传会的删除ID WPurchaseNotice notice = GetParam <WPurchaseNotice>("app"); rt = pService.AddPurchase(notice, CurrentUser.ID); return(ReturnResult(rt)); }
/// <summary> /// 删除 /// </summary> /// <param name="purchaseNotice"></param> /// <returns></returns> public int RemovePurchaseNotice(WPurchaseNotice purchaseNotice) { int result = pnRepository.RemovePruchaseNoticeByStatus(purchaseNotice.ID, NoticeStatusEnum.New); if (result > 0) { pnlRepository.RemoveLinesByParentId(purchaseNotice.ID); } return(result); }
public ContentResult Add() { ResultData <string> rt = new ResultData <string>(); WPurchaseNotice notice = GetAdd <WPurchaseNotice>(); notice.CreateBy = this.CurrentUser.ID; rt = pnService.AddPurchaseNotice(notice); return(ReturnResult(rt)); }
/// <summary> /// 更新 /// </summary> /// <param name="purchaseNotice"></param> /// <returns></returns> public ResultData <string> UpdatePurchaseNotice(WPurchaseNotice purchaseNotice) { ResultData <string> rData = CheckValid(purchaseNotice); if (rData.status != 0) { return(rData); } if (purchaseNotice.NoticeStatus != NoticeStatusEnum.New) { rData.status = -1; rData.message = "单据已经审核,不能编辑."; return(rData); } DatabaseContext db = pnRepository.DbCondext; try { db.BeginTransaction(); pnRepository.Update(purchaseNotice); foreach (var line in purchaseNotice.Lines) { switch (line.CURD) { case CurdEnum.Add: line.ParentID = purchaseNotice.ID; line.CreateBy = purchaseNotice.CreateBy; line.CreateDate = DateTime.Now; pnlRepository.Insert(line); break; case CurdEnum.Delete: pnlRepository.Delete(line); break; case CurdEnum.Update: line.UpdateBy = purchaseNotice.UpdateBy; line.UpdateDate = DateTime.Now; pnlRepository.Update(line); break; } } db.CompleteTransaction(); } catch (Exception ex) { db.AbortTransaction(); throw ex; } return(rData); }
/// <summary> /// 入库通知单转换入库单 /// </summary> /// <param name="inNotice"></param> /// <returns></returns> private WPurchase CloneInNotice(WPurchaseNotice inNotice) { WPurchase Purchase = new WPurchase(); Purchase.BusinessPartnerID = inNotice.BusinessPartnerID; Purchase.CreateBy = inNotice.CreateBy; Purchase.CreateDate = DateTime.Now; Purchase.SourceCode = inNotice.InNoticeCode; Purchase.SourceID = inNotice.ID; Purchase.StockStatus = StockStatusEnum.New; Purchase.WarehouseCode = inNotice.WarehouseCode; Purchase.WarehouseID = inNotice.WarehouseID; return(Purchase); }
public ContentResult Delete() { ResultData <string> rt = new ResultData <string>(); //获取前台传会的删除ID WPurchaseNotice notice = GetDelete <WPurchaseNotice>(); int result = pnService.RemovePurchaseNotice(notice); if (result < 1) { rt.status = -1; rt.message = "删除失败,只能删除新建单据."; } return(ReturnResult(rt)); }
/// <summary> /// 添加采购通知单 /// </summary> /// <param name="inNotice"></param> /// <returns></returns> public ResultData <string> AddPurchaseNotice(WPurchaseNotice inNotice) { ResultData <string> rData = CheckValid(inNotice); if (rData.status != 0) { return(rData); } DatabaseContext dbContext = pnRepository.DbCondext; try { dbContext.BeginTransaction(); inNotice.CreateDate = DateTime.Now; inNotice.NoticeStatus = NoticeStatusEnum.New; inNotice.InNoticeCode = nuRepository.GetNextNumber("CGRT"); pnRepository.Insert(inNotice); foreach (var line in inNotice.Lines) { line.ParentID = inNotice.ID; line.CreateBy = inNotice.CreateBy; line.CreateDate = DateTime.Now; pnlRepository.Insert(line); } dbContext.CompleteTransaction(); } catch (Exception ex) { dbContext.AbortTransaction(); throw ex; } return(rData); }
/// <summary> /// 根据入库通知添加入库 /// </summary> /// <param name="inNotice"></param> /// <returns></returns> public ResultData <string> AddPurchase(WPurchaseNotice inNotice, int createBy) { ResultData <string> rData = new ResultData <string>(); if (inNotice.NoticeStatus == NoticeStatusEnum.Complete) { rData.status = -1; rData.message = "单据已完成不能下推."; return(rData); } //查询明细 if (inNotice.Lines.Count < 1) { inNotice.Lines = pnlRepository.GetLinesByParentId(inNotice.ID); } //克隆主表 WPurchase Purchase = CloneInNotice(inNotice); Purchase.CreateBy = createBy; //克隆子表 foreach (var item in inNotice.Lines) { WPurchaseLine line = CloneInNoticeLine(item); if (line != null) { Purchase.Lines.Add(line); } } if (Purchase.Lines.Count < 1) { rData.status = -1; rData.message = "单据已经全部下推."; return(rData); } DatabaseContext dbContext = pRepository.DbCondext; try { dbContext.BeginTransaction(); //添加入库单 Purchase.CreateDate = DateTime.Now; Purchase.StockStatus = StockStatusEnum.New; Purchase.PurchaseCode = nuRepository.GetNextNumber("CGRK"); pRepository.Insert(Purchase); foreach (var line in Purchase.Lines) { //插入入库明细 line.ParentID = Purchase.ID; line.CreateBy = Purchase.CreateBy; line.CreateDate = DateTime.Now; plRepository.Insert(line); //更新通知单 添加下推 decimal rt = pnlRepository.AddDownCount(line.InCount, line.SourceLineID); if (rt < 0) { dbContext.AbortTransaction(); rData.status = -1; rData.message = BuilderNoticeLessMessage(line); return(rData); } } //将插入主键赋值给返回值 rData.result = Purchase.ID.ToString(); //更新通知单状态 if (Purchase.SourceID > 0) { pnRepository.UpdateNoticeStatus(NoticeStatusEnum.Executing, Purchase.SourceID); } dbContext.CompleteTransaction(); } catch (Exception ex) { dbContext.AbortTransaction(); throw ex; } return(rData); }