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.