Skillnad mellan versioner av "Fakturering"

Från Svenska kohanätverkets wiki
Hoppa till navigering Hoppa till sök
 
(8 mellanliggande sidversioner av 2 användare visas inte)
Rad 10: Rad 10:
  
 
MarkLostItemsAsReturned skulle vi helst vilja ha helt tomt, men tyvärr måste man välja något där, så vi har valt "from the holds to pull list". Vi vill nämligen att böckerna ska finnas kvar på låntagarens konto
 
MarkLostItemsAsReturned skulle vi helst vilja ha helt tomt, men tyvärr måste man välja något där, så vi har valt "from the holds to pull list". Vi vill nämligen att böckerna ska finnas kvar på låntagarens konto
 +
 +
Vi har gjort en ändring i de bibliografiska ramverken - delfält 952$1 ska vara synligt för redaktör
 +
https://www.adressentilldinkoha.se/cgi-bin/koha/admin/marc_subfields_structure.pl?op=add_form&tagfield=952&tagsubfield=1&frameworkcode=#sub1field
  
 
Vi använder inte cronjobbet Long overdues
 
Vi använder inte cronjobbet Long overdues
Rad 16: Rad 19:
  
  
== 1 Försenade böcker som inte har blivit fakturerade, för att leta i hyllan ==
+
== 1 Leta-lista ==
 
Det första vi gör är att ta ut en lista på böcker som inte har blivit återlämnade, fast de är mer än 37 dagar sena, så vi kan leta efter dem i hyllan i fall vi missat att avregistrera dem i återlämningen.
 
Det första vi gör är att ta ut en lista på böcker som inte har blivit återlämnade, fast de är mer än 37 dagar sena, så vi kan leta efter dem i hyllan i fall vi missat att avregistrera dem i återlämningen.
 
<pre>
 
<pre>
Rad 22: Rad 25:
 
branches.branchname AS Bibliotek,
 
branches.branchname AS Bibliotek,
 
items.ccode AS Samling,
 
items.ccode AS Samling,
items.location AS Placering,
+
authorised_values.lib AS Placering,
 
items.itemcallnumber AS Hyllsignum,
 
items.itemcallnumber AS Hyllsignum,
 
biblio.author AS Författare,
 
biblio.author AS Författare,
biblio.title AS Titel,
+
CASE
items.barcode AS Streckkod,  
+
WHEN biblio.frameworkcode='SER' AND items.enumchron IS NOT NULL
 +
THEN
 +
CONCAT(biblio.title,'<br>',items.enumchron)
 +
ELSE
 +
biblio.title
 +
END
 +
AS Titel,
 +
items.barcode AS Streckkod,
 
items.itype AS Exemplartyp
 
items.itype AS Exemplartyp
  
Rad 32: Rad 42:
 
LEFT JOIN issues ON (borrowers.borrowernumber=issues.borrowernumber)  
 
LEFT JOIN issues ON (borrowers.borrowernumber=issues.borrowernumber)  
 
LEFT JOIN items ON (issues.itemnumber=items.itemnumber)  
 
LEFT JOIN items ON (issues.itemnumber=items.itemnumber)  
 +
LEFT JOIN authorised_values ON (items.location=authorised_values.authorised_value)
 
LEFT JOIN biblio ON (items.biblionumber=biblio.biblionumber)  
 
LEFT JOIN biblio ON (items.biblionumber=biblio.biblionumber)  
 
LEFT JOIN branches ON (items.homebranch=branches.branchcode)
 
LEFT JOIN branches ON (items.homebranch=branches.branchcode)
WHERE (TO_DAYS(curdate())-TO_DAYS(date_due)) > '37' AND items.itemlost !=1 AND items.itemlost !=2 AND items.itemlost !=3 AND items.itemlost !=4 AND issues.branchcode = <<Utlånande bibliotek|branches>> AND issues.date_due BETWEEN <<Förfallodatum från|date>>-INTERVAL 1 DAY AND <<Förfallodatum till |date>>+INTERVAL 1 DAY
+
WHERE (TO_DAYS(curdate())-TO_DAYS(date_due)) > '37'  
ORDER BY items.homebranch ASC,items.ccode ASC, items.location ASC, items.itemcallnumber ASC, biblio.author ASC,biblio.title ASC
+
AND items.itemlost !=1  
</pre>
+
AND items.itemlost !=2  
 +
AND items.itemlost !=3  
 +
AND items.itemlost !=4  
 +
AND items.itemlost !=5
 +
AND issues.branchcode = <<Utlånande bibliotek|branches>>  
 +
ORDER BY items.homebranch ASC,items.ccode ASC, items.location ASC, items.itemcallnumber ASC, biblio.author ASC,biblio.title ASC</pre>
 +
 
 +
 
 +
== 2 Kontrolllista ==
 +
​Nästa steg är att ​kontrollera att ersättningsbeloppen blir rimliga ​och att markera böcker/låntagare som av någon orsak inte ska faktureras.
 +
 
 +
Kolla att schablonpriset är rimligt. Om inte:
 +
Klicka på strecken (--) under ''Annat pris än schablon?'' och mata in önskat pris ​i fältet ''Ersättninsgpris''
 +
 
 +
Finns det böcke​r/låntagare som av någon orsak inte ska faktureras?
 +
Klicka på bokstreckkoden och ändra Förlorat-status till Hopplöst fall.
 +
 
 +
Koderna skapas under Administration > Auktoriserade värden > LOST
 +
 
 +
Därefter ska man uppdatera sidan:
 +
 
 +
Det kan man göra på tre olika sätt:
 +
Funktionsknappen F5 på tangentbordet
 +
Uppdatera webbläsaren med de runda pilarna i webbläsarens verktygsfält
 +
Köra rapporten en gång till
 +
 
 +
När sidan har blivit uppdaterad finns de hopplösa fallen inte längre kvar i listan, och har man matat in ett annat pris än schablonpriset så syns det i kolumnen Annat pris än schablonpris
 +
 
 +
Slutligen ska man sätta Räkningsstatus på alla exemplar
  
 +
​Klicka på knappen Batchoperationer med 00 synliga poster ändring längst upp i vänstra kolumnen
  
== 2 Försenade böcker som inte har blivit fakturerade, med länk för att ändra status och spärra låntagaren ==
+
​Det kommer upp en ny sida
Nästa steg är att vi manuellt ändrar status till "På räkning" för de böcker som ska faktureras och att vi lägger in en spärr låntagaren under Begränsningar
+
 
 +
Ganska långt ned på sidan kommer rubriken Redigera exemplar
 +
 
 +
Ändra Förlorad-status till På räkning
 +
Spara längst ned sidan
  
 
<pre>
 
<pre>
 
SELECT   
 
SELECT   
branches.branchname AS 'ägande bibliotek',
+
CONCAT(branches.branchname,'<br>',
items.ccode AS samling,
+
CASE WHEN items.ccode IS NULL
items.location AS placering,
+
THEN '--'
items.itemcallnumber AS hyllsignum,
+
ELSE items.ccode
biblio.author AS författare,
+
END,'<br>',
biblio.title AS titel,   
+
CASE WHEN items.location IS NULL
items.barcode As streckkod,
+
THEN '--'
borrowers.cardnumber AS lånekortsnummer,  
+
ELSE
borrowers.surname AS efternamn,
+
authorised_values.lib
borrowers.firstname AS förnamn,
+
END,'<br>',
 +
items.itemcallnumber) AS Placering,  
 +
CONCAT(CASE WHEN biblio.author IS NULL
 +
THEN ''
 +
ELSE biblio.author
 +
END,'<br>',
 +
biblio.title,'<br>',   
 +
items.barcode) AS Bok,
 +
CONCAT(borrowers.cardnumber,'<br>',
 +
borrowers.surname,'<br>',
 +
borrowers.firstname) AS 'Låntagare',
 
issues.date_due AS förfallodatum,  
 
issues.date_due AS förfallodatum,  
 
items.itype AS exemplartyp,
 
items.itype AS exemplartyp,
 
CASE  
 
CASE  
        WHEN items.itype = 'BARN LJUD'  
+
WHEN items.itype IN ('BARN TIDSK','TIDSKRIFT')
 +
            THEN '50'
 +
                WHEN items.itype IN ('BARN LJUD','BARNBOK','BARNMP3','BARNTAL','BOKCDBARN','BOKDAISYBA','BOKMP3BARN','MUSCDBARN','MUSIKBARN')
 
             THEN '100'
 
             THEN '100'
