Tartalomjegyzék
Egyablakos (OSS) bizonylatok
Az egyablakos (OSS – One Stop Shop) értékesítés az EU-n belüli, külföldi magánszemély (nem adóalany) vevőknek történő értékesítés, amelynél a számlát a vevő címe szerinti ország áfakulcsával kell kiállítani (áfa törzsben „Külföldi” jelölésű, áfakörös kulcsok), és a számla nem kerül beküldésre a NAV Online Számla rendszerbe.
Korábban az egyablakos számla csak szolgáltatást tudott számlázni. Ez a fejlesztés kiterjesztette termék értékesítésre (cikktörzsből és raktárból), létrehozta az egyablakos szállítólevelet, az export és egyablakos vevői rendelést, valamint a webshop connector (wconn) számára a rendelés engine típusos interface-ét.
Bizonylattípusok
| Bizonylat | dok= | Menü jog | Feltétel (modul) |
|---|---|---|---|
| Egyablakos számla | egyablakos_szamla | se02 | dok::egyablakos_szamla |
| Egyablakos helyesbítő számla | helyesbito_egyablakos_szamla | (se02) | dok::egyablakos_szamla |
| Egyablakos szállítólevél | egyablakosszallito | sz36 | dok::szallito + dok::egyablakos_szamla |
| Egyablakos proforma | egyablakosproforma_szamla | sp09 | dok::proforma + dok::egyablakos_szamla |
| Egyablakos rendelés | egyablakosrendeles | re76 | dok::rendeles + dok::egyablakos_szamla |
| Export rendelés | exportrendeles | re75 | dok::rendeles + dok::exportszamla |
Az egyablakos szállítólevél, proforma és rendelés a befogadó modul (szallito, proforma, rendeles) modulon belüli változata, menüpontjuk csak akkor jelenik meg, ha a dok::egyablakos_szamla modul telepítve van (#MENU-IF). Az export rendelés a dok::exportszamla modultól függ.
Felhasználói működés
Partner szabályok
- Egyablakos bizonylatra csak Magyarországon kívüli, de EU-n belüli címmel rendelkező személy típusú partner választható, aki nem adóalany (nincs adószáma). HU vagy közösségen kívüli (THIRD) cím esetén a rendszer figyelmeztet, rögzítéskor (felvesz) hibát ad.
- Export bizonylatra Magyarországon kívüli partner választható (EU-s vagy harmadik országbeli).
ÁFA kezelés
- Egyablakos bizonylaton a fejben a Külföldi ÁFA mezőben választható az alapértelmezett kulcs (áfa törzs: áfakörös + export jelölésű kulcsok). Minden tétel ezt a kulcsot kapja, de a tételeken a kulcs egyenként átírható.
- Export bizonylaton a fejben a mentes (áfakörön kívüli, export jelölésű) áfakód választható, a tételek 0%-os kulccsal, ezzel a kóddal készülnek; a kód tételenként átírható.
- A tételek nettó árasak; az árat és az áfa kulcsot a felhasználó az adatrögzítéskor adja meg.
Tétel típusok
Az egyablakos számla és szállítólevél tud:
- szolgáltatást (cikktörzsből),
- terméket cikktörzsből („Termékek bizonylatra” – ha a megfelelő
termekek_cikktorzsbolbeállítás aktív), - terméket raktárból (készletkivéttel, gyáriszám/sarzs/szavatosság támogatással).
Az egyablakos/export rendelés cikktörzsből vett terméket, szolgáltatást, végösszegi engedményt és korábbi rendelés másolását támogatja.
Bizonylatláncok
- egyablakos rendelés → egyablakos szállítólevél → egyablakos számla
- egyablakos rendelés → egyablakos számla (közvetlenül)
- export rendelés → export szállítólevél / export számla
- egyablakos/export rendelés → egyablakos/export proforma
A rendelés nézetén a Számlázás és Proforma gombok típusazonosak: export rendelésről export számlát/proformát, egyablakos rendelésről egyablakos számlát/proformát céloznak, a gombfelirat is ehhez igazodik. A folyamat felülbírálható: ha a rendelés adatai hibásak, a felhasználó a normál (vagy másik típusú) számla/szállítólevél űrlapjáról is behúzhatja a rendelést – ilyenkor a cél bizonylat saját áfa logikája érvényesül.
Áfa öröklés a láncban: ha a cél bizonylat típusa megegyezik a forrás rendelés típusával (pl. egyablakos rendelésből egyablakos számla), akkor a rendelésen tételenként rögzített áfa öröklődik – a fej Külföldi ÁFA mezője nem írja felül. Eltérő típusú cél esetén (felülbírálás) a cél bizonylat áfa logikája érvényesül.
Stornó és helyesbítő
Mindkettő a normál bizonylatokkal azonos módon működik. A stornó tételei az eredeti külföldi áfakulcsot viszik, raktári termék esetén a készlet visszaíródik a forrásraktárba. Az egyablakos helyesbítő számla terméket is kezel.
Tömeges számlázás
A rendeléslistákban látható és szűrhető a rendelés Típus oszlopa. A tömeges számlázás továbbra is normál (gépi) számlát készít, ezért export vagy egyablakos rendelést tartalmazó kijelöléssel nem indítható – ilyenkor hibaüzenet jelenik meg. A típusos rendelések a rendelés nézetének típusazonos Számlázás gombjával számlázhatók.
NAV Online Számla
Az egyablakos számla nem tartozik a NAV Online Számla adatszolgáltatás alá: a modul az onlineszamla_check működést kikapcsolja, az onlineszámla close_trigger pedig EU_VAT indokkal nem kötelezőnek jelöli az adatszolgáltatást. Az export számla továbbra is adatszolgáltatás-köteles.
Fejlesztői dokumentáció
Architektúra
- Nincs külön tábla vagy flag oszlop: a megkülönböztetés a fejtáblák (
szlafej,szlvfej,pfszfej,rendfej) tipus oszlopában történik (gépi/export/egyablakos). - A változatok vékony öröklésű osztálypárok (bizonylat osztály + komponista) a befogadó modulon belül, a proforma változatok mintájára:
SUPER::old+apply_spec_afa=1(+partner_szemely,partner_nem_adoalanyegyablakosnál),_tipus()felülírás,apply_spec_afa→apply_eu_afa(egyablakos) ill.apply_export_afa(export), országtípus-ellenőrzés az_update-ben. - A tételszintű áfa szerkesztést a metadata
qtype_mergeköré tetthack_afakulcs(egyablakos) ill.hack_afakod(export) lokalizált hack adja. - Fontos: az
apply_*_afacsak azadd_libpillanatában fut (set_value_first), az utána történt tétel-szintűset_valuemegmarad. Erre épül a tételenkénti áfa átadás (engine) és öröklés (rend_keres). - A
rend_keres(rendelés → bizonylat lánc) forrás-tudatos: ha arendfej.tipusexport/egyablakos ÉS megegyezik a cél komponista_tipus-ával, a tétel áfáját arendtet-ből örökíti (nem a cikktörzsből).
wconn / rendeles_engine interface
A webshop connector rendelés-rögzítése a dok::rendeles::rendeles_engine-en át történik. A típusos rendelésekhez az interface így bővült (visszafele kompatibilis: a régi, paraméter nélküli hívás változatlanul gépi rendelést készít, változatlan működéssel):
# gépi (változatlan, régi hívási mód): my $engine = dok::rendeles::rendeles_engine->new; # egyablakos (OSS) rendelés: my $engine = dok::rendeles::rendeles_engine->new({tipus=>'egyablakos'}); # export rendelés: my $engine = dok::rendeles::rendeles_engine->new({tipus=>'export'}); my $result = $engine->felvesz($input); # {status=>'Ok', szlaszam=>...}
Az engine input (hash vagy elib::engine_input) új mezői:
| Mező | Szint | Jelentés |
|---|---|---|
eu_afa | fej | Külföldi áfakulcs (egyablakos): minden tétel alapértelmezett kulcsa. Áfa törzs: afakor AND export kulcsok. |
export_afa | fej | Mentes áfakód (export): a tételek 0%-kal, ezzel a kóddal készülnek. Áfa törzs: NOT afakor AND export kódok. |
tetel_afakulcs | tétel | Tételenkénti áfakörös kulcs – felülbírálja a fej eu_afa-t az adott tételen (OSS-ben pl. kedvezményes kulcsú termék). |
tetel_afakod | tétel | Tételenkénti mentes áfakód (áfakörön kívüli tétel). |
Szabályok:
tipusnélkül (vagygépi-vel) hívva azeu_afa/export_afa/tetel_afakulcs/tetel_afakodmezőket nem szabad átadni – a gépi rendelés áfája változatlanul a cikktörzsből jön.- Egyablakos rendelésnél a partner személy legyen EU (nem HU) címmel, különben a felvesz országtípus-hibával elhal.
- A
termék_beszállítótól(termekek_beszallitoi) tétel típus export/egyablakos rendelésen nem támogatott. - A rendelésből történő későbbi számlázás a tételenkénti kulcsokat örökíti (ld. forrás-tudatos
rend_keres).
Tesztek
| Teszt | Mit fed le |
|---|---|
t/unit/egyablakos_szamla_metadata.t | qtype regisztráció, tételszintű áfakulcs hack |
t/unit/egyablakos_szamla.t | egyablakos számla raktári termékkel, EU_EU ügylet, készletkivét, HU tiltás |
t/unit/egyablakos_szallito.t | egyablakos szállítólevél + lánc számlára |
t/unit/egyablakos_szallito_storno.t | stornó áfa- és készlet-visszaírással |
t/unit/egyablakos_rendeles.t | egyablakos rendelés + lánc számlára és szállítólevélre, HU tiltás |
t/unit/export_rendeles.t | export rendelés + lánc export számlára, HU tiltás |
t/unit/rendeles_engine_tipus.t | engine tipus interface, visszafele kompatibilitás, tételenkénti kulcs + öröklés |
t/app/egyablakos_*.t | form smoke tesztek |
Fixture-ök: create_egyablakoskepes_partner (EU személy), create_exportszamlakepes_partner (EU cég közösségi adószámmal) – t/lib/Test/EVIR/Fixtures/Partner.pm.
