private void PopulateChequeReceived()
 {
     PCSN.InvoiceSystem.BusinessLogicLayer.ChequeReceived ChequeReceived = new PCSN.InvoiceSystem.BusinessLogicLayer.ChequeReceived();
     dtChkRecSrch = ChequeReceived.GetAllChequeReceived();
     dgChequeReceiveds.DataSource = dtChkRecSrch;
     dgChequeReceiveds.DataBind();
 }
    private void dgChequeReceiveds_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
        if (e.CommandName == "DeleteChequeReceived")
        {
            string argsID = e.CommandArgument.ToString();

            long ChequeReceivedID = Convert.ToInt32(argsID.ToString());

            if (ChequeReceivedID > 0)
            {
                PCSN.InvoiceSystem.BusinessLogicLayer.ChequeReceived ChequeReceived = new PCSN.InvoiceSystem.BusinessLogicLayer.ChequeReceived();
                ChequeReceived.DeleteChequeReceived(ChequeReceivedID);
                lblErrorMessage.Text = "Cheque Deleted Successfuly.";

                PopulateClient();
                PopulateChequeReceived();
                ClearControls();
            }
        }
    }
    private void PopulateChequeReceivedBySearch(string FieldName, string Value)
    {
        PCSN.InvoiceSystem.BusinessLogicLayer.ChequeReceived ChequeReceived = new PCSN.InvoiceSystem.BusinessLogicLayer.ChequeReceived();
        if (FieldName == "IsCleared")
        {
            dtChkRecSrch = ChequeReceived.GetAllChequeReceivedByCleared(Convert.ToInt16(Value));
        }
        if (FieldName == "ByClient")
        {
            dtChkRecSrch = ChequeReceived.GetAllChequeReceivedByClient(Convert.ToInt16(Value));
        }
        if (FieldName == "ByChequeNumber")
        {
            dtChkRecSrch = ChequeReceived.GetAllChequeReceivedByChequeNumber(Value.Trim());
        }
        if (FieldName == "ByRecDate")
        {
            dtChkRecSrch = ChequeReceived.GetAllChequeReceivedByRecDate(Value);
        }
        if (FieldName == "ToAndFromDate")
        {
            string[] ToandFrom = Value.Split('#');
            string   toDate    = "";
            string   fromDate  = "";
            for (int i = 0; i < ToandFrom.Length; i++)
            {
                toDate   = ToandFrom[i].ToString();
                fromDate = ToandFrom[i + 1].ToString();
                break;
            }

            dtChkRecSrch = ChequeReceived.GetAllChequeReceivedByToAndFromDate(toDate.ToString(), fromDate.ToString());
        }
        if (FieldName == "ByMonthYear")
        {
            dtChkRecSrch = ChequeReceived.GetAllChequeReceivedByMonthYear(Value);
        }

        dgChequeReceiveds.DataSource = dtChkRecSrch;
        dgChequeReceiveds.DataBind();
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Request.QueryString["BankID"] != null && Request.QueryString["BankID"].ToString() != "")
        {
            // This is for Showing Full Invoice
            long BankID = Convert.ToInt32(Request.QueryString["BankID"].ToString());
            //long BankDetailID = 0;
            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;
            }
            PCSN.InvoiceSystem.BusinessLogicLayer.BankAccountInfo Bank = new PCSN.InvoiceSystem.BusinessLogicLayer.BankAccountInfo();
            lblMainTitle.Text = "Bank Report";
            dtBankEdit        = Bank.GetBankAccountInfoByID(BankID);
            if (dtBankEdit.Rows.Count > 0)
            {
                lblDateNow.Text       = DateTime.Now.ToShortDateString();
                lblBankName.Text      = dtBankEdit.Rows[0]["BankName"].ToString();
                lblAccHolderName.Text = dtBankEdit.Rows[0]["AccountHolderName"].ToString();
                lblAccountNumber.Text = dtBankEdit.Rows[0]["AccountNumber"].ToString();
                lblAvailBalance.Text  = dtBankEdit.Rows[0]["AvailableBalance"].ToString();
                BankID = Convert.ToInt32(dtBankEdit.Rows[0]["ID"].ToString());

                // Cheque Issue Details
                PCSN.InvoiceSystem.BusinessLogicLayer.ChequeIssue CIssue = new PCSN.InvoiceSystem.BusinessLogicLayer.ChequeIssue();
                DataTable dtAccRecPay = new DataTable();

                string ReportBy = "";
                string RepValue = "";

                if (Request.QueryString["RepBy"] != null && Request.QueryString["RepBy"].ToString() != "")
                {
                    ReportBy = Request.QueryString["RepBy"].ToString();
                }
                if (Request.QueryString["RepValue"] != null && Request.QueryString["RepValue"].ToString() != "")
                {
                    RepValue = Request.QueryString["RepValue"].ToString();
                }

                if (ReportBy == "Daily")
                {
                    dtAccRecPay = CIssue.GetChequeIssueByBankIDAndDate(BankID, DateTime.Now.ToShortDateString());
                }
                if (ReportBy == "Monthly")
                {
                    dtAccRecPay = CIssue.GetChequeIssueByBankIDAndMonth(BankID, RepValue);
                }
                if (ReportBy == "Yearly")
                {
                    dtAccRecPay = CIssue.GetChequeIssueByBankIDAndYear(BankID, RepValue);
                }

                long TotalTransAmountCI = 0;
                long TotalTransAmountCR = 0;
                long TotalTransATM      = 0;
                long TotalCashDep       = 0;
                // Cheque Issue Transaction
                if (dtAccRecPay.Rows.Count > 0)
                {
                    for (int a = 0; a < dtAccRecPay.Rows.Count; a++)
                    {
                        GenerateHTMLAccPay += "<tr>" + Environment.NewLine;

                        GenerateHTMLAccPay += "<td>" + Environment.NewLine;
                        GenerateHTMLAccPay += dtAccRecPay.Rows[a]["IssueDate"].ToString() + Environment.NewLine;
                        GenerateHTMLAccPay += "</td>" + Environment.NewLine;

                        GenerateHTMLAccPay += "<td>" + Environment.NewLine;
                        GenerateHTMLAccPay += dtAccRecPay.Rows[a]["ChequeNumberWithPreFix"].ToString() + Environment.NewLine;
                        GenerateHTMLAccPay += "</td>" + Environment.NewLine;

                        GenerateHTMLAccPay += "<td>" + Environment.NewLine;
                        GenerateHTMLAccPay += dtAccRecPay.Rows[a]["ClientName"].ToString() + Environment.NewLine;
                        GenerateHTMLAccPay += "</td>" + Environment.NewLine;

                        GenerateHTMLAccPay += "<td align=\"right\">" + Environment.NewLine;
                        GenerateHTMLAccPay += dtAccRecPay.Rows[a]["Amount"].ToString() + Environment.NewLine;
                        GenerateHTMLAccPay += "</td>" + Environment.NewLine;

                        GenerateHTMLAccPay += "</tr>" + Environment.NewLine;
                        TotalTransAmountCI  = TotalTransAmountCI + Convert.ToInt32(dtAccRecPay.Rows[a]["Amount"].ToString());
                    }
                    lblTotalAmountCheIssue.Text = TotalTransAmountCI.ToString();
                }
                // Cheque Received Transaction
                TotalTransAmountCR = 0;
                PCSN.InvoiceSystem.BusinessLogicLayer.ChequeReceived Creceived = new PCSN.InvoiceSystem.BusinessLogicLayer.ChequeReceived();

                if (ReportBy == "Daily")
                {
                    dtAccRecPay = Creceived.GetChequeReceivedByBankIDandDate(BankID, DateTime.Now.ToShortDateString());
                }
                if (ReportBy == "Monthly")
                {
                    dtAccRecPay = Creceived.GetAllChequeReceivedBankIDandMonth(BankID, RepValue);
                }
                if (ReportBy == "Yearly")
                {
                    dtAccRecPay = Creceived.GetAllChequeReceivedBankIDandYear(BankID, RepValue);
                }


                if (dtAccRecPay.Rows.Count > 0)
                {
                    for (int a = 0; a < dtAccRecPay.Rows.Count; a++)
                    {
                        GenerateHTMLAccRec += "<tr>" + Environment.NewLine;

                        GenerateHTMLAccRec += "<td>" + Environment.NewLine;
                        GenerateHTMLAccRec += dtAccRecPay.Rows[a]["RecDate"].ToString() + Environment.NewLine;
                        GenerateHTMLAccRec += "</td>" + Environment.NewLine;

                        GenerateHTMLAccRec += "<td>" + Environment.NewLine;
                        GenerateHTMLAccRec += dtAccRecPay.Rows[a]["ChequeNumber"].ToString() + Environment.NewLine;
                        GenerateHTMLAccRec += "</td>" + Environment.NewLine;

                        GenerateHTMLAccRec += "<td>" + Environment.NewLine;
                        GenerateHTMLAccRec += dtAccRecPay.Rows[a]["ClientName"].ToString() + Environment.NewLine;
                        GenerateHTMLAccRec += "</td>" + Environment.NewLine;

                        GenerateHTMLAccRec += "<td>" + Environment.NewLine;
                        GenerateHTMLAccRec += dtAccRecPay.Rows[a]["AddDate"].ToString() + Environment.NewLine;
                        GenerateHTMLAccRec += "</td>" + Environment.NewLine;

                        GenerateHTMLAccRec += "<td align=\"right\">" + Environment.NewLine;
                        GenerateHTMLAccRec += dtAccRecPay.Rows[a]["Amount"].ToString() + Environment.NewLine;
                        GenerateHTMLAccRec += "</td>" + Environment.NewLine;

                        GenerateHTMLAccRec += "</tr>" + Environment.NewLine;
                        TotalTransAmountCR  = TotalTransAmountCR + Convert.ToInt32(dtAccRecPay.Rows[a]["Amount"].ToString());
                    }
                    lblTotalAmountCheRec.Text = TotalTransAmountCR.ToString();
                }
                // ATM Transaction
                PCSN.InvoiceSystem.BusinessLogicLayer.ATMCard ATMTrans = new PCSN.InvoiceSystem.BusinessLogicLayer.ATMCard();
                DataTable dtBBal = new DataTable();
                if (ReportBy == "Daily")
                {
                    dtAccRecPay = ATMTrans.GetATMTransByTransDateandBankID(DateTime.Now.ToShortDateString(), BankID);
                    // Balance at start of a Month

                    dtBBal = Bank.GetMonthlyBBalByBMonthandBankID(CMont.ToString(), CYear.ToString(), BankID);
                    if (dtBBal.Rows.Count > 0)
                    {
                        lblBalanceStartOfMonth.Text = dtBBal.Rows[0]["AvailableBalance"].ToString();
                    }
                    //==============================
                }
                if (ReportBy == "Monthly")
                {
                    dtAccRecPay = ATMTrans.GetATMTransByTransMonthandBankID(RepValue, BankID);
                    // Balance at start of a Month

                    dtBBal = Bank.GetMonthlyBBalByBMonthandBankID(CMont.ToString(), CYear.ToString(), BankID);
                    if (dtBBal.Rows.Count > 0)
                    {
                        lblBalanceStartOfMonth.Text = dtBBal.Rows[0]["AvailableBalance"].ToString();
                    }
                    //==============================
                }
                if (ReportBy == "Yearly")
                {
                    dtAccRecPay = ATMTrans.GetATMTransByTransYearandBankID(RepValue, BankID);
                }


                if (dtAccRecPay.Rows.Count > 0)
                {
                    for (int a = 0; a < dtAccRecPay.Rows.Count; a++)
                    {
                        GenerateHTMLATMTrans += "<tr>" + Environment.NewLine;

                        GenerateHTMLATMTrans += "<td>" + Environment.NewLine;
                        GenerateHTMLATMTrans += dtAccRecPay.Rows[a]["CardNumber"].ToString() + Environment.NewLine;
                        GenerateHTMLATMTrans += "</td>" + Environment.NewLine;

                        GenerateHTMLATMTrans += "<td>" + Environment.NewLine;
                        GenerateHTMLATMTrans += dtAccRecPay.Rows[a]["TransDate"].ToString() + Environment.NewLine;
                        GenerateHTMLATMTrans += "</td>" + Environment.NewLine;

                        GenerateHTMLATMTrans += "<td>" + Environment.NewLine;
                        GenerateHTMLATMTrans += dtAccRecPay.Rows[a]["TransactionID"].ToString() + Environment.NewLine;
                        GenerateHTMLATMTrans += "</td>" + Environment.NewLine;

                        GenerateHTMLATMTrans += "<td align=\"right\">" + Environment.NewLine;
                        GenerateHTMLATMTrans += dtAccRecPay.Rows[a]["Amount"].ToString() + Environment.NewLine;
                        GenerateHTMLATMTrans += "</td>" + Environment.NewLine;

                        GenerateHTMLATMTrans += "</tr>" + Environment.NewLine;
                        TotalTransATM         = TotalTransATM + Convert.ToInt32(dtAccRecPay.Rows[a]["Amount"].ToString());
                    }
                    lblTotalAmountATMTrans.Text = TotalTransATM.ToString();
                }

                // Cash Deposit Transaction
                PCSN.InvoiceSystem.BusinessLogicLayer.CashDeposit CashDep = new PCSN.InvoiceSystem.BusinessLogicLayer.CashDeposit();

                if (ReportBy == "Daily")
                {
                    dtAccRecPay = CashDep.GetCashDepositByDateandBankID(BankID, DateTime.Now.ToShortDateString());
                }
                if (ReportBy == "Monthly")
                {
                    dtAccRecPay = CashDep.GetCashDepositByMonthandBankID(BankID, RepValue);
                }
                if (ReportBy == "Yearly")
                {
                    dtAccRecPay = CashDep.GetCashDepositByYearandBankID(BankID, RepValue);
                }


                if (dtAccRecPay.Rows.Count > 0)
                {
                    for (int a = 0; a < dtAccRecPay.Rows.Count; a++)
                    {
                        GenerateHTMLCashDep += "<tr>" + Environment.NewLine;

                        GenerateHTMLCashDep += "<td>" + Environment.NewLine;
                        GenerateHTMLCashDep += dtAccRecPay.Rows[a]["DepDate"].ToString() + Environment.NewLine;
                        GenerateHTMLCashDep += "</td>" + Environment.NewLine;

                        GenerateHTMLCashDep += "<td>" + Environment.NewLine;
                        GenerateHTMLCashDep += dtAccRecPay.Rows[a]["DepBy"].ToString() + Environment.NewLine;
                        GenerateHTMLCashDep += "</td>" + Environment.NewLine;

                        GenerateHTMLCashDep += "<td align=\"right\">" + Environment.NewLine;
                        GenerateHTMLCashDep += dtAccRecPay.Rows[a]["Amount"].ToString() + Environment.NewLine;
                        GenerateHTMLCashDep += "</td>" + Environment.NewLine;

                        GenerateHTMLCashDep += "</tr>" + Environment.NewLine;
                        TotalCashDep         = TotalCashDep + Convert.ToInt32(dtAccRecPay.Rows[a]["Amount"].ToString());
                    }
                    lblTotalAmountCashDep.Text = TotalCashDep.ToString();
                }
            }
        }
    }
    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.";
        }
    }