Some udpates that I made here locally a while ago. Still won't be useful, but
[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::Biblio;
8 use C4::Output;
9 use C4::Search;
10
11 my $input= new CGI;
12 #print $input->header;
13 #print $input->Dump;
14
15
16 my $bibitemnum=checkinp($input->param('bibitemnum'));
17 my $bibnum=checkinp($input->param('bibnum'));
18 my $itemtype=checkinp($input->param('Item'));
19 my $isbn=checkinp($input->param('ISBN'));
20 my $publishercode=checkinp($input->param('Publisher'));
21 my $publicationdate=checkinp($input->param('Publication'));
22 my $class=checkinp($input->param('Class'));
23 my $classification;
24 my $dewey;
25 my $subclass;
26 if ($itemtype ne 'NF'){
27   $classification=$class;
28 }
29 if ($class =~/[0-9]+/){
30 #   print $class;
31    $dewey= $class;
32    $dewey=~ s/[a-z]+//gi;
33    my @temp;
34    if ($class =~ /\./){
35      @temp=split(/[0-9]+\.[0-9]+/,$class);
36    } else {
37      @temp=split(/[0-9]+/,$class);
38    }
39    $classification=$temp[0];
40    $subclass=$temp[1];
41 #   print $classification,$dewey,$subclass;
42 }else{
43   $dewey='';
44   $subclass='';
45 }
46 my $illus=checkinp($input->param('Illustrations'));
47 my $pages=checkinp($input->param('Pages'));
48 my $volumeddesc=checkinp($input->param('Volume'));
49 my $notes=checkinp($input->param('Notes'));
50 my $size=checkinp($input->param('Size'));
51 my $place=checkinp($input->param('Place'));
52 my (@items)=itemissues($bibitemnum);
53 #print @items;           
54 my $count=@items;
55 #print $count;
56 my @barcodes;
57
58
59 my $existing=$input->param('existing');
60 if ($existing eq 'YES'){
61 #  print "yes";
62   my $group=$input->param('existinggroup');
63   #go thru items assing selected ones to group
64   for (my $i=0;$i<$count;$i++){
65     my $temp="check_group_".$items[$i]->{'barcode'};
66     my $barcode=$input->param($temp);
67     if ($barcode ne ''){
68       moditem($items[$i]->{'notforloan'},$items[$i]->{'itemnumber'},$group);
69 #      print "modify $items[$i]->{'itemnumber'} $group";
70     }
71   }
72   $bibitemnum=$group;
73 } else {
74     my $flag;
75     my $flag2;
76     for (my $i=0;$i<$count;$i++){
77       my $temp="check_group_".$items[$i]->{'barcode'};
78       $barcodes[$i]=$input->param($temp);
79       if ($barcodes[$i] eq ''){
80         $flag="notall";
81       } else {
82         $flag2="leastone";
83       }
84    }
85    my $loan;
86    if ($flag eq 'notall' && $flag2 eq 'leastone'){
87       $bibitemnum = &newbiblioitem({ biblionumber   => $bibnum,
88                                      itemtype       => $itemtype,
89                                      volumeddesc    => $volumeddesc,
90                                      classification => $classification });
91       modbibitem($bibitemnum,$itemtype,$isbn,$publishercode,$publicationdate,$classification,$dewey,$subclass,$illus,$pages,$volumeddesc,$notes,$size,$place);
92       if ($itemtype =~ /REF/){
93         $loan=1;
94       } else {
95         $loan=0;
96       }
97       for (my $i=0;$i<$count;$i++){
98         if ($barcodes[$i] ne ''){
99           moditem($loan,$items[$i]->{'itemnumber'},$bibitemnum);
100         }
101       }
102       
103    } elsif ($flag2 eq 'leastone') {
104       modbibitem($bibitemnum,$itemtype,$isbn,$publishercode,$publicationdate,$classification,$dewey,$subclass,$illus,$pages,$volumeddesc,$notes,$size,$place);
105       if ($itemtype =~ /REF/){
106         $loan=1;
107       } else {
108         $loan=0;
109       }
110         for (my $i=0;$i<$count;$i++){                                             
111           if ($barcodes[$i] ne ''){                                               
112             moditem($loan,$items[$i]->{'itemnumber'},$bibitemnum);                
113           }                                                                       
114         }
115       
116    }
117 }
118 print $input->redirect("moredetail.pl?type=intra&bib=$bibnum&bi=$bibitemnum");
119
120
121 sub checkinp{
122   my ($inp)=@_;
123   $inp=~ s/\'/\\\'/g;
124   $inp=~ s/\"/\\\"/g;
125   return($inp);
126 }