Changes to allow modifications to the website biblioitems
[koha.git] / updatebibitem.pl
1 #!/usr/bin/perl
2
3 use C4::Database;
4 use CGI;
5 use strict;
6 use C4::Acquisitions;
7 use C4::Output;
8 use C4::Search;
9
10 my $input= new CGI;
11
12 my $bibitemnum      = checkinp($input->param('bibitemnum'));
13 my $bibnum          = checkinp($input->param('bibnum'));
14 my $itemtype        = checkinp($input->param('Item'));
15 my $url             = checkinp($input->param('url'));
16 my $isbn            = checkinp($input->param('ISBN'));
17 my $publishercode   = checkinp($input->param('Publisher'));
18 my $publicationdate = checkinp($input->param('Publication'));
19 my $class           = checkinp($input->param('Class'));
20 my $classification;
21 my $dewey;
22 my $subclass;
23
24 if ($itemtype ne 'NF') {
25   $classification=$class;
26 } # if
27
28 if ($class =~/[0-9]+/) {
29    $dewey= $class;
30    $dewey=~ s/[a-z]+//gi;
31    my @temp;
32    if ($class =~ /\./) {
33      @temp=split(/[0-9]+\.[0-9]+/,$class);
34    } else {
35      @temp=split(/[0-9]+/,$class);
36    } # else
37    $classification=$temp[0];
38    $subclass=$temp[1];
39
40 } else {
41   $dewey='';
42   $subclass='';
43 } # else
44
45 my $illus       = checkinp($input->param('Illustrations'));
46 my $pages       = checkinp($input->param('Pages'));
47 my $volumeddesc = checkinp($input->param('Volume'));
48 my $notes       = checkinp($input->param('Notes'));
49 my $size        = checkinp($input->param('Size'));
50 my $place       = checkinp($input->param('Place'));
51 my (@items) = &itemissues($bibitemnum);
52 my $count   = @items;
53 my @barcodes;
54
55 my $existing=$input->param('existing');
56 if ($existing eq 'YES'){
57 #  print "yes";
58   my $group=$input->param('existinggroup');
59   #go thru items assing selected ones to group
60   for (my $i=0;$i<$count;$i++){
61     my $temp="check_group_".$items[$i]->{'barcode'};
62     my $barcode=$input->param($temp);
63     if ($barcode ne ''){
64       moditem($items[$i]->{'notforloan'},$items[$i]->{'itemnumber'},$group);
65 #      print "modify $items[$i]->{'itemnumber'} $group";
66     }
67   }
68   $bibitemnum=$group;
69 } else {
70     my $flag;
71     my $flag2;
72     for (my $i=0;$i<$count;$i++){
73       my $temp="check_group_".$items[$i]->{'barcode'};
74       $barcodes[$i]=$input->param($temp);
75       if ($barcodes[$i] eq ''){
76         $flag="notall";
77       } else {
78         $flag2="leastone";
79       }
80    }
81    my $loan;
82    if ($flag eq 'notall' && $flag2 eq 'leastone'){
83       $bibitemnum = &newbiblioitem({
84           biblionumber    => $bibnum,
85           itemtype        => $itemtype?$itemtype:"",
86           url             => $url?$url:"",
87           isbn            => $isbn?$isbn:"",
88           publishercode   => $publishercode?$publishercode:"",
89           publicationyear => $publicationdate?$publicationdate:"",
90           volumeddesc     => $volumeddesc?$volumeddesc:"",
91           classification  => $classification?$classification:"",
92           dewey           => $dewey?$dewey:"",
93           subclass        => $subclass?$subclass:"",
94           illus           => $illus?$illus:"",
95           pages           => $pages?$pages:"",
96           notes           => $notes?$notes:"",
97           size            => $size?$size:"",
98           place           => $place?$place:"" });
99       if ($itemtype =~ /REF/){
100         $loan=1;
101       } else {
102         $loan=0;
103       }
104       for (my $i=0;$i<$count;$i++){
105         if ($barcodes[$i] ne ''){
106           moditem($loan,$items[$i]->{'itemnumber'},$bibitemnum);
107         }
108       }
109       
110    } elsif ($flag2 eq 'leastone') {
111       &modbibitem({
112           biblioitemnumber => $bibitemnum,
113           itemtype         => $itemtype?$itemtype:"",
114           isbn             => $isbn?$isbn:"",
115           publishercode    => $publishercode?$publishercode:"",
116           publicationyear  => $publicationdate?$publicationdate:"",
117           classification   => $classification?$classification:"",
118           dewey            => $dewey?$dewey:"",
119           subclass         => $subclass?$subclass:"",
120           illus            => $illus?$illus:"",
121           pages            => $pages?$pages:"",
122           volumeddesc      => $volumeddesc?$volumeddesc:"",
123           notes            => $notes?$notes:"",
124           size             => $size?$size:"",
125           place            => $place?$place:"" });
126       if ($itemtype =~ /REF/){
127         $loan=1;
128       } else {
129         $loan=0;
130       }
131         for (my $i=0;$i<$count;$i++){                                             
132           if ($barcodes[$i] ne ''){                                               
133             moditem($loan,$items[$i]->{'itemnumber'},$bibitemnum);                
134           }                                                                       
135         }
136       
137    }
138 }
139 print $input->redirect("moredetail.pl?type=intra&bib=$bibnum&bi=$bibitemnum");
140
141
142 sub checkinp{
143   my ($inp)=@_;
144   $inp=~ s/\'/\\\'/g;
145   $inp=~ s/\"/\\\"/g;
146   return($inp);
147 }