Added some FIXME comments.
[koha.git] / updatebibitem.pl
1 #!/usr/bin/perl
2
3
4 # Copyright 2000-2002 Katipo Communications
5 #
6 # This file is part of Koha.
7 #
8 # Koha is free software; you can redistribute it and/or modify it under the
9 # terms of the GNU General Public License as published by the Free Software
10 # Foundation; either version 2 of the License, or (at your option) any later
11 # version.
12 #
13 # Koha is distributed in the hope that it will be useful, but WITHOUT ANY
14 # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
15 # A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
16 #
17 # You should have received a copy of the GNU General Public License along with
18 # Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
19 # Suite 330, Boston, MA  02111-1307 USA
20
21 use CGI;
22 use strict;
23 use C4::Acquisitions;
24 use C4::Output;
25 use C4::Search;
26
27 my $input= new CGI;
28 #print $input->header;
29 #print $input->Dump;
30
31 my $bibitemnum      = checkinp($input->param('bibitemnum'));
32 my $bibnum          = checkinp($input->param('bibnum'));
33 my $itemtype        = checkinp($input->param('Item'));
34 my $url             = checkinp($input->param('url'));
35 my $isbn            = checkinp($input->param('ISBN'));
36 my $publishercode   = checkinp($input->param('Publisher'));
37 my $publicationdate = checkinp($input->param('Publication'));
38 my $class           = checkinp($input->param('Class'));
39 my $illus           = checkinp($input->param('Illustrations'));
40 my $pages           = checkinp($input->param('Pages'));
41 my $volumeddesc     = checkinp($input->param('Volume'));
42 my $notes           = checkinp($input->param('Notes'));
43 my $size            = checkinp($input->param('Size'));
44 my $place           = checkinp($input->param('Place'));
45 my $classification;
46 my $dewey;
47 my $subclass;
48
49 if ($itemtype ne 'NF') {
50   $classification=$class;
51 } # if
52
53 if ($class =~/[0-9]+/) {
54 #   print $class;
55    $dewey= $class;
56    $dewey=~ s/[a-z]+//gi;
57    my @temp;
58    if ($class =~ /\./) {
59      @temp=split(/[0-9]+\.[0-9]+/,$class);
60    } else {
61      @temp=split(/[0-9]+/,$class);
62    } # else
63    $classification=$temp[0];
64    $subclass=$temp[1];
65 #   print $classification,$dewey,$subclass;
66 } else {
67   $dewey='';
68   $subclass='';
69 } # else
70
71 my (@items) = &itemissues($bibitemnum);
72 #print @items;           
73 my $count   = @items;
74 #print $count;
75 my @barcodes;
76
77 my $existing=$input->param('existing');
78 if ($existing eq 'YES'){
79 #  print "yes";
80   my $group=$input->param('existinggroup');
81   #go thru items assing selected ones to group
82   for (my $i=0;$i<$count;$i++){
83     my $temp="check_group_".$items[$i]->{'barcode'};
84     my $barcode=$input->param($temp);
85     if ($barcode ne ''){
86       moditem({ biblionumber => $bibnum,
87                 notforloan   => $items[$i]->{'notforloan'},
88                 itemnumber   => $items[$i]->{'itemnumber'},
89                 group        => $group
90                     });
91 #      print "modify $items[$i]->{'itemnumber'} $group";
92     }
93   }
94   $bibitemnum=$group;
95 } else {
96     my $flag;
97     my $flag2;
98     for (my $i=0;$i<$count;$i++){
99       my $temp="check_group_".$items[$i]->{'barcode'};
100       $barcodes[$i]=$input->param($temp);
101       if ($barcodes[$i] eq ''){
102         $flag="notall";
103       } else {
104         $flag2="leastone";
105       }
106    }
107    my $loan;
108    if ($flag eq 'notall' && $flag2 eq 'leastone'){
109       $bibitemnum = &newbiblioitem({
110           biblionumber    => $bibnum,
111           itemtype        => $itemtype?$itemtype:"",
112           url             => $url?$url:"",
113           isbn            => $isbn?$isbn:"",
114           publishercode   => $publishercode?$publishercode:"",
115           publicationyear => $publicationdate?$publicationdate:"",
116           volumeddesc     => $volumeddesc?$volumeddesc:"",
117           classification  => $classification?$classification:"",
118           dewey           => $dewey?$dewey:"",
119           subclass        => $subclass?$subclass:"",
120           illus           => $illus?$illus:"",
121           pages           => $pages?$pages:"",
122           notes           => $notes?$notes:"",
123           size            => $size?$size:"",
124           place           => $place?$place:"" });
125       if ($itemtype =~ /REF/){
126         $loan=1;
127       } else {
128         $loan=0;
129       }
130       for (my $i=0;$i<$count;$i++){
131         if ($barcodes[$i] ne ''){
132           moditem({ biblionumber => $bibnum,
133                     loan         => $loan,
134                     itemnumber   => $items[$i]->{'itemnumber'},
135                     bibitemnum   => $bibitemnum
136                     });
137         }
138       }
139       
140    } elsif ($flag2 eq 'leastone') {
141       &modbibitem({
142           biblioitemnumber => $bibitemnum,
143           biblionumber     => $bibnum,
144           itemtype         => $itemtype?$itemtype:"",
145           url              => $url?$url:"",
146           isbn             => $isbn?$isbn:"",
147           publishercode    => $publishercode?$publishercode:"",
148           publicationyear  => $publicationdate?$publicationdate:"",
149           classification   => $classification?$classification:"",
150           dewey            => $dewey?$dewey:"",
151           subclass         => $subclass?$subclass:"",
152           illus            => $illus?$illus:"",
153           pages            => $pages?$pages:"",
154           volumeddesc      => $volumeddesc?$volumeddesc:"",
155           notes            => $notes?$notes:"",
156           size             => $size?$size:"",
157           place            => $place?$place:"" });
158       if ($itemtype =~ /REF/){
159         $loan=1;
160       } else {
161         $loan=0;
162       }
163         for (my $i=0;$i<$count;$i++){                                             
164           if ($barcodes[$i] ne ''){                                               
165             moditem( {biblionumber => $bibnum,
166                       loan         => $loan,
167                       itemnumber   => $items[$i]->{'itemnumber'},
168                       bibitemnum   => $bibitemnum
169                       });
170           }                                                                       
171         }
172       
173    } else {
174      &modbibitem({
175          biblioitemnumber => $bibitemnum,
176          itemtype         => $itemtype?$itemtype:"",
177          url              => $url?$url:"",
178          isbn             => $isbn?$isbn:"",
179          publishercode    => $publishercode?$publishercode:"",
180          publicationyear  => $publicationdate?$publicationdate:"",
181          classification   => $classification?$classification:"",
182          dewey            => $dewey?$dewey:"",
183          subclass         => $subclass?$subclass:"",
184          illus            => $illus?$illus:"",
185          pages            => $pages?$pages:"",
186          volumeddesc      => $volumeddesc?$volumeddesc:"",
187          notes            => $notes?$notes:"",
188          size             => $size?$size:"",
189          place            => $place?$place:"" });
190    } # else
191 }
192 print $input->redirect("moredetail.pl?type=intra&bib=$bibnum&bi=$bibitemnum");
193
194
195 sub checkinp{
196   my ($inp)=@_;
197   $inp=~ s/\'/\\\'/g;
198   $inp=~ s/\"/\\\"/g;
199   return($inp);
200 }