Bug 5549 : CalcFine was corrupting due date
[koha_gimpoz] / C4 / VirtualShelves / Page.pm
index 8a17182..1727389 100644 (file)
@@ -68,6 +68,14 @@ sub shelfpage ($$$$$) {
     my ( $shelflimit, $shelfoffset, $shelveslimit, $shelvesoffset );
     my $marcflavour = C4::Context->preference("marcflavour");
 
+    # get biblionumbers stored in the cart
+    my @cart_list;
+    my $cart_cookie = ( $type eq 'opac' ? "bib_list" : "intranet_bib_list" );
+    if($query->cookie($cart_cookie)){
+        my $cart_list = $query->cookie($cart_cookie);
+        @cart_list = split(/\//, $cart_list);
+    }
+
     $shelflimit = ( $type eq 'opac' ? C4::Context->preference('OPACnumSearchResults') : C4::Context->preference('numSearchResults') );
     $shelflimit = $shelflimit || 20;
     $shelfoffset   = ( $itemoff - 1 ) * $shelflimit;     # Sets the offset to begin retrieving items at
@@ -160,6 +168,14 @@ sub shelfpage ($$$$$) {
                 };
 
                 ModShelf( $shelfnumber, $shelf );
+                if($displaymode eq "viewshelf"){
+                    print $query->redirect( $pages{$type}->{redirect} . "?viewshelf=$shelfnumber" );
+                } elsif($displaymode eq "publicshelves"){
+                    print $query->redirect( $pages{$type}->{redirect} );
+                } else {
+                    print $query->redirect( $pages{$type}->{redirect} . "?display=privateshelves" );
+                }
+                exit;
 
             } elsif ( $op eq 'modif' ) {
                 my ( $shelfnumber2, $shelfname, $owner, $category, $sortfield ) = GetShelf($shelfnumber);
@@ -168,6 +184,7 @@ sub shelfpage ($$$$$) {
                 $edit = 1;
                 $template->param(
                     edit                => 1,
+                    display             => $displaymode,
                     shelfnumber         => $shelfnumber2,
                     shelfname           => $shelfname,
                     owner               => $owner,
@@ -217,7 +234,7 @@ sub shelfpage ($$$$$) {
                     #$this_item->{'description'} = $itemtypes->{ $this_item->{itemtype} }->{'description'};
                     $this_item->{'dateadded'} = format_date( $this_item->{'dateadded'} );
                     $this_item->{'imageurl'}  = getitemtypeinfo( $this_item->{'itemtype'} )->{'imageurl'};
-                    $this_item->{'coins'}     = GetCOinSBiblio( $this_item->{'biblionumber'} );
+                    $this_item->{'coins'}     = GetCOinSBiblio( $record );
                     $this_item->{'subtitle'} = GetRecordValue('subtitle', $record, GetFrameworkCode($this_item->{'biblionumber'}));
                     $this_item->{'normalized_upc'}  = GetNormalizedUPC(       $record,$marcflavour);
                     $this_item->{'normalized_ean'}  = GetNormalizedEAN(       $record,$marcflavour);
@@ -227,6 +244,9 @@ sub shelfpage ($$$$$) {
                     my @items_infos = &GetItemsLocationInfo( $this_item->{'biblionumber'});
                     $this_item->{'itemsissued'} = CountItemsIssued( $this_item->{'biblionumber'} );
                     $this_item->{'ITEM_RESULTS'} = \@items_infos;
+                    if ( grep {$_ eq $biblionumber} @cart_list) {
+                        $this_item->{'incart'} = 1;
+                    }
 
                     if (C4::Context->preference('TagsEnabled') and $tag_quantity = C4::Context->preference('TagsShowOnList')) {
                         $this_item->{'TagLoop'} = get_tags({
@@ -340,11 +360,12 @@ sub shelfpage ($$$$$) {
         my $owner     = $shelflist->{$element}->{'owner'};
         my $canmanage = ShelfPossibleAction( $loggedinuser, $element, 'manage' );
         my $sortfield = $shelflist->{$element}->{'sortfield'};
-        if ( $sortfield eq 'author' ) {
-            $shelflist->{$element}->{"authorsort"} = 'author';
-        }
-        if ( $sortfield eq 'year' ) {
-            $shelflist->{$element}->{"yearsort"} = 'year';
+        if ( $sortfield ){
+            if ( $sortfield eq 'author' ) {
+                $shelflist->{$element}->{"authorsort"} = 'author';
+            } elsif ( $sortfield eq 'year' ) {
+                $shelflist->{$element}->{"yearsort"} = 'year';
+            }
         }
         $shelflist->{$element}->{"viewcategory$category"} = 1;
         $shelflist->{$element}->{manageshelf} = $canmanage;
@@ -367,9 +388,9 @@ sub shelfpage ($$$$$) {
         $qhash{$_} = $query->param($_) if $query->param($_);
     }
     ( scalar keys %qhash ) and $url .= '?' . join '&', map { "$_=$qhash{$_}" } keys %qhash;
-    if ( $shelfnumber ) {
+    if ( $shelfnumber && $totitems ) {
         $template->param(  pagination_bar => pagination_bar( $url, ( int( $totitems / $shelflimit ) ) + ( ( $totitems % $shelflimit ) > 0 ? 1 : 0 ), $itemoff, "itemoff" )  );
-    } else {
+    } elsif ( $totshelves ) {
         $template->param(
              pagination_bar => pagination_bar( $url, ( int( $totshelves / $shelveslimit ) ) + ( ( $totshelves % $shelveslimit ) > 0 ? 1 : 0 ), $shelfoff, "shelfoff" )  );
     }