import React, { useState } from 'react' import { Link } from 'react-router-dom' import { useQuery } from '@tanstack/react-query' import { FaBuilding, FaPlus, FaSearch, FaFilter, FaDownload, FaEdit, FaEye, FaMapMarkerAlt, FaBox, FaArrowUp, FaExclamationTriangle, FaChartLine, } from 'react-icons/fa' import classNames from 'classnames' import { WarehouseTypeEnum } from '../../../types/wm' import { mockWarehouses } from '../../../mocks/mockWarehouses' import { getWarehouseTypeColor, getWarehouseTypeText } from '../../../utils/erp' import { Container } from '@/components/shared' const WarehouseList: React.FC = () => { const [searchTerm, setSearchTerm] = useState('') const [filterType, setFilterType] = useState('all') const [showFilters, setShowFilters] = useState(false) const { data: warehouses, isLoading, error, } = useQuery({ queryKey: ['warehouses', searchTerm, filterType], queryFn: async () => { await new Promise((resolve) => setTimeout(resolve, 500)) return mockWarehouses.filter((warehouse) => { const matchesSearch = warehouse.code.toLowerCase().includes(searchTerm.toLowerCase()) || warehouse.name.toLowerCase().includes(searchTerm.toLowerCase()) const matchesType = filterType === 'all' || warehouse.warehouseType === filterType return matchesSearch && matchesType }) }, }) const getUtilizationColor = (utilization: number) => { const percentage = utilization if (percentage >= 90) return 'text-red-600' if (percentage >= 75) return 'text-yellow-600' return 'text-green-600' } if (isLoading) { return (
Toplam Depo
{warehouses?.length || 0}
Toplam Kapasite
{warehouses?.reduce((acc, w) => acc + w.capacity, 0).toLocaleString() || 0}
Kullanım Oranı
{warehouses?.length ? Math.round( (warehouses.reduce((acc, w) => acc + w.currentUtilization, 0) / (warehouses.reduce((acc, w) => acc + w.capacity, 0) || 1)) * 100, ) : 0} %
Aktif Depo
{warehouses?.filter((w) => w.isActive).length || 0}
| Depo Bilgileri | Tür / Konum | Kapasite | Kullanım Oranı | Performans | Durum | İşlemler |
|---|---|---|---|---|---|---|
|
{warehouse.code}
{warehouse.name}
{warehouse.isMainWarehouse && (
Ana Depo
)}
|
{getWarehouseTypeText(warehouse.warehouseType)}
|
{warehouse.capacity.toLocaleString()} m³
Toplam Kapasite
|
Kullanılan:
{warehouse.currentUtilization.toLocaleString()} m³
= 90
? 'bg-red-500'
: utilizationPercentage >= 75
? 'bg-yellow-500'
: 'bg-green-500',
)}
style={{
width: `${Math.min(utilizationPercentage, 100)}%`,
}}
/>
%{utilizationPercentage}
|
Son 30 gün
|
{warehouse.isActive ? 'Aktif' : 'Pasif'} |
|
Yeni depo ekleyerek başlayın.