Ficha de obra

Taller Vallhonrat
'+esc(p)+'
'+esc(model)+'
Kilómetros actuales'+esc(fieldByLabel(form,'kilómetros actuales'))+' km
Próxima revisión'+esc(fieldByLabel(form,'próxima revisión'))+' km
Fecha próxima revisión'+esc(dateEs(dateInput.value))+'

Trabajos a realizar

'+(lines.length?lines.map(function(x){return ''}).join(''):'')+'
Detalle del trabajo
'+esc(x)+'
Sin trabajos anotados
'+(hours?'
Horas de taller realizadas'+esc(hours)+'
':'')+'');d.close();setTimeout(function(){iframe.contentWindow.focus();iframe.contentWindow.print();setTimeout(function(){iframe.remove()},1200)},250) } // Dependencias compartidas con el generador final de la ficha, que se // declara en una capa anterior del mismo documento. window.__wwWorkSheetDeps={clean:clean,esc:esc,vehicleData:vehicleData,fieldByLabel:fieldByLabel,workLines:workLines,dateEs:dateEs}; function install(){ var form=document.querySelector('[data-ficha-form]');if(!form)return;var label=Array.from(form.querySelectorAll('label')).find(function(x){return clean(x.textContent)==='Kilómetros actuales'});if(!label)return;var row=label.parentElement&&label.parentElement.parentElement;if(!row)return;var p=plate(form)||clean(form.querySelector('[title^="Formato de placa detectado:"]')&&form.querySelector('[title^="Formato de placa detectado:"]').textContent)||'tarea'; // El bundle moderno ya incorpora fecha e impresión nativas. No añadir // el botón heredado (iframe oculto), porque Safari puede imprimir la // pantalla principal en lugar de la ficha de obra. if(form.querySelector('button[aria-label="Imprimir ficha de trabajo"]'))return; var currentInput=row.querySelector('#ww-next-review-date'),currentButton=row.querySelector('#ww-print-work-sheet'); if(currentInput&¤tButton){ // React reutiliza el mismo panel al cambiar de tarea. No conservar // la matrícula capturada al instalar el botón por primera vez: // resolver siempre la ficha visible justo en el momento del clic. if(row.dataset.wwWorkSheetPlate!==p){currentInput.value=localStorage.getItem(storageKey(p))||'';row.dataset.wwWorkSheetPlate=p} currentInput.onchange=function(){var activeForm=document.querySelector('[data-ficha-form]'),activePlate=activeForm&&plate(activeForm)||row.dataset.wwWorkSheetPlate||'tarea';localStorage.setItem(storageKey(activePlate),currentInput.value)}; currentButton.onclick=function(){var activeForm=document.querySelector('[data-ficha-form]');if(!activeForm)return;var activePlate=plate(activeForm)||clean(activeForm.querySelector('[title^="Formato de placa detectado:"]')&&activeForm.querySelector('[title^="Formato de placa detectado:"]').textContent)||'tarea';var activeInput=activeForm.querySelector('#ww-next-review-date')||currentInput;if(typeof window.__wwPrintWorkSheetV2!=="function"){console.error("Impresora de ficha no disponible");return}window.__wwPrintWorkSheetV2(activeForm,activePlate,activeInput)}; return; } row.dataset.wwWorkSheetPlate=p; var wrap=document.createElement('div');wrap.className='ww-review-date-wrap';var l=document.createElement('label');l.htmlFor='ww-next-review-date';l.textContent='Fecha próxima revisión';var input=document.createElement('input');input.id='ww-next-review-date';input.type='date';input.value=localStorage.getItem(storageKey(p))||'';input.onchange=function(){localStorage.setItem(storageKey(p),input.value)};wrap.append(l,input); var button=document.createElement('button');button.id='ww-print-work-sheet';button.type='button';button.title='Imprimir ficha de trabajo';button.setAttribute('aria-label','Imprimir ficha de trabajo');button.innerHTML='';button.onclick=function(){var activeForm=document.querySelector('[data-ficha-form]');if(!activeForm)return;var activePlate=plate(activeForm)||'tarea';var activeInput=activeForm.querySelector('#ww-next-review-date')||input;if(typeof window.__wwPrintWorkSheetV2!=="function"){console.error("Impresora de ficha no disponible");return}window.__wwPrintWorkSheetV2(activeForm,activePlate,activeInput)};row.append(wrap,button) } new MutationObserver(install).observe(document.documentElement,{childList:true,subtree:true});document.addEventListener('DOMContentLoaded',install) })();