koha-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Koha-cvs] koha/C4 Biblio.pm [rel_3_0]


From: Henri-Damien LAURENT
Subject: [Koha-cvs] koha/C4 Biblio.pm [rel_3_0]
Date: Mon, 02 Oct 2006 09:32:02 +0000

CVSROOT:        /cvsroot/koha
Module name:    koha
Branch:         rel_3_0
Changes by:     Henri-Damien LAURENT <hdl>      06/10/02 09:32:02

Modified files:
        C4             : Biblio.pm 

Log message:
        Adding GetItemStatus and GetItemLocation function in order to make 
serials-receive.pl work.
        
        *************WARNING.***************
        tested for UNIMARC and using 'marcflavour' system preferences to set 
defaut_record_format.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/koha/C4/Biblio.pm?cvsroot=koha&only_with_tag=rel_3_0&r1=1.178.2.9&r2=1.178.2.10

Patches:
Index: Biblio.pm
===================================================================
RCS file: /cvsroot/koha/koha/C4/Biblio.pm,v
retrieving revision 1.178.2.9
retrieving revision 1.178.2.10
diff -u -b -r1.178.2.9 -r1.178.2.10
--- Biblio.pm   26 Sep 2006 07:54:20 -0000      1.178.2.9
+++ Biblio.pm   2 Oct 2006 09:32:02 -0000       1.178.2.10
@@ -83,7 +83,7 @@
   &char_decode
   &DisplayISBN
 &itemcalculator &calculatelc
-&GetItemInfosOf
+&GetItemInfosOf &GetItemStatus &GetItemLocation
 &GetBiblioItemInfosOf
 );
 
@@ -241,6 +241,9 @@
 
 =cut
 
+
+MARC::File::XML::default_record_format("UNIMARC") if 
(C4::Context->preference("marcflavour") eq "UNIMARC");
+
 sub MARCgettagslib {
     my ( $dbh, $forlibrarian, $frameworkcode ) = @_;
     $frameworkcode = "" unless $frameworkcode;
@@ -390,8 +393,8 @@
     $sth->execute($bibid);
     my ($marcxml)=$sth->fetchrow;
     my $record = MARC::Record->new();
-    MARC::File::XML::default_record_format("UNIMARC") if 
(C4::Context->preference("marcflavour") eq "UNIMARC");
     $record = MARC::Record::new_from_xml( $marcxml,"utf8" ) if $marcxml;
+    warn "record dans Biblio.pm ".$record->as_formatted;
        return $record;
 }
 ############OLD VERSION HERE###############################################
@@ -2507,6 +2510,129 @@
 
        return(@results);
 }
