Koha-clms/acqui
Martin Renvoize 1f5f91e649
Bug 40383: Add JSON representation to Koha::Edifact and JSON download to edimsg.pl
This patch implements a JSON representation of EDIFACT interchanges for enhanced
programmatic access and debugging capabilities.

Backend Changes:
- Add to_json() method to Koha::Edifact module
- Structured JSON output with header, messages array, and trailer
- Segment parsing with raw data, elements arrays, and line_id tracking
- Line item grouping using LIN segment identifiers

Frontend Changes:
- Add JSON download button to edimsg.pl page
- Support for ?format=json parameter and Accept: application/json header
- Proper HTTP content-type handling for JSON responses
- Error handling for missing messages in JSON format

JSON Structure:
{
  "header": "UNB+UNOC:3+...",
  "messages": [
    {
      "header": "UNH+1+QUOTES:D:93A:UN:EAN008'",
      "segments": [
        {
          "tag": "LIN",
          "raw": "LIN+1+1+9780552150040:EN'",
          "elements": ["1", "1", "9780552150040:EN"],
          "line_id": "1"
        }
      ],
      "trailer": "UNT+25+1'"
    }
  ],
  "trailer": "UNZ+1+1'"
}

Test plan:
1. Apply this patch
2. Ensure you have EDIFACT messages in your system
3. Go to Acquisitions > EDIFACT messages
4. Click "View message" for any message
5. Click the new "JSON" button
6. Verify JSON downloads with proper structure
7. Verify direct URL access with ?format=json parameter works
8. Test with Accept: application/json header

Signed-off-by: Hannah Dunne-Howrie <hdunne-howrie@westminster.gov.uk>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
2026-03-26 14:21:18 +01:00
..
acqui-home.pl Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
addorder.pl Bug 40680: Fix acqui scripts 2025-12-01 08:33:57 -07:00
addorderiso2709.pl Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
ajax-getauthvaluedropbox.pl Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
basket.pl Bug 39724: Remove GetSuggestionInfo from C4/Suggestions.pm 2026-03-05 08:34:04 -07:00
basketgroup.pl Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
basketheader.pl Bug 41076: Adjust our perl tidiness for v20250105 2026-02-05 09:03:51 -07:00
booksellers.pl Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
cancelorder.pl Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
check_budget_total.pl Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
check_uniqueness.pl Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
duplicate_orders.pl Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
edifactmsgs.pl Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
edimsg.pl Bug 40383: Add JSON representation to Koha::Edifact and JSON download to edimsg.pl 2026-03-26 14:21:18 +01:00
finishreceive.pl Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
histsearch.pl Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
invoice-files.pl Bug 41591: Prevent inline rendering of invoice files 2026-02-25 07:36:46 -07:00
invoice.pl Bug 40680: Fix acqui scripts 2025-12-01 08:33:57 -07:00
invoices.pl Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
lateorders-export.pl Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
lateorders.pl Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
moddeliverydate.pl Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
modordernotes.pl Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
neworderempty.pl Bug 39724: (follow-up) use the suggestion object in neworderempty.tt 2026-03-05 08:34:05 -07:00
newordersubscription.pl Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
newordersuggestion.pl Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
ordered.pl Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
orderreceive.pl Bug 39724: Remove GetSuggestionInfo from C4/Suggestions.pm 2026-03-05 08:34:04 -07:00
parcel.pl Bug 39724: Remove GetSuggestionInfo from C4/Suggestions.pm 2026-03-05 08:34:04 -07:00
parcels.pl Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
showorder.pl Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
spent.pl Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
transferorder.pl Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
uncertainprice.pl Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
vendor_issues.pl Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
vendors.pl Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00
z3950_search.pl Bug 40163: Fix several http addresses in the code docs 2025-09-23 16:21:29 -06:00