public IEnumerable <tbl_InvestmentCodes> InvestmentsCodes(Esoft_WebEntities db) { var returnList = new List <tbl_InvestmentCodes>(); var data = db.tbl_InvestmentCodes.OrderBy(p => p.InvestmentCode).ToList(); foreach (var item in data) { item.InvestmentName = item.InvestmentCode.Trim() + ": " + item.InvestmentName.Trim(); returnList.Add(item); } return(returnList.ToList()); }
public List <tbl_accounttypes> SavingsAccountTypes(Esoft_WebEntities db) { var returnList = new List <tbl_accounttypes>(); var data = db.tbl_accounttypes.OrderBy(p => p.act_code).ToList(); foreach (var item in data) { item.category = item.act_code.Trim() + ": " + item.category.Trim(); returnList.Add(item); } return(returnList.ToList()); }
public IEnumerable <tbl_LoanCodes> GetLoanCodes(Esoft_WebEntities db, bool combineName = true) { var returnList = new List <tbl_LoanCodes>(); var data = db.tbl_LoanCodes.OrderBy(p => p.LoanCode).ToList(); foreach (var item in data) { if (combineName) { item.LoanName = item.LoanCode.Trim() + ": " + item.LoanName.Trim(); } returnList.Add(item); } return(returnList.ToList()); }
// Post Teller Product Repayments public bool PostProductRepayment(TellerProductRepaymentsView custDetails, List <RepaymentView> repayments, string tellerLoginCode, string deviceInfo) { bool transactionPosted = false; string tellerAccount = GetTellerGlAccount(tellerLoginCode); double transactionAmount = repayments.Where(x => x.CustomerNo == custDetails.CustomerNo).Sum(x => x.Amount); Validate_Teller_Transaction("PRODUCTREPAYMENTS", tellerAccount, transactionAmount); if (repayments == null || repayments.Count == 0 || repayments.Sum(x => x.Amount) == 0) { _validationDictionary.AddError("customerDetails.CustomerNo", " Nothing To Post "); } string m_transactionid = ValueConverters.RandomString(10); DateTime trdatenow = DateTime.Now; string trdescpt = "Product Repayments Cash Deposit From Mobile App"; string glaccount_db = tellerAccount; string glaccount_cr = string.Empty; string docid = "MAPP"; string referenceNo = transactionsEngine.Generate_PostReference(docid); bool post_comm_to_customerBranch = true;// transactionsEngine.Get_Other_Settings("POST_TELLER_LOAN_INCOME_TO_CUSTOMER_BRANCH"); string defaultBranch = "99"; List <PostTransactionsViewModel> translist = new List <PostTransactionsViewModel>(); InvestmentsCodesManager investMgr = new InvestmentsCodesManager(); LoanProductsManager loanProductsMgr = new LoanProductsManager(); Esoft_WebEntities db = new Esoft_WebEntities(); List <CustomerBalances> customerBalances = new List <CustomerBalances>(); customerBalances = customerManager.GetCustomerBalances(custDetails.CustomerNo, DateTime.Now, customerBalances); string income_branch = defaultBranch; if (post_comm_to_customerBranch) { income_branch = db.tbl_Customer.FirstOrDefault(x => x.CustomerNo == custDetails.CustomerNo).Branch; } var investmentCodes = investMgr.InvestmentsCodes(db).ToList(); var loanCodes = loanProductsMgr.GetLoanCodes(db).ToList(); foreach (var repayment in repayments.Where(x => x.CustomerNo == custDetails.CustomerNo)) { switch (repayment.Ledger) { case "SAVINGS": trdescpt = String.Format("Cash Deposits Mobile App: {0}", referenceNo); CustomerAccountsView customerDetails = customerAccountsManager.GetAccountByAccountNumber(repayment.ProductCode); glaccount_cr = customerDetails.GlMemSav; transactionsEngine.Generate_Ledger_Transactions(translist, m_transactionid, repayment.ProductCode, trdatenow, trdescpt, docid, referenceNo, repayment.Amount, 0, income_branch, glaccount_db, glaccount_cr, tellerAccount, tellerLoginCode); transactionsEngine.Generate_Ledger_Transactions(translist, m_transactionid, repayment.ProductCode, trdatenow, trdescpt, docid, referenceNo, 0, repayment.Amount, income_branch, glaccount_cr, glaccount_db, tellerAccount, tellerLoginCode); transactionsEngine.Generate_Savings_Transactions(translist, m_transactionid, repayment.ProductCode, trdatenow, trdescpt, docid, referenceNo, repayment.Amount, 0, income_branch, glaccount_cr, glaccount_db, repayment.CustomerNo, glaccount_cr, string.Empty, tellerLoginCode); LogMobileTrail(new MobileOperatorTrail() { ReferenceNo = referenceNo, Ledger = "S", CustomerNo = custDetails.CustomerNo, AccountNo = repayment.ProductCode, TransactionDate = trdatenow, Description = trdescpt, Amount = ValueConverters.ConvertDoubleToDecimal(repayment.Amount), DeviceInfo = deviceInfo ?? String.Empty, LoginCode = tellerLoginCode, }); break; case "INVESTMENTS": trdescpt = String.Format("Cash Deposits Mobile App: {0}", referenceNo); glaccount_cr = investmentCodes.FirstOrDefault(x => x.InvestmentCode == repayment.ProductCode).PrincipalAccount.ToString(); transactionsEngine.Generate_Shares_Transactions(translist, m_transactionid, repayment.CustomerNo, trdatenow, trdescpt, docid, referenceNo, 0, repayment.Amount, income_branch, glaccount_db, glaccount_cr, repayment.ProductCode, tellerLoginCode); transactionsEngine.Generate_Ledger_Transactions(translist, m_transactionid, repayment.CustomerNo, trdatenow, trdescpt, docid, referenceNo, 0, repayment.Amount, income_branch, glaccount_cr, tellerAccount, repayment.CustomerNo, tellerLoginCode); // final Debit to Teller Account transactionsEngine.Generate_Ledger_Transactions(translist, m_transactionid, custDetails.CustomerNo, trdatenow, trdescpt, docid, referenceNo, repayment.Amount, 0, income_branch, tellerAccount, glaccount_cr, custDetails.CustomerNo, tellerLoginCode); LogMobileTrail(new MobileOperatorTrail() { ReferenceNo = referenceNo, Ledger = "I", CustomerNo = custDetails.CustomerNo, AccountNo = repayment.ProductCode, TransactionDate = trdatenow, Description = trdescpt, Amount = ValueConverters.ConvertDoubleToDecimal(repayment.Amount), DeviceInfo = deviceInfo ?? String.Empty, LoginCode = tellerLoginCode, }); break; case "LOANS": trdescpt = String.Format("Loan Repayment Mobile App: {0}", referenceNo); var loanProduct = loanCodes.FirstOrDefault(x => x.LoanCode == repayment.ProductCode); loanProductsMgr.Distribute_LoanRepayment(repayment, customerBalances, loanProduct, true); glaccount_cr = loanProduct.PrincipalAccount; loanProductsMgr.GenerateLoanRepaymentStatements(transactionsEngine, translist, m_transactionid, repayment, loanProduct, trdatenow, trdescpt, docid, referenceNo, 0, 0, income_branch, tellerAccount, "1", "", false, tellerLoginCode, db); // final Debit to Teller Account transactionsEngine.Generate_Ledger_Transactions(translist, m_transactionid, custDetails.CustomerNo, trdatenow, trdescpt, docid, referenceNo, repayment.Amount, 0, income_branch, tellerAccount, glaccount_cr, custDetails.CustomerNo, tellerLoginCode); LogMobileTrail(new MobileOperatorTrail() { ReferenceNo = referenceNo, Ledger = "L", CustomerNo = custDetails.CustomerNo, AccountNo = repayment.ProductCode, TransactionDate = trdatenow, Description = trdescpt, Amount = ValueConverters.ConvertDoubleToDecimal(repayment.Amount), DeviceInfo = deviceInfo ?? String.Empty, LoginCode = tellerLoginCode, }); break; default: break; } } string result = transactionsEngine.Post_Transactions(translist, m_transactionid, false, false); if (result == "Transactions Was Updated Successfully ") { transactionPosted = true; } else { _validationDictionary.AddError("", result); } return(transactionPosted); }
public TellerManager() { db = new Esoft_WebEntities(); }
public CustomerController() { mainDb = new Esoft_WebEntities(); customerAccountsManager = new CustomerAccountsManager(); }
public AtmCardsManager() { mainDb = new Esoft_WebEntities(); customerAccountsManager = new CustomerAccountsManager(); }
public SavingsProductManager() { mainDb = new Esoft_WebEntities(); }
public CompanyManager() { mainDb = new Esoft_WebEntities(); }
public TellerController() { mainDb = new Esoft_WebEntities(); tellerManager = new TellerManager(new ModelStateWrapper(this.ModelState)); }
public List <PostTransactionsViewModel> GenerateLoanRepaymentStatements(PostTransactions transactionsEngine, List <PostTransactionsViewModel> translist, string m_transactionid, RepaymentView repview, tbl_LoanCodes loanproduct, DateTime m_TransactionDate, string m_Narration, string m_Docid, string m_ReferenceNo, double m_DebitAmount, double m_CreditAmount, string m_BranchCode, string m_GlDebit, string transaction_groupid, string m_LoanReferenceNo, bool raiseDebit, string tellerLoginCode, Esoft_WebEntities maindb = null, bool checkOffPosting = false) { string income_Account = string.Empty, accrued_Account = string.Empty; if (repview.LoanPrincipal > 0) { transactionsEngine.Generate_Loans_Transactions(translist, m_transactionid, repview.CustomerNo, m_TransactionDate, m_Narration, m_Docid, m_ReferenceNo, 0, repview.LoanPrincipal, m_BranchCode, m_GlDebit, loanproduct.PrincipalAccount, repview.ProductCode, 1, transaction_groupid, m_LoanReferenceNo, tellerLoginCode, maindb); transactionsEngine.Generate_Ledger_Transactions(translist, m_transactionid, (checkOffPosting ? repview.ProductCode : repview.CustomerNo), m_TransactionDate, m_Narration, m_Docid, m_ReferenceNo, 0, repview.LoanPrincipal, m_BranchCode, loanproduct.PrincipalAccount, m_GlDebit, repview.CustomerNo, tellerLoginCode); if (checkOffPosting) { transactionsEngine.Generate_Ledger_Transactions(translist, m_transactionid, (checkOffPosting ? repview.ProductCode : repview.CustomerNo), m_TransactionDate, m_Narration, m_Docid, m_ReferenceNo, repview.LoanPrincipal, 0, m_BranchCode, m_GlDebit, loanproduct.PrincipalAccount, repview.CustomerNo, tellerLoginCode); } } if (repview.LoanInt > 0) { transactionsEngine.Generate_Loans_Transactions(translist, m_transactionid, repview.CustomerNo, m_TransactionDate, m_Narration, m_Docid, m_ReferenceNo, 0, repview.LoanInt, m_BranchCode, m_GlDebit, loanproduct.InterestControlAccount, repview.ProductCode, 2, transaction_groupid, m_LoanReferenceNo, tellerLoginCode, maindb); transactionsEngine.Generate_Ledger_Transactions(translist, m_transactionid, (checkOffPosting ? repview.ProductCode : repview.CustomerNo), m_TransactionDate, m_Narration, m_Docid, m_ReferenceNo, 0, repview.LoanInt, m_BranchCode, loanproduct.InterestControlAccount, m_GlDebit, repview.CustomerNo, tellerLoginCode); if (checkOffPosting) { transactionsEngine.Generate_Ledger_Transactions(translist, m_transactionid, (checkOffPosting ? repview.ProductCode : repview.CustomerNo), m_TransactionDate, m_Narration, m_Docid, m_ReferenceNo, repview.LoanInt, 0, m_BranchCode, m_GlDebit, loanproduct.InterestControlAccount, repview.CustomerNo, tellerLoginCode); } income_Account = loanproduct.InterestIncomeAccount; accrued_Account = loanproduct.InterestAccruedAccount; RaiseIncomeContraEntries(transactionsEngine, translist, m_TransactionDate, m_transactionid, repview.CustomerNo, m_Narration, m_Docid, m_ReferenceNo, repview.LoanInt, accrued_Account, income_Account, m_BranchCode, tellerLoginCode, repview.ProductCode, checkOffPosting); } if (repview.LoanIns > 0) { transactionsEngine.Generate_Loans_Transactions(translist, m_transactionid, repview.CustomerNo, m_TransactionDate, m_Narration, m_Docid, m_ReferenceNo, 0, repview.LoanIns, m_BranchCode, m_GlDebit, loanproduct.InsuranceControlAccount, repview.ProductCode, 3, transaction_groupid, m_LoanReferenceNo, tellerLoginCode, maindb); transactionsEngine.Generate_Ledger_Transactions(translist, m_transactionid, (checkOffPosting ? repview.ProductCode : repview.CustomerNo), m_TransactionDate, m_Narration, m_Docid, m_ReferenceNo, 0, repview.LoanIns, m_BranchCode, loanproduct.InsuranceControlAccount, m_GlDebit, repview.CustomerNo, tellerLoginCode); if (checkOffPosting) { transactionsEngine.Generate_Ledger_Transactions(translist, m_transactionid, (checkOffPosting ? repview.ProductCode : repview.CustomerNo), m_TransactionDate, m_Narration, m_Docid, m_ReferenceNo, repview.LoanIns, 0, m_BranchCode, m_GlDebit, loanproduct.InsuranceControlAccount, repview.CustomerNo, tellerLoginCode); } income_Account = loanproduct.InsuranceIncomeAccount; accrued_Account = loanproduct.InsuranceAccruedAccount; RaiseIncomeContraEntries(transactionsEngine, translist, m_TransactionDate, m_transactionid, repview.CustomerNo, m_Narration, m_Docid, m_ReferenceNo, repview.LoanIns, accrued_Account, income_Account, m_BranchCode, tellerLoginCode, repview.ProductCode, checkOffPosting); } if (repview.LoanApp > 0) { transactionsEngine.Generate_Loans_Transactions(translist, m_transactionid, repview.CustomerNo, m_TransactionDate, m_Narration, m_Docid, m_ReferenceNo, 0, repview.LoanApp, m_BranchCode, m_GlDebit, loanproduct.AppraisalFeeControlAccount, repview.ProductCode, 4, transaction_groupid, m_LoanReferenceNo, tellerLoginCode, maindb); transactionsEngine.Generate_Ledger_Transactions(translist, m_transactionid, (checkOffPosting ? repview.ProductCode : repview.CustomerNo), m_TransactionDate, m_Narration, m_Docid, m_ReferenceNo, 0, repview.LoanApp, m_BranchCode, loanproduct.AppraisalFeeControlAccount, m_GlDebit, repview.CustomerNo, tellerLoginCode); if (checkOffPosting) { transactionsEngine.Generate_Ledger_Transactions(translist, m_transactionid, (checkOffPosting ? repview.ProductCode : repview.CustomerNo), m_TransactionDate, m_Narration, m_Docid, m_ReferenceNo, repview.LoanApp, 0, m_BranchCode, m_GlDebit, loanproduct.AppraisalFeeControlAccount, repview.CustomerNo, tellerLoginCode); } income_Account = loanproduct.AppraisalFeeIncomeAccount; accrued_Account = loanproduct.AppraisalFeeAccruedAccount; RaiseIncomeContraEntries(transactionsEngine, translist, m_TransactionDate, m_transactionid, repview.CustomerNo, m_Narration, m_Docid, m_ReferenceNo, repview.LoanApp, accrued_Account, income_Account, m_BranchCode, tellerLoginCode, repview.ProductCode, checkOffPosting); } if (repview.LoanPen > 0) { transactionsEngine.Generate_Loans_Transactions(translist, m_transactionid, repview.CustomerNo, m_TransactionDate, m_Narration, m_Docid, m_ReferenceNo, 0, repview.LoanPen, m_BranchCode, m_GlDebit, loanproduct.PenaltyControlAccount, repview.ProductCode, 4, transaction_groupid, m_LoanReferenceNo, tellerLoginCode, maindb); transactionsEngine.Generate_Ledger_Transactions(translist, m_transactionid, (checkOffPosting ? repview.ProductCode : repview.CustomerNo), m_TransactionDate, m_Narration, m_Docid, m_ReferenceNo, 0, repview.LoanPen, m_BranchCode, loanproduct.PenaltyControlAccount, m_GlDebit, repview.CustomerNo, tellerLoginCode); if (checkOffPosting) { transactionsEngine.Generate_Ledger_Transactions(translist, m_transactionid, (checkOffPosting ? repview.ProductCode : repview.CustomerNo), m_TransactionDate, m_Narration, m_Docid, m_ReferenceNo, repview.LoanPen, 0, m_BranchCode, m_GlDebit, loanproduct.PenaltyControlAccount, repview.CustomerNo, tellerLoginCode); } income_Account = loanproduct.PenaltyIncomeAccount; accrued_Account = loanproduct.PenaltyAccruedAccount; RaiseIncomeContraEntries(transactionsEngine, translist, m_TransactionDate, m_transactionid, repview.CustomerNo, m_Narration, m_Docid, m_ReferenceNo, repview.LoanPen, accrued_Account, income_Account, m_BranchCode, tellerLoginCode, repview.ProductCode, checkOffPosting); } if (repview.loan_Levy > 0) { transactionsEngine.Generate_Loans_Transactions(translist, m_transactionid, (checkOffPosting ? repview.ProductCode : repview.CustomerNo), m_TransactionDate, "Levy " + m_Narration, m_Docid, m_ReferenceNo, repview.loan_Levy, repview.loan_Levy, m_BranchCode, m_GlDebit, loanproduct.CashPayment_GlAccount, repview.ProductCode, 1, transaction_groupid, m_LoanReferenceNo, tellerLoginCode, maindb); transactionsEngine.Generate_Ledger_Transactions(translist, m_transactionid, repview.CustomerNo, m_TransactionDate, "Levy " + m_Narration, m_Docid, m_ReferenceNo, 0, repview.loan_Levy, m_BranchCode, loanproduct.CashPayment_GlAccount, m_GlDebit, repview.CustomerNo, tellerLoginCode); } if (raiseDebit == true && checkOffPosting == false) { repview.Amount = ValueConverters.ConvertNullToDouble(repview.loan_Levy) + ValueConverters.ConvertNullToDouble(repview.LoanApp) + ValueConverters.ConvertNullToDouble(repview.LoanIns) + ValueConverters.ConvertNullToDouble(repview.LoanPen) + ValueConverters.ConvertNullToDouble(repview.LoanInt) + ValueConverters.ConvertNullToDouble(repview.LoanPrincipal); transactionsEngine.Generate_Ledger_Transactions(translist, m_transactionid, (checkOffPosting ? repview.ProductCode : repview.CustomerNo), m_TransactionDate, m_Narration, m_Docid, m_ReferenceNo, repview.Amount, 0, m_BranchCode, m_GlDebit, "Product-Rep", repview.CustomerNo, tellerLoginCode); } else /* Raise Final Debit in Calling Module*/ } {