public bool CheckDuplicateChartOfAccount()
        {
            ChartOfAccountDAL chartOfAccount = new ChartOfAccountDAL();

            try
            {
                LumexDBPlayer db = LumexDBPlayer.Start();
                bool status = chartOfAccount.CheckDuplicateChartOfAccount(this, db);
                db.Stop();
                return status;
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                chartOfAccount = null;
            }
        }
        public DataTable GetTotallingAccountList(string accountType)
        {
            ChartOfAccountDAL chartOfAccount = new ChartOfAccountDAL();

            try
            {
                LumexDBPlayer db = LumexDBPlayer.Start();
                DataTable dt = chartOfAccount.GetTotallingAccountList(accountType, db);
                db.Stop();

                return dt;
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                chartOfAccount = null;
            }
        }
        public DataTable SaveChartOfAccount()
        {
            ChartOfAccountDAL chartOfAccount = new ChartOfAccountDAL();

            try
            {
                LumexDBPlayer db = LumexDBPlayer.Start(true);
                DataTable dt = chartOfAccount.SaveChartOfAccount(this, db);
                db.Stop();

                return dt;
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                chartOfAccount = null;
            }
        }
        public DataTable GetActiveAndPostedChartOfAccountsHeadListByType(string accountType)
        {
            ChartOfAccountDAL chartOfAccount = new ChartOfAccountDAL();

            try
            {
                LumexDBPlayer db = LumexDBPlayer.Start();
                DataTable dt = chartOfAccount.GetActiveAndPostedChartOfAccountsHeadListByType(accountType, db);
                db.Stop();

                return dt;
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                chartOfAccount = null;
            }
        }
        public DataTable GetActiveAndPostedChartOfAccountsCashAndBankHeadList()
        {
            ChartOfAccountDAL chartOfAccount = new ChartOfAccountDAL();

            try
            {
                LumexDBPlayer db = LumexDBPlayer.Start();
                DataTable dt = chartOfAccount.GetActiveAndPostedChartOfAccountsCashAndBankHeadList(db);
                db.Stop();

                return dt;
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                chartOfAccount = null;
            }
        }
        public DataTable GetDeletedChartOfAccountListByDateRangeAll(string fromDate, string toDate, string search)
        {
            ChartOfAccountDAL chartOfAccount = new ChartOfAccountDAL();

            try
            {
                LumexDBPlayer db = LumexDBPlayer.Start();
                DataTable dt = chartOfAccount.GetDeletedChartOfAccountListByDateRangeAll(fromDate, toDate, search, db);
                db.Stop();

                return dt;
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                chartOfAccount = null;
            }
        }
        public void UpdateChartOfAccount()
        {
            ChartOfAccountDAL chartOfAccount = new ChartOfAccountDAL();

            try
            {
                LumexDBPlayer db = LumexDBPlayer.Start(true);
                chartOfAccount.UpdateChartOfAccount(this, db);
                db.Stop();
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                chartOfAccount = null;
            }
        }
        public DataTable GetChartOfAccountById(string accountId)
        {
            ChartOfAccountDAL chartOfAccount = new ChartOfAccountDAL();

            try
            {
                LumexDBPlayer db = LumexDBPlayer.Start();
                DataTable dt = chartOfAccount.GetChartOfAccountById(accountId, db);
                db.Stop();

                return dt;
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                chartOfAccount = null;
            }
        }
        public void UpdateChartOfAccountActivation(string accountId, string activationStatus)
        {
            ChartOfAccountDAL chartOfAccount = new ChartOfAccountDAL();

            try
            {
                LumexDBPlayer db = LumexDBPlayer.Start(true);
                chartOfAccount.UpdateChartOfAccountActivation(accountId, activationStatus, db);
                db.Stop();
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                chartOfAccount = null;
            }
        }
        public string DeleteChartOfAccountById(string accountId, string accountNumber, string forceToDelete)
        {
            ChartOfAccountDAL chartOfAccount = new ChartOfAccountDAL();

            try
            {
                LumexDBPlayer db = LumexDBPlayer.Start(true);
                string status = chartOfAccount.DeleteChartOfAccountById(accountId, accountNumber, forceToDelete, db);
                db.Stop();

                return status;
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                chartOfAccount = null;
            }
        }