Co může zaměstnanec koncem roku dělat s nevyčerpanou letošní i starší dovolenou

28.11.2024 | , Finance.cz
DANĚ


perex-img Zdroj: Depositphotos

Nevyčerpaná dovolená z aktuálního roku už mnoho let zaměstnancům nepropadá a neztrácí na ni nárok, jako tomu bylo dříve v určitých případech. Zaměstnanci vždy zůstává nárok na placené volno v práci nebo aspoň na peníze při takzvaném proplacení dovolené. Není ani třeba bát se o dovolenou z let minulých, třeba z předloňska či ještě starší. Jaká jsou pravidla pro převedení letošní nevyčerpané dovolené do příštího roku? A co s ještě starší zbývající dovolenou?

sluchatka

Poslechněte si článek v audio verzi

00:00 / 00:00

Tento článek pro vás načetl robotický hlas. Jestliže v něm najdete chybu ve výslovnosti, dejte nám prosím vědět.

Nejčastější situace asi bude, že zaměstnanec vůbec nečerpal dovolenou za letošní rok 2024, nebo ji vyčerpal jen částečně. Pokud si ji stihne vyčerpat na základě své žádosti o ni nebo na základě určení zaměstnavatelem do konce letošního roku, není co řešit. Ovšem když ji vyčerpat nestihne? 

V případě, že existují naléhavé provozní důvody na straně zaměstnavatele, které brání čerpání dovolené, nebo překážky v práci na straně zaměstnance (např. delší pracovní neschopnost, mateřská nebo rodičovská dovolená nebo jiná dlouhodobější překážka v práci), pak dojde k čerpání dovolené později. Dovolená z letošního roku 2024 se převádí automaticky k čerpání v roce 2025. 

Kdy se dovolená převádí do ještě vzdálenější budoucnosti než jen příštího roku

Jestliže nemůže být dovolená vyčerpána ani do konce následujícího kalendářního roku proto, že

  • zaměstnanec byl uznán dočasně práce neschopným, nebo

  • z důvodu čerpání mateřské nebo rodičovské dovolené,

pak je podle zákoníku práce zaměstnavatel povinen určit dobu čerpání této dovolené po skončení těchto překážek v práci. (Např. dovolená z roku 2022 byla takto převedena k čerpání do roku 2023, a pokud ji nebylo možno čerpat, tak do let dalších, třeba do letošního roku 2024. A pokud stále nemohla být vyčerpána, převádí se do roku 2025. Letošní dovolenou za roku 2024 pak lze takto převést do roku 2025, 2026 atp.).

Tip: Zaručený už bude jen plat, mzda pouze minimální. S jakými čísly se pro rok 2025 počítá?

O starší než letošní dovolené už může zaměstnanec rozhodovat sám

Pokud někomu zbývá něco z loňské dovolené za rok 2023, nebo dokonce ještě starší dovolená a v jejím čerpání mu nebrání překážka v práci (např. péče o děti během rodičovské dovolené, trvající nemoc nebo léčení úrazu), a ani zaměstnavatel dosud neurčil její čerpání, může si termín, kdy na ni nastoupí, určit zaměstnanec sám.

Klidně to může být v období kolem letošních Vánoc a Silvestra, zaměstnanec si opravdu termín čerpání loňské či starší dovolené už může určit sám. Jen musí zaměstnavatele písemně informovat o době čerpání v předstihu aspoň 14 dnů. Přitom se dovolená ani nemusí nutně stihnout celá vybrat v roce letošním. To není nutné.

Příklad:

Zaměstnanci zbývá ještě 10 dnů dovolené z roku 2023, a tak oznámí zaměstnavateli, že ji bude čerpat po Vánocích od 27. prosince 2024. Takto vyčerpá letos 3 dny: 27. 12. a 30. a 31. 12. Zbylých 7 dnů si vyčerpá až v novém roce 2025. 

 

Kdy nejpozději oznámit dovolenou

Ovšem znovu upozorňujeme, že takovéto čerpání dovolené je třeba oznámit zaměstnavateli v předstihu 14 dnů čili nejpozději do 13. 12. 2024.

A radši zdůrazníme i to, že tato pravidla se týkají čerpání loňské a starší dovolené. V žádném případě si (zatím) nemůže zaměstnanec rozhodovat o nástupu letošní dovolené. Termín čerpání této dovolené určuje (stále) výhradně zaměstnavatel, i když se s ním může zaměstnanec dohodnout. Základním pravidlem totiž je, že dobu čerpání dovolené určuje zaměstnavatel. Určování dovolené zaměstnancem je výjimkou.

