<#-- @ftlvariable name="data" type="com.dantek.dl.template.model.UserDefinedOrdersDataModel" --> <#compress> <#setting locale=data.serverLanguage?split('-')[0]!"da_DK"> <#assign seperator = ","> <#macro transformToValidCSV entry="" addSeperator=true> "${entry?split('"')?join('""')}"<#if addSeperator>${seperator} <#macro compress_single_line> <#local captured><#nested> ${ captured?replace("^\\s+|\\s+$|\\n|\\r", "", "rm") } <#list data.orderLines as orderLine> <#list orderLine.materials as material> <@compress_single_line> <#-- 1. MNR --> <@transformToValidCSV entry=(material.material.itemNumber)!"" /> <#-- 2. Artnr --> <#if material.bibliographicRecord.externalIds?? && material.bibliographicRecord.externalIds?size == 1> <#-- Only 1 value avilable, then use that --> <@transformToValidCSV entry=(material.bibliographicRecord.externalIds?first.ids?first)!"" /> <#else> <#-- Attempt to find an external id matching the supplier --> <@transformToValidCSV entry=(material.bibliographicRecord.externalIds?filter(externalId -> externalId.source?lower_case == data.order.supplier.supplierName?lower_case)?first.ids?first)!"" /> <#-- 3. Bdatum --> <@transformToValidCSV entry=(data.order.orderDate?date?string)!"" /> <#-- 4. ISBN --> <@transformToValidCSV entry=(material.bibliographicRecord.isbn13)!(material.bibliographicRecord.isbn10)!"" /> <#-- 5. Author --> <@transformToValidCSV entry=(material.bibliographicRecord.author)!"" /> <#-- 6. Title --> <@transformToValidCSV entry=(material.bibliographicRecord.title)!"" /> <#-- 7. Publisher --> <@transformToValidCSV entry=(material.bibliographicRecord.publishers[0])!"" /> <#-- 8. Year --> <@transformToValidCSV entry=(material.bibliographicRecord.publishedInYear)!"" /> <#-- 9. Unit Price --> <@transformToValidCSV entry=(orderLine.priceVatIncl?string)!"" /> <#-- 10. Ea --> <#if material.bibliographicRecord.binding?? && material.bibliographicRecord.binding.displayValues?size == 1> <#-- Only 1 value available, then use that --> <@transformToValidCSV entry=(material.bibliographicRecord.binding.displayValues?first.displayValue)!"" /> <#else> <#-- Attempt to find a displayValue based on the configured serverLanguage --> <@transformToValidCSV entry=(material.bibliographicRecord.binding.displayValues?filter(v -> data.serverLanguage?starts_with(v.languageCode))?first.displayValue)!""/> <#-- 11. Z1 --> <@transformToValidCSV entry=(material.materialLabel?split(r'\R', 'r')[1])!"" /> <#-- 12. Z2 --> <@transformToValidCSV entry=(material.materialLabel?split(r'\R', 'r')[2])!"" /> <#-- 13. Z3 --> <@transformToValidCSV entry=(material.materialLabel?split(r'\R', 'r')[3])!"" /> <#-- 14. EPRNR --> <@transformToValidCSV entry="" /> <#-- 15. Free Field --> <@transformToValidCSV entry=(material.materialLabel?split(r'\R', 'r')[0])!"" /> <#-- 16. Fs --> <@transformToValidCSV entry=(material.materialLabel?split(r'\R', 'r')[0])!"" /> <#-- 17. Ex --> <@transformToValidCSV entry=(orderLine.numberOfCopies?string)!"" /> <#-- 18. Kind --> <@transformToValidCSV entry=(data.order.supplier.supplierAgreement.agreementCode)!"" /> <#-- 19. Hurries --> <@transformToValidCSV entry="0" /> <#-- 20. Color --> <@transformToValidCSV entry="" /> <#-- 21. BH --> <@transformToValidCSV entry=(material.material.defaultBranch.shortName)!"" /> <#-- 22. Sublocation - Short --> <@transformToValidCSV entry=(material.material.defaultSublocation.shortName)!"" /> <#-- 23. Sublocation --> <@transformToValidCSV entry=(material.material.defaultSublocation.name)!"" addSeperator=false />