##Parameters configuration #set($showPriceComponentDetails = false) #set($showVATBreakDownPerPriceComponent = false) #set($showVATperstakeholder = false) #set($showKubibai = true) ##macros to help to produce alignments in text #macro(space $quantity)#if($quantity>0)#foreach($val in [1..$quantity]) #end#end#end #macro(display $value $columns $align) #set($diff = $columns - $value.length()) #if($diff<0)$value.substring(0,$columns)#elseif($align.equals('CENTER')) #set($leftSpace = $diff/2) #set($rightSpace = $columns - $value.length() - $leftSpace) #space($leftSpace)$value#space($rightSpace)#elseif($align.equals('RIGHT'))#space($diff)$value#else$value#space($diff)#end #end #display($orderReceipt.orgName, 32, 'CENTER') #foreach( $addrLine in $orderReceipt.addrLines ) #display($addrLine, 32, 'CENTER') #end #if($orderReceipt.tel.length() > 0) #display($orderReceipt.tel, 32, 'CENTER') #end #if($orderReceipt.website.length() > 0) #display($orderReceipt.website, 32, 'CENTER') #end -------------------------------- #if($showKubibai == true) #if($orderReceipt.siret.length() > 0) #display('Núm. de pedido: Kubibai-', 24, 'LEFT')#display($orderReceipt.siret, 32, 'LEFT') #end #if($orderReceipt.isDuplicate == true)#set($duplicataStr = "DUPLICADO") #else #set($duplicataStr = 'ORIGINAL')#end #display("Nº impresiones: ", 16, 'LEFT')#display($duplicataStr,12, 'LEFT') -------------------------------- #end #display('CAJA', 16, 'LEFT')#space(2)#display($orderReceipt.operatorCode, 14, 'LEFT') #display($orderReceipt.date, 16, 'LEFT')#space(8)#display($orderReceipt.hour, 5, 'LEFT') #display($orderReceipt.orderId, 30, 'LEFT') -------------------------------- #foreach( $operation in $orderReceipt.operations ) #if($operation.price.length() > 0) #if($operation.description.length() > 0) #display($operation.description, 32, 'LEFT') #end #if($operation.publicSubCategory.length() > 0) #display($operation.publicSubCategory, 32, 'LEFT') #end #display($operation.quantity, 4, 'RIGHT') #display($operation.unitPrice, 15, 'RIGHT') #display($operation.price, 10, 'RIGHT') #if($operation.discountAmount.length() > 0) #space(5)#display('Descuento', 10, 'LEFT')#display($operation.discountPercent, 7, 'LEFT')#display($operation.discountAmount, 10, 'RIGHT') #end #else #display($operation.quantity, 4, 'RIGHT') #display($operation.description, 27, 'LEFT') #end ##foreach( $seat in $operation.seats ) ##space(7)#display($seat, 20, 'LEFT') ##end #if($showPriceComponentDetails == true) #foreach( $priceComponentLine in $operation.priceComponentLines ) #display($priceComponentLine.description, 20, 'LEFT') #display($priceComponentLine.quantity, 4, 'RIGHT') #display($priceComponentLine.unitPrice, 15, 'RIGHT') #display($priceComponentLine.price, 10, 'RIGHT') #end #end #end #display('IVA TOTAL INCLUIDO', 21, 'LEFT')#display($orderReceipt.totalOrderAmount, 10, 'RIGHT') #display('Detalles fiscales', 30, 'LEFT') #display('IVA', 9, 'LEFT')#display('IVA Total', 18, 'LEFT')#display('VAT', 6, 'LEFT') #if($showVATBreakDownPerPriceComponent == true && $showVATperstakeholder == true) #foreach( $stakeHolder in $orderReceipt.getPriceComponentStakeHolders() ) #set($pos = $stakeHolder.lastIndexOf('(')) #if($pos != -1) #set($endStakeholderPos = $pos - 1)#set($startStakeCodePos = $pos) #display('Interesado: ', 14, 'LEFT')#display($stakeHolder.substring(0, $endStakeholderPos), 30, 'LEFT') #display($stakeHolder.substring($startStakeCodePos), 30, 'LEFT') #else #display('Interesado: ', 14, 'LEFT')#display($stakeHolder, 30, 'LEFT') #end #foreach( $tax in $orderReceipt.getMergedStakeholderPriceComponentTaxesByStakeholder($stakeHolder) ) #display($tax.description, 20, 'LEFT') #display($tax.taxRate, 6, 'RIGHT')#space(4)#display($tax.base, 10, 'RIGHT')#space(2)#display($tax.amount, 9, 'RIGHT') #end #end #end #if($showVATBreakDownPerPriceComponent == false && $showVATperstakeholder == true) #foreach( $stakeHolder in $orderReceipt.getStakeHolders() ) #set($pos = $stakeHolder.lastIndexOf('(')) #if($pos != -1) #set($endStakeholderPos = $pos - 1)#set($startStakeCodePos = $pos) #display('Interesado: ', 14, 'LEFT')#display($stakeHolder.substring(0, $endStakeholderPos), 30, 'LEFT') #display($stakeHolder.substring($startStakeCodePos), 30, 'LEFT') #else #display('Interesado: ', 14, 'LEFT')#display($stakeHolder, 30, 'LEFT') #end #foreach( $tax in $orderReceipt.getMergedStakeholderTaxesByStakeholder($stakeHolder) ) #display($tax.taxRate, 6, 'RIGHT')#space(4)#display($tax.base, 10, 'RIGHT')#space(2)#display($tax.amount, 9, 'RIGHT') #end #end #end #if($showVATBreakDownPerPriceComponent == true && $showVATperstakeholder == false) #foreach( $tax in $orderReceipt.taxes ) #display($tax.description, 20, 'LEFT') #display($tax.taxRate, 6, 'RIGHT')#space(4)#display($tax.base, 10, 'RIGHT')#space(2)#display($tax.amount, 9, 'RIGHT') #end #end #if($showVATBreakDownPerPriceComponent == false && $showVATperstakeholder == false) #foreach( $tax in $orderReceipt.mergedTaxes ) #display($tax.taxRate, 6, 'RIGHT')#space(4)#display($tax.base, 10, 'RIGHT')#space(2)#display($tax.amount, 9, 'RIGHT') #end #end Total#space(8)#display($orderReceipt.totalTaxLessAmount, 7, 'RIGHT')#space(5)#display($orderReceipt.totalTaxAmount, 6, 'RIGHT') #if($orderReceipt.vatNumber.length() > 0) #display('Num IVA:', 14, 'LEFT')#display($orderReceipt.vatNumber, 15, 'LEFT') #end #display('Método de pago', 32, 'LEFT') #foreach( $payment in $orderReceipt.payments ) #if($payment.method.length() > 22) #if($orderReceipt.currency.equalsIgnoreCase($orderReceipt.paidCurrency)) #display($payment.methodType, 31, 'LEFT')#display($payment.amount, 29, 'RIGHT') #else #display($payment.methodType, $payment.methodType.length(), 'LEFT')#space(1)(#display($payment.currencyAmount.displayValue, $payment.currencyAmount.displayValue.length(), 'CENTER'))#display($payment.amountGiven, 13, 'RIGHT') #end #else #if($orderReceipt.currency.equalsIgnoreCase($orderReceipt.paidCurrency)) #display($payment.methodType, 22, 'LEFT')#display($payment.amount, 7, 'RIGHT') #else #display($payment.methodType, $payment.methodType.length(), 'LEFT')#space(1)(#display($payment.currencyAmount.displayValue, $payment.currencyAmount.displayValue.length(), 'CENTER'))#display($payment.amount, 12, 'RIGHT') #end #end #end ##Total #display($orderReceipt.currency, 3, 'LEFT')#space(5)Reçu:#space(3)#display($orderReceipt.totalPaidAmount, 10, 'RIGHT') #display('Total', 14, 'LEFT')#display('Pagado', 8, 'LEFT')#display($orderReceipt.totalPaidAmount, 10, 'RIGHT') #space(14)#display('Cambio', 8, 'LEFT')#display($orderReceipt.totalRefundAmount, 10, 'RIGHT') #display('GRACIAS POR SU VISITA', 32, 'CENTER') #if($showKubibai == true) #if($orderReceipt.fiscalSignatureRestitutionStr.length() > 7) #display($orderReceipt.fiscalSignatureRestitutionStr.substring(0, 22), 32, 'CENTER') #display($orderReceipt.fiscalSignatureRestitutionStr.substring(22, $orderReceipt.fiscalSignatureRestitutionStr.length()), 32, 'CENTER') #else #display('Identificador TBAI no disponible', 32, 'LEFT') #end #if($orderReceipt.fiscalSignatureRestitution.length() > 0) $orderReceipt.fiscalSignatureRestitution|6|CENTER #else #display('Código QR no disponible', 32, 'LEFT') #end #end