Zaměstnavatel je povinen určit zaměstnanci (pokud tomu nebrání vážné provozní důvody na jeho straně nebo překážky v práci straně zaměstnance) čerpání dovolené v tom roce, za který náleží. 

Čtěte také: Zaměstnanci končí pracovní poměr, ale zbývá mu dovolená. Jaké jsou možnosti?

Možnost dohody o odloženém čerpání dovolené v rozsahu nad 4 týdny a její převod do budoucna

S přihlédnutím k oprávněným zájmům zaměstnance lze na základě jeho písemné žádosti část dovolené za kalendářní rok, na kterou vzniklo právo v příslušném kalendářním roce a která přesahuje 4 týdny, a u pedagogických pracovníků a akademických pracovníků vysokých škol 6 týdnů, převést do následujícího kalendářního roku.

To je pravidlo pro převedení dovolené, kterou je možné čerpat, protože tomu žádné překážky nebrání (ani na straně zaměstnavatele, ani na straně zaměstnance), ale zaměstnanec si ji chce převést do budoucna, aby mohl jet třeba na déle trvající zájezd do zahraničí. Zaměstnanec o to musí požádat písemně, ale dohoda mezi zaměstnancem a zaměstnavatelem písemná být nemusí, byť je určitě vhodné ji písemně uzavřít. 

Tip: Může vám zaměstnavatel snížit mzdu během pracovního poměru?

I čerpání převedené dovolené se může oddálit

Pokud bude dovolená, resp. její část převedena na žádost zaměstnance dohodou se zaměstnavatelem do roku následujícího, zůstává zaměstnavateli povinnost určit ji zaměstnanci tak, aby byla vyčerpána nejpozději právě do konce následujícího kalendářního roku. Takže dovolená převedená z roku 2024 do roku 2025 musí být vyčerpána do konce roku 2025. Ovšem kdyby nastaly překážky v práci bránící čerpání dovolené jako pracovní neschopnost, a dovolená tak čerpána nebude, stejně nepropadne. Nárok na ni zaměstnanci zůstane. 

Dovolenou však nelze tzv. proplácet bez čerpání volna. Tzv. proplacení dovolené je možné jen v souvislosti se skončením pracovního poměru zaměstnance


Čtěte také: 

Minimální mzda vzroste na 20 800 Kč od 1. ledna 2025. Jaká bude v sousedních zemích?

V roce 2025 vzrostou limity u dohod o provedení práce i u zaměstnaneckých benefitů

Autor článku

Terezie Nývltová Vojáčková  


Pomohl vám tento obsah? Dejte mu hodnocení:

Průměrné hodnocení: 3.5
Hlasováno: 22 krát

Články ze sekce: DANĚ


