3 / 3 prošlo — TS-RZP-S00-01 — VICO Owner Selection.xlsx · JSON spec
| Scénář | Epic | Test method | Status | Čas | Chyba / 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 prošlo — TS-RZP-S00-03 — FrmLogin Standard Authentication (Session Prerequisite).xlsx · JSON spec
| Scénář | Epic | Test method | Status | Čas | Chyba / 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 prošlo — TS-RZP-S01-01 — Číselníky, horní menu + změna roku.xlsx · JSON spec
| Scénář | Epic | Test method | Status | Čas | Chyba / 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 prošlo — TS-RZP-S01-02 — Založení nákladových a výnosových účtů.xlsx · JSON spec
| Scénář | Epic | Test method | Status | Čas | Chyba / 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 prošlo — TS-RZP-S01-03 — CRUD nákladových a výnosových účtů.xlsx · JSON spec
| Scénář | Epic | Test method | Status | Čas | Chyba / Detail |
|---|---|---|---|---|---|
| RZP3-UCEC-STANDALONE-TS002 | EP-UCEC-CRUD | AccountCodebook_EditEditCancelDelete_PersistsExpectedDbState |
Passed | 20,4 s |
1 / 1 prošlo — TS-RZP-S01-04 — CRUD detail nákladových a výnosových účtů.xlsx · JSON spec
| Scénář | Epic | Test method | Status | Čas | Chyba / Detail |
|---|---|---|---|---|---|
| SC-UCED-CRUDB-01 | EP-UCED-CRUDB | AccountDetail_EditEditCancelDelete_PersistsExpectedDbState |
Passed | 23,2 s |
5 / 5 prošlo — TS-RZP-S01-05 — Definiční věta.xlsx · JSON spec
| Scénář | Epic | Test method | Status | Čas | Chyba / 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 prošlo — TS-RZP-S01-10 — Vytvoření nového majitele a jeho výběr v RZP (E2E robustní).xlsx · JSON spec
| Scénář | Epic | Test method | Status | Čas | Chyba / Detail |
|---|---|---|---|---|---|
| SC-MAJC-CRUDB-01 | EP-MAJC-CRUDB | OwnerMaintenance_CreateNewOwnerLink_PersistsToDb |
Passed | 9,8 s |
13 / 13 prošlo — TS-RZP-S02-01 — CRUD rozpouštěcího předpisu — hlavička (E2E).xlsx · JSON spec
| Scénář | Epic | Test method | Status | Čas | Chyba / Detail |
|---|---|---|---|---|---|
| SC-PREC-001 | EP-PREC-CRUD | RecipeCodebookCrud_TS000_PrepareData |
Passed | 2,6 s | ▸ Detail kroků (TC_ID: TC-E2E-001)PředpokladyUživatel má přístup k testovací DB a k Haifa aplikaci. Majitel Baťa (IČ 44268050) je založen. Pro rok 2026 zatím neexistuje testovací definiční věta ani rozpouštěcí předpis tohoto názvu. Kroky (Akce / Data / Očekávání)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
Oček.: Spojení navázáno.
2. [SQL setup] Uvolni (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;
Oček.: 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: ověř, ž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%';
Oček.: majitel Bata = 1, ostatní řádky = 0 (žádné zbytky).
4. [SQL setup] Vlož 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;
Oček.: 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. V aplikaci vyber majitele Baťa (Úloha → Majitel → Výběr → IČ 44268050) a otevři Úloha → Rozpouštěcí předpis.
Data: Majitel = Baťa (IČ 44268050)
Data: Rok = 2026
Oček.: 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á. Očekávaný výsledekOtevř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á. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S02-01_RecipeCodebookCrud.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S02-01 — CRUD rozpouštěcího předpisu — hlavička (E2E).xlsx |
| SC-PREC-002 | EP-PREC-CRUD | RecipeCodebookCrud_TS001_CreateRecipe |
Passed | 3,2 s | ▸ Detail kroků (TC_ID: TC-E2E-002)PředpokladyTS-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á. Kroky (Akce / Data / Očekávání)1. Klikni v menu na Rozpouštěcí předpisy → Nový (nebo stiskni Ctrl+N).
Oček.: 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)
Oček.: Pole obsahují zadané hodnoty. Radio 'pouze skutečnosti' je vybrané, 'skutečnosti a plánu' je nevybrané.
3. Klikni na tlačítko OK / Uložit (Ctrl+S).
Oček.: Formulář se vrátí 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] Volitelně ověř, ž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');
Oček.: Dotaz vrátí 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'. Očekávaný výsledekDotaz vrátí 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'. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S02-01_RecipeCodebookCrud.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S02-01 — CRUD rozpouštěcího předpisu — hlavička (E2E).xlsx |
| SC-PREC-003 | EP-PREC-CRUD | RecipeCodebookCrud_TS002_EmptyOrderNumber |
Passed | 3,3 s | ▸ Detail kroků (TC_ID: TC-E2E-003)PředpokladyTS-000 proběhlo. Formulář je otevřen, ComboBox definiční věty = 'TS S02-01 definice'. Kroky (Akce / Data / Očekávání)1. Klikni na Předpis → Nový.
Oček.: 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
Oček.: Pole Poř. číslo zůstává prázdné, ostatní vyplněna.
3. Klikni na OK / Uložit (Ctrl+S).
Oček.: Zobrazí se 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.
Oček.: Dialog se zavře. 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. Očekávaný výsledekDialog se zavře. 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. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S02-01_RecipeCodebookCrud.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S02-01 — CRUD rozpouštěcího předpisu — hlavička (E2E).xlsx |
| SC-PREC-004 | EP-PREC-CRUD | RecipeCodebookCrud_TS003_EmptyName |
Passed | 3,0 s | ▸ Detail kroků (TC_ID: TC-E2E-004)PředpokladyTS-000 proběhlo. Formulář je otevřen v režimu nového záznamu. Kroky (Akce / Data / Očekávání)1. Klikni na Předpis → Nový.
Oček.: 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
Oček.: Pole Název zůstává prázdné.
3. Klikni na OK / Uložit.
Oček.: Zobrazí se 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.
Oček.: Dialog se zavře. 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. Očekávaný výsledekDialog se zavře. 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. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S02-01_RecipeCodebookCrud.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S02-01 — CRUD rozpouštěcího předpisu — hlavička (E2E).xlsx |
| SC-PREC-005 | EP-PREC-CRUD | RecipeCodebookCrud_TS004_InvalidLevelCount |
Passed | 3,4 s | ▸ Detail kroků (TC_ID: TC-E2E-005)PředpokladyTS-000 proběhlo. Formulář je otevřen v režimu nového záznamu. Kroky (Akce / Data / Očekávání)1. Klikni na 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
Oček.: Pole obsahují zadané hodnoty.
2. Klikni na OK / Uložit.
Oček.: Zobrazí se 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. Očekávaný výsledekZobrazí se 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. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S02-01_RecipeCodebookCrud.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S02-01 — CRUD rozpouštěcího předpisu — hlavička (E2E).xlsx |
| SC-PREC-006 | EP-PREC-CRUD | RecipeCodebookCrud_TS005_EditNote |
Passed | 3,1 s | ▸ Detail kroků (TC_ID: TC-E2E-006)PředpokladyTS-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í. Kroky (Akce / Data / Očekávání)1. V tabulce předpisů vyber řádek (Poř. č. = 1).
Oček.: Řá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 (nebo stiskni Ctrl+O).
Oček.: 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
Oček.: Pole Poznámka obsahuje novou hodnotu 'Editováno v TS-005'.
4. Klikni na OK / Uložit (Ctrl+S).
Oček.: Formulář se vrátí do režimu prohlížení (caption 'Rozpouštěcí předpisy'). V poli Poznámka je nová hodnota. Očekávaný výsledekFormulář se vrátí do režimu prohlížení (caption 'Rozpouštěcí předpisy'). V poli Poznámka je nová hodnota. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S02-01_RecipeCodebookCrud.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S02-01 — CRUD rozpouštěcího předpisu — hlavička (E2E).xlsx |
| SC-PREC-007 | EP-PREC-CRUD | RecipeCodebookCrud_TS006_PessimisticLock |
Ručně ✓ | manuál | RUČNĚ OVĚŘENO — iva.holeckova, 2026-06-22. Důvod ne-automatizace: Vyžaduje 2 souběžné launcher session (sp_getapplock LockKeys.Recipe) — mimo rozsah jedné LauncherSessionFixture. Postup/důkaz: QA sign-off uživatele (iva.holeckova) — ruční provedení dle manual-test-procedures.md #1. ▸ Detail kroků (TC_ID: TC-E2E-007)PředpokladyTS-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. Kroky (Akce / Data / Očekávání)1. Session A: V tabulce předpisů vyber 'TS001 test předpis 2026' a klikni na Opravit. V poli Poznámka začni psát (nedávej Uložit).
Oček.: 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ě): otevři druhou instanci aplikace. Vyber stejný předpis a klikni Předpis → Opravit. Změň pole Poznámka a klikni OK / Uložit.
Oček.: 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%';
Oček.: Dotaz vrátí alespoň 1 řádek s request_mode='X' (exclusive) drženým Session A.
4. Session A: dokončí editaci (Uložit nebo Zrušit). Session B: zkus znovu Uložit.
Oček.: 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. Očekávaný výsledekPo 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. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S02-01_RecipeCodebookCrud.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S02-01 — CRUD rozpouštěcího předpisu — hlavička (E2E).xlsx |
| SC-PREC-008 | EP-PREC-CRUD | RecipeCodebookCrud_TS007_DeleteRecipe |
Passed | 2,8 s | ▸ Detail kroků (TC_ID: TC-E2E-008)PředpokladyTS-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). Kroky (Akce / Data / Očekávání)1. V tabulce předpisů vyber 'TS001 test předpis 2026' a klikni na Vymazat (Ctrl+Y).
Oček.: Zobrazí se 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.
Oček.: 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);
Oček.: Všechny tři řádky vrátí 0 — žádný předpis ani sirotčí navazující řádky. Očekávaný výsledekVšechny tři řádky vrátí 0 — žádný předpis ani sirotčí navazující řádky. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S02-01_RecipeCodebookCrud.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S02-01 — CRUD rozpouštěcího předpisu — hlavička (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 | ▸ Detail kroků (TC_ID: TC-E2E-009)PředpokladyTS-007 proběhlo. Tabulka předpisů pro definici 'TS S02-01 definice' je prázdná. Kroky (Akce / Data / Očekávání)1. [SQL cleanup] Smaž 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;
Oček.: 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: ověř, ž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');
Oček.: 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;
Oček.: Řádky 'def S02-01' a 'pred TS S02-01' = 0. Řádek 'majitel Bata' = 1. Očekávaný výsledekŘádky 'def S02-01' a 'pred TS S02-01' = 0. Řádek 'majitel Bata' = 1. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S02-01_RecipeCodebookCrud.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S02-01 — CRUD rozpouštěcího předpisu — hlavička (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 prošlo — TS-RZP-S02-02 — CRUD stupňů rozpouštěcího předpisu (E2E).xlsx · JSON spec
| Scénář | Epic | Test method | Status | Čas | Chyba / Detail |
|---|---|---|---|---|---|
| SC-PRED-001 | EP-PRED-LEVEL | RecipeLevelCrud_TS000_PrepareData |
Passed | 2,6 s | ▸ Detail kroků (TC_ID: TC-E2E-010)PředpokladyUživatel má přístup k testovací DB a k Haifa aplikaci. Majitel Baťa (IČ 44268050) je založen. Pro rok 2026 zatím neexistuje testovací definice tohoto názvu ani předpis 'TS S02-02 předpis'. Kroky (Akce / Data / Očekávání)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
Oček.: Spojení navázáno.
2. [SQL setup] Uvolni (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;
Oček.: 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: ověř, ž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%';
Oček.: majitel Bata = 1, ostatní = 0 (žádné zbytky).
4. [SQL setup] Vlož 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;
Oček.: 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. V aplikaci vyber majitele Baťa (Úloha → Majitel → Výběr → IČ 44268050) a otevři Úloha → Rozpouštěcí předpis.
Data: Majitel = Baťa (IČ 44268050)
Data: Rok = 2026
Oček.: 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'). Očekávaný výsledekOtevř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'). Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S02-02_RecipeLevelCrud.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S02-02 — CRUD stupňů rozpouštěcího předpisu (E2E).xlsx |
| SC-PRED-002 | EP-PRED-LEVEL | RecipeLevelCrud_TS001_OpenLevelDetail |
Passed | 3,2 s | ▸ Detail kroků (TC_ID: TC-E2E-011)PředpokladyTS-000 proběhlo. Ve formuláři 'Rozpouštěcí předpisy' je viditelný řádek 'TS S02-02 předpis'. Kroky (Akce / Data / Očekávání)1. V tabulce předpisů vyber řádek 'TS S02-02 předpis'.
Oček.: Řádek je zvýrazněn. Tlačítko Detail je aktivní (ne šedé).
2. Klikni na tlačítko Detail.
Oček.: 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ň). Očekávaný výsledekOtevř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ň). Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S02-02_RecipeLevelCrud.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S02-02 — CRUD stupňů rozpouštěcího předpisu (E2E).xlsx |
| SC-PRED-003 | EP-PRED-LEVEL | RecipeLevelCrud_TS002_AddFirstLevel |
Passed | 5,2 s | ▸ Detail kroků (TC_ID: TC-E2E-012)PředpokladyTS-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á. Kroky (Akce / Data / Očekávání)1. Klikni na tlačítko Nový (nebo stiskni Ctrl+N).
Oček.: 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í vyber '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
Oček.: Všechna pole obsahují zadané hodnoty. ComboBox Počáteční období platnosti zobrazuje '1'.
3. Klikni na tlačítko Uložit (nebo stiskni Ctrl+S).
Oček.: Formulář se vrátí 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] Volitelně ověř, ž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;
Oček.: Dotaz vrátí 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). Očekávaný výsledekDotaz vrátí 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). Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S02-02_RecipeLevelCrud.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S02-02 — CRUD stupňů rozpouštěcího předpisu (E2E).xlsx |
| SC-PRED-004 | EP-PRED-LEVEL | RecipeLevelCrud_TS003_EditLevelName |
Passed | 4,3 s | ▸ Detail kroků (TC_ID: TC-E2E-013)PředpokladyTS-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). Kroky (Akce / Data / Očekávání)1. V tabulce stupňů vyber řádek (Stupeň = 1).
Oček.: Řádek je zvýrazněn. V poli Název rozpouštěcího stupně je text 'Stupeň 1 — testy'.
2. Klikni na tlačítko Opravit (nebo stiskni Ctrl+O).
Oček.: 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
Oček.: Pole Název rozpouštěcího stupně obsahuje novou hodnotu 'Editováno v TS-003'.
4. Klikni na tlačítko Uložit (Ctrl+S).
Oček.: Formulář se vrátí 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'. Očekávaný výsledekFormulář se vrátí 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'. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S02-02_RecipeLevelCrud.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S02-02 — CRUD stupňů rozpouštěcího předpisu (E2E).xlsx |
| SC-PRED-005 | EP-PRED-LEVEL | RecipeLevelCrud_TS004_AddSecondLevel |
Passed | 5,1 s | ▸ Detail kroků (TC_ID: TC-E2E-014)PředpokladyTS-003 proběhlo. V tabulce stupňů existuje 1 řádek (Stupeň = 1). Kroky (Akce / Data / Očekávání)1. Klikni na tlačítko Nový.
Oček.: 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 =
Oček.: Pole obsahují zadané hodnoty.
3. Klikni na Uložit (Ctrl+S).
Oček.: Formulář se vrátí 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] Volitelně ověř, ž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';
Oček.: 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'). Očekávaný výsledekPrvní 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'). Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S02-02_RecipeLevelCrud.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S02-02 — CRUD stupňů rozpouštěcího předpisu (E2E).xlsx |
| SC-PRED-006 | EP-PRED-LEVEL | RecipeLevelCrud_TS005_DuplicateLevel |
Passed | 5,5 s | ▸ Detail kroků (TC_ID: TC-E2E-015)PředpokladyTS-004 proběhlo. V tabulce stupňů existují 2 řádky (Stupeň = 1 a Stupeň = 2). Kroky (Akce / Data / Očekávání)1. Klikni na Nový.
Oček.: 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)
Oček.: Pole obsahují zadané hodnoty.
3. Klikni na Uložit.
Oček.: Zobrazí se 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.
Oček.: Dialog se zavře. 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). Očekávaný výsledekDialog se zavře. 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). Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S02-02_RecipeLevelCrud.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S02-02 — CRUD stupňů rozpouštěcího předpisu (E2E).xlsx |
| SC-PRED-007 | EP-PRED-LEVEL | RecipeLevelCrud_TS006_NonContiguousLevel |
Passed | 7,1 s | ▸ Detail kroků (TC_ID: TC-E2E-016)PředpokladyTS-004 proběhlo. V tabulce stupňů existují 2 řádky (Stupeň = 1 a 2). Stupeň 3 neexistuje. Kroky (Akce / Data / Očekávání)1. Klikni na Nový a vyplň Stupeň = 4 (mimo posloupnost).
Data: Stupeň = 4
Data: Název = Mimo posloupnost
Data: Období = 1 (leden 2026)
Oček.: Pole obsahují zadané hodnoty.
2. Klikni na OK.
Oček.: Stupeň 4 se uloží a zobrazí v seznamu stupňů. Žádné upozornění se nezobrazí. Očekávaný výsledekStupeň 4 se uloží a zobrazí v seznamu stupňů. Žádné upozornění se nezobrazí. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S02-02_RecipeLevelCrud.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S02-02 — CRUD stupňů rozpouštěcího předpisu (E2E).xlsx |
| SC-PRED-008 | EP-PRED-LEVEL | RecipeLevelCrud_TS007_DeleteSecondLevel |
Passed | 3,9 s | ▸ Detail kroků (TC_ID: TC-E2E-017)PředpokladyTS-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í. Kroky (Akce / Data / Očekávání)1. V tabulce stupňů vyber řádek (Stupeň = 2).
Oček.: Řádek je zvýrazněn.
2. Klikni na tlačítko Vymazat (nebo stiskni Ctrl+Y).
Oček.: Zobrazí se 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.
Oček.: 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] Volitelně ověř, ž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';
Oček.: První dotaz vrátí 2 řádky (stupen='1' a '4'). Druhý dotaz vrátí pocet='2' (klesl ze 3 na 2). Očekávaný výsledekPrvní dotaz vrátí 2 řádky (stupen='1' a '4'). Druhý dotaz vrátí pocet='2' (klesl ze 3 na 2). Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S02-02_RecipeLevelCrud.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S02-02 — CRUD stupňů rozpouštěcího předpisu (E2E).xlsx |
| SC-PRED-009 | EP-PRED-LEVEL | RecipeLevelCrud_TS008_CleanupData |
Passed | 300 ms | ▸ Detail kroků (TC_ID: TC-E2E-018)PředpokladySada 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ě). Kroky (Akce / Data / Očekávání)1. [SQL cleanup] Pre-flight: ověř, ž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: );
Oček.: Dotaz vrátí 0.
2. [SQL cleanup] Smaž 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;
Oček.: 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;
Oček.: Řádky 'hla S02-02', 'pred S02-02' a 'def S02-02' = 0. Řádek 'majitel Bata' = 1. Sada je idempotentní. Očekávaný výsledekŘádky 'hla S02-02', 'pred S02-02' a 'def S02-02' = 0. Řádek 'majitel Bata' = 1. Sada je idempotentní. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S02-02_RecipeLevelCrud.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S02-02 — CRUD stupňů rozpouštěcího předpisu (E2E).xlsx |
8 / 8 prošlo — TS-RZP-S02-03 — CRUD zdrojových účtů ODKUD rozpouštěcího předpisu (E2E).xlsx · JSON spec
| Scénář | Epic | Test method | Status | Čas | Chyba / Detail |
|---|---|---|---|---|---|
| SC-PREO-001 | EP-PREO-CRUD | RecipeSourceCrud_TS000_PrepareData |
Passed | 1,0 s | ▸ Detail kroků (TC_ID: TC-E2E-019)PředpokladyUživatel má přístup k testovací DB a k Haifa aplikaci. Majitel Baťa (IČ 44268050) je založen. Pro rok 2026 zatím neexistují testovací data. Kroky (Akce / Data / Očekávání)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
Oček.: Spojení navázáno.
2. [SQL setup] Uvolni (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;
Oček.: 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: ověř, ž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';
Oček.: Všechny řádky vrátí 0.
4. [SQL setup] Vlož 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;
Oček.: 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. V aplikaci vyber majitele Baťa (Úloha → Výběr majitele → IČ 44268050) a otevři Úloha → Rozpouštěcí předpisy.
Data: Majitel = Baťa (IČ 44268050)
Data: Rok = 2026
Oček.: Otevře se formulář 'Rozpouštěcí předpisy'. V tabulce je vidět řádek 'TS S02-03 předpis' (Poř. č. = 1).
6. Vyber řádek 'TS S02-03 předpis' a klikni na tlačítko Detail. Pak vyber 'Stupeň 1 — TS S02-03' a klikni znovu na Detail.
Oček.: 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á. Očekávaný výsledekOtevř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á. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S02-03_RecipeSourceCrud.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S02-03 — CRUD zdrojových účtů ODKUD rozpouštěcího předpisu (E2E).xlsx |
| SC-PREO-002 | EP-PREO-CRUD | RecipeSourceCrud_TS001_CreateSourceAccount_WritesToDb |
Passed | 13,4 s | ▸ Detail kroků (TC_ID: TC-E2E-020)PředpokladyTS-000 proběhlo. Formulář 'Předpis pro rozpouštění ODKUD' je otevřen. Tabulka zdrojových účtů je prázdná. Kroky (Akce / Data / Očekávání)1. Klikni na tlačítko Nový (Ctrl+N).
Oček.: 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
Oček.: 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
Oček.: Pole Poznámka obsahuje zadaný text.
4. Klikni na tlačítko OK / Uložit (Ctrl+S).
Oček.: Formulář se vrátí 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] Volitelně ověř, ž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');
Oček.: Dotaz vrátí 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'. Očekávaný výsledekDotaz vrátí 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'. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S02-03_RecipeSourceCrud.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S02-03 — CRUD zdrojových účtů ODKUD rozpouštěcího předpisu (E2E).xlsx |
| SC-PREO-003 | EP-PREO-CRUD | RecipeSourceCrud_TS002to006_NegativeEditDelete_SingleSession |
Passed | 26,9 s | ▸ Detail kroků (TC_ID: TC-E2E-021)PředpokladyTS-000 proběhlo. Formulář 'Předpis pro rozpouštění ODKUD' je otevřen v režimu nového záznamu. Kroky (Akce / Data / Očekávání)1. Klikni na Nový.
Oček.: 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
Oček.: Pole SU zůstává prázdné, UZ obsahuje hodnotu.
3. Klikni na OK / Uložit.
Oček.: Zobrazí se modální dialog s hláškou doslova 'Není vyplněna položka 'su'.' s tlačítkem OK.
4. Klikni v dialogu na OK.
Oček.: Dialog se zavře. 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. Očekávaný výsledekDialog se zavře. 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. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S02-03_RecipeSourceCrud.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S02-03 — CRUD zdrojových účtů ODKUD rozpouštěcího předpisu (E2E).xlsx |
| SC-PREO-004 | EP-PREO-CRUD | RecipeSourceCrud_TS002to006_NegativeEditDelete_SingleSession |
Passed | 26,9 s | ▸ Detail kroků (TC_ID: TC-E2E-022)PředpokladyTS-001 proběhlo. V tabulce zdrojových účtů existuje řádek (SU=501). Kroky (Akce / Data / Očekávání)1. Klikni na Nový.
Oček.: 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
Oček.: Pole obsahují zadané hodnoty.
3. Klikni na OK / Uložit.
Oček.: Zobrazí se 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.
Oček.: Dialog se zavře. V tabulce zdrojových účtů je stále jen 1 řádek (z TS-001). Žádný duplicitní záznam. Očekávaný výsledekDialog se zavře. V tabulce zdrojových účtů je stále jen 1 řádek (z TS-001). Žádný duplicitní záznam. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S02-03_RecipeSourceCrud.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S02-03 — CRUD zdrojových účtů ODKUD rozpouštěcího předpisu (E2E).xlsx |
| SC-PREO-005 | EP-PREO-CRUD | RecipeSourceCrud_TS002to006_NegativeEditDelete_SingleSession |
Passed | 26,9 s | ▸ Detail kroků (TC_ID: TC-E2E-023)PředpokladyTS-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'. Kroky (Akce / Data / Očekávání)1. V tabulce zdrojových účtů vyber řádek (SU = 501).
Oček.: Řádek je zvýrazněn. V poli Poznámka je viditelný původní text.
2. Klikni na Opravit (Ctrl+O).
Oček.: 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
Oček.: Pole Poznámka obsahuje novou hodnotu 'Editováno v TS-004'.
4. Klikni na OK / Uložit.
Oček.: Formulář se vrátí do režimu prohlížení. V tabulce zdrojových účtů řádek (SU = 501) zobrazuje aktualizovanou poznámku. Očekávaný výsledekFormulář se vrátí do režimu prohlížení. V tabulce zdrojových účtů řádek (SU = 501) zobrazuje aktualizovanou poznámku. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S02-03_RecipeSourceCrud.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S02-03 — CRUD zdrojových účtů ODKUD rozpouštěcího předpisu (E2E).xlsx |
| SC-PREO-006 | EP-PREO-CRUD | RecipeSourceCrud_TS002to006_NegativeEditDelete_SingleSession |
Passed | 26,9 s | ▸ Detail kroků (TC_ID: TC-E2E-024)PředpokladyTS-000 proběhlo. Formulář je otevřen, žádný řádek v tabulce zdrojových účtů zatím není vybrán (např. po cancel editace). Kroky (Akce / Data / Očekávání)1. Klikni na prázdnou oblast pod posledním řádkem v tabulce zdrojových účtů (zruš výběr).
Oček.: Žá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.
Oček.: 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.
Oček.: Dialog se zavře. V tabulce zdrojových účtů nedošlo k žádné změně. Očekávaný výsledekDialog se zavře. V tabulce zdrojových účtů nedošlo k žádné změně. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S02-03_RecipeSourceCrud.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S02-03 — CRUD zdrojových účtů ODKUD rozpouštěcího předpisu (E2E).xlsx |
| SC-PREO-007 | EP-PREO-CRUD | RecipeSourceCrud_TS002to006_NegativeEditDelete_SingleSession |
Passed | 26,9 s | ▸ Detail kroků (TC_ID: TC-E2E-025)PředpokladyTS-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). Kroky (Akce / Data / Očekávání)1. V tabulce zdrojových účtů vyber řádek (SU=501).
Oček.: Řádek je zvýrazněn.
2. Klikni na tlačítko Vymazat (Ctrl+Y).
Oček.: Zobrazí se potvrzovací dialog (nebo 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.
Oček.: Řá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);
Oček.: Oba řádky vrátí 0 — žádný zdrojový účet a žádné sirotčí KAM cíle. Očekávaný výsledekOba řádky vrátí 0 — žádný zdrojový účet a žádné sirotčí KAM cíle. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S02-03_RecipeSourceCrud.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S02-03 — CRUD zdrojových účtů ODKUD rozpouštěcího předpisu (E2E).xlsx |
| SC-PREO-008 | EP-PREO-CRUD | RecipeSourceCrud_TS007_CleanupData |
Passed | 300 ms | ▸ Detail kroků (TC_ID: TC-E2E-026)PředpokladySada proběhla. V DB jsou pomocné řádky: rzp_definice (id_def=9), rzp_pred (id_pred=7), rzp_pred_hla (id_pred_hla=7). Kroky (Akce / Data / Očekávání)1. [SQL cleanup] Smaž 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;
Oček.: 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;
Oček.: Řádky 'def S02-03' a 'pred S02-03' = 0. Řádek 'majitel Bata' = 1. Očekávaný výsledekŘádky 'def S02-03' a 'pred S02-03' = 0. Řádek 'majitel Bata' = 1. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S02-03_RecipeSourceCrud.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S02-03 — CRUD zdrojových účtů ODKUD rozpouštěcího předpisu (E2E).xlsx |
8 / 8 prošlo — TS-RZP-S02-04 — CRUD cílových účtů KAM rozpouštěcího předpisu (E2E).xlsx · JSON spec
| Scénář | Epic | Test method | Status | Čas | Chyba / Detail |
|---|---|---|---|---|---|
| SC-PREK-001 | EP-PREK-CRUD | RecipeTargetCrud_TS000_PrepareData |
Passed | 1,8 s | ▸ Detail kroků (TC_ID: TC-E2E-027)PředpokladyUživatel má přístup k testovací DB a k Haifa aplikaci. Majitel Baťa (IČ 44268050) je založen. Pro rok 2026 zatím neexistují testovací data. Kroky (Akce / Data / Očekávání)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
Oček.: Spojení navázáno.
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;
Oček.: 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: ověř, ž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';
Oček.: Všechny řádky vrátí 0.
4. [SQL setup] Vlož 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). Definiční věta 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;
Oček.: 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. V aplikaci vyber majitele Baťa (Úloha → Výběr majitele → IČ 44268050) a otevři Úloha → Rozpouštěcí předpis. Vyber 'TS S02-04 předpis', klikni Detail. Pak vyber 'Stupeň 1 — TS S02-04' a klikni Detail. Pak vyber 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
Oček.: 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á. Očekávaný výsledekOtevř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á. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S02-04_RecipeTargetCrud.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S02-04 — CRUD cílových účtů KAM rozpouštěcího předpisu (E2E).xlsx |
| SC-PREK-002 | EP-PREK-CRUD | RecipeTargetCrud_TS001_CreateTarget_WritesToDb |
Passed | 15,9 s | ▸ Detail kroků (TC_ID: TC-E2E-028)PředpokladyTS-000 proběhlo. Formulář 'Předpis pro rozpouštění - KAM' je otevřen. Tabulka cílových účtů je prázdná. Kroky (Akce / Data / Očekávání)1. Klikni na tlačítko Nový (Ctrl+N).
Oček.: 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č
Oček.: 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. Klikni na OK / Uložit.
Oček.: Formulář se vrátí 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í. Očekávaný výsledekFormulář se vrátí 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í. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S02-04_RecipeTargetCrud.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S02-04 — CRUD cílových účtů KAM rozpouštěcího předpisu (E2E).xlsx |
| SC-PREK-003 | EP-PREK-CRUD | RecipeTargetCrud_TS002_SecondTarget_RecalculatesCoefficients |
Passed | 15,1 s | ▸ Detail kroků (TC_ID: TC-E2E-029)PředpokladyTS-001 proběhlo. V tabulce cílových účtů existuje 1 řádek (Hodnota = 60, Koeficient = 1,0000). Kroky (Akce / Data / Očekávání)1. Klikni na Nový.
Oček.: 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č
Oček.: 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. Klikni na OK / Uložit.
Oček.: Formulář se vrátí 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. Očekávaný výsledekFormulář se vrátí 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. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S02-04_RecipeTargetCrud.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S02-04 — CRUD cílových účtů KAM rozpouštěcího předpisu (E2E).xlsx |
| SC-PREK-004 | EP-PREK-CRUD | RecipeTargetCrud_TS003_NegativeValidation_ShowsError |
Passed | 11,6 s | ▸ Detail kroků (TC_ID: TC-E2E-030)PředpokladyTS-000 proběhlo. Formulář je otevřen v režimu nového záznamu. Kroky (Akce / Data / Očekávání)1. Klikni na Nový, vyplň dimenzi UZ a zápornou hodnotu.
Data: UZ = 3
Data: Hodnota = -50
Data:
Oček.: Pole Hodnota obsahuje '-50'. Zobrazí se modální dialog s hláškou doslova 'Nesmí být záporná hodnota.' s tlačítkem OK.
2. Klikni na OK.
Oček.: Okno se zavře, pole Hodnota je prázdné.
3. Změň hodnotu na nečíselný řetězec.
Data: Hodnota = abc
Oček.: Pole Hodnota obsahuje 'abc'.
4. Klikni na OK / Uložit.
Oček.: Zobrazí se modální dialog s hláškou doslova 'Hodnota musí být vyplněná nebo různá od nuly.' s tlačítkem OK.
5. Klikni v dialogu na OK. Pak klikni na Zrušit -> Ne.
Oček.: Dialog se zavře. V tabulce cílových účtů nevznikl žádný neplatný záznam. Očekávaný výsledekDialog se zavře. V tabulce cílových účtů nevznikl žádný neplatný záznam. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S02-04_RecipeTargetCrud.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S02-04 — CRUD cílových účtů KAM rozpouštěcího předpisu (E2E).xlsx |
| SC-PREK-005 | EP-PREK-CRUD | RecipeTargetCrud_TS004_DuplicateTarget_Rejected |
Passed | 11,1 s | ▸ Detail kroků (TC_ID: TC-E2E-031)PředpokladyTS-001 proběhlo. V tabulce cílových účtů existuje 1 řádek. Kroky (Akce / Data / Očekávání)1. Klikni na 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č
Oček.: Pole obsahují zadané hodnoty; kombinace dimenzí (UZ = 1) je identická s existujícím cílovým účtem z TS-001.
2. Klikni na OK / Uložit.
Oček.: Zobrazí se 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.
Oček.: Dialog se zavře. Očekávaný výsledekDialog se zavře. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S02-04_RecipeTargetCrud.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S02-04 — CRUD cílových účtů KAM rozpouštěcího předpisu (E2E).xlsx |
| SC-PREK-006 | EP-PREK-CRUD | RecipeTargetCrud_TS005_RecalcByKoeficientButton |
Passed | 9,8 s | ▸ Detail kroků (TC_ID: TC-E2E-032)PředpokladyTS-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'. Kroky (Akce / Data / Očekávání)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;
Oček.: UPDATE proběhne (1 řádek).
2. V aplikaci znovu otevři formulář 'Předpis pro rozpouštění - KAM'.
Oček.: Formulář se otevře. V tabulce cílových účtů je název pole Chybný koeficient zobrazen červeně. Hodnota je 1,100000000000
3. Klikni na tlačítko Přepočti koeficient.
Oček.: Aplikace přepočítá koeficienty. Vypočítaný koeficient je nyní = 1,000000000000. Tlačítko Přepočti koeficient se skryje. Očekávaný výsledekAplikace přepočítá koeficienty. Vypočítaný koeficient je nyní = 1,000000000000. Tlačítko Přepočti koeficient se skryje. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S02-04_RecipeTargetCrud.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S02-04 — CRUD cílových účtů KAM rozpouštěcího předpisu (E2E).xlsx |
| SC-PREK-007 | EP-PREK-CRUD | RecipeTargetCrud_TS006_DeleteTarget |
Passed | 11,5 s | ▸ Detail kroků (TC_ID: TC-E2E-033)PředpokladyV tabulce cílových účtů jsou 2 řádky. Kroky (Akce / Data / Očekávání)1. V tabulce cílových účtů vyber řádek (Hodnota = 40).
Oček.: Řádek je zvýrazněn.
2. Klikni na Vymazat (Ctrl+Y).
Oček.: Zobrazí se 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. Klikni na Ano.
Oček.: Řá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í). Očekávaný výsledekŘá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í). Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S02-04_RecipeTargetCrud.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S02-04 — CRUD cílových účtů KAM rozpouštěcího předpisu (E2E).xlsx |
| SC-PREK-008 | EP-PREK-CRUD | RecipeTargetCrud_TS007_CleanupData |
Passed | 373 ms | ▸ Detail kroků (TC_ID: TC-E2E-034)PředpokladySada proběhla. V DB jsou pomocné řádky všech 5 úrovní stromu. Kroky (Akce / Data / Očekávání)1. [SQL cleanup] Smaž 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;
Oček.: 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;
Oček.: Řádky 'def S02-04' a 'pred S02-04' = 0. Řádek 'majitel Bata' = 1. Očekávaný výsledekŘádky 'def S02-04' a 'pred S02-04' = 0. Řádek 'majitel Bata' = 1. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S02-04_RecipeTargetCrud.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S02-04 — CRUD cílových účtů KAM rozpouštěcího předpisu (E2E).xlsx |
6 / 6 prošlo — TS-RZP-S02-05 — Kopie rozpouštěcího předpisu (E2E robustní).xlsx · JSON spec
| Scénář | Epic | Test method | Status | Čas | Chyba / Detail |
|---|---|---|---|---|---|
| SC-PREP-001 | EP-PREP-COPY | RecipeCopy_TS000_PrepareData |
Passed | 1,0 s | ▸ Detail kroků (TC_ID: TC-E2E-035)PředpokladyUživatel má přístup k testovací DB a k Haifa aplikaci. Majitel Baťa (IČ 44268050) je založen. Pro rok 2026 zatím neexistují testovací data. Kroky (Akce / Data / Očekávání)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
Oček.: Spojení navázáno.
2. [SQL setup] Pre-flight: ověř, ž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';
Oček.: Oba řádky vrátí 0.
3. [SQL setup] Vlož 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');
Oček.: Všechny INSERTy proběhnou (celkem 4 řádky).
4. V aplikaci vyber majitele Baťa a otevři Úloha → Rozpouštěcí předpisy.
Data: Majitel = Baťa (IČ 44268050)
Data: Rok = 2026
Oček.: 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). Očekávaný výsledekOtevře se formulář 'Rozpouštěcí předpisy'. V tabulce je vidět řádek 'TS S02-05 zdroj' (Poř. č. = 1, Počet stupňů = 1). Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S02-05_RecipeCopy.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S02-05 — Kopie rozpouštěcího předpisu (E2E robustní).xlsx |
| SC-PREP-002 | EP-PREP-COPY | RecipeCopy_TS001_CopyCreatesNewRecipe_WritesToDb |
Passed | 7,2 s | ▸ Detail kroků (TC_ID: TC-E2E-036)PředpokladyTS-000 proběhlo. Formulář 'Rozpouštěcí předpisy' je otevřen, v tabulce je řádek 'TS S02-05 zdroj'. Kroky (Akce / Data / Očekávání)1. V tabulce předpisů vyber řádek 'TS S02-05 zdroj'.
Oček.: Řádek je zvýrazněn.
2. Klikni v menu na Úlohy → Kopie aktuálního předpisu (mnuCopyPredis).
Oček.: 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í. Očekávaný výsledekOtevř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í. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S02-05_RecipeCopy.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S02-05 — Kopie rozpouštěcího předpisu (E2E robustní).xlsx |
| SC-PREP-003 | EP-PREP-COPY | RecipeCopy_TS001_CopyCreatesNewRecipe_WritesToDb |
Passed | 7,2 s | ▸ Detail kroků (TC_ID: TC-E2E-037)PředpokladyTS-001 proběhlo. Dialog 'Kopie rozpouštěcího předpisu' je otevřen pro zdrojový předpis 'TS S02-05 zdroj'. Kroky (Akce / Data / Očekávání)1. Vyplň pole Název nového předpisu.
Data: Název nového předpisu = TS S02-05 kopie
Oček.: Pole obsahuje 'TS S02-05 kopie'. Poř. číslo zůstává předvyplněné ('002' nebo 2).
2. Klikni na tlačítko Uložit.
Oček.: Dialog se zavře (nebo 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 nebo 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';
Oček.: 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. Očekávaný výsledekhlavicky = 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. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S02-05_RecipeCopy.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S02-05 — Kopie rozpouštěcího předpisu (E2E robustní).xlsx |
| SC-PREP-004 | EP-PREP-COPY | RecipeCopy_TS003_EmptyName_Rejected |
Passed | 5,3 s | ▸ Detail kroků (TC_ID: TC-E2E-038)PředpokladyTS-000 proběhlo. Dialog 'Kopie rozpouštěcího předpisu' je otevřen. Kroky (Akce / Data / Očekávání)1. V dialogu nech pole Název nového předpisu prázdné.
Data: Název nového předpisu = (prázdné)
Oček.: Pole Název je prázdné. Pole Poř. číslo má předvyplněnou hodnotu.
2. Klikni na tlačítko Uložit.
Oček.: Zobrazí se 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.
Oček.: Dialog se zavře. 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. Očekávaný výsledekDialog se zavře. 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. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S02-05_RecipeCopy.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S02-05 — Kopie rozpouštěcího předpisu (E2E robustní).xlsx |
| SC-PREP-005 | EP-PREP-COPY | RecipeCopy_TS004_CancelCopy_NoNewRecipe |
Passed | 4,5 s | ▸ Detail kroků (TC_ID: TC-E2E-039)PředpokladyTS-001 proběhlo. Dialog 'Kopie rozpouštěcího předpisu' je otevřen, v poli Název je nějaký text. Kroky (Akce / Data / Očekávání)1. V dialogu vyplň název.
Data: Název nového předpisu = TS S02-05 zrušeno
Oček.: Pole Název obsahuje 'TS S02-05 zrušeno'.
2. Klikni na tlačítko Zrušit.
Oček.: Dialog se zavře (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'. Očekávaný výsledekDialog se zavře (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'. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S02-05_RecipeCopy.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S02-05 — Kopie rozpouštěcího předpisu (E2E robustní).xlsx |
| SC-PREP-006 | EP-PREP-COPY | RecipeCopy_TS005_CleanupData |
Passed | 500 ms | ▸ Detail kroků (TC_ID: TC-E2E-040)PředpokladySada proběhla. V DB jsou pomocné řádky: zdrojový předpis 'TS S02-05 zdroj' a (pokud TS-002 prošlo) kopie 'TS S02-05 kopie'. Kroky (Akce / Data / Očekávání)1. [SQL cleanup] Smaž 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;
Oček.: 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;
Oček.: Řádky 'def S02-05' a 'pred S02-05' = 0. Řádek 'majitel Bata' = 1. Očekávaný výsledekŘádky 'def S02-05' a 'pred S02-05' = 0. Řádek 'majitel Bata' = 1. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S02-05_RecipeCopy.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S02-05 — Kopie rozpouštěcího předpisu (E2E robustní).xlsx |
8 / 8 prošlo — TS-RZP-S03-01 — Import dat z účetnictví za období (E2E).xlsx · JSON spec
| Scénář | Epic | Test method | Status | Čas | Chyba / Detail |
|---|---|---|---|---|---|
| SC-PRIC-001 | EP-PRIC-IMP | ImportData_TS000 |
Passed | 800 ms | ▸ Detail kroků (TC_ID: TC-E2E-041)PředpokladyUž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á). Kroky (Akce / Data / Očekávání)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
Oček.: Spojení navázáno.
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;
Oček.: 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: ověř 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';
Oček.: majitel Bata = 1, ostatní řádky = 0 (žádné zbytky).
4. [SQL setup] Vlož 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;
Oček.: 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;
Oček.: 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. V aplikaci vyber majitele Baťa (Úloha → Výběr majitele → IČ 44268050) a otevři Úloha → Příjem dat z účetnictví.
Data: Majitel = Baťa (IČ 44268050)
Data: Rok = 2026
Oček.: 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. Očekávaný výsledekOtevř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. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S03-01_ImportData.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S03-01 — Import dat z účetnictví za období (E2E).xlsx |
| SC-PRIC-002 | EP-PRIC-IMP | ImportData_TS001 |
Passed | 24,1 s | ▸ Detail kroků (TC_ID: TC-E2E-042)PředpokladyTS-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). Kroky (Akce / Data / Očekávání)1. V ComboBoxu výběru definice vyber 'TS S03-01 definice'.
Data: Definice = TS S03-01 definice
Oček.: ComboBox zobrazí vybranou definici.
2. Klikni na tlačítko Příjem.
Oček.: 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)
Oček.: ComboBox zobrazí konečné období 01.
4. Klikni na tlačítko OK.
Oček.: Spustí se progress indikátor. Zobrazí se 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.
Oček.: Dialog se zavře. Formulář se vrátí na 'Seznam přijatých účetních dat za období'. V tabulce je nový řádek: Č. období = 01, Účetní období = Uzavřené. Očekávaný výsledekDialog se zavře. Formulář se vrátí na 'Seznam přijatých účetních dat za období'. V tabulce je nový řádek: Č. období = 01, Účetní období = Uzavřené. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S03-01_ImportData.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S03-01 — Import dat z účetnictví za období (E2E).xlsx |
| SC-PRIC-003 | EP-PRIC-IMP | ImportData_TS002 |
Passed | 3,9 s | ▸ Detail kroků (TC_ID: TC-E2E-043)PředpokladyTS-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. Kroky (Akce / Data / Očekávání)1. V tabulce přijatých dat vyber řádek pro období 01 (Účetní období = Uzavřené).
Data: Definice = TS S03-01 definice
Data: Období = 01
Oček.: Řádek je zvýrazněn, sloupec Účetní období zobrazuje „Uzavřené“.
2. Zkontroluj stav tlačítka Kontrola.
Oček.: Tlačítko Kontrola je ZAŠEDLÉ (nelze na něj kliknout). Očekávaný výsledekTlačítko Kontrola je ZAŠEDLÉ (nelze na něj kliknout). Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S03-01_ImportData.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S03-01 — Import dat z účetnictví za období (E2E).xlsx |
| SC-PRIC-004 | EP-PRIC-IMP | ImportData_TS003 |
Passed | 21,3 s | ▸ Detail kroků (TC_ID: TC-E2E-044)PředpokladyTS-001 proběhlo (existuje řádek 01 = Uzavřené). Účetní období 02 je účetně otevřené (02 ≥ obd_uc=2). Kroky (Akce / Data / Očekávání)1. Na seznamu s vybranou definicí klikni na Příjem.
Data: Definice = TS S03-01 definice
Oček.: Otevře se 'Příjem dat z účetnictví'.
2. Nastav konečné období = 02 a klikni na OK.
Data: Období = 02 (únor 2026)
Oček.: Spustí se progress indikátor. Zobrazí se hláška „Příjem účetních dat proběhl v pořádku.“
3. Klikni v hlášce na OK.
Oček.: Dialog se zavře, 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é. Očekávaný výsledekDialog se zavře, 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é. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S03-01_ImportData.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S03-01 — Import dat z účetnictví za období (E2E).xlsx |
| SC-PRIC-005 | EP-PRIC-IMP | ImportData_TS004 |
Passed | 9,2 s | ▸ Detail kroků (TC_ID: TC-E2E-045)PředpokladyV gridu je období 02 se sloupcem Účetní období = Neuzavřené (N). Účetní období 02 je stále účetně otevřené (obd_uc=2). Kroky (Akce / Data / Očekávání)1. V tabulce vyber řádek — období 02 (Účetní období = Neuzavřené).
Data: Období = 02
Oček.: Řádek je zvýrazněn.
2. Zkontroluj stav tlačítka Kontrola.
Oček.: Tlačítko Kontrola je AKTIVNÍ (lze na něj kliknout).
3. Klikni na tlačítko Kontrola.
Oček.: 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.
Oček.: Dialog se zavře (řádek 02 zůstává Neuzavřené (N)). V tabulce přijatých dat se nic nezměnilo. Očekávaný výsledekDialog se zavře (řádek 02 zůstává Neuzavřené (N)). V tabulce přijatých dat se nic nezměnilo. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S03-01_ImportData.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S03-01 — Import dat z účetnictví za období (E2E).xlsx |
| SC-PRIC-006 | EP-PRIC-IMP | ImportData_TS005 |
Passed | 31,9 s | ▸ Detail kroků (TC_ID: TC-E2E-046)PředpokladyV 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é). Kroky (Akce / Data / Očekávání)1. Klikni na Vymazat.
Oček.: Zobrazí se potvrzovací dialog doslova: „Chcete opravdu vymazat data za období 2?“ s tlačítky Ano / Ne. (Maže se nejvyšší období = 02.)
2. Klikni na Ano.
Oček.: Řádek pro období 02 zmizí z tabulky.
3. Klikni znovu na tlačítko Vymazat.
Oček.: Zobrazí se dialog „Chcete opravdu vymazat data za období 1?“ s tlačítky Ano / Ne.
4. Klikni na Ano.
Oček.: Řá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);
Oček.: Oba řádky vrátí 0. Očekávaný výsledekOba řádky vrátí 0. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S03-01_ImportData.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S03-01 — Import dat z účetnictví za období (E2E).xlsx |
| SC-PRIC-007 | EP-PRIC-IMP | ImportData_TS006 |
Passed | 200 ms | ▸ Detail kroků (TC_ID: TC-E2E-047)PředpokladyTS-005 proběhlo. V tabulce přijatých dat už není žádný řádek pro 'TS S03-01 definice'. Kroky (Akce / Data / Očekávání)1. [SQL cleanup] Pre-flight: ověř, ž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');
Oček.: Oba dotazy vrátí 0.
2. [SQL cleanup] Smaž 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;
Oček.: 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;
Oček.: Řádky 'detail S03-01' a 'def S03-01' = 0. Řádek 'majitel Bata zachovan' = 1. Očekávaný výsledekŘádky 'detail S03-01' a 'def S03-01' = 0. Řádek 'majitel Bata zachovan' = 1. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S03-01_ImportData.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S03-01 — Import dat z účetnictví za období (E2E).xlsx |
| RZP3-PRIC-TS001 | EP-PRIC-IMP | Import_Period01_WritesHeaderToDb |
Passed | 28,4 s |
8 / 8 prošlo — TS-RZP-S03-02 — Rozpouštění naimportovaných dat (E2E).xlsx · JSON spec
| Scénář | Epic | Test method | Status | Čas | Chyba / Detail |
|---|---|---|---|---|---|
| SC-PRID-001 | EP-PRID-RUN | DistributionRun_TS000 |
Passed | 837 ms | ▸ Detail kroků (TC_ID: TC-E2E-048)PředpokladyUž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. Kroky (Akce / Data / Očekávání)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
Oček.: Spojení navázáno.
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;
Oček.: 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: ověř, ž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';
Oček.: Všechny řádky = 0.
4. [SQL setup] Vlož 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;
Oček.: 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ě. Vloží 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;
Oček.: Vznikne (nebo se znovu použije) hlavička rzp_rozp. Dotaz vrátí pocet_stupen0 = 1.
6. [SQL audit] Volitelně ověř, ž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;
Oček.: Dotaz vrátí 1 řádek: obdobi=1, uzaverka='A', pocet_radku_stupen0 >= 1. Očekávaný výsledekDotaz vrátí 1 řádek: obdobi=1, uzaverka='A', pocet_radku_stupen0 >= 1. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S03-02_DistributionRun.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S03-02 — Rozpouštění naimportovaných dat (E2E).xlsx |
| SC-PRID-002 | EP-PRID-RUN | DistributionRun_TS001 |
Passed | 10,4 s | ▸ Detail kroků (TC_ID: TC-E2E-049)PředpokladyTS-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). Kroky (Akce / Data / Očekávání)1. Otevři menu Úloha → Rozpouštění.
Oček.: 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. Klikni na tlačítko Rozpouštění.
Oček.: Zobrazí se 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.)
Oček.: Pole obsahují zadané hodnoty.
4. Klikni na OK (cmdKonec).
Oček.: Zobrazí se dotaz 'Chcete provádět rozpouštění?' (Ano/Ne).
5. Klikni na Ano.
Oček.: Spustí se progress indikátor. Zobrazí se okno s hláškou „Rozpouštění proběhlo v pořádku.“
6. Klikni v dialogu na OK.
Oček.: Dialog se zavře. 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] Volitelně ověř, ž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;
Oček.: Dotaz vrátí 2 řádky: stupen='0' (původní importovaná data) a stupen='1' (nově rozpuštěná, pocet >= 1). Očekávaný výsledekDotaz vrátí 2 řádky: stupen='0' (původní importovaná data) a stupen='1' (nově rozpuštěná, pocet >= 1). Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S03-02_DistributionRun.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S03-02 — Rozpouštění naimportovaných dat (E2E).xlsx |
| SC-PRID-003 | EP-PRID-RUN | DistributionRun_TS002 |
Passed | 10,5 s | ▸ Detail kroků (TC_ID: TC-E2E-050)PředpokladyTS-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). Kroky (Akce / Data / Očekávání)1. Klikni na Zrušit a znovu spusť rozpouštění (Úloha → Rozpouštění). Je zobrazen předpis 'TS S03-02 předpis'.
Oček.: Otevře se formulář 'Seznam provedených rozpouštění, za aktuální rok'.
2. Klikni na tlačítko Rozpouštění.
Oček.: Zobrazí se 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
Oček.: Pole obsahují zadané hodnoty.
4. Klikni na OK (cmdKonec).
Oček.: Zobrazí se dotaz 'Chcete provádět rozpouštění?' (Ano/Ne).
5. Klikni na Ano.
Oček.: Spustí se progress indikátor. Zobrazí se okno s hláškou „Rozpouštění proběhlo v pořádku.“
6. Klikni v dialogu na OK.
Oček.: Dialog se zavře. 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] Volitelně ověř 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;
Oček.: Dotaz vrátí 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í). Očekávaný výsledekDotaz vrátí 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í). Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S03-02_DistributionRun.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S03-02 — Rozpouštění naimportovaných dat (E2E).xlsx |
| SC-PRID-004 | EP-PRID-RUN | DistributionRun_TS003 |
Passed | 8,1 s | ▸ Detail kroků (TC_ID: TC-E2E-051)PředpokladyTS-000 proběhlo. Pro 'TS S03-02 definice' a Období 02 (únor) nejsou žádná naimportovaná data. Kroky (Akce / Data / Očekávání)1. Otevři Ú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
Oček.: 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
Oček.: Pole obsahují zadané hodnoty.
3. Klikni na OK.
Oček.: Zobrazí se dotaz 'Chcete provádět rozpouštění?' (Ano/Ne).
4. Klikni na Ano.
Oček.: Spustí se progress indikátor. Zobrazí se modální dialog s hláškou doslova 'Pro období '2' nejsou přijatá data.' s tlačítkem OK.
5. Klikni v dialogu na OK.
Oček.: Dialog se zavře 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. Očekávaný výsledekDialog se zavře 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. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S03-02_DistributionRun.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S03-02 — Rozpouštění naimportovaných dat (E2E).xlsx |
| SC-PRID-005 | EP-PRID-RUN | DistributionRun_TS004 |
Passed | 8,1 s | ▸ Detail kroků (TC_ID: TC-E2E-052)PředpokladyTS-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). Kroky (Akce / Data / Očekávání)1. Otevři Úloha → Rozpouštění.
Data: Předpis = TS S03-02 předpis
Oček.: Otevře se formulář 'Seznam provedených rozpouštění, za aktuální rok'.
2. Klikni na tlačítko Rozpouštění pro řádek (Období 1, Stupeň 2).
Oček.: Zobrazí se 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)
Oček.: Zobrazí se modální okno s hláškou doslova „Konečné období nemůže být menší než je počáteční období.“
4. Klikni na OK.
Oček.: Dialog se zavře.
5. [SQL audit] Volitelně ověř, ž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;
Oček.: Dotaz vrátí stupně 0, 1 a 2; počet řádků se oproti stavu po TS-002 nezměnil (žádný duplicitní záznam). Očekávaný výsledekDotaz vrátí stupně 0, 1 a 2; počet řádků se oproti stavu po TS-002 nezměnil (žádný duplicitní záznam). Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S03-02_DistributionRun.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S03-02 — Rozpouštění naimportovaných dat (E2E).xlsx |
| SC-PRID-006 | EP-PRID-RUN | DistributionRun_TS005 |
Passed | 8,9 s | ▸ Detail kroků (TC_ID: TC-E2E-053)PředpokladyTS-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). Kroky (Akce / Data / Očekávání)1. Otevři Úloha → Rozpouštění.
Data: Předpis = TS S03-02 předpis
Data: Vybraný řádek = poslední (Stupeň 2)
Oček.: Otevře se formulář 'Seznam provedených rozpouštění, za aktuální rok'.
2. Pro předpis 'TS S03-02 předpis' vyber poslední řádek (Stupeň 2) a klikni na Vymazat.
Oček.: Zobrazí se potvrzovací dialog 'Chcete provést vymazání rozpouštěcího stupně?' s tlačítky Ano / Ne.
3. Klikni na Ano.
Oček.: Dialog se zavře. Řá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] Volitelně ověř, ž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;
Oček.: Dotaz vrátí pouze stupně '0' a '1' (žádný stupen='2'). Očekávaný výsledekDotaz vrátí pouze stupně '0' a '1' (žádný stupen='2'). Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S03-02_DistributionRun.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S03-02 — Rozpouštění naimportovaných dat (E2E).xlsx |
| SC-PRID-007 | EP-PRID-RUN | DistributionRun_TS006 |
Ručně ✓ | manuál | RUČNĚ OVĚŘENO — iva.holeckova, 2026-06-22. Důvod ne-automatizace: Destruktivní — kill procesu Fenix.RZP.WinForms.exe uprostřed transakce zničí sdílenou E2E session. Postup/důkaz: QA sign-off uživatele (iva.holeckova) — ruční provedení dle manual-test-procedures.md #2. ▸ Detail kroků (TC_ID: TC-E2E-054)PředpokladyTS-005 proběhlo. V DB jsou pro 'TS S03-02 definice' / Období 01 pouze stupně 0 a 1. Kroky (Akce / Data / Očekávání)1. Najdi PID procesu Fenix.RZP.WinForms.exe v Task Manageru. Poznamenej si jeho PID.
Oček.: 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
Oček.: Spustí se progress indikátor.
3. Do 200 ms po kliknutí ukonči proces aplikace (Task Manager → Ukončit úlohu nebo `Stop-Process -Id <PID> -Force`).
Oček.: Proces je ukončen. Žádný dialog se nezobrazí.
4. Počkej 5 sekund, spusť aplikaci znovu a otevři Úloha → Rozpouštění → 'TS S03-02 předpis' → Seznam provedených rozpouštění.
Oček.: 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'));
Oček.: rozp_det stupen 2 = 0 (žádný částečný stupeň), zombie sessions = 0. Očekávaný výsledekrozp_det stupen 2 = 0 (žádný částečný stupeň), zombie sessions = 0. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S03-02_DistributionRun.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S03-02 — Rozpouštění naimportovaných dat (E2E).xlsx |
| SC-PRID-008 | EP-PRID-RUN | DistributionRun_TS007 |
Passed | 743 ms | ▸ Detail kroků (TC_ID: TC-E2E-055)PředpokladySada proběhla. V DB jsou pomocné řádky (definice, předpis, stupně, dimenze, import, detaily). Kroky (Akce / Data / Očekávání)1. [SQL cleanup] Smaž 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;
Oček.: 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;
Oček.: Řádky 'def S03-02', 'pred S03-02' a 'rozp S03-02' = 0. Řádek 'majitel Bata' = 1. Očekávaný výsledekŘádky 'def S03-02', 'pred S03-02' a 'rozp S03-02' = 0. Řádek 'majitel Bata' = 1. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S03-02_DistributionRun.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S03-02 — Rozpouštění naimportovaných dat (E2E).xlsx |
11 / 11 prošlo — TS-RZP-S04-01 — Tisk sestavy 21a – Přehled přímých nákladů a výnosů ke konci období (E2E).xlsx · JSON spec
| Scénář | Epic | Test method | Status | Čas | Chyba / Detail |
|---|---|---|---|---|---|
| SC-TISK21A-001 | EP-TISK21A-RPT | PrintDirectNVOverview_TS000 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-056)PředpokladyUživatel má přístup k testovací DB (SQL klient) i k aplikaci Haifa. Majitel Baťa (IČ 44268050) je založen a má licenci RZP. V hlavním účetnictví je období 2026/01 uzavřené a obsahuje data. Kroky (Akce / Data / Očekávání)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
Oček.: Spojení navázáno.
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';
Oček.: Oba řádky = 0. Pokud nejsou, dokonči nejdřív úklidový scénář TS-010.
3. [SQL setup] Uvolni 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';
Oček.: DELETE proběhnou bez chyby (při čistém prostředí smažou 0 řádků).
4. [SQL setup] Vlož 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;
Oček.: INSERT proběhne (1 řádek). SELECT vrátí použité id_def (jen pro orientaci).
5. V aplikaci vyber majitele Baťa (IČ 44268050), nastav rok 2026 a otevři Úloha → Příjem dat z účetnictví. Vyber definici 'TS S04-01 definice', klikni Detail, vyber Období = 01 (leden 2026) a spusť Příjem (postup viz TS-RZP-S03-01 TS-001).
Data: Majitel = Baťa (IČ 44268050)
Data: Rok = 2026
Data: Definice = TS S04-01 definice
Data: Období = 01 (leden 2026)
Oček.: 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');
Oček.: 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;
Oček.: Dotaz vrátí 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. Očekávaný výsledekDotaz vrátí 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. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-01_PrintDirectNVOverview.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-01 — Tisk sestavy 21a – Přehled přímých nákladů a výnosů ke konci období (E2E).xlsx |
|
| SC-TISK21A-002 | EP-TISK21A-RPT | PrintDirectNVOverview_TS001 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-057)PředpokladyTS-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). Kroky (Akce / Data / Očekávání)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).
Oček.: Menu Přehledy je povolené a obsahuje 5 skupin (21, 22, 23, 24, 29) s celkem 13 položkami.
2. Klikni na Přehledy → 21 → '21a - Přehled přímých N/V ke konci období'.
Data: VariantTag = 21a
Oček.: 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.
Oček.: 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.
Oček.: 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. Očekávaný výsledekPř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. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-01_PrintDirectNVOverview.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-01 — Tisk sestavy 21a – Přehled přímých nákladů a výnosů ke konci období (E2E).xlsx |
|
| SC-TISK21A-003 | EP-TISK21A-RPT | PrintDirectNVOverview_TS002 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-058)PředpokladyFormulář Tisk sestavy (21a) je otevřen. Kroky (Akce / Data / Očekávání)1. V menu formuláře otevři Nastavení → 'Počet řádků na stránce' (legacy menradky).
Oček.: Otevře se modální dialog s titulkem doslova 'Nastavení sestav'. Uvnitř je rámeček 'Sestava'.
2. Zkontroluj popisky a rozložení dialogu.
Oček.: 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.
Oček.: Ú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. Klikni na Zrušit (nebo stiskni Esc).
Oček.: Dialog se zavře bez uložení (žádná změna nastavení). Vrátíš se do formuláře Tisk sestavy. Očekávaný výsledekDialog se zavře bez uložení (žádná změna nastavení). Vrátíš se do formuláře Tisk sestavy. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-01_PrintDirectNVOverview.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-01 — Tisk sestavy 21a – Přehled přímých nákladů a výnosů ke konci období (E2E).xlsx |
|
| SC-TISK21A-004 | EP-TISK21A-RPT | PrintDirectNVOverview_TS003 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-059)PředpokladyFormulář Tisk sestavy (21a) je otevřen, dialog Nastavení sestav je dostupný. Kroky (Akce / Data / Očekávání)1. Otevři 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é)
Oček.: Zobrazí se 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
Oček.: Zobrazí se 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
Oček.: Zobrazí se 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
Oček.: 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. Klikni na Zrušit.
Oček.: Dialog se zavře bez uložení. Změny ořízlé na obrazovce se NEpersistují (Zrušit = bez zápisu). Očekávaný výsledekDialog se zavře bez uložení. Změny ořízlé na obrazovce se NEpersistují (Zrušit = bez zápisu). Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-01_PrintDirectNVOverview.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-01 — Tisk sestavy 21a – Přehled přímých nákladů a výnosů ke konci období (E2E).xlsx |
|
| SC-TISK21A-005 | EP-TISK21A-RPT | PrintDirectNVOverview_TS004 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-060)PředpokladyAplikace běží, majitel Baťa je vybrán. K dispozici je alespoň jedna nainstalovaná tiskárna ve Windows. Kroky (Akce / Data / Očekávání)1. Otevři Úloha → Nákladové a výnosové účty. V menu formuláře otevři Nastavení → 'Nastavení tiskárny'.
Oček.: 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).
Oček.: 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
Oček.: Dialog se zavře s OK. Volba se předá tiskové vrstvě (nasdílí se do následného tisku sestavy).
4. Znovu otevři 'Nastavení tiskárny' a ověř, že předchozí volba zůstala.
Oček.: Dialog se otevře se zapamatovanou orientací 'Na šířku' (nastavení je perzistentní v rámci session). Očekávaný výsledekDialog se otevře se zapamatovanou orientací 'Na šířku' (nastavení je perzistentní v rámci session). Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-01_PrintDirectNVOverview.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-01 — Tisk sestavy 21a – Přehled přímých nákladů a výnosů ke konci období (E2E).xlsx |
|
| SC-TISK21A-006 | EP-TISK21A-RPT | PrintDirectNVOverview_TS005 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-061)PředpokladyTS-000 proběhlo (existují přímá data za období 01). Formulář Tisk sestavy (21a) je otevřen. Kroky (Akce / Data / Očekávání)1. Ve formuláři Tisk sestavy 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
Oček.: Otevře se modální okno 'Tisk sestavy' 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).
Oček.: 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.
Oček.: 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č)' nebo '(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.
Oček.: Okno náhledu se zavře, vrátíš se do formuláře Tisk sestavy, který zůstává otevřený (legacy: po náhledu se formulář nezavírá). Očekávaný výsledekOkno náhledu se zavře, vrátíš se do formuláře Tisk sestavy, který zůstává otevřený (legacy: po náhledu se formulář nezavírá). Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-01_PrintDirectNVOverview.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-01 — Tisk sestavy 21a – Přehled přímých nákladů a výnosů ke konci období (E2E).xlsx |
|
| SC-TISK21A-007 | EP-TISK21A-RPT | PrintDirectNVOverview_TS006 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-062)PředpokladyNáhled sestavy 21a z TS-005 lze znovu otevřít (data za období 01 existují). Kroky (Akce / Data / Očekávání)1. Otevři náhled sestavy 21a (jako v TS-005) a přejdi na poslední/první stránku tak, abys viděl zápatí.
Oček.: Zápatí je viditelné na každé straně.
2. Zkontroluj formát čísla strany v zápatí proti Golden Master.
Oček.: Číslo strany je ve formátu shodném s VB6 (např. 'Strana X' nebo '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.
Oček.: 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ě.
Oček.: 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í. Očekávaný výsledekNa všech stranách je shodné záhlaví i zápatí (opakování dle Crystal sekcí Page Header / Page Footer), 1:1 s referencí. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-01_PrintDirectNVOverview.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-01 — Tisk sestavy 21a – Přehled přímých nákladů a výnosů ke konci období (E2E).xlsx |
|
| SC-TISK21A-008 | EP-TISK21A-RPT | PrintDirectNVOverview_TS007 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-063)PředpokladyTS-004 (nastavení tiskárny) a TS-005 (náhled) proběhly. Je k dispozici tiskárna nebo PDF tiskárna (např. Microsoft Print to PDF). Kroky (Akce / Data / Očekávání)1. V okně 'Tisk sestavy' vyber 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í)
Oček.: Tisk proběhne bez chyby. Při tisku do PDF vznikne soubor. Po dokončení okno zůstává otevřené, formulář Tisk sestavy 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
Oček.: 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.
Oček.: Výstup respektuje zvolenou orientaci z dialogu Nastavení tiskárny (na šířku), shodně s legacy chováním. Očekávaný výsledekVýstup respektuje zvolenou orientaci z dialogu Nastavení tiskárny (na šířku), shodně s legacy chováním. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-01_PrintDirectNVOverview.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-01 — Tisk sestavy 21a – Přehled přímých nákladů a výnosů ke konci období (E2E).xlsx |
|
| SC-TISK21A-009 | EP-TISK21A-RPT | PrintDirectNVOverview_TS008 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-064)PředpokladyTS-000 proběhlo (existují přímá data za období 01). Formulář Tisk sestavy (21a) je otevřen. Kroky (Akce / Data / Očekávání)1. Ve formuláři Tisk sestavy 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
Oček.: 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.
Oček.: 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.
Oček.: 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
Oček.: Zobrazí se informační hláška o tom, že nejsou data (NoData) a žádný CSV se nevytvoří. Formulář zůstává otevřený. Očekávaný výsledekZobrazí se informační hláška o tom, že nejsou data (NoData) a žádný CSV se nevytvoří. Formulář zůstává otevřený. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-01_PrintDirectNVOverview.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-01 — Tisk sestavy 21a – Přehled přímých nákladů a výnosů ke konci období (E2E).xlsx |
|
| SC-TISK21A-010 | EP-TISK21A-RPT | PrintDirectNVOverview_TS009 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-065)PředpokladyFormulář Tisk sestavy (21a) je otevřen. Kroky (Akce / Data / Očekávání)1. Vymaž pole Název sestavy a klikni OK.
Data: Název sestavy = (prázdné)
Oček.: Zobrazí se 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é)
Oček.: Zobrazí se 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é)
Oček.: Zobrazí se 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
Oček.: Zobrazí se 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í. Očekávaný výsledekZobrazí se 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í. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-01_PrintDirectNVOverview.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-01 — Tisk sestavy 21a – Přehled přímých nákladů a výnosů ke konci období (E2E).xlsx |
|
| SC-TISK21A-011 | EP-TISK21A-RPT | PrintDirectNVOverview_TS010 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-066)PředpokladyFormulář Tisk sestavy (21a) je otevřen, vyplněný název sestavy. Kroky (Akce / Data / Očekávání)1. Vyplň Období od = 5 a Období do = 0 a klikni OK.
Data: Období od = 5
Data: Období do = 0
Oček.: 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.
Oček.: Dialog se zavře, formulář zůstává otevřený v režimu zadávání, tisk se nespustí. Očekávaný výsledekDialog se zavře, formulář zůstává otevřený v režimu zadávání, tisk se nespustí. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-01_PrintDirectNVOverview.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-01 — Tisk sestavy 21a – Přehled přímých nákladů a výnosů ke konci období (E2E).xlsx |
6 / 6 prošlo — TS-RZP-S04-02 — Tisk sestavy 21b – Přehled po rozpouštění nákladů a výnosů ke konci období (E2E).xlsx · JSON spec
| Scénář | Epic | Test method | Status | Čas | Chyba / Detail |
|---|---|---|---|---|---|
| SC-TISK21B-001 | EP-TISK21B-RPT | PrintPostDistributionNV_TS000 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-068)PředpokladyPřístup k testovací DB i k aplikaci Haifa. Majitel Baťa (IČ 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). Kroky (Akce / Data / Očekávání)1. [SQL setup] Připoj se k testovací DB.
Data: Server = 172.29.7.21\NEOHEF,14330
Data: Database = fenix_1001
Data: User = fenix
Oček.: Spojení navázáno.
2. [SQL setup] Uvolni 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';
Oček.: DELETE proběhnou bez chyby (při čistém prostředí 0 řádků).
3. [SQL setup] Vlož 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;
Oček.: INSERTy proběhnou (4 řádky). SELECT vrátí použité id (orientace).
4. V aplikaci vyber 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)
Oček.: 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
Oček.: 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');
Oček.: 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;
Oček.: Dotaz vrátí 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. Očekávaný výsledekDotaz vrátí 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. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-02_PrintPostDistributionNV.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-02 — Tisk sestavy 21b – Přehled po rozpouštění nákladů a výnosů ke konci období (E2E).xlsx |
|
| SC-TISK21B-002 | EP-TISK21B-RPT | PrintPostDistributionNV_TS001 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-069)PředpokladyTS-000 proběhlo. Baťa vybrán, rok 2026, oprávnění ReportPostDistribution uděleno. Kroky (Akce / Data / Očekávání)1. Klikni Přehledy → 21 → '21b - Přehled po rozpouštění N/V ke konci období'. Před tím případně vyber rozpouštěcí předpis, pokud to dialog vyžaduje.
Data: VariantTag = 21b
Data: Předpis = TS S04-02 předpis
Oček.: 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.
Oček.: 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).
Oček.: 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č. Očekávaný výsledekJe 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č. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-02_PrintPostDistributionNV.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-02 — Tisk sestavy 21b – Přehled po rozpouštění nákladů a výnosů ke konci období (E2E).xlsx |
|
| SC-TISK21B-003 | EP-TISK21B-RPT | PrintPostDistributionNV_TS002 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-070)PředpokladyFormulář Tisk sestavy (21b) je otevřen. Variant 21b (m_sestava 212) vyžaduje zadání stupně. Kroky (Akce / Data / Očekávání)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é)
Oček.: Zobrazí se 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
Oček.: Validace projde a otevře se náhled/okno Tisk sestavy (sestava se generuje pro 2. stupeň rozpuštění). Očekávaný výsledekValidace projde a otevře se náhled/okno Tisk sestavy (sestava se generuje pro 2. stupeň rozpuštění). Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-02_PrintPostDistributionNV.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-02 — Tisk sestavy 21b – Přehled po rozpouštění nákladů a výnosů ke konci období (E2E).xlsx |
|
| SC-TISK21B-004 | EP-TISK21B-RPT | PrintPostDistributionNV_TS003 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-071)PředpokladyTS-000 proběhlo (kompletně rozpuštěné období 01). Formulář 21b je otevřen, vyplněné období 01–01 a stupeň 2. Kroky (Akce / Data / Očekávání)1. S přepínačem Report klikni OK a otevři náhled.
Data: Výstup = Report
Data: Období 01–01, Stupeň = 2
Oček.: Otevře se okno 'Tisk sestavy' s náhledem. Žádná chyba ani hláška 'nejsou data'.
2. Zkontroluj záhlaví proti Golden Master (test/Data/GoldenMaster/SC-05/21b).
Oček.: 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č'.
Oček.: 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. Očekávaný výsledekTě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. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-02_PrintPostDistributionNV.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-02 — Tisk sestavy 21b – Přehled po rozpouštění nákladů a výnosů ke konci období (E2E).xlsx |
|
| SC-TISK21B-005 | EP-TISK21B-RPT | PrintPostDistributionNV_TS004 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-072)PředpokladyTS-003 proběhlo. K dispozici PDF tiskárna pro porovnání. Kroky (Akce / Data / Očekávání)1. V okně 'Tisk sestavy' vyber Microsoft Print to PDF a spusť Tisk.
Data: Výstup = PDF
Oček.: Tisk proběhne bez chyby, vznikne PDF. Okno zůstává otevřené.
2. Zkontroluj zápatí (strana, datum/čas) proti referenci.
Oček.: 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
Oček.: 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 %. Očekávaný výsledekCelá 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 %. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-02_PrintPostDistributionNV.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-02 — Tisk sestavy 21b – Přehled po rozpouštění nákladů a výnosů ke konci období (E2E).xlsx |
|
| SC-TISK21B-006 | EP-TISK21B-RPT | PrintPostDistributionNV_TS005 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-073)PředpokladySada proběhla. V DB zůstaly definice, předpis, stupně, import a rozpuštěné stupně. Kroky (Akce / Data / Očekávání)1. [SQL cleanup] Smaž 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';
Oček.: 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;
Oček.: 'def S04-02' = 0, 'pred S04-02' = 0, 'majitel Bata' = 1. Očekávaný výsledek'def S04-02' = 0, 'pred S04-02' = 0, 'majitel Bata' = 1. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-02_PrintPostDistributionNV.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-02 — Tisk sestavy 21b – Přehled po rozpouštění nákladů a výnosů ke konci období (E2E).xlsx |
6 / 6 prošlo — TS-RZP-S04-03 — Tisk sestavy 22a – Porovnání přímých nákladů a výnosů ke konci období (E2E).xlsx · JSON spec
| Scénář | Epic | Test method | Status | Čas | Chyba / Detail |
|---|---|---|---|---|---|
| SC-TISK22A-001 | EP-TISK22A-RPT | PrintDirectNVComparison_TS000 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-074)PředpokladyPřístup k testovací DB i k aplikaci Haifa. Majitel Baťa (IČ 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). Kroky (Akce / Data / Očekávání)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';
Oček.: DELETE proběhnou bez chyby (čisté prostředí: 0 řádků).
2. [SQL setup] Vlož 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;
Oček.: INSERT proběhne (1 řádek).
3. V aplikaci vyber 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)
Oček.: 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');
Oček.: 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;
Oček.: Dotaz vrátí 2 řádky (obdobi=1 a obdobi=2), oba radku_stupen0 >= 1 a suma_sr/suma_ur > 0. Očekávaný výsledekDotaz vrátí 2 řádky (obdobi=1 a obdobi=2), oba radku_stupen0 >= 1 a suma_sr/suma_ur > 0. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-03_PrintDirectNVComparison.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-03 — Tisk sestavy 22a – Porovnání přímých nákladů a výnosů ke konci období (E2E).xlsx |
|
| SC-TISK22A-002 | EP-TISK22A-RPT | PrintDirectNVComparison_TS001 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-075)PředpokladyTS-000 proběhlo. Baťa vybrán, rok 2026, oprávnění ReportDirect uděleno. Kroky (Akce / Data / Očekávání)1. Klikni Přehledy → 22 → '22a - Porovnání přímých N/V ke konci období'.
Data: VariantTag = 22a
Oček.: 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.
Oček.: 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ý.
Oček.: 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á. Očekávaný výsledekPopisek '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á. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-03_PrintDirectNVComparison.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-03 — Tisk sestavy 22a – Porovnání přímých nákladů a výnosů ke konci období (E2E).xlsx |
|
| SC-TISK22A-003 | EP-TISK22A-RPT | PrintDirectNVComparison_TS002 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-076)PředpokladyTS-000 proběhlo (přímá data za 01 a 02). Formulář 22a je otevřen. Kroky (Akce / Data / Očekávání)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
Oček.: Otevře se náhled sestavy. Žádná chyba ani 'nejsou data'.
2. Zkontroluj záhlaví proti Golden Master (test/Data/GoldenMaster/SC-05/22a).
Oček.: 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).
Oček.: 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. Očekávaný výsledekTě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. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-03_PrintDirectNVComparison.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-03 — Tisk sestavy 22a – Porovnání přímých nákladů a výnosů ke konci období (E2E).xlsx |
|
| SC-TISK22A-004 | EP-TISK22A-RPT | PrintDirectNVComparison_TS003 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-077)PředpokladyTS-002 proběhlo. K dispozici PDF tiskárna pro porovnání. Kroky (Akce / Data / Očekávání)1. V okně 'Tisk sestavy' vyber Microsoft Print to PDF a spusť Tisk.
Data: Výstup = PDF
Oček.: 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
Oček.: 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 %. Očekávaný výsledekZá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 %. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-03_PrintDirectNVComparison.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-03 — Tisk sestavy 22a – Porovnání přímých nákladů a výnosů ke konci období (E2E).xlsx |
|
| SC-TISK22A-005 | EP-TISK22A-RPT | PrintDirectNVComparison_TS004 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-078)PředpokladyFormulář Tisk sestavy (22a) je otevřen. Kroky (Akce / Data / Očekávání)1. Vyplň Období od = 05 a Období do = 02 a klikni OK.
Data: Období od = 05
Data: Období do = 02
Oček.: Zobrazí se 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
Oček.: Validace projde a otevře se náhled/okno Tisk sestavy. Očekávaný výsledekValidace projde a otevře se náhled/okno Tisk sestavy. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-03_PrintDirectNVComparison.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-03 — Tisk sestavy 22a – Porovnání přímých nákladů a výnosů ke konci období (E2E).xlsx |
|
| SC-TISK22A-006 | EP-TISK22A-RPT | PrintDirectNVComparison_TS005 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-079)PředpokladySada proběhla. V DB zůstaly definice a naimportovaná data za období 01 a 02. Kroky (Akce / Data / Očekávání)1. [SQL cleanup] Smaž 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';
Oček.: 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;
Oček.: 'def S04-03' = 0, 'rozp S04-03' = 0, 'majitel Bata' = 1. Očekávaný výsledek'def S04-03' = 0, 'rozp S04-03' = 0, 'majitel Bata' = 1. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-03_PrintDirectNVComparison.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-03 — Tisk sestavy 22a – Porovnání přímých nákladů a výnosů ke konci období (E2E).xlsx |
5 / 5 prošlo — TS-RZP-S04-04 — Tisk sestavy 23a – Měsíční porovnání přímých nákladů a výnosů ke konci období (E2E).xlsx · JSON spec
| Scénář | Epic | Test method | Status | Čas | Chyba / Detail |
|---|---|---|---|---|---|
| SC-TISK23A-001 | EP-TISK23A-RPT | PrintMonthlyComparisonDirect_TS000 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-080)PředpokladyPřístup k testovací DB i k aplikaci Haifa. Majitel Baťa (IČ 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). Kroky (Akce / Data / Očekávání)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';
Oček.: DELETE proběhnou bez chyby (čisté prostředí 0 řádků).
2. [SQL setup] Vlož 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;
Oček.: INSERT proběhne (1 řádek).
3. V aplikaci vyber 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
Oček.: 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');
Oček.: 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;
Oček.: Dotaz vrátí 3 řádky (obdobi 1, 2, 3), všechny radku_stupen0 >= 1 a suma_sr/suma_ur > 0. Očekávaný výsledekDotaz vrátí 3 řádky (obdobi 1, 2, 3), všechny radku_stupen0 >= 1 a suma_sr/suma_ur > 0. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-04_PrintMonthlyComparisonDirect.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-04 — Tisk sestavy 23a – Měsíční porovnání přímých nákladů a výnosů ke konci období (E2E).xlsx |
|
| SC-TISK23A-002 | EP-TISK23A-RPT | PrintMonthlyComparisonDirect_TS001 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-081)PředpokladyTS-000 proběhlo. Baťa vybrán, rok 2026, oprávnění ReportDirect uděleno. Kroky (Akce / Data / Očekávání)1. Klikni Přehledy → 23 → '23a - Měsíční porovnání přímých N/V ke konci období'.
Data: VariantTag = 23a
Oček.: 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.
Oček.: 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é. Očekávaný výsledekIČ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é. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-04_PrintMonthlyComparisonDirect.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-04 — Tisk sestavy 23a – Měsíční porovnání přímých nákladů a výnosů ke konci období (E2E).xlsx |
|
| SC-TISK23A-003 | EP-TISK23A-RPT | PrintMonthlyComparisonDirect_TS002 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-082)PředpokladyTS-000 proběhlo (přímá data za 01–03). Formulář 23a je otevřen. Kroky (Akce / Data / Očekávání)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
Oček.: Otevře se náhled. Žádná chyba ani 'nejsou data'.
2. Zkontroluj záhlaví proti Golden Master (test/Data/GoldenMaster/SC-05/23a).
Oček.: 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.
Oček.: 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. Očekávaný výsledekTě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. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-04_PrintMonthlyComparisonDirect.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-04 — Tisk sestavy 23a – Měsíční porovnání přímých nákladů a výnosů ke konci období (E2E).xlsx |
|
| SC-TISK23A-004 | EP-TISK23A-RPT | PrintMonthlyComparisonDirect_TS003 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-083)PředpokladyTS-002 proběhlo. K dispozici PDF tiskárna. Kroky (Akce / Data / Očekávání)1. V okně 'Tisk sestavy' vyber Microsoft Print to PDF a spusť Tisk.
Data: Výstup = PDF
Oček.: 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
Oček.: 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 %. Očekávaný výsledekZá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 %. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-04_PrintMonthlyComparisonDirect.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-04 — Tisk sestavy 23a – Měsíční porovnání přímých nákladů a výnosů ke konci období (E2E).xlsx |
|
| SC-TISK23A-005 | EP-TISK23A-RPT | PrintMonthlyComparisonDirect_TS004 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-084)PředpokladySada proběhla. V DB zůstaly definice a naimportovaná data za 01–03. Kroky (Akce / Data / Očekávání)1. [SQL cleanup] Smaž 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';
Oček.: 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;
Oček.: 'def S04-04' = 0, 'majitel Bata' = 1. Očekávaný výsledek'def S04-04' = 0, 'majitel Bata' = 1. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-04_PrintMonthlyComparisonDirect.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-04 — Tisk sestavy 23a – Měsíční porovnání přímých nákladů a výnosů ke konci období (E2E).xlsx |
5 / 5 prošlo — TS-RZP-S04-05 — Tisk sestavy 23b – Měsíční porovnání po rozpouštění nákladů a výnosů ke konci období (E2E).xlsx · JSON spec
| Scénář | Epic | Test method | Status | Čas | Chyba / Detail |
|---|---|---|---|---|---|
| SC-TISK23B-001 | EP-TISK23B-RPT | PrintMonthlyComparisonPostDist_TS000 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-085)PředpokladyPří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). Kroky (Akce / Data / Očekávání)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';
Oček.: DELETE proběhnou bez chyby.
2. [SQL setup] Vlož 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', '');
Oček.: INSERTy proběhnou (4 řádky).
3. V aplikaci 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
Oček.: 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');
Oček.: 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;
Oček.: Pro každé období (1 i 2) existují stupně '0', '1', '2' a suma_sr/suma_ur > 0. Očekávaný výsledekPro každé období (1 i 2) existují stupně '0', '1', '2' a suma_sr/suma_ur > 0. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-05_PrintMonthlyComparisonPostDist.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-05 — Tisk sestavy 23b – Měsíční porovnání po rozpouštění nákladů a výnosů ke konci období (E2E).xlsx |
|
| SC-TISK23B-002 | EP-TISK23B-RPT | PrintMonthlyComparisonPostDist_TS001 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-086)PředpokladyTS-000 proběhlo. Baťa vybrán, rok 2026, oprávnění ReportPostDistribution. Kroky (Akce / Data / Očekávání)1. Klikni Přehledy → 23 → '23b - Měsíční porovnání po rozpouštění N/V ke konci období' (příp. vyber předpis 'TS S04-05 předpis').
Data: VariantTag = 23b
Data: Předpis = TS S04-05 předpis
Oček.: 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ě.
Oček.: 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á. Očekávaný výsledekIČO 44268050, DIČ, Baťa, Rok 2026. Panel předpisu a pole Stupeň (txtSes) jsou viditelné a editovatelné. Volba Plán/Kč je skrytá. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-05_PrintMonthlyComparisonPostDist.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-05 — Tisk sestavy 23b – Měsíční porovnání po rozpouštění nákladů a výnosů ke konci období (E2E).xlsx |
|
| SC-TISK23B-003 | EP-TISK23B-RPT | PrintMonthlyComparisonPostDist_TS002 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-087)PředpokladyFormulář 23b je otevřen (m_sestava 232 vyžaduje stupeň). Kroky (Akce / Data / Očekávání)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é)
Oček.: Zobrazí se 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
Oček.: Validace projde a otevře se náhled/okno Tisk sestavy. Očekávaný výsledekValidace projde a otevře se náhled/okno Tisk sestavy. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-05_PrintMonthlyComparisonPostDist.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-05 — Tisk sestavy 23b – Měsíční porovnání po rozpouštění nákladů a výnosů ke konci období (E2E).xlsx |
|
| SC-TISK23B-004 | EP-TISK23B-RPT | PrintMonthlyComparisonPostDist_TS003 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-088)PředpokladyTS-000 proběhlo (oba měsíce rozpuštěné). Formulář 23b otevřen, období 01–02, stupeň 2. K dispozici PDF tiskárna. Kroky (Akce / Data / Očekávání)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
Oček.: 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
Oček.: Zápatí (strana, datum/čas) ve formátu VB6. Celá stránka 1:1 (rozdíl < 1 %). Očekávaný výsledekZápatí (strana, datum/čas) ve formátu VB6. Celá stránka 1:1 (rozdíl < 1 %). Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-05_PrintMonthlyComparisonPostDist.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-05 — Tisk sestavy 23b – Měsíční porovnání po rozpouštění nákladů a výnosů ke konci období (E2E).xlsx |
|
| SC-TISK23B-005 | EP-TISK23B-RPT | PrintMonthlyComparisonPostDist_TS004 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-089)PředpokladySada proběhla. Kroky (Akce / Data / Očekávání)1. [SQL cleanup] Smaž 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';
Oček.: 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;
Oček.: 'def S04-05' = 0, 'pred S04-05' = 0, 'majitel Bata' = 1. Očekávaný výsledek'def S04-05' = 0, 'pred S04-05' = 0, 'majitel Bata' = 1. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-05_PrintMonthlyComparisonPostDist.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-05 — Tisk sestavy 23b – Měsíční porovnání po rozpouštění nákladů a výnosů ke konci období (E2E).xlsx |
5 / 5 prošlo — TS-RZP-S04-06 — Tisk sestavy 24a – Přehled plnění nákladů ke konci období (E2E).xlsx · JSON spec
| Scénář | Epic | Test method | Status | Čas | Chyba / Detail |
|---|---|---|---|---|---|
| SC-TISK24A-001 | EP-TISK24A-RPT | PrintFulfillmentCosts_TS000 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-090)PředpokladyPří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. Kroky (Akce / Data / Očekávání)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';
Oček.: DELETE proběhnou bez chyby.
2. [SQL setup] Vlož 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', '');
Oček.: INSERTy proběhnou (4 řádky).
3. V aplikaci 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
Oček.: Řá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');
Oček.: 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;
Oček.: 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. Očekávaný výsledekPro 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. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-06_PrintFulfillmentCosts.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-06 — Tisk sestavy 24a – Přehled plnění nákladů ke konci období (E2E).xlsx |
|
| SC-TISK24A-002 | EP-TISK24A-RPT | PrintFulfillmentCosts_TS001 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-091)PředpokladyTS-000 proběhlo. Baťa vybrán, rok 2026, oprávnění ReportPostDistribution. Kroky (Akce / Data / Očekávání)1. Klikni Přehledy → 24 → '24a - Přehled plnění nákladů ke konci období' (příp. vyber předpis 'TS S04-06 předpis').
Data: VariantTag = 24a
Data: Předpis = TS S04-06 předpis
Oček.: Otevře se formulář s titulkem doslova '24a - Přehled plnění nákladů ke konci období'.
2. Zkontroluj záhlaví a layout.
Oček.: 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ý. Očekávaný výsledekIČ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ý. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-06_PrintFulfillmentCosts.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-06 — Tisk sestavy 24a – Přehled plnění nákladů ke konci období (E2E).xlsx |
|
| SC-TISK24A-003 | EP-TISK24A-RPT | PrintFulfillmentCosts_TS002 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-092)PředpokladyFormulář 24a je otevřen (prefix 24 vyžaduje stupeň). Kroky (Akce / Data / Očekávání)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é)
Oček.: Zobrazí se 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
Oček.: Validace projde a otevře se náhled/okno Tisk sestavy. Očekávaný výsledekValidace projde a otevře se náhled/okno Tisk sestavy. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-06_PrintFulfillmentCosts.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-06 — Tisk sestavy 24a – Přehled plnění nákladů ke konci období (E2E).xlsx |
|
| SC-TISK24A-004 | EP-TISK24A-RPT | PrintFulfillmentCosts_TS003 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-093)PředpokladyTS-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. Kroky (Akce / Data / Očekávání)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
Oček.: Záhlaví 1:1 (Baťa, IČO, DIČ, Rok 2026, název '24a - Přehled plnění nákladů ke konci období', 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
Oček.: 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. Očekávaný výsledekZá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. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-06_PrintFulfillmentCosts.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-06 — Tisk sestavy 24a – Přehled plnění nákladů ke konci období (E2E).xlsx |
|
| SC-TISK24A-005 | EP-TISK24A-RPT | PrintFulfillmentCosts_TS004 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-094)PředpokladySada proběhla. Kroky (Akce / Data / Očekávání)1. [SQL cleanup] Smaž 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';
Oček.: 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;
Oček.: 'def S04-06' = 0, 'pred S04-06' = 0, 'majitel Bata' = 1. Očekávaný výsledek'def S04-06' = 0, 'pred S04-06' = 0, 'majitel Bata' = 1. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-06_PrintFulfillmentCosts.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-06 — Tisk sestavy 24a – Přehled plnění nákladů ke konci období (E2E).xlsx |
5 / 5 prošlo — TS-RZP-S04-07 — Tisk sestavy 24b – Přehled plnění výnosů ke konci období (E2E).xlsx · JSON spec
| Scénář | Epic | Test method | Status | Čas | Chyba / Detail |
|---|---|---|---|---|---|
| SC-TISK24B-001 | EP-TISK24B-RPT | PrintFulfillmentRevenues_TS000 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-095)PředpokladyPří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. Kroky (Akce / Data / Očekávání)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';
Oček.: DELETE proběhnou bez chyby.
2. [SQL setup] Vlož 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', '');
Oček.: INSERTy proběhnou (4 řádky).
3. V aplikaci 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
Oček.: Řá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');
Oček.: 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;
Oček.: Pro nakl_vyn='V' (výnosy) je skutecnost > 0, plán > 0 a plneni_k_sr_pct ≈ 111,1. Očekávaný výsledekPro nakl_vyn='V' (výnosy) je skutecnost > 0, plán > 0 a plneni_k_sr_pct ≈ 111,1. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-07_PrintFulfillmentRevenues.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-07 — Tisk sestavy 24b – Přehled plnění výnosů ke konci období (E2E).xlsx |
|
| SC-TISK24B-002 | EP-TISK24B-RPT | PrintFulfillmentRevenues_TS001 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-096)PředpokladyTS-000 proběhlo. Baťa vybrán, rok 2026, oprávnění ReportPostDistribution. Kroky (Akce / Data / Očekávání)1. Klikni Přehledy → 24 → '24b - Přehled plnění výnosů ke konci období' (příp. vyber předpis 'TS S04-07 předpis').
Data: VariantTag = 24b
Data: Předpis = TS S04-07 předpis
Oček.: Otevře se formulář s titulkem doslova '24b - Přehled plnění výnosů ke konci období'.
2. Zkontroluj záhlaví a layout.
Oček.: IČO 44268050, DIČ, Baťa, Rok 2026. Předpis a Stupeň viditelné/editovatelné, Plán/Kč skryté, Název sestavy zúžený. Očekávaný výsledekIČO 44268050, DIČ, Baťa, Rok 2026. Předpis a Stupeň viditelné/editovatelné, Plán/Kč skryté, Název sestavy zúžený. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-07_PrintFulfillmentRevenues.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-07 — Tisk sestavy 24b – Přehled plnění výnosů ke konci období (E2E).xlsx |
|
| SC-TISK24B-003 | EP-TISK24B-RPT | PrintFulfillmentRevenues_TS002 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-097)PředpokladyFormulář 24b je otevřen (prefix 24 vyžaduje stupeň). Kroky (Akce / Data / Očekávání)1. Vyplň Období od = 01, do = 01, Stupeň nech prázdné a klikni OK.
Data: Stupeň = (prázdné)
Oček.: Zobrazí se hláška doslova 'Chybí stupeň rozpouštění!' Tisk se nespustí.
2. Zadej Stupeň = 2 a klikni OK.
Data: Stupeň = 2
Oček.: Validace projde a otevře se náhled/okno Tisk sestavy. Očekávaný výsledekValidace projde a otevře se náhled/okno Tisk sestavy. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-07_PrintFulfillmentRevenues.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-07 — Tisk sestavy 24b – Přehled plnění výnosů ke konci období (E2E).xlsx |
|
| SC-TISK24B-004 | EP-TISK24B-RPT | PrintFulfillmentRevenues_TS003 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-098)PředpokladyTS-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. Kroky (Akce / Data / Očekávání)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
Oček.: Záhlaví 1:1 (Baťa, IČO, DIČ, Rok 2026, název '24b - Přehled plnění výnosů ke konci období', 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
Oček.: Zápatí ve formátu VB6, celá stránka 1:1 (rozdíl < 1 %). Součty sedí s SQL auditem z TS-000. Očekávaný výsledekZápatí ve formátu VB6, celá stránka 1:1 (rozdíl < 1 %). Součty sedí s SQL auditem z TS-000. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-07_PrintFulfillmentRevenues.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-07 — Tisk sestavy 24b – Přehled plnění výnosů ke konci období (E2E).xlsx |
|
| SC-TISK24B-005 | EP-TISK24B-RPT | PrintFulfillmentRevenues_TS004 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-099)PředpokladySada proběhla. Kroky (Akce / Data / Očekávání)1. [SQL cleanup] Smaž 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';
Oček.: 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;
Oček.: 'def S04-07' = 0, 'pred S04-07' = 0, 'majitel Bata' = 1. Očekávaný výsledek'def S04-07' = 0, 'pred S04-07' = 0, 'majitel Bata' = 1. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-07_PrintFulfillmentRevenues.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-07 — Tisk sestavy 24b – Přehled plnění výnosů ke konci období (E2E).xlsx |
5 / 5 prošlo — TS-RZP-S04-08 — Tisk sestavy 24c – Přehled plnění nákladů a výnosů ke konci období (E2E).xlsx · JSON spec
| Scénář | Epic | Test method | Status | Čas | Chyba / Detail |
|---|---|---|---|---|---|
| SC-TISK24C-001 | EP-TISK24C-RPT | PrintFulfillmentCostsRevenues_TS000 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-100)PředpokladyPří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. Kroky (Akce / Data / Očekávání)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';
Oček.: DELETE proběhnou bez chyby.
2. [SQL setup] Vlož 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', '');
Oček.: INSERTy proběhnou (4 řádky).
3. V aplikaci 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
Oček.: Řá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');
Oček.: 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;
Oček.: Vrátí 2 řádky (nakl_vyn 'N' i 'V'), oba se skutecnost > 0, plán > 0 a plneni_k_sr_pct ≈ 111,1. Očekávaný výsledekVrátí 2 řádky (nakl_vyn 'N' i 'V'), oba se skutecnost > 0, plán > 0 a plneni_k_sr_pct ≈ 111,1. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-08_PrintFulfillmentCostsRevenues.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-08 — Tisk sestavy 24c – Přehled plnění nákladů a výnosů ke konci období (E2E).xlsx |
|
| SC-TISK24C-002 | EP-TISK24C-RPT | PrintFulfillmentCostsRevenues_TS001 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-101)PředpokladyTS-000 proběhlo. Baťa vybrán, rok 2026, oprávnění ReportPostDistribution. Kroky (Akce / Data / Očekávání)1. Klikni Přehledy → 24 → '24c - Přehled plnění nákladů a výnosů ke konci období' (příp. vyber předpis 'TS S04-08 předpis').
Data: VariantTag = 24c
Data: Předpis = TS S04-08 předpis
Oček.: Otevře se formulář s titulkem doslova '24c - Přehled plnění nákladů a výnosů ke konci období'.
2. Zkontroluj záhlaví a layout.
Oček.: IČO 44268050, DIČ, Baťa, Rok 2026. Předpis a Stupeň viditelné/editovatelné, Plán/Kč skryté, Název sestavy zúžený. Očekávaný výsledekIČO 44268050, DIČ, Baťa, Rok 2026. Předpis a Stupeň viditelné/editovatelné, Plán/Kč skryté, Název sestavy zúžený. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-08_PrintFulfillmentCostsRevenues.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-08 — Tisk sestavy 24c – Přehled plnění nákladů a výnosů ke konci období (E2E).xlsx |
|
| SC-TISK24C-003 | EP-TISK24C-RPT | PrintFulfillmentCostsRevenues_TS002 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-102)PředpokladyFormulář 24c je otevřen (prefix 24 vyžaduje stupeň). Kroky (Akce / Data / Očekávání)1. Vyplň Období od = 01, do = 01, Stupeň nech prázdné a klikni OK.
Data: Stupeň = (prázdné)
Oček.: Zobrazí se hláška doslova 'Chybí stupeň rozpouštění!' Tisk se nespustí.
2. Zadej Stupeň = 2 a klikni OK.
Data: Stupeň = 2
Oček.: Validace projde a otevře se náhled/okno Tisk sestavy. Očekávaný výsledekValidace projde a otevře se náhled/okno Tisk sestavy. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-08_PrintFulfillmentCostsRevenues.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-08 — Tisk sestavy 24c – Přehled plnění nákladů a výnosů ke konci období (E2E).xlsx |
|
| SC-TISK24C-004 | EP-TISK24C-RPT | PrintFulfillmentCostsRevenues_TS003 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-103)PředpokladyTS-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. Kroky (Akce / Data / Očekávání)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
Oček.: Záhlaví 1:1 (Baťa, IČO, DIČ, Rok 2026, název '24c - Přehled plnění nákladů a výnosů ke konci období', 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
Oček.: 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. Očekávaný výsledekZá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. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-08_PrintFulfillmentCostsRevenues.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-08 — Tisk sestavy 24c – Přehled plnění nákladů a výnosů ke konci období (E2E).xlsx |
|
| SC-TISK24C-005 | EP-TISK24C-RPT | PrintFulfillmentCostsRevenues_TS004 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-104)PředpokladySada proběhla. Kroky (Akce / Data / Očekávání)1. [SQL cleanup] Smaž 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';
Oček.: 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;
Oček.: 'def S04-08' = 0, 'pred S04-08' = 0, 'majitel Bata' = 1. Očekávaný výsledek'def S04-08' = 0, 'pred S04-08' = 0, 'majitel Bata' = 1. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-08_PrintFulfillmentCostsRevenues.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-08 — Tisk sestavy 24c – Přehled plnění nákladů a výnosů ke konci období (E2E).xlsx |
5 / 5 prošlo — TS-RZP-S04-09 — Tisk sestavy 24d – Rekapitulace plnění nákladů a výnosů ke konci období (E2E).xlsx · JSON spec
| Scénář | Epic | Test method | Status | Čas | Chyba / Detail |
|---|---|---|---|---|---|
| SC-TISK24D-001 | EP-TISK24D-RPT | PrintFulfillmentRecap_TS000 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-105)PředpokladyPří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. Kroky (Akce / Data / Očekávání)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';
Oček.: DELETE proběhnou bez chyby.
2. [SQL setup] Vlož 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', '');
Oček.: INSERTy proběhnou (4 řádky).
3. V aplikaci 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
Oček.: Řá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');
Oček.: 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;
Oček.: 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. Očekávaný výsledekVrá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. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-09_PrintFulfillmentRecap.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-09 — Tisk sestavy 24d – Rekapitulace plnění nákladů a výnosů ke konci období (E2E).xlsx |
|
| SC-TISK24D-002 | EP-TISK24D-RPT | PrintFulfillmentRecap_TS001 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-106)PředpokladyTS-000 proběhlo. Baťa vybrán, rok 2026, oprávnění ReportPostDistribution. Kroky (Akce / Data / Očekávání)1. Klikni Přehledy → 24 → '24d - Rekapitulace plnění N/V ke konci období' (příp. vyber předpis 'TS S04-09 předpis').
Data: VariantTag = 24d
Data: Předpis = TS S04-09 předpis
Oček.: Otevře se formulář s titulkem doslova '24d - Rekapitulace plnění N/V ke konci období'.
2. Zkontroluj záhlaví a layout.
Oček.: IČO 44268050, DIČ, Baťa, Rok 2026. Předpis a Stupeň viditelné/editovatelné, Plán/Kč skryté, Název sestavy zúžený. Očekávaný výsledekIČO 44268050, DIČ, Baťa, Rok 2026. Předpis a Stupeň viditelné/editovatelné, Plán/Kč skryté, Název sestavy zúžený. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-09_PrintFulfillmentRecap.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-09 — Tisk sestavy 24d – Rekapitulace plnění nákladů a výnosů ke konci období (E2E).xlsx |
|
| SC-TISK24D-003 | EP-TISK24D-RPT | PrintFulfillmentRecap_TS002 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-107)PředpokladyFormulář 24d je otevřen (prefix 24 vyžaduje stupeň). Kroky (Akce / Data / Očekávání)1. Vyplň Období od = 01, do = 01, Stupeň nech prázdné a klikni OK.
Data: Stupeň = (prázdné)
Oček.: Zobrazí se hláška doslova 'Chybí stupeň rozpouštění!' Tisk se nespustí.
2. Zadej Stupeň = 2 a klikni OK.
Data: Stupeň = 2
Oček.: Validace projde a otevře se náhled/okno Tisk sestavy. Očekávaný výsledekValidace projde a otevře se náhled/okno Tisk sestavy. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-09_PrintFulfillmentRecap.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-09 — Tisk sestavy 24d – Rekapitulace plnění nákladů a výnosů ke konci období (E2E).xlsx |
|
| SC-TISK24D-004 | EP-TISK24D-RPT | PrintFulfillmentRecap_TS003 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-108)PředpokladyTS-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. Kroky (Akce / Data / Očekávání)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
Oček.: 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
Oček.: 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. Očekávaný výsledekZá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. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-09_PrintFulfillmentRecap.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-09 — Tisk sestavy 24d – Rekapitulace plnění nákladů a výnosů ke konci období (E2E).xlsx |
|
| SC-TISK24D-005 | EP-TISK24D-RPT | PrintFulfillmentRecap_TS004 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-109)PředpokladySada proběhla. Kroky (Akce / Data / Očekávání)1. [SQL cleanup] Smaž 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';
Oček.: 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;
Oček.: 'def S04-09' = 0, 'pred S04-09' = 0, 'majitel Bata' = 1. Očekávaný výsledek'def S04-09' = 0, 'pred S04-09' = 0, 'majitel Bata' = 1. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-09_PrintFulfillmentRecap.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-09 — Tisk sestavy 24d – Rekapitulace plnění nákladů a výnosů ke konci období (E2E).xlsx |
5 / 5 prošlo — TS-RZP-S04-10 — Tisk sestavy 24e – Přehled čerpání plánu ke konci období (E2E).xlsx · JSON spec
| Scénář | Epic | Test method | Status | Čas | Chyba / Detail |
|---|---|---|---|---|---|
| SC-TISK24E-001 | EP-TISK24E-RPT | PrintPlanDrawdown_TS000 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-110)PředpokladyPří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. Kroky (Akce / Data / Očekávání)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';
Oček.: DELETE proběhnou bez chyby.
2. [SQL setup] Vlož 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', '');
Oček.: INSERTy proběhnou (4 řádky).
3. V aplikaci 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
Oček.: Řá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');
Oček.: 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;
Oček.: 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. Očekávaný výsledekPro 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. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-10_PrintPlanDrawdown.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-10 — Tisk sestavy 24e – Přehled čerpání plánu ke konci období (E2E).xlsx |
|
| SC-TISK24E-002 | EP-TISK24E-RPT | PrintPlanDrawdown_TS001 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-111)PředpokladyTS-000 proběhlo. Baťa vybrán, rok 2026, oprávnění ReportPostDistribution. Kroky (Akce / Data / Očekávání)1. Klikni Přehledy → 24 → '24e - Přehled čerpání plánu ke konci období' (příp. vyber předpis 'TS S04-10 předpis').
Data: VariantTag = 24e
Data: Předpis = TS S04-10 předpis
Oček.: Otevře se formulář s titulkem doslova '24e - Přehled čerpání plánu ke konci období'.
2. Zkontroluj záhlaví a layout.
Oček.: IČO 44268050, DIČ, Baťa, Rok 2026. Předpis a Stupeň viditelné/editovatelné, Plán/Kč skryté, Název sestavy zúžený. Očekávaný výsledekIČO 44268050, DIČ, Baťa, Rok 2026. Předpis a Stupeň viditelné/editovatelné, Plán/Kč skryté, Název sestavy zúžený. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-10_PrintPlanDrawdown.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-10 — Tisk sestavy 24e – Přehled čerpání plánu ke konci období (E2E).xlsx |
|
| SC-TISK24E-003 | EP-TISK24E-RPT | PrintPlanDrawdown_TS002 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-112)PředpokladyFormulář 24e je otevřen (prefix 24 vyžaduje stupeň). Kroky (Akce / Data / Očekávání)1. Vyplň Období od = 01, do = 01, Stupeň nech prázdné a klikni OK.
Data: Stupeň = (prázdné)
Oček.: Zobrazí se hláška doslova 'Chybí stupeň rozpouštění!' Tisk se nespustí.
2. Zadej Stupeň = 2 a klikni OK.
Data: Stupeň = 2
Oček.: Validace projde a otevře se náhled/okno Tisk sestavy. Očekávaný výsledekValidace projde a otevře se náhled/okno Tisk sestavy. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-10_PrintPlanDrawdown.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-10 — Tisk sestavy 24e – Přehled čerpání plánu ke konci období (E2E).xlsx |
|
| SC-TISK24E-004 | EP-TISK24E-RPT | PrintPlanDrawdown_TS003 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-113)PředpokladyTS-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. Kroky (Akce / Data / Očekávání)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
Oček.: Záhlaví 1:1 (Baťa, IČO, DIČ, Rok 2026, název '24e - Přehled čerpání plánu ke konci období', 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
Oček.: Zápatí ve formátu VB6, celá stránka 1:1 (rozdíl < 1 %). Hodnoty % čerpání sedí s SQL auditem z TS-000. Očekávaný výsledekZápatí ve formátu VB6, celá stránka 1:1 (rozdíl < 1 %). Hodnoty % čerpání sedí s SQL auditem z TS-000. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-10_PrintPlanDrawdown.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-10 — Tisk sestavy 24e – Přehled čerpání plánu ke konci období (E2E).xlsx |
|
| SC-TISK24E-005 | EP-TISK24E-RPT | PrintPlanDrawdown_TS004 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-114)PředpokladySada proběhla. Kroky (Akce / Data / Očekávání)1. [SQL cleanup] Smaž 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';
Oček.: 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;
Oček.: 'def S04-10' = 0, 'pred S04-10' = 0, 'majitel Bata' = 1. Očekávaný výsledek'def S04-10' = 0, 'pred S04-10' = 0, 'majitel Bata' = 1. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-10_PrintPlanDrawdown.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-10 — Tisk sestavy 24e – Přehled čerpání plánu ke konci období (E2E).xlsx |
5 / 5 prošlo — TS-RZP-S04-11 — Tisk sestavy 29a – Přehled přímých a po rozpouštění nákladů a výnosů (E2E).xlsx · JSON spec
| Scénář | Epic | Test method | Status | Čas | Chyba / Detail |
|---|---|---|---|---|---|
| SC-TISK29A-001 | EP-TISK29A-RPT | PrintDirectAndPostDist_TS000 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-115)PředpokladyPřístup k testovací DB i k aplikaci. Baťa má licenci RZP. 2026/01 uzavřené s daty. Oprávnění ReportPostDistribution. Kroky (Akce / Data / Očekávání)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';
Oček.: DELETE proběhnou bez chyby.
2. [SQL setup] Vlož 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', '');
Oček.: 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
Oček.: Řá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;
Oček.: Vrátí stupně '0', '1', '2' – sestava 29a má přímá (0) i rozpuštěná (2) data k zobrazení vedle sebe. Očekávaný výsledekVrátí stupně '0', '1', '2' – sestava 29a má přímá (0) i rozpuštěná (2) data k zobrazení vedle sebe. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-11_PrintDirectAndPostDist.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-11 — Tisk sestavy 29a – Přehled přímých a po rozpouštění nákladů a výnosů (E2E).xlsx |
|
| SC-TISK29A-002 | EP-TISK29A-RPT | PrintDirectAndPostDist_TS001 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-116)PředpokladyTS-000 proběhlo. Baťa vybrán, rok 2026, oprávnění ReportPostDistribution. Kroky (Akce / Data / Očekávání)1. Klikni Přehledy → 29 → první položku (mnuPre_29_0) a příp. vyber předpis 'TS S04-11 předpis'.
Data: VariantTag = 29a
Data: Předpis = TS S04-11 předpis
Oček.: 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ě.
Oček.: IČO 44268050, DIČ, Baťa, Rok 2026. Předpis a Stupeň viditelné/editovatelné, Plán/Kč skryté (29x není 21x). Očekávaný výsledekIČO 44268050, DIČ, Baťa, Rok 2026. Předpis a Stupeň viditelné/editovatelné, Plán/Kč skryté (29x není 21x). Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-11_PrintDirectAndPostDist.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-11 — Tisk sestavy 29a – Přehled přímých a po rozpouštění nákladů a výnosů (E2E).xlsx |
|
| SC-TISK29A-003 | EP-TISK29A-RPT | PrintDirectAndPostDist_TS002 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-117)PředpokladyFormulář 29a je otevřen (prefix 29 vyžaduje stupeň). Kroky (Akce / Data / Očekávání)1. Vyplň Období od = 01, do = 01, Stupeň nech prázdné a klikni OK.
Data: Stupeň = (prázdné)
Oček.: Zobrazí se hláška doslova 'Chybí stupeň rozpouštění!' Tisk se nespustí.
2. Zadej Stupeň = 2 a klikni OK.
Data: Stupeň = 2
Oček.: Validace projde a otevře se náhled/okno Tisk sestavy. Očekávaný výsledekValidace projde a otevře se náhled/okno Tisk sestavy. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-11_PrintDirectAndPostDist.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-11 — Tisk sestavy 29a – Přehled přímých a po rozpouštění nákladů a výnosů (E2E).xlsx |
|
| SC-TISK29A-004 | EP-TISK29A-RPT | PrintDirectAndPostDist_TS003 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-118)PředpokladyTS-000 proběhlo (přímá i rozpuštěná data). Formulář 29a otevřen, období 01–01, stupeň 2. PDF tiskárna. Kroky (Akce / Data / Očekávání)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
Oček.: 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
Oček.: Zápatí ve formátu VB6, celá stránka 1:1 (rozdíl < 1 %). Očekávaný výsledekZápatí ve formátu VB6, celá stránka 1:1 (rozdíl < 1 %). Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-11_PrintDirectAndPostDist.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-11 — Tisk sestavy 29a – Přehled přímých a po rozpouštění nákladů a výnosů (E2E).xlsx |
|
| SC-TISK29A-005 | EP-TISK29A-RPT | PrintDirectAndPostDist_TS004 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-119)PředpokladySada proběhla. Kroky (Akce / Data / Očekávání)1. [SQL cleanup] Smaž 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';
Oček.: 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;
Oček.: 'def S04-11' = 0, 'pred S04-11' = 0, 'majitel Bata' = 1. Očekávaný výsledek'def S04-11' = 0, 'pred S04-11' = 0, 'majitel Bata' = 1. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-11_PrintDirectAndPostDist.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-11 — Tisk sestavy 29a – Přehled přímých a po rozpouštění nákladů a výnosů (E2E).xlsx |
5 / 5 prošlo — TS-RZP-S04-12 — Tisk sestavy 29b – Přehled plnění přímých a po rozpouštění nákladů a výnosů (E2E).xlsx · JSON spec
| Scénář | Epic | Test method | Status | Čas | Chyba / Detail |
|---|---|---|---|---|---|
| SC-TISK29B-001 | EP-TISK29B-RPT | PrintFulfillmentDirectAndPostDist_TS000 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-120)PředpokladyPří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. Kroky (Akce / Data / Očekávání)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';
Oček.: DELETE proběhnou bez chyby.
2. [SQL setup] Vlož 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', '');
Oček.: INSERTy proběhnou (4 řádky).
3. V aplikaci 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
Oček.: Řá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');
Oček.: 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;
Oček.: 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. Očekávaný výsledekVrá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. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-12_PrintFulfillmentDirectAndPostDist.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-12 — Tisk sestavy 29b – Přehled plnění přímých a po rozpouštění nákladů a výnosů (E2E).xlsx |
|
| SC-TISK29B-002 | EP-TISK29B-RPT | PrintFulfillmentDirectAndPostDist_TS001 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-121)PředpokladyTS-000 proběhlo. Baťa vybrán, rok 2026, oprávnění ReportPostDistribution. Kroky (Akce / Data / Očekávání)1. Klikni Přehledy → 29 → druhou položku (mnuPre_29_1) a příp. vyber předpis 'TS S04-12 předpis'.
Data: VariantTag = 29b
Data: Předpis = TS S04-12 předpis
Oček.: 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.
Oček.: IČO 44268050, DIČ, Baťa, Rok 2026. Předpis a Stupeň viditelné/editovatelné, Plán/Kč skryté, Název sestavy zúžený. Očekávaný výsledekIČO 44268050, DIČ, Baťa, Rok 2026. Předpis a Stupeň viditelné/editovatelné, Plán/Kč skryté, Název sestavy zúžený. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-12_PrintFulfillmentDirectAndPostDist.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-12 — Tisk sestavy 29b – Přehled plnění přímých a po rozpouštění nákladů a výnosů (E2E).xlsx |
|
| SC-TISK29B-003 | EP-TISK29B-RPT | PrintFulfillmentDirectAndPostDist_TS002 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-122)PředpokladyFormulář 29b je otevřen (prefix 29 vyžaduje stupeň). Kroky (Akce / Data / Očekávání)1. Vyplň Období od = 01, do = 01, Stupeň nech prázdné a klikni OK.
Data: Stupeň = (prázdné)
Oček.: Zobrazí se hláška doslova 'Chybí stupeň rozpouštění!' Tisk se nespustí.
2. Zadej Stupeň = 2 a klikni OK.
Data: Stupeň = 2
Oček.: Validace projde a otevře se náhled/okno Tisk sestavy. Očekávaný výsledekValidace projde a otevře se náhled/okno Tisk sestavy. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-12_PrintFulfillmentDirectAndPostDist.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-12 — Tisk sestavy 29b – Přehled plnění přímých a po rozpouštění nákladů a výnosů (E2E).xlsx |
|
| SC-TISK29B-004 | EP-TISK29B-RPT | PrintFulfillmentDirectAndPostDist_TS003 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-123)PředpokladyTS-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. Kroky (Akce / Data / Očekávání)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
Oček.: 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
Oček.: 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é). Očekávaný výsledekZá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é). Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-12_PrintFulfillmentDirectAndPostDist.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-12 — Tisk sestavy 29b – Přehled plnění přímých a po rozpouštění nákladů a výnosů (E2E).xlsx |
|
| SC-TISK29B-005 | EP-TISK29B-RPT | PrintFulfillmentDirectAndPostDist_TS004 |
Passed | ▸ Detail kroků (TC_ID: TC-E2E-124)PředpokladySada proběhla. Kroky (Akce / Data / Očekávání)1. [SQL cleanup] Smaž 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';
Oček.: 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;
Oček.: 'def S04-12' = 0, 'pred S04-12' = 0, 'majitel Bata' = 1. Očekávaný výsledek'def S04-12' = 0, 'pred S04-12' = 0, 'majitel Bata' = 1. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S04-12_PrintFulfillmentDirectAndPostDist.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S04-12 — Tisk sestavy 29b – Přehled plnění přímých a po rozpouštění nákladů a výnosů (E2E).xlsx |
7 / 7 prošlo — TS-RZP-S05-01 — Hledání záznamu podle vytvořené podmínky (E2E).xlsx · JSON spec
| Scénář | Epic | Test method | Status | Čas | Chyba / Detail |
|---|---|---|---|---|---|
| SC-HLED-001 | EP-HLED-SRCH | SearchDialog_TS000_PrepareData |
Passed | 21,1 s | ▸ Detail kroků (TC_ID: TC-E2E-125)PředpokladyUživatel má přístup k testovací DB a k Haifa aplikaci. Majitel Baťa je založen. Kroky (Akce / Data / Očekávání)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
Oček.: Spojení navázáno.
2. [SQL setup] Uvolni (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;
Oček.: 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: ověř, ž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';
Oček.: Oba dotazy = 0.
4. [SQL setup] Vlož 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;
Oček.: 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. V aplikaci vyber majitele Baťa (Úloha → Výběr majitele → IČ 44268050) a otevři formulář pro výběr rozpouštěcí definice (DistributionSelectionForm).
Data: Majitel = Baťa (IČ 44268050)
Data: Definice = TS S05-01 definice
Oček.: Otevře se formulář. V seznamu předpisů jsou viditelné 3 testovací řádky: 'TS_S05_A prvni', 'TS_S05_B druhy', 'Jiny predpis'. Očekávaný výsledekOtevře se formulář. V seznamu předpisů jsou viditelné 3 testovací řádky: 'TS_S05_A prvni', 'TS_S05_B druhy', 'Jiny predpis'. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S05-01_SearchDialog.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S05-01 — Hledání záznamu podle vytvořené podmínky (E2E).xlsx |
| SC-HLED-002 | EP-HLED-SRCH | SearchDialog_TS001_SingleLikeCondition |
Passed | 43,1 s | ▸ Detail kroků (TC_ID: TC-E2E-126)PředpokladyTS-000 proběhlo. V seznamu předpisů jsou 3 testovací řádky. Formulář DistributionSelectionForm je otevřen. Kroky (Akce / Data / Očekávání)1. V DistributionSelectionForm klikni na tlačítko Hledat (nebo menu Úlohy → Hledat).
Oček.: 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' vyber 'Název předpisu' (interní název nazev_pred).
Data: Pole = Název předpisu
Oček.: 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' vyber 'LIKE'.
Data: Operátor = LIKE
Oček.: 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%
Oček.: Textové pole obsahuje zadaný řetězec.
5. Klikni na tlačítko Přidej.
Oček.: Do akumulátorů se přidá 1 řádek: 'Název předpisu' / 'LIKE' / 'TS_S05%'. Textové pole se vyprázdní.
6. Klikni na tlačítko OK.
Oček.: 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ý. Očekávaný výsledekDialog 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ý. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S05-01_SearchDialog.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S05-01 — Hledání záznamu podle vytvořené podmínky (E2E).xlsx |
| SC-HLED-003 | EP-HLED-SRCH | SearchDialog_TS002_TwoConditionsAnd |
Passed | 40,2 s | ▸ Detail kroků (TC_ID: TC-E2E-127)PředpokladyTS-001 proběhlo. Dialog Hledání lze otevřít znovu. Kroky (Akce / Data / Očekávání)1. V DistributionSelectionForm klikni na Hledat znovu.
Oček.: 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%
Oček.: 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
Oček.: V akumulátoru jsou 2 řádky: 1. 'Název předpisu' / 'LIKE' / 'TS_S05%', 2. 'Plán/skutečnost' / '=' / 'S'.
4. Klikni na OK.
Oček.: Dialog se zavře. Seznam předpisů v DistributionSelectionForm zobrazuje pouze 1 řádek: 'TS_S05_A prvni' (jediný z TS_S05 s plánem/skutečností = S). Očekávaný výsledekDialog se zavře. Seznam předpisů v DistributionSelectionForm zobrazuje pouze 1 řádek: 'TS_S05_A prvni' (jediný z TS_S05 s plánem/skutečností = S). Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S05-01_SearchDialog.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S05-01 — Hledání záznamu podle vytvořené podmínky (E2E).xlsx |
| SC-HLED-004 | EP-HLED-SRCH | SearchDialog_TS003_RemoveCondition |
Passed | 39,8 s | ▸ Detail kroků (TC_ID: TC-E2E-128)PředpokladyTS-001 nebo TS-002 proběhlo. Dialog Hledání lze otevřít znovu. Kroky (Akce / Data / Očekávání)1. Otevři 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á)
Oček.: V akumulátoru jsou 2 řádky.
2. V akumulátoru hodnoty vyber 2. řádek ('X') a klikni na tlačítko Odeber.
Data: Vybraný řádek = 2 (= 'X')
Oček.: Z akumulátorů zmizí 2. řádek. Zůstává jen 1 řádek: 'Název předpisu' / 'LIKE' / 'TS_S05%'.
3. Klikni na OK.
Oček.: Dialog se zavře. 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). Očekávaný výsledekDialog se zavře. 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). Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S05-01_SearchDialog.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S05-01 — Hledání záznamu podle vytvořené podmínky (E2E).xlsx |
| SC-HLED-005 | EP-HLED-SRCH | SearchDialog_TS004_EmptyAccumulator |
Passed | 42,3 s | ▸ Detail kroků (TC_ID: TC-E2E-129)PředpokladyTS-000 proběhlo. Dialog Hledání lze otevřít. Kroky (Akce / Data / Očekávání)1. Otevři dialog Hledání a NEPŘIDÁVEJ žádnou podmínku.
Oček.: Akumulátory zůstávají prázdné.
2. Klikni na OK.
Oček.: 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. Klikni na Zrušit.
Oček.: Dialog se zavře. Seznam předpisů v DistributionSelectionForm zobrazuje opět 3 testovací řádky (nebyl aplikován žádný filtr). Očekávaný výsledekDialog se zavře. Seznam předpisů v DistributionSelectionForm zobrazuje opět 3 testovací řádky (nebyl aplikován žádný filtr). Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S05-01_SearchDialog.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S05-01 — Hledání záznamu podle vytvořené podmínky (E2E).xlsx |
| SC-HLED-006 | EP-HLED-SRCH | SearchDialog_TS005_NumericLessOrEqual |
Passed | 38,2 s | ▸ Detail kroků (TC_ID: TC-E2E-130)PředpokladyTS-000 proběhlo. Dialog Hledání lze otevřít. Kroky (Akce / Data / Očekávání)1. Otevři 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%
Oček.: Tlačítko Přidej akceptuje hodnotu. Akumulátor obsahuje řádek 'Název předpisu' / 'LIKE' / 'O'Brien%' (apostrof viditelný v zobrazení).
2. Klikni na OK.
Oček.: Dialog se zavře 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] Volitelně ověř, ž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');
Oček.: Dotaz vrátí 3 (původní 3 testovací předpisy). Pokud by SQL injection prošel a např. obsahoval DROP TABLE nebo DELETE, počet by byl menší nebo by tabulka neexistovala.
4. Otevři dialog Hledání znovu a přidej podmínku s českou diakritikou.
Data: Pole = Popis
Data: Operátor = LIKE
Data: Hodnota = %filtr A%
Oček.: Tlačítko Přidej akceptuje hodnotu, akumulátor obsahuje řádek s diakritikou.
5. Klikni na OK.
Oček.: Seznam předpisů zobrazí přesně 1 řádek: 'TS_S05_A prvni' (jehož popis je 'Pro filtr A — skutecnost'). Encoding diakritiky funguje korektně. Očekávaný výsledekSeznam předpisů zobrazí přesně 1 řádek: 'TS_S05_A prvni' (jehož popis je 'Pro filtr A — skutecnost'). Encoding diakritiky funguje korektně. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S05-01_SearchDialog.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S05-01 — Hledání záznamu podle vytvořené podmínky (E2E).xlsx |
| SC-HLED-007 | EP-HLED-SRCH | SearchDialog_TS006_CleanupData |
Passed | 4,1 s | ▸ Detail kroků (TC_ID: TC-E2E-131)PředpokladySada proběhla. V DB jsou pomocné řádky: 'TS S05-01 definice' a 3 předpisy pod ní. Kroky (Akce / Data / Očekávání)1. [SQL cleanup] Pre-flight: ověř, ž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');
Oček.: Dotaz vrátí 0.
2. [SQL cleanup] Smaž 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';
Oček.: 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;
Oček.: Řádky 'def S05-01' a 'pred TS_S05' = 0. Řádek 'majitel Bata' = 1. Očekávaný výsledekŘádky 'def S05-01' a 'pred TS_S05' = 0. Řádek 'majitel Bata' = 1. Vazba na saduTS spec: NEO_HEF/docs/Testovací sady/_definitions/RZP/TS-RZP-S05-01_SearchDialog.json | XLSX: NEO_HEF/docs/Testovací sady/TS-RZP-S05-01 — Hledání záznamu podle vytvořené podmínky (E2E).xlsx |
1 / 1 prošlo — TS-RZP-S07-01 — NAST Settings.xlsx · JSON spec
| Scénář | Epic | Test method | Status | Čas | Chyba / 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ářů.)
| Scénář | Epic | Test method | Status | Čas | 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 |