/// <summary> /// Genarates item details for a ABA file /// </summary> /// <param name="donationTransactions"></param> /// <returns>generated details for the line</returns> protected override String GenerateDetails(List <DataAccessLayer.DonationTransactionWithRelatedData> donationTransactions) { List <ABAFileDetailItem> detailLineItemList = new List <ABAFileDetailItem>(); foreach (DataAccessLayer.DonationTransactionWithRelatedData transWithRelatedData in donationTransactions) { try { ABAFileDetailItem detailLineItem = new ABAFileDetailItem(); detailLineItem.Amount = transWithRelatedData.TransactionDetail.Amount; detailLineItem.RecepientBSBNumber = BusinessEntities.EncryptionService.Decrypt(transWithRelatedData.DonorPaymentProfile.BSBNumber); detailLineItem.RecepientAccountNumber = BusinessEntities.EncryptionService.Decrypt(transWithRelatedData.DonorPaymentProfile.BankAccountNumber); detailLineItem.RecepientAccountName = transWithRelatedData.DonorPaymentProfile.BankAccountName; detailLineItem.LodgementReference = transWithRelatedData.TransactionDetail.CustomerReference; detailLineItem.RemitterName = AbaConfig.NAB_Remitter; detailLineItemList.Add(detailLineItem); } catch (Exception ex) { // Failed to add item to detail line item list //Helper.LogException(ex); } } // Combine Line items into by the total var combinedListDetail = detailLineItemList.GroupBy(x => new { x.RecepientAccountNumber, x.RecepientAccountName, x.LodgementReference, x.RecepientBSBNumber, x.RemitterName }) .Select(x => new ABAFileDetailItem { Amount = x.Sum(item => item.Amount), RecepientBSBNumber = x.Key.RecepientBSBNumber, RecepientAccountNumber = x.Key.RecepientAccountNumber, RecepientAccountName = x.Key.RecepientAccountName, LodgementReference = x.Key.LodgementReference, RemitterName = x.Key.RemitterName }).ToList(); return(GenerateDetailLines(combinedListDetail)); }
/// <summary> /// Genarates item details for a ABA file /// </summary> /// <param name="batchLineItems"></param> /// <returns>generated details for the line</returns> protected override String GenerateDetails(List <DataAccessLayer.PaymentToOrganisationBatchLineItem> batchLineItems) { List <ABAFileDetailItem> detailLineItemList = new List <ABAFileDetailItem>(); foreach (DataAccessLayer.PaymentToOrganisationBatchLineItem batchLineItem in batchLineItems) { // Get bank details - decrypt then ABAFileDetailItem detailLineItem = new ABAFileDetailItem(); detailLineItem.Amount = batchLineItem.TotalAmountPaidToOrganisation; detailLineItem.RecepientBSBNumber = batchLineItem.BankAccountBSB; detailLineItem.RecepientAccountNumber = batchLineItem.BankAccountNumber; detailLineItem.RecepientAccountName = batchLineItem.BankAcountName; detailLineItem.LodgementReference = string.Format("{0}0{1}", batchLineItem.BatchNumber, batchLineItem.LineItemNumber); detailLineItem.RemitterName = AbaConfig.NAB_Remitter; detailLineItemList.Add(detailLineItem); } return(GenerateDetailLines(detailLineItemList)); }