[Koha-patches] [PATCH] Bug 9416: Add a new note for vendor in each order

Mathieu Saby mathieu.saby at univ-rennes2.fr
Sat Sep 21 11:05:55 CEST 2013


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.

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)

Note : display of existing acq note is broken on receipt page. It must be fixed in an other bug
---
  C4/Acquisition.pm                                  |    2 +-
  acqui/modordernotes.pl                             |   17 ++++++++++++-----
  acqui/orderreceive.pl                              |    4 ++--
  installer/data/mysql/kohastructure.sql             |    3 ++-
  installer/data/mysql/updatedatabase.pl             |    7 +++++++
  .../prog/en/modules/acqui/addorderiso2709.tt       |    2 +-
  .../intranet-tmpl/prog/en/modules/acqui/basket.tt  |    9 +++++++--
  .../prog/en/modules/acqui/modordernotes.tt         |    9 +++++----
  .../prog/en/modules/acqui/neworderempty.tt         |    6 +++++-
  .../prog/en/modules/acqui/orderreceive.tt          |    6 ++++--
  .../intranet-tmpl/prog/en/modules/acqui/parcel.tt  |   11 ++++++++---
  11 files changed, 54 insertions(+), 22 deletions(-)

diff --git a/C4/Acquisition.pm b/C4/Acquisition.pm
index ed9c215..d2a0db0 100644
--- a/C4/Acquisition.pm
+++ b/C4/Acquisition.pm
@@ -1113,7 +1113,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", "notes", "orderstaffnote", "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..fc5a05f 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->{'notes'} = $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->{'notes'});
+    }
  }
  
  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 8fc760b..4ecea2b 100755
--- a/acqui/orderreceive.pl
+++ b/acqui/orderreceive.pl
@@ -220,12 +220,12 @@ $template->param(
      invoice               => $invoice->{invoicenumber},
      datereceived          => $datereceived->output(),
      datereceived_iso      => $datereceived->output('iso'),
-    notes                 => $order->{notes},
+    order_internalnote    => $order->{notes},
+    order_vendornote      => $order->{order_vendornote},
      suggestionid          => $suggestion->{suggestionid},
      surnamesuggestedby    => $suggestion->{surnamesuggestedby},
      firstnamesuggestedby  => $suggestion->{firstnamesuggestedby},
  );
-
  # regardless of the content of $unitprice e.g 0 or '' or any string will return in these cases 0.00
  # and the 'IF' in the .tt will show 0.00 and not 'ecost' (see BZ 7129)
  # So if $unitprice == 0 we don't create unitprice
diff --git a/installer/data/mysql/kohastructure.sql b/installer/data/mysql/kohastructure.sql
index fdab879..9781f97 100644
--- a/installer/data/mysql/kohastructure.sql
+++ b/installer/data/mysql/kohastructure.sql
@@ -2912,7 +2912,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
+  `notes` 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 da78e68..d6bbcf3 100755
--- a/installer/data/mysql/updatedatabase.pl
+++ b/installer/data/mysql/updatedatabase.pl
@@ -7130,6 +7130,13 @@ if ( CheckVersion($DBversion) ) {
      SetVersion($DBversion);
  }
  
+$DBversion = "3.13.00.XXX";
+if ( CheckVersion($DBversion) ) {
+    $dbh->do("ALTER TABLE aqorders ADD COLUMN order_vendornote MEDIUMTEXT AFTER notes;");
+    print "Upgrade to $DBversion done (Bug 9416 - We should have 2 kinds of notes for each order line\n";
+    SetVersion($DBversion);
+}
+
  =head1 FUNCTIONS
  
  =head2 TableExists($table)
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 62f1519..3ced8c1 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/addorderiso2709.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/addorderiso2709.tt
@@ -197,7 +197,7 @@
                              [% END %]
                          </li>
                          <li>
-                            <label for="notes">Notes: </label>
+                            <label for="notes">Internal note: </label>
                              <textarea id="notes" cols="30" rows="3" name="notes"></textarea>
                          </li>
                          <li><div class="hint">The 2 following fields are available for your own usage. They can be useful for statistical purposes</div>
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 67e299d..98235ea 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/basket.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/basket.tt
@@ -350,9 +350,14 @@
                                  [% 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>
+                                    <p class="ordernote"><strong>Internal note: </strong>[% books_loo.notes|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 %]
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..c3d2129 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 c261530..df39d31 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/neworderempty.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/neworderempty.tt
@@ -535,9 +535,13 @@ $(document).ready(function()
                  [% END %]
              </li>
              <li>
-                <label for="notes">Notes: </label>
+                <label for="notes">Internal note: </label>
                  <textarea id="notes" cols="30" rows="3" name="notes" >[% IF ( notes ) %][% notes %][% END %]</textarea>
              </li>
+	    <li>
+                <label for="notes">Vendor note: </label>
+                <textarea id="notes" 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>
                  <span id="sort1_zone">
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 67999e4..bc3a504 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/orderreceive.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/orderreceive.tt
@@ -315,8 +315,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 174a6bf..a183490 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/parcel.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/parcel.tt
@@ -202,7 +202,7 @@
                    <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 %]
@@ -210,10 +210,15 @@
                  [% 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>
+                    <p class="ordernote"><strong>Internal 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 %]&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>
                  <td>[% loop_order.quantity %]</td>
-- 
1.7.9.5

-- 
Mathieu Saby
Service d'Informatique Documentaire
Service Commun de Documentation
Université Rennes 2
Téléphone : 02 99 14 12 65
Courriel : mathieu.saby at univ-rennes2.fr



More information about the Koha-patches mailing list