5 # Script for handling import of MARC data into Koha db
8 # Koha library project www.koha.org
10 # Licensed under the GPL
13 # Copyright 2000-2002 Katipo Communications
15 # This file is part of Koha.
17 # Koha is free software; you can redistribute it and/or modify it under the
18 # terms of the GNU General Public License as published by the Free Software
19 # Foundation; either version 2 of the License, or (at your option) any later
22 # Koha is distributed in the hope that it will be useful, but WITHOUT ANY
23 # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
24 # A PARTICULAR PURPOSE. See the GNU General Public License for more details.
26 # You should have received a copy of the GNU General Public License along with
27 # Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
28 # Suite 330, Boston, MA 02111-1307 USA
32 # standard or CPAN modules used
39 use C4::Interface::CGI::Output;
42 use MARC::File::USMARC;
51 my $includes = C4::Context->config('includes') ||
52 "/usr/local/www/hdl/htdocs/includes";
54 # HTML colors for alternating lines
62 my $userid=$ENV{'REMOTE_USER'};
65 my $dbh = C4::Context->dbh;
67 my $uploadmarc=$input->param('uploadmarc');
68 my $overwrite_biblio = $input->param('overwrite_biblio');
69 my $filename = $input->param('filename');
70 my ($template, $loggedinuser, $cookie)
71 = get_template_and_user({template_name => "acqui.simple/marcimport.tmpl",
75 flagsrequired => {parameters => 1},
79 $template->param(SCRIPT_NAME => $ENV{'SCRIPT_NAME'},
80 uploadmarc => $uploadmarc);
81 if ($uploadmarc && length($uploadmarc)>0) {
83 while (<$uploadmarc>) {
86 my ($notmarcrecord,$alreadyindb,$alreadyinfarm,$imported) = ImportBreeding($marcrecord,$overwrite_biblio,$filename);
88 $template->param(imported => $imported,
89 alreadyindb => $alreadyindb,
90 alreadyinfarm => $alreadyinfarm,
91 notmarcrecord => $notmarcrecord,
92 total => $imported+$alreadyindb+$alreadyinfarm+$notmarcrecord,
97 output_html_with_http_headers $input, $cookie, $template->output;
103 # log cleared, as marcimport is (almost) rewritten from scratch.
105 # Revision 1.32 2003/04/22 12:22:54 tipaul
106 # 1st draft for z3950 client import.
107 # moving Breeding farm script to a perl package C4/Breeding.pm
109 # Revision 1.31 2003/02/19 01:01:07 wolfpac444
110 # Removed the unecessary $dbh argument from being passed.
111 # Resolved a few minor FIXMEs.
113 # Revision 1.30 2003/02/02 07:18:38 acli
114 # Moved C4/Charset.pm to C4/Interface/CGI/Output.pm
116 # Create output_html_with_http_headers function to contain the "print $query
117 # ->header(-type => guesstype...),..." call. This is in preparation for
118 # non-HTML output (e.g., text/xml) and charset conversion before output in
121 # Created C4/Interface/CGI/Template.pm to hold convenience functions specific
122 # to the CGI interface using HTML::Template
124 # Modified moremembers.pl to make the "sex" field localizable for languages
125 # where M and F doesn't make sense
127 # Revision 1.29 2003/01/28 15:28:31 tipaul
128 # removing use MARC::Charset
131 # Revision 1.28 2003/01/28 15:00:31 tipaul
132 # user can now search in breeding farm with isbn/issn or title. Title/name are stored in breeding farm and showed when a search is done
134 # Revision 1.27 2003/01/26 23:21:49 acli
135 # Handle non-latin1 charsets
137 # Revision 1.26 2003/01/23 12:26:41 tipaul
138 # upgrading import in breeding farm (you can now search on ISBN or on title) AND character encoding.
140 # Revision 1.25 2003/01/21 08:13:50 tipaul
141 # character encoding ISO646 => 8859-1, first draft
143 # Revision 1.24 2003/01/14 16:41:17 tipaul
144 # bugfix : use gettemplate_and_user instead of gettemplate.
145 # fix a blank screen in 1.3.3 in "import in breeding farm"
147 # Revision 1.23 2003/01/06 13:06:28 tipaul
148 # removing trailing #
150 # Revision 1.22 2002/11/12 15:58:43 tipaul
153 # * adding value_builder : you can map a subfield in the marc_subfield_structure to a sub stored in "value_builder" directory. In this directory you can create screen used to build values with any method. In this commit is a 1st draft of the builder for 100$a unimarc french subfield, which is composed of 35 digits, with 12 differents values (only the 4th first are provided for instance)
155 # Revision 1.21 2002/10/22 15:50:23 tipaul
156 # road to 1.3.2 : adding a biblio in MARC format.
157 # seems to work a few.
159 # * manage html checks (mandatory subfields...)
160 # * add list of acceptable values (authorities)
161 # * manage ## in MARC format
162 # * manage correctly repeatable fields
163 # and probably a LOT of bugfixes
165 # Revision 1.20 2002/10/16 12:46:19 arensb
166 # Added a FIXME comment.
168 # Revision 1.19 2002/10/15 10:14:44 tipaul
169 # road to 1.3.2. Full rewrite of marcimport.pl.
170 # The acquisition system in MARC version will work like this :
171 # * marcimport will put marc records into a "breeding farm" table.
172 # * when the user want to add a biblio, he enters first the ISBN/ISSN of the biblio. koha searches into breeding farm and if the record exists, it is shown to the user to help him adding the biblio. When the biblio is added, it's deleted from the breeding farm.
175 # * modify acqui.simple home page (addbooks.pl)
176 # * adds import into breeding farm
179 # * z3950 functionnality is dropped from "marcimport" will be added somewhere else.
180 # * templates are in a new acqui.simple sub directory, and the marcimport template directory will become obsolete soon.I think this is more logic