[Koha-cvs] koha C4/Serials.pm koha-tmpl/intranet-tmpl/prog... [rel_3_0]

Henri-Damien LAURENT laurenthdl at alinto.com
Thu Dec 14 13:59:23 CET 2006


CVSROOT:	/cvsroot/koha
Module name:	koha
Branch:		rel_3_0
Changes by:	Henri-Damien LAURENT <hdl>	06/12/14 12:59:23

Modified files:
	C4             : Serials.pm 
	koha-tmpl/intranet-tmpl/prog/en/serials: claims.tmpl 
	serials        : claims.pl 

Log message:
	adding missing/expected/late issues on a single page.
	And treating them alike.
	Maybe we could add a filter on a value when a value is clicked. So that it could be far user friendly.
	Using AJAX could also be a great +

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/koha/C4/Serials.pm?cvsroot=koha&only_with_tag=rel_3_0&r1=1.5.2.16&r2=1.5.2.17
http://cvs.savannah.gnu.org/viewcvs/koha/koha-tmpl/intranet-tmpl/prog/en/serials/claims.tmpl?cvsroot=koha&only_with_tag=rel_3_0&r1=1.2.2.1&r2=1.2.2.2
http://cvs.savannah.gnu.org/viewcvs/koha/serials/claims.pl?cvsroot=koha&only_with_tag=rel_3_0&r1=1.1.2.2&r2=1.1.2.3

Patches:
Index: C4/Serials.pm
===================================================================
RCS file: /cvsroot/koha/koha/C4/Serials.pm,v
retrieving revision 1.5.2.16
retrieving revision 1.5.2.17
diff -u -b -r1.5.2.16 -r1.5.2.17
--- C4/Serials.pm	13 Dec 2006 19:45:04 -0000	1.5.2.16
+++ C4/Serials.pm	14 Dec 2006 12:59:23 -0000	1.5.2.17
@@ -17,7 +17,7 @@
 # Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
 # Suite 330, Boston, MA  02111-1307 USA
 
-# $Id: Serials.pm,v 1.5.2.16 2006/12/13 19:45:04 hdl Exp $
+# $Id: Serials.pm,v 1.5.2.17 2006/12/14 12:59:23 hdl Exp $
 
 use strict;
 use C4::Date;
@@ -33,7 +33,7 @@
 use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
 
 # set the version for version checking
