-- adatbázis létrehozása

CREATE DATABASE `szamlazo`
DEFAULT CHARACTER SET utf8
COLLATE utf8_hungarian_ci;
USE `szamlazo`;

-- --------------------------------------------------------

-- vevo

CREATE TABLE `vevo` (
  `azon` int(10) NOT NULL,
  `nev` varchar(30) COLLATE utf8mb4_hungarian_ci NOT NULL,
  `iranyitoszam` int(5) NOT NULL,
  `helyseg` varchar(30) COLLATE utf8mb4_hungarian_ci NOT NULL,
  `utca_hazszam` varchar(30) COLLATE utf8mb4_hungarian_ci NOT NULL,
  `adoszam` varchar(15) COLLATE utf8mb4_hungarian_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_hungarian_ci;

INSERT INTO `vevo` (`azon`, `nev`, `iranyitoszam`, `helyseg`, `utca_hazszam`, `adoszam`) VALUES
(1, 'Nagy Szoftver Kft.', 4400, 'Nyíregyháza', 'József Attila u. 11.', '12345678-2-35'),
(2, 'Jó Program Kft.', 4400, 'Nyíregyháza', 'Ady Endre u. 19.', '42123434-2-35'),
(3, 'Programozó Bt.', 4400, 'Nyíregyháza', 'Váci Mihály u. 8.', '52312378-1-35'),
(4, 'Technológia Zrt.', 4000, 'Debrecen', 'Arany János u. 35.', '88122233-2-29'),
(5, 'MI Alkalmazásfejlesztő Kft.', 1087, 'Budapest', 'Dózsa György u. 2.', '14476754-2-42'),
(6, 'Szoftver ABC Kft.', 4000, 'Debrecen', 'Dugovics Titusz u. 1.', '17878424-2-29'),
(7, 'Hardver & Szoftver Kft.', 4400, 'Nyíregyháza', 'Krúdy Gyula u. 8.', '38162681-2-35'),
(8, 'Szoftvertechnológia Kft.', 4400, 'Nyíregyháza', 'Sipkai Barna u. 12.', '54628433-2-35'),
(9, 'Rendszer Ház Zrt.', 1114, 'Budapest', 'Bartók Béla u. 77.', '68421572-2-43'),
(10, 'Szoftverfejlesztő Bt.', 3300, 'Eger', 'Dobó István u. 4.', '26355876-1-35');

-- --------------------------------------------------------

-- fizetesi_mod

CREATE TABLE `fizetesi_mod` (
  `azon` int(10) NOT NULL,
  `megnevezes` varchar(10) COLLATE utf8mb4_hungarian_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_hungarian_ci;

INSERT INTO `fizetesi_mod` (`azon`, `megnevezes`) VALUES
(1, 'Készpénz'),
(2, 'Átutalás');

-- --------------------------------------------------------

-- szamla

CREATE TABLE `szamla` (
  `azon` int(10) NOT NULL,
  `vevo_azon` int(10) NOT NULL,
  `fizetesi_mod_azon` int(10) NOT NULL,
  `teljesites_datuma` date NOT NULL,
  `kiallitas_datuma` date NOT NULL,
  `fizetesi_hatarido` date NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_hungarian_ci;

INSERT INTO `szamla` (`azon`, `vevo_azon`, `fizetesi_mod_azon`, `teljesites_datuma`, `kiallitas_datuma`, `fizetesi_hatarido`) VALUES
(1, 2, 1, '2023-01-06', '2023-01-06', '2023-01-06'),
(2, 3, 2, '2023-01-21', '2023-01-21', '2023-01-29'),
(3, 7, 2, '2023-02-10', '2023-02-10', '2023-02-18'),
(4, 6, 2, '2023-02-15', '2023-02-15', '2023-02-23'),
(5, 9, 2, '2023-03-02', '2023-03-02', '2023-03-10'),
(6, 4, 1, '2023-03-12', '2023-03-12', '2023-03-12'),
(7, 1, 2, '2023-04-15', '2023-04-15', '2023-04-23'),
(8, 5, 2, '2023-05-20', '2023-05-20', '2023-05-28'),
(9, 8, 1, '2023-09-08', '2023-09-08', '2023-09-16'),
(10, 10, 2, '2023-10-01', '2023-10-01', '2023-10-09'),
(11, 3, 1, '2023-11-01', '2023-11-01', '2023-11-01'),
(12, 6, 2, '2023-12-13', '2023-12-13', '2023-12-21'),
(13, 4, 2, '2024-01-11', '2024-01-11', '2024-01-19'),
(14, 7, 2, '2024-02-04', '2024-02-04', '2024-02-12'),
(15, 2, 1, '2024-03-08', '2024-03-08', '2024-03-08'),
(16, 9, 2, '2024-04-07', '2024-04-07', '2024-04-15'),
(17, 8, 1, '2024-05-17', '2024-05-17', '2024-05-17'),
(18, 1, 2, '2024-09-20', '2024-09-20', '2024-09-28'),
(19, 7, 2, '2024-10-21', '2024-10-21', '2024-10-29'),
(20, 1, 2, '2024-11-11', '2024-11-11', '2024-11-19'),
(21, 7, 2, '2025-01-05', '2025-01-05', '2025-01-13'),
(22, 6, 2, '2025-02-02', '2025-02-02', '2025-02-10'),
(23, 9, 2, '2025-03-20', '2025-03-20', '2025-03-28'),
(24, 7, 2, '2025-04-01', '2025-04-01', '2025-04-09'),
(25, 9, 2, '2025-04-07', '2025-04-07', '2025-04-15');

-- --------------------------------------------------------

-- tetel

CREATE TABLE `tetel` (
  `szamla_azon` int(10) NOT NULL,
  `sorszam` int(5) NOT NULL,
  `termek_azon` int(10) NOT NULL,
  `mennyiseg` int(10) NOT NULL,
  `egysegar` int(10) NOT NULL,
  `afa_azon` int(10) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_hungarian_ci;

INSERT INTO `tetel` (`szamla_azon`, `sorszam`, `termek_azon`, `mennyiseg`, `egysegar`, `afa_azon`) VALUES
(1, 1, 2, 1, 110000, 4),
(2, 1, 1, 3, 40000, 4),
(2, 2, 3, 1, 10000, 1),
(3, 1, 5, 2, 125000, 4),
(3, 2, 2, 2, 120000, 4),
(3, 3, 15, 1, 20000, 4),
(4, 1, 6, 1, 30000, 1),
(4, 2, 17, 10, 400, 3),
(5, 1, 20, 2, 1000000, 4),
(5, 2, 19, 1, 20000, 1),
(5, 3, 18, 2, 15000, 1),
(5, 4, 3, 2, 10000, 1),
(6, 1, 13, 12, 25000, 1),
(6, 2, 8, 1, 90000, 1),
(6, 3, 4, 20, 10000, 1),
(7, 1, 10, 300, 20000, 1),
(8, 1, 14, 100, 20000, 2),
(8, 2, 17, 100, 400, 3),
(9, 1, 4, 200, 10000, 1),
(10, 1, 9, 10, 100000, 4),
(11, 1, 12, 2, 4800, 2),
(12, 1, 13, 10, 25000, 1),
(12, 2, 17, 10, 400, 3),
(13, 1, 18, 20, 15000, 1),
(13, 2, 3, 20, 10000, 1),
(14, 1, 9, 2, 100000, 4),
(15, 1, 5, 1, 125000, 4),
(16, 1, 10, 200, 15000, 1),
(17, 1, 14, 100, 22000, 2),
(18, 1, 14, 100, 23000, 2),
(18, 2, 17, 100, 400, 3),
(19, 1, 1, 10, 40000, 4),
(20, 1, 13, 40, 25000, 4),
(21, 1, 18, 20, 15000, 4),
(22, 1, 15, 1, 20000, 1),
(22, 2, 17, 40, 400, 3),
(23, 1, 14, 50, 24000, 2),
(23, 2, 17, 50, 400, 3),
(24, 1, 8, 1, 100000, 1),
(25, 1, 19, 1, 20000, 1),
(25, 2, 17, 50, 400, 3);

-- --------------------------------------------------------

-- termek

CREATE TABLE `termek` (
  `azon` int(10) NOT NULL,
  `megnevezes` varchar(100) COLLATE utf8mb4_hungarian_ci NOT NULL,
  `csoport` varchar(30) COLLATE utf8mb4_hungarian_ci NOT NULL,
  `egysegar` int(10) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_hungarian_ci;

INSERT INTO `termek` (`azon`, `megnevezes`, `csoport`, `egysegar`) VALUES
(1, 'Intel 665p 1TB SSD', 'Hardver', 40000),
(2, 'Intel Core i7-14700K CPU', 'Hardver', 120000),
(3, 'Szoftver telepítés', 'Szoftver', 10000),
(4, 'Informatikai oktatás', 'Oktatás', 10000),
(5, 'ASUS ROG Strix Z790-A Gaming WIFI II Alaplap', 'Hardver', 125000),
(6, 'Weblap tervezése (webdizájn)', 'Weblap', 30000),
(7, 'ASUS TUF Gaming B760-PLUS WIFI Alaplap', 'Hardver', 60000),
(8, 'Egyedi szoftverfejlesztés', 'Szoftver', 100000),
(9, 'LG UltraGear 27GR83Q-B Monitor', 'Hardver', 100000),
(10, 'Főiskolai és egyetemi oktatás, alapképzés, mesterképzés és doktori képzés', 'Oktatás', 20000),
(11, 'Biopont bio extrudált barna rizsgolyó', 'Gabona', 400),
(12, 'Internet-hozzáférés', 'Internet', 4800),
(13, 'Számítógép, -periféria javítása, karbantartása', 'Számítógép', 25000),
(14, 'C++', 'Könyv', 24000),
(15, 'Egyéb számítástechnikai szakértés, tanácsadás', 'Tanácsadás', 20000),
(16, 'Python 3', 'Könyv', 19000),
(17, 'Biopont bio extrudált kölesgolyó', 'Gabona', 400),
(18, 'Számítógép üzembe helyezése', 'Számítógép', 15000),
(19, 'Hardver-szaktanácsadás', 'Tanácsadás', 20000),
(20, 'DELL T550 szerver', 'Hardver', 1000000);

-- --------------------------------------------------------

-- afa

CREATE TABLE `afa` (
  `azon` int(5) NOT NULL,
  `kulcs` int(5) NOT NULL,
  `megnevezes` varchar(30) COLLATE utf8mb4_hungarian_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_hungarian_ci;

INSERT INTO `afa` (`azon`, `kulcs`, `megnevezes`) VALUES
(1, 0, 'Alanyi adómentes'),
(2, 5, 'Kedvezményes'),
(3, 18, 'Kedvezményes'),
(4, 27, 'Általános');

-- --------------------------------------------------------

-- Indexek

ALTER TABLE `vevo`
  ADD PRIMARY KEY (`azon`);

ALTER TABLE `fizetesi_mod`
  ADD PRIMARY KEY (`azon`);

ALTER TABLE `szamla`
  ADD PRIMARY KEY (`azon`),
  ADD KEY `vevo_azon` (`vevo_azon`),
  ADD KEY `fizetesi_mod_azon` (`fizetesi_mod_azon`);

ALTER TABLE `tetel`
  ADD PRIMARY KEY (`szamla_azon`, `sorszam`),
  ADD KEY `termek_azon` (`termek_azon`),
  ADD KEY `afa_azon` (`afa_azon`);

ALTER TABLE `termek`
  ADD PRIMARY KEY (`azon`);

ALTER TABLE `afa`
  ADD PRIMARY KEY (`azon`);

-- --------------------------------------------------------

-- Megkötések

ALTER TABLE `szamla`
  ADD CONSTRAINT `szamla_ibfk_1` FOREIGN KEY (`vevo_azon`) REFERENCES `vevo` (`azon`),
  ADD CONSTRAINT `szamla_ibfk_2` FOREIGN KEY (`fizetesi_mod_azon`) REFERENCES `fizetesi_mod` (`azon`);

ALTER TABLE `tetel`
  ADD CONSTRAINT `tetel_ibfk_1` FOREIGN KEY (`szamla_azon`) REFERENCES `szamla` (`azon`),
  ADD CONSTRAINT `tetel_ibfk_2` FOREIGN KEY (`termek_azon`) REFERENCES `termek` (`azon`),
  ADD CONSTRAINT `tetel_ibfk_3` FOREIGN KEY (`afa_azon`) REFERENCES `afa` (`azon`);
COMMIT;
