private void FillDayExtended(DateTime data) { int currentUId = (UC.ImpersonateUser == 0) ? UC.UserId : UC.ImpersonateUser; this.LblTitle.Text = "<table cellpadding=0 cellspacing=3><tr><td><img src=/images/Tustenalogov2.gif></td>"; if (currentUId == UC.UserId) { LblTitle.Text += "<td valign=bottom class=\"BigTitle\">" + UC.UserRealName + " " + data.ToShortDateString() + "</td>"; } else { LblTitle.Text += "<td valign=bottom class=\"BigTitle\">" + DatabaseConnection.SqlScalar("SELECT SURNAME+' '+NAME AS USERREALNAME FROM ACCOUNT WHERE UID=" + currentUId) + " " + data.ToShortDateString() + "</td>"; } this.LblTitle.Text += "</tr></table>"; StringBuilder sqlCalendar = new StringBuilder(); sqlCalendar.AppendFormat("SELECT ID,STARTDATE,ENDDATE,RECURRID,CONTACT,COMPANY,NOTE,CONVERT(VARCHAR(10),STARTDATE,112) AS ISOSTARTDATE, DATEPART(HH, STARTDATE) AS STARTHOUR, DATEPART(HH, ENDDATE) AS ENDHOUR FROM BASE_CALENDAR WHERE (CONVERT(VARCHAR(10),STARTDATE,112)='{0}' OR RECURRID>0) AND UID={1};", data.ToString(@"yyyyMMdd"), currentUId); sqlCalendar.AppendFormat("SELECT ID,STARTDATE,TITLE,NOTE,RECURRID,CONVERT(VARCHAR(10),STARTDATE,112) AS ISOSTARTDATE, DATEPART(HH, STARTDATE) AS STARTHOUR FROM BASE_EVENTS WHERE (CONVERT(VARCHAR(10),STARTDATE,112)='{0}' OR RECURRID>0) AND UID={1};", data.ToString(@"yyyyMMdd"), currentUId); Trace.Warn("SQL", sqlCalendar.ToString()); DataSet dsCalendar = DatabaseConnection.CreateDataset(sqlCalendar.ToString()); DataTable CalendarDataTable = dsCalendar.Tables[0]; DataTable eventDataTable = dsCalendar.Tables[1]; StringBuilder gg = new StringBuilder(); int hTimeZone = Convert.ToInt32(UC.HTimeZone); DataColumn dcDynColumn = new DataColumn(); dcDynColumn.ColumnName = "isRec"; dcDynColumn.DataType = Type.GetType("System.Byte"); dcDynColumn.DefaultValue = 0; CalendarDataTable.Columns.Add(dcDynColumn); DataColumn dcDynColumn2 = new DataColumn(); dcDynColumn2.ColumnName = "isRec"; dcDynColumn2.DataType = Type.GetType("System.Byte"); dcDynColumn2.DefaultValue = 0; eventDataTable.Columns.Add(dcDynColumn2); int rowsToCicleCal = CalendarDataTable.Rows.Count; int rowsToCicleEvn = eventDataTable.Rows.Count; if (CalendarDataTable.Select("RecurrID>0").Length > 0) { DateTime MDT = data; DateTime MDT2 = MDT.AddSeconds(86399); Trace.Warn("MDT", MDT.ToString()); Trace.Warn("MDT2", MDT2.ToString()); for (int i = 0; i < rowsToCicleCal; i++) { ArrayList AL = recurrence.Remind((int)CalendarDataTable.Rows[i]["recurrid"], MDT, MDT2); if (AL.Count > 0) { foreach (DateTime ALT in AL) { DataRow row = CalendarDataTable.NewRow(); for (int i2 = 0; i2 < CalendarDataTable.Columns.Count - 1; i2++) { row[i2] = CalendarDataTable.Rows[i][i2]; } row["isRec"] = 1; row["ISOSTARTDATE"] = ALT.ToString(@"yyyyMMdd"); CalendarDataTable.Rows.Add(row); } if (Convert.ToInt32(((string)CalendarDataTable.Rows[i]["ISOSTARTDATE"]).Substring(4, 2)) != data.Month) { CalendarDataTable.Rows[i]["ISOSTARTDATE"] = "19800101"; } } } } if (eventDataTable.Select("RecurrID>0").Length > 0) { DateTime MDT = data; DateTime MDT2 = MDT.AddSeconds(86399); for (int i = 0; i < rowsToCicleEvn; i++) { ArrayList AL = recurrence.Remind((int)eventDataTable.Rows[i]["recurrid"], MDT, MDT2); Trace.Warn("AL", AL.Count.ToString()); if (AL.Count > 0) { foreach (DateTime ALT in AL) { DataRow row = eventDataTable.NewRow(); for (int i2 = 0; i2 < eventDataTable.Columns.Count - 1; i2++) { row[i2] = eventDataTable.Rows[i][i2]; } row["isRec"] = 1; row["ISOSTARTDATE"] = ALT.ToString(@"yyyyMMdd"); eventDataTable.Rows.Add(row); } if (Convert.ToInt32(((string)eventDataTable.Rows[i]["ISOSTARTDATE"]).Substring(4, 2)) != data.Month) { eventDataTable.Rows[i]["ISOSTARTDATE"] = "19800101"; } } } } DataRow[] drExistsAppointment = CalendarDataTable.Select("ISOSTARTDATE='" + data.ToString(@"yyyyMMdd") + "'"); long idNumber = 0; for (int dayI = 0; dayI < 23; dayI++) { if (dayI % 2 == 0) { gg.AppendFormat("<tr><td valign=\"top\" class=\"GridItem\">{0}:00</td><td class=\"GridItem ", dayI.ToString()); } else { gg.AppendFormat("<tr><td valign=\"top\" class=\"GridItemAltern\">{0}:00</td><td class=\"GridItemAltern ", dayI.ToString()); } if (drExistsAppointment.Length > 0) { bool exists = false; string appString = String.Empty; foreach (DataRow selectAppointmentDr in drExistsAppointment) { if (((int)selectAppointmentDr["starthour"] + hTimeZone) == dayI && idNumber != Convert.ToInt32(selectAppointmentDr["id"])) { exists = true; string appText = UC.LTZ.ToLocalTime((DateTime)selectAppointmentDr["startdate"]).ToString(@"HH:mm") + " - " + UC.LTZ.ToLocalTime((DateTime)selectAppointmentDr["enddate"]).ToString(@"HH:mm") + "<br>" + selectAppointmentDr["CONTACT"].ToString() + ((selectAppointmentDr["COMPANY"].ToString().Length > 0) ? "<br>[" + G.ParseJSString(selectAppointmentDr["COMPANY"].ToString()) + "]<br>" : "<br>") + selectAppointmentDr["note"]; idNumber = Convert.ToInt64(selectAppointmentDr["id"]); appString = "Cbgg\" onclick=\"OpenTEvent('MOD','&id=" + idNumber.ToString() + "');\">" + appText; } else { if (((int)selectAppointmentDr["starthour"] + hTimeZone) < dayI && ((int)selectAppointmentDr["endhour"] + hTimeZone) >= dayI && idNumber == Convert.ToInt64(selectAppointmentDr["id"])) { exists = true; appString = "Cbgg\" onclick=\"OpenTEvent('MOD','&id=" + idNumber.ToString() + "');\">"; } } } gg.Append(appString.ToString()); if (!exists) { gg.AppendFormat(" onclick=\"OpenTEvent('NEW','{0}&ora1={1}:00');\"> </td>", data.ToShortDateString(), dayI.ToString()); } else { gg.Append(" </td>"); } } else { gg.AppendFormat(" onclick=\"OpenTEvent('NEW','{0}&ora1={1}:00');\"> </td>", data.ToShortDateString(), dayI.ToString()); } if (dayI % 2 == 0) { gg.Append("<td class=\"GridItem\""); } else { gg.Append("<td class=\"GridItemAltern\""); } DataRow[] drExistsEvent = eventDataTable.Select("ISOSTARTDATE='" + data.ToString(@"yyyyMMdd") + "' AND STARTHOUR=" + (dayI - hTimeZone).ToString()); if (drExistsEvent.Length > 0) { Trace.Warn("eventi", drExistsEvent.Length.ToString()); gg.Append(">"); foreach (DataRow drs in drExistsEvent) { gg.Append("<table width=\"100%\"><tr><td class=\"normal Cbgg\""); gg.Append(" onclick=\"OpenEventS('MOD','&id=" + Convert.ToString(drs["id"]) + "');\">" + UC.LTZ.ToLocalTime((DateTime)drs["startdate"]).ToString(@"HH:mm") + "<br>" + drs["title"] + "<br>" + drs["note"]); gg.Append("</td></tr></table>"); } gg.Append(" </td></tr>"); } else { gg.Append(" onclick=\"OpenEventS('NEW','" + data.ToShortDateString() + "&ora1=" + dayI.ToString() + ":00');\"> </td></tr>"); } } Detail.Text = gg.ToString(); }
private string FillDay(DateTime data, int uIDATTUALE) { string sqlCalendar = "SELECT ID,RECURRID,CONVERT(VARCHAR(10),STARTDATE,112) AS ISOSTARTDATE, DATEPART(HH, STARTDATE) AS STARTHOUR, DATEPART(HH, ENDDATE) AS ENDHOUR,CONTACT,COMPANY,STARTDATE,ENDDATE FROM BASE_CALENDAR WHERE (CONVERT(VARCHAR(10),STARTDATE,112)='" + data.ToString(@"yyyyMMdd") + "' OR RECURRID>0) AND UID=@UID"; Trace.Warn("SQL", sqlCalendar); DataSet dsCalendar = DatabaseConnection.SecureCreateDataset(sqlCalendar, new DbSqlParameter("@UID", uIDATTUALE)); DataTable CalendarDataTable = dsCalendar.Tables[0]; StringBuilder gg = new StringBuilder(); StringBuilder descTable = new StringBuilder(); DateTime Utctime = UC.LTZ.ToUniversalTime(data); TimeSpan mindiffstart = new TimeSpan(data.Ticks - Utctime.Ticks); int hTimeZone = Convert.ToInt32(mindiffstart.TotalHours); DataColumn dcDynColumn = new DataColumn(); dcDynColumn.ColumnName = "isRec"; dcDynColumn.DataType = Type.GetType("System.Byte"); dcDynColumn.DefaultValue = 0; CalendarDataTable.Columns.Add(dcDynColumn); int rowsToCicleCal = CalendarDataTable.Rows.Count; if (CalendarDataTable.Select("RecurrID>0").Length > 0) { DateTime MDT = data; DateTime MDT2 = MDT.AddSeconds(86399); Trace.Warn("MDT", MDT.ToString()); Trace.Warn("MDT2", MDT2.ToString()); for (int i = 0; i < rowsToCicleCal; i++) { Recurrence recurrence = new Recurrence(UC); ArrayList AL = recurrence.Remind((int)CalendarDataTable.Rows[i]["recurrid"], MDT, MDT2); if (AL.Count > 0) { foreach (DateTime ALT in AL) { DataRow row = CalendarDataTable.NewRow(); for (int i2 = 0; i2 < CalendarDataTable.Columns.Count - 1; i2++) { row[i2] = CalendarDataTable.Rows[i][i2]; } row["isRec"] = 1; row["startdate"] = ALT.Date.Add(((DateTime)row["startdate"]).TimeOfDay); row["enddate"] = ALT.Date.Add(((DateTime)row["enddate"]).TimeOfDay); row["ISOSTARTDATE"] = ALT.ToString(@"yyyyMMdd"); CalendarDataTable.Rows.Add(row); } if (Convert.ToInt32(((string)CalendarDataTable.Rows[i]["ISOSTARTDATE"]).Substring(4, 2)) != data.Month) { CalendarDataTable.Rows[i]["ISOSTARTDATE"] = "19800101"; } } } } DataRow[] drAppExists = CalendarDataTable.Select("ISOSTARTDATE='" + data.ToString(@"yyyyMMdd") + "'"); long idNumber = 0; gg.AppendFormat("<table><tr><td colspan=6 class=normal>{0}</td></tr><tr>", DatabaseConnection.SqlScalar("SELECT ISNULL(NAME,'')+' '+ISNULL(SURNAME,'') FROM ACCOUNT WHERE UID=" + uIDATTUALE)); for (int xx = 0; xx <= 23; xx++) { if (xx % 2 == 0) { gg.Append("<td valign=\"top\" class=\"Grid "); } else { gg.Append("<td valign=\"top\" class=\"GridAltern "); } if (drAppExists.Length > 0) { bool exists = false; string appString = String.Empty; foreach (DataRow drSelApp in drAppExists) { if (((int)drSelApp["starthour"] + hTimeZone) == xx && idNumber != Convert.ToInt32(drSelApp["id"])) { exists = true; appString = "GridApp\">"; } else { if (((int)drSelApp["starthour"] + hTimeZone) < xx && ((int)drSelApp["endhour"] + hTimeZone) >= xx && idNumber != Convert.ToInt32(drSelApp["id"])) { exists = true; appString = "GridApp\">"; } } } gg.Append(appString.ToString()); if (!exists) { gg.AppendFormat("\">{0}:00</td>", xx.ToString()); } else { gg.AppendFormat("{0}:00</td>", xx.ToString()); } } else { gg.AppendFormat("\">{0}:00</td>", xx.ToString()); } if (xx == 5 || xx == 11 || xx == 17 || xx == 23) { gg.Append("</tr><tr>"); } } gg.Append("</table>"); int clnumber = 1; foreach (DataRow drSelApp in drAppExists) { string cl = ((clnumber % 2) == 0) ? "GridItem" : "GridItemAltern"; clnumber++; descTable.AppendFormat("<tr><td width=\"1%\" nowrap class={2}>{0}</td><td width=\"1%\" nowrap class={2}>{1}</td>", ((DateTime)drSelApp["startdate"]).AddHours(hTimeZone).ToShortTimeString(), ((DateTime)drSelApp["enddate"]).AddHours(hTimeZone).ToShortTimeString(), cl); descTable.AppendFormat("<td width=\"98%\" nowrap class={2}>{0} {1}</td></tr>", drSelApp["contact"].ToString(), drSelApp["company"].ToString(), cl); } if (descTable.Length > 0) { gg.AppendFormat("<table class=\"normal\" cellspacing=0 cellpadding=3 width=\"100%\" style=\"border-top:2px solid black;\">{0}</table>", descTable.ToString()); } return(gg.ToString()); }