/// <summary> /// 新增(传入事务处理) /// </summary> /// <param name="p_BE">要新增的实体</param> /// <param name="sqlTrans">事务类</param> public void RAdd(BaseEntity p_BE, IDBTransAccess sqlTrans) { try { this.CheckCorrect(p_BE); IOForm entity = (IOForm)p_BE; IOFormCtl control = new IOFormCtl(sqlTrans); //校验单号唯一性 string sql = "SELECT FormNo FROM WH_IOForm WHERE FormNo=" + SysString.ToDBString(entity.FormNo); if (sqlTrans.Fill(sql).Rows.Count != 0) { throw new Exception("单号已经存在,请重新生成单号"); } entity.ID = (int)EntityIDTable.GetID((long)SysEntity.WH_IOForm, sqlTrans); control.AddNew(entity); FormNoControlRule rulefn = new FormNoControlRule();//更新单号 int tempFormNoControlID = 0; sql = "SELECT FormNoControlID FROM Enum_FormList WHERE ID=" + SysString.ToDBString(entity.SubType); DataTable dt = sqlTrans.Fill(sql); if (dt.Rows.Count != 0) { tempFormNoControlID = SysConvert.ToInt32(dt.Rows[0]["FormNoControlID"].ToString()); if (tempFormNoControlID == 0)//子类型没有配置 则读取主类型单号配置 { sql = "SELECT FormNoControlID FROM Enum_FormList WHERE ID=" + SysString.ToDBString(entity.HeadType); dt = sqlTrans.Fill(sql); if (dt.Rows.Count != 0) { tempFormNoControlID = SysConvert.ToInt32(dt.Rows[0]["FormNoControlID"].ToString()); } } } rulefn.RAddSort(tempFormNoControlID, sqlTrans); } catch (BaseException) { throw; } catch (Exception E) { throw new BaseException(E.Message); } }
/// <summary> /// 修改 /// </summary> /// <param name="p_BE">要修改的实体</param> /// <param name="sqlTrans">事务类</param> public void RUpdate(BaseEntity p_BE, IDBTransAccess sqlTrans) { try { this.CheckCorrect(p_BE); IOForm entity = (IOForm)p_BE; IOFormCtl control = new IOFormCtl(sqlTrans); control.Update(entity); } catch (BaseException) { throw; } catch (Exception E) { throw new BaseException(E.Message); } }
/// <summary> /// 删除 /// </summary> /// <param name="p_BE">要删除的实体</param> /// <param name="sqlTrans">事务类</param> public void RDelete(BaseEntity p_BE, IDBTransAccess sqlTrans) { try { this.CheckCorrect(p_BE); IOForm entity = (IOForm)p_BE; IOFormCtl control = new IOFormCtl(sqlTrans); string sql = string.Empty; int FormListTopType = IOFormDtsRule.GetFormListTopTypeByFormListID(entity.HeadType, sqlTrans);//顶层单据类型 if (FormListTopType == (int)WHFormList.期初入库 || FormListTopType == (int)WHFormList.入库)//如果是入库 { sql = "DELETE FROM WH_PackBox WHERE BoxNo IN(SELECT BoxNo FROM WH_IOFormDtsPack WHERE MainID=" + entity.ID.ToString() + ")"; sqlTrans.ExecuteNonQuery(sql);//删除入库码单数据 } sql = "DELETE FROM WH_IOFormDts WHERE MainID=" + entity.ID.ToString(); sqlTrans.ExecuteNonQuery(sql);//删除原单据明细数据 sql = "DELETE FROM WH_IOFormDtsPack WHERE MainID=" + entity.ID.ToString(); sqlTrans.ExecuteNonQuery(sql);//删除原单据码单明细数据 sql = "DELETE FROM WH_IOFormDtsInputPack WHERE MainID=" + entity.ID.ToString(); sqlTrans.ExecuteNonQuery(sql);//删除原单据录入码单明细数据 control.Delete(entity); } catch (BaseException) { throw; } catch (Exception E) { throw new BaseException(E.Message); } }