using getepay_sdk;
using iTextSharp.text.html.simpleparser;
using iTextSharp.text.pdf;
using iTextSharp.text;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Net;
using System.Reflection.Emit;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Security.Cryptography;
namespace Newdelhibarassocia
{
public partial class registration : System.Web.UI.Page
{
Class1 obj = new Class1();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
}
}
private void CalculateMembershipDue()
{
// ✅ Membership Date from TextBox
DateTime membershipDate;
string[] formats = { "yyyy-MM-dd", "dd/MM/yyyy" };
if (!DateTime.TryParseExact(
TextBox27.Text.Trim(),
formats,
CultureInfo.InvariantCulture,
DateTimeStyles.None,
out membershipDate))
{
Label1.Text = "Invalid Date!";
return;
}
DateTime today = DateTime.Today;
DateTime dtt = new DateTime(2016, 1, 1);
DateTime discountStart = new DateTime(2020, 4, 1);
DateTime discountEnd = new DateTime(2021, 9, 30);
decimal totalAmount = 0;
// ✅ Create month-wise table
DataTable result = new DataTable();
result.Columns.Add("Month");
result.Columns.Add("Year");
result.Columns.Add("Amount");
// ✅ Loop month by month
DateTime loopDate = new DateTime(membershipDate.Year, membershipDate.Month, 1);
while (loopDate <= today)
{
decimal monthAmount = 0;
if (loopDate >= discountStart && loopDate <= discountEnd)
{
monthAmount = 100; // full discount
}
else if (loopDate >= dtt)
{
// 👉 You can change this logic if you have count
monthAmount = 100; // default
}
else
{
monthAmount = 50;
}
totalAmount += monthAmount;
result.Rows.Add(
loopDate.ToString("MMMM"),
loopDate.Year,
monthAmount
);
loopDate = loopDate.AddMonths(1);
}
// ✅ Final Discount (optional 10%)
// decimal discount = totalAmount * 0.10m;
decimal finalAmount = totalAmount;
// ✅ Add TOTAL row
DataRow totalRow = result.NewRow();
totalRow["Month"] = "TOTAL";
totalRow["Amount"] = totalAmount;
result.Rows.Add(totalRow);
// ✅ Add FINAL row
DataRow finalRow = result.NewRow();
finalRow["Month"] = "FINAL";
finalRow["Amount"] = finalAmount;
result.Rows.Add(finalRow);
// ✅ Bind Grid
GridView3.DataSource = result;
GridView3.DataBind();
// ✅ Labels
Label1.Text = finalAmount.ToString("0.00");
Label2.Text = membershipDate.ToString("yyyy-MM-dd");
Label3.Text = today.ToString("yyyy-MM-dd");
}
public void LoadData(string srno = "")
{
using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString))
{
string query = @"SELECT
Recp_no,
CONVERT(VARCHAR(10), Recp_dt, 103) AS Recp_dt,
Recp_md,
Dd_no,
Amount,
Dd_bnk
FROM Membersallrecpit
WHERE 1=1";
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
// 🔍 Filter Srno
if (!string.IsNullOrEmpty(srno))
{
query += " AND Bcdenroll = @Bcdenroll";
cmd.Parameters.AddWithValue("@Bcdenroll", srno);
}
cmd.CommandText = query;
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dtbl = new DataTable();
da.Fill(dtbl);
GridView1.DataSource = dtbl;
GridView1.DataBind();
}
}
private void GetTotals()
{
string connStr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
decimal totalMembers = 0;
decimal totalBills = 0;
using (SqlConnection con = new SqlConnection(connStr))
{
con.Open();
// ✅ 1. SUM from Membersallrecpit
SqlCommand cmd1 = new SqlCommand(
"SELECT ISNULL(SUM(Amount),0) FROM Membersallrecpit where Bcdenroll = '" + TextBox3.Text + "'", con);
object result1 = cmd1.ExecuteScalar();
totalMembers = Convert.ToDecimal(result1);
// ✅ 2. SUM from newdelhibar_bill
SqlCommand cmd2 = new SqlCommand(
"SELECT ISNULL(SUM(TRY_CAST(totalamount AS DECIMAL(18,2))),0) FROM newdelhibar_bill where btype!='NEW MEMBERSHIP' and BCDno = '" + TextBox3.Text + "'", con);
object result2 = cmd2.ExecuteScalar();
totalBills = Convert.ToDecimal(result2);
}
// ✅ Bind to Literals
Literal1.Text = totalMembers.ToString("0.00");
Literal2.Text = totalBills.ToString("0.00");
decimal dues = 0;
if (!string.IsNullOrWhiteSpace(Label1.Text) && decimal.TryParse(Label1.Text, out dues))
{
decimal due = totalBills + totalMembers;
decimal duetotal = dues - due;
Literal3.Text = duetotal.ToString("0.00");
}
else
{
Literal3.Text = "0.00"; // or handle error
}
}
public void newLoadData(string srno = "")
{
using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString))
{
string query = @"SELECT
Billno as Recp_no ,
CONVERT(VARCHAR(10), Daten, 103) AS Recp_dt,
Paymentmode as Recp_md,
Chequeno as Dd_no,
totalamount as Amount
FROM newdelhibar_bill
WHERE 1=1";
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
// 🔍 Filter Srno
if (!string.IsNullOrEmpty(srno))
{
query += " AND BCDno = @BCDno";
cmd.Parameters.AddWithValue("@BCDno", srno);
}
cmd.CommandText = query;
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dtbl = new DataTable();
da.Fill(dtbl);
GridView2.DataSource = dtbl;
GridView2.DataBind();
}
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
string connStr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
string signaturePath = "";
string photoPath = "";
// Save Signature file
if (fuSignature.HasFile)
{
string signatureFileName = "Signature_" + Guid.NewGuid() + System.IO.Path.GetExtension(fuSignature.FileName);
string signatureFullPath = Server.MapPath("~/Uploads/" + signatureFileName);
fuSignature.SaveAs(signatureFullPath);
signaturePath = "Uploads/" + signatureFileName;
}
// Save Photo file
if (fuPhoto.HasFile)
{
string photoFileName = "Photo_" + Guid.NewGuid() + System.IO.Path.GetExtension(fuPhoto.FileName);
string photoFullPath = Server.MapPath("~/Uploads/" + photoFileName);
fuPhoto.SaveAs(photoFullPath);
photoPath = "Uploads/" + photoFileName;
}
using (SqlConnection conn = new SqlConnection(connStr))
{
string query = @"INSERT INTO NDBAMembers (
Name, FatherHusbandName, DOB, BarEnrollment, OtherStateEnrollment, PlacePractice,
GraduationDetails, ChamberNo, ResAddress, Mobile, Email, Aadhar, VoterId,
BloodGroup, PendingCase, Retired, ApplicantName, Recommendations,
SignaturePath, PhotoPath,Paymentsatats,daten
) VALUES (
@Name, @FatherHusbandName, @DOB, @BarEnrollment, @OtherStateEnrollment, @PlacePractice,
@GraduationDetails, @ChamberNo, @ResAddress, @Mobile, @Email, @Aadhar, @VoterId,
@BloodGroup, @PendingCase, @Retired, @ApplicantName, @Recommendations,
@SignaturePath, @PhotoPath,@Paymentsatats,@daten
)";
SqlCommand cmd = new SqlCommand(query, conn);
cmd.Parameters.AddWithValue("@Name", txtName.Text);
cmd.Parameters.AddWithValue("@FatherHusbandName", txtFatherHusbandName.Text);
cmd.Parameters.AddWithValue("@DOB", txtDOB.Text);
cmd.Parameters.AddWithValue("@BarEnrollment", txtBarEnrollment.Text);
cmd.Parameters.AddWithValue("@OtherStateEnrollment", txtOtherStateEnrollment.Text);
cmd.Parameters.AddWithValue("@PlacePractice", txtPlacePractice.Text);
cmd.Parameters.AddWithValue("@GraduationDetails", txtGraduationDetails.Text);
cmd.Parameters.AddWithValue("@ChamberNo", txtChamberNo.Text);
cmd.Parameters.AddWithValue("@ResAddress", txtResAddress.Text);
cmd.Parameters.AddWithValue("@Mobile", txtMobile.Text);
cmd.Parameters.AddWithValue("@Email", txtEmail.Text);
cmd.Parameters.AddWithValue("@Aadhar", txtAadhar.Text);
cmd.Parameters.AddWithValue("@VoterId", txtVoterId.Text);
cmd.Parameters.AddWithValue("@BloodGroup", txtBloodGroup.Text);
cmd.Parameters.AddWithValue("@PendingCase", txtPendingCase.Text);
cmd.Parameters.AddWithValue("@Retired", txtRetired.Text);
cmd.Parameters.AddWithValue("@ApplicantName", txtApplicantName.Text);
cmd.Parameters.AddWithValue("@Recommendations", txtRecommendations.Text);
cmd.Parameters.AddWithValue("@SignaturePath", signaturePath);
cmd.Parameters.AddWithValue("@PhotoPath", photoPath);
cmd.Parameters.AddWithValue("@Paymentsatats", "Pending");
cmd.Parameters.AddWithValue("@daten", System.DateTime.Now);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
string bnd = "ND" + System.DateTime.Now.Ticks.ToString().Substring(12);
HttpCookie myCookie = new HttpCookie("Siteid");
myCookie.Value = bnd;
myCookie.Expires = DateTime.Now.AddDays(1);
Response.Cookies.Add(myCookie);
//Label bcno = (Label)e.Item.FindControl("lblContactName");
//TextBox pamount = (TextBox)e.Item.FindControl("Label5");
Session["billno"] = txtMobile.Text;
Session["bnreorll"] = bnd;
conn.Open();
cmd = new SqlCommand("insert into newdelhibar_bill (Billno,Name,Mobile,NDBAno,BCDno,Daten,Address,Headermessage,Paymentmode,Footermessage,totalamount,btype,Status) values (@Billno,@Name,@Mobile,@NDBAno,@BCDno,@Daten,@Address,@Headermessage,@Paymentmode,@Footermessage,@totalamount,@btype,@Status)", conn);
cmd.Parameters.Add("@Billno", System.Data.SqlDbType.VarChar);
cmd.Parameters["@Billno"].Value = bnd;
cmd.Parameters.Add("@Name", System.Data.SqlDbType.VarChar);
cmd.Parameters["@Name"].Value = txtName.Text;
cmd.Parameters.Add("@Mobile", System.Data.SqlDbType.VarChar);
cmd.Parameters["@Mobile"].Value = txtMobile.Text;
cmd.Parameters.Add("@NDBAno", System.Data.SqlDbType.VarChar);
cmd.Parameters["@NDBAno"].Value = "";
cmd.Parameters.Add("@BCDno", System.Data.SqlDbType.VarChar);
cmd.Parameters["@BCDno"].Value = txtBarEnrollment.Text;
cmd.Parameters.Add("@Daten", System.Data.SqlDbType.VarChar);
cmd.Parameters["@Daten"].Value = System.DateTime.Now;
cmd.Parameters.Add("@Address", System.Data.SqlDbType.VarChar);
cmd.Parameters["@Address"].Value = txtResAddress.Text;
cmd.Parameters.Add("@Headermessage", System.Data.SqlDbType.VarChar);
cmd.Parameters["@Headermessage"].Value = "New Member Fee";
cmd.Parameters.Add("@Paymentmode", System.Data.SqlDbType.VarChar);
cmd.Parameters["@Paymentmode"].Value = "Online";
cmd.Parameters.Add("@Footermessage", System.Data.SqlDbType.VarChar);
cmd.Parameters["@Footermessage"].Value = "Online Fee";
cmd.Parameters.Add("@totalamount", System.Data.SqlDbType.VarChar);
cmd.Parameters["@totalamount"].Value = "1700";
cmd.Parameters.Add("@btype", System.Data.SqlDbType.VarChar);
cmd.Parameters["@btype"].Value = "Member ship";
cmd.Parameters.Add("@Status", System.Data.SqlDbType.VarChar);
cmd.Parameters["@Status"].Value = "Pending";
cmd.ExecuteNonQuery();
conn.Close();
conn.Open();
cmd = new SqlCommand("insert into newdelhibar_rowbill (Billno,Particulars,Amount) values (@Billno,@Particulars,@Amount)", conn);
cmd.Parameters.Add("@Billno", System.Data.SqlDbType.VarChar);
cmd.Parameters["@Billno"].Value = bnd;
cmd.Parameters.Add("@Particulars", System.Data.SqlDbType.VarChar);
cmd.Parameters["@Particulars"].Value = "New Membership Fee";
cmd.Parameters.Add("@Amount", System.Data.SqlDbType.VarChar);
cmd.Parameters["@Amount"].Value = "1700";
cmd.ExecuteNonQuery();
conn.Close();
try
{
string mid = ConfigurationSettings.AppSettings["Mid"].ToString();
string terminal_Id = ConfigurationSettings.AppSettings["terminalId"].ToString();
string mkey = ConfigurationSettings.AppSettings["key"].ToString();
string miv = ConfigurationSettings.AppSettings["iv"].ToString();
string murl = ConfigurationSettings.AppSettings["url"].ToString();
GetepayConfig config = new GetepayConfig();
config.mid = mid;
config.terminalId = terminal_Id;
config.key = mkey;
config.iv = miv;
config.url = murl;
//added to solve ssl error for requery
System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12;
//GetepayRequeryResponse requeryResponse = Getepay.requeryRequest(config, getepayRequery);
// Console.WriteLine("11", requeryResponse.txnStatus);
// string rns=requeryResponse.txnStatus.ToString();
GetepayRequest request = new GetepayRequest();
request.mid = mid.ToString();
request.amount = "1700";
request.merchantTransactionId = bnd;
request.transactionDate = System.DateTime.Now.ToString("yyyy-mm-dd hh:mm:ss");//2024-02-16 04:31:23
request.terminalId = terminal_Id.ToString();
request.udf1 = txtMobile.Text;
request.udf2 = "ndba.patialahousecourt@gmail.com";
request.udf3 = txtName.Text;
request.udf4 = "";
request.udf5 = "";
request.udf6 = "";
request.udf7 = "";
request.udf8 = "";
request.udf9 = "";
request.udf10 = murl;
request.ru = "https://newdelhibarassociation.in/Paymentstatus.aspx";
// request.ru = "https://localhost:44346/Paymentstatus.aspx";
request.callbackUrl = "https://newdelhibarassociation.in/Paymentstatus.aspx";
request.callbackUrl = "";
request.currency = "INR";
request.paymentMode = "ALL";
request.bankId = "";
request.txnType = "";
request.productType = "";
request.txnNote = "";
request.vpa = "";
// GetepayRequest getreq= new GetepayRequest(config,request);
GetepayOrderResponse orderResponse = Getepay.generateRequest(config, request);
//Session["pid"] = orderResponse.paymentId;
HttpCookie nameCookie = new HttpCookie("Siteid");
nameCookie = Request.Cookies["Siteid"];
string valss = nameCookie.Value.Replace("Siteid=", "");
string up = "update newdelhibar_bill set payment_id='" + orderResponse.paymentId.ToString() + "' where Billno='" + bnd + "'";
obj.SaveRecord(up);
Response.Redirect(orderResponse.paymentUrl, true);
//string rrn=orderResponse.ToString();
}
catch (Exception ex)
{
RegisterStartupScript("12", "");
}
lblMessage.Text = "Form submitted successfully with uploads!";
}
}
protected void Button1_Click(object sender, EventArgs e)
{
if (HiddenField1.Value == TextBox17.Text)
{
if (DropDownList1.SelectedItem.Text == "Select Type")
{
RegisterStartupScript("12", "");
}
else
{
string empt = "";
if (DropDownList1.SelectedItem.Text == "NDBA.No.")
{
empt = " and Ndbano='" + TextBox1.Text + "'";
}
else if (DropDownList1.SelectedItem.Text == "Mobile No.")
{
empt = " and Mobile_1='" + TextBox1.Text + "'";
}
else if (DropDownList1.SelectedItem.Text == "BCD Enrollment No.")
{
empt = " and Bcdenroll='" + TextBox1.Text + "'";
}
string qrajneeti = "select * from Memberslist where id!='' " + empt + " order by id desc";
DataSet dsrajneeti = obj.ReturnDataSet(qrajneeti);
if (dsrajneeti != null && dsrajneeti.Tables[0].Rows.Count > 0)
{
//TextBox1.Text = dsrajneeti.Tables[0].Rows[0]["s_no"].ToString();
/* string []hj = dsrajneeti.Tables[0].Rows[0]["mdate"].ToString().Split('/');
string[] hj1 = dsrajneeti.Tables[0].Rows[0]["dob"].ToString().Split('/');
int jk = hj.Length;
int jk1 = hj1.Length;*/
TextBox26.Text = dsrajneeti.Tables[0].Rows[0]["Ndbano"].ToString();
TextBox3.Text = dsrajneeti.Tables[0].Rows[0]["Bcdenroll"].ToString();
/*if (jk>1)
{
string[] daten = hj[2].Split(' ');
TextBox2.Text = daten[0]+"-"+hj[0]+"-"+hj[1];
}*/
try
{
// DateTime dtd = Convert.ToDateTime(dsrajneeti.Tables[0].Rows[0]["Ndbadate"].ToString());
// DateTime dtd1 = Convert.ToDateTime(dsrajneeti.Tables[0].Rows[0]["dob"].ToString());
TextBox27.Text = dsrajneeti.Tables[0].Rows[0]["Ndbadate"].ToString();
TextBox7.Text = dsrajneeti.Tables[0].Rows[0]["dob"].ToString();
}
catch { }
TextBox13.Text = dsrajneeti.Tables[0].Rows[0]["Prefix"].ToString();
TextBox2.Text = dsrajneeti.Tables[0].Rows[0]["F_name"].ToString();
TextBox4.Text = dsrajneeti.Tables[0].Rows[0]["M_name"].ToString();
TextBox5.Text = dsrajneeti.Tables[0].Rows[0]["L_name"].ToString();
//TextBox19.Text = dsrajneeti.Tables[0].Rows[0]["shop_no"].ToString();
/*if (jk1 > 1)
{
string[] daten = hj1[2].Split(' ');
TextBox9.Text = daten[0] + "-" + hj1[0] + "-" + hj1[1];
}*/
TextBox6.Text = dsrajneeti.Tables[0].Rows[0]["Father_name"].ToString();
TextBox8.Text = dsrajneeti.Tables[0].Rows[0]["Resid_1"].ToString();
TextBox9.Text = dsrajneeti.Tables[0].Rows[0]["Resid_2"].ToString();
TextBox10.Text = dsrajneeti.Tables[0].Rows[0]["Resid_3"].ToString();
TextBox11.Text = dsrajneeti.Tables[0].Rows[0]["Mobile_1"].ToString();
TextBox12.Text = dsrajneeti.Tables[0].Rows[0]["Mobile_2"].ToString();
//TextBox28.Text= dsrajneeti.Tables[0].Rows[0]["Ceased"].ToString();
//TextBox29.Text = dsrajneeti.Tables[0].Rows[0]["CeasedDate"].ToString();
//TextBox30.Text = dsrajneeti.Tables[0].Rows[0]["Reasonceas"].ToString();
Image1.ImageUrl = dsrajneeti.Tables[0].Rows[0]["Photo"].ToString();
Image2.ImageUrl = dsrajneeti.Tables[0].Rows[0]["M_Sign"].ToString();
TextBox14.Text = dsrajneeti.Tables[0].Rows[0]["Email_id"].ToString();
TextBox21.Text = dsrajneeti.Tables[0].Rows[0]["Aadhar_id"].ToString();
//TextBox22.Text = dsrajneeti.Tables[0].Rows[0]["Voter_id"].ToString();
//TextBox23.Text = dsrajneeti.Tables[0].Rows[0]["Locker_no"].ToString();
//TextBox24.Text = dsrajneeti.Tables[0].Rows[0]["Lid_Card_No"].ToString();
//TextBox25.Text = dsrajneeti.Tables[0].Rows[0]["I_card_no"].ToString();
TextBox15.Text = dsrajneeti.Tables[0].Rows[0]["Chamber_Alloted"].ToString();
TextBox16.Text = dsrajneeti.Tables[0].Rows[0]["Chamber_no"].ToString();
// TextBox17.Text = dsrajneeti.Tables[0].Rows[0]["Member_Ship_of_other_Bars"].ToString();
TextBox18.Text = dsrajneeti.Tables[0].Rows[0]["Vehicle_no"].ToString();
TextBox20.Text = dsrajneeti.Tables[0].Rows[0]["Sticker_no"].ToString();
lbstatus.Text = dsrajneeti.Tables[0].Rows[0]["sstatus"].ToString();
string qrdue = "select * from Membersduelist where Bcdenroll='" + dsrajneeti.Tables[0].Rows[0]["Bcdenroll"].ToString() + "' order by id desc";
DataSet dsdue = obj.ReturnDataSet(qrdue);
string ddue = "0";
if (dsdue != null && dsdue.Tables[0].Rows.Count > 0)
{
ddue = dsdue.Tables[0].Rows[0]["dues"].ToString();
lbamount.Text = ddue;
DateTime dt = Convert.ToDateTime(dsdue.Tables[0].Rows[0]["Ndbadate"]);
lbduedate.Text = dt.ToString("dd/MM/yyyy");
}
if (ddue == "0")
{
string qrdues = "select * from newdelhibar_bill where BCDno='" + dsrajneeti.Tables[0].Rows[0]["Bcdenroll"].ToString() + "' order by id desc";
DataSet dsdues = obj.ReturnDataSet(qrdues);
// int ddate = 0;
if (dsdues != null && dsdues.Tables[0].Rows.Count > 0)
{
if (dsdues.Tables[0].Rows[0]["btype"].ToString() == "NEW MEMBERSHIP")
{
DateTime dt = Convert.ToDateTime(TextBox27.Text);
int ddate = 12;
DateTime lastDay = dt.AddMonths(ddate + 1).AddDays(-1);
lbduedate.Text = lastDay.ToString("dd/MM/yyyy");
}
}
}
LoadData(dsrajneeti.Tables[0].Rows[0]["Bcdenroll"].ToString());
newLoadData(dsrajneeti.Tables[0].Rows[0]["Bcdenroll"].ToString());
DateTime dts = System.DateTime.Now;
string dateValue = dsrajneeti.Tables[0].Rows[0]["Ndbadate"].ToString();
DateTime minDate = new DateTime(2016, 1, 1);
// ✅ Membership Date from
if (Convert.ToDateTime(dateValue) <= minDate)
{
dateValue = minDate.ToString("yyyy-MM-dd");
}
string[] formats = { "dd/MM/yyyy", "yyyy-MM-dd", "MM/dd/yyyy" };
if (!string.IsNullOrWhiteSpace(dateValue) && dateValue != "0")
{
if (DateTime.TryParseExact(dateValue, formats,
CultureInfo.InvariantCulture,
DateTimeStyles.None, out dts))
{
// ✅ success
Literal4.Text = dateValue;
}
else
{
// ❌ invalid date
dts = DateTime.MinValue;
}
}
LoadLedger(TextBox3.Text, dts);
// DateTime dts = Convert.ToDateTime(dsrajneeti.Tables[0].Rows[0]["Ndbadate"].ToString());
// DateTime dtt = Convert.ToDateTime("01/01/2016"); // less than 50 per months and after 100 per months
//01-04-2020 to 30-09-2021 -all amount discount ..
CalculateMembershipDue();
GetTotals();
Panel3.Visible= false;
Panel4.Visible = false;
Panel2.Visible = true;
}
}
}
else
{
RegisterStartupScript("12", "");
}
}
public DataTable GetMembershipLedger(DateTime startDate)
{
DataTable dt = new DataTable();
dt.Columns.Add("Date", typeof(DateTime));
dt.Columns.Add("RefNo");
dt.Columns.Add("Type");
dt.Columns.Add("Credit", typeof(decimal));
dt.Columns.Add("Debit", typeof(decimal));
DateTime today = DateTime.Today;
DateTime dtt = new DateTime(2016, 1, 1);
DateTime discountStart = new DateTime(2020, 4, 1);
DateTime discountEnd = new DateTime(2021, 9, 30);
DateTime loopDate = new DateTime(startDate.Year, startDate.Month, 1);
while (loopDate <= today)
{
decimal amount = 0;
if (loopDate >= discountStart && loopDate <= discountEnd)
{
amount = 100; // discount period (as per your rule)
}
else if (loopDate >= dtt)
{
amount = 100;
}
else
{
amount = 100;
}
dt.Rows.Add(loopDate, "SUB", "SUBSCRIPTION", 0, amount);
loopDate = loopDate.AddMonths(1);
}
return dt;
}
// ✅ MAIN LEDGER FUNCTION
public void LoadLedger(string memberId, DateTime membershipDate)
{
string connStr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
using (SqlConnection con = new SqlConnection(connStr))
{
string query = @"
SELECT
Recp_dt AS Date,
Recp_no AS RefNo,
CASE
WHEN CAST(Recp_dt AS DATE) = '2021-09-30' THEN 'COVID WAVE OFF'
ELSE 'RECEIPT'
END AS Type,
Amount AS Credit,
0 AS Debit
FROM Membersallrecpit
WHERE Bcdenroll = @id
UNION ALL
SELECT
Daten AS Date,
Billno AS RefNo,
btype AS Type,
CASE
WHEN btype = 'SUBSCRIPTION FEE' THEN TRY_CAST(totalamount AS DECIMAL(18,2))
ELSE 0
END AS Credit,
CASE
WHEN btype <> 'SUBSCRIPTION FEE' THEN TRY_CAST(totalamount AS DECIMAL(18,2))
ELSE 0
END AS Debit
FROM newdelhibar_bill
WHERE BCDno = @id AND btype = @btype
ORDER BY Date";
SqlCommand cmd = new SqlCommand(query, con);
cmd.Parameters.AddWithValue("@id", memberId);
cmd.Parameters.AddWithValue("@btype", "SUBSCRIPTION FEE");
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
// ✅ ADD MEMBERSHIP MONTHLY DATA
DataTable membership = GetMembershipLedger(membershipDate);
dt.Merge(membership);
// ✅ SORT DATE WISE
DataView dv = dt.DefaultView;
dv.Sort = "Date ASC";
dt = dv.ToTable();
// ✅ RUNNING BALANCE
dt.Columns.Add("Balance", typeof(decimal));
decimal balance = 0;
foreach (DataRow row in dt.Rows)
{
decimal cr = Convert.ToDecimal(row["Credit"]);
decimal dr = Convert.ToDecimal(row["Debit"]);
balance += cr - dr;
row["Balance"] = balance;
}
GridViewLedger.DataSource = dt;
GridViewLedger.DataBind();
// ViewState["Ledger"] = dt;
}
}
protected void Button2_Click(object sender, EventArgs e)
{
try
{
string con = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
if (DropDownList1.SelectedItem.Text == "Select Type")
{
RegisterStartupScript("12", "");
}
else
{
if (DropDownList1.SelectedItem.Text == "NDBA.No.")
{
string sel = "select top 1 * from Memberslist where Ndbano='" + TextBox1.Text + "'";
SqlDataAdapter da = new SqlDataAdapter(sel, con);
DataTable dt = new DataTable();
da.Fill(dt);
if (dt.Rows.Count > 0)
{
Panel4.Visible = true;
Panel3.Visible= false;
Literal1.Text = dt.Rows[0]["Mobile_1"].ToString();
string[] saAllowedCharacters = { "1", "2", "3", "4", "5", "6", "7", "8", "9", "0" };
string sRandomOTP = GenerateRandomOTP(4, saAllowedCharacters);
HiddenField1.Value = sRandomOTP;
string messag = " NDBA User, Your OTP is " + sRandomOTP + ". Do Not share this with anyone. TEAM NDBA";
string SmsStatusMsg = string.Empty;
WebClient client = new WebClient();
string mm = dt.Rows[0]["Mobile_1"].ToString();
mm = "9871482014";
if (dt.Rows[0]["Mobile_1"].ToString() != "0")
{
string URL = "http://www.canlog.in/api/mt/SendSMS?user=NDBA1234&password=NDBA1234&senderid=NDBATM&channel=Trans&DCS=0&flashsms=0&number=" + mm + "&text=" + messag + "&route=2";
SmsStatusMsg = client.DownloadString(URL);
if (SmsStatusMsg.Contains("
"))
{
SmsStatusMsg = SmsStatusMsg.Replace("
", ", ");
}
}
else
{
RegisterStartupScript("12", "");
}
//Repeater1.DataSource = dt;
//Repeater1.DataBind();
//Repeater1.Visible = true;
}
else
{
// Repeater1.Visible = false;
}
}
else if (DropDownList1.SelectedItem.Text == "Mobile No.")
{
string sel = "select top 1 * from Memberslist where Mobile_1 like '%" + TextBox1.Text + "%'";
SqlDataAdapter da = new SqlDataAdapter(sel, con);
DataTable dt = new DataTable();
da.Fill(dt);
if (dt.Rows.Count > 0)
{
Panel4.Visible = true;
Panel3.Visible = false;
//Panel2.Visible = true;
Literal1.Text = dt.Rows[0]["Mobile_1"].ToString();
string[] saAllowedCharacters = { "1", "2", "3", "4", "5", "6", "7", "8", "9", "0" };
string sRandomOTP = GenerateRandomOTP(4, saAllowedCharacters);
HiddenField1.Value = sRandomOTP;
//NDBA User, Your OTP is 464654. Do Not share this with anyone. TEAM NDBA
// NDBA User, Your OTP is " + sRandomOTP + ". Do Not share this with anyone. TEAM NDBA
string messag = " NDBA User, Your OTP is " + sRandomOTP + ". Do Not share this with anyone. TEAM NDBA";
string SmsStatusMsg = string.Empty;
WebClient client = new WebClient();
// mm = "9871482014";
if (dt.Rows[0]["Mobile_1"].ToString() != "0")
{
string URL = "http://www.canlog.in/api/mt/SendSMS?user=NDBA1234&password=NDBA1234&senderid=NDBATM&channel=Trans&DCS=0&flashsms=0&number=" + dt.Rows[0]["Mobile_1"].ToString() + "&text=" + messag + "&route=2";
SmsStatusMsg = client.DownloadString(URL);
if (SmsStatusMsg.Contains("
"))
{
SmsStatusMsg = SmsStatusMsg.Replace("
", ", ");
}
}
else
{
RegisterStartupScript("12", "");
}
}
else
{
// Repeater1.Visible = false;
}
}
else if (DropDownList1.SelectedItem.Text == "BCD Enrollment No.")
{
string sel = "select top 1 * from Memberslist where Bcdenroll like '%" + TextBox1.Text + "%'";
SqlDataAdapter da = new SqlDataAdapter(sel, con);
DataTable dt = new DataTable();
da.Fill(dt);
if (dt.Rows.Count > 0)
{
Panel4.Visible = true;
Panel3.Visible = false;
Literal1.Text = dt.Rows[0]["Mobile_1"].ToString();
//Panel2.Visible = true;
//Literal1.Text = dt.Rows[0]["Mobile_1"].ToString();
string[] saAllowedCharacters = { "1", "2", "3", "4", "5", "6", "7", "8", "9", "0" };
string sRandomOTP = GenerateRandomOTP(4, saAllowedCharacters);
HiddenField1.Value = sRandomOTP;
string messag = sRandomOTP + " is the OTP for your NDBA. do not share this with anyone.";
string SmsStatusMsg = string.Empty;
WebClient client = new WebClient();
// mm = "9871482014";
string URL = "http://www.canlog.in/api/mt/SendSMS?user=NDBA1234&password=NDBA1234&senderid=NDBATM&channel=Trans&DCS=0&flashsms=0&number=" + dt.Rows[0]["Mobile_1"].ToString() + "&text=" + messag + "&route=2";
SmsStatusMsg = client.DownloadString(URL);
if (SmsStatusMsg.Contains("
"))
{
SmsStatusMsg = SmsStatusMsg.Replace("
", ", ");
}
//Repeater1.DataSource = dt;
//Repeater1.DataBind();
//Repeater1.Visible = true;
}
else
{
//Repeater1.Visible = false;
}
}
}
// Literal1.Text = "9871482014";
// Panel2.Visible = false;
}
catch (Exception ex)
{
RegisterStartupScript("12", "");
}
}
private string GenerateRandomOTP(int iOTPLength, string[] saAllowedCharacters)
{
string sOTP = String.Empty;
string sTempChars = String.Empty;
Random rand = new Random();
for (int i = 0; i < iOTPLength; i++)
{
int p = rand.Next(0, saAllowedCharacters.Length);
sTempChars = saAllowedCharacters[rand.Next(0, saAllowedCharacters.Length)];
sOTP += sTempChars;
}
return sOTP;
}
}
}