-- DOPLNENI ZE DNE 01.05.2013 de pripominek -- POLOZKA: doplneni pole: min_mnozstvi - pro navrhy na objednavky, test na objednavku: stav prodeje < min_mnozstvi, null nebo 0 => nezajima nas mnozstvi -- doplnění polí hodnoceni_pocet a hodnoceni_suma pro výpočet zobrazení hodnocení u položek -- POLOZKA_SKLADEM: na zadost doplneno nove pole polozka_id pro prime propojeni na polozky, kdyz neni treba resit dodavatele (pozor, nutno doplnovat pri zadani polozky skladem!) -- LOG: nova tabulka: logovani prehledu o cinnosti spravcu/zamestnancu a dohledani pripadnych chyb - pro interni pouziti; pripadne logovani chyb -- datum, osoba, oblast, co záleží na podrobnosti specifikace -- Např.: 23.04.13 20:03 lomi výpůjčka ID = 5388: popis změny -- KOMUNIKACE: nova tabulka: komunikace mezi spravci/adminy navzajem, jimi a systemem, generovani zprav pro ne, psani vzkazu, psani zprav na web - novinky apod. -- HODNOCENI: nova tabulka: hodnoceni polozek ze strany uzivatelu, pripadne diskuze k jednotlivym polozkam; -- (pokud se vyplni hodnoceni, mely by se navysit hodnoty hodnoceni_pocet a hodnoceni_suma v tab. POLOZKA) -- OBJEDNAVKA: zruseni pole typ_objednavky; nové pole zpusob_platby_id, zpusob_dopravy_id, fakturace_adresa_id, doruceni_adresa_id -- OBJEDNAVKA_POLOZKY: nové pole typ_objednávky - je to z duvodu, ze uzivatel muze zadat objednavku (hlavicku), ktera muze zahrnovat nakup polozek, -- ktere kdyz nejsou skladem a nechce to poslat najednou, tak cast se muze resit jako objednavka, cast jako poptavka, az potvrdime naskladneni, -- cast muze byt i rezervace her, cast rezervace mista, tak aby to bylo mozne rozlisit -- ZPUSOB_PLATBY: nova tabulka + propojeni do OBJEDNAVKA -- ZPUSOB_DORUCENI: nova tabulka + propojeni do OBJEDNAVKA -- FAKTURY: prosim prejmenovat nebo smazat pole adresa, aby bylo doplnit pole dorucovaci_adresa, fakturacni_adresa ALTER TABLE `POLOZKA` ADD min_mnozstvi REAL , ADD hodnoceni_pocet INTEGER , ADD hodnoceni_suma INTEGER ; ALTER TABLE `POLOZKA_SKLADEM` ADD polozka_id INTEGER NOT NULL ; ALTER TABLE POLOZKA_SKLADEM ADD CONSTRAINT POLOZKA_SKLADEM_POLOZKA_FK FOREIGN KEY ( polozka_id ) REFERENCES POLOZKA ( polozka_id ) ; -- pro pripadne doplneni hodnot do pole polozka_id ze stavajicich dat UPDATE (POLOZKA_SKLADEM INNER JOIN POLOZKA_OD_DODAVATELE ON POLOZKA_SKLADEM.polozka_dodavatele_id = POLOZKA_OD_DODAVATELE.polozka_dodavatele_id) INNER JOIN POLOZKA ON POLOZKA_OD_DODAVATELE.polozka_id = POLOZKA.polozka_id SET POLOZKA_SKLADEM.polozka_id = POLOZKA.polozka_id; DROP TABLE IF EXISTS `LOG`; CREATE TABLE IF NOT EXISTS LOG ( log_id INTEGER NOT NULL AUTO_INCREMENT, dat_vlozeni DATETIME NOT NULL , oblast ENUM('akce', 'banka', 'faktura', 'firma', 'kategorie', 'měna', 'nákup', 'objednávka', 'osoba', 'ostatní', 'pokladna', 'pol. dodavatele', 'pol. skladem', 'položka', 'pozice', 'prodej', 'protokol pol.', 'reklamace', 'rezervace', 'sklad', 'výpůjčka') , osoba_id SMALLINT NOT NULL , -- kdo zmenu provedl popis VARCHAR (255) , -- popis logovane udalosti PRIMARY KEY (log_id) , KEY LOG_OSOBA_FK (osoba_id) ) -- ENGINE=MyISAM DEFAULT AUTO_INCREMENT=1 ; -- ALTER TABLE LOG ADD CONSTRAINT HODNOCENI_PK PRIMARY KEY ( log_id ) ; ALTER TABLE LOG ADD CONSTRAINT LOG_OSOBA_FK FOREIGN KEY ( osoba_id ) REFERENCES OSOBA ( osoba_id ) ; DROP TABLE IF EXISTS `KOMUNIKACE`; CREATE TABLE IF NOT EXISTS KOMUNIKACE -- komunikace mezi zamestnanci a systemem nebo zamestnanci vzajemne, neco jako ukoly ( zprava_id INTEGER NOT NULL AUTO_INCREMENT , od_osoba_id SMALLINT NOT NULL , -- kdo komu predava zprava/vzkaz; systemova zprava uzivateli = 0 pro_osoba_id SMALLINT NOT NULL , -- pro koho je urcena zprava; pokud 0, pak pro kohokoli - kdo to zaridi prvni resi_osoba_id SMALLINT , -- pokud to bylo pro kohokoli a nekdo to vyresil, ulozi se, kdo to byl typ_zpravy ENUM('zprava', 'novinka', 'reklamace', 'recenze') , -- zprava = interni komunikace, novinka = zprava na web, recenze = informace ke hre na web polozka_id INTEGER NOT NULL , -- odkaz na polozku, jde-li o recenzi predmet_zpravy_ VARCHAR (200) , text_zpravy TEXT , -- musi zajistit i moznost vlozeni html tagů, obrazku apod. dat_vlozeni DATETIME NOT NULL , dat_zmeny DATETIME , dat_smazani DATETIME , odkaz_zprava_id INTEGER , -- pokud by byla vztazena k jine zprave aktivni CHAR (1) NOT NULL , -- A/N - zda je treba ji jeste zobrazovat PRIMARY KEY (`zprava_id`) , KEY `KOMUNIKACE_OSOBA_OD_FK` (`od_osoba_id`), KEY `KOMUNIKACE_OSOBA_PRO_FK` (`pro_osoba_id`), KEY `KOMUNIKACE_OSOBA_RESI_FK` (`resi_osoba_id`) ) ; -- ALTER TABLE KOMUNIKACE ADD CONSTRAINT KOMUNIKACE_PK PRIMARY KEY ( zprava_id ) ; ALTER TABLE KOMUNIKACE ADD CONSTRAINT KOMUNIKACE_OSOBA_OD_FK FOREIGN KEY ( od_osoba_id ) REFERENCES OSOBA ( osoba_id ) ; ALTER TABLE KOMUNIKACE ADD CONSTRAINT KOMUNIKACE_OSOBA_PRO_FK FOREIGN KEY ( pro_osoba_id ) REFERENCES OSOBA ( osoba_id ) ; ALTER TABLE KOMUNIKACE ADD CONSTRAINT KOMUNIKACE_OSOBA_RESI_FK FOREIGN KEY ( resi_osoba_id ) REFERENCES OSOBA ( osoba_id ) ; DROP TABLE IF EXISTS `NASTAVENI`; CREATE TABLE IF NOT EXISTS NASTAVENI -- komunikace mezi zamestnanci a systemem nebo zamestnanci vzajemne, neco jako ukoly ( osoba_id SMALLINT NOT NULL , -- 0 = globální nastavení, ktere plati pro ty, kteri nemaji vlastni; pokud ma nekdo vlastni, pak specialni zaznam s jeho ID klic VARCHAR (100) , -- napr. tisk_pozice_doklad_fa hodnota VARCHAR (255) -- mozne hodnoty napr. vlevo / vpravo / vlevo+vpravo - jedna z nich tam bude uvedena PRIMARY KEY (log_id) , KEY LOG_OSOBA_FK (osoba_id) ) ; -- ALTER TABLE NASTAVENI ADD CONSTRAINT NASTAVENI_PK PRIMARY KEY ( osoba_id, klic ) ; ALTER TABLE NASTAVENI ADD CONSTRAINT NASTAVENI_OSOBA_FK FOREIGN KEY ( osoba_id ) REFERENCES OSOBA ( osoba_id ) ; -- data pro pripadne naplneni tabulky INSERT INTO NASTAVENI (osoba_id, klic, hodnota) VALUES (0, 'info_overeni_ceny', 'Ceny zde uvedené jsou včetně DPH, mohou se však lišit oproti skutečnosti. Informujte se prosím předem na aktuální stav zboží a cen.'); INSERT INTO NASTAVENI (osoba_id, klic, hodnota) VALUES (0, 'kontakt_nazev', 'KAVENU o. s.'); INSERT INTO NASTAVENI (osoba_id, klic, hodnota) VALUES (0, 'kontakt_popis', 'Půjčovna deskových her s obchůdkem, a to i internetovým.'); INSERT INTO NASTAVENI (osoba_id, klic, hodnota) VALUES (0, 'kontakt_provoz_obec', 'Plzeň'); INSERT INTO NASTAVENI (osoba_id, klic, hodnota) VALUES (0, 'kontakt_provoz_psc', '301 00'); INSERT INTO NASTAVENI (osoba_id, klic, hodnota) VALUES (0, 'kontakt_provoz_ulice', 'Borská 5'); INSERT INTO NASTAVENI (osoba_id, klic, hodnota) VALUES (0, 'kontakt_provoz_vse', 'Jsme pro Vás ? v Borské 5 ? na telefonu 775 652 299 ? na emailu info@kavenu.eu ? na stránkách www.kavenu.eu'); INSERT INTO NASTAVENI (osoba_id, klic, hodnota) VALUES (0, 'kontakt_sidlo_obec', 'Plzeň'); INSERT INTO NASTAVENI (osoba_id, klic, hodnota) VALUES (0, 'kontakt_sidlo_psc', '301 00'); INSERT INTO NASTAVENI (osoba_id, klic, hodnota) VALUES (0, 'kontakt_sidlo_ulice', 'Kperníkova 39'); INSERT INTO NASTAVENI (osoba_id, klic, hodnota) VALUES (0, 'oteviraci_doba', 'Otevřené dveře najdete ? út–pá 17–21 ? či kdykoli po předchozí domluvě'); INSERT INTO NASTAVENI (osoba_id, klic, hodnota) VALUES (0, 'oteviraci_doba_kratce', 'Otevřeno máme: ? út–pá 17–21 ? jinak dle domluvy'); INSERT INTO NASTAVENI (osoba_id, klic, hodnota) VALUES (0, 'tisk_pozice_doklad_fa', 'vlevo+vpravo'); INSERT INTO NASTAVENI (osoba_id, klic, hodnota) VALUES (1, 'tisk_pozice_doklad_fa', 'vlevo'); INSERT INTO NASTAVENI (osoba_id, klic, hodnota) VALUES (1, 'tisk_pozice_doklad_pk', 'vlevo'); INSERT INTO NASTAVENI (osoba_id, klic, hodnota) VALUES (0, 'tisk_pozice_doklad_pk', 'vlevo+vpravo'); INSERT INTO NASTAVENI (osoba_id, klic, hodnota) VALUES (0, 'tisk_pozice_vypujcka', 'vlevo+vpravo'); INSERT INTO NASTAVENI (osoba_id, klic, hodnota) VALUES (1, 'tisk_pozice_vypujcka', 'vlevo'); INSERT INTO NASTAVENI (osoba_id, klic, hodnota) VALUES (0, 'info_sleva', 'Při nákupu dvou a více kusů her nebo při nákupu předtím vypůjčené hry bude započítána snížená cena (vícecena). Při nákupu jednoho kusu pak běžná cena (jednocena).'); -- vyber nastaveni pro aktualniho uzivatele; pokud pro nej nejaka hodnotaneexistuje, pouzije se obecne nastaveni SELECT NASTAVENI.osoba_id, NASTAVENI.klic, NASTAVENI.hodnota FROM NASTAVENI INNER JOIN (SELECT Max(NASTAVENI.osoba_id) AS osoba_id, NASTAVENI.klic FROM NASTAVENI WHERE (((NASTAVENI.osoba_id)=0 Or (NASTAVENI.osoba_id)=[OsID])) GROUP BY NASTAVENI.klic) AS NAST2 ON NASTAVENI.osoba_id = NAST2.osoba_id AND NASTAVENI.klic = NAST2.klic; -- moznost efektivnejsiho vyuziti viz napr. http://dibiphp.com/cs/quick-start ($pairs = $result->fetchPairs('customerID', 'name');) -- lze stahnout i jednotlive metody z DIBI a vyuzit v projektu -- po ulozeni hodnoceni od uzivatele by se mel navysit i hodnoceni_pocet a hodnoceni_suma o prislusne hodnoty DROP TABLE IF EXISTS `HODNOCENI`; CREATE TABLE IF NOT EXISTS HODNOCENI ( hodnoceni_id INTEGER NOT NULL AUTO_INCREMENT, polozka_id INTEGER NOT NULL , osoba_id SMALLINT NOT NULL , znamka SMALLINT , komentar TEXT , dat_vlozeni DATETIME NOT NULL , nadr_hodnoceni_id INTEGER , PRIMARY KEY (`hodnoceni_id`) , KEY `HODNOCENI_POLOZKA_FK` (`polozka_id`) , KEY `HODNOCENI_OSOBA_FK` (`osoba_id`) ) ; -- ALTER TABLE HODNOCENI ADD CONSTRAINT HODNOCENI_PK PRIMARY KEY ( hodnoceni_id ) ; ALTER TABLE HODNOCENI ADD CONSTRAINT HODNOCENI_POLOZKA_FK FOREIGN KEY ( polozka_id ) REFERENCES POLOZKA ( polozka_id ) ; ALTER TABLE HODNOCENI ADD CONSTRAINT HODNOCENI_OSOBA_FK FOREIGN KEY ( osoba_id ) REFERENCES OSOBA ( osoba_id ) ; DROP TABLE IF EXISTS `ZPUSOB_PLATBY`; CREATE TABLE IF NOT EXISTS ZPUSOB_PLATBY ( zpusob_platby_id INTEGER NOT NULL AUTO_INCREMENT, popis VARCHAR (50), aktivni CHAR (1) NOT NULL , -- A/I/N - A = aktivni pro kohokoli / I = pouze interne / N = neaktivni PRIMARY KEY (zpusob_platby_id) ) -- ENGINE=MyISAM DEFAULT AUTO_INCREMENT=1 ; -- doplneni dat do tabulky INSERT INTO ZPUSOB_PLATBY (zpusob_platby_id, popis, aktivni) VALUES (1, 'hotově při převzetí', 'A'); INSERT INTO ZPUSOB_PLATBY (zpusob_platby_id, popis, aktivni) VALUES (2, 'dobírka', 'A'); INSERT INTO ZPUSOB_PLATBY (zpusob_platby_id, popis, aktivni) VALUES (3, 'převodem na účet dodavatele', 'A'); INSERT INTO ZPUSOB_PLATBY (zpusob_platby_id, popis, aktivni) VALUES (4, 'hotově', 'I'); INSERT INTO ZPUSOB_PLATBY (zpusob_platby_id, popis, aktivni) VALUES (5, 'převodem', 'I'); INSERT INTO ZPUSOB_PLATBY (zpusob_platby_id, popis, aktivni) VALUES (6, 'platební karta', 'I'); INSERT INTO ZPUSOB_PLATBY (zpusob_platby_id, popis, aktivni) VALUES (7, 'zápočet (výměna)', 'I'); INSERT INTO ZPUSOB_PLATBY (zpusob_platby_id, popis, aktivni) VALUES (8, 'inkaso', 'I'); INSERT INTO ZPUSOB_PLATBY (zpusob_platby_id, popis, aktivni) VALUES (9, 'hotově-vklad na účet', 'I'); INSERT INTO ZPUSOB_PLATBY (zpusob_platby_id, popis, aktivni) VALUES (10, 'převodem ze soukromého účtu', 'I'); DROP TABLE IF EXISTS `ZPUSOB_DORUCENI`; CREATE TABLE IF NOT EXISTS ZPUSOB_DORUCENI ( zpusob_doruceni_id INTEGER NOT NULL AUTO_INCREMENT, popis VARCHAR (50), aktivni CHAR (1) NOT NULL , -- A/I/N - A = aktivni pro kohokoli / I = pouze interne / N = neaktivni PRIMARY KEY (zpusob_doruceni_id) ) -- ENGINE=MyISAM DEFAULT AUTO_INCREMENT=1 ; -- doplneni dat do tabulky INSERT INTO ZPUSOB_DORUCENI (zpusob_doruceni_id, popis, aktivni) VALUES (1, 'Osobní převzetí', 'A'); INSERT INTO ZPUSOB_DORUCENI (zpusob_doruceni_id, popis, aktivni) VALUES (2, 'Česká pošta - obyčejně', 'A'); INSERT INTO ZPUSOB_DORUCENI (zpusob_doruceni_id, popis, aktivni) VALUES (3, 'Česká pošta - obchodní balík', 'A'); INSERT INTO ZPUSOB_DORUCENI (zpusob_doruceni_id, popis, aktivni) VALUES (4, 'Doručovací službou', 'A'); INSERT INTO ZPUSOB_DORUCENI (zpusob_doruceni_id, popis, aktivni) VALUES (5, 'Zásilkovna', 'A'); INSERT INTO ZPUSOB_DORUCENI (zpusob_doruceni_id, popis, aktivni) VALUES (6, 'Doručenka', 'A'); ALTER TABLE `OBJEDNAVKA` DROP typ_obj_id ; ALTER TABLE `OBJEDNAVKA` ADD zpusob_platby_id SMALLINT , ADD zpusob_doruceni_id SMALLINT , ADD fakturace_adresa_id INTEGER , ADD doruceni_adresa_id INTEGER ; ALTER TABLE OBJEDNAVKA ADD CONSTRAINT OBJEDNAVKA_PLATBA_FK FOREIGN KEY ( zpusob_platby_id ) REFERENCES ZPUSOB_PLATBY ( zpusob_platby_id ) ; ALTER TABLE OBJEDNAVKA ADD CONSTRAINT OBJEDNAVKA_DORUCENI_FK FOREIGN KEY ( zpusob_doruceni_id ) REFERENCES ZPUSOB_DORUCENI ( zpusob_doruceni_id ) ; ALTER TABLE OBJEDNAVKA ADD CONSTRAINT OBJEDNAVKA_ADRESA_FA_FK FOREIGN KEY ( fakturace_adresa_id ) REFERENCES ADRESA ( adresa_id ) ; ALTER TABLE OBJEDNAVKA ADD CONSTRAINT OBJEDNAVKA_ADRESA_DOR_FK FOREIGN KEY ( doruceni_adresa_id ) REFERENCES ADRESA ( adresa_id ) ; ALTER TABLE `OBJEDNAVKA_POLOZKY` ADD typ_obj_id SMALLINT NOT NULL; ALTER TABLE OBJEDNAVKA_POLOZKY ADD CONSTRAINT OBJEDNAVKA_POLOZKY_TYP_OBJ_FK FOREIGN KEY ( typ_obj_id ) REFERENCES TYP_OBJEDNAVKY ( typ_obj_id ) ; -- FAKTURY - doplneni poli - pokud je treba doplnit obe pole ALTER TABLE `FAKTURY` ADD dorucovaci_adresa VARCHAR (255) , ADD fakturacni_adresa VARCHAR (255) ; -- FAKTURY - doplneni poli - pokud je treba odstranit adresu ALTER TABLE `FAKTURY` DROP adresa