WHEN items.itype = 'BARN TIDSK'  
+
WHEN items.itype IN ('BLURAY','TV-SPEL','FILM','Fjarrlan')
 +
            THEN '600'
 +
WHEN items.itype = 'LANGLAN'
 +
            THEN '150'
 +
WHEN items.ccode IN ('Vux','Mag','Tillf')
 +
            THEN '250'
 +
WHEN items.ccode IN ('Barn','BoU','Skoldepa','Ungdom')
 
             THEN '100'
 
             THEN '100'
WHEN items.itype = 'BARNBOK'  
+
        ELSE ' 999'
             THEN '100'  
+
    END AS 'Schablonpris',
         WHEN items.itype = 'BARNKORT'  
+
items.price AS 'Inköpspris',
            THEN '100'  
+
CASE
WHEN items.itype = 'BARNMP3'  
+
WHEN
 +
items.price
 +
/
 +
(CASE
 +
WHEN items.itype IN ('BARN TIDSK','TIDSKRIFT')
 +
             THEN '50'
 +
         WHEN items.itype IN ('BARN LJUD','BARNBOK','BARNMP3','BARNTAL','BOKCDBARN','BOKDAISYBA','BOKMP3BARN','MUSCDBARN','MUSIKBARN')
 
             THEN '100'
 
             THEN '100'
WHEN items.itype = 'BLURAY'  
+
WHEN items.itype IN ('BLURAY','TV-SPEL','FILM','Fjarrlan')
 
             THEN '600'
 
             THEN '600'
WHEN items.itype = 'BOK'
+
WHEN items.itype = 'LANGLAN'  
 +
            THEN '150'
 +
WHEN items.ccode IN ('Vux','Mag','Tillf')
 
             THEN '250'
 
             THEN '250'
WHEN items.itype = 'BOKCD'  
+
WHEN items.ccode IN ('Barn','BoU','Skoldepa','Ungdom')
            THEN '250'
 
WHEN items.itype = 'BOKCDBARN'  
 
 
             THEN '100'
 
             THEN '100'
WHEN items.itype = 'BOKDAISY'  
+
        ELSE ' 999'
             THEN '250'
+
    END)
WHEN items.itype = 'BOKDAISYBARN'  
+
    > '2'
 +
    THEN
 +
    'Mer än dubbla schablonpriset'
 +
    WHEN
 +
    items.price
 +
/
 +
(CASE
 +
WHEN items.itype IN ('BARN TIDSK','TIDSKRIFT')
 +
             THEN '50'
 +
                WHEN items.itype IN ('BARN LJUD','BARNBOK','BARNMP3','BARNTAL','BOKCDBARN','BOKDAISYBA','BOKMP3BARN','MUSCDBARN','MUSIKBARN')
 
             THEN '100'
 
             THEN '100'
WHEN items.itype = 'BOKMP3'  
+
WHEN items.itype IN ('BLURAY','TV-SPEL','FILM','Fjarrlan')
 +
            THEN '600'
 +
WHEN items.itype = 'LANGLAN'
 +
            THEN '150'
 +
WHEN items.ccode IN ('Vux','Mag','Tillf')
 
             THEN '250'
 
             THEN '250'
WHEN items.itype = 'BOKMP3BARN'  
+
WHEN items.ccode IN ('Barn','BoU','Skoldepa','Ungdom')
 
             THEN '100'
 
             THEN '100'
WHEN items.itype = 'FILM'
+
        ELSE ' 999'
            THEN '600'
+
    END)
WHEN items.itype = 'KORTLON'
+
    < '0.5'
            THEN '250'
+
    THEN  
WHEN items.itype = 'LJUDBOK'
+
    'Mindre än halva schablonpriset'
            THEN '250'
+
    ELSE ''
WHEN items.itype = 'MP3'
 
            THEN '250'
 
WHEN items.itype = 'STORSTIL'
 
            THEN '250'
 
WHEN items.itype = 'TIDSKRIFT'
 
            THEN '50'
 
WHEN items.itype = 'TV-SPEL'
 
            THEN '600'
 
              WHEN items.itype = 'SPRAKKURS'
 
            THEN '600'
 
        ELSE 'Schablonpris saknas'
 
 
     END
 
     END
     AS 'schablonpris',
+
     AS 'Större avvikelse?'
items.replacementprice AS pris,
+
    ,
CONCAT('<a href=\"/cgi-bin/koha/catalogue/moredetail.pl?itemnumber=', items.itemnumber, '&biblionumber=',biblio.biblionumber,'\" target="_blank">', items.barcode, '</a>' ) AS 'redigera status',
+
CONCAT('<a href=\"/cgi-bin/koha/cataloguing/additem.pl?op=edititem&biblionumber=', items.biblionumber, '&itemnumber=',items.itemnumber,'\" target="_blank">',  
CONCAT('<a href=\"/cgi-bin/koha/members/moremember.pl?borrowernumber=', borrowers.borrowernumber, '#reldebarments','\" target="_blank">', borrowers.cardnumber, '</a>' ) AS 'Spärra låntagaren'
+
CASE
 
+
WHEN items.replacementprice IS NULL
 +
THEN '--'
 +
ELSE
 +
items.replacementprice
 +
END, '</a>' ) AS 'Annat pris än schablon?',
 +
CONCAT('<a href=\"/cgi-bin/koha/catalogue/moredetail.pl?itemnumber=', items.itemnumber, '&biblionumber=',biblio.biblionumber,'\" target="_blank">', items.barcode, '</a>' ) AS 'Sätt Hopplöst fall på det som inte ska faktureras.',
 +
items.itemnumber
  
 
FROM borrowers  
 
FROM borrowers  
 
LEFT JOIN issues ON (borrowers.borrowernumber=issues.borrowernumber)  
 
LEFT JOIN issues ON (borrowers.borrowernumber=issues.borrowernumber)  
 
LEFT JOIN items ON (issues.itemnumber=items.itemnumber)  
 
LEFT JOIN items ON (issues.itemnumber=items.itemnumber)  
 +
LEFT JOIN authorised_values ON (items.location=authorised_values.authorised_value)
 
LEFT JOIN biblio ON (items.biblionumber=biblio.biblionumber)  
 
LEFT JOIN biblio ON (items.biblionumber=biblio.biblionumber)  
 
LEFT JOIN branches ON (items.homebranch=branches.branchcode)
 
LEFT JOIN branches ON (items.homebranch=branches.branchcode)
WHERE (TO_DAYS(curdate())-TO_DAYS(date_due)) > '37' AND items.itemlost !=1 AND items.itemlost !=2 AND items.itemlost !=3 AND items.itemlost !=4 AND issues.branchcode = <<Utlånande bibliotek|branches>> AND issues.date_due BETWEEN <<Förfallodatum från|date>>-INTERVAL 1 DAY AND <<Förfallodatum till|date>>+INTERVAL 1 DAY
+
WHERE (TO_DAYS(curdate())-TO_DAYS(date_due)) > '37'  
ORDER BY borrowers.cardnumber ASC, items.homebranch ASC,items.ccode ASC, items.location ASC, items.itemcallnumber ASC, biblio.author ASC,biblio.title ASC
+
AND items.itemlost !=1  
</pre>
+
AND items.itemlost !=2  
 +
AND items.itemlost !=3  
 +
AND items.itemlost !=4  
 +
AND items.itemlost !=5 AND issues.branchcode = <<Utlånande bibliotek|branches>>  
 +
ORDER BY borrowers.cardnumber ASC, items.homebranch ASC,items.ccode ASC, items.location ASC, items.itemcallnumber ASC, biblio.author ASC,biblio.title ASC</pre>
 +
 
 +
 
 +
== 3 Fakturautskrift, spärra låntagaren, bevakning ==
 +
Tredje steget är att skapa en faktura (ett fakturaunderlag).
 +
Klicka på Skriv ut faktura till höger om låntagarens namn
 +
Om samma låntagare får faktura på flera böcker så räcker det med att klicka på en av länkarna, all böcker samlas på en faktura.
 +
 
 +
Har samma låntagare mer än åtta böcker på räkning skrivs bara de åtta första titlarna ut.
 +
 
 +
