Kontroly (Pořizování směn)

Z Prirucky

Průměr pro p.p.účely výrazně odlišný od minulého kvartálu

Zaměstnanci s s rozdílem aktuálního průměru pro p.p.účely a průměru minulého měsíce větším než stanovená hranice (20 Kč).

V této sestavě aplikovat filtr (možno uložit):

(prum_dov - min_prum_dov) > 20 or (prum_dov - min_prum_dov) < -20

Z pořízených směn

select
A.os_cislo, A.prijmeni, A.jmeno,
B.cislo_pom, B.datum_nastupu, B.datum_ukonc, ' ',
C.id, 
C.id_smen_pol, D.smena, D.popis,
C.dny, C.hodiny, C.castka, C.den,
C.id_vazby, 
' ',
H.typ, 
H.id_pracmist, J.cis_pracmist, J.naz_pracmist,
H.str, 
H.id_zak, ' ', G.cislo, G.nazev, ' ', 
H.id_profese, K.cis_pracmist as cis_prof, K.naz_pracmist as nazev_prof,
H.typ_mzdy, H.mzd_stup, H.tarif, 
H.id_prem, ' ', F.stupen, F.kod_prem, F.sazba, F.kraceni, ' ',
H.pozn, H.dat_od, H.dat_do, H.aut_gen, H.pripl_sone, H.pripl_svat

from pracovnici A, prac_pom B, smenovnice C, smen_kody D, smen_mzd_pol E, prof_vazba H, prac_mist J, prac_mist K,
cis_premie F right outer join prof_vazba HH on F.id = HH.id_prem,
cis_zakazky G right outer join prof_vazba HHH on G.id = HHH.id_zak
where
A.os_cislo = B.os_cislo and
B.os_cislo = C.os_cislo and
B.os_cislo = H.os_cislo and
B.cislo_pom = C.cislo_pom and
B.cislo_pom = H.cislo_pom and

C.id_smen_pol = E.id and
D.id = E.id_smeny and
C.id_vazby = H.id and
B.id_pracmist = J.id_pracmist and
H.id_profese = K.id_pracmist and
H.id = HH.id and
H.id = HHH.id and
C.den >= %DATUMOD% and C.den <= %DATUMDO%

order by A.os_cislo, B.cislo_pom, C.den

Vychází se z dat pořízených v agendě Pořizování směn, tj. sestava nenačítá všechny zaměstnance, ale jen ty, kteří mají ve zvoleném období záznam v agendě Pořizování směn (db smenovnice).

Směny před nástupem nebo po ukončení (filtr)

den < datum_nastupu or den > datum_ukonc

Nesprávný počet hodin u dovolené (filtr)

Jsou vyjmenovány hodnoty, které se mohou vyskytovat.

smena = 'D' and hodiny not in (7.50, 8.00, 11.00)

Počty použitých vazeb

Uvádí všechny vazby z agendy Profese-vazby a k nim udává počet výskytů za uživatelem vybrané období. Může sloužit jako kontrola toho, zda některé vazby již nejsou zastaralé (nepoužívají se).

select H.id, H.os_cislo, A.prijmeni, A.jmeno, B.datum_nastupu, B.datum_ukonc, 
H.cislo_pom, H.typ,
(select count(*) from smenovnice C where 
C.id_vazby = H.id and
C.den >= %DATUMOD% and C.den <= %DATUMDO%) as počet

from prof_vazba H, pracovnici A, prac_pom B
where H.os_cislo = A.os_cislo and
H.os_cislo = B.os_cislo and
H.cislo_pom = B.cislo_pom

order by os_cislo, typ

Pořízené hodiny na přidělených profesích

Načítají se profese, které má zaměstnanec přidělen v agendě Profese-vazby, a ke každé takové profesi použité v agendě Pořizování směn se určí součet hodin (za všechny docházkové kódy).

Slouží jako kontrola počtu "odpracovaných" hodin zaměstnance na přidělených profesích.

select H.os_cislo, A.prijmeni, A.jmeno, H.cislo_pom, 
H.id_profese, J.cis_pracmist as cis_prof, J.naz_pracmist as naz_prof,
sum(C.hodiny) as hod_poriz_smen

from prof_vazba H left outer join smenovnice C on
H.id = C.id_vazby,
pracovnici A, prac_mist J
where 
H.os_cislo = A.os_cislo and
H.id_profese = J.id_pracmist and
C.den >= %DATUMOD% and C.den <= %DATUMDO%

