From e4347046b4a939be26232647143608846726b186 Mon Sep 17 00:00:00 2001 From: Ralph Soika Date: Thu, 27 Nov 2025 11:47:52 +0100 Subject: [PATCH] store uop data --- .../ksef/api/KSeFAuthManager.java | 23 ++++++++++++++ .../src/test/resources/ksef/result.json | 30 +++++++++---------- 2 files changed, 38 insertions(+), 15 deletions(-) diff --git a/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/ksef/api/KSeFAuthManager.java b/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/ksef/api/KSeFAuthManager.java index 5f4bb7a..f73356d 100644 --- a/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/ksef/api/KSeFAuthManager.java +++ b/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/ksef/api/KSeFAuthManager.java @@ -903,6 +903,29 @@ public class KSeFAuthManager { } } + // Extract UPO data from the first page + if (jsonObject.containsKey("upo")) { + JsonObject upoObject = jsonObject.getJsonObject("upo"); + if (upoObject.containsKey("pages")) { + JsonArray pagesArray = upoObject.getJsonArray("pages"); + if (pagesArray != null && !pagesArray.isEmpty()) { + JsonObject firstPage = pagesArray.getJsonObject(0); + + String referenceNumber = firstPage.getString("referenceNumber", ""); + String downloadUrl = firstPage.getString("downloadUrl", ""); + String expirationDate = firstPage.getString("downloadUrlExpirationDate", ""); + + logger.info("│ ├── UPO Reference Number: " + referenceNumber); + logger.info("│ ├── UPO Download URL: " + downloadUrl); + logger.info("│ ├── UPO URL Expiration: " + expirationDate); + + workitem.setItemValue("ksef.upo.referenceNumber", referenceNumber); + workitem.setItemValue("ksef.upo.downloadUrl", downloadUrl); + workitem.setItemValue("ksef.upo.downloadUrlExpirationDate", expirationDate); + } + } + } + } catch (Exception e) { logger.severe("├── ⚠️ Error parsing JSON response: " + e.getMessage()); throw new PluginException(KSeFAuthManager.class.getSimpleName(), ERROR_API, diff --git a/office-alexander-logistics-app/src/test/resources/ksef/result.json b/office-alexander-logistics-app/src/test/resources/ksef/result.json index 8857583..141f7ab 100644 --- a/office-alexander-logistics-app/src/test/resources/ksef/result.json +++ b/office-alexander-logistics-app/src/test/resources/ksef/result.json @@ -1,18 +1,18 @@ { - "invoices": [ - { - "ordinalNumber": 1, - "invoiceNumber": "266", - "referenceNumber": "20251127-EE-1870507000-F4367AAF39-8E", - "invoiceHash": "ex+T+FKIJJH81XAzQnHtE2CzaBpkHjKEG5GkmcURDWw=", - "invoicingDate": "2025-11-27T07:07:05.8630372+00:00", - "status": { - "code": 440, - "description": "Duplikat faktury", - "details": [ - "Duplikat faktury. Faktura o numerze KSeF: 9552521552-20251126-01000054CA98-3E została już prawidłowo przesłana do systemu w sesji: 20251126-SO-4C65114000-8008C5CA92-88" - ] + "status": { + "code": 200, + "description": "Sesja interaktywna przetworzona pomyślnie" + }, + "validUntil": "2025-11-27T22: 26: 26.4003396+00: 00", + "upo": { + "pages": [ + { + "referenceNumber": "20251127-EU-23D8959000-800D541F5E-5A", + "downloadUrl": "https: //ksef-test.mf.gov.pl/storage/05/20251127-so-23d85e0000-599367e87e-0e/session-upo/upo_00.xml?skoid=0e92608a-831d-404b-9945-197ed82a5dbc&sktid=647754c7-3974-4442-a425-c61341b61c69&skt=2025-11-26T05%3A03%3A27Z&ske=2025-12-03T05%3A03%3A27Z&sks=b&skv=2025- 01-05&sv=2025-01-05&st=2025-11-27T10%3A21%3A28Z&se=2025-11-30T10%3A26%3A28Z&sr=b&sp=r&sig=Jgs3aEx901q32WP5%2F%2BLvg3zdxAr5r0swJ9PLx1nS5Sk%3D", + "downloadUrlExpirationDate": "2025-11-30T10: 26: 28.167 5423+00: 00" } - } - ] + ] + }, + "invoiceCount": 1, + "successfulInvoiceCount": 1 } \ No newline at end of file