Branch Merges.
[koha.git] / updatebibitem.pl
blobe7d9397ab98e9a1f9f00b430b04103c858ca0cef
1 #!/usr/bin/perl
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;
11 my $input= new CGI;
12 #print $input->header;
13 #print $input->Dump;
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;
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);
39 $classification=$temp[0];
40 $subclass=$temp[1];
41 # print $classification,$dewey,$subclass;
42 }else{
43 $dewey='';
44 $subclass='';
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;
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";
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";
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;
97 for (my $i=0;$i<$count;$i++){
98 if ($barcodes[$i] ne ''){
99 moditem($loan,$items[$i]->{'itemnumber'},$bibitemnum);
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;
110 for (my $i=0;$i<$count;$i++){
111 if ($barcodes[$i] ne ''){
112 moditem($loan,$items[$i]->{'itemnumber'},$bibitemnum);
118 print $input->redirect("moredetail.pl?type=intra&bib=$bibnum&bi=$bibitemnum");
121 sub checkinp{
122 my ($inp)=@_;
123 $inp=~ s/\'/\\\'/g;
124 $inp=~ s/\"/\\\"/g;
125 return($inp);