group by H.os_cislo, A.prijmeni, A.jmeno, H.cislo_pom, H.id_profese, J.cis_pracmist, J.naz_pracmist
order by H.os_cislo, H.cislo_pom, H.id_profese

Více kmenových vazeb k pracovnímu poměru

Chyba může vzniknout např. v důsledku chybného prvotního importu dat.

select os_cislo, cislo_pom, typ, count(*) from prof_vazba 
where typ = 'k' and 
(dat_od is null or dat_od <= (select min(datum_prvni) from par_map)) and
(dat_do is null or dat_do >= (select min(datum_prvni) from par_map))
group by os_cislo, cislo_pom, typ having count(*) > 1

Rozdíly tarifu mezi pracovním poměrem a profese-vazba

select A.os_cislo, A.prijmeni, A.jmeno, B.cislo_pom,
F.mzd_stup,
F.typ_mzdy, 
B.tarif as tarif_pp,
F.tarif as tarif_vazba, 
(B.tarif - F.tarif) as rozdil,
F.typ, F.dat_od, F.dat_do
from 
pracovnici A,
prac_pom B right outer join prof_vazba F on B.os_cislo = F.os_cislo and B.cislo_pom = F.cislo_pom
where A.os_cislo = B.os_cislo and
F.typ = 'k' and
(F.dat_od is null or F.dat_od <= (select datum_prvni from par_map where id_podniku = A.id_podniku)) and
(F.dat_do is null or F.dat_do >= (select datum_prvni from par_map where id_podniku = A.id_podniku)) and
(B.tarif - F.tarif) <>0
order by A.os_cislo

Nevyplněné zakázky pro účetnictví

select 
pracovnici.os_cislo,
prijmeni,
jmeno,
pichacky.cislo_pom,
pichacky.prac_str,
kod,
c_dokladu,
pichacky.dat_od,
pichacky.dat_do,
dny,
hodiny,
sazba,
castka,
prizn_aut,
pichacky.prac_kateg,
datum,
pichacky.id_podniku,
typ_vazby2,
id_vazby2,
typ_vazby,
id_vazby,
prof_vazba.id_zak,
prac_pom.rez_zakazka
from pracovnici, prac_pom,
pichacky left outer join prof_vazba on
prof_vazba.os_cislo = pichacky.os_cislo and
prof_vazba.cislo_pom = pichacky.cislo_pom and
prof_vazba.typ = 'k'and 
(prof_vazba.dat_do is null or prof_vazba.dat_do >= '2015-01-01')
where
pracovnici.os_cislo = pichacky.os_cislo and
pichacky.os_cislo = prac_pom.os_cislo and
pichacky.cislo_pom = prac_pom.cislo_pom and
id_vazby is null and id_vazby2 is null and prof_vazba.id_zak is null and
prac_pom.rez_zakazka is null and
kod < 900 and pichacky.datum = '2015-01-01'
order by os_cislo, cislo_pom

V příkazu je použito konkrétní období '2015-01-01', pokud bude nahrazeno %DATUMOD%, může být použito pro Generátor sestav II. Kontrolují se 4 úrovně: id_vazby2, pak id_vazby, pak kmenový záznam v agendě "Profese-vazba", nakonec režijní zakázka v agendě Pracovní poměr.

Kontroly existence

select os_cislo, cislo_pom, kod, id_vazby, datum from pichacky A where id_vazby is not null 
and id_vazby not in 
(select id_vazby from prof_vazba B where 
B.os_cislo = A.os_cislo and
B.cislo_pom = A.cislo_pom and
(B.dat_od is null or B.dat_od <= A.datum) and
(B.dat_do is null or B.dat_do >= A.datum));
select id, os_cislo, cislo_pom, id_vazby, id_smen_pol, hodiny, den from smenovnice A where id_vazby not in
(select id_vazby from prof_vazba B where 
B.os_cislo = A.os_cislo and
B.cislo_pom = A.cislo_pom and
(B.dat_od is null or B.dat_od <= A.den) and
(B.dat_do is null or B.dat_do >= A.den));
  • Uváděná vazba v agendě Zpracování brutto (pichacky) buď neexistuje v agendě Profese-vazba, nebo není platná (datum od, datum do).
  • Uváděná vazba v agendě Pořizování směn (smenovnice) buď neexistuje v agendě Profese-vazba, nebo není platná (datum od, datum do).

Odkazy

Pořizování směn