/// <summary> /// 更新报修单行项 /// </summary> /// <param name="entity"></param> /// <returns></returns> public ReturnInfo UpdateAssRepairOrderRow(ROInputDto entity) { ReturnInfo RInfo = new ReturnInfo(); try { AssRepairOrderRow assROR = new AssRepairOrderRow(); AssQuant assQuant = new AssQuant(); foreach (AssRepairOrderRow Row in entity.Rows) { assROR = _AssRepairOrderRowRepository.GetByID(entity.ROID, Row.ROROWID).FirstOrDefault(); if (assROR == null) { throw new Exception("维修单行项:" + Row.ROROWID + "不存在!"); } assROR.WAITREPAIRQTY = assROR.WAITREPAIRQTY - Row.REPAIREDQTY; //待维修数量 if (Row.WAITREPAIRQTY < 0) { throw new Exception("维修数量不能超过待维修总数"); } assROR.REPAIREDQTY = Convert.ToDecimal(assROR.REPAIREDQTY) + Row.REPAIREDQTY; if (assROR.WAITREPAIRQTY == 0) //如果全部维修完毕,则修改行项状态 { assROR.STATUS = 1; } //更新OrderRow数据 _unitOfWork.RegisterDirty(assROR); //往AssProcessRecord表添加数据 CreatePR(entity, Row, PROCESSMODE.维修完毕); Assets assetsSN = _AssetsRepository.GetByID(Row.ASSID).FirstOrDefault(); if (assetsSN == null) { throw new Exception("不存在条码为:" + Row.ASSID + "的资产!"); } assetsSN.STATUS = (Int32)STATUS.闲置; _unitOfWork.RegisterDirty(assetsSN); } RInfo.IsSuccess = true; RInfo.ErrorInfo = "维修单行项更新成功!"; } catch (Exception ex) { _unitOfWork.Rollback(); RInfo.IsSuccess = false; RInfo.ErrorInfo = ex.Message; } return(RInfo); }
/// <summary> /// 新增报废单行项 /// </summary> /// <param name="entity"></param> /// <returns></returns> public ReturnInfo AddAssScrapOrderRow(SOInputDto entity) { ReturnInfo RInfo = new ReturnInfo(); try { String SOROWID = "0"; AssQuant assQuant = new AssQuant(); if (entity.Rows != null) { foreach (AssScrapOrderRow Row in entity.Rows) { SOROWID = (int.Parse(SOROWID) + 1).ToString(); Row.SOID = entity.SOID; Row.SOROWID = SOROWID; if (GetRowByRowID(Row.SOID, Row.SOROWID) != null) { throw new Exception("报废单行项号已存在!"); } _unitOfWork.RegisterNew(Row); //往AssProcessRecord表添加数据 CreateSR(entity, Row, PROCESSMODE.清理报废); Assets assetsSN = _AssetsRepository.GetByID(Row.ASSID).FirstOrDefault(); if (assetsSN == null) { throw new Exception("不存在条码为:" + Row.ASSID + "的资产!"); } assetsSN.STATUS = (Int32)STATUS.报废; _unitOfWork.RegisterDirty(assetsSN); } RInfo.IsSuccess = true; RInfo.ErrorInfo = "维修单行项创建成功!"; } } catch (Exception ex) { _unitOfWork.Rollback(); RInfo.IsSuccess = false; RInfo.ErrorInfo = ex.Message; } return(RInfo); }