Pomůcky - sestavy: Porovnání verzí

Z Prirucky
Řádek 74: Řádek 74:
  order by
  order by
  A.os_cislo, A.cislo_pom, A.cis_pomucky;
  A.os_cislo, A.cislo_pom, A.cis_pomucky;
== Nárokové pracovní pomůcky ==
Sestava určená pro [[Generátor sestav II]]. Čerpá informace o nárokových pracovních pomůckách
* z popisu pracovního místa
* z individuálních požadavků
Pozn. Z důvodu složitosti scriptu má sestava následující nedostatek. Sestava jako nárokovou označí i takovou pracovní pomůcku, která je v popisu pracovního místa, ale v pracovních pomůckách u vybraného zaměstnance byla označena (odtrhnuto) že pro něj není nárokovou.
<small>
select A.os_cislo,
A.prijmeni,
A.jmeno,
A.titul,
A.titul_za,
B.cislo_pom,
B.prac_str,
B.datum_nastupu,
B.datum_ukonc,
C.cis_pracmist,
C.naz_pracmist,
'ppm' as zdroj,
D1.hodnota as cis,
E.nazev,
cast (D2.hodnota as decimal (10,3)) as narok,
case
E.jednotka
when 1 then 'ks'
when 2 then 'pár'
end as jedn,
cast(D3.hodnota as smallint) as perioda,
(select hod_pol from pomu_cis_detail G1, pomu_vel_zam H1
where
G1.id_cis = H1.id_cis1 and
G1.id_pol = H1.id_pol1 and
H1.os_cislo = A.os_cislo and
H1.cislo_pom = B.cislo_pom and
H1.cis_pomucky = D1.hodnota) as vel1,
(select hod_pol from pomu_cis_detail G2, pomu_vel_zam H2
where
G2.id_cis = H2.id_cis2 and
G2.id_pol = H2.id_pol2 and
H2.os_cislo = A.os_cislo and
H2.cislo_pom = B.cislo_pom and
H2.cis_pomucky = D1.hodnota) as vel2,
(select max(dat_vyd) from pomu_zam V where
V.os_cislo = A.os_cislo and
V.cislo_pom = B.cislo_pom and
V.cis_pomucky = D1.hodnota and
V.dat_vrac is null and
V.prev_na_os_cislo is null and
V.dat_stor is null) as dat_posl_vyd,
cast (dateadd (day,
cast (D3.hodnota as smallint),
(select max(dat_vyd) from pomu_zam V where
V.os_cislo = A.os_cislo and
V.cislo_pom = B.cislo_pom and
V.cis_pomucky = D1.hodnota and
V.dat_vrac is null and
V.prev_na_os_cislo is null and
V.dat_stor is null)
)
as date)
as dat_nasl_vyd
from pracovnici A, prac_pom B, prac_mist C, prac_mist_atrib D1, prac_mist_atrib D2, prac_mist_atrib D3, pomu E
where A.os_cislo = B.os_cislo and
B.id_pracmist = C.id_pracmist and
D1.id_pracmist = B.id_pracmist and
D1.cis_atributu = 67 and
(D1.platnost_do is null or D1.platnost_do >= %DATUMOD%) and
D2.id_pracmist = B.id_pracmist and
D2.cis_atributu = 68 and
D2.id_provazani = D1.id and
D3.id_pracmist = B.id_pracmist and
D3.cis_atributu = 69 and
D3.id_provazani = D1.id and
D1.hodnota = E.cis_pomucky
union
select A.os_cislo,
A.prijmeni,
A.jmeno,
A.titul,
A.titul_za,
B.cislo_pom,
B.prac_str,
B.datum_nastupu,
B.datum_ukonc,
C.cis_pracmist,
C.naz_pracmist,
'indiv' as zdroj,
H.cis_pomucky,
E.nazev,
H.pocet as narok,
case
E.jednotka
when 1 then 'ks'
when 2 then 'pár'
end as jedn,
H.perioda as perioda,
(select hod_pol from pomu_cis_detail G1, pomu_vel_zam H1
where
G1.id_cis = H1.id_cis1 and
G1.id_pol = H1.id_pol1 and
H1.os_cislo = A.os_cislo and
H1.cislo_pom = B.cislo_pom and
H1.cis_pomucky = H.cis_pomucky) as vel1,
(select hod_pol from pomu_cis_detail G2, pomu_vel_zam H2
where
G2.id_cis = H2.id_cis2 and
G2.id_pol = H2.id_pol2 and
H2.os_cislo = A.os_cislo and
H2.cislo_pom = B.cislo_pom and
H2.cis_pomucky = H.cis_pomucky) as vel2,
(select max(dat_vyd) from pomu_zam V where
V.os_cislo = A.os_cislo and
V.cislo_pom = B.cislo_pom and
V.cis_pomucky = H.cis_pomucky and
V.dat_vrac is null and
V.prev_na_os_cislo is null and
V.dat_stor is null) as dat_posl_vyd,
cast (dateadd (day,
H.perioda,
(select max(dat_vyd) from pomu_zam V where
V.os_cislo = A.os_cislo and
V.cislo_pom = B.cislo_pom and
V.cis_pomucky = H.cis_pomucky and
V.dat_vrac is null and
V.prev_na_os_cislo is null and
V.dat_stor is null)
)
as date)
as dat_nasl_vyd
from pracovnici A, prac_pom B, prac_mist C, pomu E, pomu_vel_zam H
where A.os_cislo = B.os_cislo and
B.id_pracmist = C.id_pracmist and
H.os_cislo = A.os_cislo and
H.cislo_pom = B.cislo_pom and
H.pouzit = 'a' and
H.z_pm =  'n' and
H.cis_pomucky = E.cis_pomucky
order by A.os_cislo, B.cislo_pom
</small>


