import { FaArchive, FaArrowCircleDown, FaArrowDown, FaArrowUp, FaAward, FaBan, FaBolt, FaBox, FaBullseye, FaCalendar, FaCheck, FaCheckCircle, FaClock, FaCog, FaComment, FaEdit, FaEnvelope, FaExclamationCircle, FaExclamationTriangle, FaEye, FaFileAlt, FaFileInvoiceDollar, FaFlask, FaIndustry, FaLock, FaMapMarkerAlt, FaMedal, FaPause, FaPhone, FaPlay, FaPlus, FaStar, FaTimesCircle, FaTrophy, FaTruck, FaUser, FaUsers, FaUserTie, FaVideo, FaWrench, } from 'react-icons/fa' import { ApprovalStatusEnum, MmDeliveryItem, MaterialTypeEnum, MovementStatusEnum, MovementTypeEnum, OrderStatusEnum, QualityStatusEnum, QuotationStatusEnum, RequestStatusEnum, RequisitionStatusEnum, SerialStatusEnum, SupplierCardTypeEnum, SupplierTypeEnum, ReceiptStatusEnum, } from '../types/mm' import { BOMTypeEnum, OperationCategoryEnum, MrpProductionOrder, ProductionOrderStatusEnum, ProductionOrderTypeEnum, RecommendationStatusEnum, RequirementSourceTypeEnum, RoutingStatusEnum, SecurityLevelEnum, ForecastMethodEnum, } from '../types/mrp' import { FaRepeat } from 'react-icons/fa6' import { ApprovalLevelEnum, DeliveryStatusEnum, RequestTypeEnum } from '../types/mm' import { ConditionOperatorEnum, ConditionTypeEnum, CountStatusEnum, CountTypeEnum, LocationTypeEnum, PutawayStrategyEnum, StockStatusEnum, WarehouseTypeEnum, ZoneTypeEnum, } from '../types/wm' import { BusinessPartyIndustryEnum, BusinessPartyStatusEnum, PaymentTerms, PriorityEnum, TeamRoleEnum, } from '../types/common' import { AccountTypeEnum, BankAccountTypeEnum, BankTransactionTypeEnum, CashMovementTypeEnum, CheckStatusEnum, TypeEnum, FiDocumentTypeEnum, InvoiceStatusEnum, InvoiceTypeEnum, NoteStatusEnum, PaymentMethodEnum, PaymentStatusEnum, RiskGroupEnum, TransactionStatusEnum, WaybillStatusEnum, WaybillTypeEnum, } from '../types/fi' import { ActivityStatusEnum, CrmActivityTypeEnum, CustomerSegmentEnum, CustomerTypeEnum, LostReasonCategoryEnum, OpportunityStageEnum, SaleOrderItemStatusEnum, SaleOrderStatusEnum, } from '../types/crm' import { AssessorTypeEnum, CampaignStatusEnum, CostCenterType, EmployeeStatusEnum, EmploymentTypeEnum, GenderEnum, JobLevelEnum, LeaveStatusEnum, LeaveTypeEnum, MaritalStatusEnum, ParticipantStatusEnum, PayrollStatusEnum, } from '../types/hr' import { CriticalityLevelEnum, FaultTypeEnum, FrequencyUnitEnum, MaintenancePlanTypeEnum, NotificationStatusEnum, WorkCenterStatusEnum, WorkOrderStatusEnum, WorkOrderTypeEnum, } from '../types/pm' import { DailyUpdateStatusEnum, PhaseCategoryEnum, PhaseStatusEnum, ProjectCostTrackingStatus, ProjectStatusEnum, ProjectTypeEnum, PsActivityTypeEnum, PsDocumentTypeEnum, RiskCategoryEnum, RiskImpactEnum, RiskLevelEnum, RiskProbabilityEnum, RiskStatusEnum, TaskStatusEnum, TaskTypeEnum, WorkTypeEnum, } from '../types/ps' export const getBOMTypeText = (type: BOMTypeEnum) => { switch (type) { case BOMTypeEnum.Production: return 'Üretim' case BOMTypeEnum.Engineering: return 'Mühendislik' case BOMTypeEnum.Planning: return 'Planlama' case BOMTypeEnum.Costing: return 'Maliyetleme' default: return 'Bilinmiyor' } } export const getBOMTypeColor = (type: BOMTypeEnum) => { switch (type) { case BOMTypeEnum.Production: return 'bg-blue-100 text-blue-800' case BOMTypeEnum.Engineering: return 'bg-green-100 text-green-800' case BOMTypeEnum.Planning: return 'bg-yellow-100 text-yellow-800' case BOMTypeEnum.Costing: return 'bg-purple-100 text-purple-800' default: return 'bg-gray-100 text-gray-800' } } export const getMovementTypeText = (type: MovementTypeEnum) => { switch (type) { case MovementTypeEnum.GoodsReceipt: return 'Mal Girişi' case MovementTypeEnum.GoodsIssue: return 'Mal Çıkışı' case MovementTypeEnum.Transfer: return 'Transfer' default: return 'Bilinmeyen' } } export const getMovementTypeIcon = (type: MovementTypeEnum) => { switch (type) { case MovementTypeEnum.GoodsReceipt: return FaArrowUp case MovementTypeEnum.GoodsIssue: return FaArrowDown case MovementTypeEnum.Transfer: return FaRepeat default: return FaArchive } } export const getMovementTypeColor = (type: MovementTypeEnum) => { switch (type) { case MovementTypeEnum.GoodsReceipt: return 'text-green-600 bg-green-100' case MovementTypeEnum.GoodsIssue: return 'text-red-600 bg-red-100' case MovementTypeEnum.Transfer: return 'text-blue-600 bg-blue-100' default: return 'text-gray-600 bg-gray-100' } } export const getMovementTypeSign = (type: MovementTypeEnum) => { switch (type) { case MovementTypeEnum.GoodsReceipt: return '+' case MovementTypeEnum.GoodsIssue: return '-' case MovementTypeEnum.Transfer: return '' default: return '' } } export const getMaterialTypeText = (code: MaterialTypeEnum) => { switch (code) { case MaterialTypeEnum.RawMaterial: return 'HAMMADDE' case MaterialTypeEnum.SemiFinished: return 'YARI_MAMUL' case MaterialTypeEnum.Finished: return 'MAMUL' case MaterialTypeEnum.Consumable: return 'SARF_MALZ' case MaterialTypeEnum.Service: return 'HIZMET' case MaterialTypeEnum.Spare: return 'YEDEK_PARCA' default: return code } } export const getOperationTypeText = (type: OperationCategoryEnum) => { const types = { [OperationCategoryEnum.Production]: 'Üretim', [OperationCategoryEnum.Assembly]: 'Montaj', [OperationCategoryEnum.Inspection]: 'Kalite Kontrolü', [OperationCategoryEnum.Packaging]: 'Paketleme', [OperationCategoryEnum.Setup]: 'Hazırlık', [OperationCategoryEnum.Maintenance]: 'Bakım', [OperationCategoryEnum.Transport]: 'Taşıma', [OperationCategoryEnum.Quality]: 'Kalite', } return types[type] } export const getOperationTypeColor = (type: OperationCategoryEnum) => { const colors = { [OperationCategoryEnum.Production]: 'bg-blue-100 text-blue-800', [OperationCategoryEnum.Assembly]: 'bg-green-100 text-green-800', [OperationCategoryEnum.Inspection]: 'bg-purple-100 text-purple-800', [OperationCategoryEnum.Packaging]: 'bg-orange-100 text-orange-800', [OperationCategoryEnum.Setup]: 'bg-yellow-100 text-yellow-800', [OperationCategoryEnum.Maintenance]: 'bg-red-100 text-red-800', [OperationCategoryEnum.Transport]: 'bg-indigo-100 text-indigo-800', [OperationCategoryEnum.Quality]: 'bg-pink-100 text-pink-800', } return colors[type] } export const getSkillLevelText = (level: number) => { const levels = ['Başlangıç', 'Temel', 'Orta', 'İleri', 'Uzman'] return levels[level - 1] || 'Belirsiz' } export const getWarehouseTypeText = (type: WarehouseTypeEnum) => { const types = { [WarehouseTypeEnum.RawMaterials]: 'Hammadde', [WarehouseTypeEnum.FinishedGoods]: 'Mamul', [WarehouseTypeEnum.WorkInProgress]: 'Ara Ürün', [WarehouseTypeEnum.Quarantine]: 'Karantina', [WarehouseTypeEnum.Returns]: 'İade', [WarehouseTypeEnum.Transit]: 'Transit', [WarehouseTypeEnum.SpareParts]: 'Parçalı', } return types[type] } export const getWarehouseTypeColor = (type: WarehouseTypeEnum) => { const colors = { [WarehouseTypeEnum.RawMaterials]: 'bg-blue-100 text-blue-800', [WarehouseTypeEnum.FinishedGoods]: 'bg-green-100 text-green-800', [WarehouseTypeEnum.WorkInProgress]: 'bg-yellow-100 text-yellow-800', [WarehouseTypeEnum.SpareParts]: 'bg-purple-100 text-purple-800', [WarehouseTypeEnum.Quarantine]: 'bg-red-100 text-red-800', [WarehouseTypeEnum.Returns]: 'bg-pink-100 text-pink-800', [WarehouseTypeEnum.Transit]: 'bg-indigo-100 text-indigo-800', } return colors[type] } export const getRoutingStatusText = (status: RoutingStatusEnum) => { const statuses = { [RoutingStatusEnum.Draft]: 'Taslak', [RoutingStatusEnum.Active]: 'Aktif', [RoutingStatusEnum.Inactive]: 'Pasif', [RoutingStatusEnum.Obsolete]: 'Eski Sürüm', } return statuses[status] } export const getRoutingStatusColor = (status: RoutingStatusEnum) => { const colors = { [RoutingStatusEnum.Draft]: 'bg-yellow-100 text-yellow-800', [RoutingStatusEnum.Active]: 'bg-green-100 text-green-800', [RoutingStatusEnum.Inactive]: 'bg-gray-100 text-gray-800', [RoutingStatusEnum.Obsolete]: 'bg-red-100 text-red-800', } return colors[status] } export const getRequestTypeText = (type: RequestTypeEnum) => { const types = { [RequestTypeEnum.Material]: 'Malzeme', [RequestTypeEnum.Service]: 'Hizmet', [RequestTypeEnum.WorkCenter]: 'İş Merkezi', [RequestTypeEnum.Maintenance]: 'Bakım', } return types[type] } export const getRequestTypeColor = (type: RequestTypeEnum) => { const colors = { [RequestTypeEnum.Material]: 'bg-blue-100 text-blue-800', [RequestTypeEnum.Service]: 'bg-green-100 text-green-800', [RequestTypeEnum.WorkCenter]: 'bg-purple-100 text-purple-800', [RequestTypeEnum.Maintenance]: 'bg-orange-100 text-orange-800', } return colors[type] } export const getApprovalLevelText = (level: ApprovalLevelEnum) => { const levels = { [ApprovalLevelEnum.Supervisor]: 'Süpervizör', [ApprovalLevelEnum.Manager]: 'Yönetici', [ApprovalLevelEnum.Director]: 'Direktör', [ApprovalLevelEnum.GeneralManager]: 'Genel Müdür', [ApprovalLevelEnum.FinanceManager]: 'Mali İşler Müdürü', [ApprovalLevelEnum.TechnicalManager]: 'Teknik Müdür', } return levels[level] } export const getApprovalLevelColor = (level: ApprovalLevelEnum) => { const colors = { [ApprovalLevelEnum.Supervisor]: 'bg-gray-100 text-gray-800', [ApprovalLevelEnum.Manager]: 'bg-blue-100 text-blue-800', [ApprovalLevelEnum.Director]: 'bg-purple-100 text-purple-800', [ApprovalLevelEnum.GeneralManager]: 'bg-red-100 text-red-800', [ApprovalLevelEnum.FinanceManager]: 'bg-green-100 text-green-800', [ApprovalLevelEnum.TechnicalManager]: 'bg-orange-100 text-orange-800', } return colors[level] } export const getDeliveryStatusText = (status: DeliveryStatusEnum) => { const statuses = { [DeliveryStatusEnum.Preparing]: 'Hazırlanıyor', [DeliveryStatusEnum.Shipped]: 'Kargoya Verildi', [DeliveryStatusEnum.InTransit]: 'Yolda', [DeliveryStatusEnum.OutForDelivery]: 'Dağıtımda', [DeliveryStatusEnum.Delivered]: 'Teslim Edildi', [DeliveryStatusEnum.PartiallyDelivered]: 'Kısmi Teslim', [DeliveryStatusEnum.Delayed]: 'Gecikmeli', [DeliveryStatusEnum.Returned]: 'İade Edildi', [DeliveryStatusEnum.Cancelled]: 'İptal Edildi', } return statuses[status] } export const getPriorityText = (priority: PriorityEnum) => { const priorities = { [PriorityEnum.Low]: 'Düşük', [PriorityEnum.Normal]: 'Normal', [PriorityEnum.High]: 'Yüksek', [PriorityEnum.Urgent]: 'Acil', } return priorities[priority] } export const getPriorityColor = (priority: PriorityEnum) => { const colors = { [PriorityEnum.Low]: 'bg-emerald-50 text-emerald-700 border-emerald-200', [PriorityEnum.Normal]: 'bg-blue-50 text-blue-700 border-blue-200', [PriorityEnum.High]: 'bg-orange-50 text-orange-700 border-orange-200', [PriorityEnum.Urgent]: 'bg-red-50 text-red-700 border-red-200', } return colors[priority] } export const getWaybillStatusText = (status: WaybillStatusEnum) => { switch (status) { case WaybillStatusEnum.Draft: return 'Taslak' case WaybillStatusEnum.Confirmed: return 'Onaylandı' case WaybillStatusEnum.Delivered: return 'Teslim Edildi' case WaybillStatusEnum.Cancelled: return 'İptal' default: return 'Bilinmiyor' } } export const getWaybillStatusColor = (status: WaybillStatusEnum) => { switch (status) { case WaybillStatusEnum.Draft: return 'bg-gray-100 text-gray-800' case WaybillStatusEnum.Confirmed: return 'bg-blue-100 text-blue-800' case WaybillStatusEnum.Delivered: return 'bg-green-100 text-green-800' case WaybillStatusEnum.Cancelled: return 'bg-red-100 text-red-800' default: return 'bg-gray-100 text-gray-800' } } export const getWaybillTypeText = (type: WaybillTypeEnum) => { switch (type) { case WaybillTypeEnum.Outgoing: return 'Çıkış İrsaliyesi' case WaybillTypeEnum.Incoming: return 'Giriş İrsaliyesi' case WaybillTypeEnum.Transfer: return 'Transfer İrsaliyesi' case WaybillTypeEnum.Return: return 'İade İrsaliyesi' default: return 'Bilinmiyor' } } export const getBusinessPartyStatusText = (status: BusinessPartyStatusEnum) => { switch (status) { case BusinessPartyStatusEnum.Prospect: return 'Potansiyel' case BusinessPartyStatusEnum.Active: return 'Aktif' case BusinessPartyStatusEnum.Inactive: return 'Pasif' case BusinessPartyStatusEnum.Blocked: return 'Blokeli' default: return 'Bilinmiyor' } } export const getBusinessPartyStatusColor = (status: BusinessPartyStatusEnum) => { switch (status) { case BusinessPartyStatusEnum.Prospect: return 'bg-blue-100 text-blue-800 border-blue-200' case BusinessPartyStatusEnum.Active: return 'bg-green-100 text-green-800 border-green-200' case BusinessPartyStatusEnum.Inactive: return 'bg-gray-100 text-gray-800 border-gray-200' case BusinessPartyStatusEnum.Blocked: return 'bg-red-100 text-red-800 border-red-200' default: return 'bg-gray-100 text-gray-800 border-gray-200' } } export const getCustomerSegmentColor = (segment: CustomerSegmentEnum) => { switch (segment) { case CustomerSegmentEnum.Enterprise: return 'text-purple-600' case CustomerSegmentEnum.SMB: return 'text-blue-600' case CustomerSegmentEnum.Startup: return 'text-green-600' case CustomerSegmentEnum.Government: return 'text-orange-600' default: return 'text-gray-600' } } export const getCustomerSegmentText = (segment: CustomerSegmentEnum) => { switch (segment) { case CustomerSegmentEnum.Enterprise: return 'Kurumsal' case CustomerSegmentEnum.SMB: return 'KOBİ' case CustomerSegmentEnum.Startup: return 'Girişim' case CustomerSegmentEnum.Government: return 'Kamu' default: return 'Diğer' } } export const getLostReasonCategoryText = (category: LostReasonCategoryEnum) => { const categoryLabels = { [LostReasonCategoryEnum.Price]: 'Fiyat', [LostReasonCategoryEnum.Product]: 'Ürün', [LostReasonCategoryEnum.Service]: 'Hizmet', [LostReasonCategoryEnum.Competitor]: 'Rekabet', [LostReasonCategoryEnum.Timing]: 'Zamanlama', [LostReasonCategoryEnum.Budget]: 'Bütçe', } return categoryLabels[category] } export const getLostReasonCategoryColor = (category: LostReasonCategoryEnum) => { const categoryColors = { [LostReasonCategoryEnum.Price]: 'bg-red-100 text-red-800', [LostReasonCategoryEnum.Product]: 'bg-blue-100 text-blue-800', [LostReasonCategoryEnum.Service]: 'bg-green-100 text-green-800', [LostReasonCategoryEnum.Competitor]: 'bg-purple-100 text-purple-800', [LostReasonCategoryEnum.Timing]: 'bg-yellow-100 text-yellow-800', [LostReasonCategoryEnum.Budget]: 'bg-orange-100 text-orange-800', } return categoryColors[category] } export const getActivityTypeText = (type: CrmActivityTypeEnum) => { const typeLabels = { [CrmActivityTypeEnum.Call]: 'Telefon Görüşmesi', [CrmActivityTypeEnum.Email]: 'E-posta', [CrmActivityTypeEnum.Meeting]: 'Toplantı', [CrmActivityTypeEnum.Task]: 'Görev', [CrmActivityTypeEnum.Note]: 'Not', [CrmActivityTypeEnum.Demo]: 'Demo', [CrmActivityTypeEnum.Proposal]: 'Teklif', } return typeLabels[type] } export const getActivityTypeIcon = (type: CrmActivityTypeEnum) => { const typeIcons = { [CrmActivityTypeEnum.Call]: FaPhone, [CrmActivityTypeEnum.Email]: FaEnvelope, [CrmActivityTypeEnum.Meeting]: FaUsers, [CrmActivityTypeEnum.Task]: FaClock, [CrmActivityTypeEnum.Note]: FaEdit, [CrmActivityTypeEnum.Demo]: FaUsers, [CrmActivityTypeEnum.Proposal]: FaFileAlt, } return typeIcons[type] } export const getActivityStatusText = (status: ActivityStatusEnum) => { const statusLabels = { [ActivityStatusEnum.Planned]: 'Planlandı', [ActivityStatusEnum.InProgress]: 'Devam Ediyor', [ActivityStatusEnum.Completed]: 'Tamamlandı', [ActivityStatusEnum.Cancelled]: 'İptal Edildi', } return statusLabels[status] } export const getActivityStatusColor = (status: ActivityStatusEnum) => { const statusColors = { [ActivityStatusEnum.Planned]: 'bg-blue-100 text-blue-800 border-blue-200', [ActivityStatusEnum.InProgress]: 'bg-yellow-100 text-yellow-800 border-yellow-200', [ActivityStatusEnum.Completed]: 'bg-green-100 text-green-800 border-green-200', [ActivityStatusEnum.Cancelled]: 'bg-red-100 text-red-800 border-red-200', } return statusColors[status] } export const getOpportunityStageText = (stage: OpportunityStageEnum) => { const stageLabels = { [OpportunityStageEnum.Qualification]: 'Nitelendirme', [OpportunityStageEnum.NeedsAnalysis]: 'İhtiyaç Analizi', [OpportunityStageEnum.Proposal]: 'Teklif', [OpportunityStageEnum.Negotiation]: 'Müzakere', [OpportunityStageEnum.ClosedWon]: 'Kazanıldı', [OpportunityStageEnum.ClosedLost]: 'Kaybedildi', } return stageLabels[stage] } export const getOpportunityStageColor = (stage: OpportunityStageEnum) => { const stageColors = { [OpportunityStageEnum.Qualification]: 'bg-gray-100 text-gray-800 border-gray-200', [OpportunityStageEnum.NeedsAnalysis]: 'bg-blue-100 text-blue-800 border-blue-200', [OpportunityStageEnum.Proposal]: 'bg-yellow-100 text-yellow-800 border-yellow-200', [OpportunityStageEnum.Negotiation]: 'bg-orange-100 text-orange-800 border-orange-200', [OpportunityStageEnum.ClosedWon]: 'bg-green-100 text-green-800 border-green-200', [OpportunityStageEnum.ClosedLost]: 'bg-red-100 text-red-800 border-red-200', } return stageColors[stage] } export const getOpportunityProbabilityColor = (probability: number) => { if (probability >= 80) return 'text-green-600' if (probability >= 60) return 'text-yellow-600' if (probability >= 40) return 'text-orange-600' return 'text-red-600' } export const getOpportunityLeadSourceText = (source: string) => { const sourceLabels: Record = { WEBSITE: 'Web Sitesi', REFERRAL: 'Referans', CAMPAIGN: 'Kampanya', TRADE_SHOW: 'Fuar', COLD_CALL: 'Soğuk Arama', SOCIAL_MEDIA: 'Sosyal Medya', PARTNER: 'Partner', } return sourceLabels[source] || source } export const getSaleOrderStatusText = (status: SaleOrderStatusEnum) => { const statusLabels = { [SaleOrderStatusEnum.Draft]: 'Taslak', [SaleOrderStatusEnum.Confirmed]: 'Onaylandı', [SaleOrderStatusEnum.InProduction]: 'Üretimde', [SaleOrderStatusEnum.Ready]: 'Hazır', [SaleOrderStatusEnum.Shipped]: 'Kargoda', [SaleOrderStatusEnum.Delivered]: 'Teslim Edildi', [SaleOrderStatusEnum.Cancelled]: 'İptal Edildi', } return statusLabels[status] } export const getSaleOrderStatusColor = (status: SaleOrderStatusEnum) => { const statusColors = { [SaleOrderStatusEnum.Draft]: 'bg-gray-100 text-gray-800', [SaleOrderStatusEnum.Confirmed]: 'bg-blue-100 text-blue-800', [SaleOrderStatusEnum.InProduction]: 'bg-yellow-100 text-yellow-800', [SaleOrderStatusEnum.Ready]: 'bg-orange-100 text-orange-800', [SaleOrderStatusEnum.Shipped]: 'bg-purple-100 text-purple-800', [SaleOrderStatusEnum.Delivered]: 'bg-green-100 text-green-800', [SaleOrderStatusEnum.Cancelled]: 'bg-red-100 text-red-800', } return statusColors[status] } export const getSaleOrderItemStatusnfo = (status: SaleOrderItemStatusEnum) => { const statusInfo = { [SaleOrderItemStatusEnum.Pending]: { label: 'Beklemede', color: 'bg-gray-100 text-gray-800', icon: FaClock, iconColor: 'text-gray-500', }, [SaleOrderItemStatusEnum.Confirmed]: { label: 'Onaylandı', color: 'bg-blue-100 text-blue-800', icon: FaCheckCircle, iconColor: 'text-blue-500', }, [SaleOrderItemStatusEnum.InProduction]: { label: 'Üretimde', color: 'bg-yellow-100 text-yellow-800', icon: FaClock, iconColor: 'text-yellow-500', }, [SaleOrderItemStatusEnum.Ready]: { label: 'Hazır', color: 'bg-orange-100 text-orange-800', icon: FaCheckCircle, iconColor: 'text-orange-500', }, [SaleOrderItemStatusEnum.Shipped]: { label: 'Kargoda', color: 'bg-purple-100 text-purple-800', icon: FaTruck, iconColor: 'text-purple-500', }, [SaleOrderItemStatusEnum.Delivered]: { label: 'Teslim Edildi', color: 'bg-green-100 text-green-800', icon: FaCheckCircle, iconColor: 'text-green-500', }, } return statusInfo[status] } export const getBankAccountTypeText = (type: BankAccountTypeEnum) => { const typeLabels = { [BankAccountTypeEnum.Current]: 'Vadesiz', [BankAccountTypeEnum.Deposit]: 'Vadeli', [BankAccountTypeEnum.Credit]: 'Kredi', [BankAccountTypeEnum.Foreign]: 'Döviz', } return typeLabels[type] } export const getBankAccountTypeColor = (type: BankAccountTypeEnum) => { const typeColors = { [BankAccountTypeEnum.Current]: 'bg-blue-100 text-blue-800', [BankAccountTypeEnum.Deposit]: 'bg-green-100 text-green-800', [BankAccountTypeEnum.Credit]: 'bg-orange-100 text-orange-800', [BankAccountTypeEnum.Foreign]: 'bg-purple-100 text-purple-800', } return typeColors[type] } export const getTransactionTypeText = (type: BankTransactionTypeEnum) => { const typeLabels = { [BankTransactionTypeEnum.Deposit]: 'Para Yatırma', [BankTransactionTypeEnum.Withdrawal]: 'Para Çekme', [BankTransactionTypeEnum.Transfer]: 'Transfer', [BankTransactionTypeEnum.EFT]: 'EFT/Havale', [BankTransactionTypeEnum.Fee]: 'Komisyon', [BankTransactionTypeEnum.Interest]: 'Faiz', } return typeLabels[type] } export const getTransactionTypeColor = (type: BankTransactionTypeEnum) => { const typeColors = { [BankTransactionTypeEnum.Deposit]: 'bg-green-100 text-green-800', [BankTransactionTypeEnum.Withdrawal]: 'bg-red-100 text-red-800', [BankTransactionTypeEnum.Transfer]: 'bg-blue-100 text-blue-800', [BankTransactionTypeEnum.EFT]: 'bg-purple-100 text-purple-800', [BankTransactionTypeEnum.Fee]: 'bg-orange-100 text-orange-800', [BankTransactionTypeEnum.Interest]: 'bg-yellow-100 text-yellow-800', } return typeColors[type] } export const getTransactionStatusText = (status: TransactionStatusEnum) => { const statusLabels = { [TransactionStatusEnum.Pending]: 'Bekliyor', [TransactionStatusEnum.Completed]: 'Tamamlandı', [TransactionStatusEnum.Failed]: 'Başarısız', [TransactionStatusEnum.Cancelled]: 'İptal', } return statusLabels[status] } export const getTransactionStatusColor = (status: TransactionStatusEnum) => { const statusColors = { [TransactionStatusEnum.Pending]: 'bg-yellow-100 text-yellow-800', [TransactionStatusEnum.Completed]: 'bg-green-100 text-green-800', [TransactionStatusEnum.Failed]: 'bg-red-100 text-red-800', [TransactionStatusEnum.Cancelled]: 'bg-gray-100 text-gray-800', } return statusColors[status] } export const getFiDocumentTypeText = (type?: FiDocumentTypeEnum) => { if (!type) return '' const typeLabels = { [FiDocumentTypeEnum.Invoice]: 'Fatura', [FiDocumentTypeEnum.Waybill]: 'İrsaliye', [FiDocumentTypeEnum.Receipt]: 'Makbuz', [FiDocumentTypeEnum.Payment]: 'Ödeme', [FiDocumentTypeEnum.BankTransfer]: 'Banka Havalesi', [FiDocumentTypeEnum.CashMovement]: 'Kasa Hareketi', [FiDocumentTypeEnum.Check]: 'Çek', [FiDocumentTypeEnum.PromissoryNote]: 'Senet', [FiDocumentTypeEnum.Other]: 'Diğer', } return typeLabels[type] } export const getFiDocumentTypeColor = (type: FiDocumentTypeEnum) => { const typeColors = { [FiDocumentTypeEnum.Invoice]: 'bg-blue-100 text-blue-800', [FiDocumentTypeEnum.Payment]: 'bg-green-100 text-green-800', [FiDocumentTypeEnum.Receipt]: 'bg-purple-100 text-purple-800', [FiDocumentTypeEnum.Check]: 'bg-yellow-100 text-yellow-800', [FiDocumentTypeEnum.BankTransfer]: 'bg-indigo-100 text-indigo-800', [FiDocumentTypeEnum.CashMovement]: 'bg-orange-100 text-orange-800', [FiDocumentTypeEnum.Waybill]: 'bg-gray-100 text-gray-800', [FiDocumentTypeEnum.PromissoryNote]: 'bg-red-100 text-red-800', [FiDocumentTypeEnum.Other]: 'bg-gray-100 text-gray-800', } return typeColors[type] } export const getCashMovementTypeText = (type: CashMovementTypeEnum) => { return type === CashMovementTypeEnum.Income ? 'Giriş' : 'Çıkış' } export const getCashMovementTypeColor = (type: CashMovementTypeEnum) => { return type === CashMovementTypeEnum.Income ? 'bg-green-100 text-green-800' : 'bg-red-100 text-red-800' } export const getAccountTypeText = (type: AccountTypeEnum) => { const typeLabels = { [AccountTypeEnum.Customer]: 'Müşteri', [AccountTypeEnum.Supplier]: 'Tedarikçi', [AccountTypeEnum.Both]: 'Müşteri/Tedarikçi', [AccountTypeEnum.Other]: 'Diğer', } return typeLabels[type] } export const getAccountTypeColor = (type: AccountTypeEnum) => { const typeColors = { [AccountTypeEnum.Customer]: 'bg-blue-100 text-blue-800', [AccountTypeEnum.Supplier]: 'bg-green-100 text-green-800', [AccountTypeEnum.Both]: 'bg-purple-100 text-purple-800', [AccountTypeEnum.Other]: 'bg-gray-100 text-gray-800', } return typeColors[type] } export const getRiskGroupText = (riskGroup: RiskGroupEnum) => { const riskLabels = { [RiskGroupEnum.Low]: 'Düşük Risk', [RiskGroupEnum.Medium]: 'Orta Risk', [RiskGroupEnum.High]: 'Yüksek Risk', [RiskGroupEnum.Blocked]: 'Blokeli', } return riskLabels[riskGroup] } export const getRiskGroupColor = (riskGroup: RiskGroupEnum) => { const riskColors = { [RiskGroupEnum.Low]: 'bg-green-100 text-green-800', [RiskGroupEnum.Medium]: 'bg-yellow-100 text-yellow-800', [RiskGroupEnum.High]: 'bg-orange-100 text-orange-800', [RiskGroupEnum.Blocked]: 'bg-red-100 text-red-800', } return riskColors[riskGroup] } export const getInvoiceTypeText = (type: InvoiceTypeEnum) => { const typeLabels = { [InvoiceTypeEnum.Sales]: 'Satış', [InvoiceTypeEnum.Purchase]: 'Alış', [InvoiceTypeEnum.Return]: 'İade', [InvoiceTypeEnum.Proforma]: 'Proforma', } return typeLabels[type] } export const getInvoiceTypeColor = (type: InvoiceTypeEnum) => { const typeColors = { [InvoiceTypeEnum.Sales]: 'bg-green-100 text-green-800', [InvoiceTypeEnum.Purchase]: 'bg-blue-100 text-blue-800', [InvoiceTypeEnum.Return]: 'bg-orange-100 text-orange-800', [InvoiceTypeEnum.Proforma]: 'bg-purple-100 text-purple-800', } return typeColors[type] } export const getInvoiceStatusText = (status: InvoiceStatusEnum) => { const statusLabels = { [InvoiceStatusEnum.Draft]: 'Taslak', [InvoiceStatusEnum.Sent]: 'Gönderildi', [InvoiceStatusEnum.Approved]: 'Onaylandı', [InvoiceStatusEnum.Cancelled]: 'İptal', } return statusLabels[status] } export const getInvoiceStatusColor = (status: InvoiceStatusEnum) => { const statusColors = { [InvoiceStatusEnum.Draft]: 'bg-gray-100 text-gray-800', [InvoiceStatusEnum.Sent]: 'bg-blue-100 text-blue-800', [InvoiceStatusEnum.Approved]: 'bg-green-100 text-green-800', [InvoiceStatusEnum.Cancelled]: 'bg-red-100 text-red-800', } return statusColors[status] } export const getPaymentStatusText = (status: PaymentStatusEnum) => { const statusLabels = { [PaymentStatusEnum.Unpaid]: 'Ödenmemiş', [PaymentStatusEnum.PartiallyPaid]: 'Kısmi Ödeme', [PaymentStatusEnum.Paid]: 'Ödenmiş', [PaymentStatusEnum.Overdue]: 'Vadesi Geçmiş', } return statusLabels[status] } export const getPaymentStatusColor = (status: PaymentStatusEnum) => { const statusColors = { [PaymentStatusEnum.Unpaid]: 'bg-yellow-100 text-yellow-800', [PaymentStatusEnum.PartiallyPaid]: 'bg-orange-100 text-orange-800', [PaymentStatusEnum.Paid]: 'bg-green-100 text-green-800', [PaymentStatusEnum.Overdue]: 'bg-red-100 text-red-800', } return statusColors[status] } export const getPaymentMethodText = (method: PaymentMethodEnum) => { const labels = { [PaymentMethodEnum.Cash]: 'Nakit', [PaymentMethodEnum.BankTransfer]: 'Banka Havalesi', [PaymentMethodEnum.CreditCard]: 'Kredi Kartı', [PaymentMethodEnum.Check]: 'Çek', [PaymentMethodEnum.PromissoryNote]: 'Senet', } return labels[method] } export const getWaybillTypeColor = (type: WaybillTypeEnum) => { const typeColors = { [WaybillTypeEnum.Outgoing]: 'bg-green-100 text-green-800', [WaybillTypeEnum.Incoming]: 'bg-blue-100 text-blue-800', [WaybillTypeEnum.Transfer]: 'bg-purple-100 text-purple-800', [WaybillTypeEnum.Return]: 'bg-orange-100 text-orange-800', } return typeColors[type] } export const iconOptions = [ { value: '⭐', label: 'Yıldız' }, { value: '🏆', label: 'Kupa' }, { value: '🥇', label: 'Altın Madalya' }, { value: '🥈', label: 'Gümüş Madalya' }, { value: '🥉', label: 'Bronz Madalya' }, { value: '👑', label: 'Taç' }, { value: '💎', label: 'Elmas' }, { value: '💡', label: 'Ampul' }, { value: '🔥', label: 'Ateş' }, { value: '⚡', label: 'Şimşek' }, { value: '🎯', label: 'Hedef' }, { value: '📈', label: 'Grafik' }, { value: '🚀', label: 'Roket' }, { value: '💪', label: 'Güç' }, { value: '❤️', label: 'Kalp' }, ] export const getIconComponent = (iconName: string) => { switch (iconName) { case 'star': return FaStar case 'trophy': return FaTrophy case 'medal': return FaMedal case 'award': default: return FaAward } } export const getCostCenterTypeText = (type: CostCenterType): string => { const typeMap = { [CostCenterType.Revenue]: 'Gelir', [CostCenterType.Standard]: 'Standart', [CostCenterType.Discretionary]: 'İsteğe Bağlı', [CostCenterType.Investment]: 'Yatırım', [CostCenterType.Service]: 'Hizmet', [CostCenterType.Production]: 'Üretim', [CostCenterType.Support]: 'Destek', [CostCenterType.Administrative]: 'İdari', } return typeMap[type] || type } export const getCostCenterTypeColor = (type: CostCenterType): string => { const colorMap = { [CostCenterType.Revenue]: 'bg-green-100 text-green-800', [CostCenterType.Standard]: 'bg-blue-100 text-blue-800', [CostCenterType.Discretionary]: 'bg-purple-100 text-purple-800', [CostCenterType.Investment]: 'bg-orange-100 text-orange-800', [CostCenterType.Service]: 'bg-indigo-100 text-indigo-800', [CostCenterType.Production]: 'bg-red-100 text-red-800', [CostCenterType.Support]: 'bg-yellow-100 text-yellow-800', [CostCenterType.Administrative]: 'bg-gray-100 text-gray-800', } return colorMap[type] || 'bg-gray-100 text-gray-800' } export const getCampaignStatusColor = (status: CampaignStatusEnum) => { switch (status) { case CampaignStatusEnum.Draft: return 'bg-gray-100 text-gray-800' case CampaignStatusEnum.Active: return 'bg-green-100 text-green-800' case CampaignStatusEnum.Completed: return 'bg-blue-100 text-blue-800' default: return 'bg-gray-100 text-gray-800' } } export const getCampaignStatusText = (status: CampaignStatusEnum) => { switch (status) { case CampaignStatusEnum.Draft: return 'Taslak' case CampaignStatusEnum.Active: return 'Aktif' case CampaignStatusEnum.Completed: return 'Tamamlandı' default: return 'Bilinmiyor' } } export const getAssessorTypeText = (type: AssessorTypeEnum) => { switch (type) { case AssessorTypeEnum.Self: return 'Kendi' case AssessorTypeEnum.Manager: return 'Yönetici' case AssessorTypeEnum.Peer: return 'Meslektaş' case AssessorTypeEnum.Subordinate: return 'Ast' case AssessorTypeEnum.Customer: return 'Müşteri' case AssessorTypeEnum.OtherDepartment: return 'Diğer Departman' case AssessorTypeEnum.HRUpperManagement: return 'İK/Üst Yönetim' case AssessorTypeEnum.External: return 'Dış Paydaş' default: return 'Bilinmiyor' } } export const getAssessorTypeDescription = (type: AssessorTypeEnum) => { switch (type) { case AssessorTypeEnum.Self: return 'Sadece kendisi' case AssessorTypeEnum.Manager: return 'Sadece çalıştığı departmanın müdürü' case AssessorTypeEnum.Peer: return 'Sadece aynı departmanda çalıştığı eşit düzeydeki çalışanlar' case AssessorTypeEnum.Subordinate: return 'Aynı departmanda ama düzeyi değerlendirilen kişinin altında olan' case AssessorTypeEnum.Customer: return 'Sistemde kayıtlı müşterilerden seçilecek' case AssessorTypeEnum.External: return 'Sistemde kayıtlı olmayan harici değerlendirici' case AssessorTypeEnum.HRUpperManagement: return 'Sadece İK departmanında bir kişi seçilmeli' case AssessorTypeEnum.OtherDepartment: return 'Değerlendirilen kişinin çalıştığı departman dışında kalan tüm departman çalışanları' default: return '' } } export const getParticipantStatusColor = (status: ParticipantStatusEnum) => { switch (status) { case ParticipantStatusEnum.Invited: return 'bg-yellow-100 text-yellow-800' case ParticipantStatusEnum.Started: return 'bg-blue-100 text-blue-800' case ParticipantStatusEnum.Completed: return 'bg-green-100 text-green-800' default: return 'bg-gray-100 text-gray-800' } } export const getParticipantStatusText = (status: ParticipantStatusEnum) => { switch (status) { case ParticipantStatusEnum.Invited: return 'Davet Edildi' case ParticipantStatusEnum.Started: return 'Başladı' case ParticipantStatusEnum.Completed: return 'Tamamlandı' default: return 'Bilinmiyor' } } export const getEmployeeStatusText = (status: EmployeeStatusEnum) => { switch (status) { case EmployeeStatusEnum.Active: return 'Aktif' case EmployeeStatusEnum.Inactive: return 'Pasif' case EmployeeStatusEnum.OnLeave: return 'İzinli' case EmployeeStatusEnum.Suspended: return 'Askıda' case EmployeeStatusEnum.Terminated: return 'İşten Çıkarılmış' default: return 'Bilinmiyor' } } export const getEmployeeStatusColor = (status: EmployeeStatusEnum) => { switch (status) { case EmployeeStatusEnum.Active: return 'bg-green-100 text-green-800' case EmployeeStatusEnum.Inactive: return 'bg-gray-100 text-gray-800' case EmployeeStatusEnum.OnLeave: return 'bg-yellow-100 text-yellow-800' case EmployeeStatusEnum.Suspended: return 'bg-red-100 text-red-800' case EmployeeStatusEnum.Terminated: return 'bg-red-100 text-red-800' default: return 'bg-gray-100 text-gray-800' } } export const getEmployeeStatusIcon = (status: EmployeeStatusEnum) => { switch (status) { case EmployeeStatusEnum.Active: return case EmployeeStatusEnum.Inactive: return case EmployeeStatusEnum.OnLeave: return case EmployeeStatusEnum.Suspended: return case EmployeeStatusEnum.Terminated: return default: return } } export const getEmploymentTypeColor = (type: EmploymentTypeEnum) => { switch (type) { case EmploymentTypeEnum.FullTime: return 'text-green-600' case EmploymentTypeEnum.PartTime: return 'text-blue-600' case EmploymentTypeEnum.Contract: return 'text-orange-600' case EmploymentTypeEnum.Temporary: return 'text-yellow-600' case EmploymentTypeEnum.Intern: return 'text-purple-600' case EmploymentTypeEnum.Consultant: return 'text-red-600' default: return 'text-gray-600' } } export const getEmploymentTypeText = (type: EmploymentTypeEnum) => { switch (type) { case EmploymentTypeEnum.FullTime: return 'Tam Zamanlı' case EmploymentTypeEnum.PartTime: return 'Yarı Zamanlı' case EmploymentTypeEnum.Contract: return 'Sözleşmeli' case EmploymentTypeEnum.Temporary: return 'Geçici' case EmploymentTypeEnum.Intern: return 'Stajyer' case EmploymentTypeEnum.Consultant: return 'Danışman' default: return 'Belirtilmemiş' } } export const getJobLevelText = (level: JobLevelEnum) => { switch (level) { case JobLevelEnum.Entry: return 'Giriş Seviyesi' case JobLevelEnum.Junior: return 'Junior' case JobLevelEnum.Mid: return 'Orta Seviye' case JobLevelEnum.Senior: return 'Senior' case JobLevelEnum.Lead: return 'Lider' case JobLevelEnum.Manager: return 'Yönetici' case JobLevelEnum.Director: return 'Direktör' case JobLevelEnum.Executive: return 'Üst Düzey Yönetici' default: return 'Belirlenmemiş' } } export const getJobLevelColor = (level: JobLevelEnum) => { switch (level) { case JobLevelEnum.Entry: return 'bg-gray-100 text-gray-800' case JobLevelEnum.Junior: return 'bg-blue-100 text-blue-800' case JobLevelEnum.Mid: return 'bg-green-100 text-green-800' case JobLevelEnum.Senior: return 'bg-purple-100 text-purple-800' case JobLevelEnum.Lead: return 'bg-orange-100 text-orange-800' case JobLevelEnum.Manager: return 'bg-red-100 text-red-800' case JobLevelEnum.Director: return 'bg-indigo-100 text-indigo-800' case JobLevelEnum.Executive: return 'bg-pink-100 text-pink-800' default: return 'bg-gray-100 text-gray-800' } } export const getLeaveStatusColor = (status: LeaveStatusEnum) => { switch (status) { case LeaveStatusEnum.Pending: return 'bg-yellow-100 text-yellow-800' case LeaveStatusEnum.Approved: return 'bg-green-100 text-green-800' case LeaveStatusEnum.Rejected: return 'bg-red-100 text-red-800' case LeaveStatusEnum.Cancelled: return 'bg-gray-100 text-gray-800' default: return 'bg-gray-100 text-gray-800' } } export const getLeaveStatusText = (status: LeaveStatusEnum) => { switch (status) { case LeaveStatusEnum.Pending: return 'Beklemede' case LeaveStatusEnum.Approved: return 'Onaylandı' case LeaveStatusEnum.Rejected: return 'Reddedildi' case LeaveStatusEnum.Cancelled: return 'İptal Edildi' default: return 'Bilinmiyor' } } export const getLeaveTypeText = (type: LeaveTypeEnum) => { switch (type) { case LeaveTypeEnum.Annual: return 'Yıllık İzin' case LeaveTypeEnum.Sick: return 'Hastalık İzni' case LeaveTypeEnum.Maternity: return 'Doğum İzni' case LeaveTypeEnum.Paternity: return 'Babalık İzni' case LeaveTypeEnum.Personal: return 'Kişisel İzin' case LeaveTypeEnum.Emergency: return 'Acil Durum İzni' case LeaveTypeEnum.Study: return 'Eğitim İzni' case LeaveTypeEnum.Unpaid: return 'Ücretsiz İzin' default: return 'Diğer' } } export const getPayrollStatusColor = (status: PayrollStatusEnum) => { switch (status) { case PayrollStatusEnum.Draft: return 'bg-gray-100 text-gray-800' case PayrollStatusEnum.Calculated: return 'bg-blue-100 text-blue-800' case PayrollStatusEnum.Approved: return 'bg-green-100 text-green-800' case PayrollStatusEnum.Paid: return 'bg-purple-100 text-purple-800' case PayrollStatusEnum.Cancelled: return 'bg-red-100 text-red-800' default: return 'bg-gray-100 text-gray-800' } } export const getPayrollStatusText = (status: PayrollStatusEnum) => { switch (status) { case PayrollStatusEnum.Draft: return 'Taslak' case PayrollStatusEnum.Calculated: return 'Hesaplandı' case PayrollStatusEnum.Approved: return 'Onaylandı' case PayrollStatusEnum.Paid: return 'Ödendi' case PayrollStatusEnum.Cancelled: return 'İptal Edildi' default: return 'Bilinmiyor' } } export const getNotificationStatusColor = (status: NotificationStatusEnum) => { const colors = { [NotificationStatusEnum.Open]: 'bg-gray-100 text-gray-800', [NotificationStatusEnum.Assigned]: 'bg-blue-100 text-blue-800', [NotificationStatusEnum.InProgress]: 'bg-orange-100 text-orange-800', [NotificationStatusEnum.Resolved]: 'bg-green-100 text-green-800', [NotificationStatusEnum.Closed]: 'bg-gray-100 text-gray-800', [NotificationStatusEnum.Rejected]: 'bg-red-100 text-red-800', } return colors[status] } export const getNotificationStatusIcon = (status: NotificationStatusEnum) => { const icons = { [NotificationStatusEnum.Open]: , [NotificationStatusEnum.Assigned]: , [NotificationStatusEnum.InProgress]: , [NotificationStatusEnum.Resolved]: , [NotificationStatusEnum.Closed]: , [NotificationStatusEnum.Rejected]: , } return icons[status] } export const getNotificationStatusText = (status: NotificationStatusEnum) => { const statuses = { [NotificationStatusEnum.Open]: 'Açık', [NotificationStatusEnum.Assigned]: 'Atandı', [NotificationStatusEnum.InProgress]: 'Devam Ediyor', [NotificationStatusEnum.Resolved]: 'Çözüldü', [NotificationStatusEnum.Closed]: 'Kapatıldı', [NotificationStatusEnum.Rejected]: 'Reddedildi', } return statuses[status] } export const getWorkOrderStatusText = (status: WorkOrderStatusEnum) => { const statuses = { [WorkOrderStatusEnum.Created]: 'Oluşturuldu', [WorkOrderStatusEnum.Planned]: 'Planlandı', [WorkOrderStatusEnum.Released]: 'Serbest Bırakıldı', [WorkOrderStatusEnum.InProgress]: 'Devam Ediyor', [WorkOrderStatusEnum.OnHold]: 'Beklemede', [WorkOrderStatusEnum.Completed]: 'Tamamlandı', [WorkOrderStatusEnum.Cancelled]: 'İptal Edildi', } return statuses[status] } export const getWorkOrderStatusColor = (status: WorkOrderStatusEnum) => { const colors = { [WorkOrderStatusEnum.Created]: 'bg-gray-100 text-gray-800', [WorkOrderStatusEnum.Planned]: 'bg-blue-100 text-blue-800', [WorkOrderStatusEnum.Released]: 'bg-purple-100 text-purple-800', [WorkOrderStatusEnum.InProgress]: 'bg-orange-100 text-orange-800', [WorkOrderStatusEnum.OnHold]: 'bg-yellow-100 text-yellow-800', [WorkOrderStatusEnum.Completed]: 'bg-green-100 text-green-800', [WorkOrderStatusEnum.Cancelled]: 'bg-red-100 text-red-800', } return colors[status] } export const getWorkOrderStatusIcon = (status: WorkOrderStatusEnum) => { const icons = { [WorkOrderStatusEnum.Created]: null, [WorkOrderStatusEnum.Planned]: null, [WorkOrderStatusEnum.Released]: null, [WorkOrderStatusEnum.InProgress]: , [WorkOrderStatusEnum.OnHold]: , [WorkOrderStatusEnum.Completed]: , [WorkOrderStatusEnum.Cancelled]: , } return icons[status] } export const getFaultTypeText = (type: FaultTypeEnum) => { const types = { [FaultTypeEnum.Mechanical]: 'Mekanik', [FaultTypeEnum.Electrical]: 'Elektrik', [FaultTypeEnum.Hydraulic]: 'Hidrolik', [FaultTypeEnum.Pneumatic]: 'Pnömatik', [FaultTypeEnum.Software]: 'Yazılım', [FaultTypeEnum.Safety]: 'Güvenlik', [FaultTypeEnum.Performance]: 'Performans', [FaultTypeEnum.Other]: 'Diğer', } return types[type] } export const getFaultTypeColor = (type: FaultTypeEnum) => { const colors = { [FaultTypeEnum.Mechanical]: 'bg-blue-100 text-blue-800', [FaultTypeEnum.Electrical]: 'bg-yellow-100 text-yellow-800', [FaultTypeEnum.Hydraulic]: 'bg-green-100 text-green-800', [FaultTypeEnum.Pneumatic]: 'bg-purple-100 text-purple-800', [FaultTypeEnum.Software]: 'bg-indigo-100 text-indigo-800', [FaultTypeEnum.Safety]: 'bg-red-100 text-red-800', [FaultTypeEnum.Performance]: 'bg-orange-100 text-orange-800', [FaultTypeEnum.Other]: 'bg-gray-100 text-gray-800', } return colors[type] } export const getCriticalityLevelText = (criticality: CriticalityLevelEnum) => { const levels = { [CriticalityLevelEnum.Low]: 'Düşük', [CriticalityLevelEnum.Medium]: 'Orta', [CriticalityLevelEnum.High]: 'Yüksek', [CriticalityLevelEnum.Critical]: 'Kritik', } return levels[criticality] } export const getCriticalityLevelColor = (severity: CriticalityLevelEnum) => { const colors = { [CriticalityLevelEnum.Low]: 'border-l-blue-500', [CriticalityLevelEnum.Medium]: 'border-l-yellow-500', [CriticalityLevelEnum.High]: 'border-l-orange-500', [CriticalityLevelEnum.Critical]: 'border-l-red-500', } return colors[severity] } export const getMaintenancePlanTypeText = (type: MaintenancePlanTypeEnum) => { const types = { [MaintenancePlanTypeEnum.Preventive]: 'Önleyici', [MaintenancePlanTypeEnum.Corrective]: 'Düzeltici', [MaintenancePlanTypeEnum.Predictive]: 'Tahminsel', [MaintenancePlanTypeEnum.Condition]: 'Duruma Bağlı', } return types[type] } export const getMaintenancePlanTypeColor = (type: MaintenancePlanTypeEnum) => { const colors = { [MaintenancePlanTypeEnum.Preventive]: 'bg-green-100 text-green-800', [MaintenancePlanTypeEnum.Corrective]: 'bg-red-100 text-red-800', [MaintenancePlanTypeEnum.Predictive]: 'bg-blue-100 text-blue-800', [MaintenancePlanTypeEnum.Condition]: 'bg-yellow-100 text-yellow-800', } return colors[type] } export const getFrequencyUnitText = (unit: FrequencyUnitEnum) => { const units = { [FrequencyUnitEnum.Days]: 'Günlük', [FrequencyUnitEnum.Weeks]: 'Haftalık', [FrequencyUnitEnum.Months]: 'Aylık', [FrequencyUnitEnum.Years]: 'Yıllık', [FrequencyUnitEnum.Hours]: 'Saatlik', [FrequencyUnitEnum.Cycles]: 'Döngü', } return units[unit] } export const getFrequencyUnitTextByFrequency = (frequency: number, unit: FrequencyUnitEnum) => { const units = { [FrequencyUnitEnum.Days]: 'Günlük', [FrequencyUnitEnum.Weeks]: 'Haftalık', [FrequencyUnitEnum.Months]: 'Aylık', [FrequencyUnitEnum.Years]: 'Yıllık', [FrequencyUnitEnum.Hours]: 'Saatlik', [FrequencyUnitEnum.Cycles]: 'Döngü', } return frequency === 1 ? units[unit] : `${frequency} ${units[unit]}` } export const getTeamRoleText = (role: TeamRoleEnum) => { const roles = { [TeamRoleEnum.Member]: 'Üye', [TeamRoleEnum.Specialist]: 'Uzman', [TeamRoleEnum.Lead]: 'Lider', [TeamRoleEnum.Manager]: 'Yönetici', } return roles[role] } export const getTeamRoleColor = (role: TeamRoleEnum) => { const colors = { [TeamRoleEnum.Member]: 'bg-blue-100 text-blue-800', [TeamRoleEnum.Specialist]: 'bg-green-100 text-green-800', [TeamRoleEnum.Lead]: 'bg-purple-100 text-purple-800', [TeamRoleEnum.Manager]: 'bg-red-100 text-red-800', } return colors[role] } export const getTeamRoleIcon = (role: TeamRoleEnum) => { const icons = { [TeamRoleEnum.Member]: , [TeamRoleEnum.Specialist]: , [TeamRoleEnum.Lead]: , [TeamRoleEnum.Manager]: , } return icons[role] } export const getWorkOrderTypeText = (type: WorkOrderTypeEnum) => { const types = { [WorkOrderTypeEnum.Preventive]: 'Önleyici', [WorkOrderTypeEnum.Corrective]: 'Düzeltici', [WorkOrderTypeEnum.Emergency]: 'Acil', [WorkOrderTypeEnum.Inspection]: 'İnceleme', [WorkOrderTypeEnum.Calibration]: 'Kalibrasyon', } return types[type] } export const getWorkOrderTypeColor = (type: WorkOrderTypeEnum) => { const colors = { [WorkOrderTypeEnum.Preventive]: 'bg-green-100 text-green-800', [WorkOrderTypeEnum.Corrective]: 'bg-blue-100 text-blue-800', [WorkOrderTypeEnum.Emergency]: 'bg-red-100 text-red-800', [WorkOrderTypeEnum.Inspection]: 'bg-purple-100 text-purple-800', [WorkOrderTypeEnum.Calibration]: 'bg-yellow-100 text-yellow-800', } return colors[type] } export const getWorkCenterStatusText = (status: WorkCenterStatusEnum) => { const statuses = { [WorkCenterStatusEnum.Operational]: 'Operasyonel', [WorkCenterStatusEnum.UnderMaintenance]: 'Bakımda', [WorkCenterStatusEnum.OutOfOrder]: 'Arızalı', [WorkCenterStatusEnum.Retired]: 'Emekli', } return statuses[status] } export const getWorkCenterStatusColor = (status: WorkCenterStatusEnum) => { const colors = { [WorkCenterStatusEnum.Operational]: 'bg-green-100 text-green-800', [WorkCenterStatusEnum.UnderMaintenance]: 'bg-yellow-100 text-yellow-800', [WorkCenterStatusEnum.OutOfOrder]: 'bg-red-100 text-red-800', [WorkCenterStatusEnum.Retired]: 'bg-gray-100 text-gray-800', } return colors[status] } export const getWorkCenterStatusIcon = (status: WorkCenterStatusEnum) => { switch (status) { case WorkCenterStatusEnum.Operational: return case WorkCenterStatusEnum.UnderMaintenance: return case WorkCenterStatusEnum.OutOfOrder: return case WorkCenterStatusEnum.Retired: return default: return } } export const getRequirementSourceTypeText = (sourceType: RequirementSourceTypeEnum) => { const sourceLabels = { [RequirementSourceTypeEnum.SalesOrder]: 'Satış Siparişi', [RequirementSourceTypeEnum.Forecast]: 'Tahmin', [RequirementSourceTypeEnum.SafetyStock]: 'Güvenlik Stoku', [RequirementSourceTypeEnum.ProductionOrder]: 'Üretim Emri', } return sourceLabels[sourceType] } export const getRequirementSourceTypeColor = (sourceType: RequirementSourceTypeEnum) => { const sourceColors = { [RequirementSourceTypeEnum.SalesOrder]: 'bg-blue-100 text-blue-800', [RequirementSourceTypeEnum.Forecast]: 'bg-green-100 text-green-800', [RequirementSourceTypeEnum.SafetyStock]: 'bg-orange-100 text-orange-800', [RequirementSourceTypeEnum.ProductionOrder]: 'bg-purple-100 text-purple-800', } return sourceColors[sourceType] } export const getProductionOrderStatusColor = (status: ProductionOrderStatusEnum) => { switch (status) { case ProductionOrderStatusEnum.Created: return 'bg-gray-100 text-gray-800' case ProductionOrderStatusEnum.Released: return 'bg-blue-100 text-blue-800' case ProductionOrderStatusEnum.InProgress: return 'bg-yellow-100 text-yellow-800' case ProductionOrderStatusEnum.Completed: return 'bg-green-100 text-green-800' case ProductionOrderStatusEnum.Cancelled: return 'bg-red-100 text-red-800' case ProductionOrderStatusEnum.OnHold: return 'bg-orange-100 text-orange-800' default: return 'bg-gray-100 text-gray-800' } } export const getProductionOrderStatusText = (status: ProductionOrderStatusEnum) => { switch (status) { case ProductionOrderStatusEnum.Created: return 'Oluşturuldu' case ProductionOrderStatusEnum.Released: return 'Serbest Bırakıldı' case ProductionOrderStatusEnum.InProgress: return 'Devam Ediyor' case ProductionOrderStatusEnum.Completed: return 'Tamamlandı' case ProductionOrderStatusEnum.Cancelled: return 'İptal Edildi' case ProductionOrderStatusEnum.OnHold: return 'Beklemede' default: return 'Bilinmiyor' } } export const getProductionOrderStatusIcon = (status: ProductionOrderStatusEnum) => { switch (status) { case ProductionOrderStatusEnum.Created: return case ProductionOrderStatusEnum.Released: return case ProductionOrderStatusEnum.InProgress: return case ProductionOrderStatusEnum.Completed: return case ProductionOrderStatusEnum.Cancelled: return case ProductionOrderStatusEnum.OnHold: return default: return } } export const getProgressPercentage = (order: MrpProductionOrder) => { if (order.plannedQuantity === 0) return 0 return Math.round((order.confirmedQuantity / order.plannedQuantity) * 100) } export const getProgressColor = (percentage: number) => { if (percentage >= 90) return 'bg-green-500' if (percentage >= 70) return 'bg-blue-500' if (percentage >= 50) return 'bg-yellow-500' if (percentage >= 25) return 'bg-orange-500' return 'bg-red-500' } export const getProductionOrderTypeText = (type: ProductionOrderTypeEnum) => { switch (type) { case ProductionOrderTypeEnum.Standard: return 'Standart' case ProductionOrderTypeEnum.Rework: return 'Yeniden İşleme' case ProductionOrderTypeEnum.Maintenance: return 'Bakım' case ProductionOrderTypeEnum.Sample: return 'Numune' default: return '-' } } export const getRecommendationStatusText = (status: RecommendationStatusEnum) => { const statusLabels = { [RecommendationStatusEnum.Open]: 'Açık', [RecommendationStatusEnum.Implemented]: 'Uygulandı', [RecommendationStatusEnum.Rejected]: 'Reddedildi', [RecommendationStatusEnum.Expired]: 'Süresi Doldu', } return statusLabels[status] } export const getRecommendationStatusColor = (status: RecommendationStatusEnum) => { const statusColors = { [RecommendationStatusEnum.Open]: 'bg-blue-100 text-blue-800', [RecommendationStatusEnum.Implemented]: 'bg-green-100 text-green-800', [RecommendationStatusEnum.Rejected]: 'bg-red-100 text-red-800', [RecommendationStatusEnum.Expired]: 'bg-gray-100 text-gray-800', } return statusColors[status] } export const getPsActivityTypeText = (type: PsActivityTypeEnum): string => { const labels: Record = { [PsActivityTypeEnum.WorkLog]: 'İş Kaydı', [PsActivityTypeEnum.StatusUpdate]: 'Durum Güncelleme', [PsActivityTypeEnum.Issue]: 'Sorun', [PsActivityTypeEnum.Meeting]: 'Toplantı', [PsActivityTypeEnum.Review]: 'İnceleme', [PsActivityTypeEnum.TaskCreated]: 'Görev Oluşturma', [PsActivityTypeEnum.TaskUpdated]: 'Görev Güncelleme', [PsActivityTypeEnum.TaskCompleted]: 'Görev Tamamlama', [PsActivityTypeEnum.CommentAdded]: 'Yorum Ekleme', [PsActivityTypeEnum.FileUploaded]: 'Dosya Yükleme', [PsActivityTypeEnum.StatusChanged]: 'Durum Değişikliği', [PsActivityTypeEnum.AssignmentChanged]: 'Atama Değişikliği', [PsActivityTypeEnum.MeetingScheduled]: 'Toplantı Planlama', } return labels[type] || type } export const getPsActivityTypeIcon = (activityType: PsActivityTypeEnum) => { const icons: Record>> = { [PsActivityTypeEnum.WorkLog]: FaFileAlt, [PsActivityTypeEnum.StatusUpdate]: FaCog, [PsActivityTypeEnum.Issue]: FaFlask, [PsActivityTypeEnum.Meeting]: FaVideo, [PsActivityTypeEnum.Review]: FaEye, [PsActivityTypeEnum.TaskCreated]: FaPlus, [PsActivityTypeEnum.TaskUpdated]: FaEdit, [PsActivityTypeEnum.TaskCompleted]: FaCog, [PsActivityTypeEnum.CommentAdded]: FaComment, [PsActivityTypeEnum.FileUploaded]: FaFileAlt, [PsActivityTypeEnum.StatusChanged]: FaCog, [PsActivityTypeEnum.AssignmentChanged]: FaUsers, [PsActivityTypeEnum.MeetingScheduled]: FaVideo, } return icons[activityType] || FaCog } export const getPsActivityTypeColor = (activityType: PsActivityTypeEnum): string => { const colors: Record = { [PsActivityTypeEnum.WorkLog]: 'bg-gray-100 text-gray-800', [PsActivityTypeEnum.StatusUpdate]: 'bg-blue-100 text-blue-800', [PsActivityTypeEnum.Issue]: 'bg-red-100 text-red-800', [PsActivityTypeEnum.Meeting]: 'bg-teal-100 text-teal-800', [PsActivityTypeEnum.Review]: 'bg-purple-100 text-purple-800', [PsActivityTypeEnum.TaskCreated]: 'bg-green-100 text-green-800', [PsActivityTypeEnum.TaskUpdated]: 'bg-blue-100 text-blue-800', [PsActivityTypeEnum.TaskCompleted]: 'bg-purple-100 text-purple-800', [PsActivityTypeEnum.CommentAdded]: 'bg-yellow-100 text-yellow-800', [PsActivityTypeEnum.FileUploaded]: 'bg-indigo-100 text-indigo-800', [PsActivityTypeEnum.StatusChanged]: 'bg-orange-100 text-orange-800', [PsActivityTypeEnum.AssignmentChanged]: 'bg-pink-100 text-pink-800', [PsActivityTypeEnum.MeetingScheduled]: 'bg-teal-100 text-teal-800', } return colors[activityType] || 'bg-gray-100 text-gray-800' } export const getCostTimeTrackingStatusText = (status: ProjectCostTrackingStatus) => { switch (status) { case ProjectCostTrackingStatus.OnTrack: return 'Planında' case ProjectCostTrackingStatus.AtRisk: return 'Risk Altında' case ProjectCostTrackingStatus.Delayed: return 'Gecikmiş' case ProjectCostTrackingStatus.Completed: return 'Tamamlandı' default: return 'Bilinmeyen' } } export const getCostTimeTrackingStatusColor = (status: ProjectCostTrackingStatus) => { switch (status) { case ProjectCostTrackingStatus.OnTrack: return 'bg-green-100 text-green-800' case ProjectCostTrackingStatus.AtRisk: return 'bg-yellow-100 text-yellow-800' case ProjectCostTrackingStatus.Delayed: return 'bg-red-100 text-red-800' case ProjectCostTrackingStatus.Completed: return 'bg-blue-100 text-blue-800' default: return 'bg-gray-100 text-gray-800' } } export const getCostTimeTrackingStatusIcon = (status: ProjectCostTrackingStatus) => { switch (status) { case ProjectCostTrackingStatus.OnTrack: return FaCheckCircle case ProjectCostTrackingStatus.AtRisk: return FaExclamationCircle case ProjectCostTrackingStatus.Delayed: return FaExclamationCircle case ProjectCostTrackingStatus.Completed: return FaCheckCircle default: return FaExclamationCircle } } export const getPsDocumentTypeText = (type: PsDocumentTypeEnum): string => { const typeLabels = { [PsDocumentTypeEnum.Specification]: 'Şartname', [PsDocumentTypeEnum.Design]: 'Tasarım', [PsDocumentTypeEnum.Contract]: 'Sözleşme', [PsDocumentTypeEnum.Report]: 'Rapor', [PsDocumentTypeEnum.Manual]: 'Kılavuz', [PsDocumentTypeEnum.Other]: 'Diğer', } return typeLabels[type] || type } export const getPhaseStatusColor = (status: PhaseStatusEnum) => { switch (status) { case PhaseStatusEnum.NotStarted: return 'bg-blue-100 text-blue-800' case PhaseStatusEnum.InProgress: return 'bg-yellow-100 text-yellow-800' case PhaseStatusEnum.Completed: return 'bg-green-100 text-green-800' case PhaseStatusEnum.OnHold: return 'bg-orange-100 text-orange-800' case PhaseStatusEnum.Cancelled: return 'bg-red-100 text-red-800' default: return 'bg-gray-100 text-gray-800' } } export const getPhaseStatusText = (status: PhaseStatusEnum) => { switch (status) { case PhaseStatusEnum.NotStarted: return 'Başlamadı' case PhaseStatusEnum.InProgress: return 'Devam Ediyor' case PhaseStatusEnum.Completed: return 'Tamamlandı' case PhaseStatusEnum.OnHold: return 'Beklemede' case PhaseStatusEnum.Cancelled: return 'İptal Edildi' default: return 'Bilinmiyor' } } export const getPhaseStatusIcon = (status: PhaseStatusEnum) => { switch (status) { case PhaseStatusEnum.NotStarted: return case PhaseStatusEnum.InProgress: return case PhaseStatusEnum.Completed: return case PhaseStatusEnum.OnHold: return case PhaseStatusEnum.Cancelled: return default: return } } export const getProjectStatusText = (status: ProjectStatusEnum) => { switch (status) { case ProjectStatusEnum.Planning: return 'Planlama' case ProjectStatusEnum.Active: return 'Aktif' case ProjectStatusEnum.OnHold: return 'Beklemede' case ProjectStatusEnum.Completed: return 'Tamamlandı' case ProjectStatusEnum.Cancelled: return 'İptal Edildi' default: return 'Bilinmiyor' } } export const getProjectStatusColor = (status: ProjectStatusEnum) => { switch (status) { case ProjectStatusEnum.Planning: return 'bg-blue-100 text-blue-800 border-blue-200' case ProjectStatusEnum.Active: return 'bg-green-100 text-green-800 border-green-200' case ProjectStatusEnum.OnHold: return 'bg-yellow-100 text-yellow-800 border-yellow-200' case ProjectStatusEnum.Completed: return 'bg-emerald-100 text-emerald-800 border-emerald-200' case ProjectStatusEnum.Cancelled: return 'bg-red-100 text-red-800 border-red-200' default: return 'bg-gray-100 text-gray-800 border-gray-200' } } export const getProjectStatusIcon = (status: ProjectStatusEnum) => { switch (status) { case ProjectStatusEnum.Planning: return case ProjectStatusEnum.Active: return case ProjectStatusEnum.OnHold: return case ProjectStatusEnum.Completed: return case ProjectStatusEnum.Cancelled: return default: return } } export const getProjectTypeText = (type: ProjectTypeEnum) => { switch (type) { case ProjectTypeEnum.Internal: return 'İç Proje' case ProjectTypeEnum.Customer: return 'Müşteri Projesi' case ProjectTypeEnum.Research: return 'Ar-Ge Projesi' case ProjectTypeEnum.Maintenance: return 'Bakım Projesi' default: return 'Diğer' } } export const getProjectTypeColor = (type: ProjectTypeEnum) => { switch (type) { case ProjectTypeEnum.Internal: return 'bg-purple-100 text-purple-800 border-purple-200' case ProjectTypeEnum.Customer: return 'bg-blue-100 text-blue-800 border-blue-200' case ProjectTypeEnum.Research: return 'bg-green-100 text-green-800 border-green-200' case ProjectTypeEnum.Maintenance: return 'bg-orange-100 text-orange-800 border-orange-200' default: return 'bg-gray-100 text-gray-800 border-gray-200' } } export const getPhaseCategoryText = (category: PhaseCategoryEnum) => { switch (category) { case PhaseCategoryEnum.Planning: return 'Planlama' case PhaseCategoryEnum.Development: return 'Yürütme' case PhaseCategoryEnum.Testing: return 'İzleme' case PhaseCategoryEnum.Deployment: return 'Kapanış' case PhaseCategoryEnum.Design: return 'Diğer' default: return 'Bilinmeyen' } } export const getPhaseCategoryColor = (category: PhaseCategoryEnum) => { switch (category) { case PhaseCategoryEnum.Planning: return 'bg-purple-100 text-purple-800' case PhaseCategoryEnum.Development: return 'bg-blue-100 text-blue-800' case PhaseCategoryEnum.Testing: return 'bg-orange-100 text-orange-800' case PhaseCategoryEnum.Deployment: return 'bg-green-100 text-green-800' case PhaseCategoryEnum.Design: return 'bg-pink-100 text-pink-800' default: return 'bg-gray-100 text-gray-800' } } export const getTaskStatusText = (status: TaskStatusEnum) => { switch (status) { case TaskStatusEnum.NotStarted: return 'Başlanmadı' case TaskStatusEnum.InProgress: return 'Devam Ediyor' case TaskStatusEnum.Completed: return 'Tamamlandı' case TaskStatusEnum.OnHold: return 'Beklemede' case TaskStatusEnum.Cancelled: return 'İptal Edildi' default: return 'Bilinmiyor' } } export const getTaskStatusColor = (status: TaskStatusEnum) => { switch (status) { case TaskStatusEnum.NotStarted: return 'bg-gray-100 text-gray-800' case TaskStatusEnum.InProgress: return 'bg-blue-100 text-blue-800' case TaskStatusEnum.Completed: return 'bg-green-100 text-green-800' case TaskStatusEnum.OnHold: return 'bg-yellow-100 text-yellow-800' case TaskStatusEnum.Cancelled: return 'bg-red-100 text-red-800' default: return 'bg-gray-100 text-gray-800' } } export const getTaskStatusIcon = (status: TaskStatusEnum) => { switch (status) { case TaskStatusEnum.NotStarted: return case TaskStatusEnum.InProgress: return case TaskStatusEnum.Completed: return case TaskStatusEnum.OnHold: return case TaskStatusEnum.Cancelled: return default: return } } export const getTaskTypeText = (taskType: TaskTypeEnum) => { switch (taskType) { case TaskTypeEnum.Development: return 'Geliştirme' case TaskTypeEnum.Testing: return 'Test' case TaskTypeEnum.Documentation: return 'Dokümantasyon' case TaskTypeEnum.Review: return 'İnceleme' case TaskTypeEnum.Deployment: return 'Dağıtım' case TaskTypeEnum.Meeting: return 'Toplantı' default: return 'Bilinmiyor' } } export const getTaskTypeColor = (taskType: TaskTypeEnum) => { switch (taskType) { case TaskTypeEnum.Development: return 'bg-purple-100 text-purple-800' case TaskTypeEnum.Testing: return 'bg-green-100 text-green-800' case TaskTypeEnum.Documentation: return 'bg-blue-100 text-blue-800' case TaskTypeEnum.Review: return 'bg-yellow-100 text-yellow-800' case TaskTypeEnum.Deployment: return 'bg-red-100 text-red-800' case TaskTypeEnum.Meeting: return 'bg-gray-100 text-gray-800' default: return 'bg-gray-100 text-gray-800' } } export const getRiskCategoryText = (category: RiskCategoryEnum): string => { const labels = { [RiskCategoryEnum.Technical]: 'Teknik', [RiskCategoryEnum.Schedule]: 'Program', [RiskCategoryEnum.Budget]: 'Bütçe', [RiskCategoryEnum.Resource]: 'Kaynak', [RiskCategoryEnum.External]: 'Dış Etken', [RiskCategoryEnum.Quality]: 'Kalite', } return labels[category] || category } export const getRiskProbabilityText = (probability: RiskProbabilityEnum): string => { const labels = { [RiskProbabilityEnum.VeryLow]: 'Çok Düşük', [RiskProbabilityEnum.Low]: 'Düşük', [RiskProbabilityEnum.Medium]: 'Orta', [RiskProbabilityEnum.High]: 'Yüksek', [RiskProbabilityEnum.VeryHigh]: 'Çok Yüksek', } return labels[probability] || probability } export const getRiskImpactText = (impact: RiskImpactEnum): string => { const labels = { [RiskImpactEnum.VeryLow]: 'Çok Düşük', [RiskImpactEnum.Low]: 'Düşük', [RiskImpactEnum.Medium]: 'Orta', [RiskImpactEnum.High]: 'Yüksek', [RiskImpactEnum.VeryHigh]: 'Çok Yüksek', } return labels[impact] || impact } export const getRiskLevelText = (level: RiskLevelEnum): string => { const labels = { [RiskLevelEnum.Low]: 'Düşük', [RiskLevelEnum.Medium]: 'Orta', [RiskLevelEnum.High]: 'Yüksek', [RiskLevelEnum.Critical]: 'Kritik', } return labels[level] || level } export const getRiskLevelColor = (level: RiskLevelEnum): string => { const colors = { [RiskLevelEnum.Low]: 'bg-green-100 text-green-800', [RiskLevelEnum.Medium]: 'bg-yellow-100 text-yellow-800', [RiskLevelEnum.High]: 'bg-orange-100 text-orange-800', [RiskLevelEnum.Critical]: 'bg-red-100 text-red-800', } return colors[level] || 'bg-gray-100 text-gray-800' } export const getRiskStatusText = (status: RiskStatusEnum): string => { const labels = { [RiskStatusEnum.Identified]: 'Tespit Edildi', [RiskStatusEnum.Analyzing]: 'Analiz Ediliyor', [RiskStatusEnum.Mitigating]: 'Önlem Alınıyor', [RiskStatusEnum.Monitoring]: 'İzleniyor', [RiskStatusEnum.Closed]: 'Kapatıldı', } return labels[status] || status } export const getDailyUpdateStatusColor = (status: DailyUpdateStatusEnum) => { switch (status) { case DailyUpdateStatusEnum.Draft: return 'bg-gray-100 text-gray-800' case DailyUpdateStatusEnum.Submitted: return 'bg-blue-100 text-blue-800' case DailyUpdateStatusEnum.Approved: return 'bg-green-100 text-green-800' case DailyUpdateStatusEnum.Rejected: return 'bg-red-100 text-red-800' default: return 'bg-gray-100 text-gray-800' } } export const getWorkTypeColor = (workType: WorkTypeEnum) => { const colors = { [WorkTypeEnum.Development]: 'bg-blue-100 text-blue-800', [WorkTypeEnum.Testing]: 'bg-green-100 text-green-800', [WorkTypeEnum.Design]: 'bg-purple-100 text-purple-800', [WorkTypeEnum.Documentation]: 'bg-yellow-100 text-yellow-800', [WorkTypeEnum.Meeting]: 'bg-orange-100 text-orange-800', [WorkTypeEnum.Research]: 'bg-indigo-100 text-indigo-800', [WorkTypeEnum.Debugging]: 'bg-red-100 text-red-800', [WorkTypeEnum.Review]: 'bg-teal-100 text-teal-800', [WorkTypeEnum.Other]: 'bg-gray-100 text-gray-800', } return colors[workType] || 'bg-gray-100 text-gray-800' } export const getDeliveryStatusColor = (status: DeliveryStatusEnum) => { const colors = { [DeliveryStatusEnum.Preparing]: 'bg-gray-100 text-gray-800', [DeliveryStatusEnum.Shipped]: 'bg-blue-100 text-blue-800', [DeliveryStatusEnum.InTransit]: 'bg-indigo-100 text-indigo-800', [DeliveryStatusEnum.OutForDelivery]: 'bg-purple-100 text-purple-800', [DeliveryStatusEnum.Delivered]: 'bg-green-100 text-green-800', [DeliveryStatusEnum.PartiallyDelivered]: 'bg-orange-100 text-orange-800', [DeliveryStatusEnum.Delayed]: 'bg-red-100 text-red-800', [DeliveryStatusEnum.Returned]: 'bg-yellow-100 text-yellow-800', [DeliveryStatusEnum.Cancelled]: 'bg-gray-100 text-gray-800', } return colors[status] } export const getDeliveryStatusIcon = (status: DeliveryStatusEnum) => { const icons = { [DeliveryStatusEnum.Preparing]: , [DeliveryStatusEnum.Shipped]: , [DeliveryStatusEnum.InTransit]: , [DeliveryStatusEnum.OutForDelivery]: , [DeliveryStatusEnum.Delivered]: , [DeliveryStatusEnum.PartiallyDelivered]: , [DeliveryStatusEnum.Delayed]: , [DeliveryStatusEnum.Returned]: , [DeliveryStatusEnum.Cancelled]: , } return icons[status] } export const getConditionColor = (condition: MmDeliveryItem['condition']) => { const colors = { Good: 'bg-green-100 text-green-800', Damaged: 'bg-red-100 text-red-800', Missing: 'bg-orange-100 text-orange-800', } return colors[condition] } export const getConditionText = (condition: MmDeliveryItem['condition']) => { const texts = { Good: 'İyi', Damaged: 'Hasarlı', Missing: 'Eksik', } return texts[condition] } export const getOrderStatusText = (status: OrderStatusEnum) => { const texts = { [OrderStatusEnum.Draft]: 'Taslak', [OrderStatusEnum.Pending]: 'Beklemede', [OrderStatusEnum.Approved]: 'Onaylandı', [OrderStatusEnum.Sent]: 'Gönderildi', [OrderStatusEnum.Confirmed]: 'Onaylandı', [OrderStatusEnum.PartiallyDelivered]: 'Kısmi Teslim', [OrderStatusEnum.Delivered]: 'Teslim Edildi', [OrderStatusEnum.Completed]: 'Tamamlandı', [OrderStatusEnum.Cancelled]: 'İptal Edildi', [OrderStatusEnum.PartiallyReceived]: 'Kısmi Alındı', [OrderStatusEnum.Received]: 'Alındı', [OrderStatusEnum.Invoiced]: 'Faturalandırıldı', [OrderStatusEnum.Closed]: 'Kapandı', } return texts[status] } export const getOrderStatusColor = (status: OrderStatusEnum) => { const colors = { [OrderStatusEnum.Draft]: 'bg-gray-100 text-gray-800', [OrderStatusEnum.Pending]: 'bg-yellow-100 text-yellow-800', [OrderStatusEnum.Approved]: 'bg-blue-100 text-blue-800', [OrderStatusEnum.Sent]: 'bg-indigo-100 text-indigo-800', [OrderStatusEnum.Confirmed]: 'bg-purple-100 text-purple-800', [OrderStatusEnum.PartiallyDelivered]: 'bg-orange-100 text-orange-800', [OrderStatusEnum.Delivered]: 'bg-green-100 text-green-800', [OrderStatusEnum.Completed]: 'bg-emerald-100 text-emerald-800', [OrderStatusEnum.Cancelled]: 'bg-red-100 text-red-800', [OrderStatusEnum.PartiallyReceived]: 'bg-orange-100 text-orange-800', [OrderStatusEnum.Received]: 'bg-green-100 text-green-800', [OrderStatusEnum.Invoiced]: 'bg-blue-100 text-blue-800', [OrderStatusEnum.Closed]: 'bg-gray-100 text-gray-800', } return colors[status] } export const getOrderStatusIcon = (status: OrderStatusEnum) => { const icons = { [OrderStatusEnum.Draft]: , [OrderStatusEnum.Pending]: , [OrderStatusEnum.Approved]: , [OrderStatusEnum.Sent]: , [OrderStatusEnum.Confirmed]: , [OrderStatusEnum.PartiallyDelivered]: , [OrderStatusEnum.Delivered]: , [OrderStatusEnum.Completed]: , [OrderStatusEnum.Cancelled]: , [OrderStatusEnum.PartiallyReceived]: , [OrderStatusEnum.Received]: , [OrderStatusEnum.Invoiced]: , [OrderStatusEnum.Closed]: , } return icons[status] } export const getRequestStatusText = (status: RequestStatusEnum) => { const statuses = { [RequestStatusEnum.Draft]: 'Taslak', [RequestStatusEnum.Submitted]: 'Gönderildi', [RequestStatusEnum.InReview]: 'İnceleniyor', [RequestStatusEnum.Approved]: 'Onaylandı', [RequestStatusEnum.Rejected]: 'Reddedildi', [RequestStatusEnum.InQuotation]: 'Teklif Aşamasında', [RequestStatusEnum.Ordered]: 'Sipariş Verildi', [RequestStatusEnum.Completed]: 'Tamamlandı', [RequestStatusEnum.Cancelled]: 'İptal Edildi', } return statuses[status] } export const getRequestStatusColor = (status: RequestStatusEnum) => { const colors = { [RequestStatusEnum.Draft]: 'bg-gray-100 text-gray-800', [RequestStatusEnum.Submitted]: 'bg-blue-100 text-blue-800', [RequestStatusEnum.InReview]: 'bg-yellow-100 text-yellow-800', [RequestStatusEnum.Approved]: 'bg-green-100 text-green-800', [RequestStatusEnum.Rejected]: 'bg-red-100 text-red-800', [RequestStatusEnum.InQuotation]: 'bg-purple-100 text-purple-800', [RequestStatusEnum.Ordered]: 'bg-indigo-100 text-indigo-800', [RequestStatusEnum.Completed]: 'bg-green-100 text-green-800', [RequestStatusEnum.Cancelled]: 'bg-red-100 text-red-800', } return colors[status] } export const getApprovalStatusIcon = (status: ApprovalStatusEnum) => { switch (status) { case ApprovalStatusEnum.Approved: return case ApprovalStatusEnum.Rejected: return case ApprovalStatusEnum.Pending: return default: return } } export const getRequisitionStatusText = (status: RequisitionStatusEnum) => { switch (status) { case RequisitionStatusEnum.Draft: return 'Taslak' case RequisitionStatusEnum.Submitted: return 'Gönderildi' case RequisitionStatusEnum.InApproval: return 'Onayda' case RequisitionStatusEnum.Approved: return 'Onaylandı' case RequisitionStatusEnum.Rejected: return 'Reddedildi' case RequisitionStatusEnum.Cancelled: return 'İptal Edildi' case RequisitionStatusEnum.Converted: return 'Siparişe Dönüştürüldü' default: return 'Bilinmiyor' } } export const getRequisitionStatusColor = (status: RequisitionStatusEnum) => { switch (status) { case RequisitionStatusEnum.Draft: return 'bg-gray-100 text-gray-800' case RequisitionStatusEnum.Submitted: return 'bg-blue-100 text-blue-800' case RequisitionStatusEnum.InApproval: return 'bg-yellow-100 text-yellow-800' case RequisitionStatusEnum.Approved: return 'bg-green-100 text-green-800' case RequisitionStatusEnum.Rejected: return 'bg-red-100 text-red-800' case RequisitionStatusEnum.Cancelled: return 'bg-gray-100 text-gray-800' case RequisitionStatusEnum.Converted: return 'bg-purple-100 text-purple-800' default: return 'bg-gray-100 text-gray-800' } } export const getRequisitionStatusIcon = (status: RequisitionStatusEnum) => { switch (status) { case RequisitionStatusEnum.Draft: return case RequisitionStatusEnum.Submitted: return case RequisitionStatusEnum.InApproval: return case RequisitionStatusEnum.Approved: return case RequisitionStatusEnum.Rejected: return case RequisitionStatusEnum.Cancelled: return case RequisitionStatusEnum.Converted: return default: return } } export const getQuotationStatusText = (status: QuotationStatusEnum) => { const statuses = { [QuotationStatusEnum.Draft]: 'Taslak', [QuotationStatusEnum.Pending]: 'Beklemede', [QuotationStatusEnum.UnderReview]: 'İnceleme', [QuotationStatusEnum.Submitted]: 'Sunuldu', [QuotationStatusEnum.Approved]: 'Onaylandı', [QuotationStatusEnum.Rejected]: 'Reddedildi', [QuotationStatusEnum.Expired]: 'Süresi Doldu', } return statuses[status] } export const getQuotationStatusColor = (status: QuotationStatusEnum) => { const colors = { [QuotationStatusEnum.Draft]: 'bg-gray-100 text-gray-800', [QuotationStatusEnum.Pending]: 'bg-yellow-100 text-yellow-800', [QuotationStatusEnum.UnderReview]: 'bg-blue-100 text-blue-800', [QuotationStatusEnum.Submitted]: 'bg-indigo-100 text-indigo-800', [QuotationStatusEnum.Approved]: 'bg-green-100 text-green-800', [QuotationStatusEnum.Rejected]: 'bg-red-100 text-red-800', [QuotationStatusEnum.Expired]: 'bg-orange-100 text-orange-800', } return colors[status] } export const getQuotationStatusIcon = (status: QuotationStatusEnum) => { const icons = { [QuotationStatusEnum.Draft]: , [QuotationStatusEnum.Pending]: , [QuotationStatusEnum.UnderReview]: , [QuotationStatusEnum.Submitted]: , [QuotationStatusEnum.Approved]: , [QuotationStatusEnum.Rejected]: , [QuotationStatusEnum.Expired]: , } return icons[status] } export const getSupplierCardTypeText = (type: SupplierCardTypeEnum) => { const types = { [SupplierCardTypeEnum.Standard]: 'Standart', [SupplierCardTypeEnum.Premium]: 'Premium', [SupplierCardTypeEnum.Strategic]: 'Stratejik', [SupplierCardTypeEnum.Preferred]: 'Tercihli', } return types[type] } export const getSupplierCardTypeColor = (type: SupplierCardTypeEnum) => { const colors = { [SupplierCardTypeEnum.Standard]: 'bg-gray-100 text-gray-800 border-gray-200', [SupplierCardTypeEnum.Premium]: 'bg-blue-100 text-blue-800 border-blue-200', [SupplierCardTypeEnum.Strategic]: 'bg-purple-100 text-purple-800 border-purple-200', [SupplierCardTypeEnum.Preferred]: 'bg-green-100 text-green-800 border-green-200', } return colors[type] } export const getPaymentTermsText = (terms: PaymentTerms) => { const termsMap = { [PaymentTerms.Cash]: 'Peşin', [PaymentTerms.Net15]: 'Net 15', [PaymentTerms.Net30]: 'Net 30', [PaymentTerms.Net45]: 'Net 45', [PaymentTerms.Net60]: 'Net 60', [PaymentTerms.Net90]: 'Net 90', [PaymentTerms.COD]: 'Kapıda Ödeme', [PaymentTerms.Prepaid]: 'Ön Ödeme', } return termsMap[terms] || terms } export const getSupplierTypeText = (type: SupplierTypeEnum) => { switch (type) { case SupplierTypeEnum.Wholesaler: return 'Toptancı' case SupplierTypeEnum.Distributor: return 'Distribütör' case SupplierTypeEnum.ServiceProvider: return 'Hizmet Sağlayıcı' case SupplierTypeEnum.Other: return 'Diğer' default: return 'Bilinmiyor' } } export const getSupplierTypeColor = (type: SupplierTypeEnum) => { switch (type) { case SupplierTypeEnum.Wholesaler: return 'bg-blue-100 text-blue-800' case SupplierTypeEnum.Distributor: return 'bg-green-100 text-green-800' case SupplierTypeEnum.ServiceProvider: return 'bg-purple-100 text-purple-800' case SupplierTypeEnum.Other: return 'bg-gray-100 text-gray-800' default: return 'bg-gray-100 text-gray-800' } } export const getRatingColor = (rating: number) => { if (rating >= 4.5) return 'text-green-600' if (rating >= 4.0) return 'text-yellow-600' if (rating >= 3.0) return 'text-orange-600' return 'text-red-600' } export const getLocationTypeText = (type: LocationTypeEnum) => { const labels = { [LocationTypeEnum.Shelf]: 'Raf', [LocationTypeEnum.Bin]: 'Kutu', [LocationTypeEnum.Floor]: 'Zemin', [LocationTypeEnum.Rack]: 'Yüksek Raf', [LocationTypeEnum.Tank]: 'Tank', } return labels[type] } export const getZoneTypeText = (type: ZoneTypeEnum) => { const labels = { [ZoneTypeEnum.Storage]: 'Depolama', [ZoneTypeEnum.Receiving]: 'Giriş', [ZoneTypeEnum.Shipping]: 'Sevkiyat', [ZoneTypeEnum.Picking]: 'Toplama', [ZoneTypeEnum.Quality]: 'Kalite', [ZoneTypeEnum.Staging]: 'Hazırlık', } return labels[type] } export const getQualityStatusText = (status: QualityStatusEnum) => { switch (status) { case QualityStatusEnum.Approved: return 'Onaylandı' case QualityStatusEnum.Rejected: return 'Reddedildi' case QualityStatusEnum.Quarantine: return 'Karantina' case QualityStatusEnum.Pending: return 'Beklemede' case QualityStatusEnum.Conditional: return 'Koşullu Onay' default: return 'Bilinmeyen' } } export const getQualityStatusColor = (status: QualityStatusEnum) => { switch (status) { case QualityStatusEnum.Approved: return 'bg-green-100 text-green-800' case QualityStatusEnum.Rejected: return 'bg-red-100 text-red-800' case QualityStatusEnum.Quarantine: return 'bg-yellow-100 text-yellow-800' case QualityStatusEnum.Pending: return 'bg-blue-100 text-blue-800' case QualityStatusEnum.Conditional: return 'bg-purple-100 text-purple-800' default: return 'bg-gray-100 text-gray-800' } } export const getReceiptStatusText = (status: ReceiptStatusEnum) => { switch (status) { case ReceiptStatusEnum.Pending: return 'Beklemede' case ReceiptStatusEnum.InProgress: return 'İşlemde' case ReceiptStatusEnum.Completed: return 'Tamamlandı' case ReceiptStatusEnum.OnHold: return 'Bekletildi' default: return 'Bilinmeyen' } } export const getReceiptStatusColor = (status: ReceiptStatusEnum) => { switch (status) { case ReceiptStatusEnum.Pending: return 'bg-blue-100 text-blue-800' case ReceiptStatusEnum.InProgress: return 'bg-yellow-100 text-yellow-800' case ReceiptStatusEnum.Completed: return 'bg-green-100 text-green-800' case ReceiptStatusEnum.OnHold: return 'bg-red-100 text-red-800' default: return 'bg-gray-100 text-gray-800' } } export const getSerialStatusText = (status: SerialStatusEnum) => { switch (status) { case SerialStatusEnum.Available: return 'Müsait' case SerialStatusEnum.InUse: return 'Kullanımda' case SerialStatusEnum.Maintenance: return 'Bakımda' case SerialStatusEnum.Disposed: return 'İmha Edildi' default: return 'Bilinmeyen' } } export const getSerialStatusColor = (status: SerialStatusEnum) => { switch (status) { case SerialStatusEnum.Available: return 'bg-green-100 text-green-800' case SerialStatusEnum.InUse: return 'bg-blue-100 text-blue-800' case SerialStatusEnum.Maintenance: return 'bg-yellow-100 text-yellow-800' case SerialStatusEnum.Disposed: return 'bg-red-100 text-red-800' default: return 'bg-gray-100 text-gray-800' } } export const getStockStatusText = (status: StockStatusEnum) => { const labels = { [StockStatusEnum.Available]: 'Mevcut', [StockStatusEnum.Reserved]: 'Rezerve', [StockStatusEnum.Blocked]: 'Blokeli', [StockStatusEnum.InTransit]: 'Transfer Halinde', [StockStatusEnum.Quarantine]: 'Karantina', } return labels[status] } export const getStockStatusColor = (status: StockStatusEnum) => { const colors = { [StockStatusEnum.Available]: 'bg-green-100 text-green-800', [StockStatusEnum.Reserved]: 'bg-yellow-100 text-yellow-800', [StockStatusEnum.Blocked]: 'bg-red-100 text-red-800', [StockStatusEnum.InTransit]: 'bg-blue-100 text-blue-800', [StockStatusEnum.Quarantine]: 'bg-purple-100 text-purple-800', } return colors[status] } export const getPutawayStrategyText = (strategy: PutawayStrategyEnum) => { const labels = { [PutawayStrategyEnum.FIFO]: 'İlk Giren İlk Çıkar (FIFO)', [PutawayStrategyEnum.LIFO]: 'Son Giren İlk Çıkar (LIFO)', [PutawayStrategyEnum.NearestLocation]: 'En Yakın Lokasyon', [PutawayStrategyEnum.EmptyLocation]: 'Boş Lokasyon', [PutawayStrategyEnum.SameProduct]: 'Aynı Ürün Gruplaması', } return labels[strategy] } export const getPutawayStrategyColor = (strategy: PutawayStrategyEnum) => { const colors = { [PutawayStrategyEnum.FIFO]: 'bg-green-100 text-green-800', [PutawayStrategyEnum.LIFO]: 'bg-red-100 text-red-800', [PutawayStrategyEnum.NearestLocation]: 'bg-blue-100 text-blue-800', [PutawayStrategyEnum.EmptyLocation]: 'bg-purple-100 text-purple-800', [PutawayStrategyEnum.SameProduct]: 'bg-yellow-100 text-yellow-800', } return colors[strategy] } export const getConditionTypeText = (type: ConditionTypeEnum) => { const labels = { [ConditionTypeEnum.MaterialType]: 'Malzeme Tipi', [ConditionTypeEnum.MaterialGroup]: 'Malzeme Grubu', [ConditionTypeEnum.Quantity]: 'Miktar', [ConditionTypeEnum.Weight]: 'Ağırlık', [ConditionTypeEnum.Volume]: 'Hacim', } return labels[type] } export const getConditionOperatorText = (operator: ConditionOperatorEnum) => { const labels = { [ConditionOperatorEnum.Equals]: 'Eşittir', [ConditionOperatorEnum.NotEquals]: 'Eşit Değildir', [ConditionOperatorEnum.GreaterThan]: 'Büyüktür', [ConditionOperatorEnum.LessThan]: 'Küçüktür', [ConditionOperatorEnum.Contains]: 'İçerir', } return labels[operator] } export const getCountTypeText = (type: CountTypeEnum) => { const labels = { [CountTypeEnum.Full]: 'Tam Sayım', [CountTypeEnum.Cycle]: 'Döngüsel Sayım', [CountTypeEnum.Spot]: 'Nokta Sayım', } return labels[type] } export const getCountStatusText = (status: CountStatusEnum) => { const labels = { [CountStatusEnum.Planned]: 'Planlandı', [CountStatusEnum.InProgress]: 'Devam Ediyor', [CountStatusEnum.Completed]: 'Tamamlandı', [CountStatusEnum.Approved]: 'Onaylandı', } return labels[status] } export const getCountStatusColor = (status: CountStatusEnum) => { const colors = { [CountStatusEnum.Planned]: 'bg-gray-100 text-gray-800', [CountStatusEnum.InProgress]: 'bg-blue-100 text-blue-800', [CountStatusEnum.Completed]: 'bg-yellow-100 text-yellow-800', [CountStatusEnum.Approved]: 'bg-green-100 text-green-800', } return colors[status] } export const getMovementStatusText = (status: MovementStatusEnum) => { const labels = { [MovementStatusEnum.Planned]: 'Planlandı', [MovementStatusEnum.InProgress]: 'Devam Ediyor', [MovementStatusEnum.Completed]: 'Tamamlandı', [MovementStatusEnum.Cancelled]: 'İptal Edildi', } return labels[status] } export const getMovementStatusColor = (status: MovementStatusEnum) => { const colors = { [MovementStatusEnum.Planned]: 'bg-gray-100 text-gray-800', [MovementStatusEnum.InProgress]: 'bg-blue-100 text-blue-800', [MovementStatusEnum.Completed]: 'bg-green-100 text-green-800', [MovementStatusEnum.Cancelled]: 'bg-red-100 text-red-800', } return colors[status] } export const getMovementStatusIcon = (status: MovementStatusEnum) => { const icons = { [MovementStatusEnum.Planned]: FaClock, [MovementStatusEnum.InProgress]: FaArrowCircleDown, [MovementStatusEnum.Completed]: FaCheckCircle, [MovementStatusEnum.Cancelled]: FaExclamationCircle, } return icons[status] } export const getForecastMethodText = (method: ForecastMethodEnum) => { const methodLabels = { [ForecastMethodEnum.MovingAverage]: 'Hareketli Ortalama', [ForecastMethodEnum.ExponentialSmoothing]: 'Üstel Yumuşatma', [ForecastMethodEnum.LinearRegression]: 'Doğrusal Regresyon', [ForecastMethodEnum.Seasonal]: 'Mevsimsel', } return methodLabels[method] } export const getAccuracyColor = (accuracy: number) => { if (accuracy >= 90) return 'text-green-600' if (accuracy >= 75) return 'text-yellow-600' return 'text-red-600' } export const getCheckStatusText = (status: CheckStatusEnum) => { const statusLabels = { [CheckStatusEnum.InHand]: 'Elde', [CheckStatusEnum.Deposited]: 'Bankaya Verildi', [CheckStatusEnum.Collected]: 'Tahsil Edildi', [CheckStatusEnum.Bounced]: 'Karşılıksız', [CheckStatusEnum.Endorsed]: 'Ciro Edildi', [CheckStatusEnum.Cancelled]: 'İptal', } return statusLabels[status] } export const getCheckStatusColor = (status: CheckStatusEnum) => { const statusColors = { [CheckStatusEnum.InHand]: 'bg-blue-100 text-blue-800', [CheckStatusEnum.Deposited]: 'bg-yellow-100 text-yellow-800', [CheckStatusEnum.Collected]: 'bg-green-100 text-green-800', [CheckStatusEnum.Bounced]: 'bg-red-100 text-red-800', [CheckStatusEnum.Endorsed]: 'bg-purple-100 text-purple-800', [CheckStatusEnum.Cancelled]: 'bg-gray-100 text-gray-800', } return statusColors[status] } export const getNoteStatusText = (status: NoteStatusEnum) => { const statusLabels = { [NoteStatusEnum.InHand]: 'Elde', [NoteStatusEnum.Collected]: 'Tahsil Edildi', [NoteStatusEnum.Overdue]: 'Vadesi Geçmiş', [NoteStatusEnum.Endorsed]: 'Ciro Edildi', [NoteStatusEnum.Cancelled]: 'İptal', } return statusLabels[status] } export const getNoteStatusColor = (status: NoteStatusEnum) => { const statusColors = { [NoteStatusEnum.InHand]: 'bg-blue-100 text-blue-800', [NoteStatusEnum.Collected]: 'bg-green-100 text-green-800', [NoteStatusEnum.Overdue]: 'bg-red-100 text-red-800', [NoteStatusEnum.Endorsed]: 'bg-purple-100 text-purple-800', [NoteStatusEnum.Cancelled]: 'bg-gray-100 text-gray-800', } return statusColors[status] } export const getTypeText = (status: TypeEnum) => { const statusLabels = { [TypeEnum.Received]: 'Alınan', [TypeEnum.Issued]: 'Verilen', } return statusLabels[status] } export const getGanttStatusColor = ( status: TaskStatusEnum | ProjectStatusEnum | PhaseStatusEnum, ) => { switch (status) { case TaskStatusEnum.Completed: case ProjectStatusEnum.Completed: case PhaseStatusEnum.Completed: return 'bg-gradient-to-r from-green-500 to-green-700' case TaskStatusEnum.InProgress: case ProjectStatusEnum.Active: case PhaseStatusEnum.InProgress: return 'bg-gradient-to-r from-blue-500 to-blue-700' case TaskStatusEnum.OnHold: case ProjectStatusEnum.OnHold: case PhaseStatusEnum.OnHold: return 'bg-gradient-to-r from-yellow-500 to-orange-600' case TaskStatusEnum.Cancelled: case ProjectStatusEnum.Cancelled: case PhaseStatusEnum.Cancelled: return 'bg-gradient-to-r from-red-500 to-red-700' default: return 'bg-gradient-to-r from-black-500 to-black-700' } } export const getGenderText = (status: GenderEnum) => { const genderLabels = { [GenderEnum.Male]: 'Erkek', [GenderEnum.Female]: 'Kadın', [GenderEnum.Other]: 'Diğer', } return genderLabels[status] } export const getMaritalStatusText = (status: MaritalStatusEnum) => { const statusLabels = { [MaritalStatusEnum.Single]: 'Bekar', [MaritalStatusEnum.Married]: 'Evli', [MaritalStatusEnum.Divorced]: 'Boşanmış', [MaritalStatusEnum.Widowed]: 'Dul', } return statusLabels[status] } export const getCustomerTypeText = (type: CustomerTypeEnum) => { switch (type) { case CustomerTypeEnum.Individual: return 'Bireysel' case CustomerTypeEnum.Company: return 'Şirket' case CustomerTypeEnum.Government: return 'Devlet' case CustomerTypeEnum.NonProfit: return 'Kar Amacı Gütmeyen' default: return 'Bilinmeyen' } } export const getBusinessPartyIndustryText = (industry: BusinessPartyIndustryEnum | string) => { switch (industry) { case BusinessPartyIndustryEnum.Technology: return 'Teknoloji' case BusinessPartyIndustryEnum.Healthcare: return 'Sağlık' case BusinessPartyIndustryEnum.Finance: return 'Finans' case BusinessPartyIndustryEnum.Retail: return 'Perakende' case BusinessPartyIndustryEnum.Manufacturing: return 'İmalat' case BusinessPartyIndustryEnum.Education: return 'Eğitim' case BusinessPartyIndustryEnum.Construction: return 'İnşaat' case BusinessPartyIndustryEnum.Hospitality: return 'Konaklama' case BusinessPartyIndustryEnum.Transportation: return 'Ulaşım' case BusinessPartyIndustryEnum.RealEstate: return 'Emlak' case BusinessPartyIndustryEnum.Other: return 'Diğer' case 'AUTOMOTIVE': // Optionlarda var, enumda yok return 'Otomotiv' default: return 'Bilinmeyen' } }