<%@ Page Title="Collection Tally Report" Language="C#" MasterPageFile="~/Panel.Master" AutoEventWireup="true" CodeBehind="TodaysCollectionReport.aspx.cs" Inherits="Portal.GSTReports.TodaysCollectionReport" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
<title>Collection Tally Report</title>
<style type="text/css">
.modal-header-primary {
color: #fff;
padding: 9px 15px;
border-bottom: 1px solid #eee;
background-color: #428bca;
-webkit-border-top-left-radius: 5px;
-webkit-border-top-right-radius: 5px;
-moz-border-radius-topleft: 5px;
-moz-border-radius-topright: 5px;
border-top-left-radius: 5px;
border-top-right-radius: 5px;
}
.modal-body {
max-height: calc(100vh - 200px);
overflow-y: auto;
}
</style>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.js">
</script>
<script type="text/javascript">
function ShowPreview(input) {
if (input.files && input.files[0]) {
var ImageDir = new FileReader();
ImageDir.onload = function (e) {
$('#CImagePrev').attr('src', e.target.result);
}
ImageDir.readAsDataURL(input.files[0]);
}
}
jQuery.fn.scrollTo = function (elem) {
var b = $(elem);
this.scrollTop(b.position().top + b.height() - this.height());
};
$("#scrollbody").scrollTo('tr[data-uid="' + basketID + '"]');
</script>
</asp:Content>
<asp:Content runat="server" ID="BodyContent" ContentPlaceHolderID="MainContent">
<section class="content">
<div class="container-fluid">
<ol class="breadcrumb">
<li><a href="#"><i class="fa fa-dashboard"></i>Dash Board</a></li>
<li>Report Sections</li>
<li class="active"><b>Manage Todays Reports</b></li>
</ol>
</div>
</section>
<section class="content">
<div class="container-fluid" style="margin-top: -60px;">
<%-- <div class="row clearfix">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<div class="card">
<div class="header">
<h2>Search Sales Person
</h2>
</div>
<div class="body" style="overflow-y: auto;">
<table class="table table-bordered table-striped table-hover js-basic-example dataTable">
<tbody>
<tr>
<th>
<div class="col-sm-6">
<div class="form-group">
<label><b>Sales Person:</b></label>
<asp:Label runat="server" ID="lblvmcat" Text="*" ForeColor="red"></asp:Label>
<asp:DropDownList ID="ddlsp" Class="show-tick" runat="server" Font-Bold="True" ForeColor="Black" Style="cursor: pointer">
<asp:ListItem Selected="True">Nothing Selected</asp:ListItem>
</asp:DropDownList>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="ddlsp" InitialValue="Nothing Selected" ValidationGroup="viewproduct" ErrorMessage="Select Sales Person" ForeColor="Red" Font-Bold="false" />
</div>
</div>
<div class="col-sm-6">
<asp:LinkButton ID="lnkview" runat="server" class="btn btn-success btn-lg" ValidationGroup="viewproduct" OnClick="lnkview_Click">Search</asp:LinkButton>
</div>
</th>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>--%>
<div class="row clearfix">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<div class="card">
<div class="header">
<h2>Collection Tally Report
</h2>
<ul class="header-dropdown m-r--5">
<li class="dropdown">
<a href="javascript:void(0);" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
<i class="material-icons">more_vert</i>
</a>
<ul class="dropdown-menu pull-right">
<li><a>Export To</a></li>
<li>
<asp:LinkButton ID="lnkcsv" runat="server" OnClick="lnkcsv_Click" ValidationGroup="csv">CSV</asp:LinkButton></li>
<li>
<asp:LinkButton ID="lnkExcel" runat="server" OnClick="lnkExcel_Click" ValidationGroup="excel">Excel</asp:LinkButton></li>
<li>
<asp:LinkButton ID="lnkpdf" runat="server" OnClick="lnkpdf_Click" ValidationGroup="excel">Pdf</asp:LinkButton></li>
<%--<li><asp:LinkButton ID="lnkPrint" runat="server" OnClick="lnkPrint_Click" ValidationGroup="print">Print</asp:LinkButton></li>--%>
</ul>
</li>
</ul>
</div>
<div class="body" style="overflow-y: auto;">
<table class="table table-bordered table-striped table-hover js-basic-example dataTable">
<asp:Label ID="lblmsg" runat="server" Text="" ForeColor="Red"></asp:Label>
<asp:GridView ID="GrvReports" runat="server" ShowFooter="true" class="table table-bordered table-striped table-hover js-basic-example dataTable" AutoGenerateColumns="false" AllowPaging="true" PageSize="10" OnPageIndexChanging="GrvReports_PageIndexChanging" DataKeyNames="OId">
<Columns>
<%-- <asp:TemplateField HeaderText="Slno">
<ItemTemplate>
<%#Container.DataItemIndex + 1 %>
</ItemTemplate>
</asp:TemplateField>--%>
<asp:BoundField DataField="BillDate" HeaderText="Bill Date" />
<asp:BoundField DataField="PersonName" HeaderText="Sales Person" />
<asp:BoundField DataField="SoldQty" HeaderText="Qty" />
<asp:BoundField DataField="SalesAmount" HeaderText="Sales Value" />
<asp:BoundField DataField="Discount" HeaderText="Discount Amount" />
<asp:BoundField DataField="TotalAmount" HeaderText="Total Amount" />
<asp:BoundField DataField="CGST" HeaderText="CGST 14%" />
<asp:BoundField DataField="SGST" HeaderText="SGST 14%" />
<asp:BoundField DataField="CESS" HeaderText="CESS 5%" />
<asp:BoundField DataField="ExciseAmt" HeaderText="Addl CESS" />
<asp:BoundField DataField="TaxSum" HeaderText="Tax Sum" />
<asp:BoundField DataField="NetAmount" HeaderText="Net Amount" />
<asp:BoundField DataField="SalesAmount" HeaderText="" DataFormatString="{0:N2}" ControlStyle-Font-Bold="true" Visible="false" />
<asp:BoundField DataField="Discount" HeaderText="" DataFormatString="{0:N2}" FooterStyle-Font-Bold="true" Visible="false" />
<asp:BoundField DataField="TotalAmount" HeaderText="" DataFormatString="{0:N2}" ControlStyle-Font-Bold="true" Visible="false" />
<asp:BoundField DataField="CGST" HeaderText="" DataFormatString="{0:N2}" ControlStyle-Font-Bold="true" Visible="false" />
<asp:BoundField DataField="SGST" HeaderText="" DataFormatString="{0:N2}" FooterStyle-Font-Bold="true" Visible="false" />
<asp:BoundField DataField="CESS" HeaderText="" DataFormatString="{0:N2}" ControlStyle-Font-Bold="true" Visible="false" />
<asp:BoundField DataField="NetAmount" HeaderText="" DataFormatString="{0:N2}" ControlStyle-Font-Bold="true" Visible="false" />
<asp:BoundField DataField="SoldQty" HeaderText="" DataFormatString="{0:N2}" ControlStyle-Font-Bold="true" Visible="false" />
<asp:BoundField DataField="Taxsum" HeaderText="" DataFormatString="{0:N2}" ControlStyle-Font-Bold="true" Visible="false" />
</Columns>
</asp:GridView>
</table>
</div>
</div>
</div>
</div>
</div>
</section>
</asp:Content>
using BusinessLayer;
using BusinessObject;
using iTextSharp.text;
using iTextSharp.text.html.simpleparser;
using iTextSharp.text.pdf;
using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace Portal.GSTReports
{
public partial class TodaysCollectionReport : System.Web.UI.Page
{
string _CompId = string.Empty;
string _datetime = DateTime.Now.ToString("yyyy-MM-dd HH:mm ss", System.Globalization.CultureInfo.InvariantCulture);
string _uploaddate = DateTime.Now.ToString("yyyy-MM-dd");
string _currdate = DateTime.UtcNow.AddHours(5.5).ToString("yyyy-MM-dd").ToString();
string _key = string.Empty;
protected void Page_Load(object sender, EventArgs e)
{
_CompId = (string)(Session["compid"]);
if (!IsPostBack)
{
CheckSession();
}
}
public void CheckSession()
{
if (Session["compid"] == null)
Response.Redirect(@"~/AdminLogin.aspx");
else
{
DispReport();
}
}
public void DispReport()
{
ReportsObject objco = new ReportsObject();
objco.BranchCode = _CompId.ToString();
objco.CurrentDate = _currdate.ToString();
ReportsLayer objcl = new ReportsLayer();
DataTable dt = objcl.DispTodaysCollectionTallyReport(objco);
DataSet ds = new DataSet();
ds.Tables.Add(dt);
if (ds.Tables[0].Rows.Count > 0)
{
GrvReports.Visible = true;
GrvReports.DataSource = ds;
GrvReports.DataBind();
lblmsg.Visible = false;
GrvReports.FooterRow.Cells[0].Font.Bold = true;
GrvReports.FooterRow.Cells[0].Text = "Grand Total".ToString();
decimal qty = 0;
decimal totalqty = dt.AsEnumerable().Where(row => decimal.TryParse(row["SoldQty"].ToString(), out qty)).Sum(row => qty > 0 ? qty : 0);
GrvReports.FooterRow.Cells[2].Font.Bold = true;
GrvReports.FooterRow.Cells[2].Text = totalqty.ToString("N2");
decimal sm = 0;
decimal totalsm = dt.AsEnumerable().Where(row => decimal.TryParse(row["SalesAmount"].ToString(), out sm)).Sum(row => sm > 0 ? sm : 0);
GrvReports.FooterRow.Cells[3].Font.Bold = true;
GrvReports.FooterRow.Cells[3].Text = totalsm.ToString("N2");
decimal disc = 0;
decimal tdisc = dt.AsEnumerable().Where(row => decimal.TryParse(row["Discount"].ToString(), out disc)).Sum(row => disc > 0 ? disc : 0);
GrvReports.FooterRow.Cells[4].Font.Bold = true;
GrvReports.FooterRow.Cells[4].Text = tdisc.ToString("N2");
decimal to = 0;
decimal totalto = dt.AsEnumerable().Where(row => decimal.TryParse(row["TotalAmount"].ToString(), out to)).Sum(row => to > 0 ? to : 0);
GrvReports.FooterRow.Cells[5].Font.Bold = true;
GrvReports.FooterRow.Cells[5].Text = totalto.ToString("N2");
decimal cgst = 0;
decimal totalcgst = dt.AsEnumerable().Where(row => decimal.TryParse(row["CGST"].ToString(), out cgst)).Sum(row => cgst > 0 ? cgst : 0);
GrvReports.FooterRow.Cells[6].Font.Bold = true;
GrvReports.FooterRow.Cells[6].Text = totalcgst.ToString("N2");
decimal sgst = 0;
decimal totalsgst = dt.AsEnumerable().Where(row => decimal.TryParse(row["SGST"].ToString(), out sgst)).Sum(row => sgst > 0 ? sgst : 0);
GrvReports.FooterRow.Cells[7].Font.Bold = true;
GrvReports.FooterRow.Cells[7].Text = totalsgst.ToString("N2");
decimal css = 0;
decimal totalcss = dt.AsEnumerable().Where(row => decimal.TryParse(row["CESS"].ToString(), out css)).Sum(row => css > 0 ? css : 0);
GrvReports.FooterRow.Cells[8].Font.Bold = true;
GrvReports.FooterRow.Cells[8].Text = totalcss.ToString("N2");
decimal ext = 0;
decimal totalex = dt.AsEnumerable().Where(row => decimal.TryParse(row["ExciseAmt"].ToString(), out ext)).Sum(row => ext > 0 ? ext : 0);
GrvReports.FooterRow.Cells[9].Font.Bold = true;
GrvReports.FooterRow.Cells[9].Text = totalex.ToString("N2");
decimal txts = 0;
decimal totalsum = dt.AsEnumerable().Where(row => decimal.TryParse(row["TaxSum"].ToString(), out txts)).Sum(row => txts > 0 ? txts : 0);
GrvReports.FooterRow.Cells[10].Font.Bold = true;
GrvReports.FooterRow.Cells[10].Text = totalsum.ToString("N2");
decimal net = 0;
decimal totalnet = dt.AsEnumerable().Where(row => decimal.TryParse(row["NetAmount"].ToString(), out net)).Sum(row => net > 0 ? net : 0);
GrvReports.FooterRow.Cells[11].Font.Bold = true;
GrvReports.FooterRow.Cells[11].Text = totalnet.ToString("N2");
}
else
{
GrvReports.Visible = false;
lblmsg.Visible = true;
lblmsg.Text = "<b>No Records to Show<b>";
}
}
protected void lnkview_Click(object sender, EventArgs e)
{
ReportsObject objco = new ReportsObject();
objco.BranchCode = _CompId.ToString();
objco.CurrentDate = _currdate.ToString();
ReportsLayer objcl = new ReportsLayer();
DataTable dt = objcl.DispTodaysCollectionTallyReport(objco);
DataSet ds = new DataSet();
ds.Tables.Add(dt);
if (ds.Tables[0].Rows.Count > 0)
{
GrvReports.Visible = true;
GrvReports.DataSource = ds;
GrvReports.DataBind();
lblmsg.Visible = false;
GrvReports.FooterRow.Cells[0].Font.Bold = true;
GrvReports.FooterRow.Cells[0].Text = "Grand Total".ToString();
decimal qty = 0;
decimal totalqty = dt.AsEnumerable().Where(row => decimal.TryParse(row["SoldQty"].ToString(), out qty)).Sum(row => qty > 0 ? qty : 0);
GrvReports.FooterRow.Cells[2].Font.Bold = true;
GrvReports.FooterRow.Cells[2].Text = totalqty.ToString("N2");
decimal sm = 0;
decimal totalsm = dt.AsEnumerable().Where(row => decimal.TryParse(row["SalesAmount"].ToString(), out sm)).Sum(row => sm > 0 ? sm : 0);
GrvReports.FooterRow.Cells[3].Font.Bold = true;
GrvReports.FooterRow.Cells[3].Text = totalsm.ToString("N2");
decimal disc = 0;
decimal tdisc = dt.AsEnumerable().Where(row => decimal.TryParse(row["Discount"].ToString(), out disc)).Sum(row => disc > 0 ? disc : 0);
GrvReports.FooterRow.Cells[4].Font.Bold = true;
GrvReports.FooterRow.Cells[4].Text = tdisc.ToString("N2");
decimal to = 0;
decimal totalto = dt.AsEnumerable().Where(row => decimal.TryParse(row["TotalAmount"].ToString(), out to)).Sum(row => to > 0 ? to : 0);
GrvReports.FooterRow.Cells[5].Font.Bold = true;
GrvReports.FooterRow.Cells[5].Text = totalto.ToString("N2");
decimal cgst = 0;
decimal totalcgst = dt.AsEnumerable().Where(row => decimal.TryParse(row["CGST"].ToString(), out cgst)).Sum(row => cgst > 0 ? cgst : 0);
GrvReports.FooterRow.Cells[6].Font.Bold = true;
GrvReports.FooterRow.Cells[6].Text = totalcgst.ToString("N2");
decimal sgst = 0;
decimal totalsgst = dt.AsEnumerable().Where(row => decimal.TryParse(row["SGST"].ToString(), out sgst)).Sum(row => sgst > 0 ? sgst : 0);
GrvReports.FooterRow.Cells[7].Font.Bold = true;
GrvReports.FooterRow.Cells[7].Text = totalsgst.ToString("N2");
decimal css = 0;
decimal totalcss = dt.AsEnumerable().Where(row => decimal.TryParse(row["CESS"].ToString(), out css)).Sum(row => css > 0 ? css : 0);
GrvReports.FooterRow.Cells[8].Font.Bold = true;
GrvReports.FooterRow.Cells[8].Text = totalcss.ToString("N2");
decimal ext = 0;
decimal totalex = dt.AsEnumerable().Where(row => decimal.TryParse(row["ExciseAmt"].ToString(), out ext)).Sum(row => ext > 0 ? ext : 0);
GrvReports.FooterRow.Cells[9].Font.Bold = true;
GrvReports.FooterRow.Cells[9].Text = totalex.ToString("N2");
decimal txts = 0;
decimal totalsum = dt.AsEnumerable().Where(row => decimal.TryParse(row["TaxSum"].ToString(), out txts)).Sum(row => txts > 0 ? txts : 0);
GrvReports.FooterRow.Cells[10].Font.Bold = true;
GrvReports.FooterRow.Cells[10].Text = totalsum.ToString("N2");
decimal net = 0;
decimal totalnet = dt.AsEnumerable().Where(row => decimal.TryParse(row["NetAmount"].ToString(), out net)).Sum(row => net > 0 ? net : 0);
GrvReports.FooterRow.Cells[11].Font.Bold = true;
GrvReports.FooterRow.Cells[11].Text = totalnet.ToString("N2");
}
else
{
GrvReports.Visible = false;
lblmsg.Visible = true;
lblmsg.Text = "<b>No Records to Show<b>";
}
}
protected void GrvReports_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GrvReports.PageIndex = e.NewPageIndex;
GrvReports.DataBind();
DispReport();
}
protected void lnkcsv_Click(object sender, EventArgs e)
{
DispReport();
Response.Clear();
Response.Buffer = true;
Response.AddHeader("content-disposition", "attachment;filename=Collection_Tally_Report" + DateTime.Now + ".csv");
Response.Charset = "";
Response.ContentType = "application/text";
GrvReports.AllowPaging = false;
GrvReports.DataBind();
StringBuilder columnbind = new StringBuilder();
for (int k = 0; k < GrvReports.Columns.Count; k++)
{
columnbind.Append(GrvReports.Columns[k].HeaderText + ',');
}
columnbind.Append("\r\n");
for (int i = 0; i < GrvReports.Rows.Count; i++)
{
for (int k = 0; k < GrvReports.Columns.Count; k++)
{
columnbind.Append(GrvReports.Rows[i].Cells[k].Text + ',');
}
columnbind.Append("\r\n");
}
Response.Output.Write(columnbind.ToString());
Response.Flush();
Response.End();
}
protected void lnkpdf_Click(object sender, EventArgs e)
{
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment;filename=Collection_Tally_Report" + DateTime.Now + ".pdf");
Response.Cache.SetCacheability(HttpCacheability.NoCache);
StringWriter sw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(sw);
GrvReports.RenderControl(hw);
StringReader sr = new StringReader(sw.ToString());
Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 10f, 0f);
HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
pdfDoc.Open();
htmlparser.Parse(sr);
pdfDoc.Close();
Response.Write(pdfDoc);
Response.End();
GrvReports.AllowPaging = true;
GrvReports.DataBind();
}
protected void lnkExcel_Click(object sender, EventArgs e)
{
try
{
Response.Clear();
Response.Buffer = true;
Response.ClearContent();
Response.ClearHeaders();
Response.Charset = "";
string FileName = "Collection_Tally_Report" + DateTime.Now + ".xls";
StringWriter strwritter = new StringWriter();
HtmlTextWriter htmltextwrtter = new HtmlTextWriter(strwritter);
GrvReports.AllowPaging = false;
DispReport();
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.ContentType = "application/vnd.ms-excel";
Response.AddHeader("Content-Disposition", "attachment;filename=" + FileName);
GrvReports.GridLines = GridLines.Both;
GrvReports.HeaderStyle.Font.Bold = true;
GrvReports.RenderControl(htmltextwrtter);
Response.Write(strwritter.ToString());
Response.End();
}
catch
{
throw;
}
}
public override void VerifyRenderingInServerForm(Control control)
{
}
}
}
the output photo is
