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*/ } {