Kompenzáció

Navigation:  Tartalom > Pénzügyi modul > Számlaállomány nyilvántartás > Számla adatok karbantartása > Kiegyenlítések >

Kompenzáció

Previous pageReturn to chapter overviewNext page

 

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.

 

clip1811

 

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.

 

clip1812

 

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.1Szűrési feltételek
4.0.2.3.1.1Fix 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.2Kompenzá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.2Előá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.1Kiegyenlítési adatok rögzítése
4.0.2.5.1.1Kiegyenlí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.2A 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.3A 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.2Szá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