rel_3_0 moved to HEAD
[koha.git] / tools / import.pl
1 #!/usr/bin/perl
2
3 # $Id$
4
5 # Script for handling import of MARC data into Koha db
6 #   and Z39.50 lookups
7
8 # Koha library project  www.koha.org
9
10 # Licensed under the GPL
11
12
13 # Copyright 2000-2002 Katipo Communications
14 #
15 # This file is part of Koha.
16 #
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
20 # version.
21 #
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.
25 #
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
29
30 use strict;
31
32 # standard or CPAN modules used
33 use CGI;
34 use DBI;
35
36 # Koha modules used
37 use C4::Context;
38 use C4::Output;
39 use C4::Interface::CGI::Output;
40 use C4::Input;
41 use C4::Biblio;
42 use MARC::File::USMARC;
43
44 use C4::Output;
45 use C4::Auth;
46 use C4::Breeding;
47
48 #------------------
49 # Constants
50
51 my $includes = C4::Context->config('includes') ||
52         "/usr/local/www/hdl/htdocs/includes";
53
54 # HTML colors for alternating lines
55 my $lc1='#dddddd';
56 my $lc2='#ddaaaa';
57
58 #-------------
59 #-------------
60 # Initialize
61
62 my $userid=$ENV{'REMOTE_USER'};
63
64 my $input = new CGI;
65 my $dbh = C4::Context->dbh;
66
67 my $uploadmarc=$input->param('uploadmarc');
68 my $overwrite_biblio = $input->param('overwrite_biblio');
69 my $filename = $input->param('filename');
70 my $syntax = $input->param('syntax');
71 my ($template, $loggedinuser, $cookie)
72         = get_template_and_user({template_name => "tools/import.tmpl",
73                                         query => $input,
74                                         type => "intranet",
75                                         authnotrequired => 0,
76                                         flagsrequired => {tools => 1},
77                                         debug => 1,
78                                         });
79
80 $template->param(SCRIPT_NAME => $ENV{'SCRIPT_NAME'},
81                                                 uploadmarc => $uploadmarc);
82 if ($uploadmarc && length($uploadmarc)>0) {
83         my $marcrecord='';
84         while (<$uploadmarc>) {
85                 $marcrecord.=$_;
86         }
87         my ($notmarcrecord,$alreadyindb,$alreadyinfarm,$imported) = ImportBreeding($marcrecord,$overwrite_biblio,$filename,$syntax,int(rand(99999)));
88
89         $template->param(imported => $imported,
90                                                         alreadyindb => $alreadyindb,
91                                                         alreadyinfarm => $alreadyinfarm,
92                                                         notmarcrecord => $notmarcrecord,
93                                                         total => $imported+$alreadyindb+$alreadyinfarm+$notmarcrecord,
94                                                         );
95
96 }
97
98 output_html_with_http_headers $input, $cookie, $template->output;
99
100
101 #---------------
102 # log cleared, as marcimport is (almost) rewritten from scratch.
103 # $Log$
104 # Revision 1.4  2007/03/09 15:14:47  tipaul
105 # rel_3_0 moved to HEAD
106 #
107 # Revision 1.1.2.4  2006/12/22 17:13:49  tipaul
108 # removing "management" permission, that is useless (replaced by tools & admin)
109 #
110 # Revision 1.1.2.3  2006/12/18 16:35:20  toins
111 # removing use HTML::Template from *.pl.
112 #
113 # Revision 1.1.2.2  2006/10/03 12:27:32  toins
114 # the script was written twice into the file !
115 #
116 # Revision 1.1.2.1  2006/09/26 13:42:54  toins
117 # fix wrong link to breeding.tmpl
118 #
119 # Revision 1.1  2006/02/24 11:52:38  hdl
120 # Adding tools directory template and scripts
121 # Changing barcodes, export and import and letters directory.
122 # Changing export script name (marc.pl) to export.pl
123 # Changing import script name (breeding.pl) to import.pl
124 #
125 # Revision 1.4  2005/05/04 08:52:13  tipaul
126 # synch'ing 2.2 and head
127 #
128 # Revision 1.3  2005/03/23 09:57:47  doxulting
129 # Adding a parameter to allow acces to people with management/tools flags