klg-asutk-app/app/print/crs/page.tsx

54 lines
3.1 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

'use client';
import { useState, useEffect, Suspense } from 'react';
import { useSearchParams } from 'next/navigation';
function CRSContent() {
const params = useSearchParams();
const woId = params.get('wo_id');
const [wo, setWo] = useState<any>(null);
useEffect(() => {
if (woId) fetch(`/api/v1/work-orders/${woId}`).then(r => r.json()).then(setWo);
}, [woId]);
useEffect(() => { if (wo?.crs_signed_by) setTimeout(() => window.print(), 500); }, [wo]);
if (!wo) return <div className="p-8 text-center text-gray-400">Загрузка...</div>;
return (
<div className="max-w-[800px] mx-auto p-8 font-serif text-sm">
<div className="text-center border-b-2 border-black pb-4 mb-4">
<h1 className="text-lg font-bold">CERTIFICATE OF RELEASE TO SERVICE</h1>
<h2 className="text-base">СВИДЕТЕЛЬСТВО О ДОПУСКЕ К ЭКСПЛУАТАЦИИ</h2>
<p className="text-xs text-gray-500 mt-1">ФАП-145 п.145.A.50 | EASA Part-145.A.50</p>
</div>
<table className="w-full border-collapse mb-4">
<tbody>
{[['Наряд / WO No:', wo.wo_number], ['Борт:', wo.aircraft_reg], ['Тип:', wo.wo_type],
['Работы:', wo.title], ['План. ч/ч:', wo.estimated_manhours], ['Факт. ч/ч:', wo.actual_manhours || '—']
].map(([k, v], i) => (
<tr key={i} className="border border-gray-300">
<td className="px-2 py-1 bg-gray-100 font-medium w-1/3">{k}</td>
<td className="px-2 py-1">{String(v)}</td>
</tr>
))}
</tbody>
</table>
{wo.description && <div className="mb-4"><h3 className="font-bold text-xs text-gray-600 mb-1">Описание работ:</h3><p className="border p-2">{wo.description}</p></div>}
{wo.findings && <div className="mb-4"><h3 className="font-bold text-xs text-gray-600 mb-1">Замечания:</h3><p className="border p-2">{wo.findings}</p></div>}
<div className="border-2 border-black p-4 mt-6">
<h3 className="font-bold text-center mb-3">RELEASE TO SERVICE / ДОПУСК К ЭКСПЛУАТАЦИИ</h3>
<p className="text-xs mb-4">Certifies that the work specified was carried out in accordance with ФАП-145 / Part-145 and the aircraft is ready for release to service.</p>
<div className="grid grid-cols-2 gap-4 mt-4">
<div><div className="text-xs text-gray-500">Подписал:</div><div className="border-b border-black mt-6 pt-1 font-bold">{wo.crs_signed_by || '________________'}</div></div>
<div><div className="text-xs text-gray-500">Дата:</div><div className="border-b border-black mt-6 pt-1">{wo.crs_date ? new Date(wo.crs_date).toLocaleDateString('ru-RU') : '________________'}</div></div>
</div>
</div>
<div className="mt-6 text-[10px] text-gray-400 text-center">АСУ ТК КЛГ | {new Date().toLocaleDateString('ru-RU')}</div>
</div>
);
}
export default function CRSPrintPage() {
return <Suspense fallback={<div className="p-8 text-center">Загрузка...</div>}><CRSContent /></Suspense>;
}