Jak naji toho, kdo zamkl/odemkl smenu
Seznam skaldu
SELECT
expedice_id AS sklad_id,
expedice_nazev AS sklad_jmeno
FROM expedice
WHERE expedice_aktivni = 1
ORDER BY expedice_nazev;
| sklad_id | sklad_jmeno |
|---|---|
| 3 | Knihy Česká Lípa |
| 6 | Knihy Jablonec |
| 1 | Knihy Liberec |
| 9 | Knihy Ostrava |
| 4 | Knihy Praha Modřany |
| 7 | Knihy Stráž |
| 8 | Parfémy Liberec |
Typy smen
SELECT * FROM `knihy-cme`.smena_typ;
| smena_typ_id | smena_typ_popis |
|---|---|
| 1 | ranní |
| 2 | odpolední |
| 3 | noční |
| 4 | svátek |
| 5 | přesčas |
| 6 | sobota |
| 7 | neděle |
| 8 | dovolená |
| 9 | nemoc |
| 10 | volno neplacené |
| 11 | neomluvená absence |
| 12 | mateřská dovolená |
| 13 | OČR |
| 14 | volno placené |
| 66 | sobota noční |
| 67 | neděle noční |
Dohledani smen v danem obdobi
SELECT
ps.planovac_smena_id,
pd.planovac_den_datum,
po.expedice_id AS id_skladu,
ps.planovac_smena_typ
FROM `knihy-cme`.planovac_smena ps
JOIN `knihy-cme`.planovac_den pd
ON pd.planovac_den_id = ps.planovac_den_id
JOIN `knihy-cme`.planovac_obdobi po
ON po.planovac_obdobi_id = pd.planovac_obdobi_id
WHERE pd.planovac_den_datum BETWEEN '2026-03-27' AND '2026-03-29'
AND po.expedice_id IN (3, 9)
AND ps.planovac_smena_typ IN (1, 2, 6, 7)
ORDER BY pd.planovac_den_datum, po.expedice_id, ps.planovac_smena_id
Dohledani id osob, ktere script v dany cas volali
Zmena smeny se pozna podel requestu s paramtery _token=&_nastavena_expedice=7&zamek=1&planovac_smena_id=687871. Pokud lze omezit, obdobi kdy nas vyseldky zajimaji, pak je toto nejjednodussi zpusob, jak hledat. V nasledujici tabulce jsou data za posledni 2 dny.
SELECT
uzivatel_id,
pozadavek_datum,
pozadavek_skript_id,
pozadavek_get,
pozadavek_post,
objednavka_id,
up_id,
pozadavek_trvani,
pozadavek_pamet_kB,
pozadavek_pocet_sql,
pozadavek_ip
FROM
`knihy-temp`.pozadavek
WHERE
pozadavek_skript_id = 2020
AND
(
pozadavek_get = 'planovac_smena_id=687822'
OR
pozadavek_get = 'planovac_smena_id=687823'
)
AND
pozadavek_post LIKE '%zamek%'
AND
pozadavek_post LIKE '%_nastavena_expedice%'
AND
pozadavek_datum BETWEEN '2026-03-28 06:40:00' AND '2026-03-29 23:01:00';
Data starsi nez 2 dny jsou dostupna takto:
SELECT
uzivatel_id,
pozadavek_datum,
pozadavek_skript_id,
pozadavek_get,
pozadavek_post,
objednavka_id,
up_id,
pozadavek_trvani,
pozadavek_pamet_kB,
pozadavek_pocet_sql,
pozadavek_ip
FROM
`knihy-hist-cme`.pozadavek
WHERE
pozadavek_skript_id = 2020
AND
pozadavek_datum BETWEEN '2026-03-27 06:40:00' AND '2026-03-29 23:01:00'
AND
pozadavek_post LIKE '%zamek%'
AND
pozadavek_post LIKE '%_nastavena_expedice%'
;
Dohledani detailu osob
SELECT
uzivatel_id,
uzivatel_login,
uzivatel_heslo,
uzivatel_opravneni,
uzivatel_aktivni,
uzivatel_allowip,
uzivatel_smi_vyhledavat,
uzivatel_karta_id,
uzivatel_klic_id,
uzivatel_ppclovers_apikey,
uzivatel_jabber,
uzivatel_blokace
FROM
`knihy-temp`.pozadavek
WHERE
uzivatel_id IN (20269, 4426)
;
Co dal muze pomoct
SELECT
ps.planovac_smena_id,
pd.planovac_den_datum AS den,
po.expedice_id AS id_skladu,
e.expedice_nazev AS expedice,
ps.planovac_smena_typ,
CASE
WHEN ps.planovac_smena_typ = 1 THEN 'Ranni'
WHEN ps.planovac_smena_typ = 2 THEN 'Odpoledni'
WHEN ps.planovac_smena_typ = 3 THEN 'Nocni'
ELSE CONCAT('typ_', ps.planovac_smena_typ)
END AS typ_smeny,
ps.planovac_smena_aktivni,
ps.planovac_smena_zamek,
CASE
WHEN ps.planovac_smena_aktivni = 0 THEN 'neaktivni'
WHEN ps.planovac_smena_zamek = 1 THEN 'zamcena'
ELSE 'aktivni'
END AS stav_smeny
FROM `knihy-cme`.planovac_smena ps
JOIN `knihy-cme`.planovac_den pd
ON pd.planovac_den_id = ps.planovac_den_id
JOIN `knihy-cme`.planovac_obdobi po
ON po.planovac_obdobi_id = pd.planovac_obdobi_id
JOIN `knihy-cme`.expedice e
ON e.expedice_id = po.expedice_id
WHERE pd.planovac_den_datum = '2026-04-13'
AND po.expedice_id = 9
ORDER BY ps.planovac_smena_id;
Kdy se dana smena menila?
SELECT
uzivatel_id,
pozadavek_datum,
pozadavek_skript_id,
pozadavek_get,
pozadavek_post,
objednavka_id,
up_id,
pozadavek_trvani,
pozadavek_pamet_kB,
pozadavek_pocet_sql,
pozadavek_ip
FROM
`knihy-temp`.pozadavek
WHERE
pozadavek_skript_id = 2020
AND
pozadavek_get = 'planovac_smena_id=674359'
AND
pozadavek_post LIKE '%zamek%'
AND
pozadavek_post LIKE '%_nastavena_expedice%'
;
Notes
Pokud je nejaka smena aktualne zamcena, nemusi to znamenat, ze se podari najit udalost s tim, kdo to udelal.