public ActionResult CreditLimitSetting()
 {
     if (Session["WhiteLevelUserId"] != null)
     {
         try
         {
             initpage();
             var db         = new DBContext();
             var memberInfo = db.TBL_MASTER_MEMBER.Where(x => x.INTRODUCER == MemberCurrentUser.MEM_ID).ToList();
             ViewBag.MemberDetails = new SelectList(memberInfo, "MEM_ID", "UName");
             var memberResivedCreditInfo = db.TBL_MASTER_MEMBER.Where(x => x.MEM_ID == MemberCurrentUser.MEM_ID).FirstOrDefault().RESERVED_CREDIT_LIMIT;
             TBL_CREDIT_LIMIT_BALANCE_DISTRIBUTION model = new TBL_CREDIT_LIMIT_BALANCE_DISTRIBUTION();
             model.Reserved_credit_limit = Convert.ToDecimal(memberResivedCreditInfo);
             return(View(model));
         }
         catch (Exception ex)
         {
             throw;
         }
     }
     else
     {
         Session["WhiteLevelUserId"]   = null;
         Session["WhiteLevelUserName"] = null;
         Session["UserType"]           = null;
         Session.Remove("WhiteLevelUserId");
         Session.Remove("WhiteLevelUserName");
         Session.Remove("UserType");
         return(RedirectToAction("Index", "Login", new { area = "" }));
     }
 }
        public async Task <JsonResult> PostCREDITLIMITBALANCE(TBL_CREDIT_LIMIT_BALANCE_DISTRIBUTION objCredit)
        {
            var db = new DBContext();

            using (System.Data.Entity.DbContextTransaction ContextTransaction = db.Database.BeginTransaction())
            {
                try
                {
                    decimal creditlimitBalance        = 0;
                    decimal MainBal                   = 0;
                    decimal creditLimitMainBal        = 0;
                    decimal AddMainBalance            = 0;
                    decimal AddMainCreditLimitBalance = 0;
                    decimal closingAmt                = 0;
                    decimal AddCloingAMt              = 0;
                    decimal.TryParse(objCredit.CREDIT_AMOUNT.ToString(), out creditlimitBalance);
                    string  COrelationID      = Settings.GetUniqueKey(MemberCurrentUser.MEM_ID.ToString());
                    decimal CR_Opening        = 0;
                    decimal CR_Closinging     = 0;
                    decimal ADD_CR_Closinging = 0;
                    var     CreditLimit_Val   = db.TBL_CREDIT_LIMIT_BALANCE_DISTRIBUTION.Where(x => x.FROM_MEM_ID == objCredit.FROM_MEM_ID).OrderByDescending(c => c.SLN).FirstOrDefault();
                    if (CreditLimit_Val != null)
                    {
                        CR_Opening        = (decimal)CreditLimit_Val.CREDIT_OPENING;
                        CR_Closinging     = (decimal)CreditLimit_Val.CREDITCLOSING;
                        ADD_CR_Closinging = CR_Closinging + creditlimitBalance;
                    }
                    else
                    {
                        CR_Closinging     = 0;
                        ADD_CR_Closinging = creditlimitBalance;
                    }
                    TBL_CREDIT_LIMIT_BALANCE_DISTRIBUTION objLimit = new TBL_CREDIT_LIMIT_BALANCE_DISTRIBUTION()
                    {
                        TO_MEM_ID   = MemberCurrentUser.MEM_ID,
                        FROM_MEM_ID = objCredit.FROM_MEM_ID,
                        CREDIT_DATE = DateTime.Now,
                        //CREDIT_AMOUNT = objCredit.CREDIT_AMOUNT,
                        CREDIT_AMOUNT           = creditlimitBalance,
                        GST_VAL                 = 0,
                        GST_AMOUNT              = 0,
                        TDS_VAL                 = 0,
                        TDS_AMOUNT              = 0,
                        CREDIT_NOTE_DESCRIPTION = objCredit.CREDIT_NOTE_DESCRIPTION,
                        CREDIT_STATUS           = true,
                        CREDIT_OPENING          = CR_Closinging,
                        CREDITCLOSING           = ADD_CR_Closinging,
                        CREDIT_TRN_TYPE         = "CR",
                        CORELATIONID            = COrelationID
                    };
                    db.TBL_CREDIT_LIMIT_BALANCE_DISTRIBUTION.Add(objLimit);
                    db.SaveChanges();

                    var memberinfo = db.TBL_MASTER_MEMBER.FirstOrDefault(x => x.MEM_ID == objCredit.FROM_MEM_ID);
                    decimal.TryParse(memberinfo.BALANCE.ToString(), out MainBal);
                    decimal.TryParse(memberinfo.CREDIT_LIMIT.ToString(), out creditLimitMainBal);
                    AddMainBalance             = MainBal + creditlimitBalance;
                    AddMainCreditLimitBalance  = creditLimitMainBal + creditlimitBalance;
                    memberinfo.BALANCE         = AddMainBalance;
                    memberinfo.CREDIT_LIMIT    = AddMainCreditLimitBalance;
                    db.Entry(memberinfo).State = System.Data.Entity.EntityState.Modified;
                    db.SaveChanges();
                    //Accounts
                    //var FromMemberamtobj = db.TBL_ACCOUNTS.Where(x => x.MEM_ID == objCredit.FROM_MEM_ID).OrderByDescending(z => z.TRANSACTION_TIME).FirstOrDefault();
                    var FromMemberamtobj = db.TBL_ACCOUNTS.Where(x => x.MEM_ID == objCredit.FROM_MEM_ID).OrderByDescending(z => z.ACC_NO).FirstOrDefault();
                    if (FromMemberamtobj != null)
                    {
                        decimal.TryParse(FromMemberamtobj.CLOSING.ToString(), out closingAmt);
                        AddCloingAMt = closingAmt + creditlimitBalance;
                    }
                    else
                    {
                        AddCloingAMt = creditlimitBalance;
                        //decimal.TryParse(FromMemberamtobj.CLOSING.ToString(), out closingAmt);
                    }
                    TBL_ACCOUNTS objacnt = new TBL_ACCOUNTS()
                    {
                        API_ID           = 0,
                        MEM_ID           = objCredit.FROM_MEM_ID,
                        MEMBER_TYPE      = "DISTRIBUTOR",
                        TRANSACTION_TYPE = "CREDIT LIMIT",
                        TRANSACTION_DATE = DateTime.Now,
                        TRANSACTION_TIME = DateTime.Now,
                        DR_CR            = "CR",
                        AMOUNT           = creditlimitBalance,
                        NARRATION        = objCredit.CREDIT_NOTE_DESCRIPTION,
                        OPENING          = closingAmt,
                        CLOSING          = AddCloingAMt,
                        REC_NO           = 0,
                        COMM_AMT         = 0,
                        GST          = 0,
                        TDS          = 0,
                        IPAddress    = "",
                        SERVICE_ID   = 0,
                        CORELATIONID = COrelationID
                    };
                    db.TBL_ACCOUNTS.Add(objacnt);
                    db.SaveChanges();
                    ContextTransaction.Commit();
                    return(Json("Credit Limit is given to distributor"));
                }
                catch (Exception ex)
                {
                    ContextTransaction.Rollback();
                    return(Json("Please try again after some time"));

                    throw ex;
                }
            }
        }