pop up pay window is working again
[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 $illus           = checkinp($input->param('Illustrations'));
21 my $pages           = checkinp($input->param('Pages'));
22 my $volumeddesc     = checkinp($input->param('Volume'));
23 my $notes           = checkinp($input->param('Notes'));
24 my $size            = checkinp($input->param('Size'));
25 my $place           = checkinp($input->param('Place'));
26 my $classification;
27 my $dewey;
28 my $subclass;
29
30 if ($itemtype ne 'NF') {
31   $classification=$class;
32 } # if
33
34 if ($class =~/[0-9]+/) {
35    $dewey= $class;
36    $dewey=~ s/[a-z]+//gi;
37    my @temp;
38    if ($class =~ /\./) {
39      @temp=split(/[0-9]+\.[0-9]+/,$class);
40    } else {
41      @temp=split(/[0-9]+/,$class);
42    } # else
43    $classification=$temp[0];
44    $subclass=$temp[1];
45
46 } else {
47   $dewey='';
48   $subclass='';
49 } # else
50
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           url              => $url?$url:"",
115           isbn             => $isbn?$isbn:"",
116           publishercode    => $publishercode?$publishercode:"",
117           publicationyear  => $publicationdate?$publicationdate:"",
118           classification   => $classification?$classification:"",
119           dewey            => $dewey?$dewey:"",
120           subclass         => $subclass?$subclass:"",
121           illus            => $illus?$illus:"",
122           pages            => $pages?$pages:"",
123           volumeddesc      => $volumeddesc?$volumeddesc:"",
124           notes            => $notes?$notes:"",
125           size             => $size?$size:"",
126           place            => $place?$place:"" });
127       if ($itemtype =~ /REF/){
128         $loan=1;
129       } else {
130         $loan=0;
131       }
132         for (my $i=0;$i<$count;$i++){                                             
133           if ($barcodes[$i] ne ''){                                               
134             moditem($loan,$items[$i]->{'itemnumber'},$bibitemnum);                
135           }                                                                       
136         }
137       
138    } else {
139      &modbibitem({
140          biblioitemnumber => $bibitemnum,
141          itemtype         => $itemtype?$itemtype:"",
142          url              => $url?$url:"",
143          isbn             => $isbn?$isbn:"",
144          publishercode    => $publishercode?$publishercode:"",
145          publicationyear  => $publicationdate?$publicationdate:"",
146          classification   => $classification?$classification:"",
147          dewey            => $dewey?$dewey:"",
148          subclass         => $subclass?$subclass:"",
149          illus            => $illus?$illus:"",
150          pages            => $pages?$pages:"",
151          volumeddesc      => $volumeddesc?$volumeddesc:"",
152          notes            => $notes?$notes:"",
153          size             => $size?$size:"",
154          place            => $place?$place:"" });
155    } # else
156 }
157 print $input->redirect("moredetail.pl?type=intra&bib=$bibnum&bi=$bibitemnum");
158
159
160 sub checkinp{
161   my ($inp)=@_;
162   $inp=~ s/\'/\\\'/g;
163   $inp=~ s/\"/\\\"/g;
164   return($inp);
165 }