From 2cf6d3216dcbe800daa6ded77a81db816bd773a2 Mon Sep 17 00:00:00 2001
From: Mathieu Saby <mathsabypro@gmail.com>
Date: Mon, 17 Feb 2014 01:11:42 +0100
Subject: [PATCH 1/3] SIGNED OFF : Bug 9416: In each order, add a new note made for the vendor
Content-Type: text/plain; charset="utf-8"
(Patch edited after QA remark: I removed the changes made to Koha/Schema/Result/Aqorder.pm)
Currently, there is a single note field in each order. It could be useful to have 2 notes fields:
- one for the staff (ex: "catalog this book as soon as possible")
- one for the vendor (ex: "urgent", "only the 2d volume"...), which could lated be printed in basketgroup pdf for example
This patch adds a new note made for vendor in each order. The existing note is renamed "internal note".
The behavior of the 2 notes are the same
An other patch will display this vendor note in pdf printed basketgroups.
Changes in database structure:
- new column aqorders.order_vendornote
- column aqorders.notes renamed aqorders.order_internalnote
To test :
Make a complete acquisiton process (creating the order > looking at the basket > looking the order > receiving)
and try to use the 2 notes (internal note / vendor note)
check the changes made on one page (eg detail of the order) are well saved and visible on an other page (eg receipt page)
I followed the test plan, patch behaves as expected.
Signed-off-by: Marc Véron <veron@veron.ch>
petit
---
C4/Acquisition.pm | 6 +++---
acqui/modordernotes.pl | 17 ++++++++++++-----
acqui/orderreceive.pl | 3 ++-
installer/data/mysql/kohastructure.sql | 3 ++-
installer/data/mysql/updatedatabase.pl | 7 +++++++
.../prog/en/modules/acqui/addorderiso2709.tt | 4 ++--
.../intranet-tmpl/prog/en/modules/acqui/basket.tt | 13 +++++++++----
.../prog/en/modules/acqui/modordernotes.tt | 9 +++++----
.../prog/en/modules/acqui/neworderempty.tt | 8 ++++++--
.../prog/en/modules/acqui/orderreceive.tt | 6 ++++--
.../intranet-tmpl/prog/en/modules/acqui/parcel.tt | 13 +++++++++----
11 files changed, 61 insertions(+), 28 deletions(-)
diff --git a/C4/Acquisition.pm b/C4/Acquisition.pm
index 33aa8e3..69dd3af 100644
--- a/C4/Acquisition.pm
+++ b/C4/Acquisition.pm
@@ -310,7 +310,7 @@ sub GetBasketAsCSV {
publicationyear => $bd->{'publicationyear'},
publishercode => $bd->{'publishercode'},
collectiontitle => $bd->{'collectiontitle'},
- notes => $order->{'notes'},
+ notes => $order->{'order_internalnote'},
quantity => $order->{'quantity'},
rrp => $order->{'rrp'},
deliveryplace => C4::Branch::GetBranchName( $basket->{'deliveryplace'} ),
@@ -381,7 +381,7 @@ sub GetBasketGroupAsCSV {
rrp => $order->{rrp},
discount => $bookseller->{discount},
ecost => $order->{ecost},
- notes => $order->{notes},
+ notes => $order->{order_internalnote},
entrydate => $order->{entrydate},
booksellername => $bookseller->{name},
bookselleraddress => $bookseller->{address1},
@@ -1234,7 +1234,7 @@ Else, the upcoming July 1st is used.
=item defaults entrydate to Now
-The following keys are used: "biblionumber", "title", "basketno", "quantity", "notes", "rrp", "ecost", "gstrate", "unitprice", "subscription", "sort1", "sort2", "booksellerinvoicenumber", "listprice", "budgetdate", "purchaseordernumber", "branchcode", "booksellerinvoicenumber", "budget_id".
+The following keys are used: "biblionumber", "title", "basketno", "quantity", "order_vendornote", "order_internalnote", "rrp", "ecost", "gstrate", "unitprice", "subscription", "sort1", "sort2", "booksellerinvoicenumber", "listprice", "budgetdate", "purchaseordernumber", "branchcode", "booksellerinvoicenumber", "budget_id".
=back
diff --git a/acqui/modordernotes.pl b/acqui/modordernotes.pl
index ffdc9f6..74ccd18 100755
--- a/acqui/modordernotes.pl
+++ b/acqui/modordernotes.pl
@@ -47,7 +47,7 @@ my ($template, $loggedinuser, $cookie, $flags) = get_template_and_user( {
my $op = $input->param('op');
my $ordernumber = $input->param('ordernumber');
my $referrer = $input->param('referrer') || $input->referer();
-
+my $type = $input->param('type');
my $order = GetOrder($ordernumber);
my $basket = GetBasket($order->{basketno});
my ($bookseller) = GetBookSellerFromId($basket->{booksellerid});
@@ -55,14 +55,20 @@ my ($bookseller) = GetBookSellerFromId($basket->{booksellerid});
if($op and $op eq 'save') {
my $ordernotes = $input->param('ordernotes');
- $order->{'notes'} = $ordernotes;
+ if ($type eq "vendor") {
+ $order->{'order_vendornote'} = $ordernotes;
+ } else {
+ $order->{'order_internalnote'} = $ordernotes;
+ }
ModOrder($order);
print $input->redirect($referrer);
exit;
} else {
- $template->param(
- ordernotes => $order->{'notes'},
- );
+ if ($type eq "vendor") {
+ $template->param(ordernotes => $order->{'order_vendornote'});
+ } else {
+ $template->param(ordernotes => $order->{'order_internalnote'});
+ }
}
if($op) {
@@ -76,6 +82,7 @@ $template->param(
booksellername => $bookseller->{'name'},
ordernumber => $ordernumber,
referrer => $referrer,
+ type => $type,
);
diff --git a/acqui/orderreceive.pl b/acqui/orderreceive.pl
index 2a21c14..50920e0 100755
--- a/acqui/orderreceive.pl
+++ b/acqui/orderreceive.pl
@@ -222,7 +222,8 @@ $template->param(
invoice => $invoice->{invoicenumber},
datereceived => $datereceived->output(),
datereceived_iso => $datereceived->output('iso'),
- notes => $order->{notes},
+ order_internalnote => $order->{order_internalnote},
+ order_vendornote => $order->{order_vendornote},
suggestionid => $suggestion->{suggestionid},
surnamesuggestedby => $suggestion->{surnamesuggestedby},
firstnamesuggestedby => $suggestion->{firstnamesuggestedby},
diff --git a/installer/data/mysql/kohastructure.sql b/installer/data/mysql/kohastructure.sql
index 57cc3b8..ea4f944 100644
--- a/installer/data/mysql/kohastructure.sql
+++ b/installer/data/mysql/kohastructure.sql
@@ -2979,7 +2979,8 @@ CREATE TABLE `aqorders` ( -- information related to the basket line items
`quantityreceived` smallint(6) NOT NULL default 0, -- the quantity that have been received so far
`cancelledby` varchar(10) default NULL, -- not used? always NULL
`datecancellationprinted` date default NULL, -- the date the line item was deleted
- `notes` mediumtext, -- notes related to this order line
+ `order_internalnote` mediumtext, -- notes related to this order line, made for staff
+ `order_vendornote` mediumtext, -- notes related to this order line, made for vendor
`supplierreference` mediumtext, -- not used? always NULL
`purchaseordernumber` mediumtext, -- not used? always NULL
`basketno` int(11) default NULL, -- links this order line to a specific basket (aqbasket.basketno)
diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl
index d2db8d1..263d4d9 100755
--- a/installer/data/mysql/updatedatabase.pl
+++ b/installer/data/mysql/updatedatabase.pl
@@ -8136,6 +8136,13 @@ if ( CheckVersion($DBversion) ) {
print "Upgrade to $DBversion done (Bug 9448 - Add separate permission for writing off fees)\n";
SetVersion ($DBversion);
}
+$DBversion = "3.15.00.XXX";
+if ( CheckVersion($DBversion) ) {
+ $dbh->do("ALTER TABLE aqorders CHANGE notes order_internalnote MEDIUMTEXT;");
+ $dbh->do("ALTER TABLE aqorders ADD COLUMN order_vendornote MEDIUMTEXT AFTER order_internalnote;");
+ print "Upgrade to $DBversion done (Bug 9416 - In each order, add a new note made for the vendor)\n";
+ SetVersion($DBversion);
+}
=head1 FUNCTIONS
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/addorderiso2709.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/addorderiso2709.tt
index 44d2bb8..ccc8bf0 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/addorderiso2709.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/addorderiso2709.tt
@@ -231,8 +231,8 @@
[% END %]
</li>
<li>
- <label for="notes">Notes: </label>
- <textarea id="notes" cols="30" rows="3" name="notes"></textarea>
+ <label for="order_internalnote">Internal note: </label>
+ <textarea id="order_internalnote" cols="30" rows="3" name="order_internalnote"></textarea>
</li>
<li><div class="hint">The 2 following fields are available for your own usage. They can be useful for statistical purposes</div>
<label for="sort1">Planning value1: </label>
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/basket.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/basket.tt
index cd31176..37ac2d2 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/basket.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/basket.tt
@@ -491,10 +491,15 @@
(<a href="/cgi-bin/koha/suggestion/suggestion.pl?suggestionid=[% books_loo.suggestionid %]&op=show">suggestion #[% books_loo.suggestionid %]</a>)
[% END %]
</p>
- [% IF ( books_loo.notes ) %]
- <p class="ordernote"><strong>Note: </strong>[% books_loo.notes|html %] [<a href="/cgi-bin/koha/acqui/modordernotes.pl?ordernumber=[% books_loo.ordernumber %]">Change note</a>]</p>
+ [% IF ( books_loo.order_internalnote ) %]
+ <p class="ordernote"><strong>Internal note: </strong>[% books_loo.order_internalnote|html %] [<a href="/cgi-bin/koha/acqui/modordernotes.pl?ordernumber=[% books_loo.ordernumber %]&type=internal">Change internal note</a>]</p>
[% ELSE %]
- <p>[<a href="/cgi-bin/koha/acqui/modordernotes.pl?ordernumber=[% books_loo.ordernumber %]">Add note</a>]</p>
+ [<a href="/cgi-bin/koha/acqui/modordernotes.pl?ordernumber=[% books_loo.ordernumber %]&type=internal">Add internal note</a>]
+ [% END %]
+ [% IF ( books_loo.order_vendornote ) %]
+ <p class="ordernote"><strong>Vendor note: </strong>[% books_loo.order_vendornote|html %] [<a href="/cgi-bin/koha/acqui/modordernotes.pl?ordernumber=[% books_loo.ordernumber %]&type=vendor">Change vendor note</a>]</p>
+ [% ELSE %]
+ [<a href="/cgi-bin/koha/acqui/modordernotes.pl?ordernumber=[% books_loo.ordernumber %]&type=vendor">Add vendor note</a>]
[% END %]
[% IF (books_loo.transferred_from) %]
[% basket = books_loo.transferred_from.basket %]
@@ -598,7 +603,7 @@
[% ELSE %]
<em>Deleted bibliographic record, can't find title</em><br />
[% END %]
- [% IF ( order.notes ) %] [% order.notes %][% END %]
+ [% IF ( order.order_internalnote ) %] [% order.order_internalnote %][% END %]
[% IF ( order.isbn ) %] - [% order.isbn %][% END %]
[% IF ( order.issn ) %] - [% order.issn %][% END %]
[% IF ( order.publishercode ) %], [% order.publishercode %][% END %]
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/modordernotes.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/modordernotes.tt
index 6fc4867..ee60b0e 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/modordernotes.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/modordernotes.tt
@@ -1,26 +1,27 @@
[% INCLUDE 'doc-head-open.inc' %]
-<title>Koha › Acquisition › Change order notes</title>
+<title>Koha › Acquisition › Change order [% IF (type == "vendor") %]vendor[% ELSE %]internal[% END %] note</title>
[% INCLUDE 'doc-head-close.inc' %]
</head>
<body>
[% INCLUDE 'header.inc' %]
-<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> › <a href="/cgi-bin/koha/acqui/acqui-home.pl">Acquisition</a> › <a href="/cgi-bin/koha/acqui/supplier.pl?booksellerid=[% booksellerid %]">[% booksellername|html %]</a> › <a href="/cgi-bin/koha/acqui/basket.pl?basketno=[% basketno %]">Basket [% basketname|html %] ([% basketno %])</a> › Change order notes</div>
+<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> › <a href="/cgi-bin/koha/acqui/acqui-home.pl">Acquisition</a> › <a href="/cgi-bin/koha/acqui/supplier.pl?booksellerid=[% booksellerid %]">[% booksellername|html %]</a> › <a href="/cgi-bin/koha/acqui/basket.pl?basketno=[% basketno %]">Basket [% basketname|html %] ([% basketno %])</a> › Change order [% IF (type == "vendor") %]vendor[% ELSE %]internal[% END %] note</div>
<div id="doc" class="yui-t7">
<div id="bd">
<div id="yui-main">
- <h1>Change order notes (order no. [% ordernumber %])</h1>
+ <h1>Change order [% IF (type == "vendor") %]vendor[% ELSE %]internal[% END %] note (order no. [% ordernumber %])</h1>
<form action="/cgi-bin/koha/acqui/modordernotes.pl" method="post">
<fieldset class="brief">
- <label for="ordernotes">Notes:</label>
+ <label for="ordernotes">Note:</label>
<textarea id="ordernotes" name="ordernotes" rows="3" cols="30" class="focus">[% ordernotes %]</textarea>
</fieldset>
<input type="hidden" name="referrer" value="[% referrer %]" />
<input type="hidden" name="ordernumber" value="[% ordernumber %]" />
<input type="hidden" name="op" value="save" />
+ <input type="hidden" name="type" value="[% type %]" />
<fieldset class="action">
<input type="submit" value="Save" />
<a class="cancel" href="[% referrer %]">Cancel</a>
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/neworderempty.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/neworderempty.tt
index 596aa07..02a7bcd 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/neworderempty.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/neworderempty.tt
@@ -535,8 +535,12 @@ $(document).ready(function()
[% END %]
</li>
<li>
- <label for="notes">Notes: </label>
- <textarea id="notes" cols="30" rows="3" name="notes" >[% IF ( notes ) %][% notes %][% END %]</textarea>
+ <label for="order_internalnote">Internal note: </label>
+ <textarea id="order_internalnote" cols="30" rows="3" name="order_internalnote" >[% IF ( order_internalnote ) %][% order_internalnote %][% END %]</textarea>
+ </li>
+ <li>
+ <label for="order_vendornote">Vendor note: </label>
+ <textarea id="order_vendornote" cols="30" rows="3" name="order_vendornote" >[% IF ( order_vendornote ) %][% order_vendornote %][% END %]</textarea>
</li>
<li><div class="hint">The 2 following fields are available for your own usage. They can be useful for statistical purposes</div>
<label for="sort1">Statistic 1: </label>
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 47eea31..6d2b3fa 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/orderreceive.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/orderreceive.tt
@@ -328,8 +328,10 @@
<input type="text" size="20" name="cost" id="cost" value="[% unitprice %]" />
[% ELSE %]
<input type="text" size="20" name="cost" id="cost" value="[% ecost %]" />
- [% END %]</li></ol>
- <label for="note">Notes: </label><textarea name="note" width="40" rows="8" >[% notes %]</textarea>
+ [% END %]</li>
+ <li><label for="order_internalnote">Internal note: </label><textarea name="order_internalnote" width="40" rows="8" >[% order_internalnote %]</textarea></li>
+ <li><label for="order_vendornote">Vendor note: </label><textarea name="order_vendornote" width="40" rows="8" >[% order_vendornote %]</textarea></li>
+ </ol>
</fieldset>
</div>
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 b537148..11bc920 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/parcel.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/parcel.tt
@@ -268,17 +268,22 @@
<a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% loop_order.biblionumber %]">[% loop_order.title |html %]</a>
[% IF ( loop_order.author ) %] by [% loop_order.author %][% END %]
[% IF ( loop_order.isbn ) %] – [% loop_order.isbn %][% END %]
- [% IF ( loop_order.publishercode ) %]<br />Publisher :[% loop_order.publishercode %][% END %]
+ [% IF ( loop_order.publishercode ) %]<br />Publisher:[% loop_order.publishercode %][% END %]
[% IF ( loop_order.suggestionid ) %]
<br/>
Suggested by: [% loop_order.surnamesuggestedby %][% IF ( loop_order.firstnamesuggestedby ) %], [% loop_order.firstnamesuggestedby %] [% END %]
(<a href="/cgi-bin/koha/suggestion/suggestion.pl?suggestionid=[% loop_order.suggestionid %]&op=show">suggestion #[% loop_order.suggestionid %]</a>)
[% END %]
<br />
- [% IF ( loop_order.notes ) %]
- <p class="ordernote"><strong>Note: </strong>[% loop_order.notes|html %] [<a href="/cgi-bin/koha/acqui/modordernotes.pl?ordernumber=[% loop_order.ordernumber %]&referrer=/cgi-bin/koha/acqui/parcel.pl%3Finvoiceid=[% invoiceid %]">Change note</a>]</p>
+ [% IF ( loop_order.order_internalnote ) %]
+ f<p class="ordernote"><strong>Internal note: </strong>[% loop_order.order_internalnote|html %] [<a href="/cgi-bin/koha/acqui/modordernotes.pl?ordernumber=[% loop_order.ordernumber %]&referrer=/cgi-bin/koha/acqui/parcel.pl%3Finvoiceid=[% invoiceid %]&type=internal">Change internal note</a>]</p>
[% ELSE %]
- [<a href="/cgi-bin/koha/acqui/modordernotes.pl?ordernumber=[% loop_order.ordernumber %]&referrer=/cgi-bin/koha/acqui/parcel.pl%3Finvoiceid=[% invoiceid %]">Add note</a>]
+ [<a href="/cgi-bin/koha/acqui/modordernotes.pl?ordernumber=[% loop_order.ordernumber %]&referrer=/cgi-bin/koha/acqui/parcel.pl%3Finvoiceid=[% invoiceid %]&type=internal">Add internal note</a>]
+ [% END %]
+ [% IF ( loop_order.order_vendornote ) %]
+ <p class="ordernote"><strong>Vendor note: </strong>[% loop_order.order_vendornote|html %] [<a href="/cgi-bin/koha/acqui/modordernotes.pl?ordernumber=[% loop_order.ordernumber %]&referrer=/cgi-bin/koha/acqui/parcel.pl%3Finvoiceid=[% invoiceid %]&type=vendor">Change vendor note</a>]</p>
+ [% ELSE %]
+ [<a href="/cgi-bin/koha/acqui/modordernotes.pl?ordernumber=[% loop_order.ordernumber %]&referrer=/cgi-bin/koha/acqui/parcel.pl%3Finvoiceid=[% invoiceid %]&type=vendor">Add vendor note</a>]
[% END %]
</td>
<td><a href="/cgi-bin/koha/catalogue/showmarc.pl?id=[% loop_order.biblionumber %]" title="MARC" rel="gb_page_center[600,500]">MARC</a> | <a href="/cgi-bin/koha/catalogue/showmarc.pl?viewas=card&id=[% loop_order.biblionumber %]" title="MARC" rel="gb_page_center[600,500]">Card</a></td>
--
1.7.9.5