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.

244 lines
15 KiB

  1. using Swift.DAL.AccountReport;
  2. using Swift.web.Library;
  3. using System;
  4. using System.Data;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Web;
  8. namespace Swift.web.AccountReport.PLAccount
  9. {
  10. public partial class PLAccount : System.Web.UI.Page
  11. {
  12. private readonly SwiftLibrary _s1 = new SwiftLibrary();
  13. private readonly AccountStatementDAO st = new AccountStatementDAO();
  14. private string Date = "";
  15. private string Date2 = "";
  16. protected void Page_Load(object sender, EventArgs e)
  17. {
  18. _s1.CheckSession();
  19. letterHead.Text = GetStatic.getCompanyHead();
  20. Date = FromDate();
  21. fromDate.Text = Date;
  22. Date2 = ToDate();
  23. toDate.Text = Date2;
  24. GenerateReport();
  25. }
  26. protected string ToDate()
  27. {
  28. return GetStatic.ReadQueryString("toDate", "");
  29. }
  30. protected string FromDate()
  31. {
  32. return GetStatic.ReadQueryString("fromDate", "");
  33. }
  34. private void GenerateReport()
  35. {
  36. double SalesRevenueMonthTotal = 0, SalesRevenueYearTotal = 0;
  37. double DirectCostMonthTotal = 0, DirectCostYearTotal = 0;
  38. double OtherExpMonthTotal = 0, OtherExpYearTotal = 0;
  39. double NonOpIncMonthTotal = 0, NonOpIncExpYearTotal = 0;
  40. double CorporateTaxesMonthTotal = 0, CorporateTaxesExpYearTotal = 0;
  41. var dt = st.GetPLReport(fromDate.Text, toDate.Text);
  42. var SalesRevenue = dt.Select("p_id = '48'");
  43. var DirectCost = dt.Select("p_id = '60'");
  44. var OtherExp = dt.Select("p_id = '44'");
  45. var NonOpInc = dt.Select("p_id = '45'");
  46. var NonOpExp = dt.Select("p_id = '46'");
  47. var CorporateTaxes = dt.Select("p_id = '47'");
  48. var sb = new StringBuilder("");
  49. //<div class=\"row\"><div class=\"form-control col-md-12 col-md-offset-0\">
  50. sb.AppendLine("<div class=\"table-responsive\" ><table width='100%' class='table table-striped table-bordered' > ");
  51. sb.AppendLine("<tr>");
  52. sb.AppendLine("<th rowspan='2' nowrap='nowrap' width='5%' style=\"text-align: center\"> Particulars </th>");
  53. sb.AppendLine("<th nowrap='nowrap' colspan='2' width='3%' style=\"text-align: center\"> For the period </th>");
  54. sb.AppendLine("<th nowrap='nowrap' colspan='2' width='3%' style=\"text-align: center\"> Year to Date </th>");
  55. sb.AppendLine("</tr>");
  56. sb.AppendLine("<tr>");
  57. sb.AppendLine("<th nowrap='nowrap'>Amount </th>");
  58. sb.AppendLine("<th nowrap='nowrap'>Amount </th>");
  59. sb.AppendLine("<th nowrap='nowrap'>Amount </th>");
  60. sb.AppendLine("<th nowrap='nowrap'>Amount </th>");
  61. sb.AppendLine("</tr>");
  62. sb.AppendLine("<tr>");
  63. sb.AppendLine("<td ><strong>Sales Revenue</strong> </td>");
  64. sb.AppendLine("<td ><strong></strong> </td>");
  65. sb.AppendLine("<td align='right'><strong>" + GetStatic.GetNegativeFigureOnBrac(SalesRevenue.AsEnumerable().Sum(x => x.Field<decimal>("THISMONTH")).ToString()) + "</strong> </td>");
  66. sb.AppendLine("<td ><strong></strong> </td>");
  67. sb.AppendLine("<td align='right'><strong>" + GetStatic.GetNegativeFigureOnBrac(SalesRevenue.AsEnumerable().Sum(x => x.Field<decimal>("YEARTODATE")).ToString()) + "</strong> </td>");
  68. sb.AppendLine("</tr>");
  69. GenerateRows(ref sb, SalesRevenue, out SalesRevenueMonthTotal, out SalesRevenueYearTotal);
  70. sb.AppendLine("<tr>");
  71. sb.AppendLine("<td ><strong>Direct Cost</strong> </td>");
  72. sb.AppendLine("<td ><strong></strong> </td>");
  73. sb.AppendLine("<td align='right'><strong>" + GetStatic.GetNegativeFigureOnBrac(DirectCost.AsEnumerable().Sum(x => x.Field<decimal>("THISMONTH")).ToString()) + "</strong> </td>");
  74. sb.AppendLine("<td ><strong></strong> </td>");
  75. sb.AppendLine("<td align='right'><strong>" + GetStatic.GetNegativeFigureOnBrac(DirectCost.AsEnumerable().Sum(x => x.Field<decimal>("YEARTODATE")).ToString()) + "</strong> </td>");
  76. sb.AppendLine("</tr>");
  77. GenerateRows(ref sb, DirectCost, out DirectCostMonthTotal, out DirectCostYearTotal);
  78. sb.AppendLine("<tr>");
  79. sb.AppendLine("<td ><strong> Gross Profit </strong></td>");
  80. sb.AppendLine("<td ><strong></strong> </td>");
  81. sb.AppendLine("<td align='right'><strong>" + GetStatic.GetNegativeFigureOnBrac((SalesRevenueMonthTotal + DirectCostMonthTotal).ToString()) + "</strong></td>");
  82. sb.AppendLine("<td ><strong></strong> </td>");
  83. sb.AppendLine("<td align='right'><strong>" + GetStatic.GetNegativeFigureOnBrac((SalesRevenueYearTotal + DirectCostYearTotal).ToString()) + "</strong></td>");
  84. sb.AppendLine("</tr>");
  85. sb.AppendLine("<tr>");
  86. sb.AppendLine("<td ><strong>Other Operating Expenses (SG&A)</strong> </td>");
  87. sb.AppendLine("<td ><strong></strong> </td>");
  88. sb.AppendLine("<td align='right'><strong>" + GetStatic.GetNegativeFigureOnBrac(OtherExp.AsEnumerable().Sum(x => x.Field<decimal>("THISMONTH")).ToString()) + "</strong> </td>");
  89. sb.AppendLine("<td ><strong></strong> </td>");
  90. sb.AppendLine("<td align='right'><strong>" + GetStatic.GetNegativeFigureOnBrac(OtherExp.AsEnumerable().Sum(x => x.Field<decimal>("YEARTODATE")).ToString()) + "</strong> </td>");
  91. sb.AppendLine("</tr>");
  92. GenerateRows(ref sb, OtherExp, out OtherExpMonthTotal, out OtherExpYearTotal);
  93. double OperatingPLMonthTotal = 0, OperatingPLYearTotal = 0;
  94. OperatingPLMonthTotal = SalesRevenueMonthTotal + DirectCostMonthTotal + OtherExpMonthTotal;
  95. OperatingPLYearTotal = SalesRevenueYearTotal + DirectCostYearTotal + OtherExpYearTotal;
  96. sb.AppendLine("<tr>");
  97. sb.AppendLine("<td ><strong>Operating Profit/Loss</strong></td>");
  98. sb.AppendLine("<td ><strong></strong> </td>");
  99. sb.AppendLine("<td align='right'><strong>" + GetStatic.GetNegativeFigureOnBrac((OperatingPLMonthTotal).ToString()) + "</strong></td>");
  100. sb.AppendLine("<td ><strong></strong> </td>");
  101. sb.AppendLine("<td align='right'><strong>" + GetStatic.GetNegativeFigureOnBrac((OperatingPLYearTotal).ToString()) + "</strong></td>");
  102. sb.AppendLine("</tr>");
  103. sb.AppendLine("<tr>");
  104. sb.AppendLine("<td ><strong>Non Operating Income</strong> </td>");
  105. sb.AppendLine("<td ><strong></strong> </td>");
  106. sb.AppendLine("<td align='right'><strong>" + GetStatic.GetNegativeFigureOnBrac(NonOpInc.AsEnumerable().Sum(x => x.Field<decimal>("THISMONTH")).ToString()) + "</strong> </td>");
  107. sb.AppendLine("<td ><strong></strong> </td>");
  108. sb.AppendLine("<td align='right'><strong>" + GetStatic.GetNegativeFigureOnBrac(OtherExp.AsEnumerable().Sum(x => x.Field<decimal>("YEARTODATE")).ToString()) + "</strong> </td>");
  109. sb.AppendLine("</tr>");
  110. GenerateRows(ref sb, NonOpInc, out NonOpIncMonthTotal, out NonOpIncExpYearTotal);
  111. sb.AppendLine("<tr>");
  112. sb.AppendLine("<td ><strong>Non Operating Expenses </strong> </td>");
  113. sb.AppendLine("<td ><strong></strong> </td>");
  114. sb.AppendLine("<td align='right'><strong>" + GetStatic.GetNegativeFigureOnBrac(NonOpExp.AsEnumerable().Sum(x => x.Field<decimal>("THISMONTH")).ToString()) + "</strong> </td>");
  115. sb.AppendLine("<td ><strong></strong> </td>");
  116. sb.AppendLine("<td align='right'><strong>" + GetStatic.GetNegativeFigureOnBrac(NonOpExp.AsEnumerable().Sum(x => x.Field<decimal>("YEARTODATE")).ToString()) + "</strong> </td>");
  117. sb.AppendLine("</tr>");
  118. GenerateRows(ref sb, NonOpExp, out OtherExpMonthTotal, out OtherExpYearTotal);
  119. double BeforePLMonthTotal = 0, BeforePLYearTotal = 0;
  120. BeforePLMonthTotal = OperatingPLMonthTotal + NonOpIncMonthTotal + OtherExpMonthTotal;
  121. BeforePLYearTotal = OperatingPLYearTotal + NonOpIncExpYearTotal + OtherExpYearTotal;
  122. sb.AppendLine("<tr>");
  123. sb.AppendLine("<td ><strong>Net Profit/Loss Before Corporate Tax</strong></td>");
  124. sb.AppendLine("<td ><strong></strong> </td>");
  125. sb.AppendLine("<td align='right'><strong>" + GetStatic.GetNegativeFigureOnBrac((BeforePLMonthTotal).ToString()) + "</strong></td>");
  126. sb.AppendLine("<td ><strong></strong> </td>");
  127. sb.AppendLine("<td align='right'><strong>" + GetStatic.GetNegativeFigureOnBrac((BeforePLYearTotal).ToString()) + "</strong></td>");
  128. sb.AppendLine("</tr>");
  129. var DepAndAmort = dt.Select("gl_code = '132'");
  130. double DepAndAmortTotal = GetStatic.ParseDouble(DepAndAmort.AsEnumerable().Sum(x => x.Field<decimal>("THISMONTH")).ToString());
  131. double DepAndAmortYear = GetStatic.ParseDouble(DepAndAmort.AsEnumerable().Sum(x => x.Field<decimal>("YEARTODATE")).ToString());
  132. sb.AppendLine("<tr>");
  133. sb.AppendLine("<td ><strong>Depreciation & Amortization</strong></td>");
  134. sb.AppendLine("<td ><strong></strong> </td>");
  135. sb.AppendLine("<td align='right'><strong>" + GetStatic.GetNegativeFigureOnBrac(DepAndAmortTotal.ToString()) + "</strong></td>");
  136. sb.AppendLine("<td ><strong></strong> </td>");
  137. sb.AppendLine("<td align='right'><strong>" + GetStatic.GetNegativeFigureOnBrac(DepAndAmortYear.ToString()) + "</strong></td>");
  138. sb.AppendLine("</tr>");
  139. double totalThisYearNetProfit = BeforePLMonthTotal + DepAndAmortTotal;
  140. double thisYearThisYearNetProfit = BeforePLYearTotal + DepAndAmortYear;
  141. sb.AppendLine("<tr>");
  142. sb.AppendLine("<td ><strong>Net Profit/Loss Before Corporate Tax</strong></td>");
  143. sb.AppendLine("<td ><strong></strong> </td>");
  144. sb.AppendLine("<td align='right'><strong>" + GetStatic.GetNegativeFigureOnBrac((BeforePLMonthTotal + DepAndAmortTotal).ToString()) + "</strong></td>");
  145. sb.AppendLine("<td ><strong></strong> </td>");
  146. sb.AppendLine("<td align='right'><strong>" + GetStatic.GetNegativeFigureOnBrac((BeforePLYearTotal + DepAndAmortYear).ToString()) + "</strong></td>");
  147. sb.AppendLine("</tr>");
  148. sb.AppendLine("<tr>");
  149. sb.AppendLine("<td ><strong>Corporate Taxes </strong> </td>");
  150. sb.AppendLine("<td ><strong></strong> </td>");
  151. sb.AppendLine("<td align='right'><strong>" + GetStatic.GetNegativeFigureOnBrac(CorporateTaxes.AsEnumerable().Sum(x => x.Field<decimal>("THISMONTH")).ToString()) + "</strong> </td>");
  152. sb.AppendLine("<td ><strong></strong> </td>");
  153. sb.AppendLine("<td align='right'><strong>" + GetStatic.GetNegativeFigureOnBrac(CorporateTaxes.AsEnumerable().Sum(x => x.Field<decimal>("YEARTODATE")).ToString()) + "</strong> </td>");
  154. sb.AppendLine("</tr>");
  155. GenerateRows(ref sb, CorporateTaxes, out CorporateTaxesMonthTotal, out CorporateTaxesExpYearTotal);
  156. sb.AppendLine("<tr>");
  157. sb.AppendLine("<td ><strong> Net Profit/Loss </strong></td>");
  158. sb.AppendLine("<td ><strong></strong> </td>");
  159. sb.AppendLine("<td align='right'><strong>" + GetStatic.GetNegativeFigureOnBrac((totalThisYearNetProfit + CorporateTaxesMonthTotal).ToString()) + "</strong></td>");
  160. sb.AppendLine("<td ><strong></strong> </td>");
  161. sb.AppendLine("<td align='right'><strong>" + GetStatic.GetNegativeFigureOnBrac((thisYearThisYearNetProfit + CorporateTaxesExpYearTotal).ToString()) + "</strong></td>");
  162. sb.AppendLine("</tr>");
  163. sb.AppendLine("</table></div>");
  164. plReport.InnerHtml = sb.ToString();
  165. }
  166. private void GenerateRows(ref StringBuilder sb, DataRow[] rowsArray, out double monthTotal, out double yearTotal)
  167. {
  168. monthTotal = yearTotal = 0;
  169. foreach (DataRow item in rowsArray)
  170. {
  171. if (rowsArray == null || rowsArray.Length == 0)
  172. {
  173. break;
  174. }
  175. monthTotal = monthTotal + Convert.ToDouble(item["THISMONTH"].ToString());
  176. yearTotal = yearTotal + Convert.ToDouble(item["YEARTODATE"].ToString());
  177. sb.AppendLine("<tr>");
  178. sb.AppendLine("<td> &nbsp;&nbsp;&nbsp;&nbsp;");
  179. sb.AppendLine(item["gl_Name"].ToString());
  180. sb.AppendLine("</td>");
  181. var THISMONTH = Convert.ToDouble(item["THISMONTH"].ToString());
  182. var YEARTODATE = Convert.ToDouble(item["YEARTODATE"].ToString());
  183. sb.AppendLine("<td align='right'> <a href='../BalanceSheet/SubLedger.aspx?company_id=&dt=" + Date2.ToString() + "&dt1=" + Date.ToString() + "&sentfrom=pl_account_dt&mapcode=" + item["gl_code"].ToString() + "&treeSape=" + item["tree_sape"].ToString() + "&head=" + item["gl_Name"].ToString() + "' title='Account Statement'>");
  184. sb.AppendLine(GetStatic.GetNegativeFigureOnBrac((THISMONTH).ToString()));
  185. sb.AppendLine("</a></td>");
  186. sb.AppendLine("<td ><strong></strong> </td>");
  187. //<a href="bl2_sub.asp?company_id=1&dt=<%=request("pl_date2")%>
  188. //&mapcode=<%=RST("gl_code")%>&head=<%=RST("GL_DESC")%>&tree_sape=<%=RST("tree_sape")%>" title="Account Statement" >
  189. sb.AppendLine("<td align='right'><a href='../BalanceSheet/SubLedger.aspx?company_id=&dt=" + Date2.ToString() + "&dt1=" + Date.ToString() + "&sentfrom=pl_account&mapcode=" + item["gl_code"].ToString() + "&head=" + item["gl_Name"].ToString() + "&treeSape=" + item["tree_sape"] + "' title='Account Statement'>");
  190. sb.AppendLine(GetStatic.GetNegativeFigureOnBrac((YEARTODATE).ToString()));
  191. sb.AppendLine("</a></td>");
  192. sb.AppendLine("<td ><strong></strong> </td>");
  193. sb.AppendLine("</tr>");
  194. }
  195. //sb.AppendLine("<tr>");
  196. //sb.AppendLine("<td align='right'><strong> Total </strong></td>");
  197. //sb.AppendLine("<td align='right'><strong>" + GetStatic.GetNegativeFigureOnBrac((monthTotal < 0 ? monthTotal * -1 : monthTotal).ToString()) + "</strong></td>");
  198. //sb.AppendLine("<td align='right'><strong>" + GetStatic.GetNegativeFigureOnBrac((yearTotal < 0 ? yearTotal * -1 : yearTotal).ToString()) + "</strong></td>");
  199. //sb.AppendLine("</tr>");
  200. }
  201. protected void pdf_Click(object sender, EventArgs e)
  202. {
  203. GetStatic.GetPDF(HttpUtility.UrlDecode(hidden.Value));
  204. }
  205. }
  206. }