Opencart webáruház kiegészítése a VTSZ szám kezelésére

A szabályozások és törvények mindig változnak. Tudomásom szerint bizonyos termékek esetében fel kell tüntetni a kiállított számlán a VTSZ vagyis vámtarifaszámot is. Ilyen termék például a gépjármű, motorkerékpár. A VTSZ szám, ha minden igaz 10 számjegyből áll a következők szerint:

  • 1-5-ig az áruosztályokat rögzíti
  • 6. ÁFA besorolás
  • 7. fogyasztási adó (pl. luxustermékeknél, szőrmebunda stb.)
  • 8. jövedéki adó (dohányáru, szeszek, üzemanyag)
  • 9. környezetvédelmi termékdíj (pl. műanyag flakonok, amik szennyezik a környezetet)
  • 10. alszámos megjegyzés, a pénzügyőrökre vonatkozik

Most lássuk, miként lehet egy új mezőt felvenni az Opencart termékek részére. A leírás minden esetben alkalmazhtó hiszen a mezőt tetszés szerint elnevezhetjük. Lehet akár VTSZ vagy bármi más. Ebben a részben most kizárólag az adminisztrációs felületet érintő változásokat írom le. A későbbiekben pedig megvizsgálom, hogy a vásárlókat kezelő rész felé milyen módosítsok szükségesek.

Amit szeretnénk az Admin felületen, bejelentkezés után:

1. Katalógus/Termék/Adatok felsorolás között a termékek felvitelénél jelenjen meg egy külön VTSZ szám beviteli mező, majd termék módosításánál, felvitelénél az adatot tárolja le az adatbázisba is.

Érintett fájlok:

  • admin/controller/catalog/product.php (getForm)
  • admin/model/catalog/product.php  (addProduct, editProduct)
  • admin/view/template/catalog/product.tpl
  • admin/language/hungarian/catalog/product.php
  • admin/language/english/catalog/product.php

A view formban és a modelben is felvesszük felvesszük az új mezőt és a controllerben az új mezőhöz kapcsolódó eseményt berakjuk. A nyelvi fájlokban felvesszük az új mező nevét.

Adatbázis változtatások:

Plussz mező felvitele a product táblába. (A product neve elé jön egy prefix)
ALTER TABLE  product ADD vtsz VARCHAR(10) NOT NULL;

Számtalan a termékhez kapcsolódó más tábla létezik még. A mi esetünkben a product táblába kell felvenni a szükséges új mezőt. Amennyiben mást szeretnénk még plusszban, úgy át kell gondolnunk, hogy hol lenne a legmegfelelőbb beilleszteni, figyelembe véve az adatbázis szerkezetet és az optimális működést is.

2. Az admin oldalon az Eladás/Rendelés, majd a számla megtekintése menüpontra kattintva a megjelenő számlán jelenjen meg a felvitt VTSZ szám a termék melletti oszlopban.

Érintett fájlok:

  • admin/controller/sale/order (invoice)
  • admin/language/hungarian/sale/order (nyelvi mező hozzáadása)
  • admin/view/template/sale/order_invoices.tpl (html táblázatba új oszlop beszúrás)

A számlára kerülő adatokat egy külön táblában tárolja (order_product). Szükséges hozzáadni a termékhez kapcsolódó információ lekérdezését. (hogy a vtsz mezőt is meg tudjuk jeleníteni)

Performancia szempotnjából célszerű ebbe a táblába is belevenni a vtsz szám mezőt. Amennyiben nem sok kis értékű termékről van szó, akkor nem szükséges de kívánatos lenne követni a megvalósított elvet. Főleg azért, mert a megvásárolt termékekre nem kellene külön még egy lekérdezést végrehajtani, hanem elég egyszer lekérdezni a számlán megjelenő adatokat. Ha az utóbbit szeretnénk, akkor tudnunk kell, hol írja a szükséges adatokat a táblába (order_product). Viszont, ha továbbgondoljuk az egész folyamatot akkor nem szabad betennünk a vtsz számot ebbe a táblába, mert az itt található adatok egy termék módosításakor nem lesznek hatással a már megrendelt termékekre! Tehát, ha egy termék vtsz számát rosszul adták meg akkor a javítás után, az már az eladott termékekre nem lesz hatással! Tehát amennyiben nem vtsz számról van szó hanem egy más típusú új mezőről, akkor egyedileg kell eldönteni, pontosan hova is kerüljön hiszen ezzel a már kialakított logikai működésbe nyúlunk bele, ami ha kellőképpen nincs feltérképezve illletve nem ismerjük, más funkcióban könnyen hibát vagy performanciával kapcsolatos problémákat okozhat !

Amennyiben utólag szeretnénk felvinni a vámtarifa számokra vonatkozó adatokat egy már meglévő adatbázisba, akkor egy sql update segíthet a tömeges módosításban.

UPDATE product SET vtsz = ‘0123456789’

A template fájlban pedig ne felejtsük el a colspan-t annyival növelni amennyi új oszlopot beszúrunk, jelen esetben ez 1, különben elcsúsznak a számlában az összeg oszlopok.

A számla nyomtatása egy külön kérdés. Számos előnye van ha PDF formátumban is tudjuk reprodukálni a végszámlát. A PDF egy nyílt szabvány és emiatt bárki jogdíjmentesen írhat alkalmazásokat, amelyek olvasnak vagy írnak PDF formátumot. A szabvány azonosítója ISO 32000-1:2008. Úgy gondolom nem kell elmondani, hogy miért jó, ha szabványos eszközöket alkalmazunk. Természetesen van rá lehetőség, hogy PDF számlát nyomtassunk de ezt a lehetőséget a jelenlegi alap OpenCart telepítés nem tartalmazza. Azt hiszem erről majd legközelebb fogok írni.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter


A bejegyzés kategóriája:Webáruház and tagged , . Vedd fel a kedvencek közé: link. Szólj hozzá vagy hagyj egy trackback-et:Trackback URL.

Szólj hozzá

Hozzászólás küldéséhez Be kell jelentkezni