Promazání dat (jednorázová funkce č. 112)

Z Prirucky

Promazání dat (jednorázová funkce č. 112) - aktuálně na tomto místě není celkový přehled o datech, která jsou mazána či nastavována.

Roční zúčtování

Při měsíční závěrce z prosince do ledna je každému zaměstnanci připraven záznam pro použití v agendě Roční zúčtování. To představuje záznam v tab. rzdane s označením roku (loňský rok), za který se příp. (dle volby zaměstnance) bude provádět roční zúčtování.

Jednorázová funkce:

v případě rutiny od 1.1. se spouští v nastaveném období "leden",
stejně tak v případě rutiny v průběhu roku se spouští v prvním období rutinního provozu.

Promazání provede vynulování údajů, které byly naplněny předchozím cvičným duplicitním provozem (např. říjen - prosinec).

Pro r. 2014 příkaz zní: update rzdane set prijmy = 0, pojist = 0, dan = 0, sleva = 0, bonus = 0, mprijmy = 0, mpojist = 0, mdan = 0, msleva = 0, mbonus = 0, prijmy_doh = 0, pojist_sp = 0, pojist_zp = 0, mprijmy_doh = 0, mpojist_sp = 0, mpojist_zp = 0 where rok = 2014;

Script

if as_Tabulka = "rod_prisl_slevy" then
       ls_Podminka += " AND id_rod_prisl IN (SELECT id_rod_prisl FROM rod_prisl" +&
                             " WHERE os_cislo IN (SELECT os_cislo FROM pracovnici WHERE pracovnici.id_podniku BETWEEN " + String(gnv_ViceIco.il_idMinPodnik) + " AND " + String(gnv_ViceIco.il_idMaxPodnik) + "))"
   else
       ls_Podminka += " AND os_cislo IN (SELECT os_cislo FROM pracovnici WHERE pracovnici.id_podniku BETWEEN " + String(gnv_ViceIco.il_idMinPodnik) + " AND " + String(gnv_ViceIco.il_idMaxPodnik) + ")"
end if
// Promazání dat
// Data musí být vždy promazána v prvním období rutiny před převodem

string        ls_datum, ls_Oznameni, ls_Podminka, ls_PodminkaZam, ls_SQL


ls_Podminka = ""
ls_PodminkaZam = ""

// Zjištění počtu vybraných podniků
// -------------------------------------
if gnv_ViceIco.ib_IsViceIco then
   if gnv_ViceIco.il_idMinPodnik = gnv_ViceIco.il_idMaxPodnik then
       //gnv_ViceIco.of_seznampodniku(las_NazevPodniku, las_Pom, lal_Pom)
       //ls_Oznameni = "Promazání bude provedeno POUZE PRO VYBRANÝ podnik!" // '" + las_NazevPodniku[1] + "'!"
       ls_Oznameni = "Jste přihlášeni do vybraného podniku. Budou promazána data zaměstnanců vybraného podniku."
   elseif gnv_ViceIco.il_idMinPodnik <> gnv_ViceIco.il_idMaxPodnik then
       //ls_Oznameni = "Promazání bude provedeno pro VŠECHNY podniky!"
       ls_Oznameni = "POZOR! Jste přihlášeni v režimu 'všechny podniky'. Budou promazána data všech zaměstnanců. Tento způsob může být použit pouze pro zahájení rutinního zpracování mezd u všech podniků."
   end if
   ls_Oznameni += "~r~nPŘEJETE SI POKRAČOVAT?"
   
   if Potvrzeni("Upozornění", ls_Oznameni) = 2 then return
   
   ls_Podminka = " AND os_cislo IN (SELECT os_cislo FROM pracovnici WHERE pracovnici.id_podniku BETWEEN " + String(gnv_ViceIco.il_idMinPodnik) + " AND " + String(gnv_ViceIco.il_idMaxPodnik) + ")"
   ls_PodminkaZam = " AND pracovnici.id_podniku BETWEEN " + String(gnv_ViceIco.il_idMinPodnik) + " AND " + String(gnv_ViceIco.il_idMaxPodnik)
