Egy számlát csak akkor lehet stornózni, ha nincs rajta kiegyenlítés. Amennyiben már rögzítve van a számlára kiegyenlítés, akkor előbb a kiegyenlítést kell stornózni ahhoz, hogy a számla stornózható legyen. A stornózás, a stornózandó tétel kijelölésével és [Stornó
gomb] megnyomásával történik. A pénzeszköz mozgások hatását át kell vezetni a pénzeszköz törzs táblán <PPeeTor> is.
Stornózás feltételei:
1. PSzaKie.StoKod=0 Stornó állapot Nem lehet stornó vagy stornózott tétel!
2. PSzaKie.FokAll=0 Főkönyvi állapot Nem lehet kontírozott tétel!
3. PSzaKie.PenAll = ’2’ Pénzügyi állapot Elszámolt árfolyam különbség
Select SzKiId From PSzaKie
Where p_SzKiId (PSzaKie.SzKiId) Not In (Select SzKiId From PArfKieOd)
Elszámolt árfolyam különbség állapotú tétel nem stornózható. Előbb a hozzá tartozó árfolyam különbség elszámolási tételt kell stornózni. Az elszámolási tétel stornózása visszaállítja az alap kiegyenlítési tétel pénzügyi állapotát alapra (1) és stornózza a tételpárt az összerendelési táblából. Így az alap tétel is stornózhatóvá válik.
A stornó tétel adatait a program automatikusan előállítja a stornózandó tételből a mozgáskód iránykódjának megváltoztatásával, ezen keresztül az értékadatok előjelének megváltoztatásával.
PSzaKie – Számla kiegyenlítés tábla – Új/Stornó tétel
Insert
Program által előállított adatok
A stornó tétel adatai alapvetően a stornózott tétel adataiból keletkeznek. Az alábbi felsorolásban csak azok a mezők szerepelnek, amelyek tartalma megváltozik.
Alap adatok:
A1. SzKiID Szla kiegyenlítés ID {<SzAlID+’/’+EloNull(TetSor,4)>} <BizaSo>
A2. SzAlID Számla alap ID <PSzaAla.SzAlID>
A5. TetSor Tételsorszám <Max(TetSor)+1>
A6. BizAzo Számla bizonylatszám <PSzaAla.BizAzo>
A7. BizaSo Bizonylat sorszám f(BtoKod,KnyvEv)
Új generálandó a bizonylattömb <BToKod> alapján.
Input adatok:
I2. PeeJog Pénzeszköz mozgáskód
A mozgáskód irányra utaló karaktere (2.) megváltozik: 1 – Növekedés helyett 2 – Csökkenés lesz.
I7. JovDev Jóváírás összege <-1*PSzaKie.JovDev>
I8. TerDev Terhelés összege <-1*PSzaKie.TerDev>
Számított adatok:
S1. JovHuf Jóváírás összege <-1*PSzaKie.JovHuf>
S2. TerHuf Terhelés összege <-1*PSzaKie.TerHuf>
S3. KieDev Kiegyenlítés összege <-1*PSzaKie.KieDev>
S4. KieHuf Kiegyenlítés összege <-1*PSzaKie.KieHuf>
Állapot adatok:
Á3. StoKod Stornó állapot: <2> - Stornó
Á4. MozElj Mozgás előjel <-1>
Á5. StornA Stornózott tétel ID <PSzaKie.SzKiID> Régi/Stornózott tétel
Á6. StornB Stornó tétel ID <0>
Napló adatok:
N1. Opekod Rögzítés napló adatok – Operátor kód generált
N2. Terkod Terminál kód generált
N3. Rogdat Rögzítés időpontja generált
PPeeTor – Pénzeszköztörzs tábla – Pénzeszköz: PSzaKie.PeeKod
Modify
Program által előállított adatok:
Ugyanaz, mint a kiegyenlítés könyvelésekor.
Érték adatok: A PSzaKie rekord a stornó tételre vonatkozik.
If PSzaKie.PeUKod<>0 Then
Begin
Ugyanaz, mint a kiegyenlítés könyvelésekor.
End Else
Napló adatok:
N1. Opekod Rögzítés napló adatok – Operátor kód generált
N2. Terkod Terminál kód generált
N3. Rogdat Rögzítés időpontja generált
PSzaAla – Számla alap tábla
Modify
A stornózás hatásának átvezetése a számla alap táblán az új mozgás (stornó) érték adataival történik !!!
Program által előállított adatok:
1. DeKiOs Kiegyenlítés összesen DEV <DeKiOs=DeKiOs+PSzaKie.KieDev>
2. EveDev Értékvesztés összege DEV <EveDev=EveDev+PSzaKie.EveDev>
3. EheDev Értékhelyesbítés összege DEV <EheDev=EheDev+PSzaKie.EheDev>
4. EgyDev Egyéb adat DEV <EgyDev=EgyDev+PSzaKie.EgyDev>
5. FtKiOs Kiegyenlítés összesen HUF <FtKiOs=FtKiOs+ PSzaKie.KieHuf>
6. EveHuf Értékvesztés összege HUF <EveHuf=EveHuf+PSzaKie.EveHuf>
7. EheHuf Értékhelyesbítés összege HUF <EheHuf=EheHuf+PSzaKie.EheHuf>
8. EgyHuf Egyéb adat HUF <EgyHuf=EgyHuf+PSzaKie.EgyHuf>
| 9. | Allapo Számla állapot: A számla összege és az összes kiegyenlítés figyelembevételével előállított kód PAL |
1-Elővezetett DeKiOs<1E-4
2-Részben teljesített DeKiOs>1E-4 AND DeOsz-DeKiOs>KAzoAda.KieErtHat
3-Kiegyenlített DeOsz-DeKiOs< KAzoAda.KieErtHat
10. Opekod Operátor kód generált
11. Terkod Terminál kód generált
12. Rogdat Rögzítés időpontja generált
A számla kiegyenlítések rögzítésekor a számla áru adatok rögzítéséhez hasonlóan a program egy trigger segítségével átszámítja a számla fej kiegyenlítésekkel kapcsolatos adatait. A számla fejben a kiegyenlítésekre vonatkozó adatok eltárolása indokolatlan redundancia, mivel a kiegyenlítési adatok a számlához kapcsolódó kiegyenlítések adatai alapján előállíthatóak.
PSzaKie – Számla kiegyenlítés árfolyam-különbözet alap – PSzaKieX.SzKiId
Modify
Ha a stornózandó kiegyenlítési mozgás árfolyam-különbség elszámolási tétel volt, akkor az árfolyam-különbség elszámolás alapjául szolgáló mozgás pénzügyi állapotát alap állapotba (1) tesszük vissza, mivel az árfolyam-különbözet elszámolási tétel stornózásával, az alap tétel ismét nincs elszámolva az árfolyam különbözet. Az árfolyam-különbözet tételhez tartozó alap kiegyenlítést a kiegyenlítés összerendelő tábla (PArfKieOs) alapján keressük ki.
If PSzaKieA.PenAll = ’3’ Then
Begin
UpDate PSzaKie Set PenAll = ’1’ From PSzaKie kie, PArfKieOs os
Where kie.SzKiId = os.SzKiId and os.ArKuId = p_SzKiId (PSzaKieA.SzKiId)
End Else;
PArfKieOs – Árfolyam-különbözet kiegyenlítési összerendelő tábla
Delete
Ha a stornózandó kiegyenlítési mozgás árfolyam-különbség elszámolási tétel volt, akkor az alap és az árfolyam különbség összerendelését törölni kell az összerendelő táblából.
If PSzaKieA.PenAll = ’3’ Then Delete From PArfKieOs Where ArKuId = p_SzKiId (PSzaKieA.SzKiId);