Exemple #1
0
        /// <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));
        }
Exemple #2
0
        /// <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));
        }