Skillnad mellan versioner av "Musik och teaterbiblioteket"
Marie (diskussion | bidrag) (Lade till de första två SQL-frågorna) |
Marie (diskussion | bidrag) m |
||
(3 mellanliggande sidversioner av samma användare visas inte) | |||
Rad 1: | Rad 1: | ||
− | + | Rapport från Musik- och teaterbiblioteket | |
+ | == Cirkulation == | ||
'''Framtagningslista''' | '''Framtagningslista''' | ||
''Egengjord lista för att hämta fram reserverat material då vi har det mesta i magasin.'' | ''Egengjord lista för att hämta fram reserverat material då vi har det mesta i magasin.'' | ||
Rad 36: | Rad 37: | ||
</pre> | </pre> | ||
+ | == Statistik == | ||
'''Aktiva låntagare''' | '''Aktiva låntagare''' | ||
''Baserat på att vi anger kön/institution som ett auktoriserat värde som förs in i låntagarposten som borrower attribute.'' | ''Baserat på att vi anger kön/institution som ett auktoriserat värde som förs in i låntagarposten som borrower attribute.'' | ||
Rad 72: | Rad 74: | ||
) borrowerstats | ) borrowerstats | ||
GROUP BY 1,2 ORDER BY 1,2 | GROUP BY 1,2 ORDER BY 1,2 | ||
+ | </pre> | ||
+ | |||
+ | '''Registrerade låntagare''' | ||
+ | ''Baserat på att vi anger kön/institution som ett auktoriserat värde som förs in i låntagarposten som borrower attribute.'' | ||
+ | <pre> | ||
+ | SELECT | ||
+ | CASE | ||
+ | WHEN attr IN ('m','man') THEN 'Man' | ||
+ | WHEN attr IN ('k','kvinna') THEN 'Kvinna' | ||
+ | WHEN attr IN ('i','Svensk institution') THEN 'Svensk Institution' | ||
+ | WHEN attr IN ('u','Utländsk institution') THEN 'Utländsk Institution' | ||
+ | WHEN attr IN ('-','Ospecificerat') THEN 'Ospecifierat' | ||
+ | ELSE 'Okänt' | ||
+ | END AS 'Kategori', | ||
+ | COUNT(*) AS 'Antal låntagare' | ||
+ | FROM | ||
+ | ( | ||
+ | SELECT | ||
+ | borrowers.borrowernumber, | ||
+ | MAX(borrower_attributes.attribute) attr | ||
+ | FROM | ||
+ | borrowers | ||
+ | LEFT OUTER JOIN | ||
+ | borrower_attributes | ||
+ | ON | ||
+ | borrower_attributes.borrowernumber=borrowers.borrowernumber | ||
+ | WHERE | ||
+ | COALESCE(borrower_attributes.code = 'INST', borrower_attributes.borrowernumber IS NULL) | ||
+ | GROUP BY | ||
+ | borrowernumber | ||
+ | ) borrowerstats | ||
+ | GROUP BY 1 ORDER BY 1 | ||
+ | </pre> | ||
+ | |||
+ | '''Nya låntagare''' | ||
+ | <pre> | ||
+ | SELECT COUNT(borrowernumber) AS 'Nya låntagare' | ||
+ | FROM borrowers | ||
+ | WHERE YEAR(dateenrolled) = <<Välj år ÅÅÅÅ>> | ||
+ | </pre> | ||
+ | |||
+ | '''Lån fördelat på län''' | ||
+ | ''Baserat på att vi anger län som ett auktoriserat värde som förs in i låntagarposten som borrower attribute.'' | ||
+ | <pre> | ||
+ | SELECT COALESCE(cat," Total") AS cat,loans,loans/MAX(loans) OVER (ORDER BY loans DESC)*100 FROM | ||
+ | ( | ||
+ | SELECT | ||
+ | CASE | ||
+ | WHEN attr IN ('k') THEN 'Blekinge' | ||
+ | WHEN attr IN ('w') THEN 'Dalarna' | ||
+ | WHEN attr IN ('i') THEN 'Gotland' | ||
+ | WHEN attr IN ('x') THEN 'Gävleborg' | ||
+ | WHEN attr IN ('n') THEN 'Halland' | ||
+ | WHEN attr IN ('z') THEN 'Jämtland' | ||
+ | WHEN attr IN ('f') THEN 'Jönköping' | ||
+ | WHEN attr IN ('h') THEN 'Kalmar' | ||
+ | WHEN attr IN ('g') THEN 'Kronoberg' | ||
+ | WHEN attr IN ('b') THEN 'Norrbotten' | ||
+ | WHEN attr IN ('m') THEN 'Skåne' | ||
+ | WHEN attr IN ('a') THEN 'Stockholm' | ||
+ | WHEN attr IN ('d') THEN 'Södermanland' | ||
+ | WHEN attr IN ('c') THEN 'Uppsala' | ||
+ | WHEN attr IN ('s') THEN 'Värmland' | ||
+ | WHEN attr IN ('1') THEN 'Västerbotten' | ||
+ | WHEN attr IN ('y') THEN 'Västernorrland' | ||
+ | WHEN attr IN ('u') THEN 'Västmanland' | ||
+ | WHEN attr IN ('o') THEN 'Västra Götaland' | ||
+ | WHEN attr IN ('t') THEN 'Örebro' | ||
+ | WHEN attr IN ('e') THEN 'Östergötland' | ||
+ | ELSE 'Okänt' | ||
+ | END AS cat, | ||
+ | COUNT(*) AS loans | ||
+ | FROM | ||
+ | ( | ||
+ | SELECT | ||
+ | borrowers.borrowernumber, | ||
+ | MAX(borrower_attributes.attribute) attr | ||
+ | FROM | ||
+ | statistics | ||
+ | INNER JOIN | ||
+ | borrowers | ||
+ | ON | ||
+ | statistics.borrowernumber = borrowers.borrowernumber | ||
+ | INNER JOIN | ||
+ | borrower_attributes | ||
+ | ON | ||
+ | borrower_attributes.borrowernumber=borrowers.borrowernumber | ||
+ | WHERE | ||
+ | borrower_attributes.code = 'LÄN' | ||
+ | AND statistics.datetime BETWEEN <<Välj startdatum|date>> AND <<och slutdatum|date>> | ||
+ | GROUP BY | ||
+ | borrowernumber | ||
+ | ) borrowerstats | ||
+ | GROUP BY 1 WITH ROLLUP | ||
+ | ) x | ||
+ | ORDER BY 1 | ||
+ | </pre> | ||
+ | |||
+ | == Meddelanden == | ||
+ | '''HOLD-meddelande''' | ||
+ | |||
+ | Vi har framtagning av material på fasta tider men ibland görs det framtagning tidigare än angivet och då går HOLD-meddelanden ut "för tidigt". Under våren 2020 skrev vi koden under [%- USE date -%] som testar för veckodag och klockslag så att rätt meddelande om när material finns tillgängligt skickas ut. | ||
+ | |||
+ | <pre> | ||
+ | <span style='font-family:Arial,Helvetica,Serif; color:#000000; font-size:1em;'> | ||
+ | <p>Hej <<borrowers.firstname>> <<borrowers.surname>>,</p> | ||
+ | <p>Det här är ett automatgenererat mejl.</p> | ||
+ | <p>[%- USE date -%] | ||
+ | [% IF date.format(date.now, '%u') == '5' %] | ||
+ | Du kan hämta materialet från klockan 12.00 på måndag. | ||
+ | [% ELSIF date.format(date.now, '%u') == '6' %] | ||
+ | Du kan hämta materialet från klockan 12.00 på måndag. | ||
+ | [% ELSIF date.format(date.now, '%u') == '7' %] | ||
+ | Du kan hämta materialet från klockan 12.00 på måndag. | ||
+ | [% ELSE %] | ||
+ | [% IF today.substr(11) < '12:00' %] | ||
+ | Du kan hämta materialet från klockan 12.00 idag. | ||
+ | [% ELSIF date.format(date.now, '%u') == '4' && today.substr(11) >= '12:00' %] | ||
+ | Du kan hämta materialet från klockan 12.00 på måndag. | ||
+ | [% ELSE %] | ||
+ | Du kan hämta materialet från klockan 10.00 imorgon. | ||
+ | [% END %] | ||
+ | [% END %]</br></br> | ||
+ | Titel: <<biblio.title>></br> | ||
+ | Författare: <<biblio.author>></br> | ||
+ | Hyllplats: <<items.itemcallnumber>></br> | ||
+ | Streckkod: <<items.barcode>> | ||
+ | </p> | ||
+ | <p>Beställt material finns på vänthyllan till <<reserves.expirationdate>>.</p> | ||
+ | <p>Hälsningar,</br> | ||
+ | Musik- och teaterbiblioteket<br /> | ||
+ | <<branches.branchemail>></br> | ||
+ | <<branches.branchphone>><br /> | ||
+ | <<branches.branchurl>><br /> | ||
+ | Hållplats: Frihamnsporten. Bussarna 1, 72 och 76 stannar precis utanför. Närmaste t-banestation är Gärdet och Karlaplan.</p> | ||
+ | </span> | ||
+ | </pre> | ||
+ | |||
+ | '''HOLD SLIP''' | ||
+ | |||
+ | Den här är modifierad utifrån Mellansjös variant. | ||
+ | <pre> | ||
+ | <!DOCTYPE html> | ||
+ | <html> | ||
+ | |||
+ | <head> | ||
+ | |||
+ | <script type="text/javascript"> | ||
+ | |||
+ | |||
+ | </script> | ||
+ | |||
+ | <style> | ||
+ | <!-- | ||
+ | .patronletter { page-break-after: always } | ||
+ | --> | ||
+ | |||
+ | </style> | ||
+ | |||
+ | </head> | ||
+ | |||
+ | <body> | ||
+ | |||
+ | [% USE Branches %] | ||
+ | |||
+ | [% loggedinbranchname = Branches.GetName( Branches.GetLoggedInBranchcode() ) %] | ||
+ | <!-- Superviktigt avsnitt eftersom det gör att man kan få olika texter beroende på om reservationen ska hämtas på det bibliotek man är inloggad som, eller på ett annat bibliotek --> | ||
+ | |||
+ | [% IF (borrower.categorycode == "ILL" && borrower.lang == "en") %] | ||
+ | <<today>> | ||
+ | <h2>Fjärrlån att skicka</h2> | ||
+ | <p>Låna ut och skicka till:</br> | ||
+ | <b><<borrowers.firstname>> <<borrowers.surname>></br> | ||
+ | <<borrowers.address>></br> | ||
+ | <<borrowers.address2>></br> | ||
+ | <<borrowers.zipcode>> <<borrowers.city>></br> | ||
+ | <<country>></b></br> | ||
+ | <<borrowers.phone>></br> | ||
+ | <<borrowers.email>></p> | ||
+ | Cardnumber: <<borrowers.cardnumber>></br> | ||
+ | <p>Author: <<biblio.author>></br> | ||
+ | Title: <<biblio.title>></br> | ||
+ | Barcode: <<items.barcode>></br> | ||
+ | Item number: <<items.itemcallnumber>></p> | ||
+ | <p>Note: <<reserves.reservenotes>></p> | ||
+ | </br> | ||
+ | <h1>Due date:</h1> | ||
+ | </br></br></br></br> | ||
+ | <p>Musik- och teaterbiblioteket</br> | ||
+ | If you send a package through the postal service please use our postal | ||
+ | address:</br> | ||
+ | Box 16326, SE-103 26 Stockholm, Sweden</br></br> | ||
+ | If you use a delivery service, please use the following address:</br> | ||
+ | Tegeluddsvägen 100, SE-115 28 Stockholm, Sweden | ||
+ | |||
+ | [% ELSIF (borrower.categorycode == "ILL") %] | ||
+ | <<today>> | ||
+ | <h2>Fjärrlån att skicka</h2> | ||
+ | <p>Låna ut och skicka till:</br> | ||
+ | <b><<borrowers.firstname>> <<borrowers.surname>></br> | ||
+ | <<borrowers.address>></br> | ||
+ | <<borrowers.address2>></br> | ||
+ | <<borrowers.zipcode>> <<borrowers.city>></b></br> | ||
+ | <<borrowers.phone>></br> | ||
+ | <<borrowers.email>></p> | ||
+ | Sigel: <<borrowers.cardnumber>></br> | ||
+ | <p>Författare: <<biblio.author>></br> | ||
+ | Titel: <<biblio.title>></br> | ||
+ | Streckkod: <<items.barcode>></br> | ||
+ | Hyllplats: <<items.itemcallnumber>></p> | ||
+ | <p>Kommentar: <<reserves.reservenotes>></p> | ||
+ | </br> | ||
+ | <h1>Återlämningsdatum:</h1> | ||
+ | </br></br></br></br> | ||
+ | <p>Musik- och teaterbiblioteket</br> | ||
+ | Returadress för brev och postpaket:</br> | ||
+ | Box 16326, 103 26 Stockholm</br></br> | ||
+ | Returadress för företagspaket och andra bud:</br> | ||
+ | Tegeluddsvägen 100, 115 28 Stockholm | ||
+ | |||
+ | [% ELSE %] | ||
+ | <h1>Lånekortsnummer: <<borrowers.cardnumber>></h1> | ||
+ | </br></br> | ||
+ | <p><<borrowers.surname>>, <<borrowers.firstname>></br> | ||
+ | <<borrowers.address>><br /> | ||
+ | <<borrowers.address2>><br /> | ||
+ | <<borrowers.zipcode>> <<borrowers.city>></p> | ||
+ | </br> | ||
+ | <h1>Hyllplats: <<items.itemcallnumber>></h1> | ||
+ | </br> | ||
+ | <p>Författare: <<biblio.author>></br> | ||
+ | Titel: <<biblio.title>></p> | ||
+ | </br> | ||
+ | <p>Meddelande: <<reserves.reservenotes>></p> | ||
+ | </br> | ||
+ | <p>På vänthylla sen: <<reserves.waitingdate>></br> | ||
+ | <b>Hämtas senast: <<reserves.expirationdate>></b></p> | ||
+ | </br> | ||
+ | <h1><b><<borrowers.surname>>, <<borrowers.firstname>></b></h1> | ||
+ | |||
+ | [% END %] | ||
</pre> | </pre> |
Nuvarande version från 8 november 2021 kl. 12.54
Rapport från Musik- och teaterbiblioteket
Cirkulation
Framtagningslista Egengjord lista för att hämta fram reserverat material då vi har det mesta i magasin.
SELECT * FROM (SELECT items.location, items.itemcallnumber, biblio.title AS 'Titel', biblio.author AS 'Upphov', biblio.copyrightdate, reserves.reservedate AS 'Reservationsdatum', reserves.reservenotes AS 'Kommentar', CONCAT_WS(' ', borrowers.firstname, borrowers.surname) AS 'Låntagare', DENSE_RANK() OVER (PARTITION BY biblio.biblionumber ORDER BY reserves.reservedate ASC, reserves.reserve_id ASC) AS reserveenumeration, DENSE_RANK() OVER (PARTITION BY biblio.biblionumber ORDER BY CASE WHEN items.location = 'PjäsHem' THEN '0' WHEN items.location LIKE 'EMS%' THEN CONCAT('2', items.location) WHEN items.location IN ('SVA', 'Referens', 'Rariteter') THEN CONCAT('3', items.location) ELSE CONCAT('1', items.location) END ASC, items.copynumber ASC,items.barcode) AS itemenumeration, waitortransit.itemnumber IS NOT NULL AS waitortransit FROM borrowers INNER JOIN reserves ON borrowers.borrowernumber = reserves.borrowernumber INNER JOIN biblio ON biblio.biblionumber = reserves.biblionumber INNER JOIN items ON biblio.biblionumber = items.biblionumber LEFT OUTER JOIN issues ON issues.itemnumber = items.itemnumber LEFT OUTER JOIN ( SELECT itemnumber FROM reserves WHERE found IN ('W','T') ) AS waitortransit ON items.itemnumber = waitortransit.itemnumber WHERE issues.itemnumber IS NULL AND reserves.suspend = 0 AND (reserves.itemnumber = items.itemnumber OR reserves.itemnumber IS NULL) AND items.itemlost = '0' AND COALESCE(reserves.found,'') NOT IN ('W','T')) X WHERE reserveenumeration = itemenumeration AND NOT waitortransit AND (location NOT LIKE 'EMS%' AND location NOT LIKE 'Orkester') ORDER BY location, itemcallnumber
Statistik
Aktiva låntagare Baserat på att vi anger kön/institution som ett auktoriserat värde som förs in i låntagarposten som borrower attribute.
SELECT CASE WHEN attr IN ('m','man') THEN 'Man' WHEN attr IN ('k','kvinna') THEN 'Kvinna' WHEN attr IN ('i','Svensk institution') THEN 'Svensk Institution' WHEN attr IN ('u','Utländsk institution') THEN 'Utländsk Institution' WHEN attr IN ('-','Ospecificerat') THEN 'Ospecifierat' ELSE 'Okänt' END AS 'Kategori', mdt AS 'Året som lånt senast var aktiv', COUNT(*) AS 'Antal låntagare' FROM ( SELECT borrowers.borrowernumber, MAX(borrower_attributes.attribute) attr, MAX(LEFT(statistics.datetime,4)) mdt FROM statistics INNER JOIN borrowers ON statistics.borrowernumber = borrowers.borrowernumber INNER JOIN borrower_attributes ON borrower_attributes.borrowernumber=borrowers.borrowernumber WHERE borrower_attributes.code = 'INST' GROUP BY borrowernumber ) borrowerstats GROUP BY 1,2 ORDER BY 1,2
Registrerade låntagare Baserat på att vi anger kön/institution som ett auktoriserat värde som förs in i låntagarposten som borrower attribute.
SELECT CASE WHEN attr IN ('m','man') THEN 'Man' WHEN attr IN ('k','kvinna') THEN 'Kvinna' WHEN attr IN ('i','Svensk institution') THEN 'Svensk Institution' WHEN attr IN ('u','Utländsk institution') THEN 'Utländsk Institution' WHEN attr IN ('-','Ospecificerat') THEN 'Ospecifierat' ELSE 'Okänt' END AS 'Kategori', COUNT(*) AS 'Antal låntagare' FROM ( SELECT borrowers.borrowernumber, MAX(borrower_attributes.attribute) attr FROM borrowers LEFT OUTER JOIN borrower_attributes ON borrower_attributes.borrowernumber=borrowers.borrowernumber WHERE COALESCE(borrower_attributes.code = 'INST', borrower_attributes.borrowernumber IS NULL) GROUP BY borrowernumber ) borrowerstats GROUP BY 1 ORDER BY 1
Nya låntagare
SELECT COUNT(borrowernumber) AS 'Nya låntagare' FROM borrowers WHERE YEAR(dateenrolled) = <<Välj år ÅÅÅÅ>>
Lån fördelat på län Baserat på att vi anger län som ett auktoriserat värde som förs in i låntagarposten som borrower attribute.
SELECT COALESCE(cat," Total") AS cat,loans,loans/MAX(loans) OVER (ORDER BY loans DESC)*100 FROM ( SELECT CASE WHEN attr IN ('k') THEN 'Blekinge' WHEN attr IN ('w') THEN 'Dalarna' WHEN attr IN ('i') THEN 'Gotland' WHEN attr IN ('x') THEN 'Gävleborg' WHEN attr IN ('n') THEN 'Halland' WHEN attr IN ('z') THEN 'Jämtland' WHEN attr IN ('f') THEN 'Jönköping' WHEN attr IN ('h') THEN 'Kalmar' WHEN attr IN ('g') THEN 'Kronoberg' WHEN attr IN ('b') THEN 'Norrbotten' WHEN attr IN ('m') THEN 'Skåne' WHEN attr IN ('a') THEN 'Stockholm' WHEN attr IN ('d') THEN 'Södermanland' WHEN attr IN ('c') THEN 'Uppsala' WHEN attr IN ('s') THEN 'Värmland' WHEN attr IN ('1') THEN 'Västerbotten' WHEN attr IN ('y') THEN 'Västernorrland' WHEN attr IN ('u') THEN 'Västmanland' WHEN attr IN ('o') THEN 'Västra Götaland' WHEN attr IN ('t') THEN 'Örebro' WHEN attr IN ('e') THEN 'Östergötland' ELSE 'Okänt' END AS cat, COUNT(*) AS loans FROM ( SELECT borrowers.borrowernumber, MAX(borrower_attributes.attribute) attr FROM statistics INNER JOIN borrowers ON statistics.borrowernumber = borrowers.borrowernumber INNER JOIN borrower_attributes ON borrower_attributes.borrowernumber=borrowers.borrowernumber WHERE borrower_attributes.code = 'LÄN' AND statistics.datetime BETWEEN <<Välj startdatum|date>> AND <<och slutdatum|date>> GROUP BY borrowernumber ) borrowerstats GROUP BY 1 WITH ROLLUP ) x ORDER BY 1
Meddelanden
HOLD-meddelande
Vi har framtagning av material på fasta tider men ibland görs det framtagning tidigare än angivet och då går HOLD-meddelanden ut "för tidigt". Under våren 2020 skrev vi koden under [%- USE date -%] som testar för veckodag och klockslag så att rätt meddelande om när material finns tillgängligt skickas ut.
<span style='font-family:Arial,Helvetica,Serif; color:#000000; font-size:1em;'> <p>Hej <<borrowers.firstname>> <<borrowers.surname>>,</p> <p>Det här är ett automatgenererat mejl.</p> <p>[%- USE date -%] [% IF date.format(date.now, '%u') == '5' %] Du kan hämta materialet från klockan 12.00 på måndag. [% ELSIF date.format(date.now, '%u') == '6' %] Du kan hämta materialet från klockan 12.00 på måndag. [% ELSIF date.format(date.now, '%u') == '7' %] Du kan hämta materialet från klockan 12.00 på måndag. [% ELSE %] [% IF today.substr(11) < '12:00' %] Du kan hämta materialet från klockan 12.00 idag. [% ELSIF date.format(date.now, '%u') == '4' && today.substr(11) >= '12:00' %] Du kan hämta materialet från klockan 12.00 på måndag. [% ELSE %] Du kan hämta materialet från klockan 10.00 imorgon. [% END %] [% END %]</br></br> Titel: <<biblio.title>></br> Författare: <<biblio.author>></br> Hyllplats: <<items.itemcallnumber>></br> Streckkod: <<items.barcode>> </p> <p>Beställt material finns på vänthyllan till <<reserves.expirationdate>>.</p> <p>Hälsningar,</br> Musik- och teaterbiblioteket<br /> <<branches.branchemail>></br> <<branches.branchphone>><br /> <<branches.branchurl>><br /> Hållplats: Frihamnsporten. Bussarna 1, 72 och 76 stannar precis utanför. Närmaste t-banestation är Gärdet och Karlaplan.</p> </span>
HOLD SLIP
Den här är modifierad utifrån Mellansjös variant.
<!DOCTYPE html> <html> <head> <script type="text/javascript"> </script> <style> <!-- .patronletter { page-break-after: always } --> </style> </head> <body> [% USE Branches %] [% loggedinbranchname = Branches.GetName( Branches.GetLoggedInBranchcode() ) %] <!-- Superviktigt avsnitt eftersom det gör att man kan få olika texter beroende på om reservationen ska hämtas på det bibliotek man är inloggad som, eller på ett annat bibliotek --> [% IF (borrower.categorycode == "ILL" && borrower.lang == "en") %] <<today>> <h2>Fjärrlån att skicka</h2> <p>Låna ut och skicka till:</br> <b><<borrowers.firstname>> <<borrowers.surname>></br> <<borrowers.address>></br> <<borrowers.address2>></br> <<borrowers.zipcode>> <<borrowers.city>></br> <<country>></b></br> <<borrowers.phone>></br> <<borrowers.email>></p> Cardnumber: <<borrowers.cardnumber>></br> <p>Author: <<biblio.author>></br> Title: <<biblio.title>></br> Barcode: <<items.barcode>></br> Item number: <<items.itemcallnumber>></p> <p>Note: <<reserves.reservenotes>></p> </br> <h1>Due date:</h1> </br></br></br></br> <p>Musik- och teaterbiblioteket</br> If you send a package through the postal service please use our postal address:</br> Box 16326, SE-103 26 Stockholm, Sweden</br></br> If you use a delivery service, please use the following address:</br> Tegeluddsvägen 100, SE-115 28 Stockholm, Sweden [% ELSIF (borrower.categorycode == "ILL") %] <<today>> <h2>Fjärrlån att skicka</h2> <p>Låna ut och skicka till:</br> <b><<borrowers.firstname>> <<borrowers.surname>></br> <<borrowers.address>></br> <<borrowers.address2>></br> <<borrowers.zipcode>> <<borrowers.city>></b></br> <<borrowers.phone>></br> <<borrowers.email>></p> Sigel: <<borrowers.cardnumber>></br> <p>Författare: <<biblio.author>></br> Titel: <<biblio.title>></br> Streckkod: <<items.barcode>></br> Hyllplats: <<items.itemcallnumber>></p> <p>Kommentar: <<reserves.reservenotes>></p> </br> <h1>Återlämningsdatum:</h1> </br></br></br></br> <p>Musik- och teaterbiblioteket</br> Returadress för brev och postpaket:</br> Box 16326, 103 26 Stockholm</br></br> Returadress för företagspaket och andra bud:</br> Tegeluddsvägen 100, 115 28 Stockholm [% ELSE %] <h1>Lånekortsnummer: <<borrowers.cardnumber>></h1> </br></br> <p><<borrowers.surname>>, <<borrowers.firstname>></br> <<borrowers.address>><br /> <<borrowers.address2>><br /> <<borrowers.zipcode>> <<borrowers.city>></p> </br> <h1>Hyllplats: <<items.itemcallnumber>></h1> </br> <p>Författare: <<biblio.author>></br> Titel: <<biblio.title>></p> </br> <p>Meddelande: <<reserves.reservenotes>></p> </br> <p>På vänthylla sen: <<reserves.waitingdate>></br> <b>Hämtas senast: <<reserves.expirationdate>></b></p> </br> <h1><b><<borrowers.surname>>, <<borrowers.firstname>></b></h1> [% END %]