Files
GoNtech/migrations/035_pos_faza1.sql
T

53 lines
2.6 KiB
SQL

-- ============================================
-- Faza 1: POS proširenje — PDV, magacinska revizija, servisni delovi
-- ============================================
-- 1. Artikli — dodajemo PDV stopu (nabavna_cena već postoji)
ALTER TABLE artikli ADD COLUMN pdv_stopa REAL NOT NULL DEFAULT 20.0;
-- 2. Stavke prodaje — PDV po stavci (za tačan obračun i buduće fiskalne račune)
ALTER TABLE stavke_prodaje ADD COLUMN pdv_stopa REAL NOT NULL DEFAULT 20.0;
ALTER TABLE stavke_prodaje ADD COLUMN pdv_iznos REAL NOT NULL DEFAULT 0;
ALTER TABLE stavke_prodaje ADD COLUMN cena_bez_pdv REAL NOT NULL DEFAULT 0;
-- 3. Prodajni nalozi — način plaćanja i storno
ALTER TABLE prodajni_nalozi ADD COLUMN nacin_placanja TEXT NOT NULL DEFAULT 'gotovina'
CHECK (nacin_placanja IN ('gotovina', 'kartica', 'prenos'));
ALTER TABLE prodajni_nalozi ADD COLUMN stornirano INTEGER NOT NULL DEFAULT 0;
ALTER TABLE prodajni_nalozi ADD COLUMN razlog_storniranja TEXT;
-- 4. Servisni nalozi — tehničar i garancija
ALTER TABLE servisni_nalozi ADD COLUMN tehnicar_id INTEGER REFERENCES korisnici(id) ON DELETE SET NULL;
ALTER TABLE servisni_nalozi ADD COLUMN garancija_do DATE;
-- 5. Klijenti — JMBG i tip (fizičko/pravno lice)
ALTER TABLE klijenti ADD COLUMN jmbg TEXT;
ALTER TABLE klijenti ADD COLUMN tip TEXT NOT NULL DEFAULT 'fizicko'
CHECK (tip IN ('fizicko', 'pravno'));
-- 6. Magacinska revizija — trag svake promene stanja artikla
CREATE TABLE IF NOT EXISTS magacinske_promene (
id INTEGER PRIMARY KEY AUTOINCREMENT,
artikal_id INTEGER NOT NULL REFERENCES artikli(id) ON DELETE RESTRICT,
tip_promene TEXT NOT NULL CHECK (tip_promene IN (
'ulaz_nabavka', 'izlaz_prodaja', 'izlaz_servis', 'povracaj', 'korekcija'
)),
referentni_id INTEGER NOT NULL,
promena_kolicine INTEGER NOT NULL,
stanje_pre INTEGER NOT NULL,
stanje_posle INTEGER NOT NULL,
korisnik_id INTEGER REFERENCES korisnici(id) ON DELETE SET NULL,
napomena TEXT,
datum DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
);
-- 7. Servisni delovi — artikli ugrađeni u servisni nalog
CREATE TABLE IF NOT EXISTS servisni_delovi (
id INTEGER PRIMARY KEY AUTOINCREMENT,
nalog_id INTEGER NOT NULL REFERENCES servisni_nalozi(id) ON DELETE CASCADE,
artikal_id INTEGER NOT NULL REFERENCES artikli(id) ON DELETE RESTRICT,
kolicina INTEGER NOT NULL DEFAULT 1 CHECK (kolicina > 0),
cena_komada REAL NOT NULL,
datum DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
);