@@ -, +, @@ --- C4/Acquisition.pm | 33 +++++++-- acqui/lateorders-excel.pl | 65 +++++++++++++++++ acqui/lateorders.pl | 2 +- .../prog/en/modules/acqui/lateorders.tt | 77 +++++++++++++------- 4 files changed, 141 insertions(+), 36 deletions(-) create mode 100755 acqui/lateorders-excel.pl --- a/C4/Acquisition.pm +++ a/C4/Acquisition.pm @@ -842,17 +842,34 @@ C<$order> are fields from the biblio, biblioitems, aqorders tables of the Koha d sub GetOrder { my ($ordernumber) = @_; my $dbh = C4::Context->dbh; - my $query = " - SELECT biblioitems.*, biblio.*, aqorders.* - FROM aqorders - LEFT JOIN biblio on biblio.biblionumber=aqorders.biblionumber - LEFT JOIN biblioitems on biblioitems.biblionumber=aqorders.biblionumber - WHERE aqorders.ordernumber=? - - "; + my $query = qq{SELECT biblio.*,biblioitems.*, + aqorders.*, + aqbudgets.*, + aqbasket.*, + aqorders.rrp AS unitpricesupplier, + aqorders.ecost AS unitpricelib, + aqorders.claims_count AS claims_count, + aqorders.claimed_date AS claimed_date, + aqbudgets.budget_name AS budget, + aqbooksellers.name AS supplier, + aqbooksellers.id AS supplierid, + biblioitems.publishercode AS publisher, + ADDDATE(aqbasket.closedate, INTERVAL aqbooksellers.deliverytime DAY) AS estimateddeliverydate, + DATE(aqbasket.closedate) AS orderdate, + aqorders.quantity - IFNULL(aqorders.quantityreceived,0) AS quantity, + (aqorders.quantity - IFNULL(aqorders.quantityreceived,0)) * aqorders.rrp AS subtotal, + DATEDIFF(CURDATE( ),closedate) AS latesince + FROM aqorders LEFT JOIN biblio ON biblio.biblionumber = aqorders.biblionumber + LEFT JOIN biblioitems ON biblioitems.biblionumber = biblio.biblionumber + LEFT JOIN aqbudgets ON aqorders.budget_id = aqbudgets.budget_id, + aqbasket LEFT JOIN borrowers ON aqbasket.authorisedby = borrowers.borrowernumber + LEFT JOIN aqbooksellers ON aqbasket.booksellerid = aqbooksellers.id + WHERE aqorders.basketno = aqbasket.basketno + AND ordernumber=?}; my $sth= $dbh->prepare($query); $sth->execute($ordernumber); my $data = $sth->fetchrow_hashref; + $data->{orderdate} = format_date( $data->{orderdate} ); $sth->finish; return $data; } --- a/acqui/lateorders-excel.pl +++ a/acqui/lateorders-excel.pl @@ -0,0 +1,65 @@ +#!/usr/bin/perl + +# This file is part of Koha. +# +# Koha is free software; you can redistribute it and/or modify it under the +# terms of the GNU General Public License as published by the Free Software +# Foundation; either version 2 of the License, or (at your option) any later +# version. +# +# Koha is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR +# A PARTICULAR PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with Koha; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +use Modern::Perl; +use CGI; +use C4::Auth; +use C4::Serials; +use C4::Acquisition; +use C4::Output; +use C4::Context; + +use Text::CSV::Encoded; +use open qw/ :std :utf8 /; + +my $csv = Text::CSV::Encoded->new ({ + encoding => undef, + quote_char => '"', + escape_char => '"', + sep_char => ',', + binary => 1, + }); + +my $query = new CGI; +my @ordernumbers = $query->param('ordernumber'); + +print $query->header( + -type => 'text/csv', + -attachment => "lateorders.csv", +); + +print "LATE ORDERS\n\n"; +print "ORDER DATE,ESTIMATED DELIVERY DATE,VENDOR,INFORMATION,TOTAL COST,BASKET,CLAIMS COUNT,CLAIMED DATE\n"; + +for my $ordernumber ( @ordernumbers ) { + my $order = GetOrder $ordernumber; + $csv->combine( + "(" . $$order{supplierid} . ") " . $$order{orderdate} . " (" . $$order{latesince} . " days)", + $$order{estimateddeliverydate}, + $$order{supplier}, + $$order{title} . ( $$order{author} ? " Author: $$order{author}" : "" ) . ( $$order{publisher} ? " Published by: $$order{publisher}" : "" ), + $$order{unitpricesupplier} . "x" . $$order{quantity} . " = " . $$order{subtotal} . " (" . $$order{budget} . ")", + $$order{basketname} . " (" . $$order{basketno} . ")", + $$order{claims_count}, + $$order{claimed_date} + ); + my $string = $csv->string; + print $string, "\n"; +} + +print ",,Total Number Late, " . scalar @ordernumbers . "\n"; + --- a/acqui/lateorders.pl +++ a/acqui/lateorders.pl @@ -77,7 +77,7 @@ unless ($delay =~ /^\d{1,3}$/) { } if ($op and $op eq "send_alert"){ - my @ordernums = $input->param("claim_for");# FIXME: Fallback values? + my @ordernums = $input->param("ordernumber");# FIXME: Fallback values? my $err; eval { $err = SendAlerts( 'claimacquisition', \@ordernums, $input->param("letter_code") ); # FIXME: Fallback value? --- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/lateorders.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/lateorders.tt @@ -5,16 +5,38 @@ @@ -59,6 +81,11 @@ $(document).ready(function() { [% END %] + [% IF Supplier %] + + [% ELSE %] + + [% END %] @@ -66,16 +93,14 @@ $(document).ready(function() { - [% IF Supplier %] - - [% ELSE %] - - [% END %] [% FOREACH lateorder IN lateorders %] [% UNLESS ( loop.odd ) %] [% ELSE %][% END %] + - - [% END %] - - - - - - - - - + + + + + + + + + +
Check all
Uncheck all
Order Date Vendor InformationBasket Claims count Claimed dateCheck all
Uncheck all
+ + ([% lateorder.supplierid %]) [% lateorder.orderdate %] ([% lateorder.latesince %] days) @@ -107,27 +132,25 @@ $(document).ready(function() { [% lateorder.claims_count %] [% lateorder.claimed_date %] - [% UNLESS lateorder.budget_lock %] - - [% END %] -
Total [% total %]    - -
Total [% total %]   
- +
+

+ [% UNLESS lateorder.budget_lock %] +

+ [% END %] + [% ELSE %]

There are no late orders.

[% END %] --