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.
3 / 3 passed — TS-RZP-S00-01 — VICO Owner Selection.xlsx · JSON spec
| Scenario | Epic | Test method | Status | Time | Error / 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 |
3 / 3 passed — TS-RZP-S00-03 — FrmLogin Standard Authentication (Session Prerequisite).xlsx · JSON spec
| Scenario | Epic | Test method | Status | Time | Error / 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 |
5 / 5 passed — TS-RZP-S01-01 — Codebooks, top menu + year change.xlsx · JSON spec
| Scenario | Epic | Test method | Status | Time | Error / 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 |
7 / 7 passed — TS-RZP-S01-02 — Creating cost and revenue accounts.xlsx · JSON spec
| Scenario | Epic | Test method | Status | Time | Error / 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 |
1 / 1 passed — TS-RZP-S01-03 — CRUD for cost and revenue accounts.xlsx · JSON spec
| Scenario | Epic | Test method | Status | Time | Error / Detail |
|---|---|---|---|---|---|
| RZP3-UCEC-STANDALONE-TS002 | EP-UCEC-CRUD | AccountCodebook_EditEditCancelDelete_PersistsExpectedDbState |
Passed | 20,4 s |
1 / 1 passed — TS-RZP-S01-04 — CRUD detail for cost and revenue accounts.xlsx · JSON spec
| Scenario | Epic | Test method | Status | Time | Error / Detail |
|---|---|---|---|---|---|
| SC-UCED-CRUDB-01 | EP-UCED-CRUDB | AccountDetail_EditEditCancelDelete_PersistsExpectedDbState |
Passed | 23,2 s |
5 / 5 passed — TS-RZP-S01-05 — Definition sentence.xlsx · JSON spec
| Scenario | Epic | Test method | Status | Time | Error / 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 |
1 / 1 passed — TS-RZP-S01-10 — Creating a new owner and selecting it in RZP (robust E2E).xlsx · JSON spec
| Scenario | Epic | Test method | Status | Time | Error / Detail |
|---|---|---|---|---|---|
| SC-MAJC-CRUDB-01 | EP-MAJC-CRUDB | OwnerMaintenance_CreateNewOwnerLink_PersistsToDb |
Passed | 9,8 s |
13 / 13 passed — TS-RZP-S02-01 — Allocation recipe CRUD — header (E2E).xlsx · JSON spec
| Scenario | Epic | Test method | Status | Time | Error / Detail |
|---|---|---|---|---|---|
| SC-PREC-001 | EP-PREC-CRUD | RecipeCodebookCrud_TS000_PrepareData |
Passed | 2,6 s | ▸ Step details (TC_ID: TC-E2E-001)PreconditionsUž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 resultOtevř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 linkTS 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)PreconditionsTS-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 resultThe 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 linkTS 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)PreconditionsTS-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 resultThe 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 linkTS 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)PreconditionsTS-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 resultThe 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 linkTS 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)PreconditionsTS-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 resultDisplayed: 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 linkTS 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)PreconditionsTS-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 resultThe form returns do režimu prohlížení (caption 'Rozpouštěcí předpisy'). V poli Poznámka je nová hodnota. Suite linkTS 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)PreconditionsTS-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 resultPo 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 linkTS 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)PreconditionsTS-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 resultVšechny tři řádky vrátí 0 — žádný předpis ani sirotčí navazující řádky. Suite linkTS 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)PreconditionsTS-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 linkTS 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 |
9 / 9 passed — TS-RZP-S02-02 — Allocation recipe level CRUD (E2E).xlsx · JSON spec
| Scenario | Epic | Test method | Status | Time | Error / Detail |
|---|---|---|---|---|---|
| SC-PRED-001 | EP-PRED-LEVEL | RecipeLevelCrud_TS000_PrepareData |
Passed | 2,6 s | ▸ Step details (TC_ID: TC-E2E-010)PreconditionsUž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 resultOtevř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 linkTS 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)PreconditionsTS-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 resultOtevř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 linkTS 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)PreconditionsTS-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 resultThe 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 linkTS 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)PreconditionsTS-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 resultThe 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 linkTS 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)PreconditionsTS-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 resultPrvní 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 linkTS 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)PreconditionsTS-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 resultThe 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 linkTS 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)PreconditionsTS-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 resultStupeň 4 se uloží a zobrazí v seznamu stupňů. Žádné upozornění se nezobrazí. Suite linkTS 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)PreconditionsTS-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 resultPrvní dotaz vrátí 2 řádky (stupen='1' a '4'). Druhý dotaz vrátí pocet='2' (klesl ze 3 na 2). Suite linkTS 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)PreconditionsSada 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 linkTS 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 |
8 / 8 passed — TS-RZP-S02-03 — Source account CRUD FROM an allocation recipe (E2E).xlsx · JSON spec
| Scenario | Epic | Test method | Status | Time | Error / Detail |
|---|---|---|---|---|---|
| SC-PREO-001 | EP-PREO-CRUD | RecipeSourceCrud_TS000_PrepareData |
Passed | 1,0 s | ▸ Step details (TC_ID: TC-E2E-019)PreconditionsUž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 resultOtevř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 linkTS 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)PreconditionsTS-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 resultThe 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 linkTS 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)PreconditionsTS-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 resultThe 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 linkTS 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)PreconditionsTS-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 resultThe dialog closes. V tabulce zdrojových účtů je stále jen 1 řádek (z TS-001). Žádný duplicitní záznam. Suite linkTS 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)PreconditionsTS-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 resultThe form returns do režimu prohlížení. V tabulce zdrojových účtů řádek (SU = 501) zobrazuje aktualizovanou poznámku. Suite linkTS 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)PreconditionsTS-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 resultThe dialog closes. V tabulce zdrojových účtů nedošlo k žádné změně. Suite linkTS 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)PreconditionsTS-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 resultOba řádky vrátí 0 — žádný zdrojový účet a žádné sirotčí KAM cíle. Suite linkTS 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)PreconditionsSada 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 linkTS 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 |
8 / 8 passed — TS-RZP-S02-04 — Target account CRUD TO an allocation recipe (E2E).xlsx · JSON spec
| Scenario | Epic | Test method | Status | Time | Error / Detail |
|---|---|---|---|---|---|
| SC-PREK-001 | EP-PREK-CRUD | RecipeTargetCrud_TS000_PrepareData |
Passed | 1,8 s | ▸ Step details (TC_ID: TC-E2E-027)PreconditionsUž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 resultOtevř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 linkTS 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)PreconditionsTS-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 resultThe 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 linkTS 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)PreconditionsTS-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 resultThe 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 linkTS 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)PreconditionsTS-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 resultThe dialog closes. V tabulce cílových účtů nevznikl žádný neplatný záznam. Suite linkTS 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)PreconditionsTS-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 resultThe dialog closes. Suite linkTS 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)PreconditionsTS-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 resultAplikace přepočítá koeficienty. Vypočítaný koeficient je nyní = 1,000000000000. Tlačítko Přepočti koeficient se skryje. Suite linkTS 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)PreconditionsV 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 linkTS 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)PreconditionsSada 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 linkTS 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 |
6 / 6 passed — TS-RZP-S02-05 — Copying an allocation recipe (robust E2E).xlsx · JSON spec
| Scenario | Epic | Test method | Status | Time | Error / Detail |
|---|---|---|---|---|---|
| SC-PREP-001 | EP-PREP-COPY | RecipeCopy_TS000_PrepareData |
Passed | 1,0 s | ▸ Step details (TC_ID: TC-E2E-035)PreconditionsUž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 resultOtevř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 linkTS 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)PreconditionsTS-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 resultOtevř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 linkTS 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)PreconditionsTS-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 resulthlavicky = 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 linkTS 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)PreconditionsTS-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 resultThe 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 linkTS 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)PreconditionsTS-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 resultThe 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 linkTS 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)PreconditionsSada 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 linkTS 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 |
8 / 8 passed — TS-RZP-S03-01 — Importing accounting data for a period (E2E).xlsx · JSON spec
| Scenario | Epic | Test method | Status | Time | Error / Detail |
|---|---|---|---|---|---|
| SC-PRIC-001 | EP-PRIC-IMP | ImportData_TS000 |
Passed | 800 ms | ▸ Step details (TC_ID: TC-E2E-041)PreconditionsUž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 resultOtevř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 linkTS 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)PreconditionsTS-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 resultThe 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 linkTS 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)PreconditionsTS-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 resultTlačítko Kontrola je ZAŠEDLÉ (nelze na něj kliknout). Suite linkTS 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)PreconditionsTS-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 resultThe 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 linkTS 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)PreconditionsV 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 resultThe dialog closes (řádek 02 zůstává Neuzavřené (N)). V tabulce přijatých dat se nic nezměnilo. Suite linkTS 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)PreconditionsV 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 resultOba řádky vrátí 0. Suite linkTS 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)PreconditionsTS-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 linkTS 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 |
8 / 8 passed — TS-RZP-S03-02 — Allocating imported data (E2E).xlsx · JSON spec
| Scenario | Epic | Test method | Status | Time | Error / Detail |
|---|---|---|---|---|---|
| SC-PRID-001 | EP-PRID-RUN | DistributionRun_TS000 |
Passed | 837 ms | ▸ Step details (TC_ID: TC-E2E-048)PreconditionsUž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 resultThe query returns 1 řádek: obdobi=1, uzaverka='A', pocet_radku_stupen0 >= 1. Suite linkTS 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)PreconditionsTS-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 resultThe query returns 2 řádky: stupen='0' (původní importovaná data) a stupen='1' (nově rozpuštěná, pocet >= 1). Suite linkTS 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)PreconditionsTS-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 resultThe 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 linkTS 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)PreconditionsTS-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 resultThe 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 linkTS 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)PreconditionsTS-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 resultThe query returns stupně 0, 1 a 2; počet řádků se oproti stavu po TS-002 nezměnil (žádný duplicitní záznam). Suite linkTS 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)PreconditionsTS-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 resultThe query returns pouze stupně '0' a '1' (žádný stupen='2'). Suite linkTS 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)PreconditionsTS-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 resultrozp_det stupen 2 = 0 (žádný částečný stupeň), zombie sessions = 0. Suite linkTS 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)PreconditionsSada 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 linkTS 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 |
11 / 11 passed — TS-RZP-S04-01 — Report printing 21a – Overview of direct costs and revenues at period end (E2E).xlsx · JSON spec
| Scenario | Epic | Test method | Status | Time | Error / Detail |
|---|---|---|---|---|---|
| SC-TISK21A-001 | EP-TISK21A-RPT | PrintDirectNVOverview_TS000 |
Passed | ▸ Step details (TC_ID: TC-E2E-056)PreconditionsUž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 resultThe 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 linkTS 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)PreconditionsTS-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 resultPř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 linkTS 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)PreconditionsFormulář 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 resultThe dialog closes bez uložení (žádná změna nastavení). Vrátíš se do formuláře Report printing. Suite linkTS 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)PreconditionsFormulář 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 resultThe dialog closes bez uložení. Změny ořízlé na obrazovce se NEpersistují (Zrušit = bez zápisu). Suite linkTS 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)PreconditionsAplikace 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 resultDialog se otevře se zapamatovanou orientací 'Na šířku' (nastavení je perzistentní v rámci session). Suite linkTS 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)PreconditionsTS-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 resultOkno 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 linkTS 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)PreconditionsNá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 resultNa 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 linkTS 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)PreconditionsTS-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 resultVýstup respektuje zvolenou orientaci z dialogu Nastavení tiskárny (na šířku), shodně s legacy chováním. Suite linkTS 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)PreconditionsTS-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 resultDisplayed: informační hláška o tom, že nejsou data (NoData) a žádný CSV se nevytvoří. Formulář zůstává otevřený. Suite linkTS 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)PreconditionsFormulář 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 resultDisplayed: 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 linkTS 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)PreconditionsFormulář 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 resultThe dialog closes, formulář zůstává otevřený v režimu zadávání, tisk se nespustí. Suite linkTS 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 |
6 / 6 passed — TS-RZP-S04-02 — Report printing 21b – Post-allocation overview of costs and revenues at period end (E2E).xlsx · JSON spec
| Scenario | Epic | Test method | Status | Time | Error / Detail |
|---|---|---|---|---|---|
| SC-TISK21B-001 | EP-TISK21B-RPT | PrintPostDistributionNV_TS000 |
Passed | ▸ Step details (TC_ID: TC-E2E-068)PreconditionsPří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 resultThe 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 linkTS 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)PreconditionsTS-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 resultJe 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 linkTS 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)PreconditionsFormulář 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 resultValidace projde a otevře se náhled/okno Report printing (sestava se generuje pro 2. stupeň rozpuštění). Suite linkTS 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)PreconditionsTS-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 resultTě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 linkTS 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)PreconditionsTS-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 resultCelá 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 linkTS 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)PreconditionsSada 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 linkTS 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 |
6 / 6 passed — TS-RZP-S04-03 — Report printing 22a – Comparison of direct costs and revenues at period end (E2E).xlsx · JSON spec
| Scenario | Epic | Test method | Status | Time | Error / Detail |
|---|---|---|---|---|---|
| SC-TISK22A-001 | EP-TISK22A-RPT | PrintDirectNVComparison_TS000 |
Passed | ▸ Step details (TC_ID: TC-E2E-074)PreconditionsPří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 resultThe query returns 2 řádky (obdobi=1 a obdobi=2), oba radku_stupen0 >= 1 a suma_sr/suma_ur > 0. Suite linkTS 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)PreconditionsTS-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 resultPopisek '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 linkTS 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)PreconditionsTS-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 resultTě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 linkTS 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)PreconditionsTS-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 resultZá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 linkTS 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)PreconditionsFormulář 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 resultValidace projde a otevře se náhled/okno Report printing. Suite linkTS 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)PreconditionsSada 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 linkTS 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 |
5 / 5 passed — TS-RZP-S04-04 — Report printing 23a – Monthly comparison of direct costs and revenues at period end (E2E).xlsx · JSON spec
| Scenario | Epic | Test method | Status | Time | Error / Detail |
|---|---|---|---|---|---|
| SC-TISK23A-001 | EP-TISK23A-RPT | PrintMonthlyComparisonDirect_TS000 |
Passed | ▸ Step details (TC_ID: TC-E2E-080)PreconditionsPří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 resultThe query returns 3 řádky (obdobi 1, 2, 3), všechny radku_stupen0 >= 1 a suma_sr/suma_ur > 0. Suite linkTS 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)PreconditionsTS-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 resultIČ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 linkTS 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)PreconditionsTS-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 resultTě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 linkTS 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)PreconditionsTS-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 resultZá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 linkTS 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)PreconditionsSada 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 linkTS 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 |
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
| Scenario | Epic | Test method | Status | Time | Error / Detail |
|---|---|---|---|---|---|
| SC-TISK23B-001 | EP-TISK23B-RPT | PrintMonthlyComparisonPostDist_TS000 |
Passed | ▸ Step details (TC_ID: TC-E2E-085)PreconditionsPří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 resultPro každé období (1 i 2) existují stupně '0', '1', '2' a suma_sr/suma_ur > 0. Suite linkTS 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)PreconditionsTS-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 resultIČ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 linkTS 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)PreconditionsFormulář 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 resultValidace projde a otevře se náhled/okno Report printing. Suite linkTS 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)PreconditionsTS-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 resultZápatí (strana, datum/čas) ve formátu VB6. Celá stránka 1:1 (rozdíl < 1 %). Suite linkTS 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)PreconditionsSada 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 linkTS 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 |
5 / 5 passed — TS-RZP-S04-06 — Report printing 24a – Cost plan fulfilment overview at period end (E2E).xlsx · JSON spec
| Scenario | Epic | Test method | Status | Time | Error / Detail |
|---|---|---|---|---|---|
| SC-TISK24A-001 | EP-TISK24A-RPT | PrintFulfillmentCosts_TS000 |
Passed | ▸ Step details (TC_ID: TC-E2E-090)PreconditionsPří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 resultPro 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 linkTS 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)PreconditionsTS-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 resultIČ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 linkTS 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)PreconditionsFormulář 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 resultValidace projde a otevře se náhled/okno Report printing. Suite linkTS 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)PreconditionsTS-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 resultZá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 linkTS 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)PreconditionsSada 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 linkTS 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 |
5 / 5 passed — TS-RZP-S04-07 — Report printing 24b – Revenue plan fulfilment overview at period end (E2E).xlsx · JSON spec
| Scenario | Epic | Test method | Status | Time | Error / Detail |
|---|---|---|---|---|---|
| SC-TISK24B-001 | EP-TISK24B-RPT | PrintFulfillmentRevenues_TS000 |
Passed | ▸ Step details (TC_ID: TC-E2E-095)PreconditionsPří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 resultPro nakl_vyn='V' (výnosy) je skutecnost > 0, plán > 0 a plneni_k_sr_pct ≈ 111,1. Suite linkTS 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)PreconditionsTS-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 resultIČO 44268050, DIČ, Baťa, Rok 2026. Předpis a Stupeň viditelné/editovatelné, Plán/Kč skryté, Název sestavy zúžený. Suite linkTS 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)PreconditionsFormulář 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 resultValidace projde a otevře se náhled/okno Report printing. Suite linkTS 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)PreconditionsTS-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 resultZápatí ve formátu VB6, celá stránka 1:1 (rozdíl < 1 %). Součty sedí s SQL auditem z TS-000. Suite linkTS 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)PreconditionsSada 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 linkTS 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 |
5 / 5 passed — TS-RZP-S04-08 — Report printing 24c – Cost and revenue plan fulfilment overview at period end (E2E).xlsx · JSON spec
| Scenario | Epic | Test method | Status | Time | Error / Detail |
|---|---|---|---|---|---|
| SC-TISK24C-001 | EP-TISK24C-RPT | PrintFulfillmentCostsRevenues_TS000 |
Passed | ▸ Step details (TC_ID: TC-E2E-100)PreconditionsPří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 resultVrátí 2 řádky (nakl_vyn 'N' i 'V'), oba se skutecnost > 0, plán > 0 a plneni_k_sr_pct ≈ 111,1. Suite linkTS 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)PreconditionsTS-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 resultIČO 44268050, DIČ, Baťa, Rok 2026. Předpis a Stupeň viditelné/editovatelné, Plán/Kč skryté, Název sestavy zúžený. Suite linkTS 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)PreconditionsFormulář 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 resultValidace projde a otevře se náhled/okno Report printing. Suite linkTS 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)PreconditionsTS-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 resultZá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 linkTS 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)PreconditionsSada 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 linkTS 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 |
5 / 5 passed — TS-RZP-S04-09 — Report printing 24d – Cost and revenue plan fulfilment recap at period end (E2E).xlsx · JSON spec
| Scenario | Epic | Test method | Status | Time | Error / Detail |
|---|---|---|---|---|---|
| SC-TISK24D-001 | EP-TISK24D-RPT | PrintFulfillmentRecap_TS000 |
Passed | ▸ Step details (TC_ID: TC-E2E-105)PreconditionsPří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 resultVrá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 linkTS 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)PreconditionsTS-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 resultIČO 44268050, DIČ, Baťa, Rok 2026. Předpis a Stupeň viditelné/editovatelné, Plán/Kč skryté, Název sestavy zúžený. Suite linkTS 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)PreconditionsFormulář 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 resultValidace projde a otevře se náhled/okno Report printing. Suite linkTS 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)PreconditionsTS-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 resultZá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 linkTS 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)PreconditionsSada 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 linkTS 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 |
5 / 5 passed — TS-RZP-S04-10 — Report printing 24e – Plan drawdown overview at period end (E2E).xlsx · JSON spec
| Scenario | Epic | Test method | Status | Time | Error / Detail |
|---|---|---|---|---|---|
| SC-TISK24E-001 | EP-TISK24E-RPT | PrintPlanDrawdown_TS000 |
Passed | ▸ Step details (TC_ID: TC-E2E-110)PreconditionsPří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 resultPro 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 linkTS 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)PreconditionsTS-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 resultIČO 44268050, DIČ, Baťa, Rok 2026. Předpis a Stupeň viditelné/editovatelné, Plán/Kč skryté, Název sestavy zúžený. Suite linkTS 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)PreconditionsFormulář 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 resultValidace projde a otevře se náhled/okno Report printing. Suite linkTS 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)PreconditionsTS-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 resultZápatí ve formátu VB6, celá stránka 1:1 (rozdíl < 1 %). Hodnoty % čerpání sedí s SQL auditem z TS-000. Suite linkTS 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)PreconditionsSada 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 linkTS 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 |
5 / 5 passed — TS-RZP-S04-11 — Report printing 29a – Overview of direct and post-allocation costs and revenues (E2E).xlsx · JSON spec
| Scenario | Epic | Test method | Status | Time | Error / Detail |
|---|---|---|---|---|---|
| SC-TISK29A-001 | EP-TISK29A-RPT | PrintDirectAndPostDist_TS000 |
Passed | ▸ Step details (TC_ID: TC-E2E-115)PreconditionsPří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 resultVrátí stupně '0', '1', '2' – sestava 29a má přímá (0) i rozpuštěná (2) data k zobrazení vedle sebe. Suite linkTS 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)PreconditionsTS-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 resultIČO 44268050, DIČ, Baťa, Rok 2026. Předpis a Stupeň viditelné/editovatelné, Plán/Kč skryté (29x není 21x). Suite linkTS 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)PreconditionsFormulář 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 resultValidace projde a otevře se náhled/okno Report printing. Suite linkTS 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)PreconditionsTS-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 resultZápatí ve formátu VB6, celá stránka 1:1 (rozdíl < 1 %). Suite linkTS 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)PreconditionsSada 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 linkTS 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 |
5 / 5 passed — TS-RZP-S04-12 — Report printing 29b – Fulfilment overview of direct and post-allocation costs and revenues (E2E).xlsx · JSON spec
| Scenario | Epic | Test method | Status | Time | Error / Detail |
|---|---|---|---|---|---|
| SC-TISK29B-001 | EP-TISK29B-RPT | PrintFulfillmentDirectAndPostDist_TS000 |
Passed | ▸ Step details (TC_ID: TC-E2E-120)PreconditionsPří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 resultVrá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 linkTS 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)PreconditionsTS-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 resultIČO 44268050, DIČ, Baťa, Rok 2026. Předpis a Stupeň viditelné/editovatelné, Plán/Kč skryté, Název sestavy zúžený. Suite linkTS 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)PreconditionsFormulář 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 resultValidace projde a otevře se náhled/okno Report printing. Suite linkTS 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)PreconditionsTS-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 resultZá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 linkTS 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)PreconditionsSada 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 linkTS 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 |
7 / 7 passed — TS-RZP-S05-01 — Searching for a record by a created condition (E2E).xlsx · JSON spec
| Scenario | Epic | Test method | Status | Time | Error / Detail |
|---|---|---|---|---|---|
| SC-HLED-001 | EP-HLED-SRCH | SearchDialog_TS000_PrepareData |
Passed | 21,1 s | ▸ Step details (TC_ID: TC-E2E-125)PreconditionsUž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 resultOtevře se formulář. V seznamu předpisů jsou viditelné 3 testovací řádky: 'TS_S05_A prvni', 'TS_S05_B druhy', 'Jiny predpis'. Suite linkTS 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)PreconditionsTS-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 resultDialog 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 linkTS 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)PreconditionsTS-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 resultThe 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 linkTS 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)PreconditionsTS-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 resultThe 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 linkTS 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)PreconditionsTS-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 resultThe dialog closes. Seznam předpisů v DistributionSelectionForm zobrazuje opět 3 testovací řádky (nebyl aplikován žádný filtr). Suite linkTS 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)PreconditionsTS-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 resultSeznam předpisů zobrazí přesně 1 řádek: 'TS_S05_A prvni' (jehož popis je 'Pro filtr A — skutecnost'). Encoding diakritiky funguje korektně. Suite linkTS 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)PreconditionsSada 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 linkTS 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 |
1 / 1 passed — TS-RZP-S07-01 — NAST Settings.xlsx · JSON spec
| Scenario | Epic | Test method | Status | Time | Error / Detail |
|---|---|---|---|---|---|
| SC-NAST-01 | EP-NAST-CFG | Settings_OpenShowsLegacyDefaults_SaveClosesForm |
Passed | 8,1 s |
Implementované testy z předchozích iterací, které zatím nejsou seskupené do TS-RZP sad. (3 scénářů.)
| Scenario | Epic | Test method | Status | Time | Chyba |
|---|---|---|---|---|---|
| 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 |