示例#1
0
 public object[] ApplyMaster(DataRow drM, string MID, DataTable dtD, SqlTransaction tran, RDFNew.Module.DALEntity.Sys_Log la)
 {
     object[] rtns = new object[] { 0, "", null };
     if (drM == null || String.IsNullOrEmpty(MID) || dtD == null)
         return rtns;
     foreach (DataRow dr in dtD.Rows)
     {
         if (dr.RowState == DataRowState.Added)
         {
             //新增
             dr[MKEY] = DALHelper.GetMasterNo(tran, System.DateTime.Now.ToString("yyyy"), "00000000", MTABLE, MKEY);
             dr["DeployMID"] = MID;
             if (dr["Seq"].ToString() == "")
                 dr["Seq"] = DALHelper.GetDetailSeq(tran, "", "0000", 1, "Flow_DeployD", "Seq", "DeployMID", MID);
             rtns[1] = DALHelper.InsertTable(MTABLE, MKEY, dr, tran, la);
         }
         else if (dr.RowState == DataRowState.Modified)
         {
             //修改
             rtns[1] = DALHelper.UpdateTable(MTABLE, MKEY, dr, tran, la);
         }
         else if (dr.RowState == DataRowState.Deleted)
         {
             //删除
             ApplyMaster_BeforeDelete(dr, tran);
             rtns[1] = DALHelper.DeleteTable(MTABLE, MKEY, dr, tran, la);
         }
     }
     return rtns;
 }
示例#2
0
        public object[] ApplyMaster(DataTable dt, RDFNew.Module.DALEntity.Sys_Log la, DataTable dtFlow)
        {
            object[] rtns = new object[] { 0, "", null };
            SqlConnection conn = new SqlConnection(SqlHelper.ConnectionString);
            conn.Open();
            SqlTransaction tran = conn.BeginTransaction();
            try
            {
                foreach (DataRow dr in dt.Rows)
                {
                    if (dr.RowState == DataRowState.Added)
                    {
                        //新增
                        if (dr[MKEY].ToString() == "")
                            dr[MKEY] = DALHelper.GetMasterNo(tran, System.DateTime.Now.ToString("yyyyMM"), "0000", MTABLE, MKEY);
                        if (dtFlow != null)
                        {
                            //记录实例ID,用于后续联动
                            dr["InstanceID"] = dtFlow.Rows[0]["InstanceID"];
                        }
                        rtns[1] = DALHelper.InsertTable(MTABLE, MKEY, dr, tran, la);
                    }
                    else if (dr.RowState == DataRowState.Modified)
                    {
                        //修改
                        rtns[1] = DALHelper.UpdateTable(MTABLE, MKEY, dr, tran, la);
                    }
                    else if (dr.RowState == DataRowState.Deleted)
                    {
                        //删除
                        ApplyMaster_BeforeDelete(dr, tran);
                        rtns[1] = DALHelper.DeleteTable(MTABLE, MKEY, dr, tran, la);
                    }

                    //处理流程主表
                    if (dtFlow != null)
                    {
                        dtFlow.Rows[0]["BillID"] = dr[MKEY];
                        dtFlow.Rows[0]["OwnerID"] = dr["EmployeeID"];
                        new RDFNew.Module.Admin.Flow.Flow_ToDoM().ApplyMaster(dtFlow, null, tran, la);
                    }
                }
                tran.Commit();
            }
            catch (Exception ex)
            {
                tran.Rollback();
                rtns[0] = 1;
                rtns[1] = ex;
            }
            finally
            {
                conn.Close();
                conn.Dispose();
            }

            return rtns;
        }
