Účelová sestava - přepočtení zaměstnanci: Porovnání verzí

Z Prirucky
 
(Nejsou zobrazeny 2 mezilehlé verze od stejného uživatele.)
Řádek 14: Řádek 14:


== Definice ==
== Definice ==
<small>Aktuální verze: Verze 2 (od 05/2020), která vznikla úpravou verze 1:
: [[Účelová sestava - přepočtení zaměstnanci (Definice - verze1)]],
do níž byla doplněna podmínka na platnost záznamu V.datum podle období zvoleného uživatelem. <br>
Požadavek email 15.5.2020 <br>
''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.''
</small>
<small>
<small>
  select PR.os_cislo, PR.prijmeni, PR.jmeno, PP.cislo_pom, PP.druh_pom_j, PP.prac_str, PP.datum_nastupu, PP.datum_ukonc,  
  select PR.os_cislo, PR.prijmeni, PR.jmeno, PP.cislo_pom, PP.druh_pom_j, PP.prac_str, PP.datum_nastupu, PP.datum_ukonc,  
Řádek 43: Řádek 50:
  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  
  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
  where
  PR.os_cislo = PP.os_cislo and PP.druh_pom in (0,1,2,3)  
  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
  UNION ALL
   
   
  select PR.os_cislo, PR.prijmeni, PP.cislo_pom, PP.druh_pom_j, PP.prac_str, PP.datum_nastupu, PP.datum_ukonc,  
  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
  case when
  (select sum(kod) from absence where PP.os_cislo = absence.os_cislo and PP.cislo_pom = absence.cislo_pom and
  (select sum(kod) from absence where PP.os_cislo = absence.os_cislo and PP.cislo_pom = absence.cislo_pom and
Řádek 86: Řádek 93:
  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  
  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
  where
  PR.os_cislo = PP.os_cislo and PP.druh_pom in (4,5,6,7)  
  PR.os_cislo = PP.os_cislo and PP.druh_pom in (4,5,6,7) and V.datum >=%DATUMOD% and V.datum <=%DATUMDO%
</small>
</small>
== Odkazy ==
== Odkazy ==
* [[Účetnictví cc]]
* [[Účetnictví cc]]

Aktuální verze z 25. 5. 2020, 10:18

Úč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

Ucelova sestava-Prepocteni zamestnanci.png

Definice

Aktuální verze: Verze 2 (od 05/2020), která vznikla úpravou verze 1:

Účelová sestava - přepočtení zaměstnanci (Definice - verze1),

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%

Odkazy