Sunday, 18 August 2013

Admission bill

AdmissionBill.aspx
<%@ Page Title="" Language="C#" MasterPageFile="~/Content.Master" AutoEventWireup="true"
    CodeBehind="AdmissionBill.aspx.cs" Inherits="eSMS.WebFormKidsSchool.AdmissionBill" %>

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajaxToolkit" %>
<asp:Content ID="Content1" ContentPlaceHolderID="bodyContent" runat="server">
    <style type="text/css">
        /*Calendar Control CSS*/
        .cal_Theme1 .ajax__calendar_other .ajax__calendar_day, .cal_Theme1 .ajax__calendar_other .ajax__calendar_year
        {
            color: White; /*Your background color of calender control*/
        }
               
        modalBackground
        {
            background-color: Gray;
            filter: alpha(opacity=80);
            opacity: 0.8;
            z-index: 10000;
        }
        .text
        {
            text-align: right;
        }
        </style>
    <div style="height: 100%; width: 100%;" align="center">
        <ajaxToolkit:ToolkitScriptManager runat="server" ID="ToolkitScriptManager1">
        </ajaxToolkit:ToolkitScriptManager>
        <asp:UpdatePanel ID="upnl" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true">
            <ContentTemplate>
                <asp:Panel ID="Panel1" runat="server" CssClass="pnlBody">
                    <table width="100%" border="0" align="center">
                        <tr>
                            <td align="center">
                                <table width="100%" border="0" cellspacing="15px" align="center">
                                    <tr>
                                        <td align="center" colspan="3">
                                            <asp:Label ID="lblMessage" runat="server" Text="" ForeColor="Red" Font-Bold="True"></asp:Label>&nbsp;
                                        </td>
                                    </tr>
                                    <tr>
                                        <td align="left">
                                            <asp:Label ID="lblrcpt" runat="server" CssClass="label" Text="Receipt No :"></asp:Label>&nbsp;&nbsp;<b><asp:Label ID="lblRecNo" CssClass="label" runat="server"></asp:Label></b>
                                        </td>
                                        <td align="center"><b><asp:Label ID="lbladmission" runat="server" CssClass="title" Text="Admission Bill"></asp:Label></b></td>
                                        <td align="right">
                                            <asp:Label ID="lbldate" runat="server" CssClass="label" Text="Date :"></asp:Label>&nbsp;&nbsp;<b><asp:Label ID="lblBilldate" runat="server" CssClass="label"></asp:Label></b>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td align="center" colspan="3">
                                            <asp:Label ID="lblstuname" runat="server" CssClass="label" Text="Student Name :"></asp:Label>
                                            <asp:TextBox ID="txtStudentname" runat="server" AutoPostBack="true" Width="150px"></asp:TextBox>
                                            &nbsp;
                                            <asp:LinkButton ID="lnlSearch" CssClass="button" runat="server" OnClick="lnlSearch_Click">Search</asp:LinkButton>
                                        </td>
                                        <tr>
                                            <td align="left" colspan="3">
                                            </td>
                                        </tr>
                                        <tr>
                                            <td align="left">
                                                <asp:Label ID="lblStudentid" runat="server" CssClass="label" Text="Student Id  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:"></asp:Label>
                                                &nbsp;
                                                <b><asp:Label ID="lblStudId" CssClass="label" runat="server" Text=""></asp:Label></b>
                                            </td>
                                            <td align="right" colspan="2">
                                            <asp:Label ID="lbljdate" runat="server" CssClass="label" Text="Joining Date :"></asp:Label>&nbsp;
                                               <b><asp:Label ID="lblJoinDate" runat="server" CssClass="label"></asp:Label></b>
                                            </td>
                                        </tr>
                                        <tr>
                                            <td align="left">
                                                <asp:Label ID="lblCour" runat="server" CssClass="label" Text="Course &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:"></asp:Label>
                                                &nbsp; <b>
                                                    <asp:Label ID="lblCourse" runat="server" CssClass="label"></asp:Label></b>
                                            </td>
                                            <td align="right" colspan="2">
                                             <asp:Label ID="lblpamount" runat="server" CssClass="label" Text="Previous Paid Amount :"></asp:Label>&nbsp;
                                                <b><asp:Label ID="lblPrevoiusAmount" runat="server" CssClass="label"></asp:Label></b>
                                            </td>
                                        </tr>
                                        <tr>
                                            <td align="left" colspan="3">
                                                <asp:Label ID="lblCFees" runat="server" CssClass="label" Text="Course Fees &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:"></asp:Label>
                                                <b>
                                                    &nbsp;&nbsp;<asp:Label ID="lblCoursefee" runat="server" CssClass="label"></asp:Label></b>
                                            </td>
                                        </tr>
                                        <tr>                                           
                                            <td align="left" colspan="2">
                                                <asp:Label ID="lblBAmount" runat="server" CssClass="label"
                                                    Text="Balance Amount :"></asp:Label>
                                                &nbsp;
                                                <b><asp:Label ID="lblBalanceamount" runat="server" CssClass="label"></asp:Label></b>
                                            </td>
                                            <td align="right">
                                                 <asp:Label ID="lblPaidamount" runat="server" CssClass="label" Text="Paid Amount :"></asp:Label>
                                                <asp:TextBox ID="txtPaidAmount" CssClass="text" TabIndex="2" runat="server" AutoPostBack="True"
                                                OnTextChanged="txtPaidAmount_TextChanged" Width="70px"></asp:TextBox>
                                            </td>
                                        </tr>
                                        <tr>
                                            <td align="left" colspan="2">
                                                <asp:Label ID="Label1" runat="server" Text="Payment Status :" CssClass="label"></asp:Label>
                                                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;
                                                <b>
                                                <asp:CheckBoxList ID="ChkPaymentStatus" runat="server">
                                                    <asp:ListItem Text="Full Payment" Value="1"></asp:ListItem>
                                                    <asp:ListItem Text="Part Payment" Value="0"></asp:ListItem>
                                                </asp:CheckBoxList>
                                                </b>
                                            </td>                                           
                                            <td align="right">
                                                <asp:Label ID="Label3" runat="server" CssClass="label" Text="Alert Msg Date :"></asp:Label>&nbsp;
                                                <asp:TextBox ID="txtAlertMsg" CssClass="text" TabIndex="3" runat="server" Width="70px"></asp:TextBox>
                                            <ajaxToolkit:CalendarExtender ID="CalendarExtender1" TargetControlID="txtAlertMsg"
                                                runat="server">
                                            </ajaxToolkit:CalendarExtender>
                                             </td>
                                        </tr>
                                        <tr>
                                            <td align="center" colspan="3">
                                                <asp:RequiredFieldValidator ID="reqDate" runat="server" ControlToValidate="txtAlertMsg"
                                                ErrorMessage="Select Date" ForeColor="Red" SetFocusOnError="True" ValidationGroup="student"></asp:RequiredFieldValidator>
                                                <asp:CompareValidator ID="CompareValidator1" Type="Date" ControlToValidate="txtAlertMsg"
                                                Operator="GreaterThanEqual" runat="server" ErrorMessage="Date Should Greater Than Todate"
                                                CssClass="cal_Theme1" ValueToCompare='<%= DateTime.Today.ToShortDateString() %>'
                                                ForeColor="Red"></asp:CompareValidator></td>
                                        </tr>
                                        <tr>
                                            <td colspan="3" align="Center">
                                                <br />
                                                <asp:Button ID="btnSave" runat="server" TabIndex="4" Text="Send" ValidationGroup="student"
                                                    CssClass="button" OnClick="btnSave_Click" />&nbsp;
                                                <asp:Button ID="btnClear" runat="server" Text="Clear" CssClass="button" OnClick="btnClear_Click" />&nbsp;
                                                <asp:Button ID="btnCancel" runat="server" Text="Cancel" CssClass="button" OnClick="btnCancel_Click" />
                                            </td>
                                        </tr>
                                </table>
                                <asp:HiddenField ID="hdnMobileNo" runat="server" />
                            </td>
                        </tr>
                    </table>
                </asp:Panel>
            </ContentTemplate>
        </asp:UpdatePanel>
    </div>
