Bug 28640 - Add EDI order status to basket details display
Summary: Add EDI order status to basket details display
Status: CLOSED FIXED
Alias: None
Product: Koha
Classification: Unclassified
Component: Acquisitions (show other bugs)
Version: Main
Hardware: All All
: P5 - low enhancement (vote)
Assignee: Martin Renvoize
QA Contact: Kyle M Hall
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-06-30 12:27 UTC by Martin Renvoize
Modified: 2022-06-06 20:25 UTC (History)
4 users (show)

See Also:
Change sponsored?: ---
Patch complexity: ---
Documentation contact:
Documentation submission:
Text to go in the release notes:
Clarify the exact status of EDI orders on the basket details display, highlighting that a basket can be closed but pending or closed and sent for example.
Version(s) released in:
21.11.00


Attachments
Bug 28640: Expose EDI Status on basket details page (4.25 KB, patch)
2021-06-30 12:36 UTC, Martin Renvoize
Details | Diff | Splinter Review
Bug 28640: Unit tests for edi_order relation (2.03 KB, patch)
2021-06-30 13:27 UTC, Martin Renvoize
Details | Diff | Splinter Review
Bug 28640: Expose EDI Status on basket details page (4.45 KB, patch)
2021-06-30 13:27 UTC, Martin Renvoize
Details | Diff | Splinter Review
Bug 28640: Unit tests for edi_order relation (2.03 KB, patch)
2021-07-01 06:30 UTC, Martin Renvoize
Details | Diff | Splinter Review
Bug 28640: Expose EDI Status on basket details page (4.91 KB, patch)
2021-07-01 06:30 UTC, Martin Renvoize
Details | Diff | Splinter Review
Bug 28640: Unit tests for edi_order relation (2.14 KB, patch)
2021-07-01 10:42 UTC, Martin Renvoize
Details | Diff | Splinter Review
Bug 28640: Expose EDI Status on basket details page (4.96 KB, patch)
2021-07-01 10:42 UTC, Martin Renvoize
Details | Diff | Splinter Review
Bug 28640: Unit tests for edi_order relation (2.21 KB, patch)
2021-07-01 13:13 UTC, Kyle M Hall
Details | Diff | Splinter Review
Bug 28640: Expose EDI Status on basket details page (5.03 KB, patch)
2021-07-01 13:13 UTC, Kyle M Hall
Details | Diff | Splinter Review
Bug 28640: (QA follow-up) Prevent unit tests from failing (1.54 KB, patch)
2021-07-01 13:25 UTC, Kyle M Hall
Details | Diff | Splinter Review

Note You need to log in before you can comment on or make changes to this bug.
Description Martin Renvoize 2021-06-30 12:27:25 UTC
One can close the basket without going via the 'Create EDIFACT order' button and then wonder why the order has not proceeded.

We should add the EDI status to the basket page so end users can track the progress on a basket to an edi order and beyond.
Comment 1 Martin Renvoize 2021-06-30 12:36:51 UTC
Created attachment 122506 [details] [review]
Bug 28640: Expose EDI Status on basket details page

This patch adds the edi_order relationship method to
Koha::Acquisition::Basket to return the most recently attached
edi_message of type 'ORDER' for the basket.

NOTE: EDI currently returns raw DBIC results. I have opted to maintain
that approach here, but would like to work on upgradeing the
Koha::EDIFACT::Order class to be a subclass of Koha::Object at a later
date.

We then use this new relationship in acqui/basket to display the EDI
status for such baskets.

Test plan
1/ Setup a vendor with EDI Ordering enabled
2/ Add a new basket for the vendor.
3/ Note the new 'EDI status' field displays and reads 'Not ordered'
4/ Close the basker
5/ The 'EDI status' should continue to display 'Not ordered'
6/ Re-open the basket
7/ Close the basket via 'Create EDIFACT order'
8/ Navigate back to the now closed basket
9/ Note the 'EDI status' field now displays 'Pending' and the transfer
date.
10/ Progress the EDI order by running the edi_cron.pl script
11/ The EDI status field should now reflect that the message has been
sent.
Comment 2 Martin Renvoize 2021-06-30 13:27:13 UTC
Created attachment 122507 [details] [review]
Bug 28640: Unit tests for edi_order relation
Comment 3 Martin Renvoize 2021-06-30 13:27:16 UTC
Created attachment 122508 [details] [review]
Bug 28640: Expose EDI Status on basket details page

This patch adds the edi_order relationship method to
Koha::Acquisition::Basket to return the most recently attached
edi_message of type 'ORDER' for the basket.

NOTE: EDI currently returns raw DBIC results. I have opted to maintain
that approach here, but would like to work on upgradeing the
Koha::EDIFACT::Order class to be a subclass of Koha::Object at a later
date.

We then use this new relationship in acqui/basket to display the EDI
status for such baskets.

Test plan
1/ Setup a vendor with EDI Ordering enabled
2/ Add a new basket for the vendor.
3/ Note the new 'EDI status' field displays and reads 'Not ordered'
4/ Close the basker
5/ The 'EDI status' should continue to display 'Not ordered'
6/ Re-open the basket
7/ Close the basket via 'Create EDIFACT order'
8/ Navigate back to the now closed basket
9/ Note the 'EDI status' field now displays 'Pending' and the transfer
date.
10/ Progress the EDI order by running the edi_cron.pl script
11/ The EDI status field should now reflect that the message has been
sent.
Comment 4 Kyle M Hall 2021-06-30 17:07:14 UTC
Instead of just printing the value of edi_order.status in the template, please use and IF/ELSIF/ELSE block for all the possible statuses, so they may be translated.
Comment 5 Martin Renvoize 2021-07-01 06:30:24 UTC
Created attachment 122511 [details] [review]
Bug 28640: Unit tests for edi_order relation
Comment 6 Martin Renvoize 2021-07-01 06:30:28 UTC
Created attachment 122512 [details] [review]
Bug 28640: Expose EDI Status on basket details page

