S čím vším se musí zaměstnavatelé v roce 2018 vypořádat

1. 1. 2018
Doba čtení: 5 minut

Sdílet

Ilustrační obrázek
Autor: Depositphotos – AllaSerebrina
Ilustrační obrázek
Je tu rok 2018 a s ním řada novinek v oblasti zaměstnávání. Připomeňme si ty nejzásadnější, které se dotknou všech zaměstnavatelů nehledě na počet zaměstnanců

Server Podnikatel.cz o změnách v legislativě postupně informuje. Pro zaměstnavatele již připravil sérii článků, ve kterých se postupně věnoval důležitým změnám.

Aktualizace číselných údajů a mzdového softwaru

S počátkem roku samozřejmě přichází změny v číselných hodnotách. To bude vyžadovat přinejmenším aktualizaci mzdového softwaru. Jedná se například o změny redukčních hranic pro nemocenské dávky a tím i pro náhradu mzdy v době prvních 14 dní nemoci, dále vyšší daňové zvýhodnění na první dítě, úprava nezabavitelné částky pro účely exekučních srážek a další. 

Podrobněji v článcích:

Změnila se i minimální a zaručená mzda. Bude nutné prověřit, zda je odměňování zaměstnanců v souladu s předpisy platnými pro rok 2018. Od prvního ledna 2018 musí být zaměstnanci odměňování aktuální minimální mzdou a s výjimkou zaměstnanců, jejichž odměňování je sjednáno kolektivní smlouvou, také aktuální zaručenou mzdou. Nová minimální hodinová sazba 73,20 korun se týká rovněž dohod konaných mimo pracovní poměr. V tomto smyslu se doporučuje prověřit a případně upravit již sjednané dohody konané mimo pracovní poměr. Podrobněji: Od roku 2018 neporoste jen minimální, ale i zaručená mzda

Nelze opomenout oblast cestovních náhrad. Pro cestovní náhrady uskutečněné v lednu 2018 již musí být použity nové sazby cestovních náhrad. V oblasti zahraničních cestovních náhrad došlo ke změnám sazeb stravného u osmi zemí. Změnily se i sazby stravného, průměrná cena pohonných hmot a základní náhrada za použití vozidla u tuzemských cestovních náhrad. Čtěte více: Cestovní náhrady pro zaměstnance i podnikatele v roce 2018

Mzdový program by měl být upraven i ve smyslu daňových změn. Především se jedná o novelu zákona o daních z příjmů, takzvaný daňový balíček. Snad nejvýraznější změnou bude nový způsob zdanění srážkovou daní při neučiněném (dosud nepodepsaném) prohlášení k dani u příjmů, které v jednom měsíci u jednoho zaměstnavatele a jednoho zaměstnance nepřesáhnou limit 2500 korun. S výjimkou dohody o provedení práce. Limity pro zdanění srážkovou daní tedy budou dva. Dohoda o provedení práce s úhrnnou měsíční odměnou do 10 000 korun a ostatní příjmy v úhrnu do 2500 korun u jednoho plátce. Čtěte více: Přehršle změn v oblasti zaměstnávání od roku 2018

Prohlášení k dani a roční zúčtování

Byl vydán nový vzor tiskopisu Prohlášení poplatníka daně z příjmů ze závislé činnosti číslo 26 a nový vzor Žádost o roční zúčtování záloh a daňového zvýhodnění číslo 1. Tiskopisy nejsou povinné. Lze dopoužívat stávající vzory tiskopisů. Nový tiskopis není povinný ani pro zaměstnance přijaté v roce 2018. Pokud zaměstnavatelům vyhovuje např. dvoudílný tiskopis vzor číslo 25, lze jej nadále používat. Hodlá-li však zaměstnanec učinit prohlášení elektronicky, je tiskopis závazný. Prohlášení je možné učinit v listinné podobě, elektronicky nebo kombinovaně. Nevylučuje se ani varianta vyplnění elektronického tiskopisu na počítači s fyzickým podpisem po jeho vytištění. 

Čtěte více:

Ptejte se odborníka v poradně Mzdové účetnictví
PhDr. Dagmar Kučerová
mzdový poradce