Det står alltid Antal resultat 5 - det är inget att bry sig om
 +
 
 +
​Man kan bara skriva ut faktura på böcker som fått räkningsstatus samma dag. Det är en säkerhetsåtgärd för att samma bok inte ska kunna faktureras flera gånger om man har sena lån med olika återlämningsdatum
 +
 
 +
Fakturan (egentligen fakturaunderlaget) öppnas i en ny flik. Här man kan välja att skriva ut och/eller spara som pdf.
 +
 
 +
Kommunerna använder fakturaunderlaget på lite olika sätt, men det vanligaste är att man lägger det som bilaga i ekonomisystemet
 +
 
 +
​Klicka på Spärra låntagaren​
 +
Skriv något lämpligt under ​Begränsningar
  
 +
Klicka på Reservera för bevakning
 +
Kryssa för rätt exemplar så det blir en exemplarreservation
  
== 3 Fakturaunderlag ==
 
Tredje steget är att skapa ett fakturaunderlag.
 
 
<pre>
 
<pre>
SELECT p.attribute AS personnummer,  
+
SELECT  
 +
biblio.author AS Författare,
 +
biblio.title AS Titel,
 +
items.barcode AS Streckkod,
 +
issues.branchcode AS 'utlånande bibliotek',
 +
items.itemlost_on AS 'Fakturerad den',
 +
lant.cardnumber AS 'Lånad av streckkod',
 +
lant.surname AS 'Lånad av efternamn',
 +
lant.firstname AS 'Lånad av förnamn',
 +
CASE WHEN SUBSTRING(items.itemlost_on,1,10)=CURDATE()
 +
THEN
 +
CONCAT('<a href=\"/cgi-bin/koha/reports/guided_reports.pl?reports=705&phase=Run+this+report&param_name=Borrowernumber&sql_params=',lant.borrowernumber,'\" target="_blank">Skriv ut faktura</a>' )
 +
ELSE ''
 +
END
 +
as 'Skriv ut faktura',
 +
CONCAT('<a href=\"/cgi-bin/koha/members/moremember.pl?borrowernumber=', lant.borrowernumber, '#reldebarments','\" target="_blank">', CASE
 +
WHEN borrower_debarments.comment IS NULL
 +
THEN '--'
 +
ELSE (SELECT GROUP_CONCAT( DISTINCT BlocksInnerDets.BlocksDetails SEPARATOR '</br>')
 +
            FROM
 +
          (SELECT blocksInner.comment
 +
                    AS BlocksDetails, blocksInner.borrowernumber
 +
            FROM borrower_debarments blocksInner         
 +
) BlocksInnerDets
 +
        WHERE BlocksInnerDets.borrowernumber = lant.borrowernumber)
 +
END, '</a>' ) AS 'Spärra låntagaren',
 +
CONCAT('<a href=\"/cgi-bin/koha/reserve/request.pl?biblionumber=', items.biblionumber, '&findborrower=',  
 
CASE
 
CASE
WHEN g.categorycode = 'BARN'
+
    WHEN issues.branchcode = '8bxq'
THEN 'målsman för'
+
THEN 'sksbbevakning'
WHEN g.categorycode = 'ELEVTIDA'
+
WHEN issues.branchcode = '8bxz'
THEN 'målsman för'
+
THEN 'sksbbevakning'
 +
WHEN issues.branchcode = '8bya'
 +
THEN 'sksbbevakning'
 +
WHEN issues.branchcode = '8byb'
 +
THEN 'sksbbevakning'
 +
WHEN issues.branchcode = '8byc'
 +
THEN 'sksbbevakning'
 +
WHEN issues.branchcode = '8byi'
 +
THEN 'torebevakning'
 +
WHEN issues.branchcode = '8byl'
 +
THEN 'kabobevakning'
 +
WHEN issues.branchcode = '8bym'
 +
THEN 'kabobevakning'
 +
WHEN issues.branchcode = '8byo'
 +
THEN 'gullbevakning'
 +
WHEN issues.branchcode = '8byq'
 +
THEN 'maribevakning'
 +
WHEN issues.branchcode = '8byr'
 +
THEN 'sksbbevakning'
 +
WHEN issues.branchcode = '8bys'
 +
THEN 'torebevakning'
 +
WHEN issues.branchcode = '8nyb'
 +
THEN 'tikfbevakning'
 +
WHEN issues.branchcode = '8reg'
 +
THEN 'gullbevakning'
 +
        WHEN issues.branchcode = 'gull'
 +
THEN 'gullbevakning'
 +
WHEN issues.branchcode = 'hjo'
 +
THEN 'hjobevakning'
 +
WHEN issues.branchcode = 'hova'
 +
THEN 'gullbevakning'
 +
WHEN issues.branchcode = 'kabo'
 +
THEN 'kabobevakning'
 +
        WHEN issues.branchcode = 'kstr'
 +
THEN 'kabobevakning'
 +
WHEN issues.branchcode = 'mari'
 +
                THEN 'maribevakning'
 +
        WHEN issues.branchcode = 'sksb'
 +
                THEN 'sksbbevakning'
 +
WHEN issues.branchcode = 'tida'
 +
THEN 'tidabevakning'
 +
WHEN issues.branchcode = 'tikf'
 +
                THEN 'tikfbevakning'
 +
WHEN issues.branchcode = 'tore'
 +
THEN 'torebevakning'
 +
        WHEN issues.branchcode = 'skgy'
 +
THEN 'skgybevakning'
 +
        WHEN issues.branchcode = 'skgz'
 +
THEN 'skgybevakning'
 +
        WHEN issues.branchcode = 'kbro'
 +
THEN 'kbrobevakning'
 +
        WHEN issues.branchcode = 'lkav'
 +
THEN 'kbrobevakning'
 +
    ELSE ''
 +
END,'\" target="_blank">', CASE
 +
        WHEN issues.branchcode = '8bxq'
 +
THEN 'sksbbevakning'
 +
WHEN issues.branchcode = '8bxz'
 +
THEN 'sksbbevakning'
 +
WHEN issues.branchcode = '8bya'
 +
THEN 'sksbbevakning'
 +
WHEN issues.branchcode = '8byb'
 +
THEN 'sksbbevakning'
 +
WHEN issues.branchcode = '8byc'
 +
THEN 'sksbbevakning'
 +
WHEN issues.branchcode = '8byi'
 +
THEN 'torebevakning'
 +
WHEN issues.branchcode = '8byl'
 +
THEN 'kabobevakning'
 +
WHEN issues.branchcode = '8bym'
 +
THEN 'kabobevakning'
 +
WHEN issues.branchcode = '8byo'
 +
THEN 'gullbevakning'
 +
WHEN issues.branchcode = '8byq'
 +
THEN 'maribevakning'
 +
WHEN issues.branchcode = '8byr'
 +
THEN 'sksbbevakning'
 +
WHEN issues.branchcode = '8bys'
 +
THEN 'torebevakning'
 +
WHEN issues.branchcode = '8nyb'
 +
THEN 'tikfbevakning'
 +
WHEN issues.branchcode = '8reg'
 +
THEN 'gullbevakning'
 +
        WHEN issues.branchcode = 'gull'
 +
THEN 'gullbevakning'
 +
WHEN issues.branchcode = 'hjo'
 +
THEN 'hjobevakning'
 +
WHEN issues.branchcode = 'hova'
 +
THEN 'gullbevakning'
 +
WHEN issues.branchcode = 'kabo'
 +
THEN 'kabobevakning'
 +
        WHEN issues.branchcode = 'kstr'
 +
THEN 'kabobevakning'
 +
WHEN issues.branchcode = 'mari'
 +
                THEN 'maribevakning'
 +
        WHEN issues.branchcode = 'sksb'
 +
                THEN 'sksbbevakning'
 +
WHEN issues.branchcode = 'tida'
 +
THEN 'tidabevakning'
 +
WHEN issues.branchcode = 'tikf'
 +
                THEN 'tikfbevakning'
 +
WHEN issues.branchcode = 'tore'
 +
THEN 'torebevakning'
 +
WHEN issues.branchcode = 'skgy'
 +
THEN 'skgybevakning'
 +
WHEN issues.branchcode = 'skgz'
 +
THEN 'skgzbevakning'
 +
WHEN issues.branchcode = 'kbro'
 +
THEN 'kbrobevakning'
 +
WHEN issues.branchcode = 'lkav'
 +
THEN 'kbrobevakning'
 +
ELSE ''
 +
END, '</a>' ) AS 'Reservera för bevakning',
 +
