| 4.0. | Kompenzáció |
Az automatikus kompenzáció funkció a vevő és szállító pénzügyi bizonylatok kiegyenlítendő összegeinek egymással szembeni kiegyenlítésére szolgál. Ezáltal mind a két bizonylat kiegyenlítendő összege ugyanazzal az értékkel csökken.
A kompenzációs funkció a pénzügyi bizonylat (számla) adminisztráció funkció [Kiegyenlítés] képernyőjéről indítható el a [Kompenzáció] gomb megnyomásával.

| 4.0.1. | Kompenzáció elmélete |
Kompenzációs adat összerendelés típusa: 1 : N
Ez azt jelenti, hogy egy szállító bizonylat több (N db) vevő bizonylattal szemben, illetve egy vevő bizonylat több szállító bizonylattal szemben kompenzálható. A kompenzációt mindig az egyedi elem (1) bizonylatán kell kezdeményezni. Innen választható hozzá a kompenzálandó több (N) elem.
Kompenzáció módja: KomModX Input adat.
1. Normál
2. Túlfizetés
Kiinduló számla típus: TipusX:=PSzaAla.TipusK Számított adat.
Az egyedi bizonylat (1) típusa, amelynek kiegyenlítési fülén a kompenzációt elvégzzük.
Kompenzáció fajtája: KomFajX Számított adat.
A kiinduló számla típusának és választott kompenzációs módnak az ismeretében meghatározható a kompenzáció fajtája.
KomFajX Kompenzálás módja: KomModX
Számla típus: TipusX 1 – Normál 2 – Túlfizetés
1 – Szállító 1 3
2 – Vevő 2 4
1. Szállító (1) – Vevő (N) Szállító normál kompenzáció
2. Vevő (1) – Szállító (N) Vevő normál kompenzáció
3. Szállító (1) – Szállító (N) Szállító túlfizetés kompenzáció
4. Vevő (1) – Vevő (N) Vevő túlfizetés kompenzáció
Kompenzáció típusa: KomTipX
1. Teljes
A program a kompenzációra rendelkezésre álló összeg (kompenzációs alap / 1 tétel egyenlege) illetve a kompenzálandó összeg (N tétel összesített egyenlege) közül a kisebbik összeggel csökkenti az 1 és az N tétel egyenlegeit.
2. Vezérelt
A kompenzációt végző operátor megadhatja a kompenzációs alap összeget, valamint az egyes kompenzálandó tételek kompenzálásakor rendelkezésre álló maximális összeget. Így a program a kompenzációt az egyes tételeknél a megadott értékhatárig végzi el. Az egyes tételeknél az operátor által megadott új értékhatár csak kisebb vagy egyenlő lehet, mint a bizonylat aktuális egyenlege.
| 4.0.2. | Kompenzáció elvégzése |
| 4.0.2.1. | Kompenzáció elvégzésének feltételei |
Ugyanazok, mint a szállító illetve vevő bizonylatok kiegyenlítésének feltételei.
A kiegyenlítési adatok rögzítésének feltételei:
A, PSzaAla.StoKod=0 AND Nem stornó vagy stornózott tétel
B, ((Szállítói számla: PSzaAla.TipusK=1 AND) Szállítói számla
PSzaAla.JovAll=1 – Jóváhagyott AND Jóváhagyott
KAzoAda.KieJovFigy='I') OR Kiegyenlítés jóváhagyás figyelés szükséges
C, (Vevő számla: PSzaAla.TipusK=2)) Vevő számla: nincs külön feltétel
Kiegyenlítés akkor rögzíthető, ha a tétel nem stornózott vagy stornó illetve szállítói számla esetén, ha már a számla utalványozva, kifizetésre engedélyezve van.

