use C4::Auth;
use C4::Output;
use C4::Biblio;
+use C4::Items;
use C4::Context;
use C4::Koha; # XXX subfield_is_koha_internal_p
use C4::Branch; # XXX subfield_is_koha_internal_p
+use C4::ClassSource;
+
use Date::Calc qw(Today);
use MARC::File::XML;
my $exist_itemnumber = get_item_from_barcode($addedolditem->{'barcode'});
push @errors,"barcode_not_unique" if($exist_itemnumber);
# if barcode exists, don't create, but report The problem.
- my ($oldbiblionumber,$oldbibnum,$oldbibitemnum) = AddItem($record,$biblionumber) unless ($exist_itemnumber);
+ my ($oldbiblionumber,$oldbibnum,$oldbibitemnum) = AddItemFromMarc($record,$biblionumber) unless ($exist_itemnumber);
if ($exist_itemnumber) {
$nextop = "additem";
$itemrecord = $record;
} elsif ($op eq "edititem") {
#-------------------------------------------------------------------------------
# retrieve item if exist => then, it's a modif
- $itemrecord = GetMarcItem($biblionumber,$itemnumber);
+ $itemrecord = C4::Items::GetMarcItem($biblionumber,$itemnumber);
$nextop="saveitem";
#-------------------------------------------------------------------------------
} elsif ($op eq "delitem") {
my $sth=$dbh->prepare("select * from issues i where i.returndate is null and i.itemnumber=?");
$sth->execute($itemnumber);
my $onloan=$sth->fetchrow;
+ $sth->finish();
push @errors,"book_on_loan" if ($onloan); ##error book_on_loan added to template as well
if ($onloan){
- $nextop="additem";
+ $nextop="additem";
} else {
- &DelItem($dbh,$biblionumber,$itemnumber);
- print $input->redirect("additem.pl?biblionumber=$biblionumber&frameworkcode=$frameworkcode");
- #$nextop="additem";
+ # check it doesnt have a waiting reserve
+ $sth=$dbh->prepare("SELECT * FROM reserves WHERE found = 'w' AND cancellationdate IS NULL AND itemnumber = ?");
+ $sth->execute($itemnumber);
+ my $reserve=$sth->fetchrow;
+ if ($reserve){
+ push @errors,"book_reserved";
+ $nextop="additem";
+ }
+ else {
+ &DelItem($dbh,$biblionumber,$itemnumber);
+ print $input->redirect("additem.pl?biblionumber=$biblionumber&frameworkcode=$frameworkcode");
+ }
}
#-------------------------------------------------------------------------------
} elsif ($op eq "saveitem") {
my @indicator = $input->param('indicator');
# my $itemnumber = $input->param('itemnumber');
my $xml = TransformHtmlToXml(\@tags,\@subfields,\@values,\@indicator,\@ind_tag,'ITEM');
- $itemrecord=MARC::Record::new_from_xml($xml, 'UTF-8');
+ my $itemtosave=MARC::Record::new_from_xml($xml, 'UTF-8');
# MARC::Record builded => now, record in DB
# warn "R: ".$record->as_formatted;
# check that the barcode don't exist already
- my $addedolditem = TransformMarcToKoha($dbh,$itemrecord);
+ my $addedolditem = TransformMarcToKoha($dbh,$itemtosave);
my $exist_itemnumber = get_item_from_barcode($addedolditem->{'barcode'});
if ($exist_itemnumber && $exist_itemnumber != $itemnumber) {
push @errors,"barcode_not_unique";
} else {
- my ($oldbiblionumber,$oldbibnum,$oldbibitemnum) = ModItem($itemrecord,$biblionumber,$itemnumber,0);
+ my ($oldbiblionumber,$oldbibnum,$oldbibitemnum) = ModItemFromMarc($itemtosave,$biblionumber,$itemnumber);
$itemnumber="";
}
$nextop="additem";
}
$value = $itemtype unless ($value);
+ #---- class_sources
+ }
+ elsif ( $tagslib->{$tag}->{$subfield}->{authorised_value} eq "cn_source" ) {
+ push @authorised_values, ""
+ unless ( $tagslib->{$tag}->{$subfield}->{mandatory} );
+
+ my $class_sources = GetClassSources();
+
+ my $default_source = C4::Context->preference("DefaultClassificationSource");
+
+ foreach my $class_source (sort keys %$class_sources) {
+ next unless $class_sources->{$class_source}->{'used'} or
+ ($value and $class_source eq $value) or
+ ($class_source eq $default_source);
+ push @authorised_values, $class_source;
+ $authorised_lib{$class_source} = $class_sources->{$class_source}->{'description'};
+ $value = $class_source unless ($value);
+ $value = $default_source unless ($value);
+ }
+
#---- "true" authorised value
}
else {
size=\"67\"
maxlength=\"255\"
onblur=\"Blur$function_name(".$subfield_data{random}."); \" \/>
- <a href=\"#\" class=\"buttonDot\" onclick=\"Clic$function_name('$subfield_data{id}'; return false;)\" title=\"Tag Editor\">...</a>
+ <a href=\"#\" class=\"buttonDot\" onclick=\"Clic$function_name('$subfield_data{id}'); return false;\" title=\"Tag Editor\">...</a>
$javascript";
} else {
warn "Plugin Failed: $plugin";