From 948704964073dd8dea146d959ad5ed690ccafe67 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=utf8 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 Signed-off-by: Katrin Fischer Signed-off-by: Jonathan Druart Signed-off-by: Nick Clemens --- Koha/Acquisition/Order.pm | 7 +++ acqui/orderreceive.pl | 10 +---- acqui/showorder.pl | 45 +++++++++++++++++++ ...g-12395-add-column-aqorders.created_by.sql | 2 + installer/data/mysql/kohastructure.sql | 1 + .../prog/en/modules/acqui/orderreceive.tt | 14 +++++- .../prog/en/modules/acqui/parcel.tt | 8 +++- .../prog/en/modules/acqui/showorder.tt | 38 ++++++++++++++++ 8 files changed, 114 insertions(+), 11 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 79fb056802..b195ed26e9 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 c88a533efe..4dbb5f0cb6 100755 --- a/acqui/orderreceive.pl +++ b/acqui/orderreceive.pl @@ -183,14 +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 ); -if ( $authorised_patron ) { # This should not happen unless there was a migration issue (or very old install?) - $template->param( - memberfirstname => $authorised_patron->firstname || "", - membersurname => $authorised_patron->surname || "", - ); -} +my $creator = Koha::Patrons->find( $order->{created_by} ); my $budget = GetBudget( $order->{budget_id} ); @@ -223,6 +216,7 @@ $template->param( ecost => $ecost, unitprice => $unitprice, tax_rate => $tax_rate, + 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 0000000000..d3ea597a82 --- /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 0000000000..4d2a0fbf23 --- /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 f7970c051f..c6f7f019d0 100644 --- a/installer/data/mysql/kohastructure.sql +++ b/installer/data/mysql/kohastructure.sql @@ -3159,6 +3159,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 1abf288ffa..1719a081a0 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/orderreceive.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/orderreceive.tt @@ -173,7 +173,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 96c2f51ee3..f6bbf9ed81 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/parcel.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/parcel.tt @@ -114,7 +114,7 @@ Basket group Order line Summary - View record + More Quantity Unit cost Order cost @@ -162,7 +162,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 0000000000..b872b20223 --- /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.39.5