/// <summary> /// 检查 /// </summary> /// <param name="outNotice"></param> /// <returns></returns> private ResultData <string> CheckValid(WSellNotice outNotice) { ResultData <string> rt = new ResultData <string>(); if (outNotice.WarehouseID < 0) { rt.status = -1; rt.message = "仓库不能为空"; return(rt); } foreach (var item in outNotice.Lines) { //删除行,不验证 if (item.CURD == CurdEnum.Delete) { continue; } if (item.MaterialID < 1) { rt.status = -1; rt.message = BuilderErrorMessage(item, "物料不能为空"); break; } else if (item.OutCount <= 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 WSellNotice notice = GetParam <WSellNotice>("app"); rt = sService.AddSell(notice, CurrentUser.ID); return(ReturnResult(rt)); }
public ContentResult Add() { ResultData <string> rt = new ResultData <string>(); WSellNotice notice = GetAdd <WSellNotice>(); notice.CreateBy = this.CurrentUser.ID; rt = snService.AddSellNotice(notice); return(ReturnResult(rt)); }
/// <summary> /// 删除 /// </summary> /// <param name="outNotice"></param> /// <returns></returns> public int RemoveSellNotice(WSellNotice outNotice) { int result = pnRepository.RemovePruchaseNoticeByStatus(outNotice.ID, NoticeStatusEnum.New); if (result > 0) { pnlRepository.RemoveLinesByParentId(outNotice.ID); } return(result); }
public ContentResult Update() { ResultData <string> rt = new ResultData <string>(); WSellNotice notice = GetUpdate <WSellNotice>(); notice.UpdateBy = this.CurrentUser.ID; snService.UpdateSellNotice(notice); return(ReturnResult(rt)); }
/// <summary> /// 更新 /// </summary> /// <param name="outNotice"></param> /// <returns></returns> public ResultData <string> UpdateSellNotice(WSellNotice outNotice) { ResultData <string> rData = CheckValid(outNotice); if (rData.status != 0) { return(rData); } if (outNotice.NoticeStatus != NoticeStatusEnum.New) { rData.status = -1; rData.message = "单据已经审核,不能编辑."; return(rData); } DatabaseContext db = pnRepository.DbCondext; try { db.BeginTransaction(); pnRepository.Update(outNotice); foreach (var line in outNotice.Lines) { switch (line.CURD) { case CurdEnum.Add: line.ParentID = outNotice.ID; line.CreateBy = outNotice.CreateBy; line.CreateDate = DateTime.Now; pnlRepository.Insert(line); break; case CurdEnum.Delete: pnlRepository.Delete(line); break; case CurdEnum.Update: line.UpdateBy = outNotice.UpdateBy; line.UpdateDate = DateTime.Now; pnlRepository.Update(line); break; } } db.CompleteTransaction(); } catch (Exception ex) { db.AbortTransaction(); throw ex; } return(rData); }
/// <summary> /// 出库通知单转换出库单 /// </summary> /// <param name="outNotice"></param> /// <returns></returns> private WSell CloneOutNotice(WSellNotice outNotice) { WSell Sell = new WSell(); Sell.BusinessPartnerID = outNotice.BusinessPartnerID; Sell.CreateBy = outNotice.CreateBy; Sell.CreateDate = DateTime.Now; Sell.SourceCode = outNotice.OutNoticeCode; Sell.SourceID = outNotice.ID; Sell.StockStatus = StockStatusEnum.New; Sell.WarehouseCode = outNotice.WarehouseCode; Sell.WarehouseID = outNotice.WarehouseID; return(Sell); }
public ContentResult Delete() { ResultData <string> rt = new ResultData <string>(); //获取前台传会的删除ID WSellNotice notice = GetDelete <WSellNotice>(); int result = snService.RemoveSellNotice(notice); if (result < 1) { rt.status = -1; rt.message = "删除失败,只能删除新建单据."; } return(ReturnResult(rt)); }
/// <summary> /// 插入新其他出库 /// </summary> /// <param name="outNotice"></param> /// <returns></returns> public ResultData <string> AddSellNotice(WSellNotice outNotice) { ResultData <string> rData = CheckValid(outNotice); if (rData.status != 0) { return(rData); } DatabaseContext dbContext = pnRepository.DbCondext; try { dbContext.BeginTransaction(); outNotice.CreateDate = DateTime.Now; outNotice.NoticeStatus = NoticeStatusEnum.New; outNotice.OutNoticeCode = nuRepository.GetNextNumber("XSCT"); pnRepository.Insert(outNotice); foreach (var line in outNotice.Lines) { line.ParentID = outNotice.ID; line.CreateBy = outNotice.CreateBy; line.CreateDate = DateTime.Now; pnlRepository.Insert(line); } dbContext.CompleteTransaction(); } catch (Exception ex) { dbContext.AbortTransaction(); throw ex; } return(rData); }
/// <summary> /// 根据通知单生成出库单 /// </summary> /// <param name="outNotice"></param> /// <returns></returns> public ResultData <string> AddSell(WSellNotice outNotice, int createBy) { ResultData <string> rData = new ResultData <string>(); if (outNotice.NoticeStatus == NoticeStatusEnum.Complete) { rData.status = -1; rData.message = "单据已完成不能下推."; return(rData); } //查询明细 if (outNotice.Lines.Count < 1) { outNotice.Lines = snlRepository.GetLinesByParentId(outNotice.ID); } //克隆主表 WSell sell = CloneOutNotice(outNotice); sell.CreateBy = createBy; //克隆子表 foreach (var item in outNotice.Lines) { WSellLine line = CloneOutNoticeLine(item); if (line != null) { sell.Lines.Add(line); } } if (sell.Lines.Count < 1) { rData.status = -1; rData.message = "单据已经全部下推."; return(rData); } DatabaseContext dbContext = sRepository.DbCondext; try { dbContext.BeginTransaction(); //添加出库单 sell.CreateDate = DateTime.Now; sell.StockStatus = StockStatusEnum.New; sell.SellCode = nuRepository.GetNextNumber("XSCK"); sRepository.Insert(sell); foreach (var line in sell.Lines) { //插入出库明细 line.ParentID = sell.ID; line.CreateBy = sell.CreateBy; line.CreateDate = DateTime.Now; line.Batch = string.IsNullOrEmpty(line.Batch) ? "" : line.Batch; slRepository.Insert(line); //更新通知单 添加下推 decimal rt = snlRepository.AddDownCount(line.OutCount, line.SourceLineID); if (rt < 0) { dbContext.AbortTransaction(); rData.status = -1; rData.message = BuilderNoticeLessMessage(line); return(rData); } } //将插入主键赋值给返回值 rData.result = sell.ID.ToString(); //更新通知单状态 if (sell.SourceID > 0) { snRepository.UpdateNoticeStatus(NoticeStatusEnum.Executing, sell.SourceID); } dbContext.CompleteTransaction(); } catch (Exception ex) { dbContext.AbortTransaction(); throw ex; } return(rData); }