/// <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);
        }
Beispiel #2
0
        /// <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);
        }