+=head2 getitemstatus
+
+  $itemstatushash = &getitemstatus($fwkcode);
+  returns information about status.
+  Can be MARC dependant.
+  fwkcode is optional.
+  But basically could be can be loan or not
+  Create a status selector with the following code
+  
+=head3 in PERL SCRIPT
+
+my $itemstatushash = getitemstatus;
+my @itemstatusloop;
+foreach my $thisstatus (keys %$itemstatushash) {
+       my %row =(value => $thisstatus,
+                               statusname => 
$itemstatushash->{$thisstatus}->{'statusname'},
+                       );
+       push @itemstatusloop, \%row;
+}
+$template->param(statusloop=>address@hidden);
+
+
+=head3 in TEMPLATE  
+                       <select name="statusloop">
+                               <option value="">Default</option>
+                       <!-- TMPL_LOOP name="statusloop" -->
+                               <option value="<!-- TMPL_VAR name="value" -->" 
<!-- TMPL_IF name="selected" -->selected<!-- /TMPL_IF -->><!-- TMPL_VAR 
name="statusname" --></option>
+                       <!-- /TMPL_LOOP -->
+                       </select>
+
+=cut
+sub GetItemStatus {
+# returns a reference to a hash of references to status...
+       my ($fwk)address@hidden;
+       my %itemstatus;
+       my $dbh = C4::Context->dbh;
+       my $sth;
+       $fwk='' unless ($fwk);
+       my 
($tag,$subfield)=MARCfind_marc_from_kohafield($dbh,"items.notforloan",$fwk);
+       if ($tag and $subfield){
+               my $sth = $dbh->prepare("select authorised_value from 
marc_subfield_structure where tagfield=? and tagsubfield=? and 
frameworkcode=?");
+               $sth->execute($tag,$subfield,$fwk);
+               if (my ($authorisedvaluecat)=$sth->fetchrow){
+                       my $authvalsth=$dbh->prepare("select authorised_value, 
lib from authorised_values where category=? order by lib");
+                       $authvalsth->execute($authorisedvaluecat);
+                       while (my ($authorisedvalue, 
$lib)=$authvalsth->fetchrow){
+                               $itemstatus{$authorisedvalue}=$lib;
+                       }
+                       $authvalsth->finish;
+                       return \%itemstatus;
+                       exit 1;
+               } else{
+                       #No authvalue list
+                       # build default
+               }
+               $sth->finish;
+       }
+       #No authvalue list
+       #build default
+       $itemstatus{"1"}="Not For Loan";
+       return \%itemstatus;
+}
+=head2 getitemlocation
+
+  $itemlochash = &getitemlocation($fwk);
+  returns informations about location.
+  where fwk stands for an optional framework code.
+  Create a location selector with the following code
+  
+=head3 in PERL SCRIPT
+
+my $itemlochash = getitemlocation;
+my @itemlocloop;
+foreach my $thisloc (keys %$itemlochash) {
+       my $selected = 1 if $thisbranch eq $branch;
+       my %row =(locval => $thisloc,
+                               selected => $selected,
+                               locname => $itemlochash->{$thisloc},
+                       );
+       push @itemlocloop, \%row;
+}
+$template->param(itemlocationloop => address@hidden);
+
+=head3 in TEMPLATE  
+                       <select name="location">
+                               <option value="">Default</option>
+                       <!-- TMPL_LOOP name="itemlocationloop" -->
+                               <option value="<!-- TMPL_VAR name="locval" -->" 
<!-- TMPL_IF name="selected" -->selected<!-- /TMPL_IF -->><!-- TMPL_VAR 
name="locname" --></option>
+                       <!-- /TMPL_LOOP -->
+                       </select>
+
+=cut
+sub GetItemLocation {
+# returns a reference to a hash of references to location...
+       my ($fwk)address@hidden;
+       my %itemlocation;
+       my $dbh = C4::Context->dbh;
+       my $sth;
+       $fwk='' unless ($fwk);
+       my 
($tag,$subfield)=MARCfind_marc_from_kohafield($dbh,"items.location",$fwk);
+       if ($tag and $subfield){
+               my $sth = $dbh->prepare("select authorised_value from 
marc_subfield_structure where tagfield=? and tagsubfield=? and 
frameworkcode=?");
+               $sth->execute($tag,$subfield,$fwk);
+               if (my ($authorisedvaluecat)=$sth->fetchrow){
+                       my $authvalsth=$dbh->prepare("select authorised_value, 
lib from authorised_values where category=? order by lib");
+                       $authvalsth->execute($authorisedvaluecat);
+                       while (my ($authorisedvalue, 
$lib)=$authvalsth->fetchrow){
+                               $itemlocation{$authorisedvalue}=$lib;
+                       }
+                       $authvalsth->finish;
+                       return \%itemlocation;
+                       exit 1;
+               } else{
+                       #No authvalue list
+                       # build default
+               }
+               $sth->finish;
+       }
+       #No authvalue list
+       #build default
+       $itemlocation{"1"}="Not For Loan";
+       return \%itemlocation;
+}
 
 sub countitems {
     my ($bibitemnum) = @_;
@@ -3219,8 +3345,14 @@
 
 =cut
 
-# $Id: Biblio.pm,v 1.178.2.9 2006/09/26 07:54:20 hdl Exp $
+# $Id: Biblio.pm,v 1.178.2.10 2006/10/02 09:32:02 hdl Exp $
 # $Log: Biblio.pm,v $
+# Revision 1.178.2.10  2006/10/02 09:32:02  hdl
+# Adding GetItemStatus and GetItemLocation function in order to make 
serials-receive.pl work.
+#
+# *************WARNING.***************
+# tested for UNIMARC and using 'marcflavour' system preferences to set 
defaut_record_format.
+#
 # Revision 1.178.2.9  2006/09/26 07:54:20  hdl
 # Bug FIX: Correct accents for UNIMARC biblio MARC details.
 # (Adding the use of default_record_format in MARCgetbiblio if UNIMARC 
marcflavour is chosen. This should be widely used as soon as we use xml records)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]