public ActionResult SaveLoanPreClose(string LoanMasterId)
        {
            MemberLoanClosure memberLoanClosure = new MemberLoanClosure();
            int ID = string.IsNullOrEmpty(LoanMasterId.DecryptString()) ? default(int) : Convert.ToInt32(LoanMasterId.DecryptString());
            var memberLoanDisbursement = _memberloanapplicationService.GetMemberLoanDisbursementDetailsById(ID, UserInfo.UserID);

            LoadDropDowns();
            memberLoanClosure = _memberloanapplicationService.GetLoanClosureDemands(ID, GroupInfo.MeetingDate);
            List <GroupMemberDemandDto> lstDemands = new List <GroupMemberDemandDto>();

            lstDemands = _groupMemberReceiptService.GetTransactionDemands(Convert.ToString(GroupInfo.MeetingDate), memberLoanDisbursement.MemberID);
            var lstloanDemands = lstDemands.Where(x => x.LoanMasterId == ID).ToList();
            GroupMemberReceiptDto _grpMbrRecptDto = new GroupMemberReceiptDto();

            try
            {
                ViewBag.LockStatus = GroupInfo.LockStatus;
                _grpMbrRecptDto.AccountMasterID = memberLoanDisbursement.AccountMasterId;
                _grpMbrRecptDto.TransactionMode = "C";


                _grpMbrRecptDto.TransactionDate = GroupInfo.MeetingDate;

                _grpMbrRecptDto.VoucherRefNumber = memberLoanDisbursement.PaymentVoucherNumber;
                _grpMbrRecptDto.CollectionAgent  = 0;


                _grpMbrRecptDto.TotalAmount = memberLoanClosure.InterestDemand + memberLoanClosure.PrincipleDemand;

                _grpMbrRecptDto.MemberId  = memberLoanDisbursement.MemberID;
                _grpMbrRecptDto.Narration = "Loan Pre Closing";

                //Transactions Read
                _grpMbrRecptDto.Transactions = new List <GroupMemberReceiptTranDto>();
                foreach (var memberdemand in lstloanDemands)
                {
                    GroupMemberReceiptTranDto objTran = null;
                    objTran                 = new GroupMemberReceiptTranDto();
                    objTran.SLAccountId     = memberdemand.SLAhId;
                    objTran.GLAccount       = memberdemand.GLAhName;
                    objTran.SLAccount       = memberdemand.SLAhName;
                    objTran.ReferenceNumber = "RefCloser";
                    objTran.SubAhId         = memberdemand.SubAhId;
                    objTran.Amount          = memberLoanClosure.PrincipleDemand;
                    objTran.InterestDue     = 0;
                    _grpMbrRecptDto.Transactions.Add(objTran);
                }
                //Save
                int       GroupId   = GroupInfo.GroupID;
                ResultDto resultDto = _groupMemberReceiptService.AddUpdateMemberReceipt(_grpMbrRecptDto, UserInfo.UserID, GroupId);
                _grpMbrRecptDto.VoucherNumber   = resultDto.ObjectCode;
                _grpMbrRecptDto.AccountMasterID = resultDto.ObjectId;
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(View());
        }
        public JsonResult GetMemberReceiptDemands(int memberid, string transactiondate)
        {
            List <GroupMemberDemandDto> lstDemands = new List <GroupMemberDemandDto>();

            lstDemands = _groupMemberReceiptService.GetTransactionDemands(transactiondate, memberid);
            var Totaldemand = lstDemands.Sum(l => l.Demand);

            return(Json(new { demands = lstDemands, totaldemands = Totaldemand }));
        }