-$VERSION = do { my @v = '$Revision: 1.5.2.16 $' =~ /\d+/g;
+$VERSION = do { my @v = '$Revision: 1.5.2.17 $' =~ /\d+/g;
     shift(@v) . "." . join( "_", map { sprintf "%03d", $_ } @v );
 };
 
@@ -63,7 +63,7 @@
     
     &GetNextSeq         &NewIssue           &ItemizeSerials    &GetSerials
     &GetLatestSerials   &ModSerialStatus    &GetNextDate       &GetSerials2
-    &ReNewSubscription  &GetLateIssues      &GetMissingIssues
+    &ReNewSubscription  &GetLateIssues      &GetLateOrMissingIssues
     &GetSerialInformation                   &AddItem2Serial
     
     &UpdateClaimdateIssues
@@ -322,7 +322,7 @@
     my $dbh   = C4::Context->dbh;
     $date = strftime("%Y-%m-%d",localtime) unless ($date);
     my $query = "
-        UPDATE serial SET claimdate=$date
+        UPDATE serial SET claimdate=$date,status=7
         WHERE  serialid in ".join (",",@$serialids);
     ;
     my $rq = $dbh->prepare($query);
@@ -674,15 +674,13 @@
 sub GetSerials2 {
     my ($subscription,$status) = @_;
     my $dbh = C4::Context->dbh;
-#     use Data::Dumper;warn Dumper($hashconstraints);
-    # OK, now add the last 5 issues arrives/missing
-    my $query = "SELECT   serialid,serialseq, status, planneddate, publisheddate,notes
-                 FROM     serial";
-#     $query.=" WHERE ".join (" AND ",map {join("=",$_,$hashconstraints->{$_})} keys %$hashconstraints);
-    $query.=" WHERE subscriptionid=$subscription AND status=$status";
-    $query.=   " ORDER BY publisheddate,serialid DESC
-                    ";
-    warn $query;
+    my $query = qq|
+                 SELECT   serialid,serialseq, status, planneddate, publisheddate,notes
+                 FROM     serial 
+                 WHERE    subscriptionid=$subscription AND status=$status 
+                 ORDER BY publisheddate,serialid DESC
+                    |;
+#     warn $query;
     my $sth=$dbh->prepare($query);
     $sth->execute;
     my @serials;
@@ -1711,13 +1709,13 @@
     return $mainsth->rows;
 }
 
-=head2 GetMissingIssues
+=head2 GetLateOrMissingIssues
 
 =over 4
 
-($count, at issuelist) = &GetMissingIssues($supplierid,$serialid)
+($count, at issuelist) = &GetLateMissingIssues($supplierid,$serialid)
 
-this function select missing issues on database - where serial.status = 4
+this function select missing issues on database - where serial.status = 4 or serial.status=3 or planneddate<now
 
 return :
 a count of the number of missing issues
@@ -1728,14 +1726,19 @@
 
 =cut
 
-sub GetMissingIssues {
-    my ( $supplierid, $serialid ) = @_;
+sub GetLateOrMissingIssues {
+    my ( $supplierid, $serialid,$order ) = @_;
     my $dbh = C4::Context->dbh;
     my $sth;
     my $byserial = '';
     if ($serialid) {
         $byserial = "and serialid = " . $serialid;
     }
+    if ($order){
+      $order.=", title";
+    } else {
+      $order="title";
+    }
     if ($supplierid) {
         $sth = $dbh->prepare(
 "SELECT 
@@ -1745,30 +1748,18 @@
    biblio.title,
    planneddate,
    serialseq,
+   serial.status,
    serial.subscriptionid,
    claimdate
-FROM 
-   serial 
-     LEFT JOIN 
-       subscription 
-     ON serial.subscriptionid=subscription.subscriptionid 
-     LEFT JOIN 
-       biblio 
-     ON serial.biblionumber=biblio.biblionumber
-     LEFT JOIN
-       aqbooksellers 
-     ON subscription.aqbooksellerid = aqbooksellers.id
-WHERE 
-   subscription.subscriptionid = serial.subscriptionid 
-  AND
-   serial.STATUS = 4 
-  AND
-   subscription.aqbooksellerid=$supplierid 
-  AND
-   biblio.biblionumber = subscription.biblionumber "
-              . $byserial
-              . " 
-ORDER BY title"
+FROM      serial 
+LEFT JOIN subscription  ON serial.subscriptionid=subscription.subscriptionid 
+LEFT JOIN biblio        ON serial.biblionumber=biblio.biblionumber
+LEFT JOIN aqbooksellers ON subscription.aqbooksellerid = aqbooksellers.id
+WHERE subscription.subscriptionid = serial.subscriptionid 
+AND (serial.STATUS = 4 OR ((planneddate < now() AND serial.STATUS =1) OR serial.STATUS = 3))
+AND subscription.aqbooksellerid=$supplierid
+$byserial
+ORDER BY $order"
         );
     }
     else {
@@ -1780,27 +1771,22 @@
    biblio.title,
    planneddate,
    serialseq,
+   serial.status,
    serial.subscriptionid,
    claimdate
-FROM 
-   serial 
-     LEFT JOIN 
-       subscription 
-     ON serial.subscriptionid=subscription.subscriptionid 
-     LEFT JOIN 
-       biblio 
-     ON serial.biblionumber=biblio.biblionumber
-     LEFT JOIN
-       aqbooksellers 
-     ON subscription.aqbooksellerid = aqbooksellers.id
+FROM serial 
+LEFT JOIN subscription 
+ON serial.subscriptionid=subscription.subscriptionid 
+LEFT JOIN biblio 
+ON serial.biblionumber=biblio.biblionumber
+LEFT JOIN aqbooksellers 
+ON subscription.aqbooksellerid = aqbooksellers.id
 WHERE 
    subscription.subscriptionid = serial.subscriptionid 
-  AND
-   serial.STATUS = 4 
-  AND
-   biblio.biblionumber = subscription.biblionumber "
-. $byserial
-. " ORDER BY title"
+AND (serial.STATUS = 4 OR ((planneddate < now() AND serial.STATUS =1) OR serial.STATUS = 3))
+AND biblio.biblionumber = subscription.biblionumber 
+$byserial
+ORDER BY $order"
         );
     }
     $sth->execute;
@@ -1809,11 +1795,11 @@
     my $odd   = 0;
     my $count = 0;
     while ( my $line = $sth->fetchrow_hashref ) {
-        warn "".$line->{title};
         $odd++ unless $line->{title} eq $last_title;
         $last_title = $line->{title} if ( $line->{title} );
         $line->{planneddate} = format_date( $line->{planneddate} );
         $line->{claimdate}   = format_date( $line->{claimdate} );
+        $line->{"status".$line->{status}}   = 1;
         $line->{'odd'} = 1 if $odd % 2;
         $count++;
         push @issuelist, $line;

Index: koha-tmpl/intranet-tmpl/prog/en/serials/claims.tmpl
===================================================================
RCS file: /cvsroot/koha/koha/koha-tmpl/intranet-tmpl/prog/en/serials/claims.tmpl,v
retrieving revision 1.2.2.1
retrieving revision 1.2.2.2
diff -u -b -r1.2.2.1 -r1.2.2.2
--- koha-tmpl/intranet-tmpl/prog/en/serials/claims.tmpl	13 Dec 2006 19:45:04 -0000	1.2.2.1
+++ koha-tmpl/intranet-tmpl/prog/en/serials/claims.tmpl	14 Dec 2006 12:59:23 -0000	1.2.2.2
@@ -4,6 +4,18 @@
 
 <!-- TMPL_INCLUDE NAME="menus.inc" -->
 <!--TMPL_INCLUDE NAME="menu-serials.inc" -->
+
+<script type="text/javascript">
+function Setorder(myorder){
+    if (document.claims.elements['order'].value == myorder){
+      document.claims.elements['order'].value=myorder+' desc';
+    } else {
+      document.claims.elements['order'].value=myorder;
+    }
+    document.claims.elements['op'].value="";
+    document.claims.submit();
+}
+</script>
 <div id="mainbloc">
 <!-- TMPL_ELSE -->
 <!-- TMPL_INCLUDE NAME="popup-top.inc" -->
@@ -14,7 +26,7 @@
 	<h1>Claims</h1>
 
 	<p>
-	<form action="claims.pl" method="post">
+	<form name="claims" action="claims.pl" method="post">
 	<!-- TMPL_VAR name="CGIsupplier" -->
 	</p>
 	<p>
@@ -26,28 +38,35 @@
     <!--/TMPL_LOOP-->
     </select>
     <!--TMPL_ELSE-->
-    No Letter defined. Please Define One
+    No Letter defined. Please Define One. The list of expected issues is displayed.
     <!--/TMPL_IF-->
 	</p> 
 
-<input type="hidden" name="op" value="send_alert" />
+
+<input type="hidden" name="order" value="<!--TMPL_VAR Name="order"-->" />
+<input type="hidden" name="op" value="" />
 
 		<!-- TMPL_IF NAME="missingissues" -->
 		<h3>Missing Issues</h3>
 		<table cellpadding="0" cellspacing="0" border="0" class="collapse">
 			<tr>
+                <!--TMPL_IF Name=letter-->
 				<th class="cell-header">&nbsp;</th>
+                <!--/TMPL_IF-->
 				<th class="cell-header">Supplier</th>
 				<th class="cell-header">Title</th>
 				<th class="cell-header">Issue number</th>
-				<th class="cell-header">Missing since</th>
+				<th class="cell-header">Status <a href="javascript:Setorder('status');">sort</a></th>
+				<th class="cell-header">Since <a href="javascript:Setorder('planneddate');">sort</a></th>
 				<th class="cell-header">Began Claim</th>
 			</tr>
 			<!-- TMPL_LOOP name="missingissues" -->
 				<tr>
+					<!--TMPL_IF Name=letter-->
 					<td class="cell">
-					<input type="checkbox" name="serialid" value="<!-- TMPL_VAR NAME="serialid"-->">
+                    <input type="checkbox" name="serialid" value="<!-- TMPL_VAR NAME="serialid"-->" onclick="document.claims.op='send_alert';">
 					</td>
+                    <!--/TMPL_IF-->
 					<td class="cell">
 					<!-- TMPL_VAR name="name" -->
 					</td>
@@ -58,6 +77,13 @@
 					<!-- TMPL_VAR name="serialseq" -->
 					</td>
 					<td class="cell">
+                    <!-- TMPL_IF Name="status1" -->Waited<!-- /TMPL_IF -->
+                    <!-- TMPL_IF Name="status2" -->Arrived<!-- /TMPL_IF -->
+                    <!-- TMPL_IF Name="status3" -->Late<!-- /TMPL_IF -->
+                    <!-- TMPL_IF Name="status4" -->Missing<!-- /TMPL_IF -->
+                    <!-- TMPL_IF Name="status7" -->Claimed<!-- /TMPL_IF -->
+					</td>
+					<td class="cell">
 					<!-- TMPL_VAR name="planneddate" -->
 					</td>
 					<td class="cell">
@@ -79,7 +105,9 @@
 name="supplierid" -->,''); return false" class="button">Supplier Group Claim Letter</a></p> -->
 	<!-- /TMPL_IF -->
 <p><br/>
+<!--TMPL_IF Name=letter-->
 		<input type="submit" name="submit" class="button" value="Send letter" />
+<!--/TMPL_IF-->
 
 </form>
 <!-- TMPL_ELSE -->

Index: serials/claims.pl
===================================================================
RCS file: /cvsroot/koha/koha/serials/claims.pl,v
retrieving revision 1.1.2.2
retrieving revision 1.1.2.3
diff -u -b -r1.1.2.2 -r1.1.2.3
--- serials/claims.pl	13 Dec 2006 19:45:04 -0000	1.1.2.2
+++ serials/claims.pl	14 Dec 2006 12:59:23 -0000	1.1.2.3
@@ -6,6 +6,7 @@
 use C4::Serials;
 use C4::Acquisition;
 use C4::Output;
+use C4::Bookseller;
 use C4::Interface::CGI::Output;
 use C4::Context;
 use C4::Letters;
@@ -16,11 +17,13 @@
 my $op = $input->param('op');
 my $claimletter = $input->param('claimletter');
 my $supplierid = $input->param('supplierid');
+my $order = $input->param('order');
+warn "order :$order";
 my %supplierlist = GetSuppliersWithLateIssues;
 my @select_supplier;
 
 foreach my $supplierid (keys %supplierlist){
-        my ($count, @dummy) = GetMissingIssues($supplierid);
+        my ($count, @dummy) = GetLateOrMissingIssues($supplierid,"",$order);
         my $counting = $count;
         $supplierlist{$supplierid} = $supplierlist{$supplierid}." ($counting)";
 	push @select_supplier, $supplierid
@@ -28,18 +31,19 @@
 
 my @letters = GetLetters("claimissues");
 my $letter=((scalar(@letters)>1)||($letters[0]->{name}||$letters[0]->{code}));
-my ($count2, @missingissues) = GetMissingIssues($supplierid,$serialid);
+my ($count2, @missingissues) = GetLateOrMissingIssues($supplierid,$serialid,$order);
 
 my $CGIsupplier=CGI::scrolling_list( -name     => 'supplierid',
 			-values   => \@select_supplier,
 			-default  => $supplierid,
 			-labels   => \%supplierlist,
 			-size     => 1,
-			-multiple => 0 );
+			-multiple => 0 
+            -onChange => 'onchange="submit();"');
 
 my ($singlesupplier, at supplierinfo);
 if($supplierid){
-   ($singlesupplier, at supplierinfo)=bookseller($supplierid);
+   (@supplierinfo)=GetBookSeller($supplierid);
 } else { # set up supplierid for the claim links out of main table if all suppliers is chosen
    for(my $i=0; $i<@missingissues;$i++){
        $missingissues[$i]->{'supplierid'} = getsupplierbyserialid($missingissues[$i]->{'serialid'});
@@ -70,6 +74,7 @@
 
 $template->param('letters'=>\@letters,'letter'=>$letter);
 $template->param(
+    order =>$order,
 	CGIsupplier => $CGIsupplier,
         preview => $preview,
         missingissues => \@missingissues,





More information about the Koha-cvs mailing list