private static List<PaymentModel> GetATMPayments(Payment loanPayment) { var atmReceiptPayments = from p in Context.Payments join rpa in Context.ReceiptPaymentAssocs on p.Id equals rpa.PaymentId where p.ParentPaymentId == loanPayment.Id && (p.PaymentMethodTypeId == PaymentMethodType.ATMType.Id) && p.PaymentTypeId == PaymentType.LoanPayment.Id select rpa; var customerAtmPayments = from crp in atmReceiptPayments join rpa in Context.ReceiptPaymentAssocs on crp.ReceiptId equals rpa.ReceiptId join p in Context.Payments on rpa.PaymentId equals p.Id where p.PaymentTypeId == PaymentType.Receipt.Id select new { ActualPayment = crp.Payment, ReceivePayment = p}; var models = new List<PaymentModel>(); foreach (var atmPayment in customerAtmPayments) { var amountTendered = atmReceiptPayments.FirstOrDefault(entity => entity.PaymentId == atmPayment.ActualPayment.Id); PaymentModel model = new PaymentModel(); model.PaymentMethod = atmPayment.ActualPayment.PaymentMethodType.Name; model.BankName = "NA"; model.BankBranch = "NA"; model.CheckNumber = atmPayment.ReceivePayment.PaymentReferenceNumber; model.TransactionDate = atmPayment.ReceivePayment.TransactionDate; model.AmountTendered = amountTendered.Amount; model.AmountApplied = atmPayment.ActualPayment.TotalAmount; models.Add(model); } return models; }
private static List<PaymentModel> GetListOfCheques(Payment loanPayment) { var chequeReceiptPayments = from p in Context.Payments join rpa in Context.ReceiptPaymentAssocs on p.Id equals rpa.PaymentId where p.ParentPaymentId == loanPayment.Id && (p.PaymentMethodTypeId == PaymentMethodType.PayCheckType.Id || p.PaymentMethodTypeId == PaymentMethodType.PersonalCheckType.Id) && p.PaymentTypeId == PaymentType.LoanPayment.Id select rpa; var customerChequePayments = from crp in chequeReceiptPayments join rpa in Context.ReceiptPaymentAssocs on crp.ReceiptId equals rpa.ReceiptId join p in Context.Payments on rpa.PaymentId equals p.Id join c in Context.Cheques on p.Id equals c.PaymentId where p.PaymentTypeId == PaymentType.Receipt.Id select new {ActualPayment = crp.Payment, ReceivePayment = p, Cheque = c}; var models = new List<PaymentModel>(); foreach (var chequePayment in customerChequePayments) { var amountTendered = chequeReceiptPayments.FirstOrDefault(entity => entity.PaymentId == chequePayment.ActualPayment.Id); var bankPartyRole = PartyRole.GetById(chequePayment.Cheque.BankPartyRoleId); Bank bank = Bank.GetById(bankPartyRole.Id); PaymentModel model = new PaymentModel(); model.PaymentMethod = "Cheque"; model.BankName = bankPartyRole.Party.Name; model.BankBranch = bank.Branch; model.CheckNumber = chequePayment.ReceivePayment.PaymentReferenceNumber; model.TransactionDate = chequePayment.Cheque.CheckDate; model.AmountTendered = amountTendered.Amount; model.AmountApplied = chequePayment.ActualPayment.TotalAmount; models.Add(model); } return models; }
private static void FillListOfCashReceiptsUsed(Payment loanPayment, PrintLoanPayment loanPaymentModel) { var cashPayments = from p in Context.Payments join rpa in Context.ReceiptPaymentAssocs on p.Id equals rpa.PaymentId where p.ParentPaymentId == loanPayment.Id && p.PaymentMethodTypeId == PaymentMethodType.CashType.Id && p.PaymentTypeId == PaymentType.LoanPayment.Id select rpa; var customerCashPayments = from crp in cashPayments join rpa in Context.ReceiptPaymentAssocs on crp.ReceiptId equals rpa.ReceiptId join p in Context.Payments on rpa.PaymentId equals p.Id where p.PaymentTypeId == PaymentType.Receipt.Id && p.TransactionDate < loanPayment.TransactionDate select new { ActualPayment = crp.Payment, ReceivePayment = p}; var customerCashPaymentsToday = from crp in cashPayments join rpa in Context.ReceiptPaymentAssocs on crp.ReceiptId equals rpa.ReceiptId join p in Context.Payments on rpa.PaymentId equals p.Id where p.PaymentTypeId == PaymentType.Receipt.Id && p.TransactionDate == loanPayment.TransactionDate select new { ActualPayment = crp.Payment, ReceivePayment = p }; var modelsFromPreviousReceipts = new List<PaymentModel>(); foreach (var cashPayment in customerCashPayments) { var amountTendered = cashPayments.FirstOrDefault(entity => entity.PaymentId == cashPayment.ActualPayment.Id); PaymentModel paymentCash = new PaymentModel(); paymentCash.PaymentMethod = "Cash Previous Receipt"; paymentCash.BankName = "NA"; paymentCash.BankBranch = "NA"; paymentCash.CheckNumber = "NA"; paymentCash.TransactionDate = cashPayment.ReceivePayment.TransactionDate; paymentCash.AmountTendered = amountTendered.Amount; paymentCash.AmountApplied = cashPayment.ActualPayment.TotalAmount; modelsFromPreviousReceipts.Add(paymentCash); } loanPaymentModel.CashReceiptsFromPreviousTransaction = modelsFromPreviousReceipts; var models = new List<PaymentModel>(); foreach (var cashPayment in customerCashPaymentsToday) { var amountTendered = cashPayments.FirstOrDefault(entity => entity.PaymentId == cashPayment.ActualPayment.Id); PaymentModel paymentCash = new PaymentModel(); paymentCash.PaymentMethod = "Cash"; paymentCash.BankName = "NA"; paymentCash.BankBranch = "NA"; paymentCash.CheckNumber = "NA"; paymentCash.TransactionDate = cashPayment.ReceivePayment.TransactionDate; paymentCash.AmountTendered = amountTendered.Amount; paymentCash.AmountApplied = cashPayment.ActualPayment.TotalAmount; models.Add(paymentCash); } loanPaymentModel.CashPayments = models; }