From 5086b0ba27b0ef9fd1c0d5db65731d5eaec6ce1d Mon Sep 17 00:00:00 2001 From: Leeza Baidar Date: Tue, 28 Nov 2023 11:17:06 +0545 Subject: [PATCH] #txn report --- .../Reports/TransactionNew/TranReport.aspx.cs | 187 ++++++++---------- 1 file changed, 79 insertions(+), 108 deletions(-) diff --git a/Swift.web/Remit/Transaction/Reports/TransactionNew/TranReport.aspx.cs b/Swift.web/Remit/Transaction/Reports/TransactionNew/TranReport.aspx.cs index 7ac94bd..e3ce030 100644 --- a/Swift.web/Remit/Transaction/Reports/TransactionNew/TranReport.aspx.cs +++ b/Swift.web/Remit/Transaction/Reports/TransactionNew/TranReport.aspx.cs @@ -67,99 +67,87 @@ namespace Swift.web.Remit.Transaction.Reports.TransactionNew if (dt.Rows.Count == 0) { - str.Append("No Records Found!"); + rpt_grid.InnerHtml = "No Records Found!"; + return; } - else - { - string currentPayoutPartner = string.Empty; - bool isFirstRow = true; - int[] totalAmountIndexes = { 14, 16, 18, 20, 22 }; - decimal[] totalAmounts = new decimal[cols]; - Array.Clear(totalAmounts, 0, totalAmounts.Length); + Dictionary payoutPartnerData = new Dictionary(); - foreach (DataRow dr in dt.Rows) + foreach (DataRow dr in dt.Rows) + { + string payoutPartner = dr["PAYOUT_PARTNER"].ToString().Trim(); + + if (!payoutPartnerData.ContainsKey(payoutPartner)) { - string payoutPartner = dr["PAYOUT_PARTNER"].ToString(); + DataTable partnerDataTable = dt.Clone(); + partnerDataTable.TableName = payoutPartner; + payoutPartnerData[payoutPartner] = partnerDataTable; + } - if (payoutPartner != currentPayoutPartner) - { - if (!isFirstRow) - { - str.Append(""); - - str.Append("Total"); - - for (int i = 1; i < cols; i++) - { - if (totalAmountIndexes.Contains(i)) - { - str.Append("" + totalAmounts[i] + ""); - totalAmounts[i] = 0; - } - else - { - str.Append(""); - } - } - str.Append(""); - } - - str.Append("

Payout Partner: " + payoutPartner + "

"); - - str.Append(""); - for (int i = 0; i < cols; i++) - { - str.Append(""); - } - currentPayoutPartner = payoutPartner; - isFirstRow = false; - } + payoutPartnerData[payoutPartner].ImportRow(dr); + } - str.AppendLine(""); + StringBuilder combinedTables = new StringBuilder(); + + foreach (var partnerData in payoutPartnerData) + { + string payoutPartner = partnerData.Key; + DataTable partnerTable = partnerData.Value; - for (int i = 0; i < cols; i++) + StringBuilder strTable = new StringBuilder(); + + strTable.Append("

Payout Partner: " + payoutPartner + "

"); + strTable.Append("
" + dt.Columns[i].ColumnName + "
"); + + strTable.Append(""); + foreach (DataColumn col in partnerTable.Columns) + { + strTable.Append(""); + } + strTable.Append(""); + + foreach (DataRow row in partnerTable.Rows) + { + string payStatusClass = GetPayStatus(row["PAYSTATUS"].ToString()); + strTable.Append(""); + + foreach (var item in row.ItemArray) { - str.Append(""); - - if (totalAmountIndexes.Contains(i)) - { - decimal currentAmount; - if (decimal.TryParse(dr[i].ToString(), out currentAmount)) - { - totalAmounts[i] += currentAmount; - } - } + strTable.Append(""); } - str.Append(""); + strTable.Append(""); } - if (!isFirstRow) - { - str.Append(""); + combinedTables.Append(strTable.ToString()); - str.Append(""); + combinedTables.Append(""); + combinedTables.Append(""); - for (int i = 1; i < cols; i++) + for (int i = 1; i < partnerTable.Columns.Count; i++) + { + if (i == 14 || i == 16 || i == 18 || i == 20 || i == 22) { - if (totalAmountIndexes.Contains(i)) - { - str.Append(""); - } - else - { - str.Append(""); - } + decimal total = partnerTable.AsEnumerable() + .Sum(row => decimal.TryParse(row[i].ToString(), out decimal val) ? val : 0); + + combinedTables.Append(""); + } + else + { + combinedTables.Append(""); } - str.Append(""); } + + combinedTables.Append(""); + combinedTables.Append("
" + col.ColumnName + "
" + dr[i] + "" + item.ToString() + "
Total
Total" + totalAmounts[i] + "" + total + "
"); } - str.Append(""); - if(mode == "download") + + rpt_grid.InnerHtml = combinedTables.ToString(); + + if (mode == "download") { - ExportToExcel(dt, "txnReport"); - } - rpt_grid.InnerHtml = str.ToString(); + ExportToExcel(combinedTables.ToString(), "txnReport"); + } } private string GetPayStatus(string paystatus) @@ -177,52 +165,35 @@ namespace Swift.web.Remit.Transaction.Reports.TransactionNew } } - - protected void ExportToExcel(DataTable table, string fileName) + protected void ExportToExcel(string htmlContent, string fileName) { HttpContext.Current.Response.Clear(); HttpContext.Current.Response.ClearContent(); HttpContext.Current.Response.ClearHeaders(); HttpContext.Current.Response.Buffer = true; HttpContext.Current.Response.ContentType = "application/ms-excel"; - HttpContext.Current.Response.Write(@""); HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=" + fileName + ".xls"); HttpContext.Current.Response.Charset = "utf-8"; HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("windows-1250"); - HttpContext.Current.Response.Write(""); - HttpContext.Current.Response.Write("


"); - HttpContext.Current.Response.Write(""); - int columnscount = table.Columns.Count; - - for (int j = 0; j < columnscount; j++) - { - HttpContext.Current.Response.Write(""); - } - HttpContext.Current.Response.Write(""); - foreach (DataRow row in table.Rows) - { - HttpContext.Current.Response.Write(""); - for (int i = 0; i < table.Columns.Count; i++) - { - HttpContext.Current.Response.Write(""); - } - HttpContext.Current.Response.Write(""); - } - HttpContext.Current.Response.Write("
"); - HttpContext.Current.Response.Write(""); - HttpContext.Current.Response.Write(table.Columns[j].ColumnName.ToString()); - HttpContext.Current.Response.Write(""); - HttpContext.Current.Response.Write("
"); - HttpContext.Current.Response.Write(row[i].ToString()); - HttpContext.Current.Response.Write("
"); - HttpContext.Current.Response.Write("
"); + HttpContext.Current.Response.Write(""); + HttpContext.Current.Response.Write(""); + HttpContext.Current.Response.Write(""); + HttpContext.Current.Response.Write(""); + HttpContext.Current.Response.Write(""); + + HttpContext.Current.Response.Write(htmlContent); + + HttpContext.Current.Response.Write(""); + HttpContext.Current.Response.Write(""); + HttpContext.Current.Response.Flush(); HttpContext.Current.Response.End(); } - } } \ No newline at end of file