</asp:Content>

AdmissionBill.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using eSMS.App_Code;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;

namespace eSMS.WebFormKidsSchool
{
    public partial class AdmissionBill : System.Web.UI.Page
    {
        #region Public Variables

        public string rcptid;
        public string Rid1;
        string prefixText;

        #endregion

        #region Page Load Event

        protected void Page_Load(object sender, EventArgs e)
        {
            SqlConnection strConn = new SqlConnection(ConfigurationManager.ConnectionStrings["dbConn"].ToString());
            CompareValidator1.ValueToCompare = DateTime.Today.ToShortDateString();
            Page.DataBind();
            if (Session["CustomerId"] == null)
            {
                Response.Redirect("Login.aspx");
            }
            if (!IsPostBack)
            {
                ChkPaymentStatus.Visible = false;
                txtPaidAmount.Visible = false;
                txtAlertMsg.Visible = false;
            }
            try
            {
                GetRecpitNo();
                string Pmonth = rcptid.Substring(0, 2);
                string Cmonth = DateTime.Now.ToString("MM");
                if (Cmonth == Pmonth)
                {
                    Rid1 = rcptid.Substring(4, 4);
                    Rid1 = (Convert.ToInt32(Rid1) + 1).ToString();
                    Rid1 = NumberFormat(Rid1);
                }
                else
                {
                    Rid1 = rcptid.Substring(4, 4);
                    Rid1 = "0001";
                }
                string Recnumber = DateTime.Now.ToString("MMyy") + Rid1;
                lblRecNo.Text = Recnumber;
                lblBilldate.Text = DateTime.Today.ToString().Substring(0, 10);
            }

            catch (Exception ex)
            {
                lblMessage.Visible = true;
                lblMessage.ForeColor = System.Drawing.Color.Red;
                lblMessage.Text = ex.Message;
            }

            if (Session["studInfo"] != null)
            {
                if (!IsPostBack)
                {
                    DataTable dt = new DataTable();
                    dt = (DataTable)Session["studInfo"];
                    txtStudentname.Text = dt.Rows[0]["StudentName"].ToString();
                    lblStudId.Text = dt.Rows[0]["StudentCode"].ToString();
                    lblCourse.Text = dt.Rows[0]["CourseName"].ToString();
                    lblCoursefee.Text = dt.Rows[0]["CourseFess"].ToString();
                    lblBalanceamount.Text = dt.Rows[0]["BalanceAmount"].ToString();
                    lblJoinDate.Text = dt.Rows[0]["CreatedDate"].ToString().Substring(0, 10);
                    hdnMobileNo.Value = dt.Rows[0]["SMSContactNo"].ToString();
                    lblCoursefee.Text = dt.Rows[0]["CourseFess"].ToString();
                    decimal Courseamt, balaamt;
                    balaamt = Convert.ToDecimal(lblBalanceamount.Text);
                    Courseamt = Convert.ToDecimal(lblCoursefee.Text);
                    lblPrevoiusAmount.Text = (Courseamt - balaamt).ToString();
                    if (lblCoursefee.Text == lblPrevoiusAmount.Text)
                    {
                        lblMessage.Visible = true;
                        lblMessage.ForeColor = System.Drawing.Color.Red;
                        lblMessage.Text = "Fees Already Paid";
                        txtPaidAmount.Enabled = false;
                    }
                    txtPaidAmount.Visible = true;
                    txtAlertMsg.Visible = true;
                    Session["studInfo"] = null;
                }
            }
        }

