Účelová sestava - přepočtení zaměstnanci
Účelová sestava - přepočtení zaměstnanci
Algoritmus
- Načítají se všichni zaměstnanci včetně vystoupivších.
- Pokud měl zaměstnanec nějaká importovaná data "účelové struktury" - projektů, zobrazí se.
- Je určován mimoevidenční stav.
- "Podíl smluv" je určen
- u zaměstnanců - ne dohodářů - tím, že je převzata hodnota pole Smluvní podíl úvazku
- u zaměstnanců - dohodářů (DPP/DPČ) tím způsobem, že se dělí počet odpracovaných hodin měsíce fondem měsíce běžného zaměstnance (pracovní dny bez svátků * 8 hodin)
- Sestavu je možno vytvářet za více období (měsíců).
Sestava
Definice
Aktuální verze: Verze 2 (od 05/2020), která vznikla úpravou verze 1:
do níž byla doplněna podmínka na platnost záznamu V.datum podle období zvoleného uživatelem.
Požadavek email 15.5.2020
Sestavu níže jste pro nás připravil. Počítá nám po jednotlivých zaměstnancích, jak jsou v příslušném měsíci alokovány na středisko, podstředisko, projekt (aktivitu) – účelová struktura, která je zákaznickou úpravou. Bohužel sestava nerespektuje nastavené období a při načtení sestavy jsou tam všechny záznamy od 1.10.2019. Lze samozřejmě nastavit filtrem a vyfiltrovat např. jen datum 1.4.2020. Nešla by ale sestavu upravit tak, aby sama respektovala nastavené období? Např. pokud je nastavené období duben 2020 – duben 2020, tak načte pouze zápisy, které mají ve sloupci "datum" datum od 2020-04-01 do 2020-04-31.
select PR.os_cislo, PR.prijmeni, PR.jmeno, PP.cislo_pom, PP.druh_pom_j, PP.prac_str, PP.datum_nastupu, PP.datum_ukonc, case when (select sum(kod) from absence where PP.os_cislo = absence.os_cislo and PP.cislo_pom = absence.cislo_pom and kod in (select kod from ciselnik where ind_abs = 3) and dat_od <=%DATUMOD% and (dat_do is null or dat_do >= %DATUMDO%) ) is null then null else 'MIMOEV' end as mimoev, V.id_uc_dim1, (select nazev from uc_dim DIM where DIM.typ_dimenze = 1 and DIM.id = V.id_uc_dim1) as nazev1, V.id_uc_dim2, (select nazev from uc_dim DIM where DIM.typ_dimenze = 2 and DIM.id = V.id_uc_dim2) as nazev2, V.id_uc_dim3, (select nazev from uc_dim DIM where DIM.typ_dimenze = 3 and DIM.id = V.id_uc_dim3) as nazev3, V.misto, V.datum, V.davka, V.poznamka, null as hod_dohody, null as hod_fondstand_doh, isnull(V.procento/100, 0) as podil_proj, isnull(PP.smluv_pom_uv,0) as podil_smluv, isnull(V.procento/100*PP.smluv_pom_uv, 0) as proj_krat_smluv from pracovnici PR, prac_pom PP left outer join vyrobak V on PP.os_cislo = V.os_cislo and PP.cislo_pom = V.cislo_pom where PR.os_cislo = PP.os_cislo and PP.druh_pom in (0,1,2,3) and V.datum >=%DATUMOD% and V.datum <=%DATUMDO% UNION ALL select PR.os_cislo, PR.prijmeni, PR.jmeno, PP.cislo_pom, PP.druh_pom_j, PP.prac_str, PP.datum_nastupu, PP.datum_ukonc, case when (select sum(kod) from absence where PP.os_cislo = absence.os_cislo and PP.cislo_pom = absence.cislo_pom and kod in (select kod from ciselnik where ind_abs = 3) and dat_od <=%DATUMOD% and (dat_do is null or dat_do >= %DATUMDO%) ) is null then null else 'MIMOEV' end as mimoev, V.id_uc_dim1, (select nazev from uc_dim DIM where DIM.typ_dimenze = 1 and DIM.id = V.id_uc_dim1) as nazev1, V.id_uc_dim2, (select nazev from uc_dim DIM where DIM.typ_dimenze = 2 and DIM.id = V.id_uc_dim2) as nazev2, V.id_uc_dim3, (select nazev from uc_dim DIM where DIM.typ_dimenze = 3 and DIM.id = V.id_uc_dim3) as nazev3, V.misto, V.datum, V.davka, V.poznamka, (select sum(hodiny) from pichacky PICH where PICH.os_cislo = PP.os_cislo and PICH.cislo_pom = PP.cislo_pom and PICH.kod in (630,634) and PICH.datum >= %DATUMOD% and PICH.datum <= %DATUMDO%) as hod_dohody, (select sum(dny_prac)*8 from mesice where rok>=year(%DATUMOD%) and mesic >=month(%DATUMOD%) and rok <=year(%DATUMDO%) and mesic<=month(%DATUMDO%)) as hod_fondstand_doh, isnull(V.procento/100, 0) as podil_proj, (select sum(hodiny) from pichacky PICH where PICH.os_cislo = PP.os_cislo and PICH.cislo_pom = PP.cislo_pom and PICH.kod in (630,634) and PICH.datum >= %DATUMOD% and PICH.datum <= %DATUMDO%) / (select sum(dny_prac)*8 from mesice where rok>=year(%DATUMOD%) and mesic >=month(%DATUMOD%) and rok <=year(%DATUMDO%) and mesic<=month(%DATUMDO%)) as podil_smluv, isnull ( V.procento/100 * (select sum(hodiny) from pichacky PICH where PICH.os_cislo = PP.os_cislo and PICH.cislo_pom = PP.cislo_pom and PICH.kod in (630,634) and PICH.datum >= %DATUMOD% and PICH.datum <= %DATUMDO%) / (select sum(dny_prac)*8 from mesice where rok>=year(%DATUMOD%) and mesic >=month(%DATUMOD%) and rok <=year(%DATUMDO%) and mesic<=month(%DATUMDO%)) , 0) as proj_krat_smluv from pracovnici PR, prac_pom PP left outer join vyrobak V on PP.os_cislo = V.os_cislo and PP.cislo_pom = V.cislo_pom where PR.os_cislo = PP.os_cislo and PP.druh_pom in (4,5,6,7) and V.datum >=%DATUMOD% and V.datum <=%DATUMDO%