Bug 5336: (follow-up) multiple QA fixes

- add a message if the search returns no result
- keep selected values if the search returns no result (for fund and
  order status)
- remove plurals in order status
- move the order status column in the search results table

Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Passes all tests and QA script.
New tests also pass:
    t/db_dependent/Acquisition/close_reopen_basket.t

1) Database update - I end up with too many partials. My test cases:

 - New orders, basket still open
   OK Expected: new, Result: partial
 - Ordered orders, basket and basketgroup closed
   OK Expected: ordered, Result: partial
 - Partially received orders
   OK Expected: partial/complete, Result: partial/complete
 - Received orders
   OK: Expected: complete, Result: complete
 - Cancelled orders
   * cancelled from open basket before order
   OK: Expected: cancelled, Result: cancelled
   * cancelled from closed basket before receive
   OK: Expected: cancelled, Result: cancelled

All aqorders where updated with the correct status.

I have saved my 'pre-updatedatabase' and can repeat the test anytime you have a follow up.

2) Testing search functionality

  a) Order search - result list
  Order search shows a new column, I think it would be a bit better if the
  status there was singular instead of plural - new order, partially received
  order etc. - maybe we could even leave out the 'order'? (minor)

  The column seems a bit lost in the middle, not sure where it would make more
  sense (just saying)

  b) Order search - advanced search form
  The advanced search form now shows a new filter: Order status

  All new status can be searched.
  - an "empty" search will find all but cancelled orders
  - searching for cancelled orders works correctly and shows results
  Search works correctly, no regressions found.

  If no result is found a message is shown.
  All search input is kept, so you can modify your search terms easily.

3) Testing setting of status after applying the patch

   a) Create a new order with 2 items - status is new. OK
   b) Close the basket - status is ordered. OK
   c) Receive both items - status is completed. OK
   d) Undo receipt - status is ordered. OK
   e) Receive only 1 item - order is split up into 2 orders:
       - status is partial OK
       - status is completed OK
   f) Undo receipt of received item - order is combined into 1 again
       - status is ordered OK!
   g) Receive only 1 item again - status ordered/partial.
   h) Delete order.
       - status is completed
       - status is cancelled
      OK!

   i) Undo receipt of 1 item again.
      Refresh page.

This results in the following behaviour, that has been reported as
bug 10984. After refreshing the page follow message is shown:
  Cannot cancel receipt. Possible reasons :
    - The order line you trying to cancel was created from a partial
    receipt of another order line which is already received.
    Try to cancel this one first and retry.
    - The order line you trying to cancel was created from a partial
    receipt of another order line which has been deleted.
    Cancellation is not possible.
  BUT: The receipt is undone, but you are left with a
    line with 2 items, a cancellation date and the status ordered.
    Because of the cancellation date the order is not visible in pending orders.

The status is correct - so I feel this should not stop this patch.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
This commit is contained in:
Jonathan Druart 2013-10-02 09:58:14 +02:00 committed by Galen Charlton
parent 10548eba61
commit 489d480042
2 changed files with 52 additions and 18 deletions

View file

@ -149,7 +149,10 @@ $template->param(
basketgroupname => $basketgroupname,
from_placed_on => $from_date,
to_placed_on => $to_date,
orderstatus => $orderstatus,
budget_id => $budget,
bp_loop => $bp_loop,
search_done => $do_search,
debug => $debug || $input->param('debug') || 0,
uc(C4::Context->preference("marcflavour")) => 1
);

View file

@ -51,12 +51,36 @@
<li>
<label for="orderstatus">Order status: </label>
<select name="orderstatus" id="orderstatus">
<option value=""></option>
<option value="new">New orders</option>
<option value="ordered">Pending orders</option>
<option value="partial">Partially received orders</option>
<option value="complete">Received orders</option>
<option value="cancelled">Cancelled orders</option>
[% IF orderstatus == "" %]
<option value=""></option>
[% ELSE %]
<option value="" selected="selected"></option>
[% END %]
[% IF orderstatus == "new" %]
<option value="new" selected="selected">New</option>
[% ELSE %]
<option value="new">New</option>
[% END %]
[% IF orderstatus == "ordered" %]
<option value="ordered" selected="selected">Pending</option>
[% ELSE %]
<option value="ordered">Pending</option>
[% END %]
[% IF orderstatus == "partial" %]
<option value="partial" selected="selected">Partially received</option>
[% ELSE %]
<option value="partial">Partially received</option>
[% END %]
[% IF orderstatus == "complete" %]
<option value="complete" selected="selected">Received</option>
[% ELSE %]
<option value="complete">Received</option>
[% END %]
[% IF orderstatus == "cancelled" %]
<option value="cancelled" selected="selected">Cancelled</option>
[% ELSE %]
<option value="cancelled">Cancelled</option>
[% END %]
</select>
</li>
<li>
@ -66,7 +90,11 @@
[% FOREACH bp_loo IN bp_loop %]
<optgroup label="[% bp_loo.budget_period_description %]">
[% FOREACH h_loo IN bp_loo.hierarchy %]
[% IF h_loo.budget_id == budget_id %]
<option type="text" value="[% h_loo.budget_id %]" branchcode="[% h_loo.budget_branchcode %]" selected="selected">
[% ELSE %]
<option type="text" value="[% h_loo.budget_id %]" branchcode="[% h_loo.budget_branchcode %]">
[% END %]
[% h_loo.budget_display_name %]
</option>
[% END %]
@ -94,6 +122,7 @@
<thead>
<tr>
<th>Order line (parent)</th>
<th>Status</th>
<th>Basket</th>
<th>Basket group</th>
<th>Invoice number</th>
@ -101,7 +130,6 @@
<th>Vendor</th>
<th>Placed on</th>
<th>Received on</th>
<th>Status</th>
<th>Quantity received</th>
<th>Pending order</th>
<th>Unit cost</th>
@ -115,6 +143,15 @@
[% order.ordernumber %]
[% IF order.ordernumber != order.parent_ordernumber %]([% order.parent_ordernumber %])[% END %]
</td>
<td>
[% SWITCH order.orderstatus %]
[% CASE 'new' %]New
[% CASE 'ordered' %]Pending
[% CASE 'partial' %]Partially received
[% CASE 'complete' %]Received
[% CASE 'cancelled' %]Cancelled
[% END %]
</td>
<td>[% order.basketname %] (<a href="basket.pl?basketno=[% order.basketno %]">[% order.basketno %]</a>)</td>
<td>
[% IF ( order.basketgroupid ) %]
@ -140,15 +177,6 @@
[% order.datereceived | $KohaDates %]
[% END %]
</td>
<td>
[% SWITCH order.orderstatus %]
[% CASE 'new' %]New orders
[% CASE 'ordered' %]Pending orders
[% CASE 'partial' %]Partially received orders
[% CASE 'complete' %]Received orders
[% CASE 'cancelled' %]Cancelled orders
[% END %]
</td>
<td>[% order.quantityreceived %]</td>
<td>[% order.quantity %]</td>
<td>[% order.ecost %]</td>
@ -156,8 +184,11 @@
</tr>
[% END %]
</tbody>
</table>
</div>[% ELSE %][% END %]
</table>
</div>
[% ELSIF search_done %]
There is no order for this search.
[% END %]
</div>
</div>