        #endregion

        #region Event Handler

        protected void btnSave_Click(object sender, EventArgs e)
        {
            SqlConnection strConn = new SqlConnection(ConfigurationManager.ConnectionStrings["dbConn"].ToString());
            System.Data.SqlClient.SqlTransaction transaction;

            strConn.Open();
            transaction = strConn.BeginTransaction();
            try
            {
                if (ValidateControls())
                {
                    decimal Courseamt, balaamt, paidamt, previousamount;
                    Courseamt = Convert.ToDecimal(lblCoursefee.Text);
                    paidamt = Convert.ToDecimal(txtPaidAmount.Text);
                    previousamount = Convert.ToDecimal(lblPrevoiusAmount.Text);
                    string balance = lblBalanceamount.Text.Substring(0, 5);
                    balaamt = Courseamt - paidamt - previousamount;
                    lblBalanceamount.Text = balaamt.ToString();
                    KidsLayer ObjKl = new KidsLayer();
                    int status = ObjKl.ExecuteNonQuery("SaveAdmissionBill", lblRecNo.Text, lblBilldate.Text, lblStudId.Text, txtStudentname.Text, lblBalanceamount.Text, lblJoinDate.Text, txtPaidAmount.Text, ChkPaymentStatus.SelectedItem.Text, Convert.ToDateTime(txtAlertMsg.Text), Session["CustomerId"].ToString());
                    status = ObjKl.ExecuteNonQuery("UpdateAdmissionFees", Convert.ToInt64(lblStudId.Text), Convert.ToDecimal(txtPaidAmount.Text), Convert.ToDecimal(lblPrevoiusAmount.Text), Convert.ToDecimal(lblBalanceamount.Text));

                    if (status > 0)
                    {
                        String message = "Thank You for Payment. Receipt No : " + lblRecNo.Text + "; Course Fees : " + lblCoursefee.Text + "; Paid Amount : " + txtPaidAmount.Text.Trim() + "; Remaining Amount : " + lblBalanceamount.Text + "";
                        eSMSLayer objesms = new eSMSLayer();
                        objesms.SendMessage(message, hdnMobileNo.Value);
                        lblMessage.Visible = true;
                        lblMessage.ForeColor = System.Drawing.Color.Green;
                        lblMessage.Text = "Bill Paid Sucessfully";
                    }
                    Passvalue();
                    ClearControls();
                    lblStudId.Text = string.Empty;
                    txtAlertMsg.Text = string.Empty;
                    ChkPaymentStatus.SelectedIndex = 0;
                }
                else
                {
                    lblMessage.Visible = true;
                    lblMessage.ForeColor = System.Drawing.Color.Red;
                }
            }
            catch (SqlException sqlError)
            {
                transaction.Rollback();
            }
            strConn.Close();
            Response.Redirect("Recepitbillaspx.aspx");
        }