qu.surname AS 'Reserverad av'
 +
 
 +
FROM items
 +
 
 +
LEFT JOIN reserves ON (items.itemnumber = reserves.itemnumber)
 +
LEFT JOIN issues ON (items.itemnumber = issues.itemnumber)
 +
LEFT JOIN biblio ON (items.biblionumber = biblio.biblionumber)
 +
LEFT JOIN borrowers lant ON (issues.borrowernumber = lant.borrowernumber)
 +
LEFT JOIN borrowers qu ON (reserves.borrowernumber = qu.borrowernumber)
 +
LEFT JOIN borrower_debarments ON (borrower_debarments.borrowernumber=lant.borrowernumber)
 +
 
 +
WHERE items.itemlost = 1
 +
AND issues.branchcode = <<Utlånande bibliotek|branches>>
 +
 
 +
GROUP BY items.itemnumber
 +
 
 +
ORDER BY SUBSTRING(items.itemlost_on,1,10) DESC,qu.cardnumber ASC, lant.borrowernumber DESC</pre>
 +
 
 +
==4 Faktura==
 +
När man klickar på Skriv ut faktura så körs den här rapporten i en ny flik
 +
 
 +
<pre>
 +
SELECT
 +
concat(CASE
 +
WHEN adressat.categorycode = 'BARN'
 +
THEN 'målsman för <br>'
 +
WHEN adressat.categorycode = 'ELEVTIDA'
 +
THEN 'målsman för <br>'
 
ELSE ''
 
ELSE ''
END
+
END,
AS 'Till',
+
adressat.firstname, ' ', adressat.surname,'<br>', adressat.address,'<br>',
g.surname AS Efternamn,  
+
adressat.address2,'<br>',
g.firstname AS Förnamn,  
+
adressat.zipcode,' ',
g.address AS Adress,  
+
adressat.city) AS Adress,
g.address2 AS adress,
+
p.attribute AS Personnummer
g.zipcode AS Postnummer,
+
 
g.city AS Postort,
+
FROM borrowers adressat
b.author AS Författare,
+
LEFT JOIN issues ON issues.borrowernumber=adressat.borrowernumber
b.title AS Titel,
+
LEFT JOIN items ON items.itemnumber=issues.itemnumber
i.barcode AS Streckkod,
+
LEFT JOIN biblio ON (biblio.biblionumber=items.biblionumber)
m.date_due AS Återlämningsdatum,
+
LEFT JOIN borrower_attributes p ON (adressat.borrowernumber=p.borrowernumber)
 +
WHERE items.itemlost = 1
 +
AND adressat.borrowernumber = <<Borrowernumber>>
 +
AND SUBSTRING(items.itemlost_on,1,10) = CURDATE()
 +
 
 +
UNION
 +
 
 +
SELECT
 
CASE  
 
CASE  
        WHEN i.itype = 'BARN LJUD'  
+
WHEN  
            THEN '100'
+
COUNT(items.itemnumber) = '1'
WHEN i.itype = 'BARN TIDSK'  
+
THEN  
            THEN '100'
+
'<b>En försenad bok</b>'
WHEN i.itype = 'BARNBOK'  
+
ELSE
            THEN '100'  
+
CONCAT('<b>',COUNT(items.itemnumber),' försenade böcker</b>') END
         WHEN i.itype = 'BARNKORT'  
+
AS 'Lån',
             THEN '100'  
+
'<b>Summa att betala</b>' AS 'Summa att betala'
WHEN i.itype = 'BARNMP3'  
+
FROM borrowers fakturerat
             THEN '100'
+
LEFT JOIN issues ON issues.borrowernumber=fakturerat.borrowernumber
WHEN i.itype = 'BLURAY'  
+
LEFT JOIN items ON items.itemnumber=issues.itemnumber
             THEN '600'
+
LEFT JOIN biblio ON (biblio.biblionumber=items.biblionumber)
WHEN i.itype = 'BOK'
+
WHERE items.itemlost = 1
             THEN '250'
+
AND fakturerat.borrowernumber = <<Borrowernumber>>
WHEN i.itype = 'BOKCD'  
+
AND SUBSTRING(items.itemlost_on,1,10) = CURDATE()
             THEN '250'
+
 
WHEN i.itype = 'BOKCDBARN'  
+
UNION
             THEN '100'
+
 
WHEN i.itype = 'BOKDAISY'  
+
SELECT
            THEN '250'
+
CASE
WHEN i.itype = 'BOKDAISYBARN'  
+
WHEN  
            THEN '100'
+
COUNT(items.itemnumber) > '8'
WHEN i.itype = 'BOKMP3'  
+
THEN  
            THEN '250'
+
CONCAT(SUBSTRING_INDEX(GROUP_CONCAT(DISTINCT biblio.title,' <br>streckkod: ',items.barcode,' <br>återlämningsdatum: ',items.onloan,' <br>pris: ',CASE
WHEN i.itype = 'LAROMDL'
+
         WHEN items.replacementprice IS NOT NULL
            THEN '250'
+
    THEN CONCAT(items.replacementprice,' kronor')
WHEN i.itype = 'LAROMTERM'  
+
WHEN items.itype IN ('BARN TIDSK','TIDSKRIFT')
             THEN '250'
+
             THEN '50.00 kronor'
WHEN i.itype = 'BOKMP3BARN'  
+
        WHEN items.itype IN ('BARN LJUD','BARNBOK','BARNMP3','BARNTAL','BOKCDBARN','BOKDAISYBA','BOKMP3BARN','MUSCDBARN','MUSIKBARN')
             THEN '100'
+
             THEN '100.00 kronor'
WHEN i.itype = 'FILM'
+
WHEN items.itype IN ('BLURAY','TV-SPEL','FILM','Fjarrlan')
             THEN '600'
+
             THEN '600.00 kronor'
WHEN i.itype = 'KORTLON'
+
WHEN items.itype = 'LANGLAN'  
             THEN '250'
+
             THEN '150.00 kronor'
WHEN i.itype = 'LJUDBOK'
+
WHEN items.ccode IN ('Vux','Mag','Tillf')
            THEN '250'
+
             THEN '250.00 kronor'
WHEN i.itype = 'MP3'
+
WHEN items.ccode IN ('Barn','BoU','Skoldepa','Ungdom')
             THEN '250'
+
             THEN '100.00 kronor'
WHEN i.itype = 'STORSTIL'
+
        ELSE ' 999.00 kronor'
            THEN '250'
+
    END
WHEN i.itype = 'TIDSKRIFT'
+
    SEPARATOR '<p>'), '<p>', 8),'<p> och ytterligare ',COUNT(items.itemnumber) -8,' böcker, se ditt konto för fullständiga uppgifter')
            THEN '50'
+
ELSE
WHEN i.itype = 'TV-SPEL'
+
GROUP_CONCAT(DISTINCT biblio.title,' <br>streckkod: ',items.barcode,' <br>återlämningsdatum: ',items.onloan,' <br>pris: ',CASE
             THEN '600'
+
        WHEN items.replacementprice IS NOT NULL
         ELSE 'Schablonpris saknas'
+
    THEN CONCAT(items.replacementprice,' kronor')
 +
WHEN items.itype IN ('BARN TIDSK','TIDSKRIFT')
 +
             THEN '50.00 kronor'
 +
        WHEN items.itype IN ('BARN LJUD','BARNBOK','BARNMP3','BARNTAL','BOKCDBARN','BOKDAISYBA','BOKMP3BARN','MUSCDBARN','MUSIKBARN')
 +
             THEN '100.00 kronor'
 +
WHEN items.itype IN ('BLURAY','TV-SPEL','FILM','Fjarrlan')
 +
             THEN '600.00 kronor'
 +
WHEN items.itype = 'LANGLAN'  
 +
             THEN '150.00 kronor'
 +
WHEN items.ccode IN ('Vux','Mag','Tillf')
 +
             THEN '250.00 kronor'
 +
WHEN items.ccode IN ('Barn','BoU','Skoldepa','Ungdom')
 +
             THEN '100.00 kronor'
 +
         ELSE ' 999.00 kronor'
 
     END
 
     END
     AS 'Pris',
+
     SEPARATOR '<p>')
