import React, { useState } from "react"; import { FaTimes, FaSave, FaExclamationTriangle } from "react-icons/fa"; import { PmWorkCenter, WorkCenterStatusEnum, CriticalityLevelEnum, } from "../../../types/pm"; import { getCriticalityLevelText, getWorkCenterStatusText, } from "../../../utils/erp"; interface StatusUpdateModalProps { isOpen: boolean; onClose: () => void; onSave: (updatedWorkCenters: PmWorkCenter[]) => void; selectedWorkCenters: PmWorkCenter[]; } const StatusUpdateModal: React.FC = ({ isOpen, onClose, onSave, selectedWorkCenters, }) => { const [newStatus, setNewStatus] = useState( WorkCenterStatusEnum.Operational ); const [newCriticality, setNewCriticality] = useState( CriticalityLevelEnum.Medium ); const [updateStatus, setUpdateStatus] = useState(true); const [updateCriticality, setUpdateCriticality] = useState(false); const [reason, setReason] = useState(""); if (!isOpen) return null; const handleSave = () => { const updatedWorkCenters = selectedWorkCenters.map((workCenter) => ({ ...workCenter, status: updateStatus ? newStatus : workCenter.status, criticality: updateCriticality ? newCriticality : workCenter.criticality, lastModificationTime: new Date(), })); onSave(updatedWorkCenters); onClose(); }; const isStatusCritical = newStatus === WorkCenterStatusEnum.OutOfOrder || newStatus === WorkCenterStatusEnum.UnderMaintenance; return (
{/* Header */}

Durum Güncelle ({selectedWorkCenters.length} iş merkezi)

{/* Content */}
{/* Selected WorkCenter List */}

Seçili İş Merkezleri

{selectedWorkCenters.map((workCenter) => (
{workCenter.code} - {workCenter.name}
Mevcut: {getWorkCenterStatusText(workCenter.status)} {getCriticalityLevelText(workCenter.criticality)}
))}
{/* Status Update Options */}
setUpdateStatus(e.target.checked)} className="rounded border-gray-300 text-blue-600 focus:ring-blue-500" />
{updateStatus && (
{isStatusCritical && (
Dikkat!

Bu durum değişikliği iş merkezinin üretim kapasitesini etkileyebilir.

)}
)}
setUpdateCriticality(e.target.checked)} className="rounded border-gray-300 text-blue-600 focus:ring-blue-500" />
{updateCriticality && (
)}
{/* Reason */}