        protected void txtPaidAmount_TextChanged(object sender, EventArgs e)
        {
            if (txtPaidAmount.Text == lblBalanceamount.Text.Substring(0, 5))
            {
                txtAlertMsg.Visible = false;
                ChkPaymentStatus.Items.FindByText("Full Payment").Selected = true;
                ChkPaymentStatus.Items.FindByText("Part Payment").Enabled = false;
                Label3.Visible = false;
                txtAlertMsg.Text = System.DateTime.Now.ToString();


            }
            else if (txtPaidAmount.Text != lblBalanceamount.Text)
            {
                txtAlertMsg.Visible = true;
                Label3.Visible = true;
                ChkPaymentStatus.Items.FindByText("Full Payment").Enabled = false;
                ChkPaymentStatus.Items.FindByText("Part Payment").Selected = true;
            }

            decimal balAmt = Convert.ToDecimal(lblBalanceamount.Text);
            decimal paidAmt = Convert.ToDecimal(txtPaidAmount.Text);
            lblBalanceamount.Text = (balAmt - paidAmt).ToString();
            ChkPaymentStatus.Visible = true;
        }

        protected void btnClear_Click(object sender, EventArgs e)
        {
            ClearControls();
            lblMessage.Visible = false;
        }

        protected void btnCancel_Click(object sender, EventArgs e)
        {
            try
            {
                Response.Redirect("../WebFormCommonPages/Home.aspx");
            }
            catch (Exception ex)
            {
                lblMessage.Visible = true;
                lblMessage.ForeColor = System.Drawing.Color.Red;
                lblMessage.Text = ex.Message;
            }
        }



        #endregion

        #region Private Methods

        private void Passvalue()
        {

            Session["RecpitNp"] = lblRecNo.Text;
            Session["Billdate"] = lblBilldate.Text;
            Session["Studentid"] = lblStudId.Text;
            Session["PreviousAmount"] = lblPrevoiusAmount.Text;
            Session["Course"] = lblCourse.Text;
            Session["Paid Amount"] = txtPaidAmount.Text;
            Session["stname"] = txtStudentname.Text;
            Session["CourseFee"] = lblCoursefee.Text;
            Session["balamount"] = lblBalanceamount.Text;

        }

