Bevételezés - Stornó

Navigation:  Tartalom > Készlet modul > Készletmozgások rögzítése > Bevételezés >

Bevételezés - Stornó

Previous pageReturn to chapter overviewNext page

 

A stornó funkció segítségével, a [Stornózás] gomb clip1677 megnyomása után egy bevételezési (vásárlás, termelés, egyéb készletnövekedés) bizonylatfejhez tartozó mozgástételek stornózása végezhető el.

 

Jogosultságkód:A stornózás ugyanazzal a jogosultsággal végezhető el, mint a stornózandó mozgás rögzítése.

 

A stornózás elvégzésének lépései:

 

A, Bizonylat fej kiválasztása

Ki kell választanunk azt a bizonylatfejet, amelyen a stornózandó mozgás található.

 

B, A stornózandó mozgástétel kiválasztása

A bizonylatfejen rá kell állnunk arra a mozgásra, amelyet stornózni szeretnénk és meg kell nyomnunk a [Stornózás] gombot.

 

Csak olyan mozgás tételek stornózhatók, ahol a tétel adataira igazak az alábbi feltételek:        AND

KRakMoz.PenAll=0        Pénzügyi alapállapot        Csak Jogcim='1' – Vásárlás esetén!

A mozgáshoz nincs számla áru tétel rendelve. Ha a mozgás számla áru tételhez van kapcsolva, akkor előbb le kell bontani az összerendelést.

KRakMoz.FokAll=0        Főkönyvi kontírozatlan állapot

A mozgás még nincs kontírozva. Kontírozott mozgás kontírozását előbb vissza kell stornózni.

KRakMoz.StoKod=0        Nem stornó vagy stornózott tétel

Stornózott tétel már nem stornózható még egyszer, a stornó mozgást pedig nem lehet visszastornózni.

 

Kulcs paraméterek:

Mozgás azonosító        RaMoIdX:= KRakMoz.RaMoID
Eredeti mozgáskód        MozKodX:= KRakMoz.MozKod

MozIraX:=Copy(MozKodX,4,1)

A mozgás iránya a mozgás kód negyedik karakteréből határozható meg.

Stornó mozgáskód        MozKodY: előállítandó a MozKodX alapján

If MozIraX=1 Then MozIraY:=2 Else MozIraY:=1

A MozKodY többi eleme megegyezik a MoKodX-el.

A stornó mozgáskód az eredeti mozgáskódból úgy állítható elő, hogy a mozgás irányát ellentétesre változtatjuk. Növekedés irányú mozgás stornó mozgása csökkenés irányú lesz, csökkenés irányúé pedig növekedés.

Ellenőrizni kell, hogy az új kód létezik-e! Ha az előállított stornó mozgáskód nem létezik a mozgástörzsben, akkor stornózás nem végezhető el.

Mozgás előjel                If MozIraY=1 Then MozEljY:=1 Else MozEljY:=-1

Növekedés irányú mozgás előjele pozitív, csökkenésé negatív.

Árukód                        AruKodX:= KRakMoz.AruKod
Tárolóhely                TarHelX:=KRakMoz.TarHel
Mennyiség                MennyiX:=KRakMoz.Bevete
Tétel sorszám                TetSorX:= KRakMoz.Tetsor

 

C, A stornózandó mozgáshoz tartozó tételes mozgások felolvasása

Fel kell olvasni a stornózandó raktári mozgáshoz tartozó tételes készlet (KTetKes) és tételes mozgás (KTetMoz) tételeket. Bevételezési mozgáshoz mind a két táblából egy tétel rendelhető hozzá.

 

Query_A

SELECT        M.TeMoID, M.TeKeID M_TeKeID, M.RaMoID, M.Bevete, M.Kiadas,

K.TeKeID K_TeKeID, K.AruKod, K.ParKod, K.BizAzo, K.BevDat, K.TeKeSo,

K.BevEar, K.NyiKes, K.Bevete K_Bevete, K.Kiadas, K.AktEar, K_Kiadas

FROM                KTetMoz M, KTetKes K

WHERE        M.TeKeID=K.TeKeID

AND        M.RaMoID=:RaMoIdX

ORDER BY        M.RaMoID

 

D, Query_A kiértékelése

OszKiad:=0;

While Not EOF(Query_A) Do

Begin

OszKiad:=OszKiad+Query_A.K_Kiadas

Next

End

 

E, A felolvasott tételek megjelenítése adatrácsban (Query_A)

A stornózás folyamata a [Stornó végrehajtása] gomb megnyomásával indul.

 

clip1733

 

F, Stornózás elvégezhetőségének vizsgálata

If OszKiad>0 Then

Begin

Message('Nem stornózható !')

Abort

End Else

A vizsgálat addicionális bevételezési tételre nem végzendő el!

 

G, A stornózás elvégzése

StartTransaction

 

G.1. Raktári készlet módosítása

Készlet sor beolvasása                        (AruKodX,TarHelX)

Készlet sor módosítása

KRakKes.Bevete:= KRakKes.Bevete + MozEljY * MennyiX

Update KRakKes(AruKodX,TarHelX)

 

G.2. Raktári mozgás tétel

 

G.2.a. A stornó tétel előállítása                Insert

Adatai megegyeznek a stornózandó tételével, kivéve:

KRakMoz.RaMoID        generált        RaMoIDY

KRakMoz.Tetsor        generált

TetSorY:= KRakMoz.Tetsor

KRakMoz.Bevete:= MozEljY * MennyiX

KRakMoz.Stokod:=2

KRakMoz.StornA:=TetSorX

KRakMoz.StornB:=0

KRakMoz.Insert

 

G.2.b. Stornózott tétel        (RaMoIDX)        Update

KRakMoz.Stokod:=1

KRakMoz.StornA:=0

KRakMoz.StornB:=TetSorY

KRakMoz.Update

 

G.3. Árutörzs módosítása

Az árutörzsbe készletkönyveléskor már nem történik visszaírás! A korábban visszaírt adatokat a program az adatok megjelenítésekor számolja ki.

 

G.4. Rendelés módosítás

A rendelés tételbe készletkönyveléskor már nem történik visszaírás! A korábban visszaírt adatokat a program az adatok megjelenítésekor számolja ki.

 

G.5. Tételes mozgás és készlet

While Not EOF(Query_A) Do

Begin

G.5.a Tételes készlet módosítása        Update

Tételes készlet sor beolvasása                M.TeKeID

Tételes készlet sor módosítása

KTetKes.Bevete:= KTetKes.Bevete + MozElj * M.Bevete

If Abs(K.Bevete - K.Kiadas)>1E-4 Then K.Elokod:='I' Else K.Elokod:='N'

A többi mező nem változik

KTetKes(M.TeKeID).Update

 

G.5.b Tételes mozgás tétel előállítása        Insert

Tételes mozgás sor beolvasása                M.TeMoID

Új tételes mozgás sor előállítása

KTetMoz.Bevete:=MozElj * M.Bevete

KTetMoz.RaMoID:=RaMoIDY        (KRakMoz.RaMoID stornó tétel)

A többi mező megegyezik az eredeti sor mezőjével

KTetMoz.Insert

 

Next

End

CommitTransaction