From 2420ed12502fcc60197052a39da85c01e4405969 Mon Sep 17 00:00:00 2001 From: Julian Maurice Date: Mon, 9 Jun 2014 16:15:17 +0200 Subject: [PATCH] Bug 12395: Save order line's creator MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit New MySQL column: aqorders.createdby Creator's name is displayed on order's receive pages (acqui/orderreceive.pl and acqui/parcel.pl) On acqui/orderreceive.pl it replace the name of basket's creator On acqui/parcel.pl, to avoid adding more data in the table of pending orders, it is shown in a popup like MARC and Card views Test plan: 1/ Run updatedatabase.pl 2/ Create a new order and go to the receipt page (acqui/parcel.pl) 3/ Click on "Order" link in column "More" (previously "View record") 4/ A javascript popup should appear with your name in it. Close the popup. 5/ Click on "Receive" link 6/ Your name should appear in front of "Created by" label, to the right of the page. Patch updated with use of atomic update. Signed-off-by: Séverine QUEUNE --- Koha/Acquisition/Order.pm | 7 ++++ acqui/orderreceive.pl | 6 +-- acqui/showorder.pl | 45 ++++++++++++++++++++++ .../Bug-12395-add-column-aqorders.created_by.sql | 2 + installer/data/mysql/kohastructure.sql | 1 + .../prog/en/modules/acqui/orderreceive.tt | 14 ++++++- .../intranet-tmpl/prog/en/modules/acqui/parcel.tt | 8 +++- .../prog/en/modules/acqui/showorder.tt | 38 ++++++++++++++++++ 8 files changed, 114 insertions(+), 7 deletions(-) create mode 100755 acqui/showorder.pl create mode 100644 installer/data/mysql/atomicupdate/Bug-12395-add-column-aqorders.created_by.sql create mode 100644 koha-tmpl/intranet-tmpl/prog/en/modules/acqui/showorder.tt diff --git a/Koha/Acquisition/Order.pm b/Koha/Acquisition/Order.pm index 79fb056..b195ed2 100644 --- a/Koha/Acquisition/Order.pm +++ b/Koha/Acquisition/Order.pm @@ -69,6 +69,13 @@ sub store { unless $self->$key; } + if (not defined $self->{created_by}) { + my $userenv = C4::Context->userenv; + if ($userenv) { + $self->created_by($userenv->{number}); + } + } + $self->quantityreceived(0) unless $self->quantityreceived; $self->entrydate(dt_from_string) unless $self->entrydate; diff --git a/acqui/orderreceive.pl b/acqui/orderreceive.pl index e876942..4dbb5f0 100755 --- a/acqui/orderreceive.pl +++ b/acqui/orderreceive.pl @@ -183,8 +183,7 @@ if( defined $order->{tax_rate_on_receiving} ) { my $suggestion = GetSuggestionInfoFromBiblionumber($order->{biblionumber}); -my $authorisedby = $order->{authorisedby}; -my $authorised_patron = Koha::Patrons->find( $authorisedby ); +my $creator = Koha::Patrons->find( $order->{created_by} ); my $budget = GetBudget( $order->{budget_id} ); @@ -217,8 +216,7 @@ $template->param( ecost => $ecost, unitprice => $unitprice, tax_rate => $tax_rate, - memberfirstname => $authorised_patron->firstname || "", - membersurname => $authorised_patron->surname || "", + creator => $creator, invoiceid => $invoice->{invoiceid}, invoice => $invoice->{invoicenumber}, datereceived => $datereceived, diff --git a/acqui/showorder.pl b/acqui/showorder.pl new file mode 100755 index 0000000..d3ea597 --- /dev/null +++ b/acqui/showorder.pl @@ -0,0 +1,45 @@ +#!/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 3 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::Output; + +use Koha::Acquisition::Orders; +use Koha::Patrons; + +my $cgi = new CGI; +my ( $template, $loggedinuser, $cookie ) = get_template_and_user({ + template_name => "acqui/showorder.tt", + query => $cgi, + type => "intranet", + authnotrequired => 0, + flagsrequired => { acquisition => '*' }, +}); + +my $ordernumber = $cgi->param('ordernumber'); +my $order = Koha::Acquisition::Orders->find($ordernumber); +my $creator = Koha::Patrons->find($order->created_by); + +$template->param( + order => $order, + creator => $creator, +); + +output_html_with_http_headers $cgi, $cookie, $template->output; diff --git a/installer/data/mysql/atomicupdate/Bug-12395-add-column-aqorders.created_by.sql b/installer/data/mysql/atomicupdate/Bug-12395-add-column-aqorders.created_by.sql new file mode 100644 index 0000000..4d2a0fb --- /dev/null +++ b/installer/data/mysql/atomicupdate/Bug-12395-add-column-aqorders.created_by.sql @@ -0,0 +1,2 @@ +ALTER TABLE aqorders ADD COLUMN created_by int(11) NULL DEFAULT NULL AFTER quantityreceived; +UPDATE aqorders, aqbasket SET aqorders.created_by = aqbasket.authorisedby WHERE aqorders.basketno = aqbasket.basketno; diff --git a/installer/data/mysql/kohastructure.sql b/installer/data/mysql/kohastructure.sql index 8151a29..cbca532 100644 --- a/installer/data/mysql/kohastructure.sql +++ b/installer/data/mysql/kohastructure.sql @@ -3134,6 +3134,7 @@ CREATE TABLE `aqorders` ( -- information related to the basket line items `unitprice_tax_excluded` decimal(28,6) default NULL, -- the unit price excluding tax (on receiving) `unitprice_tax_included` decimal(28,6) default NULL, -- the unit price including tax (on receiving) `quantityreceived` smallint(6) NOT NULL default 0, -- the quantity that have been received so far + `created_by` int(11) NULL DEFAULT NULL, -- the borrowernumber of order line's creator `datecancellationprinted` date default NULL, -- the date the line item was deleted `cancellationreason` MEDIUMTEXT default NULL, -- reason of cancellation `order_internalnote` LONGTEXT, -- notes related to this order line, made for staff diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/orderreceive.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/orderreceive.tt index 8ec42ad..d7a748a 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/orderreceive.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/orderreceive.tt @@ -172,7 +172,19 @@ [% END %]
  • (Current: [% budget_period_description %] - [% bookfund %])
  • -
  • [% IF ( memberfirstname and membersurname ) %][% IF ( memberfirstname ) %][% memberfirstname %][% END %] [% membersurname %][% ELSE %]No name[% END %]
  • +
  • + + + [% IF (creator && creator.firstname && creator.surname) %] + [% IF creator.firstname %] + [% creator.firstname %] + [% END %] + [% creator.surname %] + [% ELSE %] + No name + [% END %] + +
  • [% IF ( edit and not subscriptionid) %] diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/parcel.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/parcel.tt index 2790d5a..ec4e726 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/parcel.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/parcel.tt @@ -113,7 +113,7 @@ Basket group Order line Summary - View record + More Quantity Unit cost Order cost @@ -161,7 +161,11 @@ [Add vendor note] [% END %] - MARC | Card + + Order
    + MARC
    + Card + [% loop_order.quantity %] [% loop_order.ecost | $Price %] [% loop_order.total | $Price %] diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/showorder.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/showorder.tt new file mode 100644 index 0000000..b872b20 --- /dev/null +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/showorder.tt @@ -0,0 +1,38 @@ +[% INCLUDE 'doc-head-open.inc' %] + + + + [% IF order %] + + + + + + + + + + + + + + + + + + + +
    Creation date[% order.entrydate %]
    Creator[% creator.firstname %] [% creator.surname %]
    Claims count[% order.claims_count %]
    Last claim date[% order.claimed_date %]
    + [% ELSE %] + No order found. + [% END %] + + -- 2.1.4