end if
//ls_Podminka += as_Podminka
//ls_PodminkaZam += as_Podminka

ls_datum = gnv_platforma.of_UpravaDatumu(id_rutina) // MZ 24.8.2011

if wf_promaz("DELETE FROM pichacky WHERE datum < " + ls_datum + ls_Podminka) = -1 then goto konec
if wf_promaz("DELETE FROM rucni WHERE datum < " + ls_datum + ls_Podminka) = -1 then goto konec
if wf_promaz("DELETE FROM rucni2 WHERE datum < " + ls_datum + ls_Podminka) = -1 then goto konec;
if wf_promaz("DELETE FROM telegram WHERE datum < " + ls_datum + ls_Podminka) = -1 then goto konec;
if wf_promaz("DELETE FROM pom_mes WHERE datum < " + ls_datum + ls_Podminka) = -1 then goto konec;
if wf_promaz("DELETE FROM pom_zal WHERE datum < " + ls_datum + ls_Podminka) = -1 then goto konec;
if wf_promaz("DELETE FROM odmeny WHERE datum < " + ls_datum + ls_Podminka) = -1 then goto konec;
if wf_promaz("DELETE FROM srazky WHERE datum < " + ls_datum + ls_Podminka) = -1 then goto konec;
if wf_promaz("DELETE FROM odpocty WHERE datum < " + ls_datum + ls_Podminka) = -1 then goto konec;
if wf_promaz("DELETE FROM prac_zal WHERE datum < " + ls_datum + ls_Podminka) = -1 then goto konec;
if wf_promaz("DELETE FROM abs_dny_kc_obd WHERE datum < " + ls_datum + ls_Podminka) = -1 then goto konec;
if wf_promaz("DELETE FROM dovolena WHERE datum < " + ls_datum + ls_Podminka) = -1 then goto konec; // MZ 7.11.2014
if wf_promaz("DELETE FROM soc_vyuz WHERE prijem is not null and priznak = 'mzdy' and datum < " + ls_datum + ls_Podminka) = -1 then goto konec; //ZV 19.7.2017
if wf_promaz("DELETE FROM odpocty_rod_prisl WHERE datum < " + ls_datum + ls_Podminka) = -1 then goto konec; // MZ 18.2.2019 Doplněno na žádost MR, viz HD 44930.

