X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=cataloguing%2Fadditem.pl;h=a81901983baec14262bd5c375bac9dc77db9ab2e;hb=4cb139b9cecf33e10fb2fdc0ea6839dabd683d55;hp=79a717c54ff59e42bba7803b0ca0c3723030ca84;hpb=5c52ab34d01471a6e8f88f22c8c53e2f91863bc2;p=koha.git
diff --git a/cataloguing/additem.pl b/cataloguing/additem.pl
index 79a717c54f..a81901983b 100755
--- a/cataloguing/additem.pl
+++ b/cataloguing/additem.pl
@@ -27,6 +27,7 @@ use C4::Output;
use C4::Biblio;
use C4::Items;
use C4::Context;
+use C4::Circulation;
use C4::Koha; # XXX subfield_is_koha_internal_p
use C4::Branch; # XXX subfield_is_koha_internal_p
use C4::ClassSource;
@@ -107,8 +108,7 @@ sub generate_subfield_form {
my $frameworkcode = &GetFrameworkCode($biblionumber);
my %subfield_data;
- my $dbh = C4::Context->dbh;
- my $authorised_values_sth = $dbh->prepare("SELECT authorised_value,lib FROM authorised_values WHERE category=? ORDER BY lib");
+ my $dbh = C4::Context->dbh;
my $index_subfield = int(rand(1000000));
if ($subfieldtag eq '@'){
@@ -155,6 +155,7 @@ sub generate_subfield_form {
$value = $input->param('barcode');
}
my $attributes_no_value = qq(tabindex="1" id="$subfield_data{id}" name="field_value" class="input_marceditor" size="67" maxlength="$subfield_data{maxlength}" );
+ my $attributes_no_value_textarea = qq(tabindex="1" id="$subfield_data{id}" name="field_value" class="input_marceditor" rows="5" cols="64" );
my $attributes = qq($attributes_no_value value="$value" );
if ( $subfieldlib->{authorised_value} ) {
@@ -203,11 +204,11 @@ sub generate_subfield_form {
#---- "true" authorised value
}
else {
- push @authorised_values, "" unless ( $subfieldlib->{mandatory} );
- $authorised_values_sth->execute( $subfieldlib->{authorised_value} );
- while ( my ( $value, $lib ) = $authorised_values_sth->fetchrow_array ) {
- push @authorised_values, $value;
- $authorised_lib{$value} = $lib;
+ push @authorised_values, qq{} unless ( $subfieldlib->{mandatory} );
+ my $av = GetAuthorisedValues( $subfieldlib->{authorised_value} );
+ for my $r ( @$av ) {
+ push @authorised_values, $r->{authorised_value};
+ $authorised_lib{$r->{authorised_value}} = $r->{lib};
}
}
@@ -271,7 +272,7 @@ sub generate_subfield_form {
500 <= $tag && $tag < 600 )
) {
# oversize field (textarea)
- $subfield_data{marc_value} = "\n";
+ $subfield_data{marc_value} = "\n";
} else {
# it's a standard field
$subfield_data{marc_value} = "";
@@ -315,6 +316,13 @@ my $itemnumber = $input->param('itemnumber');
my $op = $input->param('op');
my $hostitemnumber = $input->param('hostitemnumber');
my $marcflavour = C4::Context->preference("marcflavour");
+my $searchid = $input->param('searchid');
+# fast cataloguing datas
+my $fa_circborrowernumber = $input->param('circborrowernumber');
+my $fa_barcode = $input->param('barcode');
+my $fa_branch = $input->param('branch');
+my $fa_stickyduedate = $input->param('stickyduedate');
+my $fa_duedatespec = $input->param('duedatespec');
my $frameworkcode = &GetFrameworkCode($biblionumber);
@@ -394,11 +402,6 @@ if ($op eq "additem") {
$record = _increment_barcode($record, $frameworkcode);
}
-
- if (C4::Context->preference('autoBarcode') eq 'incremental') {
- $record = _increment_barcode($record, $frameworkcode);
- }
-
my $addedolditem = TransformMarcToKoha( $dbh, $record );
# If we have to add or add & duplicate, we add the item
@@ -419,6 +422,7 @@ if ($op eq "additem") {
-name => 'LastCreatedItem',
# We uri_escape the whole freezed structure so we're sure we won't have any encoding problems
-value => uri_escape_utf8( freeze( $record ) ),
+ -HttpOnly => 1,
-expires => ''
);
@@ -507,13 +511,15 @@ if ($op eq "additem") {
undef($itemrecord);
}
}
- if ($frameworkcode eq 'FA' && $input->param('borrowernumber')){
- my $redirect_string = 'borrowernumber=' . uri_escape($input->param('borrowernumber')) .
- '&barcode=' . uri_escape($input->param('barcode'));
- $redirect_string .= '&duedatespec=' . uri_escape($input->param('duedatespec')) .
- '&stickyduedate=1';
- print $input->redirect("/cgi-bin/koha/circ/circulation.pl?" . $redirect_string);
- exit;
+ if ($frameworkcode eq 'FA' && $fa_circborrowernumber){
+ print $input->redirect(
+ '/cgi-bin/koha/circ/circulation.pl?'
+ .'borrowernumber='.$fa_circborrowernumber
+ .'&barcode='.uri_escape($fa_barcode)
+ .'&duedatespec='.$fa_duedatespec
+ .'&stickyduedate=1'
+ );
+ exit;
}
@@ -529,7 +535,7 @@ if ($op eq "additem") {
# check that there is no issue on this item before deletion.
$error = &DelItemCheck($dbh,$biblionumber,$itemnumber);
if($error == 1){
- print $input->redirect("additem.pl?biblionumber=$biblionumber&frameworkcode=$frameworkcode");
+ print $input->redirect("additem.pl?biblionumber=$biblionumber&frameworkcode=$frameworkcode&searchid=$searchid");
}else{
push @errors,$error;
$nextop="additem";
@@ -561,13 +567,13 @@ if ($op eq "additem") {
my $defaultview = C4::Context->preference('IntranetBiblioDefaultView');
my $views = { C4::Search::enabled_staff_search_views };
if ($defaultview eq 'isbd' && $views->{can_view_ISBD}) {
- print $input->redirect("/cgi-bin/koha/catalogue/ISBDdetail.pl?biblionumber=$biblionumber");
+ print $input->redirect("/cgi-bin/koha/catalogue/ISBDdetail.pl?biblionumber=$biblionumber&searchid=$searchid");
} elsif ($defaultview eq 'marc' && $views->{can_view_MARC}) {
- print $input->redirect("/cgi-bin/koha/catalogue/MARCdetail.pl?biblionumber=$biblionumber");
+ print $input->redirect("/cgi-bin/koha/catalogue/MARCdetail.pl?biblionumber=$biblionumber&searchid=$searchid");
} elsif ($defaultview eq 'labeled_marc' && $views->{can_view_labeledMARC}) {
- print $input->redirect("/cgi-bin/koha/catalogue/labeledMARCdetail.pl?biblionumber=$biblionumber");
+ print $input->redirect("/cgi-bin/koha/catalogue/labeledMARCdetail.pl?biblionumber=$biblionumber&searchid=$searchid");
} else {
- print $input->redirect("/cgi-bin/koha/catalogue/detail.pl?biblionumber=$biblionumber");
+ print $input->redirect("/cgi-bin/koha/catalogue/detail.pl?biblionumber=$biblionumber&searchid=$searchid");
}
exit;
}
@@ -596,6 +602,15 @@ if ($op eq "additem") {
ModItemFromMarc($itemtosave,$biblionumber,$itemnumber);
$itemnumber="";
}
+ my $item = GetItem( $itemnumber );
+ my $olditemlost = $item->{'itemlost'};
+
+ my ($lost_tag,$lost_subfield) = GetMarcFromKohaField("items.itemlost",'');
+
+ my $newitemlost = $itemtosave->subfield( $lost_tag, $lost_subfield );
+ if (($olditemlost eq '0' or $olditemlost eq '' ) and $newitemlost ge '1'){
+ LostItem($itemnumber,'MARK RETURNED');
+ }
$nextop="additem";
} elsif ($op eq "delinkitem"){
my $analyticfield = '773';
@@ -680,7 +695,7 @@ foreach my $field (@fields) {
|| $subfieldvalue;
}
- if (($field->tag eq $branchtagfield) && ($subfieldcode eq $branchtagsubfield) && C4::Context->preference("IndependantBranches")) {
+ if (($field->tag eq $branchtagfield) && ($subfieldcode eq $branchtagsubfield) && C4::Context->preference("IndependentBranches")) {
#verifying rights
my $userenv = C4::Context->userenv();
unless (($userenv->{'flags'} == 1) or (($userenv->{'branch'} eq $subfieldvalue))){
@@ -741,7 +756,7 @@ my $i=0;
my $pref_itemcallnumber = C4::Context->preference('itemcallnumber');
-my $onlymine = C4::Context->preference('IndependantBranches') &&
+my $onlymine = C4::Context->preference('IndependentBranches') &&
C4::Context->userenv &&
C4::Context->userenv->{flags}!=1 &&
C4::Context->userenv->{branch};
@@ -785,7 +800,7 @@ foreach my $tag ( keys %{$tagslib}){
next if any { /^$tag$subtag$/ } @fields;
my @values = (undef);
- @values = $itemrecord->field($tag)->subfield($subtag) if ($itemrecord && defined($itemrecord->field($tag)->subfield($subtag)));
+ @values = $itemrecord->field($tag)->subfield($subtag) if ($itemrecord && defined($itemrecord->field($tag)) && defined($itemrecord->field($tag)->subfield($subtag)));
for my $value (@values){
my $subfield_data = generate_subfield_form($tag, $subtag, $value, $tagslib, $tagslib->{$tag}->{$subtag}, $branches, $today_iso, $biblionumber, $temp, \@loop_data, $i);
push (@loop_data, $subfield_data);
@@ -813,13 +828,18 @@ $template->param(
popup => $input->param('popup') ? 1: 0,
C4::Search::enabled_staff_search_views,
);
+$template->{'VARS'}->{'searchid'} = $searchid;
if ($frameworkcode eq 'FA'){
- $template->{VARS}->{'borrowernumber'}=$input->param('borrowernumber');
- $template->{VARS}->{'barcode'}=$input->param('barcode');
- $template->{VARS}->{'stickyduedate'}=$input->param('stickduedate');
- $template->{VARS}->{'duedatespec'}=$input->param('duedatespec');
-}
+ # fast cataloguing datas
+ $template->param(
+ 'circborrowernumber' => $fa_circborrowernumber,
+ 'barcode' => $fa_barcode,
+ 'branch' => $fa_branch,
+ 'stickyduedate' => $fa_stickyduedate,
+ 'duedatespec' => $fa_duedatespec,
+ );
+}
foreach my $error (@errors) {
$template->param($error => 1);