        private Boolean ValidateControls()
        {
            bool ret = true;
            if (txtPaidAmount.Text.Trim().Length <= 0)
            {
                lblMessage.Text = "Enter the Amount";
                ret = false;
            }
            if (Convert.ToDecimal(txtPaidAmount.Text.Trim()) > Convert.ToDecimal(lblBalanceamount.Text))
            {
                lblMessage.Text = "Amount is more than Balance amount / Course fees";
                ret = false;
            }
            return ret;
        }

        private void ClearControls()
        {
            txtStudentname.Text = string.Empty;
            lblBalanceamount.Text = string.Empty;
            lblCoursefee.Text = string.Empty;
            lblPrevoiusAmount.Text = string.Empty;
            lblCourse.Text = string.Empty;
            lblJoinDate.Text = string.Empty;
            txtPaidAmount.Text = string.Empty;
            txtAlertMsg.Text = string.Empty;
            ChkPaymentStatus.SelectedIndex = 0;

        }

        private void GetRecpitNo()
        {
            try
            {
                KidsLayer ObJkl = new KidsLayer();
                DataTable dt = ObJkl.Datatable("GetRecpitNo");
                if (dt.Rows.Count > 0)
                {
                    rcptid = dt.Rows[0]["RecepitNo"].ToString();
                    if (rcptid.Length == 7)
                    {
                        rcptid = "0" + rcptid;
                    }
                    else if (rcptid == string.Empty)
                    {
                        rcptid = DateTime.Now.ToString("MMyy") + "0000";
                    }
                }
                else
                {
                    rcptid = DateTime.Now.ToString("MMyy") + "0000";

                }
            }

            catch (Exception ex)
            {
                lblMessage.Visible = true;
                lblMessage.ForeColor = System.Drawing.Color.Red;
                lblMessage.Text = ex.Message;
            }
        }

        private string NumberFormat(string number)
        {
            if (number.Length == 3)
            {
                number = "0" + number;
            }
            else if (number.Length == 2)
            {
                number = "00" + number;
            }
            else if (number.Length == 1)
            {
                number = "000" + number;
            }
            return number;
        }

        [System.Web.Script.Services.ScriptMethod()]
        [System.Web.Services.WebMethod]

        public static List<string> SearchCustomers(string prefixText, int count)
        {

            KidsLayer objKL = new KidsLayer();
            DataTable dt = objKL.Datatable("sp_GetStudentid", prefixText);
            List<string> customers = new List<string>();
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                customers.Add(dt.Rows[i]["StudentName"].ToString());
            }
            return customers;

        }
        #endregion

        //protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
        //{
        //    this.ModalPopupExtender2.Show();
        //}


        protected void lnlSearch_Click(object sender, EventArgs e)
        {
            lblMessage.Visible = false;
            Session["studentName"] = txtStudentname.Text;
            Response.Redirect("StudentDetails.aspx");
        }

    }

}



Create proc [dbo].[SaveAdmissionBill]
@RecepitNo bigint,
@Date datetime,
@StudentCode bigint,
@StudentName nvarchar(50),
@BalanceAmount decimal(12, 2),
@Joindate datetime,
@PaidAmount decimal(12, 2),
@PaymentStatus nvarchar(50),
@AlertMsgDate datetime,
@CreatedBy bigint
as
begin
insert into AdmissionBill (
RecepitNo,
Date,
StudentCode,
StudentName,
BalanceAmount,
Joindate,
PaidAmount,
PaymentStatus,
AlertMessageDate, 
CreatedBy,
CreatedDate)
values
(
@RecepitNo,
@Date, 
  @StudentCode,
  @StudentName,
  @BalanceAmount,
  @Joindate ,
  @PaidAmount,
  @PaymentStatus,
  @AlertMsgDate,
  @CreatedBy,
  GETDATE()
  )
 
  end
  






No comments:

Post a Comment