You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

413 lines
18 KiB

  1. using System;
  2. using System.Data;
  3. using System.Text;
  4. using Swift.DAL.BL.Remit.Transaction;
  5. using Swift.web.Library;
  6. namespace Swift.web.Responsive.Reports.UserWise
  7. {
  8. public partial class View : System.Web.UI.Page
  9. {
  10. private const string ViewFunctionId = "40121400";
  11. private readonly RemittanceLibrary _sl = new RemittanceLibrary();
  12. TranReportDao _rptDao = new TranReportDao();
  13. protected void Page_Load(object sender, EventArgs e)
  14. {
  15. Authenticate();
  16. string reportName = GetStatic.ReadQueryString("reportName", "").ToLower();
  17. string mode = GetStatic.ReadQueryString("mode", "").ToLower();
  18. if (mode == "download")
  19. {
  20. string format = GetStatic.ReadQueryString("format", "xls");
  21. Response.Clear();
  22. Response.ClearContent();
  23. Response.ClearHeaders();
  24. Response.ContentType = "application/vnd.ms-excel";
  25. Response.AddHeader("Content-Disposition", "inline; filename=" + reportName + "." + format);
  26. exportDiv.Visible = false;
  27. }
  28. if (reportName == "uwdetail")
  29. LoadReport();
  30. else if (reportName == "uwsummary")
  31. LoadReportSummary();
  32. else if (reportName == "agentuserwise")
  33. LoadReportAgentUserWise();
  34. else if (reportName == "detail")
  35. ShowUserWiseTranDetail();
  36. }
  37. private void Authenticate()
  38. {
  39. _sl.CheckAuthentication(ViewFunctionId);
  40. }
  41. private void PrintFilter(ref DataTable filter)
  42. {
  43. var html = new StringBuilder("Filter Applied:</br>");
  44. foreach (DataRow dr in filter.Rows)
  45. {
  46. html.Append(dr[0] + "=" + dr[1] + " | ");
  47. }
  48. filters.InnerHtml = html.ToString();
  49. }
  50. private void PrintHead(ref DataTable reportHead)
  51. {
  52. var html = new StringBuilder("");
  53. foreach (DataRow dr in reportHead.Rows)
  54. html.Append(dr[0].ToString());
  55. head.InnerHtml = html.ToString();
  56. }
  57. private string GetAgentId()
  58. {
  59. return GetStatic.ReadQueryString("agent", "");
  60. }
  61. private string GetBranchId()
  62. {
  63. return GetStatic.ReadQueryString("branch", "");
  64. }
  65. private string GetUserName()
  66. {
  67. return GetStatic.ReadQueryString("userName", "");
  68. }
  69. private string GetFromDate()
  70. {
  71. return GetStatic.ReadQueryString("fromDate", "");
  72. }
  73. private string GetToDate()
  74. {
  75. return GetStatic.ReadQueryString("toDate", "");
  76. }
  77. private string GetFlag()
  78. {
  79. return GetStatic.ReadQueryString("flag", "");
  80. }
  81. private string GetRecCountry()
  82. {
  83. return GetStatic.ReadQueryString("rCountry", "");
  84. }
  85. private void LoadReport()
  86. {
  87. head.InnerHtml = "";
  88. var ds = _rptDao.UserWiseReport("detail", GetStatic.GetCountry(), GetStatic.GetAgent(), GetBranchId(), GetUserName(), GetFromDate(), GetToDate(), GetRecCountry(), GetStatic.GetUser());
  89. var dtHead = ds.Tables[0];
  90. var dt = ds.Tables[1];
  91. var filter = ds.Tables[3];
  92. var reportHead = ds.Tables[4];
  93. PrintFilter(ref filter);
  94. PrintHead(ref reportHead);
  95. int cols = dt.Columns.Count;
  96. StringBuilder str = new StringBuilder("<table class=\"table table-responsive table-bordered table-striped\" >");
  97. str.Append("<tr>");
  98. str.AppendLine("<th>S.N.</th>");
  99. for (int i = 1; i < cols - 1; i++)
  100. {
  101. str.AppendLine("<th align=\"left\">" + dt.Columns[i].ColumnName + "</th>");
  102. }
  103. str.AppendLine("</tr>");
  104. if (dtHead.Rows.Count > 0)
  105. {
  106. double[] total = new double[9];
  107. foreach (DataRow dr in dtHead.Rows)
  108. {
  109. str.AppendLine(PrintRegionBody(ref dt, dr[0].ToString(), ref total));
  110. }
  111. str.Append("<tr>");
  112. str.Append("<td colspan = '2'><center><b>Grand Total</b></center></td>");
  113. for (int i = 2; i < 9; i++)
  114. {
  115. if (i == 2 || i == 4 || i == 6 || i == 8)
  116. str.Append("<td align = 'center'><b>" + total[i].ToString() + "</b></td>");
  117. else if (i == 3 || i == 7)
  118. str.Append("<td align = 'right'><b>" + total[i].ToString() + "</b></td>");
  119. else
  120. str.Append("<td align = 'right'><b>" + GetStatic.ParseMinusValue(GetStatic.ParseDouble(total[i].ToString())) + "</b></td>");
  121. }
  122. str.Append("</tr>");
  123. }
  124. else
  125. {
  126. str.Append("<tr>");
  127. str.Append("<td colspan = '" + cols + "'><center><b>No Record Found!</b></center></td>");
  128. str.Append("</tr>");
  129. }
  130. rptDiv.InnerHtml = str.ToString();
  131. }
  132. private string PrintRegionBody(ref DataTable dt, string regionName, ref Double[] total)
  133. {
  134. double[] subTotal = new double[9];
  135. DataRow[] rows = dt.Select("HEAD='" + regionName + "'");
  136. var html = new StringBuilder();
  137. html.Append("<tr>");
  138. html.Append("<td></td>");
  139. html.Append("<td colspan='5'><b>User Name: " + regionName + "</b></td>");
  140. html.Append("</tr>");
  141. int bag_sno = 0;
  142. foreach (DataRow dr in rows)
  143. {
  144. for (int i = 2; i < 9; i++)
  145. {
  146. var data = GetStatic.ParseDouble(dr[i].ToString());
  147. subTotal[i] += data;
  148. total[i] += data;
  149. }
  150. html.Append("<tr>");
  151. html.Append("<td align=\"center\" style=\"border=\"0\";\" nowrap='nowrap'>" + (++bag_sno).ToString() + "</td>");
  152. html.Append("<td align=\"left\" style=\"border=\"0\";\" nowrap='nowrap'>" + dr["Branch"].ToString() + "</td>");
  153. html.Append("<td align=\"center\" style=\"border=\"0\";\"><a href=\"../../Reports.aspx?reportName=userwiserpt&rCountry=" + GetRecCountry() + "&branch=" + dr["agentId"].ToString() + "&type=Send&userName=" + regionName + "&fromDate=" + GetFromDate() + "&toDate=" + GetToDate() + "\">" + dr["#Send Trans"].ToString() + "</a></td>");
  154. html.Append("<td align=\"right\" style=\"border=\"0\";\">" + dr["Send Amount"].ToString() + "</td>");
  155. html.Append("<td align=\"center\" style=\"border=\"0\";\"><a href=\"../../Reports.aspx?reportName=userwiserpt&rCountry=" + GetRecCountry() + "&branch=" + dr["agentId"].ToString() + "&type=Paid&userName=" + regionName + "&fromDate=" + GetFromDate() + "&toDate=" + GetToDate() + "\">" + dr["#Paid Trans"].ToString() + "</a></td>");
  156. html.Append("<td align=\"right\" style=\"border=\"0\";\">" + GetStatic.ParseMinusValue(GetStatic.ParseDouble(dr["Paid Amount"].ToString())) + "</td>");
  157. html.Append("<td align=\"center\" style=\"border=\"0\";\"><a href=\"../../Reports.aspx?reportName=userwiserpt&rCountry=" + GetRecCountry() + "&branch=" + dr["agentId"].ToString() + "&type=Approved&userName=" + regionName + "&fromDate=" + GetFromDate() + "&toDate=" + GetToDate() + "\">" + dr["#Approved Trans"].ToString() + "</a></td>");
  158. html.Append("<td align=\"right\" style=\"border=\"0\";\">" + dr["Approved Amount"].ToString() + "</td>");
  159. html.Append("<td align=\"center\" style=\"border=\"0\";\"><a href=\"ModifyHistory.aspx?reportName=modifyHistory&rCountry=" + GetRecCountry() + "&branch=" + dr["agentId"].ToString() + "&type=all&userName=" + regionName + "&fromDate=" + GetFromDate() + "&toDate=" + GetToDate() + "\">" + dr["#Amendment Count"].ToString() + "</a></td>");
  160. html.Append("</tr>");
  161. }
  162. html.Append("<tr>");
  163. html.Append("<td colspan = '2'><center><b>Sub Total</b></center></td>");
  164. for (int i = 2; i < 9; i++)
  165. {
  166. if (i == 2 || i == 4 || i == 6 || i == 8)
  167. html.Append("<td align = 'center'><b>" + subTotal[i].ToString() + "</b></td>");
  168. else if (i == 3 || i == 7)
  169. html.Append("<td align = 'right'><b>" + subTotal[i].ToString() + "</b></td>");
  170. else
  171. html.Append("<td align = 'right'><b>" + GetStatic.ParseMinusValue(GetStatic.ParseDouble(subTotal[i].ToString())) + "</b></td>");
  172. }
  173. html.Append("</tr>");
  174. return html.ToString();
  175. }
  176. private void LoadReportSummary()
  177. {
  178. var ds = _rptDao.UserWiseReport("summary", GetStatic.GetCountry(), GetStatic.GetAgent(), GetBranchId(), GetUserName(), GetFromDate(), GetToDate(), GetRecCountry(), GetStatic.GetUser());
  179. var dt = ds.Tables[0];
  180. var filter = ds.Tables[2];
  181. var reportHead = ds.Tables[3];
  182. PrintFilter(ref filter);
  183. PrintHead(ref reportHead);
  184. int cols = dt.Columns.Count;
  185. double[] sum = new double[cols];
  186. StringBuilder str = new StringBuilder("<table class=\"table table-responsive table-bordered table-striped \"");
  187. str.Append("<tr>");
  188. str.AppendLine("<th>S.N.</th>");
  189. for (int i = 0; i < cols; i++)
  190. {
  191. str.AppendLine("<th align=\"left\">" + dt.Columns[i].ColumnName + "</th>");
  192. }
  193. str.AppendLine("</tr>");
  194. if (dt.Rows.Count > 0)
  195. {
  196. int bag_sno = 0;
  197. foreach (DataRow row in dt.Rows)
  198. {
  199. str.Append("<tr>");
  200. str.Append("<td align=\"center\" style=\"border=\"0\";\" nowrap='nowrap'>" + (++bag_sno).ToString() + "</td>");
  201. for (int i = 0; i < cols; i++)
  202. {
  203. if (i > 0 && i < cols)
  204. {
  205. double currVal;
  206. double.TryParse(row[i].ToString(), out currVal);
  207. sum[i] += currVal;
  208. }
  209. if (i == 1 || i == 3 || i == 5 || i == 7)
  210. {
  211. str.Append("<td align = 'center'>" + row[i].ToString() + "</td>");
  212. }
  213. else if (i == 2 || i == 6)
  214. {
  215. str.Append("<td align = 'right'>" + row[i].ToString() + "</td>");
  216. }
  217. else if (i == 4)
  218. {
  219. str.Append("<td align = 'right'>" + GetStatic.ParseMinusValue(GetStatic.ParseDouble(row[i].ToString())) + "</td>");
  220. }
  221. else
  222. {
  223. str.Append("<td align = 'left'>" + row[i].ToString() + "</td>");
  224. }
  225. }
  226. str.Append("</tr>");
  227. }
  228. str.Append("<tr>");
  229. str.Append("<td align=\"center\" colspan='2'><b>Total</b></td>");
  230. for (int i = 1; i < cols; i++)
  231. {
  232. if (i == 1 || i == 3 || i == 5 || i == 7)
  233. {
  234. str.Append("<td align=\"center\"><b>" + sum[i].ToString() + "</b></td>");
  235. }
  236. else if (i == 2 || i == 6)
  237. {
  238. str.Append("<td align = 'right'>" + sum[i].ToString() + "</td>");
  239. }
  240. else if (i == 4)
  241. {
  242. str.Append("<td align = 'right'><b>" + GetStatic.ParseMinusValue(GetStatic.ParseDouble(sum[i].ToString())) + "</b></td>");
  243. }
  244. }
  245. str.Append("</tr>");
  246. }
  247. else
  248. {
  249. str.Append("<tr>");
  250. str.Append("<td colspan = '" + cols + "'><center><b>No Record Found!</b></center></td>");
  251. str.Append("</tr>");
  252. }
  253. rptDiv.InnerHtml = str.ToString();
  254. }
  255. private void LoadReportAgentUserWise()
  256. {
  257. var ds = _rptDao.GetUserWiseTransactionReport("A", GetStatic.GetUser(), GetFromDate(), GetToDate(), GetStatic.GetAgentId(), GetUserName());
  258. var dt = ds.Tables[0];
  259. var filter = ds.Tables[2];
  260. var reportHead = ds.Tables[3];
  261. PrintFilter(ref filter);
  262. PrintHead(ref reportHead);
  263. int cols = dt.Columns.Count;
  264. double[] sum = new double[cols];
  265. StringBuilder str = new StringBuilder("<table class=\"table table-responsive table-striped table-bordered \"");
  266. str.Append("<tr>");
  267. str.AppendLine("<th>S.N.</th>");
  268. for (int i = 0; i < cols; i++)
  269. {
  270. str.AppendLine("<th align=\"left\">" + dt.Columns[i].ColumnName + "</th>");
  271. }
  272. str.AppendLine("</tr>");
  273. if (dt.Rows.Count > 0)
  274. {
  275. int bag_sno = 0;
  276. foreach (DataRow row in dt.Rows)
  277. {
  278. str.Append("<tr>");
  279. str.Append("<td align=\"center\" style=\"border=\"0\";\" nowrap='nowrap'>" + (++bag_sno).ToString() + "</td>");
  280. for (int i = 0; i < cols; i++)
  281. {
  282. if (i > 0 && i < cols)
  283. {
  284. double currVal;
  285. double.TryParse(row[i].ToString(), out currVal);
  286. sum[i] += currVal;
  287. }
  288. if (i == 1)
  289. {
  290. str.Append("<td align=\"center\"><b><a href=\"#\" onclick=\"OpenInNewWindow('" +
  291. GetStatic.GetUrlRoot() +
  292. "/Remit/Transaction/Reports/UserWiseTran/SearchUserWise.aspx?reportName=detail&flag=s&fromDate=" +
  293. GetFromDate() + "&toDate=" + GetToDate() + "&userName=" + row["User Name"] + "&agentId=" + GetStatic.GetAgentId() + "')\">" + row[i].ToString() + "</a></b></td>");
  294. //str.Append("<td align = 'center'>" + row[i].ToString() + "</td>");
  295. }
  296. else if (i == 3)
  297. {
  298. str.Append("<td align=\"center\"><b><a href=\"#\" onclick=\"OpenInNewWindow('" + GetStatic.GetUrlRoot() + "/Remit/Transaction/Reports/UserWiseTran/SearchUserWise.aspx?reportName=detail&flag=p&fromDate=" + GetFromDate() + "&toDate=" + GetToDate() + "&userName=" + row["User Name"] + "&agentId=" + GetStatic.GetAgentId() + "')\">" + row[i].ToString() + "</a></b></td>");
  299. //str.Append("<td align = 'center'>" + row[i].ToString() + "</td>");
  300. }
  301. else if (i == 2 || i == 4)
  302. {
  303. str.Append("<td align = 'right'>" + GetStatic.ParseMinusValue(GetStatic.ParseDouble(row[i].ToString())) + "</td>");
  304. }
  305. else
  306. {
  307. str.Append("<td align = 'left'>" + row[i].ToString() + "</td>");
  308. }
  309. }
  310. str.Append("</tr>");
  311. }
  312. str.Append("<tr>");
  313. str.Append("<td align=\"center\" colspan='2'><b>Total</b></td>");
  314. for (int i = 1; i < cols; i++)
  315. {
  316. if (i == 1 || i == 3)
  317. {
  318. str.Append("<td align=\"center\"><b>" + sum[i].ToString() + "</b></td>");
  319. }
  320. else
  321. {
  322. str.Append("<td align = 'right'><b>" + GetStatic.ParseMinusValue(GetStatic.ParseDouble(sum[i].ToString())) + "</b></td>");
  323. }
  324. }
  325. str.Append("</tr>");
  326. }
  327. else
  328. {
  329. str.Append("<tr>");
  330. str.Append("<td colspan = '" + cols + "'><center><b>No Record Found!</b></center></td>");
  331. str.Append("</tr>");
  332. }
  333. rptDiv.InnerHtml = str.ToString();
  334. }
  335. private void ShowUserWiseTranDetail()
  336. {
  337. var ds = _rptDao.GetUserWiseTransactionReport(GetFlag(), GetStatic.GetUser(), GetFromDate(), GetToDate(), GetAgentId(), GetUserName());
  338. var dt = ds.Tables[0];
  339. var filter = ds.Tables[2];
  340. var reportHead = ds.Tables[3];
  341. PrintFilter(ref filter);
  342. PrintHead(ref reportHead);
  343. int cols = dt.Columns.Count;
  344. double[] sum = new double[cols];
  345. StringBuilder str = new StringBuilder("<table class='table table-responsive table-bordered table-striped' ");
  346. str.Append("<tr>");
  347. str.AppendLine("<th>S.N.</th>");
  348. for (int i = 0; i < cols; i++)
  349. {
  350. str.AppendLine("<th align=\"left\">" + dt.Columns[i].ColumnName + "</th>");
  351. }
  352. str.AppendLine("</tr>");
  353. if (dt.Rows.Count > 0)
  354. {
  355. int bag_sno = 0;
  356. foreach (DataRow row in dt.Rows)
  357. {
  358. str.Append("<tr>");
  359. str.Append("<td align=\"center\" style=\"border=\"0\";\" nowrap='nowrap'>" + (++bag_sno).ToString() + "</td>");
  360. for (int i = 0; i < cols; i++)
  361. {
  362. str.Append("<td align = 'left'>" + row[i].ToString() + "</td>");
  363. }
  364. str.Append("</tr>");
  365. }
  366. }
  367. else
  368. {
  369. str.Append("<tr>");
  370. str.Append("<td colspan = '" + cols + "'><center><b>No Record Found!</b></center></td>");
  371. str.Append("</tr>");
  372. }
  373. rptDiv.InnerHtml = str.ToString();
  374. }
  375. }
  376. }