'; document.getElementById('preroll_iframe').onload = function(){ preroll_setupIframe(); } } function preroll_setupIframe() { prerollDocument = document.getElementById('preroll_iframe').contentWindow.document; let el = prerollDocument.createElement('style'); el.type = 'text/css'; prerollDocument.head.appendChild(el); el.innerText = "#preroll_adContainer>div:nth-of-type(1),#preroll_adContainer>div:nth-of-type(1) > iframe {width: 99% !important;height: 99% !important;max-width: 100%;}#preroll_videoContent,body{width:100vw;height:100vh}body{font-family:'Helvetica Neue',Arial,sans-serif}#preroll_videoContent{overflow:hidden;background:#000}#preroll_adMuteBtn{width:35px;height:35px;border:0;background:0 0;display:none;position:absolute;fill:rgba(230,230,230,1);bottom:-5px;right:25px}"; preroll_videoContent = prerollDocument.getElementById('preroll_contentElement'); preroll_videoContent.style.display = 'none'; preroll_videoContent.volume = 1; preroll_videoContent.muted = false; const playPromise = preroll_videoContent.play(); if (playPromise !== undefined) { console.log('PREROLL sound forbidden');preroll_videoContent.volume = 0;preroll_videoContent.muted = true;preroll_setUpIMA(false); //playPromise.then(function () { console.log('PREROLL sound allowed');preroll_setUpIMA(true); }).catch(function () { console.log('PREROLL sound forbidden');preroll_videoContent.volume = 0;preroll_videoContent.muted = true;preroll_setUpIMA(false); }); } } function preroll_setUpIMA(sound) { google.ima.settings.setDisableCustomPlaybackForIOS10Plus(true); google.ima.settings.setLocale('cs'); google.ima.settings.setNumRedirects(10); // Create the ad display container. preroll_createAdDisplayContainer(); // Create ads loader. preroll_adsLoader = new google.ima.AdsLoader(preroll_adDisplayContainer); // Listen and respond to ads loaded and error events. preroll_adsLoader.addEventListener( google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED, preroll_onAdsManagerLoaded, false); preroll_adsLoader.addEventListener( google.ima.AdErrorEvent.Type.AD_ERROR, preroll_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() { preroll_adsLoader.contentComplete(); }; preroll_videoContent.onended = contentEndedListener; // Request video ads. const adsRequest = new google.ima.AdsRequest(); if (sound && preroll_iinfoVastUrlIndex <= preroll_iinfoVastUrls.length-1) { adsRequest.adTagUrl = preroll_iinfoVastUrls[preroll_iinfoVastUrlIndex]; console.log('Preroll advert: ' + preroll_iinfoVastUrls[preroll_iinfoVastUrlIndex]); preroll_current = 0; preroll_videoContent.muted = false; preroll_videoContent.volume = 1; } else { adsRequest.adTagUrl = preroll_iinfoVastUrlsMuted[preroll_iinfoVastUrlIndexMuted]; console.log('Preroll advert: ' + preroll_iinfoVastUrlsMuted[preroll_iinfoVastUrlIndexMuted]); preroll_current = 1; preroll_videoContent.muted = true; preroll_videoContent.volume = 0; } adsRequest.nonLinearAdSlotWidth = 0; adsRequest.nonLinearAdSlotHeight = 0; preroll_adsLoader.requestAds(adsRequest); } function preroll_createAdDisplayContainer() { prerollDocument.getElementById('preroll_videoContent').style.display = 'none'; preroll_adDisplayContainer = new google.ima.AdDisplayContainer( prerollDocument.getElementById('preroll_adContainer'), preroll_videoContent); } function preroll_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. preroll_adsManager = adsManagerLoadedEvent.getAdsManager(preroll_videoContent, adsRenderingSettings); // Add listeners to the required events. preroll_adsManager.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR, preroll_onAdError); preroll_adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED, preroll_onContentPauseRequested); preroll_adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED, preroll_onContentResumeRequested); preroll_adsManager.addEventListener( google.ima.AdEvent.Type.ALL_ADS_COMPLETED, preroll_onAdEvent); // Listen to any additional events, if necessary. preroll_adsManager.addEventListener(google.ima.AdEvent.Type.LOADED, preroll_onAdEvent); preroll_adsManager.addEventListener(google.ima.AdEvent.Type.STARTED, preroll_onAdEvent); preroll_adsManager.addEventListener(google.ima.AdEvent.Type.COMPLETE, preroll_onAdEvent); preroll_playAds(); } function preroll_playAds() { // Initialize the container. Must be done through a user action on mobile // devices. preroll_videoContent.load(); preroll_adDisplayContainer.initialize(); try { preroll_adsManager.init(preroll_width_init, preroll_height_init, google.ima.ViewMode.NORMAL); preroll_adsManager.start(); } catch (adError) { } } function preroll_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('Preroll event: ' + adEvent.type); switch (adEvent.type) { case google.ima.AdEvent.Type.LOADED: prerollDocument.getElementById('preroll_adContainer').style.width = '100%'; prerollDocument.getElementById('preroll_adContainer').style.maxWidth = '640px'; prerollDocument.getElementById('preroll_adContainer').style.height = '360px'; break; case google.ima.AdEvent.Type.STARTED: prerollDocument.getElementById('preroll_adMuteBtn').style.display = 'block'; preroll_init_container.style.display = 'none'; try { adsManager.pause(); } catch (error) { } break; case google.ima.AdEvent.Type.ALL_ADS_COMPLETED: preroll_play_yt(); break; case google.ima.AdEvent.Type.COMPLETE: preroll_play_yt(); break; } } function preroll_onAdError(adErrorEvent) { // Handle the error logging. console.log(adErrorEvent.getError()); preroll_last_error = adErrorEvent.getError().getErrorCode(); console.log(preroll_last_error); if (!preroll_loadNext()) { preroll_play_yt(); } } function preroll_onContentPauseRequested() { preroll_videoContent.pause(); } function preroll_onContentResumeRequested() { preroll_videoContent.play(); } function preroll_loadNext() { if (preroll_current === 0) { preroll_iinfoVastUrlIndex++; if (preroll_iinfoVastUrls.length > preroll_iinfoVastUrlIndex) { preroll_init(); } else { return false; } } else { preroll_iinfoVastUrlIndexMuted++; if (preroll_iinfoVastUrlsMuted.length > preroll_iinfoVastUrlIndexMuted) { preroll_init(); } else { return false; } } preroll_adVolume = 1; return true; } function preroll_unmuteAdvert() { preroll_adVolume = !preroll_adVolume; if (preroll_adVolume) { preroll_adsManager.setVolume(1); prerollDocument.getElementById('preroll_adMuteBtn').innerHTML = ''; } else { preroll_adsManager.setVolume(0); prerollDocument.getElementById('preroll_adMuteBtn').innerHTML = ''; } } function tryToInicializePreroll() { preroll_init(); } function preroll_play_yt() { preroll_videoElement.style.display = 'block'; const youTubeUrlQueryString = preroll_videoElement.src.includes('?'); const firstLetterOfAddedUrl = youTubeUrlQueryString ? '&' : '?'; preroll_videoElement.src += firstLetterOfAddedUrl + 'autoplay=1&mute=0'; preroll_init_container.style.display = 'none'; document.querySelectorAll('.preroll-container').forEach(e => e.remove()); finance_init_container.style.display = 'block'; try { adsManager.pause(); } catch (error) { } }