i.replacementprice AS 'Faktiskt pris'
+
END
 +
,
 +
   
 +
SUM(CASE
 +
        WHEN items.replacementprice IS NOT NULL
 +
    THEN items.replacementprice
 +
WHEN items.itype IN ('BARN TIDSK','TIDSKRIFT')
 +
            THEN 50.00
 +
        WHEN items.itype IN ('BARN LJUD','BARNBOK','BARNMP3','BARNTAL','BOKCDBARN','BOKDAISYBA','BOKMP3BARN','MUSCDBARN','MUSIKBARN')
 +
            THEN 100.00
 +
WHEN items.itype IN ('BLURAY','TV-SPEL','FILM','Fjarrlan')
 +
            THEN 600.00
 +
WHEN items.itype = 'LANGLAN'
 +
            THEN 150.00
 +
WHEN items.ccode IN ('Vux','Mag','Tillf')
 +
            THEN 250.00
 +
WHEN items.ccode IN ('Barn','BoU','Skoldepa','Ungdom')
 +
            THEN 100.00
 +
        ELSE 999.00
 +
    END)
 +
 
 +
FROM borrowers fakturerat
 +
LEFT JOIN issues ON issues.borrowernumber=fakturerat.borrowernumber
 +
LEFT JOIN items ON items.itemnumber=issues.itemnumber
 +
LEFT JOIN biblio ON (biblio.biblionumber=items.biblionumber)
 +
WHERE items.itemlost = 1
 +
AND fakturerat.borrowernumber = <<Borrowernumber>>
 +
AND SUBSTRING(items.itemlost_on,1,10) = CURDATE()
 +
 
 +
UNION
  
FROM items i
+
SELECT '<b>Lämna tillbaks boken/böckerna så fort som möjligt så slipper du betala den här fakturan</b>' AS 'One',
 +
'' AS 'Two'
  
LEFT JOIN biblio b ON (i.biblionumber=b.biblionumber)
+
UNION
LEFT JOIN issues l ON (i.itemnumber=l.itemnumber)
 
LEFT JOIN issues m ON (i.itemnumber=m.itemnumber)
 
LEFT JOIN borrowers g ON (l.borrowernumber=g.borrowernumber)
 
LEFT JOIN borrower_attributes p ON (l.borrowernumber=p.borrowernumber)
 
LEFT JOIN branches u ON (l.branchcode=u.branchcode)
 
LEFT JOIN branches e ON (i.homebranch=e.branchcode)
 
LEFT JOIN authorised_values v ON (i.itemlost=v.authorised_value)
 
  
WHERE i.itemlost = 1 AND v.category='LOST' AND u.branchcode = <<Välj utlånande bibliotek|branches>> AND i.itemlost_on BETWEEN (<<Faktureringsdatum från (åååå-mm-dd)|date>>-INTERVAL 1 DAY) AND (<<Faktureringsdatum till (åååå-mm-dd)|date>>+INTERVAL 1 DAY)
+
SELECT CONCAT(branches.branchname,'<br>',branches.branchphone,'<br>',branches.branchemail),
 +
        CASE
 +
        WHEN branches.branchcode IN ('GULL','8BYO','8REG','FGBS','HOVA')
 +
        THEN '<img src="https://www.skovde.se/globalassets/_2018/kultur--fritid/stadsbiblioteket/bibliotek-mellansjo/gullspang-35px.jpg">'
 +
        WHEN branches.branchcode IN ('HJO')
 +
        THEN '<img src="https://www.skovde.se/globalassets/_2018/kultur--fritid/stadsbiblioteket/bibliotek-mellansjo/hjo-35px.jpg">'
 +
        WHEN branches.branchcode IN ('KABO','8BYL','8BYM','KSTR')
 +
        THEN '<img src="https://www.skovde.se/globalassets/_2018/kultur--fritid/stadsbiblioteket/bibliotek-mellansjo/karlsborg-35px.jpg">'
 +
        WHEN branches.branchcode IN ('MARI','8BYQ','MKRI','MVAN','VAGY')
 +
        THEN '<img src="https://www.skovde.se/globalassets/_2018/kultur--fritid/stadsbiblioteket/bibliotek-mellansjo/mariestad-35px.jpg">'
 +
        WHEN branches.branchcode IN ('SKSB','8BXQ','8BXZ','8BYA','8BYB','8BYC','8BYR','KBRO','LKAV','SKGY','SKGZ','SKBO','SKKO','SKPO')
 +
        THEN '<img src="https://www.skovde.se/globalassets/_2018/kultur--fritid/stadsbiblioteket/bibliotek-mellansjo/skovde-35px.jpg">'
 +
        WHEN branches.branchcode IN ('TIKF','8NYB','TIBOALDRE')
 +
        THEN '<img src="https://www.skovde.se/globalassets/_2018/kultur--fritid/stadsbiblioteket/bibliotek-mellansjo/tibro-35px.jpg">'
 +
        WHEN branches.branchcode IN ('TIDA','TEKE','TFOR','THOK','TKRI','TVAL')
 +
        THEN '<img src="https://www.skovde.se/globalassets/_2018/kultur--fritid/stadsbiblioteket/bibliotek-mellansjo/tidaholm-35px.jpg">'
 +
        WHEN branches.branchcode IN ('TORE','8BYI','8BYS')
 +
        THEN '<img src="https://www.skovde.se/globalassets/_2018/kultur--fritid/stadsbiblioteket/bibliotek-mellansjo/toreboda-35px.jpg">'
 +
        ELSE
 +
        ''
 +
        END
  
ORDER By g.cardnumber DESC
+
FROM borrowers adressat
 +
LEFT JOIN issues ON issues.borrowernumber=adressat.borrowernumber
 +
LEFT JOIN items ON items.itemnumber=issues.itemnumber
 +
LEFT JOIN branches ON (branches.branchcode=issues.branchcode)
 +
WHERE items.itemlost = 1
 +
AND adressat.borrowernumber = <<Borrowernumber>>
 +
AND SUBSTRING(items.itemlost_on,1,10) = CURDATE()
 
</pre>
 
</pre>

Nuvarande version från 17 april 2023 kl. 10.45

Beskrivning av Bibliotek Mellansjös faktureringsprocess

Bibliotek Mellansjös faktureringsprocess är lite halvmanuell, det är inte ett fullfjädrat faktureringssystem, utan slutresultatet är en pdf som går att ladda upp i kommunens ekonomisystem. Låntagaren ska få faktura från det bibliotek man lånade boken på, oavsett var den egentligen hör hemma.

vi har gjort följande inställningar i systempreferenserna:

DefaultLongOverdueChargeValue är tomt, eftersom vi inte vill att ersättningsbeloppet ksa synas i systemet

DefaultLongOverdueLostValue är tomt, eftersom vi vill ha kontroll över vilka böcker som blir fakturerade

MarkLostItemsAsReturned skulle vi helst vilja ha helt tomt, men tyvärr måste man välja något där, så vi har valt "from the holds to pull list". Vi vill nämligen att böckerna ska finnas kvar på låntagarens konto

Vi har gjort en ändring i de bibliografiska ramverken - delfält 952$1 ska vara synligt för redaktör https://www.adressentilldinkoha.se/cgi-bin/koha/admin/marc_subfields_structure.pl?op=add_form&tagfield=952&tagsubfield=1&frameworkcode=#sub1field

Vi använder inte cronjobbet Long overdues

Pocessen består av fyra rapporter som körs i denna ordning:


1 Leta-lista

Det första vi gör är att ta ut en lista på böcker som inte har blivit återlämnade, fast de är mer än 37 dagar sena, så vi kan leta efter dem i hyllan i fall vi missat att avregistrera dem i återlämningen.

SELECT  
branches.branchname AS Bibliotek,
items.ccode AS Samling,
authorised_values.lib AS Placering,
items.itemcallnumber AS Hyllsignum,
biblio.author AS Författare,
CASE 
WHEN biblio.frameworkcode='SER' AND items.enumchron IS NOT NULL
THEN 
CONCAT(biblio.title,'<br>',items.enumchron)
ELSE
biblio.title
END 
AS Titel,
items.barcode AS Streckkod,
items.itype AS Exemplartyp

