public RolesStruct getStaffRoles(string sID) { RolesStruct returnValue = new RolesStruct(); string LimitRoles = ""; ManageDataBase msg = new ManageDataBase(); string[] MembershipStaffRoles = msg.getMembershipStaffRoles(sID); for (int i = 1; i < MembershipStaffRoles.Length; i++) { //i=0=>Roles DB ID if (MembershipStaffRoles[i] != "0") { if (LimitRoles.Length > 0) { LimitRoles += " OR "; } LimitRoles += " cR.ID=" + MembershipStaffRoles[i]; } } if (LimitRoles.Length > 0) { LimitRoles = " AND " + LimitRoles; } if (sID.Length > 0 && LimitRoles.Length > 0) { DataBase Base = new DataBase(); using (SqlConnection Sqlconn = new SqlConnection(Base.GetConnString())) { try { Sqlconn.Open(); string sql = "SELECT cR.*,ISNULL(cRUnit.CaseManagement,0) as CaseUnit , ISNULL(cRUnit.ListeningManagement,0) as hearingUnit, " + "ISNULL(cRUnit.TeachingManagement,0) as teachUnit, ISNULL(cRUnit.Payroll,0) as payrollUnit, ISNULL(cRUnit.Attendance,0) as aUnit, " + "ISNULL(cRUnit.PersonnelManagement,0) as personnelUnit, ISNULL(cRUnit.PropertyApplyManagement,0) as paUnit, " + "ISNULL(cRUnit.PropertyManagement,0) as propertyUnit, ISNULL(cRUnit.LibraryManagement,0) as LUnit, " + "ISNULL(cRUnit.ServiceFees,0) as sUnit, ISNULL(cRUnit.CaseTemperature,0) as cBTUnit, ISNULL(cRUnit.TeachersTemperature,0) as tBTUnit, " + "ISNULL(cRUnit.StationeryManagement,0) as stationeryUnit, ISNULL(cRUnit.RemindeSystem,0) as remindeUnit " + "FROM Competence_Roles cR LEFT JOIN Competence_Roles_Unit cRUnit ON cR.ID=cRUnit.cRolesID AND cRUnit.isDeleted=0 " + "WHERE cR.isDeleted=0 " + LimitRoles; SqlCommand cmd = new SqlCommand(sql, Sqlconn); cmd.Parameters.Add("@StaffID", SqlDbType.Int).Value = Chk.CheckStringtoIntFunction(sID); SqlDataReader dr = cmd.ExecuteReader(); while (dr.Read()) { string[] RolesCompareReturn = this.RolesCompare(returnValue.caseStu, dr["CaseManagement"].ToString(), dr["CaseUnit"].ToString()); returnValue.caseStu[0] = RolesCompareReturn[0]; returnValue.caseStu[1] = RolesCompareReturn[1]; RolesCompareReturn = this.RolesCompare(returnValue.hearing, dr["ListeningManagement"].ToString(), dr["hearingUnit"].ToString()); returnValue.hearing[0] = RolesCompareReturn[0]; returnValue.hearing[1] = RolesCompareReturn[1]; RolesCompareReturn = this.RolesCompare(returnValue.teach, dr["TeachingManagement"].ToString(), dr["teachUnit"].ToString()); returnValue.teach[0] = RolesCompareReturn[0]; returnValue.teach[1] = RolesCompareReturn[1]; RolesCompareReturn = this.RolesCompare(returnValue.salary, dr["Payroll"].ToString(), dr["payrollUnit"].ToString()); returnValue.salary[0] = RolesCompareReturn[0]; returnValue.salary[1] = RolesCompareReturn[1]; RolesCompareReturn = this.RolesCompare(returnValue.attendance, dr["Attendance"].ToString(), dr["aUnit"].ToString()); returnValue.attendance[0] = RolesCompareReturn[0]; returnValue.attendance[1] = RolesCompareReturn[1]; RolesCompareReturn = this.RolesCompare(returnValue.personnel, dr["PersonnelManagement"].ToString(), dr["personnelUnit"].ToString()); returnValue.personnel[0] = RolesCompareReturn[0]; returnValue.personnel[1] = RolesCompareReturn[1]; RolesCompareReturn = this.RolesCompare(returnValue.apply, dr["PropertyApplyManagement"].ToString(), dr["paUnit"].ToString()); returnValue.apply[0] = RolesCompareReturn[0]; returnValue.apply[1] = RolesCompareReturn[1]; RolesCompareReturn = this.RolesCompare(returnValue.property, dr["PropertyManagement"].ToString(), dr["propertyUnit"].ToString()); returnValue.property[0] = RolesCompareReturn[0]; returnValue.property[1] = RolesCompareReturn[1]; RolesCompareReturn = this.RolesCompare(returnValue.library, dr["LibraryManagement"].ToString(), dr["LUnit"].ToString()); returnValue.library[0] = RolesCompareReturn[0]; returnValue.library[1] = RolesCompareReturn[1]; RolesCompareReturn = this.RolesCompare(returnValue.serviceFees, dr["ServiceFees"].ToString(), dr["sUnit"].ToString()); returnValue.serviceFees[0] = RolesCompareReturn[0]; returnValue.serviceFees[1] = RolesCompareReturn[1]; RolesCompareReturn = this.RolesCompare(returnValue.caseBT, dr["CaseTemperature"].ToString(), dr["cBTUnit"].ToString()); returnValue.caseBT[0] = RolesCompareReturn[0]; returnValue.caseBT[1] = RolesCompareReturn[1]; RolesCompareReturn = this.RolesCompare(returnValue.teachBT, dr["TeachersTemperature"].ToString(), dr["tBTUnit"].ToString()); returnValue.teachBT[0] = RolesCompareReturn[0]; returnValue.teachBT[1] = RolesCompareReturn[1]; RolesCompareReturn = this.RolesCompare(returnValue.stationery, dr["StationeryManagement"].ToString(), dr["stationeryUnit"].ToString()); returnValue.stationery[0] = RolesCompareReturn[0]; returnValue.stationery[1] = RolesCompareReturn[1]; RolesCompareReturn = this.RolesCompare(returnValue.remind, dr["RemindeSystem"].ToString(), dr["remindeUnit"].ToString()); returnValue.remind[0] = RolesCompareReturn[0]; returnValue.remind[1] = RolesCompareReturn[1]; } dr.Close(); Sqlconn.Close(); } catch (Exception e) { returnValue.checkNo = "-1"; returnValue.errorMsg = e.Message; } } } return returnValue; }
public string[] OutPropertyRecordDataBase(string rID, string unit) { PropertyDataBase pDB = new PropertyDataBase(); StaffDataBase sDB = new StaffDataBase(); ManageDataBase msg = new ManageDataBase(); string[] MembershipStaffRoles = msg.getMembershipStaffRoles(HttpContext.Current.User.Identity.Name); string StaffRoles = string.Join(",",MembershipStaffRoles); int aa = StaffRoles.IndexOf("15"); int aab = StaffRoles.IndexOf("4"); if (StaffRoles.IndexOf("15") > -1 || StaffRoles.IndexOf("4") > -1) { return pDB.OutPropertyRecordData(rID, unit); } else { return new string[2] { _noRole, _errorMsg }; } }
public string[] SearchStaffDataBaseWorkAllCount(int Year, int Month,int Day) { string[] returnValue = new string[2]; returnValue[0] = "0"; returnValue[1] = "0"; DataBase Base = new DataBase(); string SearchStaffCondition = "and (ResignationDate='1900-01-01' or ResignationDate > @ResignationDate ) and AppointmentDate<@SearchDate "; //List<string> UserFile = getStaffDataName(HttpContext.Current.User.Identity.Name); //this.personnelFunction(); ManageDataBase msg = new ManageDataBase(); bool hasRoles = false; string[] Roles = msg.getMembershipStaffRoles(HttpContext.Current.User.Identity.Name); for (int i = 1; i < Roles.Length; i++) { if (Roles[i] == "4" || Roles[i] == "19") { hasRoles = true; } } if (!hasRoles) { SearchStaffCondition += " and staffID = @StffID "; } using (SqlConnection Sqlconn = new SqlConnection(Base.GetConnString())) { try { Sqlconn.Open(); string sql = "SELECT COUNT(*) AS QCOUNT FROM StaffDatabase WHERE isDeleted=0 " + SearchStaffCondition; SqlCommand cmd = new SqlCommand(sql, Sqlconn); //ResignationDate cmd.Parameters.Add("@ResignationDate", SqlDbType.Date).Value = Chk.CheckStringtoDateFunction( Year + "-" + (Month>0 ? Month : 1 ) + "-" + (Day>0?Day:1)); cmd.Parameters.Add("@SearchDate", SqlDbType.Date).Value = Chk.CheckStringtoDateFunction(Year + "-" + (Month > 0 ? Month : 12) + "-" + (Day > 0 ? Day : 28));//bug 就算了 cmd.Parameters.Add("@StffID", HttpContext.Current.User.Identity.Name); returnValue[0] = cmd.ExecuteScalar().ToString(); Sqlconn.Close(); } catch (Exception e) { returnValue[0] = "-1"; returnValue[1] = e.Message.ToString(); } } return returnValue; }
public string ManagePageRoles() { string returnValue = ""; ManageDataBase msg = new ManageDataBase(); string[] MembershipStaffRoles = msg.getMembershipStaffRoles(HttpContext.Current.User.Identity.Name); bool StaffRolesBool = false; foreach (string item in MembershipStaffRoles) { if (item == "4") { StaffRolesBool = true; } } if (StaffRolesBool) { returnValue = "<input type=\"button\" value=\"系統管理頁\" onclick=\"window.location.href='./manage/admin.aspx';\"/>"; } return returnValue; }
public List<WorkRecordAll> SearchStaffDataBaseWorkAll(int Year, int Month, int indexpage, int Day) { List<WorkRecordAll> returnValue = new List<WorkRecordAll>(); DataBase Base = new DataBase(); // string SearchStaffCondition = "and (a.ResignationDate='1900-01-01' or a.ResignationDate>@SearchDate ) and a.AppointmentDate<@SearchDate"; string SearchStaffCondition = "and (ResignationDate='1900-01-01' or ResignationDate > @ResignationDate ) and AppointmentDate<@SearchDate"; ManageDataBase msg = new ManageDataBase(); bool hasRoles = false; string[] Roles = msg.getMembershipStaffRoles(HttpContext.Current.User.Identity.Name); for (int i = 1; i < Roles.Length; i++) { if (Roles[i] == "4" || Roles[i] == "19") { hasRoles = true; } } if (!hasRoles) { SearchStaffCondition += " and a.staffID = @StffID "; } using (SqlConnection Sqlconn = new SqlConnection(Base.GetConnString())) { try { Sqlconn.Open(); string sql = "SELECT * FROM " + "( " + "SELECT ROW_NUMBER() OVER (ORDER BY Unit,staffid asc)AS RowNum, * " + "FROM " + "( select a.staffid ,a.staffname,a.id,a.Unit, b.*,c.* from StaffDatabase a " + " left join ( select StaffID as TID,YearVaction,workadd,WorkMinus from YearVaction where Year = @Year ) c on a.StaffID = c.TID "+ " left join " + " (" + " select StaffID as Teacherid , " + " SUM(case vacationType when 2 then ( Case when((starttime <=12 and endtime >=13 ) or (endtime <=12 and starttime >=13 )) then (ABS(starttime - endtime )- 1) /8 else ABS(starttime - endtime) /8 end) else 0 end) as 'v1', " + " SUM(case vacationType when 3 then ( Case when((starttime <=12 and endtime >=13 ) or (endtime <=12 and starttime >=13 )) then (ABS(starttime - endtime )- 1) /8 else ABS(starttime - endtime) /8 end) else 0 end) as 'v2', " + " SUM(case vacationType when 4 then ( Case when((starttime <=12 and endtime >=13 ) or (endtime <=12 and starttime >=13 )) then (ABS(starttime - endtime )- 1) /8 else ABS(starttime - endtime) /8 end) else 0 end) as 'v3', " + " SUM(case vacationType when 5 then ( Case when((starttime <=12 and endtime >=13 ) or (endtime <=12 and starttime >=13 )) then (ABS(starttime - endtime )- 1) /8 else ABS(starttime - endtime) /8 end) else 0 end) as 'v4', " + " SUM(case vacationType when 6 then ( Case when((starttime <=12 and endtime >=13 ) or (endtime <=12 and starttime >=13 )) then (ABS(starttime - endtime )- 1) /8 else ABS(starttime - endtime) /8 end) else 0 end) as 'v5', " + " SUM(case vacationType when 7 then ( Case when((starttime <=12 and endtime >=13 ) or (endtime <=12 and starttime >=13 )) then (ABS(starttime - endtime )- 1) /8 else ABS(starttime - endtime) /8 end) else 0 end) as 'v6', " + " SUM(case vacationType when 8 then ( Case when((starttime <=12 and endtime >=13 ) or (endtime <=12 and starttime >=13 )) then (ABS(starttime - endtime )- 1) /8 else ABS(starttime - endtime) /8 end) else 0 end) as 'v7', " + " SUM(case vacationType when 9 then ( Case when((starttime <=12 and endtime >=13 ) or (endtime <=12 and starttime >=13 )) then (ABS(starttime - endtime )- 1) /8 else ABS(starttime - endtime) /8 end) else 0 end) as 'v8', " + " SUM(case vacationType when 10 then ( Case when((starttime <=12 and endtime >=13 ) or (endtime <=12 and starttime >=13 )) then (ABS(starttime - endtime )- 1) /8 else ABS(starttime - endtime) /8 end) else 0 end) as 'v9', " + " SUM(case vacationType when 11 then ( Case when((starttime <=12 and endtime >=13 ) or (endtime <=12 and starttime >=13 )) then (ABS(starttime - endtime )- 1) /8 else ABS(starttime - endtime) /8 end) else 0 end) as 'v10', " + " SUM(case vacationType when 12 then ( Case when((starttime <=12 and endtime >=13 ) or (endtime <=12 and starttime >=13 )) then (ABS(starttime - endtime )- 1) /8 else ABS(starttime - endtime) /8 end) else 0 end) as 'v11', " + //" SUM(case vacationType when 13 then ( Case when((starttime <=12 and endtime >=13 ) or (endtime <=12 and starttime >=13 )) then (ABS(starttime - endtime )- 1) /8 else ABS(starttime - endtime) /8 end) else 0 end) as 'v12' " + " SUM(case vacationType when 14 then ( Case when((starttime <=12 and endtime >=13 ) or (endtime <=12 and starttime >=13 )) then (ABS(starttime - endtime )- 1) /8 else ABS(starttime - endtime) /8 end) else 0 end) as 'v14', " + " SUM(case vacationType when 15 then ( Case when((starttime <=12 and endtime >=13 ) or (endtime <=12 and starttime >=13 )) then (ABS(starttime - endtime )- 1) /8 else ABS(starttime - endtime) /8 end) else 0 end) as 'v15', " + " SUM(case vacationType when 13 then ABS(starttime - endtime) /8 else 0 end) as 'v12' " + //" SUM(case vacationType when 2 then ABS(starttime - endtime) /8 else 0 end) as 'v1', " + //" SUM(case vacationType when 3 then ABS(starttime - endtime) /8 else 0 end) as 'v2', " + //" SUM(case vacationType when 4 then ABS(starttime - endtime) /8 else 0 end) as 'v3', " + //" SUM(case vacationType when 5 then ABS(starttime - endtime) /8 else 0 end) as 'v4', " + //" SUM(case vacationType when 6 then ABS(starttime - endtime) /8 else 0 end) as 'v5', " + //" SUM(case vacationType when 7 then ABS(starttime - endtime) /8 else 0 end) as 'v6', " + //" SUM(case vacationType when 8 then ABS(starttime - endtime) /8 else 0 end) as 'v7', " + //" SUM(case vacationType when 9 then ABS(starttime - endtime) /8 else 0 end) as 'v8', " + //" SUM(case vacationType when 10 then ABS(starttime - endtime) /8 else 0 end) as 'v9', " + //" SUM(case vacationType when 11 then ABS(starttime - endtime) /8 else 0 end) as 'v10', " + //" SUM(case vacationType when 12 then ABS(starttime - endtime) /8 else 0 end) as 'v11', " + // " SUM(case vacationType when 13 then ABS(starttime - endtime) /8 else 0 end) as 'v12' " + " from WorkRecordManage " + " where 1=1 and Year([date]) = @Year "; //WHO 改 年月日 (有點爛 待改) ( Case when((starttime <=12 and endtime >=13 ) or (endtime <=12 and starttime >=13 )) then (ABS(starttime - endtime )- 1) /8 else ABS(starttime - endtime) /8 end) if ( Month > 0 && Day > 0 ) { sql += " and MONTH([date]) = @Month and Day([date]) = @Day"; } else if (Month > 0 && Day < 0) { sql += " and MONTH([date]) = @Month "; } sql += " group by StaffID " + " ) b on a.staffid = b.Teacherid " + " where a.isDeleted=0 " + SearchStaffCondition + ") as alltable " + ") " + "AS NewTable "; sql += " WHERE RowNum >= (@indexpage-" + PageMinNumFunction() + ") AND RowNum <= (@indexpage) "; SqlCommand cmd = new SqlCommand(sql, Sqlconn); cmd.Parameters.Add("@ResignationDate", SqlDbType.Date).Value = Chk.CheckStringtoDateFunction(Year + "-" + (Month > 0 ? Month : 1) + "-" + (Day > 0 ? Day : 1)); cmd.Parameters.Add("@SearchDate", SqlDbType.Date).Value = Chk.CheckStringtoDateFunction(Year + "-" + (Month > 0 ? Month : 12) + "-" + (Day > 0 ? Day : 28));//bug 就算了 cmd.Parameters.Add("@StffID", HttpContext.Current.User.Identity.Name); cmd.Parameters.Add("@indexpage", SqlDbType.Int).Value = indexpage; cmd.Parameters.Add("@Year", SqlDbType.Int).Value = Year; cmd.Parameters.Add("@Month", SqlDbType.Int).Value = Month; cmd.Parameters.Add("@Day", SqlDbType.Int).Value = Day; SqlDataReader dr = cmd.ExecuteReader(); while (dr.Read()) { WorkRecordAll addValue = new WorkRecordAll(); addValue.StaffID = dr["StaffID"].ToString(); addValue.StaffName = dr["StaffName"].ToString(); addValue.YearVaction = dr["yearvaction"].ToString(); addValue.WorkAdd = dr["workadd"].ToString(); addValue.WorkMinus = dr["workminus"].ToString(); addValue.V1 = dr["V1"].ToString(); addValue.V2 = dr["V2"].ToString(); addValue.V3 = dr["V3"].ToString(); addValue.V4 = dr["V4"].ToString(); addValue.V5 = dr["V5"].ToString(); addValue.V6 = dr["V6"].ToString(); addValue.V7 = dr["V7"].ToString(); addValue.V8 = dr["V8"].ToString(); addValue.V9 = dr["V9"].ToString(); addValue.V10 = dr["V10"].ToString(); addValue.V11 = dr["V11"].ToString(); addValue.V12 = dr["V12"].ToString(); addValue.V14 = dr["V14"].ToString(); addValue.V15 = dr["V15"].ToString(); returnValue.Add(addValue); } dr.Close(); Sqlconn.Close(); } catch (Exception e) { string Ex = e.Message.ToString(); //StaffDataList addValue = new StaffDataList(); //addValue.checkNo = "-1"; //addValue.errorMsg = e.Message.ToString(); //returnValue.Add(addValue); } } return returnValue; }