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