koha-cvs
[Top][All Lists]
Advanced

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

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


From: Henri-Damien LAURENT
Subject: [Koha-cvs] koha C4/Serials.pm koha-tmpl/intranet-tmpl/prog... [rel_3_0]
Date: Thu, 14 Dec 2006 12:59:23 +0000

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,@issuelist) = &GetMissingIssues($supplierid,$serialid)
+($count,@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   => address@hidden,
                        -default  => $supplierid,
                        -labels   => \%supplierlist,
                        -size     => 1,
-                       -multiple => 0 );
+                       -multiple => 0 
+            -onChange => 'onchange="submit();"');
 
 my ($singlesupplier,@supplierinfo);
 if($supplierid){
-   ($singlesupplier,@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'=>address@hidden,'letter'=>$letter);
 $template->param(
+    order =>$order,
        CGIsupplier => $CGIsupplier,
         preview => $preview,
         missingissues => address@hidden,




reply via email to

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