| 4.0.2.2. | A kompenzáció input adatai |
Kompenzálandó bizonylat kiválasztása:
Kiinduló számla típus: TipusX:=PSzaAla.TipusK
Kompenzáció módja: KomModX Rádió gomb
1. Normál
2. Túlfizetés
Általános input adatok:
I1. PeeKodX Pénzeszköz kód – Pénzügyi rendezés fk: PPeeTor.PeeKod
Annak a pénzügyi eszköznek (pénzeszköznek) a kódja, amelynek terhére / javára a kiegyenlítés történik. A kompenzációs pénzeszköz.
<A:KAzoAda.KoPeeKod>
I2. PeeJog Pénzeszköz mozgáskód fk: PPeJoDf.PeJoKd
A szállító és vevő bizonylat könyveléséhez más-más mozgáskód szükséges, ezért két mozgáskód inputjára van szükség:
PeeJogA – Alap
PeeJogK – Kompenzáció
A kompenzáció fajtájától függően más-más típusú (PPeJoDf.TipusK) illetve jellegű (PPeJoDf.PeJoJe) mozgások közül lehet választani.
PeeJogA – Alap PeeJogK – Kompenzáció
KomFajX TipusK PeJoJe TipusK PeJoJe
1. Szállító normál kompenzáció 1 2 2 1
2. Vevő normál kompenzáció 2 1 1 2
3. Szállító túlfizetés kompenzáció 1 2 1 1
4. Vevő túlfizetés kompenzáció 2 1 2 2
<A:KAzoAda.KoPeeJog11/12/21/22>
TipusK – Számla típus PeJoJe – Mozgás jelleg
1 – Szállító 1 – Jóváírás
2 – Vevő 2 – Terhelés
I12. BToKodX Bizonylat tömb fk: KBToTor.BtoKod
<A:KAzoAda.KoBtoKod>
I5. FimKodX Fizetési mód fk: AFimTor.FimKod
<A:KAzoAda.KoFimKod>
I10. MegJegX Megjegyzés
I3. KonDatX Könyvelés dátum
Ezzel a dátummal történik a főkönyvi könyvelés.
<A:PSzaAla.TelDat> A program felajánlja a számla teljesítés dátumát.
Deviza input adatok:
Deviza adatok beírása csak akkor szükséges és lehetséges, ha a számla vagy devizaneme nem az alapértelmezett devizanem <PSzaAla.DevKod<>KAzoAda.AlaDev> (HUF).
D1. DevBanX Deviza átszámítási bank fk: PBanAzo.BanAzo
Annak a banknak az azonosítója, amelynek az árfolyamán a deviza érték átszámítása történik.
<A:KAzoAda.PBanAzo>
D2. DevDatX Deviza átszámítási dátum
<A:KonDat> A program felajánlja a kiegyenlítés dátumát.
D3. DevArfX Deviza átszámítási árfolyam
A bankazonosító, a devizanem és az átszámítás dátuma alapján az árfolyamtörzsből felolvassa a megfelelő árfolyamot (vételi, közép, eladási), ha az szerepel az árfolyamtörzsben. A felajánlott árfolyam felülírható, illetve ha nem tudott a program ajánlani adatok, akkor az árfolyam beírható.
Ajánlás: (DevDat, DevBan,DevKod) alapján
| 4.0.2.3. | Kompenzálandó tételek leválogatása |
Jelölések: [A] Kompenzációs alap számla 1 tétel
[K] Kompenzációs tételek N tétel
| 4.0.2.3.1 | Szűrési feltételek |
| 4.0.2.3.1.1 | Fix szűrési feltételek |
T2. Jelleg Számla jelleg PJL = 1 – 8, H
T4. Status Számla státusz: PST = 1 – Elfogadott
I5. CimPar Partner – Címzett = PSzaAla[A].CimPar
I12. DevKod Deviza kód = PSzaAla[A].DevKod
Á1. StoKod varchar Stornó állapot: STO = 0 – Alap
| 4.0.2.3.1.2 | Kompenzáció fajtájától függő feltételek |
Case KomFajX Of
1:Szállító (1) – Vevő (N) normál
A5. TipusK Számla típus PTI 1 – Vevő
2:Vevő (1) – Szállító (N) normál
A5. TipusK Számla típus PTI 1 – Szállító AND
(Á14. JovAll Jóváhagyási állapot EAL 1 – Elfogadott OR
KAzoAda.KieJovFigy Jóváhagyási állapot figyelés N – Nem)
3:Szállító (1) – Szállító (N) túlfizetés
A5. TipusK Számla típus PTI 1 – Szállító
(Á14. JovAll Jóváhagyási állapot EAL 1 – Elfogadott OR
KAzoAda.KieJovFigy Jóváhagyási állapot figyelés N – Nem)
4:Vevő (1) – Vevő (N) túlfizetés
A5. TipusK Számla típus PTI 2 – Vevő
| 4.0.2.3.2 | Előállított kompenzációs adatok |
Kompenzációs alap számla: [1] Az a számla, amelyen a kompenzációt végezzük.
Azonosító: SzAlIdA := PSzaAlaA.SzAlId
Egyenleg: EgyenlegDevA := PSzaAlaA.DeOssz – PSzaAlaA.DeKiOs
– PSzaAlaA.ElOssz
Kompenzációs tételek : [N] Azok a számlák, amelyeket kompenzálunk.
Azonosító: SzAlIdK[i] := PSzaAlaK[i].SzAlId
Egyenleg: EgyenlegDevK[i] := PSzaAlaK[i].DeOssz – PSzaAlaK[i].DeKiOs
– PSzaAlaK[i].ElOssz
i := 1 .. N
Kompenzálásra jóváhagyott összegek: Ajánlás:
Kompenzációs alap számla: KomOszA := EgyenlegDevA
Kompenzációs tételek: KomOszK[i] := EgyenlegDevK[i]
Az elfogadott összeg 0 és a számla egyenlege (EgyenlegDev) között lehet.
A kompenzáció elvégzése előtt ellenőrzi a program, hogy a kompenzáció megadott dátuma korábbi-e, mint a kompenzációban részt vevő számlák közül a legkésőbbinek a teljesítés dátuma. Csak olyan dátummal végzi el a program a kompenzálást, amely nem korábbi a legkésőbbi teljesítés dátumnál. A hibaüzenete kiírása után a program a kompenzáció dátumának felajánlja a legkésőbbi teljesítés dátumát.
KomDatMax := PSzaAla.TelDat Az induló maximális dátum az alap számla teljesítés dátuma.
For i:=1 To N N : a kompenzációs tételek száma
Begin
If TelDat[i] > KomDatMax And KomOszK[i]>0 Then KomDatMax := TelDat[i]
End
If KonDatX < KomDatMax Then
Error (’ A kompenzálás dátuma nem lehet korábbi a legkésőbbi számla teljesítés dátumnál (KomDatMax) !’, OK - Abort)
| 4.0.2.4. | Kompenzáció elvégzése |
KomTetX := 0 Létrehozott kompenzációs tételek száma
i :=1 Ciklus változó i .= 1 .. N N : a kompenzációs tételek száma
Transaction Begin A kompenzáció egyetlen tranzakció
While KomOszA > Nulla And i <= N Do
Begin Kompenzációs ciklus kezdete
If KomOszK[i] < KomOszA Then KomOszX := KomOszK[i] Else KomOszA
Kompenzációs tétel összeg előállítása
If KomOszX > Nulla Then
Begin
KomTetX := KomTetX + 1
KomOszA := KomOszA – KomOszX
SzKiIdA := BizAzoGen(BtoKodX, KonDatX) Kiegyenlítés azonosító – Alap számla
If KomTetX =1 Then SzKiIdCsop := SzKiIdA Kiegyenlítés csoportos azonsító
SzKiIdK := BizAzoGen(BtoKodX, KonDatX) Kiegyenlítés azonosító – Kompenzációs tét.
PSzaKie_Insert_A Kiegyenlítés tétel generálás – Alap számla
PSzaAla_Update_A Számla adatainak átszámítása – Alap számla
PSzaKie_Insert_K Kiegyenlítés tétel generálás – Kompenzációs tételek
PSzaAla_Update_K Számla adatainak átszámítása – Kompenzációs tételek
End Else Nincs kompenzálási tétel összeg -> Nincs kompenzációs tétel
End Kompenzációs ciklus vége
Transaction End
Pénzügyi elszámolási bizonylat nyomtatása
| 4.0.2.5. | Kompenzációs adatok rögzítése |
| 4.0.2.5.1 | Kiegyenlítési adatok rögzítése |
| 4.0.2.5.1.1 | Kiegyenlítés tétel generálás |
PSzaKie_Insert_A – Alap számla
PSzaKie_Insert_K – Kompenzációs tételek
Alap adatok:
A1. SzKiID Szla kiegyenlítés ID pk SzKiIdA
SzKiIdK
A2. SzAlID Számla alap ID PSzaAlaA.SzAlID
PSzaAlaK[i].SzAlID
A3. KnyvEv Könyvelés éve <KieDat-ból>
A4. KnyvHo Könyvelés hónapja <KieDat-ból>
A5. TetSor Tétel sorszám
A6. BizAzo Számla bizonylatszám PSzaAlaA.BizAzo
PSzaAlaK[i].BizAzo
A7. BizaSo Bizonylat sorszám SzKiIdA
SzKiIdK
A8. SzKiIDCs Számla kiegyenlítés ID – Csoportos SzKiIdCsop
A9. SzKiIDEl[A] Számla kiegyenlítés ID – Ellen SzKiIdK
SzKiIDEl[K] SzKiIdA
Általános input adatok:
I1. PeeKod Pénzeszköz kód – Pénzügyi rendezés PeeKodX
I11. PeuKod[A] Pénzügyi eszköz kód – Alap PSzaAlaA.PeuKod
PeuKod[K] PSzaAlaK[i].PeuKod
I2. PeeJog[A] Pénzeszköz mozgáskód PeeJogA
PeeJog[K] PeeJogK
I12. BToKod Bizonylat tömb BtoKodX
I5. FimKod Fizetési mód FimKodX
I10. MegJeg Megjegyzés PSzaAla.SzAlId + '/' + MegJegX
I13. MellDb Mellékletek száma 0
I9. Bizony Bizonylatszám SzKiIdCsop
I3. KonDat Könyvelés dátum KonDatX
I4. ErtDat Értéknap dátum KonDatX
I6. DevKod Devizanem kód PSzaAlaA.DevKod
PSzaAlaK[i].DevKod
Értékadatok:
I7. JovDev Jóváírás összege DEV
If PeeJog[1]='1' Then KomOszX Else 0
I8. TerDev Terhelés összege DEV
If PeeJog[1]='2' Then KomOszX Else 0
S5. EveDev Értékvesztés összege DEV 0
S7. EheDev Értékhelyesbítés összege DEV 0
S9. EgyDev Egyéb adat DEV 0
Számított adatok:
S1. JovHuf Jóváírás összege HUF =JovDev * DevArfX
S2. TerHuf Terhelés összege HUF =TerDev * DevArfX
S6. EveHuf Értékvesztés összege HUF =EveDev * DevArfX
S8. EheHuf Értékhelyesbítés összege HUF =EheDev * DevArfX
S10. EgyHuf Egyéb adat HUF =EgyDev * DevArfX
Deviza input adatok:
D1. DevBan Deviza átszámítási bank DevBanX
D2. DevDat Deviza átszámítási dátum DevDatX
D3. DevArf Deviza átszámítási árfolyam DevArfX
Számított adatok:
If PpeJoDf(PSzaKie.PeeJog).Jelleg='1' Or Jelleg='2' Then
Begin
If PSzaAla.TipusK=1 Then {Szállító}
Begin
If PPeJoDf(PSzaKie.PeeJog}.KonTip='451' Then {Árfolyam nyereség}
Begin
S3. KieDev Kiegyenlítés összege DEV =JovDev – TerDev
S4. KieHuf Kiegyenlítés összege HUF =JovHuf – TerHuf
End
Else {Árfolyam veszteség és egyéb kiegyenlítés}
Begin
S3. KieDev Kiegyenlítés összege DEV =TerDev – JovDev
S4. KieHuf Kiegyenlítés összege HUF =TerHuf – JovHuf
End
End
Else {Vevő}
Begin
If PPeJoDf(PSzaKie.PeeJog}.KonTip='451' Then {Árfolyam nyereség}
Begin
S3. KieDev Kiegyenlítés összege DEV =TerDev – JovDev
S4. KieHuf Kiegyenlítés összege HUF =TerHuf – JovHuf
End
Else {Árfolyam nyereség és egyéb kiegyenlítés}
Begin
S3. KieDev Kiegyenlítés összege DEV =JovDev – TerDev
S4. KieHuf Kiegyenlítés összege HUF =JovHuf – TerHuf
End
End
End
Else
Begin
S3. KieDev Kiegyenlítés összege DEV = 0
S4. KieHuf Kiegyenlítés összege HUF = 0
End
Állapot adatok:
Á1. PenAll Pénzügyi állapot PAL 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
F4. FokKod Főkönyvi számla X
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
F8. AktKod Áru katalógus 0
F9. AruKod Áru kód 0
F10. ParKod Partner PSzaAla.CimPar
F11. SzlJel Számla jelleg FSJ 0
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
| 4.0.2.5.1.2 | A pénzeszköz egyenlegének átszámítása |
PPeeTor – Pénzeszköz alap tábla – Pénzeszköz: PSzaKie.PeeKod
A program a kiegyenlítés értékadatai alapján a mozgás rögzítésekor átszámítja a pénzeszköz értékadatait (aktualizálja a pénzeszköz készletet).
Lásd: Eco_Fina_Func_SzlaAll.Doc Kiegyenlítés rögzítése
| 4.0.2.5.1.3 | A pénzügyi eszköz egyenlegének átszámítása |
If PSzaKie.PeUKod<>0 Then
Begin
A pénzügyi eszköz készletadatinak átszámítását akkor végzi el program, ha a kiegyenlítés pénzügyi eszköz kódja nem 0.
Lásd: Eco_Fina_Func_SzlaAll.Doc Kiegyenlítés rögzítése
End Else
| 4.0.2.5.2 | Számla adatainak átszámítása |
PSzaAla_Update_A Alap számla
PSzaAla_Update_K Kamat számla
PSzaAla – Számla alap tábla
Modify
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
2 – Részben teljesített
3 – Kiegyenlített
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
| 4.0.3. | Kompenzáció csoportos stornózása |
A csoportos kiegyenlítéssel rögzített kompenzációs mozgások stornózása is csoportosan történik.
A kiegyenlítések stornózásakor három eset lehetséges:
1. Egyedi (normál) stornózás:
A kiválasztott egyetlen tétel stornózása történik meg.
PSzaKie.SzKiIdCs <= '0'
Lásd: Eco_Fina_Func_SzlaAll.Doc Kiegyenlítési mozgások stornózása
2. Kompenzáció csoportos stornózása
A stornózás az alap számla első kompenzációs kiegyenlítésén állva végezhető el:
PSzaKie.SzKiId = PSzaKie.SzKiIdCs
3. A stornózás nem végezhető el
A kiválasztott kiegyenlítés kompenzációs mozgás, de nem a kompenzációs csoport első tétele.
PSzaKie.SzKiId <> PSzaKie.SzKiIdCs And PSzaKie.SzKiIdCs > '0'
Stornózandó kompenzációs mozgások halmaza:
Select *
From PSzaKie
Where SzKiIdCs = p_SzKiId
Stornózás feltételei:
A stornózandó mozgás halmaz minden elemére teljesülnie kell!
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!
A stornózás menete:
1. A stornózandó mozgás kiválasztása.
2. A stornózás feltételeinek ellenőrzése.
3. A stornózandó adathalmaz elemeinek stornózása
Lásd: Eco_Fina_Func_SzlaAll.Doc Kiegyenlítési mozgások stornózása
A. PSzaKie.Insert Stornó kiegyenlítési tétel előállítása
B. PSzaKie.UpDate A stornózott mozgás adatinak módosítása
C. PSzaKie.PeeKod -> PPeeTor.Update Pénzeszköz adatainak átszámítása
D. PSzaKie.PeUKod -> PPeeTor.Update Pénzügyi eszköz adatainak átszámítása
E. PSzaKie.SzAlId -> PSzaAla.Update Számla érték adatainak átszámítása