'; document.getElementById('outstream-iframe').onload = function(){ setupIframe(); } } function setupIframe() { outstreamDocument = document.getElementById('outstream-iframe').contentWindow.document; let el = outstreamDocument.createElement('style'); el.type = 'text/css'; 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 (!outstream_direct_played) { console.log('Setup iframe: direct'); setUpIMA(true); } else if (iinfoOutstreamAllowed) { console.log('Setup iframe: allowed article'); const playPromise = videoContent.play(); playPromise.then(function () { console.log('OUTSTREAM sound allowed'); setUpIMA(false); }).catch(function () { renderPassback(); }); } else { console.log('Setup iframe: passback'); renderPassback(); } } /** * 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 = iinfoVastDirect; console.log('Outstream DIRECT CAMPAING advert: ' + iinfoVastDirect); videoContent.muted = true; videoContent.volume = 0; outstream_direct_played = true; } else { adsRequest.adTagUrl = iinfoVastUrls[iinfoVastUrlIndex]; console.log('Outstream advert: ' + iinfoVastUrls[iinfoVastUrlIndex]); videoContent.muted = false; videoContent.volume = 1; } adsRequest.nonLinearAdSlotWidth = 0; adsRequest.nonLinearAdSlotHeight = 0; adsLoader.requestAds(adsRequest); } /** * 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(1); 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(); try { adsManager.init(outstream_width_init, outstream_height_init, google.ima.ViewMode.NORMAL); adsManager.start(); } catch (adError) { } } /** * 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(); }, 300); // every 300ms } //unmuteAdvert(); outstreamDocument.getElementById('adMuteBtn').style.display = 'block'; break; case google.ima.AdEvent.Type.ALL_ADS_COMPLETED: if (ad.isLinear()) { clearInterval(intervalTimer); } if (outstream_last_error == 303) { renderPassback(); } 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 (true) { renderPassback(); } break; } } function renderPassback() { console.log('Outstream Spouštím Passback'); advertContainer.innerHTML = ""; advertContainer.appendChild(passBackDiv); } /** * Handles ad errors. * @param {!google.ima.AdErrorEvent} adErrorEvent */ function onAdError(adErrorEvent) { // Handle the error logging. console.log(adErrorEvent.getError()); outstream_last_error = adErrorEvent.getError().getErrorCode(); console.log(outstream_last_error); if (!loadNext()) { renderPassback(); } } function loadNext() { iinfoVastUrlIndex++; if (iinfoVastUrls.length > iinfoVastUrlIndex) { outstream_init(); } else { return false; } adVolume = 1; return true; } function onContentPauseRequested() { videoContent.pause(); } function onContentResumeRequested() { videoContent.play(); } function onActiveView() { console.log('outstream onActiveView()'); var wrapper = document.getElementsByClassName('outstream-container')[0]; if (wrapper) { var containerOffset = wrapper.getBoundingClientRect(); var windowHeight = window.innerHeight; if (containerOffset.top < windowHeight/1 && containerOffset.bottom > 0.0) { if (outstream_paused) { adsManager.resume(); outstream_paused = false; /*window.removeEventListener('scroll', onActiveView);*/ console.log('Outstream: ad resume()'); } return true; } else { if (!outstream_paused) { adsManager.pause(); outstream_paused = true; /*window.removeEventListener('scroll', onActiveView);*/ console.log('Outstream: ad pause()'); } } } return false; } let outstream_initialize_interval = setInterval(tryToInicializeOutstream, 100); function tryToInicializeOutstream() { console.log(cpexPackage.adserver.displayed); var wrapper = document.getElementsByClassName('outstream-container')[0]; if (wrapper) { var containerOffset = wrapper.getBoundingClientRect(); var windowHeight = window.innerHeight; if (containerOffset.top < windowHeight / 1 && containerOffset.bottom > 0.0) { if (cpexPackage.adserver.displayed) { clearInterval(outstream_initialize_interval); outstream_init(); } } } }
OSZAR »