public ResultModel CompleteCancel(UserModel user, int customId) { ResultModel result = new ResultModel(); try { using (System.Transactions.TransactionScope scope = new TransactionScope()) { result = this.customsclearanceDAL.Get(user, customId); if (result.ResultStatus != 0) return result; Model.CustomsClearance customsClearance = result.ReturnValue as CustomsClearance; if (customsClearance == null) { result.Message = "该数据不存在,不能完成"; result.ResultStatus = -1; return result; } result = customsclearanceDAL.CompleteCancel(user, customsClearance); if (result.ResultStatus != 0) return result; //获取所有已生效的明细 DAL.CustomsDetailDAL customsDetailDAL = new CustomsDetailDAL(); result = customsDetailDAL.Load(user, customId, StatusEnum.已完成); if (result.ResultStatus != 0) return result; List<Model.CustomsDetail> details = result.ReturnValue as List<Model.CustomsDetail>; if (details == null || !details.Any()) { result.ResultStatus = -1; result.Message = "获取失败"; return result; } DAL.StockLogDAL stockLogDAL = new StockLogDAL(); DAL.StockDAL stockDAL = new StockDAL(); foreach (Model.CustomsDetail detail in details) { //明细完成 result = customsDetailDAL.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; } stock.StockStatus = StockStatusEnum.预报关库存; stock.CustomsType = NFMT.Data.DetailProvider.Details(Data.StyleEnum.CustomType)["OutsideCustom"].StyleDetailId;//关外 result = stockDAL.Update(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 stockInId) { ResultModel result = new ResultModel(); try { DAL.StockDAL stockDAL = new StockDAL(); DAL.StockLogDAL stockLogDAL = new StockLogDAL(); DAL.StockInStockDAL stockInStockDAL = new StockInStockDAL(); DAL.ContractStockInDAL contractStockInDAL = new ContractStockInDAL(); using (System.Transactions.TransactionScope scope = new TransactionScope()) { //获取入库登记 result = this.stockinDAL.Get(user, stockInId); if (result.ResultStatus != 0) return result; Model.StockIn stockIn = result.ReturnValue as Model.StockIn; if (stockIn == null || stockIn.StockInId <= 0) { result.ResultStatus = -1; result.Message = "入库登记不存在"; return result; } //入库登记撤销完成 result = this.stockinDAL.CompleteCancel(user, stockIn); if (result.ResultStatus != 0) return result; //获取合约关联 result = contractStockInDAL.GetByStockInId(user, stockIn.StockInId); if (result.ResultStatus != 0) return result; Model.ContractStockIn contractStockIn = result.ReturnValue as Model.ContractStockIn; if (contractStockIn == null || contractStockIn.RefId <= 0) { result.ResultStatus = -1; result.Message = "入库登记未关联合约,不允许确认完成"; return result; } //完成撤销合约关联 result = contractStockInDAL.CompleteCancel(user, contractStockIn); if (result.ResultStatus != 0) return result; //获取入库登记与库存流水关联 result = stockInStockDAL.GetByStockIn(user, stockIn.StockInId); if (result.ResultStatus != 0) return result; Model.StockInStock stockInStock = result.ReturnValue as Model.StockInStock; if (stockInStock == null || stockInStock.RefId <= 0) { result.ResultStatus = -1; result.Message = "关联获取失败"; return result; } //撤销关联 result = stockInStockDAL.CompleteCancel(user, stockInStock); if (result.ResultStatus != 0) return result; //获取库存流水 result = stockLogDAL.Get(user, stockInStock.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, stockLog.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.UpdateStockStatus(stock, StockStatusEnum.预入库存); 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 repoId) { ResultModel result = new ResultModel(); try { using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required)) { result = this.repoDAL.Get(user, repoId); if (result.ResultStatus != 0) return result; Model.Repo repo = result.ReturnValue as Repo; if (repo == null) { result.Message = "该数据不存在,不能完成"; result.ResultStatus = -1; return result; } result = repoDAL.CompleteCancel(user, repo); if (result.ResultStatus != 0) return result; //获取所有已生效的明细 DAL.RepoDetailDAL repoDetailDAL = new RepoDetailDAL(); result = repoDetailDAL.Load(user, repoId, StatusEnum.已完成); if (result.ResultStatus != 0) return result; List<Model.RepoDetail> details = result.ReturnValue as List<Model.RepoDetail>; if (details == null || !details.Any()) { result.ResultStatus = -1; result.Message = "获取失败"; return result; } DAL.StockLogDAL stockLogDAL = new StockLogDAL(); DAL.StockDAL stockDAL = new StockDAL(); foreach (Model.RepoDetail detail in details) { //明细完成 result = repoDetailDAL.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 CompleteCancel(UserModel user, int stockOutId) { ResultModel result = new ResultModel(); try { DAL.StockLogDAL stockLogDAL = new StockLogDAL(); DAL.StockDAL stockDAL = new StockDAL(); DAL.StockNameDAL stockNameDAL = new StockNameDAL(); DAL.StockOutDAL stockOutDAL = new StockOutDAL(); DAL.StockOutDetailDAL stockOutDetailDAL = new StockOutDetailDAL(); DAL.StockOutApplyDAL outApplyDAL = new StockOutApplyDAL(); Operate.DAL.ApplyDAL applyDAL = new Operate.DAL.ApplyDAL(); using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required)) { //验证出库 result = stockoutDAL.Get(user, stockOutId); if (result.ResultStatus != 0) return result; StockOut stockOut = result.ReturnValue as StockOut; if (stockOut == null || stockOut.StockOutId <= 0) { result.ResultStatus = -1; result.Message = "该数据不存在,不能进行执行完成操作"; return result; } //撤销出库 result = this.stockoutDAL.CompleteCancel(user, stockOut); if (result.ResultStatus != 0) return result; //验证出库申请 result = outApplyDAL.Get(user, stockOut.StockOutApplyId); if (result.ResultStatus != 0) return result; Model.StockOutApply outApply = result.ReturnValue as Model.StockOutApply; if (outApply == null || outApply.StockOutApplyId <= 0) { result.ResultStatus = -1; result.Message = "出库申请不存在"; return result; } //验证主申请 result = applyDAL.Get(user, outApply.ApplyId); if (result.ResultStatus != 0) return result; Operate.Model.Apply apply = result.ReturnValue as Operate.Model.Apply; if (apply == null || apply.ApplyId <= 0) { result.ResultStatus = -1; result.Message = "主申请不存在"; return result; } //判断主申请状态是否为已生效, if (apply.ApplyStatus != StatusEnum.已生效) { result.ResultStatus = -1; result.Message = "申请状态只有在已生效下才能进行执行完成撤销"; return result; } //获取已完成出库明细 result = stockOutDetailDAL.Load(user, stockOut.StockOutId, Common.StatusEnum.已完成); if (result.ResultStatus != 0) return result; List<Model.StockOutDetail> details = result.ReturnValue as List<Model.StockOutDetail>; if (details == null) { result.ResultStatus = -1; result.Message = "获取出库明细错误"; return result; } //将所有已完成出库明细更新至已生效 foreach (Model.StockOutDetail detail in details) { result = stockOutDetailDAL.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,stockLog.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; } //库存重量添加 stock.CurGrossAmount += detail.GrossAmount; stock.CurNetAmount += detail.NetAmount; stock.Bundles += detail.Bundles; //明细关联库存状态更新至前一状态 if (stock.StockStatus == StockStatusEnum.已售库存) stock.StockStatus = StockStatusEnum.预售库存; result = stockDAL.Update(user, stock); if (result.ResultStatus != 0) return result; } scope.Complete(); } } catch (Exception ex) { result.ResultStatus = -1; result.Message = ex.Message; } return result; }
//移库完成撤销 流水操作:更新 流水状态:已生效 库存操作:更新 库存状态:预移库存 public ResultModel CompleteCancel(UserModel user, int stockMoveId) { ResultModel result = new ResultModel(); try { using (System.Transactions.TransactionScope scope = new TransactionScope()) { result = this.stockmoveDAL.Get(user, stockMoveId); if (result.ResultStatus != 0) return result; Model.StockMove stockmove = result.ReturnValue as StockMove; if (stockmove == null) { result.Message = "该数据不存在,不能完成"; result.ResultStatus = -1; return result; } result = stockmoveDAL.CompleteCancel(user, stockmove); if (result.ResultStatus != 0) return result; //获取所有已生效的明细 DAL.StockMoveDetailDAL stockMoveDetailDAL = new StockMoveDetailDAL(); result = stockMoveDetailDAL.Load(user, stockMoveId, StatusEnum.已完成); if (result.ResultStatus != 0) return result; List<Model.StockMoveDetail> details = result.ReturnValue as List<Model.StockMoveDetail>; if (details == null || !details.Any()) { result.ResultStatus = -1; result.Message = "获取失败"; return result; } DAL.StockLogDAL stockLogDAL = new StockLogDAL(); DAL.StockDAL stockDAL = new StockDAL(); foreach (Model.StockMoveDetail detail in details) { //明细完成 result = stockMoveDetailDAL.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.UpdateStockStatus(stock, StockStatusEnum.预移库存); if (result.ResultStatus != 0) return result; } scope.Complete(); } } catch (Exception ex) { result.ResultStatus = -1; result.Message = ex.Message; return result; } return result; }
public ResultModel ContractInCompleteCancelStockOperate(UserModel user, int contractId) { ResultModel result = new ResultModel(); StockDAL stockDAL = new StockDAL(); StockLogDAL stockLogDAL = new StockLogDAL(); StockInStockDAL stockInStockDAL = new StockInStockDAL(); ContractStockInDAL contractStockInDAL = new ContractStockInDAL(); StockInDAL stockInDAL = new StockInDAL(); result = contractStockInDAL.Load(user, contractId); if (result.ResultStatus != 0) return result; List<NFMT.WareHouse.Model.ContractStockIn> contractStockIns = result.ReturnValue as List<NFMT.WareHouse.Model.ContractStockIn>; if (contractStockIns == null) { result.Message = "合约入库分配获取失败"; result.ResultStatus = -1; return result; } foreach (NFMT.WareHouse.Model.ContractStockIn contractStcokIn in contractStockIns) { //获取入库登记 result = stockInDAL.Get(user, contractStcokIn.StockInId); if (result.ResultStatus != 0) return result; NFMT.WareHouse.Model.StockIn stockIn = result.ReturnValue as NFMT.WareHouse.Model.StockIn; if (stockIn == null || stockIn.StockInId <= 0) { result.ResultStatus = -1; result.Message = "入库登记不存在"; return result; } //入库登记撤销完成 result = stockInDAL.CompleteCancel(user, stockIn); if (result.ResultStatus != 0) return result; //获取合约关联 result = contractStockInDAL.GetByStockInId(user, stockIn.StockInId); if (result.ResultStatus != 0) return result; NFMT.WareHouse.Model.ContractStockIn contractStockIn = result.ReturnValue as NFMT.WareHouse.Model.ContractStockIn; if (contractStockIn == null || contractStockIn.RefId <= 0) { result.ResultStatus = -1; result.Message = "入库登记未关联合约,不允许确认完成"; return result; } //完成撤销合约关联 result = contractStockInDAL.CompleteCancel(user, contractStockIn); if (result.ResultStatus != 0) return result; //获取入库登记与库存流水关联 result = stockInStockDAL.GetByStockIn(user, stockIn.StockInId); if (result.ResultStatus != 0) return result; NFMT.WareHouse.Model.StockInStock stockInStock = result.ReturnValue as NFMT.WareHouse.Model.StockInStock; if (stockInStock == null || stockInStock.RefId <= 0) { result.ResultStatus = -1; result.Message = "关联获取失败"; return result; } //撤销关联 result = stockInStockDAL.CompleteCancel(user, stockInStock); if (result.ResultStatus != 0) return result; //获取库存流水 result = stockLogDAL.Get(user, stockInStock.StockLogId); if (result.ResultStatus != 0) return result; NFMT.WareHouse.Model.StockLog stockLog = result.ReturnValue as NFMT.WareHouse.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, stockLog.StockId); if (result.ResultStatus != 0) return result; NFMT.WareHouse.Model.Stock stock = result.ReturnValue as NFMT.WareHouse.Model.Stock; if (stock == null || stock.StockId <= 0) { result.ResultStatus = -1; result.Message = "库存获取失败"; return result; } //更新库存状态为预入库存 result = stockDAL.UpdateStockStatus(stock, StockStatusEnum.预入库存); if (result.ResultStatus != 0) return result; } return result; }