A számla áru adatok kezelésére szolgáló képernyő navigátor sorában található [
] gombra kattintva egy olyan segégfunkció indul el, amelynek segítségével a már rögzített számla tételek költségeit szétoszthatjuk különféle költséghelyekre (projectekre). A költségfelosztás úgy történik, hogy megadjuk az egyes költséghelyeken felmerült költségek összegét bruttó értékben (áfával növelten). (A költésghelyenkénti költségek rögzítése az [Utalványozás] funkcióban is elvégezhető.)

Tábla: PSzaKtgFeo

Alap adatok:
A1. ID Dokumentáció ID pk
A2. SzAlID Számla alap ID fk: PSzaAla.SzAlID
Input adatok:
I1. ProKod Project fk: FProTor.ProKod
I2. ProKtg Költség összeg Bruttó. Áfával növelt.
I3. Megjeg Megjegyzés
A program által előállított adatok:
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
Költségfelosztás
A költséghelyenkénti költség adatok rögzítése után megnyomjuk a [Költségfelosztás] gombot. Ekkor a program az egyes számla áru tételeket annyi tételre bontja szét, ahány költségfelosztási tételt rögzítettünk.
Költségfelosztó tárolt eljárás:
TcSp_PSzaAru_KtgFeloszt
@p_SzAlId Varchar(20), Számla azonosító
@p_Opekod Varchar(20), Operátor gc_user
@p_Terkod Varchar(20), Terminál gc_terminal
@P_Succes Varchar(400) OUTPUT A tárolt eljárás által visszaadott üzenet.
A tárolt eljárás elindításának feltételei.
1. PSzaAla.FokAll <> ’1’ Alap főkönyvi állapot
2. PSzaAla.PenAll = ’0’ Alap pénzügyi állapot
3. PSzaAla.StoKod = ’0’ Alap stornó állapot
4. PSzaAla.SzNyDb = 0 Nincs kinyomtatva a (vevő) számla.
5. KtgTet > 0 Van legalább egy költségfelosztás tétel
6. Abs(Sum(PSzaKtgFeo:ProKtg)) > 0 A költségfelosztások összesítése nem nulla.
7. Sum(PSzaKtgFeo.ProKtg) = Sum(PSzaAru.TetErt + PSzaAru.AfaErt)
A költségfelosztások összesítése megegyezik az összesített számla áru bruttó (alap + áfa) értékkel.
8. Max(Len(PSzaAr.SzArId))<18 A számla nem tartalmaz költségfelosztásból származó tételt.
A költségfelosztás arányszáma: Az egyes költségtételek értékének és az összértéknek a hányadosa.
PSzaKtgFeo:ProKtg / Sum(PSzaKtgFeo:ProKtg)
Felosztott (arányosított) számla áru (PSzaAru) adatmezők:
1. Mennyi Mennyiség
2. TetErt Tétel érték (áfa nélkül) Számla devizanemben
3. AfaErt Áfa érték Számla devizanemben
4, TarSul Tára súly
5. Mennyi2 Másodlagos mennyiség
6. AfaAlaEU Áfa alap – Különleges áfa Könyvelési devizanemben (HUF)
7. AfaErtEU Áfa érték – Különleges áfa Könyvelési devizanemben (HUF)
Az egységár (EgysAr) mező értéke változatlan marad.
A program minden egyes számla áru tételt annyi tételre oszt szét, ahány költségfelosztás tételt rögzítettünk a számlához. Pl: A számla 3 áru tételt és 4 költségfelosztás tételt tartalmaz, akkor a felosztás után a számlának 3 * 4 = 12 áru tétele lesz. A felosztott első (1.) tétel az eredetileg rögzített számla áru tétel lesz (Update). Minden további felosztott számla áru tételt (2. – n.) új tételként állít elő a program (Insert). Az új tételek számla áru azonosítója az alap számla áru azonosítóból származik egy sorszám toldalékkal. Pl: SZK-00/01299/0002 -> SZK-00/01299/0002_003, második áru tétel harmadik felosztása. A felosztásból származó áru tételek minden adatmezője (a felosztott mezők, a project kód, a költségszámla és a költségjelleg mezők kivételével) az alap számla áru tétel adatmezőjének értékét kapja meg.
A számla áru tétel project kódja a felosztás tétel project kódját kapja meg. A költséghely számla és a költség jelleg mező értéke az új project kód project törzsben megadott költséghelye és költségjellege lesz.
PSzaAru.ProKod := PSzaKtgFeo.ProKod
PSzaAru.SKtgHel := FProTor(PSzaKtgFeo.ProKod).KtgHel
PSzaAru.SKtgJel := FProTor(PSzaKtgFeo.ProKod).KtgJel
A költségfelosztás sikeres végrehajtása után program kiírja hogy hány árutételt hány felé osztott fel.
Pl: 3 / 4