示例#3
0
 public object[] ApplyMaster(DataTable dtM, RDFNew.Module.DALEntity.Sys_Log la)
 {
     DataTable dtDetail = null;
     if (dtM.Rows[0].RowState ==DataRowState.Deleted || (la != null && la.Action.ToUpper() == "DELETE"))
     {
         dtDetail = new RDFNew.Module.Admin.Flow.Flow_ToDoD().GetDataByParent(
             dtM.Rows[0]["ToDoMID", DataRowVersion.Original].ToString())[1] as DataTable;
         for (int i = 0; i < dtDetail.Rows.Count; i++)
             dtDetail.Rows[i].Delete();
     }
     return ApplyMaster(dtM, dtDetail,null, la);
 }
示例#4
0
        public object[] ApplyMaster(DataTable dt, RDFNew.Module.DALEntity.Sys_Log la)
        {
            object[] rtns = new object[] { 0, "", null };
            SqlConnection conn = new SqlConnection(SqlHelper.ConnectionString);
            conn.Open();
            SqlTransaction tran = conn.BeginTransaction();
            try
            {
                foreach (DataRow dr in dt.Rows)
                {
                    if (dr.RowState == DataRowState.Added)
                    {
                        //新增
                        if (dr[MKEY].ToString() == "")
                            dr[MKEY] = DALHelper.GetMasterNo(tran, "", "000000", MTABLE, MKEY);
                        else
                            dr[MKEY] = dr[MKEY].ToString().ToUpper();
                        rtns[1] = DALHelper.InsertTable(MTABLE, MKEY, dr, tran, la);
                        if (Convert.ToBoolean(dr["IsUser"]))
                            SyncEmployeeAndUser(dr, tran);
                    }
                    else if (dr.RowState == DataRowState.Modified)
                    {
                        //修改
                        rtns[1] = DALHelper.UpdateTable(MTABLE, MKEY, dr, tran, la);
                        if (Convert.ToBoolean(dr["IsUser"]))
                            SyncEmployeeAndUser(dr, tran);
                    }
                    else if (dr.RowState == DataRowState.Deleted)
                    {
                        //删除
                        ApplyMaster_BeforeDelete(dr, tran);
                        rtns[1] = DALHelper.DeleteTable(MTABLE, MKEY, dr, tran, la);
                    }
                }
                tran.Commit();
            }
            catch (Exception ex)
            {
                tran.Rollback();
                rtns[0] = 1;
                rtns[1] = ex;
            }
            finally
            {
                conn.Close();
                conn.Dispose();
            }

            return rtns;
        }
示例#5
0
        public object[] ApplyMaster(DataTable dt, DataTable dtSys_User, DataTable Sys_ModuleF, RDFNew.Module.DALEntity.Sys_Log la)
        {
            object[] rtns = new object[] { 0, "", null };
            SqlConnection conn = new SqlConnection(SqlHelper.ConnectionString);
            conn.Open();
            SqlTransaction tran = conn.BeginTransaction();
            try
            {
                foreach (DataRow dr in dt.Rows)
                {
                    if (dr.RowState == DataRowState.Added)
                    {
                        //新增
                        if (dr[MKEY].ToString() == "")
                            dr[MKEY] = DALHelper.GetMasterNo(tran, "R"+System.DateTime.Now.ToString("yyyy"), "0000", MTABLE, MKEY);
                        if (dr["Seq"].ToString() == "")
                            dr["Seq"] = DALHelper.GetMasterNo(tran, "", "0000", 10, MTABLE, "Seq");
                        rtns[1] = DALHelper.InsertTable(MTABLE, MKEY, dr, tran, la);
                        ApplyMaster_AfterInsert(dr, dtSys_User,Sys_ModuleF, tran);
                    }
                    else if (dr.RowState == DataRowState.Modified)
                    {
                        //修改
                        rtns[1] = DALHelper.UpdateTable(MTABLE, MKEY, dr, tran, la);
                        ApplyMaster_AfterModify(dr, dtSys_User, Sys_ModuleF, tran);
                    }
                    else if (dr.RowState == DataRowState.Deleted)
                    {
                        //删除
                        ApplyMaster_BeforeDelete(dr, dtSys_User, Sys_ModuleF, tran);
                        rtns[1] = DALHelper.DeleteTable(MTABLE, MKEY, dr, tran, la);
                    }
                }
                tran.Commit();
            }
            catch (Exception ex)
            {
                tran.Rollback();
                rtns[0] = 1;
                rtns[1] = ex;
            }
            finally
            {
                conn.Close();
                conn.Dispose();
            }

            return rtns;
        }
