/// <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> /// <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); } }
/// <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); }
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); } }