RZP — Consolidated Test Suite Run Report

Translation note: The report navigation, summary, table labels and suite names are translated. Czech application menu names, window captions and literal expected messages are intentionally left in Czech where they are the system-under-test values verified by the E2E scenarios.

Module
RZP — Cost and Revenue Allocation
Test suite source
NEO_HEF/docs/Testovací sady/TS-RZP*.xlsx (defined in _definitions/RZP/*.json)
Scenario catalog
e2e-catalog.csv — mapping via ScenarioId + Epic
Master test cases
qa-testCase-template-rzp.csv — full steps in User_Steps
TRX (E2E)
C:UsersIVA~1.HOLAppDataLocalTempclaudec--Users-iva-holeckova-pro-testy-NEO-HEF-ostre-NEO-HEF4c2c521d-a79d-4566-91e0-a370b780a436scratchpadfinal-report-1011.trx
Owner / Year / DB
Bata (Company ID 44268050) / 2026 / fenix_1011_e2e (172.29.7.21\NEOHEF,14330)
Run date
2026-07-20 23:13
Author
Iva Holečková

Summary

29Test suites
165Tests run
165Passed
0Failed
100%Success rate
100 / 100Health score

Results by test suite

TS-RZP-S00-01 — VICO Owner Selection All passed

3 / 3 passed — TS-RZP-S00-01 — VICO Owner Selection.xlsx · JSON spec

ScenarioEpicTest methodStatusTimeError / Detail
SC-VICO-EXT-01 EP-VICO-EXT Pilot_OwnerSelection_ExternalComboSelection_WithoutPreferredIcoEnvVar Passed 524 ms
SC-VICO-STD-01 EP-VICO-STD Login_BataPreselected_ShellShowsBataInStatusBar Passed 0 ms
SC-VICO-SW-01 EP-VICO-SW Switch_OwnerFromMenu_DialogOpensAndOwnerChanges Passed 5,4 s

TS-RZP-S00-03 — FrmLogin Standard Authentication (Session Prerequisite) All passed

3 / 3 passed — TS-RZP-S00-03 — FrmLogin Standard Authentication (Session Prerequisite).xlsx · JSON spec

ScenarioEpicTest methodStatusTimeError / Detail
SC-BOOT-EXT-01 EP-BOOT-EXT Pilot_LauncherBootstrap_MapsApplicationFlow_BypassingLogin Passed 30,7 s
SC-FLOW-EXT-01 EP-FLOW-EXT Discovery_FullFlow_FromLauncherToTargetForm Passed 14,0 s
SC-LOGIN-01 EP-LOGIN-STD LoginStandard_TS001 Passed 0 ms

TS-RZP-S01-01 — Codebooks, top menu + year change All passed

5 / 5 passed — TS-RZP-S01-01 — Codebooks, top menu + year change.xlsx · JSON spec

ScenarioEpicTest methodStatusTimeError / Detail
SC-CIS-MENU-UI-CASCADE-01 EP-CISE-OWNER CodelistMenu_AfterUiOwnerSelectionOk_RefreshesShellMenu Passed 9,4 s
RZP1-CIS-TS001 EP-CISE-OWNER Switch_BataToCtu_CodelistMenuReRenders Passed 9,8 s
RZP1-CIS-TS002 EP-CISE-CL Codelist_OpenSyntetickeUcty_DialogOpensAndCloses Passed 4,0 s
RZP1-CIS-TS003 EP-MENU-STRUCT TopMenu_HasExpectedTopLevelAndSubItems Passed 11,0 s
RZP1-CIS-TS004 EP-VDAT-YR YearChange_To2024_PersistsAcrossReopen Passed 8,4 s

TS-RZP-S01-02 — Creating cost and revenue accounts All passed

7 / 7 passed — TS-RZP-S01-02 — Creating cost and revenue accounts.xlsx · JSON spec

ScenarioEpicTest methodStatusTimeError / Detail
RZP2-UCEC-TS001 EP-UCEC-CREATE CreateAccounts_PositiveAndOrdinalValidations Passed 27,2 s
RZP2-UCEC-TS002 EP-UCEC-CREATE CreateAccounts_PositiveAndOrdinalValidations Passed 27,2 s
RZP2-UCEC-TS003 EP-UCEC-CREATE CreateAccounts_PositiveAndOrdinalValidations Passed 27,2 s
RZP2-UCEC-TS004 EP-UCEC-CREATE CreateAccounts_PositiveAndOrdinalValidations Passed 27,2 s
RZP2-UCEC-TS005 EP-UCEC-CREATE CreateAccounts_PositiveAndOrdinalValidations Passed 27,2 s
RZP2-UCEC-TS006 EP-UCEC-CREATE CreateAccounts_PositiveAndOrdinalValidations Passed 27,2 s
RZP2-UCEC-TS007 EP-UCEC-CREATE CreateAccounts_PositiveAndOrdinalValidations Passed 27,2 s

TS-RZP-S01-03 — CRUD for cost and revenue accounts All passed

1 / 1 passed — TS-RZP-S01-03 — CRUD for cost and revenue accounts.xlsx · JSON spec

ScenarioEpicTest methodStatusTimeError / Detail
RZP3-UCEC-STANDALONE-TS002 EP-UCEC-CRUD AccountCodebook_EditEditCancelDelete_PersistsExpectedDbState Passed 20,4 s

TS-RZP-S01-04 — CRUD detail for cost and revenue accounts All passed

1 / 1 passed — TS-RZP-S01-04 — CRUD detail for cost and revenue accounts.xlsx · JSON spec

ScenarioEpicTest methodStatusTimeError / Detail
SC-UCED-CRUDB-01 EP-UCED-CRUDB AccountDetail_EditEditCancelDelete_PersistsExpectedDbState Passed 23,2 s

TS-RZP-S01-05 — Definition sentence All passed

5 / 5 passed — TS-RZP-S01-05 — Definition sentence.xlsx · JSON spec

ScenarioEpicTest methodStatusTimeError / Detail
SC-ROZD-EXT-01 EP-ROZD DefinitionCodebookForm_OpensFromMainMenu_ShowsExpectedCaptionAndGrid Passed 1,5 s
RZP1-ROZD-TS001 EP-ROZD NewDefinition_RequiredFieldValidations_ShowExpectedMessagesInOrder Passed 20,2 s
RZP1-ROZD-TS005 EP-ROZD CreateDefinition_ThenDuplicateYear_SavesAndRejectsDuplicate Passed 37,3 s
RZP1-ROZD-TS004 EP-ROZD NewDefinition_AccountSetButNoItem_ShowsMissingItemError Passed 18,5 s
RZP1-ROZD-TS006 EP-ROZD EditDefinition_SwapUzForOrg_PersistsSuAuOrg Passed 32,3 s

TS-RZP-S01-10 — Creating a new owner and selecting it in RZP (robust E2E) All passed

1 / 1 passed — TS-RZP-S01-10 — Creating a new owner and selecting it in RZP (robust E2E).xlsx · JSON spec

ScenarioEpicTest methodStatusTimeError / Detail
SC-MAJC-CRUDB-01 EP-MAJC-CRUDB OwnerMaintenance_CreateNewOwnerLink_PersistsToDb Passed 9,8 s

TS-RZP-S02-01 — Allocation recipe CRUD — header (E2E) All passed

13 / 13 passed — TS-RZP-S02-01 — Allocation recipe CRUD — header (E2E).xlsx · JSON spec

ScenarioEpicTest methodStatusTimeError / Detail
SC-PREC-001 EP-PREC-CRUD RecipeCodebookCrud_TS000_PrepareData Passed 2,6 s
▸ Step details (TC_ID: TC-E2E-001)
Preconditions
Uživatel má přístup k testovací DB a k Haifa aplikaci. Majitel Bata (Company ID 44268050) je založen. Pro rok 2026 zatím neexistuje testovací definiční věta ani rozpouštěcí předpis tohoto názvu.
Steps (Action / Data / Expected)
1. [SQL setup] Připoj se SQL klientem k testovací databázi. Data: Server = 172.29.7.21\NEOHEF,14330 Data: Database = fenix_1001 Data: User = Haifa Expected: Connection established. 2. [SQL setup] Free (majitel, rok) slot — smaž případnou zbytkovou TESTOVACÍ definici pro Baťa/2026 a její závislé řádky ve FK pořadí (idempotentní). Data: SQL: Data: DELETE FROM fenix.rzp_pred_hla WHERE id_pred IN (SELECT id_pred FROM fenix.rzp_pred WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE id_maj=10 AND rok=2026)); Data: DELETE FROM fenix.rzp_pred WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE id_maj=10 AND rok=2026); Data: DELETE FROM fenix.rzp_definice WHERE id_maj=10 AND rok=2026; Expected: Slot je volný pro vložení testovací definice. rzp_definice má unique (rok, id_maj), proto se uvolňuje celý slot; v testovací DB se pro něj produkční data nevyskytují — maže jen zbytková testovací data. 3. [SQL setup] Pre-flight: verify, že žádné zbytky neexistují. Data: SQL: Data: SELECT 'majitel Bata' AS k, COUNT(*) AS v FROM fenix.rzp_majitel WHERE ico=44268050 Data: UNION ALL SELECT 'def S02-01', COUNT(*) FROM fenix.rzp_definice WHERE nazev='TS S02-01 definice' Data: UNION ALL SELECT 'pred S02-01', COUNT(*) FROM fenix.rzp_pred WHERE nazev_pred LIKE 'TS001%' OR nazev_pred LIKE 'TS002%' OR nazev_pred LIKE 'TS004%'; Expected: majitel Bata = 1, ostatní řádky = 0 (žádné zbytky). 4. [SQL setup] Insert pomocnou definiční větu, na kterou se navážou testovací předpisy. ID se přidělí dynamicky jako MAX+1, aby nedocházelo ke kolizím s existujícími řádky. Data: SQL: Data: DECLARE @id_def INT = (SELECT ISNULL(MAX(id_def), 0) + 1 FROM fenix.rzp_definice); Data: Data: INSERT INTO fenix.rzp_definice (id_def, id_maj, rok, id_ucet, z_text, poradi, nazev, konstanta, popis) Data: VALUES (@id_def, 10, 2026, 28, '00000000000000', '0001-1-1-1-1-1-1-1-1-1-1-1-1', 'TS S02-01 definice', '----------------------------', 'Sada TS-RZP-S02-01'); Data: Data: SELECT @id_def AS id_def_pouzite; Expected: INSERT proběhne (1 řádek). Závěrečný SELECT vrátí použité id_def (jen pro orientaci — další kroky definici hledají podle názvu). 5. In the application select majitele Baťa (Úloha → Majitel → Výběr → IČ 44268050) a open Úloha → Rozpouštěcí předpis. Data: Majitel = Bata (Company ID 44268050) Data: Rok = 2026 Expected: Otevře se formulář s titulkem 'Číselník předpisů pro rozpouštění'. V poli Definiční věra je položka '2026 - TS S02-01 definice'. Tabulka předpisů (grid) je prázdná. Tlačítka Nový, Hledat, Tisk, Nápověda jsou aktivní; tlačítka Opravit, Vymazat, Detail jsou šedá.
Expected result
Otevře se formulář s titulkem 'Číselník předpisů pro rozpouštění'. V poli Definiční věra je položka '2026 - TS S02-01 definice'. Tabulka předpisů (grid) je prázdná. Tlačítka Nový, Hledat, Tisk, Nápověda jsou aktivní; tlačítka Opravit, Vymazat, Detail jsou šedá.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S02-01_RecipeCodebookCrud.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S02-01 — Allocation recipe CRUD — header (E2E).xlsx
SC-PREC-002 EP-PREC-CRUD RecipeCodebookCrud_TS001_CreateRecipe Passed 3,2 s
▸ Step details (TC_ID: TC-E2E-002)
Preconditions
TS-000 proběhlo. Formulář 'Rozpouštěcí předpisy' je otevřen, v ComboBoxu definiční věty je vybrána 'TS S02-01 definice'. Tabulka předpisů je prázdná.
Steps (Action / Data / Expected)
1. Klikni v menu na Rozpouštěcí předpisy → Nový (or press Ctrl+N). Expected: Pole Poř. číslo, Název, Počet stupňů a Poznámka se stanou editovatelnými a prázdnými. Skupina 'Rozpouštění' (radio buttons) je aktivní s předvybraným 'skutečnosti a plánu' . Tlačítko OK / Uložit je aktivní. Caption se změní na 'Nové pořízení nákladových a výnosových účtů'. 2. Vyplň pole formuláře. Data: Poř. číslo = 1 Data: Název = TS001 test předpis 2026 Data: Počet stupňů = 2 Data: Poznámka = Sada TS-RZP-S02-01, scénář TS-001 Data: Rozpouštění = pouze skutečnosti (S) Expected: Pole obsahují zadané hodnoty. Radio 'pouze skutečnosti' je vybrané, 'skutečnosti a plánu' je nevybrané. 3. Click the button OK / Uložit (Ctrl+S). Expected: The form returns do režimu prohlížení (caption 'Rozpouštěcí předpisy'). V tabulce předpisů se objeví nový řádek (Poř. č. = 1, Název = 'TS001 test předpis 2026', Počet stupňů = 2, Rozpouštění = 'S') označený jako vybraný. Tlačítka Opravit, Vymazat a Detail jsou nyní aktivní. 4. [SQL audit] Optionally verify, že předpis byl uložen. Data: SQL: Data: SELECT c_poradi, pocet, plan_skut, nazev_pred, popis FROM fenix.rzp_pred Data: WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE nazev='TS S02-01 definice'); Expected: The query returns 1 řádek: c_poradi=1, pocet='2', plan_skut='S', nazev_pred='TS001 test předpis 2026', popis='Sada TS-RZP-S02-01, scénář TS-001'.
Expected result
The query returns 1 řádek: c_poradi=1, pocet='2', plan_skut='S', nazev_pred='TS001 test předpis 2026', popis='Sada TS-RZP-S02-01, scénář TS-001'.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S02-01_RecipeCodebookCrud.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S02-01 — Allocation recipe CRUD — header (E2E).xlsx
SC-PREC-003 EP-PREC-CRUD RecipeCodebookCrud_TS002_EmptyOrderNumber Passed 3,3 s
▸ Step details (TC_ID: TC-E2E-003)
Preconditions
TS-000 proběhlo. Formulář je otevřen, ComboBox definiční věty = 'TS S02-01 definice'.
Steps (Action / Data / Expected)
1. Click Předpis → Nový. Expected: Pole formuláře se stanou editovatelnými a prázdnými. 2. Nech pole Poř. číslo prázdné. Vyplň Název. Data: Poř. číslo = (prázdné) Data: Název = TS002 prázdné číslo Data: Počet stupňů = 1 Expected: Pole Poř. číslo zůstává prázdné, ostatní vyplněna. 3. Click OK / Uložit (Ctrl+S). Expected: Displayed: modální dialog bez titulku a s hláškou doslova 'Není zadáno pořadové číslo.' s tlačítkem OK. 4. Klikni v dialogu na OK. Expected: The dialog closes. Formulář zůstává v režimu nového záznamu, vyplněná data jsou zachována, kurzor přejde na pole Poř. číslo. V tabulce předpisů nevznikl žádný nový řádek.
Expected result
The dialog closes. Formulář zůstává v režimu nového záznamu, vyplněná data jsou zachována, kurzor přejde na pole Poř. číslo. V tabulce předpisů nevznikl žádný nový řádek.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S02-01_RecipeCodebookCrud.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S02-01 — Allocation recipe CRUD — header (E2E).xlsx
SC-PREC-004 EP-PREC-CRUD RecipeCodebookCrud_TS003_EmptyName Passed 3,0 s
▸ Step details (TC_ID: TC-E2E-004)
Preconditions
TS-000 proběhlo. Formulář je otevřen v režimu nového záznamu.
Steps (Action / Data / Expected)
1. Click Předpis → Nový. Expected: Pole formuláře jsou prázdná. 2. Vyplň Poř. číslo a Počet, název nechej prázdný. Data: Poř. číslo = 2 Data: Název = (prázdné) Data: Počet stupňů = 1 Expected: Pole Název zůstává prázdné. 3. Click OK / Uložit. Expected: Displayed: modální dialog bez titulku a s hláškou doslova 'Není zadán název.' s tlačítkem OK. 4. Klikni v dialogu na OK. Expected: The dialog closes. Formulář zůstává v režimu nového záznamu, kurzor přejde na pole Název. V tabulce předpisů nevznikl řádek s Poř. č. = 2.
Expected result
The dialog closes. Formulář zůstává v režimu nového záznamu, kurzor přejde na pole Název. V tabulce předpisů nevznikl řádek s Poř. č. = 2.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S02-01_RecipeCodebookCrud.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S02-01 — Allocation recipe CRUD — header (E2E).xlsx
SC-PREC-005 EP-PREC-CRUD RecipeCodebookCrud_TS004_InvalidLevelCount Passed 3,4 s
▸ Step details (TC_ID: TC-E2E-005)
Preconditions
TS-000 proběhlo. Formulář je otevřen v režimu nového záznamu.
Steps (Action / Data / Expected)
1. Click Rozpouštěcí předpisy → Nový. Vyplň Poř. číslo a Název, Počet stupňů nastav na '0'. Data: Poř. číslo = 3 Data: Název = TS004 nulový počet Data: Počet stupňů = 0 Expected: Pole obsahují zadané hodnoty. 2. Click OK / Uložit. Expected: Displayed: modální dialog bez titulku a s hláškou doslova 'Není zadán počet stupňů pro rozpouštění. Zadejte číslo od 1 do 9.' s tlačítkem OK.
Expected result
Displayed: modální dialog bez titulku a s hláškou doslova 'Není zadán počet stupňů pro rozpouštění. Zadejte číslo od 1 do 9.' s tlačítkem OK.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S02-01_RecipeCodebookCrud.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S02-01 — Allocation recipe CRUD — header (E2E).xlsx
SC-PREC-006 EP-PREC-CRUD RecipeCodebookCrud_TS005_EditNote Passed 3,1 s
▸ Step details (TC_ID: TC-E2E-006)
Preconditions
TS-001 proběhlo. V tabulce předpisů existuje řádek 'TS001 test předpis 2026' (Poř. č. = 1). Pro tento předpis ještě neproběhlo žádné rozpouštění.
Steps (Action / Data / Expected)
1. V tabulce předpisů select řádek (Poř. č. = 1). Expected: Řádek je zvýrazněn. V poli Poznámka je text 'Sada TS-RZP-S02-01, scénář TS-001'. 2. Klikni v menu na Opravit (or press Ctrl+O). Expected: Pole Název předpisu, Počet stupňů a Poznámka se stanou editovatelnými. Pole Poř. číslo zůstává šedé (nelze měnit). Caption se změní na 'Oprava předpisu'. 3. Změň text v poli Poznámka. Data: Poznámka = Editováno v TS-005 Expected: Pole Poznámka obsahuje novou hodnotu 'Editováno v TS-005'. 4. Click OK / Uložit (Ctrl+S). Expected: The form returns do režimu prohlížení (caption 'Rozpouštěcí předpisy'). V poli Poznámka je nová hodnota.
Expected result
The form returns do režimu prohlížení (caption 'Rozpouštěcí předpisy'). V poli Poznámka je nová hodnota.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S02-01_RecipeCodebookCrud.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S02-01 — Allocation recipe CRUD — header (E2E).xlsx
SC-PREC-007 EP-PREC-CRUD RecipeCodebookCrud_TS006_PessimisticLock Manual ✓ manual
MANUALLY VERIFIED — iva.holeckova, 2026-06-22. Reason not automated: Requires two concurrent launcher sessions (sp_getapplock LockKeys.Recipe), which is outside the scope of a single LauncherSessionFixture. Procedure/evidence: QA sign-off by user iva.holeckova, manually executed according to manual-test-procedures.md #1.
▸ Step details (TC_ID: TC-E2E-007)
Preconditions
TS-001 proběhlo. V tabulce předpisů existuje řádek 'TS001 test předpis 2026'. Tester má možnost spustit aplikaci ve dvou souběžných instancích.
Steps (Action / Data / Expected)
1. Session A: V tabulce předpisů select 'TS001 test předpis 2026' a klikni na Opravit. V poli Poznámka začni psát (nedávej Uložit). Expected: Formulář v Session A je v režimu 'Oprava'. Pole Poznámka je editovatelné a obsahuje rozepsaný text. Session A zatím transakci nedokončila. 2. Session B (paralelně): open druhou instanci aplikace. Select stejný předpis a klikni Předpis → Opravit. Změň pole Poznámka a klikni OK / Uložit. Expected: V Session B se po stisku Uložit zobrazí buďto: (a) modální dialog s hláškou 'Operaci nelze provést: zdroj je právě uzamčen jiným uživatelem. Zkuste to znovu za chvíli.' s tlačítkem OK, NEBO (b) hláška o LockTimeout po 10 vteřinách. Tester zaznamená přesný text. 3. [SQL audit] V SQL klientu zkontroluj, že aplikační zámek je držen Session A. Data: SQL: SELECT request_session_id, resource_type, resource_description, request_mode FROM sys.dm_tran_locks WHERE resource_type='APPLICATION' AND resource_description LIKE '%Recipe%'; Expected: The query returns alespoň 1 řádek s request_mode='X' (exclusive) drženým Session A. 4. Session A: dokončí editaci (Uložit or Zrušit). Session B: zkus znovu Uložit. Expected: Po dokončení Session A se Session B podaří uložit změnu — formulář se vrátí do režimu prohlížení, v tabulce je aktualizovaný řádek.
Expected result
Po dokončení Session A se Session B podaří uložit změnu — formulář se vrátí do režimu prohlížení, v tabulce je aktualizovaný řádek.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S02-01_RecipeCodebookCrud.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S02-01 — Allocation recipe CRUD — header (E2E).xlsx
SC-PREC-008 EP-PREC-CRUD RecipeCodebookCrud_TS007_DeleteRecipe Passed 2,8 s
▸ Step details (TC_ID: TC-E2E-008)
Preconditions
TS-001 (případně TS-005) proběhlo. V tabulce předpisů existuje řádek 'TS001 test předpis 2026'. Pro tento předpis ještě neproběhlo žádné rozpouštění (žádný řádek v rzp_rozp).
Steps (Action / Data / Expected)
1. V tabulce předpisů select 'TS001 test předpis 2026' a klikni na Vymazat (Ctrl+Y). Expected: Displayed: potvrzovací dialog bez titulku a s hláškou doslova 'Chcete provést vymazání rozpouštěcího předpisu?' s tlačítky Ano / Ne. 2. Klikni v dialogu na Ano. Expected: Předpis zmizí z tabulky. Caption se vrátí na 'Rozpouštěcí předpisy'. Tabulka předpisů pro definici 'TS S02-01 definice' je opět prázdná. Tlačítka Opravit, Vymazat, Detail jsou zase šedá. 3. [SQL audit] Ověř kaskádový úklid. Data: SQL: Data: SELECT 'pred S02-01' AS k, COUNT(*) AS v FROM fenix.rzp_pred WHERE nazev_pred='TS001 test předpis 2026' Data: UNION ALL SELECT 'hla siroty', COUNT(*) FROM fenix.rzp_pred_hla WHERE id_pred NOT IN (SELECT id_pred FROM fenix.rzp_pred) Data: UNION ALL SELECT 'odkud siroty', COUNT(*) FROM fenix.rzp_pred_odkud WHERE id_pred_hla NOT IN (SELECT id_pred_hla FROM fenix.rzp_pred_hla); Expected: Všechny tři řádky vrátí 0 — žádný předpis ani sirotčí navazující řádky.
Expected result
Všechny tři řádky vrátí 0 — žádný předpis ani sirotčí navazující řádky.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S02-01_RecipeCodebookCrud.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S02-01 — Allocation recipe CRUD — header (E2E).xlsx
SC-PREC-010 EP-PREC-CRUD RecipeCodebookCrud_TS009_DuplicatePoradiInsert_ShowsMessage Passed 5,0 s
SC-PREC-011 EP-PREC-CRUD RecipeCodebookCrud_TS010_OrderNumberReadOnlyOnEdit Passed 2,8 s
SC-PREC-009 EP-PREC-CRUD RecipeCodebookCrud_TS011_CleanupData Passed 300 ms
▸ Step details (TC_ID: TC-E2E-009)
Preconditions
TS-007 proběhlo. Tabulka předpisů pro definici 'TS S02-01 definice' je prázdná.
Steps (Action / Data / Expected)
1. [SQL cleanup] Delete testovací data ve správném FK pořadí — předpisy (podle názvu i přes vazbu na definici), pak pomocnou definici. Data: SQL: Data: DELETE FROM fenix.rzp_pred_hla WHERE id_pred IN (SELECT id_pred FROM fenix.rzp_pred WHERE nazev_pred LIKE 'TS001%' OR nazev_pred LIKE 'TS002%' OR nazev_pred LIKE 'TS004%' OR id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE nazev='TS S02-01 definice')); Data: DELETE FROM fenix.rzp_pred WHERE nazev_pred LIKE 'TS001%' OR nazev_pred LIKE 'TS002%' OR nazev_pred LIKE 'TS004%' OR id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE nazev='TS S02-01 definice'); Data: DELETE FROM fenix.rzp_definice WHERE nazev='TS S02-01 definice' AND id_maj=10 AND rok=2026; Expected: Všechny DELETE proběhnou bez chyby (FK constraint není porušen). Po úklidu vrátí pre-flight i post-check 0. 2. [SQL cleanup] Pre-flight: verify, že žádný předpis ani import na pomocné definici neexistuje. Data: SQL: Data: SELECT 'pred' AS k, COUNT(*) AS v FROM fenix.rzp_pred WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE nazev='TS S02-01 definice') Data: UNION ALL SELECT 'rozp', COUNT(*) FROM fenix.rzp_rozp WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE nazev='TS S02-01 definice'); Expected: Oba dotazy vrátí 0. 3. [SQL cleanup] Final post-check. Data: SQL: Data: SELECT 'def S02-01' AS k, COUNT(*) AS v FROM fenix.rzp_definice WHERE nazev='TS S02-01 definice' Data: UNION ALL SELECT 'pred TS S02-01', COUNT(*) FROM fenix.rzp_pred WHERE nazev_pred LIKE 'TS001%' OR nazev_pred LIKE 'TS002%' OR nazev_pred LIKE 'TS004%' Data: UNION ALL SELECT 'majitel Bata', COUNT(*) FROM fenix.rzp_majitel WHERE ico=44268050; Expected: Řádky 'def S02-01' a 'pred TS S02-01' = 0. Řádek 'majitel Bata' = 1.
Expected result
Řádky 'def S02-01' a 'pred TS S02-01' = 0. Řádek 'majitel Bata' = 1.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S02-01_RecipeCodebookCrud.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S02-01 — Allocation recipe CRUD — header (E2E).xlsx
SC-PREC-EXT-01 EP-PREC-EXT Discovery_MapApplicationFlow_FromCleanStart Passed 64 ms
SC-PREC-EXTF-01 EP-PREC-EXTF RecipeCodebookForm_OpensFromMainMenu_ShowsExpectedCaption Passed 2,3 s

TS-RZP-S02-02 — Allocation recipe level CRUD (E2E) All passed

9 / 9 passed — TS-RZP-S02-02 — Allocation recipe level CRUD (E2E).xlsx · JSON spec

ScenarioEpicTest methodStatusTimeError / Detail
SC-PRED-001 EP-PRED-LEVEL RecipeLevelCrud_TS000_PrepareData Passed 2,6 s
▸ Step details (TC_ID: TC-E2E-010)
Preconditions
Uživatel má přístup k testovací DB a k Haifa aplikaci. Majitel Bata (Company ID 44268050) je založen. Pro rok 2026 zatím neexistuje testovací definice tohoto názvu ani předpis 'TS S02-02 předpis'.
Steps (Action / Data / Expected)
1. [SQL setup] Připoj se SQL klientem k testovací databázi. Data: Server = 172.29.7.21\NEOHEF,14330 Data: Database = fenix_1001 Data: User = Haifa Expected: Connection established. 2. [SQL setup] Free (majitel, rok) slot — smaž případnou zbytkovou TESTOVACÍ definici pro Baťa/2026 a její závislé řádky ve FK pořadí (idempotentní). Data: SQL: Data: DELETE FROM fenix.rzp_pred_hla WHERE id_pred IN (SELECT id_pred FROM fenix.rzp_pred WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE id_maj=10 AND rok=2026)); Data: DELETE FROM fenix.rzp_pred WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE id_maj=10 AND rok=2026); Data: DELETE FROM fenix.rzp_definice WHERE id_maj=10 AND rok=2026; Expected: Slot je volný pro vložení testovací definice. rzp_definice má unique (rok, id_maj), proto se uvolňuje celý slot; v testovací DB se pro něj produkční data nevyskytují — maže jen zbytková testovací data. 3. [SQL setup] Pre-flight: verify, že žádné zbytky neexistují. Data: SQL: Data: SELECT 'majitel Bata' AS k, COUNT(*) AS v FROM fenix.rzp_majitel WHERE ico=44268050 Data: UNION ALL SELECT 'def S02-02', COUNT(*) FROM fenix.rzp_definice WHERE nazev='TS S02-02 definice' Data: UNION ALL SELECT 'pred S02-02', COUNT(*) FROM fenix.rzp_pred WHERE nazev_pred='TS S02-02 předpis' Data: UNION ALL SELECT 'hla S02-02', COUNT(*) FROM fenix.rzp_pred_hla WHERE nazev_hla LIKE 'TS S02-02%'; Expected: majitel Bata = 1, ostatní = 0 (žádné zbytky). 4. [SQL setup] Insert pomocnou definici a hlavičku předpisu (bez stupňů). ID se přidělí dynamicky jako MAX+1, aby nedocházelo ke kolizím s existujícími řádky. Data: SQL: Data: DECLARE @id_def INT = (SELECT ISNULL(MAX(id_def), 0) + 1 FROM fenix.rzp_definice); Data: DECLARE @id_pred INT = (SELECT ISNULL(MAX(id_pred), 0) + 1 FROM fenix.rzp_pred); Data: Data: INSERT INTO fenix.rzp_definice (id_def, id_maj, rok, id_ucet, z_text, poradi, nazev, konstanta, popis) Data: VALUES (@id_def, 10, 2026, 28, '00000000000000', '0001-1-1-1-1-1-1-1-1-1-1-1-1', 'TS S02-02 definice', '----------------------------', 'Sada TS-RZP-S02-02'); Data: Data: INSERT INTO fenix.rzp_pred (id_pred, id_def, c_poradi, pocet, plan_skut, nazev_pred, popis) Data: VALUES (@id_pred, @id_def, 1, '4', 'S', 'TS S02-02 předpis', 'Hlavička pro testy stupňů'); Data: Data: SELECT @id_def AS id_def_pouzite, @id_pred AS id_pred_pouzite; Expected: Oba INSERTy proběhnou (po 1 řádku). Závěrečný SELECT vrátí použitá id_def a id_pred (jen pro orientaci — další kroky data hledají podle názvu). 5. In the application select majitele Baťa (Úloha → Majitel → Výběr → IČ 44268050) a open Úloha → Rozpouštěcí předpis. Data: Majitel = Bata (Company ID 44268050) Data: Rok = 2026 Expected: Otevře se formulář s titulkem 'Číselník předpisů pro rozpouštění'. V tabulce předpisů je viditelný nový řádek 'TS S02-02 předpis' (Poř. číslo = 1, Počet stupňů = 4, Rozpouštění = 'S').
Expected result
Otevře se formulář s titulkem 'Číselník předpisů pro rozpouštění'. V tabulce předpisů je viditelný nový řádek 'TS S02-02 předpis' (Poř. číslo = 1, Počet stupňů = 4, Rozpouštění = 'S').
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S02-02_RecipeLevelCrud.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S02-02 — Allocation recipe level CRUD (E2E).xlsx
SC-PRED-002 EP-PRED-LEVEL RecipeLevelCrud_TS001_OpenLevelDetail Passed 3,2 s
▸ Step details (TC_ID: TC-E2E-011)
Preconditions
TS-000 proběhlo. Ve formuláři 'Rozpouštěcí předpisy' je viditelný řádek 'TS S02-02 předpis'.
Steps (Action / Data / Expected)
1. V tabulce předpisů select řádek 'TS S02-02 předpis'. Expected: Řádek je zvýrazněn. Tlačítko Detail je aktivní (ne šedé). 2. Click the button Detail. Expected: Otevře se formulář s titulkem 'Jednotlivé stupně rozpouštěcího předpisu'. V horní části je viditelné jméno předpisu 'TS S02-02 předpis'. Tabulka stupňů (grid) je prázdná. Tlačítka 'Nový', 'Hledat', 'Tisk' a 'Nápověda' jsou aktivní; tlačítka 'Opravit', 'Vymazat', 'Detail' jsou šedá (nelze nic editovat, dokud není vybrán stupeň).
Expected result
Otevře se formulář s titulkem 'Jednotlivé stupně rozpouštěcího předpisu'. V horní části je viditelné jméno předpisu 'TS S02-02 předpis'. Tabulka stupňů (grid) je prázdná. Tlačítka 'Nový', 'Hledat', 'Tisk' a 'Nápověda' jsou aktivní; tlačítka 'Opravit', 'Vymazat', 'Detail' jsou šedá (nelze nic editovat, dokud není vybrán stupeň).
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S02-02_RecipeLevelCrud.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S02-02 — Allocation recipe level CRUD (E2E).xlsx
SC-PRED-003 EP-PRED-LEVEL RecipeLevelCrud_TS002_AddFirstLevel Passed 5,2 s
▸ Step details (TC_ID: TC-E2E-012)
Preconditions
TS-001 proběhlo. Formulář 'Rozpouštěcí předpis - jednotlivé stupně' je otevřen pro 'TS S02-02 předpis'. Tabulka stupňů je prázdná.
Steps (Action / Data / Expected)
1. Click the button Nový (or press Ctrl+N). Expected: Pole Stupeň, Název rozpouštěcího stupně, Počáteční období platnosti a Poznámka se stanou editovatelnými a prázdnými. Tlačítko Uložit je aktivní. Caption formuláře se změní na 'Nové pořízení'. 2. Vyplň pole Stupeň, Název a Poznámka. V ComboBoxu Období select '01'. Data: Stupeň = 1 Data: Název = Stupeň 1 — testy Data: Období = 1 (leden 2026) Data: Poznámka = TS-RZP-S02-02 scénář TS-002 Expected: Všechna pole obsahují zadané hodnoty. ComboBox Počáteční období platnosti zobrazuje '1'. 3. Click the button Uložit (or press Ctrl+S). Expected: The form returns do režimu prohlížení (caption 'Jednotlivé stupně rozpouštěcího předpisu'). V tabulce stupňů se objeví nový řádek (Předpis = S, Stupeň = 1, Název rozpouštěcího stupně = 'Stupeň 1 — testy', Období = 1) označený jako vybraný. Tlačítka Opravit, Vymazat a Detail jsou nyní aktivní. 4. [SQL audit] Optionally verify, že stupeň byl skutečně uložen. Data: SQL: Data: SELECT h.stupen, h.nazev_hla, h.obdobi, h.predpis FROM fenix.rzp_pred_hla h Data: JOIN fenix.rzp_pred p ON p.id_pred = h.id_pred Data: WHERE p.nazev_pred='TS S02-02 předpis' Data: ORDER BY h.stupen; Expected: The query returns 1 řádek: stupen='1', nazev_hla='Stupeň 1 — testy', obdobi=1, predpis='S' (zděděno z parent předpisu, Rozpouštění skutečnosti).
Expected result
The query returns 1 řádek: stupen='1', nazev_hla='Stupeň 1 — testy', obdobi=1, predpis='S' (zděděno z parent předpisu, Rozpouštění skutečnosti).
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S02-02_RecipeLevelCrud.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S02-02 — Allocation recipe level CRUD (E2E).xlsx
SC-PRED-004 EP-PRED-LEVEL RecipeLevelCrud_TS003_EditLevelName Passed 4,3 s
▸ Step details (TC_ID: TC-E2E-013)
Preconditions
TS-002 proběhlo. V tabulce stupňů existuje řádek (Stupeň = 1, Název = 'Stupeň 1 — testy'). Stupeň ještě není použit v žádném rozpouštění (rzp_rozp).
Steps (Action / Data / Expected)
1. V tabulce stupňů select řádek (Stupeň = 1). Expected: Řádek je zvýrazněn. V poli Název rozpouštěcího stupně je text 'Stupeň 1 — testy'. 2. Click the button Opravit (or press Ctrl+O). Expected: Pole Název rozpouštěcího stupně, Počáteční období platnosti a Poznámka se stanou editovatelnými. Pole Stupeň zůstává šedé (nelze měnit číslo stupně). Caption se změní na 'Oprava'. 3. Změň text v poli Název. Data: Název = Editováno v TS-003 Expected: Pole Název rozpouštěcího stupně obsahuje novou hodnotu 'Editováno v TS-003'. 4. Click the button Uložit (Ctrl+S). Expected: The form returns do režimu prohlížení. V tabulce stupňů řádek (Stupeň = 1) nyní zobrazuje Název rozpouštěcího stupně = 'Editováno v TS-003'.
Expected result
The form returns do režimu prohlížení. V tabulce stupňů řádek (Stupeň = 1) nyní zobrazuje Název rozpouštěcího stupně = 'Editováno v TS-003'.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S02-02_RecipeLevelCrud.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S02-02 — Allocation recipe level CRUD (E2E).xlsx
SC-PRED-005 EP-PRED-LEVEL RecipeLevelCrud_TS004_AddSecondLevel Passed 5,1 s
▸ Step details (TC_ID: TC-E2E-014)
Preconditions
TS-003 proběhlo. V tabulce stupňů existuje 1 řádek (Stupeň = 1).
Steps (Action / Data / Expected)
1. Click the button Nový. Expected: Pole se stanou editovatelnými a prázdnými. 2. Vyplň hodnoty pro 2. stupeň. Data: Stupeň = 2 Data: Název = Stupeň 2 — kaskáda Data: Období = 1 (leden 2026) Data: Poznámka = Expected: Pole obsahují zadané hodnoty. 3. Click Uložit (Ctrl+S). Expected: The form returns do režimu prohlížení. V tabulce stupňů jsou nyní 2 řádky v pořadí: 1. Stupeň 1 (Název rozpouštěcího stupně = 'Editováno v TS-003'), 2. Stupeň 2 (Název rozpouštěcího stupně = 'Stupeň 2 — kaskáda'). Nový řádek se Stupeň = 2 je označen jako vybraný. 4. [SQL audit] Optionally verify, že stupeň přibyl a hlavička předpisu se aktualizovala. Data: SQL: Data: SELECT stupen, nazev_hla FROM fenix.rzp_pred_hla Data: WHERE id_pred IN (SELECT id_pred FROM fenix.rzp_pred WHERE nazev_pred='TS S02-02 předpis') Data: ORDER BY stupen; Data: Data: SELECT COUNT(*) Data: FROM fenix.rzp_pred_hla h Data: JOIN fenix.rzp_pred p ON p.id_pred = h.id_pred Data: WHERE p.nazev_pred = 'TS S02-02 předpis'; Expected: První dotaz vrátí 2 řádky (stupen='1' a '2'). Druhý dotaz vrátí pocet='2' (počet stupňů v hlavičce se aktualizoval z '1' na '2').
Expected result
První dotaz vrátí 2 řádky (stupen='1' a '2'). Druhý dotaz vrátí pocet='2' (počet stupňů v hlavičce se aktualizoval z '1' na '2').
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S02-02_RecipeLevelCrud.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S02-02 — Allocation recipe level CRUD (E2E).xlsx
SC-PRED-006 EP-PRED-LEVEL RecipeLevelCrud_TS005_DuplicateLevel Passed 5,5 s
▸ Step details (TC_ID: TC-E2E-015)
Preconditions
TS-004 proběhlo. V tabulce stupňů existují 2 řádky (Stupeň = 1 a Stupeň = 2).
Steps (Action / Data / Expected)
1. Click Nový. Expected: Pole se stanou editovatelnými a prázdnými. 2. Vyplň hodnoty se Stupeň = 1 (záměrně duplicitní). Data: Stupeň = 1 Data: Název = Duplikát test Data: Období = 1 (leden 2026) Expected: Pole obsahují zadané hodnoty. 3. Click Uložit. Expected: Displayed: modální dialog bez titulku a s hláškou doslova 'Stupeň rozpouštěcího předpisu již existuje, nelze provést uložení.' s tlačítkem OK. 4. Klikni v dialogu na OK. Expected: The dialog closes. Formulář zůstává v režimu nového záznamu, vyplněná data (Stupeň = 1, Název rozpouštěcího stupně = 'Duplikát test') jsou zachována. V tabulce stupňů jsou stále jen 2 řádky (žádný nový řádek nepřibyl).
Expected result
The dialog closes. Formulář zůstává v režimu nového záznamu, vyplněná data (Stupeň = 1, Název rozpouštěcího stupně = 'Duplikát test') jsou zachována. V tabulce stupňů jsou stále jen 2 řádky (žádný nový řádek nepřibyl).
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S02-02_RecipeLevelCrud.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S02-02 — Allocation recipe level CRUD (E2E).xlsx
SC-PRED-007 EP-PRED-LEVEL RecipeLevelCrud_TS006_NonContiguousLevel Passed 7,1 s
▸ Step details (TC_ID: TC-E2E-016)
Preconditions
TS-004 proběhlo. V tabulce stupňů existují 2 řádky (Stupeň = 1 a 2). Stupeň 3 neexistuje.
Steps (Action / Data / Expected)
1. Click Nový a vyplň Stupeň = 4 (mimo posloupnost). Data: Stupeň = 4 Data: Název = Mimo posloupnost Data: Období = 1 (leden 2026) Expected: Pole obsahují zadané hodnoty. 2. Click OK. Expected: Stupeň 4 se uloží a zobrazí v seznamu stupňů. Žádné upozornění se nezobrazí.
Expected result
Stupeň 4 se uloží a zobrazí v seznamu stupňů. Žádné upozornění se nezobrazí.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S02-02_RecipeLevelCrud.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S02-02 — Allocation recipe level CRUD (E2E).xlsx
SC-PRED-008 EP-PRED-LEVEL RecipeLevelCrud_TS007_DeleteSecondLevel Passed 3,9 s
▸ Step details (TC_ID: TC-E2E-017)
Preconditions
TS-004 proběhlo. V tabulce stupňů existují 3 řádky (Stupeň = 1, 2 a 4). Stupeň 2 ještě není použit v rozpouštění.
Steps (Action / Data / Expected)
1. V tabulce stupňů select řádek (Stupeň = 2). Expected: Řádek je zvýrazněn. 2. Click the button Vymazat (or press Ctrl+Y). Expected: Displayed: potvrzovací dialog bez titulku a s hláškou doslova 'Chcete provést vymazání stupně rozpouštěcího předpisu?' s tlačítky Ano / Ne. 3. Klikni v dialogu na Ano. Expected: V tabulce stupňů zmizí řádek (Stupeň = 2). Zůstává dva řádky (Stupeň = 1, Název = 'Editováno v TS-003') a (Stupeň = 4, Název = 'Mimo posloupnost'). 4. [SQL audit] Optionally verify, že hlavička předpisu se aktualizovala. Data: SQL: Data: SELECT stupen, nazev_hla FROM fenix.rzp_pred_hla Data: WHERE id_pred IN (SELECT id_pred FROM fenix.rzp_pred WHERE nazev_pred='TS S02-02 předpis') Data: ORDER BY stupen; Data: Data: SELECT COUNT(*) Data: FROM fenix.rzp_pred_hla h Data: JOIN fenix.rzp_pred p ON p.id_pred = h.id_pred Data: WHERE p.nazev_pred = 'TS S02-02 předpis'; Expected: První dotaz vrátí 2 řádky (stupen='1' a '4'). Druhý dotaz vrátí pocet='2' (klesl ze 3 na 2).
Expected result
První dotaz vrátí 2 řádky (stupen='1' a '4'). Druhý dotaz vrátí pocet='2' (klesl ze 3 na 2).
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S02-02_RecipeLevelCrud.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S02-02 — Allocation recipe level CRUD (E2E).xlsx
SC-PRED-009 EP-PRED-LEVEL RecipeLevelCrud_TS008_CleanupData Passed 300 ms
▸ Step details (TC_ID: TC-E2E-018)
Preconditions
Sada proběhla. V DB jsou pomocné řádky: rzp_definice (nazev='TS S02-02 definice'), rzp_pred (nazev_pred='TS S02-02 předpis'), rzp_pred_hla (zbylé stupně).
Steps (Action / Data / Expected)
1. [SQL cleanup] Pre-flight: verify, že žádné rozpouštění na pomocné definici neexistuje. Data: SQL: SELECT COUNT(*) AS v Data: FROM fenix.rzp_rozp r Data: WHERE r.id_def IN ( Data: SELECT d.id_def Data: FROM fenix.rzp_definice d Data: WHERE d.nazev = 'TS S02-02 definice' Data: AND d.id_maj = 10 Data: AND d.rok = 2026 Data: ) Data: AND r.id_pred IN ( Data: SELECT p.id_pred Data: FROM fenix.rzp_pred p Data: WHERE p.nazev_pred = 'TS S02-02 předpis' Data: AND p.id_def IN ( Data: SELECT d.id_def Data: FROM fenix.rzp_definice d Data: WHERE d.nazev = 'TS S02-02 definice' Data: AND d.id_maj = 10 Data: AND d.rok = 2026 Data: ) Data: ); Expected: The query returns 0. 2. [SQL cleanup] Delete testovací data v správném pořadí. Data: SQL: Data: DELETE FROM fenix.rzp_pred_hla WHERE id_pred IN (SELECT id_pred FROM fenix.rzp_pred WHERE nazev_pred='TS S02-02 předpis'); Data: DELETE FROM fenix.rzp_pred WHERE nazev_pred='TS S02-02 předpis'; Data: DELETE FROM fenix.rzp_definice WHERE nazev='TS S02-02 definice' AND id_maj=10 AND rok=2026; Expected: Všechny DELETE proběhnou bez chyby. 3. [SQL cleanup] Final post-check. Data: SQL: Data: SELECT 'hla S02-02' AS k, COUNT(*) AS v Data: FROM fenix.rzp_pred_hla h Data: JOIN fenix.rzp_pred p ON p.id_pred = h.id_pred Data: JOIN fenix.rzp_definice d ON d.id_def = p.id_def Data: WHERE d.nazev = 'TS S02-02 definice' Data: AND d.id_maj = 10 Data: AND d.rok = 2026 Data: UNION ALL Data: SELECT 'pred S02-02', COUNT(*) Data: FROM fenix.rzp_pred p Data: JOIN fenix.rzp_definice d ON d.id_def = p.id_def Data: WHERE p.nazev_pred = 'TS S02-02 předpis' Data: AND d.nazev = 'TS S02-02 definice' Data: AND d.id_maj = 10 Data: AND d.rok = 2026 Data: UNION ALL Data: SELECT 'def S02-02', COUNT(*) Data: FROM fenix.rzp_definice Data: WHERE nazev = 'TS S02-02 definice' Data: AND id_maj = 10 Data: AND rok = 2026 Data: UNION ALL Data: SELECT 'majitel Bata', COUNT(*) Data: FROM fenix.rzp_majitel Data: WHERE ico = 44268050; Expected: Řádky 'hla S02-02', 'pred S02-02' a 'def S02-02' = 0. Řádek 'majitel Bata' = 1. Sada je idempotentní.
Expected result
Řádky 'hla S02-02', 'pred S02-02' a 'def S02-02' = 0. Řádek 'majitel Bata' = 1. Sada je idempotentní.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S02-02_RecipeLevelCrud.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S02-02 — Allocation recipe level CRUD (E2E).xlsx

TS-RZP-S02-03 — Source account CRUD FROM an allocation recipe (E2E) All passed

8 / 8 passed — TS-RZP-S02-03 — Source account CRUD FROM an allocation recipe (E2E).xlsx · JSON spec

ScenarioEpicTest methodStatusTimeError / Detail
SC-PREO-001 EP-PREO-CRUD RecipeSourceCrud_TS000_PrepareData Passed 1,0 s
▸ Step details (TC_ID: TC-E2E-019)
Preconditions
Uživatel má přístup k testovací DB a k Haifa aplikaci. Majitel Bata (Company ID 44268050) je založen. Pro rok 2026 zatím neexistují testovací data.
Steps (Action / Data / Expected)
1. [SQL setup] Připoj se SQL klientem k testovací databázi. Data: Server = 172.29.7.21\NEOHEF,14330 Data: Database = fenix_1001 Data: User = Haifa Expected: Connection established. 2. [SQL setup] Free (majitel, rok) slot — smaž případnou zbytkovou TESTOVACÍ definici pro Baťa/2026 a její závislé řádky ve FK pořadí (idempotentní). Data: SQL: Data: DELETE FROM fenix.rzp_pred_kam WHERE id_pred_odkud IN (SELECT id_pred_odkud FROM fenix.rzp_pred_odkud WHERE id_pred_hla IN (SELECT id_pred_hla FROM fenix.rzp_pred_hla WHERE id_pred IN (SELECT id_pred FROM fenix.rzp_pred WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE id_maj=10 AND rok=2026)))); Data: DELETE FROM fenix.rzp_pred_odkud WHERE id_pred_hla IN (SELECT id_pred_hla FROM fenix.rzp_pred_hla WHERE id_pred IN (SELECT id_pred FROM fenix.rzp_pred WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE id_maj=10 AND rok=2026))); Data: DELETE FROM fenix.rzp_pred_hla WHERE id_pred IN (SELECT id_pred FROM fenix.rzp_pred WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE id_maj=10 AND rok=2026)); Data: DELETE FROM fenix.rzp_pred WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE id_maj=10 AND rok=2026); Data: DELETE FROM fenix.rzp_definice WHERE id_maj=10 AND rok=2026; Expected: Slot je volný pro vložení testovací definice. rzp_definice má unique (rok, id_maj), proto se uvolňuje celý slot; v testovací DB se pro něj produkční data nevyskytují — maže jen zbytková testovací data. 3. [SQL setup] Pre-flight: verify, že žádné zbytky neexistují. Data: SQL: Data: SELECT 'def S02-03' AS k, COUNT(*) AS v FROM fenix.rzp_definice WHERE nazev='TS S02-03 definice' Data: UNION ALL SELECT 'pred S02-03', COUNT(*) FROM fenix.rzp_pred WHERE nazev_pred='TS S02-03 předpis' Data: UNION ALL SELECT 'hla S02-03', COUNT(*) FROM fenix.rzp_pred_hla h JOIN fenix.rzp_pred p ON p.id_pred=h.id_pred WHERE p.nazev_pred='TS S02-03 předpis'; Expected: Všechny řádky vrátí 0. 4. [SQL setup] Insert pomocnou definici, předpis a 1 stupeň. ID se přidělí dynamicky jako MAX+1, aby nedocházelo ke kolizím s existujícími řádky. Data: SQL: Data: DECLARE @id_def INT = (SELECT ISNULL(MAX(id_def), 0) + 1 FROM fenix.rzp_definice); Data: DECLARE @id_pred INT = (SELECT ISNULL(MAX(id_pred), 0) + 1 FROM fenix.rzp_pred); Data: DECLARE @id_pred_hla INT = (SELECT ISNULL(MAX(id_pred_hla), 0) + 1 FROM fenix.rzp_pred_hla); Data: Data: INSERT INTO fenix.rzp_definice (id_def, id_maj, rok, id_ucet, z_text, poradi, nazev, konstanta, popis) Data: VALUES (@id_def, 10, 2026, 28, '00000000000000', '000102-1-1-1-1-1-1-1-1-1-1-1', 'TS S02-03 definice', '----------------------------', 'Sada TS-RZP-S02-03'); Data: Data: INSERT INTO fenix.rzp_pred (id_pred, id_def, c_poradi, pocet, plan_skut, nazev_pred, popis) Data: VALUES (@id_pred, @id_def, 1, '1', 'S', 'TS S02-03 předpis', 'Hlavička pro testy ODKUD'); Data: Data: INSERT INTO fenix.rzp_pred_hla (id_pred_hla, id_pred, obdobi, predpis, stupen, nazev_hla, popis) Data: VALUES (@id_pred_hla, @id_pred, 1, 'S', '1', 'Stupeň 1 — TS S02-03', ''); Data: Data: SELECT @id_def AS id_def_pouzite, @id_pred AS id_pred_pouzite, @id_pred_hla AS id_pred_hla_pouzite; Expected: Všechny tři INSERTy proběhnou (celkem 3 řádky). Závěrečný SELECT vrátí 1 řádek s konkrétními ID, která testovací data dostala (slouží pro orientaci, žádný další krok je nepoužívá — všechno se hledá podle názvu). 5. In the application select majitele Baťa (Úloha → Výběr majitele → IČ 44268050) a open Úloha → Rozpouštěcí předpisy. Data: Majitel = Bata (Company ID 44268050) Data: Rok = 2026 Expected: Otevře se formulář 'Rozpouštěcí předpisy'. V tabulce je vidět řádek 'TS S02-03 předpis' (Poř. č. = 1). 6. Select řádek 'TS S02-03 předpis' a klikni na tlačítko Detail. Pak select 'Stupeň 1 — TS S02-03' a klikni znovu na Detail. Expected: Otevře se formulář s titulkem 'Předpis pro rozpouštění ODKUD'. V horní části je viditelné jméno předpisu a stupně. Tabulka zdrojových účtů (grid) je prázdná. Aktivní jsou tlačítka Nový, Hledat, Tisk, Nápověda; tlačítka Opravit, Vymazat, Detail jsou šedá.
Expected result
Otevře se formulář s titulkem 'Předpis pro rozpouštění ODKUD'. V horní části je viditelné jméno předpisu a stupně. Tabulka zdrojových účtů (grid) je prázdná. Aktivní jsou tlačítka Nový, Hledat, Tisk, Nápověda; tlačítka Opravit, Vymazat, Detail jsou šedá.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S02-03_RecipeSourceCrud.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S02-03 — Source account CRUD FROM an allocation recipe (E2E).xlsx
SC-PREO-002 EP-PREO-CRUD RecipeSourceCrud_TS001_CreateSourceAccount_WritesToDb Passed 13,4 s
▸ Step details (TC_ID: TC-E2E-020)
Preconditions
TS-000 proběhlo. Formulář 'Předpis pro rozpouštění ODKUD' je otevřen. Tabulka zdrojových účtů je prázdná.
Steps (Action / Data / Expected)
1. Click the button Nový (Ctrl+N). Expected: Vstupní textboxy pro dimenze (SU, AU, OD, PA, NP, UZ, ORGC) a Poznámka se stanou editovatelnými a prázdnými. Tlačítko OK je aktivní. 2. Vyplň dimenzi SU. Data: Syntetický účet (SU) = 501 Expected: Pole SU obsahuje '501'. Ostatní pole zůstávají prázdná (volitelné dimenze). 3. Vyplň pole Poznámka. Data: Poznámka = Sada TS-RZP-S02-03, scénář TS-001 — zdrojový účet SU=501 Expected: Pole Poznámka obsahuje zadaný text. 4. Click the button OK / Uložit (Ctrl+S). Expected: The form returns do režimu prohlížení. V tabulce zdrojových účtů se objeví nový řádek (Syntetický účet = 501) označený jako vybraný. Tlačítka Opravit, Vymazat a Detail (přechod do KAM) jsou nyní aktivní. 5. [SQL audit] Optionally verify, že zdrojový účet byl uložen. Data: SQL: Data: SELECT o.id_pred_odkud, k.su, k.au, k.uz, o.popis Data: FROM fenix.rzp_pred_odkud o Data: JOIN fenix.rzp_konto k ON k.id_konto=o.id_konto Data: WHERE o.id_pred_hla IN (SELECT id_pred_hla FROM fenix.rzp_pred_hla h JOIN fenix.rzp_pred p ON p.id_pred=h.id_pred WHERE p.nazev_pred='TS S02-03 předpis'); Expected: The query returns 1 řádek se SU='501', AU='XX' (nezadáno), uz=0, popis='Sada TS-RZP-S02-03, scénář TS-001 — zdrojový účet SU=501'.
Expected result
The query returns 1 řádek se SU='501', AU='XX' (nezadáno), uz=0, popis='Sada TS-RZP-S02-03, scénář TS-001 — zdrojový účet SU=501'.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S02-03_RecipeSourceCrud.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S02-03 — Source account CRUD FROM an allocation recipe (E2E).xlsx
SC-PREO-003 EP-PREO-CRUD RecipeSourceCrud_TS002to006_NegativeEditDelete_SingleSession Passed 26,9 s
▸ Step details (TC_ID: TC-E2E-021)
Preconditions
TS-000 proběhlo. Formulář 'Předpis pro rozpouštění ODKUD' je otevřen v režimu nového záznamu.
Steps (Action / Data / Expected)
1. Click Nový. Expected: Vstupní pole se stanou editovatelnými a prázdnými. 2. Nech pole SU prázdné. Vyplň jinou dimenzi (např. UZ). Data: SU = (prázdné) Data: UZ = 00012345 Data: Poznámka = TS-002 chybějící SU Expected: Pole SU zůstává prázdné, UZ obsahuje hodnotu. 3. Click OK / Uložit. Expected: Displayed: modální dialog s hláškou doslova 'Není vyplněna položka 'su'.' s tlačítkem OK. 4. Klikni v dialogu na OK. Expected: The dialog closes. Formulář zůstává v režimu nového záznamu, vyplněná data (UZ) jsou zachována, kurzor přejde na pole SU. V tabulce zdrojových účtů nevznikl žádný nový řádek.
Expected result
The dialog closes. Formulář zůstává v režimu nového záznamu, vyplněná data (UZ) jsou zachována, kurzor přejde na pole SU. V tabulce zdrojových účtů nevznikl žádný nový řádek.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S02-03_RecipeSourceCrud.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S02-03 — Source account CRUD FROM an allocation recipe (E2E).xlsx
SC-PREO-004 EP-PREO-CRUD RecipeSourceCrud_TS002to006_NegativeEditDelete_SingleSession Passed 26,9 s
▸ Step details (TC_ID: TC-E2E-022)
Preconditions
TS-001 proběhlo. V tabulce zdrojových účtů existuje řádek (SU=501).
Steps (Action / Data / Expected)
1. Click Nový. Expected: Vstupní pole jsou prázdná. 2. Vyplň dimenzi SU stejně jako v TS-001. Data: Syntetický účet (SU) = 501 Data: Poznámka = TS-003 duplikát Expected: Pole obsahují zadané hodnoty. 3. Click OK / Uložit. Expected: Displayed: modální dialog s hláškou doslova 'Nelze vložit již existující větu.' s tlačítkem OK. 4. Klikni v dialogu na OK. Expected: The dialog closes. V tabulce zdrojových účtů je stále jen 1 řádek (z TS-001). Žádný duplicitní záznam.
Expected result
The dialog closes. V tabulce zdrojových účtů je stále jen 1 řádek (z TS-001). Žádný duplicitní záznam.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S02-03_RecipeSourceCrud.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S02-03 — Source account CRUD FROM an allocation recipe (E2E).xlsx
SC-PREO-005 EP-PREO-CRUD RecipeSourceCrud_TS002to006_NegativeEditDelete_SingleSession Passed 26,9 s
▸ Step details (TC_ID: TC-E2E-023)
Preconditions
TS-001 proběhlo. V tabulce zdrojových účtů existuje řádek (SU=501) s poznámkou 'Sada TS-RZP-S02-03, scénář TS-001 — zdrojový účet SU=501'.
Steps (Action / Data / Expected)
1. V tabulce zdrojových účtů select řádek (SU = 501). Expected: Řádek je zvýrazněn. V poli Poznámka je viditelný původní text. 2. Click Opravit (Ctrl+O). Expected: Pole Poznámka se stane editovatelné. Caption se změní na 'Oprava'. 3. Změň text v poli Poznámka. Data: Poznámka = Editováno v TS-004 Expected: Pole Poznámka obsahuje novou hodnotu 'Editováno v TS-004'. 4. Click OK / Uložit. Expected: The form returns do režimu prohlížení. V tabulce zdrojových účtů řádek (SU = 501) zobrazuje aktualizovanou poznámku.
Expected result
The form returns do režimu prohlížení. V tabulce zdrojových účtů řádek (SU = 501) zobrazuje aktualizovanou poznámku.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S02-03_RecipeSourceCrud.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S02-03 — Source account CRUD FROM an allocation recipe (E2E).xlsx
SC-PREO-006 EP-PREO-CRUD RecipeSourceCrud_TS002to006_NegativeEditDelete_SingleSession Passed 26,9 s
▸ Step details (TC_ID: TC-E2E-024)
Preconditions
TS-000 proběhlo. Formulář je otevřen, žádný řádek v tabulce zdrojových účtů zatím není vybrán (např. po cancel editace).
Steps (Action / Data / Expected)
1. Click prázdnou oblast pod posledním řádkem v tabulce zdrojových účtů (zruš výběr). Expected: Žádný řádek není zvýrazněn. Tlačítka Opravit, Vymazat, Detail mohou být šedá. 2. Pokud je tlačítko Vymazat aktivní, klikni na něj. Pokud je šedé, scénář potvrzuje obrannou logiku. Expected: Buďto: (a) zobrazí se modální dialog s hláškou 'Není vybrán zdrojový účet k vymazání.' a tlačítkem OK; NEBO (b) tlačítko Vymazat je zašedlé, nelze ho stisknout. Tester zaznamená variantu. 3. Pokud variant A — klikni v dialogu na OK. Expected: The dialog closes. V tabulce zdrojových účtů nedošlo k žádné změně.
Expected result
The dialog closes. V tabulce zdrojových účtů nedošlo k žádné změně.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S02-03_RecipeSourceCrud.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S02-03 — Source account CRUD FROM an allocation recipe (E2E).xlsx
SC-PREO-007 EP-PREO-CRUD RecipeSourceCrud_TS002to006_NegativeEditDelete_SingleSession Passed 26,9 s
▸ Step details (TC_ID: TC-E2E-025)
Preconditions
TS-001 a TS-004 proběhly. V tabulce zdrojových účtů existuje řádek (SU=501). Pro tento zdrojový účet neexistují cílové účty (rzp_pred_kam).
Steps (Action / Data / Expected)
1. V tabulce zdrojových účtů select řádek (SU=501). Expected: Řádek je zvýrazněn. 2. Click the button Vymazat (Ctrl+Y). Expected: Displayed: potvrzovací dialog (or proběhne mazání bez potvrzení — záleží na legacy parity). Tester zaznamená přesný text. 3. Pokud se zobrazil potvrzovací dialog, klikni na Ano. Expected: Řádek (SU=501) zmizí z tabulky zdrojových účtů. Tabulka je prázdná. Tlačítka Opravit, Vymazat, Detail jsou opět šedá. 4. [SQL audit] Ověř, že řádek byl odstraněn z DB i s případnými KAM cíli. Data: SQL: Data: SELECT 'odkud' AS k, COUNT(*) AS v FROM fenix.rzp_pred_odkud o JOIN fenix.rzp_pred_hla h ON h.id_pred_hla=o.id_pred_hla JOIN fenix.rzp_pred p ON p.id_pred=h.id_pred WHERE p.nazev_pred='TS S02-03 předpis' Data: UNION ALL SELECT 'kam_siroty', COUNT(*) FROM fenix.rzp_pred_kam WHERE id_pred_odkud NOT IN (SELECT id_pred_odkud FROM fenix.rzp_pred_odkud); Expected: Oba řádky vrátí 0 — žádný zdrojový účet a žádné sirotčí KAM cíle.
Expected result
Oba řádky vrátí 0 — žádný zdrojový účet a žádné sirotčí KAM cíle.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S02-03_RecipeSourceCrud.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S02-03 — Source account CRUD FROM an allocation recipe (E2E).xlsx
SC-PREO-008 EP-PREO-CRUD RecipeSourceCrud_TS007_CleanupData Passed 300 ms
▸ Step details (TC_ID: TC-E2E-026)
Preconditions
Sada proběhla. V DB jsou pomocné řádky: rzp_definice (id_def=9), rzp_pred (id_pred=7), rzp_pred_hla (id_pred_hla=7).
Steps (Action / Data / Expected)
1. [SQL cleanup] Delete testovací data v správném pořadí. Data: SQL: Data: DELETE FROM fenix.rzp_pred_kam WHERE id_pred_odkud IN (SELECT id_pred_odkud FROM fenix.rzp_pred_odkud WHERE id_pred_hla IN (SELECT id_pred_hla FROM fenix.rzp_pred_hla WHERE id_pred IN (SELECT id_pred FROM fenix.rzp_pred WHERE nazev_pred='TS S02-03 předpis'))); Data: DELETE FROM fenix.rzp_pred_odkud WHERE id_pred_hla IN (SELECT id_pred_hla FROM fenix.rzp_pred_hla WHERE id_pred IN (SELECT id_pred FROM fenix.rzp_pred WHERE nazev_pred='TS S02-03 předpis')); Data: DELETE FROM fenix.rzp_pred_hla WHERE id_pred IN (SELECT id_pred FROM fenix.rzp_pred WHERE nazev_pred='TS S02-03 předpis'); Data: DELETE FROM fenix.rzp_pred WHERE nazev_pred='TS S02-03 předpis'; Data: DELETE FROM fenix.rzp_definice WHERE nazev='TS S02-03 definice' AND id_maj=10 AND rok=2026; Expected: Všechny DELETE proběhnou bez chyby (FK constraint není porušen). 2. [SQL cleanup] Final post-check. Data: SQL: Data: SELECT 'def S02-03' AS k, COUNT(*) AS v FROM fenix.rzp_definice WHERE nazev='TS S02-03 definice' Data: UNION ALL SELECT 'pred S02-03', COUNT(*) FROM fenix.rzp_pred WHERE nazev_pred='TS S02-03 předpis' Data: UNION ALL SELECT 'majitel Bata', COUNT(*) FROM fenix.rzp_majitel WHERE ico=44268050; Expected: Řádky 'def S02-03' a 'pred S02-03' = 0. Řádek 'majitel Bata' = 1.
Expected result
Řádky 'def S02-03' a 'pred S02-03' = 0. Řádek 'majitel Bata' = 1.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S02-03_RecipeSourceCrud.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S02-03 — Source account CRUD FROM an allocation recipe (E2E).xlsx

TS-RZP-S02-04 — Target account CRUD TO an allocation recipe (E2E) All passed

8 / 8 passed — TS-RZP-S02-04 — Target account CRUD TO an allocation recipe (E2E).xlsx · JSON spec

ScenarioEpicTest methodStatusTimeError / Detail
SC-PREK-001 EP-PREK-CRUD RecipeTargetCrud_TS000_PrepareData Passed 1,8 s
▸ Step details (TC_ID: TC-E2E-027)
Preconditions
Uživatel má přístup k testovací DB a k Haifa aplikaci. Majitel Bata (Company ID 44268050) je založen. Pro rok 2026 zatím neexistují testovací data.
Steps (Action / Data / Expected)
1. [SQL setup] Připoj se SQL klientem k testovací databázi. Data: Server = 172.29.7.21\NEOHEF,14330 Data: Database = fenix_1001 Data: User = Haifa Expected: Connection established. 2. [SQL setup] Defenzivní úklid: smaž případné zbytky z předchozího běhu (cílové/zdrojové účty, stupeň, předpis a pomocnou definici) ve správném FK pořadí, aby pre-flight v dalším kroku prošel. Krok je idempotentní — když nic nezůstalo, smaže 0 řádků. Sdílené konto (rzp_konto) se záměrně nemaže. Data: SQL: Data: DELETE FROM fenix.rzp_pred_kam WHERE id_pred_odkud IN (SELECT id_pred_odkud FROM fenix.rzp_pred_odkud WHERE id_pred_hla IN (SELECT id_pred_hla FROM fenix.rzp_pred_hla WHERE id_pred IN (SELECT id_pred FROM fenix.rzp_pred WHERE nazev_pred='TS S02-04 předpis'))); Data: DELETE FROM fenix.rzp_pred_odkud WHERE id_pred_hla IN (SELECT id_pred_hla FROM fenix.rzp_pred_hla WHERE id_pred IN (SELECT id_pred FROM fenix.rzp_pred WHERE nazev_pred='TS S02-04 předpis')); Data: DELETE FROM fenix.rzp_pred_hla WHERE id_pred IN (SELECT id_pred FROM fenix.rzp_pred WHERE nazev_pred='TS S02-04 předpis'); Data: DELETE FROM fenix.rzp_pred WHERE nazev_pred='TS S02-04 předpis'; Data: DELETE FROM fenix.rzp_definice WHERE nazev='TS S02-04 definice' AND id_maj=10 AND rok=2026; Expected: Všechny DELETE proběhnou bez chyby. Pokud zbytky existovaly, jsou odstraněny; pokud ne, ovlivní 0 řádků. DB je v čistém stavu pro pre-flight. Maže se pouze podle názvu předpisu této sady — cizí ani produkční data nejsou dotčena. 3. [SQL setup] Pre-flight: verify, že žádné zbytky neexistují. Data: SQL: Data: SELECT 'def S02-04' AS k, COUNT(*) AS v FROM fenix.rzp_definice WHERE nazev='TS S02-04 definice' Data: UNION ALL SELECT 'pred S02-04', COUNT(*) FROM fenix.rzp_pred WHERE nazev_pred='TS S02-04 předpis' Data: UNION ALL SELECT 'odkud S02-04', COUNT(*) FROM fenix.rzp_pred_odkud o JOIN fenix.rzp_pred_hla h ON h.id_pred_hla=o.id_pred_hla JOIN fenix.rzp_pred p ON p.id_pred=h.id_pred WHERE p.nazev_pred='TS S02-04 předpis'; Expected: Všechny řádky vrátí 0. 4. [SQL setup] Insert celý strom: definici, předpis, stupeň a navázaný zdrojový účet ODKUD. ID se přidělí dynamicky jako MAX+1, aby nedocházelo ke kolizím s existujícími řádky. Zdrojové konto (SU=501) se najde, a pokud chybí, automaticky založí (sada nezávisí na předem připravených datech). Definition sentence má aktivní dimenze SU, AU a UZ (maska poradi 000102…), aby byla v definici vybraná položka pro zadání cílového účtu KAM. Data: SQL: Data: DECLARE @id_def INT = (SELECT ISNULL(MAX(id_def), 0) + 1 FROM fenix.rzp_definice); Data: DECLARE @id_pred INT = (SELECT ISNULL(MAX(id_pred), 0) + 1 FROM fenix.rzp_pred); Data: DECLARE @id_pred_hla INT = (SELECT ISNULL(MAX(id_pred_hla), 0) + 1 FROM fenix.rzp_pred_hla); Data: DECLARE @id_pred_odkud INT = (SELECT ISNULL(MAX(id_pred_odkud), 0) + 1 FROM fenix.rzp_pred_odkud); Data: Data: INSERT INTO fenix.rzp_definice (id_def, id_maj, rok, id_ucet, z_text, poradi, nazev, konstanta, popis) Data: VALUES (@id_def, 10, 2026, 28, '00000000000000', '000102-1-1-1-1-1-1-1-1-1-1-1', 'TS S02-04 definice', '----------------------------', 'Sada TS-RZP-S02-04'); Data: Data: INSERT INTO fenix.rzp_pred (id_pred, id_def, c_poradi, pocet, plan_skut, nazev_pred, popis) Data: VALUES (@id_pred, @id_def, 1, '1', 'S', 'TS S02-04 předpis', 'Hlavička pro testy KAM'); Data: Data: INSERT INTO fenix.rzp_pred_hla (id_pred_hla, id_pred, obdobi, predpis, stupen, nazev_hla, popis) Data: VALUES (@id_pred_hla, @id_pred, 1, 'S', '1', 'Stupeň 1 — TS S02-04', ''); Data: Data: -- Zdrojový účet ODKUD (SU=501): najdi konto, a když neexistuje, vytvoř ho (MAX+1, prázdné dimenze = 0). Data: DECLARE @id_konto INT = (SELECT TOP 1 id_konto FROM fenix.rzp_konto WHERE su='501' AND au='XX' AND uz=0 AND org=0 ORDER BY id_konto); Data: IF @id_konto IS NULL Data: BEGIN Data: DECLARE @id_konto_new INT = (SELECT ISNULL(MAX(id_konto),0)+1 FROM fenix.rzp_konto); Data: INSERT INTO fenix.rzp_konto (id_konto, su, au, uz, org, kap, od, par, sespol, pol, zazp, akce, dv, mo, objekt) Data: VALUES (@id_konto_new, '501', 'XX', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); Data: SET @id_konto = @id_konto_new; Data: END Data: Data: INSERT INTO fenix.rzp_pred_odkud (id_pred_odkud, id_pred_hla, id_konto, popis) Data: VALUES (@id_pred_odkud, @id_pred_hla, @id_konto, 'TS S02-04 ODKUD SU=501'); Data: Data: SELECT @id_def AS id_def_pouzite, @id_pred AS id_pred_pouzite, @id_pred_hla AS id_pred_hla_pouzite, @id_pred_odkud AS id_pred_odkud_pouzite; Expected: Všechny čtyři INSERTy proběhnou (celkem 4 řádky). Závěrečný SELECT vrátí 1 řádek s konkrétními ID, která testovací data dostala (slouží pro orientaci, žádný další krok je nepoužívá — všechno se hledá podle názvů). 5. In the application select majitele Baťa (Úloha → Výběr majitele → IČ 44268050) a open Úloha → Rozpouštěcí předpis. Select 'TS S02-04 předpis', klikni Detail. Pak select 'Stupeň 1 — TS S02-04' a klikni Detail. Pak select zdrojový účet (SU=501) a klikni znovu na Detail. Data: Majitel = Baťa Data: Předpis = TS S02-04 předpis Data: Stupeň = 1 Data: Zdrojový účet = SU 501 Expected: Otevře se formulář s titulkem 'Předpis pro rozpouštění - KAM'. V horní části je viditelný readonly ODKUD (SU=501). Tabulka cílových účtů (grid KAM) je prázdná. Pole Hodnota, Jednotka, Hodnota celkem, Počet procent (PercentBar), Vypočítaný koeficient jsou viditelná. Aktivní jsou tlačítka Nový, Hledat, Tisk, Zrušit, Nápověda; tlačítka Opravit, Vymazat jsou šedá.
Expected result
Otevře se formulář s titulkem 'Předpis pro rozpouštění - KAM'. V horní části je viditelný readonly ODKUD (SU=501). Tabulka cílových účtů (grid KAM) je prázdná. Pole Hodnota, Jednotka, Hodnota celkem, Počet procent (PercentBar), Vypočítaný koeficient jsou viditelná. Aktivní jsou tlačítka Nový, Hledat, Tisk, Zrušit, Nápověda; tlačítka Opravit, Vymazat jsou šedá.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S02-04_RecipeTargetCrud.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S02-04 — Target account CRUD TO an allocation recipe (E2E).xlsx
SC-PREK-002 EP-PREK-CRUD RecipeTargetCrud_TS001_CreateTarget_WritesToDb Passed 15,9 s
▸ Step details (TC_ID: TC-E2E-028)
Preconditions
TS-000 proběhlo. Formulář 'Předpis pro rozpouštění - KAM' je otevřen. Tabulka cílových účtů je prázdná.
Steps (Action / Data / Expected)
1. Click the button Nový (Ctrl+N). Expected: Vstupní pole pro KAM dimenze Uz a pole Hodnota, Jednotka, Poznámka se stanou editovatelnými. Mezi editovatelnými dimenzemi je pole UZ (jediná aktivní dimenze KAM kromě zděděných SU/AU). 2. Vyplň dimenzi UZ a hodnotu cíle. Data: UZ = 1 Data: Hodnota = 60 Data: Jednotka = Kč Expected: Pole Hodnota obsahuje '60,00', Jednotka 'Kč'. Pole Hodnota celkem zatím zobrazuje '60,00' (jediný řádek), Počet procent ukazuje 100,00 %, Vypočítaný koeficient = 0,000000000000. Pole UZ obsahuje '00001'. 3. Click OK / Uložit. Expected: The form returns do režimu prohlížení. V tabulce cílových účtů se objeví nový řádek (Uz =00001, Hodnota = 60,00, Jednotka = 'Kč'). Vypočítaný koeficient = 1,000000000000). Tlačítka Opravit a Vymazat jsou nyní aktivní.
Expected result
The form returns do režimu prohlížení. V tabulce cílových účtů se objeví nový řádek (Uz =00001, Hodnota = 60,00, Jednotka = 'Kč'). Vypočítaný koeficient = 1,000000000000). Tlačítka Opravit a Vymazat jsou nyní aktivní.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S02-04_RecipeTargetCrud.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S02-04 — Target account CRUD TO an allocation recipe (E2E).xlsx
SC-PREK-003 EP-PREK-CRUD RecipeTargetCrud_TS002_SecondTarget_RecalculatesCoefficients Passed 15,1 s
▸ Step details (TC_ID: TC-E2E-029)
Preconditions
TS-001 proběhlo. V tabulce cílových účtů existuje 1 řádek (Hodnota = 60, Koeficient = 1,0000).
Steps (Action / Data / Expected)
1. Click Nový. Expected: Vstupní pole jsou prázdná a editovatelná. 2. Vyplň dimenzi UZ (odlišnou od 1. cíle) a hodnotu druhého cíle. Data: UZ = 2 Data: Hodnota = 40 Data: Jednotka = Kč Expected: Pole Hodnota obsahuje '40,00'. Po vyplnění pole Hodnota celkem ukazuje '100,00', Počet procent pro aktuální řádek ukazuje 40,00 %, Vypočítaný koeficient 1,000000000000. UZ = 2 je jiná kombinace dimenzí než 1. cíl (UZ = 1), takže nejde o duplicitu a 2. cíl se přidá. 3. Click OK / Uložit. Expected: The form returns do prohlížení. V tabulce cílových účtů jsou nyní 2 řádky: 1. (Uz = 00001, Hodnota = 60,00, Jednotka = 'Kč'), 2. (Uz = 00002, Hodnota = 40,00, Jednotka = 'Kč'). Suma koeficientů = 1,000000000000.
Expected result
The form returns do prohlížení. V tabulce cílových účtů jsou nyní 2 řádky: 1. (Uz = 00001, Hodnota = 60,00, Jednotka = 'Kč'), 2. (Uz = 00002, Hodnota = 40,00, Jednotka = 'Kč'). Suma koeficientů = 1,000000000000.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S02-04_RecipeTargetCrud.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S02-04 — Target account CRUD TO an allocation recipe (E2E).xlsx
SC-PREK-004 EP-PREK-CRUD RecipeTargetCrud_TS003_NegativeValidation_ShowsError Passed 11,6 s
▸ Step details (TC_ID: TC-E2E-030)
Preconditions
TS-000 proběhlo. Formulář je otevřen v režimu nového záznamu.
Steps (Action / Data / Expected)
1. Click Nový, vyplň dimenzi UZ a zápornou hodnotu. Data: UZ = 3 Data: Hodnota = -50 Data: Expected: Pole Hodnota obsahuje '-50'. Displayed: modální dialog s hláškou doslova 'Nesmí být záporná hodnota.' s tlačítkem OK. 2. Click OK. Expected: Okno se zavře, pole Hodnota je prázdné. 3. Změň hodnotu na nečíselný řetězec. Data: Hodnota = abc Expected: Pole Hodnota obsahuje 'abc'. 4. Click OK / Uložit. Expected: Displayed: modální dialog s hláškou doslova 'Hodnota musí být vyplněná or různá od nuly.' s tlačítkem OK. 5. Klikni v dialogu na OK. Pak klikni na Zrušit -> Ne. Expected: The dialog closes. V tabulce cílových účtů nevznikl žádný neplatný záznam.
Expected result
The dialog closes. V tabulce cílových účtů nevznikl žádný neplatný záznam.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S02-04_RecipeTargetCrud.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S02-04 — Target account CRUD TO an allocation recipe (E2E).xlsx
SC-PREK-005 EP-PREK-CRUD RecipeTargetCrud_TS004_DuplicateTarget_Rejected Passed 11,1 s
▸ Step details (TC_ID: TC-E2E-031)
Preconditions
TS-001 proběhlo. V tabulce cílových účtů existuje 1 řádek.
Steps (Action / Data / Expected)
1. Click Nový. Zadej UZ stejné jako existující řádek z TS-001. Data: UZ = 1 (stejné jako 1. cíl z TS-001 → identická kombinace dimenzí) Data: Hodnota = 40 Data: Jednotka = Kč Expected: Pole obsahují zadané hodnoty; kombinace dimenzí (UZ = 1) je identická s existujícím cílovým účtem z TS-001. 2. Click OK / Uložit. Expected: Displayed: modální dialog s hláškou doslova 'Nelze vložit již existující větu.' s tlačítkem OK. 3. Klikni v dialogu na OK. Pak klikni na Zrušit -> Ne. Expected: The dialog closes.
Expected result
The dialog closes.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S02-04_RecipeTargetCrud.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S02-04 — Target account CRUD TO an allocation recipe (E2E).xlsx
SC-PREK-006 EP-PREK-CRUD RecipeTargetCrud_TS005_RecalcByKoeficientButton Passed 9,8 s
▸ Step details (TC_ID: TC-E2E-032)
Preconditions
TS-002 proběhlo. V tabulce cílových účtů existují 2 řádky (Hodnota = 60 a 40, klic = 0.6 a 0.4). Po manuální úpravě klic v DB (např. SQL UPDATE klic=0.7 pro 1. řádek) by suma byla 1.1 — to je 'chybný koeficient'.
Steps (Action / Data / Expected)
1. [SQL setup] Simuluj chybný koeficient ručním UPDATE. Data: SQL: Data: UPDATE fenix.rzp_pred_kam SET klic = 0.7 Data: WHERE id_pred_odkud IN (SELECT id_pred_odkud FROM fenix.rzp_pred_odkud WHERE popis='TS S02-04 ODKUD SU=501') Data: AND hodnota = 60; Expected: UPDATE proběhne (1 řádek). 2. In the application znovu open formulář 'Předpis pro rozpouštění - KAM'. Expected: Formulář se otevře. V tabulce cílových účtů je název pole Chybný koeficient zobrazen červeně. Hodnota je 1,100000000000 3. Click the button Přepočti koeficient. Expected: Aplikace přepočítá koeficienty. Vypočítaný koeficient je nyní = 1,000000000000. Tlačítko Přepočti koeficient se skryje.
Expected result
Aplikace přepočítá koeficienty. Vypočítaný koeficient je nyní = 1,000000000000. Tlačítko Přepočti koeficient se skryje.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S02-04_RecipeTargetCrud.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S02-04 — Target account CRUD TO an allocation recipe (E2E).xlsx
SC-PREK-007 EP-PREK-CRUD RecipeTargetCrud_TS006_DeleteTarget Passed 11,5 s
▸ Step details (TC_ID: TC-E2E-033)
Preconditions
V tabulce cílových účtů jsou 2 řádky.
Steps (Action / Data / Expected)
1. V tabulce cílových účtů select řádek (Hodnota = 40). Expected: Řádek je zvýrazněn. 2. Click Vymazat (Ctrl+Y). Expected: Displayed: potvrzovací dialog "Chcete provést vymazání řádku předpisu ´ODKUD´daného stupně rozpouštěcího předpisu?" s tlačítky Ano / Ne. 3. Click Ano. Expected: Řádek (Hodnota = 40,00) zmizí. V tabulce zůstává 1 řádek (Uz = 00001, Hodnota = 60,00, Jednotka = 'Kč' ). Vypočítaný koeficient = 1,000000000000 — automatický přepočet po smazání).
Expected result
Řádek (Hodnota = 40,00) zmizí. V tabulce zůstává 1 řádek (Uz = 00001, Hodnota = 60,00, Jednotka = 'Kč' ). Vypočítaný koeficient = 1,000000000000 — automatický přepočet po smazání).
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S02-04_RecipeTargetCrud.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S02-04 — Target account CRUD TO an allocation recipe (E2E).xlsx
SC-PREK-008 EP-PREK-CRUD RecipeTargetCrud_TS007_CleanupData Passed 373 ms
▸ Step details (TC_ID: TC-E2E-034)
Preconditions
Sada proběhla. V DB jsou pomocné řádky všech 5 úrovní stromu.
Steps (Action / Data / Expected)
1. [SQL cleanup] Delete testovací data v správném pořadí. Data: SQL: Data: DELETE FROM fenix.rzp_pred_kam WHERE id_pred_odkud IN (SELECT id_pred_odkud FROM fenix.rzp_pred_odkud WHERE id_pred_hla IN (SELECT id_pred_hla FROM fenix.rzp_pred_hla WHERE id_pred IN (SELECT id_pred FROM fenix.rzp_pred WHERE nazev_pred='TS S02-04 předpis'))); Data: DELETE FROM fenix.rzp_pred_odkud WHERE id_pred_hla IN (SELECT id_pred_hla FROM fenix.rzp_pred_hla WHERE id_pred IN (SELECT id_pred FROM fenix.rzp_pred WHERE nazev_pred='TS S02-04 předpis')); Data: DELETE FROM fenix.rzp_pred_hla WHERE id_pred IN (SELECT id_pred FROM fenix.rzp_pred WHERE nazev_pred='TS S02-04 předpis'); Data: DELETE FROM fenix.rzp_pred WHERE nazev_pred='TS S02-04 předpis'; Data: DELETE FROM fenix.rzp_definice WHERE nazev='TS S02-04 definice' AND id_maj=10 AND rok=2026; Expected: Všechny DELETE proběhnou bez chyby (FK constraint není porušen). Sdílené konto (rzp_konto) zůstává. Po úklidu vrátí post-check 0 / 0 / 1. 2. [SQL cleanup] Final post-check. Data: SQL: Data: SELECT 'def S02-04' AS k, COUNT(*) AS v FROM fenix.rzp_definice WHERE nazev='TS S02-04 definice' Data: UNION ALL SELECT 'pred S02-04', COUNT(*) FROM fenix.rzp_pred WHERE nazev_pred='TS S02-04 předpis' Data: UNION ALL SELECT 'majitel Bata', COUNT(*) FROM fenix.rzp_majitel WHERE ico=44268050; Expected: Řádky 'def S02-04' a 'pred S02-04' = 0. Řádek 'majitel Bata' = 1.
Expected result
Řádky 'def S02-04' a 'pred S02-04' = 0. Řádek 'majitel Bata' = 1.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S02-04_RecipeTargetCrud.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S02-04 — Target account CRUD TO an allocation recipe (E2E).xlsx

TS-RZP-S02-05 — Copying an allocation recipe (robust E2E) All passed

6 / 6 passed — TS-RZP-S02-05 — Copying an allocation recipe (robust E2E).xlsx · JSON spec

ScenarioEpicTest methodStatusTimeError / Detail
SC-PREP-001 EP-PREP-COPY RecipeCopy_TS000_PrepareData Passed 1,0 s
▸ Step details (TC_ID: TC-E2E-035)
Preconditions
Uživatel má přístup k testovací DB a k Haifa aplikaci. Majitel Bata (Company ID 44268050) je založen. Pro rok 2026 zatím neexistují testovací data.
Steps (Action / Data / Expected)
1. [SQL setup] Připoj se SQL klientem k testovací databázi. Data: Server = 172.29.7.21\NEOHEF,14330 Data: Database = fenix_1001 Data: User = fenix Expected: Connection established. 2. [SQL setup] Pre-flight: verify, že žádné zbytky neexistují. Data: SQL: Data: SELECT 'def S02-05' AS k, COUNT(*) AS v FROM fenix.rzp_definice WHERE nazev='TS S02-05 definice' Data: UNION ALL SELECT 'pred S02-05', COUNT(*) FROM fenix.rzp_pred WHERE nazev_pred='TS S02-05 zdroj' OR nazev_pred='TS S02-05 kopie'; Expected: Oba řádky vrátí 0. 3. [SQL setup] Insert zdrojový předpis se stupněm a zdrojovým účtem (1 řádek na každé úrovni). Data: SQL: Data: INSERT INTO fenix.rzp_definice (id_def, id_maj, rok, id_ucet, z_text, poradi, nazev, konstanta, popis) Data: VALUES (9, 10, 2026, 28, '00000000000000', '0001-1-1-1-1-1-1-1-1-1-1-1-1', 'TS S02-05 definice', '----------------------------', 'Sada TS-RZP-S02-05'); Data: Data: INSERT INTO fenix.rzp_pred (id_pred, id_def, c_poradi, pocet, plan_skut, nazev_pred, popis) Data: VALUES (7, 9, 1, '1', 'S', 'TS S02-05 zdroj', 'Zdrojový předpis pro test kopie'); Data: Data: INSERT INTO fenix.rzp_pred_hla (id_pred_hla, id_pred, obdobi, predpis, stupen, nazev_hla, popis) Data: VALUES (7, 7, 1, 'S', '1', 'Stupeň 1 — TS S02-05', ''); Data: Data: DECLARE @id_konto INT = (SELECT TOP 1 id_konto FROM fenix.rzp_konto WHERE su='501' AND au='XX' AND uz=0 ORDER BY id_konto); Data: INSERT INTO fenix.rzp_pred_odkud (id_pred_odkud, id_pred_hla, id_konto, popis) Data: VALUES (5, 7, @id_konto, 'TS S02-05 ODKUD'); Expected: Všechny INSERTy proběhnou (celkem 4 řádky). 4. In the application select majitele Baťa a open Úloha → Rozpouštěcí předpisy. Data: Majitel = Bata (Company ID 44268050) Data: Rok = 2026 Expected: Otevře se formulář 'Rozpouštěcí předpisy'. V tabulce je vidět řádek 'TS S02-05 zdroj' (Poř. č. = 1, Počet stupňů = 1).
Expected result
Otevře se formulář 'Rozpouštěcí předpisy'. V tabulce je vidět řádek 'TS S02-05 zdroj' (Poř. č. = 1, Počet stupňů = 1).
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S02-05_RecipeCopy.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S02-05 — Copying an allocation recipe (robust E2E).xlsx
SC-PREP-002 EP-PREP-COPY RecipeCopy_TS001_CopyCreatesNewRecipe_WritesToDb Passed 7,2 s
▸ Step details (TC_ID: TC-E2E-036)
Preconditions
TS-000 proběhlo. Formulář 'Rozpouštěcí předpisy' je otevřen, v tabulce je řádek 'TS S02-05 zdroj'.
Steps (Action / Data / Expected)
1. V tabulce předpisů select řádek 'TS S02-05 zdroj'. Expected: Řádek je zvýrazněn. 2. Klikni v menu na Úlohy → Kopie aktuálního předpisu (mnuCopyPredis). Expected: Otevře se modální dialog s titulkem 'Kopie rozpouštěcího předpisu'. V dialogu jsou viditelná: pole Název nového předpisu (prázdné), pole Poř. číslo (předvyplněné = původní + 1 = '002'), label 'Předpis pro rozpouštění ODKUD' a runtime-built panel s dimenzemi (readonly view zdrojového ODKUD). Tlačítka Uložit a Zrušit jsou aktivní.
Expected result
Otevře se modální dialog s titulkem 'Kopie rozpouštěcího předpisu'. V dialogu jsou viditelná: pole Název nového předpisu (prázdné), pole Poř. číslo (předvyplněné = původní + 1 = '002'), label 'Předpis pro rozpouštění ODKUD' a runtime-built panel s dimenzemi (readonly view zdrojového ODKUD). Tlačítka Uložit a Zrušit jsou aktivní.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S02-05_RecipeCopy.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S02-05 — Copying an allocation recipe (robust E2E).xlsx
SC-PREP-003 EP-PREP-COPY RecipeCopy_TS001_CopyCreatesNewRecipe_WritesToDb Passed 7,2 s
▸ Step details (TC_ID: TC-E2E-037)
Preconditions
TS-001 proběhlo. Dialog 'Kopie rozpouštěcího předpisu' je otevřen pro zdrojový předpis 'TS S02-05 zdroj'.
Steps (Action / Data / Expected)
1. Vyplň pole Název nového předpisu. Data: Název nového předpisu = TS S02-05 kopie Expected: Pole obsahuje 'TS S02-05 kopie'. Poř. číslo zůstává předvyplněné ('002' or 2). 2. Click the button Uložit. Expected: The dialog closes (or zobrazí potvrzovací hlášku úspěchu). V seznamu předpisů ('Rozpouštěcí předpisy') je nyní 2. řádek 'TS S02-05 kopie' (Poř. č. = 2 or automaticky přiděleno). 3. [SQL audit] Ověř, že hlavička byla zkopírována a kontroluj, zda se zkopírovaly i podstromy. Data: SQL: Data: SELECT 'hlavicky' AS k, COUNT(*) AS v FROM fenix.rzp_pred WHERE nazev_pred LIKE 'TS S02-05%' Data: UNION ALL SELECT 'stupne_kopie', COUNT(*) FROM fenix.rzp_pred_hla h JOIN fenix.rzp_pred p ON p.id_pred=h.id_pred WHERE p.nazev_pred='TS S02-05 kopie' Data: UNION ALL SELECT 'odkud_kopie', COUNT(*) FROM fenix.rzp_pred_odkud o JOIN fenix.rzp_pred_hla h ON h.id_pred_hla=o.id_pred_hla JOIN fenix.rzp_pred p ON p.id_pred=h.id_pred WHERE p.nazev_pred='TS S02-05 kopie'; Expected: hlavicky = 2 (zdroj + kopie). stupne_kopie + odkud_kopie ukazují, zda WIP copy-children funguje: ideální je >=1 v obou, ale pokud je 0, znamená to, že kopie hlavičky je hotová ale podstrom není (WIP stub). Tester zaznamená skutečné hodnoty.
Expected result
hlavicky = 2 (zdroj + kopie). stupne_kopie + odkud_kopie ukazují, zda WIP copy-children funguje: ideální je >=1 v obou, ale pokud je 0, znamená to, že kopie hlavičky je hotová ale podstrom není (WIP stub). Tester zaznamená skutečné hodnoty.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S02-05_RecipeCopy.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S02-05 — Copying an allocation recipe (robust E2E).xlsx
SC-PREP-004 EP-PREP-COPY RecipeCopy_TS003_EmptyName_Rejected Passed 5,3 s
▸ Step details (TC_ID: TC-E2E-038)
Preconditions
TS-000 proběhlo. Dialog 'Kopie rozpouštěcího předpisu' je otevřen.
Steps (Action / Data / Expected)
1. V dialogu nech pole Název nového předpisu prázdné. Data: Název nového předpisu = (prázdné) Expected: Pole Název je prázdné. Pole Poř. číslo má předvyplněnou hodnotu. 2. Click the button Uložit. Expected: Displayed: modální dialog s hláškou doslova 'Není zadán název nového předpisu.' s tlačítkem OK. 3. Klikni v dialogu na OK. Expected: The dialog closes. Mini-dialog 'Kopie rozpouštěcího předpisu' zůstává otevřený, kurzor přejde na pole Název. V seznamu předpisů nepřibyl žádný nový řádek.
Expected result
The dialog closes. Mini-dialog 'Kopie rozpouštěcího předpisu' zůstává otevřený, kurzor přejde na pole Název. V seznamu předpisů nepřibyl žádný nový řádek.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S02-05_RecipeCopy.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S02-05 — Copying an allocation recipe (robust E2E).xlsx
SC-PREP-005 EP-PREP-COPY RecipeCopy_TS004_CancelCopy_NoNewRecipe Passed 4,5 s
▸ Step details (TC_ID: TC-E2E-039)
Preconditions
TS-001 proběhlo. Dialog 'Kopie rozpouštěcího předpisu' je otevřen, v poli Název je nějaký text.
Steps (Action / Data / Expected)
1. V dialogu vyplň název. Data: Název nového předpisu = TS S02-05 zrušeno Expected: Pole Název obsahuje 'TS S02-05 zrušeno'. 2. Click the button Zrušit. Expected: The dialog closes (bez potvrzení 'Chcete uložit změny?' — RecipeCopyForm nemá unsaved-changes tracking). Vrátíme se do formuláře 'Rozpouštěcí předpisy'. V seznamu předpisů nepřibyl řádek 'TS S02-05 zrušeno'.
Expected result
The dialog closes (bez potvrzení 'Chcete uložit změny?' — RecipeCopyForm nemá unsaved-changes tracking). Vrátíme se do formuláře 'Rozpouštěcí předpisy'. V seznamu předpisů nepřibyl řádek 'TS S02-05 zrušeno'.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S02-05_RecipeCopy.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S02-05 — Copying an allocation recipe (robust E2E).xlsx
SC-PREP-006 EP-PREP-COPY RecipeCopy_TS005_CleanupData Passed 500 ms
▸ Step details (TC_ID: TC-E2E-040)
Preconditions
Sada proběhla. V DB jsou pomocné řádky: zdrojový předpis 'TS S02-05 zdroj' a (pokud TS-002 passed) kopie 'TS S02-05 kopie'.
Steps (Action / Data / Expected)
1. [SQL cleanup] Delete testovací data v správném pořadí. Data: SQL: Data: DELETE FROM fenix.rzp_pred_kam WHERE id_pred_odkud IN (SELECT id_pred_odkud FROM fenix.rzp_pred_odkud WHERE id_pred_hla IN (SELECT id_pred_hla FROM fenix.rzp_pred_hla WHERE id_pred IN (SELECT id_pred FROM fenix.rzp_pred WHERE nazev_pred LIKE 'TS S02-05%'))); Data: DELETE FROM fenix.rzp_pred_odkud WHERE id_pred_hla IN (SELECT id_pred_hla FROM fenix.rzp_pred_hla WHERE id_pred IN (SELECT id_pred FROM fenix.rzp_pred WHERE nazev_pred LIKE 'TS S02-05%')); Data: DELETE FROM fenix.rzp_pred_hla WHERE id_pred IN (SELECT id_pred FROM fenix.rzp_pred WHERE nazev_pred LIKE 'TS S02-05%'); Data: DELETE FROM fenix.rzp_pred WHERE nazev_pred LIKE 'TS S02-05%'; Data: DELETE FROM fenix.rzp_definice WHERE nazev='TS S02-05 definice' AND id_maj=10 AND rok=2026; Expected: Všechny DELETE proběhnou bez chyby. 2. [SQL cleanup] Final post-check. Data: SQL: Data: SELECT 'def S02-05' AS k, COUNT(*) AS v FROM fenix.rzp_definice WHERE nazev='TS S02-05 definice' Data: UNION ALL SELECT 'pred S02-05', COUNT(*) FROM fenix.rzp_pred WHERE nazev_pred LIKE 'TS S02-05%' Data: UNION ALL SELECT 'majitel Bata', COUNT(*) FROM fenix.rzp_majitel WHERE ico=44268050; Expected: Řádky 'def S02-05' a 'pred S02-05' = 0. Řádek 'majitel Bata' = 1.
Expected result
Řádky 'def S02-05' a 'pred S02-05' = 0. Řádek 'majitel Bata' = 1.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S02-05_RecipeCopy.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S02-05 — Copying an allocation recipe (robust E2E).xlsx

TS-RZP-S03-01 — Importing accounting data for a period (E2E) All passed

8 / 8 passed — TS-RZP-S03-01 — Importing accounting data for a period (E2E).xlsx · JSON spec

ScenarioEpicTest methodStatusTimeError / Detail
SC-PRIC-001 EP-PRIC-IMP ImportData_TS000 Passed 800 ms
▸ Step details (TC_ID: TC-E2E-041)
Preconditions
Uživatel má přístup k testovací DB a k Haifa aplikaci. V hlavním účetnictví je aktuální (otevřené) účetní období 2026/02 — v uc_obdobi platí rok_uc=2026, obd_uc=2. Období 2026/01 je tedy účetně uzavřené, 2026/02 otevřené. uc_obdobi se v této sadě NEMĚNÍ (sada je díky tomu opakovatelná).
Steps (Action / Data / Expected)
1. [SQL setup] Připoj se SQL klientem k testovací databázi. Data: Server = 172.29.7.21\NEOHEF,14330 Data: Database = fenix_1001 Data: User = Haifa Expected: Connection established. 2. [SQL setup] Defenzivní úklid: smaž případné zbytky z předchozího běhu (importovaná data, detail účtu a pomocnou definici) ve správném FK pořadí. Idempotentní — když nic nezůstalo, smaže 0 řádků. Data: SQL: Data: DELETE FROM fenix.rzp_rozp_det WHERE id_rozp IN (SELECT id_rozp FROM fenix.rzp_rozp WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE nazev='TS S03-01 definice')); Data: DELETE FROM fenix.rzp_rozp WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE nazev='TS S03-01 definice'); Data: DELETE FROM fenix.rzp_ucet_det WHERE popis='TS S03-01 detail'; Data: DELETE FROM fenix.rzp_definice WHERE nazev='TS S03-01 definice' AND id_maj=10 AND rok=2026; Expected: Všechny DELETE proběhnou bez chyby. Pokud zbytky existovaly, jsou odstraněny; jinak ovlivní 0 řádků. DB je v čistém stavu. Maže se jen podle názvu této sady — cizí ani produkční data nejsou dotčena. 3. [SQL setup] Pre-flight: verify výchozí stav. Data: SQL: Data: SELECT 'majitel Bata' AS k, COUNT(*) AS v FROM fenix.rzp_majitel WHERE ico=44268050 Data: UNION ALL SELECT 'def S03-01', COUNT(*) FROM fenix.rzp_definice WHERE nazev='TS S03-01 definice' Data: UNION ALL SELECT 'ucet detaily', COUNT(*) FROM fenix.rzp_ucet_det WHERE popis='TS S03-01 detail' Data: UNION ALL SELECT 'rozp existujici', COUNT(*) FROM fenix.rzp_rozp r JOIN fenix.rzp_definice d ON d.id_def=r.id_def WHERE d.nazev='TS S03-01 definice'; Expected: majitel Bata = 1, ostatní řádky = 0 (žádné zbytky). 4. [SQL setup] Insert pomocnou definici a detail účtu. ID se přidělí dynamicky jako MAX+1, aby nedocházelo ke kolizím. Data: SQL: Data: DECLARE @id_def INT = (SELECT ISNULL(MAX(id_def), 0) + 1 FROM fenix.rzp_definice); Data: DECLARE @id_ucet_det INT = (SELECT ISNULL(MAX(id_ucet_det), 0) + 1 FROM fenix.rzp_ucet_det); Data: Data: INSERT INTO fenix.rzp_definice (id_def, id_maj, rok, id_ucet, z_text, poradi, nazev, konstanta, popis) Data: VALUES (@id_def, 10, 2026, 28, '00000000000000', '0001-1-1-1-1-1-1-1-1-1-1-1-1', 'TS S03-01 definice', '----------------------------', 'Sada TS-RZP-S03-01'); Data: Data: INSERT INTO fenix.rzp_ucet_det (id_ucet_det, id_ucet, znak_su, nakl_vyn, popis) Data: VALUES (@id_ucet_det, 28, '501 ', 'N', 'TS S03-01 detail'); Data: Data: SELECT @id_def AS id_def_pouzite, @id_ucet_det AS id_ucet_det_pouzite; Expected: Oba INSERTy proběhnou (po 1 řádku). 5. [SQL setup] Ověř aktuální účetní období (předpoklad scénářů). Data: SQL: Data: SELECT rok_uc, obd_uc FROM fenix.uc_obdobi; Expected: rok_uc = 2026, obd_uc = 2 (období 01 účetně uzavřené, 02 otevřené). Pokud je obd_uc jiné, uprav čísla období ve scénářích podle skutečnosti (uzavřené = období < obd_uc). 6. In the application select majitele Baťa (Úloha → Výběr majitele → IČ 44268050) a open Úloha → Příjem dat z účetnictví. Data: Majitel = Bata (Company ID 44268050) Data: Rok = 2026 Expected: Otevře se formulář s titulkem 'Seznam přijatých účetních dat za období'. V ComboBoxu výběru definice je položka 'TS S03-01 definice'. Tabulka přijatých dat je pro tuto definici prázdná. Aktivní: Zrušit, Příjem, Nápověda. Zašedlé: Kontrola, Vymazat.
Expected result
Otevře se formulář s titulkem 'Seznam přijatých účetních dat za období'. V ComboBoxu výběru definice je položka 'TS S03-01 definice'. Tabulka přijatých dat je pro tuto definici prázdná. Aktivní: Zrušit, Příjem, Nápověda. Zašedlé: Kontrola, Vymazat.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S03-01_ImportData.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S03-01 — Importing accounting data for a period (E2E).xlsx
SC-PRIC-002 EP-PRIC-IMP ImportData_TS001 Passed 24,1 s
▸ Step details (TC_ID: TC-E2E-042)
Preconditions
TS-000 proběhlo. Formulář 'Seznam přijatých účetních dat za období' je otevřen, v ComboBoxu lze vybrat 'TS S03-01 definice'. Pro tuto definici zatím nejsou žádná přijatá data. Účetní období 01 je účetně uzavřené (01 < obd_uc=2).
Steps (Action / Data / Expected)
1. V ComboBoxu výběru definice select 'TS S03-01 definice'. Data: Definice = TS S03-01 definice Expected: ComboBox zobrazí vybranou definici. 2. Click the button Příjem. Expected: Otevře se formulář 'Příjem dat z účetnictví' (Rzp_prijem_det) s ComboBoxy Počáteční období a Konečné období a s tlačítky OK, Zrušit, Nápověda. 3. Nastav Konečné období = 01. Data: Období = 01 (leden 2026) Expected: ComboBox zobrazí konečné období 01. 4. Click the button OK. Expected: Spustí se progress indikátor. Displayed: modální okno s hláškou doslova: „Příjem účetních dat proběhl v pořádku.“ a tlačítkem OK. 5. Klikni v hlášce na OK. Expected: The dialog closes. The form returns na 'Seznam přijatých účetních dat za období'. V tabulce je nový řádek: Č. období = 01, Účetní období = Uzavřené.
Expected result
The dialog closes. The form returns na 'Seznam přijatých účetních dat za období'. V tabulce je nový řádek: Č. období = 01, Účetní období = Uzavřené.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S03-01_ImportData.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S03-01 — Importing accounting data for a period (E2E).xlsx
SC-PRIC-003 EP-PRIC-IMP ImportData_TS002 Passed 3,9 s
▸ Step details (TC_ID: TC-E2E-043)
Preconditions
TS-001 proběhlo. V tabulce přijatých dat existuje řádek pro období 01 se sloupcem Uzávěrka = Uzavřené (A). Je to nejvyšší (jediný) řádek gridu.
Steps (Action / Data / Expected)
1. V tabulce přijatých dat select řádek pro období 01 (Účetní období = Uzavřené). Data: Definice = TS S03-01 definice Data: Období = 01 Expected: Řádek je zvýrazněn, sloupec Účetní období zobrazuje „Uzavřené“. 2. Zkontroluj stav tlačítka Kontrola. Expected: Tlačítko Kontrola je ZAŠEDLÉ (nelze na něj kliknout).
Expected result
Tlačítko Kontrola je ZAŠEDLÉ (nelze na něj kliknout).
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S03-01_ImportData.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S03-01 — Importing accounting data for a period (E2E).xlsx
SC-PRIC-004 EP-PRIC-IMP ImportData_TS003 Passed 21,3 s
▸ Step details (TC_ID: TC-E2E-044)
Preconditions
TS-001 proběhlo (existuje řádek 01 = Uzavřené). Účetní období 02 je účetně otevřené (02 ≥ obd_uc=2).
Steps (Action / Data / Expected)
1. Na seznamu s vybranou definicí klikni na Příjem. Data: Definice = TS S03-01 definice Expected: Otevře se 'Příjem dat z účetnictví'. 2. Nastav konečné období = 02 a klikni na OK. Data: Období = 02 (únor 2026) Expected: Spustí se progress indikátor. Displayed: hláška „Příjem účetních dat proběhl v pořádku.“ 3. Klikni v hlášce na OK. Expected: The dialog closes, návrat na seznam. Uzávěrka = Neuzavřené (N). Řádek 02 je nyní nejvyšší v gridu. V tabulce je nový řádek: Č. období = 02, Účetní období = Neuzavřené.
Expected result
The dialog closes, návrat na seznam. Uzávěrka = Neuzavřené (N). Řádek 02 je nyní nejvyšší v gridu. V tabulce je nový řádek: Č. období = 02, Účetní období = Neuzavřené.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S03-01_ImportData.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S03-01 — Importing accounting data for a period (E2E).xlsx
SC-PRIC-005 EP-PRIC-IMP ImportData_TS004 Passed 9,2 s
▸ Step details (TC_ID: TC-E2E-045)
Preconditions
V gridu je období 02 se sloupcem Účetní období = Neuzavřené (N). Účetní období 02 je stále účetně otevřené (obd_uc=2).
Steps (Action / Data / Expected)
1. V tabulce select řádek — období 02 (Účetní období = Neuzavřené). Data: Období = 02 Expected: Řádek je zvýrazněn. 2. Zkontroluj stav tlačítka Kontrola. Expected: Tlačítko Kontrola je AKTIVNÍ (lze na něj kliknout). 3. Click the button Kontrola. Expected: Spustí se progress indikátor. Po dokončení se zobrazí modální dialog s hláškou doslova: „Není uzavřené účetní období. Prosím vymažte neuzavřené období a proveďte nový příjem dat.“ a tlačítkem OK. 4. Klikni v dialogu na OK. Expected: The dialog closes (řádek 02 zůstává Neuzavřené (N)). V tabulce přijatých dat se nic nezměnilo.
Expected result
The dialog closes (řádek 02 zůstává Neuzavřené (N)). V tabulce přijatých dat se nic nezměnilo.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S03-01_ImportData.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S03-01 — Importing accounting data for a period (E2E).xlsx
SC-PRIC-006 EP-PRIC-IMP ImportData_TS005 Passed 31,9 s
▸ Step details (TC_ID: TC-E2E-046)
Preconditions
V tabulce jsou dva řádky: období 01 (Uzavřené) a 02 (Neuzavřené). Pro žádné z nich neproběhlo rozpouštění (rzp_rozp_det je prázdné).
Steps (Action / Data / Expected)
1. Click Vymazat. Expected: Displayed: potvrzovací dialog doslova: „Chcete opravdu vymazat data za období 2?“ s tlačítky Ano / Ne. (Maže se nejvyšší období = 02.) 2. Click Ano. Expected: Řádek pro období 02 zmizí z tabulky. 3. Klikni znovu na tlačítko Vymazat. Expected: Displayed: dialog „Chcete opravdu vymazat data za období 1?“ s tlačítky Ano / Ne. 4. Click Ano. Expected: Řádek pro období 01 zmizí. Tabulka přijatých dat je prázdná, tlačítka Kontrola a Vymazat jsou zašedlá. 5. [SQL audit] Ověř, že hlavičky i detailové řádky byly smazány. Data: SQL: Data: SELECT 'rozp' AS tab, COUNT(*) AS v FROM fenix.rzp_rozp r JOIN fenix.rzp_definice d ON d.id_def=r.id_def WHERE d.nazev='TS S03-01 definice' Data: UNION ALL SELECT 'rozp_det sirota', COUNT(*) FROM fenix.rzp_rozp_det WHERE id_rozp NOT IN (SELECT id_rozp FROM fenix.rzp_rozp); Expected: Oba řádky vrátí 0.
Expected result
Oba řádky vrátí 0.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S03-01_ImportData.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S03-01 — Importing accounting data for a period (E2E).xlsx
SC-PRIC-007 EP-PRIC-IMP ImportData_TS006 Passed 200 ms
▸ Step details (TC_ID: TC-E2E-047)
Preconditions
TS-005 proběhlo. V tabulce přijatých dat už není žádný řádek pro 'TS S03-01 definice'.
Steps (Action / Data / Expected)
1. [SQL cleanup] Pre-flight: verify, že žádné importy ani předpisy na pomocné definici neexistují. Data: SQL: Data: SELECT 'rozp' AS tab, COUNT(*) AS v FROM fenix.rzp_rozp WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE nazev='TS S03-01 definice') Data: UNION ALL SELECT 'pred', COUNT(*) FROM fenix.rzp_pred WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE nazev='TS S03-01 definice'); Expected: Oba dotazy vrátí 0. 2. [SQL cleanup] Delete testovací data ve správném FK pořadí (importovaná data, detail účtu, definice). Data: SQL: Data: DELETE FROM fenix.rzp_rozp_det WHERE id_rozp IN (SELECT id_rozp FROM fenix.rzp_rozp WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE nazev='TS S03-01 definice')); Data: DELETE FROM fenix.rzp_rozp WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE nazev='TS S03-01 definice'); Data: DELETE FROM fenix.rzp_ucet_det WHERE popis='TS S03-01 detail'; Data: DELETE FROM fenix.rzp_definice WHERE nazev='TS S03-01 definice' AND id_maj=10 AND rok=2026; Expected: Všechny DELETE proběhnou bez chyby (FK constraint není porušen). Po úklidu vrátí post-check 0. 3. [SQL cleanup] Final post-check. Data: SQL: Data: SELECT 'detail S03-01' AS tab, COUNT(*) AS v FROM fenix.rzp_ucet_det WHERE popis='TS S03-01 detail' Data: UNION ALL SELECT 'def S03-01', COUNT(*) FROM fenix.rzp_definice WHERE nazev='TS S03-01 definice' Data: UNION ALL SELECT 'majitel Bata zachovan', COUNT(*) FROM fenix.rzp_majitel WHERE ico=44268050; Expected: Řádky 'detail S03-01' a 'def S03-01' = 0. Řádek 'majitel Bata zachovan' = 1.
Expected result
Řádky 'detail S03-01' a 'def S03-01' = 0. Řádek 'majitel Bata zachovan' = 1.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S03-01_ImportData.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S03-01 — Importing accounting data for a period (E2E).xlsx
RZP3-PRIC-TS001 EP-PRIC-IMP Import_Period01_WritesHeaderToDb Passed 28,4 s

TS-RZP-S03-02 — Allocating imported data (E2E) All passed

8 / 8 passed — TS-RZP-S03-02 — Allocating imported data (E2E).xlsx · JSON spec

ScenarioEpicTest methodStatusTimeError / Detail
SC-PRID-001 EP-PRID-RUN DistributionRun_TS000 Passed 837 ms
▸ Step details (TC_ID: TC-E2E-048)
Preconditions
Uživatel má přístup k testovací DB a k Haifa aplikaci. Majitel Baťa je založen a jeho účetnictví má nastavenou strukturu složek (uc_komp) včetně dimenze Uz. POZN.: skutečné obraty v účetnictví NEJSOU potřeba — stupeň 0 (vstup pro rozpouštění) se v TS-000 naseeduje přímo přes SQL.
Steps (Action / Data / Expected)
1. [SQL setup] Připoj se SQL klientem k testovací databázi. Data: Server = 172.29.7.21\NEOHEF,14330 Data: Database = fenix_1001 Data: User = Haifa Expected: Connection established. 2. [SQL setup] Defenzivní úklid: smaž případné zbytky z předchozího běhu (rozpouštění, předpis se stupni, detail účtu a pomocnou definici) ve správném FK pořadí, aby pre-flight v dalším kroku prošel. Krok je idempotentní — když nic nezůstalo, smaže 0 řádků. Data: SQL: Data: DELETE FROM fenix.rzp_rozp_det WHERE id_rozp IN (SELECT id_rozp FROM fenix.rzp_rozp WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE nazev='TS S03-02 definice')); Data: DELETE FROM fenix.rzp_rozp WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE nazev='TS S03-02 definice'); Data: DELETE FROM fenix.rzp_konto WHERE id_konto IN ( Data: SELECT id_konto FROM fenix.rzp_pred_odkud WHERE id_pred_hla IN (SELECT id_pred_hla FROM fenix.rzp_pred_hla WHERE id_pred IN (SELECT id_pred FROM fenix.rzp_pred WHERE nazev_pred='TS S03-02 předpis')) Data: UNION SELECT id_konto FROM fenix.rzp_pred_kam WHERE id_pred_odkud IN (SELECT id_pred_odkud FROM fenix.rzp_pred_odkud WHERE id_pred_hla IN (SELECT id_pred_hla FROM fenix.rzp_pred_hla WHERE id_pred IN (SELECT id_pred FROM fenix.rzp_pred WHERE nazev_pred='TS S03-02 předpis'))) Data: ) AND id_konto NOT IN (SELECT id_konto FROM fenix.rzp_rozp_det); Data: DELETE FROM fenix.rzp_pred_kam WHERE id_pred_odkud IN (SELECT id_pred_odkud FROM fenix.rzp_pred_odkud WHERE id_pred_hla IN (SELECT id_pred_hla FROM fenix.rzp_pred_hla WHERE id_pred IN (SELECT id_pred FROM fenix.rzp_pred WHERE nazev_pred='TS S03-02 předpis'))); Data: DELETE FROM fenix.rzp_pred_odkud WHERE id_pred_hla IN (SELECT id_pred_hla FROM fenix.rzp_pred_hla WHERE id_pred IN (SELECT id_pred FROM fenix.rzp_pred WHERE nazev_pred='TS S03-02 předpis')); Data: DELETE FROM fenix.rzp_pred_hla WHERE id_pred IN (SELECT id_pred FROM fenix.rzp_pred WHERE nazev_pred='TS S03-02 předpis'); Data: DELETE FROM fenix.rzp_pred WHERE nazev_pred='TS S03-02 předpis'; Data: DELETE FROM fenix.rzp_ucet_det WHERE popis='TS S03-02 detail'; Data: DELETE FROM fenix.rzp_definice WHERE nazev='TS S03-02 definice' AND id_maj=10 AND rok=2026; Expected: Všechny DELETE proběhnou bez chyby (vč. účtů rzp_konto a naseedovaných vět rzp_rozp/rzp_rozp_det vytvořených sadou). Pokud zbytky existovaly, jsou odstraněny; jinak 0 řádků. Maže se jen podle názvu této sady — cizí ani produkční data nejsou dotčena. 3. [SQL setup] Pre-flight: verify, že žádné zbytky neexistují. Data: SQL: Data: SELECT 'def S03-02' AS k, COUNT(*) AS v FROM fenix.rzp_definice WHERE nazev='TS S03-02 definice' Data: UNION ALL SELECT 'pred S03-02', COUNT(*) FROM fenix.rzp_pred WHERE nazev_pred='TS S03-02 předpis' Data: UNION ALL SELECT 'rozp S03-02', COUNT(*) FROM fenix.rzp_rozp r JOIN fenix.rzp_definice d ON d.id_def=r.id_def WHERE d.nazev='TS S03-02 definice'; Expected: Všechny řádky = 0. 4. [SQL setup] Insert definici (SU+AU+Uz, poradi=28 znaků), detail účtu, 2-stupňový předpis, účty v rzp_konto (zdroj 501 / cíl 518, Uz=@uz) a vazby ODKUD/KAM (klíč 1). ID dynamicky MAX+1. Data: SQL: Data: DECLARE @id_def INT = (SELECT ISNULL(MAX(id_def), 0) + 1 FROM fenix.rzp_definice); Data: DECLARE @id_ucet_det INT = (SELECT ISNULL(MAX(id_ucet_det), 0) + 1 FROM fenix.rzp_ucet_det); Data: DECLARE @id_pred INT = (SELECT ISNULL(MAX(v),0)+1 FROM (SELECT MAX(id_pred) AS v FROM fenix.rzp_pred UNION ALL SELECT MAX(id_pred) FROM fenix.rzp_pred_hla) t); -- MAX přes obě tabulky kvůli osiřelým stupňům Data: DECLARE @id_pred_hla INT = (SELECT ISNULL(MAX(id_pred_hla), 0) FROM fenix.rzp_pred_hla); Data: Data: -- DIMENZE: poradi (28 znaků) aktivuje su(00), au(01), Uz(02); ostatní = -1 (nepoužité). Data: INSERT INTO fenix.rzp_definice (id_def, id_maj, rok, id_ucet, z_text, poradi, nazev, konstanta, popis) Data: VALUES (@id_def, 10, 2026, 28, '00000000000000', '000102-1-1-1-1-1-1-1-1-1-1-1', 'TS S03-02 definice', '----------------------------', 'Sada TS-RZP-S03-02'); Data: Data: INSERT INTO fenix.rzp_ucet_det (id_ucet_det, id_ucet, znak_su, nakl_vyn, popis) Data: VALUES (@id_ucet_det, 28, '501 ', 'N', 'TS S03-02 detail'); Data: Data: INSERT INTO fenix.rzp_pred (id_pred, id_def, c_poradi, pocet, plan_skut, nazev_pred, popis) Data: VALUES (@id_pred, @id_def, 1, '2', 'S', 'TS S03-02 předpis', '2-stupňové rozpouštění'); Data: Data: INSERT INTO fenix.rzp_pred_hla (id_pred_hla, id_pred, obdobi, predpis, stupen, nazev_hla, popis) VALUES Data: (@id_pred_hla + 1, @id_pred, 1, 'S', '1', 'Stupeň 1', ''), Data: (@id_pred_hla + 2, @id_pred, 1, 'S', '2', 'Stupeň 2', ''); Data: Data: -- Účty v ciselníku rzp_konto: zdroj (ODKUD) a cíl (KAM). Dimenze Uz = @uz, ostatní 0. Data: -- POZN.: su/au přizpůsob délce složek v uc_komp majitele (např. 6místné su → '000501'). Data: DECLARE @uz INT = 1; Data: DECLARE @id_konto_src INT = (SELECT TOP 1 id_konto FROM fenix.rzp_konto Data: WHERE su='501' AND au='0' AND uz=@uz AND org=0 AND kap=0 AND od=0 AND par=0 AND sespol=0 AND pol=0 AND zazp=0 AND akce=0 AND dv=0 AND mo=0 AND objekt=0); Data: IF @id_konto_src IS NULL Data: BEGIN Data: SET @id_konto_src = (SELECT ISNULL(MAX(id_konto),0)+1 FROM fenix.rzp_konto); Data: INSERT INTO fenix.rzp_konto (id_konto,su,au,uz,org,kap,od,par,sespol,pol,zazp,akce,dv,mo,objekt) Data: VALUES (@id_konto_src,'501','0',@uz,0,0,0,0,0,0,0,0,0,0,0); Data: END Data: DECLARE @id_konto_dst INT = (SELECT TOP 1 id_konto FROM fenix.rzp_konto Data: WHERE su='518' AND au='0' AND uz=@uz AND org=0 AND kap=0 AND od=0 AND par=0 AND sespol=0 AND pol=0 AND zazp=0 AND akce=0 AND dv=0 AND mo=0 AND objekt=0); Data: IF @id_konto_dst IS NULL Data: BEGIN Data: SET @id_konto_dst = (SELECT ISNULL(MAX(id_konto),0)+1 FROM fenix.rzp_konto); Data: INSERT INTO fenix.rzp_konto (id_konto,su,au,uz,org,kap,od,par,sespol,pol,zazp,akce,dv,mo,objekt) Data: VALUES (@id_konto_dst,'518','0',@uz,0,0,0,0,0,0,0,0,0,0,0); Data: END Data: Data: -- ODKUD/KAM stupeň 1 (zdroj -> cíl, klíč 1 = 100 %) Data: DECLARE @id_odkud_1 INT = (SELECT ISNULL(MAX(id_pred_odkud),0)+1 FROM fenix.rzp_pred_odkud); Data: INSERT INTO fenix.rzp_pred_odkud (id_pred_odkud, id_pred_hla, id_konto) VALUES (@id_odkud_1, @id_pred_hla + 1, @id_konto_src); Data: DECLARE @id_kam_1 INT = (SELECT ISNULL(MAX(id_pred_kam),0)+1 FROM fenix.rzp_pred_kam); Data: INSERT INTO fenix.rzp_pred_kam (id_pred_kam, id_pred_odkud, id_konto, klic, hodnota, jednotka) VALUES (@id_kam_1, @id_odkud_1, @id_konto_dst, 1, 1, ''); Data: Data: -- ODKUD/KAM stupeň 2 (zdroj = cíl st.1 -> cíl, klíč 1) Data: DECLARE @id_odkud_2 INT = (SELECT ISNULL(MAX(id_pred_odkud),0)+1 FROM fenix.rzp_pred_odkud); Data: INSERT INTO fenix.rzp_pred_odkud (id_pred_odkud, id_pred_hla, id_konto) VALUES (@id_odkud_2, @id_pred_hla + 2, @id_konto_dst); Data: DECLARE @id_kam_2 INT = (SELECT ISNULL(MAX(id_pred_kam),0)+1 FROM fenix.rzp_pred_kam); Data: INSERT INTO fenix.rzp_pred_kam (id_pred_kam, id_pred_odkud, id_konto, klic, hodnota, jednotka) VALUES (@id_kam_2, @id_odkud_2, @id_konto_src, 1, 1, ''); Data: Data: SELECT @id_def AS id_def, @id_pred AS id_pred, @uz AS uz, @id_konto_src AS id_konto_src, @id_konto_dst AS id_konto_dst; Expected: Všechny INSERTy proběhnou bez chyby: definice, detail účtu, předpis, 2 stupně, 2 účty rzp_konto, 2× ODKUD, 2× KAM. Součet klíčů KAM na ODKUD = 1. POZN.: su/au účtů přizpůsob délce složek v uc_komp majitele (např. 6místné su → '000501'); @uz lze změnit. 5. [SQL setup] Naseeduj stupeň 0 (= naimportovaná data) přímo přes SQL — účetnictví majitele nemá obraty, proto se vstup pro rozpouštění vytvoří ručně. Insertí hlavičku rzp_rozp (id_pred=0) a 1 řádek rzp_rozp_det se stupen='0' na zdrojový účet. Data: SQL: Data: DECLARE @id_def INT = (SELECT id_def FROM fenix.rzp_definice WHERE nazev='TS S03-02 definice'); Data: -- zdrojový účet = ODKUD konto stupně 1 (vytvořen v kroku 4) Data: DECLARE @id_konto_src INT = (SELECT TOP 1 po.id_konto Data: FROM fenix.rzp_pred_odkud po Data: JOIN fenix.rzp_pred_hla ph ON ph.id_pred_hla = po.id_pred_hla Data: JOIN fenix.rzp_pred p ON p.id_pred = ph.id_pred Data: WHERE p.nazev_pred='TS S03-02 předpis' AND ph.stupen='1'); Data: Data: -- hlavičková věta importu (id_pred=0); pokud už existuje, použij ji Data: DECLARE @id_rozp INT = (SELECT TOP 1 id_rozp FROM fenix.rzp_rozp WHERE id_def=@id_def AND id_pred=0 AND obdobi=1); Data: IF @id_rozp IS NULL Data: BEGIN Data: SET @id_rozp = (SELECT ISNULL(MAX(id_rozp),0)+1 FROM fenix.rzp_rozp); Data: INSERT INTO fenix.rzp_rozp (id_rozp, id_def, id_pred, obdobi, uzaverka, archiv) Data: VALUES (@id_rozp, @id_def, 0, 1, 'A', 'A'); Data: END Data: Data: -- řádek stupně 0 (= naimportovaná data); skut<>0, aby bylo co rozpouštět Data: IF NOT EXISTS (SELECT 1 FROM fenix.rzp_rozp_det WHERE id_rozp=@id_rozp AND stupen='0') Data: BEGIN Data: DECLARE @id_rd INT = (SELECT ISNULL(MAX(id_rozp_det),0)+1 FROM fenix.rzp_rozp_det); Data: INSERT INTO fenix.rzp_rozp_det (id_rozp_det, id_rozp, id_konto, stupen, skut, sr, ur, dodata, nakl_vyn) Data: VALUES (@id_rd, @id_rozp, @id_konto_src, '0', 1000, 0, 0, 1000, 'N'); Data: END Data: Data: SELECT @id_rozp AS id_rozp, Data: (SELECT COUNT(*) FROM fenix.rzp_rozp_det WHERE id_rozp=@id_rozp AND stupen='0') AS pocet_stupen0; Expected: Vznikne (or se znovu použije) hlavička rzp_rozp. The query returns pocet_stupen0 = 1. 6. [SQL audit] Optionally verify, že importovaná data jsou v DB. Data: SQL: Data: SELECT r.obdobi, r.uzaverka, COUNT(rd.id_rozp_det) AS pocet_radku_stupen0 Data: FROM fenix.rzp_rozp r Data: JOIN fenix.rzp_definice d ON d.id_def=r.id_def Data: LEFT JOIN fenix.rzp_rozp_det rd ON rd.id_rozp=r.id_rozp AND rd.stupen='0' Data: WHERE d.nazev='TS S03-02 definice' Data: GROUP BY r.obdobi, r.uzaverka; Expected: The query returns 1 řádek: obdobi=1, uzaverka='A', pocet_radku_stupen0 >= 1.
Expected result
The query returns 1 řádek: obdobi=1, uzaverka='A', pocet_radku_stupen0 >= 1.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S03-02_DistributionRun.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S03-02 — Allocating imported data (E2E).xlsx
SC-PRID-002 EP-PRID-RUN DistributionRun_TS001 Passed 10,4 s
▸ Step details (TC_ID: TC-E2E-049)
Preconditions
TS-000 proběhlo. V tabulce přijatých dat existuje řádek 'TS S03-02 definice' (dimenze SU+AU+Uz) / Období 01 (leden) se sloupcem Uzávěrka = A. Existuje 2-stupňový předpis 'TS S03-02 předpis' s vazbami ODKUD/KAM (párování i na dimenzi Uz).
Steps (Action / Data / Expected)
1. Open menu Úloha → Rozpouštění. Expected: Otevře se formulář 'Seznam provedených rozpouštění, za aktuální rok'. V poli pro výběr předpisu (Rzp_rozp_cis) je vybráno „TS S03-02 předpis“. 2. Click the button Rozpouštění. Expected: Displayed: okno „Vlastní rozpouštění jednotlivých stupňů“. Počáteční období a Počáteční stupeň je 1. 3. Nastav Konečné období = 1 a Konečný stupeň = 1. Data: Konečné období (cboObd) = 1 (leden 2026) Data: Konečný stupeň (cboStup) = 1 Data: (Počáteční období = 1 a počáteční stupeň = 1 jsou zobrazené automaticky.) Expected: Pole obsahují zadané hodnoty. 4. Click OK (cmdKonec). Expected: Displayed: dotaz 'Chcete provádět rozpouštění?' (Ano/Ne). 5. Click Ano. Expected: Spustí se progress indikátor. Displayed: okno s hláškou „Rozpouštění proběhlo v pořádku.“ 6. Klikni v dialogu na OK. Expected: The dialog closes. V seznamu provedených rozpouštění přibyl řádek pro Období 01, Stupeň 1. Účetní období Uzavřené — rozpouštění ji nemění (odráží stav účetního období, ne dokončenost rozpouštění). 7. [SQL audit] Optionally verify, že v DB přibyl stupeň 1. Data: SQL: Data: SELECT stupen, COUNT(*) AS pocet FROM fenix.rzp_rozp_det WHERE id_rozp IN (SELECT id_rozp FROM fenix.rzp_rozp r JOIN fenix.rzp_definice d ON d.id_def=r.id_def WHERE d.nazev='TS S03-02 definice') GROUP BY stupen ORDER BY stupen; Expected: The query returns 2 řádky: stupen='0' (původní importovaná data) a stupen='1' (nově rozpuštěná, pocet >= 1).
Expected result
The query returns 2 řádky: stupen='0' (původní importovaná data) a stupen='1' (nově rozpuštěná, pocet >= 1).
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S03-02_DistributionRun.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S03-02 — Allocating imported data (E2E).xlsx
SC-PRID-003 EP-PRID-RUN DistributionRun_TS002 Passed 10,5 s
▸ Step details (TC_ID: TC-E2E-050)
Preconditions
TS-001 proběhlo. V seznamu provedených rozpouštění existuje pro 'TS S03-02 definice' / Období 01 stupeň 1 (v DB i stupeň 0).
Steps (Action / Data / Expected)
1. Click Zrušit a znovu spusť rozpouštění (Úloha → Rozpouštění). Je zobrazen předpis 'TS S03-02 předpis'. Expected: Otevře se formulář 'Seznam provedených rozpouštění, za aktuální rok'. 2. Click the button Rozpouštění. Expected: Displayed: okno Vlastní rozpouštění jednotlivých stupňů. Počáteční období = 1 a Počáteční stupeň = 2. 3. Nastav Konečné období = 1 a Konečný stupeň = 2. Data: Konečné období (cboObd) = 1 (leden 2026) Data: Konečný stupeň (cboStup) = 2 Expected: Pole obsahují zadané hodnoty. 4. Click OK (cmdKonec). Expected: Displayed: dotaz 'Chcete provádět rozpouštění?' (Ano/Ne). 5. Click Ano. Expected: Spustí se progress indikátor. Displayed: okno s hláškou „Rozpouštění proběhlo v pořádku.“ 6. Klikni v dialogu na OK. Expected: The dialog closes. V seznamu provedených rozpouštění přibyl řádek Stupeň 2. Uzávěrka zůstává beze změny (rozpouštění ji nemění). 7. [SQL audit] Optionally verify invariant (suma na vstupu = suma na výstupu). Data: SQL: Data: SELECT stupen, COUNT(*) AS pocet, SUM(skut) AS suma_skut FROM fenix.rzp_rozp_det WHERE id_rozp IN (SELECT id_rozp FROM fenix.rzp_rozp r JOIN fenix.rzp_definice d ON d.id_def=r.id_def WHERE d.nazev='TS S03-02 definice') GROUP BY stupen ORDER BY stupen; Expected: The query returns 3 řádky (stupně 0, 1, 2). Při kompletním předpisu (součet klíčů KAM = 1) musí být suma_skut pro stupen='0' a stupen='2' stejná (invariant kompletního rozpuštění).
Expected result
The query returns 3 řádky (stupně 0, 1, 2). Při kompletním předpisu (součet klíčů KAM = 1) musí být suma_skut pro stupen='0' a stupen='2' stejná (invariant kompletního rozpuštění).
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S03-02_DistributionRun.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S03-02 — Allocating imported data (E2E).xlsx
SC-PRID-004 EP-PRID-RUN DistributionRun_TS003 Passed 8,1 s
▸ Step details (TC_ID: TC-E2E-051)
Preconditions
TS-000 proběhlo. Pro 'TS S03-02 definice' a Období 02 (únor) nejsou žádná naimportovaná data.
Steps (Action / Data / Expected)
1. Open Úloha → Rozpouštění a pro předpis TS S03-02 předpis klikni na tlačítko Rozpouštění (cmdRozpusteni). Data: Předpis = TS S03-02 předpis Expected: Otevře se okno 'Vlastní rozpouštění jednotlivých stupňů'. 2. Nastav Konečné období (cboObd) = 2 (únor 2026) a koncový stupeň (cboStup) = 1. (Počáteční období se zobrazí jako 02.) Data: Konečné období (cboObd) = 2 (únor 2026) Data: Konečný stupeň (cboStup) = 1 Expected: Pole obsahují zadané hodnoty. 3. Click OK. Expected: Displayed: dotaz 'Chcete provádět rozpouštění?' (Ano/Ne). 4. Click Ano. Expected: Spustí se progress indikátor. Displayed: modální dialog s hláškou doslova 'Pro období '2' nejsou přijatá data.' s tlačítkem OK. 5. Klikni v dialogu na OK. Expected: The dialog closes a formulář 'Vlastní rozpouštění' se zavře (návrat na seznam provedených rozpouštění). Žádné rozpouštění pro Období 2 nevzniklo.
Expected result
The dialog closes a formulář 'Vlastní rozpouštění' se zavře (návrat na seznam provedených rozpouštění). Žádné rozpouštění pro Období 2 nevzniklo.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S03-02_DistributionRun.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S03-02 — Allocating imported data (E2E).xlsx
SC-PRID-005 EP-PRID-RUN DistributionRun_TS004 Passed 8,1 s
▸ Step details (TC_ID: TC-E2E-052)
Preconditions
TS-002 proběhlo (TS-003 stav nezměnilo). V seznamu provedených rozpouštění existují pro 'TS S03-02 definice' / Období 01 stupně 1 a 2 (v DB i stupeň 0).
Steps (Action / Data / Expected)
1. Open Úloha → Rozpouštění. Data: Předpis = TS S03-02 předpis Expected: Otevře se formulář 'Seznam provedených rozpouštění, za aktuální rok'. 2. Click the button Rozpouštění pro řádek (Období 1, Stupeň 2). Expected: Displayed: okno Vlastní rozpouštění jednotlivých stupňů. Počáteční období = 2, Počáteční stupeň = 1. 3. Nastav Konečné období = 1 a Konečný stupeň = 2. Data: Období = 1 (leden 2026) Data: Stupeň = 2 (již provedený v TS-002) Expected: Displayed: modální okno s hláškou doslova „Konečné období nemůže být menší než je počáteční období.“ 4. Click OK. Expected: The dialog closes. 5. [SQL audit] Optionally verify, že počet řádků stupně 1 se nezměnil. Data: SQL: SELECT stupen, COUNT(*) AS pocet FROM fenix.rzp_rozp_det WHERE id_rozp IN (SELECT id_rozp FROM fenix.rzp_rozp r JOIN fenix.rzp_definice d ON d.id_def=r.id_def WHERE d.nazev='TS S03-02 definice') GROUP BY stupen ORDER BY stupen; Expected: The query returns stupně 0, 1 a 2; počet řádků se oproti stavu po TS-002 nezměnil (žádný duplicitní záznam).
Expected result
The query returns stupně 0, 1 a 2; počet řádků se oproti stavu po TS-002 nezměnil (žádný duplicitní záznam).
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S03-02_DistributionRun.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S03-02 — Allocating imported data (E2E).xlsx
SC-PRID-006 EP-PRID-RUN DistributionRun_TS005 Passed 8,9 s
▸ Step details (TC_ID: TC-E2E-053)
Preconditions
TS-002 a TS-004 proběhly. V seznamu provedených rozpouštění existují pro Období 01 stupně 1 a 2 (v DB i stupeň 0).
Steps (Action / Data / Expected)
1. Open Úloha → Rozpouštění. Data: Předpis = TS S03-02 předpis Data: Vybraný řádek = poslední (Stupeň 2) Expected: Otevře se formulář 'Seznam provedených rozpouštění, za aktuální rok'. 2. Pro předpis 'TS S03-02 předpis' select poslední řádek (Stupeň 2) a klikni na Vymazat. Expected: Displayed: potvrzovací dialog 'Chcete provést vymazání rozpouštěcího stupně?' s tlačítky Ano / Ne. 3. Click Ano. Expected: The dialog closes. Řádek Stupeň 2 zmizí ze seznamu; zůstává Stupeň 1. Uzávěrka se nemění (mazání se jí netýká). 4. [SQL audit] Optionally verify, že stupeň 2 byl skutečně smazán. Data: SQL: SELECT stupen, COUNT(*) AS pocet FROM fenix.rzp_rozp_det WHERE id_rozp IN (SELECT id_rozp FROM fenix.rzp_rozp r JOIN fenix.rzp_definice d ON d.id_def=r.id_def WHERE d.nazev='TS S03-02 definice') GROUP BY stupen ORDER BY stupen; Expected: The query returns pouze stupně '0' a '1' (žádný stupen='2').
Expected result
The query returns pouze stupně '0' a '1' (žádný stupen='2').
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S03-02_DistributionRun.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S03-02 — Allocating imported data (E2E).xlsx
SC-PRID-007 EP-PRID-RUN DistributionRun_TS006 Manual ✓ manual
MANUALLY VERIFIED — iva.holeckova, 2026-06-22. Reason not automated: Destructive scenario: killing the Fenix.RZP.WinForms.exe process in the middle of a transaction would destroy the shared E2E session. Procedure/evidence: QA sign-off by user iva.holeckova, manually executed according to manual-test-procedures.md #2.
▸ Step details (TC_ID: TC-E2E-054)
Preconditions
TS-005 proběhlo. V DB jsou pro 'TS S03-02 definice' / Období 01 pouze stupně 0 a 1.
Steps (Action / Data / Expected)
1. Najdi PID procesu Fenix.RZP.WinForms.exe v Task Manageru. Poznamenej si jeho PID. Expected: PID procesu je známý. 2. Ve 'Vlastní rozpouštění jednotlivých stupňů' nastav koncový stupeň = 2, klikni OK a potvrď 'Chcete provádět rozpouštění?' Ano. Data: Koncové období = 01 (leden 2026) Data: Koncový stupeň = 2 Expected: Spustí se progress indikátor. 3. Do 200 ms po kliknutí ukonči proces aplikace (Task Manager → Ukončit úlohu or `Stop-Process -Id <PID> -Force`). Expected: Proces je ukončen. Žádný dialog se nezobrazí. 4. Počkej 5 sekund, spusť aplikaci znovu a open Úloha → Rozpouštění → 'TS S03-02 předpis' → Seznam provedených rozpouštění. Expected: V seznamu provedených rozpouštění jsou pro Období 01 stále jen stupeň 1 (v DB i stupeň 0); stupeň 2 nevznikl — transakce byla atomická (rollback). 5. [SQL audit] Diagnostika rollbacku. Data: SQL: Data: SELECT 'rozp_det stupen 2' AS k, COUNT(*) AS v FROM fenix.rzp_rozp_det WHERE id_rozp IN (SELECT id_rozp FROM fenix.rzp_rozp r JOIN fenix.rzp_definice d ON d.id_def=r.id_def WHERE d.nazev='TS S03-02 definice') AND stupen='2' Data: UNION ALL SELECT 'zombie sessions', (SELECT COUNT(*) FROM sys.dm_exec_requests WHERE database_id=DB_ID('fenix_1001') AND status NOT IN ('background','sleeping')); Expected: rozp_det stupen 2 = 0 (žádný částečný stupeň), zombie sessions = 0.
Expected result
rozp_det stupen 2 = 0 (žádný částečný stupeň), zombie sessions = 0.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S03-02_DistributionRun.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S03-02 — Allocating imported data (E2E).xlsx
SC-PRID-008 EP-PRID-RUN DistributionRun_TS007 Passed 743 ms
▸ Step details (TC_ID: TC-E2E-055)
Preconditions
Sada proběhla. V DB jsou pomocné řádky (definice, předpis, stupně, dimenze, import, detaily).
Steps (Action / Data / Expected)
1. [SQL cleanup] Delete data v správném pořadí (od listů ke kořeni). Data: SQL: Data: DELETE FROM fenix.rzp_rozp_det WHERE id_rozp IN (SELECT id_rozp FROM fenix.rzp_rozp WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE nazev='TS S03-02 definice')); Data: DELETE FROM fenix.rzp_rozp WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE nazev='TS S03-02 definice'); Data: DELETE FROM fenix.rzp_konto WHERE id_konto IN ( Data: SELECT id_konto FROM fenix.rzp_pred_odkud WHERE id_pred_hla IN (SELECT id_pred_hla FROM fenix.rzp_pred_hla WHERE id_pred IN (SELECT id_pred FROM fenix.rzp_pred WHERE nazev_pred='TS S03-02 předpis')) Data: UNION SELECT id_konto FROM fenix.rzp_pred_kam WHERE id_pred_odkud IN (SELECT id_pred_odkud FROM fenix.rzp_pred_odkud WHERE id_pred_hla IN (SELECT id_pred_hla FROM fenix.rzp_pred_hla WHERE id_pred IN (SELECT id_pred FROM fenix.rzp_pred WHERE nazev_pred='TS S03-02 předpis'))) Data: ) AND id_konto NOT IN (SELECT id_konto FROM fenix.rzp_rozp_det); Data: DELETE FROM fenix.rzp_pred_kam WHERE id_pred_odkud IN (SELECT id_pred_odkud FROM fenix.rzp_pred_odkud WHERE id_pred_hla IN (SELECT id_pred_hla FROM fenix.rzp_pred_hla WHERE id_pred IN (SELECT id_pred FROM fenix.rzp_pred WHERE nazev_pred='TS S03-02 předpis'))); Data: DELETE FROM fenix.rzp_pred_odkud WHERE id_pred_hla IN (SELECT id_pred_hla FROM fenix.rzp_pred_hla WHERE id_pred IN (SELECT id_pred FROM fenix.rzp_pred WHERE nazev_pred='TS S03-02 předpis')); Data: DELETE FROM fenix.rzp_pred_hla WHERE id_pred IN (SELECT id_pred FROM fenix.rzp_pred WHERE nazev_pred='TS S03-02 předpis'); Data: DELETE FROM fenix.rzp_pred WHERE nazev_pred='TS S03-02 předpis'; Data: DELETE FROM fenix.rzp_ucet_det WHERE popis='TS S03-02 detail'; Data: DELETE FROM fenix.rzp_definice WHERE nazev='TS S03-02 definice' AND id_maj=10 AND rok=2026; Expected: Všechny DELETE proběhnou bez chyby (žádné FK violation), vč. účtů rzp_konto a naseedovaných vět rzp_rozp/rzp_rozp_det vytvořených sadou. 2. [SQL cleanup] Final post-check. Data: SQL: Data: SELECT 'def S03-02' AS k, COUNT(*) AS v FROM fenix.rzp_definice WHERE nazev='TS S03-02 definice' Data: UNION ALL SELECT 'pred S03-02', COUNT(*) FROM fenix.rzp_pred WHERE nazev_pred='TS S03-02 předpis' Data: UNION ALL SELECT 'rozp S03-02', COUNT(*) FROM fenix.rzp_rozp r JOIN fenix.rzp_definice d ON d.id_def=r.id_def WHERE d.nazev='TS S03-02 definice' Data: UNION ALL SELECT 'majitel Bata', COUNT(*) FROM fenix.rzp_majitel WHERE ico=44268050; Expected: Řádky 'def S03-02', 'pred S03-02' a 'rozp S03-02' = 0. Řádek 'majitel Bata' = 1.
Expected result
Řádky 'def S03-02', 'pred S03-02' a 'rozp S03-02' = 0. Řádek 'majitel Bata' = 1.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S03-02_DistributionRun.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S03-02 — Allocating imported data (E2E).xlsx

TS-RZP-S04-01 — Report printing 21a – Overview of direct costs and revenues at period end (E2E) All passed

11 / 11 passed — TS-RZP-S04-01 — Report printing 21a – Overview of direct costs and revenues at period end (E2E).xlsx · JSON spec

ScenarioEpicTest methodStatusTimeError / Detail
SC-TISK21A-001 EP-TISK21A-RPT PrintDirectNVOverview_TS000 Passed
▸ Step details (TC_ID: TC-E2E-056)
Preconditions
Uživatel má přístup k testovací DB (SQL klient) i k aplikaci Haifa. Majitel Bata (Company ID 44268050) je založen a má licenci RZP. V hlavním účetnictví je období 2026/01 uzavřené a obsahuje data.
Steps (Action / Data / Expected)
1. [SQL setup] Připoj se SQL klientem k testovací databázi. Data: Server = 172.29.7.21\NEOHEF,14330 Data: Database = fenix_1001 Data: User = fenix Expected: Connection established. 2. [SQL setup] Pre-flight: ukaž, zda v DB nezůstaly zbytky této sady. Data: SQL: Data: SELECT 'def S04-01' AS k, COUNT(*) AS v FROM fenix.rzp_definice WHERE nazev='TS S04-01 definice' Data: UNION ALL SELECT 'rozp S04-01', COUNT(*) FROM fenix.rzp_rozp r JOIN fenix.rzp_definice d ON d.id_def=r.id_def WHERE d.nazev='TS S04-01 definice'; Expected: Oba řádky = 0. Pokud nejsou, dokonči nejdřív úklidový scénář TS-010. 3. [SQL setup] Free slot (id_maj=10, rok=2026) – idempotentní DELETE řetěz dítě→rodič přes rzp_rozp_det → rzp_rozp → (rzp_pred_*) → rzp_pred → rzp_definice. Maže jen zbytková TESTOVACÍ data v tomto slotu. Data: SQL: Data: DELETE FROM fenix.rzp_rozp_det WHERE id_rozp IN (SELECT id_rozp FROM fenix.rzp_rozp WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE id_maj=10 AND rok=2026 AND nazev='TS S04-01 definice')); Data: DELETE FROM fenix.rzp_rozp WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE id_maj=10 AND rok=2026 AND nazev='TS S04-01 definice'); Data: DELETE FROM fenix.rzp_definice WHERE id_maj=10 AND rok=2026 AND nazev='TS S04-01 definice'; Expected: DELETE proběhnou bez chyby (při čistém prostředí smažou 0 řádků). 4. [SQL setup] Insert pomocnou definici přes MAX+1 (nikdy natvrdo – kolize na globálním PK). Data: SQL: Data: DECLARE @id_def INT = (SELECT ISNULL(MAX(id_def),0)+1 FROM fenix.rzp_definice); Data: INSERT INTO fenix.rzp_definice (id_def, id_maj, rok, id_ucet, z_text, poradi, nazev, konstanta, popis) Data: VALUES (@id_def, 10, 2026, 28, '00000000000000', '0001-1-1-1-1-1-1-1-1-1-1-1-1', 'TS S04-01 definice', '----------------------------', 'Sada TS-RZP-S04-01'); Data: SELECT @id_def AS id_def_pouzite; Expected: INSERT proběhne (1 řádek). SELECT vrátí použité id_def (jen pro orientaci). 5. In the application select majitele Bata (Company ID 44268050), nastav rok 2026 a open Úloha → Příjem dat z účetnictví. Select definici 'TS S04-01 definice', klikni Detail, select Období = 01 (leden 2026) a spusť Příjem (postup viz TS-RZP-S03-01 TS-001). Data: Majitel = Bata (Company ID 44268050) Data: Rok = 2026 Data: Definice = TS S04-01 definice Data: Období = 01 (leden 2026) Expected: Po dokončení se v tabulce přijatých dat objeví řádek (Definice = 'TS S04-01 definice', Období = 01, Uzávěrka = N, Archiv = N). 6. [SQL setup] Doplň PLÁN (sr = schválený rozpočet, ur = upravený rozpočet) na přímé řádky (stupeň 0). Sestava 21a tiskne sloupce plánu i % plnění (ověřeno v RzpSestavaBuilder.Render21aRows: FormatPlanAmount21(r.Sr/r.Ur) + pctPs/pctPu). Plán odvozen ze skutečnosti, ať je nenulový a deterministický. Data: SQL: Data: UPDATE rd Data: SET rd.sr = ROUND(rd.skut * 0.90, 2), Data: rd.ur = ROUND(rd.skut * 0.95, 2) Data: FROM fenix.rzp_rozp_det rd Data: JOIN fenix.rzp_rozp r ON r.id_rozp = rd.id_rozp Data: WHERE r.id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE nazev='TS S04-01 definice'); Expected: UPDATE nastaví sr ≈ 90 % a ur ≈ 95 % skutečnosti na přímých řádcích sady. 7. [SQL audit] Ověř přímá data (stupeň 0) vč. plánu. Data: SQL: Data: SELECT r.obdobi, r.uzaverka, COUNT(rd.id_rozp_det) AS radku_stupen0, SUM(rd.skut) AS suma_skut, SUM(rd.sr) AS suma_sr, SUM(rd.ur) AS suma_ur Data: FROM fenix.rzp_rozp r Data: JOIN fenix.rzp_definice d ON d.id_def=r.id_def Data: LEFT JOIN fenix.rzp_rozp_det rd ON rd.id_rozp=r.id_rozp AND rd.stupen='0' Data: WHERE d.nazev='TS S04-01 definice' Data: GROUP BY r.obdobi, r.uzaverka; Expected: The query returns 1 řádek: obdobi=1, uzaverka='N', radku_stupen0 >= 1, suma_skut > 0 a suma_sr/suma_ur > 0. Sestava 21a má co tisknout vč. plánu.
Expected result
The query returns 1 řádek: obdobi=1, uzaverka='N', radku_stupen0 >= 1, suma_skut > 0 a suma_sr/suma_ur > 0. Sestava 21a má co tisknout vč. plánu.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-01_PrintDirectNVOverview.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-01 — Report printing 21a – Overview of direct costs and revenues at period end (E2E).xlsx
SC-TISK21A-002 EP-TISK21A-RPT PrintDirectNVOverview_TS001 Passed
▸ Step details (TC_ID: TC-E2E-057)
Preconditions
TS-000 proběhlo. Majitel Baťa je vybrán, rok = 2026. Přihlášený uživatel má oprávnění Přehledy (ReportGeneral=80) i Přehled přímých (ReportDirect).
Steps (Action / Data / Expected)
1. V hlavním menu rozbal Přehledy. Ověř, že kořen i položky jsou aktivní (majitel je vybrán + oprávnění udělena). Expected: Menu Přehledy je povolené a obsahuje 5 skupin (21, 22, 23, 24, 29) s celkem 13 položkami. 2. Click Přehledy → 21 → '21a - Přehled přímých N/V ke konci období'. Data: VariantTag = 21a Expected: Otevře se MDI formulář s titulkem doslova '21a - Přehled přímých N/V ke konci období'. Pole Název sestavy obsahuje stejný text. Tlačítka OK, Zrušit, Nápověda jsou viditelná. 3. Zkontroluj záhlaví formuláře (zdroj tištěného záhlaví): IČO, DIČ, Název organizace, Rok. Expected: IČO = 44268050, DIČ = (DIČ majitele Baťa), Název = obchodní jméno majitele Baťa, Rok = 2026. Hodnoty odpovídají kartě majitele 1:1. 4. Zkontroluj výchozí přepínače výstupu a typu hodnot. Expected: Přepínač Report je zaškrtnutý (výchozí), Excel není. Pro variantu 21x je viditelná dvojice Plán/Kč: 'plán v tisících' (optPlanTis) je výchozí. Pole Období od / Období do jsou prázdná a editovatelná, fokus je na Období od.
Expected result
Přepínač Report je zaškrtnutý (výchozí), Excel není. Pro variantu 21x je viditelná dvojice Plán/Kč: 'plán v tisících' (optPlanTis) je výchozí. Pole Období od / Období do jsou prázdná a editovatelná, fokus je na Období od.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-01_PrintDirectNVOverview.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-01 — Report printing 21a – Overview of direct costs and revenues at period end (E2E).xlsx
SC-TISK21A-003 EP-TISK21A-RPT PrintDirectNVOverview_TS002 Passed
▸ Step details (TC_ID: TC-E2E-058)
Preconditions
Formulář Report printing (21a) je otevřen.
Steps (Action / Data / Expected)
1. V menu formuláře open Nastavení → 'Počet řádků na stránce' (legacy menradky). Expected: Otevře se modální dialog s titulkem doslova 'Nastavení sestav'. Uvnitř je rámeček 'Sestava'. 2. Zkontroluj popisky a rozložení dialogu. Expected: Popisky jsou doslova: 'Počet znaků na řádku', 'Počet řádků na stránce', 'Úzká', 'Široká', 'Typ sestavy'. Layout odpovídá VB6 (dva sloupce úzká/široká, dva řádky znaky/řádky). 3. Zkontroluj výchozí hodnoty ve 4 polích. Expected: Úzká – počet znaků na řádku = 80; Úzká – počet řádků na stránce = 20; Široká – počet znaků na řádku = 130; Široká – počet řádků na stránce = 20. 4. Click Zrušit (or press Esc). Expected: The dialog closes bez uložení (žádná změna nastavení). Vrátíš se do formuláře Report printing.
Expected result
The dialog closes bez uložení (žádná změna nastavení). Vrátíš se do formuláře Report printing.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-01_PrintDirectNVOverview.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-01 — Report printing 21a – Overview of direct costs and revenues at period end (E2E).xlsx
SC-TISK21A-004 EP-TISK21A-RPT PrintDirectNVOverview_TS003 Passed
▸ Step details (TC_ID: TC-E2E-059)
Preconditions
Formulář Report printing (21a) je otevřen, dialog Nastavení sestav je dostupný.
Steps (Action / Data / Expected)
1. Open Nastavení → 'Počet řádků na stránce'. Vymaž pole 'Úzká – počet znaků na řádku' a klikni OK. Data: Úzká znaků na řádku = (prázdné) Expected: Displayed: modální hláška doslova 'Není vyplněn počet znaků na řádku pro úzkou sestavu.' Dialog zůstává otevřený, fokus se vrátí do prázdného pole, nic se neuloží. 2. Vrať do pole 'Úzká – počet znaků na řádku' hodnotu 50 a opusť pole (Tab/klik jinam). Data: Úzká znaků na řádku = 50 Expected: Displayed: informační hláška doslova 'Minimální počet znaků na řádku je 80' a hodnota v poli se přepíše na 80. 3. Do pole 'Úzká – počet řádků na stránce' zadej 10 a opusť pole. Data: Úzká řádků na stránce = 10 Expected: Displayed: hláška doslova 'Minimální počet řádků na stránce je 20' a hodnota se přepíše na 20. 4. Do pole 'Široká – počet znaků na řádku' zadej 125 a opusť pole. Data: Široká znaků na řádku = 125 Expected: LEGACY PARITA: zobrazí se hláška doslova 'Minimální počet znaků na řádku je 130' a hodnota se přepíše na 130 (NE na 120 – vědomě zachovaný nesoulad VB6: min-check 120, clamp 130). 5. Click Zrušit. Expected: The dialog closes bez uložení. Změny ořízlé na obrazovce se NEpersistují (Zrušit = bez zápisu).
Expected result
The dialog closes bez uložení. Změny ořízlé na obrazovce se NEpersistují (Zrušit = bez zápisu).
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-01_PrintDirectNVOverview.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-01 — Report printing 21a – Overview of direct costs and revenues at period end (E2E).xlsx
SC-TISK21A-005 EP-TISK21A-RPT PrintDirectNVOverview_TS004 Passed
▸ Step details (TC_ID: TC-E2E-060)
Preconditions
Aplikace běží, majitel Baťa je vybrán. K dispozici je alespoň jedna nainstalovaná tiskárna ve Windows.
Steps (Action / Data / Expected)
1. Open Úloha → Nákladové a výnosové účty. V menu formuláře open Nastavení → 'Nastavení tiskárny'. Expected: Otevře se sdílený systémový dialog pro nastavení tiskárny (SPOL ILegacyPrinterSetupDialogService) jako modální okno nad formulářem. Není to lokální PageSetupDialog ani textový placeholder a NEzobrazí se hláška o blokované funkci. 2. Zkontroluj, že dialog nabízí výběr tiskárny, formátu papíru a orientace (na výšku/na šířku). Expected: Dialog obsahuje seznam tiskáren a volby papíru/orientace odpovídající legacy chování. Vlastníkem (owner) dialogu je formulář, ze kterého byl otevřen. 3. Změň orientaci na 'Na šířku' a potvrď OK. Data: Orientace = Na šířku Expected: The dialog closes s OK. Volba se předá tiskové vrstvě (nasdílí se do následného tisku sestavy). 4. Znovu open 'Nastavení tiskárny' a ověř, že předchozí volba zůstala. Expected: Dialog se otevře se zapamatovanou orientací 'Na šířku' (nastavení je perzistentní v rámci session).
Expected result
Dialog se otevře se zapamatovanou orientací 'Na šířku' (nastavení je perzistentní v rámci session).
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-01_PrintDirectNVOverview.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-01 — Report printing 21a – Overview of direct costs and revenues at period end (E2E).xlsx
SC-TISK21A-006 EP-TISK21A-RPT PrintDirectNVOverview_TS005 Passed
▸ Step details (TC_ID: TC-E2E-061)
Preconditions
TS-000 proběhlo (existují přímá data za období 01). Formulář Report printing (21a) je otevřen.
Steps (Action / Data / Expected)
1. Ve formuláři Report printing ponech přepínač Report zaškrtnutý, vyplň Období od = 01 a Období do = 01 a klikni OK. Data: Výstup = Report Data: Období od = 01 (leden 2026) Data: Období do = 01 Expected: Otevře se modální okno 'Report printing' s náhledem sestavy. Nezobrazí se žádná chybová hláška ani informace 'nejsou data'. 2. V náhledu zkontroluj blok ZÁHLAVÍ na první straně proti Golden Master (test/Data/GoldenMaster/SC-05/21a). Expected: Záhlaví obsahuje (1:1 s VB6): obchodní jméno majitele Baťa, IČO 44268050, DIČ majitele, Rok 2026, název sestavy '21a - Přehled přímých N/V ke konci období' a text období 'za období 01' (resp. 01–01). Rozložení, popisky a zarovnání jsou shodné s referencí. 3. Zkontroluj tělo: přímá data (stupeň 0) + sloupce plánu a plnění. Poté přepni mezi 'Plán v tisících' a 'Plán v Kč' a sleduj sloupce plánu. Expected: V těle jsou řádky přímých N/V (su/au + skutečnost) se sloupci schválený rozpočet (sr), upravený rozpočet (ur) a % plnění (legacy Render21aRows). Hlavička částek je '(v Kč)' or '(v tis. Kč)' dle přepínače; přepnutí na 'Plán v tisících' vydělí částky plánu 1000 (FormatPlanAmount21). Žádné rozpouštěcí stupně se u 21a netisknou. Vše 1:1 s Golden Master. 4. Zavři náhled (Storno / zavřít okno) bez tisku. Expected: Okno náhledu se zavře, vrátíš se do formuláře Report printing, který zůstává otevřený (legacy: po náhledu se formulář nezavírá).
Expected result
Okno náhledu se zavře, vrátíš se do formuláře Report printing, který zůstává otevřený (legacy: po náhledu se formulář nezavírá).
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-01_PrintDirectNVOverview.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-01 — Report printing 21a – Overview of direct costs and revenues at period end (E2E).xlsx
SC-TISK21A-007 EP-TISK21A-RPT PrintDirectNVOverview_TS006 Passed
▸ Step details (TC_ID: TC-E2E-062)
Preconditions
Náhled sestavy 21a z TS-005 lze znovu otevřít (data za období 01 existují).
Steps (Action / Data / Expected)
1. Open náhled sestavy 21a (jako v TS-005) a přejdi na poslední/první stránku tak, abys viděl zápatí. Expected: Zápatí je viditelné na každé straně. 2. Zkontroluj formát čísla strany v zápatí proti Golden Master. Expected: Číslo strany je ve formátu shodném s VB6 (např. 'Strana X' or 'Strana X z Y' – přesně dle reference). Stránkování odpovídá nastavení Počet řádků na stránce z TS-002. 3. Zkontroluj datum/čas tisku (razítko) v zápatí proti Golden Master. Expected: Datum a čas tisku jsou ve stejném formátu jako v referenci (porovnává se FORMÁT, ne konkrétní hodnota – aktuální datum/čas se přirozeně liší). 4. Při více stránkách ověř, že záhlaví i zápatí se opakuje na každé straně. Expected: Na všech stranách je shodné záhlaví i zápatí (opakování dle Crystal sekcí Page Header / Page Footer), 1:1 s referencí.
Expected result
Na všech stranách je shodné záhlaví i zápatí (opakování dle Crystal sekcí Page Header / Page Footer), 1:1 s referencí.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-01_PrintDirectNVOverview.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-01 — Report printing 21a – Overview of direct costs and revenues at period end (E2E).xlsx
SC-TISK21A-008 EP-TISK21A-RPT PrintDirectNVOverview_TS007 Passed
▸ Step details (TC_ID: TC-E2E-063)
Preconditions
TS-004 (nastavení tiskárny) a TS-005 (náhled) proběhly. Je k dispozici tiskárna or PDF tiskárna (např. Microsoft Print to PDF).
Steps (Action / Data / Expected)
1. V okně 'Report printing' select výstupní zařízení 'Tiskárna' (případně PDF tiskárnu) a spusť Tisk. Data: Výstupní zařízení = Microsoft Print to PDF (pro porovnání) Expected: Tisk proběhne bez chyby. Při tisku do PDF vznikne soubor. Po dokončení okno zůstává otevřené, formulář Report printing se nezavírá. 2. Porovnej vytištěnou stránku (PDF) s Golden Master referencí pro 21a. Data: Reference = test/Data/GoldenMaster/SC-05/21a Expected: Celá stránka je 1:1 s referencí: marže, font a velikost písma, šířka sloupců, záhlaví (IČO/DIČ/název/rok/název sestavy/období), tělo (přímá data) i zápatí (strana, datum/čas). Rozdíl < 1 % (gate parity). 3. Pokud nastavení tiskárny z TS-004 bylo 'Na šířku', ověř orientaci výstupu. Expected: Výstup respektuje zvolenou orientaci z dialogu Nastavení tiskárny (na šířku), shodně s legacy chováním.
Expected result
Výstup respektuje zvolenou orientaci z dialogu Nastavení tiskárny (na šířku), shodně s legacy chováním.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-01_PrintDirectNVOverview.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-01 — Report printing 21a – Overview of direct costs and revenues at period end (E2E).xlsx
SC-TISK21A-009 EP-TISK21A-RPT PrintDirectNVOverview_TS008 Passed
▸ Step details (TC_ID: TC-E2E-064)
Preconditions
TS-000 proběhlo (existují přímá data za období 01). Formulář Report printing (21a) je otevřen.
Steps (Action / Data / Expected)
1. Ve formuláři Report printing přepni výstup na Excel, vyplň Období od = 01 a Období do = 01 a klikni OK. Data: Výstup = Excel Data: Období od = 01 Data: Období do = 01 Expected: Sestava se uloží do CSV (legacy cesta rzpexcel.csv) a automaticky se otevře v Excelu (přes výchozí přiřazení .csv). Po exportu se NEzobrazí potvrzovací hláška (legacy záměr). 2. V otevřeném CSV/Excelu zkontroluj záhlaví souboru. Expected: Záhlaví obsahuje IČO 44268050 a obchodní jméno majitele Baťa (ExcelHeaderContext) – shodně se záhlavím tištěné sestavy. 3. Zkontroluj, že tělo obsahuje datové řádky přímých N/V za období 01. Expected: V CSV jsou datové řádky odpovídající přímým datům (su/au + skutečnost) za zvolené období. 4. Negativní pod-případ: zkus se o export pro období bez dat (Období od/do = 02). Data: Výstup = Excel Data: Období od = 02 Data: Období do = 02 Expected: Displayed: informační hláška o tom, že nejsou data (NoData) a žádný CSV se nevytvoří. Formulář zůstává otevřený.
Expected result
Displayed: informační hláška o tom, že nejsou data (NoData) a žádný CSV se nevytvoří. Formulář zůstává otevřený.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-01_PrintDirectNVOverview.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-01 — Report printing 21a – Overview of direct costs and revenues at period end (E2E).xlsx
SC-TISK21A-010 EP-TISK21A-RPT PrintDirectNVOverview_TS009 Passed
▸ Step details (TC_ID: TC-E2E-065)
Preconditions
Formulář Report printing (21a) je otevřen.
Steps (Action / Data / Expected)
1. Vymaž pole Název sestavy a klikni OK. Data: Název sestavy = (prázdné) Expected: Displayed: hláška doslova 'Chybí název sestavy!' Fokus se vrátí do pole Název sestavy, tisk se nespustí. 2. Vrať název sestavy, nech Období od prázdné a klikni OK. Data: Období od = (prázdné) Expected: Displayed: hláška doslova 'Chybí účetní období od!' Fokus na Období od, tisk se nespustí. 3. Vyplň Období od = 01, nech Období do prázdné a klikni OK. Data: Období od = 01 Data: Období do = (prázdné) Expected: Displayed: hláška doslova 'Chybí účetní období do!' Fokus na Období do, tisk se nespustí. 4. Vyplň Období od = 06 a Období do = 03 a klikni OK. Data: Období od = 06 Data: Období do = 03 Expected: Displayed: hláška doslova 'Účetní období od je větší než do !' (pozor – mezera před vykřičníkem, parita). Fokus na Období od, tisk se nespustí.
Expected result
Displayed: hláška doslova 'Účetní období od je větší než do !' (pozor – mezera před vykřičníkem, parita). Fokus na Období od, tisk se nespustí.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-01_PrintDirectNVOverview.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-01 — Report printing 21a – Overview of direct costs and revenues at period end (E2E).xlsx
SC-TISK21A-011 EP-TISK21A-RPT PrintDirectNVOverview_TS010 Passed
▸ Step details (TC_ID: TC-E2E-066)
Preconditions
Formulář Report printing (21a) je otevřen, vyplněný název sestavy.
Steps (Action / Data / Expected)
1. Vyplň Období od = 5 a Období do = 0 a klikni OK. Data: Období od = 5 Data: Období do = 0 Expected: LEGACY (parity požadavek): hláška doslova 'Účetní období od je větší než do !' (od>do se v legacy kontroluje jako první). POZOR – NEO aktuálně zobrazí 'Chybí účetní období do!' (kontroluje do<=0 dříve) = parity ROZDÍL. 2. Klikni v dialogu na OK. Expected: The dialog closes, formulář zůstává otevřený v režimu zadávání, tisk se nespustí.
Expected result
The dialog closes, formulář zůstává otevřený v režimu zadávání, tisk se nespustí.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-01_PrintDirectNVOverview.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-01 — Report printing 21a – Overview of direct costs and revenues at period end (E2E).xlsx

TS-RZP-S04-02 — Report printing 21b – Post-allocation overview of costs and revenues at period end (E2E) All passed

6 / 6 passed — TS-RZP-S04-02 — Report printing 21b – Post-allocation overview of costs and revenues at period end (E2E).xlsx · JSON spec

ScenarioEpicTest methodStatusTimeError / Detail
SC-TISK21B-001 EP-TISK21B-RPT PrintPostDistributionNV_TS000 Passed
▸ Step details (TC_ID: TC-E2E-068)
Preconditions
Přístup k testovací DB i k aplikaci Haifa. Majitel Bata (Company ID 44268050) je založen s licencí RZP. V hlavním účetnictví je 2026/01 uzavřené a obsahuje data. Uživatel má oprávnění Přehled po rozpouštění (ReportPostDistribution).
Steps (Action / Data / Expected)
1. [SQL setup] Připoj se k testovací DB. Data: Server = 172.29.7.21\NEOHEF,14330 Data: Database = fenix_1001 Data: User = fenix Expected: Connection established. 2. [SQL setup] Free slot (id_maj=10, rok=2026) pro tuto sadu – idempotentní DELETE řetěz dítě→rodič. Data: SQL: Data: DELETE FROM fenix.rzp_rozp_det WHERE id_rozp IN (SELECT id_rozp FROM fenix.rzp_rozp WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE id_maj=10 AND rok=2026 AND nazev='TS S04-02 definice')); Data: DELETE FROM fenix.rzp_rozp WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE id_maj=10 AND rok=2026 AND nazev='TS S04-02 definice'); Data: DELETE FROM fenix.rzp_pred_hla WHERE id_pred IN (SELECT id_pred FROM fenix.rzp_pred WHERE nazev_pred='TS S04-02 předpis'); Data: DELETE FROM fenix.rzp_pred WHERE nazev_pred='TS S04-02 předpis'; Data: DELETE FROM fenix.rzp_definice WHERE id_maj=10 AND rok=2026 AND nazev='TS S04-02 definice'; Expected: DELETE proběhnou bez chyby (při čistém prostředí 0 řádků). 3. [SQL setup] Insert definici, detail účtu a 2-stupňový předpis přes MAX+1. Data: SQL: Data: DECLARE @id_def INT = (SELECT ISNULL(MAX(id_def),0)+1 FROM fenix.rzp_definice); Data: DECLARE @id_pred INT = (SELECT ISNULL(MAX(id_pred),0)+1 FROM fenix.rzp_pred); Data: DECLARE @id_hla INT = (SELECT ISNULL(MAX(id_pred_hla),0)+1 FROM fenix.rzp_pred_hla); Data: INSERT INTO fenix.rzp_definice (id_def, id_maj, rok, id_ucet, z_text, poradi, nazev, konstanta, popis) Data: VALUES (@id_def, 10, 2026, 28, '00000000000000', '0001-1-1-1-1-1-1-1-1-1-1-1-1', 'TS S04-02 definice', '----------------------------', 'Sada TS-RZP-S04-02'); Data: INSERT INTO fenix.rzp_pred (id_pred, id_def, c_poradi, pocet, plan_skut, nazev_pred, popis) Data: VALUES (@id_pred, @id_def, 1, '2', 'S', 'TS S04-02 předpis', '2-stupňové rozpouštění'); Data: INSERT INTO fenix.rzp_pred_hla (id_pred_hla, id_pred, obdobi, predpis, stupen, nazev_hla, popis) Data: VALUES (@id_hla, @id_pred, 1, 'S', '1', 'Stupeň 1', ''), Data: (@id_hla+1, @id_pred, 1, 'S', '2', 'Stupeň 2', ''); Data: SELECT @id_def AS id_def_pouzite, @id_pred AS id_pred_pouzite; Expected: INSERTy proběhnou (4 řádky). SELECT vrátí použité id (orientace). 4. In the application select Baťu, rok 2026 a naimportuj období 01 pro 'TS S04-02 definice' (postup viz TS-RZP-S03-01 TS-001). Data: Definice = TS S04-02 definice Data: Období = 01 (leden 2026) Expected: V tabulce přijatých dat je řádek pro období 01, Uzávěrka = N. 5. Spusť rozpouštění stupně 1 a poté stupně 2 (postup viz TS-RZP-S03-02 TS-001 a TS-002). Data: Stupeň 1, pak Stupeň 2 Data: Období Od/Do = 01 Expected: Po rozpuštění obou stupňů se zobrazí 'Rozpouštění bylo úspěšně provedeno.' a Uzávěrka řádku období 01 přejde na 'A'. 6. [SQL setup] Doplň PLÁN (sr = schválený rozpočet, ur = upravený rozpočet) na všechny řádky sady. Sestava 21b tiskne sloupce plánu i % plnění (RzpSestavaBuilder.Render21bRows). Data: SQL: Data: UPDATE rd Data: SET rd.sr = ROUND(rd.skut * 0.90, 2), Data: rd.ur = ROUND(rd.skut * 0.95, 2) Data: FROM fenix.rzp_rozp_det rd Data: JOIN fenix.rzp_rozp r ON r.id_rozp = rd.id_rozp Data: WHERE r.id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE nazev='TS S04-02 definice'); Expected: UPDATE nastaví sr ≈ 90 % a ur ≈ 95 % skutečnosti na přímých i rozpuštěných řádcích sady. 7. [SQL audit] Ověř rozpuštěné stupně vč. plánu. Data: SQL: Data: SELECT rd.stupen, COUNT(*) AS pocet, SUM(rd.skut) AS suma_skut, SUM(rd.sr) AS suma_sr, SUM(rd.ur) AS suma_ur FROM fenix.rzp_rozp_det rd JOIN fenix.rzp_rozp r ON r.id_rozp=rd.id_rozp JOIN fenix.rzp_definice d ON d.id_def=r.id_def WHERE d.nazev='TS S04-02 definice' GROUP BY rd.stupen ORDER BY rd.stupen; Expected: The query returns stupně '0', '1' a '2' (pocet >= 1), suma_skut/suma_sr/suma_ur > 0. Sestava 21b má z čeho tisknout po rozpouštění vč. plánu.
Expected result
The query returns stupně '0', '1' a '2' (pocet >= 1), suma_skut/suma_sr/suma_ur > 0. Sestava 21b má z čeho tisknout po rozpouštění vč. plánu.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-02_PrintPostDistributionNV.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-02 — Report printing 21b – Post-allocation overview of costs and revenues at period end (E2E).xlsx
SC-TISK21B-002 EP-TISK21B-RPT PrintPostDistributionNV_TS001 Passed
▸ Step details (TC_ID: TC-E2E-069)
Preconditions
TS-000 proběhlo. Baťa vybrán, rok 2026, oprávnění ReportPostDistribution uděleno.
Steps (Action / Data / Expected)
1. Klikni Přehledy → 21 → '21b - Přehled po rozpouštění N/V ke konci období'. Před tím případně select rozpouštěcí předpis, pokud to dialog vyžaduje. Data: VariantTag = 21b Data: Předpis = TS S04-02 předpis Expected: Otevře se formulář s titulkem doslova '21b - Přehled po rozpouštění N/V ke konci období'. Pole Název sestavy obsahuje stejný text. 2. Zkontroluj záhlaví: IČO, DIČ, název, rok. Expected: IČO = 44268050, DIČ majitele, Název = Baťa, Rok = 2026 (1:1 s kartou majitele). 3. Zkontroluj, že jsou viditelné prvky pro předpis a stupeň (na rozdíl od 21a). Expected: Je zobrazen panel/popisek předpisu (pnlPredpis + lblPredpis) s vybraným předpisem a pole Stupeň (txtSes) je viditelné a editovatelné (bílé pozadí). U 21x zůstává viditelná i volba Plán/Kč.
Expected result
Je zobrazen panel/popisek předpisu (pnlPredpis + lblPredpis) s vybraným předpisem a pole Stupeň (txtSes) je viditelné a editovatelné (bílé pozadí). U 21x zůstává viditelná i volba Plán/Kč.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-02_PrintPostDistributionNV.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-02 — Report printing 21b – Post-allocation overview of costs and revenues at period end (E2E).xlsx
SC-TISK21B-003 EP-TISK21B-RPT PrintPostDistributionNV_TS002 Passed
▸ Step details (TC_ID: TC-E2E-070)
Preconditions
Formulář Report printing (21b) je otevřen. Variant 21b (m_sestava 212) vyžaduje zadání stupně.
Steps (Action / Data / Expected)
1. Vyplň Období od = 01, Období do = 01, ale pole Stupeň nech prázdné a klikni OK. Data: Období od = 01 Data: Období do = 01 Data: Stupeň = (prázdné) Expected: Displayed: hláška doslova 'Chybí stupeň rozpouštění!' Fokus se vrátí do pole Stupeň, tisk se nespustí. 2. Zadej Stupeň = 2 a klikni OK. Data: Stupeň = 2 Expected: Validace projde a otevře se náhled/okno Report printing (sestava se generuje pro 2. stupeň rozpuštění).
Expected result
Validace projde a otevře se náhled/okno Report printing (sestava se generuje pro 2. stupeň rozpuštění).
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-02_PrintPostDistributionNV.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-02 — Report printing 21b – Post-allocation overview of costs and revenues at period end (E2E).xlsx
SC-TISK21B-004 EP-TISK21B-RPT PrintPostDistributionNV_TS003 Passed
▸ Step details (TC_ID: TC-E2E-071)
Preconditions
TS-000 proběhlo (kompletně rozpuštěné období 01). Formulář 21b je otevřen, vyplněné období 01–01 a stupeň 2.
Steps (Action / Data / Expected)
1. S přepínačem Report klikni OK a open náhled. Data: Výstup = Report Data: Období 01–01, Stupeň = 2 Expected: Otevře se okno 'Report printing' s náhledem. Žádná chyba ani hláška 'nejsou data'. 2. Zkontroluj záhlaví proti Golden Master (test/Data/GoldenMaster/SC-05/21b). Expected: Záhlaví obsahuje (1:1): obchodní jméno Baťa, IČO 44268050, DIČ, Rok 2026, název sestavy '21b - Přehled po rozpouštění N/V ke konci období', období 01 a identifikaci rozpouštěcího předpisu/stupně. Rozložení shodné s referencí. 3. Zkontroluj tělo: data po rozpouštění (stupeň 2) + sloupce plánu a plnění. Přepni 'Plán v tisících' ↔ 'Plán v Kč'. Expected: Tělo obsahuje hodnoty po rozpuštění (stupeň 2) se sloupci schválený rozpočet (sr), upravený rozpočet (ur) a % plnění (Render21bRows). Hlavička '(v Kč)/(v tis. Kč)' dle přepínače (částky plánu /1000 v režimu tisíců). Součtové vztahy odpovídají invariantu rozpouštění. Vše 1:1 s Golden Master.
Expected result
Tělo obsahuje hodnoty po rozpuštění (stupeň 2) se sloupci schválený rozpočet (sr), upravený rozpočet (ur) a % plnění (Render21bRows). Hlavička '(v Kč)/(v tis. Kč)' dle přepínače (částky plánu /1000 v režimu tisíců). Součtové vztahy odpovídají invariantu rozpouštění. Vše 1:1 s Golden Master.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-02_PrintPostDistributionNV.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-02 — Report printing 21b – Post-allocation overview of costs and revenues at period end (E2E).xlsx
SC-TISK21B-005 EP-TISK21B-RPT PrintPostDistributionNV_TS004 Passed
▸ Step details (TC_ID: TC-E2E-072)
Preconditions
TS-003 proběhlo. K dispozici PDF tiskárna pro porovnání.
Steps (Action / Data / Expected)
1. V okně 'Report printing' select Microsoft Print to PDF a spusť Tisk. Data: Výstup = PDF Expected: Tisk proběhne bez chyby, vznikne PDF. Okno zůstává otevřené. 2. Zkontroluj zápatí (strana, datum/čas) proti referenci. Expected: Formát čísla strany a razítka data/času je shodný s VB6 referencí (porovnává se FORMÁT). Záhlaví i zápatí se opakuje na každé straně. 3. Porovnej celou stránku PDF s Golden Master 21b. Data: Reference = test/Data/GoldenMaster/SC-05/21b Expected: Celá stránka 1:1 (marže, font, sloupce, záhlaví vč. předpisu/stupně, tělo po rozpouštění, zápatí). Rozdíl < 1 %.
Expected result
Celá stránka 1:1 (marže, font, sloupce, záhlaví vč. předpisu/stupně, tělo po rozpouštění, zápatí). Rozdíl < 1 %.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-02_PrintPostDistributionNV.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-02 — Report printing 21b – Post-allocation overview of costs and revenues at period end (E2E).xlsx
SC-TISK21B-006 EP-TISK21B-RPT PrintPostDistributionNV_TS005 Passed
▸ Step details (TC_ID: TC-E2E-073)
Preconditions
Sada proběhla. V DB zůstaly definice, předpis, stupně, import a rozpuštěné stupně.
Steps (Action / Data / Expected)
1. [SQL cleanup] Delete data této sady ve správném pořadí. Data: SQL: Data: DELETE FROM fenix.rzp_rozp_det WHERE id_rozp IN (SELECT id_rozp FROM fenix.rzp_rozp WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE nazev='TS S04-02 definice')); Data: DELETE FROM fenix.rzp_rozp WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE nazev='TS S04-02 definice'); Data: DELETE FROM fenix.rzp_pred_hla WHERE id_pred IN (SELECT id_pred FROM fenix.rzp_pred WHERE nazev_pred='TS S04-02 předpis'); Data: DELETE FROM fenix.rzp_pred WHERE nazev_pred='TS S04-02 předpis'; Data: DELETE FROM fenix.rzp_definice WHERE nazev='TS S04-02 definice'; Expected: Všechny DELETE proběhnou bez chyby. 2. [SQL cleanup] Post-check. Data: SQL: Data: SELECT 'def S04-02' AS k, COUNT(*) AS v FROM fenix.rzp_definice WHERE nazev='TS S04-02 definice' Data: UNION ALL SELECT 'pred S04-02', COUNT(*) FROM fenix.rzp_pred WHERE nazev_pred='TS S04-02 předpis' Data: UNION ALL SELECT 'majitel Bata', COUNT(*) FROM fenix.rzp_majitel WHERE ico=44268050; Expected: 'def S04-02' = 0, 'pred S04-02' = 0, 'majitel Bata' = 1.
Expected result
'def S04-02' = 0, 'pred S04-02' = 0, 'majitel Bata' = 1.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-02_PrintPostDistributionNV.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-02 — Report printing 21b – Post-allocation overview of costs and revenues at period end (E2E).xlsx

TS-RZP-S04-03 — Report printing 22a – Comparison of direct costs and revenues at period end (E2E) All passed

6 / 6 passed — TS-RZP-S04-03 — Report printing 22a – Comparison of direct costs and revenues at period end (E2E).xlsx · JSON spec

ScenarioEpicTest methodStatusTimeError / Detail
SC-TISK22A-001 EP-TISK22A-RPT PrintDirectNVComparison_TS000 Passed
▸ Step details (TC_ID: TC-E2E-074)
Preconditions
Přístup k testovací DB i k aplikaci Haifa. Majitel Bata (Company ID 44268050) má licenci RZP. V účetnictví jsou 2026/01 i 2026/02 uzavřené a obsahují data. Uživatel má oprávnění Přehled přímých (ReportDirect).
Steps (Action / Data / Expected)
1. [SQL setup] Připoj se k testovací DB a uvolni slot pro tuto sadu (idempotentní DELETE řetěz). Data: SQL: Data: DELETE FROM fenix.rzp_rozp_det WHERE id_rozp IN (SELECT id_rozp FROM fenix.rzp_rozp WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE id_maj=10 AND rok=2026 AND nazev='TS S04-03 definice')); Data: DELETE FROM fenix.rzp_rozp WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE id_maj=10 AND rok=2026 AND nazev='TS S04-03 definice'); Data: DELETE FROM fenix.rzp_definice WHERE id_maj=10 AND rok=2026 AND nazev='TS S04-03 definice'; Expected: DELETE proběhnou bez chyby (čisté prostředí: 0 řádků). 2. [SQL setup] Insert definici přes MAX+1. Data: SQL: Data: DECLARE @id_def INT = (SELECT ISNULL(MAX(id_def),0)+1 FROM fenix.rzp_definice); Data: INSERT INTO fenix.rzp_definice (id_def, id_maj, rok, id_ucet, z_text, poradi, nazev, konstanta, popis) Data: VALUES (@id_def, 10, 2026, 28, '00000000000000', '0001-1-1-1-1-1-1-1-1-1-1-1-1', 'TS S04-03 definice', '----------------------------', 'Sada TS-RZP-S04-03'); Data: SELECT @id_def AS id_def_pouzite; Expected: INSERT proběhne (1 řádek). 3. In the application select Baťu, rok 2026 a naimportuj 'TS S04-03 definice' za Období 01 a poté za Období 02 (postup viz TS-RZP-S03-01 TS-001, dvakrát). Data: Definice = TS S04-03 definice Data: Období = 01 (leden), pak 02 (únor) Expected: V tabulce přijatých dat jsou DVA řádky (období 01 a 02), oba Uzávěrka = N. 4. [SQL setup] Doplň PLÁN (sr = schválený rozpočet, ur = upravený rozpočet) na řádky sady. Sestava 22a používá sr/ur ve výpočtech porovnání (nárůst/úspora) – RzpSestavaBuilder.Render22aRows. Data: SQL: Data: UPDATE rd Data: SET rd.sr = ROUND(rd.skut * 0.90, 2), Data: rd.ur = ROUND(rd.skut * 0.95, 2) Data: FROM fenix.rzp_rozp_det rd Data: JOIN fenix.rzp_rozp r ON r.id_rozp = rd.id_rozp Data: WHERE r.id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE nazev='TS S04-03 definice'); Expected: UPDATE nastaví sr ≈ 90 % a ur ≈ 95 % skutečnosti za obě období. 5. [SQL audit] Ověř, že přímá data za obě období existují vč. plánu. Data: SQL: Data: SELECT r.obdobi, COUNT(rd.id_rozp_det) AS radku_stupen0, SUM(rd.skut) AS suma_skut, SUM(rd.sr) AS suma_sr, SUM(rd.ur) AS suma_ur Data: FROM fenix.rzp_rozp r JOIN fenix.rzp_definice d ON d.id_def=r.id_def Data: LEFT JOIN fenix.rzp_rozp_det rd ON rd.id_rozp=r.id_rozp AND rd.stupen='0' Data: WHERE d.nazev='TS S04-03 definice' GROUP BY r.obdobi ORDER BY r.obdobi; Expected: The query returns 2 řádky (obdobi=1 a obdobi=2), oba radku_stupen0 >= 1 a suma_sr/suma_ur > 0.
Expected result
The query returns 2 řádky (obdobi=1 a obdobi=2), oba radku_stupen0 >= 1 a suma_sr/suma_ur > 0.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-03_PrintDirectNVComparison.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-03 — Report printing 22a – Comparison of direct costs and revenues at period end (E2E).xlsx
SC-TISK22A-002 EP-TISK22A-RPT PrintDirectNVComparison_TS001 Passed
▸ Step details (TC_ID: TC-E2E-075)
Preconditions
TS-000 proběhlo. Baťa vybrán, rok 2026, oprávnění ReportDirect uděleno.
Steps (Action / Data / Expected)
1. Klikni Přehledy → 22 → '22a - Porovnání přímých N/V ke konci období'. Data: VariantTag = 22a Expected: Otevře se formulář s titulkem doslova '22a - Porovnání přímých N/V ke konci období'. Pole Název sestavy obsahuje stejný text. 2. Zkontroluj záhlaví: IČO, DIČ, název, rok. Expected: IČO = 44268050, DIČ majitele, Název = Baťa, Rok = 2026 (1:1 s kartou majitele). 3. Zkontroluj, že volba Plán/Kč NENÍ zobrazena a Název sestavy je zúžený. Expected: Popisek 'Zobrazit' i přepínače 'plán v tisících'/'plán v Kč' jsou skryté (varianta není 21x). Pole Název sestavy má zúženou šířku dle legacy (≈ 422 px). Pole Období od/do jsou prázdná a editovatelná.
Expected result
Popisek 'Zobrazit' i přepínače 'plán v tisících'/'plán v Kč' jsou skryté (varianta není 21x). Pole Název sestavy má zúženou šířku dle legacy (≈ 422 px). Pole Období od/do jsou prázdná a editovatelná.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-03_PrintDirectNVComparison.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-03 — Report printing 22a – Comparison of direct costs and revenues at period end (E2E).xlsx
SC-TISK22A-003 EP-TISK22A-RPT PrintDirectNVComparison_TS002 Passed
▸ Step details (TC_ID: TC-E2E-076)
Preconditions
TS-000 proběhlo (přímá data za 01 a 02). Formulář 22a je otevřen.
Steps (Action / Data / Expected)
1. S přepínačem Report vyplň Období od = 01 a Období do = 02 a klikni OK. Data: Výstup = Report Data: Období od = 01 Data: Období do = 02 Expected: Otevře se náhled sestavy. Žádná chyba ani 'nejsou data'. 2. Zkontroluj záhlaví proti Golden Master (test/Data/GoldenMaster/SC-05/22a). Expected: Záhlaví obsahuje (1:1): jméno Baťa, IČO 44268050, DIČ, Rok 2026, název '22a - Porovnání přímých N/V ke konci období' a porovnávané období 01–02. Rozložení shodné s referencí. 3. Zkontroluj tělo: porovnávací sloupce přímých N/V za období 01 vs 02 (vč. nárůst/úspora z plánu). Expected: Tělo obsahuje porovnání hodnot mezi obdobími (sloupce/rozdíl) odpovídající naimportovaným přímým datům; výpočet nárůst/úspora vychází z plánu (sr/ur) doplněného v TS-000. Vše 1:1 s Golden Master.
Expected result
Tělo obsahuje porovnání hodnot mezi obdobími (sloupce/rozdíl) odpovídající naimportovaným přímým datům; výpočet nárůst/úspora vychází z plánu (sr/ur) doplněného v TS-000. Vše 1:1 s Golden Master.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-03_PrintDirectNVComparison.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-03 — Report printing 22a – Comparison of direct costs and revenues at period end (E2E).xlsx
SC-TISK22A-004 EP-TISK22A-RPT PrintDirectNVComparison_TS003 Passed
▸ Step details (TC_ID: TC-E2E-077)
Preconditions
TS-002 proběhlo. K dispozici PDF tiskárna pro porovnání.
Steps (Action / Data / Expected)
1. V okně 'Report printing' select Microsoft Print to PDF a spusť Tisk. Data: Výstup = PDF Expected: Tisk proběhne bez chyby, vznikne PDF. Okno zůstává otevřené. 2. Zkontroluj zápatí (strana, datum/čas) a porovnej celou stránku s Golden Master 22a. Data: Reference = test/Data/GoldenMaster/SC-05/22a Expected: Zápatí ve formátu shodném s VB6. Celá stránka 1:1 (marže, font, sloupce, záhlaví s porovnávaným obdobím, porovnávací tělo, zápatí). Rozdíl < 1 %.
Expected result
Zápatí ve formátu shodném s VB6. Celá stránka 1:1 (marže, font, sloupce, záhlaví s porovnávaným obdobím, porovnávací tělo, zápatí). Rozdíl < 1 %.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-03_PrintDirectNVComparison.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-03 — Report printing 22a – Comparison of direct costs and revenues at period end (E2E).xlsx
SC-TISK22A-005 EP-TISK22A-RPT PrintDirectNVComparison_TS004 Passed
▸ Step details (TC_ID: TC-E2E-078)
Preconditions
Formulář Report printing (22a) je otevřen.
Steps (Action / Data / Expected)
1. Vyplň Období od = 05 a Období do = 02 a klikni OK. Data: Období od = 05 Data: Období do = 02 Expected: Displayed: hláška doslova 'Účetní období od je větší než do !' (mezera před vykřičníkem – parita). Fokus na Období od, tisk se nespustí. 2. Oprav na Období od = 01, Období do = 02 a klikni OK. Data: Období od = 01 Data: Období do = 02 Expected: Validace projde a otevře se náhled/okno Report printing.
Expected result
Validace projde a otevře se náhled/okno Report printing.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-03_PrintDirectNVComparison.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-03 — Report printing 22a – Comparison of direct costs and revenues at period end (E2E).xlsx
SC-TISK22A-006 EP-TISK22A-RPT PrintDirectNVComparison_TS005 Passed
▸ Step details (TC_ID: TC-E2E-079)
Preconditions
Sada proběhla. V DB zůstaly definice a naimportovaná data za období 01 a 02.
Steps (Action / Data / Expected)
1. [SQL cleanup] Delete data této sady ve FK pořadí. Data: SQL: Data: DELETE FROM fenix.rzp_rozp_det WHERE id_rozp IN (SELECT id_rozp FROM fenix.rzp_rozp WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE nazev='TS S04-03 definice')); Data: DELETE FROM fenix.rzp_rozp WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE nazev='TS S04-03 definice'); Data: DELETE FROM fenix.rzp_definice WHERE nazev='TS S04-03 definice'; Expected: Všechny DELETE proběhnou bez chyby. 2. [SQL cleanup] Post-check. Data: SQL: Data: SELECT 'def S04-03' AS k, COUNT(*) AS v FROM fenix.rzp_definice WHERE nazev='TS S04-03 definice' Data: UNION ALL SELECT 'rozp S04-03', COUNT(*) FROM fenix.rzp_rozp r JOIN fenix.rzp_definice d ON d.id_def=r.id_def WHERE d.nazev='TS S04-03 definice' Data: UNION ALL SELECT 'majitel Bata', COUNT(*) FROM fenix.rzp_majitel WHERE ico=44268050; Expected: 'def S04-03' = 0, 'rozp S04-03' = 0, 'majitel Bata' = 1.
Expected result
'def S04-03' = 0, 'rozp S04-03' = 0, 'majitel Bata' = 1.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-03_PrintDirectNVComparison.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-03 — Report printing 22a – Comparison of direct costs and revenues at period end (E2E).xlsx

TS-RZP-S04-04 — Report printing 23a – Monthly comparison of direct costs and revenues at period end (E2E) All passed

5 / 5 passed — TS-RZP-S04-04 — Report printing 23a – Monthly comparison of direct costs and revenues at period end (E2E).xlsx · JSON spec

ScenarioEpicTest methodStatusTimeError / Detail
SC-TISK23A-001 EP-TISK23A-RPT PrintMonthlyComparisonDirect_TS000 Passed
▸ Step details (TC_ID: TC-E2E-080)
Preconditions
Přístup k testovací DB i k aplikaci Haifa. Majitel Bata (Company ID 44268050) má licenci RZP. V účetnictví jsou 2026/01, 02 i 03 uzavřené s daty. Uživatel má oprávnění Přehled přímých (ReportDirect).
Steps (Action / Data / Expected)
1. [SQL setup] Připoj se k testovací DB a uvolni slot (idempotentní DELETE řetěz dítě→rodič). Data: SQL: Data: DELETE FROM fenix.rzp_rozp_det WHERE id_rozp IN (SELECT id_rozp FROM fenix.rzp_rozp WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE id_maj=10 AND rok=2026 AND nazev='TS S04-04 definice')); Data: DELETE FROM fenix.rzp_rozp WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE id_maj=10 AND rok=2026 AND nazev='TS S04-04 definice'); Data: DELETE FROM fenix.rzp_definice WHERE id_maj=10 AND rok=2026 AND nazev='TS S04-04 definice'; Expected: DELETE proběhnou bez chyby (čisté prostředí 0 řádků). 2. [SQL setup] Insert definici přes MAX+1. Data: SQL: Data: DECLARE @id_def INT = (SELECT ISNULL(MAX(id_def),0)+1 FROM fenix.rzp_definice); Data: INSERT INTO fenix.rzp_definice (id_def, id_maj, rok, id_ucet, z_text, poradi, nazev, konstanta, popis) Data: VALUES (@id_def, 10, 2026, 28, '00000000000000', '0001-1-1-1-1-1-1-1-1-1-1-1-1', 'TS S04-04 definice', '----------------------------', 'Sada TS-RZP-S04-04'); Data: SELECT @id_def AS id_def_pouzite; Expected: INSERT proběhne (1 řádek). 3. In the application select Baťu, rok 2026 a naimportuj 'TS S04-04 definice' postupně za Období 01, 02 a 03 (postup viz TS-RZP-S03-01 TS-001, třikrát). Data: Definice = TS S04-04 definice Data: Období = 01, 02, 03 Expected: V tabulce přijatých dat jsou TŘI řádky (období 01, 02, 03), všechny Uzávěrka = N. 4. [SQL setup] Doplň PLÁN (sr = schválený rozpočet, ur = upravený rozpočet) na řádky sady. Sestava 23a používá sr/ur ve výpočtech porovnání (Render23aRows). Data: SQL: Data: UPDATE rd Data: SET rd.sr = ROUND(rd.skut * 0.90, 2), Data: rd.ur = ROUND(rd.skut * 0.95, 2) Data: FROM fenix.rzp_rozp_det rd Data: JOIN fenix.rzp_rozp r ON r.id_rozp = rd.id_rozp Data: WHERE r.id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE nazev='TS S04-04 definice'); Expected: UPDATE nastaví sr ≈ 90 % a ur ≈ 95 % skutečnosti za všechny 3 měsíce. 5. [SQL audit] Ověř přímá data (stupeň 0) za 3 měsíce vč. plánu. Data: SQL: Data: SELECT r.obdobi, COUNT(rd.id_rozp_det) AS radku_stupen0, SUM(rd.skut) AS suma_skut, SUM(rd.sr) AS suma_sr, SUM(rd.ur) AS suma_ur FROM fenix.rzp_rozp r JOIN fenix.rzp_definice d ON d.id_def=r.id_def LEFT JOIN fenix.rzp_rozp_det rd ON rd.id_rozp=r.id_rozp AND rd.stupen='0' WHERE d.nazev='TS S04-04 definice' GROUP BY r.obdobi ORDER BY r.obdobi; Expected: The query returns 3 řádky (obdobi 1, 2, 3), všechny radku_stupen0 >= 1 a suma_sr/suma_ur > 0.
Expected result
The query returns 3 řádky (obdobi 1, 2, 3), všechny radku_stupen0 >= 1 a suma_sr/suma_ur > 0.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-04_PrintMonthlyComparisonDirect.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-04 — Report printing 23a – Monthly comparison of direct costs and revenues at period end (E2E).xlsx
SC-TISK23A-002 EP-TISK23A-RPT PrintMonthlyComparisonDirect_TS001 Passed
▸ Step details (TC_ID: TC-E2E-081)
Preconditions
TS-000 proběhlo. Baťa vybrán, rok 2026, oprávnění ReportDirect uděleno.
Steps (Action / Data / Expected)
1. Klikni Přehledy → 23 → '23a - Měsíční porovnání přímých N/V ke konci období'. Data: VariantTag = 23a Expected: Otevře se formulář s titulkem doslova '23a - Měsíční porovnání přímých N/V ke konci období'. Pole Název sestavy obsahuje stejný text. 2. Zkontroluj záhlaví (IČO, DIČ, název, rok) a layout. Expected: IČO = 44268050, DIČ majitele, Název = Baťa, Rok = 2026. Volba Plán/Kč je skrytá, pole Název sestavy je zúžené (≈ 422 px). Pole pro stupeň NENÍ povinné.
Expected result
IČO = 44268050, DIČ majitele, Název = Baťa, Rok = 2026. Volba Plán/Kč je skrytá, pole Název sestavy je zúžené (≈ 422 px). Pole pro stupeň NENÍ povinné.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-04_PrintMonthlyComparisonDirect.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-04 — Report printing 23a – Monthly comparison of direct costs and revenues at period end (E2E).xlsx
SC-TISK23A-003 EP-TISK23A-RPT PrintMonthlyComparisonDirect_TS002 Passed
▸ Step details (TC_ID: TC-E2E-082)
Preconditions
TS-000 proběhlo (přímá data za 01–03). Formulář 23a je otevřen.
Steps (Action / Data / Expected)
1. S přepínačem Report vyplň Období od = 01 a Období do = 03 a klikni OK. Data: Výstup = Report Data: Období od = 01 Data: Období do = 03 Expected: Otevře se náhled. Žádná chyba ani 'nejsou data'. 2. Zkontroluj záhlaví proti Golden Master (test/Data/GoldenMaster/SC-05/23a). Expected: Záhlaví obsahuje (1:1): jméno Baťa, IČO 44268050, DIČ, Rok 2026, název '23a - Měsíční porovnání přímých N/V ke konci období' a rozsah měsíců 01–03. 3. Zkontroluj tělo: samostatné měsíční sloupce (leden, únor, březen) vč. dopadu plánu. Expected: Tělo obsahuje měsíční porovnávací sloupce za období 01, 02 a 03; hodnoty odpovídají naimportovaným přímým datům a plán (sr/ur) doplněný v TS-000 se promítá do výpočtů porovnání. Vše 1:1 s Golden Master.
Expected result
Tělo obsahuje měsíční porovnávací sloupce za období 01, 02 a 03; hodnoty odpovídají naimportovaným přímým datům a plán (sr/ur) doplněný v TS-000 se promítá do výpočtů porovnání. Vše 1:1 s Golden Master.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-04_PrintMonthlyComparisonDirect.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-04 — Report printing 23a – Monthly comparison of direct costs and revenues at period end (E2E).xlsx
SC-TISK23A-004 EP-TISK23A-RPT PrintMonthlyComparisonDirect_TS003 Passed
▸ Step details (TC_ID: TC-E2E-083)
Preconditions
TS-002 proběhlo. K dispozici PDF tiskárna.
Steps (Action / Data / Expected)
1. V okně 'Report printing' select Microsoft Print to PDF a spusť Tisk. Data: Výstup = PDF Expected: Tisk proběhne bez chyby, vznikne PDF. Okno zůstává otevřené. 2. Zkontroluj zápatí a porovnej celou stránku s Golden Master 23a. Data: Reference = test/Data/GoldenMaster/SC-05/23a Expected: Zápatí (strana, datum/čas) ve formátu shodném s VB6. Celá stránka 1:1 (marže, font, měsíční sloupce, záhlaví, zápatí). Rozdíl < 1 %.
Expected result
Zápatí (strana, datum/čas) ve formátu shodném s VB6. Celá stránka 1:1 (marže, font, měsíční sloupce, záhlaví, zápatí). Rozdíl < 1 %.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-04_PrintMonthlyComparisonDirect.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-04 — Report printing 23a – Monthly comparison of direct costs and revenues at period end (E2E).xlsx
SC-TISK23A-005 EP-TISK23A-RPT PrintMonthlyComparisonDirect_TS004 Passed
▸ Step details (TC_ID: TC-E2E-084)
Preconditions
Sada proběhla. V DB zůstaly definice a naimportovaná data za 01–03.
Steps (Action / Data / Expected)
1. [SQL cleanup] Delete data této sady ve FK pořadí. Data: SQL: Data: DELETE FROM fenix.rzp_rozp_det WHERE id_rozp IN (SELECT id_rozp FROM fenix.rzp_rozp WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE nazev='TS S04-04 definice')); Data: DELETE FROM fenix.rzp_rozp WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE nazev='TS S04-04 definice'); Data: DELETE FROM fenix.rzp_definice WHERE nazev='TS S04-04 definice'; Expected: Všechny DELETE proběhnou bez chyby. 2. [SQL cleanup] Post-check. Data: SQL: Data: SELECT 'def S04-04' AS k, COUNT(*) AS v FROM fenix.rzp_definice WHERE nazev='TS S04-04 definice' Data: UNION ALL SELECT 'majitel Bata', COUNT(*) FROM fenix.rzp_majitel WHERE ico=44268050; Expected: 'def S04-04' = 0, 'majitel Bata' = 1.
Expected result
'def S04-04' = 0, 'majitel Bata' = 1.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-04_PrintMonthlyComparisonDirect.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-04 — Report printing 23a – Monthly comparison of direct costs and revenues at period end (E2E).xlsx

TS-RZP-S04-05 — Report printing 23b – Monthly post-allocation comparison of costs and revenues at period end (E2E) All passed

5 / 5 passed — TS-RZP-S04-05 — Report printing 23b – Monthly post-allocation comparison of costs and revenues at period end (E2E).xlsx · JSON spec

ScenarioEpicTest methodStatusTimeError / Detail
SC-TISK23B-001 EP-TISK23B-RPT PrintMonthlyComparisonPostDist_TS000 Passed
▸ Step details (TC_ID: TC-E2E-085)
Preconditions
Přístup k testovací DB i k aplikaci. Majitel Baťa má licenci RZP. 2026/01 a 02 jsou v účetnictví uzavřené s daty. Oprávnění Přehled po rozpouštění (ReportPostDistribution).
Steps (Action / Data / Expected)
1. [SQL setup] Připoj se k DB a uvolni slot (idempotentní DELETE řetěz vč. předpisu). Data: SQL: Data: DELETE FROM fenix.rzp_rozp_det WHERE id_rozp IN (SELECT id_rozp FROM fenix.rzp_rozp WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE id_maj=10 AND rok=2026 AND nazev='TS S04-05 definice')); Data: DELETE FROM fenix.rzp_rozp WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE id_maj=10 AND rok=2026 AND nazev='TS S04-05 definice'); Data: DELETE FROM fenix.rzp_pred_hla WHERE id_pred IN (SELECT id_pred FROM fenix.rzp_pred WHERE nazev_pred='TS S04-05 předpis'); Data: DELETE FROM fenix.rzp_pred WHERE nazev_pred='TS S04-05 předpis'; Data: DELETE FROM fenix.rzp_definice WHERE id_maj=10 AND rok=2026 AND nazev='TS S04-05 definice'; Expected: DELETE proběhnou bez chyby. 2. [SQL setup] Insert definici + 2-stupňový předpis přes MAX+1. Data: SQL: Data: DECLARE @id_def INT = (SELECT ISNULL(MAX(id_def),0)+1 FROM fenix.rzp_definice); Data: DECLARE @id_pred INT = (SELECT ISNULL(MAX(id_pred),0)+1 FROM fenix.rzp_pred); Data: DECLARE @id_hla INT = (SELECT ISNULL(MAX(id_pred_hla),0)+1 FROM fenix.rzp_pred_hla); Data: INSERT INTO fenix.rzp_definice (id_def, id_maj, rok, id_ucet, z_text, poradi, nazev, konstanta, popis) VALUES (@id_def, 10, 2026, 28, '00000000000000', '0001-1-1-1-1-1-1-1-1-1-1-1-1', 'TS S04-05 definice', '----------------------------', 'Sada TS-RZP-S04-05'); Data: INSERT INTO fenix.rzp_pred (id_pred, id_def, c_poradi, pocet, plan_skut, nazev_pred, popis) VALUES (@id_pred, @id_def, 1, '2', 'S', 'TS S04-05 předpis', '2-stupňové rozpouštění'); Data: INSERT INTO fenix.rzp_pred_hla (id_pred_hla, id_pred, obdobi, predpis, stupen, nazev_hla, popis) VALUES (@id_hla, @id_pred, 1, 'S', '1', 'Stupeň 1', ''), (@id_hla+1, @id_pred, 1, 'S', '2', 'Stupeň 2', ''); Expected: INSERTy proběhnou (4 řádky). 3. In the application naimportuj 'TS S04-05 definice' za období 01 a 02 a poté oba měsíce kompletně rozpusť (stupeň 1 i 2 pro každý), postup viz TS-RZP-S03-02. Data: Definice = TS S04-05 definice Data: Období = 01 a 02, rozpustit stupně 1 a 2 Expected: Po rozpuštění mají oba řádky (01, 02) Uzávěrka = 'A'. 4. [SQL setup] Doplň PLÁN (sr = schválený rozpočet, ur = upravený rozpočet) na všechny řádky sady. Sestava 23b používá sr/ur ve výpočtech porovnání po rozpouštění (Render23bRows). Data: SQL: Data: UPDATE rd Data: SET rd.sr = ROUND(rd.skut * 0.90, 2), Data: rd.ur = ROUND(rd.skut * 0.95, 2) Data: FROM fenix.rzp_rozp_det rd Data: JOIN fenix.rzp_rozp r ON r.id_rozp = rd.id_rozp Data: WHERE r.id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE nazev='TS S04-05 definice'); Expected: UPDATE nastaví sr ≈ 90 % a ur ≈ 95 % skutečnosti na všech řádcích (obě období, všechny stupně). 5. [SQL audit] Ověř rozpuštěné stupně vč. plánu. Data: SQL: Data: SELECT r.obdobi, rd.stupen, COUNT(*) AS pocet, SUM(rd.skut) AS suma_skut, SUM(rd.sr) AS suma_sr, SUM(rd.ur) AS suma_ur FROM fenix.rzp_rozp_det rd JOIN fenix.rzp_rozp r ON r.id_rozp=rd.id_rozp JOIN fenix.rzp_definice d ON d.id_def=r.id_def WHERE d.nazev='TS S04-05 definice' GROUP BY r.obdobi, rd.stupen ORDER BY r.obdobi, rd.stupen; Expected: Pro každé období (1 i 2) existují stupně '0', '1', '2' a suma_sr/suma_ur > 0.
Expected result
Pro každé období (1 i 2) existují stupně '0', '1', '2' a suma_sr/suma_ur > 0.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-05_PrintMonthlyComparisonPostDist.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-05 — Report printing 23b – Monthly post-allocation comparison of costs and revenues at period end (E2E).xlsx
SC-TISK23B-002 EP-TISK23B-RPT PrintMonthlyComparisonPostDist_TS001 Passed
▸ Step details (TC_ID: TC-E2E-086)
Preconditions
TS-000 proběhlo. Baťa vybrán, rok 2026, oprávnění ReportPostDistribution.
Steps (Action / Data / Expected)
1. Klikni Přehledy → 23 → '23b - Měsíční porovnání po rozpouštění N/V ke konci období' (příp. select předpis 'TS S04-05 předpis'). Data: VariantTag = 23b Data: Předpis = TS S04-05 předpis Expected: Otevře se formulář s titulkem doslova '23b - Měsíční porovnání po rozpouštění N/V ke konci období'. 2. Zkontroluj záhlaví a viditelnost předpisu/stupně. Expected: IČO 44268050, DIČ, Baťa, Rok 2026. Panel předpisu a pole Stupeň (txtSes) jsou viditelné a editovatelné. Volba Plán/Kč je skrytá.
Expected result
IČO 44268050, DIČ, Baťa, Rok 2026. Panel předpisu a pole Stupeň (txtSes) jsou viditelné a editovatelné. Volba Plán/Kč je skrytá.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-05_PrintMonthlyComparisonPostDist.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-05 — Report printing 23b – Monthly post-allocation comparison of costs and revenues at period end (E2E).xlsx
SC-TISK23B-003 EP-TISK23B-RPT PrintMonthlyComparisonPostDist_TS002 Passed
▸ Step details (TC_ID: TC-E2E-087)
Preconditions
Formulář 23b je otevřen (m_sestava 232 vyžaduje stupeň).
Steps (Action / Data / Expected)
1. Vyplň Období od = 01, do = 02, Stupeň nech prázdné a klikni OK. Data: Období od = 01 Data: Období do = 02 Data: Stupeň = (prázdné) Expected: Displayed: hláška doslova 'Chybí stupeň rozpouštění!' Fokus na pole Stupeň, tisk se nespustí. 2. Zadej Stupeň = 2 a klikni OK. Data: Stupeň = 2 Expected: Validace projde a otevře se náhled/okno Report printing.
Expected result
Validace projde a otevře se náhled/okno Report printing.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-05_PrintMonthlyComparisonPostDist.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-05 — Report printing 23b – Monthly post-allocation comparison of costs and revenues at period end (E2E).xlsx
SC-TISK23B-004 EP-TISK23B-RPT PrintMonthlyComparisonPostDist_TS003 Passed
▸ Step details (TC_ID: TC-E2E-088)
Preconditions
TS-000 proběhlo (oba měsíce rozpuštěné). Formulář 23b otevřen, období 01–02, stupeň 2. K dispozici PDF tiskárna.
Steps (Action / Data / Expected)
1. S přepínačem Report (období 01–02, stupeň 2) klikni OK a zkontroluj náhled proti Golden Master 23b. Data: Reference = test/Data/GoldenMaster/SC-05/23b Expected: Záhlaví 1:1 (Baťa, IČO, DIČ, Rok 2026, název '23b - Měsíční porovnání po rozpouštění N/V ke konci období', rozsah 01–02, předpis/stupeň). Tělo = měsíční sloupce z rozpuštěných dat (stupeň 2); plán (sr/ur) doplněný v TS-000 se promítá do výpočtů porovnání. 2. Vytiskni do PDF a porovnej zápatí + celou stránku s referencí. Data: Výstup = PDF Expected: Zápatí (strana, datum/čas) ve formátu VB6. Celá stránka 1:1 (rozdíl < 1 %).
Expected result
Zápatí (strana, datum/čas) ve formátu VB6. Celá stránka 1:1 (rozdíl < 1 %).
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-05_PrintMonthlyComparisonPostDist.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-05 — Report printing 23b – Monthly post-allocation comparison of costs and revenues at period end (E2E).xlsx
SC-TISK23B-005 EP-TISK23B-RPT PrintMonthlyComparisonPostDist_TS004 Passed
▸ Step details (TC_ID: TC-E2E-089)
Preconditions
Sada proběhla.
Steps (Action / Data / Expected)
1. [SQL cleanup] Delete data této sady ve FK pořadí. Data: SQL: Data: DELETE FROM fenix.rzp_rozp_det WHERE id_rozp IN (SELECT id_rozp FROM fenix.rzp_rozp WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE nazev='TS S04-05 definice')); Data: DELETE FROM fenix.rzp_rozp WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE nazev='TS S04-05 definice'); Data: DELETE FROM fenix.rzp_pred_hla WHERE id_pred IN (SELECT id_pred FROM fenix.rzp_pred WHERE nazev_pred='TS S04-05 předpis'); Data: DELETE FROM fenix.rzp_pred WHERE nazev_pred='TS S04-05 předpis'; Data: DELETE FROM fenix.rzp_definice WHERE nazev='TS S04-05 definice'; Expected: Všechny DELETE proběhnou bez chyby. 2. [SQL cleanup] Post-check. Data: SQL: Data: SELECT 'def S04-05' AS k, COUNT(*) AS v FROM fenix.rzp_definice WHERE nazev='TS S04-05 definice' Data: UNION ALL SELECT 'pred S04-05', COUNT(*) FROM fenix.rzp_pred WHERE nazev_pred='TS S04-05 předpis' Data: UNION ALL SELECT 'majitel Bata', COUNT(*) FROM fenix.rzp_majitel WHERE ico=44268050; Expected: 'def S04-05' = 0, 'pred S04-05' = 0, 'majitel Bata' = 1.
Expected result
'def S04-05' = 0, 'pred S04-05' = 0, 'majitel Bata' = 1.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-05_PrintMonthlyComparisonPostDist.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-05 — Report printing 23b – Monthly post-allocation comparison of costs and revenues at period end (E2E).xlsx

TS-RZP-S04-06 — Report printing 24a – Cost plan fulfilment overview at period end (E2E) All passed

5 / 5 passed — TS-RZP-S04-06 — Report printing 24a – Cost plan fulfilment overview at period end (E2E).xlsx · JSON spec

ScenarioEpicTest methodStatusTimeError / Detail
SC-TISK24A-001 EP-TISK24A-RPT PrintFulfillmentCosts_TS000 Passed
▸ Step details (TC_ID: TC-E2E-090)
Preconditions
Přístup k testovací DB i k aplikaci. Majitel Baťa (id_maj=10) má licenci RZP. 2026/01 uzavřené s daty. PLÁN = sloupce rzp_rozp_det.sr (schválený rozpočet) a ur (upravený rozpočet) – samostatná plán-tabulka NEEXISTUJE (ověřeno proti reálné DB; report čte skut/sr/ur z rzp_rozp_det). Oprávnění ReportPostDistribution.
Steps (Action / Data / Expected)
1. [SQL setup] Připoj se k DB a uvolni slot (idempotentní DELETE řetěz vč. předpisu). Data: SQL: Data: DELETE FROM fenix.rzp_rozp_det WHERE id_rozp IN (SELECT id_rozp FROM fenix.rzp_rozp WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE id_maj=10 AND rok=2026 AND nazev='TS S04-06 definice')); Data: DELETE FROM fenix.rzp_rozp WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE id_maj=10 AND rok=2026 AND nazev='TS S04-06 definice'); Data: DELETE FROM fenix.rzp_pred_hla WHERE id_pred IN (SELECT id_pred FROM fenix.rzp_pred WHERE nazev_pred='TS S04-06 předpis'); Data: DELETE FROM fenix.rzp_pred WHERE nazev_pred='TS S04-06 předpis'; Data: DELETE FROM fenix.rzp_definice WHERE id_maj=10 AND rok=2026 AND nazev='TS S04-06 definice'; Expected: DELETE proběhnou bez chyby. 2. [SQL setup] Insert definici + 2-stupňový předpis přes MAX+1. Data: SQL: Data: DECLARE @id_def INT = (SELECT ISNULL(MAX(id_def),0)+1 FROM fenix.rzp_definice); Data: DECLARE @id_pred INT = (SELECT ISNULL(MAX(id_pred),0)+1 FROM fenix.rzp_pred); Data: DECLARE @id_hla INT = (SELECT ISNULL(MAX(id_pred_hla),0)+1 FROM fenix.rzp_pred_hla); Data: INSERT INTO fenix.rzp_definice (id_def, id_maj, rok, id_ucet, z_text, poradi, nazev, konstanta, popis) VALUES (@id_def, 10, 2026, 28, '00000000000000', '0001-1-1-1-1-1-1-1-1-1-1-1-1', 'TS S04-06 definice', '----------------------------', 'Sada TS-RZP-S04-06'); Data: INSERT INTO fenix.rzp_pred (id_pred, id_def, c_poradi, pocet, plan_skut, nazev_pred, popis) VALUES (@id_pred, @id_def, 1, '2', 'S', 'TS S04-06 předpis', '2-stupňové rozpouštění'); Data: INSERT INTO fenix.rzp_pred_hla (id_pred_hla, id_pred, obdobi, predpis, stupen, nazev_hla, popis) VALUES (@id_hla, @id_pred, 1, 'S', '1', 'Stupeň 1', ''), (@id_hla+1, @id_pred, 1, 'S', '2', 'Stupeň 2', ''); Expected: INSERTy proběhnou (4 řádky). 3. In the application naimportuj 'TS S04-06 definice' za období 01 a kompletně rozpusť (stupeň 1 i 2), postup viz TS-RZP-S03-02. Data: Definice = TS S04-06 definice Data: Období = 01, rozpustit stupně 1 a 2 Expected: Řádek období 01 má Uzávěrka = 'A'. V rzp_rozp_det jsou řádky stupně 0 (přímá) i 1/2 (rozpuštěná). 4. [SQL setup] Doplň PLÁN (sr = schválený rozpočet, ur = upravený rozpočet) na všechny detailní řádky sady. Plán odvozen ze skutečnosti, aby bylo plnění deterministické a nenulové. Data: SQL: Data: UPDATE rd Data: SET rd.sr = ROUND(rd.skut * 0.90, 2), Data: rd.ur = ROUND(rd.skut * 0.95, 2) Data: FROM fenix.rzp_rozp_det rd Data: JOIN fenix.rzp_rozp r ON r.id_rozp = rd.id_rozp Data: WHERE r.id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE nazev='TS S04-06 definice'); Expected: UPDATE nastaví sr ≈ 90 % a ur ≈ 95 % skutečnosti na všech detailních řádcích sady (plnění k SR ≈ 111,1 %, k UR ≈ 105,3 %). 5. [SQL audit] Ověř plnění nákladů (nakl_vyn='N') vs plán. Data: SQL: Data: SELECT rd.nakl_vyn, SUM(rd.skut) AS skutecnost, SUM(rd.sr) AS plan_schvaleny, SUM(rd.ur) AS plan_upraveny, Data: CAST(100.0*SUM(rd.skut)/NULLIF(SUM(rd.sr),0) AS DECIMAL(6,1)) AS plneni_k_sr_pct Data: FROM fenix.rzp_rozp_det rd JOIN fenix.rzp_rozp r ON r.id_rozp=rd.id_rozp JOIN fenix.rzp_definice d ON d.id_def=r.id_def Data: WHERE d.nazev='TS S04-06 definice' GROUP BY rd.nakl_vyn; Expected: Pro nakl_vyn='N' (náklady) je skutecnost > 0, plan_schvaleny i plan_upraveny > 0 a plneni_k_sr_pct ≈ 111,1. Sestava 24a má co počítat.
Expected result
Pro nakl_vyn='N' (náklady) je skutecnost > 0, plan_schvaleny i plan_upraveny > 0 a plneni_k_sr_pct ≈ 111,1. Sestava 24a má co počítat.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-06_PrintFulfillmentCosts.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-06 — Report printing 24a – Cost plan fulfilment overview at period end (E2E).xlsx
SC-TISK24A-002 EP-TISK24A-RPT PrintFulfillmentCosts_TS001 Passed
▸ Step details (TC_ID: TC-E2E-091)
Preconditions
TS-000 proběhlo. Baťa vybrán, rok 2026, oprávnění ReportPostDistribution.
Steps (Action / Data / Expected)
1. Klikni Přehledy → 24 → '24a - Cost plan fulfilment overview at period end' (příp. select předpis 'TS S04-06 předpis'). Data: VariantTag = 24a Data: Předpis = TS S04-06 předpis Expected: Otevře se formulář s titulkem doslova '24a - Cost plan fulfilment overview at period end'. 2. Zkontroluj záhlaví a layout. Expected: IČO 44268050, DIČ, Baťa, Rok 2026. Panel předpisu a pole Stupeň jsou viditelné a editovatelné. Volba Plán/Kč je skrytá, Název sestavy zúžený.
Expected result
IČO 44268050, DIČ, Baťa, Rok 2026. Panel předpisu a pole Stupeň jsou viditelné a editovatelné. Volba Plán/Kč je skrytá, Název sestavy zúžený.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-06_PrintFulfillmentCosts.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-06 — Report printing 24a – Cost plan fulfilment overview at period end (E2E).xlsx
SC-TISK24A-003 EP-TISK24A-RPT PrintFulfillmentCosts_TS002 Passed
▸ Step details (TC_ID: TC-E2E-092)
Preconditions
Formulář 24a je otevřen (prefix 24 vyžaduje stupeň).
Steps (Action / Data / Expected)
1. Vyplň Období od = 01, do = 01, Stupeň nech prázdné a klikni OK. Data: Období od = 01 Data: Období do = 01 Data: Stupeň = (prázdné) Expected: Displayed: hláška doslova 'Chybí stupeň rozpouštění!' Fokus na pole Stupeň, tisk se nespustí. 2. Zadej Stupeň = 2 a klikni OK. Data: Stupeň = 2 Expected: Validace projde a otevře se náhled/okno Report printing.
Expected result
Validace projde a otevře se náhled/okno Report printing.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-06_PrintFulfillmentCosts.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-06 — Report printing 24a – Cost plan fulfilment overview at period end (E2E).xlsx
SC-TISK24A-004 EP-TISK24A-RPT PrintFulfillmentCosts_TS003 Passed
▸ Step details (TC_ID: TC-E2E-093)
Preconditions
TS-000 proběhlo (rozpuštěné období 01, plán sr/ur doplněn). Formulář 24a otevřen, období 01–01, stupeň 2. K dispozici PDF tiskárna.
Steps (Action / Data / Expected)
1. S přepínačem Report (období 01–01, stupeň 2) klikni OK a zkontroluj náhled proti Golden Master 24a. Data: Reference = test/Data/GoldenMaster/SC-05/24a Expected: Záhlaví 1:1 (Baťa, IČO, DIČ, Rok 2026, název '24a - Cost plan fulfilment overview at period end', období, předpis/stupeň). Tělo obsahuje pouze NÁKLADY (su 5xx) se sloupci skutečnost / schválený rozpočet (sr) / upravený rozpočet (ur) / plnění; plnění k sr ≈ 111 %, k ur ≈ 105 % (dle TS-000). 2. Vytiskni do PDF a porovnej zápatí + celou stránku s referencí. Data: Výstup = PDF Expected: Zápatí (strana, datum/čas) ve formátu VB6. Celá stránka 1:1 (rozdíl < 1 %). Součet skutečnosti i plánu sedí s SQL auditem z TS-000.
Expected result
Zápatí (strana, datum/čas) ve formátu VB6. Celá stránka 1:1 (rozdíl < 1 %). Součet skutečnosti i plánu sedí s SQL auditem z TS-000.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-06_PrintFulfillmentCosts.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-06 — Report printing 24a – Cost plan fulfilment overview at period end (E2E).xlsx
SC-TISK24A-005 EP-TISK24A-RPT PrintFulfillmentCosts_TS004 Passed
▸ Step details (TC_ID: TC-E2E-094)
Preconditions
Sada proběhla.
Steps (Action / Data / Expected)
1. [SQL cleanup] Delete data této sady ve FK pořadí. Data: SQL: Data: DELETE FROM fenix.rzp_rozp_det WHERE id_rozp IN (SELECT id_rozp FROM fenix.rzp_rozp WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE nazev='TS S04-06 definice')); Data: DELETE FROM fenix.rzp_rozp WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE nazev='TS S04-06 definice'); Data: DELETE FROM fenix.rzp_pred_hla WHERE id_pred IN (SELECT id_pred FROM fenix.rzp_pred WHERE nazev_pred='TS S04-06 předpis'); Data: DELETE FROM fenix.rzp_pred WHERE nazev_pred='TS S04-06 předpis'; Data: DELETE FROM fenix.rzp_definice WHERE nazev='TS S04-06 definice'; Expected: Všechny DELETE proběhnou bez chyby. 2. [SQL cleanup] Post-check. Data: SQL: Data: SELECT 'def S04-06' AS k, COUNT(*) AS v FROM fenix.rzp_definice WHERE nazev='TS S04-06 definice' Data: UNION ALL SELECT 'pred S04-06', COUNT(*) FROM fenix.rzp_pred WHERE nazev_pred='TS S04-06 předpis' Data: UNION ALL SELECT 'majitel Bata', COUNT(*) FROM fenix.rzp_majitel WHERE ico=44268050; Expected: 'def S04-06' = 0, 'pred S04-06' = 0, 'majitel Bata' = 1.
Expected result
'def S04-06' = 0, 'pred S04-06' = 0, 'majitel Bata' = 1.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-06_PrintFulfillmentCosts.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-06 — Report printing 24a – Cost plan fulfilment overview at period end (E2E).xlsx

TS-RZP-S04-07 — Report printing 24b – Revenue plan fulfilment overview at period end (E2E) All passed

5 / 5 passed — TS-RZP-S04-07 — Report printing 24b – Revenue plan fulfilment overview at period end (E2E).xlsx · JSON spec

ScenarioEpicTest methodStatusTimeError / Detail
SC-TISK24B-001 EP-TISK24B-RPT PrintFulfillmentRevenues_TS000 Passed
▸ Step details (TC_ID: TC-E2E-095)
Preconditions
Přístup k testovací DB i k aplikaci. Baťa (id_maj=10) má licenci RZP. 2026/01 uzavřené s daty. PLÁN = sloupce rzp_rozp_det.sr (schválený rozpočet) a ur (upravený rozpočet) – samostatná plán-tabulka NEEXISTUJE (ověřeno proti reálné DB). Oprávnění ReportPostDistribution.
Steps (Action / Data / Expected)
1. [SQL setup] Připoj se k DB a uvolni slot (idempotentní DELETE řetěz vč. předpisu). Data: SQL: Data: DELETE FROM fenix.rzp_rozp_det WHERE id_rozp IN (SELECT id_rozp FROM fenix.rzp_rozp WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE id_maj=10 AND rok=2026 AND nazev='TS S04-07 definice')); Data: DELETE FROM fenix.rzp_rozp WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE id_maj=10 AND rok=2026 AND nazev='TS S04-07 definice'); Data: DELETE FROM fenix.rzp_pred_hla WHERE id_pred IN (SELECT id_pred FROM fenix.rzp_pred WHERE nazev_pred='TS S04-07 předpis'); Data: DELETE FROM fenix.rzp_pred WHERE nazev_pred='TS S04-07 předpis'; Data: DELETE FROM fenix.rzp_definice WHERE id_maj=10 AND rok=2026 AND nazev='TS S04-07 definice'; Expected: DELETE proběhnou bez chyby. 2. [SQL setup] Insert definici + 2-stupňový předpis přes MAX+1. Data: SQL: Data: DECLARE @id_def INT = (SELECT ISNULL(MAX(id_def),0)+1 FROM fenix.rzp_definice); Data: DECLARE @id_pred INT = (SELECT ISNULL(MAX(id_pred),0)+1 FROM fenix.rzp_pred); Data: DECLARE @id_hla INT = (SELECT ISNULL(MAX(id_pred_hla),0)+1 FROM fenix.rzp_pred_hla); Data: INSERT INTO fenix.rzp_definice (id_def, id_maj, rok, id_ucet, z_text, poradi, nazev, konstanta, popis) VALUES (@id_def, 10, 2026, 28, '00000000000000', '0001-1-1-1-1-1-1-1-1-1-1-1-1', 'TS S04-07 definice', '----------------------------', 'Sada TS-RZP-S04-07'); Data: INSERT INTO fenix.rzp_pred (id_pred, id_def, c_poradi, pocet, plan_skut, nazev_pred, popis) VALUES (@id_pred, @id_def, 1, '2', 'S', 'TS S04-07 předpis', '2-stupňové rozpouštění'); Data: INSERT INTO fenix.rzp_pred_hla (id_pred_hla, id_pred, obdobi, predpis, stupen, nazev_hla, popis) VALUES (@id_hla, @id_pred, 1, 'S', '1', 'Stupeň 1', ''), (@id_hla+1, @id_pred, 1, 'S', '2', 'Stupeň 2', ''); Expected: INSERTy proběhnou (4 řádky). 3. In the application naimportuj 'TS S04-07 definice' za období 01 a kompletně rozpusť (stupeň 1 i 2), postup viz TS-RZP-S03-02. Data: Definice = TS S04-07 definice Data: Období = 01, rozpustit stupně 1 a 2 Expected: Řádek období 01 má Uzávěrka = 'A'. 4. [SQL setup] Doplň PLÁN (sr = schválený rozpočet, ur = upravený rozpočet) na detailní řádky sady. Data: SQL: Data: UPDATE rd Data: SET rd.sr = ROUND(rd.skut * 0.90, 2), Data: rd.ur = ROUND(rd.skut * 0.95, 2) Data: FROM fenix.rzp_rozp_det rd Data: JOIN fenix.rzp_rozp r ON r.id_rozp = rd.id_rozp Data: WHERE r.id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE nazev='TS S04-07 definice'); Expected: UPDATE nastaví sr ≈ 90 % a ur ≈ 95 % skutečnosti (plnění k SR ≈ 111,1 %, k UR ≈ 105,3 %). 5. [SQL audit] Ověř plnění výnosů (nakl_vyn='V') vs plán. Data: SQL: Data: SELECT rd.nakl_vyn, SUM(rd.skut) AS skutecnost, SUM(rd.sr) AS plan_schvaleny, SUM(rd.ur) AS plan_upraveny, Data: CAST(100.0*SUM(rd.skut)/NULLIF(SUM(rd.sr),0) AS DECIMAL(6,1)) AS plneni_k_sr_pct Data: FROM fenix.rzp_rozp_det rd JOIN fenix.rzp_rozp r ON r.id_rozp=rd.id_rozp JOIN fenix.rzp_definice d ON d.id_def=r.id_def Data: WHERE d.nazev='TS S04-07 definice' GROUP BY rd.nakl_vyn; Expected: Pro nakl_vyn='V' (výnosy) je skutecnost > 0, plán > 0 a plneni_k_sr_pct ≈ 111,1.
Expected result
Pro nakl_vyn='V' (výnosy) je skutecnost > 0, plán > 0 a plneni_k_sr_pct ≈ 111,1.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-07_PrintFulfillmentRevenues.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-07 — Report printing 24b – Revenue plan fulfilment overview at period end (E2E).xlsx
SC-TISK24B-002 EP-TISK24B-RPT PrintFulfillmentRevenues_TS001 Passed
▸ Step details (TC_ID: TC-E2E-096)
Preconditions
TS-000 proběhlo. Baťa vybrán, rok 2026, oprávnění ReportPostDistribution.
Steps (Action / Data / Expected)
1. Klikni Přehledy → 24 → '24b - Revenue plan fulfilment overview at period end' (příp. select předpis 'TS S04-07 předpis'). Data: VariantTag = 24b Data: Předpis = TS S04-07 předpis Expected: Otevře se formulář s titulkem doslova '24b - Revenue plan fulfilment overview at period end'. 2. Zkontroluj záhlaví a layout. Expected: IČO 44268050, DIČ, Baťa, Rok 2026. Předpis a Stupeň viditelné/editovatelné, Plán/Kč skryté, Název sestavy zúžený.
Expected result
IČO 44268050, DIČ, Baťa, Rok 2026. Předpis a Stupeň viditelné/editovatelné, Plán/Kč skryté, Název sestavy zúžený.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-07_PrintFulfillmentRevenues.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-07 — Report printing 24b – Revenue plan fulfilment overview at period end (E2E).xlsx
SC-TISK24B-003 EP-TISK24B-RPT PrintFulfillmentRevenues_TS002 Passed
▸ Step details (TC_ID: TC-E2E-097)
Preconditions
Formulář 24b je otevřen (prefix 24 vyžaduje stupeň).
Steps (Action / Data / Expected)
1. Vyplň Období od = 01, do = 01, Stupeň nech prázdné a klikni OK. Data: Stupeň = (prázdné) Expected: Displayed: hláška doslova 'Chybí stupeň rozpouštění!' Tisk se nespustí. 2. Zadej Stupeň = 2 a klikni OK. Data: Stupeň = 2 Expected: Validace projde a otevře se náhled/okno Report printing.
Expected result
Validace projde a otevře se náhled/okno Report printing.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-07_PrintFulfillmentRevenues.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-07 — Report printing 24b – Revenue plan fulfilment overview at period end (E2E).xlsx
SC-TISK24B-004 EP-TISK24B-RPT PrintFulfillmentRevenues_TS003 Passed
▸ Step details (TC_ID: TC-E2E-098)
Preconditions
TS-000 proběhlo (rozpuštěné období 01, plán sr/ur doplněn). Formulář 24b otevřen, období 01–01, stupeň 2. PDF tiskárna.
Steps (Action / Data / Expected)
1. S přepínačem Report (období 01–01, stupeň 2) klikni OK a zkontroluj náhled proti Golden Master 24b. Data: Reference = test/Data/GoldenMaster/SC-05/24b Expected: Záhlaví 1:1 (Baťa, IČO, DIČ, Rok 2026, název '24b - Revenue plan fulfilment overview at period end', období, předpis/stupeň). Tělo obsahuje pouze VÝNOSY (su 6xx) se sloupci skutečnost / sr / ur / plnění; plnění k sr ≈ 111 %, k ur ≈ 105 %. 2. Vytiskni do PDF a porovnej zápatí + celou stránku s referencí. Data: Výstup = PDF Expected: Zápatí ve formátu VB6, celá stránka 1:1 (rozdíl < 1 %). Součty sedí s SQL auditem z TS-000.
Expected result
Zápatí ve formátu VB6, celá stránka 1:1 (rozdíl < 1 %). Součty sedí s SQL auditem z TS-000.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-07_PrintFulfillmentRevenues.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-07 — Report printing 24b – Revenue plan fulfilment overview at period end (E2E).xlsx
SC-TISK24B-005 EP-TISK24B-RPT PrintFulfillmentRevenues_TS004 Passed
▸ Step details (TC_ID: TC-E2E-099)
Preconditions
Sada proběhla.
Steps (Action / Data / Expected)
1. [SQL cleanup] Delete data této sady ve FK pořadí. Data: SQL: Data: DELETE FROM fenix.rzp_rozp_det WHERE id_rozp IN (SELECT id_rozp FROM fenix.rzp_rozp WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE nazev='TS S04-07 definice')); Data: DELETE FROM fenix.rzp_rozp WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE nazev='TS S04-07 definice'); Data: DELETE FROM fenix.rzp_pred_hla WHERE id_pred IN (SELECT id_pred FROM fenix.rzp_pred WHERE nazev_pred='TS S04-07 předpis'); Data: DELETE FROM fenix.rzp_pred WHERE nazev_pred='TS S04-07 předpis'; Data: DELETE FROM fenix.rzp_definice WHERE nazev='TS S04-07 definice'; Expected: Všechny DELETE proběhnou bez chyby. 2. [SQL cleanup] Post-check. Data: SQL: Data: SELECT 'def S04-07' AS k, COUNT(*) AS v FROM fenix.rzp_definice WHERE nazev='TS S04-07 definice' Data: UNION ALL SELECT 'pred S04-07', COUNT(*) FROM fenix.rzp_pred WHERE nazev_pred='TS S04-07 předpis' Data: UNION ALL SELECT 'majitel Bata', COUNT(*) FROM fenix.rzp_majitel WHERE ico=44268050; Expected: 'def S04-07' = 0, 'pred S04-07' = 0, 'majitel Bata' = 1.
Expected result
'def S04-07' = 0, 'pred S04-07' = 0, 'majitel Bata' = 1.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-07_PrintFulfillmentRevenues.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-07 — Report printing 24b – Revenue plan fulfilment overview at period end (E2E).xlsx

TS-RZP-S04-08 — Report printing 24c – Cost and revenue plan fulfilment overview at period end (E2E) All passed

5 / 5 passed — TS-RZP-S04-08 — Report printing 24c – Cost and revenue plan fulfilment overview at period end (E2E).xlsx · JSON spec

ScenarioEpicTest methodStatusTimeError / Detail
SC-TISK24C-001 EP-TISK24C-RPT PrintFulfillmentCostsRevenues_TS000 Passed
▸ Step details (TC_ID: TC-E2E-100)
Preconditions
Přístup k testovací DB i k aplikaci. Baťa (id_maj=10) má licenci RZP. 2026/01 uzavřené s daty. PLÁN = sloupce rzp_rozp_det.sr (schválený rozpočet) a ur (upravený rozpočet) – samostatná plán-tabulka NEEXISTUJE (ověřeno proti reálné DB). Oprávnění ReportPostDistribution.
Steps (Action / Data / Expected)
1. [SQL setup] Připoj se k DB a uvolni slot (idempotentní DELETE řetěz vč. předpisu). Data: SQL: Data: DELETE FROM fenix.rzp_rozp_det WHERE id_rozp IN (SELECT id_rozp FROM fenix.rzp_rozp WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE id_maj=10 AND rok=2026 AND nazev='TS S04-08 definice')); Data: DELETE FROM fenix.rzp_rozp WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE id_maj=10 AND rok=2026 AND nazev='TS S04-08 definice'); Data: DELETE FROM fenix.rzp_pred_hla WHERE id_pred IN (SELECT id_pred FROM fenix.rzp_pred WHERE nazev_pred='TS S04-08 předpis'); Data: DELETE FROM fenix.rzp_pred WHERE nazev_pred='TS S04-08 předpis'; Data: DELETE FROM fenix.rzp_definice WHERE id_maj=10 AND rok=2026 AND nazev='TS S04-08 definice'; Expected: DELETE proběhnou bez chyby. 2. [SQL setup] Insert definici + 2-stupňový předpis přes MAX+1. Data: SQL: Data: DECLARE @id_def INT = (SELECT ISNULL(MAX(id_def),0)+1 FROM fenix.rzp_definice); Data: DECLARE @id_pred INT = (SELECT ISNULL(MAX(id_pred),0)+1 FROM fenix.rzp_pred); Data: DECLARE @id_hla INT = (SELECT ISNULL(MAX(id_pred_hla),0)+1 FROM fenix.rzp_pred_hla); Data: INSERT INTO fenix.rzp_definice (id_def, id_maj, rok, id_ucet, z_text, poradi, nazev, konstanta, popis) VALUES (@id_def, 10, 2026, 28, '00000000000000', '0001-1-1-1-1-1-1-1-1-1-1-1-1', 'TS S04-08 definice', '----------------------------', 'Sada TS-RZP-S04-08'); Data: INSERT INTO fenix.rzp_pred (id_pred, id_def, c_poradi, pocet, plan_skut, nazev_pred, popis) VALUES (@id_pred, @id_def, 1, '2', 'S', 'TS S04-08 předpis', '2-stupňové rozpouštění'); Data: INSERT INTO fenix.rzp_pred_hla (id_pred_hla, id_pred, obdobi, predpis, stupen, nazev_hla, popis) VALUES (@id_hla, @id_pred, 1, 'S', '1', 'Stupeň 1', ''), (@id_hla+1, @id_pred, 1, 'S', '2', 'Stupeň 2', ''); Expected: INSERTy proběhnou (4 řádky). 3. In the application naimportuj 'TS S04-08 definice' za období 01 a kompletně rozpusť (stupeň 1 i 2). Data: Definice = TS S04-08 definice Data: Období = 01, rozpustit stupně 1 a 2 Expected: Řádek období 01 má Uzávěrka = 'A'. 4. [SQL setup] Doplň PLÁN (sr, ur) na detailní řádky sady. Data: SQL: Data: UPDATE rd Data: SET rd.sr = ROUND(rd.skut * 0.90, 2), Data: rd.ur = ROUND(rd.skut * 0.95, 2) Data: FROM fenix.rzp_rozp_det rd Data: JOIN fenix.rzp_rozp r ON r.id_rozp = rd.id_rozp Data: WHERE r.id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE nazev='TS S04-08 definice'); Expected: UPDATE nastaví sr ≈ 90 % a ur ≈ 95 % skutečnosti (plnění k SR ≈ 111,1 %, k UR ≈ 105,3 %). 5. [SQL audit] Ověř plnění nákladů (N) i výnosů (V) vs plán. Data: SQL: Data: SELECT rd.nakl_vyn, SUM(rd.skut) AS skutecnost, SUM(rd.sr) AS plan_schvaleny, SUM(rd.ur) AS plan_upraveny, Data: CAST(100.0*SUM(rd.skut)/NULLIF(SUM(rd.sr),0) AS DECIMAL(6,1)) AS plneni_k_sr_pct Data: FROM fenix.rzp_rozp_det rd JOIN fenix.rzp_rozp r ON r.id_rozp=rd.id_rozp JOIN fenix.rzp_definice d ON d.id_def=r.id_def Data: WHERE d.nazev='TS S04-08 definice' GROUP BY rd.nakl_vyn; Expected: Vrátí 2 řádky (nakl_vyn 'N' i 'V'), oba se skutecnost > 0, plán > 0 a plneni_k_sr_pct ≈ 111,1.
Expected result
Vrátí 2 řádky (nakl_vyn 'N' i 'V'), oba se skutecnost > 0, plán > 0 a plneni_k_sr_pct ≈ 111,1.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-08_PrintFulfillmentCostsRevenues.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-08 — Report printing 24c – Cost and revenue plan fulfilment overview at period end (E2E).xlsx
SC-TISK24C-002 EP-TISK24C-RPT PrintFulfillmentCostsRevenues_TS001 Passed
▸ Step details (TC_ID: TC-E2E-101)
Preconditions
TS-000 proběhlo. Baťa vybrán, rok 2026, oprávnění ReportPostDistribution.
Steps (Action / Data / Expected)
1. Klikni Přehledy → 24 → '24c - Cost and revenue plan fulfilment overview at period end' (příp. select předpis 'TS S04-08 předpis'). Data: VariantTag = 24c Data: Předpis = TS S04-08 předpis Expected: Otevře se formulář s titulkem doslova '24c - Cost and revenue plan fulfilment overview at period end'. 2. Zkontroluj záhlaví a layout. Expected: IČO 44268050, DIČ, Baťa, Rok 2026. Předpis a Stupeň viditelné/editovatelné, Plán/Kč skryté, Název sestavy zúžený.
Expected result
IČO 44268050, DIČ, Baťa, Rok 2026. Předpis a Stupeň viditelné/editovatelné, Plán/Kč skryté, Název sestavy zúžený.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-08_PrintFulfillmentCostsRevenues.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-08 — Report printing 24c – Cost and revenue plan fulfilment overview at period end (E2E).xlsx
SC-TISK24C-003 EP-TISK24C-RPT PrintFulfillmentCostsRevenues_TS002 Passed
▸ Step details (TC_ID: TC-E2E-102)
Preconditions
Formulář 24c je otevřen (prefix 24 vyžaduje stupeň).
Steps (Action / Data / Expected)
1. Vyplň Období od = 01, do = 01, Stupeň nech prázdné a klikni OK. Data: Stupeň = (prázdné) Expected: Displayed: hláška doslova 'Chybí stupeň rozpouštění!' Tisk se nespustí. 2. Zadej Stupeň = 2 a klikni OK. Data: Stupeň = 2 Expected: Validace projde a otevře se náhled/okno Report printing.
Expected result
Validace projde a otevře se náhled/okno Report printing.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-08_PrintFulfillmentCostsRevenues.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-08 — Report printing 24c – Cost and revenue plan fulfilment overview at period end (E2E).xlsx
SC-TISK24C-004 EP-TISK24C-RPT PrintFulfillmentCostsRevenues_TS003 Passed
▸ Step details (TC_ID: TC-E2E-103)
Preconditions
TS-000 proběhlo (rozpuštěné období 01, plán sr/ur doplněn). Formulář 24c otevřen, období 01–01, stupeň 2. PDF tiskárna.
Steps (Action / Data / Expected)
1. S přepínačem Report (období 01–01, stupeň 2) klikni OK a zkontroluj náhled proti Golden Master 24c. Data: Reference = test/Data/GoldenMaster/SC-05/24c Expected: Záhlaví 1:1 (Baťa, IČO, DIČ, Rok 2026, název '24c - Cost and revenue plan fulfilment overview at period end', období, předpis/stupeň). Tělo obsahuje NÁKLADY i VÝNOSY se sloupci skutečnost / sr / ur / plnění; plnění k sr ≈ 111 %, k ur ≈ 105 %. 2. Vytiskni do PDF a porovnej zápatí + celou stránku s referencí. Data: Výstup = PDF Expected: Zápatí ve formátu VB6, celá stránka 1:1 (rozdíl < 1 %). Součty N i V sedí s SQL auditem z TS-000.
Expected result
Zápatí ve formátu VB6, celá stránka 1:1 (rozdíl < 1 %). Součty N i V sedí s SQL auditem z TS-000.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-08_PrintFulfillmentCostsRevenues.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-08 — Report printing 24c – Cost and revenue plan fulfilment overview at period end (E2E).xlsx
SC-TISK24C-005 EP-TISK24C-RPT PrintFulfillmentCostsRevenues_TS004 Passed
▸ Step details (TC_ID: TC-E2E-104)
Preconditions
Sada proběhla.
Steps (Action / Data / Expected)
1. [SQL cleanup] Delete data této sady ve FK pořadí. Data: SQL: Data: DELETE FROM fenix.rzp_rozp_det WHERE id_rozp IN (SELECT id_rozp FROM fenix.rzp_rozp WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE nazev='TS S04-08 definice')); Data: DELETE FROM fenix.rzp_rozp WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE nazev='TS S04-08 definice'); Data: DELETE FROM fenix.rzp_pred_hla WHERE id_pred IN (SELECT id_pred FROM fenix.rzp_pred WHERE nazev_pred='TS S04-08 předpis'); Data: DELETE FROM fenix.rzp_pred WHERE nazev_pred='TS S04-08 předpis'; Data: DELETE FROM fenix.rzp_definice WHERE nazev='TS S04-08 definice'; Expected: Všechny DELETE proběhnou bez chyby. 2. [SQL cleanup] Post-check. Data: SQL: Data: SELECT 'def S04-08' AS k, COUNT(*) AS v FROM fenix.rzp_definice WHERE nazev='TS S04-08 definice' Data: UNION ALL SELECT 'pred S04-08', COUNT(*) FROM fenix.rzp_pred WHERE nazev_pred='TS S04-08 předpis' Data: UNION ALL SELECT 'majitel Bata', COUNT(*) FROM fenix.rzp_majitel WHERE ico=44268050; Expected: 'def S04-08' = 0, 'pred S04-08' = 0, 'majitel Bata' = 1.
Expected result
'def S04-08' = 0, 'pred S04-08' = 0, 'majitel Bata' = 1.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-08_PrintFulfillmentCostsRevenues.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-08 — Report printing 24c – Cost and revenue plan fulfilment overview at period end (E2E).xlsx

TS-RZP-S04-09 — Report printing 24d – Cost and revenue plan fulfilment recap at period end (E2E) All passed

5 / 5 passed — TS-RZP-S04-09 — Report printing 24d – Cost and revenue plan fulfilment recap at period end (E2E).xlsx · JSON spec

ScenarioEpicTest methodStatusTimeError / Detail
SC-TISK24D-001 EP-TISK24D-RPT PrintFulfillmentRecap_TS000 Passed
▸ Step details (TC_ID: TC-E2E-105)
Preconditions
Přístup k testovací DB i k aplikaci. Baťa (id_maj=10) má licenci RZP. 2026/01 uzavřené s daty. PLÁN = sloupce rzp_rozp_det.sr (schválený rozpočet) a ur (upravený rozpočet) – samostatná plán-tabulka NEEXISTUJE (ověřeno proti reálné DB). Oprávnění ReportPostDistribution.
Steps (Action / Data / Expected)
1. [SQL setup] Připoj se k DB a uvolni slot (idempotentní DELETE řetěz vč. předpisu). Data: SQL: Data: DELETE FROM fenix.rzp_rozp_det WHERE id_rozp IN (SELECT id_rozp FROM fenix.rzp_rozp WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE id_maj=10 AND rok=2026 AND nazev='TS S04-09 definice')); Data: DELETE FROM fenix.rzp_rozp WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE id_maj=10 AND rok=2026 AND nazev='TS S04-09 definice'); Data: DELETE FROM fenix.rzp_pred_hla WHERE id_pred IN (SELECT id_pred FROM fenix.rzp_pred WHERE nazev_pred='TS S04-09 předpis'); Data: DELETE FROM fenix.rzp_pred WHERE nazev_pred='TS S04-09 předpis'; Data: DELETE FROM fenix.rzp_definice WHERE id_maj=10 AND rok=2026 AND nazev='TS S04-09 definice'; Expected: DELETE proběhnou bez chyby. 2. [SQL setup] Insert definici + 2-stupňový předpis přes MAX+1. Data: SQL: Data: DECLARE @id_def INT = (SELECT ISNULL(MAX(id_def),0)+1 FROM fenix.rzp_definice); Data: DECLARE @id_pred INT = (SELECT ISNULL(MAX(id_pred),0)+1 FROM fenix.rzp_pred); Data: DECLARE @id_hla INT = (SELECT ISNULL(MAX(id_pred_hla),0)+1 FROM fenix.rzp_pred_hla); Data: INSERT INTO fenix.rzp_definice (id_def, id_maj, rok, id_ucet, z_text, poradi, nazev, konstanta, popis) VALUES (@id_def, 10, 2026, 28, '00000000000000', '0001-1-1-1-1-1-1-1-1-1-1-1-1', 'TS S04-09 definice', '----------------------------', 'Sada TS-RZP-S04-09'); Data: INSERT INTO fenix.rzp_pred (id_pred, id_def, c_poradi, pocet, plan_skut, nazev_pred, popis) VALUES (@id_pred, @id_def, 1, '2', 'S', 'TS S04-09 předpis', '2-stupňové rozpouštění'); Data: INSERT INTO fenix.rzp_pred_hla (id_pred_hla, id_pred, obdobi, predpis, stupen, nazev_hla, popis) VALUES (@id_hla, @id_pred, 1, 'S', '1', 'Stupeň 1', ''), (@id_hla+1, @id_pred, 1, 'S', '2', 'Stupeň 2', ''); Expected: INSERTy proběhnou (4 řádky). 3. In the application naimportuj 'TS S04-09 definice' za období 01 a kompletně rozpusť (stupeň 1 i 2). Data: Definice = TS S04-09 definice Data: Období = 01, rozpustit stupně 1 a 2 Expected: Řádek období 01 má Uzávěrka = 'A'. 4. [SQL setup] Doplň PLÁN (sr, ur) na detailní řádky sady. Data: SQL: Data: UPDATE rd Data: SET rd.sr = ROUND(rd.skut * 0.90, 2), Data: rd.ur = ROUND(rd.skut * 0.95, 2) Data: FROM fenix.rzp_rozp_det rd Data: JOIN fenix.rzp_rozp r ON r.id_rozp = rd.id_rozp Data: WHERE r.id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE nazev='TS S04-09 definice'); Expected: UPDATE nastaví sr ≈ 90 % a ur ≈ 95 % skutečnosti. 5. [SQL audit] Spočti rekapitulační součty (celkem N a V) skutečnost vs plán. Data: SQL: Data: SELECT rd.nakl_vyn, SUM(rd.skut) AS skutecnost, SUM(rd.sr) AS plan_schvaleny, SUM(rd.ur) AS plan_upraveny Data: FROM fenix.rzp_rozp_det rd JOIN fenix.rzp_rozp r ON r.id_rozp=rd.id_rozp JOIN fenix.rzp_definice d ON d.id_def=r.id_def Data: WHERE d.nazev='TS S04-09 definice' GROUP BY rd.nakl_vyn WITH ROLLUP; Expected: Vrátí součty za N, za V a CELKEM (ROLLUP řádek s nakl_vyn=NULL). Tyto součty musí sedět s rekapitulační stranou sestavy 24d.
Expected result
Vrátí součty za N, za V a CELKEM (ROLLUP řádek s nakl_vyn=NULL). Tyto součty musí sedět s rekapitulační stranou sestavy 24d.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-09_PrintFulfillmentRecap.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-09 — Report printing 24d – Cost and revenue plan fulfilment recap at period end (E2E).xlsx
SC-TISK24D-002 EP-TISK24D-RPT PrintFulfillmentRecap_TS001 Passed
▸ Step details (TC_ID: TC-E2E-106)
Preconditions
TS-000 proběhlo. Baťa vybrán, rok 2026, oprávnění ReportPostDistribution.
Steps (Action / Data / Expected)
1. Klikni Přehledy → 24 → '24d - Rekapitulace plnění N/V ke konci období' (příp. select předpis 'TS S04-09 předpis'). Data: VariantTag = 24d Data: Předpis = TS S04-09 předpis Expected: Otevře se formulář s titulkem doslova '24d - Rekapitulace plnění N/V ke konci období'. 2. Zkontroluj záhlaví a layout. Expected: IČO 44268050, DIČ, Baťa, Rok 2026. Předpis a Stupeň viditelné/editovatelné, Plán/Kč skryté, Název sestavy zúžený.
Expected result
IČO 44268050, DIČ, Baťa, Rok 2026. Předpis a Stupeň viditelné/editovatelné, Plán/Kč skryté, Název sestavy zúžený.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-09_PrintFulfillmentRecap.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-09 — Report printing 24d – Cost and revenue plan fulfilment recap at period end (E2E).xlsx
SC-TISK24D-003 EP-TISK24D-RPT PrintFulfillmentRecap_TS002 Passed
▸ Step details (TC_ID: TC-E2E-107)
Preconditions
Formulář 24d je otevřen (prefix 24 vyžaduje stupeň).
Steps (Action / Data / Expected)
1. Vyplň Období od = 01, do = 01, Stupeň nech prázdné a klikni OK. Data: Stupeň = (prázdné) Expected: Displayed: hláška doslova 'Chybí stupeň rozpouštění!' Tisk se nespustí. 2. Zadej Stupeň = 2 a klikni OK. Data: Stupeň = 2 Expected: Validace projde a otevře se náhled/okno Report printing.
Expected result
Validace projde a otevře se náhled/okno Report printing.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-09_PrintFulfillmentRecap.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-09 — Report printing 24d – Cost and revenue plan fulfilment recap at period end (E2E).xlsx
SC-TISK24D-004 EP-TISK24D-RPT PrintFulfillmentRecap_TS003 Passed
▸ Step details (TC_ID: TC-E2E-108)
Preconditions
TS-000 proběhlo (rozpuštěné období 01, plán sr/ur doplněn). Formulář 24d otevřen, období 01–01, stupeň 2. PDF tiskárna.
Steps (Action / Data / Expected)
1. S přepínačem Report (období 01–01, stupeň 2) klikni OK a zkontroluj náhled proti Golden Master 24d. Data: Reference = test/Data/GoldenMaster/SC-05/24d Expected: Záhlaví 1:1 (Baťa, IČO, DIČ, Rok 2026, název '24d - Rekapitulace plnění N/V ke konci období', období, předpis/stupeň). Tělo = rekapitulační SOUČTY (souhrn, ne detail) skutečnost / schválený rozpočet (sr) / upravený rozpočet (ur) za náklady, výnosy a CELKEM. 2. Vytiskni do PDF a porovnej zápatí + celou stránku s referencí. Data: Výstup = PDF Expected: Zápatí ve formátu VB6, celá stránka 1:1 (rozdíl < 1 %). Součtové řádky sedí s ROLLUP auditem z TS-000 a s detailními sestavami 24a–24c.
Expected result
Zápatí ve formátu VB6, celá stránka 1:1 (rozdíl < 1 %). Součtové řádky sedí s ROLLUP auditem z TS-000 a s detailními sestavami 24a–24c.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-09_PrintFulfillmentRecap.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-09 — Report printing 24d – Cost and revenue plan fulfilment recap at period end (E2E).xlsx
SC-TISK24D-005 EP-TISK24D-RPT PrintFulfillmentRecap_TS004 Passed
▸ Step details (TC_ID: TC-E2E-109)
Preconditions
Sada proběhla.
Steps (Action / Data / Expected)
1. [SQL cleanup] Delete data této sady ve FK pořadí. Data: SQL: Data: DELETE FROM fenix.rzp_rozp_det WHERE id_rozp IN (SELECT id_rozp FROM fenix.rzp_rozp WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE nazev='TS S04-09 definice')); Data: DELETE FROM fenix.rzp_rozp WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE nazev='TS S04-09 definice'); Data: DELETE FROM fenix.rzp_pred_hla WHERE id_pred IN (SELECT id_pred FROM fenix.rzp_pred WHERE nazev_pred='TS S04-09 předpis'); Data: DELETE FROM fenix.rzp_pred WHERE nazev_pred='TS S04-09 předpis'; Data: DELETE FROM fenix.rzp_definice WHERE nazev='TS S04-09 definice'; Expected: Všechny DELETE proběhnou bez chyby. 2. [SQL cleanup] Post-check. Data: SQL: Data: SELECT 'def S04-09' AS k, COUNT(*) AS v FROM fenix.rzp_definice WHERE nazev='TS S04-09 definice' Data: UNION ALL SELECT 'pred S04-09', COUNT(*) FROM fenix.rzp_pred WHERE nazev_pred='TS S04-09 předpis' Data: UNION ALL SELECT 'majitel Bata', COUNT(*) FROM fenix.rzp_majitel WHERE ico=44268050; Expected: 'def S04-09' = 0, 'pred S04-09' = 0, 'majitel Bata' = 1.
Expected result
'def S04-09' = 0, 'pred S04-09' = 0, 'majitel Bata' = 1.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-09_PrintFulfillmentRecap.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-09 — Report printing 24d – Cost and revenue plan fulfilment recap at period end (E2E).xlsx

TS-RZP-S04-10 — Report printing 24e – Plan drawdown overview at period end (E2E) All passed

5 / 5 passed — TS-RZP-S04-10 — Report printing 24e – Plan drawdown overview at period end (E2E).xlsx · JSON spec

ScenarioEpicTest methodStatusTimeError / Detail
SC-TISK24E-001 EP-TISK24E-RPT PrintPlanDrawdown_TS000 Passed
▸ Step details (TC_ID: TC-E2E-110)
Preconditions
Přístup k testovací DB i k aplikaci. Baťa (id_maj=10) má licenci RZP. 2026/01 uzavřené s daty. PLÁN = sloupce rzp_rozp_det.sr (schválený rozpočet) a ur (upravený rozpočet) – samostatná plán-tabulka NEEXISTUJE (ověřeno proti reálné DB). Oprávnění ReportPostDistribution.
Steps (Action / Data / Expected)
1. [SQL setup] Připoj se k DB a uvolni slot (idempotentní DELETE řetěz vč. předpisu). Data: SQL: Data: DELETE FROM fenix.rzp_rozp_det WHERE id_rozp IN (SELECT id_rozp FROM fenix.rzp_rozp WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE id_maj=10 AND rok=2026 AND nazev='TS S04-10 definice')); Data: DELETE FROM fenix.rzp_rozp WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE id_maj=10 AND rok=2026 AND nazev='TS S04-10 definice'); Data: DELETE FROM fenix.rzp_pred_hla WHERE id_pred IN (SELECT id_pred FROM fenix.rzp_pred WHERE nazev_pred='TS S04-10 předpis'); Data: DELETE FROM fenix.rzp_pred WHERE nazev_pred='TS S04-10 předpis'; Data: DELETE FROM fenix.rzp_definice WHERE id_maj=10 AND rok=2026 AND nazev='TS S04-10 definice'; Expected: DELETE proběhnou bez chyby. 2. [SQL setup] Insert definici + 2-stupňový předpis přes MAX+1. Data: SQL: Data: DECLARE @id_def INT = (SELECT ISNULL(MAX(id_def),0)+1 FROM fenix.rzp_definice); Data: DECLARE @id_pred INT = (SELECT ISNULL(MAX(id_pred),0)+1 FROM fenix.rzp_pred); Data: DECLARE @id_hla INT = (SELECT ISNULL(MAX(id_pred_hla),0)+1 FROM fenix.rzp_pred_hla); Data: INSERT INTO fenix.rzp_definice (id_def, id_maj, rok, id_ucet, z_text, poradi, nazev, konstanta, popis) VALUES (@id_def, 10, 2026, 28, '00000000000000', '0001-1-1-1-1-1-1-1-1-1-1-1-1', 'TS S04-10 definice', '----------------------------', 'Sada TS-RZP-S04-10'); Data: INSERT INTO fenix.rzp_pred (id_pred, id_def, c_poradi, pocet, plan_skut, nazev_pred, popis) VALUES (@id_pred, @id_def, 1, '2', 'S', 'TS S04-10 předpis', '2-stupňové rozpouštění'); Data: INSERT INTO fenix.rzp_pred_hla (id_pred_hla, id_pred, obdobi, predpis, stupen, nazev_hla, popis) VALUES (@id_hla, @id_pred, 1, 'S', '1', 'Stupeň 1', ''), (@id_hla+1, @id_pred, 1, 'S', '2', 'Stupeň 2', ''); Expected: INSERTy proběhnou (4 řádky). 3. In the application naimportuj 'TS S04-10 definice' za období 01 a kompletně rozpusť (stupeň 1 i 2). Data: Definice = TS S04-10 definice Data: Období = 01, rozpustit stupně 1 a 2 Expected: Řádek období 01 má Uzávěrka = 'A'. 4. [SQL setup] Doplň PLÁN (sr, ur) na detailní řádky sady. Data: SQL: Data: UPDATE rd Data: SET rd.sr = ROUND(rd.skut * 0.90, 2), Data: rd.ur = ROUND(rd.skut * 0.95, 2) Data: FROM fenix.rzp_rozp_det rd Data: JOIN fenix.rzp_rozp r ON r.id_rozp = rd.id_rozp Data: WHERE r.id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE nazev='TS S04-10 definice'); Expected: UPDATE nastaví sr ≈ 90 % a ur ≈ 95 % skutečnosti. Čerpání plánu (skut/sr) ≈ 111,1 %, (skut/ur) ≈ 105,3 %. 5. [SQL audit] Spočti % čerpání plánu (skut / plán) za rozpuštěný stupeň 2. Data: SQL: Data: SELECT rd.stupen, Data: CAST(100.0*SUM(rd.skut)/NULLIF(SUM(rd.sr),0) AS DECIMAL(6,1)) AS cerpani_k_sr_pct, Data: CAST(100.0*SUM(rd.skut)/NULLIF(SUM(rd.ur),0) AS DECIMAL(6,1)) AS cerpani_k_ur_pct Data: FROM fenix.rzp_rozp_det rd JOIN fenix.rzp_rozp r ON r.id_rozp=rd.id_rozp JOIN fenix.rzp_definice d ON d.id_def=r.id_def Data: WHERE d.nazev='TS S04-10 definice' AND rd.stupen='2' GROUP BY rd.stupen; Expected: Pro stupeň '2' je cerpani_k_sr_pct ≈ 111,1 a cerpani_k_ur_pct ≈ 105,3. Tyto hodnoty musí odpovídat sloupci % čerpání v sestavě 24e.
Expected result
Pro stupeň '2' je cerpani_k_sr_pct ≈ 111,1 a cerpani_k_ur_pct ≈ 105,3. Tyto hodnoty musí odpovídat sloupci % čerpání v sestavě 24e.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-10_PrintPlanDrawdown.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-10 — Report printing 24e – Plan drawdown overview at period end (E2E).xlsx
SC-TISK24E-002 EP-TISK24E-RPT PrintPlanDrawdown_TS001 Passed
▸ Step details (TC_ID: TC-E2E-111)
Preconditions
TS-000 proběhlo. Baťa vybrán, rok 2026, oprávnění ReportPostDistribution.
Steps (Action / Data / Expected)
1. Klikni Přehledy → 24 → '24e - Plan drawdown overview at period end' (příp. select předpis 'TS S04-10 předpis'). Data: VariantTag = 24e Data: Předpis = TS S04-10 předpis Expected: Otevře se formulář s titulkem doslova '24e - Plan drawdown overview at period end'. 2. Zkontroluj záhlaví a layout. Expected: IČO 44268050, DIČ, Baťa, Rok 2026. Předpis a Stupeň viditelné/editovatelné, Plán/Kč skryté, Název sestavy zúžený.
Expected result
IČO 44268050, DIČ, Baťa, Rok 2026. Předpis a Stupeň viditelné/editovatelné, Plán/Kč skryté, Název sestavy zúžený.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-10_PrintPlanDrawdown.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-10 — Report printing 24e – Plan drawdown overview at period end (E2E).xlsx
SC-TISK24E-003 EP-TISK24E-RPT PrintPlanDrawdown_TS002 Passed
▸ Step details (TC_ID: TC-E2E-112)
Preconditions
Formulář 24e je otevřen (prefix 24 vyžaduje stupeň).
Steps (Action / Data / Expected)
1. Vyplň Období od = 01, do = 01, Stupeň nech prázdné a klikni OK. Data: Stupeň = (prázdné) Expected: Displayed: hláška doslova 'Chybí stupeň rozpouštění!' Tisk se nespustí. 2. Zadej Stupeň = 2 a klikni OK. Data: Stupeň = 2 Expected: Validace projde a otevře se náhled/okno Report printing.
Expected result
Validace projde a otevře se náhled/okno Report printing.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-10_PrintPlanDrawdown.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-10 — Report printing 24e – Plan drawdown overview at period end (E2E).xlsx
SC-TISK24E-004 EP-TISK24E-RPT PrintPlanDrawdown_TS003 Passed
▸ Step details (TC_ID: TC-E2E-113)
Preconditions
TS-000 proběhlo (rozpuštěné období 01, plán sr/ur doplněn). Formulář 24e otevřen, období 01–01, stupeň 2. PDF tiskárna.
Steps (Action / Data / Expected)
1. S přepínačem Report (období 01–01, stupeň 2) klikni OK a zkontroluj náhled proti Golden Master 24e. Data: Reference = test/Data/GoldenMaster/SC-05/24e Expected: Záhlaví 1:1 (Baťa, IČO, DIČ, Rok 2026, název '24e - Plan drawdown overview at period end', období, předpis/stupeň). Tělo obsahuje plán (sr/ur), skutečnost a sloupec % ČERPÁNÍ ve formátu shodném s VB6 (desetinná místa, znak %); čerpání k sr ≈ 111,1 %, k ur ≈ 105,3 % (dle TS-000 auditu). 2. Vytiskni do PDF a porovnej zápatí + celou stránku s referencí. Data: Výstup = PDF Expected: Zápatí ve formátu VB6, celá stránka 1:1 (rozdíl < 1 %). Hodnoty % čerpání sedí s SQL auditem z TS-000.
Expected result
Zápatí ve formátu VB6, celá stránka 1:1 (rozdíl < 1 %). Hodnoty % čerpání sedí s SQL auditem z TS-000.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-10_PrintPlanDrawdown.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-10 — Report printing 24e – Plan drawdown overview at period end (E2E).xlsx
SC-TISK24E-005 EP-TISK24E-RPT PrintPlanDrawdown_TS004 Passed
▸ Step details (TC_ID: TC-E2E-114)
Preconditions
Sada proběhla.
Steps (Action / Data / Expected)
1. [SQL cleanup] Delete data této sady ve FK pořadí. Data: SQL: Data: DELETE FROM fenix.rzp_rozp_det WHERE id_rozp IN (SELECT id_rozp FROM fenix.rzp_rozp WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE nazev='TS S04-10 definice')); Data: DELETE FROM fenix.rzp_rozp WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE nazev='TS S04-10 definice'); Data: DELETE FROM fenix.rzp_pred_hla WHERE id_pred IN (SELECT id_pred FROM fenix.rzp_pred WHERE nazev_pred='TS S04-10 předpis'); Data: DELETE FROM fenix.rzp_pred WHERE nazev_pred='TS S04-10 předpis'; Data: DELETE FROM fenix.rzp_definice WHERE nazev='TS S04-10 definice'; Expected: Všechny DELETE proběhnou bez chyby. 2. [SQL cleanup] Post-check. Data: SQL: Data: SELECT 'def S04-10' AS k, COUNT(*) AS v FROM fenix.rzp_definice WHERE nazev='TS S04-10 definice' Data: UNION ALL SELECT 'pred S04-10', COUNT(*) FROM fenix.rzp_pred WHERE nazev_pred='TS S04-10 předpis' Data: UNION ALL SELECT 'majitel Bata', COUNT(*) FROM fenix.rzp_majitel WHERE ico=44268050; Expected: 'def S04-10' = 0, 'pred S04-10' = 0, 'majitel Bata' = 1.
Expected result
'def S04-10' = 0, 'pred S04-10' = 0, 'majitel Bata' = 1.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-10_PrintPlanDrawdown.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-10 — Report printing 24e – Plan drawdown overview at period end (E2E).xlsx

TS-RZP-S04-11 — Report printing 29a – Overview of direct and post-allocation costs and revenues (E2E) All passed

5 / 5 passed — TS-RZP-S04-11 — Report printing 29a – Overview of direct and post-allocation costs and revenues (E2E).xlsx · JSON spec

ScenarioEpicTest methodStatusTimeError / Detail
SC-TISK29A-001 EP-TISK29A-RPT PrintDirectAndPostDist_TS000 Passed
▸ Step details (TC_ID: TC-E2E-115)
Preconditions
Přístup k testovací DB i k aplikaci. Baťa má licenci RZP. 2026/01 uzavřené s daty. Oprávnění ReportPostDistribution.
Steps (Action / Data / Expected)
1. [SQL setup] Připoj se k DB a uvolni slot (idempotentní DELETE řetěz vč. předpisu). Data: SQL: Data: DELETE FROM fenix.rzp_rozp_det WHERE id_rozp IN (SELECT id_rozp FROM fenix.rzp_rozp WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE id_maj=10 AND rok=2026 AND nazev='TS S04-11 definice')); Data: DELETE FROM fenix.rzp_rozp WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE id_maj=10 AND rok=2026 AND nazev='TS S04-11 definice'); Data: DELETE FROM fenix.rzp_pred_hla WHERE id_pred IN (SELECT id_pred FROM fenix.rzp_pred WHERE nazev_pred='TS S04-11 předpis'); Data: DELETE FROM fenix.rzp_pred WHERE nazev_pred='TS S04-11 předpis'; Data: DELETE FROM fenix.rzp_definice WHERE id_maj=10 AND rok=2026 AND nazev='TS S04-11 definice'; Expected: DELETE proběhnou bez chyby. 2. [SQL setup] Insert definici + 2-stupňový předpis přes MAX+1. Data: SQL: Data: DECLARE @id_def INT = (SELECT ISNULL(MAX(id_def),0)+1 FROM fenix.rzp_definice); Data: DECLARE @id_pred INT = (SELECT ISNULL(MAX(id_pred),0)+1 FROM fenix.rzp_pred); Data: DECLARE @id_hla INT = (SELECT ISNULL(MAX(id_pred_hla),0)+1 FROM fenix.rzp_pred_hla); Data: INSERT INTO fenix.rzp_definice (id_def, id_maj, rok, id_ucet, z_text, poradi, nazev, konstanta, popis) VALUES (@id_def, 10, 2026, 28, '00000000000000', '0001-1-1-1-1-1-1-1-1-1-1-1-1', 'TS S04-11 definice', '----------------------------', 'Sada TS-RZP-S04-11'); Data: INSERT INTO fenix.rzp_pred (id_pred, id_def, c_poradi, pocet, plan_skut, nazev_pred, popis) VALUES (@id_pred, @id_def, 1, '2', 'S', 'TS S04-11 předpis', '2-stupňové rozpouštění'); Data: INSERT INTO fenix.rzp_pred_hla (id_pred_hla, id_pred, obdobi, predpis, stupen, nazev_hla, popis) VALUES (@id_hla, @id_pred, 1, 'S', '1', 'Stupeň 1', ''), (@id_hla+1, @id_pred, 1, 'S', '2', 'Stupeň 2', ''); Expected: INSERTy proběhnou (4 řádky). 3. Naimportuj 'TS S04-11 definice' za období 01 a kompletně rozpusť (stupeň 1 i 2). Data: Definice = TS S04-11 definice Data: Období = 01, rozpustit stupně 1 a 2 Expected: Řádek období 01 má Uzávěrka = 'A'. 4. [SQL audit] Ověř, že existuje přímý stupeň 0 i rozpuštěný stupeň 2. Data: SQL: Data: SELECT stupen, COUNT(*) AS pocet FROM fenix.rzp_rozp_det WHERE id_rozp IN (SELECT id_rozp FROM fenix.rzp_rozp r JOIN fenix.rzp_definice d ON d.id_def=r.id_def WHERE d.nazev='TS S04-11 definice') GROUP BY stupen ORDER BY stupen; Expected: Vrátí stupně '0', '1', '2' – sestava 29a má přímá (0) i rozpuštěná (2) data k zobrazení vedle sebe.
Expected result
Vrátí stupně '0', '1', '2' – sestava 29a má přímá (0) i rozpuštěná (2) data k zobrazení vedle sebe.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-11_PrintDirectAndPostDist.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-11 — Report printing 29a – Overview of direct and post-allocation costs and revenues (E2E).xlsx
SC-TISK29A-002 EP-TISK29A-RPT PrintDirectAndPostDist_TS001 Passed
▸ Step details (TC_ID: TC-E2E-116)
Preconditions
TS-000 proběhlo. Baťa vybrán, rok 2026, oprávnění ReportPostDistribution.
Steps (Action / Data / Expected)
1. Klikni Přehledy → 29 → první položku (mnuPre_29_0) a příp. select předpis 'TS S04-11 předpis'. Data: VariantTag = 29a Data: Předpis = TS S04-11 předpis Expected: Otevře se formulář s titulkem doslova '29 - Přehled N/V přímých a po rozpouštění' (POZOR: '29 - ', NE '29a - '; legacy literál zachován). Pole Název sestavy obsahuje stejný text. 2. Zkontroluj záhlaví a viditelnost předpisu/stupně. Expected: IČO 44268050, DIČ, Baťa, Rok 2026. Předpis a Stupeň viditelné/editovatelné, Plán/Kč skryté (29x není 21x).
Expected result
IČO 44268050, DIČ, Baťa, Rok 2026. Předpis a Stupeň viditelné/editovatelné, Plán/Kč skryté (29x není 21x).
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-11_PrintDirectAndPostDist.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-11 — Report printing 29a – Overview of direct and post-allocation costs and revenues (E2E).xlsx
SC-TISK29A-003 EP-TISK29A-RPT PrintDirectAndPostDist_TS002 Passed
▸ Step details (TC_ID: TC-E2E-117)
Preconditions
Formulář 29a je otevřen (prefix 29 vyžaduje stupeň).
Steps (Action / Data / Expected)
1. Vyplň Období od = 01, do = 01, Stupeň nech prázdné a klikni OK. Data: Stupeň = (prázdné) Expected: Displayed: hláška doslova 'Chybí stupeň rozpouštění!' Tisk se nespustí. 2. Zadej Stupeň = 2 a klikni OK. Data: Stupeň = 2 Expected: Validace projde a otevře se náhled/okno Report printing.
Expected result
Validace projde a otevře se náhled/okno Report printing.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-11_PrintDirectAndPostDist.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-11 — Report printing 29a – Overview of direct and post-allocation costs and revenues (E2E).xlsx
SC-TISK29A-004 EP-TISK29A-RPT PrintDirectAndPostDist_TS003 Passed
▸ Step details (TC_ID: TC-E2E-118)
Preconditions
TS-000 proběhlo (přímá i rozpuštěná data). Formulář 29a otevřen, období 01–01, stupeň 2. PDF tiskárna.
Steps (Action / Data / Expected)
1. S přepínačem Report (období 01–01, stupeň 2) klikni OK a zkontroluj náhled proti Golden Master 29a. Data: Reference = test/Data/GoldenMaster/SC-05/29a Expected: Záhlaví 1:1 (Baťa, IČO, DIČ, Rok 2026, název '29 - Přehled N/V přímých a po rozpouštění', období, předpis/stupeň). Tělo obsahuje sloupce PŘÍMÉ i PO ROZPOUŠTĚNÍ vedle sebe. 2. Vytiskni do PDF a porovnej zápatí + celou stránku s referencí. Data: Výstup = PDF Expected: Zápatí ve formátu VB6, celá stránka 1:1 (rozdíl < 1 %).
Expected result
Zápatí ve formátu VB6, celá stránka 1:1 (rozdíl < 1 %).
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-11_PrintDirectAndPostDist.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-11 — Report printing 29a – Overview of direct and post-allocation costs and revenues (E2E).xlsx
SC-TISK29A-005 EP-TISK29A-RPT PrintDirectAndPostDist_TS004 Passed
▸ Step details (TC_ID: TC-E2E-119)
Preconditions
Sada proběhla.
Steps (Action / Data / Expected)
1. [SQL cleanup] Delete data této sady ve FK pořadí. Data: SQL: Data: DELETE FROM fenix.rzp_rozp_det WHERE id_rozp IN (SELECT id_rozp FROM fenix.rzp_rozp WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE nazev='TS S04-11 definice')); Data: DELETE FROM fenix.rzp_rozp WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE nazev='TS S04-11 definice'); Data: DELETE FROM fenix.rzp_pred_hla WHERE id_pred IN (SELECT id_pred FROM fenix.rzp_pred WHERE nazev_pred='TS S04-11 předpis'); Data: DELETE FROM fenix.rzp_pred WHERE nazev_pred='TS S04-11 předpis'; Data: DELETE FROM fenix.rzp_definice WHERE nazev='TS S04-11 definice'; Expected: Všechny DELETE proběhnou bez chyby. 2. [SQL cleanup] Post-check. Data: SQL: Data: SELECT 'def S04-11' AS k, COUNT(*) AS v FROM fenix.rzp_definice WHERE nazev='TS S04-11 definice' Data: UNION ALL SELECT 'pred S04-11', COUNT(*) FROM fenix.rzp_pred WHERE nazev_pred='TS S04-11 předpis' Data: UNION ALL SELECT 'majitel Bata', COUNT(*) FROM fenix.rzp_majitel WHERE ico=44268050; Expected: 'def S04-11' = 0, 'pred S04-11' = 0, 'majitel Bata' = 1.
Expected result
'def S04-11' = 0, 'pred S04-11' = 0, 'majitel Bata' = 1.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-11_PrintDirectAndPostDist.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-11 — Report printing 29a – Overview of direct and post-allocation costs and revenues (E2E).xlsx

TS-RZP-S04-12 — Report printing 29b – Fulfilment overview of direct and post-allocation costs and revenues (E2E) All passed

5 / 5 passed — TS-RZP-S04-12 — Report printing 29b – Fulfilment overview of direct and post-allocation costs and revenues (E2E).xlsx · JSON spec

ScenarioEpicTest methodStatusTimeError / Detail
SC-TISK29B-001 EP-TISK29B-RPT PrintFulfillmentDirectAndPostDist_TS000 Passed
▸ Step details (TC_ID: TC-E2E-120)
Preconditions
Přístup k testovací DB i k aplikaci. Baťa (id_maj=10) má licenci RZP. 2026/01 uzavřené s daty. PLÁN = sloupce rzp_rozp_det.sr (schválený rozpočet) a ur (upravený rozpočet) – samostatná plán-tabulka NEEXISTUJE (ověřeno proti reálné DB). Oprávnění ReportPostDistribution.
Steps (Action / Data / Expected)
1. [SQL setup] Připoj se k DB a uvolni slot (idempotentní DELETE řetěz vč. předpisu). Data: SQL: Data: DELETE FROM fenix.rzp_rozp_det WHERE id_rozp IN (SELECT id_rozp FROM fenix.rzp_rozp WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE id_maj=10 AND rok=2026 AND nazev='TS S04-12 definice')); Data: DELETE FROM fenix.rzp_rozp WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE id_maj=10 AND rok=2026 AND nazev='TS S04-12 definice'); Data: DELETE FROM fenix.rzp_pred_hla WHERE id_pred IN (SELECT id_pred FROM fenix.rzp_pred WHERE nazev_pred='TS S04-12 předpis'); Data: DELETE FROM fenix.rzp_pred WHERE nazev_pred='TS S04-12 předpis'; Data: DELETE FROM fenix.rzp_definice WHERE id_maj=10 AND rok=2026 AND nazev='TS S04-12 definice'; Expected: DELETE proběhnou bez chyby. 2. [SQL setup] Insert definici + 2-stupňový předpis přes MAX+1. Data: SQL: Data: DECLARE @id_def INT = (SELECT ISNULL(MAX(id_def),0)+1 FROM fenix.rzp_definice); Data: DECLARE @id_pred INT = (SELECT ISNULL(MAX(id_pred),0)+1 FROM fenix.rzp_pred); Data: DECLARE @id_hla INT = (SELECT ISNULL(MAX(id_pred_hla),0)+1 FROM fenix.rzp_pred_hla); Data: INSERT INTO fenix.rzp_definice (id_def, id_maj, rok, id_ucet, z_text, poradi, nazev, konstanta, popis) VALUES (@id_def, 10, 2026, 28, '00000000000000', '0001-1-1-1-1-1-1-1-1-1-1-1-1', 'TS S04-12 definice', '----------------------------', 'Sada TS-RZP-S04-12'); Data: INSERT INTO fenix.rzp_pred (id_pred, id_def, c_poradi, pocet, plan_skut, nazev_pred, popis) VALUES (@id_pred, @id_def, 1, '2', 'S', 'TS S04-12 předpis', '2-stupňové rozpouštění'); Data: INSERT INTO fenix.rzp_pred_hla (id_pred_hla, id_pred, obdobi, predpis, stupen, nazev_hla, popis) VALUES (@id_hla, @id_pred, 1, 'S', '1', 'Stupeň 1', ''), (@id_hla+1, @id_pred, 1, 'S', '2', 'Stupeň 2', ''); Expected: INSERTy proběhnou (4 řádky). 3. In the application naimportuj 'TS S04-12 definice' za období 01 a kompletně rozpusť (stupeň 1 i 2). Data: Definice = TS S04-12 definice Data: Období = 01, rozpustit stupně 1 a 2 Expected: Řádek období 01 má Uzávěrka = 'A'. V rzp_rozp_det jsou řádky stupně 0 (přímá) i 1/2 (rozpuštěná). 4. [SQL setup] Doplň PLÁN (sr, ur) na všechny detailní řádky sady (přímé i rozpuštěné). Data: SQL: Data: UPDATE rd Data: SET rd.sr = ROUND(rd.skut * 0.90, 2), Data: rd.ur = ROUND(rd.skut * 0.95, 2) Data: FROM fenix.rzp_rozp_det rd Data: JOIN fenix.rzp_rozp r ON r.id_rozp = rd.id_rozp Data: WHERE r.id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE nazev='TS S04-12 definice'); Expected: UPDATE nastaví sr ≈ 90 % a ur ≈ 95 % skutečnosti na přímých (stupeň 0) i rozpuštěných (stupeň 1/2) řádcích. 5. [SQL audit] Ověř plnění (skut vs plán) zvlášť pro přímý stupeň 0 a rozpuštěný stupeň 2. Data: SQL: Data: SELECT rd.stupen, rd.nakl_vyn, SUM(rd.skut) AS skutecnost, SUM(rd.sr) AS plan_schvaleny, SUM(rd.ur) AS plan_upraveny Data: FROM fenix.rzp_rozp_det rd JOIN fenix.rzp_rozp r ON r.id_rozp=rd.id_rozp JOIN fenix.rzp_definice d ON d.id_def=r.id_def Data: WHERE d.nazev='TS S04-12 definice' AND rd.stupen IN ('0','2') GROUP BY rd.stupen, rd.nakl_vyn ORDER BY rd.stupen, rd.nakl_vyn; Expected: Vrátí řádky pro stupeň '0' (přímé) i '2' (po rozpouštění), pro N i V, vždy se skutecnost > 0 a plán > 0.
Expected result
Vrátí řádky pro stupeň '0' (přímé) i '2' (po rozpouštění), pro N i V, vždy se skutecnost > 0 a plán > 0.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-12_PrintFulfillmentDirectAndPostDist.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-12 — Report printing 29b – Fulfilment overview of direct and post-allocation costs and revenues (E2E).xlsx
SC-TISK29B-002 EP-TISK29B-RPT PrintFulfillmentDirectAndPostDist_TS001 Passed
▸ Step details (TC_ID: TC-E2E-121)
Preconditions
TS-000 proběhlo. Baťa vybrán, rok 2026, oprávnění ReportPostDistribution.
Steps (Action / Data / Expected)
1. Klikni Přehledy → 29 → druhou položku (mnuPre_29_1) a příp. select předpis 'TS S04-12 předpis'. Data: VariantTag = 29b Data: Předpis = TS S04-12 předpis Expected: Otevře se formulář s titulkem doslova '29b - Přehled plnění N/V přímých a po rozpouštění'. 2. Zkontroluj záhlaví a layout. Expected: IČO 44268050, DIČ, Baťa, Rok 2026. Předpis a Stupeň viditelné/editovatelné, Plán/Kč skryté, Název sestavy zúžený.
Expected result
IČO 44268050, DIČ, Baťa, Rok 2026. Předpis a Stupeň viditelné/editovatelné, Plán/Kč skryté, Název sestavy zúžený.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-12_PrintFulfillmentDirectAndPostDist.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-12 — Report printing 29b – Fulfilment overview of direct and post-allocation costs and revenues (E2E).xlsx
SC-TISK29B-003 EP-TISK29B-RPT PrintFulfillmentDirectAndPostDist_TS002 Passed
▸ Step details (TC_ID: TC-E2E-122)
Preconditions
Formulář 29b je otevřen (prefix 29 vyžaduje stupeň).
Steps (Action / Data / Expected)
1. Vyplň Období od = 01, do = 01, Stupeň nech prázdné a klikni OK. Data: Stupeň = (prázdné) Expected: Displayed: hláška doslova 'Chybí stupeň rozpouštění!' Tisk se nespustí. 2. Zadej Stupeň = 2 a klikni OK. Data: Stupeň = 2 Expected: Validace projde a otevře se náhled/okno Report printing.
Expected result
Validace projde a otevře se náhled/okno Report printing.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-12_PrintFulfillmentDirectAndPostDist.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-12 — Report printing 29b – Fulfilment overview of direct and post-allocation costs and revenues (E2E).xlsx
SC-TISK29B-004 EP-TISK29B-RPT PrintFulfillmentDirectAndPostDist_TS003 Passed
▸ Step details (TC_ID: TC-E2E-123)
Preconditions
TS-000 proběhlo (plán sr/ur doplněn na přímé i rozpuštěné řádky). Formulář 29b otevřen, období 01–01, stupeň 2. PDF tiskárna.
Steps (Action / Data / Expected)
1. S přepínačem Report (období 01–01, stupeň 2) klikni OK a zkontroluj náhled proti Golden Master 29b. Data: Reference = test/Data/GoldenMaster/SC-05/29b Expected: Záhlaví 1:1 (Baťa, IČO, DIČ, Rok 2026, název '29b - Přehled plnění N/V přímých a po rozpouštění', období, předpis/stupeň). Tělo obsahuje plnění (skutečnost / sr / ur) pro PŘÍMÉ (stupeň 0) i PO ROZPOUŠTĚNÍ (stupeň 2). 2. Vytiskni do PDF a porovnej zápatí + celou stránku s referencí. Data: Výstup = PDF Expected: Zápatí ve formátu VB6, celá stránka 1:1 (rozdíl < 1 %). Hodnoty plnění sedí s SQL auditem z TS-000 (přímé i rozpuštěné).
Expected result
Zápatí ve formátu VB6, celá stránka 1:1 (rozdíl < 1 %). Hodnoty plnění sedí s SQL auditem z TS-000 (přímé i rozpuštěné).
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-12_PrintFulfillmentDirectAndPostDist.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-12 — Report printing 29b – Fulfilment overview of direct and post-allocation costs and revenues (E2E).xlsx
SC-TISK29B-005 EP-TISK29B-RPT PrintFulfillmentDirectAndPostDist_TS004 Passed
▸ Step details (TC_ID: TC-E2E-124)
Preconditions
Sada proběhla.
Steps (Action / Data / Expected)
1. [SQL cleanup] Delete data této sady ve FK pořadí. Data: SQL: Data: DELETE FROM fenix.rzp_rozp_det WHERE id_rozp IN (SELECT id_rozp FROM fenix.rzp_rozp WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE nazev='TS S04-12 definice')); Data: DELETE FROM fenix.rzp_rozp WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE nazev='TS S04-12 definice'); Data: DELETE FROM fenix.rzp_pred_hla WHERE id_pred IN (SELECT id_pred FROM fenix.rzp_pred WHERE nazev_pred='TS S04-12 předpis'); Data: DELETE FROM fenix.rzp_pred WHERE nazev_pred='TS S04-12 předpis'; Data: DELETE FROM fenix.rzp_definice WHERE nazev='TS S04-12 definice'; Expected: Všechny DELETE proběhnou bez chyby. 2. [SQL cleanup] Post-check. Data: SQL: Data: SELECT 'def S04-12' AS k, COUNT(*) AS v FROM fenix.rzp_definice WHERE nazev='TS S04-12 definice' Data: UNION ALL SELECT 'pred S04-12', COUNT(*) FROM fenix.rzp_pred WHERE nazev_pred='TS S04-12 předpis' Data: UNION ALL SELECT 'majitel Bata', COUNT(*) FROM fenix.rzp_majitel WHERE ico=44268050; Expected: 'def S04-12' = 0, 'pred S04-12' = 0, 'majitel Bata' = 1.
Expected result
'def S04-12' = 0, 'pred S04-12' = 0, 'majitel Bata' = 1.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S04-12_PrintFulfillmentDirectAndPostDist.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S04-12 — Report printing 29b – Fulfilment overview of direct and post-allocation costs and revenues (E2E).xlsx

TS-RZP-S05-01 — Searching for a record by a created condition (E2E) All passed

7 / 7 passed — TS-RZP-S05-01 — Searching for a record by a created condition (E2E).xlsx · JSON spec

ScenarioEpicTest methodStatusTimeError / Detail
SC-HLED-001 EP-HLED-SRCH SearchDialog_TS000_PrepareData Passed 21,1 s
▸ Step details (TC_ID: TC-E2E-125)
Preconditions
Uživatel má přístup k testovací DB a k Haifa aplikaci. Majitel Baťa je založen.
Steps (Action / Data / Expected)
1. [SQL setup] Připoj se SQL klientem k testovací databázi. Data: Server = 172.29.7.21\NEOHEF,14330 Data: Database = fenix_1001 Data: User = fenix Expected: Connection established. 2. [SQL setup] Free (majitel, rok) slot — smaž případnou zbytkovou TESTOVACÍ definici pro Baťa/2026 a její závislé řádky ve FK pořadí (idempotentní). Data: SQL: Data: DELETE FROM fenix.rzp_pred WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE id_maj=10 AND rok=2026); Data: DELETE FROM fenix.rzp_definice WHERE id_maj=10 AND rok=2026; Expected: Slot je volný pro vložení testovací definice. rzp_definice má unique (rok, id_maj), proto se uvolňuje celý slot; v testovací DB se pro něj produkční data nevyskytují — maže jen zbytková testovací data. 3. [SQL setup] Pre-flight: verify, že žádné zbytky neexistují. Data: SQL: Data: SELECT 'def S05-01' AS k, COUNT(*) AS v FROM fenix.rzp_definice WHERE nazev='TS S05-01 definice' Data: UNION ALL SELECT 'pred TS_S05', COUNT(*) FROM fenix.rzp_pred WHERE nazev_pred LIKE 'TS_S05%' OR nazev_pred='Jiny predpis'; Expected: Oba dotazy = 0. 4. [SQL setup] Insert pomocnou definici a 3 testovací předpisy. ID se přidělí dynamicky jako MAX+1, aby nedocházelo ke kolizím s existujícími řádky. Data: SQL: Data: DECLARE @id_def INT = (SELECT ISNULL(MAX(id_def), 0) + 1 FROM fenix.rzp_definice); Data: DECLARE @id_pred INT = (SELECT ISNULL(MAX(id_pred), 0) FROM fenix.rzp_pred); Data: Data: INSERT INTO fenix.rzp_definice (id_def, id_maj, rok, id_ucet, z_text, poradi, nazev, konstanta, popis) Data: VALUES (@id_def, 10, 2026, 28, '00000000000000', '0001-1-1-1-1-1-1-1-1-1-1-1-1', 'TS S05-01 definice', '----------------------------', 'Sada TS-RZP-S05-01'); Data: Data: INSERT INTO fenix.rzp_pred (id_pred, id_def, c_poradi, pocet, plan_skut, nazev_pred, popis) VALUES Data: (@id_pred + 1, @id_def, 1, '1', 'S', 'TS_S05_A prvni', 'Pro filtr A — skutecnost'), Data: (@id_pred + 2, @id_def, 2, '2', 'P', 'TS_S05_B druhy', 'Pro filtr B — plan'), Data: (@id_pred + 3, @id_def, 3, '1', 'S', 'Jiny predpis', 'Pro negativni filtr'); Data: Data: SELECT @id_def AS id_def_pouzite, @id_pred + 1 AS id_pred_A, @id_pred + 2 AS id_pred_B, @id_pred + 3 AS id_pred_C; Expected: Všechny INSERTy proběhnou (celkem 4 řádky: 1 definice + 3 předpisy). Závěrečný SELECT vrátí 1 řádek s konkrétními ID, která testovací data dostala (slouží pro orientaci, žádný další krok je nepoužívá — všechno se hledá podle názvu). 5. In the application select majitele Baťa (Úloha → Výběr majitele → IČ 44268050) a open formulář pro výběr rozpouštěcí definice (DistributionSelectionForm). Data: Majitel = Bata (Company ID 44268050) Data: Definice = TS S05-01 definice Expected: Otevře se formulář. V seznamu předpisů jsou viditelné 3 testovací řádky: 'TS_S05_A prvni', 'TS_S05_B druhy', 'Jiny predpis'.
Expected result
Otevře se formulář. V seznamu předpisů jsou viditelné 3 testovací řádky: 'TS_S05_A prvni', 'TS_S05_B druhy', 'Jiny predpis'.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S05-01_SearchDialog.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S05-01 — Searching for a record by a created condition (E2E).xlsx
SC-HLED-002 EP-HLED-SRCH SearchDialog_TS001_SingleLikeCondition Passed 43,1 s
▸ Step details (TC_ID: TC-E2E-126)
Preconditions
TS-000 proběhlo. V seznamu předpisů jsou 3 testovací řádky. Formulář DistributionSelectionForm je otevřen.
Steps (Action / Data / Expected)
1. V DistributionSelectionForm klikni na tlačítko Hledat (or menu Úlohy → Hledat). Expected: Otevře se modální dialog s titulkem 'RZP - hledání podle vytvořené podmínky'. Vidíš 5 seznamů: 'Pole', 'Operátor', 'Pole — akumulátor', 'Operátor — akumulátor', 'Hodnota — akumulátor'. Akumulátory jsou prázdné. K dispozici je textové pole pro hodnotu a tlačítka Přidej / Odeber / OK / Zrušit. 2. V seznamu 'Pole' select 'Název předpisu' (interní název nazev_pred). Data: Pole = Název předpisu Expected: Položka 'Název předpisu' je označena, seznam 'Operátor' se aktualizuje na operátory dostupné pro textové pole. 3. V seznamu 'Operátor' select 'LIKE'. Data: Operátor = LIKE Expected: Položka 'LIKE' je označena. Textové pole pro hodnotu je editovatelné. 4. Do textového pole pro hodnotu napiš 'TS_S05%'. Data: Hodnota = TS_S05% Expected: Textové pole obsahuje zadaný řetězec. 5. Click the button Přidej. Expected: Do akumulátorů se přidá 1 řádek: 'Název předpisu' / 'LIKE' / 'TS_S05%'. Textové pole se vyprázdní. 6. Click the button OK. Expected: Dialog Hledání se zavře. Seznam předpisů v DistributionSelectionForm zobrazuje pouze 2 řádky: 'TS_S05_A prvni' a 'TS_S05_B druhy'. Řádek 'Jiny predpis' už NENÍ viditelný.
Expected result
Dialog Hledání se zavře. Seznam předpisů v DistributionSelectionForm zobrazuje pouze 2 řádky: 'TS_S05_A prvni' a 'TS_S05_B druhy'. Řádek 'Jiny predpis' už NENÍ viditelný.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S05-01_SearchDialog.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S05-01 — Searching for a record by a created condition (E2E).xlsx
SC-HLED-003 EP-HLED-SRCH SearchDialog_TS002_TwoConditionsAnd Passed 40,2 s
▸ Step details (TC_ID: TC-E2E-127)
Preconditions
TS-001 proběhlo. Dialog Hledání lze otevřít znovu.
Steps (Action / Data / Expected)
1. V DistributionSelectionForm klikni na Hledat znovu. Expected: Dialog Hledání se otevře. Akumulátory jsou prázdné (předchozí podmínky se neuchovávají). 2. Přidej 1. podmínku stejně jako v TS-001. Data: Pole = Název předpisu Data: Operátor = LIKE Data: Hodnota = TS_S05% Expected: V akumulátoru je 1 řádek: 'Název předpisu' / 'LIKE' / 'TS_S05%'. 3. Přidej 2. podmínku. Data: Pole = Plán/skutečnost Data: Operátor = = Data: Hodnota = S Expected: V akumulátoru jsou 2 řádky: 1. 'Název předpisu' / 'LIKE' / 'TS_S05%', 2. 'Plán/skutečnost' / '=' / 'S'. 4. Click OK. Expected: The dialog closes. Seznam předpisů v DistributionSelectionForm zobrazuje pouze 1 řádek: 'TS_S05_A prvni' (jediný z TS_S05 s plánem/skutečností = S).
Expected result
The dialog closes. Seznam předpisů v DistributionSelectionForm zobrazuje pouze 1 řádek: 'TS_S05_A prvni' (jediný z TS_S05 s plánem/skutečností = S).
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S05-01_SearchDialog.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S05-01 — Searching for a record by a created condition (E2E).xlsx
SC-HLED-004 EP-HLED-SRCH SearchDialog_TS003_RemoveCondition Passed 39,8 s
▸ Step details (TC_ID: TC-E2E-128)
Preconditions
TS-001 or TS-002 proběhlo. Dialog Hledání lze otevřít znovu.
Steps (Action / Data / Expected)
1. Open dialog Hledání. Přidej 2 podmínky. Data: Cond 1: Název předpisu LIKE 'TS_S05%' Data: Cond 2: Plán/skutečnost = X (záměrně chybná hodnota, žádný předpis tento znak nemá) Expected: V akumulátoru jsou 2 řádky. 2. V akumulátoru hodnoty select 2. řádek ('X') a klikni na tlačítko Odeber. Data: Vybraný řádek = 2 (= 'X') Expected: Z akumulátorů zmizí 2. řádek. Zůstává jen 1 řádek: 'Název předpisu' / 'LIKE' / 'TS_S05%'. 3. Click OK. Expected: The dialog closes. Seznam předpisů zobrazuje 2 řádky s prefixem TS_S05 — efekt jako v TS-001 (NE 0 řádků jako kdyby chybná podmínka 'X' zůstala).
Expected result
The dialog closes. Seznam předpisů zobrazuje 2 řádky s prefixem TS_S05 — efekt jako v TS-001 (NE 0 řádků jako kdyby chybná podmínka 'X' zůstala).
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S05-01_SearchDialog.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S05-01 — Searching for a record by a created condition (E2E).xlsx
SC-HLED-005 EP-HLED-SRCH SearchDialog_TS004_EmptyAccumulator Passed 42,3 s
▸ Step details (TC_ID: TC-E2E-129)
Preconditions
TS-000 proběhlo. Dialog Hledání lze otevřít.
Steps (Action / Data / Expected)
1. Open dialog Hledání a NEPŘIDÁVEJ žádnou podmínku. Expected: Akumulátory zůstávají prázdné. 2. Click OK. Expected: Buď: (a) zobrazí se modální dialog s hláškou 'Není zadána žádná podmínka pro hledání.' a tlačítkem OK; NEBO (b) tlačítko OK je šedé / disablované, dokud není přidána alespoň 1 podmínka. Tester zaznamená, kterou variantu aplikace volí. 3. Click Zrušit. Expected: The dialog closes. Seznam předpisů v DistributionSelectionForm zobrazuje opět 3 testovací řádky (nebyl aplikován žádný filtr).
Expected result
The dialog closes. Seznam předpisů v DistributionSelectionForm zobrazuje opět 3 testovací řádky (nebyl aplikován žádný filtr).
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S05-01_SearchDialog.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S05-01 — Searching for a record by a created condition (E2E).xlsx
SC-HLED-006 EP-HLED-SRCH SearchDialog_TS005_NumericLessOrEqual Passed 38,2 s
▸ Step details (TC_ID: TC-E2E-130)
Preconditions
TS-000 proběhlo. Dialog Hledání lze otevřít.
Steps (Action / Data / Expected)
1. Open dialog Hledání. Přidej podmínku s apostrofem v hodnotě. Data: Pole = Název předpisu Data: Operátor = LIKE Data: Hodnota = O'Brien% Expected: Tlačítko Přidej akceptuje hodnotu. Akumulátor obsahuje řádek 'Název předpisu' / 'LIKE' / 'O'Brien%' (apostrof viditelný v zobrazení). 2. Click OK. Expected: The dialog closes BEZ chybové hlášky. Seznam předpisů v DistributionSelectionForm je prázdný (žádný předpis nemá název začínající O'Brien). Aplikace NESMÍ zhavarovat na SQL exception ani zobrazit interní chybové okno. 3. [SQL audit] Optionally verify, že DB nebyla poškozena SQL injection pokusem. Data: SQL: SELECT COUNT(*) AS pocet FROM fenix.rzp_pred WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE nazev='TS S05-01 definice'); Expected: The query returns 3 (původní 3 testovací předpisy). Pokud by SQL injection prošel a např. obsahoval DROP TABLE or DELETE, počet by byl menší or by tabulka neexistovala. 4. Open dialog Hledání znovu a přidej podmínku s českou diakritikou. Data: Pole = Popis Data: Operátor = LIKE Data: Hodnota = %filtr A% Expected: Tlačítko Přidej akceptuje hodnotu, akumulátor obsahuje řádek s diakritikou. 5. Click OK. Expected: Seznam předpisů zobrazí přesně 1 řádek: 'TS_S05_A prvni' (jehož popis je 'Pro filtr A — skutecnost'). Encoding diakritiky funguje korektně.
Expected result
Seznam předpisů zobrazí přesně 1 řádek: 'TS_S05_A prvni' (jehož popis je 'Pro filtr A — skutecnost'). Encoding diakritiky funguje korektně.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S05-01_SearchDialog.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S05-01 — Searching for a record by a created condition (E2E).xlsx
SC-HLED-007 EP-HLED-SRCH SearchDialog_TS006_CleanupData Passed 4,1 s
▸ Step details (TC_ID: TC-E2E-131)
Preconditions
Sada proběhla. V DB jsou pomocné řádky: 'TS S05-01 definice' a 3 předpisy pod ní.
Steps (Action / Data / Expected)
1. [SQL cleanup] Pre-flight: verify, že žádné importy ani rozpouštění na pomocné definici neexistují. Data: SQL: SELECT COUNT(*) AS v FROM fenix.rzp_rozp WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE nazev='TS S05-01 definice'); Expected: The query returns 0. 2. [SQL cleanup] Delete testovací data. Data: SQL: Data: DELETE FROM fenix.rzp_pred WHERE nazev_pred LIKE 'TS_S05%' OR nazev_pred='Jiny predpis'; Data: DELETE FROM fenix.rzp_pred WHERE id_def IN (SELECT id_def FROM fenix.rzp_definice WHERE nazev='TS S05-01 definice'); Data: DELETE FROM fenix.rzp_definice WHERE nazev='TS S05-01 definice'; Expected: Předpisy se smažou jak podle názvu (TS_S05% / Jiny predpis), tak přes vazbu na definici — odstraní se tím i případné osiřelé řádky, které by mazání jen přes id_def minulo. Závěrečný DELETE smaže pomocnou definici. Post-check v dalším kroku pak vrátí 0 / 0 / 1. 3. [SQL cleanup] Final post-check. Data: SQL: Data: SELECT 'def S05-01' AS k, COUNT(*) AS v FROM fenix.rzp_definice WHERE nazev='TS S05-01 definice' Data: UNION ALL SELECT 'pred TS_S05', COUNT(*) FROM fenix.rzp_pred WHERE nazev_pred LIKE 'TS_S05%' OR nazev_pred='Jiny predpis' Data: UNION ALL SELECT 'majitel Bata', COUNT(*) FROM fenix.rzp_majitel WHERE ico=44268050; Expected: Řádky 'def S05-01' a 'pred TS_S05' = 0. Řádek 'majitel Bata' = 1.
Expected result
Řádky 'def S05-01' a 'pred TS_S05' = 0. Řádek 'majitel Bata' = 1.
Suite link
TS spec: NEO_HEF/docs/Test suites/_definitions/RZP/TS-RZP-S05-01_SearchDialog.json | XLSX: NEO_HEF/docs/Test suites/TS-RZP-S05-01 — Searching for a record by a created condition (E2E).xlsx

TS-RZP-S07-01 — NAST Settings All passed

1 / 1 passed — TS-RZP-S07-01 — NAST Settings.xlsx · JSON spec

ScenarioEpicTest methodStatusTimeError / Detail
SC-NAST-01 EP-NAST-CFG Settings_OpenShowsLegacyDefaults_SaveClosesForm Passed 8,1 s

Stávající E2E testy mimo nové sady

Implementované testy z předchozích iterací, které zatím nejsou seskupené do TS-RZP sad. (3 scénářů.)

ScenarioEpicTest methodStatusTimeChyba
SC-E2E01-001 EP-E2E-FULL FullProcess_TS000_PrepareAndPreflight Passed 1,6 s
SC-E2E01-002 EP-E2E-FULL FullProcess_TS001_Walkthrough Passed 1,5 min
SC-E2E01-003 EP-E2E-FULL FullProcess_TS011_Cleanup Passed 200 ms