/// <summary> /// Gets the credit detail deposit record (type 61). /// </summary> /// <param name="fileFormat">The file format that contains the configuration to use.</param> /// <param name="bundleIndex">Number of existing bundle records in the cash letter.</param> /// <param name="transactions">The transactions associated with this deposit.</param> /// <returns>A collection of records.</returns> protected override List <X937.Record> GetCreditDetailRecords(ImageCashLetterFileFormat fileFormat, int bundleIndex, List <FinancialTransaction> transactions) { var accountNumber = Rock.Security.Encryption.DecryptString(GetAttributeValue(fileFormat, "AccountNumber")); var routingNumber = Rock.Security.Encryption.DecryptString(GetAttributeValue(fileFormat, "RoutingNumber")); var records = new List <X937.Record>(); var creditDetail = new X937.Records.CreditDetail { PayorRoutingNumber = "500100015", CreditAccountNumber = accountNumber, Amount = transactions.Sum(t => t.TotalAmount), InstitutionItemSequenceNumber = string.Format("{0}{1}", RockDateTime.Now.ToString("yyMMddHHmmss"), bundleIndex), DebitCreditIndicator = "2" }; records.Add(creditDetail); for (int i = 0; i < 2; i++) { using (var ms = GetDepositSlipImage(fileFormat, creditDetail, i == 0)) { // // Get the Image View Detail record (type 50). // var detail = new X937.Records.ImageViewDetail { ImageIndicator = 1, ImageCreatorRoutingNumber = routingNumber, ImageCreatorDate = DateTime.Now, ImageViewFormatIndicator = 0, CompressionAlgorithmIdentifier = 0, SideIndicator = i, ViewDescriptor = 0, DigitalSignatureIndicator = 0 }; // // Get the Image View Data record (type 52). // var data = new X937.Records.ImageViewData { InstitutionRoutingNumber = routingNumber, BundleBusinessDate = DateTime.Now, ClientInstitutionItemSequenceNumber = accountNumber, ClippingOrigin = 0, ImageData = ms.ReadBytesToEnd() }; records.Add(detail); records.Add(data); } } return(records); }
/// <summary> /// Gets the image record for a specific transaction image (type 50 and 52). /// </summary> /// <param name="fileFormat">The file format that contains the configuration to use.</param> /// <param name="transaction">The transaction being deposited.</param> /// <param name="image">The check image scanned by the scanning application.</param> /// <param name="isFront">if set to <c>true</c> [is front].</param> /// <returns>A collection of records.</returns> protected virtual List <X937.Record> GetImageRecords(ImageCashLetterFileFormat fileFormat, FinancialTransaction transaction, FinancialTransactionImage image, bool isFront) { var routingNumber = Rock.Security.Encryption.DecryptString(GetAttributeValue(fileFormat, "RoutingNumber")); var accountNumber = Rock.Security.Encryption.DecryptString(GetAttributeValue(fileFormat, "AccountNumber")); // // Get the Image View Detail record (type 50). // var detail = new X937.Records.ImageViewDetail { ImageIndicator = 1, ImageCreatorRoutingNumber = routingNumber, ImageCreatorDate = image.CreatedDateTime ?? DateTime.Now, ImageViewFormatIndicator = 0, CompressionAlgorithmIdentifier = 0, SideIndicator = isFront ? 0 : 1, ViewDescriptor = 0, DigitalSignatureIndicator = 0 }; // // Get the Image View Data record (type 51). // var data = new X937.Records.ImageViewData { InstitutionRoutingNumber = routingNumber, BundleBusinessDate = DateTime.Now, ClientInstitutionItemSequenceNumber = accountNumber, ClippingOrigin = 0, ImageData = image.BinaryFile.ContentStream.ReadBytesToEnd() }; return(new List <X937.Record> { detail, data }); }