if gd_prvni <= id_rutina then // MZ 15.9.2011 tyto údaje se již nesmí po prvním období rutiny promazávat
   //if wf_promaz("DELETE FROM abs_dny_kc_obd") = -1 then goto konec; // MZ 18.1.2012 Zapoznámkoval, již je v předchozím DELETE a radši nebudu promazávat data v rutině
   if wf_promaz("UPDATE pracovnici SET uhrn_mezd_letos = 0 WHERE 1=1" + ls_PodminkaZam) = -1 then goto konec
   if wf_promaz("UPDATE pracovnici SET kal_dny_dohod = 0 WHERE 1=1" + ls_PodminkaZam) = -1 then goto konec
   if wf_promaz("UPDATE pracovnici SET uhrn_pojist = 0 WHERE 1=1" + ls_PodminkaZam) = -1 then goto konec
   if wf_promaz("UPDATE pracovnici SET uhrn_dan_zakl = 0 WHERE 1=1" + ls_PodminkaZam) = -1 then goto konec
   if wf_promaz("UPDATE pracovnici SET uhrn_dani = 0 WHERE 1=1" + ls_PodminkaZam) = -1 then goto konec
   if wf_promaz("UPDATE pracovnici SET uhrn_nem = 0 WHERE 1=1" + ls_PodminkaZam) = -1 then goto konec
   if wf_promaz("UPDATE pracovnici SET m_dan_zakl_cizi = 0 WHERE 1=1" + ls_PodminkaZam) = -1 then goto konec
   if wf_promaz("UPDATE pracovnici SET m_dan_cizi = 0 WHERE 1=1" + ls_PodminkaZam) = -1 then goto konec
   if wf_promaz("UPDATE pracovnici SET m_uhrn_nem = 0 WHERE 1=1" + ls_PodminkaZam) = -1 then goto konec
   if wf_promaz("UPDATE pracovnici SET m_zakl_sraz_dan = 0 WHERE 1=1" + ls_PodminkaZam) = -1 then goto konec
   if wf_promaz("UPDATE pracovnici SET m_srazk_dan = 0 WHERE 1=1" + ls_PodminkaZam) = -1 then goto konec
   if wf_promaz("UPDATE pracovnici SET m_dan_zakl = 0 WHERE 1=1" + ls_PodminkaZam) = -1 then goto konec
   if wf_promaz("UPDATE pracovnici SET m_dan = 0 WHERE 1=1" + ls_PodminkaZam) = -1 then goto konec
   if wf_promaz("UPDATE pracovnici SET zust_minci = 0 WHERE 1=1" + ls_PodminkaZam) = -1 then goto konec
   if wf_promaz("UPDATE pracovnici SET dluh = 0 WHERE 1=1" + ls_PodminkaZam) = -1 then goto konec
   if wf_promaz("UPDATE pracovnici SET kal_dny = 0 WHERE 1=1" + ls_PodminkaZam) = -1 then goto konec
   if wf_promaz("UPDATE pracovnici SET nahr_dny = 0 WHERE 1=1" + ls_PodminkaZam) = -1 then goto konec
   if wf_promaz("UPDATE pracovnici SET kcs_duchod = 0 WHERE 1=1" + ls_PodminkaZam) = -1 then goto konec
   if wf_promaz("UPDATE pracovnici SET uhrn_pojist_c = 0 WHERE 1=1" + ls_PodminkaZam) = -1 then goto konec
   if wf_promaz("UPDATE pracovnici SET uhrn_dsleva = 0 WHERE 1=1" + ls_PodminkaZam) = -1 then goto konec
   if wf_promaz("UPDATE pracovnici SET uhrn_dbonus = 0 WHERE 1=1" + ls_PodminkaZam) = -1 then goto konec
   if wf_promaz("UPDATE pracovnici SET m_dsleva = 0 WHERE 1=1" + ls_PodminkaZam) = -1 then goto konec
   if wf_promaz("UPDATE pracovnici SET m_dbonus = 0 WHERE 1=1" + ls_PodminkaZam) = -1 then goto konec
   if wf_promaz("UPDATE pracovnici SET uhrn_superhr = 0 WHERE 1=1" + ls_PodminkaZam) = -1 then goto konec
   if wf_promaz("UPDATE pracovnici SET uhrn_sp_firma = 0 WHERE 1=1" + ls_PodminkaZam) = -1 then goto konec
   if wf_promaz("UPDATE pracovnici SET uhrn_zp_firma = 0 WHERE 1=1" + ls_PodminkaZam) = -1 then goto konec
   // MZ 11.3.2013 Přidáno
   // -------------------------
   if wf_promaz("UPDATE pracovnici SET soc_uhrn_vz_x = 0 WHERE 1=1" + ls_PodminkaZam) = -1 then goto konec
   if wf_promaz("UPDATE pracovnici SET soc_uhrn_vz = 0 WHERE 1=1" + ls_PodminkaZam) = -1 then goto konec
   if wf_promaz("UPDATE pracovnici SET zdrav_uhrn_vz_x = 0 WHERE 1=1" + ls_PodminkaZam) = -1 then goto konec
   if wf_promaz("UPDATE pracovnici SET zdrav_uhrn_vz = 0 WHERE 1=1" + ls_PodminkaZam) = -1 then goto konec
   // MZ 24.10.2013 Přidáno. HD22910
   // --------------------------
   if wf_promaz("UPDATE pracovnici SET uhrn_zdrav_poj = 0 WHERE 1=1" + ls_PodminkaZam) = -1 then goto konec
   if wf_promaz("UPDATE pracovnici SET uhrn_soc_poj = 0 WHERE 1=1" + ls_PodminkaZam) = -1 then goto konec
   // MZ 10.2.2014 Přidáno na přání Miloše
   // -------------------------------------------
   if wf_promaz("UPDATE pracovnici SET uhrn_dohod = 0 WHERE 1=1" + ls_PodminkaZam) = -1 then goto konec
   if wf_promaz("UPDATE pracovnici SET uhrn_dan_z_c = 0 WHERE 1=1" + ls_PodminkaZam) = -1 then goto konec
   
   if wf_promaz("UPDATE prac_pom SET trv_dov = 2 WHERE 1=1" + ls_Podminka) = -1 then goto konec
   if wf_promaz("UPDATE prac_pom SET trv_nem = 2 WHERE 1=1" + ls_Podminka) = -1 then goto konec
   if wf_promaz("UPDATE prac_pom SET dny_ro_dov = 0 WHERE 1=1" + ls_Podminka) = -1 then goto konec
   if wf_promaz("UPDATE prac_pom SET hod_ro_dov = 0 WHERE 1=1" + ls_Podminka) = -1 then goto konec
   if wf_promaz("UPDATE prac_pom SET kcs_dov = 0 WHERE 1=1" + ls_Podminka) = -1 then goto konec
   if wf_promaz("UPDATE prac_pom SET kcs_dov_1 = 0 WHERE 1=1" + ls_Podminka) = -1 then goto konec
   if wf_promaz("UPDATE prac_pom SET kcs_dov_2 = 0 WHERE 1=1" + ls_Podminka) = -1 then goto konec
   if wf_promaz("UPDATE prac_pom SET kcs_dov_3 = 0 WHERE 1=1" + ls_Podminka) = -1 then goto konec
   if wf_promaz("UPDATE prac_pom SET kcs_dov_4 = 0 WHERE 1=1" + ls_Podminka) = -1 then goto konec
   if wf_promaz("UPDATE prac_pom SET prum_dov = 0 WHERE 1=1" + ls_Podminka) = -1 then goto konec // MZ 18.6.2014 Doplněno. HD U969
   
   if wf_promaz("UPDATE roc_zuct SET uhrn_dan_zakl = 0 WHERE 1=1" + ls_Podminka) = -1 then goto konec
   if wf_promaz("UPDATE roc_zuct SET uhrn_pojist = 0 WHERE 1=1" + ls_Podminka) = -1 then goto konec
   if wf_promaz("UPDATE roc_zuct SET uhrn_dan_z_c = 0 WHERE 1=1" + ls_Podminka) = -1 then goto konec
   if wf_promaz("UPDATE roc_zuct SET uhrn_pojist_c = 0 WHERE 1=1" + ls_Podminka) = -1 then goto konec
   
   // MZ 27.4.2015 Viz. HD 28159, zadal PM.
   ls_SQL = "UPDATE rzdane SET prijmy = 0, pojist = 0, dan = 0, sleva = 0, bonus = 0, mprijmy = 0, mpojist = 0, mdan = 0, msleva = 0, mbonus = 0, prijmy_doh = 0," +&
               " pojist_sp = 0, pojist_zp = 0, mprijmy_doh = 0, mpojist_sp = 0, mpojist_zp = 0 WHERE rok = " + String(year(id_Rutina) - 1)
   if wf_promaz(ls_SQL + ls_Podminka) = -1 then goto konec
end if

of_WriteToArchive("P")

gf_Splash("Smazání záznamů proběhlo úspěšně!")

// Zobrazení data promazání
id_promazani = wf_getdatumpromazani()
if id_promazani > 1900-01-01 then
   st_datumpromazani.Text = string(id_promazani)
end if

if dbCommit() then // MZ 11.3.2013
    Oznameni("OZNÁMENÍ", "Promazání proběhlo úspěšně!")
else
   Chyba("PROMAZÁNÍ DAT", "Při promázávání dat nastala chyba!")
   dbRollback()
   return
end if

return

konec:
gf_Splash("")
dbRollBack() // MZ 11.3.2013

Odkazy