== Odkazy ==
== Odkazy ==
* [[Pracovní pomůcky]]
* [[Pracovní pomůcky]]

Verze z 29. 6. 2015, 12:16

Sestavy

Předpokládaný výdej za období

  1. Zaměstnanec musí mít nárok na pomůcku (Pomůcky - velikosti zaměstnanců).
  2. Před zadaným datem od systém hledá poslední datum výdeje pomůcky. K nalezenému datu připočte periodu nároku na pomůcku (jednou, dvakrát, třikrát, atd.). Kontroluje se přednastavená perioda ve dnech, resp. perioda nároku ve dnech tak, jak je zadána v Popisu pracovního místa u dané pomůcky na pracovním místě. Pokud tento datum spadá do období definovaného uživatelem (datum od - datum do), je řádek zobrazen v sestavě.
  3. Pokud není nalezen výdej pomůcky a přitom na mi zaměstnanec má nárok, pak je řádek zobrazen v sestavě, navíc s indikací ? ve sloupci rz.
  4. Indikace x ve sloupci rz značí, že u pomůcky se definují velikosti, ale konkrétní zaměstnanec je nemá vyplněny.

PIS-pracovni-pomucky-sestava-predpokladany-vydej.png

  • jen označené - sestava jen pro vybraného (vybrané) zaměstnance
  • členění
    • divize
    • pomůcka (součty za divize)
    • pomůcka (součty za sk.stř.)
    • pomůcka (součty za střed.)
    • skup.stř.
    • středisko

Sestava výdejek za období

PIS-pracovni-pomucky-sestava-vydej-za-obdobi.png

Možná členění sestavy:

  • pomůcka
  • pomůcka; středisko
  • středisko
  • středisko; pomůcka
  • žádné (tj. po zaměstnancích)

Výběr středisek/skupin/divizí
Vytváření sestavy lze také omezit jen na vybranou jednotku (vybrané jednotky), tj. střediska, skupiny středisek, divize.