示例#6
0
        public object[] ApplyMaster(DataTable dtM, DataTable dtD, RDFNew.Module.DALEntity.Sys_Log la)
        {
            object[] rtns = new object[] { 0, "", null };
            SqlConnection conn = new SqlConnection(SqlHelper.ConnectionString);
            conn.Open();
            SqlTransaction tran = conn.BeginTransaction();
            try
            {
                foreach (DataRow dr in dtM.Rows)
                {
                    if (dr.RowState == DataRowState.Added)
                    {
                        //新增
                        if (dr[MKEY].ToString() == "")
                            dr[MKEY] = DALHelper.GetMasterNo(tran, System.DateTime.Now.ToString("yyyyMM"), "0000", MTABLE, MKEY);
                        rtns[1] = DALHelper.InsertTable(MTABLE, MKEY, dr, tran, la);
                    }
                    else if (dr.RowState == DataRowState.Modified)
                    {
                        //修改
                        rtns[1] = DALHelper.UpdateTable(MTABLE, MKEY, dr, tran, la);
                    }
                    else if (dr.RowState == DataRowState.Deleted)
                    {
                        //删除
                        ApplyMaster_BeforeDelete(dr, tran);
                        rtns[1] = DALHelper.DeleteTable(MTABLE, MKEY, dr, tran, la);
                    }

                    //处理子表
                    new Flow_ToDoListD().ApplyMaster(dr, rtns[1].ToString(), dtD, tran, la);
                }
                tran.Commit();
            }
            catch (Exception ex)
            {
                tran.Rollback();
                rtns[0] = 1;
                rtns[1] = ex;
            }
            finally
            {
                conn.Close();
                conn.Dispose();
            }

            return rtns;
        }
示例#7
0
        public object[] ApplyMaster(DataTable dt, RDFNew.Module.DALEntity.Sys_Log la)
        {
            object[] rtns = new object[] { 0, "", null };
            SqlConnection conn = new SqlConnection(SqlHelper.ConnectionString);
            conn.Open();
            SqlTransaction tran = conn.BeginTransaction();
            try
            {
                foreach (DataRow dr in dt.Rows)
                {
                    if (dr.RowState == DataRowState.Added)
                    {
                        //新增
                        ApplyMaster_BeforeInsert(dr, tran);
                        rtns[1] = DALHelper.InsertTable(MTABLE, MKEY, dr, tran, la);
                    }
                    else if (dr.RowState == DataRowState.Modified)
                    {
                        //修改
                        ApplyMaster_BeforeModify(dr, tran);
                        rtns[1] = DALHelper.UpdateTable(MTABLE, MKEY, dr, tran, la);
                    }
                    else if (dr.RowState == DataRowState.Deleted)
                    {
                        //删除
                        ApplyMaster_BeforeDelete(dr, tran);
                        rtns[1] = DALHelper.DeleteTable(MTABLE, MKEY, dr, tran, la);
                    }
                }
                tran.Commit();
            }
            catch (Exception ex)
            {
                tran.Rollback();
                rtns[0] = 1;
                rtns[1] = ex;
            }
            finally
            {
                conn.Close();
                conn.Dispose();
            }

            return rtns;
        }
