"Uživatelské" uložené procedury v účetnictví
Napsal: 10.01.2007 17:40
dbo.ep_UCTO01
Po naimportování úč.dokladů z TXT souboru do importní tabulky úč. deníku je automaticky spuštěna uložená procedura dbo.ep_UCTO01 (pokud v databázi existuje). Existenci ani obsah procedury Helios nijak nekontroluje, je plně v režii uživatele. Procedura nemá žádné povinné parametry.
V proceduře lze využít toho, že jsou úč. doklady již načteny v tabulce TabDenikImp a lze tak na nich provést potřebné úpravy.
O probíhající proceduře je uživatel informován info-obrazovkou.
Po ukončení procedury je standardně zobrazen editoru pro zaúčtování úč.dokladů z imporního deníku do deníku (zobrazený přehled naimportovaných úč.dokladů je již po případné modifikaci procedurou).
dbo.ep_UCTO02
Ve chvíli, kdy je již nový záznam vygenerován do TabDenik a zdrojový záznam v TabDenikImp není ještě smazán, je volána procedura dbo.ep_UCTO02 (opět jen pokud v databázi existuje).
Parametry
@Nazvy NVARCHAR(255) - seznam názvů externích atributů (oddělený čárkami)
@IdDenik INT - ID insertovaného záznamu do TabDenik
@IdDenikImp INT - ID zdrojového záznamu v TabDenikImp
Využití procedury
1) s použitím parametru @Nazvy
Nutná konstrukce přes EXEC.
Lze plnit všechny externí atributy z jiných záznamů v TabDenikImp nebo TabDenik_EXT.
Příklad:
CREATE PROCEDURE dbo.ep_UCTO02 @Nazvy NVARCHAR(255), @IdDenik INT, @IdDenikImp INT
AS
SET NOCOUNT ON
DECLARE @IdDENCh NVARCHAR(10)
SET @IdDENCh=CAST(@IdDenik AS NVARCHAR(10))
DELETE FROM TabDenik_EXT WHERE Id=@IdDenik
EXEC(N'INSERT INTO TabDenik_EXT (Id,'+@Nazvy+N') SELECT '+@IdDENCh+N','+@Nazvy+N' FROM TabDenikImp WHERE....')
nebo
CREATE PROCEDURE dbo.ep_UCTO02 @Nazvy NVARCHAR(255), @IdDenik INT, @IdDenikImp INT
AS
SET NOCOUNT ON
DECLARE @IdDENCh NVARCHAR(10)
SET @IdDENCh=CAST(@IdDenik AS NVARCHAR(10))
DELETE FROM TabDenik_EXT WHERE Id=@IdDenik
EXEC(N'INSERT INTO TabDenik_EXT (Id,'+@Nazvy+N') SELECT '+@IdDENCh+N','+@Nazvy+N' FROM TabDenik_EXT JOIN TabDenik ON TabDenik.Id=TabDenik_EXT.Id WHERE TabDenik...')
2) bez použití parametru @Nazvy
Tady není potřeba kontrukce přes EXEC, ale je nutné samozřejmě atributy jmenovat. Parametr @Nazvy se ale musí formálně zachovat.
Příklad :
(externí atributy : _RetezecExt NVARCHAR, _DatumExt DATETIME, _CastkaExt NUMERIC, _PriznakExt BIT, _PocetExt INT)
CREATE PROCEDURE dbo.ep_UCTO02 @Nazvy NVARCHAR(255), @IdDenik INT, @IdDenikImp INT
AS
SET NOCOUNT ON
UPDATE TabDenik_EXT SET _RetezecExt='Popis', _DatumExt='20131220', _CastkaExt=1000.00, _PriznakExt=1, _PocetExt=100
WHERE TabDenik_EXT.Id=@IdDenik
dbo.ep_UCTO03
Možnost volání externí uložené procedury byla doplněna i do generování platebních příkazů. Jmenuje se ep_UCTO03, je volána pouze v případě, že existuje. Spouští se na úplný závěr generování PP (hlavičky, řádků i detailů), takže s její pomocí lze měnit hodnoty vygenerovaného PP.
Procedura má povinné parametry @X1 INT, @X2 INT.
Při volání se plní takto :
@X1 ... ID saldokontního případu
@X2 ... ID hlavičky vygenerovaného plat.příkazu
Platí pro generování tuzemských i zahraničních PP.
POZOR - proceduru ep_UCTO03 je možné využít jen při generování PP nebo generování sdružených PP systémem. Při ručním vystavení PP se neuplatní.
Příklad použití:
Zákazník má požadavek "nějak" v rámci standardního importu do úč.deníku přenášet i údaj o bankovním spojení na budoucí PP.
TXT importní struktura bude tedy rozšířena (dle konvence) o potřebné údaje bank.spojení (číslo účtu, konst.symbol, spec.symbol apod). Tyto ext.sloupce budou označeny v TXT indikátorem $ (nebudou tedy vytvářeny ext.sloupce v TabDenik_EXT).
Ve fázi 1 importu dojde k rozšíření struktury TabDenikImp a přenosu údajů bank.spojení do TabDenikImp. Použitím externí uložené procedury ep_UCTO01 bude dohledáno případně vygenerováno příslušné bankovní spojení, jehož ID bude zapsáno do dalšího ext.sloupce v TabDenikImp - tento sloupce již bude určen pro vygenerování ext.atributu v TabDenik_EXT.
Ve fázi 2 importu dojde k naplnění ext.atributu v TabDenik_EXT identifikátorem bankovního spojení.
Po zaúčtování importovaných úč.dokladů vzniknou saldokontní případy, ze kterých budou generovány PP. Při generování bude použita externí procedura ep_UCTO03, která zajistí přepsání původního bank.spojení dotaženého systémem bankovním spojením, které je přiřazeno příslušným úč.zápisům jako externí atribut.
Po naimportování úč.dokladů z TXT souboru do importní tabulky úč. deníku je automaticky spuštěna uložená procedura dbo.ep_UCTO01 (pokud v databázi existuje). Existenci ani obsah procedury Helios nijak nekontroluje, je plně v režii uživatele. Procedura nemá žádné povinné parametry.
V proceduře lze využít toho, že jsou úč. doklady již načteny v tabulce TabDenikImp a lze tak na nich provést potřebné úpravy.
O probíhající proceduře je uživatel informován info-obrazovkou.
Po ukončení procedury je standardně zobrazen editoru pro zaúčtování úč.dokladů z imporního deníku do deníku (zobrazený přehled naimportovaných úč.dokladů je již po případné modifikaci procedurou).
dbo.ep_UCTO02
Ve chvíli, kdy je již nový záznam vygenerován do TabDenik a zdrojový záznam v TabDenikImp není ještě smazán, je volána procedura dbo.ep_UCTO02 (opět jen pokud v databázi existuje).
Parametry
@Nazvy NVARCHAR(255) - seznam názvů externích atributů (oddělený čárkami)
@IdDenik INT - ID insertovaného záznamu do TabDenik
@IdDenikImp INT - ID zdrojového záznamu v TabDenikImp
Využití procedury
1) s použitím parametru @Nazvy
Nutná konstrukce přes EXEC.
Lze plnit všechny externí atributy z jiných záznamů v TabDenikImp nebo TabDenik_EXT.
Příklad:
CREATE PROCEDURE dbo.ep_UCTO02 @Nazvy NVARCHAR(255), @IdDenik INT, @IdDenikImp INT
AS
SET NOCOUNT ON
DECLARE @IdDENCh NVARCHAR(10)
SET @IdDENCh=CAST(@IdDenik AS NVARCHAR(10))
DELETE FROM TabDenik_EXT WHERE Id=@IdDenik
EXEC(N'INSERT INTO TabDenik_EXT (Id,'+@Nazvy+N') SELECT '+@IdDENCh+N','+@Nazvy+N' FROM TabDenikImp WHERE....')
nebo
CREATE PROCEDURE dbo.ep_UCTO02 @Nazvy NVARCHAR(255), @IdDenik INT, @IdDenikImp INT
AS
SET NOCOUNT ON
DECLARE @IdDENCh NVARCHAR(10)
SET @IdDENCh=CAST(@IdDenik AS NVARCHAR(10))
DELETE FROM TabDenik_EXT WHERE Id=@IdDenik
EXEC(N'INSERT INTO TabDenik_EXT (Id,'+@Nazvy+N') SELECT '+@IdDENCh+N','+@Nazvy+N' FROM TabDenik_EXT JOIN TabDenik ON TabDenik.Id=TabDenik_EXT.Id WHERE TabDenik...')
2) bez použití parametru @Nazvy
Tady není potřeba kontrukce přes EXEC, ale je nutné samozřejmě atributy jmenovat. Parametr @Nazvy se ale musí formálně zachovat.
Příklad :
(externí atributy : _RetezecExt NVARCHAR, _DatumExt DATETIME, _CastkaExt NUMERIC, _PriznakExt BIT, _PocetExt INT)
CREATE PROCEDURE dbo.ep_UCTO02 @Nazvy NVARCHAR(255), @IdDenik INT, @IdDenikImp INT
AS
SET NOCOUNT ON
UPDATE TabDenik_EXT SET _RetezecExt='Popis', _DatumExt='20131220', _CastkaExt=1000.00, _PriznakExt=1, _PocetExt=100
WHERE TabDenik_EXT.Id=@IdDenik
dbo.ep_UCTO03
Možnost volání externí uložené procedury byla doplněna i do generování platebních příkazů. Jmenuje se ep_UCTO03, je volána pouze v případě, že existuje. Spouští se na úplný závěr generování PP (hlavičky, řádků i detailů), takže s její pomocí lze měnit hodnoty vygenerovaného PP.
Procedura má povinné parametry @X1 INT, @X2 INT.
Při volání se plní takto :
@X1 ... ID saldokontního případu
@X2 ... ID hlavičky vygenerovaného plat.příkazu
Platí pro generování tuzemských i zahraničních PP.
POZOR - proceduru ep_UCTO03 je možné využít jen při generování PP nebo generování sdružených PP systémem. Při ručním vystavení PP se neuplatní.
Příklad použití:
Zákazník má požadavek "nějak" v rámci standardního importu do úč.deníku přenášet i údaj o bankovním spojení na budoucí PP.
TXT importní struktura bude tedy rozšířena (dle konvence) o potřebné údaje bank.spojení (číslo účtu, konst.symbol, spec.symbol apod). Tyto ext.sloupce budou označeny v TXT indikátorem $ (nebudou tedy vytvářeny ext.sloupce v TabDenik_EXT).
Ve fázi 1 importu dojde k rozšíření struktury TabDenikImp a přenosu údajů bank.spojení do TabDenikImp. Použitím externí uložené procedury ep_UCTO01 bude dohledáno případně vygenerováno příslušné bankovní spojení, jehož ID bude zapsáno do dalšího ext.sloupce v TabDenikImp - tento sloupce již bude určen pro vygenerování ext.atributu v TabDenik_EXT.
Ve fázi 2 importu dojde k naplnění ext.atributu v TabDenik_EXT identifikátorem bankovního spojení.
Po zaúčtování importovaných úč.dokladů vzniknou saldokontní případy, ze kterých budou generovány PP. Při generování bude použita externí procedura ep_UCTO03, která zajistí přepsání původního bank.spojení dotaženého systémem bankovním spojením, které je přiřazeno příslušným úč.zápisům jako externí atribut.