Sestava výdejek za období (rozšířená)

PIS-pracovni-pomucky-sestava-vydej-za-obdobi-rozsirena.png

V této sestavě lze zobrazit seznam vydaných pomůcek za zvolené období včetně doplňkových informací:

  • model
  • značka
  • výrobní číslo
  • inventární číslo
  • poznámka.

Přehled za zaměstnance

Postup:

na záložce Seznam vybrat požadovaného zaměstnance
přepnout na tlačítko Sestava
zvolit jednu ze dvou výše uvedených sestav
zatrhnout pole Jen označené

Jsou vydané pomůcky nárokové?

V případě nastavení parametru je možno provádět i výdej pomůcek bez nároku. Následující sestava zobrazuje portfolio vydaných pomůcek u zaměstnance a ukazuje, zda je nároková, tj. zda je pomůcka v popisu aktuálního pracovního místa zaměstnance nebo zda je přidána v záložce zam.-velikosti jako individuální nárok zaměstnance.

Pracovni-pomucky-sestava-jsou-vydane-pomucky-narokove.png

  • cis_pomucky - číslo pomůcky, která byla někdy zaměstnanci vydána
  • pomucka_ppm - pokud je v popisu pracovního místa, zobrazí se totéž číslo pomůcky
  • pomucka_velzam - pokud je individuálně přidána jako nárok zaměstnanci, zobrazí se totéž číslo pomůcky

Pokud by všechny vydané pomůcky měly být nárokové, pak součet ve sloupci cis_pomucky by měl být roven součtu ze sloupců pomucka_ppm a pomucka_velzam (kontrolní součty možno provést např. po zkopírování v MS Excel).

Definice pro Generátor sestav II:

select A.os_cislo, A.cislo_pom, A.cis_pomucky,
(select C.hodnota from prac_mist_atrib C, prac_pom B where C.hodnota = A.cis_pomucky and C.cis_atributu = 67 and
C.id_pracmist = B.id_pracmist and B.os_cislo = A.os_cislo and B.cislo_pom = A.cislo_pom) as pomucka_ppm,

(select D.cis_pomucky from pomu_vel_zam D where D.cis_pomucky = A.cis_pomucky and
D.os_cislo = A.os_cislo and D.cislo_pom = A.cislo_pom and D.z_pm = 'n') as pomucka_velzam

from pomu_zam A
group by 
A.os_cislo, A.cislo_pom, A.cis_pomucky

order by
A.os_cislo, A.cislo_pom, A.cis_pomucky;

Nárokové pracovní pomůcky

Sestava určená pro Generátor sestav II. Čerpá informace o nárokových pracovních pomůckách

  • z popisu pracovního místa
  • z individuálních požadavků

Pozn. Z důvodu složitosti scriptu má sestava následující nedostatek. Sestava jako nárokovou označí i takovou pracovní pomůcku, která je v popisu pracovního místa, ale v pracovních pomůckách u vybraného zaměstnance byla označena (odtrhnuto) že pro něj není nárokovou.

select A.os_cislo, A.prijmeni, A.jmeno, A.titul, A.titul_za,

B.cislo_pom, B.prac_str, B.datum_nastupu, B.datum_ukonc,

C.cis_pracmist, C.naz_pracmist,

'ppm' as zdroj,

D1.hodnota as cis, E.nazev, cast (D2.hodnota as decimal (10,3)) as narok,

case E.jednotka when 1 then 'ks' when 2 then 'pár' end as jedn,

cast(D3.hodnota as smallint) as perioda,

(select hod_pol from pomu_cis_detail G1, pomu_vel_zam H1 where G1.id_cis = H1.id_cis1 and G1.id_pol = H1.id_pol1 and H1.os_cislo = A.os_cislo and H1.cislo_pom = B.cislo_pom and H1.cis_pomucky = D1.hodnota) as vel1,

