コード例 #1
0
        /// <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);
        }
コード例 #2
0
 /// <summary>
 /// 获取行项数据
 /// </summary>
 /// <returns></returns>
 public AssRepairOrderRow getData()
 {
     if (Check.Checked)
     {
         AssRepairOrderRow Data = new AssRepairOrderRow();
         Data.ROROWID     = Check.BindDataValue.ToString();
         Data.IMAGE       = imgAss.BindDisplayValue.ToString();
         Data.ASSID       = lblName.BindDataValue.ToString();
         Data.SN          = lblSN.BindDataValue.ToString();
         Data.REPAIREDQTY = 1;
         Data.STATUS      = 1;
         return(Data);
     }
     else
     {
         return(null);
     }
 }
コード例 #3
0
        /// <summary>
        /// 创建ProcessRecorder表数据
        /// </summary>
        /// <param name="Data"></param>
        /// <param name="RowData"></param>
        /// <param name="Type"></param>
        public void CreatePR(ROInputDto Data, AssRepairOrderRow RowData, PROCESSMODE Type)
        {
            AssProcessRecord assProcessRecord = new AssProcessRecord
            {
                ASSID      = RowData.ASSID,     //资产条码
                CREATEDATE = DateTime.Now,      //创建时间
                CREATEUSER = Data.CREATEUSER,   //创建用户
                HANDLEDATE = DateTime.Now,      //处理时间
                MODIFYDATE = DateTime.Now,      //修改时间
                MODIFYUSER = Data.MODIFYUSER,   //修改用户
            };

            switch (Type)
            {
            case PROCESSMODE.报修:
                assProcessRecord.QUANTITY    = RowData.WAITREPAIRQTY;
                assProcessRecord.PROCESSMODE = (Int32)PROCESSMODE.报修;
                assProcessRecord.HANDLEMAN   = Data.CREATEUSER;
                break;

            case PROCESSMODE.维修完毕:
                assProcessRecord.QUANTITY    = RowData.REPAIREDQTY;
                assProcessRecord.PROCESSMODE = (Int32)PROCESSMODE.维修完毕;
                assProcessRecord.HANDLEMAN   = Data.MODIFYUSER;
                break;
            }
            switch (Type)         //根据操作模式,输入操作内容
            {
            case PROCESSMODE.报修:
                assProcessRecord.PROCESSCONTENT = Data.CREATEUSER + "报修了物品编号为" + RowData.ASSID + "的资产";
                break;

            case PROCESSMODE.维修完毕:
                assProcessRecord.PROCESSCONTENT = Data.CREATEUSER + "维修了物品编号为" + RowData.ASSID + "的资产";
                break;
            }
            _unitOfWork.RegisterNew(assProcessRecord);
        }
コード例 #4
0
ファイル: frmRepairCreateSN.cs プロジェクト: weenong/SmoSEC
        private String SN;                                 //序列号
        #endregion
        /// <summary>
        /// 创建报修单
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnSave_Press(object sender, EventArgs e)
        {
            try
            {
                if (btnDealMan.Tag == null)
                {
                    throw new Exception("处理人不能为空");
                }
                else
                {
                    RepairData.HANDLEMAN = btnDealMan.Tag.ToString();     //处理人
                }
                if (String.IsNullOrEmpty(txtPrice.Text) == false)
                {
                    RepairData.COST = Convert.ToDecimal(txtPrice.Text);   //维修花费
                }
                if (String.IsNullOrEmpty(txtContent.Text))
                {
                    throw new Exception("维修内容不能为空!");
                }
                else
                {
                    RepairData.REPAIRCONTENT = txtContent.Text;               //维修内容
                }
                RepairData.APPLYDATE   = DatePicker.Value;                    //业务日期
                RepairData.NOTE        = txtNote.Text;                        //备注
                RepairData.STATUS      = 0;                                   //维修单状态
                RepairData.ISSNCONTROL = (Int32)ISSNCONTROL.启用;               //是否属于SN
                RepairData.CREATEUSER  = Client.Session["UserID"].ToString(); //创建用户
                RepairData.CREATEDATE  = DateTime.Now;

                List <AssRepairOrderRow> Data = new List <AssRepairOrderRow>();
                if (ListAssetsSN.Rows.Count == 0)
                {
                    throw new Exception("维修行项不能为空!");
                }
                foreach (ListViewRow Row in ListAssetsSN.Rows)
                {
                    frmOrderCreateSNLayout Layout  = Row.Control as frmOrderCreateSNLayout;
                    AssetsOrderRow         RowData = Layout.getData();
                    AssRepairOrderRow      assRow  = new AssRepairOrderRow();

                    assRow.IMAGE         = RowData.IMAGE;
                    assRow.ASSID         = RowData.ASSID;
                    assRow.WAITREPAIRQTY = RowData.QTY;
                    assRow.SN            = RowData.SN;
                    assRow.LOCATIONID    = RowData.LOCATIONID;
                    assRow.STATUS        = RowData.STATUS;
                    assRow.CREATEDATE    = DateTime.Now;
                    Data.Add(assRow);
                }
                RepairData.Rows = Data;
                ReturnInfo r = autofacConfig.assRepairOrderService.AddAssRepairOrder(RepairData);
                if (r.IsSuccess)
                {
                    ShowResult = ShowResult.Yes;
                    Form.Close();          //创建成功
                    Toast("创建维修单成功!");
                }
                else
                {
                    throw new Exception(r.ErrorInfo);
                }
            }
            catch (Exception ex)
            {
                Toast(ex.Message);
            }
        }