FROM borrowers 
LEFT JOIN issues ON (borrowers.borrowernumber=issues.borrowernumber) 
LEFT JOIN items ON (issues.itemnumber=items.itemnumber) 
LEFT JOIN authorised_values ON (items.location=authorised_values.authorised_value)
LEFT JOIN biblio ON (items.biblionumber=biblio.biblionumber) 
LEFT JOIN branches ON (items.homebranch=branches.branchcode)
WHERE (TO_DAYS(curdate())-TO_DAYS(date_due)) > '37' 
AND items.itemlost !=1 
AND items.itemlost !=2 
AND items.itemlost !=3 
AND items.itemlost !=4 
AND items.itemlost !=5 
AND issues.branchcode = <<Utlånande bibliotek|branches>> 
ORDER BY items.homebranch ASC,items.ccode ASC, items.location ASC, items.itemcallnumber ASC, biblio.author ASC,biblio.title ASC


2 Kontrolllista

​Nästa steg är att ​kontrollera att ersättningsbeloppen blir rimliga ​och att markera böcker/låntagare som av någon orsak inte ska faktureras.

Kolla att schablonpriset är rimligt. Om inte: Klicka på strecken (--) under Annat pris än schablon? och mata in önskat pris ​i fältet Ersättninsgpris

Finns det böcke​r/låntagare som av någon orsak inte ska faktureras? Klicka på bokstreckkoden och ändra Förlorat-status till Hopplöst fall.

Koderna skapas under Administration > Auktoriserade värden > LOST

Därefter ska man uppdatera sidan:

Det kan man göra på tre olika sätt: Funktionsknappen F5 på tangentbordet Uppdatera webbläsaren med de runda pilarna i webbläsarens verktygsfält Köra rapporten en gång till

När sidan har blivit uppdaterad finns de hopplösa fallen inte längre kvar i listan, och har man matat in ett annat pris än schablonpriset så syns det i kolumnen Annat pris än schablonpris

Slutligen ska man sätta Räkningsstatus på alla exemplar

​Klicka på knappen Batchoperationer med 00 synliga poster ändring längst upp i vänstra kolumnen

​Det kommer upp en ny sida

Ganska långt ned på sidan kommer rubriken Redigera exemplar

Ändra Förlorad-status till På räkning Spara längst ned på sidan

SELECT  
CONCAT(branches.branchname,'<br>',
CASE WHEN items.ccode IS NULL 
THEN '--'
ELSE items.ccode
END,'<br>',
CASE WHEN items.location IS NULL 
THEN '--'
ELSE
authorised_values.lib
END,'<br>',
items.itemcallnumber) AS Placering, 
CONCAT(CASE WHEN biblio.author IS NULL 
THEN ''
ELSE biblio.author
END,'<br>',
biblio.title,'<br>',  
items.barcode) AS Bok,
CONCAT(borrowers.cardnumber,'<br>',
borrowers.surname,'<br>',
borrowers.firstname) AS 'Låntagare',
issues.date_due AS förfallodatum, 
items.itype AS exemplartyp,
CASE 
		WHEN items.itype IN ('BARN TIDSK','TIDSKRIFT')
            THEN '50'
                WHEN items.itype IN ('BARN LJUD','BARNBOK','BARNMP3','BARNTAL','BOKCDBARN','BOKDAISYBA','BOKMP3BARN','MUSCDBARN','MUSIKBARN')
            THEN '100'
		WHEN items.itype IN ('BLURAY','TV-SPEL','FILM','Fjarrlan')
            THEN '600'
		WHEN items.itype = 'LANGLAN' 
            THEN '150'
		WHEN items.ccode IN ('Vux','Mag','Tillf')
            THEN '250'
		WHEN items.ccode IN ('Barn','BoU','Skoldepa','Ungdom') 
            THEN '100'
        ELSE ' 999'
    END AS 'Schablonpris',
items.price AS 'Inköpspris',
CASE 
WHEN
items.price
/
(CASE 
		WHEN items.itype IN ('BARN TIDSK','TIDSKRIFT')
            THEN '50'
        WHEN items.itype IN ('BARN LJUD','BARNBOK','BARNMP3','BARNTAL','BOKCDBARN','BOKDAISYBA','BOKMP3BARN','MUSCDBARN','MUSIKBARN')
            THEN '100'
		WHEN items.itype IN ('BLURAY','TV-SPEL','FILM','Fjarrlan')
            THEN '600'
		WHEN items.itype = 'LANGLAN' 
            THEN '150'
		WHEN items.ccode IN ('Vux','Mag','Tillf')
            THEN '250'
		WHEN items.ccode IN ('Barn','BoU','Skoldepa','Ungdom') 
            THEN '100'
        ELSE ' 999'
    END)
    > '2'
    THEN 
    'Mer än dubbla schablonpriset'
    WHEN
    items.price
/
(CASE 
		WHEN items.itype IN ('BARN TIDSK','TIDSKRIFT')
            THEN '50'
                WHEN items.itype IN ('BARN LJUD','BARNBOK','BARNMP3','BARNTAL','BOKCDBARN','BOKDAISYBA','BOKMP3BARN','MUSCDBARN','MUSIKBARN')
            THEN '100'
		WHEN items.itype IN ('BLURAY','TV-SPEL','FILM','Fjarrlan')
            THEN '600'
		WHEN items.itype = 'LANGLAN' 
            THEN '150'
		WHEN items.ccode IN ('Vux','Mag','Tillf')
            THEN '250'
		WHEN items.ccode IN ('Barn','BoU','Skoldepa','Ungdom') 
            THEN '100'
        ELSE ' 999'
    END)
    < '0.5'
    THEN 
    'Mindre än halva schablonpriset'
    ELSE ''
    END
    AS 'Större avvikelse?'
    ,
CONCAT('<a href=\"/cgi-bin/koha/cataloguing/additem.pl?op=edititem&biblionumber=', items.biblionumber, '&itemnumber=',items.itemnumber,'\" target="_blank">', 
CASE 
WHEN items.replacementprice IS NULL
THEN '--'
ELSE
items.replacementprice
END, '</a>' ) AS 'Annat pris än schablon?',
CONCAT('<a href=\"/cgi-bin/koha/catalogue/moredetail.pl?itemnumber=', items.itemnumber, '&biblionumber=',biblio.biblionumber,'\" target="_blank">', items.barcode, '</a>' ) AS 'Sätt Hopplöst fall på det som inte ska faktureras.',
items.itemnumber

FROM borrowers 
LEFT JOIN issues ON (borrowers.borrowernumber=issues.borrowernumber) 
LEFT JOIN items ON (issues.itemnumber=items.itemnumber) 
LEFT JOIN authorised_values ON (items.location=authorised_values.authorised_value)
LEFT JOIN biblio ON (items.biblionumber=biblio.biblionumber) 
LEFT JOIN branches ON (items.homebranch=branches.branchcode)
WHERE (TO_DAYS(curdate())-TO_DAYS(date_due)) > '37' 
AND items.itemlost !=1 
AND items.itemlost !=2 
AND items.itemlost !=3 
AND items.itemlost !=4 
AND items.itemlost !=5 AND issues.branchcode = <<Utlånande bibliotek|branches>> 
ORDER BY borrowers.cardnumber ASC, items.homebranch ASC,items.ccode ASC, items.location ASC, items.itemcallnumber ASC, biblio.author ASC,biblio.title ASC


3 Fakturautskrift, spärra låntagaren, bevakning

Tredje steget är att skapa en faktura (ett fakturaunderlag). Klicka på Skriv ut faktura till höger om låntagarens namn Om samma låntagare får faktura på flera böcker så räcker det med att klicka på en av länkarna, all böcker samlas på en faktura.

Har samma låntagare mer än åtta böcker på räkning skrivs bara de åtta första titlarna ut.

Det står alltid Antal resultat 5 - det är inget att bry sig om

​Man kan bara skriva ut faktura på böcker som fått räkningsstatus samma dag. Det är en säkerhetsåtgärd för att samma bok inte ska kunna faktureras flera gånger om man har sena lån med olika återlämningsdatum

Fakturan (egentligen fakturaunderlaget) öppnas i en ny flik. Här man kan välja att skriva ut och/eller spara som pdf.

Kommunerna använder fakturaunderlaget på lite olika sätt, men det vanligaste är att man lägger det som bilaga i ekonomisystemet

