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.
| 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.
Az egyablakos számla és szállítólevél tud:
termekek_cikktorzsbol beállítás aktív),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.
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.
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.
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.
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.
szlafej, szlvfej, pfszfej, rendfej) tipus oszlopában történik (gépi / export / egyablakos).SUPER::old + apply_spec_afa=1 (+partner_szemely, partner_nem_adoalany egyablakosná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.qtype_merge köré tett hack_afakulcs (egyablakos) ill. hack_afakod (export) lokalizált hack adja.apply_*_afa csak az add_lib pillanatában fut (set_value_first), az utána történt tétel-szintű set_value megmarad. Erre épül a tételenkénti áfa átadás (engine) és öröklés (rend_keres).rend_keres (rendelés → bizonylat lánc) forrás-tudatos: ha a rendfej.tipus export/egyablakos ÉS megegyezik a cél komponista _tipus-ával, a tétel áfáját a rendtet-ből örökíti (nem a cikktörzsből).
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:
tipus nélkül (vagy gépi-vel) hívva az eu_afa/export_afa/tetel_afakulcs/tetel_afakod mezőket nem szabad átadni – a gépi rendelés áfája változatlanul a cikktörzsből jön.termék_beszállítótól (termekek_beszallitoi) tétel típus export/egyablakos rendelésen nem támogatott.rend_keres).| 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.