1. Az utalványozásra és a jóváhagyásra kijelölt dolgozó egyezősége
Amennyiben a rendszerparaméterek között azt adtuk meg, hogy az utalványozó dolgozónak (UtaDol) és a jóváhagyó dolgozónak (JovDol) két külön személynek kell lenni (KAzoAda.UtaJovDolEgy = ’N’), akkor a program nem engedi az adatokat elmenteni, ha minkét dolgozó kód mezőben ugyanaz a kód szerepel, és az nem a 0 kód.
2. Számla teljesítés dátuma:
TelDatX >= KezDatX And TelDatX <=BefDatX A számla számított teljesítés dátumának (TelDatX) a rendszer nyitott időintervallumába kell esnie. A számla számított teljesítés dátuma (TelDatX) nem belföldi relációjú (EU, Külföld) vevő számla esetén a számla deviza teljesítés dátuma (DevTel), egyébként pedig a normál teljesítés dátum (TelDat).
If (PSzaAla.TipusK=’2”) {Vevő} AND (PSzaAla.Relaci<>’1’) {Nem belföldi, azaz Külföldi, EU}
Then TelDatX := PSzaAla.DevTel – Számla deviza teljesítés dátuma
Else TelDatX := PSzaAla.TelDat – Számla teljesítés dátuma
3. Számla kelte (SzmDat) és a számlaszám (számla azonosító) (SzAlId) konzisztenciája
A program által generált számla azonosítónak (ami vevő számla esetén egyben a számlaszám is) összhangban kell lenni. Ez azt jelenti, hogy ugyanabba a bizonylattömbbe tartozó számlák (Pl: VKS – Vevő kézi számla) esetén nem fordulhat elő, hogy egy nagyobb sorszámú számla keletkezésének dátuma korábbi legyen, mint egy kisebb sorszámúé.
3.1. Összehasonlítás az előző számlával
Pl: Előző számla: VKS-00/00101 2000.12.21
Következő új számlaként – melynek azonosítójának VKS-00/00102-t fog generálni a program) nem adhatunk meg olyan számla kelte dátumot, amely korábbi, mint az előző számláé. A példa szerint 2000.12.21, vagy annál későbbi dátum helyes, de 2000.12.20 már helytelen.
Amennyiben a VKS-00/00102 számú számla már létezik, és annak a számla keltét akarjuk módosítani, akkor arra is az előzőekben leírtak vonatkoznak, tehát a számla kelte nem lehet korábbi, mint 2000.12.21.
3.2. Összehasonlítás a következő számlával
Pl: Következő számla: VKS-00/00103 2000.12.23
A módosított száma keletkezési dátuma nem lehet későbbi, mint a következő sorszámúé. Tehát a VKS-00/00102 számú számla keletkezési dátumának (számla kelte) csak olyan dátumot adhatunk meg amely nem későbbi mint 2000.12.23. Vagyis a 2000.12.24 és az azt követő dátumok hibásak.
Ha a 3.1. és a 3.2. példát egyszerre nézzük, akkor a VKS-00/00102 számú bizonylat számla kelte csak 2000.12.21, 2000.12.22, vagy 2000.12.23 lehet. A 2000.12.20 és az azt megelőző dátumok az előző számla (VKS-00/00101) számla kelte (2000.12.21) miatt, a 2000.12.24 és az azt követő dátumok a következő (VKS-00/00103) számla kelte (2000.12.23) miatt nem helyesek.
Rendszer paraméterként megadható hogy hibás számla kelte megadásakor csak figyelmeztessen a program az adatok mentésekor (KAzoAda.VevSzlSorEll = ’N’), vagy ne is engedje nem megfelelő számla kelte dátummal elmenteni a számla alap adat tételt (KAzoAda.VevSzlSorEll = ’I’).
4. Deviza teljesítés dátumának ellenőrzése
Amennyiben a számla alap adatok elmentésekor a deviza teljesítés dátuma (DevTel) is meg van adva, akkor annak is a könyvelési nyitott időszakba kell esni (DevTel>=KezDatX And DevTel<=BefDatX), mivel nem belföldi relációjú vevő számlák kontírozásakor ezt a dátumot is használjuk (úton lévő készlet).
5. Partnerenkénti számlaszámok egyedisége
Új számla rögzítésekor illetve a számla módosított adatainak mentésekor a program megmutatja az adott partnerhez tartozó, a nyitott időszakba eső ugyanilyen típusú számlákat, hogy egy számla többszörös rögzítését elkerüljük. A program gondoskodik arról, hogy egy partnerkódhoz, egy adott számlaszám csak egyszer vihető be az adatbázisba. Azonban ha a másodjára rögzítendő számlaszám akárcsak egy ponttal, vagy szóközzel más mint a már rögzített, akkor azt program újként el fogja fogadni.
6. Számla reláció – Partner reláció összhangjának ellenőrzése
A programba olyan tárolt eljárás funkció került beépítésre, amely a partner adatai alapján meghatározza, hogy partnerrel kapcsolatos tranzakciók (vásárlás, értékesítés) milyen relációba kell hogy tartozzanak.
Amennyiben a partner irányítószámának ország kódja 1 (Magyarország), akkor a reláció kód 1 (Belföldi). Ha a partner irányítószámának az országkódjához az ország-törzsben nincs EU tagság definiálva, akkor a reláció kód 2 (Külföldi). Ha a partner irányítószáma EU tag országba tartozik és a partnernek a partner törzsben meg van adva az EU-s adószáma, akkor a reláció 3 (EU). Ha a partner EU-s országba tartozik, de nincs EU-s adószáma, akkor a reláció belföldi (1).
A fenti ajánlás csak akkor működik korrekt módon, ha a törzsadatok helyesen vannak megadva. A partner törzsben az irányítószám mezőben, nem 0 szerepel, hanem a partner tényleges (Pl: D-28195 - Bréma) , vagy a partner országának általános irányítószáma (Pl: DE – Valahol Németországban). Az irányítószám törzsben sem szerepelhet az országkód mezőben 0, hanem a tényleges országkódot kell megadni (Pl: 49 – Németország). Az is fontos, hogyha a partner rendelkezik EU-s adószámmal, akkor az a partner törzsben az [Adószám EU] mezőbe (is) legyen beírva.
Új számla rögzítésekor illetve a számla módosított adatainak mentésekor a program ellenőrzi, hogy a számított reláció kódja illetve a számla megadott reláció kódja kódja összhangban van-e. Nem megfelelő adatok esetén figyelmeztetést ad.
EuTagX := AOrsTor.EuTagK <- AIraTor.OrsKod <- AParTor.IraSza <- PSzaAla.ParKod
RelaciX := PSzaAla.Relaci
If AIraTor.OrsKod = ’1’ Then RelaciX = ’1’ {Belföldi} Else
If AOrsTor.EuTagK = ’I’ And AParTor.AzoSza <> AParTor.ParKod
Then RelaciX = ’3’ {EU} Else RelaciX = ’2’ {Külföldi}
If PSzaAla.Relaci <> RelaciX Then Warning : Partner reláció – számla reláció ellentmondás!
7. Számla reláció – Partner EU-s adószám ellenőrzése
Új számla rögzítésekor illetve a számla módosított adatainak mentésekor a program ellenőrzi, hogy EU-s reláció esetén a számla alap partner rendelkezik-e EU-s adószámmal.
If (RelaciX = ’3’ {EU}
AND AParTor.AdoSzamEU(PSzaAla.ParKod) = AParTor.ParKod(PSzaAla.ParKod)
Then Warning : Az EU-s partner nem rendelkezik EU-s adószámmal!
8. Pénzügyi menedzser által választható címzett partner ellenőrzése
Szállítói számla alap adatainak rögzítése során, amennyiben az operátor pénzügyi menedzsernek van definiálva, akkor csak olyan partnert választhat címzett partnerként, aki pénzügyi partnerként van meghatározva a partner törzsben.
If TipusK = ’1’ {Szállító számla}
AND AParTor(CimPar).PenPar <> ’I’ {A címzett partner nem pénzügyi partner}
AND ADolTor(gc_OpeKod).PenMan = ’I’ {Az operátor pénzügyi menedzser}
Then Abort: A pénzügyi menedzser csak pénzügyi partnert választhat címzett partnernek!
9. Utalási bankszámlaszám és a pénzeszköz bankszámlaszám különbözőségének ellenőrzése
Szállítói számla alap adatainak rögzítése során, amennyiben az átutalásos fizetési módhoz rendelt pénzeszköz bankszámlaszáma megegyezik az utalási számlaszámmal, akkor a program a számla alap adatokat nem engedi elmenteni
If TipusK = ’1’ {Szállító számla}
AND AFimTor(PSzaAla.FimKod).EdiTip = 1I’ {A fizetési mód EDI típusa: Átutalás - Huf}
AND PSzaAla.BanKod <> ’0’ {Van megadott utalási számlaszám}
And PSzaAla.BanKod+PSzaAla.BanFol+ PSzaAla.BanAls =
PPeeTor.BanKod+PPeeTor.BanFol+PPeeTor.BanAls(PSzaAla.PeEKod)
Then Abort: A forrás és cél bankszámlaszám nem egyezhet meg!
10.. Lezárt áfa időszak PSzaAla.Insert
Nem rögzíthető olyan számla, amelynek kitöltött áfa dátuma lezárt áfa időszakba esik!
PSzaAla.TipusK
If PSzaAla.AfaDat <= SA.AfaDatLez1 1 – Szállító
SA.AfaDatLez2 2 – Vevő
SA.AfaDatLez3 3 – Belső
Then Message: Az áfa dátum lezárt áfa időszaka esik! Abort