​Klicka på Spärra låntagaren​ Skriv något lämpligt under ​Begränsningar

Klicka på Reservera för bevakning Kryssa för rätt exemplar så det blir en exemplarreservation

SELECT 
biblio.author AS Författare,
biblio.title AS Titel,
items.barcode AS Streckkod,
issues.branchcode AS 'utlånande bibliotek',
items.itemlost_on AS 'Fakturerad den',
lant.cardnumber AS 'Lånad av streckkod',
lant.surname AS 'Lånad av efternamn',
lant.firstname AS 'Lånad av förnamn',
CASE WHEN SUBSTRING(items.itemlost_on,1,10)=CURDATE()
THEN 
CONCAT('<a href=\"/cgi-bin/koha/reports/guided_reports.pl?reports=705&phase=Run+this+report&param_name=Borrowernumber&sql_params=',lant.borrowernumber,'\" target="_blank">Skriv ut faktura</a>' ) 
ELSE ''
END
as 'Skriv ut faktura',
CONCAT('<a href=\"/cgi-bin/koha/members/moremember.pl?borrowernumber=', lant.borrowernumber, '#reldebarments','\" target="_blank">', CASE
WHEN borrower_debarments.comment IS NULL
THEN '--'
ELSE (SELECT GROUP_CONCAT( DISTINCT BlocksInnerDets.BlocksDetails SEPARATOR '</br>')
            FROM
           (SELECT blocksInner.comment
                    AS BlocksDetails, blocksInner.borrowernumber 
            FROM borrower_debarments blocksInner           
			) BlocksInnerDets
         WHERE BlocksInnerDets.borrowernumber = lant.borrowernumber)
END, '</a>' ) AS 'Spärra låntagaren',
CONCAT('<a href=\"/cgi-bin/koha/reserve/request.pl?biblionumber=', items.biblionumber, '&findborrower=', 
CASE
    WHEN issues.branchcode = '8bxq'
		THEN 'sksbbevakning'
	WHEN issues.branchcode = '8bxz'
		THEN 'sksbbevakning'
	WHEN issues.branchcode = '8bya'
		THEN 'sksbbevakning'
	WHEN issues.branchcode = '8byb'
		THEN 'sksbbevakning'
	WHEN issues.branchcode = '8byc'
		THEN 'sksbbevakning'
	WHEN issues.branchcode = '8byi'
		THEN 'torebevakning'
	WHEN issues.branchcode = '8byl'
		THEN 'kabobevakning'
	WHEN issues.branchcode = '8bym'
		THEN 'kabobevakning'
	WHEN issues.branchcode = '8byo'
		THEN 'gullbevakning'
	WHEN issues.branchcode = '8byq'
		THEN 'maribevakning'
	WHEN issues.branchcode = '8byr'
		THEN 'sksbbevakning'
	WHEN issues.branchcode = '8bys'
		THEN 'torebevakning'
	WHEN issues.branchcode = '8nyb'
		THEN 'tikfbevakning'
	WHEN issues.branchcode = '8reg'
		THEN 'gullbevakning'
        WHEN issues.branchcode = 'gull'
		THEN 'gullbevakning'
	WHEN issues.branchcode = 'hjo'
		THEN 'hjobevakning'
	WHEN issues.branchcode = 'hova'
		THEN 'gullbevakning'
	WHEN issues.branchcode = 'kabo'
		THEN 'kabobevakning'
        WHEN issues.branchcode = 'kstr'
		THEN 'kabobevakning'
	WHEN issues.branchcode = 'mari'
                THEN 'maribevakning'
        WHEN issues.branchcode = 'sksb'
                THEN 'sksbbevakning'
	WHEN issues.branchcode = 'tida'
		THEN 'tidabevakning'
	WHEN issues.branchcode = 'tikf'
                THEN 'tikfbevakning'
	WHEN issues.branchcode = 'tore'
		THEN 'torebevakning'
        WHEN issues.branchcode = 'skgy'
		THEN 'skgybevakning'
        WHEN issues.branchcode = 'skgz'
		THEN 'skgybevakning'
        WHEN issues.branchcode = 'kbro'
		THEN 'kbrobevakning'
        WHEN issues.branchcode = 'lkav'
		THEN 'kbrobevakning'
    ELSE ''
END,'\" target="_blank">', CASE
        WHEN issues.branchcode = '8bxq'
		THEN 'sksbbevakning'
	WHEN issues.branchcode = '8bxz'
		THEN 'sksbbevakning'
	WHEN issues.branchcode = '8bya'
		THEN 'sksbbevakning'
	WHEN issues.branchcode = '8byb'
		THEN 'sksbbevakning'
	WHEN issues.branchcode = '8byc'
		THEN 'sksbbevakning'
	WHEN issues.branchcode = '8byi'
		THEN 'torebevakning'
	WHEN issues.branchcode = '8byl'
		THEN 'kabobevakning'
	WHEN issues.branchcode = '8bym'
		THEN 'kabobevakning'
	WHEN issues.branchcode = '8byo'
		THEN 'gullbevakning'
	WHEN issues.branchcode = '8byq'
		THEN 'maribevakning'
	WHEN issues.branchcode = '8byr'
		THEN 'sksbbevakning'
	WHEN issues.branchcode = '8bys'
		THEN 'torebevakning'
	WHEN issues.branchcode = '8nyb'
		THEN 'tikfbevakning'
	WHEN issues.branchcode = '8reg'
		THEN 'gullbevakning'
        WHEN issues.branchcode = 'gull'
		THEN 'gullbevakning'
	WHEN issues.branchcode = 'hjo'
		THEN 'hjobevakning'
	WHEN issues.branchcode = 'hova'
		THEN 'gullbevakning'
	WHEN issues.branchcode = 'kabo'
		THEN 'kabobevakning'
        WHEN issues.branchcode = 'kstr'
		THEN 'kabobevakning'
	WHEN issues.branchcode = 'mari'
                THEN 'maribevakning'
        WHEN issues.branchcode = 'sksb'
                THEN 'sksbbevakning'
	WHEN issues.branchcode = 'tida'
		THEN 'tidabevakning'
	WHEN issues.branchcode = 'tikf'
                THEN 'tikfbevakning'
	WHEN issues.branchcode = 'tore'
		THEN 'torebevakning'
	WHEN issues.branchcode = 'skgy'
		THEN 'skgybevakning'
	WHEN issues.branchcode = 'skgz'
		THEN 'skgzbevakning'
	WHEN issues.branchcode = 'kbro'
		THEN 'kbrobevakning'
	WHEN issues.branchcode = 'lkav'
		THEN 'kbrobevakning'
	ELSE ''
END, '</a>' ) AS 'Reservera för bevakning',
qu.surname AS 'Reserverad av'

FROM items

LEFT JOIN reserves ON (items.itemnumber = reserves.itemnumber)
LEFT JOIN issues ON (items.itemnumber = issues.itemnumber)
LEFT JOIN biblio ON (items.biblionumber = biblio.biblionumber)
LEFT JOIN borrowers lant ON (issues.borrowernumber = lant.borrowernumber)
LEFT JOIN borrowers qu ON (reserves.borrowernumber = qu.borrowernumber)
LEFT JOIN borrower_debarments ON (borrower_debarments.borrowernumber=lant.borrowernumber)

WHERE items.itemlost = 1 
AND issues.branchcode = <<Utlånande bibliotek|branches>> 

GROUP BY items.itemnumber

ORDER BY SUBSTRING(items.itemlost_on,1,10) DESC,qu.cardnumber ASC, lant.borrowernumber DESC

4 Faktura

När man klickar på Skriv ut faktura så körs den här rapporten i en ny flik

SELECT 
concat(CASE
		WHEN adressat.categorycode = 'BARN'
			THEN 'målsman för <br>'
		WHEN adressat.categorycode = 'ELEVTIDA'
			THEN 'målsman för <br>'
		ELSE ''
	END,
adressat.firstname, ' ', adressat.surname,'<br>', adressat.address,'<br>',
adressat.address2,'<br>',
adressat.zipcode,' ',
adressat.city) AS Adress,
p.attribute AS Personnummer

