erp-platform/ui/src/utils/erp.tsx

2880 lines
94 KiB
TypeScript
Raw Normal View History

2025-09-15 09:31:47 +00:00
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,
2025-09-16 13:19:02 +00:00
} from 'react-icons/fa'
2025-09-15 09:31:47 +00:00
import {
ApprovalStatusEnum,
MmDeliveryItem,
MaterialTypeEnum,
MovementStatusEnum,
MovementTypeEnum,
OrderStatusEnum,
QualityStatusEnum,
QuotationStatusEnum,
RequestStatusEnum,
RequisitionStatusEnum,
SerialStatusEnum,
SupplierCardTypeEnum,
SupplierTypeEnum,
2025-09-17 09:46:58 +00:00
ReceiptStatusEnum,
2025-09-16 13:19:02 +00:00
} from '../types/mm'
2025-09-15 09:31:47 +00:00
import {
BOMTypeEnum,
OperationCategoryEnum,
MrpProductionOrder,
ProductionOrderStatusEnum,
ProductionOrderTypeEnum,
RecommendationStatusEnum,
RequirementSourceTypeEnum,
RoutingStatusEnum,
SecurityLevelEnum,
2025-09-16 13:19:02 +00:00
ForecastMethodEnum,
} from '../types/mrp'
import { FaRepeat } from 'react-icons/fa6'
import { ApprovalLevelEnum, DeliveryStatusEnum, RequestTypeEnum } from '../types/mm'
2025-09-15 09:31:47 +00:00
import {
ConditionOperatorEnum,
ConditionTypeEnum,
CountStatusEnum,
CountTypeEnum,
LocationTypeEnum,
PutawayStrategyEnum,
StockStatusEnum,
WarehouseTypeEnum,
ZoneTypeEnum,
2025-09-16 13:19:02 +00:00
} from '../types/wm'
2025-09-17 09:46:58 +00:00
import {
BusinessPartyIndustryEnum,
BusinessPartyStatusEnum,
PaymentTerms,
PriorityEnum,
TeamRoleEnum,
} from '../types/common'
2025-09-15 09:31:47 +00:00
import {
AccountTypeEnum,
BankAccountTypeEnum,
BankTransactionTypeEnum,
CashMovementTypeEnum,
2025-09-16 13:19:02 +00:00
CheckStatusEnum,
2025-09-17 09:46:58 +00:00
TypeEnum,
2025-09-15 09:31:47 +00:00
FiDocumentTypeEnum,
InvoiceStatusEnum,
InvoiceTypeEnum,
2025-09-16 13:19:02 +00:00
NoteStatusEnum,
2025-09-15 09:31:47 +00:00
PaymentMethodEnum,
PaymentStatusEnum,
RiskGroupEnum,
TransactionStatusEnum,
WaybillStatusEnum,
WaybillTypeEnum,
2025-09-16 13:19:02 +00:00
} from '../types/fi'
2025-09-15 09:31:47 +00:00
import {
ActivityStatusEnum,
CrmActivityTypeEnum,
CustomerSegmentEnum,
2025-09-17 09:46:58 +00:00
CustomerTypeEnum,
2025-09-15 09:31:47 +00:00
LostReasonCategoryEnum,
OpportunityStageEnum,
SaleOrderItemStatusEnum,
SaleOrderStatusEnum,
2025-09-16 13:19:02 +00:00
} from '../types/crm'
2025-09-15 09:31:47 +00:00
import {
AssessorTypeEnum,
CampaignStatusEnum,
CostCenterType,
EmployeeStatusEnum,
EmploymentTypeEnum,
2025-09-17 09:46:58 +00:00
GenderEnum,
2025-09-15 09:31:47 +00:00
JobLevelEnum,
LeaveStatusEnum,
LeaveTypeEnum,
2025-09-17 09:46:58 +00:00
MaritalStatusEnum,
2025-09-15 09:31:47 +00:00
ParticipantStatusEnum,
PayrollStatusEnum,
2025-09-16 13:19:02 +00:00
} from '../types/hr'
2025-09-15 09:31:47 +00:00
import {
CriticalityLevelEnum,
FaultTypeEnum,
FrequencyUnitEnum,
MaintenancePlanTypeEnum,
NotificationStatusEnum,
WorkCenterStatusEnum,
WorkOrderStatusEnum,
WorkOrderTypeEnum,
2025-09-16 13:19:02 +00:00
} from '../types/pm'
2025-09-15 09:31:47 +00:00
import {
DailyUpdateStatusEnum,
2025-09-17 09:46:58 +00:00
PhaseCategoryEnum,
2025-09-15 09:31:47 +00:00
PhaseStatusEnum,
2025-09-17 09:46:58 +00:00
ProjectCostTrackingStatus,
2025-09-15 09:31:47 +00:00
ProjectStatusEnum,
ProjectTypeEnum,
PsActivityTypeEnum,
PsDocumentTypeEnum,
RiskCategoryEnum,
RiskImpactEnum,
RiskLevelEnum,
RiskProbabilityEnum,
RiskStatusEnum,
TaskStatusEnum,
TaskTypeEnum,
WorkTypeEnum,
2025-09-16 13:19:02 +00:00
} from '../types/ps'
2025-09-15 09:31:47 +00:00
2025-09-17 09:46:58 +00:00
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'
}
}
2025-09-15 09:31:47 +00:00
export const getBOMTypeColor = (type: BOMTypeEnum) => {
switch (type) {
case BOMTypeEnum.Production:
2025-09-16 13:19:02 +00:00
return 'bg-blue-100 text-blue-800'
2025-09-15 09:31:47 +00:00
case BOMTypeEnum.Engineering:
2025-09-16 13:19:02 +00:00
return 'bg-green-100 text-green-800'
2025-09-15 09:31:47 +00:00
case BOMTypeEnum.Planning:
2025-09-16 13:19:02 +00:00
return 'bg-yellow-100 text-yellow-800'
2025-09-15 09:31:47 +00:00
case BOMTypeEnum.Costing:
2025-09-16 13:19:02 +00:00
return 'bg-purple-100 text-purple-800'
2025-09-15 09:31:47 +00:00
default:
2025-09-16 13:19:02 +00:00
return 'bg-gray-100 text-gray-800'
2025-09-15 09:31:47 +00:00
}
2025-09-16 13:19:02 +00:00
}
2025-09-15 09:31:47 +00:00
2025-09-17 09:46:58 +00:00
export const getMovementTypeText = (type: MovementTypeEnum) => {
2025-09-15 09:31:47 +00:00
switch (type) {
2025-09-17 09:46:58 +00:00
case MovementTypeEnum.GoodsReceipt:
return 'Mal Girişi'
case MovementTypeEnum.GoodsIssue:
return 'Mal Çıkışı'
case MovementTypeEnum.Transfer:
return 'Transfer'
2025-09-15 09:31:47 +00:00
default:
2025-09-17 09:46:58 +00:00
return 'Bilinmeyen'
2025-09-15 09:31:47 +00:00
}
2025-09-16 13:19:02 +00:00
}
2025-09-15 09:31:47 +00:00
2025-09-17 09:46:58 +00:00
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'
2025-09-16 13:19:02 +00:00
}
}
2025-09-15 09:31:47 +00:00
2025-09-17 09:46:58 +00:00
export const getMovementTypeSign = (type: MovementTypeEnum) => {
2025-09-15 09:31:47 +00:00
switch (type) {
case MovementTypeEnum.GoodsReceipt:
2025-09-17 09:46:58 +00:00
return '+'
2025-09-15 09:31:47 +00:00
case MovementTypeEnum.GoodsIssue:
2025-09-17 09:46:58 +00:00
return '-'
2025-09-15 09:31:47 +00:00
case MovementTypeEnum.Transfer:
2025-09-17 09:46:58 +00:00
return ''
2025-09-15 09:31:47 +00:00
default:
2025-09-17 09:46:58 +00:00
return ''
2025-09-15 09:31:47 +00:00
}
2025-09-16 13:19:02 +00:00
}
2025-09-15 09:31:47 +00:00
2025-09-17 09:46:58 +00:00
export const getMaterialTypeText = (code: MaterialTypeEnum) => {
2025-09-15 09:31:47 +00:00
switch (code) {
case MaterialTypeEnum.RawMaterial:
2025-09-16 13:19:02 +00:00
return 'HAMMADDE'
2025-09-15 09:31:47 +00:00
case MaterialTypeEnum.SemiFinished:
2025-09-16 13:19:02 +00:00
return 'YARI_MAMUL'
2025-09-15 09:31:47 +00:00
case MaterialTypeEnum.Finished:
2025-09-16 13:19:02 +00:00
return 'MAMUL'
2025-09-15 09:31:47 +00:00
case MaterialTypeEnum.Consumable:
2025-09-16 13:19:02 +00:00
return 'SARF_MALZ'
2025-09-15 09:31:47 +00:00
case MaterialTypeEnum.Service:
2025-09-16 13:19:02 +00:00
return 'HIZMET'
2025-09-15 09:31:47 +00:00
case MaterialTypeEnum.Spare:
2025-09-16 13:19:02 +00:00
return 'YEDEK_PARCA'
2025-09-15 09:31:47 +00:00
default:
2025-09-16 13:19:02 +00:00
return code
2025-09-15 09:31:47 +00:00
}
2025-09-16 13:19:02 +00:00
}
2025-09-15 09:31:47 +00:00
export const getOperationTypeText = (type: OperationCategoryEnum) => {
const types = {
2025-09-16 13:19:02 +00:00
[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]
}
2025-09-15 09:31:47 +00:00
export const getOperationTypeColor = (type: OperationCategoryEnum) => {
const colors = {
2025-09-16 13:19:02 +00:00
[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]
}
2025-09-15 09:31:47 +00:00
export const getSkillLevelText = (level: number) => {
2025-09-16 13:19:02 +00:00
const levels = ['Başlangıç', 'Temel', 'Orta', 'İleri', 'Uzman']
return levels[level - 1] || 'Belirsiz'
}
2025-09-15 09:31:47 +00:00
export const getWarehouseTypeText = (type: WarehouseTypeEnum) => {
const types = {
2025-09-16 13:19:02 +00:00
[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]
}
2025-09-15 09:31:47 +00:00
export const getWarehouseTypeColor = (type: WarehouseTypeEnum) => {
const colors = {
2025-09-16 13:19:02 +00:00
[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]
}
2025-09-15 09:31:47 +00:00
export const getRoutingStatusText = (status: RoutingStatusEnum) => {
const statuses = {
2025-09-16 13:19:02 +00:00
[RoutingStatusEnum.Draft]: 'Taslak',
[RoutingStatusEnum.Active]: 'Aktif',
[RoutingStatusEnum.Inactive]: 'Pasif',
[RoutingStatusEnum.Obsolete]: 'Eski Sürüm',
}
return statuses[status]
}
2025-09-15 09:31:47 +00:00
export const getRoutingStatusColor = (status: RoutingStatusEnum) => {
const colors = {
2025-09-16 13:19:02 +00:00
[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]
}
2025-09-15 09:31:47 +00:00
export const getRequestTypeText = (type: RequestTypeEnum) => {
const types = {
2025-09-16 13:19:02 +00:00
[RequestTypeEnum.Material]: 'Malzeme',
[RequestTypeEnum.Service]: 'Hizmet',
[RequestTypeEnum.WorkCenter]: 'İş Merkezi',
[RequestTypeEnum.Maintenance]: 'Bakım',
}
return types[type]
}
2025-09-15 09:31:47 +00:00
export const getRequestTypeColor = (type: RequestTypeEnum) => {
const colors = {
2025-09-16 13:19:02 +00:00
[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]
}
2025-09-15 09:31:47 +00:00
export const getApprovalLevelText = (level: ApprovalLevelEnum) => {
const levels = {
2025-09-16 13:19:02 +00:00
[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]
}
2025-09-15 09:31:47 +00:00
export const getApprovalLevelColor = (level: ApprovalLevelEnum) => {
const colors = {
2025-09-16 13:19:02 +00:00
[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]
}
2025-09-15 09:31:47 +00:00
export const getDeliveryStatusText = (status: DeliveryStatusEnum) => {
const statuses = {
2025-09-16 13:19:02 +00:00
[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]
}
2025-09-15 09:31:47 +00:00
export const getPriorityText = (priority: PriorityEnum) => {
const priorities = {
2025-09-16 13:19:02 +00:00
[PriorityEnum.Low]: 'Düşük',
[PriorityEnum.Normal]: 'Normal',
[PriorityEnum.High]: 'Yüksek',
[PriorityEnum.Urgent]: 'Acil',
}
return priorities[priority]
}
2025-09-15 09:31:47 +00:00
export const getPriorityColor = (priority: PriorityEnum) => {
const colors = {
2025-09-16 13:19:02 +00:00
[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]
}
2025-09-15 09:31:47 +00:00
2025-09-17 09:46:58 +00:00
export const getWaybillStatusText = (status: WaybillStatusEnum) => {
2025-09-15 09:31:47 +00:00
switch (status) {
case WaybillStatusEnum.Draft:
2025-09-17 09:46:58 +00:00
return 'Taslak'
2025-09-15 09:31:47 +00:00
case WaybillStatusEnum.Confirmed:
2025-09-17 09:46:58 +00:00
return 'Onaylandı'
2025-09-15 09:31:47 +00:00
case WaybillStatusEnum.Delivered:
2025-09-17 09:46:58 +00:00
return 'Teslim Edildi'
2025-09-15 09:31:47 +00:00
case WaybillStatusEnum.Cancelled:
2025-09-17 09:46:58 +00:00
return 'İptal'
2025-09-15 09:31:47 +00:00
default:
2025-09-17 09:46:58 +00:00
return 'Bilinmiyor'
2025-09-15 09:31:47 +00:00
}
2025-09-16 13:19:02 +00:00
}
2025-09-15 09:31:47 +00:00
2025-09-17 09:46:58 +00:00
export const getWaybillStatusColor = (status: WaybillStatusEnum) => {
2025-09-15 09:31:47 +00:00
switch (status) {
case WaybillStatusEnum.Draft:
2025-09-17 09:46:58 +00:00
return 'bg-gray-100 text-gray-800'
2025-09-15 09:31:47 +00:00
case WaybillStatusEnum.Confirmed:
2025-09-17 09:46:58 +00:00
return 'bg-blue-100 text-blue-800'
2025-09-15 09:31:47 +00:00
case WaybillStatusEnum.Delivered:
2025-09-17 09:46:58 +00:00
return 'bg-green-100 text-green-800'
2025-09-15 09:31:47 +00:00
case WaybillStatusEnum.Cancelled:
2025-09-17 09:46:58 +00:00
return 'bg-red-100 text-red-800'
2025-09-15 09:31:47 +00:00
default:
2025-09-17 09:46:58 +00:00
return 'bg-gray-100 text-gray-800'
2025-09-15 09:31:47 +00:00
}
2025-09-16 13:19:02 +00:00
}
2025-09-15 09:31:47 +00:00
export const getWaybillTypeText = (type: WaybillTypeEnum) => {
switch (type) {
case WaybillTypeEnum.Outgoing:
2025-09-16 13:19:02 +00:00
return ıkış İrsaliyesi'
2025-09-15 09:31:47 +00:00
case WaybillTypeEnum.Incoming:
2025-09-16 13:19:02 +00:00
return 'Giriş İrsaliyesi'
2025-09-15 09:31:47 +00:00
case WaybillTypeEnum.Transfer:
2025-09-16 13:19:02 +00:00
return 'Transfer İrsaliyesi'
2025-09-15 09:31:47 +00:00
case WaybillTypeEnum.Return:
2025-09-16 13:19:02 +00:00
return 'İade İrsaliyesi'
2025-09-15 09:31:47 +00:00
default:
2025-09-16 13:19:02 +00:00
return 'Bilinmiyor'
2025-09-15 09:31:47 +00:00
}
2025-09-16 13:19:02 +00:00
}
2025-09-15 09:31:47 +00:00
2025-09-17 09:46:58 +00:00
export const getBusinessPartyStatusText = (status: BusinessPartyStatusEnum) => {
2025-09-15 09:31:47 +00:00
switch (status) {
case BusinessPartyStatusEnum.Prospect:
2025-09-17 09:46:58 +00:00
return 'Potansiyel'
2025-09-15 09:31:47 +00:00
case BusinessPartyStatusEnum.Active:
2025-09-17 09:46:58 +00:00
return 'Aktif'
2025-09-15 09:31:47 +00:00
case BusinessPartyStatusEnum.Inactive:
2025-09-17 09:46:58 +00:00
return 'Pasif'
2025-09-15 09:31:47 +00:00
case BusinessPartyStatusEnum.Blocked:
2025-09-17 09:46:58 +00:00
return 'Blokeli'
2025-09-15 09:31:47 +00:00
default:
2025-09-17 09:46:58 +00:00
return 'Bilinmiyor'
2025-09-15 09:31:47 +00:00
}
2025-09-16 13:19:02 +00:00
}
2025-09-15 09:31:47 +00:00
2025-09-17 09:46:58 +00:00
export const getBusinessPartyStatusColor = (status: BusinessPartyStatusEnum) => {
2025-09-15 09:31:47 +00:00
switch (status) {
case BusinessPartyStatusEnum.Prospect:
2025-09-17 09:46:58 +00:00
return 'bg-blue-100 text-blue-800 border-blue-200'
2025-09-15 09:31:47 +00:00
case BusinessPartyStatusEnum.Active:
2025-09-17 09:46:58 +00:00
return 'bg-green-100 text-green-800 border-green-200'
2025-09-15 09:31:47 +00:00
case BusinessPartyStatusEnum.Inactive:
2025-09-17 09:46:58 +00:00
return 'bg-gray-100 text-gray-800 border-gray-200'
2025-09-15 09:31:47 +00:00
case BusinessPartyStatusEnum.Blocked:
2025-09-17 09:46:58 +00:00
return 'bg-red-100 text-red-800 border-red-200'
2025-09-15 09:31:47 +00:00
default:
2025-09-17 09:46:58 +00:00
return 'bg-gray-100 text-gray-800 border-gray-200'
2025-09-15 09:31:47 +00:00
}
2025-09-16 13:19:02 +00:00
}
2025-09-15 09:31:47 +00:00
export const getCustomerSegmentColor = (segment: CustomerSegmentEnum) => {
switch (segment) {
case CustomerSegmentEnum.Enterprise:
2025-09-16 13:19:02 +00:00
return 'text-purple-600'
2025-09-15 09:31:47 +00:00
case CustomerSegmentEnum.SMB:
2025-09-16 13:19:02 +00:00
return 'text-blue-600'
2025-09-15 09:31:47 +00:00
case CustomerSegmentEnum.Startup:
2025-09-16 13:19:02 +00:00
return 'text-green-600'
2025-09-15 09:31:47 +00:00
case CustomerSegmentEnum.Government:
2025-09-16 13:19:02 +00:00
return 'text-orange-600'
2025-09-15 09:31:47 +00:00
default:
2025-09-16 13:19:02 +00:00
return 'text-gray-600'
2025-09-15 09:31:47 +00:00
}
2025-09-16 13:19:02 +00:00
}
2025-09-15 09:31:47 +00:00
2025-09-17 09:46:58 +00:00
export const getCustomerSegmentText = (segment: CustomerSegmentEnum) => {
2025-09-15 09:31:47 +00:00
switch (segment) {
case CustomerSegmentEnum.Enterprise:
2025-09-16 13:19:02 +00:00
return 'Kurumsal'
2025-09-15 09:31:47 +00:00
case CustomerSegmentEnum.SMB:
2025-09-16 13:19:02 +00:00
return 'KOBİ'
2025-09-15 09:31:47 +00:00
case CustomerSegmentEnum.Startup:
2025-09-16 13:19:02 +00:00
return 'Girişim'
2025-09-15 09:31:47 +00:00
case CustomerSegmentEnum.Government:
2025-09-16 13:19:02 +00:00
return 'Kamu'
2025-09-15 09:31:47 +00:00
default:
2025-09-16 13:19:02 +00:00
return 'Diğer'
2025-09-15 09:31:47 +00:00
}
2025-09-16 13:19:02 +00:00
}
2025-09-15 09:31:47 +00:00
export const getLostReasonCategoryText = (category: LostReasonCategoryEnum) => {
const categoryLabels = {
2025-09-16 13:19:02 +00:00
[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) => {
2025-09-15 09:31:47 +00:00
const categoryColors = {
2025-09-16 13:19:02 +00:00
[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]
}
2025-09-15 09:31:47 +00:00
export const getActivityTypeText = (type: CrmActivityTypeEnum) => {
const typeLabels = {
2025-09-16 13:19:02 +00:00
[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]
}
2025-09-15 09:31:47 +00:00
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,
2025-09-16 13:19:02 +00:00
}
return typeIcons[type]
}
2025-09-15 09:31:47 +00:00
export const getActivityStatusText = (status: ActivityStatusEnum) => {
const statusLabels = {
2025-09-16 13:19:02 +00:00
[ActivityStatusEnum.Planned]: 'Planlandı',
[ActivityStatusEnum.InProgress]: 'Devam Ediyor',
[ActivityStatusEnum.Completed]: 'Tamamlandı',
[ActivityStatusEnum.Cancelled]: 'İptal Edildi',
}
return statusLabels[status]
}
2025-09-15 09:31:47 +00:00
export const getActivityStatusColor = (status: ActivityStatusEnum) => {
const statusColors = {
2025-09-16 13:19:02 +00:00
[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]
}
2025-09-15 09:31:47 +00:00
export const getOpportunityStageText = (stage: OpportunityStageEnum) => {
const stageLabels = {
2025-09-16 13:19:02 +00:00
[OpportunityStageEnum.Qualification]: 'Nitelendirme',
[OpportunityStageEnum.NeedsAnalysis]: 'İhtiyaç Analizi',
[OpportunityStageEnum.Proposal]: 'Teklif',
[OpportunityStageEnum.Negotiation]: 'Müzakere',
[OpportunityStageEnum.ClosedWon]: 'Kazanıldı',
[OpportunityStageEnum.ClosedLost]: 'Kaybedildi',
}
return stageLabels[stage]
}
2025-09-15 09:31:47 +00:00
export const getOpportunityStageColor = (stage: OpportunityStageEnum) => {
const stageColors = {
2025-09-16 13:19:02 +00:00
[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]
}
2025-09-15 09:31:47 +00:00
export const getOpportunityProbabilityColor = (probability: number) => {
2025-09-16 13:19:02 +00:00
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'
}
2025-09-15 09:31:47 +00:00
export const getOpportunityLeadSourceText = (source: string) => {
const sourceLabels: Record<string, string> = {
2025-09-16 13:19:02 +00:00
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
}
2025-09-15 09:31:47 +00:00
export const getSaleOrderStatusText = (status: SaleOrderStatusEnum) => {
const statusLabels = {
2025-09-16 13:19:02 +00:00
[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]
}
2025-09-15 09:31:47 +00:00
export const getSaleOrderStatusColor = (status: SaleOrderStatusEnum) => {
const statusColors = {
2025-09-16 13:19:02 +00:00
[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]
}
2025-09-15 09:31:47 +00:00
export const getSaleOrderItemStatusnfo = (status: SaleOrderItemStatusEnum) => {
const statusInfo = {
[SaleOrderItemStatusEnum.Pending]: {
2025-09-16 13:19:02 +00:00
label: 'Beklemede',
color: 'bg-gray-100 text-gray-800',
2025-09-15 09:31:47 +00:00
icon: FaClock,
2025-09-16 13:19:02 +00:00
iconColor: 'text-gray-500',
2025-09-15 09:31:47 +00:00
},
[SaleOrderItemStatusEnum.Confirmed]: {
2025-09-16 13:19:02 +00:00
label: 'Onaylandı',
color: 'bg-blue-100 text-blue-800',
2025-09-15 09:31:47 +00:00
icon: FaCheckCircle,
2025-09-16 13:19:02 +00:00
iconColor: 'text-blue-500',
2025-09-15 09:31:47 +00:00
},
[SaleOrderItemStatusEnum.InProduction]: {
2025-09-16 13:19:02 +00:00
label: 'Üretimde',
color: 'bg-yellow-100 text-yellow-800',
2025-09-15 09:31:47 +00:00
icon: FaClock,
2025-09-16 13:19:02 +00:00
iconColor: 'text-yellow-500',
2025-09-15 09:31:47 +00:00
},
[SaleOrderItemStatusEnum.Ready]: {
2025-09-16 13:19:02 +00:00
label: 'Hazır',
color: 'bg-orange-100 text-orange-800',
2025-09-15 09:31:47 +00:00
icon: FaCheckCircle,
2025-09-16 13:19:02 +00:00
iconColor: 'text-orange-500',
2025-09-15 09:31:47 +00:00
},
[SaleOrderItemStatusEnum.Shipped]: {
2025-09-16 13:19:02 +00:00
label: 'Kargoda',
color: 'bg-purple-100 text-purple-800',
2025-09-15 09:31:47 +00:00
icon: FaTruck,
2025-09-16 13:19:02 +00:00
iconColor: 'text-purple-500',
2025-09-15 09:31:47 +00:00
},
[SaleOrderItemStatusEnum.Delivered]: {
2025-09-16 13:19:02 +00:00
label: 'Teslim Edildi',
color: 'bg-green-100 text-green-800',
2025-09-15 09:31:47 +00:00
icon: FaCheckCircle,
2025-09-16 13:19:02 +00:00
iconColor: 'text-green-500',
2025-09-15 09:31:47 +00:00
},
2025-09-16 13:19:02 +00:00
}
return statusInfo[status]
}
2025-09-15 09:31:47 +00:00
export const getBankAccountTypeText = (type: BankAccountTypeEnum) => {
const typeLabels = {
2025-09-16 13:19:02 +00:00
[BankAccountTypeEnum.Current]: 'Vadesiz',
[BankAccountTypeEnum.Deposit]: 'Vadeli',
[BankAccountTypeEnum.Credit]: 'Kredi',
[BankAccountTypeEnum.Foreign]: 'Döviz',
}
return typeLabels[type]
}
2025-09-15 09:31:47 +00:00
export const getBankAccountTypeColor = (type: BankAccountTypeEnum) => {
const typeColors = {
2025-09-16 13:19:02 +00:00
[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]
}
2025-09-15 09:31:47 +00:00
export const getTransactionTypeText = (type: BankTransactionTypeEnum) => {
const typeLabels = {
2025-09-16 13:19:02 +00:00
[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]
}
2025-09-15 09:31:47 +00:00
export const getTransactionTypeColor = (type: BankTransactionTypeEnum) => {
const typeColors = {
2025-09-16 13:19:02 +00:00
[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]
}
2025-09-15 09:31:47 +00:00
2025-09-17 09:46:58 +00:00
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]
}
2025-09-15 09:31:47 +00:00
export const getTransactionStatusColor = (status: TransactionStatusEnum) => {
const statusColors = {
2025-09-16 13:19:02 +00:00
[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]
}
2025-09-15 09:31:47 +00:00
export const getFiDocumentTypeText = (type?: FiDocumentTypeEnum) => {
2025-09-16 13:19:02 +00:00
if (!type) return ''
2025-09-15 09:31:47 +00:00
const typeLabels = {
2025-09-16 13:19:02 +00:00
[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]
}
2025-09-15 09:31:47 +00:00
export const getFiDocumentTypeColor = (type: FiDocumentTypeEnum) => {
const typeColors = {
2025-09-16 13:19:02 +00:00
[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]
}
2025-09-15 09:31:47 +00:00
export const getCashMovementTypeText = (type: CashMovementTypeEnum) => {
2025-09-16 13:19:02 +00:00
return type === CashMovementTypeEnum.Income ? 'Giriş' : ıkış'
}
2025-09-15 09:31:47 +00:00
export const getCashMovementTypeColor = (type: CashMovementTypeEnum) => {
return type === CashMovementTypeEnum.Income
2025-09-16 13:19:02 +00:00
? 'bg-green-100 text-green-800'
: 'bg-red-100 text-red-800'
}
2025-09-15 09:31:47 +00:00
export const getAccountTypeText = (type: AccountTypeEnum) => {
const typeLabels = {
2025-09-16 13:19:02 +00:00
[AccountTypeEnum.Customer]: 'Müşteri',
[AccountTypeEnum.Supplier]: 'Tedarikçi',
[AccountTypeEnum.Both]: 'Müşteri/Tedarikçi',
[AccountTypeEnum.Other]: 'Diğer',
}
return typeLabels[type]
}
2025-09-15 09:31:47 +00:00
export const getAccountTypeColor = (type: AccountTypeEnum) => {
const typeColors = {
2025-09-16 13:19:02 +00:00
[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]
}
2025-09-15 09:31:47 +00:00
export const getRiskGroupText = (riskGroup: RiskGroupEnum) => {
const riskLabels = {
2025-09-16 13:19:02 +00:00
[RiskGroupEnum.Low]: 'Düşük Risk',
[RiskGroupEnum.Medium]: 'Orta Risk',
[RiskGroupEnum.High]: 'Yüksek Risk',
[RiskGroupEnum.Blocked]: 'Blokeli',
}
return riskLabels[riskGroup]
}
2025-09-15 09:31:47 +00:00
export const getRiskGroupColor = (riskGroup: RiskGroupEnum) => {
const riskColors = {
2025-09-16 13:19:02 +00:00
[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]
}
2025-09-15 09:31:47 +00:00
export const getInvoiceTypeText = (type: InvoiceTypeEnum) => {
const typeLabels = {
2025-09-16 13:19:02 +00:00
[InvoiceTypeEnum.Sales]: 'Satış',
[InvoiceTypeEnum.Purchase]: 'Alış',
[InvoiceTypeEnum.Return]: 'İade',
[InvoiceTypeEnum.Proforma]: 'Proforma',
}
return typeLabels[type]
}
2025-09-15 09:31:47 +00:00
export const getInvoiceTypeColor = (type: InvoiceTypeEnum) => {
const typeColors = {
2025-09-16 13:19:02 +00:00
[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]
}
2025-09-15 09:31:47 +00:00
export const getInvoiceStatusText = (status: InvoiceStatusEnum) => {
const statusLabels = {
2025-09-16 13:19:02 +00:00
[InvoiceStatusEnum.Draft]: 'Taslak',
[InvoiceStatusEnum.Sent]: 'Gönderildi',
[InvoiceStatusEnum.Approved]: 'Onaylandı',
[InvoiceStatusEnum.Cancelled]: 'İptal',
}
return statusLabels[status]
}
2025-09-15 09:31:47 +00:00
export const getInvoiceStatusColor = (status: InvoiceStatusEnum) => {
const statusColors = {
2025-09-16 13:19:02 +00:00
[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]
}
2025-09-15 09:31:47 +00:00
export const getPaymentStatusText = (status: PaymentStatusEnum) => {
const statusLabels = {
2025-09-16 13:19:02 +00:00
[PaymentStatusEnum.Unpaid]: 'Ödenmemiş',
[PaymentStatusEnum.PartiallyPaid]: 'Kısmi Ödeme',
[PaymentStatusEnum.Paid]: 'Ödenmiş',
[PaymentStatusEnum.Overdue]: 'Vadesi Geçmiş',
}
return statusLabels[status]
}
2025-09-15 09:31:47 +00:00
export const getPaymentStatusColor = (status: PaymentStatusEnum) => {
const statusColors = {
2025-09-16 13:19:02 +00:00
[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]
}
2025-09-15 09:31:47 +00:00
export const getPaymentMethodText = (method: PaymentMethodEnum) => {
const labels = {
2025-09-16 13:19:02 +00:00
[PaymentMethodEnum.Cash]: 'Nakit',
[PaymentMethodEnum.BankTransfer]: 'Banka Havalesi',
[PaymentMethodEnum.CreditCard]: 'Kredi Kartı',
[PaymentMethodEnum.Check]: 'Çek',
[PaymentMethodEnum.PromissoryNote]: 'Senet',
}
return labels[method]
}
2025-09-15 09:31:47 +00:00
export const getWaybillTypeColor = (type: WaybillTypeEnum) => {
const typeColors = {
2025-09-16 13:19:02 +00:00
[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]
}
2025-09-15 09:31:47 +00:00
export const iconOptions = [
2025-09-16 13:19:02 +00:00
{ 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' },
]
2025-09-15 09:31:47 +00:00
export const getIconComponent = (iconName: string) => {
switch (iconName) {
2025-09-16 13:19:02 +00:00
case 'star':
return FaStar
case 'trophy':
return FaTrophy
case 'medal':
return FaMedal
case 'award':
2025-09-15 09:31:47 +00:00
default:
2025-09-16 13:19:02 +00:00
return FaAward
2025-09-15 09:31:47 +00:00
}
2025-09-16 13:19:02 +00:00
}
2025-09-15 09:31:47 +00:00
export const getCostCenterTypeText = (type: CostCenterType): string => {
const typeMap = {
2025-09-16 13:19:02 +00:00
[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
}
2025-09-15 09:31:47 +00:00
export const getCostCenterTypeColor = (type: CostCenterType): string => {
const colorMap = {
2025-09-16 13:19:02 +00:00
[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'
}
2025-09-15 09:31:47 +00:00
export const getCampaignStatusColor = (status: CampaignStatusEnum) => {
switch (status) {
case CampaignStatusEnum.Draft:
2025-09-16 13:19:02 +00:00
return 'bg-gray-100 text-gray-800'
2025-09-15 09:31:47 +00:00
case CampaignStatusEnum.Active:
2025-09-16 13:19:02 +00:00
return 'bg-green-100 text-green-800'
2025-09-15 09:31:47 +00:00
case CampaignStatusEnum.Completed:
2025-09-16 13:19:02 +00:00
return 'bg-blue-100 text-blue-800'
2025-09-15 09:31:47 +00:00
default:
2025-09-16 13:19:02 +00:00
return 'bg-gray-100 text-gray-800'
2025-09-15 09:31:47 +00:00
}
2025-09-16 13:19:02 +00:00
}
2025-09-15 09:31:47 +00:00
export const getCampaignStatusText = (status: CampaignStatusEnum) => {
switch (status) {
case CampaignStatusEnum.Draft:
2025-09-16 13:19:02 +00:00
return 'Taslak'
2025-09-15 09:31:47 +00:00
case CampaignStatusEnum.Active:
2025-09-16 13:19:02 +00:00
return 'Aktif'
2025-09-15 09:31:47 +00:00
case CampaignStatusEnum.Completed:
2025-09-16 13:19:02 +00:00
return 'Tamamlandı'
2025-09-15 09:31:47 +00:00
default:
2025-09-16 13:19:02 +00:00
return 'Bilinmiyor'
2025-09-15 09:31:47 +00:00
}
2025-09-16 13:19:02 +00:00
}
2025-09-15 09:31:47 +00:00
export const getAssessorTypeText = (type: AssessorTypeEnum) => {
switch (type) {
case AssessorTypeEnum.Self:
2025-09-16 13:19:02 +00:00
return 'Kendi'
2025-09-15 09:31:47 +00:00
case AssessorTypeEnum.Manager:
2025-09-16 13:19:02 +00:00
return 'Yönetici'
2025-09-15 09:31:47 +00:00
case AssessorTypeEnum.Peer:
2025-09-16 13:19:02 +00:00
return 'Meslektaş'
2025-09-15 09:31:47 +00:00
case AssessorTypeEnum.Subordinate:
2025-09-16 13:19:02 +00:00
return 'Ast'
2025-09-15 09:31:47 +00:00
case AssessorTypeEnum.Customer:
2025-09-16 13:19:02 +00:00
return 'Müşteri'
2025-09-15 09:31:47 +00:00
case AssessorTypeEnum.OtherDepartment:
2025-09-16 13:19:02 +00:00
return 'Diğer Departman'
2025-09-15 09:31:47 +00:00
case AssessorTypeEnum.HRUpperManagement:
2025-09-16 13:19:02 +00:00
return 'İK/Üst Yönetim'
2025-09-15 09:31:47 +00:00
case AssessorTypeEnum.External:
2025-09-16 13:19:02 +00:00
return 'Dış Paydaş'
2025-09-15 09:31:47 +00:00
default:
2025-09-16 13:19:02 +00:00
return 'Bilinmiyor'
2025-09-15 09:31:47 +00:00
}
2025-09-16 13:19:02 +00:00
}
2025-09-15 09:31:47 +00:00
export const getAssessorTypeDescription = (type: AssessorTypeEnum) => {
switch (type) {
case AssessorTypeEnum.Self:
2025-09-16 13:19:02 +00:00
return 'Sadece kendisi'
2025-09-15 09:31:47 +00:00
case AssessorTypeEnum.Manager:
2025-09-16 13:19:02 +00:00
return 'Sadece çalıştığı departmanın müdürü'
2025-09-15 09:31:47 +00:00
case AssessorTypeEnum.Peer:
2025-09-16 13:19:02 +00:00
return 'Sadece aynı departmanda çalıştığı eşit düzeydeki çalışanlar'
2025-09-15 09:31:47 +00:00
case AssessorTypeEnum.Subordinate:
2025-09-16 13:19:02 +00:00
return 'Aynı departmanda ama düzeyi değerlendirilen kişinin altında olan'
2025-09-15 09:31:47 +00:00
case AssessorTypeEnum.Customer:
2025-09-16 13:19:02 +00:00
return 'Sistemde kayıtlı müşterilerden seçilecek'
2025-09-15 09:31:47 +00:00
case AssessorTypeEnum.External:
2025-09-16 13:19:02 +00:00
return 'Sistemde kayıtlı olmayan harici değerlendirici'
2025-09-15 09:31:47 +00:00
case AssessorTypeEnum.HRUpperManagement:
2025-09-16 13:19:02 +00:00
return 'Sadece İK departmanında bir kişi seçilmeli'
2025-09-15 09:31:47 +00:00
case AssessorTypeEnum.OtherDepartment:
2025-09-16 13:19:02 +00:00
return 'Değerlendirilen kişinin çalıştığı departman dışında kalan tüm departman çalışanları'
2025-09-15 09:31:47 +00:00
default:
2025-09-16 13:19:02 +00:00
return ''
2025-09-15 09:31:47 +00:00
}
2025-09-16 13:19:02 +00:00
}
2025-09-15 09:31:47 +00:00
export const getParticipantStatusColor = (status: ParticipantStatusEnum) => {
switch (status) {
case ParticipantStatusEnum.Invited:
2025-09-16 13:19:02 +00:00
return 'bg-yellow-100 text-yellow-800'
2025-09-15 09:31:47 +00:00
case ParticipantStatusEnum.Started:
2025-09-16 13:19:02 +00:00
return 'bg-blue-100 text-blue-800'
2025-09-15 09:31:47 +00:00
case ParticipantStatusEnum.Completed:
2025-09-16 13:19:02 +00:00
return 'bg-green-100 text-green-800'
2025-09-15 09:31:47 +00:00
default:
2025-09-16 13:19:02 +00:00
return 'bg-gray-100 text-gray-800'
2025-09-15 09:31:47 +00:00
}
2025-09-16 13:19:02 +00:00
}
2025-09-15 09:31:47 +00:00
export const getParticipantStatusText = (status: ParticipantStatusEnum) => {
switch (status) {
case ParticipantStatusEnum.Invited:
2025-09-16 13:19:02 +00:00
return 'Davet Edildi'
2025-09-15 09:31:47 +00:00
case ParticipantStatusEnum.Started:
2025-09-16 13:19:02 +00:00
return 'Başladı'
2025-09-15 09:31:47 +00:00
case ParticipantStatusEnum.Completed:
2025-09-16 13:19:02 +00:00
return 'Tamamlandı'
2025-09-15 09:31:47 +00:00
default:
2025-09-16 13:19:02 +00:00
return 'Bilinmiyor'
2025-09-15 09:31:47 +00:00
}
2025-09-16 13:19:02 +00:00
}
2025-09-15 09:31:47 +00:00
2025-09-17 09:46:58 +00:00
export const getEmployeeStatusText = (status: EmployeeStatusEnum) => {
2025-09-15 09:31:47 +00:00
switch (status) {
case EmployeeStatusEnum.Active:
2025-09-17 09:46:58 +00:00
return 'Aktif'
2025-09-15 09:31:47 +00:00
case EmployeeStatusEnum.Inactive:
2025-09-17 09:46:58 +00:00
return 'Pasif'
2025-09-15 09:31:47 +00:00
case EmployeeStatusEnum.OnLeave:
2025-09-17 09:46:58 +00:00
return 'İzinli'
2025-09-15 09:31:47 +00:00
case EmployeeStatusEnum.Suspended:
2025-09-17 09:46:58 +00:00
return 'Askıda'
2025-09-15 09:31:47 +00:00
case EmployeeStatusEnum.Terminated:
2025-09-17 09:46:58 +00:00
return 'İşten Çıkarılmış'
2025-09-15 09:31:47 +00:00
default:
2025-09-17 09:46:58 +00:00
return 'Bilinmiyor'
2025-09-15 09:31:47 +00:00
}
2025-09-16 13:19:02 +00:00
}
2025-09-15 09:31:47 +00:00
2025-09-17 09:46:58 +00:00
export const getEmployeeStatusColor = (status: EmployeeStatusEnum) => {
2025-09-15 09:31:47 +00:00
switch (status) {
case EmployeeStatusEnum.Active:
2025-09-17 09:46:58 +00:00
return 'bg-green-100 text-green-800'
2025-09-15 09:31:47 +00:00
case EmployeeStatusEnum.Inactive:
2025-09-17 09:46:58 +00:00
return 'bg-gray-100 text-gray-800'
2025-09-15 09:31:47 +00:00
case EmployeeStatusEnum.OnLeave:
2025-09-17 09:46:58 +00:00
return 'bg-yellow-100 text-yellow-800'
2025-09-15 09:31:47 +00:00
case EmployeeStatusEnum.Suspended:
2025-09-17 09:46:58 +00:00
return 'bg-red-100 text-red-800'
2025-09-15 09:31:47 +00:00
case EmployeeStatusEnum.Terminated:
2025-09-17 09:46:58 +00:00
return 'bg-red-100 text-red-800'
2025-09-15 09:31:47 +00:00
default:
2025-09-17 09:46:58 +00:00
return 'bg-gray-100 text-gray-800'
2025-09-15 09:31:47 +00:00
}
2025-09-16 13:19:02 +00:00
}
2025-09-15 09:31:47 +00:00
export const getEmployeeStatusIcon = (status: EmployeeStatusEnum) => {
switch (status) {
case EmployeeStatusEnum.Active:
2025-09-16 13:19:02 +00:00
return <FaCheckCircle size={14} />
2025-09-15 09:31:47 +00:00
case EmployeeStatusEnum.Inactive:
2025-09-16 13:19:02 +00:00
return <FaClock size={14} />
2025-09-15 09:31:47 +00:00
case EmployeeStatusEnum.OnLeave:
2025-09-16 13:19:02 +00:00
return <FaCalendar size={14} />
2025-09-15 09:31:47 +00:00
case EmployeeStatusEnum.Suspended:
2025-09-16 13:19:02 +00:00
return <FaExclamationTriangle size={14} />
2025-09-15 09:31:47 +00:00
case EmployeeStatusEnum.Terminated:
2025-09-16 13:19:02 +00:00
return <FaExclamationTriangle size={14} />
2025-09-15 09:31:47 +00:00
default:
2025-09-16 13:19:02 +00:00
return <FaUsers size={14} />
2025-09-15 09:31:47 +00:00
}
2025-09-16 13:19:02 +00:00
}
2025-09-15 09:31:47 +00:00
export const getEmploymentTypeColor = (type: EmploymentTypeEnum) => {
switch (type) {
case EmploymentTypeEnum.FullTime:
2025-09-16 13:19:02 +00:00
return 'text-green-600'
2025-09-15 09:31:47 +00:00
case EmploymentTypeEnum.PartTime:
2025-09-16 13:19:02 +00:00
return 'text-blue-600'
2025-09-15 09:31:47 +00:00
case EmploymentTypeEnum.Contract:
2025-09-16 13:19:02 +00:00
return 'text-orange-600'
2025-09-15 09:31:47 +00:00
case EmploymentTypeEnum.Temporary:
2025-09-16 13:19:02 +00:00
return 'text-yellow-600'
2025-09-15 09:31:47 +00:00
case EmploymentTypeEnum.Intern:
2025-09-16 13:19:02 +00:00
return 'text-purple-600'
2025-09-15 09:31:47 +00:00
case EmploymentTypeEnum.Consultant:
2025-09-16 13:19:02 +00:00
return 'text-red-600'
2025-09-15 09:31:47 +00:00
default:
2025-09-16 13:19:02 +00:00
return 'text-gray-600'
2025-09-15 09:31:47 +00:00
}
2025-09-16 13:19:02 +00:00
}
2025-09-15 09:31:47 +00:00
export const getEmploymentTypeText = (type: EmploymentTypeEnum) => {
switch (type) {
case EmploymentTypeEnum.FullTime:
2025-09-16 13:19:02 +00:00
return 'Tam Zamanlı'
2025-09-15 09:31:47 +00:00
case EmploymentTypeEnum.PartTime:
2025-09-16 13:19:02 +00:00
return 'Yarı Zamanlı'
2025-09-15 09:31:47 +00:00
case EmploymentTypeEnum.Contract:
2025-09-16 13:19:02 +00:00
return 'Sözleşmeli'
2025-09-15 09:31:47 +00:00
case EmploymentTypeEnum.Temporary:
2025-09-16 13:19:02 +00:00
return 'Geçici'
2025-09-15 09:31:47 +00:00
case EmploymentTypeEnum.Intern:
2025-09-16 13:19:02 +00:00
return 'Stajyer'
2025-09-15 09:31:47 +00:00
case EmploymentTypeEnum.Consultant:
2025-09-16 13:19:02 +00:00
return 'Danışman'
2025-09-15 09:31:47 +00:00
default:
2025-09-16 13:19:02 +00:00
return 'Belirtilmemiş'
2025-09-15 09:31:47 +00:00
}
2025-09-16 13:19:02 +00:00
}
2025-09-15 09:31:47 +00:00
export const getJobLevelText = (level: JobLevelEnum) => {
switch (level) {
case JobLevelEnum.Entry:
2025-09-16 13:19:02 +00:00
return 'Giriş Seviyesi'
2025-09-15 09:31:47 +00:00
case JobLevelEnum.Junior:
2025-09-16 13:19:02 +00:00
return 'Junior'
2025-09-15 09:31:47 +00:00
case JobLevelEnum.Mid:
2025-09-16 13:19:02 +00:00
return 'Orta Seviye'
2025-09-15 09:31:47 +00:00
case JobLevelEnum.Senior:
2025-09-16 13:19:02 +00:00
return 'Senior'
2025-09-15 09:31:47 +00:00
case JobLevelEnum.Lead:
2025-09-16 13:19:02 +00:00
return 'Lider'
2025-09-15 09:31:47 +00:00
case JobLevelEnum.Manager:
2025-09-16 13:19:02 +00:00
return 'Yönetici'
2025-09-15 09:31:47 +00:00
case JobLevelEnum.Director:
2025-09-16 13:19:02 +00:00
return 'Direktör'
2025-09-15 09:31:47 +00:00
case JobLevelEnum.Executive:
2025-09-16 13:19:02 +00:00
return 'Üst Düzey Yönetici'
2025-09-15 09:31:47 +00:00
default:
2025-09-16 13:19:02 +00:00
return 'Belirlenmemiş'
2025-09-15 09:31:47 +00:00
}
2025-09-16 13:19:02 +00:00
}
2025-09-15 09:31:47 +00:00
export const getJobLevelColor = (level: JobLevelEnum) => {
switch (level) {
case JobLevelEnum.Entry:
2025-09-16 13:19:02 +00:00
return 'bg-gray-100 text-gray-800'
2025-09-15 09:31:47 +00:00
case JobLevelEnum.Junior:
2025-09-16 13:19:02 +00:00
return 'bg-blue-100 text-blue-800'
2025-09-15 09:31:47 +00:00
case JobLevelEnum.Mid:
2025-09-16 13:19:02 +00:00
return 'bg-green-100 text-green-800'
2025-09-15 09:31:47 +00:00
case JobLevelEnum.Senior:
2025-09-16 13:19:02 +00:00
return 'bg-purple-100 text-purple-800'
2025-09-15 09:31:47 +00:00
case JobLevelEnum.Lead:
2025-09-16 13:19:02 +00:00
return 'bg-orange-100 text-orange-800'
2025-09-15 09:31:47 +00:00
case JobLevelEnum.Manager:
2025-09-16 13:19:02 +00:00
return 'bg-red-100 text-red-800'
2025-09-15 09:31:47 +00:00
case JobLevelEnum.Director:
2025-09-16 13:19:02 +00:00
return 'bg-indigo-100 text-indigo-800'
2025-09-15 09:31:47 +00:00
case JobLevelEnum.Executive:
2025-09-16 13:19:02 +00:00
return 'bg-pink-100 text-pink-800'
2025-09-15 09:31:47 +00:00
default:
2025-09-16 13:19:02 +00:00
return 'bg-gray-100 text-gray-800'
2025-09-15 09:31:47 +00:00
}
2025-09-16 13:19:02 +00:00
}
2025-09-15 09:31:47 +00:00
export const getLeaveStatusColor = (status: LeaveStatusEnum) => {
switch (status) {
case LeaveStatusEnum.Pending:
2025-09-16 13:19:02 +00:00
return 'bg-yellow-100 text-yellow-800'
2025-09-15 09:31:47 +00:00
case LeaveStatusEnum.Approved:
2025-09-16 13:19:02 +00:00
return 'bg-green-100 text-green-800'
2025-09-15 09:31:47 +00:00
case LeaveStatusEnum.Rejected:
2025-09-16 13:19:02 +00:00
return 'bg-red-100 text-red-800'
2025-09-15 09:31:47 +00:00
case LeaveStatusEnum.Cancelled:
2025-09-16 13:19:02 +00:00
return 'bg-gray-100 text-gray-800'
2025-09-15 09:31:47 +00:00
default:
2025-09-16 13:19:02 +00:00
return 'bg-gray-100 text-gray-800'
2025-09-15 09:31:47 +00:00
}
2025-09-16 13:19:02 +00:00
}
2025-09-15 09:31:47 +00:00
export const getLeaveStatusText = (status: LeaveStatusEnum) => {
switch (status) {
case LeaveStatusEnum.Pending:
2025-09-16 13:19:02 +00:00
return 'Beklemede'
2025-09-15 09:31:47 +00:00
case LeaveStatusEnum.Approved:
2025-09-16 13:19:02 +00:00
return 'Onaylandı'
2025-09-15 09:31:47 +00:00
case LeaveStatusEnum.Rejected:
2025-09-16 13:19:02 +00:00
return 'Reddedildi'
2025-09-15 09:31:47 +00:00
case LeaveStatusEnum.Cancelled:
2025-09-16 13:19:02 +00:00
return 'İptal Edildi'
2025-09-15 09:31:47 +00:00
default:
2025-09-16 13:19:02 +00:00
return 'Bilinmiyor'
2025-09-15 09:31:47 +00:00
}
2025-09-16 13:19:02 +00:00
}
2025-09-15 09:31:47 +00:00
export const getLeaveTypeText = (type: LeaveTypeEnum) => {
switch (type) {
case LeaveTypeEnum.Annual:
2025-09-16 13:19:02 +00:00
return 'Yıllık İzin'
2025-09-15 09:31:47 +00:00
case LeaveTypeEnum.Sick:
2025-09-16 13:19:02 +00:00
return 'Hastalık İzni'
2025-09-15 09:31:47 +00:00
case LeaveTypeEnum.Maternity:
2025-09-16 13:19:02 +00:00
return 'Doğum İzni'
2025-09-15 09:31:47 +00:00
case LeaveTypeEnum.Paternity:
2025-09-16 13:19:02 +00:00
return 'Babalık İzni'
2025-09-15 09:31:47 +00:00
case LeaveTypeEnum.Personal:
2025-09-16 13:19:02 +00:00
return 'Kişisel İzin'
2025-09-15 09:31:47 +00:00
case LeaveTypeEnum.Emergency:
2025-09-16 13:19:02 +00:00
return 'Acil Durum İzni'
2025-09-15 09:31:47 +00:00
case LeaveTypeEnum.Study:
2025-09-16 13:19:02 +00:00
return 'Eğitim İzni'
2025-09-15 09:31:47 +00:00
case LeaveTypeEnum.Unpaid:
2025-09-16 13:19:02 +00:00
return 'Ücretsiz İzin'
2025-09-15 09:31:47 +00:00
default:
2025-09-16 13:19:02 +00:00
return 'Diğer'
2025-09-15 09:31:47 +00:00
}
2025-09-16 13:19:02 +00:00
}
2025-09-15 09:31:47 +00:00
export const getPayrollStatusColor = (status: PayrollStatusEnum) => {
switch (status) {
case PayrollStatusEnum.Draft:
2025-09-16 13:19:02 +00:00
return 'bg-gray-100 text-gray-800'
2025-09-15 09:31:47 +00:00
case PayrollStatusEnum.Calculated:
2025-09-16 13:19:02 +00:00
return 'bg-blue-100 text-blue-800'
2025-09-15 09:31:47 +00:00
case PayrollStatusEnum.Approved:
2025-09-16 13:19:02 +00:00
return 'bg-green-100 text-green-800'
2025-09-15 09:31:47 +00:00
case PayrollStatusEnum.Paid:
2025-09-16 13:19:02 +00:00
return 'bg-purple-100 text-purple-800'
2025-09-15 09:31:47 +00:00
case PayrollStatusEnum.Cancelled:
2025-09-16 13:19:02 +00:00
return 'bg-red-100 text-red-800'
2025-09-15 09:31:47 +00:00
default:
2025-09-16 13:19:02 +00:00
return 'bg-gray-100 text-gray-800'
2025-09-15 09:31:47 +00:00
}
2025-09-16 13:19:02 +00:00
}
2025-09-15 09:31:47 +00:00
export const getPayrollStatusText = (status: PayrollStatusEnum) => {
switch (status) {
case PayrollStatusEnum.Draft:
2025-09-16 13:19:02 +00:00
return 'Taslak'
2025-09-15 09:31:47 +00:00
case PayrollStatusEnum.Calculated:
2025-09-16 13:19:02 +00:00
return 'Hesaplandı'
2025-09-15 09:31:47 +00:00
case PayrollStatusEnum.Approved:
2025-09-16 13:19:02 +00:00
return 'Onaylandı'
2025-09-15 09:31:47 +00:00
case PayrollStatusEnum.Paid:
2025-09-16 13:19:02 +00:00
return 'Ödendi'
2025-09-15 09:31:47 +00:00
case PayrollStatusEnum.Cancelled:
2025-09-16 13:19:02 +00:00
return 'İptal Edildi'
2025-09-15 09:31:47 +00:00
default:
2025-09-16 13:19:02 +00:00
return 'Bilinmiyor'
2025-09-15 09:31:47 +00:00
}
2025-09-16 13:19:02 +00:00
}
2025-09-15 09:31:47 +00:00
export const getNotificationStatusColor = (status: NotificationStatusEnum) => {
const colors = {
2025-09-16 13:19:02 +00:00
[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]
}
2025-09-15 09:31:47 +00:00
export const getNotificationStatusIcon = (status: NotificationStatusEnum) => {
const icons = {
2025-09-16 13:19:02 +00:00
[NotificationStatusEnum.Open]: <FaExclamationTriangle className="w-4 h-4" />,
2025-09-15 09:31:47 +00:00
[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" />,
2025-09-16 13:19:02 +00:00
}
return icons[status]
}
2025-09-15 09:31:47 +00:00
export const getNotificationStatusText = (status: NotificationStatusEnum) => {
const statuses = {
2025-09-16 13:19:02 +00:00
[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]
}
2025-09-15 09:31:47 +00:00
export const getWorkOrderStatusText = (status: WorkOrderStatusEnum) => {
const statuses = {
2025-09-16 13:19:02 +00:00
[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]
}
2025-09-15 09:31:47 +00:00
export const getWorkOrderStatusColor = (status: WorkOrderStatusEnum) => {
const colors = {
2025-09-16 13:19:02 +00:00
[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]
}
2025-09-15 09:31:47 +00:00
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" />,
2025-09-16 13:19:02 +00:00
}
return icons[status]
}
2025-09-15 09:31:47 +00:00
export const getFaultTypeText = (type: FaultTypeEnum) => {
const types = {
2025-09-16 13:19:02 +00:00
[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]
}
2025-09-15 09:31:47 +00:00
export const getFaultTypeColor = (type: FaultTypeEnum) => {
const colors = {
2025-09-16 13:19:02 +00:00
[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]
}
2025-09-15 09:31:47 +00:00
2025-09-17 09:46:58 +00:00
export const getCriticalityLevelText = (criticality: CriticalityLevelEnum) => {
const levels = {
[CriticalityLevelEnum.Low]: 'Düşük',
[CriticalityLevelEnum.Medium]: 'Orta',
[CriticalityLevelEnum.High]: 'Yüksek',
[CriticalityLevelEnum.Critical]: 'Kritik',
}
return levels[criticality]
}
2025-09-15 09:31:47 +00:00
export const getCriticalityLevelColor = (severity: CriticalityLevelEnum) => {
const colors = {
2025-09-16 13:19:02 +00:00
[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]
}
2025-09-15 09:31:47 +00:00
export const getMaintenancePlanTypeText = (type: MaintenancePlanTypeEnum) => {
const types = {
2025-09-16 13:19:02 +00:00
[MaintenancePlanTypeEnum.Preventive]: 'Önleyici',
[MaintenancePlanTypeEnum.Corrective]: 'Düzeltici',
[MaintenancePlanTypeEnum.Predictive]: 'Tahminsel',
[MaintenancePlanTypeEnum.Condition]: 'Duruma Bağlı',
}
return types[type]
}
2025-09-15 09:31:47 +00:00
export const getMaintenancePlanTypeColor = (type: MaintenancePlanTypeEnum) => {
const colors = {
2025-09-16 13:19:02 +00:00
[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]
}
2025-09-17 09:46:58 +00:00
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) => {
2025-09-15 09:31:47 +00:00
const units = {
2025-09-16 13:19:02 +00:00
[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ü',
}
2025-09-15 09:31:47 +00:00
2025-09-16 13:19:02 +00:00
return frequency === 1 ? units[unit] : `${frequency} ${units[unit]}`
}
2025-09-15 09:31:47 +00:00
export const getTeamRoleText = (role: TeamRoleEnum) => {
const roles = {
2025-09-16 13:19:02 +00:00
[TeamRoleEnum.Member]: 'Üye',
[TeamRoleEnum.Specialist]: 'Uzman',
[TeamRoleEnum.Lead]: 'Lider',
[TeamRoleEnum.Manager]: 'Yönetici',
}
return roles[role]
}
2025-09-15 09:31:47 +00:00
export const getTeamRoleColor = (role: TeamRoleEnum) => {
const colors = {
2025-09-16 13:19:02 +00:00
[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]
}
2025-09-15 09:31:47 +00:00
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" />,
2025-09-16 13:19:02 +00:00
}
return icons[role]
}
2025-09-15 09:31:47 +00:00
export const getWorkOrderTypeText = (type: WorkOrderTypeEnum) => {
const types = {
2025-09-16 13:19:02 +00:00
[WorkOrderTypeEnum.Preventive]: 'Önleyici',
[WorkOrderTypeEnum.Corrective]: 'Düzeltici',
[WorkOrderTypeEnum.Emergency]: 'Acil',
[WorkOrderTypeEnum.Inspection]: 'İnceleme',
[WorkOrderTypeEnum.Calibration]: 'Kalibrasyon',
}
return types[type]
}
2025-09-15 09:31:47 +00:00
export const getWorkOrderTypeColor = (type: WorkOrderTypeEnum) => {
const colors = {
2025-09-16 13:19:02 +00:00
[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]
}
2025-09-15 09:31:47 +00:00
export const getWorkCenterStatusText = (status: WorkCenterStatusEnum) => {
const statuses = {
2025-09-16 13:19:02 +00:00
[WorkCenterStatusEnum.Operational]: 'Operasyonel',
[WorkCenterStatusEnum.UnderMaintenance]: 'Bakımda',
[WorkCenterStatusEnum.OutOfOrder]: 'Arızalı',
[WorkCenterStatusEnum.Retired]: 'Emekli',
}
return statuses[status]
}
2025-09-15 09:31:47 +00:00
export const getWorkCenterStatusColor = (status: WorkCenterStatusEnum) => {
const colors = {
2025-09-16 13:19:02 +00:00
[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]
}
2025-09-15 09:31:47 +00:00
export const getWorkCenterStatusIcon = (status: WorkCenterStatusEnum) => {
switch (status) {
case WorkCenterStatusEnum.Operational:
2025-09-16 13:19:02 +00:00
return <FaCheckCircle size={14} />
2025-09-15 09:31:47 +00:00
case WorkCenterStatusEnum.UnderMaintenance:
2025-09-16 13:19:02 +00:00
return <FaWrench size={14} />
2025-09-15 09:31:47 +00:00
case WorkCenterStatusEnum.OutOfOrder:
2025-09-16 13:19:02 +00:00
return <FaExclamationTriangle size={14} />
2025-09-15 09:31:47 +00:00
case WorkCenterStatusEnum.Retired:
2025-09-16 13:19:02 +00:00
return <FaClock size={14} />
2025-09-15 09:31:47 +00:00
default:
2025-09-16 13:19:02 +00:00
return <FaCog size={14} />
2025-09-15 09:31:47 +00:00
}
2025-09-16 13:19:02 +00:00
}
2025-09-15 09:31:47 +00:00
2025-09-16 13:19:02 +00:00
export const getRequirementSourceTypeText = (sourceType: RequirementSourceTypeEnum) => {
2025-09-15 09:31:47 +00:00
const sourceLabels = {
2025-09-16 13:19:02 +00:00
[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) => {
2025-09-15 09:31:47 +00:00
const sourceColors = {
2025-09-16 13:19:02 +00:00
[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) => {
2025-09-15 09:31:47 +00:00
switch (status) {
case ProductionOrderStatusEnum.Created:
2025-09-16 13:19:02 +00:00
return 'bg-gray-100 text-gray-800'
2025-09-15 09:31:47 +00:00
case ProductionOrderStatusEnum.Released:
2025-09-16 13:19:02 +00:00
return 'bg-blue-100 text-blue-800'
2025-09-15 09:31:47 +00:00
case ProductionOrderStatusEnum.InProgress:
2025-09-16 13:19:02 +00:00
return 'bg-yellow-100 text-yellow-800'
2025-09-15 09:31:47 +00:00
case ProductionOrderStatusEnum.Completed:
2025-09-16 13:19:02 +00:00
return 'bg-green-100 text-green-800'
2025-09-15 09:31:47 +00:00
case ProductionOrderStatusEnum.Cancelled:
2025-09-16 13:19:02 +00:00
return 'bg-red-100 text-red-800'
2025-09-15 09:31:47 +00:00
case ProductionOrderStatusEnum.OnHold:
2025-09-16 13:19:02 +00:00
return 'bg-orange-100 text-orange-800'
2025-09-15 09:31:47 +00:00
default:
2025-09-16 13:19:02 +00:00
return 'bg-gray-100 text-gray-800'
2025-09-15 09:31:47 +00:00
}
2025-09-16 13:19:02 +00:00
}
2025-09-15 09:31:47 +00:00
2025-09-16 13:19:02 +00:00
export const getProductionOrderStatusText = (status: ProductionOrderStatusEnum) => {
2025-09-15 09:31:47 +00:00
switch (status) {
case ProductionOrderStatusEnum.Created:
2025-09-16 13:19:02 +00:00
return 'Oluşturuldu'
2025-09-15 09:31:47 +00:00
case ProductionOrderStatusEnum.Released:
2025-09-16 13:19:02 +00:00
return 'Serbest Bırakıldı'
2025-09-15 09:31:47 +00:00
case ProductionOrderStatusEnum.InProgress:
2025-09-16 13:19:02 +00:00
return 'Devam Ediyor'
2025-09-15 09:31:47 +00:00
case ProductionOrderStatusEnum.Completed:
2025-09-16 13:19:02 +00:00
return 'Tamamlandı'
2025-09-15 09:31:47 +00:00
case ProductionOrderStatusEnum.Cancelled:
2025-09-16 13:19:02 +00:00
return 'İptal Edildi'
2025-09-15 09:31:47 +00:00
case ProductionOrderStatusEnum.OnHold:
2025-09-16 13:19:02 +00:00
return 'Beklemede'
2025-09-15 09:31:47 +00:00
default:
2025-09-16 13:19:02 +00:00
return 'Bilinmiyor'
2025-09-15 09:31:47 +00:00
}
2025-09-16 13:19:02 +00:00
}
2025-09-15 09:31:47 +00:00
2025-09-16 13:19:02 +00:00
export const getProductionOrderStatusIcon = (status: ProductionOrderStatusEnum) => {
2025-09-15 09:31:47 +00:00
switch (status) {
case ProductionOrderStatusEnum.Created:
2025-09-16 13:19:02 +00:00
return <FaClock size={14} />
2025-09-15 09:31:47 +00:00
case ProductionOrderStatusEnum.Released:
2025-09-16 13:19:02 +00:00
return <FaPlay size={14} />
2025-09-15 09:31:47 +00:00
case ProductionOrderStatusEnum.InProgress:
2025-09-16 13:19:02 +00:00
return <FaCog size={14} />
2025-09-15 09:31:47 +00:00
case ProductionOrderStatusEnum.Completed:
2025-09-16 13:19:02 +00:00
return <FaCheckCircle size={14} />
2025-09-15 09:31:47 +00:00
case ProductionOrderStatusEnum.Cancelled:
2025-09-16 13:19:02 +00:00
return <FaExclamationTriangle size={14} />
2025-09-15 09:31:47 +00:00
case ProductionOrderStatusEnum.OnHold:
2025-09-16 13:19:02 +00:00
return <FaPause size={14} />
2025-09-15 09:31:47 +00:00
default:
2025-09-16 13:19:02 +00:00
return <FaIndustry size={14} />
2025-09-15 09:31:47 +00:00
}
2025-09-16 13:19:02 +00:00
}
2025-09-15 09:31:47 +00:00
export const getProgressPercentage = (order: MrpProductionOrder) => {
2025-09-16 13:19:02 +00:00
if (order.plannedQuantity === 0) return 0
return Math.round((order.confirmedQuantity / order.plannedQuantity) * 100)
}
2025-09-15 09:31:47 +00:00
export const getProgressColor = (percentage: number) => {
2025-09-16 13:19:02 +00:00
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'
}
2025-09-17 09:46:58 +00:00
export const getProductionOrderTypeText = (type: ProductionOrderTypeEnum) => {
2025-09-15 09:31:47 +00:00
switch (type) {
case ProductionOrderTypeEnum.Standard:
2025-09-16 13:19:02 +00:00
return 'Standart'
2025-09-15 09:31:47 +00:00
case ProductionOrderTypeEnum.Rework:
2025-09-16 13:19:02 +00:00
return 'Yeniden İşleme'
2025-09-15 09:31:47 +00:00
case ProductionOrderTypeEnum.Maintenance:
2025-09-16 13:19:02 +00:00
return 'Bakım'
2025-09-15 09:31:47 +00:00
case ProductionOrderTypeEnum.Sample:
2025-09-16 13:19:02 +00:00
return 'Numune'
2025-09-15 09:31:47 +00:00
default:
2025-09-16 13:19:02 +00:00
return '-'
2025-09-15 09:31:47 +00:00
}
2025-09-16 13:19:02 +00:00
}
2025-09-15 09:31:47 +00:00
2025-09-16 13:19:02 +00:00
export const getRecommendationStatusText = (status: RecommendationStatusEnum) => {
2025-09-15 09:31:47 +00:00
const statusLabels = {
2025-09-16 13:19:02 +00:00
[RecommendationStatusEnum.Open]: 'Açık',
[RecommendationStatusEnum.Implemented]: 'Uygulandı',
[RecommendationStatusEnum.Rejected]: 'Reddedildi',
[RecommendationStatusEnum.Expired]: 'Süresi Doldu',
}
return statusLabels[status]
}
export const getRecommendationStatusColor = (status: RecommendationStatusEnum) => {
2025-09-15 09:31:47 +00:00
const statusColors = {
2025-09-16 13:19:02 +00:00
[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]
}
2025-09-15 09:31:47 +00:00
export const getPsActivityTypeText = (type: PsActivityTypeEnum): string => {
const labels: Record<PsActivityTypeEnum, string> = {
2025-09-16 13:19:02 +00:00
[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
}
2025-09-15 09:31:47 +00:00
export const getPsActivityTypeIcon = (activityType: PsActivityTypeEnum) => {
2025-09-16 13:19:02 +00:00
const icons: Record<PsActivityTypeEnum, React.ComponentType<React.ComponentProps<'svg'>>> = {
2025-09-15 09:31:47 +00:00
[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,
2025-09-16 13:19:02 +00:00
}
return icons[activityType] || FaCog
}
2025-09-15 09:31:47 +00:00
2025-09-16 13:19:02 +00:00
export const getPsActivityTypeColor = (activityType: PsActivityTypeEnum): string => {
2025-09-15 09:31:47 +00:00
const colors: Record<PsActivityTypeEnum, string> = {
2025-09-16 13:19:02 +00:00
[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'
}
2025-09-15 09:31:47 +00:00
2025-09-17 09:46:58 +00:00
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'
2025-09-16 13:19:02 +00:00
}
}
2025-09-15 09:31:47 +00:00
2025-09-17 09:46:58 +00:00
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'
2025-09-16 13:19:02 +00:00
}
}
2025-09-15 09:31:47 +00:00
2025-09-17 09:46:58 +00:00
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
2025-09-16 13:19:02 +00:00
}
}
2025-09-15 09:31:47 +00:00
export const getPsDocumentTypeText = (type: PsDocumentTypeEnum): string => {
const typeLabels = {
2025-09-16 13:19:02 +00:00
[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
}
2025-09-15 09:31:47 +00:00
export const getPhaseStatusColor = (status: PhaseStatusEnum) => {
switch (status) {
case PhaseStatusEnum.NotStarted:
2025-09-16 13:19:02 +00:00
return 'bg-blue-100 text-blue-800'
2025-09-15 09:31:47 +00:00
case PhaseStatusEnum.InProgress:
2025-09-16 13:19:02 +00:00
return 'bg-yellow-100 text-yellow-800'
2025-09-15 09:31:47 +00:00
case PhaseStatusEnum.Completed:
2025-09-16 13:19:02 +00:00
return 'bg-green-100 text-green-800'
2025-09-15 09:31:47 +00:00
case PhaseStatusEnum.OnHold:
2025-09-16 13:19:02 +00:00
return 'bg-orange-100 text-orange-800'
2025-09-15 09:31:47 +00:00
case PhaseStatusEnum.Cancelled:
2025-09-16 13:19:02 +00:00
return 'bg-red-100 text-red-800'
2025-09-15 09:31:47 +00:00
default:
2025-09-16 13:19:02 +00:00
return 'bg-gray-100 text-gray-800'
2025-09-15 09:31:47 +00:00
}
2025-09-16 13:19:02 +00:00
}
2025-09-15 09:31:47 +00:00
export const getPhaseStatusText = (status: PhaseStatusEnum) => {
switch (status) {
case PhaseStatusEnum.NotStarted:
2025-09-16 13:19:02 +00:00
return 'Başlamadı'
2025-09-15 09:31:47 +00:00
case PhaseStatusEnum.InProgress:
2025-09-16 13:19:02 +00:00
return 'Devam Ediyor'
2025-09-15 09:31:47 +00:00
case PhaseStatusEnum.Completed:
2025-09-16 13:19:02 +00:00
return 'Tamamlandı'
2025-09-15 09:31:47 +00:00
case PhaseStatusEnum.OnHold:
2025-09-16 13:19:02 +00:00
return 'Beklemede'
2025-09-15 09:31:47 +00:00
case PhaseStatusEnum.Cancelled:
2025-09-16 13:19:02 +00:00
return 'İptal Edildi'
2025-09-15 09:31:47 +00:00
default:
2025-09-16 13:19:02 +00:00
return 'Bilinmiyor'
2025-09-15 09:31:47 +00:00
}
2025-09-16 13:19:02 +00:00
}
2025-09-15 09:31:47 +00:00
export const getPhaseStatusIcon = (status: PhaseStatusEnum) => {
switch (status) {
case PhaseStatusEnum.NotStarted:
2025-09-16 13:19:02 +00:00
return <FaClock className="w-4 h-4" />
2025-09-15 09:31:47 +00:00
case PhaseStatusEnum.InProgress:
2025-09-16 13:19:02 +00:00
return <FaBolt className="w-4 h-4" />
2025-09-15 09:31:47 +00:00
case PhaseStatusEnum.Completed:
2025-09-16 13:19:02 +00:00
return <FaCheckCircle className="w-4 h-4" />
2025-09-15 09:31:47 +00:00
case PhaseStatusEnum.OnHold:
2025-09-16 13:19:02 +00:00
return <FaExclamationTriangle className="w-4 h-4" />
2025-09-15 09:31:47 +00:00
case PhaseStatusEnum.Cancelled:
2025-09-16 13:19:02 +00:00
return <FaTimesCircle className="w-4 h-4" />
2025-09-15 09:31:47 +00:00
default:
2025-09-16 13:19:02 +00:00
return <FaClock className="w-4 h-4" />
2025-09-15 09:31:47 +00:00
}
2025-09-16 13:19:02 +00:00
}
2025-09-15 09:31:47 +00:00
2025-09-17 09:46:58 +00:00
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'
}
}
2025-09-15 09:31:47 +00:00
export const getProjectStatusColor = (status: ProjectStatusEnum) => {
switch (status) {
case ProjectStatusEnum.Planning:
2025-09-16 13:19:02 +00:00
return 'bg-blue-100 text-blue-800 border-blue-200'
2025-09-15 09:31:47 +00:00
case ProjectStatusEnum.Active:
2025-09-16 13:19:02 +00:00
return 'bg-green-100 text-green-800 border-green-200'
2025-09-15 09:31:47 +00:00
case ProjectStatusEnum.OnHold:
2025-09-16 13:19:02 +00:00
return 'bg-yellow-100 text-yellow-800 border-yellow-200'
2025-09-15 09:31:47 +00:00
case ProjectStatusEnum.Completed:
2025-09-16 13:19:02 +00:00
return 'bg-emerald-100 text-emerald-800 border-emerald-200'
2025-09-15 09:31:47 +00:00
case ProjectStatusEnum.Cancelled:
2025-09-16 13:19:02 +00:00
return 'bg-red-100 text-red-800 border-red-200'
2025-09-15 09:31:47 +00:00
default:
2025-09-16 13:19:02 +00:00
return 'bg-gray-100 text-gray-800 border-gray-200'
2025-09-15 09:31:47 +00:00
}
2025-09-16 13:19:02 +00:00
}
2025-09-15 09:31:47 +00:00
export const getProjectStatusIcon = (status: ProjectStatusEnum) => {
switch (status) {
case ProjectStatusEnum.Planning:
2025-09-16 13:19:02 +00:00
return <FaClock className="w-4 h-4" />
2025-09-15 09:31:47 +00:00
case ProjectStatusEnum.Active:
2025-09-16 13:19:02 +00:00
return <FaCheckCircle className="w-4 h-4" />
2025-09-15 09:31:47 +00:00
case ProjectStatusEnum.OnHold:
2025-09-16 13:19:02 +00:00
return <FaPause className="w-4 h-4" />
2025-09-15 09:31:47 +00:00
case ProjectStatusEnum.Completed:
2025-09-16 13:19:02 +00:00
return <FaCheckCircle className="w-4 h-4" />
2025-09-15 09:31:47 +00:00
case ProjectStatusEnum.Cancelled:
2025-09-16 13:19:02 +00:00
return <FaBan className="w-4 h-4" />
2025-09-15 09:31:47 +00:00
default:
2025-09-16 13:19:02 +00:00
return <FaClock className="w-4 h-4" />
2025-09-15 09:31:47 +00:00
}
2025-09-16 13:19:02 +00:00
}
2025-09-15 09:31:47 +00:00
2025-09-17 09:46:58 +00:00
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'
2025-09-15 09:31:47 +00:00
default:
2025-09-17 09:46:58 +00:00
return 'Diğer'
2025-09-15 09:31:47 +00:00
}
2025-09-16 13:19:02 +00:00
}
2025-09-15 09:31:47 +00:00
export const getProjectTypeColor = (type: ProjectTypeEnum) => {
switch (type) {
case ProjectTypeEnum.Internal:
2025-09-16 13:19:02 +00:00
return 'bg-purple-100 text-purple-800 border-purple-200'
2025-09-15 09:31:47 +00:00
case ProjectTypeEnum.Customer:
2025-09-16 13:19:02 +00:00
return 'bg-blue-100 text-blue-800 border-blue-200'
2025-09-15 09:31:47 +00:00
case ProjectTypeEnum.Research:
2025-09-16 13:19:02 +00:00
return 'bg-green-100 text-green-800 border-green-200'
2025-09-15 09:31:47 +00:00
case ProjectTypeEnum.Maintenance:
2025-09-16 13:19:02 +00:00
return 'bg-orange-100 text-orange-800 border-orange-200'
2025-09-15 09:31:47 +00:00
default:
2025-09-16 13:19:02 +00:00
return 'bg-gray-100 text-gray-800 border-gray-200'
2025-09-15 09:31:47 +00:00
}
2025-09-16 13:19:02 +00:00
}
2025-09-15 09:31:47 +00:00
2025-09-17 09:46:58 +00:00
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:
2025-09-16 13:19:02 +00:00
return 'Diğer'
2025-09-15 09:31:47 +00:00
default:
2025-09-17 09:46:58 +00:00
return 'Bilinmeyen'
2025-09-15 09:31:47 +00:00
}
2025-09-16 13:19:02 +00:00
}
2025-09-15 09:31:47 +00:00
2025-09-17 09:46:58 +00:00
export const getPhaseCategoryColor = (category: PhaseCategoryEnum) => {
2025-09-15 09:31:47 +00:00
switch (category) {
2025-09-17 09:46:58 +00:00
case PhaseCategoryEnum.Planning:
2025-09-16 13:19:02 +00:00
return 'bg-purple-100 text-purple-800'
2025-09-17 09:46:58 +00:00
case PhaseCategoryEnum.Development:
2025-09-16 13:19:02 +00:00
return 'bg-blue-100 text-blue-800'
2025-09-17 09:46:58 +00:00
case PhaseCategoryEnum.Testing:
2025-09-16 13:19:02 +00:00
return 'bg-orange-100 text-orange-800'
2025-09-17 09:46:58 +00:00
case PhaseCategoryEnum.Deployment:
2025-09-16 13:19:02 +00:00
return 'bg-green-100 text-green-800'
2025-09-17 09:46:58 +00:00
case PhaseCategoryEnum.Design:
2025-09-16 13:19:02 +00:00
return 'bg-pink-100 text-pink-800'
2025-09-15 09:31:47 +00:00
default:
2025-09-16 13:19:02 +00:00
return 'bg-gray-100 text-gray-800'
2025-09-15 09:31:47 +00:00
}
2025-09-16 13:19:02 +00:00
}
2025-09-15 09:31:47 +00:00
2025-09-17 09:46:58 +00:00
export const getTaskStatusText = (status: TaskStatusEnum) => {
2025-09-15 09:31:47 +00:00
switch (status) {
case TaskStatusEnum.NotStarted:
2025-09-17 09:46:58 +00:00
return 'Başlanmadı'
2025-09-15 09:31:47 +00:00
case TaskStatusEnum.InProgress:
2025-09-17 09:46:58 +00:00
return 'Devam Ediyor'
2025-09-15 09:31:47 +00:00
case TaskStatusEnum.Completed:
2025-09-17 09:46:58 +00:00
return 'Tamamlandı'
2025-09-15 09:31:47 +00:00
case TaskStatusEnum.OnHold:
2025-09-17 09:46:58 +00:00
return 'Beklemede'
2025-09-15 09:31:47 +00:00
case TaskStatusEnum.Cancelled:
2025-09-17 09:46:58 +00:00
return 'İptal Edildi'
2025-09-15 09:31:47 +00:00
default:
2025-09-17 09:46:58 +00:00
return 'Bilinmiyor'
2025-09-15 09:31:47 +00:00
}
2025-09-16 13:19:02 +00:00
}
2025-09-15 09:31:47 +00:00
export const getTaskStatusColor = (status: TaskStatusEnum) => {
switch (status) {
case TaskStatusEnum.NotStarted:
2025-09-16 13:19:02 +00:00
return 'bg-gray-100 text-gray-800'
2025-09-15 09:31:47 +00:00
case TaskStatusEnum.InProgress:
2025-09-16 13:19:02 +00:00
return 'bg-blue-100 text-blue-800'
2025-09-15 09:31:47 +00:00
case TaskStatusEnum.Completed:
2025-09-16 13:19:02 +00:00
return 'bg-green-100 text-green-800'
2025-09-15 09:31:47 +00:00
case TaskStatusEnum.OnHold:
2025-09-16 13:19:02 +00:00
return 'bg-yellow-100 text-yellow-800'
2025-09-15 09:31:47 +00:00
case TaskStatusEnum.Cancelled:
2025-09-16 13:19:02 +00:00
return 'bg-red-100 text-red-800'
2025-09-15 09:31:47 +00:00
default:
2025-09-16 13:19:02 +00:00
return 'bg-gray-100 text-gray-800'
2025-09-15 09:31:47 +00:00
}
2025-09-16 13:19:02 +00:00
}
2025-09-15 09:31:47 +00:00
2025-09-17 09:46:58 +00:00
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'
}
}
2025-09-15 09:31:47 +00:00
export const getTaskTypeColor = (taskType: TaskTypeEnum) => {
switch (taskType) {
case TaskTypeEnum.Development:
2025-09-16 13:19:02 +00:00
return 'bg-purple-100 text-purple-800'
2025-09-15 09:31:47 +00:00
case TaskTypeEnum.Testing:
2025-09-16 13:19:02 +00:00
return 'bg-green-100 text-green-800'
2025-09-15 09:31:47 +00:00
case TaskTypeEnum.Documentation:
2025-09-16 13:19:02 +00:00
return 'bg-blue-100 text-blue-800'
2025-09-15 09:31:47 +00:00
case TaskTypeEnum.Review:
2025-09-16 13:19:02 +00:00
return 'bg-yellow-100 text-yellow-800'
2025-09-15 09:31:47 +00:00
case TaskTypeEnum.Deployment:
2025-09-16 13:19:02 +00:00
return 'bg-red-100 text-red-800'
2025-09-15 09:31:47 +00:00
case TaskTypeEnum.Meeting:
2025-09-16 13:19:02 +00:00
return 'bg-gray-100 text-gray-800'
2025-09-15 09:31:47 +00:00
default:
2025-09-16 13:19:02 +00:00
return 'bg-gray-100 text-gray-800'
2025-09-15 09:31:47 +00:00
}
2025-09-16 13:19:02 +00:00
}
2025-09-15 09:31:47 +00:00
export const getRiskCategoryText = (category: RiskCategoryEnum): string => {
const labels = {
2025-09-16 13:19:02 +00:00
[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 => {
2025-09-15 09:31:47 +00:00
const labels = {
2025-09-16 13:19:02 +00:00
[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
}
2025-09-15 09:31:47 +00:00
export const getRiskImpactText = (impact: RiskImpactEnum): string => {
const labels = {
2025-09-16 13:19:02 +00:00
[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
}
2025-09-15 09:31:47 +00:00
export const getRiskLevelText = (level: RiskLevelEnum): string => {
const labels = {
2025-09-16 13:19:02 +00:00
[RiskLevelEnum.Low]: 'Düşük',
[RiskLevelEnum.Medium]: 'Orta',
[RiskLevelEnum.High]: 'Yüksek',
[RiskLevelEnum.Critical]: 'Kritik',
}
return labels[level] || level
}
2025-09-15 09:31:47 +00:00
2025-09-17 09:46:58 +00:00
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'
}
2025-09-15 09:31:47 +00:00
export const getRiskStatusText = (status: RiskStatusEnum): string => {
const labels = {
2025-09-16 13:19:02 +00:00
[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
}
2025-09-15 09:31:47 +00:00
export const getDailyUpdateStatusColor = (status: DailyUpdateStatusEnum) => {
switch (status) {
case DailyUpdateStatusEnum.Draft:
2025-09-16 13:19:02 +00:00
return 'bg-gray-100 text-gray-800'
2025-09-15 09:31:47 +00:00
case DailyUpdateStatusEnum.Submitted:
2025-09-16 13:19:02 +00:00
return 'bg-blue-100 text-blue-800'
2025-09-15 09:31:47 +00:00
case DailyUpdateStatusEnum.Approved:
2025-09-16 13:19:02 +00:00
return 'bg-green-100 text-green-800'
2025-09-15 09:31:47 +00:00
case DailyUpdateStatusEnum.Rejected:
2025-09-16 13:19:02 +00:00
return 'bg-red-100 text-red-800'
2025-09-15 09:31:47 +00:00
default:
2025-09-16 13:19:02 +00:00
return 'bg-gray-100 text-gray-800'
2025-09-15 09:31:47 +00:00
}
2025-09-16 13:19:02 +00:00
}
2025-09-15 09:31:47 +00:00
export const getWorkTypeColor = (workType: WorkTypeEnum) => {
const colors = {
2025-09-16 13:19:02 +00:00
[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'
}
2025-09-15 09:31:47 +00:00
export const getDeliveryStatusColor = (status: DeliveryStatusEnum) => {
const colors = {
2025-09-16 13:19:02 +00:00
[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]
}
2025-09-15 09:31:47 +00:00
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" />,
2025-09-16 13:19:02 +00:00
[DeliveryStatusEnum.PartiallyDelivered]: <FaExclamationTriangle className="w-4 h-4" />,
2025-09-15 09:31:47 +00:00
[DeliveryStatusEnum.Delayed]: <FaClock className="w-4 h-4" />,
[DeliveryStatusEnum.Returned]: <FaBox className="w-4 h-4" />,
2025-09-16 13:19:02 +00:00
[DeliveryStatusEnum.Cancelled]: <FaExclamationTriangle className="w-4 h-4" />,
}
return icons[status]
}
export const getConditionColor = (condition: MmDeliveryItem['condition']) => {
2025-09-15 09:31:47 +00:00
const colors = {
2025-09-16 13:19:02 +00:00
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']) => {
2025-09-15 09:31:47 +00:00
const texts = {
2025-09-16 13:19:02 +00:00
Good: 'İyi',
Damaged: 'Hasarlı',
Missing: 'Eksik',
}
return texts[condition]
}
2025-09-15 09:31:47 +00:00
export const getOrderStatusText = (status: OrderStatusEnum) => {
const texts = {
2025-09-16 13:19:02 +00:00
[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]
}
2025-09-15 09:31:47 +00:00
export const getOrderStatusColor = (status: OrderStatusEnum) => {
const colors = {
2025-09-16 13:19:02 +00:00
[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]
}
2025-09-15 09:31:47 +00:00
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" />,
2025-09-16 13:19:02 +00:00
[OrderStatusEnum.PartiallyDelivered]: <FaExclamationTriangle className="w-4 h-4" />,
2025-09-15 09:31:47 +00:00
[OrderStatusEnum.Delivered]: <FaTruck className="w-4 h-4" />,
[OrderStatusEnum.Completed]: <FaCheckCircle className="w-4 h-4" />,
[OrderStatusEnum.Cancelled]: <FaTimesCircle className="w-4 h-4" />,
2025-09-16 13:19:02 +00:00
[OrderStatusEnum.PartiallyReceived]: <FaExclamationTriangle className="w-4 h-4" />,
2025-09-15 09:31:47 +00:00
[OrderStatusEnum.Received]: <FaCheckCircle className="w-4 h-4" />,
[OrderStatusEnum.Invoiced]: <FaFileInvoiceDollar className="w-4 h-4" />,
[OrderStatusEnum.Closed]: <FaLock className="w-4 h-4" />,
2025-09-16 13:19:02 +00:00
}
return icons[status]
}
2025-09-15 09:31:47 +00:00
export const getRequestStatusText = (status: RequestStatusEnum) => {
const statuses = {
2025-09-16 13:19:02 +00:00
[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]
}
2025-09-15 09:31:47 +00:00
export const getRequestStatusColor = (status: RequestStatusEnum) => {
const colors = {
2025-09-16 13:19:02 +00:00
[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]
}
2025-09-15 09:31:47 +00:00
export const getApprovalStatusIcon = (status: ApprovalStatusEnum) => {
switch (status) {
case ApprovalStatusEnum.Approved:
2025-09-16 13:19:02 +00:00
return <FaCheckCircle className="w-4 h-4 text-green-600" />
2025-09-15 09:31:47 +00:00
case ApprovalStatusEnum.Rejected:
2025-09-16 13:19:02 +00:00
return <FaTimesCircle className="w-4 h-4 text-red-600" />
2025-09-15 09:31:47 +00:00
case ApprovalStatusEnum.Pending:
2025-09-16 13:19:02 +00:00
return <FaClock className="w-4 h-4 text-yellow-600" />
2025-09-15 09:31:47 +00:00
default:
2025-09-16 13:19:02 +00:00
return <FaClock className="w-4 h-4 text-gray-600" />
2025-09-15 09:31:47 +00:00
}
2025-09-16 13:19:02 +00:00
}
2025-09-15 09:31:47 +00:00
2025-09-17 09:46:58 +00:00
export const getRequisitionStatusText = (status: RequisitionStatusEnum) => {
2025-09-15 09:31:47 +00:00
switch (status) {
case RequisitionStatusEnum.Draft:
2025-09-17 09:46:58 +00:00
return 'Taslak'
2025-09-15 09:31:47 +00:00
case RequisitionStatusEnum.Submitted:
2025-09-17 09:46:58 +00:00
return 'Gönderildi'
2025-09-15 09:31:47 +00:00
case RequisitionStatusEnum.InApproval:
2025-09-17 09:46:58 +00:00
return 'Onayda'
2025-09-15 09:31:47 +00:00
case RequisitionStatusEnum.Approved:
2025-09-17 09:46:58 +00:00
return 'Onaylandı'
2025-09-15 09:31:47 +00:00
case RequisitionStatusEnum.Rejected:
2025-09-17 09:46:58 +00:00
return 'Reddedildi'
2025-09-15 09:31:47 +00:00
case RequisitionStatusEnum.Cancelled:
2025-09-17 09:46:58 +00:00
return 'İptal Edildi'
2025-09-15 09:31:47 +00:00
case RequisitionStatusEnum.Converted:
2025-09-17 09:46:58 +00:00
return 'Siparişe Dönüştürüldü'
2025-09-15 09:31:47 +00:00
default:
2025-09-17 09:46:58 +00:00
return 'Bilinmiyor'
2025-09-15 09:31:47 +00:00
}
2025-09-16 13:19:02 +00:00
}
2025-09-15 09:31:47 +00:00
2025-09-17 09:46:58 +00:00
export const getRequisitionStatusColor = (status: RequisitionStatusEnum) => {
2025-09-15 09:31:47 +00:00
switch (status) {
case RequisitionStatusEnum.Draft:
2025-09-17 09:46:58 +00:00
return 'bg-gray-100 text-gray-800'
2025-09-15 09:31:47 +00:00
case RequisitionStatusEnum.Submitted:
2025-09-17 09:46:58 +00:00
return 'bg-blue-100 text-blue-800'
2025-09-15 09:31:47 +00:00
case RequisitionStatusEnum.InApproval:
2025-09-17 09:46:58 +00:00
return 'bg-yellow-100 text-yellow-800'
2025-09-15 09:31:47 +00:00
case RequisitionStatusEnum.Approved:
2025-09-17 09:46:58 +00:00
return 'bg-green-100 text-green-800'
2025-09-15 09:31:47 +00:00
case RequisitionStatusEnum.Rejected:
2025-09-17 09:46:58 +00:00
return 'bg-red-100 text-red-800'
2025-09-15 09:31:47 +00:00
case RequisitionStatusEnum.Cancelled:
2025-09-17 09:46:58 +00:00
return 'bg-gray-100 text-gray-800'
2025-09-15 09:31:47 +00:00
case RequisitionStatusEnum.Converted:
2025-09-17 09:46:58 +00:00
return 'bg-purple-100 text-purple-800'
2025-09-15 09:31:47 +00:00
default:
2025-09-17 09:46:58 +00:00
return 'bg-gray-100 text-gray-800'
2025-09-15 09:31:47 +00:00
}
2025-09-16 13:19:02 +00:00
}
2025-09-15 09:31:47 +00:00
export const getRequisitionStatusIcon = (status: RequisitionStatusEnum) => {
switch (status) {
case RequisitionStatusEnum.Draft:
2025-09-16 13:19:02 +00:00
return <FaFileAlt size={14} />
2025-09-15 09:31:47 +00:00
case RequisitionStatusEnum.Submitted:
2025-09-16 13:19:02 +00:00
return <FaClock size={14} />
2025-09-15 09:31:47 +00:00
case RequisitionStatusEnum.InApproval:
2025-09-16 13:19:02 +00:00
return <FaClock size={14} />
2025-09-15 09:31:47 +00:00
case RequisitionStatusEnum.Approved:
2025-09-16 13:19:02 +00:00
return <FaCheckCircle size={14} />
2025-09-15 09:31:47 +00:00
case RequisitionStatusEnum.Rejected:
2025-09-16 13:19:02 +00:00
return <FaTimesCircle size={14} />
2025-09-15 09:31:47 +00:00
case RequisitionStatusEnum.Cancelled:
2025-09-16 13:19:02 +00:00
return <FaTimesCircle size={14} />
2025-09-15 09:31:47 +00:00
case RequisitionStatusEnum.Converted:
2025-09-16 13:19:02 +00:00
return <FaCheckCircle size={14} />
2025-09-15 09:31:47 +00:00
default:
2025-09-16 13:19:02 +00:00
return <FaFileAlt size={14} />
2025-09-15 09:31:47 +00:00
}
2025-09-16 13:19:02 +00:00
}
2025-09-15 09:31:47 +00:00
export const getQuotationStatusText = (status: QuotationStatusEnum) => {
const statuses = {
2025-09-16 13:19:02 +00:00
[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]
}
2025-09-15 09:31:47 +00:00
export const getQuotationStatusColor = (status: QuotationStatusEnum) => {
const colors = {
2025-09-16 13:19:02 +00:00
[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]
}
2025-09-15 09:31:47 +00:00
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" />,
2025-09-16 13:19:02 +00:00
}
return icons[status]
}
2025-09-15 09:31:47 +00:00
export const getSupplierCardTypeText = (type: SupplierCardTypeEnum) => {
const types = {
2025-09-16 13:19:02 +00:00
[SupplierCardTypeEnum.Standard]: 'Standart',
[SupplierCardTypeEnum.Premium]: 'Premium',
[SupplierCardTypeEnum.Strategic]: 'Stratejik',
[SupplierCardTypeEnum.Preferred]: 'Tercihli',
}
return types[type]
}
2025-09-15 09:31:47 +00:00
export const getSupplierCardTypeColor = (type: SupplierCardTypeEnum) => {
const colors = {
2025-09-16 13:19:02 +00:00
[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]
}
2025-09-15 09:31:47 +00:00
export const getPaymentTermsText = (terms: PaymentTerms) => {
const termsMap = {
2025-09-16 13:19:02 +00:00
[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
}
2025-09-15 09:31:47 +00:00
2025-09-17 09:46:58 +00:00
export const getSupplierTypeText = (type: SupplierTypeEnum) => {
2025-09-15 09:31:47 +00:00
switch (type) {
2025-09-17 09:46:58 +00:00
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'
2025-09-15 09:31:47 +00:00
default:
2025-09-17 09:46:58 +00:00
return 'Bilinmiyor'
2025-09-15 09:31:47 +00:00
}
2025-09-16 13:19:02 +00:00
}
2025-09-15 09:31:47 +00:00
2025-09-17 09:46:58 +00:00
export const getSupplierTypeColor = (type: SupplierTypeEnum) => {
2025-09-15 09:31:47 +00:00
switch (type) {
2025-09-17 09:46:58 +00:00
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'
2025-09-15 09:31:47 +00:00
default:
2025-09-17 09:46:58 +00:00
return 'bg-gray-100 text-gray-800'
2025-09-15 09:31:47 +00:00
}
2025-09-16 13:19:02 +00:00
}
2025-09-15 09:31:47 +00:00
export const getRatingColor = (rating: number) => {
2025-09-16 13:19:02 +00:00
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'
}
2025-09-15 09:31:47 +00:00
export const getLocationTypeText = (type: LocationTypeEnum) => {
const labels = {
2025-09-16 13:19:02 +00:00
[LocationTypeEnum.Shelf]: 'Raf',
[LocationTypeEnum.Bin]: 'Kutu',
[LocationTypeEnum.Floor]: 'Zemin',
[LocationTypeEnum.Rack]: 'Yüksek Raf',
[LocationTypeEnum.Tank]: 'Tank',
}
return labels[type]
}
2025-09-15 09:31:47 +00:00
export const getZoneTypeText = (type: ZoneTypeEnum) => {
const labels = {
2025-09-16 13:19:02 +00:00
[ZoneTypeEnum.Storage]: 'Depolama',
[ZoneTypeEnum.Receiving]: 'Giriş',
[ZoneTypeEnum.Shipping]: 'Sevkiyat',
[ZoneTypeEnum.Picking]: 'Toplama',
[ZoneTypeEnum.Quality]: 'Kalite',
[ZoneTypeEnum.Staging]: 'Hazırlık',
}
return labels[type]
}
2025-09-15 09:31:47 +00:00
2025-09-17 09:46:58 +00:00
export const getQualityStatusText = (status: QualityStatusEnum) => {
2025-09-15 09:31:47 +00:00
switch (status) {
case QualityStatusEnum.Approved:
2025-09-17 09:46:58 +00:00
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'
2025-09-15 09:31:47 +00:00
case QualityStatusEnum.Rejected:
2025-09-17 09:46:58 +00:00
return 'bg-red-100 text-red-800'
2025-09-15 09:31:47 +00:00
case QualityStatusEnum.Quarantine:
2025-09-17 09:46:58 +00:00
return 'bg-yellow-100 text-yellow-800'
2025-09-15 09:31:47 +00:00
case QualityStatusEnum.Pending:
2025-09-17 09:46:58 +00:00
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'
2025-09-15 09:31:47 +00:00
default:
2025-09-17 09:46:58 +00:00
return 'bg-gray-100 text-gray-800'
2025-09-15 09:31:47 +00:00
}
2025-09-16 13:19:02 +00:00
}
2025-09-15 09:31:47 +00:00
2025-09-17 09:46:58 +00:00
export const getSerialStatusText = (status: SerialStatusEnum) => {
2025-09-15 09:31:47 +00:00
switch (status) {
case SerialStatusEnum.Available:
2025-09-17 09:46:58 +00:00
return 'Müsait'
2025-09-15 09:31:47 +00:00
case SerialStatusEnum.InUse:
2025-09-17 09:46:58 +00:00
return 'Kullanımda'
2025-09-15 09:31:47 +00:00
case SerialStatusEnum.Maintenance:
2025-09-17 09:46:58 +00:00
return 'Bakımda'
2025-09-15 09:31:47 +00:00
case SerialStatusEnum.Disposed:
2025-09-17 09:46:58 +00:00
return 'İmha Edildi'
2025-09-15 09:31:47 +00:00
default:
2025-09-17 09:46:58 +00:00
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'
2025-09-15 09:31:47 +00:00
}
2025-09-16 13:19:02 +00:00
}
2025-09-15 09:31:47 +00:00
export const getStockStatusText = (status: StockStatusEnum) => {
const labels = {
2025-09-16 13:19:02 +00:00
[StockStatusEnum.Available]: 'Mevcut',
[StockStatusEnum.Reserved]: 'Rezerve',
[StockStatusEnum.Blocked]: 'Blokeli',
[StockStatusEnum.InTransit]: 'Transfer Halinde',
[StockStatusEnum.Quarantine]: 'Karantina',
}
return labels[status]
}
2025-09-15 09:31:47 +00:00
export const getStockStatusColor = (status: StockStatusEnum) => {
const colors = {
2025-09-16 13:19:02 +00:00
[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]
}
2025-09-15 09:31:47 +00:00
export const getPutawayStrategyText = (strategy: PutawayStrategyEnum) => {
const labels = {
2025-09-16 13:19:02 +00:00
[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]
}
2025-09-15 09:31:47 +00:00
export const getPutawayStrategyColor = (strategy: PutawayStrategyEnum) => {
const colors = {
2025-09-16 13:19:02 +00:00
[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]
}
2025-09-15 09:31:47 +00:00
export const getConditionTypeText = (type: ConditionTypeEnum) => {
const labels = {
2025-09-16 13:19:02 +00:00
[ConditionTypeEnum.MaterialType]: 'Malzeme Tipi',
[ConditionTypeEnum.MaterialGroup]: 'Malzeme Grubu',
[ConditionTypeEnum.Quantity]: 'Miktar',
[ConditionTypeEnum.Weight]: 'Ağırlık',
[ConditionTypeEnum.Volume]: 'Hacim',
}
return labels[type]
}
2025-09-15 09:31:47 +00:00
export const getConditionOperatorText = (operator: ConditionOperatorEnum) => {
const labels = {
2025-09-16 13:19:02 +00:00
[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]
}
2025-09-15 09:31:47 +00:00
export const getCountTypeText = (type: CountTypeEnum) => {
const labels = {
2025-09-16 13:19:02 +00:00
[CountTypeEnum.Full]: 'Tam Sayım',
[CountTypeEnum.Cycle]: 'Döngüsel Sayım',
[CountTypeEnum.Spot]: 'Nokta Sayım',
}
return labels[type]
}
2025-09-15 09:31:47 +00:00
export const getCountStatusText = (status: CountStatusEnum) => {
const labels = {
2025-09-16 13:19:02 +00:00
[CountStatusEnum.Planned]: 'Planlandı',
[CountStatusEnum.InProgress]: 'Devam Ediyor',
[CountStatusEnum.Completed]: 'Tamamlandı',
[CountStatusEnum.Approved]: 'Onaylandı',
}
return labels[status]
}
2025-09-15 09:31:47 +00:00
export const getCountStatusColor = (status: CountStatusEnum) => {
const colors = {
2025-09-16 13:19:02 +00:00
[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]
}
2025-09-15 09:31:47 +00:00
export const getMovementStatusText = (status: MovementStatusEnum) => {
const labels = {
2025-09-16 13:19:02 +00:00
[MovementStatusEnum.Planned]: 'Planlandı',
[MovementStatusEnum.InProgress]: 'Devam Ediyor',
[MovementStatusEnum.Completed]: 'Tamamlandı',
[MovementStatusEnum.Cancelled]: 'İptal Edildi',
}
return labels[status]
}
2025-09-15 09:31:47 +00:00
export const getMovementStatusColor = (status: MovementStatusEnum) => {
const colors = {
2025-09-16 13:19:02 +00:00
[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]
}
2025-09-15 09:31:47 +00:00
export const getMovementStatusIcon = (status: MovementStatusEnum) => {
const icons = {
[MovementStatusEnum.Planned]: FaClock,
[MovementStatusEnum.InProgress]: FaArrowCircleDown,
[MovementStatusEnum.Completed]: FaCheckCircle,
[MovementStatusEnum.Cancelled]: FaExclamationCircle,
2025-09-16 13:19:02 +00:00
}
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]
}
2025-09-17 09:46:58 +00:00
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'
}
}