Koha-devel
Threads by month
- ----- 2026 -----
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2004 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2003 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2002 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2001 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
May 2002
- 17 participants
- 80 discussions
Forwarding, FYI, and if anyone has time to answer any of the questions.
If not, ill have a crack at them after work today.
Chris
----Forwarded Message-----
> From: Rosalie Blake <rosalie(a)library.org.nz>
> To: Olugbenga Adara <gbengaadara(a)yahoo.com>
> Cc: chris Cormack <chris(a)katipo.co.nz>
> Subject: Re: Some Info on KOHA
> Date: 09 May 2002 09:19:46 +1200
>
> Hello Olugbenga,
>
> On 8 May 2002, at 10:03, Olugbenga Adara wrote:
>
> > I have seen, downloaded and briefly evaluated Koha
> > some 12 months ago. But now I am thinking of
> > introducing koha to a University Library (Obafemi
> > Awolowo University, Ile-Ife ) here in Nigeria. I would
> > like to know the following things please
> >
> > 1. Can Koha be used without barcodes ? Presently the
> > library does not use any barcode and i wonder whether
> > other means may be used.
> Yes, definitely. If you want to use it for circulation, you need some
> identifier which is unique to every item you want to issue, but you
> possibly have an accession number of some sort. There is no
> reason you shouldn't use that. We use barcodes because it is
> quicker to scan a barcode with a reader, than to type a 6-digit or
> more number. But we frequently just type the barcode number on
> machines that do not have scanners.
> >
> > 2. How reliable is the Marc Import tool
> Sorry, I can't answer this. You need to ask this on the koha listserv:
> koha(a)lists.katipo.co.nz which you can join by following the leads on
> http://www.koha.org/mailing_list.html.
> >
> > 3. The library intends to start computerisation by
> > only using the opac - allowing patrons to search for
> > books. Could Koha function (OPAC) without patron
> > information?
> I think so, although it will not be able to report on whether an item is
> on issue or available for borrowing. Again, the listserv will give you a
> more authoritative answer.
> I've copied my reply to Chris Cormack, who was the chief
> programmer (still is) on Koha. He may add some remarks of his own.
> >
> > I also want to thank you for the great job you did by
> > releasing koha gpl
> Thank you. We're very proud ot it.
> Good Luck
> Rosalie Blake
> Horowhenua Library Trust
> >
> > Hope to get your reply soon
> >
> > thanks
> >
> > Olugbenga Adara,
> > Ibadan, Nigeria
> >
> > __________________________________________________
> > Do You Yahoo!?
> > Yahoo! Health - your guide to health and wellness
> > http://health.yahoo.com
>
>
--
3
2
In attachment, you will find my proposition for MARC version. don't
hesitate to do any remarks.
RTF version and OpenOffice.org original version
--
Paul
{\rtf1\ansi\deff0\adeflang1025
{\fonttbl{\f0\froman\fprq2\fcharset0 Times New Roman{\*\falt Thorndale};}{\f1\froman\fprq2\fcharset0 Times New Roman{\*\falt Thorndale};}{\f2\fswiss\fprq2\fcharset0 Arial{\*\falt Albany};}{\f3\fnil\fprq1\fcharset0 Courier New;}{\f4\fnil\fprq0\fcharset2 StarSymbol;}{\f5\fnil\fprq2\fcharset0 Times New Roman;}{\f6\fnil\fprq2\fcharset1 Times New Roman;}{\f7\fnil\fprq2\fcharset0 HG Mincho Light J;}{\f8\fnil\fprq2\fcharset0 Arial Unicode MS;}}
{\colortbl;\red0\green0\blue0;\red255\green0\blue0;\red128\green128\blue128;}
{\stylesheet{\s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\snext1 Standard;}
{\s2\li567\ri0\fi0\sa120\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\sbasedon1\snext2 Corps de texte;}
{\s3\li567\ri0\fi0\sb240\sa120\keepn\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\afs28\lang255\ltrch\dbch\afs28\langfe255\loch\f2\fs28\lang1033\sbasedon1\snext2 Titre;}
{\s4\li0\ri0\fi0\sb240\sa120\box\brdrs\brdrw1\brdrcf1\brsp28{\*\brdrt\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28{\*\brdrl\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28{\*\brdrb\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28{\*\brdrr\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28\keepn\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\afs32\lang255\ab\ltrch\dbch\afs32\langfe255\ab\loch\f2\fs32\lang1033\b\sbasedon3\snext2{\*\soutlvl0} Titre 1;}
{\s5\li283\ri0\fi0\sb240\sa120\brdrb\brdrs\brdrw1\brdrcf1\brsp28{\*\brdrb\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28\keepn\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\afs28\lang255\ai\ab\ltrch\dbch\afs28\langfe255\ai\ab\loch\f2\fs28\lang1033\i\b\sbasedon3\snext2{\*\soutlvl1} Titre 2;}
{\s6\li567\ri0\fi0\sb240\sa120\keepn\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\afs28\lang255\ab\ltrch\dbch\afs28\langfe255\ab\loch\f2\fs28\lang1033\b\sbasedon3\snext2{\*\soutlvl2} Titre 3;}
{\*\cs8\cf1\rtlch\af4\afs18\lang255\ltrch\dbch\af4\afs18\langfe255\loch\f4\fs18\lang1033 Puces;}
}{\*\listtable{\list\listtemplateid1
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li283}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li567}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li850}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li1134}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li1417}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li1701}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li1984}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li2268}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li2551}
{\*\soutlvl{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li2835}}\listid1}
{\list\listtemplateid2
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li283}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li567}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li850}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li1134}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li1417}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li1701}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li1984}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li2268}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li2551}
{\*\soutlvl{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li2835}}\listid2}
{\list\listtemplateid3
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li283}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li567}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li850}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li1134}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li1417}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li1701}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li1984}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li2268}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li2551}
{\*\soutlvl{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li2835}}\listid3}
{\list\listtemplateid4
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li283}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li567}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li850}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li1134}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li1417}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li1701}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li1984}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li2268}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li2551}
{\*\soutlvl{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li2835}}\listid4}
{\list\listtemplateid5
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li283}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li567}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li850}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li1134}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li1417}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li1701}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li1984}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li2268}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li2551}
{\*\soutlvl{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li2835}}\listid5}
{\list\listtemplateid6
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li283}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li567}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li850}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li1134}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li1417}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li1701}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li1984}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li2268}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li2551}
{\*\soutlvl{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li2835}}\listid6}
{\list\listtemplateid7
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li283}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li567}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li850}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li1134}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li1417}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li1701}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li1984}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li2268}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li2551}
{\*\soutlvl{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow2{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f4\fs18\f4\fs18\f4\fs18\f4\fi-283\li2835}}\listid7}
}{\listoverridetable{\listoverride\listid1\listoverridecount0\ls0}{\listoverride\listid2\listoverridecount0\ls1}{\listoverride\listid3\listoverridecount0\ls2}{\listoverride\listid4\listoverridecount0\ls3}{\listoverride\listid5\listoverridecount0\ls4}{\listoverride\listid6\listoverridecount0\ls5}{\listoverride\listid7\listoverridecount0\ls6}}
{\info{\author Paul POULAIN}{\creatim\yr2002\mo4\dy29\hr12\min51}{\operator Paul POULAIN}{\revtim\yr2002\mo5\dy8\hr12\min32}{\printim\yr1601\mo1\dy1\hr0\min0}{\comment StarWriter}{\vern6410}}\deftab1250
{\*\pgdsctbl
{\pgdsc0\pgdscuse195\pgwsxn11905\pghsxn16837\marglsxn1134\margrsxn1134\margtsxn1134\margbsxn1134\pgdscnxt0 Standard;}}
\paperh16837\paperw11905\margl1134\margr1134\margt1134\margb1134\sectd\sbknone\pgwsxn11905\pghsxn16837\marglsxn1134\margrsxn1134\margtsxn1134\margbsxn1134\ftnbj\ftnstart1\ftnrstcont\ftnnar\aenddoc\aftnrstcont\aftnstart1\aftnnrlc
\pard\plain \s3\li567\ri0\fi0\sb240\sa120\keepn\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\afs28\lang255\ltrch\dbch\afs28\langfe255\loch\f2\fs28\lang1033\qc {\ltrch\loch\f2 Koha}
\par {\ltrch\loch\f2 Walk trough to MARC }
\par \pard\plain \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\ltrch\loch\f5
\par {\ltrch\loch\f5 This document is intended to present :}
\par \pard\plain {\listtext\pard\plain \li1533\ri0\fi-283\f5\f4\fs18\f4\fs18\f4\fs18 \bullet }\ilvl0 \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\li1533\ri0\fi-283\ls6\ltrch\loch\f5 {\ltrch\loch\f5 what is MARC}
\par \pard\plain {\listtext\pard\plain \li1533\ri0\fi-283\f5\f4\fs18\f4\fs18\f4\fs18 \bullet }\ilvl0 \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\li1533\ri0\fi-283\ls6\ltrch\loch\f5 {\ltrch\loch\f5 koha MARC-DB structure}
\par \pard\plain {\listtext\pard\plain \li1533\ri0\fi-283\f5\f4\fs18\f4\fs18\f4\fs18 \bullet }\ilvl0 \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\li1533\ri0\fi-283\ls6\ltrch\loch\f5 {\ltrch\loch\f5 MARC operation into koha}
\par \pard\plain {\listtext\pard\plain \li1533\ri0\fi-283\f5\f4\fs18\f4\fs18\f4\fs18 \bullet }\ilvl0 \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\li1533\ri0\fi-283\ls6\ltrch\loch\f5 {\ltrch\loch\f5 Walk trough from the 1.1 version to the MARC version}
\par \pard\plain \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\ltrch\loch\f5
\par \pard\plain \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\cf2\qc\ltrch\loch\f5 {\ltrch\loch\f5 IMPORTANT NOTE : this document speaks of the UNIMARC format (for UNIfied MARC). If there are differences with MARC21/USMARC or any other MARC standard, please let me know.}
\par \pard\plain \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\ltrch\loch\f5 {\ltrch\loch\f5 This document doesn't speak of authority datas. It will be completed as soon as possible ;-)}
\par \pard\plain \sb240\sa120\box\brdrs\brdrw1\brdrcf1\brsp28{\*\brdrt\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28{\*\brdrl\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28{\*\brdrb\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28{\*\brdrr\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28\keepn\f2\fs32\b\fs32\b\fs32\b \s4\li0\ri0\fi0\sb240\sa120\box\brdrs\brdrw1\brdrcf1\brsp28{\*\brdrt\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28{\*\brdrl\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28{\*\brdrb\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28{\*\brdrr\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28\keepn\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\afs32\lang255\ab\ltrch\dbch\afs32\langfe255\ab\loch\f2\fs32\lang1033\b {\ltrch\loch\f2 What is MARC}
\par \pard\plain \s2\li567\ri0\fi0\sa120\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033 {\ltrch\loch\f0 MARC is a standard created for cataloging books or others documents used in a library.}
\par {\ltrch\loch\f0 The MARC format is quite simple :}
\par {\ltrch\loch\f0 a MARC record is composed of any number of lines, all divided in 3 parts :}
\par \pard\plain {\listtext\pard\plain \li1533\ri0\fi-283\sa120\f4\fs18\f4\fs18\f4\fs18 \bullet }\ilvl0 \s2\li567\ri0\fi0\sa120\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\li1533\ri0\fi-283\ls5 {\ltrch\loch\f0 The tag, 3 numeric digits. There are 999 different tags.}
\par \pard\plain {\listtext\pard\plain \li1533\ri0\fi-283\sa120\f4\fs18\f4\fs18\f4\fs18 \bullet }\ilvl0 \s2\li567\ri0\fi0\sa120\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\li1533\ri0\fi-283\ls5 {\ltrch\loch\f0 The Indicator 2 digits. If any digit not present, it's replaced by # (blank space)}
\par \pard\plain {\listtext\pard\plain \li1533\ri0\fi-283\sa120\f4\fs18\f4\fs18\f4\fs18 \bullet }\ilvl0 \s2\li567\ri0\fi0\sa120\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\li1533\ri0\fi-283\ls5 {\ltrch\loch\f0 The \ldblquote subfield\rdblquote : the subfield is the data container. A line may contain any number of subfields, depending on the label number. A subfield is composed of a $, a letter, then the data.}
\par \pard\plain \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\ltrch\loch\f5 {\ltrch\loch\f5 When represented in a document, the common use is to add spaces between tag, Indicator and subfields, and inside subfields. This space is only here for ease. It's not present in the true file.}
\par
\par {\ltrch\loch\f5 Note an information (tag or subfield) may be Mandatory or not, and may be repeatable or not. For example, the 200 tag is mandatory and not repeatable (book title). In the 200 tag, the $a subfield is not mandatory and repeatable (title)}
\par
\par \pard\plain \li283\ri0\fi0\sb240\sa120\brdrb\brdrs\brdrw1\brdrcf1\brsp28{\*\brdrb\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28\keepn\f2\fs28\i\b\fs28\i\b\fs28\i\b \s5\li283\ri0\fi0\sb240\sa120\brdrb\brdrs\brdrw1\brdrcf1\brsp28{\*\brdrb\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28\keepn\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\afs28\lang255\ai\ab\ltrch\dbch\afs28\langfe255\ai\ab\loch\f2\fs28\lang1033\i\b {\ltrch\loch\f2 Sample :}
\par \pard\plain \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\ltrch\loch\f5 {\ltrch\loch\f5 200 1# $a Je craque $b Text imprim\'e9 $f Guy Bedos}
\par \pard\plain \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\li1250\ri0\fi0\ltrch\loch\f5 {\ltrch\loch\f5 200 : title zone}
\par {\ltrch\loch\f5 1# : the 1 mean this title is meaningful }
\par {\ltrch\loch\f5 $a : subfield title}
\par {\ltrch\loch\f5 $b : support}
\par {\ltrch\loch\f5 $f : main author}
\par
\par \pard\plain \li283\ri0\fi0\sb240\sa120\brdrb\brdrs\brdrw1\brdrcf1\brsp28{\*\brdrb\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28\keepn\f2\fs28\i\b\fs28\i\b\fs28\i\b \s5\li283\ri0\fi0\sb240\sa120\brdrb\brdrs\brdrw1\brdrcf1\brsp28{\*\brdrb\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28\keepn\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\afs28\lang255\ai\ab\ltrch\dbch\afs28\langfe255\ai\ab\loch\f2\fs28\lang1033\i\b {\ltrch\loch\f2 Tag categories :}
\par \pard\plain \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\ltrch\loch\f5 {\ltrch\loch\f5 Tag are ordered in a logical way :}
\par \pard\plain {\listtext\pard\plain \li1533\ri0\fi-283\f5\f4\fs18\f4\fs18\f4\fs18 \bullet }\ilvl0 \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\li1533\ri0\fi-283\ls4\ltrch\loch\f5 {\ltrch\loch\f5 0XX (from 001 to 099) : legal information : biblio identifier, international number (ISBN or ISMN for music), legal publication, editor number...}
\par \pard\plain {\listtext\pard\plain \li1533\ri0\fi-283\f5\f4\fs18\f4\fs18\f4\fs18 \bullet }\ilvl0 \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\li1533\ri0\fi-283\ls4\ltrch\loch\f5 {\ltrch\loch\f5 1XX : coded informations : language, editor country, type of document, physical presentation...}
\par \pard\plain {\listtext\pard\plain \li1533\ri0\fi-283\f5\f4\fs18\f4\fs18\f4\fs18 \bullet }\ilvl0 \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\li1533\ri0\fi-283\ls4\ltrch\loch\f5 {\ltrch\loch\f5 2XX : document description : title, author...}
\par \pard\plain {\listtext\pard\plain \li1533\ri0\fi-283\f5\f4\fs18\f4\fs18\f4\fs18 \bullet }\ilvl0 \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\li1533\ri0\fi-283\ls4\ltrch\loch\f5 {\ltrch\loch\f5 3XX : notes}
\par \pard\plain {\listtext\pard\plain \li1533\ri0\fi-283\f5\f4\fs18\f4\fs18\f4\fs18 \bullet }\ilvl0 \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\li1533\ri0\fi-283\ls4\ltrch\loch\f5 {\ltrch\loch\f5 4XX : links with other notices}
\par \pard\plain {\listtext\pard\plain \li1533\ri0\fi-283\f5\f4\fs18\f4\fs18\f4\fs18 \bullet }\ilvl0 \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\li1533\ri0\fi-283\ls4\ltrch\loch\f5 {\ltrch\loch\f5 5XX : associated titles. It describes other titles used for this documents (original title, translation, old title when a book is re-edited with another title...)}
\par \pard\plain {\listtext\pard\plain \li1533\ri0\fi-283\f5\f4\fs18\f4\fs18\f4\fs18 \bullet }\ilvl0 \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\li1533\ri0\fi-283\ls4\ltrch\loch\f5 {\ltrch\loch\f5 6XX : Indexes}
\par \pard\plain {\listtext\pard\plain \li1533\ri0\fi-283\f5\f4\fs18\f4\fs18\f4\fs18 \bullet }\ilvl0 \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\li1533\ri0\fi-283\ls4\ltrch\loch\f5 {\ltrch\loch\f5 7XX : responsibilities}
\par \pard\plain {\listtext\pard\plain \li1533\ri0\fi-283\f5\f4\fs18\f4\fs18\f4\fs18 \bullet }\ilvl0 \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\li1533\ri0\fi-283\ls4\ltrch\loch\f5 {\ltrch\loch\f5 8XX : international informations}
\par \pard\plain {\listtext\pard\plain \li1533\ri0\fi-283\f5\f4\fs18\f4\fs18\f4\fs18 \bullet }\ilvl0 \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\li1533\ri0\fi-283\ls4\ltrch\loch\f5 {\ltrch\loch\f5 9XX : local datas : those informations are not mandatory and may be specific to an agency.}
\par \pard\plain \sb240\sa120\box\brdrs\brdrw1\brdrcf1\brsp28{\*\brdrt\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28{\*\brdrl\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28{\*\brdrb\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28{\*\brdrr\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28\keepn\f2\fs32\b\fs32\b\fs32\b \s4\li0\ri0\fi0\sb240\sa120\box\brdrs\brdrw1\brdrcf1\brsp28{\*\brdrt\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28{\*\brdrl\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28{\*\brdrb\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28{\*\brdrr\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28\keepn\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\afs32\lang255\ab\ltrch\dbch\afs32\langfe255\ab\loch\f2\fs32\lang1033\b {\ltrch\loch\f2 koha MARC-DB structure}
\par \pard\plain \li283\ri0\fi0\sb240\sa120\brdrb\brdrs\brdrw1\brdrcf1\brsp28{\*\brdrb\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28\keepn\f2\fs28\i\b\fs28\i\b\fs28\i\b \s5\li283\ri0\fi0\sb240\sa120\brdrb\brdrs\brdrw1\brdrcf1\brsp28{\*\brdrb\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28\keepn\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\afs28\lang255\ai\ab\ltrch\dbch\afs28\langfe255\ai\ab\loch\f2\fs28\lang1033\i\b {\ltrch\loch\f2 Fast access}
\par \pard\plain \s2\li567\ri0\fi0\sa120\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\ltrch\loch\b {\ltrch\loch\f0 a MARC record can have a LOT of details. Most of them are useful only once a year or less. And most will never be useful for an OPAC user. That's why we must keep data in 2 parts : a MARC-DB and a non-MARC-DB. The non-MARC-DB can be the 1.1.2 (or a derivat
ive).}
\par \pard\plain \li283\ri0\fi0\sb240\sa120\brdrb\brdrs\brdrw1\brdrcf1\brsp28{\*\brdrb\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28\keepn\f2\fs28\i\b\fs28\i\b\fs28\i\b \s5\li283\ri0\fi0\sb240\sa120\brdrb\brdrs\brdrw1\brdrcf1\brsp28{\*\brdrb\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28\keepn\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\afs28\lang255\ai\ab\ltrch\dbch\afs28\langfe255\ai\ab\loch\f2\fs28\lang1033\i\b {\ltrch\loch\f2 Resource_table}
\par \pard\plain \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\ul\ltrch\loch\f5 {\ltrch\loch\f5 To Steve :}
\par \pard\plain \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033{\ltrch\loch\f5{\f5 In you DB structure, I don't understand what the resource table is done for : it seems it's useless : Your code doesn't use date_added,date_modified, and }resource_id is always equal to record_id.}
\par
\par \pard\plain \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\ltrch\loch\f5 {\ltrch\loch\f5 I propose we drop this table and use Bib_Table as entry table.}
\par \pard\plain \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\ltrch\loch\f3\fs18 {\ltrch\loch\f3 $sth=$dbh->prepare("insert into Resource_Table (Record_ID) values (0)");}
\par {\ltrch\loch\f3 $sth->execute;}
\par {\ltrch\loch\f3 my $Resource_ID=$dbh->\{'mysql_insertid'\};}
\par {\ltrch\loch\f3 my $Record_ID=$Resource_ID;}
\par {\ltrch\loch\f3 $sth=$dbh->prepare("update Resource_Table set Record_ID=$Record_ID where Resource_ID=$Resource_ID");}
\par {\ltrch\loch\f3 $sth->execute;}
\par \pard\plain \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033
\par {\ltrch\loch\f0 So I propose to drop this table.}
\par \pard\plain \li283\ri0\fi0\sb240\sa120\brdrb\brdrs\brdrw1\brdrcf1\brsp28{\*\brdrb\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28\keepn\f2\fs28\i\b\fs28\i\b\fs28\i\b \s5\li283\ri0\fi0\sb240\sa120\brdrb\brdrs\brdrw1\brdrcf1\brsp28{\*\brdrb\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28\keepn\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\afs28\lang255\ai\ab\ltrch\dbch\afs28\langfe255\ai\ab\loch\f2\fs28\lang1033\i\b {\ltrch\loch\f2 Bib_Table}
\par \pard\plain \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\ltrch\loch\f5 {\ltrch\loch\f5 The Bib_Table is the entry table for all biblio. It describes, for a biblio, if a Tag NXX (N going from 0 to 9) exists. If yes, the NXX_Tag_Table stores the exacts tags.}
\par \pard\plain \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\ul\ltrch\loch\f5 {\ltrch\loch\f5 Fields :}
\par \pard\plain {\listtext\pard\plain \li1533\ri0\fi-283\f5\f4\fs18\f4\fs18\f4\fs18 \bullet }\ilvl0 \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\li1533\ri0\fi-283\ls3\ltrch\loch\f5 {\ltrch\loch\f5 Bib_code}
\par \pard\plain {\listtext\pard\plain \li1533\ri0\fi-283\f5\f4\fs18\f4\fs18\f4\fs18 \bullet }\ilvl0 \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\li1533\ri0\fi-283\ls3\ltrch\loch\f5 {\ltrch\loch\f5 Date_created}
\par \pard\plain {\listtext\pard\plain \li1533\ri0\fi-283\f5\f4\fs18\f4\fs18\f4\fs18 \bullet }\ilvl0 \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\li1533\ri0\fi-283\ls3\ltrch\loch\f5 {\ltrch\loch\f5 Date modified}
\par \pard\plain {\listtext\pard\plain \li1533\ri0\fi-283\f5\f4\fs18\f4\fs18\f4\fs18 \bullet }\ilvl0 \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\li1533\ri0\fi-283\ls3\ltrch\loch\f5 {\ltrch\loch\f5 Origin_code : this code is used to store the differents origins from the biblio records. It might be useful in the case of exchanges between libraries.}
\par \pard\plain \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\ltrch\loch\f5
\par \pard\plain \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\ul\ltrch\loch\f5 {\ltrch\loch\f5 To Steve : }
\par \pard\plain \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\ltrch\loch\f5 {\ltrch\loch\f5 2 questions : }
\par {\ltrch\loch\f5 QUESTION 1 :}
\par {\ltrch\loch\f5 I don't understand the interest to have a different int for each N Tag. It is more convenient to use the Bib_Id as key into each NXX_Tag_Table instead of having a specific number for each N.}
\par {\ltrch\loch\f5 A sample :}
\par {\ltrch\loch\f5 Bib_Table}
\par {\ltrch\loch\f5 Bib_Id=1024}
\par {\ltrch\loch\f5 Tag_0XX=832}
\par {\ltrch\loch\f5 Tag_1XX=731}
\par {\ltrch\loch\f5 Tag_2XX=124}
\par {\ltrch\loch\f5 Tag_3XX=1}
\par {\ltrch\loch\f5 Tag_4XX=186}
\par {\ltrch\loch\f5 Tag_5XX=215}
\par {\ltrch\loch\f5 Tag_6XX=985}
\par {\ltrch\loch\f5 Tag_7XX=145}
\par {\ltrch\loch\f5 Tag_8XX=467}
\par
\par {\ltrch\loch\f5 If we search every biblio having 200$a=\rdblquote Victor Hugo\rdblquote and 101$a=\rdblquote BNF\rdblquote , we must build a 3 relation select :}
\par {\ltrch\loch\f5 linking from Tag_2XX to Bib_Table, then from Bib_Table to Tag_1XX.}
\par
\par {\ltrch\loch\f5 If we use Bib_Id as common key, we need only Tag_2XX and Tag_1XX table.}
\par
\par {\ltrch\loch\f5 One more reason : with this structure, we have can find a Tags when we have the Bib_Id, it's harder to find a Bib_Id when we have a Tag_2XX key. With a common key, the problem is solved ;-)}
\par
\par {\ltrch\loch\f5 That's why I propose to modify the table structure...}
\par \pard\plain \li283\ri0\fi0\sb240\sa120\brdrb\brdrs\brdrw1\brdrcf1\brsp28{\*\brdrb\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28\keepn\f2\fs28\i\b\fs28\i\b\fs28\i\b \s5\li283\ri0\fi0\sb240\sa120\brdrb\brdrs\brdrw1\brdrcf1\brsp28{\*\brdrb\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28\keepn\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\afs28\lang255\ai\ab\ltrch\dbch\afs28\langfe255\ai\ab\loch\f2\fs28\lang1033\i\b {\ltrch\loch\f2 NXX_Tag_Table (N from 0 to 9)}
\par \pard\plain \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\ltrch\loch\f5 {\ltrch\loch\f5 Stores, for each value of XX in a biblio the data line. This field is not used for searches, but for presentations. The tag_cache table is used for searches. When a line is more than 255 char long, a link to a blob record in the blob_table is used and the
value is in this blob. The char is empty.}
\par \pard\plain \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\ul\ltrch\loch\f5 {\ltrch\loch\f5 Fields :}
\par \pard\plain {\listtext\pard\plain \li1533\ri0\fi-283\f5\f4\fs18\f4\fs18\f4\fs18 \bullet }\ilvl0 \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\li1533\ri0\fi-283\ls3\ltrch\loch\f5 {\ltrch\loch\f5 Bib_code}
\par \pard\plain {\listtext\pard\plain \li1533\ri0\fi-283\f5\f4\fs18\f4\fs18\f4\fs18 \bullet }\ilvl0 \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\li1533\ri0\fi-283\ls3\ltrch\loch\f5 {\ltrch\loch\f5 Tag_number char(3)}
\par \pard\plain {\listtext\pard\plain \li1533\ri0\fi-283\f5\f4\fs18\f4\fs18\f4\fs18 \bullet }\ilvl0 \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\li1533\ri0\fi-283\ls3\ltrch\loch\f5 {\ltrch\loch\f5 Tag_value varchar(255) (used only if length(value) <255)}
\par \pard\plain {\listtext\pard\plain \li1533\ri0\fi-283\f5\f4\fs18\f4\fs18\f4\fs18 \bullet }\ilvl0 \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\li1533\ri0\fi-283\ls3\ltrch\loch\f5 {\ltrch\loch\f5 Blob_link_id longint (used only if length(value) >255)}
\par \pard\plain \li283\ri0\fi0\sb240\sa120\brdrb\brdrs\brdrw1\brdrcf1\brsp28{\*\brdrb\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28\keepn\f2\fs28\i\b\fs28\i\b\fs28\i\b \s5\li283\ri0\fi0\sb240\sa120\brdrb\brdrs\brdrw1\brdrcf1\brsp28{\*\brdrb\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28\keepn\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\afs28\lang255\ai\ab\ltrch\dbch\afs28\langfe255\ai\ab\loch\f2\fs28\lang1033\i\b {\ltrch\loch\f2 NXX_Subfield_Table (N from 0 to 9)}
\par \pard\plain \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033 {\ltrch\loch\f0 Table dropped for the tag_word.}
\par \pard\plain \li283\ri0\fi0\sb240\sa120\brdrb\brdrs\brdrw1\brdrcf1\brsp28{\*\brdrb\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28\keepn\f2\fs28\i\b\fs28\i\b\fs28\i\b \s5\li283\ri0\fi0\sb240\sa120\brdrb\brdrs\brdrw1\brdrcf1\brsp28{\*\brdrb\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28\keepn\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\afs28\lang255\ai\ab\ltrch\dbch\afs28\langfe255\ai\ab\loch\f2\fs28\lang1033\i\b {\ltrch\loch\f2 NXX_tag_word (N from 0 to 9)}
\par \pard\plain \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033 {\ltrch\loch\f0 This table contains the datas used for searches. The idea is explained in the next chapter. This table stores one record for each word in the marc section.}
\par \pard\plain \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\ul {\ltrch\loch\f0 Fields :}
\par \pard\plain {\listtext\pard\plain \li1533\ri0\fi-283\f4\fs18\f4\fs18\f4\fs18 \bullet }\ilvl0 \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\li1533\ri0\fi-283\ls2 {\ltrch\loch\f0 Bib_code}
\par \pard\plain {\listtext\pard\plain \li1533\ri0\fi-283\f4\fs18\f4\fs18\f4\fs18 \bullet }\ilvl0 \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\li1533\ri0\fi-283\ls2 {\ltrch\loch\f0 Tag_number char(3)}
\par \pard\plain {\listtext\pard\plain \li1533\ri0\fi-283\f4\fs18\f4\fs18\f4\fs18 \bullet }\ilvl0 \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\li1533\ri0\fi-283\ls2 {\ltrch\loch\f0 Subfield_id char(1)}
\par \pard\plain {\listtext\pard\plain \li1533\ri0\fi-283\f4\fs18\f4\fs18\f4\fs18 \bullet }\ilvl0 \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\li1533\ri0\fi-283\ls2 {\ltrch\loch\f0 Word varchar(255)}
\par \pard\plain \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033 {\ltrch\loch\f0 Words longer than 255 char are ignored (in french, the longest word is 26 char long ;-) )}
\par {\ltrch\loch\f0 Words present in the stopwords table are not stored in the MARC-DB}
\par \pard\plain \li283\ri0\fi0\sb240\sa120\brdrb\brdrs\brdrw1\brdrcf1\brsp28{\*\brdrb\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28\keepn\f2\fs28\i\b\fs28\i\b\fs28\i\b \s5\li283\ri0\fi0\sb240\sa120\brdrb\brdrs\brdrw1\brdrcf1\brsp28{\*\brdrb\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28\keepn\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\afs28\lang255\ai\ab\ltrch\dbch\afs28\langfe255\ai\ab\loch\f2\fs28\lang1033\i\b {\ltrch\loch\f2 DISCUSSION about MARC searches}
\par \pard\plain \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033 {\ltrch\loch\f0 The most important think about MARC tables, is that searches must be as well optimized as possible.}
\par {\ltrch\loch\f0 Anyway, a search is always a headache in MARC, as the simple solution would be to have a biblio stored in a single line.}
\par {\ltrch\loch\f0 As it's not possible to built a flat table with all the possible MARC tags, we must use a complex algorithm to do a search.}
\par
\par {\ltrch\loch\f0 Suppose we must do a select with :}
\par {\ltrch\loch\f0 tag=200, $a contains \ldblquote lord\rdblquote and \ldblquote ring\rdblquote }
\par {\ltrch\loch\f0 tag=101, $b contains \ldblquote Tolkien\rdblquote }
\par {\ltrch\loch\f0 tag=001, $a equals \ldblquote 123456\rdblquote }
\par
\par {\ltrch\loch\f0 If we have 10 tables, a select should be :}
\par {\ltrch\loch\f0 select biblio_id }
\par {\ltrch\loch\f0 from \tab 2xx_subfield_table as 2xx,}
\par {\ltrch\loch\f0 \tab 1xx_subfield_table as 1xx,}
\par {\ltrch\loch\f0 \tab 0xx_subfield_table as 0xx }
\par {\ltrch\loch\f0 where (tag=\rdblquote 200\rdblquote and 2xx.Mark=\rdblquote a\rdblquote and (2xx.value like \ldblquote %lord%\rdblquote and 2xx.value like \ldblquote %ring%\rdblquote )) }
\par {\ltrch\loch\f0 and (tag=\rdblquote 101\rdblquote and 1xx.mark=\rdblquote b\rdblquote and 1xx.value like \ldblquote %Tolkien%\rdblquote ) }
\par {\ltrch\loch\f0 and (tag=\rdblquote 001\rdblquote and 0xx.mark=\rdblquote a\rdblquote and 0xx.value=\rdblquote 123456\rdblquote ) and}
\par {\ltrch\loch\f0 (0xx.Bib_Id=1xx.Bib_Id and 0xx.bib_Id=2xx.Bib_id)}
\par
\par {\ltrch\loch\f0 This select is quite complex, but in 1 select, we can find what we want. The only problem is this select uses 3 tables, 2 indexed joins (the last line), an indexed select on table 0xx and a partially indexed select on tables 1xx and 2xx. So, on an importan
t library, this could be not fast...}
\par \pard\plain \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\ltrch\loch\i {\ltrch\loch\f0 (this proves we MUST have bib_id as common key in all tables : with differents id, we would have need )}
\par \pard\plain \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033
\par {\ltrch\loch\f0 With the tag_word field, we can do only indexed searches. The search algorythm could search the Bib_id. If we want to search (A or B) and not(C), we can do 2 indexed select in arrays, merge both arrays, do a selected select for C and delete Bib_id found fr
om the previous array.}
\par \pard\plain \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\ltrch\loch\i
\par \pard\plain \sb240\sa120\box\brdrs\brdrw1\brdrcf1\brsp28{\*\brdrt\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28{\*\brdrl\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28{\*\brdrb\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28{\*\brdrr\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28\keepn\f2\fs32\b\fs32\b\fs32\b \s4\li0\ri0\fi0\sb240\sa120\box\brdrs\brdrw1\brdrcf1\brsp28{\*\brdrt\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28{\*\brdrl\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28{\*\brdrb\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28{\*\brdrr\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28\keepn\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\afs32\lang255\ab\ltrch\dbch\afs32\langfe255\ab\loch\f2\fs32\lang1033\b {\ltrch\loch\f2 MARC operation into KOHA}
\par \pard\plain \li283\ri0\fi0\sb240\sa120\brdrb\brdrs\brdrw1\brdrcf1\brsp28{\*\brdrb\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28\keepn\f2\fs28\i\b\fs28\i\b\fs28\i\b \s5\li283\ri0\fi0\sb240\sa120\brdrb\brdrs\brdrw1\brdrcf1\brsp28{\*\brdrb\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28\keepn\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\afs28\lang255\ai\ab\ltrch\dbch\afs28\langfe255\ai\ab\loch\f2\fs28\lang1033\i\b {\ltrch\loch\f2 MARC structure}
\par \pard\plain \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033 {\ltrch\loch\f0 The idea is to define the MARC structure in 2 tables, allowing support for any MARC standard.}
\par {\ltrch\loch\f0 The MARc structure is defined in 2 differents tables :}
\par \pard\plain \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\ltrch\loch\b {\ltrch\loch\f0 Tag_param :}
\par \pard\plain {\listtext\pard\plain \li1533\ri0\fi-283\f4\fs18\f4\fs18\f4\fs18 \bullet }\ilvl0 \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\li1533\ri0\fi-283\ls1 {\ltrch\loch\f0 Tag_field}
\par \pard\plain {\listtext\pard\plain \li1533\ri0\fi-283\f4\fs18\f4\fs18\f4\fs18 \bullet }\ilvl0 \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\li1533\ri0\fi-283\ls1 {\ltrch\loch\f0 Repeatable or Not Repeatable}
\par \pard\plain {\listtext\pard\plain \li1533\ri0\fi-283\f4\fs18\f4\fs18\f4\fs18 \bullet }\ilvl0 \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\li1533\ri0\fi-283\ls0 {\ltrch\loch\f0 If the field is Mandatory / Possible / Ignored. If it's mandatory, the field must be entered. If it's possible, the field can be entered, if it's ignored, the field must be not entered.}
\par \pard\plain {\listtext\pard\plain \li1533\ri0\fi-283\f4\fs18\f4\fs18\f4\fs18 \bullet }\ilvl0 \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\li1533\ri0\fi-283\ls0 {\ltrch\loch\f0 Koha-DB : this field (boolean) can be set to indicate that the tag must be mandatory because it's a part of the koha-DB.}
\par \pard\plain \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033
\par \pard\plain \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\ltrch\loch\b {\ltrch\loch\f0 Subfield_param :}
\par \pard\plain \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033 {\ltrch\loch\f0 It could contain, for each tag_field/tag_subfield pair :}
\par \pard\plain {\listtext\pard\plain \li1533\ri0\fi-283\f4\fs18\f4\fs18\f4\fs18 \bullet }\ilvl0 \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\li1533\ri0\fi-283\ls0 {\ltrch\loch\f0 Tag_field}
\par \pard\plain {\listtext\pard\plain \li1533\ri0\fi-283\f4\fs18\f4\fs18\f4\fs18 \bullet }\ilvl0 \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\li1533\ri0\fi-283\ls0 {\ltrch\loch\f0 Tag_subfield}
\par \pard\plain {\listtext\pard\plain \li1533\ri0\fi-283\f4\fs18\f4\fs18\f4\fs18 \bullet }\ilvl0 \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\li1533\ri0\fi-283\ls0 {\ltrch\loch\f0 If the subfield is Mandatory / Possible / Ignored. If it's mandatory, the subfield must be entered. If it's possible, the field can be entered, if it's ignored, the field must be not entered.}
\par \pard\plain {\listtext\pard\plain \li1533\ri0\fi-283\f4\fs18\f4\fs18\f4\fs18 \bullet }\ilvl0 \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\li1533\ri0\fi-283\ls0 {\ltrch\loch\f0 If the tag_subfield is Repeatable or Not Repeatable.}
\par \pard\plain {\listtext\pard\plain \li1533\ri0\fi-283\f4\fs18\f4\fs18\f4\fs18 \bullet }\ilvl0 \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033\li1533\ri0\fi-283\ls0 {\ltrch\loch\f0 Koha-DB : this field (boolean) can be set to indicate that the tag must be mandatory because it's a part of the koha-DB.}
\par \pard\plain \li283\ri0\fi0\sb240\sa120\brdrb\brdrs\brdrw1\brdrcf1\brsp28{\*\brdrb\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28\keepn\f2\fs28\i\b\fs28\i\b\fs28\i\b \s5\li283\ri0\fi0\sb240\sa120\brdrb\brdrs\brdrw1\brdrcf1\brsp28{\*\brdrb\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28\keepn\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\afs28\lang255\ai\ab\ltrch\dbch\afs28\langfe255\ai\ab\loch\f2\fs28\lang1033\i\b {\ltrch\loch\f2 Select}
\par \pard\plain \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033 {\ltrch\loch\f0 Selects are done through old koha-DB, or through MARC koha-DB, depending on the user choice. In opac, the search is done on koha-DB only. In koha-librarian, it can be done on koha or MARC DB.}
\par
\par \pard\plain \li283\ri0\fi0\sb240\sa120\brdrb\brdrs\brdrw1\brdrcf1\brsp28{\*\brdrb\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28\keepn\f2\fs28\i\b\fs28\i\b\fs28\i\b \s5\li283\ri0\fi0\sb240\sa120\brdrb\brdrs\brdrw1\brdrcf1\brsp28{\*\brdrb\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28\keepn\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\afs28\lang255\ai\ab\ltrch\dbch\afs28\langfe255\ai\ab\loch\f2\fs28\lang1033\i\b {\ltrch\loch\f2 Input}
\par \pard\plain \li567\ri0\fi0\sb240\sa120\keepn\f2\fs28\b\fs28\b\fs28\b \s6\li567\ri0\fi0\sb240\sa120\keepn\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\afs28\lang255\ab\ltrch\dbch\afs28\langfe255\ab\loch\f2\fs28\lang1033\b {\ltrch\loch\f2 Import}
\par \pard\plain \s2\li567\ri0\fi0\sa120\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033 {\ltrch\loch\f0 The import script uses the param tables to decide which fields must be added to the DB.}
\par \pard\plain \li567\ri0\fi0\sb240\sa120\keepn\f2\fs28\b\fs28\b\fs28\b \s6\li567\ri0\fi0\sb240\sa120\keepn\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\afs28\lang255\ab\ltrch\dbch\afs28\langfe255\ab\loch\f2\fs28\lang1033\b {\ltrch\loch\f2 Manual adds/modifications}
\par \pard\plain \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033 {\ltrch\loch\f0 Addings are done through 10 pages, each for NXX (N from 1 to 9). for each NXX tag field/subfield that must be added in the page, a <input type=text> is defined. For Repeatable subfields, a link opens a popup where you can add as many datas as you want.}
\par {\ltrch\loch\f0 Data are stored into an array, and we make a heavy use of javascript.}
\par {\ltrch\loch\f0 Any modifications is done on the MARC-DB and at the same time in the koha-DB.}
\par \pard\plain \sb240\sa120\box\brdrs\brdrw1\brdrcf1\brsp28{\*\brdrt\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28{\*\brdrl\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28{\*\brdrb\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28{\*\brdrr\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28\keepn\f2\fs32\b\fs32\b\fs32\b \s4\li0\ri0\fi0\sb240\sa120\box\brdrs\brdrw1\brdrcf1\brsp28{\*\brdrt\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28{\*\brdrl\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28{\*\brdrb\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28{\*\brdrr\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28\keepn\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\afs32\lang255\ab\ltrch\dbch\afs32\langfe255\ab\loch\f2\fs32\lang1033\b {\ltrch\loch\f2 Walktrough to MARC}
\par \pard\plain \li283\ri0\fi0\sb240\sa120\brdrb\brdrs\brdrw1\brdrcf1\brsp28{\*\brdrb\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28\keepn\f2\fs28\i\b\fs28\i\b\fs28\i\b \s5\li283\ri0\fi0\sb240\sa120\brdrb\brdrs\brdrw1\brdrcf1\brsp28{\*\brdrb\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28\keepn\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\afs28\lang255\ai\ab\ltrch\dbch\afs28\langfe255\ai\ab\loch\f2\fs28\lang1033\i\b {\ltrch\loch\f2 1}
\par \pard\plain \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033{\ltrch\loch\f6{\i0\f6 Definition of the DB}}
\par {\ltrch\loch\f0 Creation of marcimport and koha2marc script.}
\par {\ltrch\loch\f0 Creation of administration script for MARC structure.}
\par \pard\plain \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033 {\ltrch\loch\f0 Modification of present add/modify/delete biblio script.}
\par
\par {\ltrch\loch\f0 Now, we can use the old-koha version with the MARC-DB working in background.}
\par
\par \pard\plain \li283\ri0\fi0\sb240\sa120\brdrb\brdrs\brdrw1\brdrcf1\brsp28{\*\brdrb\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28\keepn\f2\fs28\i\b\fs28\i\b\fs28\i\b \s5\li283\ri0\fi0\sb240\sa120\brdrb\brdrs\brdrw1\brdrcf1\brsp28{\*\brdrb\brdlncol1\brdlnin0\brdlnout1\brdlndist0}\brsp28\keepn\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\afs28\lang255\ai\ab\ltrch\dbch\afs28\langfe255\ai\ab\loch\f2\fs28\lang1033\i\b {\ltrch\loch\f2 2}
\par \pard\plain \s1\li567\ri0\fi0\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af8\afs24\lang255\ltrch\dbch\af7\afs24\langfe255\loch\f0\fs24\lang1033 {\ltrch\loch\f0 Creation of MARC-DB add/modify biblio}
\par {\ltrch\loch\f0 Creation of MARC-DB search}
\par
\par }
2
6
A couple of people have suggested that we try to have a meeting via IRC...
I'd suggest Thursday evening (my time, which is eastern standard). Pat has
a list of possible times that work for all the various timezones (more or
less) based on what I know about people's availability [Pat, I seem to have
forgotten to make a note of the ones you thought that worked -- please send
that out and/or to me :)].
Possible agenda items(_very_ random and subject to editing):
* target setting
* coordination of efforts
* timetables, or at least feature ordering
* CVS use, setup, branching
* a steering committee
* outside involvement (ie, K12Linux, oss4lib)
* features and priorities
* new user/installer assistance
* future meetings (and times, etc)
* standards (MARC, circulation, etc)
* resources in re standards
* design, coding practice
* version numbering, etc. (which is semi settled)
* suggestions on documentation
Thoughts?, Suggestions?,
Nick
6
8
On Wed, 8 May 2002, Sergey A Yanovitsky wrote:
> Hello Pat,
Hi Sergey,
>
> Tuesday, May 07, 2002, 11:30:22 PM, you wrote:
>
> PE> On Tue, 7 May 2002, Nicholas Rosasco wrote:
>
> PE> I'm up for it. Thursday evening works for me, though it might not work for
> PE> everyone. I'm not sure where everyone is timezone wise, but here's a
> PE> quick table (I hope I have everyone right):
>
> PE> Me: 0100 1100 1400 1600 1800 2100
> PE> Mike: 0400 1400 1700 1900 2100 0000
> PE> GMT 0900 1900 2200 0000 0200 0500
> PE> Paul: 1100 2100 0000 0200 0400 0700
> PE> Sergey: 1200 2200 0100 0300 0500 0800
> PE> Katipo: 2100 0700 1000 1200 1400 1700
>
> PE> All AM times (except for the first column and the 1100 for me) would be
> PE> Friday. It looks like someone will have to cope with ugly hours. I'm
> PE> willing to make any of these, shall we vote? (Do we need to make any
> PE> corrections before we do?)
>
> Actually I'm on +2, not +3 :) So right times for me are:
> GMT 0900 1900 2200 0000 0200 0500
> Sergey: 1100 2100 0000 0200 0400 0700
Chalk up another goof for me. Sorry.
>
> PE> Are there any non-developers that should be invited? At some point, I'd
> PE> like to hear what librarians (US, NZ, and Euro) have to say about what
> PE> they'd like to see Koha do.
> Dunno.. There are not much unixoids here :( Especially the ones that
> do something to libraries. :(
too bad. maybe we can set up a windows irc client and help them through
something once they're ready to contribute to discussions like this. ;)
-pate
>
> [skip]
>
1
0
Update of /cvsroot/koha/koha/circ
In directory usw-pr-cvs1:/tmp/cvs-serv7610/circ
Modified Files:
branchtransfers.pl
Log Message:
changed the destination branch dropdown to only show branches that have
categorycode == CU, ie can be current branch.
Index: branchtransfers.pl
===================================================================
RCS file: /cvsroot/koha/koha/circ/branchtransfers.pl,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -r1.4 -r1.5
*** branchtransfers.pl 2 May 2002 00:06:28 -0000 1.4
--- branchtransfers.pl 7 May 2002 04:36:00 -0000 1.5
***************
*** 34,38 ****
my $tobranchoptions;
foreach my $br (keys %$branches) {
! (next) if $branches->{$br}->{'PE'};
my $selected='';
($selected='selected') if ($br eq $tobranchcd);
--- 34,38 ----
my $tobranchoptions;
foreach my $br (keys %$branches) {
! (next) unless $branches->{$br}->{'CU'};
my $selected='';
($selected='selected') if ($br eq $tobranchcd);
1
0
Update of /cvsroot/koha/koha
In directory usw-pr-cvs1:/tmp/cvs-serv12743
Modified Files:
Tag: rel-1-2
ChangeLog
Log Message:
Combined this with the old Changelog file, so it has the history since the
1.0 release
Will tar up and put up a new rc1 that contains the changelog and hints file.
Index: ChangeLog
===================================================================
RCS file: /cvsroot/koha/koha/ChangeLog,v
retrieving revision 1.1.2.3
retrieving revision 1.1.2.4
diff -C2 -r1.1.2.3 -r1.1.2.4
*** ChangeLog 25 Apr 2002 19:47:05 -0000 1.1.2.3
--- ChangeLog 7 May 2002 02:32:58 -0000 1.1.2.4
***************
*** 1,14 ****
! 2002-04-25 09:12 pate
- * output.t, testKoha.pl: added tests for Output.pm (nearing
- complete coverage)
-
- * C4/Output.pm: added prototyping where possible, cleaned up some
- compiler warnings, found and fixed an error in mkformnotable while
- adding tests
-
- 2002-04-25 06:57 pate
-
- * koha.t: added fixEthnicity tests
2002-04-17 14:35 pate
--- 1,4 ----
! Changelog since version 1.1.1
2002-04-17 14:35 pate
***************
*** 495,1121 ****
to get the items showing in date_due order
! 2001-07-12 04:12 pawelzc
!
! * translator/translator.readme: Spelling and english language
! corrections.
!
! 2001-07-05 14:37 rangi
!
! * deletemem.pl: Script to delete a member/patron
!
! 2001-07-05 14:37 rangi
!
! * memberentry.pl: Fix to handle the delete call, redirects to
! deletemem.pl
!
! 2001-06-27 14:53 rangi
!
! * translator/translator.pl: Modified so that the first available
! language is chosen if none is specified
!
! 2001-06-26 15:27 tonnesen
!
! * C4/Catalogue.pm: Finished updateBiblioItem subroutine
!
! 2001-06-26 15:13 rangi
!
! * translator/: translator.pl, translator.readme: Scripts to permit
! koha webpages to display in different natural languages Courtesy of
! Pawel Skuza
!
! 2001-06-26 14:13 tonnesen
!
! * C4/Catalogue.pm: newBiblio subroutine completed.
!
! 2001-06-26 13:17 tonnesen
!
! * C4/Catalogue.pm: Added biblioitems table update when
! newBiblioItem() routine is called.
!
! 2001-06-26 10:15 tonnesen
!
! * C4/Catalogue.pm: Beginning updateBiblio routine.
!
! 2001-06-25 13:15 tonnesen
!
! * marc/viewmarc.pl: Prototype marc record viewer and editor.
!
! 2001-06-25 13:12 tonnesen
!
! * marc/TODO: A TODO file for MARC support
!
! 2001-06-25 12:43 tonnesen
!
! * C4/Catalogue.pm: Added skeletons of update routines.
!
! 2001-06-25 12:07 tonnesen
!
! * marc/koha2marc: Minor documentation changes.
!
! 2001-06-25 11:55 tonnesen
!
! * marc/koha2marc: Perl script to convert existing Koha tables to
! the new MARC tables.
!
! 2001-06-25 11:54 tonnesen
!
! * marc/deletemarc: SQL commands to clear all of the MARC tables.
! This is terribly dangerous, but I find it useful during the
! development work. :)
!
! 2001-06-25 11:52 tonnesen
!
! * marc/marcschema.sql: Schema for MARC storage tables. Blatantly
! stolen from www.pytheas.org. I also added the 0XX tables.
!
! 2001-06-25 11:49 tonnesen
!
! * C4/Catalogue.pm: Cataloguing API. Very early draft at this
! point.
!
! 2001-06-19 20:36 rangi
!
! * readingrec.pl, C4/Search.pm: Made a little change to allow the
! reading record to be sorted, and now defaults to the last 50 items
! borrowed
!
! 2001-05-17 15:36 rangi
!
! * database.mysql: Changed the interim field in the items table, to
! be paidfor The horowhenua librarians wanted a place to store
! information when a lost item was paid for. The information is
! removed if the item is ever returned. The interim field was a
! hangover from the previous system and wasnt be used so I stole it
! :-)
!
! 2001-05-15 16:05 rangi
!
! * C4/Accounts2.pm: More little bug fixes in the manual credits
! section
!
! 2001-05-09 16:29 rangi
!
! * C4/Circulation/Circ2.pm: Changed the way a lost book being
! returned is handled. If the book has already been paid for a
! credit is added to their account. And offset against any current
! charges
!
! 2001-05-09 16:26 rangi
!
! * updateitem.pl: Set up so marking a item lost, adds a charge for
! the replacement price to a borrowers record (if it is on issue)
!
! 2001-05-09 16:23 rangi
!
! * renewscript.pl: Fixed so renewing a rental item adds a charge
!
! 2001-05-09 16:22 rangi
!
! * mancredit.pl, maninvoice.pl, C4/Accounts2.pm: Added facility to
! do a cash refund. Also HLT allows ppl to work off their bill,so
! added a facility to do manual credit for that
!
! 2001-05-08 17:05 rangi
!
! * C4/Circulation/Renewals2.pm: Renewing a rental or pay item from
! the borrowers record screen Now adds a charge to the borrowers
! account
!
! 2001-05-02 16:06 tonnesen
!
! * groups.pl, C4/Groups.pm: Steve Tonnesen's K12Admin-specific (for
! the time-being) group based overdue reports.
!
! 2001-05-02 15:38 tonnesen
!
! * C4/Circulation/Circ2.pm: Added an overdue variable to the
! itemdata returned by the currentissues subroutine. This makes it
! easier to pick out overdue items in other modules (ie circulation,
! reports, etc.)
!
! 2001-05-02 14:15 rangi
!
! * C4/Circulation/Circ2.pm: Fixed the code that adds a credit or
! wipes a lost book charge from a borrowers account if said book is
! returned
!
! 2001-05-02 14:13 rangi
!
! * C4/Accounts2.pm: Added functions to add credits and invoices to
! borrowers account
!
! 2001-05-02 14:11 rangi
!
! * boraccount.pl, moremember.pl: Turned off the tidy accounts
! feature in the view accounts screen (boraccount.pl) And got it so
! outstanding credits are shown on the moremember.pl (view member
! screen)
!
! 2001-05-02 14:08 rangi
!
! * mancredit.pl, maninvoice.pl: Scripts to add manual invoices, or
! credits to a borrower/member/patron's account. Called from
! boraccount.pl (ie the view account screen)
!
! 2001-05-01 16:24 rangi
!
! * C4/Accounts2.pm: Fixed a bug in the return lost routine (when a
! payment is made on a lost item) So that the correct date was being
! recorded
!
! 2001-04-19 17:31 rangi
!
! * circ/circulation.pl: Quick bodge to restrict the number of
! returned books showing to 8. (Request from the librarians here to
! speed up the screen reload) Needs to be tidied up
!
! 2001-04-17 19:51 rangi
!
! * C4/Accounts2.pm: Add functionality so that when the replacement
! cost of a lost item is paid Its returned off the members/patrons
! card. And a note is placed on the item saying that its been paid
! for. The item stays marked as lost. But the patron does not accrue
! more fines
!
! 2001-04-03 14:32 rangi
!
! * C4/Circulation/Circ2.pm, circ/circulation.pl: Making a change to
! the way charges are handled, the system originally worked such that
! if a borrower owed more than $5 issues werent allowed. This worked
! fine except that often borrowers wish to borrows say 3 pay videos
! at $2 each, then 2 books say. The three pay videos rack up charges
! of $6 and then they cant issue the books until that is paid.
! Reworked so that it cares about previous charges, not the ones
! accrued during current issue process.
!
! 2001-04-02 15:51 rangi
!
! * pay.pl, stats.pl, C4/Accounts2.pm, C4/Stats.pm, sec/writeoff.pl:
! Reworking statistics for payments and writeoffs
!
! 2001-03-28 18:11 rangi
!
! * moremember.pl: Commenting out the code that doesnt allow renewals
! if a renewal has already occured
!
! 2001-03-27 19:00 rangi
!
! * circ/circulation.pl: Adding in javscript code to open a new
! window for payments
!
! 2001-03-27 18:23 rangi
!
! * C4/Circulation/Circ2.pm, circ/circulation.pl: Reworked layout of
! issues section.
!
! 2001-03-27 13:45 rangi
!
! * sec/writeoff.pl: Getting writeoff stats being stored as well
!
! 2001-03-27 13:43 rangi
!
! * C4/: Accounts2.pm, Stats.pm: Modified the update stats routine to
! store borrowernumbers also Passing borrowernumbers to update stats
! from Account routines
!
! 2001-03-22 14:20 rangi
!
! * circ/circulation.pl: Changes made by Glen to allow the
! circulation module to work with a ASCII-wand, or CueCat (weird
! encoded) input equally well.
!
! Do not bother installing the CueCat driver or any other software -
! it's not needed.
!
! 2001-03-18 14:06 rangi
!
! * overdue.pl: Script to list overdue books under the headings
! Due-Date Patron Phone Title Author
!
! The patron can be email by clicking on the name (if the database
! contains an email address for them)
!
! Courtesy of Glen Stewart
!
! 2001-03-15 02:17 rangi
!
! * detail.pl, moredetail.pl: Added code to allow searches to be used
! by catalogue maintenance
!
! 2001-03-15 02:15 rangi
!
! * C4/Maintainance.pm, maint/catmaintain.pl: Added functionality to
! allow invalid itemtype to be fixed
!
! 2001-03-15 02:11 rangi
!
! * maint/shiftbib.pl: Script to shift a group to another biblio,
! called as part of catalogue maintenance
!
! 2001-03-13 14:41 rangi
!
! * catmaintain.pl, maint/catmaintain.pl: Shifted catmaintain.pl to a
! dir that can be easily passowrd protected
!
! 2001-03-13 14:04 rangi
!
! * catmaintain.pl, C4/Maintainance.pm: Got undeleting biblios going
! (catalogue maintenance should probably be in a password protected
! super librarian area or the like)
!
! 2001-03-12 15:33 rangi
!
! * newbiblio.pl: Just realised this is supposed to be in the acqui/
! dir (doh)
!
! 2001-03-12 15:32 rangi
!
! * acqui/: acquire.pl, newbiblio.pl: Glens updates to automatically
! increment barcode, and to remove hardcoded itemtypes in scripts
!
! 2001-03-12 15:29 rangi
!
! * memberentry.pl: Modified to include Glen Stewarts automatic
! member/patron cardnumber incrementation
!
! 2001-03-12 15:15 rangi
!
! * newbiblio.pl: Script from Glen Stewart, i think to do with
! simplified acqusitions module? (correct me if im wrong glen)
!
! 2001-03-12 14:43 rangi
!
! * database.mysql: Database definition file, checked into cvs to
! make keeping database current easier
!
! 2001-03-07 13:12 rangi
!
! * insertdata.pl: Fixing stupid bug that was causing the sql insert
! command to break if a person had a ' in their name
!
! 2001-03-07 13:02 rangi
!
! * moremember.pl: Changing the form so it passes through a modify
! value to tell the script to show the flags
!
! 2001-03-06 17:48 rangi
!
! * insertdata.pl, memberentry.pl: Added the functionality to allow
! librarians to manipulate the flag status on borrowers ie lost,
! debarred, and gone no address
!
! 2001-03-06 13:16 rangi
!
! * search.pl: Fixing " glitch in titles
!
! 2001-03-06 13:13 rangi
!
! * opac-search.pl: Fixing a bug in the opac search that meant that
! titles that contained " were caused the detail page to error
!
! 2001-02-27 14:08 rangi
!
! * delbiblio.pl: Quick fix to stop ppl from being able to delete
! biblios that have items attached
!
! 2001-02-21 14:33 rangi
!
! * circ/circulation.pl: Rejigged printing issues, to print out
! everything on issue to the borrower
!
! 2001-02-21 14:27 rangi
!
! * stats.pl: Fixed a little glitch in the daily stats script that
! meant it wasnt counting renewals
!
! 2001-02-21 14:17 rangi
!
! * moremember.pl: Got a link from items on issue thru to item
! details (like in the circ module) And also stopped already renewed
! books from being renewable in the issues list
!
! 2001-02-18 14:13 rangi
!
! * C4/Circulation/Circ2.pm: Little fix to the returnbook routine so
! the correct branchcode is passed to the updatestats routine
!
! 2001-02-13 18:41 rangi
!
! * circ/circulation.pl: A bodgy hack so that hitting enter in issues
! (with no barcode) prints out the borrowers issue slip and starts a
! new borrower
!
! 2001-02-13 16:29 rangi
!
! * circ/circulation.pl: The Horowhenua libraries wanted less patron
! and item information displaying at returns So Added some if
! statements to not display patron addresses, and to only display the
! title of the item These presumably would be changed to suit
! individual libraries wants
!
! 2001-02-13 16:27 rangi
!
! * C4/Circulation/Circ2.pm: Made some changes to checkreserve and
! find_reserves, so that items are always displayed as reserved when
! returned, not just once
!
! 2001-02-11 14:44 rangi
!
! * detail.pl: Little fix so that if the item has no author
! information, empty () dont disply
!
! 2001-02-11 14:38 rangi
!
! * search.pl: Changing the front page search of the intranet site to
! just be a keyword search
!
! 2001-02-07 15:47 tonnesen
!
! * shelves.pl, C4/BookShelves.pm: Added header and log substition
! variables
!
! 2001-02-07 12:27 tonnesen
!
! * shelves.pl, C4/BookShelves.pm: Start of code to implement virtual
! bookshelves in Koha.
!
! 2001-02-05 10:48 tonnesen
!
! * loadmodules.pl, C4/Search.pm: loadmodules.pl allows redirection
! to different modules based on systemprefs Added subroutine in
! Search.pm load systemprefs from new systempreferences table in
! database. Initial use is to allow using my simplified acquisitions
! module in place of vendor-based acquisitions module. Default is
! vendor-based module.
!
! 2001-02-05 09:47 tonnesen
!
! * C4/Circulation/Circ2.pm: Added a couple of missing
! $dbh->disconnect lines that were logging errors in apache log
! files.
!
! 2001-02-05 09:24 tonnesen
!
! * circ/circulation.pl: Fixed backgroundimage in circulation module.
! Background image now displays only in header lines.
!
! 2001-02-04 14:25 rangi
!
! * C4/Print.pm, circ/circulation.pl: Fixing printing error, now is
! printing all of the days issues for borrower
!
! 2001-01-31 20:09 rangi
!
! * circ/circulation.pl: Made sure the printer queue value was being
! set before calling print
!
! 2001-01-31 18:08 rangi
!
! * C4/Print.pm, C4/Circulation/Circ2.pm, circ/circulation.pl:
! Attempting to get issues slip to print when borrower is finished
! with
!
! 2001-01-31 15:40 rangi
!
! * stats.pl: Fixed a bug that was meaning some payments werent
! counted
!
! 2001-01-31 14:09 rangi
!
! * C4/Circulation/Circ2.pm: Fixed a little bug in
! getiteminformation, it wasnt returning item loanlength
!
! 2001-01-31 13:38 rangi
!
! * C4/Output.pm, circ/circulation.pl: Added a line to Ouput.pm to
! enable circulation to use its own includes Changed the look of
! circulation.pl to the green/yellow colours
!
! Note: Steve, i added another variable $backgroundimage that sets
! the background image for the main tables, so it should be
! straightforward to change the look back to the colours you had if
! you want to
!
! 2001-01-31 11:34 rangi
!
! * moremember.pl: Changed it so you cant renew a book that is on
! request, made a link from the on request text to the
! request(reserve) data
!
! 2001-01-31 10:14 tonnesen
!
! * circ/circulation.pl: Mostly just look changes, got rid of table
! borders, alternating colors on table rows. Some fixes to returned
! items in returns module.
!
! 2001-01-31 10:13 tonnesen
!
! * C4/Circulation/Circ2.pm: Return itemlist array, and itemlisttext
! (text version of overdues) with overdue flag in
! getpatroninformation()
!
! 2001-01-25 16:39 rangi
!
! * misc/fines2.pl: Script to generate overdue fines. Ideally run as
! a cronjob each night
!
! 2001-01-25 16:17 tonnesen
!
! * C4/Circulation/Circ2.pm, circ/circulation.pl: Returns module
! lists recently returned items, cookies used to store branch and
! printer preferences.
!
! 2001-01-24 16:01 tonnesen
!
! * C4/Circulation/Circ2.pm, circ/circulation.pl: Refined Returns
! module. Added ability to select branch and printer. Fixed charges
! for rental items.
!
! 2001-01-23 15:48 tonnesen
!
! * C4/Circulation/Circ2.pm, circ/circulation.pl: Changes to web
! circulation module: rudimentary returns module, arbitrary due date
! for issues, flag info displayed, overdue books are displayed in
! red.
!
! 2001-01-22 16:12 tonnesen
!
! * C4/Circulation/Circ2.pm, circ/circulation.pl: Fixed a bug in
! issuing reserved books. Was calling non-existent printreserve
! subroutine
!
! 2001-01-22 15:48 tonnesen
!
! * C4/Circulation/Circ2.pm, circ/circulation.pl: Started work on a
! web-based circulation interface.
!
! 2001-01-17 15:45 tonnesen
!
! * C4/Circulation/Circ2.pm, tkperl/tkcirc: Added support for showing
! patron flags in the issues module. Moved popup message windows to
! a Toplevel widget instead of a message widget. Toplevel widgets
! come up much faster than message widgets.
!
! 2001-01-16 15:34 rangi
!
! * C4/Circulation/Fines.pm: Fixing a glitch in the fines routine,
! was failing if adding a new fine to the same user for the same item
!
! 2001-01-15 11:31 tonnesen
!
! * C4/Circulation/Circ2.pm: API for circulation modules
!
! 2001-01-15 11:22 tonnesen
!
! * tkperl/tkcirc: Now uses Circ2.pm generic interface subroutines.
!
! 2001-01-09 12:47 tonnesen
!
! * tkperl/tkcirc: Moved returned item list from a scrolled text box
! to a scrolled table.
!
! 2001-01-09 09:36 tonnesen
!
! * tkperl/tkcirc: First release of Perl/Tk circulation interface
!
! 2001-01-05 09:47 tonnesen
!
! * C4/Output.pm: Renamed koha.conf config entry from "path" to
! "includes", which is more meaningful in the koha.conf file.
!
! 2001-01-05 09:39 tonnesen
!
! * C4/Circulation/Main.pm: Modified getbranch() and getprinter()
! subroutines to not pop up a menu if there is only one branch or one
! printer, but just select the single option automatically.
!
! 2001-01-05 08:30 tonnesen
!
! * C4/Output.pm: Added support for moving path=... variable to
! /etc/koha.conf
!
! 2000-12-21 11:56 rangi
!
! * C4/Database.pm: Shifted Database connection variables out into a
! configuration file The permissions on this config file should also
! be strict, since they contain the database password. At a minimum,
! the apache user needs to be able to read it, as well as any other
! user that runs circ. I would suggest ownership of
! www-data.libadmins with no access to others. libadmins contain all
! users that use circ
!
! destined for v1.08
!
! 2000-12-19 15:45 rangi
!
! * boraccount.pl, borrwraper.pl, catmaintain.pl, charges.pl,
! currency.pl, delbiblio.pl, delitem.pl, detail.pl, fines.pl,
! imemberentry.pl, insertdata.pl, insertidata.pl, insertjdata.pl,
! jmemberentry.pl, member.pl, memberentry.pl, modbib.pl,
! modbibitem.pl, moditem.pl, modrequest.pl, moredetail.pl,
! moremember.pl, newimember.pl, newjmember.pl, newmember.pl,
! opac-search.pl, orderbreakdown.pl, pay.pl, placerequest.pl,
! readingrec.pl, renewscript.pl, reports.pl, request.pl,
! reservereport.pl, reservereport.xls, search.pl, showbudget.pl,
! simpleredirect.pl, stats.pl, stats2.pl, subjectsearch.pl,
! tidyaccounts.pl, updatebibitem.pl, updatebiblio.pl,
! updatecharges.pl, updateitem.pl, C4/Accounts.pm, C4/Accounts2.pm,
! C4/Acquisitions.pm, C4/Circmain.pm, C4/Circulation.pm,
! C4/Database.pm, C4/Format.pm, C4/Input.pm, C4/InterfaceCDK.pm,
! C4/Maintainance.pm, C4/Output.pm, C4/Print.pm, C4/Reserves.pm,
! C4/Reserves2.pm, C4/Scan.pm, C4/Search.pm, C4/Security.pm,
! C4/Stats.pm, C4/Stock.pm, C4/Circulation/Borrissues.pm,
! C4/Circulation/Borrower.pm, C4/Circulation/Fines.pm,
! C4/Circulation/Issues.pm, C4/Circulation/Main.pm,
! C4/Circulation/Renewals.pm, C4/Circulation/Renewals2.pm,
! C4/Circulation/Returns.pm, C4/Interface/AccountsCDK.pm,
! C4/Interface/BorrowerCDK.pm, C4/Interface/FlagsCDK.pm,
! C4/Interface/RenewalsCDK.pm, C4/Interface/ReserveentCDK.pm,
! acqui/acquire.pl, acqui/addorder.pl, acqui/basket.pl,
! acqui/finishreceive.pl, acqui/modorders.pl, acqui/newbasket.pl,
! acqui/newbasket2.pl, acqui/newbiblio.pl, acqui/order.pl,
! acqui/receive.pl, acqui/recieveorder.pl, acqui/supplier.pl,
! acqui/updatesupplier.pl, misc/fixborrower.pl, misc/fixcatalog.pl,
! misc/fixorders.pl, misc/fixorders.pl2, misc/fixrefs.pl,
! misc/makebaskets.pl, misc/makeformats.pl, misc/tidyaccounts.pl,
! sec/writeoff.pl, telnet/borrwraper.pl, telnet/circ,
! telnet/doreturns.pl, telnet/issuewrapper.pl,
! telnet/returnswrapper.pl, telnet/startint.pl: Initial revision
!
! 2000-12-19 15:45 rangi
!
! * boraccount.pl, borrwraper.pl, catmaintain.pl, charges.pl,
! currency.pl, delbiblio.pl, delitem.pl, detail.pl, fines.pl,
! imemberentry.pl, insertdata.pl, insertidata.pl, insertjdata.pl,
! jmemberentry.pl, member.pl, memberentry.pl, modbib.pl,
! modbibitem.pl, moditem.pl, modrequest.pl, moredetail.pl,
! moremember.pl, newimember.pl, newjmember.pl, newmember.pl,
! opac-search.pl, orderbreakdown.pl, pay.pl, placerequest.pl,
! readingrec.pl, renewscript.pl, reports.pl, request.pl,
! reservereport.pl, reservereport.xls, search.pl, showbudget.pl,
! simpleredirect.pl, stats.pl, stats2.pl, subjectsearch.pl,
! tidyaccounts.pl, updatebibitem.pl, updatebiblio.pl,
! updatecharges.pl, updateitem.pl, C4/Accounts.pm, C4/Accounts2.pm,
! C4/Acquisitions.pm, C4/Circmain.pm, C4/Circulation.pm,
! C4/Database.pm, C4/Format.pm, C4/Input.pm, C4/InterfaceCDK.pm,
! C4/Maintainance.pm, C4/Output.pm, C4/Print.pm, C4/Reserves.pm,
! C4/Reserves2.pm, C4/Scan.pm, C4/Search.pm, C4/Security.pm,
! C4/Stats.pm, C4/Stock.pm, C4/Circulation/Borrissues.pm,
! C4/Circulation/Borrower.pm, C4/Circulation/Fines.pm,
! C4/Circulation/Issues.pm, C4/Circulation/Main.pm,
! C4/Circulation/Renewals.pm, C4/Circulation/Renewals2.pm,
! C4/Circulation/Returns.pm, C4/Interface/AccountsCDK.pm,
! C4/Interface/BorrowerCDK.pm, C4/Interface/FlagsCDK.pm,
! C4/Interface/RenewalsCDK.pm, C4/Interface/ReserveentCDK.pm,
! acqui/acquire.pl, acqui/addorder.pl, acqui/basket.pl,
! acqui/finishreceive.pl, acqui/modorders.pl, acqui/newbasket.pl,
! acqui/newbasket2.pl, acqui/newbiblio.pl, acqui/order.pl,
! acqui/receive.pl, acqui/recieveorder.pl, acqui/supplier.pl,
! acqui/updatesupplier.pl, misc/fixborrower.pl, misc/fixcatalog.pl,
! misc/fixorders.pl, misc/fixorders.pl2, misc/fixrefs.pl,
! misc/makebaskets.pl, misc/makeformats.pl, misc/tidyaccounts.pl,
! sec/writeoff.pl, telnet/borrwraper.pl, telnet/circ,
! telnet/doreturns.pl, telnet/issuewrapper.pl,
! telnet/returnswrapper.pl, telnet/startint.pl: Files shifted into
! Sourceforge CVS
!
--- 485,627 ----
to get the items showing in date_due order
! #Version 1.1.1
! Last release before MARC support
! - Mainly bugfixes. Lots of little glitches in web circulation and members
! dealt with.
! - Fixed bugs in the manual accounts section
!
! New Features.
! - Courtesy of Pawel Skuza: A little script that allows multiple language
! interfaces to koha. Read the scripts/translator/translator.readme for a
! better explanation.
! - Deleting members/borrowers now works
!
!
! #Version 1.1.0
! A Huge amount of changes, many thanks to Glen Stewart and Steve Tonnesen
! -Shifted configuration variables out of Database.pm in the koha.conf (should
! live in /etc/koha.conf
! - Little fix in detail.pl so that empty () dont display when an item doesnt
! have an author
! - Added loadmodules.pl
! loadmodules.pl allows redirection to different modules based on systemprefs
! Added subroutine in Search.pm load systemprefs from new systempreferences
! table in database. Initial use is to allow using my simplified acquisitions
! module in place of vendor-based acquisitions module. Default is
! vendor-based module
! - Changed moremember.pl
! Fixed so you cant renew and already renewed book, or a book that is on
! reserve(request)
! - Added shelves.pl
! Start of code to implement virtual bookshelves
! - Changed stats.pl
! Fixed a bug that was stopping renewals being counted
! - Added circ/circulation
! Script to handle issues and returns from web
! - Added tkperl/tkcirc
! Start of tkperl based circulation module
! - Added C4/Bookshelves.pm
! Module to facilitate virtual bookshelves
! - Changed C4/Database.pm
! Shifted configuration variables out of module
! - Changed C4/Search.pm
! Added subroutine in Search.pm load systemprefs from new systempreferences
! table in database. Initial use is to allow using my simplified acquisitions
! module in place of vendor-based acquisitions module. Default is
! vendor-based module.
! - Added C4/Circulation/Circ2.pm
! API for circulation, huge thanks to Steve Tonnesen tonnesen(a)cmsd.bc.ca for
! this.
!
! - Plus lots of little html changes
!
!
! #Version 1.07
! Lots of changes
! Included Glen Stewarts (glen_stewart(a)associate.com)
! koha.sql generator script, for importing data into koha (koha-sql-generator)
! Additions:
! - currency.pl - Script to allow for exchange rates to be modified
! - tidyaccounts.pl - Script to tidy up a borrowers account (still needs work)
! - catmaintain.pl - Script to do catalogue maintenance,
! only does subject maintenance at the moment
! nessecitated a change in index.html
!
! Changes
! - Changed the Statistics table.
! Use databasepatch1.06-1.07 to implement
! mysql -uusername -ppassword databasename < databasepatch1.06-1.07
! - Moredetail.pl
! Added link to acqusition data from accession date
! - Search.pl
! Fixed dewey search, was only returning first screen of results
! - Stats.pl
! New daily stats report, runs much faster
! - C4/Acquisitions.pm
! Fixing bug in modify order, allowing changing of bookfund when receiving
! - C4/Maintainance.pm
! Module containing functions used in catalogue maintenance
! - C4/Search.pm
! Tidying up error handling, slight modification to title search
! - C4/Stats.pm
! Changed updatestats routine so it stores itemnumbers and itemtypes
! - C4/Circulation/Issues.pm
! Updated call to update stats so itemtype and itemnumber are passed
! - C4/Circulation/Main.pm
! Fixing glitch in checkreserve function which meant some reserves werent
! marked as being filled
! - C4/Circulation/Returns.pm
! Updated call to update stats so itemnumber is passed
! - C4/Circulation/Renewals.pm
! Updated call to update stats so itemnumber is passed
! - C4/Circulation/Renewals2.pm
! Updated call to update stats so itemnumber is passed
! - acqui/acquire.pl
! Fixed so bookfunds can be changed
! - acqui/addorder.pl
! Modify order working better
! - acqui/finishreceive.pl
! Setting quantity ordered to 0 cancels order now
! - acqui/newbiblio.pl
! Fixed so estimated prices show correctly
! And recommended retail price shows if known
!
! - index.html (intranet) added link to catalogue maintenance section
!
! #Version 1.06
! Seperate forms for adding institutions or children as members/patrons.
! Additional authors being search as part of Author search
! Optimised catalogue searches.
! Fixed deleting orders bug in acquisitions
! Got book title showing up on reserve charge
!
! #Version 1.05
! Fixing reserves/requests, so that only items in the group requested (not
! whole biblio) trigger the reserves flag.
! Fixed bad behaviour in subject search.
! Got Dewey decimal search going
! Got receript summary screen in acquisitions working better
! Fixing more spelling mistakes
!
! #Version 1.04
! Tidying up tarball, fixing some spelling mistakes
!
! #Version 1.03
! Some fairly major changes
! All books waiting for a borrower are now showing on their card in the telnet
! screen.
! Reference books never being able to the public
! Reworked searches, allowing class search to combine with the title, author
! and keyword searchs
! Added an exact title search
!
! # Version 1.02
! Fixed a glitch in reserves/requests ... no longer showing filled reserves
! Fixed a glitch in ordering to with # in titles
!
! # Version 1.01
! Fixed bug in reserves deletion
! Fixed bug with " in biblio
! Fixed bug in displaying multiple copies of the same order (when receiving
! acquisitions)
! Fixed bug in Subject search that was duplicating some titles
1
0
Update of /cvsroot/koha/koha/acqui
In directory usw-pr-cvs1:/tmp/cvs-serv15194/acqui
Modified Files:
newbasket2.pl
Log Message:
Now use the new hash based results returned from Search.pm
Index: newbasket2.pl
===================================================================
RCS file: /cvsroot/koha/koha/acqui/newbasket2.pl,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -r1.1.1.1 -r1.2
*** newbasket2.pl 19 Dec 2000 23:45:56 -0000 1.1.1.1
--- newbasket2.pl 7 May 2002 00:09:06 -0000 1.2
***************
*** 30,36 ****
my $title=$input->param('search');
$search{'title'}=$title;
! my $keyword=$input->param('search');
$search{'keyword'}=$keyword;
! my $author=$input->param('search');
$search{'author'}=$author;
--- 30,36 ----
my $title=$input->param('search');
$search{'title'}=$title;
! my $keyword=$input->param('d');
$search{'keyword'}=$keyword;
! my $author=$input->param('author');
$search{'author'}=$author;
***************
*** 46,52 ****
my $id=$input->param('id');
my $basket=$input->param('basket');
!
my ($count,@booksellers)=bookseller($id);
- print startpage();
print startpage();
--- 46,56 ----
my $id=$input->param('id');
my $basket=$input->param('basket');
! my $sub=$input->param('sub');
! my $donation;
! if ($id == 72){
! $donation='yes';
! }
! #print $sub;
my ($count,@booksellers)=bookseller($id);
print startpage();
***************
*** 54,60 ****
print mkheadr(1,"Shopping Basket For: $booksellers[0]->{'name'}");
print <<printend
!
! <a href=newbiblio.pl?id=$id&basket=$basket><img src=/images/add-biblio.gif width=187 heigth=42 border=0 align=right alt="Add New Biblio"></a>
<a href=basket.pl?basket=$basket><img src=/images/view-basket.gif width=187 heigth=42 border=0 align=right alt="View Basket"></a>
--- 58,68 ----
print mkheadr(1,"Shopping Basket For: $booksellers[0]->{'name'}");
+ if ($donation ne 'yes'){
+ print "<a href=newbiblio.pl?id=$id&basket=$basket&sub=$sub>";
+ } else {
+ print "<a href=newdonation.pl?id=$id&basket=$basket&sub=$sub>";
+ }
print <<printend
! <img src=/images/add-biblio.gif width=187 heigth=42 border=0 align=right alt="Add New Biblio"></a>
<a href=basket.pl?basket=$basket><img src=/images/view-basket.gif width=187 heigth=42 border=0 align=right alt="View Basket"></a>
***************
*** 72,84 ****
my @results;
! if ($keyword ne ''){
! # print "hey";
! ($count,@results)=&KeywordSearch(\$blah,'intra',\%search,$num,$offset);
! } elsif ($search{'front'} ne '') {
! ($count,@results)&FrontSearch(\$blah,'intra',\%search,$num,$offset);
! }else {
($count,@results)=&CatSearch(\$blah,'loose',\%search,$num,$offset);
! # print "hey";
! }
print "You searched on ";
--- 80,86 ----
my @results;
!
($count,@results)=&CatSearch(\$blah,'loose',\%search,$num,$offset);
!
print "You searched on ";
***************
*** 111,125 ****
while ($i < $count2){
# print $results[$i]."\n";
! my @stuff=split('\t',$results[$i]);
! $stuff[1]=~ s/\`/\\\'/g;
! my $title2=$stuff[1];
! my $author2=$stuff[0];
! my $copyright=$stuff[3];
$author2=~ s/ /%20/g;
$title2=~ s/ /%20/g;
$title2=~ s/\#/\&\#x23;/g;
! $stuff[1]=mklink("/cgi-bin/koha/acqui/newbiblio.pl?title=$title2&author=$author2©right=$copyright&id=$id&basket=$basket&biblio=$stuff[2]",$stuff[1]);
! my $word=$stuff[0];
! # print $word;
$word=~ s/([a-z]) +([a-z])/$1%20$2/ig;
$word=~ s/ //g;
--- 113,134 ----
while ($i < $count2){
# print $results[$i]."\n";
! # my @stuff=split('\t',$results[$i]);
! my $result=$results[$i];
! $result->{'title'}=~ s/\`/\\\'/g;
! my $title2=$result->{'title'};
! my $author2=$result->{'author'};
! my $copyright=$result->{'copyrightdate'};
$author2=~ s/ /%20/g;
$title2=~ s/ /%20/g;
$title2=~ s/\#/\&\#x23;/g;
! $title2=~ s/\"/\"\;/g;
! my $itemcount;
! my $location='';
! if ($donation eq 'yes'){
! $result->{'title'}=mklink("/cgi-bin/koha/acqui/newdonation.pl?author=$author2©right=$copyright&id=$id&basket=$basket&biblio=$result->{'biblionumber'}&title=$title2",$result->{'title'});
! } else {
! $result->{'title'}=mklink("/cgi-bin/koha/acqui/newbiblio.pl?sub=$sub&author=$author2©right=$copyright&id=$id&basket=$basket&biblio=$result->{'biblionumber'}&title=$title2",$result->{'title'});
! }
! my $word=$result->{'author'};
$word=~ s/([a-z]) +([a-z])/$1%20$2/ig;
$word=~ s/ //g;
***************
*** 128,189 ****
$word=~ s/\n//g;
my $url="/cgi-bin/koha/search.pl?author=$word&type=$type";
! $stuff[0]=mklink($url,$stuff[0]);
! my ($count,$lcount,$nacount,$fcount,$scount,$lostcount,$mending,$transit)=itemcount($env,$stuff[2],$type);
! $stuff[4]=$count;
if ($nacount > 0){
! $stuff[5]=$stuff[5]."On Loan";
if ($nacount >1 ){
! $stuff[5]=$stuff[5]." ($nacount)";
}
! $stuff[5].=" ";
}
if ($lcount > 0){
! $stuff[5]=$stuff[5]."Levin";
if ($lcount >1 ){
! $stuff[5]=$stuff[5]." ($lcount)";
}
! $stuff[5].=" ";
}
if ($fcount > 0){
! $stuff[5]=$stuff[5]."Foxton";
if ($fcount >1 ){
! $stuff[5]=$stuff[5]." ($fcount)";
}
! $stuff[5].=" ";
}
if ($scount > 0){
! $stuff[5]=$stuff[5]."Shannon";
if ($scount >1 ){
! $stuff[5]=$stuff[5]." ($scount)";
}
! $stuff[5].=" ";
}
if ($lostcount > 0){
! $stuff[5]=$stuff[5]."Lost";
if ($lostcount >1 ){
! $stuff[5]=$stuff[5]." ($lostcount)";
}
! $stuff[5].=" ";
}
if ($mending > 0){
! $stuff[5]=$stuff[5]."Mending";
if ($mending >1 ){
! $stuff[5]=$stuff[5]." ($mending)";
}
! $stuff[5].=" ";
}
if ($transit > 0){
! $stuff[5]=$stuff[5]."In Transiit";
if ($transit >1 ){
! $stuff[5]=$stuff[5]." ($transit)";
}
! $stuff[5].=" ";
}
if ($colour == 1){
! print mktablerow(6,$secondary,$stuff[1],$stuff[0],$stuff[3],$stuff[4],$stuff[5],$stuff[6]);
$colour=0;
} else{
! print mktablerow(6,'white',$stuff[1],$stuff[0],$stuff[3],$stuff[4],$stuff[5],$stuff[6]);
$colour=1;
}
--- 137,198 ----
$word=~ s/\n//g;
my $url="/cgi-bin/koha/search.pl?author=$word&type=$type";
! $result->{'author'}=mklink($url,$result->{'author'});
! my ($count,$lcount,$nacount,$fcount,$scount,$lostcount,$mending,$transit)=itemcount($env,$result->{'biblionumber'},$type);
! $itemcount=$count;
if ($nacount > 0){
! $location=$location."On Loan";
if ($nacount >1 ){
! $location=$location." ($nacount)";
}
! $location.=" ";
}
if ($lcount > 0){
! $location=$location."Levin";
if ($lcount >1 ){
! $location=$location." ($lcount)";
}
! $location.=" ";
}
if ($fcount > 0){
! $location=$location."Foxton";
if ($fcount >1 ){
! $location=$location." ($fcount)";
}
! $location.=" ";
}
if ($scount > 0){
! $location=$location."Shannon";
if ($scount >1 ){
! $location=$location." ($scount)";
}
! $location.=" ";
}
if ($lostcount > 0){
! $location=$location."Lost";
if ($lostcount >1 ){
! $location=$location." ($lostcount)";
}
! $location.=" ";
}
if ($mending > 0){
! $location=$location."Mending";
if ($mending >1 ){
! $location=$location." ($mending)";
}
! $location.=" ";
}
if ($transit > 0){
! $location=$location."In Transiit";
if ($transit >1 ){
! $location=$location." ($transit)";
}
! $location.=" ";
}
if ($colour == 1){
! print mktablerow(6,$secondary,$result->{'title'},$result->{'author'},$result->{'copyrightdate'},$itemcount,$location);
$colour=0;
} else{
! print mktablerow(6,'white',$result->{'title'},$result->{'author'},$result->{'copyrightdate'},$itemcount,$location);
$colour=1;
}
***************
*** 196,200 ****
print mktableft();
if ($offset < $count){
! my $search="num=$num&offset=$offset&type=$type&id=$id&basket=$basket&search=$keyword";
my $stuff=mklink("/cgi-bin/koha/acqui/newbasket2.pl?$search",'Next');
print $stuff;
--- 205,209 ----
print mktableft();
if ($offset < $count){
! my $search="num=$num&offset=$offset&type=$type&id=$id&basket=$basket&search=$title&author=$author";
my $stuff=mklink("/cgi-bin/koha/acqui/newbasket2.pl?$search",'Next');
print $stuff;
1
0
Update of /cvsroot/koha/koha
In directory usw-pr-cvs1:/tmp/cvs-serv15194
Modified Files:
search.pl
Log Message:
Now use the new hash based results returned from Search.pm
Index: search.pl
===================================================================
RCS file: /cvsroot/koha/koha/search.pl,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -r1.6 -r1.7
*** search.pl 8 Apr 2002 23:44:43 -0000 1.6
--- search.pl 7 May 2002 00:09:06 -0000 1.7
***************
*** 150,162 ****
while ($i < $count2){
# print $results[$i]."\n";
! my @stuff=split('\t',$results[$i]);
! $stuff[1]=~ s/\`/\\\'/g;
! my $title2=$stuff[1];
$title2=~ s/ /%20/g;
if ($subject eq ''){
! # print $stuff[0];
! $stuff[1]=mklink("/cgi-bin/koha/detail.pl?type=$type&bib=$stuff[2]&title=$title2",$stuff[1]);
! my $word=$stuff[0];
! # print $word;
$word=~ s/([a-z]) +([a-z])/$1%20$2/ig;
$word=~ s/ //g;
--- 150,163 ----
while ($i < $count2){
# print $results[$i]."\n";
! # my @stuff=split('\t',$results[$i]);
! my $result=$results[$i];
! $result->{'title'}=~ s/\`/\\\'/g;
! my $title2=$result->{'title'};
$title2=~ s/ /%20/g;
+ my $location='';
+ my $itemcount;
if ($subject eq ''){
! $result->{'title'}=mklink("/cgi-bin/koha/detail.pl?type=$type&bib=$result->{'biblionumber'}&title=$title2",$result->{'title'});
! my $word=$result->{'author'};
$word=~ s/([a-z]) +([a-z])/$1%20$2/ig;
$word=~ s/ //g;
***************
*** 165,238 ****
$word=~ s/\n//g;
my $url="/cgi-bin/koha/search.pl?author=$word&type=$type";
! $stuff[7]=$stuff[5];
! $stuff[5]='';
! $stuff[0]=mklink($url,$stuff[0]);
! my ($count,$lcount,$nacount,$fcount,$scount,$lostcount,$mending,$transit,$ocount)=itemcount($env,$stuff[2],$type);
! $stuff[4]=$count;
if ($nacount > 0){
! $stuff[5]=$stuff[5]."On Loan";
if ($nacount >1 ){
! $stuff[5]=$stuff[5]." ($nacount)";
}
! $stuff[5].=" ";
}
if ($lcount > 0){
! $stuff[5]=$stuff[5]."Levin";
if ($lcount >1 ){
! $stuff[5]=$stuff[5]." ($lcount)";
}
! $stuff[5].=" ";
}
if ($fcount > 0){
! $stuff[5]=$stuff[5]."Foxton";
if ($fcount >1 ){
! $stuff[5]=$stuff[5]." ($fcount)";
}
! $stuff[5].=" ";
}
if ($scount > 0){
! $stuff[5]=$stuff[5]."Shannon";
if ($scount >1 ){
! $stuff[5]=$stuff[5]." ($scount)";
}
! $stuff[5].=" ";
}
if ($lostcount > 0){
! $stuff[5]=$stuff[5]."Lost";
if ($lostcount >1 ){
! $stuff[5]=$stuff[5]." ($lostcount)";
}
! $stuff[5].=" ";
}
if ($mending > 0){
! $stuff[5]=$stuff[5]."Mending";
if ($mending >1 ){
! $stuff[5]=$stuff[5]." ($mending)";
}
! $stuff[5].=" ";
}
if ($transit > 0){
! $stuff[5]=$stuff[5]."In Transiit";
if ($transit >1 ){
! $stuff[5]=$stuff[5]." ($transit)";
}
! $stuff[5].=" ";
}
if ($ocount > 0){
! $stuff[5]=$stuff[5]."On Order";
if ($ocount >1 ){
! $stuff[5]=$stuff[5]." ($ocount)";
}
! $stuff[5].=" ";
}
! if ($type ne 'opac'){
! $stuff[6]=mklink("/cgi-bin/koha/request.pl?bib=$stuff[2]","Request");
! }
} else {
! my $word=$stuff[1];
$word=~ s/ /%20/g;
! $stuff[1]=mklink("/cgi-bin/koha/subjectsearch.pl?subject=$word&type=$type",$stuff[1]);
}
--- 166,241 ----
$word=~ s/\n//g;
my $url="/cgi-bin/koha/search.pl?author=$word&type=$type";
! $result->{'author'}=mklink($url,$result->{'author'});
! my ($count,$lcount,$nacount,$fcount,$scount,$lostcount,$mending,$transit,$ocount)=itemcount($env,$result->{'biblionumber'},$type);
! $itemcount=$count;
! ####
! # Fix this chunk below, remove all hardcoded branch references
! # need to fix itemcount as well
! ###
if ($nacount > 0){
! $location=$location."On Loan";
if ($nacount >1 ){
! $location=$location." ($nacount)";
}
! $location.=" ";
}
if ($lcount > 0){
! $location=$location."Levin";
if ($lcount >1 ){
! $location=$location." ($lcount)";
}
! $location.=" ";
}
if ($fcount > 0){
! $location=$location."Foxton";
if ($fcount >1 ){
! $location=$location." ($fcount)";
}
! $location.=" ";
}
if ($scount > 0){
! $location=$location."Shannon";
if ($scount >1 ){
! $location=$location." ($scount)";
}
! $location.=" ";
}
if ($lostcount > 0){
! $location=$location."Lost";
if ($lostcount >1 ){
! $location=$location." ($lostcount)";
}
! $location.=" ";
}
if ($mending > 0){
! $location=$location."Mending";
if ($mending >1 ){
! $location=$location." ($mending)";
}
! $location.=" ";
}
if ($transit > 0){
! $location=$location."In Transiit";
if ($transit >1 ){
! $location=$location." ($transit)";
}
! $location.=" ";
}
if ($ocount > 0){
! $location=$location."On Order";
if ($ocount >1 ){
! $location=$location." ($ocount)";
}
! $location.=" ";
}
! # if ($type ne 'opac'){
! # $result->{'request'}=mklink("/cgi-bin/koha/request.pl?bib=$stuff[2]","Request");
! # }
} else {
! my $word=$result->{'subject'};
$word=~ s/ /%20/g;
! $result->{'title'}=mklink("/cgi-bin/koha/subjectsearch.pl?subject=$word&type=$type",$result->{'subject'});
}
***************
*** 240,253 ****
if ($colour == 1){
if ($illustrator) {
! print mktablerow(7,$secondary,$stuff[1],$stuff[0],$stuff[7],$stuff[3],$stuff[4],$stuff[5],$stuff[6]);
} else {
! print mktablerow(6,$secondary,$stuff[1],$stuff[0],$stuff[3],$stuff[4],$stuff[5],$stuff[6]);
}
$colour=0;
} else {
if ($illustrator) {
! print mktablerow(7,'white',$stuff[1],$stuff[0],$stuff[7],$stuff[3],$stuff[4],$stuff[5],$stuff[6]);
} else {
! print mktablerow(6,'white',$stuff[1],$stuff[0],$stuff[3],$stuff[4],$stuff[5],$stuff[6]);
}
$colour=1;
--- 243,256 ----
if ($colour == 1){
if ($illustrator) {
! print mktablerow(7,$secondary,$result->{'title'},$result->{'author'},$result->{'illus'},$result->{'copyrightdate'},$itemcount,$location);
} else {
! print mktablerow(6,$secondary,$result->{'title'},$result->{'author'},$result->{'copyrightdate'},$itemcount,$location);
}
$colour=0;
} else {
if ($illustrator) {
! print mktablerow(7,'white',$result->{'title'},$result->{'author'},$result->{'illus'},$result->{'copyrightdate'},$itemcount,$location);
} else {
! print mktablerow(6,'white',$result->{'title'},$result->{'author'},$result->{'copyrightdate'},$itemcount,$location);
}
$colour=1;
1
0
Update of /cvsroot/koha/koha/C4
In directory usw-pr-cvs1:/tmp/cvs-serv14738/C4
Modified Files:
Search.pm
Log Message:
Making the CatSearch and KeywordSearch return more sane returns
Returns an array of hashrefs now, rather than the array of tab separated
strings it was returning before.
Index: Search.pm
===================================================================
RCS file: /cvsroot/koha/koha/C4/Search.pm,v
retrieving revision 1.20
retrieving revision 1.21
diff -C2 -r1.20 -r1.21
*** Search.pm 6 May 2002 23:12:25 -0000 1.20
--- Search.pm 7 May 2002 00:08:20 -0000 1.21
***************
*** 243,247 ****
# print $i4;
if ($i4 <=$end && $i4 > $offset){
! $res2[$i3]="$data2->{'author'}\t$data2->{'title'}\t$data2->{'biblionumber'}\t$data2->{'copyrightdate'}\t$dewey";
$i3++;
$i4++;
--- 243,250 ----
# print $i4;
if ($i4 <=$end && $i4 > $offset){
! $data2->{'dewey'}=$dewey;
! $res2[$i3]=$data2;
!
! # $res2[$i3]="$data2->{'author'}\t$data2->{'title'}\t$data2->{'biblionumber'}\t$data2->{'copyrightdate'}\t$dewey";
$i3++;
$i4++;
***************
*** 283,288 ****
($dewey == 0) && ($dewey='');
($dewey) && ($dewey.=" $subclass") ;
! $sth->finish;
! $res2[$i]="$data2->{'author'}\t$data2->{'title'}\t$data2->{'biblionumber'}\t$data2->{'copyrightdate'}\t$dewey";
$i++;
}
--- 286,293 ----
($dewey == 0) && ($dewey='');
($dewey) && ($dewey.=" $subclass") ;
! $sth->finish;
! $data2->{'dewey'}=$dewey;
! $res2[$i]=$data2;
! # $res2[$i]="$data2->{'author'}\t$data2->{'title'}\t$data2->{'biblionumber'}\t$data2->{'copyrightdate'}\t$dewey";
$i++;
}
***************
*** 473,477 ****
($dewey == 0) && ($dewey='');
($dewey) && ($dewey.=" $subclass");
! $results[$i2]="$data->{'author'}\t$data->{'title'}\t$data->{'biblionumber'}\t$data->{'copyrightdate'}\t$dewey\t$data->{'isbn'}\t$data->{'itemtype'}";
$i2++;
$sth->finish;
--- 478,484 ----
($dewey == 0) && ($dewey='');
($dewey) && ($dewey.=" $subclass");
! $data->{'dewey'}=$dewey;
! $results[$i2]=$data;
! # $results[$i2]="$data->{'author'}\t$data->{'title'}\t$data->{'biblionumber'}\t$data->{'copyrightdate'}\t$dewey\t$data->{'isbn'}\t$data->{'itemtype'}";
$i2++;
$sth->finish;
***************
*** 527,540 ****
($dewey == 0) && ($dewey='');
($dewey) && ($dewey.=" $subclass");
$sti->finish;
if ($true == 1){
if ($count > $offset && $count <= $limit){
! if ($type ne 'subject' && $type ne 'precise'){
! $results[$i]="$data->{'author'}\t$data->{'title'}\t$data->{'biblionumber'}\t$data->{'copyrightdate'}\t$dewey\t$data->{'illus'}";
! } elsif ($search->{'isbn'} ne '' || $search->{'item'} ne ''){
! $results[$i]="$data->{'author'}\t$data->{'title'}\t$data->{'biblionumber'}\t$data->{'copyrightdate'}\t$dewey\t$data->{'illus'}";
! } else {
! $results[$i]="$data->{'author'}\t$data->{'subject'}\t$data->{'biblionumber'}\t$data->{'copyrightdate'}\t$dewey\t$data->{'illus'}";
! }
$i++;
}
--- 534,549 ----
($dewey == 0) && ($dewey='');
($dewey) && ($dewey.=" $subclass");
+ $data->{'dewey'}=$dewey;
$sti->finish;
if ($true == 1){
if ($count > $offset && $count <= $limit){
! # if ($type ne 'subject' && $type ne 'precise'){
! # $results[$i]="$data->{'author'}\t$data->{'title'}\t$data->{'biblionumber'}\t$data->{'copyrightdate'}\t$dewey\t$data->{'illus'}";
! # } elsif ($search->{'isbn'} ne '' || $search->{'item'} ne ''){
! # $results[$i]="$data->{'author'}\t$data->{'title'}\t$data->{'biblionumber'}\t$data->{'copyrightdate'}\t$dewey\t$data->{'illus'}";
! # } else {
! # $results[$i]="$data->{'author'}\t$data->{'subject'}\t$data->{'biblionumber'}\t$data->{'copyrightdate'}\t$dewey\t$data->{'illus'}";
! # }
! $results[$i]=$data;
$i++;
}
1
0
Update of /cvsroot/koha/koha/C4
In directory usw-pr-cvs1:/tmp/cvs-serv2274/C4
Modified Files:
Search.pm
Log Message:
Removing keywordsearch2 (no longer used)
Fixing glitches in counting lost items.
In items
itemlost=1 item marked lost by a librarian
itemlost=2 item marked lost by kohas automatic this item is over 4 weeks
overdue routine.
To the borrowers (ie in the opac) they should just show as lost
Index: Search.pm
===================================================================
RCS file: /cvsroot/koha/koha/C4/Search.pm,v
retrieving revision 1.19
retrieving revision 1.20
diff -C2 -r1.19 -r1.20
*** Search.pm 2 May 2002 00:08:53 -0000 1.19
--- Search.pm 6 May 2002 23:12:25 -0000 1.20
***************
*** 297,450 ****
}
- sub KeywordSearch2 {
- my ($env,$type,$search,$num,$offset)=@_;
- my $dbh = &C4Connect;
- $search->{'keyword'}=~ s/ +$//;
- $search->{'keyword'}=~ s/'/\\'/;
- my @key=split(' ',$search->{'keyword'});
- my $count=@key;
- my $i=1;
- my @results;
- my $query ="Select * from biblio,bibliosubtitle,biblioitems where
- biblio.biblionumber=biblioitems.biblionumber and
- biblio.biblionumber=bibliosubtitle.biblionumber and
- (((title like '$key[0]%' or title like '% $key[0]%')";
- while ($i < $count){
- $query=$query." and (title like '$key[$i]%' or title like '% $key[$i]%')";
- $i++;
- }
- $query.= ") or ((subtitle like '$key[0]%' or subtitle like '% $key[0]%')";
- for ($i=1;$i<$count;$i++){
- $query.= " and (subtitle like '$key[$i]%' or subtitle like '% $key[$i]%')";
- }
- $query.= ") or ((seriestitle like '$key[0]%' or seriestitle like '% $key[0]%')";
- for ($i=1;$i<$count;$i++){
- $query.=" and (seriestitle like '$key[$i]%' or seriestitle like '% $key[$i]%')";
- }
- $query.= ") or ((biblio.notes like '$key[0]%' or biblio.notes like '% $key[0]%')";
- for ($i=1;$i<$count;$i++){
- $query.=" and (biblio.notes like '$key[$i]%' or biblio.notes like '% $key[$i]%')";
- }
- $query.= ") or ((biblioitems.notes like '$key[0]%' or biblioitems.notes like '% $key[0]%')";
- for ($i=1;$i<$count;$i++){
- $query.=" and (biblioitems.notes like '$key[$i]%' or biblioitems.notes like '% $key[$i]%')";
- }
- if ($search->{'keyword'} =~ /new zealand/i){
- $query.= "or (title like 'nz%' or title like '% nz %' or title like '% nz' or subtitle like 'nz%'
- or subtitle like '% nz %' or subtitle like '% nz' or author like 'nz %'
- or author like '% nz %' or author like '% nz')"
- }
- if ($search->{'keyword'} eq 'nz' || $search->{'keyword'} eq 'NZ' ||
- $search->{'keyword'} =~ /nz /i || $search->{'keyword'} =~ / nz /i ||
- $search->{'keyword'} =~ / nz/i){
- $query.= "or (title like 'new zealand%' or title like '% new zealand %'
- or title like '% new zealand' or subtitle like 'new zealand%' or
- subtitle like '% new zealand %'
- or subtitle like '% new zealand' or author like 'new zealand%'
- or author like '% new zealand %' or author like '% new zealand' or
- seriestitle like 'new zealand%' or seriestitle like '% new zealand %'
- or seriestitle like '% new zealand')"
- }
- $query=$query."))";
- if ($search->{'class'} ne ''){
- my @temp=split(/\|/,$search->{'class'});
- my $count=@temp;
- $query.= "and ( itemtype='$temp[0]'";
- for (my $i=1;$i<$count;$i++){
- $query.=" or itemtype='$temp[$i]'";
- }
- $query.=")";
- }
- if ($search->{'dewey'} ne ''){
- $query.= "and (dewey like '$search->{'dewey'}%') ";
- }
- $query.="group by biblio.biblionumber";
- #$query.=" order by author,title";
- # print $query;
- my $sth=$dbh->prepare($query);
- $sth->execute;
- $i=0;
- while (my $data=$sth->fetchrow_hashref){
- # my $sti=$dbh->prepare("select dewey,subclass from biblioitems where biblionumber=$data->{'biblionumber'}
- # ");
- # $sti->execute;
- # my ($dewey, $subclass) = $sti->fetchrow;
- my $dewey=$data->{'dewey'};
- my $subclass=$data->{'subclass'};
- $dewey=~s/\.*0*$//;
- ($dewey == 0) && ($dewey='');
- ($dewey) && ($dewey.=" $subclass");
- # $sti->finish;
- $results[$i]="$data->{'author'}\t$data->{'title'}\t$data->{'biblionumber'}\t$data->{'copyrightdate'}\t$dewey";
- # print $results[$i];
- $i++;
- }
- $sth->finish;
- $sth=$dbh->prepare("Select biblionumber from bibliosubject where subject
- like '%$search->{'keyword'}%' group by biblionumber");
- $sth->execute;
- while (my $data=$sth->fetchrow_hashref){
- $query="Select * from biblio,biblioitems where
- biblio.biblionumber=$data->{'biblionumber'} and
- biblio.biblionumber=biblioitems.biblionumber ";
- if ($search->{'class'} ne ''){
- my @temp=split(/\|/,$search->{'class'});
- my $count=@temp;
- $query.= " and ( itemtype='$temp[0]'";
- for (my $i=1;$i<$count;$i++){
- $query.=" or itemtype='$temp[$i]'";
- }
- $query.=")";
-
- }
- if ($search->{'dewey'} ne ''){
- $query.= "and (dewey like '$search->{'dewey'}%') ";
- }
- my $sth2=$dbh->prepare($query);
- $sth2->execute;
- # print $query;
- while (my $data2=$sth2->fetchrow_hashref){
- my $dewey= $data2->{'dewey'};
- my $subclass=$data2->{'subclass'};
- $dewey=~s/\.*0*$//;
- ($dewey == 0) && ($dewey='');
- ($dewey) && ($dewey.=" $subclass") ;
- # $sti->finish;
- $results[$i]="$data2->{'author'}\t$data2->{'title'}\t$data2->{'biblionumber'}\t$data2->{'copyrightdate'}\t$dewey";
- # print $results[$i];
- $i++;
- }
- $sth2->finish;
- }
- my $i2=1;
- @results=sort @results;
- my @res;
- my $count=@results;
- $i=1;
- if ($count > 0){
- $res[0]=$results[0];
- }
- while ($i2 < $count){
- if ($results[$i2] ne $res[$i-1]){
- $res[$i]=$results[$i2];
- $i++;
- }
- $i2++;
- }
- $i2=0;
- my @res2;
- $count=@res;
- while ($i2 < $num && $i2 < $count){
- $res2[$i2]=$res[$i2+$offset];
- # print $res2[$i2];
- $i2++;
- }
- $sth->finish;
- $dbh->disconnect;
- # $i--;
- # $i++;
- return($i,@res2);
- }
-
sub CatSearch {
my ($env,$type,$search,$num,$offset)=@_;
--- 297,300 ----
***************
*** 738,742 ****
# print $type;
if ($type ne 'intra'){
! $query.=" and (items.itemlost<>1 or items.itemlost is NULL)
and (wthdrawn <> 1 or wthdrawn is NULL)";
}
--- 588,593 ----
# print $type;
if ($type ne 'intra'){
! $query.=" and ((items.itemlost<>1 and items.itemlost <> 2)
! or items.itemlost is NULL)
and (wthdrawn <> 1 or wthdrawn is NULL)";
}
***************
*** 758,762 ****
$datedue = "$temp[2]/$temp[1]/$temp[0]";
}
! if ($data->{'itemlost'} eq '1'){
$datedue='Itemlost';
}
--- 609,613 ----
$datedue = "$temp[2]/$temp[1]/$temp[0]";
}
! if ($data->{'itemlost'} eq '1' || $data->{'itemlost'} eq '2'){
$datedue='Itemlost';
}
***************
*** 1188,1192 ****
biblionumber=$bibnum ";
if ($type ne 'intra'){
! $query.=" and (itemlost <>1 or itemlost is NULL) and
(wthdrawn <> 1 or wthdrawn is NULL)";
}
--- 1039,1043 ----
biblionumber=$bibnum ";
if ($type ne 'intra'){
! $query.=" and ((itemlost <>1 and itemlost <> 2) or itemlost is NULL) and
(wthdrawn <> 1 or wthdrawn is NULL)";
}
***************
*** 1207,1212 ****
my $query2="select * from issues,items where issues.itemnumber=
'$data->{'itemnumber'}' and returndate is NULL
! and items.itemnumber=issues.itemnumber and (items.itemlost <>1 or
! items.itemlost is NULL)";
my $sth2=$dbh->prepare($query2);
$sth2->execute;
--- 1058,1065 ----
my $query2="select * from issues,items where issues.itemnumber=
'$data->{'itemnumber'}' and returndate is NULL
! and items.itemnumber=issues.itemnumber and ((items.itemlost <>1 and
! items.itemlost <> 2) or items.itemlost is NULL)
! and (wthdrawn <> 1 or wthdrawn is NULL)";
!
my $sth2=$dbh->prepare($query2);
$sth2->execute;
***************
*** 1226,1229 ****
--- 1079,1085 ----
$lostcount++;
}
+ if ($data->{'itemlost'} eq '2'){
+ $lostcount++;
+ }
if ($data->{'holdingbranch'} eq 'FM'){
$mending++;
***************
*** 1282,1289 ****
sub barcodes{
my ($biblioitemnumber)=@_;
my $dbh=C4Connect;
my $query="Select barcode from items where
! biblioitemnumber='$biblioitemnumber'";
my $sth=$dbh->prepare($query);
$sth->execute;
--- 1138,1149 ----
sub barcodes{
+ #called from request.pl
my ($biblioitemnumber)=@_;
my $dbh=C4Connect;
my $query="Select barcode from items where
! biblioitemnumber='$biblioitemnumber'
! and ((itemlost <> 1 and itemlost <> 2) or itemlost is NULL) and
! (wthdrawn <> 1 or wthdrawn is NULL)";
! # print $query;
my $sth=$dbh->prepare($query);
$sth->execute;
1
0