public ResultModel PledgeHandle(UserModel user, NFMT.WorkFlow.Model.DataSource dataSource, bool isPass) { ResultModel result = new ResultModel(); try { using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required)) { result = this.pledgeDAL.Get(user, dataSource.RowId); if (result.ResultStatus != 0) return result; Model.Pledge pledge = result.ReturnValue as Model.Pledge; if (pledge == null || pledge.PledgeId <= 0) { result.ResultStatus = -1; result.Message = "质押不存在"; return result; } //审核,修改数据状态 result = this.pledgeDAL.Audit(user, pledge, isPass); if (result.ResultStatus != 0) return result; //审核通过 if (isPass) { //加载已生效明细 DAL.PledgeDetialDAL pledgeDetialDAL = new PledgeDetialDAL(); result = pledgeDetialDAL.Load(user, pledge.PledgeId, StatusEnum.已生效); if (result.ResultStatus != 0) return result; List<Model.PledgeDetial> details = result.ReturnValue as List<Model.PledgeDetial>; if (details == null || !details.Any()) { result.ResultStatus = -1; result.Message = "获取失败"; return result; } DAL.StockDAL stockDAL = new StockDAL(); DAL.StockNameDAL stockNameDAL = new StockNameDAL(); DAL.StockLogDAL stockLogDAL = new StockLogDAL(); Model.Stock stock = null; Model.StockName stockName = null; Model.StockLog stockLog = null; foreach (Model.PledgeDetial detail in details) { //获取库存 result = stockDAL.Get(user, detail.StockId); if (result.ResultStatus != 0) return result; stock = result.ReturnValue as Model.Stock; if (stock == null) { result.ResultStatus = -1; result.Message = "获取库存失败"; return result; } //获取业务单号 result = stockNameDAL.Get(user, stock.StockNameId); if (result.ResultStatus != 0) return result; stockName = result.ReturnValue as Model.StockName; if (stockName == null) { result.ResultStatus = -1; result.Message = "获取业务单号失败"; return result; } //创建库存流水 stockLog = new StockLog() { StockId = stock.StockId, StockNameId = stock.StockNameId, RefNo = stockName.RefNo, LogDirection = (int)LogDirectionEnum.Out, LogType = (int)LogTypeEnum.质押, //ContractId = //SubContractId = LogDate = DateTime.Now, OpPerson = user.EmpId, Bundles = stock.Bundles, GrossAmount = stock.GrossAmount, NetAmount = stock.NetAmount, MUId = stock.UintId, BrandId = stock.BrandId, DeliverPlaceId = stock.DeliverPlaceId, PaperNo = stock.PaperNo, PaperHolder = stock.PaperHolder, CardNo = stock.CardNo, Memo = stock.Memo, LogStatus = StatusEnum.已生效, LogSourceBase = "NFMT", LogSource = "dbo.St_Pledge", SourceId = pledge.PledgeId }; result = stockLogDAL.Insert(user, stockLog); if (result.ResultStatus != 0) return result; int stockLogId = 0; if (result.ReturnValue == null || !int.TryParse(result.ReturnValue.ToString(), out stockLogId) || stockLogId <= 0) { result.ResultStatus = -1; result.Message = "流水添加失败"; return result; } //将库存流水Id反向更新到明细表中 detail.StockLogId = stockLogId; result = pledgeDetialDAL.Update(user, detail); if (result.ResultStatus != 0) return result; //更新库存状态 result = stockDAL.UpdateStockStatus(stock, StockStatusEnum.预押库存); if (result.ResultStatus != 0) return result; } } scope.Complete(); } } catch (Exception e) { result.Message = e.Message; result.ResultStatus = -1; } return result; }
public ResultModel PledgeUpdateHandle(UserModel user, Model.Pledge pledge, List<Model.PledgeDetial> details) { ResultModel result = new ResultModel(); try { using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required)) { result = pledgeDAL.Get(user, pledge.PledgeId); if (result.ResultStatus != 0) return result; Model.Pledge pledgeRes = result.ReturnValue as Model.Pledge; if (pledgeRes == null) { result.ResultStatus = -1; result.Message = "获取失败"; return result; } pledgeRes.Pledger = user.EmpId; pledgeRes.PledgeTime = DateTime.Now; pledgeRes.PledgeBank = pledge.PledgeBank; pledgeRes.Memo = pledge.Memo; result = pledgeDAL.Update(user, pledgeRes); if (result.ResultStatus != 0) return result; DAL.PledgeDetialDAL pledgeDetialDAL = new PledgeDetialDAL(); result = pledgeDetialDAL.InvalidAll(user, pledge.PledgeId); if (result.ResultStatus != 0) return result; foreach (Model.PledgeDetial detail in details) { detail.PledgeId = pledge.PledgeId; result = pledgeDetialDAL.Insert(user, detail); if (result.ResultStatus != 0) return result; } scope.Complete(); } } catch (Exception ex) { result.ResultStatus = -1; result.Message = ex.Message; } finally { if (result.ResultStatus != 0) log.ErrorFormat("{0} {1},类型序号:{2}", user.EmpName, result.Message, result.ReturnValue); else if (log.IsInfoEnabled) log.InfoFormat("{0} {1},类型序号:{2}", user.EmpName, result.Message, result.ReturnValue); } return result; }
public ResultModel PledgeCreateHandle(UserModel user, Model.Pledge pledge, List<Model.PledgeDetial> details) { ResultModel result = new ResultModel(); try { using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required)) { result = pledgeDAL.Insert(user, pledge); if (result.ResultStatus != 0) return result; int pledgeId = (int)result.ReturnValue; DAL.PledgeDetialDAL pledgeDetialDAL = new PledgeDetialDAL(); foreach (Model.PledgeDetial detail in details) { detail.PledgeId = pledgeId; result = pledgeDetialDAL.Insert(user, detail); if (result.ResultStatus != 0) return result; } if (result.ResultStatus == 0) result.ReturnValue = pledgeId; scope.Complete(); } } catch (Exception ex) { result.ResultStatus = -1; result.Message = ex.Message; } finally { if (result.ResultStatus != 0) log.ErrorFormat("{0} {1},类型序号:{2}", user.EmpName, result.Message, result.ReturnValue); else if (log.IsInfoEnabled) log.InfoFormat("{0} {1},类型序号:{2}", user.EmpName, result.Message, result.ReturnValue); } return result; }
public ResultModel Invalid(UserModel user, int pledgeId) { ResultModel result = new ResultModel(); try { using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required)) { result = pledgeDAL.Get(user, pledgeId); if (result.ResultStatus != 0) return result; Model.Pledge pledge = result.ReturnValue as Model.Pledge; if (pledge == null) { result.Message = "不存在质押"; result.ResultStatus = -1; return result; } result = pledgeDAL.Invalid(user, pledge); if (result.ResultStatus != 0) return result; DAL.PledgeDetialDAL pledgeDetialDAL = new PledgeDetialDAL(); result = pledgeDetialDAL.GetDetailId(user, pledgeId); if (result.ResultStatus != 0) return result; if (!string.IsNullOrEmpty(result.ReturnValue.ToString())) { foreach (string s in result.ReturnValue.ToString().Split(',')) { result = pledgeDetialDAL.Invalid(user, new Model.PledgeDetial() { Id = Convert.ToInt32(s) }); if (result.ResultStatus != 0) return result; } } scope.Complete(); } } catch (Exception ex) { result.Message = ex.Message; } finally { if (result.ResultStatus != 0) log.ErrorFormat("{0} {1},类型序号:{2}", user.EmpName, result.Message, result.ReturnValue); else if (log.IsInfoEnabled) log.InfoFormat("{0} {1},类型序号:{2}", user.EmpName, result.Message, result.ReturnValue); } return result; }
public ResultModel Close(UserModel user, int pledgeId) { ResultModel result = new ResultModel(); try { using (System.Transactions.TransactionScope scope = new TransactionScope()) { //获取质押 result = this.pledgeDAL.Get(user, pledgeId); if (result.ResultStatus != 0) return result; Model.Pledge pledge = result.ReturnValue as Model.Pledge; if (pledge == null || pledge.PledgeId <= 0) { result.ResultStatus = -1; result.Message = "质押不存在"; return result; } //质押关闭 result = this.pledgeDAL.Close(user, pledge); if (result.ResultStatus != 0) return result; //获取所有已完成的明细 DAL.PledgeDetialDAL pledgeDetialDAL = new PledgeDetialDAL(); result = pledgeDetialDAL.Load(user, pledgeId, StatusEnum.已生效); if (result.ResultStatus != 0) return result; List<Model.PledgeDetial> details = result.ReturnValue as List<Model.PledgeDetial>; if (details == null || !details.Any()) { result.ResultStatus = -1; result.Message = "获取失败"; return result; } DAL.StockLogDAL stockLogDAL = new StockLogDAL(); DAL.StockDAL stockDAL = new StockDAL(); foreach (Model.PledgeDetial detail in details) { //明细关闭 result = pledgeDetialDAL.Close(user, detail); if (result.ResultStatus != 0) return result; //获取质押流水 result = stockLogDAL.Get(user, detail.StockLogId); if (result.ResultStatus != 0) return result; Model.StockLog stockLog = result.ReturnValue as Model.StockLog; if (stockLog == null || stockLog.StockLogId <= 0) { result.ResultStatus = -1; result.Message = "质押流水获取失败"; return result; } //完成质押流水 result = stockLogDAL.Close(user, stockLog); if (result.ResultStatus != 0) return result; //获取库存 result = stockDAL.Get(user, detail.StockId); if (result.ResultStatus != 0) return result; Model.Stock stock = result.ReturnValue as Model.Stock; if (stock == null || stock.StockId <= 0) { result.ResultStatus = -1; result.Message = "库存获取失败"; return result; } if (stock.PreStatus == StockStatusEnum.质押库存) stock.PreStatus = StockStatusEnum.在库正常; result = stockDAL.UpdateStockStatusToPrevious(user, stock); if (result.ResultStatus != 0) return result; } scope.Complete(); } } catch (Exception ex) { result.ResultStatus = -1; result.Message = ex.Message; return result; } return result; }
public ResultModel CompleteCancel(UserModel user, int pledgeId) { ResultModel result = new ResultModel(); try { using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required)) { result = this.pledgeDAL.Get(user, pledgeId); if (result.ResultStatus != 0) return result; Model.Pledge pledge = result.ReturnValue as Pledge; if (pledge == null) { result.Message = "该数据不存在,不能完成撤销"; result.ResultStatus = -1; return result; } result = pledgeDAL.CompleteCancel(user, pledge); if (result.ResultStatus != 0) return result; //获取所有已生效的明细 DAL.PledgeDetialDAL pledgeDetialDAL = new PledgeDetialDAL(); result = pledgeDetialDAL.Load(user, pledgeId, StatusEnum.已完成); if (result.ResultStatus != 0) return result; List<Model.PledgeDetial> details = result.ReturnValue as List<Model.PledgeDetial>; if (details == null || !details.Any()) { result.ResultStatus = -1; result.Message = "获取失败"; return result; } DAL.StockLogDAL stockLogDAL = new StockLogDAL(); DAL.StockDAL stockDAL = new StockDAL(); foreach (Model.PledgeDetial detail in details) { //明细完成 result = pledgeDetialDAL.CompleteCancel(user, detail); if (result.ResultStatus != 0) return result; //获取质押流水 result = stockLogDAL.Get(user, detail.StockLogId); if (result.ResultStatus != 0) return result; Model.StockLog stockLog = result.ReturnValue as Model.StockLog; if (stockLog == null || stockLog.StockLogId <= 0) { result.ResultStatus = -1; result.Message = "质押流水获取失败"; return result; } //完成质押流水 result = stockLogDAL.CompleteCancel(user, stockLog); if (result.ResultStatus != 0) return result; //获取库存 result = stockDAL.Get(user, detail.StockId); if (result.ResultStatus != 0) return result; Model.Stock stock = result.ReturnValue as Model.Stock; if (stock == null || stock.StockId <= 0) { result.ResultStatus = -1; result.Message = "库存获取失败"; return result; } result = stockDAL.UpdateStockStatusDirect(stock, StockStatusEnum.预押库存); if (result.ResultStatus != 0) return result; } scope.Complete(); } } catch (Exception ex) { result.ResultStatus = -1; result.Message = ex.Message; } return result; }
public ResultModel Complete(UserModel user, int pledgeId) { ResultModel result = new ResultModel(); try { using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required)) { //验证质押 result = pledgeDAL.Get(user, pledgeId); if (result.ResultStatus != 0) return result; Pledge pledge = result.ReturnValue as Pledge; if (pledge == null || pledge.PledgeId <= 0) { result.ResultStatus = -1; result.Message = "该数据不存在,不能进行执行完成操作"; return result; } //执行完成 result = pledgeDAL.Complete(user, pledge); if (result.ResultStatus != 0) return result; //加载明细 PledgeDetialDAL pledgeDetialDAL = new PledgeDetialDAL(); result = pledgeDetialDAL.Load(user, pledge.PledgeId); if (result.ResultStatus != 0) return result; List<Model.PledgeDetial> details = result.ReturnValue as List<Model.PledgeDetial>; if (details == null || !details.Any()) { result.ResultStatus = -1; result.Message = "获取质押明细失败"; return result; } //加载对应质押申请 PledgeApplyDAL pledgeApplyDAL = new PledgeApplyDAL(); result = pledgeApplyDAL.Get(user, pledge.PledgeApplyId); if (result.ResultStatus != 0) return result; PledgeApply pledgeApply = result.ReturnValue as PledgeApply; if (pledgeApply == null || pledgeApply.PledgeApplyId <= 0) { result.ResultStatus = -1; result.Message = "对应质押申请加载失败"; return result; } //明细执行完成 //更新库存状态至质押库存 StockDAL stockDAL = new StockDAL(); StockLogDAL stockLogDAL = new StockLogDAL(); StockNameDAL stockNameDAL = new StockNameDAL(); foreach (Model.PledgeDetial detail in details) { //明细完成 result = pledgeDetialDAL.Complete(user, detail); if (result.ResultStatus != 0) return result; //获取质押流水 result = stockLogDAL.Get(user, detail.StockLogId); if (result.ResultStatus != 0) return result; Model.StockLog stockLog = result.ReturnValue as Model.StockLog; if (stockLog == null || stockLog.StockLogId <= 0) { result.ResultStatus = -1; result.Message = "质押流水获取失败"; return result; } //完成质押流水 result = stockLogDAL.Complete(user, stockLog); if (result.ResultStatus != 0) return result; //获取库存 result = stockDAL.Get(user, detail.StockId); if (result.ResultStatus != 0) return result; Model.Stock stock = result.ReturnValue as Model.Stock; if (stock == null || stock.StockId <= 0) { result.ResultStatus = -1; result.Message = "库存获取失败"; return result; } result = stockDAL.UpdateStockStatusDirect(stock, StockStatusEnum.质押库存); if (result.ResultStatus != 0) return result; } scope.Complete(); } } catch (Exception ex) { result.Message = ex.Message; } finally { if (result.ResultStatus != 0) log.ErrorFormat("{0} {1},类型序号:{2}", user.EmpName, result.Message, result.ReturnValue); else if (log.IsInfoEnabled) log.InfoFormat("{0} {1},类型序号:{2}", user.EmpName, result.Message, result.ReturnValue); } return result; }