Zum Inhalt springen
UnternehmensPro
  • START
  • Services
  • KONTAKT
  • 0
0
Menü X
Diese Website durchsuchen

IHK-Fachkundeprüfung Taxi & Mietwagen

  1. Start>
  2. Produkte>
  3. IHK-Fachkundeprüfung Taxi & Mietwagen
  • Ansicht:
  • 12
  • 24
  • Alle
  • IHK-Fachkundeprüfung Taxi & Mietwagen Schnellansicht
    • IHK-Fachkundeprüfung Taxi & Mietwagen Schnellansicht
    • IHK-Fachkundeprüfung Taxi & Mietwagen
    • IHK-Fachkundeprüfung Taxi & Mietwagen

    • 50,00 €
    • In den Warenkorb
  • Platzhalter Bild
    • Platzhalter Bild
    • IHK-Fachkundeprüfung Taxi & Mietwagen
    • Marco Polo

    • 10,00 € – 20,00 €Preisspanne: 10,00 € bis 20,00 €
    • Ausführung wählen Dieses Produkt weist mehrere Varianten auf. Die Optionen können auf der Produktseite gewählt werden

Recent Posts

    Recent Comments

    Es sind keine Kommentare vorhanden.

    Archives

    Keine Archive zum Anzeigen.

    Categories

    • Keine Kategorien

    Calendar

    März 2026
    M D M D F S S
     1
    2345678
    9101112131415
    16171819202122
    23242526272829
    3031  
         

    Footer Logo

    Subscribe to our Newsletter

    soziale medien

    Facebook Twitter Youtube
    KONTAKT

    Schnellzugriffe

    • SERVICES
    • ÜBER UNTERNEHMENSPRO
    • KONTAKT

    UnternehmensPro

    Mainblick 8a
    63743 Aschaffenburg

    Email: info@unternehmenspro.de

    ©2018-2024 UnternehmensPro. Alle Rechte vorbehalten. 

    Datenschutz| |Impressum

    UnternehmesPro
    ×
    ×

    Warenkorb

    '); w.document.close(); w.focus(); setTimeout(function(){ w.print(); }, 300); }); } }); var editorWrap = document.getElementById('ldkp-editor-wrap'); if(editorWrap && ajax){ var rows = []; function esc(val){ return String(val == null ? '' : val) .replace(/&/g,'&') .replace(//g,'>') .replace(/"/g,'"'); } function renderEditor(){ var tbody = editorWrap.querySelector('tbody'); if(!tbody) return; tbody.innerHTML = ''; rows.forEach(function(r, idx){ var tr = document.createElement('tr'); tr.innerHTML = '' + '' + '' + '' + '' + '' + '' + '' + ' '; tr.querySelector('[data-k="status"]').value = r.status || 'ARBEIT'; tr.querySelectorAll('[data-k]').forEach(function(inp){ inp.addEventListener('input', function(){ rows[idx][inp.getAttribute('data-k')] = inp.value; }); inp.addEventListener('change', function(){ rows[idx][inp.getAttribute('data-k')] = inp.value; }); }); tbody.appendChild(tr); }); tbody.querySelectorAll('[data-row-del]').forEach(function(btn){ btn.addEventListener('click', function(){ rows.splice(parseInt(btn.getAttribute('data-row-del'),10), 1); renderEditor(); }); }); tbody.querySelectorAll('[data-row-add]').forEach(function(btn){ btn.addEventListener('click', function(){ rows.splice(parseInt(btn.getAttribute('data-row-add'),10), 0, {date:'',name:'',status:'ARBEIT',area:'',shift:'',start:'',end:'',break:''}); renderEditor(); }); }); tbody.querySelectorAll('[data-row-add-below]').forEach(function(btn){ btn.addEventListener('click', function(){ rows.splice(parseInt(btn.getAttribute('data-row-add-below'),10) + 1, 0, {date:'',name:'',status:'ARBEIT',area:'',shift:'',start:'',end:'',break:''}); renderEditor(); }); }); } function request(action, payload, cb){ var body = new URLSearchParams(); body.append('action', action); body.append('nonce', ajax.nonce); Object.keys(payload || {}).forEach(function(k){ body.append(k, payload[k]); }); fetch(ajax.url,{method:'POST',credentials:'same-origin',headers:{'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8'},body:body.toString()}) .then(function(r){ return r.json(); }) .then(function(j){ if(!j || !j.success){ alert(j && j.data && j.data.message ? j.data.message : 'Aktion fehlgeschlagen.'); return; } if(cb) cb(j.data || {}); }) .catch(function(){ alert('Aktion fehlgeschlagen.'); }); } request('ldk_portal_get_plan_editor_data', {}, function(data){ rows = Array.isArray(data.rows) ? data.rows : []; renderEditor(); var st = editorWrap.querySelector('[data-editor-status]'); if(st){ st.textContent = 'Status: ' + (data.status || 'empty'); } }); var addRow = editorWrap.querySelector('[data-editor-add]'); if(addRow){ addRow.addEventListener('click', function(){ rows.push({date:'',name:'',status:'ARBEIT',area:'',shift:'',start:'',end:'',break:''}); renderEditor(); }); } var saveBtn = editorWrap.querySelector('[data-editor-save]'); if(saveBtn){ saveBtn.addEventListener('click', function(){ request('ldk_portal_save_plan_rows', {rows:JSON.stringify(rows)}, function(d){ alert(d.message || 'Gespeichert.'); }); }); } var pubBtn = editorWrap.querySelector('[data-editor-publish]'); if(pubBtn){ pubBtn.addEventListener('click', function(){ request('ldk_portal_publish_plan_rows', {rows:JSON.stringify(rows)}, function(d){ alert(d.message || 'Freigegeben.'); location.reload(); }); }); } var delBtn = editorWrap.querySelector('[data-editor-delete]'); if(delBtn){ delBtn.addEventListener('click', function(){ if(!confirm('Plan wirklich löschen?')) return; request('ldk_portal_delete_plan', {}, function(d){ alert(d.message || 'Gelöscht.'); location.reload(); }); }); } var expBtn = editorWrap.querySelector('[data-editor-export]'); if(expBtn){ expBtn.addEventListener('click', function(){ request('ldk_portal_export_csv', {rows:JSON.stringify(rows)}, function(d){ downloadBase64(d.filename,d.content); }); }); } function pad(n){ return String(n).padStart(2,'0'); } function normalizeTime(v){ var s = String(v == null ? '' : v).trim(); if(!s || s === '-') return '–'; return s.split(/\s*\/\s*/).map(function(part){ var m = part.trim().match(/^(\d{1,2}):(\d{1,2})$/); return m ? (pad(m[1]) + ':' + pad(m[2])) : part.trim(); }).filter(Boolean).join(' / ') || '–'; } function excelDateToGerman(v){ if (v == null || v === '') return ''; if (typeof v === 'number' && typeof XLSX !== 'undefined' && XLSX.SSF) { var d = XLSX.SSF.parse_date_code(v); if (d && d.y && d.m && d.d) return pad(d.d) + '.' + pad(d.m) + '.' + d.y; } if (v instanceof Date) return pad(v.getDate()) + '.' + pad(v.getMonth()+1) + '.' + v.getFullYear(); var s = String(v).trim(); var m = s.match(/^(\d{1,2})[.\-/](\d{1,2})[.\-/](\d{2,4})$/); if (m) { var y = m[3]; if (y.length === 2) y = '20' + y; return pad(m[1]) + '.' + pad(m[2]) + '.' + y; } return s; } function normalizeCell(v){ if (v == null) return ''; return String(v).replace(/\r/g,'').trim(); } function isDateLike(v){ if (v instanceof Date) return true; if (typeof v === 'number') return true; var s = normalizeCell(v); return /^\d{1,2}[.\-/]\d{1,2}[.\-/]\d{2,4}$/.test(s); } function isAreaRow(name){ return ['Management','Shift Leader','Service','Bar','Küche'].indexOf(name) !== -1; } function parseLegend(wb){ var legend = {}; wb.SheetNames.forEach(function(sheetName){ var ws = wb.Sheets[sheetName]; var arr = XLSX.utils.sheet_to_json(ws, {header:1, raw:true, defval:''}); arr.forEach(function(row){ var code = normalizeCell(row[1]).toUpperCase(); if (!/^(M1|M2|M3|M7|SPM|S2|S3|S5|S8|S9|S10|S11|B1|B2|KK1|KK4)$/.test(code)) return; var area = normalizeCell(row[0]); var source = normalizeCell(row[2]) + ' ' + normalizeCell(row[3]); var times = Array.from(source.matchAll(/(\d{1,2}:\d{2})\s*-\s*(\d{1,2}:\d{2})/g)); var starts = times.map(function(t){ return normalizeTime(t[1]); }); var ends = times.map(function(t){ return normalizeTime(t[2]); }); var pause = '–'; var pauseMatch = source.match(/Pause:\s*(\d{1,2}:\d{2})\s*-\s*(\d{1,2}:\d{2})/i); if (pauseMatch) pause = normalizeTime(pauseMatch[1]) + ' / ' + normalizeTime(pauseMatch[2]).replace(' / ', ''); if (area.indexOf('Service / Bar') !== -1 && /^B\d+$/.test(code)) area = 'Bar'; else if (area.indexOf('Service / Bar') !== -1) area = 'Service'; legend[code] = { area: area || '', start: starts.join(' / ') || '–', end: ends.join(' / ') || '–', break: pause || '–' }; }); }); return legend; } function extractStatusAndShift(cell){ var text = normalizeCell(cell).replace(/\*/g,''); if (!text) return null; if (/^FE$/i.test(text)) return {status:'FE'}; if (/^FI$/i.test(text)) return {status:'FI'}; if (/^FR$/i.test(text)) return {status:'FR'}; var codeMatch = text.match(/\b(M1|M2|M3|M7|SPM|S2|S3|S5|S8|S9|S10|S11|B1|B2|KK1|KK4)\b/i); if (!codeMatch) return null; var shift = codeMatch[1].toUpperCase(); var times = Array.from(text.matchAll(/(\d{1,2}:\d{2})\s*-\s*(\d{1,2}:\d{2})/g)); var starts = times.map(function(m){ return normalizeTime(m[1]); }); var ends = times.map(function(m){ return normalizeTime(m[2]); }); return { status:'ARBEIT', shift:shift, start: starts.join(' / ') || '', end: ends.join(' / ') || '' }; } function parseMatrixArray(arr, legend){ if (!arr || !arr.length) return []; var header = arr[0] || []; var dateCols = []; for (var c = 1; c < header.length; c++) if (isDateLike(header[c])) dateCols.push({col:c, date:excelDateToGerman(header[c])}); if (!dateCols.length) return []; var currentArea = ''; var out = []; for (var r = 2; r < arr.length; r++) { var row = arr[r] || []; var first = normalizeCell(row[0]); if (!first) continue; if (isAreaRow(first)) { currentArea = first; continue; } dateCols.forEach(function(dc){ var parsed = extractStatusAndShift(row[dc.col]); if (!parsed) return; if (parsed.status !== 'ARBEIT') { out.push({date:dc.date,name:first,status:parsed.status,area:currentArea || '',shift:parsed.status,start:'–',end:'–',break:'–'}); return; } var lg = legend[parsed.shift] || {}; var area = lg.area || currentArea || ''; if (area === 'Service / Bar' && /^B\d+$/.test(parsed.shift)) area = 'Bar'; else if (area === 'Service / Bar') area = 'Service'; out.push({ date:dc.date, name:first, status:'ARBEIT', area:area || '', shift:parsed.shift, start:normalizeTime(parsed.start || lg.start || '–'), end:normalizeTime(parsed.end || lg.end || '–'), break:normalizeTime(lg.break || '–') }); }); } return out; } function parseDelimitedText(text){ var lines = text.split(/\r?\n/).filter(Boolean); if (!lines.length) return []; var first = lines[0]; var delim = first.indexOf(';') !== -1 ? ';' : ','; return lines.map(function(line){ var out = []; var cur = ''; var inQuotes = false; for (var i = 0; i < line.length; i++) { var ch = line[i]; if (ch === '"') { if (inQuotes && line[i+1] === '"') { cur += '"'; i++; } else inQuotes = !inQuotes; } else if (ch === delim && !inQuotes) { out.push(cur); cur = ''; } else cur += ch; } out.push(cur); return out; }); } async function parseWorkbook(file){ var ext = (file.name.split('.').pop() || '').toLowerCase(); if (ext === 'csv') { var text = await file.text(); return parseMatrixArray(parseDelimitedText(text), {}); } if (typeof XLSX === 'undefined') throw new Error('XLSX fehlt'); var data = await file.arrayBuffer(); var wb = XLSX.read(data, {type:'array', cellDates:true, raw:true}); var legend = parseLegend(wb); var allRows = []; wb.SheetNames.forEach(function(name){ var ws = wb.Sheets[name]; var arr = XLSX.utils.sheet_to_json(ws, {header:1, raw:true, defval:''}); var parsed = parseMatrixArray(arr, legend); if (parsed.length) allRows = allRows.concat(parsed); }); return allRows; } var fileInput = editorWrap.querySelector('[data-editor-file]'); if(fileInput){ fileInput.addEventListener('change', async function(){ var file = fileInput.files && fileInput.files[0]; if(!file) return; try { var next = await parseWorkbook(file); if(!next.length){ alert('Datei konnte nicht sinnvoll gelesen werden.'); return; } rows = next; renderEditor(); } catch(err) { console.error(err); alert('Datei konnte nicht gelesen werden.'); } }); } } }); //# sourceURL=ldk-portal-pro-inline-js-after