protected void btnClosingMonth_Click(object sender, EventArgs e)
 {
     if (cboIDMonthly.SelectedValue == "0")
     {
         lblErrorMessage.Text = "Please Select an Item to be closed first.";
         return;
     }
     else
     {
         if (cboSelectSysMonthly.SelectedValue == "1") // bank transaction
         {
             if (cboByMonth.SelectedValue == "0" || cboByMonthYear.SelectedValue == "0")
             {
                 lblErrorMessage.Text = "Please select any month and year first.";
             }
             else
             {
                 int CMont = Convert.ToInt16(DateTime.Now.Month.ToString());
                 int CYear = Convert.ToInt16(DateTime.Now.Year.ToString());
                 int CDay  = Convert.ToInt16(DateTime.Now.Day.ToString());
                 //if(DateTime.Now.
                 if (Convert.ToInt16(cboByMonth.SelectedValue) != CMont || Convert.ToInt16(cboByMonthYear.SelectedValue.ToString()) != CYear)
                 {
                     lblErrorMessage.Text = "Post months and years can not be closed. You are close Current month and year only.";
                 }
                 else
                 {
                     PCSN.InvoiceSystem.BusinessLogicLayer.BankAccountInfo BBinfo = new PCSN.InvoiceSystem.BusinessLogicLayer.BankAccountInfo();
                     DataTable dtBBinfo = new DataTable();
                     dtBBinfo = BBinfo.GetMonthlyBBalByBMonthandBankID(cboByMonth.SelectedValue, cboByMonthYear.SelectedValue, Convert.ToInt32(cboIDMonthly.SelectedValue.ToString()));
                     if (dtBBinfo.Rows.Count > 0)
                     {
                         lblErrorMessage.Text = "Closing of this bank for this month is already done.";
                     }
                     else
                     {
                         dtBBinfo = BBinfo.GetBankBalancesByBankID(Convert.ToInt32(cboIDMonthly.SelectedValue.ToString()));
                         if (dtBBinfo.Rows.Count > 0)
                         {
                             long AvailableBalance = Convert.ToInt32(dtBBinfo.Rows[0]["AvailableBalance"].ToString());
                             BBinfo.InsertMonthlyBBal(Convert.ToInt32(cboIDMonthly.SelectedValue.ToString()), AvailableBalance, cboByMonth.SelectedValue.ToString(), cboByMonthYear.SelectedValue.ToString());
                             lblErrorMessage.Text = "Closing for this month of this bank account is done now.";
                         }
                     }
                 }
             }
         }
     }
 }
    protected void Page_Load(object sender, EventArgs e)
    {
        /*if (Session["UserID"] == null || Session["UserID"].ToString() == "")
         * {
         *  Response.Redirect("login.aspx");
         * }*/

        if (Request.QueryString["errorMSG"] != null && Request.QueryString["errorMSG"].ToString() != "")
        {
            lblErrorMessage.Text = Request.QueryString["errorMSG"].ToString();
        }

        // AUTO Monthly CLOSING OF Bank Accounts

        if (Convert.ToInt16(DateTime.Now.Day) == CalculateDaysofMonth(Convert.ToInt16(DateTime.Now.Month.ToString()), DateTime.IsLeapYear(Convert.ToInt16(DateTime.Now.Year.ToString()))))
        {
            int CMont = Convert.ToInt16(DateTime.Now.Month.ToString());
            if (CMont.ToString() != "1")
            {
                CMont = CMont - 1;
            }
            int CYear = Convert.ToInt16(DateTime.Now.Year.ToString());
            if (CMont.ToString() == "1")
            {
                CMont = 12;
                CYear = CYear - 1;
            }

            int CDay = Convert.ToInt16(DateTime.Now.Day.ToString());
            PCSN.InvoiceSystem.BusinessLogicLayer.BankAccountInfo BBinfo = new PCSN.InvoiceSystem.BusinessLogicLayer.BankAccountInfo();
            DataTable dtBBinfo         = new DataTable();
            DataTable dtMonthBal       = new DataTable();
            DataTable dtInsertMonthBal = new DataTable();
            long      BankID           = 0;
            string    BankName         = "";
            string    AccountNumber    = "";
            string    Ermsg            = "";

            dtBBinfo = BBinfo.GetAllBankAccountInfo();

            for (int i = 0; i < dtBBinfo.Rows.Count; i++)
            {
                BankID        = Convert.ToInt32(dtBBinfo.Rows[i]["ID"].ToString());
                BankName      = dtBBinfo.Rows[i]["BankName"].ToString();
                AccountNumber = dtBBinfo.Rows[i]["AccountNumber"].ToString();
                dtMonthBal    = BBinfo.GetMonthlyBBalByBMonthandBankID(CMont.ToString(), CYear.ToString(), BankID);
                if (dtMonthBal.Rows.Count > 0)
                {
                }
                else
                {
                    dtInsertMonthBal = BBinfo.GetBankBalancesByBankID(BankID);
                    if (dtInsertMonthBal.Rows.Count > 0)
                    {
                        long AvailableBalance = Convert.ToInt32(dtInsertMonthBal.Rows[0]["AvailableBalance"].ToString());
                        BBinfo.InsertMonthlyBBal(BankID, AvailableBalance, CMont.ToString(), CYear.ToString());
                        Ermsg += "Closing for the month " + CMont.ToString() + "/" + CYear.ToString() + " of bank account number " + BankName + "#" + AccountNumber + " is Automaticall done now. <br />";
                        lblErrorMessage.Text = Ermsg;
                    }
                }
            }
        }
        //=========================================================
    }
    protected void btnprintOrder_Click(object sender, EventArgs e)
    {
        lblErrorMessage.Text = "";
        if (cboBank.SelectedValue != "0")
        {
            long      bankID   = Convert.ToInt32(cboBank.SelectedValue.ToString());
            DataTable dtChkRec = new DataTable();
            DataTable dtBBal   = new DataTable();
            PCSN.InvoiceSystem.BusinessLogicLayer.ChequeReceived  CheRec   = new PCSN.InvoiceSystem.BusinessLogicLayer.ChequeReceived();
            PCSN.InvoiceSystem.BusinessLogicLayer.BankAccountInfo BAccInfo = new PCSN.InvoiceSystem.BusinessLogicLayer.BankAccountInfo();
            bool checkBoxChecked = false;
            foreach (DataGridItem dg in dgChequeReceiveds.Items)
            {
                CheckBox chk = (CheckBox)dg.FindControl("chkSelected");
                if (chk.Checked)
                {
                    checkBoxChecked = true;
                    break;
                }
            }

            if (!checkBoxChecked)
            {
                lblErrorMessage.Text = "No Cheque selected.";
                return;
            }
            bool CheckingBit = true;
            long CRID        = 0;
            long RecAmount   = 0;
            dtChkRec = BAccInfo.GetBankAccountInfoByID(bankID);
            if (dtChkRec.Rows.Count > 0)
            {
                if (dtChkRec.Rows[0]["AvailableBalance"] != null && dtChkRec.Rows[0]["AvailableBalance"].ToString() != "")
                {
                    RecAmount = Convert.ToInt32(dtChkRec.Rows[0]["AvailableBalance"].ToString());
                }
                foreach (DataGridItem dg in dgChequeReceiveds.Items)
                {
                    CheckBox chk = (CheckBox)dg.FindControl("chkSelected");
                    if (chk.Checked)
                    {
                        Label lbl = (Label)dg.FindControl("lblChkRecID");
                        CRID     = Convert.ToInt32(lbl.Text);
                        dtChkRec = CheRec.GetChequeReceivedByID(CRID);
                        if (dtChkRec.Rows.Count > 0)
                        {
                            if (dtChkRec.Rows[0]["IsCleared"].ToString() == "True")
                            {
                                dtBBal = BAccInfo.GetAddBalanceByChequeRecID(CRID);
                                if (dtBBal.Rows.Count > 0)
                                {
                                    lblErrorMessage.Text += "You have already used Cheque Number : " + dtBBal.Rows[0]["ChequeNumber"].ToString() + " For the Account Number : " + dtBBal.Rows[0]["AccountNumber"].ToString() + " of Bank : " + dtBBal.Rows[0]["BankName"].ToString() + ".<br />";
                                }
                                else
                                {
                                    CheckingBit = false;
                                    RecAmount   = RecAmount + Convert.ToInt32(dtChkRec.Rows[0]["Amount"].ToString());
                                    BAccInfo.InsertAddBalance(CRID, bankID);
                                }
                            }
                            else
                            {
                                lblErrorMessage.Text += "Cheque Number : " + dtChkRec.Rows[0]["ChequeNumber"].ToString() + " is not Cleared yet.<br />";
                            }
                        }
                    }
                }
                if (CheckingBit == false)
                {
                    dtBBal = BAccInfo.GetBankBalancesByBankID(bankID);
                    if (dtBBal.Rows.Count > 0)
                    {
                        BAccInfo.UpdateBankBalances(Convert.ToInt32(dtBBal.Rows[0]["ID"].ToString()), bankID, RecAmount);
                        lblErrorMessage.Text += "Cheque(s) amount balance added to Bank Account successfully.";
                        PopulateChequeReceived();
                    }
                    else
                    {
                        BAccInfo.InsertBankBalances(bankID, RecAmount);
                        lblErrorMessage.Text += "Cheque(s) amount balance added to Bank Account successfully.";
                        PopulateChequeReceived();
                    }
                }
            }
            else
            {
                lblErrorMessage.Text += "Bank not Found. Please add a bank first";
            }
        }
        else
        {
            lblErrorMessage.Text += "Please select the Bank First.";
        }
    }