@@ -3,9 +3,7 @@ import UIKit
33/// Renders a receipt in an AirPrint enabled printer.
44///
55public final class ReceiptRenderer : UIPrintPageRenderer {
6- private let lines : [ ReceiptLineItem ]
7- private let parameters : CardPresentReceiptParameters
8- private let cartTotals : [ ReceiptTotalLine ]
6+ private let content : ReceiptContent
97
108 private let dateFormatter : DateFormatter = {
119 let formatter = DateFormatter ( )
@@ -17,9 +15,7 @@ public final class ReceiptRenderer: UIPrintPageRenderer {
1715 } ( )
1816
1917 public init ( content: ReceiptContent ) {
20- self . lines = content. lineItems
21- self . parameters = content. parameters
22- self . cartTotals = content. cartTotals
18+ self . content = content
2319
2420 super. init ( )
2521
@@ -77,15 +73,15 @@ public extension ReceiptRenderer {
7773 <h1> \( receiptTitle) </h1>
7874 <h3> \( Localization . amountPaidSectionTitle. uppercased ( ) ) </h3>
7975 <p>
80- \( parameters. formattedAmount) \( parameters. currency. uppercased ( ) )
76+ \( content . parameters. formattedAmount) \( content . parameters. currency. uppercased ( ) )
8177 </p>
8278 <h3> \( Localization . datePaidSectionTitle. uppercased ( ) ) </h3>
8379 <p>
84- \( dateFormatter. string ( from: parameters. date) )
80+ \( dateFormatter. string ( from: content . parameters. date) )
8581 </p>
8682 <h3> \( Localization . paymentMethodSectionTitle. uppercased ( ) ) </h3>
8783 <p>
88- <span class= " card-icon \( parameters. cardDetails. brand. iconName) -icon " ></span> - \( parameters. cardDetails. last4)
84+ <span class= " card-icon \( content . parameters. cardDetails. brand. iconName) -icon " ></span> - \( content . parameters. cardDetails. last4)
8985 </p>
9086 </header>
9187 <h3> \( summarySectionTitle. uppercased ( ) ) </h3>
@@ -112,8 +108,8 @@ private extension ReceiptRenderer {
112108
113109 private func summaryTable( ) -> String {
114110 var summaryContent = " <table> "
115- for line in lines {
116- summaryContent += " <tr><td> \( line. title) × \( line. quantity) </td><td> \( line. amount) \( parameters. currency. uppercased ( ) ) </td></tr> "
111+ for line in content . lineItems {
112+ summaryContent += " <tr><td> \( line. title) × \( line. quantity) </td><td> \( line. amount) \( content . parameters. currency. uppercased ( ) ) </td></tr> "
117113 }
118114 summaryContent += totalRows ( )
119115 summaryContent += " </table> "
@@ -123,7 +119,7 @@ private extension ReceiptRenderer {
123119
124120 private func totalRows( ) -> String {
125121 var rows = " "
126- for total in cartTotals {
122+ for total in content . cartTotals {
127123 rows += summaryRow ( title: total. description, amount: total. amount)
128124 }
129125 return rows
@@ -136,14 +132,14 @@ private extension ReceiptRenderer {
136132 \( title)
137133 </td>
138134 <td>
139- \( amount) \( parameters. currency. uppercased ( ) )
135+ \( amount) \( content . parameters. currency. uppercased ( ) )
140136 </td>
141137 </tr>
142138 """
143139 }
144140
145141 private func requiredItems( ) -> String {
146- guard let emv = parameters. cardDetails. receipt else {
142+ guard let emv = content . parameters. cardDetails. receipt else {
147143 return " <br/> "
148144 }
149145
@@ -163,15 +159,15 @@ private extension ReceiptRenderer {
163159 }
164160
165161 private var receiptTitle : String {
166- guard let storeName = parameters. storeName else {
162+ guard let storeName = content . parameters. storeName else {
167163 return Localization . receiptTitle
168164 }
169165
170166 return . localizedStringWithFormat( Localization . receiptFromFormat, storeName)
171167 }
172168
173169 private var summarySectionTitle : String {
174- guard let orderID = parameters. orderID else {
170+ guard let orderID = content . parameters. orderID else {
175171 return Localization . summarySectionTitle
176172 }
177173 return String ( format: Localization . summarySectionTitleWithOrderFormat, String ( orderID) )
0 commit comments