示例#8
0
        public static object DeleteTable(string tbName, string pkField, DataRow dr,
            SqlTransaction tran, RDFNew.Module.DALEntity.Sys_Log la)
        {
            string FID = dr[pkField, DataRowVersion.Original].ToString();

            if (la != null)
            {
                la.Table = tbName; //新增在操作后记日志,修改删除在操作前记日志
                la.Key = pkField;
                la.Value = FID;
                ApplyLogAction(tran, la);
            }

            string SqlInsert = "";
            System.Text.StringBuilder sbSql = new StringBuilder();
            List<SqlParameter> parms = new List<SqlParameter>();
            sbSql.Append("Delete  " + tbName + " Where [" + pkField + "]=@" + pkField + " ");
            SqlInsert = sbSql.ToString();
            parms.Add(new SqlParameter("@" + pkField, FID));
            SqlHelper.ExecuteNonQuery(tran, CommandType.Text, SqlInsert, parms.ToArray());
            return FID;
        }
示例#9
0
        public object[] ApplyMaster(DataTable dt, DataTable dtSys_Role, RDFNew.Module.DALEntity.Sys_Log la)
        {
            object[] rtns = new object[] { 0, "", null };
            SqlConnection conn = new SqlConnection(SqlHelper.ConnectionString);
            conn.Open();
            SqlTransaction tran = conn.BeginTransaction();
            try
            {
                foreach (DataRow dr in dt.Rows)
                {
                    if (dr.RowState == DataRowState.Added)
                    {
                        //新增
                        if (dr[MKEY].ToString() == "")
                            dr[MKEY] = DALHelper.GetMasterNo(tran, System.DateTime.Now.ToString("yyyy"),
                            "00000000", MTABLE, MKEY);
                        dr["RSeq"] = DALHelper.GetDetailSeq(tran, "", "00000000", 50, MTABLE, "RSeq", "PID", dr["PID"].ToString());
                        dr["RID"] = dr["PID"].ToString() + dr["RSeq"].ToString();
                        if (dr["PID"].ToString() != "")
                            dr["TreeLevel"] = DALHelper.GetFristValue(tran, String.Format(@"
                                Select TreeLevel+1 From {0} Where RID='{1}' ", MTABLE, dr["PID"]), null);
                        else
                            dr["TreeLevel"] = 0;
                        rtns[1] = DALHelper.InsertTable(MTABLE, MKEY, dr, tran, la);
                        ApplyMaster_AfterInsert(dr, dtSys_Role, tran);

                    }
                    else if (dr.RowState == DataRowState.Modified)
                    {
                        //修改
                        if (!dr["PID", DataRowVersion.Current].Equals(dr["PID", DataRowVersion.Original]))
                        {
                            dr["RSeq"] = DALHelper.GetDetailSeq(tran, "", "00000000", 50, MTABLE, "RSeq", "PID", dr["PID"].ToString());
                            dr["RID"] = dr["PID"].ToString() + dr["RSeq"].ToString();
                            if (dr["PID"].ToString() != "")
                                dr["TreeLevel"] = DALHelper.GetFristValue(tran, String.Format(@"
                                Select TreeLevel+1 From Flow_Org Where RID='{0}' ", dr["PID"]), null);
                            else
                                dr["TreeLevel"] = 0;
                        }
                        rtns[1] = DALHelper.UpdateTable(MTABLE, MKEY, dr, tran, la);

                        //递归更改下级相关字段
                        if (!dr["PID", DataRowVersion.Current].Equals(dr["PID", DataRowVersion.Original]))
                            ApplyMaster_AfterMove(dr["RID", DataRowVersion.Original].ToString(), dr["RID"].ToString(), tran);

                        ApplyMaster_AfterModify(dr, dtSys_Role, tran);
                    }
                    else if (dr.RowState == DataRowState.Deleted)
                    {
                        //删除
                        ApplyMaster_BeforeDelete(dr,dtSys_Role, tran);
                        rtns[1] = DALHelper.DeleteTable(MTABLE, MKEY, dr, tran, la);
                    }
                }
                tran.Commit();
            }
            catch (Exception ex)
            {
                tran.Rollback();
                rtns[0] = 1;
                rtns[1] = ex;
            }
            finally
            {
                conn.Close();
                conn.Dispose();
            }

            return rtns;
        }
示例#10
0
 public object[] ApplyMaster(DataTable dt, RDFNew.Module.DALEntity.Sys_Log la)
 {
     return ApplyMaster(dt, null, la);
 }
示例#11
0
        public static object UpdateTable(string tbName, string pkField, DataRow dr,
            SqlTransaction tran, RDFNew.Module.DALEntity.Sys_Log la)
        {
            string FID = dr[pkField].ToString();

            if (la != null)
            {
                la.Table = tbName; //新增在操作后记日志,修改删除在操作前记日志
                la.Key = pkField;
                la.Value = FID;
                ApplyLogAction(tran, la);
            }
            RDFNew.Module.DALEntity.QuerySet qs = new RDFNew.Module.DALEntity.QuerySet();
            qs.QueryInfos.Add(new RDFNew.Module.DALEntity.QueryInfo(pkField, "=", FID));
            DataTable dtOrg = GetMaster(tran, tbName, qs);
            string SqlInsert = "";
            System.Text.StringBuilder sbSql = new StringBuilder();
            List<SqlParameter> parms = new List<SqlParameter>();
            sbSql.Append("Update  " + tbName + " Set ");
            int chg = 0;
            foreach (DataColumn dc in dtOrg.Columns)
            {
                if (!dr[dc.ColumnName].Equals(dtOrg.Rows[0][dc.ColumnName]))
                {
                    sbSql.Append("[" + dc.ColumnName + "]=@" + dc.ColumnName + ",");
                    parms.Add(new SqlParameter("@" + dc.ColumnName, dr[dc.ColumnName]));
                    chg++;
                }
            }
            if (chg > 0)
            {
                SqlInsert = sbSql.ToString().TrimEnd(',') + " Where " + pkField + "=@" + pkField + " ";
                parms.Add(new SqlParameter("@" + pkField, FID));
                SqlHelper.ExecuteNonQuery(tran, CommandType.Text, SqlInsert, parms.ToArray());
            }

            return FID;
        }
示例#12
0
        public static object InsertTable(string tbName, string pkField, DataRow dr,
            SqlTransaction tran, RDFNew.Module.DALEntity.Sys_Log la)
        {
            DataTable dtEmpty = GetMasterEmpty(tran, tbName);
            string SqlInsert = "";
            System.Text.StringBuilder sbSql = new StringBuilder();
            System.Text.StringBuilder sbPm = new StringBuilder();
            List<SqlParameter> parms = new List<SqlParameter>();
            sbSql.Append("Insert Into " + tbName + " ( ");
            sbPm.Append("Select ");
            foreach (DataColumn dc in dtEmpty.Columns)
            {
                if (dr[dc.ColumnName] != System.DBNull.Value)
                {
                    sbSql.Append("[" + dc.ColumnName + "],");
                    sbPm.Append("@" + dc.ColumnName + ",");
                    parms.Add(new SqlParameter("@" + dc.ColumnName, dr[dc.ColumnName]));
                }
            }
            SqlInsert = sbSql.ToString().TrimEnd(',') + ") " + sbPm.ToString().TrimEnd(',');
            SqlHelper.ExecuteNonQuery(tran, CommandType.Text, SqlInsert, parms.ToArray());

            if (la != null)
            {
                la.Table = tbName; //新增在操作后记日志,修改删除在操作前记日志
                la.Key= pkField;
                la.Value= dr[pkField].ToString();
                ApplyLogAction(tran, la);
            }

            return dr[pkField];
        }
示例#13
0
 public object[] ApplyMaster(DataTable dt, RDFNew.Module.DALEntity.Sys_Log la)
 {
     return new object[] { 0, "", null };
 }