Nový vzor žádosti o roční zúčtování se logicky využije až v roce 2019. Jedná se totiž o žádost o roční zúčtování za rok 2018. Nyní se bude zpracovávat teprve rok 2017. Při aktuálním ročním zúčtování by zaměstnavatelé neměli zapomenout na změny roku 2017, které se týkají ročního zúčtování. Podrobněji: Novinky v daních fyzických osob pro rok 2017

Náhradní plnění a nemocenské pojištění

S únorem přijdou mimo každoroční povinnosti spojené s ročním zúčtováním příjmů i další novinky. Zaměstnavatelé, kterých se týká povinnost plnění povinného podílu zaměstnáváním osob se zdravotním postižením, budou podávat „Oznámení“ příslušnému úřadu práce. V případě plnění formou náhradního plnění, tj. odběrem výrobků, služeb nebo realizováním zakázek od zaměstnavatelů zaměstnávajících více než 50 % osob se zdravotním postižením, již podle nových podmínek. Započitatelné bude pouze plnění evidované v nové elektronické evidenci náhradního plnění. Pro rok 2018 se navíc snižuje výše limitu pro účely náhradního plnění z dosavadního 36násobku na 28násobek průměrné mzdy v národním hospodářství za první až čtvrté čtvrtletí předchozího kalendářního roku. Více v článku: Elektronická evidence náhradního plnění spuštěna

K prvnímu únoru se mění i oblast nemocenského pojištění. Dochází k několika důležitým změnám. Ať už se jedná o pokračování v pojištění nebo nemocenské dávky ze zaměstnání malého rozsahu či dohody o provedení práce, změny ve stanovení vyměřovacího základu a další. Od stejného data bude možné čerpat novou nemocenskou dávku, a to otcovskou poporodní péči. Poslední změnou bude další nově zaváděná nemocenská dávka. Dlouhodobé ošetřovné, jež bude možné čerpat od 1. června 2018. Čtěte více: Otcovská se dotkne i otců dětí narozených v prosinci

Školení pro účetní - podzimní novinky

Ochrana osobních údajů a GDPR

Zaměstnavatelé se budou muset chtě nechtě vypořádat i s novým obecným nařízením Evropského parlamentu a Rady o ochraně osobních údajů neboli General Data Protection Regulation (GDPR). Nařízení bylo přijato v dubnu 2016 po čtyřletém vyjednávání. Je platné od 24. května 2016, ale účinné od 25. května 2018. Od tohoto data se začne aplikovat na celém území Evropské unie. Nařízení lze označit za obdobu zákona a nahrazuje vnitrostátní právní předpis. Ke dni účinnosti proto bude původní zákon o ohraně osobních údajů zrušen. Nařízení umožňuje, a v některých případech dokonce předpokládá vnitrostátní úpravu. Proto bude přijat nový doplňkový zákon a současně vydány další prováděcí předpisy. Dozorovým úřadem zůstane Úřad pro ochranu osobních údajů.

Obecné nařízení se vztahuje na všechny zaměstnavatele. Ať už se jedná o zcela nebo částečně automatizované zpracování osobních údajů, ale i na neautomatizované zpracování osobních údajů v evidenci (tj. digitální podoba, včetně papírové databáze v podobě různých kartoték, personálních složek apod.). Čtěte také: Ochrana osobních údajů se týká všech zaměstnavatelů

Co dalšího přinese rok 2018 do oblasti zaměstnávání, je otázkou. Můžeme jen doufat, že další vývoj legislativy již nebude tak hektický a druhá polovina roku 2018 bude z pohledu legislativních změn poněkud klidnějším obdobím.

Autor článku

Dagmar Kučerová je odborná redaktorka a lektorka, která se specializuje na mzdy, personalistiku a výklad zákoníku práce. Profil autorky →