FROM borrowers adressat
LEFT JOIN issues ON issues.borrowernumber=adressat.borrowernumber
LEFT JOIN items ON items.itemnumber=issues.itemnumber
LEFT JOIN biblio ON (biblio.biblionumber=items.biblionumber)
LEFT JOIN borrower_attributes p ON (adressat.borrowernumber=p.borrowernumber)
WHERE items.itemlost = 1 
AND adressat.borrowernumber = <<Borrowernumber>> 
AND SUBSTRING(items.itemlost_on,1,10) = CURDATE()

UNION

SELECT 
CASE 
WHEN 
COUNT(items.itemnumber) = '1'
THEN 
'<b>En försenad bok</b>'
ELSE
CONCAT('<b>',COUNT(items.itemnumber),' försenade böcker</b>') END
AS 'Lån',
'<b>Summa att betala</b>' AS 'Summa att betala'
FROM borrowers fakturerat
LEFT JOIN issues ON issues.borrowernumber=fakturerat.borrowernumber
LEFT JOIN items ON items.itemnumber=issues.itemnumber
LEFT JOIN biblio ON (biblio.biblionumber=items.biblionumber)
WHERE items.itemlost = 1 
AND fakturerat.borrowernumber = <<Borrowernumber>> 
AND SUBSTRING(items.itemlost_on,1,10) = CURDATE()

UNION

SELECT 
CASE
WHEN 
COUNT(items.itemnumber) > '8'
THEN 
CONCAT(SUBSTRING_INDEX(GROUP_CONCAT(DISTINCT biblio.title,' <br>streckkod: ',items.barcode,' <br>återlämningsdatum: ',items.onloan,' <br>pris: ',CASE 
        WHEN items.replacementprice IS NOT NULL
	     THEN CONCAT(items.replacementprice,' kronor')
	WHEN items.itype IN ('BARN TIDSK','TIDSKRIFT')
            THEN '50.00 kronor'
        WHEN items.itype IN ('BARN LJUD','BARNBOK','BARNMP3','BARNTAL','BOKCDBARN','BOKDAISYBA','BOKMP3BARN','MUSCDBARN','MUSIKBARN')
            THEN '100.00 kronor'
	WHEN items.itype IN ('BLURAY','TV-SPEL','FILM','Fjarrlan')
            THEN '600.00 kronor'
	WHEN items.itype = 'LANGLAN' 
            THEN '150.00 kronor'
	WHEN items.ccode IN ('Vux','Mag','Tillf')
            THEN '250.00 kronor'
	WHEN items.ccode IN ('Barn','BoU','Skoldepa','Ungdom') 
            THEN '100.00 kronor'
        ELSE ' 999.00 kronor'
    END
    SEPARATOR '<p>'), '<p>', 8),'<p> och ytterligare ',COUNT(items.itemnumber) -8,' böcker, se ditt konto för fullständiga uppgifter')
ELSE
GROUP_CONCAT(DISTINCT biblio.title,' <br>streckkod: ',items.barcode,' <br>återlämningsdatum: ',items.onloan,' <br>pris: ',CASE 
        WHEN items.replacementprice IS NOT NULL
	    THEN CONCAT(items.replacementprice,' kronor')
	WHEN items.itype IN ('BARN TIDSK','TIDSKRIFT')
            THEN '50.00 kronor'
        WHEN items.itype IN ('BARN LJUD','BARNBOK','BARNMP3','BARNTAL','BOKCDBARN','BOKDAISYBA','BOKMP3BARN','MUSCDBARN','MUSIKBARN')
            THEN '100.00 kronor'
	WHEN items.itype IN ('BLURAY','TV-SPEL','FILM','Fjarrlan')
            THEN '600.00 kronor'
	WHEN items.itype = 'LANGLAN' 
            THEN '150.00 kronor'
	WHEN items.ccode IN ('Vux','Mag','Tillf')
            THEN '250.00 kronor'
	WHEN items.ccode IN ('Barn','BoU','Skoldepa','Ungdom') 
            THEN '100.00 kronor'
        ELSE ' 999.00 kronor'
    END
    SEPARATOR '<p>')
END
,
    
SUM(CASE 
        WHEN items.replacementprice IS NOT NULL
	    THEN items.replacementprice
	WHEN items.itype IN ('BARN TIDSK','TIDSKRIFT')
            THEN 50.00
        WHEN items.itype IN ('BARN LJUD','BARNBOK','BARNMP3','BARNTAL','BOKCDBARN','BOKDAISYBA','BOKMP3BARN','MUSCDBARN','MUSIKBARN')
            THEN 100.00
	WHEN items.itype IN ('BLURAY','TV-SPEL','FILM','Fjarrlan')
            THEN 600.00
	WHEN items.itype = 'LANGLAN' 
            THEN 150.00
	WHEN items.ccode IN ('Vux','Mag','Tillf')
            THEN 250.00
	WHEN items.ccode IN ('Barn','BoU','Skoldepa','Ungdom') 
            THEN 100.00
        ELSE 999.00
    END)

FROM borrowers fakturerat
LEFT JOIN issues ON issues.borrowernumber=fakturerat.borrowernumber
LEFT JOIN items ON items.itemnumber=issues.itemnumber
LEFT JOIN biblio ON (biblio.biblionumber=items.biblionumber)
WHERE items.itemlost = 1 
AND fakturerat.borrowernumber = <<Borrowernumber>> 
AND SUBSTRING(items.itemlost_on,1,10) = CURDATE()

UNION

SELECT '<b>Lämna tillbaks boken/böckerna så fort som möjligt så slipper du betala den här fakturan</b>' AS 'One',
'' AS 'Two'

UNION

SELECT CONCAT(branches.branchname,'<br>',branches.branchphone,'<br>',branches.branchemail),
        CASE 
        WHEN branches.branchcode IN ('GULL','8BYO','8REG','FGBS','HOVA')
        THEN '<img src="https://www.skovde.se/globalassets/_2018/kultur--fritid/stadsbiblioteket/bibliotek-mellansjo/gullspang-35px.jpg">'
        WHEN branches.branchcode IN ('HJO')
        THEN '<img src="https://www.skovde.se/globalassets/_2018/kultur--fritid/stadsbiblioteket/bibliotek-mellansjo/hjo-35px.jpg">'
        WHEN branches.branchcode IN ('KABO','8BYL','8BYM','KSTR')
        THEN '<img src="https://www.skovde.se/globalassets/_2018/kultur--fritid/stadsbiblioteket/bibliotek-mellansjo/karlsborg-35px.jpg">'
        WHEN branches.branchcode IN ('MARI','8BYQ','MKRI','MVAN','VAGY')
        THEN '<img src="https://www.skovde.se/globalassets/_2018/kultur--fritid/stadsbiblioteket/bibliotek-mellansjo/mariestad-35px.jpg">'
        WHEN branches.branchcode IN ('SKSB','8BXQ','8BXZ','8BYA','8BYB','8BYC','8BYR','KBRO','LKAV','SKGY','SKGZ','SKBO','SKKO','SKPO')
        THEN '<img src="https://www.skovde.se/globalassets/_2018/kultur--fritid/stadsbiblioteket/bibliotek-mellansjo/skovde-35px.jpg">'
        WHEN branches.branchcode IN ('TIKF','8NYB','TIBOALDRE')
        THEN '<img src="https://www.skovde.se/globalassets/_2018/kultur--fritid/stadsbiblioteket/bibliotek-mellansjo/tibro-35px.jpg">'
        WHEN branches.branchcode IN ('TIDA','TEKE','TFOR','THOK','TKRI','TVAL')
        THEN '<img src="https://www.skovde.se/globalassets/_2018/kultur--fritid/stadsbiblioteket/bibliotek-mellansjo/tidaholm-35px.jpg">'
        WHEN branches.branchcode IN ('TORE','8BYI','8BYS')
        THEN '<img src="https://www.skovde.se/globalassets/_2018/kultur--fritid/stadsbiblioteket/bibliotek-mellansjo/toreboda-35px.jpg">'
        ELSE
        ''
        END

FROM borrowers adressat
LEFT JOIN issues ON issues.borrowernumber=adressat.borrowernumber
LEFT JOIN items ON items.itemnumber=issues.itemnumber
LEFT JOIN branches ON (branches.branchcode=issues.branchcode)
WHERE items.itemlost = 1 
AND adressat.borrowernumber = <<Borrowernumber>> 
AND SUBSTRING(items.itemlost_on,1,10) = CURDATE()