Rozpad hodnot mzdové položky na projekty dle procent (sestavy)
Rozpad hodnot mzdové položky na projekty dle procent (sestavy) - kontrolní sestavy pro zákaznickou úpravu:
Přehled přiřazení
Sestava pro Generátor sestav II. Zobrazuje jen zaměstnance, kteří mají nějaký záznam v agendě (nikoliv všechny zaměstnance).
select A.os_cislo, A.prijmeni, A.jmeno, B.cislo_pom, B.druh_pom_j, P.projekt, STRED.nazev, P.kod, C.vyznam, P.procento, P.obdobi_od, P.obdobi_do from pracovnici A, prac_pom B, projekty_pomery P, stred STRED, ciselnik C where A.os_cislo = B.os_cislo and B.os_cislo = P.os_cislo and B.cislo_pom = P.cislo_pom and P.projekt = STRED.str and P.kod = C.kod order by A.os_cislo, B.cislo_pom, P.kod, P.projekt
Příklad filtru nad touto sestavou (jen aktivní zaměstnanci a jen "aktivní" záznamy):
Kontrola na 100%
Kontrolní příkaz pro zjištění, zda součet procent u zaměstnance a daného kódu dává 100%. V příkazu je potřeba změnit období dle potřeby. Určeno jen pro SQL prompt, nepředpokládá se zakládání do generátoru sestav z důvodu nízké frekvence použití.
select os_cislo, cislo_pom, kod, sum(procento) from projekty_pomery where (obdobi_do is null or obdobi_do > '2017-03-31') group by os_cislo, cislo_pom, kod order by sum(procento) asc
Záznamy pravděpodobně nebylo potřeba měnit
Sestava zobrazující záznamy se shodnými hodnotami - zaměstnanec - číslo poměru - projekt - kód - procento. Pokud jsou navíc záznamy na sebe časově navazující (v příkladu v obrázku takové jsou), pak to znamená, že nebylo nutné (bylo zbytečné) záznam časově ukončovat a zadávat nový, vždyť se jedná o stejné procentní rozvržení.
select A.os_cislo, A.prijmeni, A.jmeno, B.cislo_pom, B.druh_pom_j, B.datum_nastupu, B.datum_ukonc, P.projekt, P.kod, P.procento, P.obdobi_od, P.obdobi_do from pracovnici A, prac_pom B, projekty_pomery P where A.os_cislo = B.os_cislo and B.os_cislo = P.os_cislo and B.cislo_pom = P.cislo_pom and (ltrim(rtrim(cast(P.os_cislo as char))) + ltrim(rtrim(cast(P.cislo_pom as char))) + ltrim(rtrim(cast(P.projekt as char))) + ltrim(rtrim(cast(P.kod as char))) + ltrim(rtrim(cast(P.procento as char))) ) in ( select ltrim(rtrim(cast(PP.os_cislo as char))) + ltrim(rtrim(cast(PP.cislo_pom as char))) + ltrim(rtrim(cast(PP.projekt as char))) + ltrim(rtrim(cast(PP.kod as char))) + ltrim(rtrim(cast(PP.procento as char))) from projekty_pomery PP group by PP.os_cislo, PP.cislo_pom, PP.projekt, PP.kod, PP.procento having count(*) > 1 ) order by A.os_cislo, B.cislo_pom, P.projekt, P.kod, P.obdobi_od