Egyedi devizás eszközönként és forrásonként egy pénzügyi eszköz lett létrehozva a rendszerben (Pl: Pénztár – USD), melyeknek értékváltozásai a Pénzügyi eszköz mozgás adminisztráció funkcióban lettek rögzítve.
A funkció segítségével a devizás pénzügyi eszközök számviteli fordulónapi egyenlege és mérleg szerinti fordulónapi egyenlegének eltéréséből adódó érték különbözetet számolhatjuk el automatizáltan.
Forrás: Frm_FordNapAtertekPee
Script: PeeAtert_UtoFor.sql
Jogosultságkód: 242630 Help context: 242630

Az átértékelés lépései:
1. Input adatok megadása
2. Az átértékelendő pénzeszköz kiválasztása
3. Fordulónap utáni forgalom kigyűjtése PeeAtert_UtoFor.sql
4. Átértékelési adatok kiszámítása
5. A kiválasztott pénzeszköz átértékelhetőségének ellenőrzése
6. Az átértékelés elvégzése
6.1. Az átértékelési pénzmozgás rögzítése
6.2. Az utólagos forgalom mozgásainak átszámítása
Az elszámolás input adatai:
1. DevDatF A fordulónap dátuma
2. EgyNapX Egyenlegközlés napja
Ehhez a funkcióhoz ez a dátum közvetlenül nem szükséges. Csak azért szerepel ezen a formon, mert a fordulónaphoz van kötve.
3. BtoKodX Bizonylattömb
A generált átértékelési pénzmozgás bizonylattömbje.
Jogcím: PK
Átértékelési adatok kiszámítása
EgyenlegDevFej Pénzeszköz aktuális devizás egyenleg
EgyenlegHufFej Pénzeszköz aktuális forintos egyenleg
DevArfFej Pénzeszköz aktuális deviza árfolyam
Sum(EgyenlegDevKie) Utólagos forgalom devizás egyenleg
Sum(EgyenlegHufKie) Utólagos forgalom forintos egyenleg
SzamvErtDev Számviteli érték devizás (Fordulónapi devizás egyenleg)
= EgyenlegDevFej – Sum(EgyenlegDevKie)
SzamvErtHuf Számviteli érték forintos (Fordulónapi forintos egyenleg)
= EgyenlegHufFej – Sum(EgyenlegHufKie)
MerlegErt – Mérleg érték
MerlegErtHuf = SzamvErtDev * FordArf
A pénzeszköz mérleg szerinti értéke a devizás számviteli érték és fordulónapi árfolyam szorzata
ErtKulX – Fordulónapi értékelési különbözet
ErtKulX := MerlegErtHuf – SzamvErtHuf vagy részletesen:
A fordulónapi értékelési különbözet a fordulónapi mérlegérték (MerlegErtHuf) és a számviteli érték (SzamvErtHuf) különbsége.
Az adatok számítási módját alapvetően az befolyásolja, hogy eszköz (1), vagy forrás (2) jellegű pénzeszközről van-e szó (EsFoJeFej), illetve az, hogy milyen az értékelési különbözet (ErtKulX) előjele.
EsFoJeFej |
MerlegErtHuf > SzamvErtHuf |
MerlegErtHuf < SzamvErtHuf |
1 – Eszköz |
Árfolyam nyereség |
Árfolyam veszteség |
2 – Forrás |
Árfolyam veszteség |
Árfolyam nyereség |
A pénzeszköz átértékelésének feltételei: PPeeTor
1. DevKod <> KA.AlaDev Devizás pénzeszköz
2. FokKod[1] in (’1’,’2’,’3’,’4’) Mérleg tétel pénzeszköz
3. EloKod = ’I’ Élő
4. Abs(ErtKulX) > Nulla Van elszámolható értékelési különbözet
A kiegyenlítési mozgások átértékelésének feltételei:
1. A forduló nap után rögzített mozgások árfolyam különbsége még nincs elszámolva. Így a mozgás új bekerülési értéke átírható.
Sum(ArkTet) = 0
2. A forduló nap után rögzített mozgások nincsenek kikontírozva. Így a mozgás új bekerülési értéke átírható.
Sum(FokTet) = 0
PSzaKie – Számla kiegyenlítés tábla
Insert
Alap adatok:
A1. SzKiID Szla kiegyenlítés ID pk f(BtoKod,KnyvEv)
A2. SzAlID Számla alap ID <0>
A3. KnyvEv Könyvelés éve <ForduloNap-ból>
A4. KnyvHo Könyvelés hónapja <ForduloNap-ból>
A5. TetSor Tétel sorszám
A6. BizAzo Számla bizonylatszám <0>
A7. BizaSo Bizonylat sorszám f(BtoKod,KnyvEv)
A8. SzKiIDCs Számla kiegyenlítés ID – Csoportos <0>
A9. SzKiIDEl Számla kiegyenlítés ID – Ellen <0>
Input adatok:
I1. FimKod Fizetési mód <0> fk: AFimTor.FimKod
I2. PeeKod Pénzeszköz kód PeeKodX fk: PPeeTor.PeeKod
A fordulónapi értékelés pénzügyi eszköze.
I3. PeuKod Pénzügyi eszköz kód – Alap <0> fk: PPeeTor.PeeKod
I4. PeeJog Pénzeszköz mozgáskód fk: PPeJoDf.PeJoKd
A fordulónapi értékelés elszámolásának mozgáskódja. A számla típusától és a fordulónapi értékelésikülönbözet előjelétől függ az ajánlott adat.
A négy lehetséges elszámolási módhoz (Szállító / Vevő – Nyereség / Veszteség) négy különböző mozgáskód tartozik. Ez egyrészt azért van mert egy mozgáskód csak vagy a szállítói, vagy a vevői bizonylaton választható ki, másrészt pedig a nyereség és a vesztéség kontírozásának más a kontírozás típusa.
If EsfojeFej = ’1’ Then
Begin {Eszköz}
If ErtKulX > Nulla
Then KAzoAda.PeeJogKieVev {Nyereség – Jóváírás}
Else KAzoAda.PeeJogKieSza {Veszteség – Terhelés}
End
Else
Begin {Forrás}
If ErtKulX < Nulla
Then KAzoAda.PeeJogKieSza {Nyereség – Terhelés}
Else KAzoAda.PeeJogKieVev {Veszteség – Jóváírás}
End
I5. BToKod Bizonylat tömb <BtoKodX> fk: KBToTor.BtoKod
I6. DevKod Devizanem kód <DevFej / PPeeTor.DevKod> fk: ADevTor.DevKod
I7. MegJeg Megjegyzés Fordulónapi átértékelés
I8. MellDb Mellékletek száma <0>
I9. Bizony Bizonylatszám <0>
I10. KonDat Könyvelés dátum <ForduloNap>
I11. ErtDat Értéknap dátum <ForduloNap>
Deviza input adatok:
D1. DevBan Deviza átszámítási bank fk: PBanAzo.BanAzo
<KA.BanAzoD> A fordulónapi értékelés deviza bankja.
D2. DevDat Deviza átszámítási dátum
<ForduloNap> Mérleg fordulónap.
D3. DevArf Deviza átszámítási árfolyam
<FordArf> Fordulónapi árfolyam.
Érték adatok:
É1. JovDev Jóváírás összege DEV <0>
É2. TerDev Terhelés összege DEV <0>
É3. EveDev Értékvesztés összege DEV <0>
É4. EheDev Értékhelyesbítés DEV <0>
É5. EgyDev Egyéb adat DEV <0>
Számított adatok:
S1. JovHuf Jóváírás összege HUF
If PeeJog[1] = ’1’ Then Abs(ErtKulX) Else 0
S2. TerHuf Terhelés összege HUF
If PeeJog[1] = ’2’ Then Abs(ErtKulX) Else 0
S3. EveHuf Értékvesztés összege HUF <0>
S4. EheHuf Értékhelyesbítés HUF <0>
S5. EgyHuf Egyéb adat HUF <0>
S6. KieHuf Kiegyenlítés összege HUF =JovHuf – TerHuf
S7. KieDev Kiegyenlítés összege DEV =JovDev – TerDev
Állapot adatok:
Á1. PenAll Pénzügyi állapot ARK <0>
Á2. FokAll Főkönyvi állapot FAL <0>
Á3. StoKod Stornó állapot: STO <0>
Á4. MozElj Mozgás előjel <1>
Á5. StornA Stornózott tétel azonosítója – Forrás <0>
Á6. StornB Stornó tétel azonosítója – Cél <0>
Á7. SzNyDb Nyomtatott bizonylat példányszáma <0>
Számviteli adatok:
F1. ProKod Project <0>
F2. SzeKod Szervezeti egység <0>
F3. DolKod Dolgozó <0>
F5. KtgSzl Költség főkszla <X>
F6. KtgJel Költség jelleg FKT <0>
F7. KtgTip Költség típus FTP <0>
F10. ParKod Partner <0>
F11. SzlJel Számla jelleg FSJ <0>
F12. TevKod Tevékenység kód <0>
If (EsfojeFej = ’1’ and PeeJog[1] = ’1’) or (EsfojeFej = ’2’ and PeeJog[1] = ’2’) Then
Begin Eszköz jóváírás vagy forrás terhelés -> Árfolyam nyereség
F9. AruKod Áru kód SA.MeAruArfNy
F8. AktKod Áru katalógus AruTor(AruKod).AktKod
F4. FokKod Főkönyvi számla AAktTor(AktKod).VFokKod
End
Else
Begin Árfolyam veszteség
F9. AruKod Áru kód SA.MeAruArfVe
F8. AktKod Áru katalógus AruTor(AruKod).AktKod
F4. FokKod Főkönyvi számla AAktTor(AktKod).VRafSzl
End
Napló adatok:
N1. Opekod Rögzítés napló adatok – Operátor kód
N2. Terkod Terminál kód
N3. Rogdat Rögzítés időpontja
PPeeTor.Update
PPeeTor.JovHuf := PPeeTor.JovHuf + PSzaKie.JovHuf
PPeeTor.TerHuf := PPeeTor.TerHuf + PSzaKie.TerHuf
Összegezendő adatmezők:
SumErtDev := SzamvErtDev Számviteli érték devizás
A devizás kumulált mező induló értéke a számviteli fordulónapi devizás érték, azaz a fordulónapi egyenleg.
SumErtHuf := MerlegErtHuf Mérleg érték forintos
A forintos kumulált mező induló értéke a mérleg érték, azaz a devizás egyenleg fordulónapi árfolyamon.
N Átértékelendő tételek száma
Az átértékelés elvégzése
For .i = 1 To N Do
Begin {Ciklus kezdete}
Az átértékelés feltételei:
1. Abs(TerDevKieU) > Nulla Devizás terheléses pénzmozgás
2. DevKie = DevFej A kiegyenlítés és pénzeszköz devizaneme megegyezik
| 3. MozFaj = ’PEE’ | Pénzeszközhöz (nem pénzügyi eszközhöz) kapcsolódó kiegyenlítési mozgás |
Módosított adatmezők: Csak, ha van átértékelés
DevArfX := Round(SumErtHuf / SumErtDev, 5) Aktuális devizaárfolyam
Az aktuális deviza árfolyam a kumulált forintos és devizás érték hányadosa
1. PSzaKie.MellDb = PSzaKie.TerHuf
A mellékletek darabszáma mezőbe eltesszük a terhelés átértékelés előtti értékét, hogyha vissza kell csinálni az átértékelést, rendelkezésünkre álljon az eredeti érték.
2. PSzaKie.TerHuf = Round(PSzaKie.TerDev * DevArfX, 2) Terhelés forintos
A forintos terhelés új értéke a devizás terhelés és az aktuális árfolyam szorzata lesz.
4. PSzaKie.DevArf = DevArfX Deviza árfolyam
A kiegyenlítés deviza árfolyama az aktuális deviza árfolyam
5. PenAllKie PSzaKie.PenAll Pénzügyi (árfolyam különbözet elszámolási) állapot
If Abs(DevDatFSz-DevArfX) > Nulla Then PenAll := ’1’ Else PenAll := ’0’
Mivel a kiegyenlítés árfolyama megváltozott, ezért újra kell értékelni az árfolyam különbözet elszámolási állapotát.
6 PSzaKie.OpeKod, TerKod, RogDat Napló adatok
A pénzmozgáshoz kapcsoló számla értékadatainak átszámítása Csak, ha van átértékelés
Ha a számlához kapcsolódó kiegyenlítés értéke megváltozik, akkor a számla kiegyenlítés összege is módosul.
Az átszámítás feltételei:
1. SzamlaAzon <> ’0’ PSzaKie.SzAlId A kiegyenlítés számlához kapcsolódik
Átszámított adatmezők:
1. PSzaAla.BizaDb := PSzaKie.FtKiOs
A bizonylatok darabszáma mezőbe eltesszük a számla átértékelés előtti értékét, hogyha vissza kell csinálni az átértékelést, rendelkezésünkre álljon az eredeti érték.
2. PSzaAla.FtKiOs := PSzaAla.FtKiOs + ErtValX Kiegyenlített összeg – forintos
If PSzaAla.TipusK = ’1’ Then ErtValX := PSzaKie.TerHuf[Új] - PSzaKie.TerHuf[Régi]
Else ErtValX := PSzaKie.TerHuf[Régi] - PSzaKie.TerHuf[Új]
A számla kiegyenlítés összegét a kiegyenlítési mozgás átértékelés előtti és utáni értékének különbözetével módosítjuk.
Az adatmező összegzése:
Cikluson belül, az átértékelés elvégzése után a kumulálást a kiegyenlítés eredeti (átértékelés előtti) egyenlegével végzezzük el.
SumErtDev := SumErtDev + EgyenlegDevKie
SumErtHuf := SumErtHuf + EgyenlegHufKie
End {Ciklus vége}