import React, { useState } from 'react'; import { useDemoStore, WorkOrder } from '../../mock/store'; import { Badge } from '../../shared/components/Badge'; import { Button } from '../../shared/components/Button'; import { Modal } from '../../shared/components/Modal'; import { formatCurrency } from '../../shared/utils/formatters'; import { Car, Wrench, User, Phone, CheckCircle2, Play, Plus, Clock } from 'lucide-react'; export const WorkOrdersView: React.FC = () => { const { workOrders, updateWorkOrderStatus, setIsQuickActionsOpen } = useDemoStore(); const [selectedOrder, setSelectedOrder] = useState(null); const getStatusBadge = (status: WorkOrder['status']) => { switch (status) { case 'in_progress': return В работе на посту; case 'ready': return Готов к выдаче; case 'paid': return Оплачен и выдан; case 'draft': default: return Черновик / Заезд; } }; return (

Заказ-наряды автокомплекса и постов

Учет автомобилей, выполненных работ, списанных запчастей и нормо-часов

{workOrders.map((wo) => { const totalAmount = wo.partsAmount + wo.laborAmount; return (
setSelectedOrder(wo)} className="p-4 rounded-xl border border-krona-border bg-krona-surface hover:border-krona-border-strong shadow-krona-soft cursor-pointer transition-all space-y-3" >

{wo.vehicle}

{wo.id} • {wo.bay}
{getStatusBadge(wo.status)}
Владелец: {wo.ownerName}
Мастер поста: {wo.masterName}
Работы и услуги:
    {wo.services.map((srv, i) => (
  • {srv}
  • ))}
Итоговая стоимость: {formatCurrency(totalAmount)}
{wo.status === 'in_progress' && ( )} {wo.status === 'ready' && ( )}
); })}
{/* Work Order Detail Modal */} {selectedOrder && ( setSelectedOrder(null)} title={`Заказ-наряд ${selectedOrder.id}`} subtitle={`${selectedOrder.vehicle} • ${selectedOrder.bay}`} maxWidth="md" footer={ } >
Владелец: {selectedOrder.ownerName} {selectedOrder.phone}
Ответственный специалист: {selectedOrder.masterName} {selectedOrder.bay}
Калькуляция:
Работы мастера: {formatCurrency(selectedOrder.laborAmount)}
Материалы и запчасти: {formatCurrency(selectedOrder.partsAmount)}
ИТОГО К ОПЛАТЕ: {formatCurrency(selectedOrder.laborAmount + selectedOrder.partsAmount)}
)}
); };