(select hod_pol from pomu_cis_detail G2, pomu_vel_zam H2 where G2.id_cis = H2.id_cis2 and G2.id_pol = H2.id_pol2 and H2.os_cislo = A.os_cislo and H2.cislo_pom = B.cislo_pom and H2.cis_pomucky = D1.hodnota) as vel2,

(select max(dat_vyd) from pomu_zam V where V.os_cislo = A.os_cislo and V.cislo_pom = B.cislo_pom and V.cis_pomucky = D1.hodnota and V.dat_vrac is null and V.prev_na_os_cislo is null and V.dat_stor is null) as dat_posl_vyd,


cast (dateadd (day, cast (D3.hodnota as smallint), (select max(dat_vyd) from pomu_zam V where V.os_cislo = A.os_cislo and V.cislo_pom = B.cislo_pom and V.cis_pomucky = D1.hodnota and V.dat_vrac is null and V.prev_na_os_cislo is null and V.dat_stor is null) ) as date) as dat_nasl_vyd


from pracovnici A, prac_pom B, prac_mist C, prac_mist_atrib D1, prac_mist_atrib D2, prac_mist_atrib D3, pomu E where A.os_cislo = B.os_cislo and B.id_pracmist = C.id_pracmist and

D1.id_pracmist = B.id_pracmist and D1.cis_atributu = 67 and (D1.platnost_do is null or D1.platnost_do >= %DATUMOD%) and

D2.id_pracmist = B.id_pracmist and D2.cis_atributu = 68 and D2.id_provazani = D1.id and

D3.id_pracmist = B.id_pracmist and D3.cis_atributu = 69 and D3.id_provazani = D1.id and

D1.hodnota = E.cis_pomucky


union


select A.os_cislo, A.prijmeni, A.jmeno, A.titul, A.titul_za,

B.cislo_pom, B.prac_str, B.datum_nastupu, B.datum_ukonc,

C.cis_pracmist, C.naz_pracmist,

'indiv' as zdroj,

H.cis_pomucky, E.nazev,

H.pocet as narok,

case E.jednotka when 1 then 'ks' when 2 then 'pár' end as jedn,

H.perioda as perioda,

(select hod_pol from pomu_cis_detail G1, pomu_vel_zam H1 where G1.id_cis = H1.id_cis1 and G1.id_pol = H1.id_pol1 and H1.os_cislo = A.os_cislo and H1.cislo_pom = B.cislo_pom and H1.cis_pomucky = H.cis_pomucky) as vel1,

(select hod_pol from pomu_cis_detail G2, pomu_vel_zam H2 where G2.id_cis = H2.id_cis2 and G2.id_pol = H2.id_pol2 and H2.os_cislo = A.os_cislo and H2.cislo_pom = B.cislo_pom and H2.cis_pomucky = H.cis_pomucky) as vel2,

(select max(dat_vyd) from pomu_zam V where V.os_cislo = A.os_cislo and V.cislo_pom = B.cislo_pom and V.cis_pomucky = H.cis_pomucky and V.dat_vrac is null and V.prev_na_os_cislo is null and V.dat_stor is null) as dat_posl_vyd,


cast (dateadd (day, H.perioda, (select max(dat_vyd) from pomu_zam V where V.os_cislo = A.os_cislo and V.cislo_pom = B.cislo_pom and V.cis_pomucky = H.cis_pomucky and V.dat_vrac is null and V.prev_na_os_cislo is null and V.dat_stor is null) ) as date) as dat_nasl_vyd


from pracovnici A, prac_pom B, prac_mist C, pomu E, pomu_vel_zam H where A.os_cislo = B.os_cislo and B.id_pracmist = C.id_pracmist and

H.os_cislo = A.os_cislo and H.cislo_pom = B.cislo_pom and H.pouzit = 'a' and H.z_pm = 'n' and H.cis_pomucky = E.cis_pomucky

order by A.os_cislo, B.cislo_pom

Odkazy