public ActionResult UpdateOpeningBalance(sdtoOpeningBalance OpeningBalance, long PrevDebit, long PrevCredit)
        {
            if (ModelState.IsValid)
            {
                sdtoUser session = UtilityHelper.UserSession.GetSession(UtilityHelper.UserSession.LoggedInUser) as sdtoUser;
                if (session != null)
                    OpeningBalance.ModifiedBy = session.UserID;
                OpeningBalance.ModifiedOn = DateTime.Now;

                OpeningBalance.ClosingBalance = (OpeningBalance.ClosingBalance - (PrevDebit > 0 ? PrevDebit : PrevCredit)) + (OpeningBalance.CreditOpeningBalance > 0 ? (-1 * OpeningBalance.CreditOpeningBalance) : OpeningBalance.DebitOpeningBalance);

                // ModelState.AddModelError("ProfileImage", "This field is required");
                db.Entry(OpeningBalance).State = EntityState.Modified;
                db.SaveChanges();
                if (User.Identity.IsAuthenticated)
                    return RedirectToAction("Index");
                else
                    return RedirectToAction("Login", "Login");
            }

            LoadSelectListOpeningBalance(OpeningBalance.AccountHeadId, OpeningBalance.ScheduleId, OpeningBalance.FinancialYearId);
            return View();
        }
        public void InitiateMemberAccounts(LoanManagementSystem.Models.sdtoUser Member)
        {
            try
            {
                sdtoSettings settings = AppDb.GeneralSettings.FirstOrDefault();
                sdtoAccountType accTypeDebiter = AppDb.AccountTypes.Where(x => x.UniqueName.Equals("Debiter", StringComparison.InvariantCultureIgnoreCase)).FirstOrDefault();
                var accHead = new sdtoAccountHead()
                {
                    AccountCode = "ACH_" + Member.Code,
                    AccountName = "AC_" + Member.Code,
                    ScheduleId = settings.SundryDebtorAccountId.Value,
                    AccountTypeId = accTypeDebiter.AccountTypeId,
                    CreditLimit = 0,
                    CreditDays = 0,
                    TIN = string.Empty,
                    CST = string.Empty,
                    AddressId = Member.UserAddressId.Value,
                    ContactId = Member.UserContactId.Value,
                    CreatedBy = Member.UserID,
                    CreatedOn = DateTime.Now,
                    IsDeleted = false
                };
                AppDb.AccountHeads.Add(accHead);
                AppDb.SaveChanges();

                Member.AccountHeadId = accHead.AccountHeadId;
                Member.ModifiedOn = DateTime.Now;
                Member.ModifiedBy = Member.UserID;
                AppDb.Entry(Member).State = EntityState.Modified;
                AppDb.SaveChanges();

                sdtoOpeningBalance memberOpeniningBalance = new sdtoOpeningBalance()
                {
                    AccountHeadId = accHead.AccountHeadId,
                    ClosingBalance = 0,
                    CreditOpeningBalance = 0,
                    DebitOpeningBalance = 0,
                    FinancialYearId = 1,
                    ScheduleId = settings.SundryDebtorAccountId.Value,
                    IsDeleted = false,
                    CreatedBy = Member.UserID,
                    CreatedOn = DateTime.Now
                };

                AppDb.OpeningBalance.Add(memberOpeniningBalance);
                AppDb.SaveChanges();
            }
            catch (Exception)
            {

            }
            finally
            {

            }
        }