erp-platform/ui/src/utils/erp.tsx
2025-09-17 12:46:58 +03:00

2879 lines
94 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.

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<string, string> = {
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 <FaCheckCircle size={14} />
case EmployeeStatusEnum.Inactive:
return <FaClock size={14} />
case EmployeeStatusEnum.OnLeave:
return <FaCalendar size={14} />
case EmployeeStatusEnum.Suspended:
return <FaExclamationTriangle size={14} />
case EmployeeStatusEnum.Terminated:
return <FaExclamationTriangle size={14} />
default:
return <FaUsers size={14} />
}
}
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]: <FaExclamationTriangle className="w-4 h-4" />,
[NotificationStatusEnum.Assigned]: <FaUser className="w-4 h-4" />,
[NotificationStatusEnum.InProgress]: <FaClock className="w-4 h-4" />,
[NotificationStatusEnum.Resolved]: <FaCheckCircle className="w-4 h-4" />,
[NotificationStatusEnum.Closed]: <FaTimesCircle className="w-4 h-4" />,
[NotificationStatusEnum.Rejected]: <FaTimesCircle className="w-4 h-4" />,
}
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]: <FaCheck className="w-4 h-4" />,
[WorkOrderStatusEnum.OnHold]: <FaPause className="w-4 h-4" />,
[WorkOrderStatusEnum.Completed]: <FaCheck className="w-4 h-4" />,
[WorkOrderStatusEnum.Cancelled]: <FaTimesCircle className="w-4 h-4" />,
}
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]: <FaUser className="w-3 h-3" />,
[TeamRoleEnum.Specialist]: <FaStar className="w-3 h-3" />,
[TeamRoleEnum.Lead]: <FaAward className="w-3 h-3" />,
[TeamRoleEnum.Manager]: <FaUserTie className="w-3 h-3" />,
}
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 <FaCheckCircle size={14} />
case WorkCenterStatusEnum.UnderMaintenance:
return <FaWrench size={14} />
case WorkCenterStatusEnum.OutOfOrder:
return <FaExclamationTriangle size={14} />
case WorkCenterStatusEnum.Retired:
return <FaClock size={14} />
default:
return <FaCog size={14} />
}
}
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 <FaClock size={14} />
case ProductionOrderStatusEnum.Released:
return <FaPlay size={14} />
case ProductionOrderStatusEnum.InProgress:
return <FaCog size={14} />
case ProductionOrderStatusEnum.Completed:
return <FaCheckCircle size={14} />
case ProductionOrderStatusEnum.Cancelled:
return <FaExclamationTriangle size={14} />
case ProductionOrderStatusEnum.OnHold:
return <FaPause size={14} />
default:
return <FaIndustry size={14} />
}
}
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, string> = {
[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, React.ComponentType<React.ComponentProps<'svg'>>> = {
[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, string> = {
[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 <FaClock className="w-4 h-4" />
case PhaseStatusEnum.InProgress:
return <FaBolt className="w-4 h-4" />
case PhaseStatusEnum.Completed:
return <FaCheckCircle className="w-4 h-4" />
case PhaseStatusEnum.OnHold:
return <FaExclamationTriangle className="w-4 h-4" />
case PhaseStatusEnum.Cancelled:
return <FaTimesCircle className="w-4 h-4" />
default:
return <FaClock className="w-4 h-4" />
}
}
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 <FaClock className="w-4 h-4" />
case ProjectStatusEnum.Active:
return <FaCheckCircle className="w-4 h-4" />
case ProjectStatusEnum.OnHold:
return <FaPause className="w-4 h-4" />
case ProjectStatusEnum.Completed:
return <FaCheckCircle className="w-4 h-4" />
case ProjectStatusEnum.Cancelled:
return <FaBan className="w-4 h-4" />
default:
return <FaClock className="w-4 h-4" />
}
}
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 <FaClock className="w-4 h-4" />
case TaskStatusEnum.InProgress:
return <FaBullseye className="w-4 h-4" />
case TaskStatusEnum.Completed:
return <FaCheckCircle className="w-4 h-4" />
case TaskStatusEnum.OnHold:
return <FaExclamationCircle className="w-4 h-4" />
case TaskStatusEnum.Cancelled:
return <FaTimesCircle className="w-4 h-4" />
default:
return <FaClock className="w-4 h-4" />
}
}
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]: <FaBox className="w-4 h-4" />,
[DeliveryStatusEnum.Shipped]: <FaTruck className="w-4 h-4" />,
[DeliveryStatusEnum.InTransit]: <FaTruck className="w-4 h-4" />,
[DeliveryStatusEnum.OutForDelivery]: <FaMapMarkerAlt className="w-4 h-4" />,
[DeliveryStatusEnum.Delivered]: <FaCheckCircle className="w-4 h-4" />,
[DeliveryStatusEnum.PartiallyDelivered]: <FaExclamationTriangle className="w-4 h-4" />,
[DeliveryStatusEnum.Delayed]: <FaClock className="w-4 h-4" />,
[DeliveryStatusEnum.Returned]: <FaBox className="w-4 h-4" />,
[DeliveryStatusEnum.Cancelled]: <FaExclamationTriangle className="w-4 h-4" />,
}
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]: <FaFileAlt className="w-4 h-4" />,
[OrderStatusEnum.Pending]: <FaClock className="w-4 h-4" />,
[OrderStatusEnum.Approved]: <FaCheckCircle className="w-4 h-4" />,
[OrderStatusEnum.Sent]: <FaBox className="w-4 h-4" />,
[OrderStatusEnum.Confirmed]: <FaCheckCircle className="w-4 h-4" />,
[OrderStatusEnum.PartiallyDelivered]: <FaExclamationTriangle className="w-4 h-4" />,
[OrderStatusEnum.Delivered]: <FaTruck className="w-4 h-4" />,
[OrderStatusEnum.Completed]: <FaCheckCircle className="w-4 h-4" />,
[OrderStatusEnum.Cancelled]: <FaTimesCircle className="w-4 h-4" />,
[OrderStatusEnum.PartiallyReceived]: <FaExclamationTriangle className="w-4 h-4" />,
[OrderStatusEnum.Received]: <FaCheckCircle className="w-4 h-4" />,
[OrderStatusEnum.Invoiced]: <FaFileInvoiceDollar className="w-4 h-4" />,
[OrderStatusEnum.Closed]: <FaLock className="w-4 h-4" />,
}
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 <FaCheckCircle className="w-4 h-4 text-green-600" />
case ApprovalStatusEnum.Rejected:
return <FaTimesCircle className="w-4 h-4 text-red-600" />
case ApprovalStatusEnum.Pending:
return <FaClock className="w-4 h-4 text-yellow-600" />
default:
return <FaClock className="w-4 h-4 text-gray-600" />
}
}
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 <FaFileAlt size={14} />
case RequisitionStatusEnum.Submitted:
return <FaClock size={14} />
case RequisitionStatusEnum.InApproval:
return <FaClock size={14} />
case RequisitionStatusEnum.Approved:
return <FaCheckCircle size={14} />
case RequisitionStatusEnum.Rejected:
return <FaTimesCircle size={14} />
case RequisitionStatusEnum.Cancelled:
return <FaTimesCircle size={14} />
case RequisitionStatusEnum.Converted:
return <FaCheckCircle size={14} />
default:
return <FaFileAlt size={14} />
}
}
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]: <FaFileAlt className="w-4 h-4" />,
[QuotationStatusEnum.Pending]: <FaClock className="w-4 h-4" />,
[QuotationStatusEnum.UnderReview]: <FaEye className="w-4 h-4" />,
[QuotationStatusEnum.Submitted]: <FaFileAlt className="w-4 h-4" />,
[QuotationStatusEnum.Approved]: <FaCheckCircle className="w-4 h-4" />,
[QuotationStatusEnum.Rejected]: <FaTimesCircle className="w-4 h-4" />,
[QuotationStatusEnum.Expired]: <FaExclamationCircle className="w-4 h-4" />,
}
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'
}
}