PageRenderTime 57ms CodeModel.GetById 27ms RepoModel.GetById 1ms app.codeStats 0ms

/BaliEnterpriseSystems/BaliEnterpriseSystems/TutorReports.aspx.cs

https://github.com/sirivedula/BEST
C# | 238 lines | 216 code | 22 blank | 0 comment | 19 complexity | 42bd34d715a40a1b1cc1ae3d970e47f5 MD5 | raw file
  1. using System;
  2. using System.Collections;
  3. using System.Configuration;
  4. using System.Data;
  5. using System.Linq;
  6. using System.Web;
  7. using System.Web.Security;
  8. using System.Web.UI;
  9. using System.Web.UI.WebControls;
  10. using System.Web.UI.WebControls.WebParts;
  11. using System.Web.UI.HtmlControls;
  12. using System.Xml.Linq;
  13. using System.Text;
  14. using BaliEnterpriseSystems.BestObjects;
  15. using System.Data.OleDb;
  16. namespace BaliEnterpriseSystems
  17. {
  18. public partial class TutorReports : System.Web.UI.Page
  19. {
  20. protected void Page_LoadComplete(object sender, EventArgs e)
  21. {
  22. if (HttpContext.Current.Session["CurrentUser"] == null)
  23. {
  24. Response.Redirect("Logout.aspx");
  25. }
  26. ltrSubMenu.Text = UtilMenu.TutorMenu("tutorreports");
  27. if (!Utils.User.UserRoleByName("Tutor - Reports").allowView)
  28. {
  29. ltrValidateMsg.Text = "You do not have rights to view.";
  30. return;
  31. }
  32. string ms = Request.QueryString["ms"];
  33. ltrMScript.Text = Utils.MenuSelectScript(ms);
  34. string fromdate = Request.Form["fromdate"];
  35. if (string.IsNullOrEmpty(fromdate)) fromdate = DateTime.Today.ToString("MM/dd/yyyy");
  36. string todate = Request.Form["todate"];
  37. if (string.IsNullOrEmpty(todate)) todate = DateTime.Today.AddMonths(1).AddDays(-1).ToString("MM/dd/yyyy");
  38. StringBuilder rowshtml = new StringBuilder();
  39. if (IsPostBack)
  40. {
  41. bool canReport = true;
  42. if (!string.IsNullOrEmpty(fromdate))
  43. {
  44. try
  45. {
  46. DateTime fromdt = Convert.ToDateTime(fromdate);
  47. }
  48. catch (Exception ex)
  49. {
  50. ltrValidateMsg.Text = Utils.WarningMessage(ex.Message);
  51. canReport = false;
  52. }
  53. }
  54. else
  55. {
  56. ltrValidateMsg.Text = Utils.WarningMessage("From Date is Required.");
  57. canReport = false;
  58. }
  59. if (!string.IsNullOrEmpty(todate))
  60. {
  61. try
  62. {
  63. DateTime todt = Convert.ToDateTime(todate);
  64. }
  65. catch (Exception ex)
  66. {
  67. ltrValidateMsg.Text = Utils.WarningMessage(ex.Message);
  68. canReport = false;
  69. }
  70. }
  71. else
  72. {
  73. ltrValidateMsg.Text = Utils.WarningMessage("To Date is Required.");
  74. canReport = false;
  75. }
  76. if (canReport)
  77. {
  78. BestField bffromdate = new BestField() { fieldName = "fromdate", fieldSize = 40, fieldType = "System.String", paramOledbType = System.Data.OleDb.OleDbType.VarChar, displayField = false };
  79. bffromdate.fieldValue = fromdate.Substring(6, 4) + fromdate.Substring(0, 2) + fromdate.Substring(3, 2);
  80. BestField bftodate = new BestField() { fieldName = "todate", fieldSize = 40, fieldType = "System.String", paramOledbType = System.Data.OleDb.OleDbType.VarChar, displayField = false };
  81. bftodate.fieldValue = todate.Substring(6, 4) + todate.Substring(0, 2) + todate.Substring(3, 2);
  82. BestField GuidField = new BestField(){ fieldName="guidfield", fieldSize=40, fieldType="System.Guid", paramOledbType= OleDbType.Guid, displayField=false};
  83. string tutorGuid = Request.Form["TutorGuid"]??"";
  84. GuidField.fieldValue = tutorGuid;
  85. string tsql = @"Select schdate, tutorid, BestTutors.firstName + ' ' + BestTutors.lastName as tutorName,
  86. (select BestStudents.firstName + ' ' + SubString(BestStudents.lastName,1,1) From BestStudents where BestStudents.guidField = BestSchedules.stuguid1) as name1,
  87. (select BestStudents.firstName + ' ' + SubString(BestStudents.lastName,1,1) From BestStudents where BestStudents.guidField = BestSchedules.stuguid2) as name2,
  88. (select BestStudents.firstName + ' ' + SubString(BestStudents.lastName,1,1) From BestStudents where BestStudents.guidField = BestSchedules.stuguid3) as name3,
  89. (select BestStudents.firstName + ' ' + SubString(BestStudents.lastName,1,1) From BestStudents where BestStudents.guidField = BestSchedules.stuguid4) as name4,
  90. (select BestStudents.firstName + ' ' + SubString(BestStudents.lastName,1,1) From BestStudents where BestStudents.guidField = BestSchedules.stuguid5) as name5,
  91. case BestSchedules.tutorattend when 0 then 1 when 1 then 1 when 2 then 0 end as tutorattend,
  92. BestTutors.perHour, BestTutors.salary
  93. From BestSchedules
  94. Inner Join BestTutors on BestTutors.guidfield = BestSchedules.tutGuid
  95. where BestSchedules.schdate >= ? and BestSchedules.schdate <= ? and BestTutors.CenterId = ?";
  96. if(! string.IsNullOrEmpty(tutorGuid))
  97. {
  98. tsql += " and BestTutors.guidfield = ? ";
  99. }
  100. tsql += " order by tutorname, schdate";
  101. BestDatabase db = new BestDatabase();
  102. OleDbCommand myCmd = db.dbCmd;
  103. myCmd.CommandText = tsql;
  104. myCmd.Parameters.Add(bffromdate.Param);
  105. myCmd.Parameters.Add(bftodate.Param);
  106. myCmd.Parameters.Add(Utils.User.CenterIdField.Param);
  107. if (!string.IsNullOrEmpty(tutorGuid))
  108. {
  109. myCmd.Parameters.Add(GuidField.Param);
  110. }
  111. OleDbDataReader tblReader = myCmd.ExecuteReader();
  112. int Cnt = 0;
  113. string tutorName = "";
  114. string tutorid = "";
  115. rowshtml.Append("<br /><div id=\"tutorReport\"><table class=\"tblreports\" cellspacing=\"0\" cellpadding=\"0\">");
  116. rowshtml.Append("<thead><tr><td colspan=\"9\" style=\"font-weight:bold;font-size:12px;\">" + Utils.User.CenterId + " Tutors Report</td></thead>");
  117. rowshtml.Append("<tr>");
  118. rowshtml.Append("<th>Date</th>");
  119. rowshtml.Append("<th>Tutor Id</th>");
  120. rowshtml.Append("<th>Tutor Name</th>");
  121. rowshtml.Append("<th>Students</th>");
  122. rowshtml.Append("<th>Hours</th>");
  123. rowshtml.Append("<th>Per Hour</th>");
  124. rowshtml.Append("<th>Amount</th>");
  125. rowshtml.Append("<th>Salary</th>");
  126. rowshtml.Append("</tr>");
  127. Decimal totalHrs = 0;
  128. Decimal totalAmount = 0;
  129. bool showSalary = true;
  130. Decimal grandTotal = 0;
  131. Decimal salaryTotal = 0;
  132. while (tblReader.Read())
  133. {
  134. string tutid = tblReader[1].ToString();
  135. if (!tutorid.Equals(tutid) && (Cnt > 0))
  136. {
  137. rowshtml.Append("<tr><td style=\"text-align:right;background-color:#fff;font-weight:bold;\" colspan=\"4\">" + tutorName + " Totals</td><td style=\"text-align:right;background-color:#fff;font-weight:bold;\" >" + totalHrs.ToString("0") + "</td>");
  138. rowshtml.Append("<td style=\"text-align:right;background-color:#fff;font-weight:bold;\" >" + totalAmount.ToString("$0.00") + "</td><td style=\"text-align:right;background-color:#fff;font-weight:bold;\" colspan=\"2\">&nbsp;</td></tr>");
  139. totalHrs = 0;
  140. totalAmount = 0;
  141. showSalary = true;
  142. }
  143. tutorid = tutid;
  144. Cnt++;
  145. string schdate = tblReader[0].ToString();
  146. schdate = schdate.Substring(4, 2) + "/" + schdate.Substring(6, 2) + "/" + schdate.Substring(0, 4);
  147. tutorName = tblReader[2].ToString();
  148. string name1 = tblReader[3].ToString();
  149. string name2 = tblReader[4].ToString();
  150. string name3 = tblReader[5].ToString();
  151. string name4 = tblReader[6].ToString();
  152. string name5 = tblReader[7].ToString();
  153. string studentNames = name1;
  154. if(!string.IsNullOrEmpty(name2)) studentNames += ", " + name2 ;
  155. if(!string.IsNullOrEmpty(name3)) studentNames += ", " + name3 ;
  156. if(!string.IsNullOrEmpty(name4)) studentNames += ", " + name4 ;
  157. if(!string.IsNullOrEmpty(name5)) studentNames += ", " + name5 ;
  158. string tutAttend = tblReader[8].ToString();
  159. string perhour = tblReader[9].ToString();
  160. string salary = tblReader[10].ToString();
  161. Decimal perHour;
  162. Decimal.TryParse(perhour, out perHour);
  163. Decimal Salary;
  164. Decimal.TryParse(salary, out Salary);
  165. Decimal attendHour;
  166. Decimal.TryParse(tutAttend, out attendHour);
  167. totalHrs += attendHour;
  168. totalAmount += (perHour * attendHour);
  169. grandTotal += (perHour * attendHour);
  170. rowshtml.Append("<tr><td>" + schdate + "</td>");
  171. rowshtml.Append("<td>" + tutorid + "</td>");
  172. rowshtml.Append("<td>" + tutorName + "</td>");
  173. rowshtml.Append("<td>" + studentNames + "</td>");
  174. rowshtml.Append("<td style=\"text-align:right;\">" + attendHour.ToString("0") + "</td>");
  175. rowshtml.Append("<td style=\"text-align:right;\">" + perHour.ToString("$0.00") + "</td>");
  176. rowshtml.Append("<td style=\"text-align:right;\">" + (attendHour * perHour).ToString("$0.00") + "</td>");
  177. if (showSalary)
  178. {
  179. salaryTotal += Salary;
  180. rowshtml.Append("<td style=\"text-align:right;\">" + ((Salary > 0) ? Salary.ToString("$0.00") : "") + "</td>");
  181. }
  182. else
  183. {
  184. rowshtml.Append("<td>&nbsp;</td>");
  185. }
  186. showSalary = false;
  187. }
  188. rowshtml.Append("<tr><td style=\"text-align:right;background-color:#fff;font-weight:bold;\" colspan=\"4\">" + tutorName + " Totals</td><td style=\"text-align:right;background-color:#fff;font-weight:bold;\" >" + totalHrs.ToString("0") + "</td>");
  189. rowshtml.Append("<td style=\"text-align:right;background-color:#fff;font-weight:bold;\" >" + totalAmount.ToString("$0.00") + "</td><td style=\"text-align:right;background-color:#fff;font-weight:bold;\" colspan=\"2\">&nbsp;</td></tr>");
  190. rowshtml.Append("<tr><td style=\"font-weight:bold;\">Grand Total</td><td>" + Server.HtmlEncode(fromdate + " to " + todate) + "</td><td colspan=\"5\" style=\"text-align:right;font-weight:bold;\">" + grandTotal.ToString("$0.00") + "</td><td style=\"text-align:right;font-weight:bold;\">" + salaryTotal.ToString("$0.00") + "</td></tr>");
  191. rowshtml.Append("</table></div><br />");
  192. rowshtml.Append("<div><input type=\"button\" value=\"Print\" onclick=\"PrintTable('tutorReport');\" /></div>");
  193. }
  194. }
  195. StringBuilder sb = new StringBuilder();
  196. sb.Append("<div class=\"centered\">");
  197. sb.Append("<table class=\"bestgrid\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">");
  198. sb.Append("<tr><td style=\"text-align:center;\" colspan=\"2\">Tutor Reports</td></tr>");
  199. sb.Append("<tr><td>From Date <input type=\"text\" id=\"fromdate\" name=\"fromdate\" size=\"9\" maxlength=\"10\" value=\"" + fromdate + "\" /></td><td>To Date <input type=\"text\" id=\"todate\" name=\"todate\" size=\"9\" maxlength=\"10\" value=\"" + todate + "\" /></td></tr>");
  200. sb.Append("<tr><td colspan=\"2\">Tutor <select id=\"TutorGuid\" name=\"TutorGuid\">" + TutorOptions() + "</select></td></tr>");
  201. sb.Append("<tr><td colspan=\"2\" style=\"text-align:center;\" ><input type=\"button\" value=\"Submit\" onclick=\"submit();\" /></td></tr>");
  202. sb.Append("</table>");
  203. ltrGrid.Text = sb.ToString() + rowshtml.ToString() + "</div>";
  204. }
  205. private string TutorOptions()
  206. {
  207. StringBuilder sb = new StringBuilder();
  208. string tutorguid = Request.Form["TutorGuid"] ?? "";
  209. sb.Append("<option value=\"\"></option>");
  210. BestTutors bs = new BestTutors();
  211. bs.LoadRows("CenterId=?", "centerid", Utils.User.CenterId, "firstname");
  212. sb.Append(string.Join("", bs.TableRows.Rows.Select(x => "<option value=\"" + Server.HtmlEncode(x.Fields["guidfield"].fieldValue) + "\" " + (tutorguid.Equals(x.Fields["guidfield"].fieldValue) ? "selected" : "") + " >" + Server.HtmlEncode(x.Fields["firstname"].fieldValue + " " + x.Fields["lastname"].fieldValue) + "</option>").ToArray()));
  213. return sb.ToString();
  214. }
  215. }
  216. }