Upozorníme vás na články, které by vám neměly uniknout (maximálně 2x týdně).
'; document.getElementById('outstream-iframe').onload = function () { setupIframe(); } replayScreen = document.getElementById('iinfoOutstreamReplay'); iinfoOutstreamPosition = document.getElementById('iinfoOutstreamPosition'); outstreamContainer = document.getElementsByClassName('outstream-container')[0]; setupReplayScreen(); } function setupIframe() { outstreamDocument = document.getElementById('outstream-iframe').contentWindow.document; let el = outstreamDocument.createElement('style'); outstreamDocument.head.appendChild(el); el.innerText = "#adContainer>div:nth-of-type(1),#adContainer>div:nth-of-type(1) > iframe { width: 99% !important;height: 99% !important;max-width: 100%;}#videoContent,body{ width:100vw;height:100vh}body{ font-family:'Helvetica Neue',Arial,sans-serif}#videoContent{ overflow:hidden;background:#000}#adMuteBtn{ width:35px;height:35px;border:0;background:0 0;display:none;position:absolute;fill:rgba(230,230,230,1);bottom:-5px;right:25px}"; videoContent = outstreamDocument.getElementById('contentElement'); videoContent.style.display = 'none'; videoContent.volume = 1; videoContent.muted = false; if ( location.href.indexOf('rejstriky.finance.cz') !== -1 || location.href.indexOf('finance-rejstrik') !== -1 || location.href.indexOf('firmy.euro.cz') !== -1 || location.href.indexOf('euro-rejstrik') !== -1 || location.href.indexOf('/rejstrik/') !== -1 || location.href.indexOf('/rejstrik-firem/') !== -1) { outstreamDirectPlayed = true; soundAllowed = true; iinfoVastUrlIndex = 0; } if (!outstreamDirectPlayed) { console.log('OUTSTREAM direct'); setUpIMA(true); } else { if (soundAllowed) { const playPromise = videoContent.play(); if (playPromise !== undefined) { playPromise.then(function () { console.log('OUTSTREAM sound allowed'); setUpIMA(false); }).catch(function () { console.log('OUTSTREAM sound forbidden'); renderBanner(); }); } } else { renderBanner(); } } } function getWrapper() { let articleWrapper = document.querySelector('.rs-outstream-placeholder'); // Outstream Placeholder from RedSys manipulation if (articleWrapper && articleWrapper.style.display !== 'block') { articleWrapper.innerHTML = ""; articleWrapper.style.display = 'block'; } // Don't render OutStream on homepages if (articleWrapper === null) { if (document.querySelector('body.p-index')) { return null; } } if (articleWrapper === null) { articleWrapper = document.getElementById('iinfo-outstream'); } if (articleWrapper === null) { articleWrapper = document.querySelector('.layout-main__content .detail__article p:nth-of-type(6)'); } if (articleWrapper === null) { // Euro, Autobible, Zdravi articleWrapper = document.querySelector('.o-article .o-article__text p:nth-of-type(6)'); } if (articleWrapper === null) { articleWrapper = document.getElementById('sidebar'); } if (!articleWrapper) { console.error("Outstream wrapper of article was not found."); } return articleWrapper; } function setupDimensions() { outstreamWidth = Math.min(iinfoOutstreamPosition.offsetWidth, 480); outstreamHeight = Math.min(iinfoOutstreamPosition.offsetHeight, 320); } /** * Sets up IMA ad display container, ads loader, and makes an ad request. */ function setUpIMA(direct) { google.ima.settings.setDisableCustomPlaybackForIOS10Plus(true); google.ima.settings.setLocale('cs'); google.ima.settings.setNumRedirects(10); // Create the ad display container. createAdDisplayContainer(); // Create ads loader. adsLoader = new google.ima.AdsLoader(adDisplayContainer); // Listen and respond to ads loaded and error events. adsLoader.addEventListener( google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED, onAdsManagerLoaded, false); adsLoader.addEventListener( google.ima.AdErrorEvent.Type.AD_ERROR, onAdError, false); // An event listener to tell the SDK that our content video // is completed so the SDK can play any post-roll ads. const contentEndedListener = function () { adsLoader.contentComplete(); }; videoContent.onended = contentEndedListener; // Request video ads. const adsRequest = new google.ima.AdsRequest(); if (direct) { adsRequest.adTagUrl = directVast; console.log('Outstream DIRECT CAMPAING advert: ' + directVast); videoContent.muted = true; videoContent.volume = 0; outstreamDirectPlayed = true; } else { adsRequest.adTagUrl = iinfoVastUrls[iinfoVastUrlIndex]; console.log('Outstream advert: ' + iinfoVastUrls[iinfoVastUrlIndex]); videoContent.muted = false; videoContent.volume = 1; } // Specify the linear and nonlinear slot sizes. This helps the SDK to // select the correct creative if multiple are returned. // adsRequest.linearAdSlotWidth = outstreamWidth; // adsRequest.linearAdSlotHeight = outstreamHeight; adsRequest.nonLinearAdSlotWidth = 0; adsRequest.nonLinearAdSlotHeight = 0; adsLoader.requestAds(adsRequest); } function setupReplayScreen() { replayScreen.addEventListener('click', function () { iinfoOutstreamPosition.remove(); iinfoVastUrlIndex = 0; outstreamInit(); }); } /** * Sets the 'adContainer' div as the IMA ad display container. */ function createAdDisplayContainer() { // We assume the adContainer is the DOM id of the element that will house // the ads. outstreamDocument.getElementById('videoContent').style.display = 'none'; adDisplayContainer = new google.ima.AdDisplayContainer( outstreamDocument.getElementById('adContainer'), videoContent); } function unmuteAdvert() { adVolume = !adVolume; if (adVolume) { adsManager.setVolume(0.3); outstreamDocument.getElementById('adMuteBtn').innerHTML = ''; } else { adsManager.setVolume(0); outstreamDocument.getElementById('adMuteBtn').innerHTML = ''; } } /** * Loads the video content and initializes IMA ad playback. */ function playAds() { // Initialize the container. Must be done through a user action on mobile // devices. videoContent.load(); adDisplayContainer.initialize(); // setupDimensions(); try { // Initialize the ads manager. Ad rules playlist will start at this time. adsManager.init(1920, 1080, google.ima.ViewMode.NORMAL); // Call play to start showing the ad. Single video and overlay ads will // start at this time; the call will be ignored for ad rules. adsManager.start(); // window.addEventListener('resize', function (event) { // if (adsManager) { // setupDimensions(); // adsManager.resize(outstreamWidth, outstreamHeight, google.ima.ViewMode.NORMAL); // } // }); } catch (adError) { // An error may be thrown if there was a problem with the VAST response. // videoContent.play(); } } /** * Handles the ad manager loading and sets ad event listeners. * @param { !google.ima.AdsManagerLoadedEvent } adsManagerLoadedEvent */ function onAdsManagerLoaded(adsManagerLoadedEvent) { // Get the ads manager. const adsRenderingSettings = new google.ima.AdsRenderingSettings(); adsRenderingSettings.restoreCustomPlaybackStateOnAdBreakComplete = true; adsRenderingSettings.loadVideoTimeout = 12000; // videoContent should be set to the content video element. adsManager = adsManagerLoadedEvent.getAdsManager(videoContent, adsRenderingSettings); // Add listeners to the required events. adsManager.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR, onAdError); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED, onContentPauseRequested); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED, onContentResumeRequested); adsManager.addEventListener( google.ima.AdEvent.Type.ALL_ADS_COMPLETED, onAdEvent); // Listen to any additional events, if necessary. adsManager.addEventListener(google.ima.AdEvent.Type.LOADED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.STARTED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.COMPLETE, onAdEvent); playAds(); } /** * Handles actions taken in response to ad events. * @param { !google.ima.AdEvent } adEvent */ function onAdEvent(adEvent) { // Retrieve the ad from the event. Some events (for example, // ALL_ADS_COMPLETED) don't have ad object associated. const ad = adEvent.getAd(); console.log('Outstream event: ' + adEvent.type); switch (adEvent.type) { case google.ima.AdEvent.Type.LOADED: // This is the first event sent for an ad - it is possible to // determine whether the ad is a video ad or an overlay. if (!ad.isLinear()) { // Position AdDisplayContainer correctly for overlay. // Use ad.width and ad.height. videoContent.play(); } outstreamDocument.getElementById('adContainer').style.width = '100%'; outstreamDocument.getElementById('adContainer').style.maxWidth = '640px'; outstreamDocument.getElementById('adContainer').style.height = '360px'; break; case google.ima.AdEvent.Type.STARTED: window.addEventListener('scroll', onActiveView); // This event indicates the ad has started - the video player // can adjust the UI, for example display a pause button and // remaining time. if (ad.isLinear()) { // For a linear ad, a timer can be started to poll for // the remaining time. intervalTimer = setInterval( function () { // Example: const remainingTime = adsManager.getRemainingTime(); // adsManager.pause(); }, 300); // every 300ms } outstreamDocument.getElementById('adMuteBtn').style.display = 'block'; break; case google.ima.AdEvent.Type.ALL_ADS_COMPLETED: if (ad.isLinear()) { clearInterval(intervalTimer); } if (outstreamLastError === 303) { if (isBanner) { renderBanner(); } else { replayScreen.style.display = 'flex'; } } break; case google.ima.AdEvent.Type.COMPLETE: // This event indicates the ad has finished - the video player // can perform appropriate UI actions, such as removing the timer for // remaining time detection. if (ad.isLinear()) { clearInterval(intervalTimer); } if (isBanner) { renderBanner(); } else { replayScreen.style.display = 'flex'; } break; } } /** * Handles ad errors. * @param { !google.ima.AdErrorEvent } adErrorEvent */ function onAdError(adErrorEvent) { // Handle the error logging. console.log(adErrorEvent.getError()); outstreamLastError = adErrorEvent.getError().getErrorCode(); if (!loadNext()) { renderBanner(); } } function renderBanner() { if (isBanner) { console.log('Outstream: Render Banner'); iinfoOutstreamPosition.innerHTML = ""; iinfoOutstreamPosition.style.height = "330px"; iinfoOutstreamPosition.appendChild(bannerDiv); } else { console.log('Outstream: Banner is not set'); } } function loadNext() { iinfoVastUrlIndex++; if (iinfoVastUrlIndex < iinfoVastUrls.length) { iinfoOutstreamPosition.remove(); outstreamInit(); } else { return false; } adVolume = 1; return true; } /** * Pauses video content and sets up ad UI. */ function onContentPauseRequested() { videoContent.pause(); // This function is where you should setup UI for showing ads (for example, // display ad timer countdown, disable seeking and more.) // setupUIForAds(); } /** * Resumes video content and removes ad UI. */ function onContentResumeRequested() { videoContent.play(); // This function is where you should ensure that your UI is ready // to play content. It is the responsibility of the Publisher to // implement this function when necessary. // setupUIForContent(); } function onActiveView() { if (outstreamContainer) { const containerOffset = outstreamContainer.getBoundingClientRect(); const windowHeight = window.innerHeight; if (containerOffset.top < windowHeight/1 && containerOffset.bottom > 0.0) { if (outstreamPaused) { adsManager.resume(); outstreamPaused = false; } return true; } else { if (!outstreamPaused) { adsManager.pause(); outstreamPaused = true; } } } return false; } let outstreamInitInterval; if (typeof cpexPackage !== "undefined") { outstreamInitInterval = setInterval(tryToInitializeOutstream, 100); } else { const wrapper = getWrapper(); if (wrapper) { let outstreamInitialized = false; window.addEventListener('scroll', () => { if (!outstreamInitialized) { const containerOffset = wrapper.getBoundingClientRect(); const windowHeight = window.innerHeight; if (containerOffset.top < windowHeight / 1 && containerOffset.bottom > 0.0) { outstreamInit(); outstreamInitialized = true; } } }); } } function tryToInitializeOutstream() { const wrapper = getWrapper(); if (wrapper) { const containerOffset = wrapper.getBoundingClientRect(); const windowHeight = window.innerHeight; if (containerOffset.top < windowHeight / 1 && containerOffset.bottom > 0.0) { if (cpexPackage.adserver.displayed) { clearInterval(outstreamInitInterval); outstreamInit(); } } } else { clearInterval(outstreamInitInterval); } } }
OSZAR »