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.

341 lines
15 KiB

  1. using Swift.DAL.AccountReport;
  2. using Swift.web.Library;
  3. using System;
  4. using System.Data;
  5. using System.Text;
  6. using System.Web;
  7. namespace Swift.web.AccountReport.AccountStatement
  8. {
  9. public partial class StatementDetails : System.Web.UI.Page
  10. {
  11. private SwiftLibrary _sl = new SwiftLibrary();
  12. private AccountStatementDAO st = new AccountStatementDAO();
  13. private const string ReversalId = "20101110";
  14. protected void Page_Load(object sender, EventArgs e)
  15. {
  16. //check session
  17. _sl.CheckSession();
  18. if (!IsPostBack)
  19. {
  20. PopulateDDL();
  21. ddlCurrency.Text = GetStatic.ReadQueryString("curr", "");
  22. hdnRptType.Value = GetStatic.ReadQueryString("type", "a");
  23. startDate.Text = StartDate();
  24. endDate.Text = EndDate();
  25. }
  26. GenerateReport();
  27. }
  28. protected string StartDate()
  29. {
  30. return GetStatic.ReadQueryString("startDate", "");
  31. }
  32. protected string EndDate()
  33. {
  34. return GetStatic.ReadQueryString("endDate", "");
  35. }
  36. protected string AccountNumber()
  37. {
  38. return GetStatic.ReadQueryString("acNum", "");
  39. }
  40. protected string AccountName()
  41. {
  42. return GetStatic.ReadQueryString("acName", "");
  43. }
  44. private void PopulateDDL()
  45. {
  46. RemittanceLibrary r = new RemittanceLibrary();
  47. r.SetDDL(ref ddlCurrency, "EXEC Proc_dropdown_remit @FLAG='Currency'", "val", "Name", "", "Select FCY");
  48. }
  49. private void GenerateReport()
  50. {
  51. acNumber.Text = AccountNumber();
  52. acName.Text = AccountName();
  53. string curr = "";
  54. var dt = st.GetACStatement(acNumber.Text, startDate.Text, endDate.Text, ddlCurrency.Text, hdnRptType.Value,GetStatic.GetUser());
  55. if (dt == null || dt.Rows.Count == 0)
  56. {
  57. tableBody.InnerHtml = "";
  58. openingBalance.Text = "0";
  59. drOrCr.Text = "DR";
  60. closingBalanceAmt.Text = "0 ";
  61. return;
  62. }
  63. if (hdnRptType.Value == "d")
  64. {
  65. GenerateDateWiseStmt(dt);
  66. return;
  67. }
  68. var sb = new StringBuilder("");
  69. sb.AppendLine("<table class=\"table table-striped table-bordered\" width=\"100%\" cellspacing=\"0\" class=\"TBLReport\">");
  70. sb.AppendLine("<tr>");
  71. sb.AppendLine("<th nowrap='nowrap'>SN</th>");
  72. sb.AppendLine("<th nowrap='nowrap'>Tran Date</th>");
  73. sb.AppendLine("<th nowrap='nowrap'>Particulars</th>");
  74. //if (!string.IsNullOrWhiteSpace(ddlCurrency.Text))
  75. //{
  76. sb.AppendLine("<th nowrap='nowrap'>FCY</th>");
  77. sb.AppendLine("<th nowrap='nowrap'>FCY Amount</th>");
  78. sb.AppendLine("<th nowrap='nowrap'>FCY Closing</th>");
  79. sb.AppendLine("<th nowrap='nowrap'>DR/CR</th>");
  80. //}
  81. sb.AppendLine("<th nowrap='nowrap'>JPY Amount</th>");
  82. sb.AppendLine("<th nowrap='nowrap'>JPY Closing</th>");
  83. sb.AppendLine("<th nowrap='nowrap'>DR/CR</th>");
  84. if (_sl.HasRight(ReversalId))
  85. {
  86. sb.AppendLine("<th nowrap='nowrap'>Reversal</th>");
  87. }
  88. sb.AppendLine("</tr>");
  89. double BAlance = 0, OpenBalnce = 0, fcyOpening = 0, crAmt = 0, drAmt = 0;
  90. int sn = 1, drCount = 0, crCount = 0;
  91. foreach (DataRow item in dt.Rows)
  92. {
  93. if (item["tran_particular"].ToString() == "Balance Brought Forward")
  94. {
  95. sn = 0;
  96. if (item["fcy_Curr"] == null || item["fcy_Curr"].ToString().ToLower() == "jpy")
  97. {
  98. OpenBalnce = GetStatic.ParseDouble(item["tran_amt"].ToString());
  99. }
  100. else
  101. {
  102. OpenBalnce = GetStatic.ParseDouble(item["usd_amt"].ToString());
  103. }
  104. fcyOpening = GetStatic.ParseDouble(item["usd_amt"].ToString());
  105. BAlance = GetStatic.ParseDouble(item["tran_amt"].ToString());
  106. }
  107. else
  108. {
  109. BAlance += GetStatic.ParseDouble(item["tran_amt"].ToString());
  110. fcyOpening += GetStatic.ParseDouble(item["usd_amt"].ToString());
  111. }
  112. sb.AppendLine("<tr>");
  113. curr = item["fcy_Curr"].ToString();
  114. if (item["tran_particular"].ToString() != "Balance Brought Forward")
  115. {
  116. if (item["part_tran_type"].ToString().ToLower() == "cr")
  117. {
  118. crCount++;
  119. if (item["fcy_Curr"] == null || item["fcy_Curr"].ToString().ToLower() == "jpy")
  120. {
  121. crAmt += GetStatic.ParseDouble(item["tran_amt"].ToString());
  122. }
  123. else
  124. {
  125. crAmt += GetStatic.ParseDouble(item["usd_amt"].ToString());
  126. }
  127. }
  128. else
  129. {
  130. drCount++;
  131. if (item["fcy_Curr"] == null || item["fcy_Curr"].ToString().ToLower() == "jpy")
  132. {
  133. drAmt += GetStatic.ParseDouble(item["tran_amt"].ToString());
  134. }
  135. else
  136. {
  137. drAmt += GetStatic.ParseDouble(item["usd_amt"].ToString());
  138. }
  139. }
  140. }
  141. string drLink = "<a href='userreportResultSingle.aspx?company_id=1&vouchertype=" + item["tran_type"].ToString();
  142. drLink += "&type=trannumber&trn_date=" + item["tran_date"].ToString() + "&tran_num=" + item["ref_num"].ToString() + "' title='Transaction info' >";
  143. drLink += GetStatic.ShowDecimal_Account(item["tran_amt"].ToString()) + "</a>";
  144. sb.AppendLine("<td >" + (sn > 0 ? sn.ToString() : "") + " </td>");
  145. sb.AppendLine("<td nowrap align='center' >" + (item["tran_date"].ToString() == "1900.01.01" ? "&nbsp;" : item["tran_date"]) + " </td>");
  146. sb.AppendLine("<td >" + item["tran_particular"] + " </td>");
  147. //if (!string.IsNullOrWhiteSpace(ddlCurrency.Text))
  148. //{
  149. sb.AppendLine("<td >" + item["fcy_Curr"] + " </td>");
  150. sb.AppendLine("<td >" + GetStatic.ShowDecimal_Account(item["usd_amt"].ToString()) + " </td>");
  151. sb.AppendLine("<td >" + GetStatic.ShowDecimal_Account(fcyOpening.ToString()) + " </td>");
  152. sb.AppendLine("<td >" + item["part_tran_type"] + " </td>");
  153. //}
  154. sb.AppendLine("<td >" + (item["tran_particular"].ToString() == "Balance Brought Forward" ? GetStatic.ShowDecimal_Account(item["tran_amt"].ToString()) : drLink) + " </td>");
  155. sb.AppendLine("<td >" + GetStatic.ShowDecimal_Account(BAlance.ToString()) + " </td>");
  156. sb.AppendLine("<td >" + (BAlance > 0 ? "CR" : "DR") + " </td>");
  157. if (_sl.HasRight(ReversalId) && sn > 0)
  158. {
  159. drLink = "<a class='btn btn-danger' href='userreportResultSingle.aspx?r=Y&company_id=1&vouchertype=" + item["tran_type"].ToString();
  160. drLink += "&type=trannumber&trn_date=" + item["tran_date"].ToString() + "&tran_num=" + item["ref_num"].ToString() + "' title='Transaction info' >Reverse</a>";
  161. sb.AppendLine("<td >" + drLink + " </td>");
  162. }
  163. sb.AppendLine("</tr>");
  164. sn++;
  165. }
  166. if (GetStatic.ReadQueryString("isDownload", "") == "y")
  167. {
  168. sb.AppendLine("<tr>");
  169. sb.AppendLine("<td></td>");
  170. sb.AppendLine("<td></td>");
  171. sb.AppendLine("<td></td>");
  172. sb.AppendLine("<td></td>");
  173. sb.AppendLine("<td></td>");
  174. sb.AppendLine("<td></td>");
  175. sb.AppendLine("<td></td>");
  176. sb.AppendLine("<td>Opening Balance: </td>");
  177. sb.AppendLine("<td>" + GetStatic.ShowDecimal_Account(OpenBalnce.ToString()) + "</td>");
  178. sb.AppendLine("<td></td>");
  179. sb.AppendLine("</tr>");
  180. sb.AppendLine("<tr>");
  181. sb.AppendLine("<td></td>");
  182. sb.AppendLine("<td></td>");
  183. sb.AppendLine("<td></td>");
  184. sb.AppendLine("<td></td>");
  185. sb.AppendLine("<td></td>");
  186. sb.AppendLine("<td></td>");
  187. sb.AppendLine("<td></td>");
  188. sb.AppendLine("<td>Total DR:(" + drCount.ToString() + ") </td>");
  189. sb.AppendLine("<td>" + GetStatic.ShowDecimal_Account(drAmt.ToString()) + "</td>");
  190. sb.AppendLine("<td></td>");
  191. sb.AppendLine("</tr>");
  192. sb.AppendLine("<tr>");
  193. sb.AppendLine("<td></td>");
  194. sb.AppendLine("<td></td>");
  195. sb.AppendLine("<td></td>");
  196. sb.AppendLine("<td></td>");
  197. sb.AppendLine("<td></td>");
  198. sb.AppendLine("<td></td>");
  199. sb.AppendLine("<td></td>");
  200. sb.AppendLine("<td>Total CR:(" + crCount.ToString() + ") </td>");
  201. sb.AppendLine("<td>" + GetStatic.ShowDecimal_Account(crAmt.ToString()) + "</td>");
  202. sb.AppendLine("<td></td>");
  203. sb.AppendLine("</tr>");
  204. sb.AppendLine("<tr>");
  205. sb.AppendLine("<td></td>");
  206. sb.AppendLine("<td></td>");
  207. sb.AppendLine("<td></td>");
  208. sb.AppendLine("<td></td>");
  209. sb.AppendLine("<td></td>");
  210. sb.AppendLine("<td></td>");
  211. sb.AppendLine("<td></td>");
  212. sb.AppendLine("<td>Closing Balance: (" + (BAlance > 0 ? "CR" : "DR") + ") </td>");
  213. sb.AppendLine("<td>" + GetStatic.ShowDecimal_Account((BAlance > 0 ? BAlance * -1 : BAlance).ToString()) + "</td>");
  214. sb.AppendLine("<td></td>");
  215. sb.AppendLine("</tr>");
  216. sb.AppendLine("</table>");
  217. DataTable tbl = GetStatic.ConvertHTMLTableToDataSet(sb.ToString());
  218. GetStatic.DataTable2ExcelDownload(ref tbl, "AccountStatement");
  219. }
  220. else
  221. {
  222. sb.AppendLine("</table>");
  223. }
  224. totalDr.Text = GetStatic.ShowDecimal_Account(drAmt.ToString());
  225. totalCr.Text = GetStatic.ShowDecimal_Account(crAmt.ToString());
  226. drCount1.Text = drCount.ToString();
  227. crCount1.Text = crCount.ToString();
  228. tableBody.InnerHtml = sb.ToString();
  229. openingBalance.Text = GetStatic.ShowDecimal_Account(OpenBalnce.ToString());
  230. drOrCr.Text = (BAlance > 0 ? "CR" : "DR");
  231. if (curr == null || curr.ToLower() == "jpy")
  232. {
  233. closingBalanceAmt.Text = GetStatic.ShowDecimal_Account((BAlance > 0 ? BAlance * -1 : BAlance).ToString());
  234. }
  235. else
  236. {
  237. closingBalanceAmt.Text = GetStatic.ShowDecimal_Account((fcyOpening > 0 ? fcyOpening * -1 : fcyOpening).ToString());
  238. }
  239. }
  240. private void GenerateDateWiseStmt(DataTable dt)
  241. {
  242. var sb = new StringBuilder("");
  243. sb.AppendLine(" <div class=\"table-responsive\"><table class=\"table table-striped table-bordered\" width=\"100%\" cellspacing=\"0\" class=\"TBLReport\">");
  244. sb.AppendLine("<tr>");
  245. sb.AppendLine("<th nowrap='nowrap'>SN</th>");
  246. sb.AppendLine("<th nowrap='nowrap'>Tran Date</th>");
  247. sb.AppendLine("<th nowrap='nowrap'>Particulars</th>");
  248. sb.AppendLine("<th nowrap='nowrap'>FCY</th>");
  249. sb.AppendLine("<th nowrap='nowrap'>FCY Amount</th>");
  250. sb.AppendLine("<th nowrap='nowrap'>FCY Closing</th>");
  251. sb.AppendLine("<th nowrap='nowrap'>JPY Amount</th>");
  252. sb.AppendLine("<th nowrap='nowrap'>JPY Closing</th>");
  253. sb.AppendLine("</tr>");
  254. double BAlance = 0, OpenBalnce = 0, fcyOpening = 0;
  255. int sn = 1;
  256. foreach (DataRow item in dt.Rows)
  257. {
  258. if (item["tran_particular"].ToString() == "Balance Brought Forward")
  259. {
  260. sn = 0;
  261. OpenBalnce = GetStatic.ParseDouble(item["tran_amt"].ToString());
  262. fcyOpening = GetStatic.ParseDouble(item["usd_amt"].ToString());
  263. BAlance = OpenBalnce;
  264. }
  265. else
  266. {
  267. BAlance += GetStatic.ParseDouble(item["tran_amt"].ToString());
  268. fcyOpening += GetStatic.ParseDouble(item["usd_amt"].ToString());
  269. }
  270. sb.AppendLine("<tr>");
  271. string drLink = "<a href='StatementDetails.aspx?acNum=" + item["acc_num"].ToString();
  272. drLink += "&startDate=" + item["tran_date"].ToString() + "&endDate=" + item["tran_date"].ToString() + "' title='Transaction info' >";
  273. drLink += GetStatic.ShowDecimal_Account(item["tran_amt"].ToString()) + "</a>";
  274. sb.AppendLine("<td >" + (sn > 0 ? sn.ToString() : "") + " </td>");
  275. sb.AppendLine("<td nowrap align='center' >" + (item["tran_date"].ToString() == "1900.01.01" ? "&nbsp;" : item["tran_date"]) + " </td>");
  276. sb.AppendLine("<td >" + item["tran_particular"] + " </td>");
  277. //if (!string.IsNullOrWhiteSpace(ddlCurrency.Text))
  278. //{
  279. sb.AppendLine("<td >" + item["fcy_Curr"].ToString() + " </td>");
  280. sb.AppendLine("<td >" + GetStatic.ShowDecimal_Account(item["usd_amt"].ToString()) + " </td>");
  281. sb.AppendLine("<td >" + GetStatic.ShowDecimal_Account(fcyOpening.ToString()) + " </td>");
  282. //}
  283. sb.AppendLine("<td >" + (item["tran_particular"].ToString() == "Balance Brought Forward" ? GetStatic.ShowDecimal_Account(item["tran_amt"].ToString()) : drLink) + " </td>");
  284. sb.AppendLine("<td >" + GetStatic.ShowDecimal_Account(BAlance.ToString()) + " </td>");
  285. sb.AppendLine("</tr>");
  286. sn++;
  287. }
  288. sb.AppendLine("</table></div>");
  289. tableBody.InnerHtml = sb.ToString();
  290. openingBalance.Text = GetStatic.ShowDecimal_Account(OpenBalnce.ToString());
  291. closingBalanceAmt.Text = GetStatic.ShowDecimal_Account((BAlance > 0 ? BAlance * -1 : BAlance).ToString());
  292. }
  293. protected void goBtn_Click(object sender, EventArgs e)
  294. {
  295. GenerateReport();
  296. }
  297. protected void buttonPdf_Click(object sender, EventArgs e)
  298. {
  299. GetStatic.GetPDF(HttpUtility.UrlDecode(hidden.Value));
  300. }
  301. }
  302. }