This patch adds the edi_order relationship method to
Koha::Acquisition::Basket to return the most recently attached
edi_message of type 'ORDER' for the basket.

NOTE: EDI currently returns raw DBIC results. I have opted to maintain
that approach here, but would like to work on upgradeing the
Koha::EDIFACT::Order class to be a subclass of Koha::Object at a later
date.

We then use this new relationship in acqui/basket to display the EDI
status for such baskets.

Test plan
1/ Setup a vendor with EDI Ordering enabled
2/ Add a new basket for the vendor.
3/ Note the new 'EDI status' field displays and reads 'Not ordered'
4/ Close the basker
5/ The 'EDI status' should continue to display 'Not ordered'
6/ Re-open the basket
7/ Close the basket via 'Create EDIFACT order'
8/ Navigate back to the now closed basket
9/ Note the 'EDI status' field now displays 'Pending' and the transfer
date.
10/ Progress the EDI order by running the edi_cron.pl script
11/ The EDI status field should now reflect that the message has been
sent.
Comment 7 Martin Renvoize 2021-07-01 06:32:41 UTC
(In reply to Kyle M Hall from comment #4)
> Instead of just printing the value of edi_order.status in the template,
> please use and IF/ELSIF/ELSE block for all the possible statuses, so they
> may be translated.

Thanks for testing.. I've now amended the patch with a SWITCH style block as requested.. I can envisage that moving into an include at a later date should we want to include these status details in other area's.. but I thought I'd leave that to another bug ;)
Comment 8 Martin Renvoize 2021-07-01 10:42:03 UTC
Created attachment 122513 [details] [review]
Bug 28640: Unit tests for edi_order relation

Test plan
1/ Run t/db_dependent/Koha/Acquisition/Basket.t

Signed-off-by: Benjamin Veasey <B.T.Veasey@lboro.ac.uk>
Comment 9 Martin Renvoize 2021-07-01 10:42:07 UTC
Created attachment 122514 [details] [review]
Bug 28640: Expose EDI Status on basket details page

This patch adds the edi_order relationship method to
Koha::Acquisition::Basket to return the most recently attached
edi_message of type 'ORDER' for the basket.

NOTE: EDI currently returns raw DBIC results. I have opted to maintain
that approach here, but would like to work on upgradeing the
Koha::EDIFACT::Order class to be a subclass of Koha::Object at a later
date.

We then use this new relationship in acqui/basket to display the EDI
status for such baskets.

Test plan
1/ Setup a vendor with EDI Ordering enabled
2/ Add a new basket for the vendor.
3/ Note the new 'EDI status' field displays and reads 'Not ordered'
4/ Close the basker
5/ The 'EDI status' should continue to display 'Not ordered'
6/ Re-open the basket
7/ Close the basket via 'Create EDIFACT order'
8/ Navigate back to the now closed basket
9/ Note the 'EDI status' field now displays 'Pending' and the transfer
date.
10/ Progress the EDI order by running the edi_cron.pl script
11/ The EDI status field should now reflect that the message has been
sent.

Signed-off-by: Benjamin Veasey <B.T.Veasey@lboro.ac.uk>
Comment 10 Martin Renvoize 2021-07-01 10:58:28 UTC
Tested by a Loughborough University and signed off.. patches attached.
Comment 11 Kyle M Hall 2021-07-01 13:13:24 UTC
Created attachment 122515 [details] [review]
Bug 28640: Unit tests for edi_order relation

Test plan
1/ Run t/db_dependent/Koha/Acquisition/Basket.t

Signed-off-by: Benjamin Veasey <B.T.Veasey@lboro.ac.uk>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Comment 12 Kyle M Hall 2021-07-01 13:13:35 UTC
Created attachment 122516 [details] [review]
Bug 28640: Expose EDI Status on basket details page

This patch adds the edi_order relationship method to
Koha::Acquisition::Basket to return the most recently attached
edi_message of type 'ORDER' for the basket.

NOTE: EDI currently returns raw DBIC results. I have opted to maintain
that approach here, but would like to work on upgradeing the
Koha::EDIFACT::Order class to be a subclass of Koha::Object at a later
date.

We then use this new relationship in acqui/basket to display the EDI
status for such baskets.

Test plan
1/ Setup a vendor with EDI Ordering enabled
2/ Add a new basket for the vendor.
3/ Note the new 'EDI status' field displays and reads 'Not ordered'
4/ Close the basker
5/ The 'EDI status' should continue to display 'Not ordered'
6/ Re-open the basket
7/ Close the basket via 'Create EDIFACT order'
8/ Navigate back to the now closed basket
9/ Note the 'EDI status' field now displays 'Pending' and the transfer
date.
10/ Progress the EDI order by running the edi_cron.pl script
11/ The EDI status field should now reflect that the message has been
sent.

Signed-off-by: Benjamin Veasey <B.T.Veasey@lboro.ac.uk>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Comment 13 Kyle M Hall 2021-07-01 13:25:43 UTC
Created attachment 122517 [details] [review]
Bug 28640: (QA follow-up) Prevent unit tests from failing

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Comment 14 Jonathan Druart 2021-07-26 10:48:17 UTC
Pushed to master for 21.11, thanks to everybody involved!
Comment 15 Kyle M Hall 2021-07-30 14:59:12 UTC
Enhancement not backported for 21.05