Project Management ve Title

This commit is contained in:
Sedat Öztürk 2025-09-16 00:02:48 +03:00
parent 2217722243
commit 8b88970fe2
100 changed files with 525 additions and 593 deletions

View file

@ -36,7 +36,7 @@ export const KickParticipantModal: React.FC<KickParticipantModalProps> = ({
</div>
<div>
<h3 className="text-lg font-semibold text-gray-900">Katılımcıyı Çıkar</h3>
<p className="text-sm text-gray-600">Bu işlem geri alınamaz</p>
<p className="text-gray-600">Bu işlem geri alınamaz</p>
</div>
</div>

View file

@ -1,11 +1,8 @@
import React from 'react'
import {
FaCheckCircle,
FaArrowLeft
} from 'react-icons/fa';
import { FaCheckCircle, FaArrowLeft } from 'react-icons/fa'
import { useNavigate } from 'react-router-dom'
import { ROUTES_ENUM } from '@/routes/route.constant'
import { useLocalization } from '@/utils/hooks/useLocalization';
import { useLocalization } from '@/utils/hooks/useLocalization'
interface OrderSuccessProps {
orderId: string
@ -21,14 +18,20 @@ export const OrderSuccess: React.FC<OrderSuccessProps> = ({ orderId, onBackToSho
<div className="bg-white rounded-xl shadow-lg border border-gray-200 p-8">
<div className="mb-6">
<FaCheckCircle className="w-16 h-16 text-green-500 mx-auto mb-4" />
<h2 className="text-2xl font-bold text-gray-900 mb-2">{translate('::Public.order.success.title')}</h2>
<h2 className="text-xl font-bold text-gray-900">
{translate('::Public.order.success.title')}
</h2>
<p className="text-gray-600">
{translate('::Public.order.success.number')} <span className="font-semibold text-blue-600">#{orderId}</span>
{translate('::Public.order.success.number')}{' '}
<span className="font-semibold text-blue-600">#{orderId}</span>
</p>
</div>
<div className="bg-green-50 border border-green-200 rounded-lg p-4 mb-6">
<h3 className="font-semibold text-green-800 mb-2">{translate('::Public.order.success.nextSteps')}</h3>
<h3 className="font-semibold text-green-800 mb-2">
{translate('::Public.order.success.nextSteps')}
</h3>
<ul className="text-sm text-green-700 space-y-1 text-left">
<li> {translate('::Public.order.success.step1')}</li>
<li> {translate('::Public.order.success.step2')}</li>

View file

@ -171,9 +171,9 @@ export const ProductCatalog: React.FC<ProductCatalogProps> = ({
<div className="text-gray-400 mb-2">
<FaFilter className="w-12 h-12 mx-auto" />
</div>
<h3 className="text-lg font-medium text-gray-900 mb-2">
<h2 className="text-2xl font-bold text-gray-900 mb-2">
{translate('::Public.products.empty.title')}
</h3>
</h2>
<p className="text-gray-600">{translate('::Public.products.empty.description')}</p>
</div>
)}

View file

@ -134,9 +134,9 @@ export const ReportViewer: React.FC = () => {
<div className="min-h-screen bg-gray-50 flex items-center justify-center">
<div className="text-center">
<div className="animate-spin rounded-full h-12 w-12 border-b-2 border-blue-600 mx-auto mb-4"></div>
<h1 className="text-xl font-semibold text-gray-900 mb-2">
<h2 className="text-2xl font-bold text-gray-900">
{translate('::App.Reports.ReportViewer.LoadingTitle')}
</h1>
</h2>
<p className="text-gray-600">{translate('::App.Reports.ReportViewer.LoadingSubtitle')}</p>
</div>
</div>

View file

@ -462,8 +462,8 @@ const BankManagement: React.FC<BankManagementProps> = ({
{/* Header */}
<div className="flex items-center justify-between">
<div>
<h2 className="text-xl font-bold text-gray-900">Banka Yönetimi</h2>
<p className="text-sm text-gray-500">
<h2 className="text-2xl font-bold text-gray-900">Banka Yönetimi</h2>
<p className="text-gray-600">
Banka hesapları ve EFT/Havale işlemleri
</p>
</div>

View file

@ -69,7 +69,7 @@ const CashAccountDetails: React.FC<CashAccountDetailsProps> = ({
<h2 className="text-lg font-semibold text-gray-900">
Kasa Hesabı Detayları
</h2>
<p className="text-sm text-gray-600">
<p className="text-gray-600">
{account.name} ({account.accountCode})
</p>
</div>

View file

@ -340,8 +340,8 @@ const CashManagement: React.FC<CashManagementProps> = ({
{/* Header */}
<div className="flex items-center justify-between">
<div>
<h2 className="text-xl font-bold text-gray-900">Kasa Yönetimi</h2>
<p className="text-sm text-gray-500">
<h2 className="text-2xl font-bold text-gray-900">Kasa Yönetimi</h2>
<p className="text-gray-600">
Nakit giriş-çıkış işlemleri yönetimi
</p>
</div>

View file

@ -666,8 +666,8 @@ const CheckNoteManagement: React.FC<CheckNoteManagementProps> = ({
{/* Header */}
<div className="flex items-center justify-between">
<div>
<h2 className="text-xl font-bold text-gray-900">Çek & Senet Takibi</h2>
<p className="text-sm text-gray-500">Alınan ve verilen çek & senet yönetimi</p>
<h2 className="text-2xl font-bold text-gray-900">Çek & Senet Takibi</h2>
<p className="text-gray-600">Alınan ve verilen çek & senet yönetimi</p>
</div>
<div className="flex gap-2 text-sm">
<button

View file

@ -534,10 +534,10 @@ const CurrentAccountManagement: React.FC<CurrentAccountManagementProps> = ({
{/* Header */}
<div className="flex items-center justify-between">
<div>
<h2 className="text-xl font-bold text-gray-900">
<h2 className="text-2xl font-bold text-gray-900">
Cari Hesap Yönetimi
</h2>
<p className="text-sm text-gray-500">
<p className="text-gray-600">
Müşteri ve tedarikçi cari hesaplarının yönetimi
</p>
</div>

View file

@ -315,8 +315,8 @@ const InvoiceManagement: React.FC<InvoiceManagementProps> = ({
{/* Header */}
<div className="flex items-center justify-between">
<div>
<h2 className="text-xl font-bold text-gray-900">Fatura Yönetimi</h2>
<p className="text-sm text-gray-500">
<h2 className="text-2xl font-bold text-gray-900">Fatura Yönetimi</h2>
<p className="text-gray-600">
Alış ve satış faturaları yönetimi
</p>
</div>

View file

@ -76,7 +76,7 @@ const WaybillDetails: React.FC<WaybillDetailsProps> = ({
<h2 className="text-lg font-semibold text-gray-900">
İrsaliye Detayları
</h2>
<p className="text-sm text-gray-600">{waybill.waybillNumber}</p>
<p className="text-gray-600">{waybill.waybillNumber}</p>
</div>
</div>
<div className="flex items-center gap-1">

View file

@ -314,8 +314,8 @@ const WaybillManagement: React.FC<WaybillManagementProps> = ({
{/* Header */}
<div className="flex items-center justify-between">
<div>
<h2 className="text-xl font-bold text-gray-900">İrsaliye Yönetimi</h2>
<p className="text-sm text-gray-500">
<h2 className="text-2xl font-bold text-gray-900">İrsaliye Yönetimi</h2>
<p className="text-gray-600">
Giriş ve çıkış irsaliyeleri yönetimi
</p>
</div>

View file

@ -50,7 +50,7 @@ const ActivityDetails: React.FC<ActivityDetailsProps> = ({ isOpen, onClose, onEd
</div>
<div>
<h2 className="text-lg font-semibold text-gray-900">{activity.subject}</h2>
<p className="text-sm text-gray-600">{getActivityTypeText(activity.activityType)}</p>
<p className="text-gray-600">{getActivityTypeText(activity.activityType)}</p>
</div>
</div>
<div className="flex items-center gap-3">

View file

@ -257,8 +257,8 @@ const ActivityRecords: React.FC = () => {
{/* Header */}
<div className="flex items-center justify-between">
<div>
<h2 className="text-xl font-bold text-gray-900">Görüşme / Aktivite Kayıtları</h2>
<p className="text-sm text-gray-600 mt-1">Müşteri etkileşimleri ve aktivite takibi</p>
<h2 className="text-2xl font-bold text-gray-900">Görüşme / Aktivite Kayıtları</h2>
<p className="text-gray-600">Müşteri etkileşimleri ve aktivite takibi</p>
</div>
<div className="flex items-center gap-4">
<button

View file

@ -201,7 +201,7 @@ const CustomerEdit: React.FC = () => {
</div>
<div>
<h1 className="text-xl font-bold text-gray-900">Müşteri Düzenle</h1>
<h2 className="text-2xl font-bold text-gray-900">Müşteri Düzenle</h2>
<p className="text-sm text-gray-600">{customer.name}</p>
</div>
</div>

View file

@ -130,7 +130,7 @@ const CustomerForm: React.FC = () => {
<h2 className="text-lg font-semibold text-gray-900">
{isEdit ? 'Müşteri Düzenle' : 'Yeni Müşteri'}
</h2>
<p className="text-sm text-gray-600">
<p className="text-gray-600">
{isEdit ? 'Mevcut müşteri bilgilerini güncelleyin' : 'Yeni müşteri bilgilerini girin'}
</p>
</div>

View file

@ -128,7 +128,7 @@ const CustomerForm: React.FC = () => {
<h2 className="text-lg font-semibold text-gray-900">
{isEdit ? 'Müşteri Düzenle' : 'Yeni Müşteri'}
</h2>
<p className="text-sm text-gray-600">
<p className="text-gray-600">
{isEdit ? 'Mevcut müşteri bilgilerini güncelleyin' : 'Yeni müşteri bilgilerini girin'}
</p>
</div>

View file

@ -16,8 +16,8 @@ const CustomerListWithToggle: React.FC = () => {
{/* Header with View Toggle */}
<div className="flex flex-col sm:flex-row sm:items-center sm:justify-between gap-3">
<div>
<h1 className="text-xl font-bold text-gray-900">Müşteri Listesi</h1>
<p className="text-sm text-gray-600 mt-1">Müşteri listesi ve detay bilgileri</p>
<h2 className="text-2xl font-bold text-gray-900">Müşteri Listesi</h2>
<p className="text-gray-600">Müşteri listesi ve detay bilgileri</p>
</div>
{/* View Mode Toggle */}

View file

@ -157,7 +157,7 @@ const CustomerView: React.FC = () => {
<div>
<div className="flex items-center space-x-3">
<h1 className="text-xl font-bold text-gray-900">{customer.name}</h1>
<h2 className="text-2xl font-bold text-gray-900">{customer.name}</h2>
<span
className={classNames(
'inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium border',
@ -518,7 +518,7 @@ const CustomerView: React.FC = () => {
<FaUser className="w-8 h-8 text-blue-600" />
</div>
<div>
<h4 className="text-xl font-semibold text-gray-900">
<h2 className="text-2xl font-bold text-gray-900">
{customer.primaryContact?.fullName}
</h4>
<p className="text-gray-600">

View file

@ -225,8 +225,8 @@ const LossReasons: React.FC = () => {
{/* Header */}
<div className="flex items-center justify-between">
<div>
<h2 className="text-lg font-bold text-gray-900">Kayıp Nedenleri</h2>
<p className="text-sm text-gray-600">Fırsat kaybı nedenlerini analiz edin</p>
<h2 className="text-2xl font-bold text-gray-900">Kayıp Nedenleri</h2>
<p className="text-gray-600">Fırsat kaybı nedenlerini analiz edin</p>
</div>
<div className="flex items-center gap-3">
<button

View file

@ -51,7 +51,7 @@ const OpportunityDetails: React.FC<OpportunityDetailsProps> = ({
</div>
<div>
<h2 className="text-lg font-semibold text-gray-900">{opportunity.title}</h2>
<p className="text-sm text-gray-600">{opportunity.opportunityNumber}</p>
<p className="text-gray-600">{opportunity.opportunityNumber}</p>
</div>
</div>
<div className="flex items-center gap-3">

View file

@ -241,8 +241,8 @@ const OpportunityManagement: React.FC = () => {
{/* Header */}
<div className="flex items-center justify-between">
<div>
<h2 className="text-xl font-bold text-gray-900">Teklif & Fırsat Yönetimi</h2>
<p className="text-sm text-gray-600">Satış fırsatları ve teklif takibi</p>
<h2 className="text-2xl font-bold text-gray-900">Teklif & Fırsat Yönetimi</h2>
<p className="text-gray-600">Satış fırsatları ve teklif takibi</p>
</div>
<button
onClick={handleAdd}

View file

@ -250,10 +250,10 @@ const SalesOrderForm: React.FC = () => {
{/* Header */}
<div className="flex items-center justify-between">
<div>
<h2 className="text-xl font-bold text-gray-900">
<h2 className="text-2xl font-bold text-gray-900">
{isEdit ? 'Satış Siparişi Düzenle' : 'Yeni Satış Siparişi'}
</h2>
<p className="text-sm text-gray-600 mt-1">Müşteri siparişi oluştur ve yönet</p>
<p className="text-gray-600">Müşteri siparişi oluştur ve yönet</p>
</div>
<div className="flex gap-2">
<button

View file

@ -207,8 +207,8 @@ const SalesOrders: React.FC = () => {
{/* Header */}
<div className="flex items-center justify-between">
<div>
<h2 className="text-xl font-bold text-gray-900">Satış Siparişleri</h2>
<p className="text-sm text-gray-600">Müşteri siparişleri ve teslimat takibi</p>
<h2 className="text-2xl font-bold text-gray-900">Satış Siparişleri</h2>
<p className="text-gray-600">Müşteri siparişleri ve teslimat takibi</p>
</div>
<button
onClick={handleAdd}
@ -266,12 +266,12 @@ const SalesOrders: React.FC = () => {
<div className="grid grid-cols-1 md:grid-cols-3 gap-4">
<div className="text-center">
<div className="text-2xl font-bold text-blue-600 mb-1">{currentMonthOrders}</div>
<p className="text-sm text-gray-600">Bu Ay</p>
<p className="text-gray-600">Bu Ay</p>
</div>
<div className="text-center">
<div className="text-2xl font-bold text-gray-600 mb-1">{previousMonthOrders}</div>
<p className="text-sm text-gray-600">Geçen Ay</p>
<p className="text-gray-600">Geçen Ay</p>
</div>
<div className="text-center">

View file

@ -144,8 +144,8 @@ const SalesTeamCreate: React.FC = () => {
<FaArrowLeft className="w-5 h-5" />
</button>
<div>
<h2 className="text-xl font-bold text-gray-900">Yeni Satış Ekibi</h2>
<p className="text-sm text-gray-600 mt-1">
<h2 className="text-2xl font-bold text-gray-900">Yeni Satış Ekibi</h2>
<p className="text-gray-600">
Yeni satış ekibi oluşturun ve ekip üyelerini atayın
</p>
</div>

View file

@ -192,8 +192,8 @@ const SalesTeamEdit: React.FC = () => {
<FaArrowLeft className="w-5 h-5" />
</button>
<div>
<h2 className="text-xl font-bold text-gray-900">Satış Ekibi Düzenle</h2>
<p className="text-sm text-gray-600 mt-1">{team.name} ekibini düzenleyin</p>
<h2 className="text-2xl font-bold text-gray-900">Satış Ekibi Düzenle</h2>
<p className="text-gray-600">{team.name} ekibini düzenleyin</p>
</div>
</div>

View file

@ -83,8 +83,8 @@ const SalesTeamView: React.FC = () => {
<FaArrowLeft className="w-5 h-5" />
</button>
<div>
<h2 className="text-xl font-bold text-gray-900">{team.name}</h2>
<p className="text-gray-600 mt-1">{team.code} Satış ekibi detayları</p>
<h2 className="text-2xl font-bold text-gray-900">{team.name}</h2>
<p className="text-gray-600">{team.code} Satış ekibi detayları</p>
</div>
</div>

View file

@ -205,8 +205,8 @@ const SalesTeams: React.FC = () => {
{/* Header */}
<div className="flex items-center justify-between">
<div>
<h2 className="text-xl font-bold text-gray-900">Satış Ekipleri</h2>
<p className="text-gray-600 mt-1">Satış ekipleri ve performans yönetimi</p>
<h2 className="text-2xl font-bold text-gray-900">Satış Ekipleri</h2>
<p className="text-gray-600">Satış ekipleri ve performans yönetimi</p>
</div>
<button
onClick={handleAdd}

View file

@ -110,7 +110,7 @@ const BadgeAssignmentModal: React.FC<BadgeAssignmentModalProps> = ({
</div>
<div>
<h3 className="text-xl font-bold text-gray-900">Rozet Ata</h3>
<p className="text-sm text-gray-600">
<p className="text-gray-600">
Personele başarı rozeti atayın
</p>
</div>

View file

@ -137,7 +137,7 @@ const BadgeEditModal: React.FC<BadgeEditModalProps> = ({
<h3 className="text-xl font-bold text-gray-900">
{mode === "edit" ? "Rozet Düzenle" : "Yeni Rozet Oluştur"}
</h3>
<p className="text-sm text-gray-600">
<p className="text-gray-600">
{mode === "edit"
? "Mevcut rozet bilgilerini güncelleyin"
: "Yeni bir başarı rozeti tanımlayın"}

View file

@ -292,8 +292,8 @@ const BadgeManagement: React.FC = () => {
{/* Header */}
<div className="flex items-center justify-between mb-2">
<div>
<h2 className="text-lg font-bold text-gray-900">Rozet Yönetimi</h2>
<p className="text-sm text-gray-600">
<h2 className="text-2xl font-bold text-gray-900">Rozet Yönetimi</h2>
<p className="text-gray-600">
Personel başarı rozetleri ve ödüllendirme sistemi
</p>
</div>

View file

@ -235,7 +235,7 @@ const CostCenterManagement: React.FC = () => {
<div className="flex items-start justify-between mb-4">
<div>
<h3 className="text-lg font-semibold text-gray-900 mb-1">{costCenter.name}</h3>
<p className="text-sm text-gray-600">{costCenter.code}</p>
<p className="text-gray-600">{costCenter.code}</p>
</div>
<span
className={`px-2 py-0.5 text-xs font-medium rounded-full ${getCostCenterTypeColor(
@ -323,8 +323,8 @@ const CostCenterManagement: React.FC = () => {
{/* Header */}
<div className="flex flex-col sm:flex-row sm:items-center justify-between gap-4">
<div>
<h2 className="text-xl font-bold text-gray-900">Maliyet Merkezi Yönetimi</h2>
<p className="text-sm text-gray-600 mt-1">
<h2 className="text-2xl font-bold text-gray-900">Maliyet Merkezi Yönetimi</h2>
<p className="text-gray-600">
Maliyet merkezlerini ve bütçe takibini yönetin
</p>
</div>

View file

@ -733,8 +733,8 @@ const Degree360Evaluation: React.FC = () => {
{/* Header */}
<div className="flex justify-between items-center">
<div>
<h1 className="text-xl font-bold text-gray-900">360° Değerlendirme Sistemi</h1>
<p className="text-gray-600 mt-1">Çok yönlü performans değerlendirme sistemi</p>
<h2 className="text-2xl font-bold text-gray-900">360° Değerlendirme Sistemi</h2>
<p className="text-gray-600">Çok yönlü performans değerlendirme sistemi</p>
</div>
</div>
@ -1453,7 +1453,7 @@ const Degree360Evaluation: React.FC = () => {
<div className="flex justify-between items-center">
<div>
<h4 className="font-medium text-gray-900">{campaign.name}</h4>
<p className="text-sm text-gray-600">{campaign.description}</p>
<p className="text-gray-600">{campaign.description}</p>
<div className="flex items-center gap-2 mt-2">
<span
className={`inline-block px-2 py-1 text-xs rounded-full ${getCampaignStatusColor(
@ -1515,8 +1515,8 @@ const Degree360Evaluation: React.FC = () => {
<div className="flex justify-between items-center">
<div>
<h4 className="font-medium text-gray-900">{employee.fullName}</h4>
<p className="text-sm text-gray-600">{employee.jobPosition?.name}</p>
<p className="text-sm text-gray-600">
<p className="text-gray-600">{employee.jobPosition?.name}</p>
<p className="text-gray-600">
{mockDepartments.find((d) => d.id === employee.departmantId)?.name}
</p>
</div>
@ -1571,7 +1571,7 @@ const Degree360Evaluation: React.FC = () => {
<h4 className="font-medium text-gray-900">
{getAssessorTypeText(assessorType)}
</h4>
<p className="text-sm text-gray-600">
<p className="text-gray-600">
{getAssessorTypeDescription(assessorType)}
</p>
{getEvaluatorsByType(evaluationTarget, assessorType).length > 0 && (
@ -1683,7 +1683,7 @@ const Degree360Evaluation: React.FC = () => {
<div className="flex justify-between items-center">
<div>
<h4 className="font-medium text-gray-900">{evaluator.name}</h4>
<p className="text-sm text-gray-600">{evaluator.title}</p>
<p className="text-gray-600">{evaluator.title}</p>
<span className="inline-block mt-1 px-2 py-1 text-xs rounded-full bg-purple-100 text-purple-800">
{evaluator.department}
</span>
@ -1719,7 +1719,7 @@ const Degree360Evaluation: React.FC = () => {
<div className="flex justify-between items-center">
<div>
<h4 className="font-medium text-gray-900">{evaluator.name}</h4>
<p className="text-sm text-gray-600">{evaluator.title}</p>
<p className="text-gray-600">{evaluator.title}</p>
<span className="inline-block mt-1 px-2 py-1 text-xs rounded-full bg-purple-100 text-purple-800">
{evaluator.department}
</span>
@ -2057,7 +2057,7 @@ const Degree360Evaluation: React.FC = () => {
<h5 className="font-medium text-gray-800">
{group.groupName}
</h5>
<p className="text-sm text-gray-600">{group.description}</p>
<p className="text-gray-600">{group.description}</p>
</div>
<div className="space-y-2.5">
@ -2386,7 +2386,7 @@ const Degree360Evaluation: React.FC = () => {
<div key={group.id} className="border rounded-lg p-2">
<div className="mb-3">
<h4 className="font-medium text-gray-900 text-sm">{group.groupName}</h4>
<p className="text-sm text-gray-600">{group.description}</p>
<p className="text-gray-600">{group.description}</p>
<div className="flex items-center gap-2 mt-2">
<span className="text-xs text-gray-500">ırlık: %{group.weight}</span>
<span className="text-xs text-gray-500"></span>

View file

@ -273,8 +273,8 @@ const Degree360Templates: React.FC = () => {
{/* Header */}
<div className="flex flex-col sm:flex-row sm:items-center justify-between gap-4">
<div>
<h2 className="text-xl font-bold text-gray-900">360° Şablonlar</h2>
<p className="text-gray-600 mt-1">360 derece değerlendirme şablonlarını yönetin</p>
<h2 className="text-2xl font-bold text-gray-900">360° Şablonlar</h2>
<p className="text-gray-600">360 derece değerlendirme şablonlarını yönetin</p>
</div>
<button
@ -459,7 +459,7 @@ const Degree360Templates: React.FC = () => {
<div>
<h4 className="font-medium">{group.groupName}</h4>
<p className="text-sm text-gray-600">{group.description}</p>
<p className="text-sm text-gray-600">ırlık: {group.weight}%</p>
<p className="text-gray-600">ırlık: {group.weight}%</p>
</div>
{isEditMode && (
<div className="flex gap-2">

View file

@ -218,8 +218,8 @@ const DepartmentManagement: React.FC = () => {
{/* Header */}
<div className="flex flex-col sm:flex-row sm:items-center justify-between gap-3">
<div>
<h2 className="text-lg font-bold text-gray-900">Departman Yönetimi</h2>
<p className="text-sm text-gray-600 mt-1">
<h2 className="text-2xl font-bold text-gray-900">Departman Yönetimi</h2>
<p className="text-gray-600">
Organizasyon yapısını ve departmanları yönetin
</p>
</div>
@ -348,7 +348,7 @@ const DepartmentManagement: React.FC = () => {
<h3 className="font-semibold text-sm text-gray-900 truncate">
{department.name}
</h3>
<p className="text-sm text-gray-600">{department.code}</p>
<p className="text-gray-600">{department.code}</p>
</div>
</div>
<span

View file

@ -236,10 +236,10 @@ const EmployeeForm: React.FC = () => {
{/* Header */}
<div className="flex items-center justify-between">
<div>
<h2 className="text-xl font-bold text-gray-900">
<h2 className="text-2xl font-bold text-gray-900">
{isEdit ? 'Personel Düzenle' : 'Yeni Personel'}
</h2>
<p className="text-sm text-gray-600">
<p className="text-gray-600">
{isEdit
? 'Mevcut personel bilgilerini güncelleyin'
: 'Yeni personel bilgilerini girin'}

View file

@ -110,8 +110,8 @@ const EmployeeList: React.FC = () => {
<div className="flex flex-col sm:flex-row items-start sm:items-center justify-between gap-4">
{/* Title & Description */}
<div>
<h2 className="text-lg font-bold text-gray-900">Personel Listesi</h2>
<p className="text-sm text-gray-600">Şirket çalışanlarının listesi</p>
<h2 className="text-2xl font-bold text-gray-900">Personel Listesi</h2>
<p className="text-gray-600">Şirket çalışanlarının listesi</p>
</div>
{/* Header Actions */}

View file

@ -48,8 +48,8 @@ const EmploymentTypes: React.FC = () => {
<div className="flex flex-col gap-4">
<div className="flex flex-col sm:flex-row items-start sm:items-center justify-between gap-4">
<div>
<h2 className="text-xl font-bold text-gray-900">İstihdam Türleri</h2>
<p className="text-gray-600 mt-1">Personel istihdam türleri ve dağılımı</p>
<h2 className="text-2xl font-bold text-gray-900">İstihdam Türleri</h2>
<p className="text-gray-600">Personel istihdam türleri ve dağılımı</p>
</div>
{/* New Button - Visible on larger screens */}

View file

@ -30,10 +30,10 @@ const JobPositionViewModal: React.FC<JobPositionViewModalProps> = ({
<div className="flex items-center gap-3">
<FaBriefcase className="w-6 h-6 text-blue-600" />
<div>
<h2 className="text-xl font-bold text-gray-900">
<h2 className="text-2xl font-bold text-gray-900">
{position.name}
</h2>
<p className="text-sm text-gray-500">{position.code}</p>
<p className="text-gray-600">{position.code}</p>
</div>
</div>
<button

View file

@ -335,8 +335,8 @@ const JobPositions: React.FC = () => {
{/* Header */}
<div className="flex flex-col sm:flex-row items-start sm:items-center justify-between gap-4">
<div>
<h2 className="text-xl font-bold text-gray-900">İş Pozisyonları</h2>
<p className="text-sm text-gray-600 mt-1">
<h2 className="text-2xl font-bold text-gray-900">İş Pozisyonları</h2>
<p className="text-gray-600">
Şirket pozisyonları ve tanımları yönetimi
</p>
</div>

View file

@ -440,8 +440,8 @@ const LeaveManagement: React.FC = () => {
{/* Header */}
<div className="flex items-center justify-between">
<div>
<h2 className="text-xl font-bold text-gray-900">İzin Yönetimi</h2>
<p className="text-sm text-gray-600 mt-1">Personel izin talepleri ve onay süreçleri</p>
<h2 className="text-2xl font-bold text-gray-900">İzin Yönetimi</h2>
<p className="text-gray-600">Personel izin talepleri ve onay süreçleri</p>
</div>
<div className="flex gap-2">
<button

View file

@ -360,8 +360,8 @@ const OrganizationChart: React.FC = () => {
{/* Header */}
<div className="flex items-center justify-between">
<div>
<h2 className="text-xl font-bold text-gray-900">Organizasyon Şeması</h2>
<p className="text-sm text-gray-600 mt-1">Kurumsal hiyerarşi ve raporlama yapısı</p>
<h2 className="text-2xl font-bold text-gray-900">Organizasyon Şeması</h2>
<p className="text-gray-600">Kurumsal hiyerarşi ve raporlama yapısı</p>
</div>
<div className="flex items-center gap-2">

View file

@ -460,8 +460,8 @@ const OvertimeManagement: React.FC = () => {
{/* Header */}
<div className="flex items-center justify-between">
<div>
<h2 className="text-xl font-bold text-gray-900">Mesai Yönetimi</h2>
<p className="text-sm text-gray-600 mt-1">Personel mesai talepleri ve onay süreçleri</p>
<h2 className="text-2xl font-bold text-gray-900">Mesai Yönetimi</h2>
<p className="text-gray-600">Personel mesai talepleri ve onay süreçleri</p>
</div>
<div className="flex gap-2">
<button

View file

@ -432,8 +432,8 @@ const PayrollManagement: React.FC = () => {
{/* Header */}
<div className="flex items-center justify-between">
<div>
<h2 className="text-xl font-bold text-gray-900">Maaş, Prim, Bordro Yönetimi</h2>
<p className="text-gray-600 mt-1">Personel ödemelerini hesaplayın ve yönetin</p>
<h2 className="text-2xl font-bold text-gray-900">Maaş, Prim, Bordro Yönetimi</h2>
<p className="text-gray-600">Personel ödemelerini hesaplayın ve yönetin</p>
</div>
<div className="flex gap-2">
<button

View file

@ -80,8 +80,8 @@ const AssignWorkOrderModal: React.FC<AssignWorkOrderModalProps> = ({
{/* Header */}
<div className="flex items-center justify-between p-3 border-b border-gray-200">
<div>
<h2 className="text-xl font-bold text-gray-900">İş Emri Atama</h2>
<p className="text-sm text-gray-600 mt-1">
<h2 className="text-2xl font-bold text-gray-900">İş Emri Atama</h2>
<p className="text-gray-600">
Seçili ekiplere ({selectedTeams.length}) bakım planları atayın
</p>
</div>
@ -142,7 +142,7 @@ const AssignWorkOrderModal: React.FC<AssignWorkOrderModalProps> = ({
<h4 className="font-medium text-sm text-gray-900">
{team.name}
</h4>
<p className="text-sm text-gray-600">{team.code}</p>
<p className="text-gray-600">{team.code}</p>
</div>
</div>
))}
@ -172,7 +172,7 @@ const AssignWorkOrderModal: React.FC<AssignWorkOrderModalProps> = ({
<h4 className="font-medium text-gray-900">
{plan.planCode}
</h4>
<p className="text-sm text-gray-600">
<p className="text-gray-600">
{plan.description}
</p>
<div className="flex items-center space-x-4 mt-1 text-xs text-gray-500">

View file

@ -209,10 +209,10 @@ const FaultNotifications: React.FC = () => {
{/* Header */}
<div className="flex items-center justify-between">
<div>
<h2 className="text-xl font-bold text-gray-900">
<h2 className="text-2xl font-bold text-gray-900">
Arıza Bildirimleri
</h2>
<p className="text-gray-600 mt-1">
<p className="text-gray-600">
İş merkezi arızalarını takip edin ve yönetin
</p>
</div>

View file

@ -282,8 +282,8 @@ const MaintenanceCalendar: React.FC = () => {
{/* Header */}
<div className="flex items-center justify-between">
<div>
<h2 className="text-xl font-bold text-gray-900">Bakım Takvimi</h2>
<p className="text-sm text-gray-600 mt-1">
<h2 className="text-2xl font-bold text-gray-900">Bakım Takvimi</h2>
<p className="text-gray-600">
Bakım planları ve emirlerini takip edin. Yeni planlama için
gün/saat seçin.
</p>

View file

@ -151,8 +151,8 @@ const MaintenancePlans: React.FC = () => {
{/* Header */}
<div className="flex items-center justify-between">
<div>
<h2 className="text-xl font-bold text-gray-900">Bakım Planları</h2>
<p className="text-sm text-gray-600 mt-1">
<h2 className="text-2xl font-bold text-gray-900">Bakım Planları</h2>
<p className="text-gray-600">
Periyodik ve düzeltici bakım planlarını yönetin
</p>
</div>

View file

@ -151,8 +151,8 @@ const MaintenanceTeams: React.FC = () => {
{/* Header */}
<div className="flex items-center justify-between">
<div>
<h2 className="text-xl font-bold text-gray-900">Bakım Ekipleri</h2>
<p className="text-sm text-gray-600 mt-1">
<h2 className="text-2xl font-bold text-gray-900">Bakım Ekipleri</h2>
<p className="text-gray-600">
Bakım ekiplerini ve üyelerini yönetin
</p>
</div>

View file

@ -242,8 +242,8 @@ const MaintenanceWorkOrders: React.FC = () => {
{/* Header */}
<div className="flex items-center justify-between">
<div>
<h2 className="text-xl font-bold text-gray-900">Bakım İş Emirleri</h2>
<p className="text-sm text-gray-600 mt-1">
<h2 className="text-2xl font-bold text-gray-900">Bakım İş Emirleri</h2>
<p className="text-gray-600">
Bakım emirlerini takip edin ve yönetin
</p>
</div>

View file

@ -69,10 +69,10 @@ const PlanStatusChangeModal: React.FC<PlanStatusChangeModalProps> = ({
{/* Header */}
<div className="flex items-center justify-between p-4 border-b border-gray-200">
<div>
<h2 className="text-xl font-bold text-gray-900">
<h2 className="text-2xl font-bold text-gray-900">
Plan Durumu Değiştir
</h2>
<p className="text-sm text-gray-600">
<p className="text-gray-600">
{selectedPlans.length} plan için durum değişikliği
</p>
</div>

View file

@ -83,10 +83,10 @@ const TeamStatusChangeModal: React.FC<TeamStatusChangeModalProps> = ({
{/* Header */}
<div className="flex items-center justify-between p-4 border-b border-gray-200">
<div>
<h2 className="text-xl font-bold text-gray-900">
<h2 className="text-2xl font-bold text-gray-900">
Ekip Durumu Değiştir
</h2>
<p className="text-sm text-gray-600">
<p className="text-gray-600">
{selectedTeams.length} ekibin durumunu değiştirin
</p>
</div>

View file

@ -152,8 +152,8 @@ const WorkCenterCards: React.FC = () => {
{/* Header */}
<div className="flex items-center justify-between">
<div>
<h2 className="text-xl font-bold text-gray-900">İş Merkezleri</h2>
<p className="text-gray-600 mt-1">Tüm merkezlerini yönetin ve takip edin</p>
<h2 className="text-2xl font-bold text-gray-900">İş Merkezleri</h2>
<p className="text-gray-600">Tüm merkezlerini yönetin ve takip edin</p>
</div>
<div className="flex items-center space-x-2">
{/* View Toggle */}

View file

@ -81,8 +81,8 @@ const BOMManagement: React.FC = () => {
{/* Header */}
<div className="flex items-center justify-between">
<div>
<h2 className="text-xl font-bold text-gray-900">Ürün Ağaçları (BOM)</h2>
<p className="text-sm text-gray-600 mt-0.5">
<h2 className="text-2xl font-bold text-gray-900">Ürün Ağaçları (BOM)</h2>
<p className="text-gray-600">
Ürün bileşenlerini ve üretim operasyonlarını yönetin
</p>
</div>

View file

@ -72,7 +72,7 @@ const CompleteWorkOrderModal: React.FC<CompleteWorkOrderModalProps> = ({
<h3 className="font-medium text-gray-900 mb-2">
{workOrder.workOrderNumber}
</h3>
<p className="text-sm text-gray-600">
<p className="text-gray-600">
Kalan Miktar:{" "}
<span className="font-medium">{remainingQuantity}</span>
</p>

View file

@ -518,8 +518,8 @@ const DemandPlanning: React.FC = () => {
{/* Header */}
<div className="flex items-center justify-between">
<div>
<h2 className="text-xl font-bold text-gray-900">Talep Planlama</h2>
<p className="text-sm text-gray-600 mt-0.5">
<h2 className="text-2xl font-bold text-gray-900">Talep Planlama</h2>
<p className="text-gray-600">
Talep tahmini ve malzeme ihtiyaç hesaplama
</p>
</div>

View file

@ -62,8 +62,8 @@ const OperationDefinitions: React.FC = () => {
{/* Header */}
<div className="flex items-center justify-between">
<div>
<h2 className="text-xl font-bold text-gray-900">Operasyon Tanımları</h2>
<p className="text-sm text-gray-600 mt-0.5">
<h2 className="text-2xl font-bold text-gray-900">Operasyon Tanımları</h2>
<p className="text-gray-600">
İş merkezlerinde gerçekleştirilen operasyonları tanımlayın
</p>
</div>

View file

@ -52,8 +52,8 @@ const OperationTypes: React.FC = () => {
{/* Header */}
<div className="flex items-center justify-between">
<div>
<h2 className="text-xl font-bold text-gray-900">Operasyon Türleri</h2>
<p className="text-sm text-gray-600 mt-0.5">
<h2 className="text-2xl font-bold text-gray-900">Operasyon Türleri</h2>
<p className="text-gray-600">
İş merkezlerinde kullanılacak operasyon türlerini tanımlayın
</p>
</div>

View file

@ -507,10 +507,10 @@ const PlanningGantt: React.FC<PlanningGanttProps> = ({
<div className="mb-3">
<div className="flex items-center gap-3">
<div>
<h2 className="text-xl font-bold text-gray-900">
<h2 className="text-2xl font-bold text-gray-900">
Planlama Gantt Şeması
</h2>
<p className="text-sm text-gray-600 mt-1">
<p className="text-gray-600">
Üretim ve emirlerinizi zaman çizelgesinde yönetin.
</p>
</div>

View file

@ -206,9 +206,9 @@ const ProductionOrderForm: React.FC = () => {
Geri
</button>
<div>
<h1 className="text-xl font-bold text-gray-900">
<h2 className="text-2xl font-bold text-gray-900">
{id === 'new' ? 'Yeni Üretim Emri' : 'Üretim Emri Düzenle'}
</h1>
</h2>
<p className="text-gray-600 mt-0.5 text-sm">
{id === 'new'
? 'Yeni üretim emri oluşturun'

View file

@ -212,7 +212,7 @@ const ProductionOrderList: React.FC = () => {
return (
<div className="space-y-2">
<h3 className="text-lg font-semibold text-gray-900">ık Satış Siparişleri (Step 1)</h3>
<p className="text-sm text-gray-600">
<p className="text-gray-600">
Üretim emri oluşturmak için malzeme satırlarını seçin.
</p>
@ -319,7 +319,7 @@ const ProductionOrderList: React.FC = () => {
return (
<div className="space-y-2">
<h3 className="text-lg font-semibold text-gray-900">BOM Seçimi</h3>
<p className="text-sm text-gray-600">Her seçilen malzeme için uygun BOM'u seçin.</p>
<p className="text-gray-600">Her seçilen malzeme için uygun BOM'u seçin.</p>
{missingBOMs.length > 0 && (
<div className="bg-yellow-50 border border-yellow-200 rounded-lg p-2 mb-3">
@ -361,7 +361,7 @@ const ProductionOrderList: React.FC = () => {
{material?.code} {' - '}
{material?.name || materialId}
</h4>
<p className="text-sm text-gray-600">Toplam Miktar: {totalQuantity}</p>
<p className="text-gray-600">Toplam Miktar: {totalQuantity}</p>
</div>
<div className="space-y-3">
@ -439,7 +439,7 @@ const ProductionOrderList: React.FC = () => {
return (
<div className="space-y-2">
<h3 className="text-lg font-semibold text-gray-900">İş Merkezi Seçimi</h3>
<p className="text-sm text-gray-600">Her operasyon için uygun merkezini seçin.</p>
<p className="text-gray-600">Her operasyon için uygun merkezini seçin.</p>
<div className="space-y-2 mt-2 overflow-y-auto max-h-[350px]">
{selectedBOMsList.map((bom) => (
@ -498,7 +498,7 @@ const ProductionOrderList: React.FC = () => {
return (
<div className="space-y-2">
<h3 className="text-lg font-semibold text-gray-900">Özet ve Onay</h3>
<p className="text-sm text-gray-600">
<p className="text-gray-600">
Seçilen malzemeler, BOM'lar ve merkezi atamalarını gözden geçirin.
</p>
@ -597,8 +597,8 @@ const ProductionOrderList: React.FC = () => {
{/* Header */}
<div className="flex items-center justify-between">
<div>
<h2 className="text-xl font-bold text-gray-900">Üretim Emirleri</h2>
<p className="text-gray-600 mt-1">Üretim süreçlerinizi yönetin ve izleyin</p>
<h2 className="text-2xl font-bold text-gray-900">Üretim Emirleri</h2>
<p className="text-gray-600">Üretim süreçlerinizi yönetin ve izleyin</p>
</div>
<div className="flex items-center space-x-3">
<button

View file

@ -82,8 +82,8 @@ const Requirements: React.FC = () => {
{/* Header */}
<div className="flex items-center justify-between">
<div>
<h2 className="text-xl font-bold text-gray-900">Malzeme İhtiyaçları</h2>
<p className="text-sm text-gray-600">
<h2 className="text-2xl font-bold text-gray-900">Malzeme İhtiyaçları</h2>
<p className="text-gray-600">
Malzeme ihtiyaç hesaplama ve satın alma önerileri
</p>
</div>

View file

@ -322,8 +322,8 @@ const WorkOrders: React.FC = () => {
{/* Header */}
<div className="flex items-center justify-between">
<div>
<h2 className="text-xl font-bold text-gray-900">İş Emirleri</h2>
<p className="text-sm text-gray-600">Üretim operasyonlarının detaylı takibi</p>
<h2 className="text-2xl font-bold text-gray-900">İş Emirleri</h2>
<p className="text-gray-600">Üretim operasyonlarının detaylı takibi</p>
</div>
<button
onClick={handleAdd}

View file

@ -165,8 +165,8 @@ const ActivityTypes: React.FC = () => {
<div className="space-y-2">
<div className="flex items-center justify-between">
<div>
<h2 className="text-xl font-bold text-gray-900">Aktivite Türleri</h2>
<p className="text-gray-600 mt-1">Proje ve görev aktivitelerinin türlerini yönetin</p>
<h2 className="text-2xl font-bold text-gray-900">Aktivite Türleri</h2>
<p className="text-gray-600">Proje ve görev aktivitelerinin türlerini yönetin</p>
</div>
<div className="flex gap-1.5">
<div className="flex border border-gray-300 rounded-lg overflow-hidden">

View file

@ -1,4 +1,4 @@
import React, { useState } from "react";
import React, { useState } from 'react'
import {
FaSearch,
FaDollarSign,
@ -7,78 +7,64 @@ import {
FaClock,
FaChartBar,
FaDownload,
} from "react-icons/fa";
import { PsProjectCostTracking } from "../../../types/ps";
import { mockProjectCostTracking } from "../../../mocks/mockProjectCostTracking";
import Widget from "../../../components/common/Widget";
} from 'react-icons/fa'
import { PsProjectCostTracking } from '../../../types/ps'
import { mockProjectCostTracking } from '../../../mocks/mockProjectCostTracking'
import Widget from '../../../components/common/Widget'
import {
getCostTimeTrackingStatusColor,
getCostTimeTrackingStatusIcon,
getCostTimeTrackingStatusText,
} from "../../../utils/erp";
} from '../../../utils/erp'
import { Container } from '@/components/shared'
const CostTimeTracking: React.FC = () => {
const [searchTerm, setSearchTerm] = useState("");
const [statusFilter, setStatusFilter] = useState<string>("");
const [selectedProject, setSelectedProject] = useState<string>("");
const [searchTerm, setSearchTerm] = useState('')
const [statusFilter, setStatusFilter] = useState<string>('')
const [selectedProject, setSelectedProject] = useState<string>('')
const getBudgetVariance = (project: PsProjectCostTracking) => {
return (
((project.actualCost - (project.plannedBudget * project.progress) / 100) /
project.plannedBudget) *
100
);
};
)
}
const getScheduleVariance = (project: PsProjectCostTracking) => {
if (!project.actualDuration) return 0;
const plannedDurationAtProgress =
(project.plannedDuration * project.progress) / 100;
return (
((project.actualDuration - plannedDurationAtProgress) /
project.plannedDuration) *
100
);
};
if (!project.actualDuration) return 0
const plannedDurationAtProgress = (project.plannedDuration * project.progress) / 100
return ((project.actualDuration - plannedDurationAtProgress) / project.plannedDuration) * 100
}
const filteredProjects = mockProjectCostTracking.filter((project) => {
const matchesSearch =
project.projectName.toLowerCase().includes(searchTerm.toLowerCase()) ||
project.projectCode.toLowerCase().includes(searchTerm.toLowerCase());
const matchesStatus =
statusFilter === "" || project.status === statusFilter;
return matchesSearch && matchesStatus;
});
project.projectCode.toLowerCase().includes(searchTerm.toLowerCase())
const matchesStatus = statusFilter === '' || project.status === statusFilter
return matchesSearch && matchesStatus
})
const totalPlannedBudget = mockProjectCostTracking.reduce(
(sum, p) => sum + p.plannedBudget,
0
);
const totalActualCost = mockProjectCostTracking.reduce(
(sum, p) => sum + p.actualCost,
0
);
const totalPlannedBudget = mockProjectCostTracking.reduce((sum, p) => sum + p.plannedBudget, 0)
const totalActualCost = mockProjectCostTracking.reduce((sum, p) => sum + p.actualCost, 0)
const averageProgress =
mockProjectCostTracking.reduce((sum, p) => sum + p.progress, 0) /
mockProjectCostTracking.length;
mockProjectCostTracking.reduce((sum, p) => sum + p.progress, 0) / mockProjectCostTracking.length
const ProjectDetailModal = () => {
const project = mockProjectCostTracking.find(
(p) => p.id === selectedProject
);
const project = mockProjectCostTracking.find((p) => p.id === selectedProject)
if (!selectedProject || !project) return null;
if (!selectedProject || !project) return null
const StatusIcon = getCostTimeTrackingStatusIcon(project.status);
const budgetVariance = getBudgetVariance(project);
const scheduleVariance = getScheduleVariance(project);
const StatusIcon = getCostTimeTrackingStatusIcon(project.status)
const budgetVariance = getBudgetVariance(project)
const scheduleVariance = getScheduleVariance(project)
return (
<div className="fixed inset-0 z-50 overflow-y-auto">
<div className="flex items-center justify-center min-h-screen pt-4 px-4 pb-20 text-center sm:block sm:p-0">
<div
className="fixed inset-0 bg-gray-500 bg-opacity-75 transition-opacity"
onClick={() => setSelectedProject("")}
onClick={() => setSelectedProject('')}
></div>
<div className="inline-block align-bottom bg-white rounded-lg text-left overflow-hidden shadow-xl transform transition-all sm:my-2 sm:align-middle sm:max-w-3xl sm:w-full">
@ -91,15 +77,10 @@ const CostTimeTracking: React.FC = () => {
</h3>
</div>
<button
onClick={() => setSelectedProject("")}
onClick={() => setSelectedProject('')}
className="text-gray-400 hover:text-gray-600"
>
<svg
className="w-5 h-5"
fill="none"
viewBox="0 0 24 24"
stroke="currentColor"
>
<svg className="w-5 h-5" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path
strokeLinecap="round"
strokeLinejoin="round"
@ -120,23 +101,17 @@ const CostTimeTracking: React.FC = () => {
<div className="space-y-3">
<div className="flex justify-between">
<span>Planlanan Bütçe:</span>
<span className="font-medium">
{project.plannedBudget.toLocaleString()}
</span>
<span className="font-medium">{project.plannedBudget.toLocaleString()}</span>
</div>
<div className="flex justify-between">
<span>Gerçekleşen Maliyet:</span>
<span className="font-medium">
{project.actualCost.toLocaleString()}
</span>
<span className="font-medium">{project.actualCost.toLocaleString()}</span>
</div>
<div className="flex justify-between">
<span>Kalan Bütçe:</span>
<span
className={`font-medium ${
project.remainingBudget >= 0
? "text-green-600"
: "text-red-600"
project.remainingBudget >= 0 ? 'text-green-600' : 'text-red-600'
}`}
>
{project.remainingBudget.toLocaleString()}
@ -145,20 +120,14 @@ const CostTimeTracking: React.FC = () => {
<div className="flex justify-between">
<span>Bütçe Kullanım Oranı:</span>
<span className="font-medium">
%
{(
(project.actualCost / project.plannedBudget) *
100
).toFixed(1)}
%{((project.actualCost / project.plannedBudget) * 100).toFixed(1)}
</span>
</div>
<div className="flex justify-between">
<span>Bütçe Varyansı:</span>
<span
className={`font-medium flex items-center gap-1 ${
budgetVariance >= 0
? "text-red-600"
: "text-green-600"
budgetVariance >= 0 ? 'text-red-600' : 'text-green-600'
}`}
>
{budgetVariance >= 0 ? (
@ -181,15 +150,11 @@ const CostTimeTracking: React.FC = () => {
<div className="space-y-3">
<div className="flex justify-between">
<span>Planlanan Süre:</span>
<span className="font-medium">
{project.plannedDuration} gün
</span>
<span className="font-medium">{project.plannedDuration} gün</span>
</div>
<div className="flex justify-between">
<span>Geçen Süre:</span>
<span className="font-medium">
{project.actualDuration || 0} gün
</span>
<span className="font-medium">{project.actualDuration || 0} gün</span>
</div>
<div className="flex justify-between">
<span>İlerleme:</span>
@ -198,16 +163,14 @@ const CostTimeTracking: React.FC = () => {
<div className="flex justify-between">
<span>Planlanan Bitiş:</span>
<span className="font-medium">
{project.plannedEndDate.toLocaleDateString("tr-TR")}
{project.plannedEndDate.toLocaleDateString('tr-TR')}
</span>
</div>
<div className="flex justify-between">
<span>Süre Varyansı:</span>
<span
className={`font-medium flex items-center gap-1 ${
scheduleVariance >= 0
? "text-red-600"
: "text-green-600"
scheduleVariance >= 0 ? 'text-red-600' : 'text-green-600'
}`}
>
{scheduleVariance >= 0 ? (
@ -244,25 +207,20 @@ const CostTimeTracking: React.FC = () => {
<div className="flex justify-between text-sm mb-1">
<span>Bütçe Kullanımı</span>
<span>
%
{(
(project.actualCost / project.plannedBudget) *
100
).toFixed(1)}
%{((project.actualCost / project.plannedBudget) * 100).toFixed(1)}
</span>
</div>
<div className="w-full bg-gray-200 rounded-full h-2">
<div
className={`h-2 rounded-full ${
project.actualCost > project.plannedBudget
? "bg-red-600"
: "bg-green-600"
? 'bg-red-600'
: 'bg-green-600'
}`}
style={{
width: `${Math.min(
(project.actualCost / project.plannedBudget) *
(project.actualCost / project.plannedBudget) * 100,
100,
100
)}%`,
}}
></div>
@ -273,27 +231,20 @@ const CostTimeTracking: React.FC = () => {
<div className="flex justify-between text-sm mb-1">
<span>Süre Kullanımı</span>
<span>
%
{(
(project.actualDuration /
project.plannedDuration) *
100
).toFixed(1)}
%{((project.actualDuration / project.plannedDuration) * 100).toFixed(1)}
</span>
</div>
<div className="w-full bg-gray-200 rounded-full h-2">
<div
className={`h-2 rounded-full ${
project.actualDuration > project.plannedDuration
? "bg-red-600"
: "bg-green-600"
? 'bg-red-600'
: 'bg-green-600'
}`}
style={{
width: `${Math.min(
(project.actualDuration /
project.plannedDuration) *
(project.actualDuration / project.plannedDuration) * 100,
100,
100
)}%`,
}}
></div>
@ -307,19 +258,16 @@ const CostTimeTracking: React.FC = () => {
</div>
</div>
</div>
);
};
)
}
return (
<div className="space-y-2 pt-2">
<Container>
<div className="space-y-2">
<div className="flex items-center justify-between">
<div>
<h2 className="text-xl font-bold text-gray-900">
Proje Maliyet ve Süre Takibi
</h2>
<p className="text-gray-600 mt-1">
Projelerin bütçe ve zaman performansını analiz edin
</p>
<h2 className="text-2xl font-bold text-gray-900">Proje Maliyet ve Süre Takibi</h2>
<p className="text-gray-600">Projelerin bütçe ve zaman performansını analiz edin</p>
</div>
<div className="flex gap-2">
<button className="bg-green-600 text-white px-3 py-1.5 rounded-lg hover:bg-green-700 flex items-center gap-2">
@ -354,10 +302,7 @@ const CostTimeTracking: React.FC = () => {
<Widget
title="Aktif Projeler"
value={
mockProjectCostTracking.filter((p) => p.status !== "COMPLETED")
.length
}
value={mockProjectCostTracking.filter((p) => p.status !== 'COMPLETED').length}
color="purple"
icon="FaChartPie"
/>
@ -416,11 +361,9 @@ const CostTimeTracking: React.FC = () => {
</thead>
<tbody className="bg-white divide-y divide-gray-200">
{filteredProjects.map((project) => {
const StatusIcon = getCostTimeTrackingStatusIcon(
project.status
);
const budgetVariance = getBudgetVariance(project);
const scheduleVariance = getScheduleVariance(project);
const StatusIcon = getCostTimeTrackingStatusIcon(project.status)
const budgetVariance = getBudgetVariance(project)
const scheduleVariance = getScheduleVariance(project)
return (
<tr key={project.id} className="hover:bg-gray-50 text-sm">
@ -429,9 +372,7 @@ const CostTimeTracking: React.FC = () => {
<div className="text-sm font-medium text-gray-900">
{project.projectName}
</div>
<div className="text-sm text-gray-500">
{project.projectCode}
</div>
<div className="text-sm text-gray-500">{project.projectCode}</div>
</div>
</td>
<td className="px-2 py-1.5 whitespace-nowrap">
@ -442,9 +383,7 @@ const CostTimeTracking: React.FC = () => {
</div>
<div
className={`flex items-center gap-1 ${
budgetVariance >= 0
? "text-red-600"
: "text-green-600"
budgetVariance >= 0 ? 'text-red-600' : 'text-green-600'
}`}
>
{budgetVariance >= 0 ? (
@ -461,14 +400,11 @@ const CostTimeTracking: React.FC = () => {
<td className="px-2 py-1.5 whitespace-nowrap">
<div className="text-sm">
<div className="font-medium text-gray-900">
{project.actualDuration || 0} /{" "}
{project.plannedDuration} gün
{project.actualDuration || 0} / {project.plannedDuration} gün
</div>
<div
className={`flex items-center gap-1 ${
scheduleVariance >= 0
? "text-red-600"
: "text-green-600"
scheduleVariance >= 0 ? 'text-red-600' : 'text-green-600'
}`}
>
{scheduleVariance >= 0 ? (
@ -498,7 +434,7 @@ const CostTimeTracking: React.FC = () => {
<td className="px-2 py-1.5 whitespace-nowrap">
<span
className={`inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium ${getCostTimeTrackingStatusColor(
project.status
project.status,
)}`}
>
<StatusIcon className="w-3 h-3 mr-1" />
@ -514,17 +450,18 @@ const CostTimeTracking: React.FC = () => {
</button>
</td>
</tr>
);
)
})}
</tbody>
</table>
</div>
</div>
</div>
{/* Project Detail Modal */}
<ProjectDetailModal />
</div>
);
};
</Container>
)
}
export default CostTimeTracking;
export default CostTimeTracking

View file

@ -38,7 +38,7 @@ const PhaseViewModal: React.FC<PhaseViewModalProps> = ({
<h3 className="text-base font-semibold text-gray-900">
Proje Aşamaları
</h3>
<p className="text-sm text-gray-600">
<p className="text-gray-600">
{project.name} - {project.code}
</p>
</div>

View file

@ -630,10 +630,10 @@ const ProjectForm: React.FC = () => {
<FaFolder className="w-6 h-6 text-blue-600" />
</div>
<div>
<h1 className="text-xl font-bold text-gray-900">
<h2 className="text-2xl font-bold text-gray-900">
{isEdit ? formData.code : 'Yeni Proje'}
</h1>
<p className="text-sm text-gray-600">
</h2>
<p className="text-gray-600">
{isEdit ? formData.name : 'Proje bilgilerini girin'}
</p>
</div>

View file

@ -545,8 +545,8 @@ const ProjectGantt: React.FC<ProjectGanttProps> = ({ employeeId }) => {
<div className="space-y-2">
<div className="flex items-center gap-3">
<div>
<h2 className="text-xl font-bold text-gray-900">İş Yükü ve Proje Takibi</h2>
<p className="text-gray-600 mt-1">
<h2 className="text-2xl font-bold text-gray-900">İş Yükü ve Proje Takibi</h2>
<p className="text-gray-600">
Tüm görevlerinizi merkezi bir noktadan yönetin.
</p>
</div>

View file

@ -110,8 +110,8 @@ const ProjectList: React.FC = () => {
<div className="space-y-2">
<div className="flex items-center justify-between">
<div>
<h2 className="text-xl font-bold text-gray-900">Proje Listesi</h2>
<p className="text-gray-600 mt-1">Proje listesinizi yönetin</p>
<h2 className="text-2xl font-bold text-gray-900">Proje Listesi</h2>
<p className="text-gray-600">Proje listesinizi yönetin</p>
</div>
<div className="flex items-center space-x-2">
{/* View Toggle */}

View file

@ -166,7 +166,7 @@ const ProjectPhases: React.FC = () => {
<div className="flex-1">
<div className="flex items-center gap-3 mb-2">
<div>
<h2 className="text-xl font-bold text-gray-900">Proje Aşamaları</h2>
<h2 className="text-2xl font-bold text-gray-900">Proje Aşamaları</h2>
<p className="text-gray-600">Proje İlerleme Yönetimi</p>
</div>
</div>

View file

@ -171,7 +171,7 @@ const ProjectTasks: React.FC = () => {
<div className="space-y-2">
<div className="flex items-center justify-between mb-4">
<div>
<h2 className="text-xl font-bold text-gray-900">Görev Yönetimi</h2>
<h2 className="text-2xl font-bold text-gray-900">Görev Yönetimi</h2>
<p className="text-gray-600">
Proje görevlerinizi oluşturun, düzenleyin ve takip edin
</p>
@ -470,7 +470,7 @@ const ProjectTasks: React.FC = () => {
<h3 className="text-lg font-bold text-gray-900">
{selectedTask.taskCode} - {selectedTask.name}
</h3>
<p className="text-sm text-gray-600">Görev detayları</p>
<p className="text-gray-600">Görev detayları</p>
</div>
</div>
<button

View file

@ -100,7 +100,7 @@ const ProjectView: React.FC = () => {
</div>
<div>
<h1 className="text-lg font-bold text-gray-900">{project.code}</h1>
<p className="text-sm text-gray-600">{project.name}</p>
<p className="text-gray-600">{project.name}</p>
</div>
</div>
</div>
@ -307,7 +307,7 @@ const ProjectView: React.FC = () => {
<h4 className="font-medium text-gray-900">
{project.projectManager.fullName}
</h4>
<p className="text-sm text-gray-600">
<p className="text-gray-600">
{project.projectManager.jobPosition?.name || 'Proje Yöneticisi'}
</p>
<div className="flex items-center mt-1 text-sm text-gray-500">
@ -339,7 +339,7 @@ const ProjectView: React.FC = () => {
<h4 className="font-medium text-gray-900">
{project.customer.name}
</h4>
<p className="text-sm text-gray-600">
<p className="text-gray-600">
{project.customer.primaryContact?.firstName}{' '}
{project.customer.primaryContact?.lastName}
</p>

View file

@ -147,10 +147,9 @@ const TaskDailyUpdates: React.FC = () => {
<Container>
<div className="space-y-2">
{/* Header */}
<div className="mb-4 mt-2">
<div className="flex items-center justify-between mb-3">
<div>
<h2 className="text-lg font-bold text-gray-900">Günlük Aktivite Takibi</h2>
<h2 className="text-2xl font-bold text-gray-900">Günlük Aktivite Takibi</h2>
<p className="text-gray-600">
Günlük işlerinizi planlayın, tamamlanan görevleri işaretleyin
</p>
@ -166,12 +165,7 @@ const TaskDailyUpdates: React.FC = () => {
{/* Stats */}
<div className="grid grid-cols-4 gap-2">
<Widget
title="Bugün Toplam"
value={`${todayTotalHours}h`}
color="blue"
icon="FaClock"
/>
<Widget title="Bugün Toplam" value={`${todayTotalHours}h`} color="blue" icon="FaClock" />
<Widget
title="Onaylanan"
@ -186,9 +180,8 @@ const TaskDailyUpdates: React.FC = () => {
<Widget
title="Beklemede"
value={
filteredUpdates.filter(
(update) => update.status === DailyUpdateStatusEnum.Submitted,
).length
filteredUpdates.filter((update) => update.status === DailyUpdateStatusEnum.Submitted)
.length
}
color="yellow"
icon="FaHourglassHalf"
@ -238,7 +231,6 @@ const TaskDailyUpdates: React.FC = () => {
/>
</div>
</div>
</div>
{/* Updates List */}
<div className="bg-white rounded-lg shadow-sm border border-gray-200">

View file

@ -122,7 +122,7 @@ const TaskViewModal: React.FC<TaskViewModalProps> = ({
<h3 className="text-lg font-semibold text-gray-900">
Proje Görevleri
</h3>
<p className="text-sm text-gray-600">
<p className="text-gray-600">
{project.name} - {project.code}
</p>
</div>

View file

@ -80,7 +80,7 @@ const Contact: React.FC = () => {
<div className="grid grid-cols-1 lg:grid-cols-2 gap-12">
<div className="space-y-4">
<div className="bg-white rounded-xl shadow-lg p-8">
<h2 className="text-2xl font-bold text-gray-900 mb-6">
<h2 className="text-2xl font-bold text-gray-900">
{translate('::Public.contact.info.title')}
</h2>
<div className="space-y-4">

View file

@ -184,7 +184,7 @@ const Home: React.FC = () => {
className="p-8 bg-white rounded-xl shadow-lg hover:shadow-xl transition-shadow"
>
<div className="mb-6">{feature.icon}</div>
<h3 className="text-xl font-semibold text-gray-900 mb-4">{feature.title}</h3>
<h2 className="text-2xl font-bold text-gray-900">{feature.title}</h2>
<p className="text-gray-600">{feature.description}</p>
</div>
))}

View file

@ -94,8 +94,8 @@ const ApprovalWorkflows: React.FC = () => {
{/* Header */}
<div className="flex items-center justify-between">
<div>
<h2 className="text-xl font-bold text-gray-900">Onay Süreçleri</h2>
<p className="text-sm text-gray-600 mt-1">
<h2 className="text-2xl font-bold text-gray-900">Onay Süreçleri</h2>
<p className="text-gray-600">
Departman bazlı satınalma onay süreçlerini yönetin
</p>
</div>

View file

@ -164,8 +164,8 @@ const DeliveryTracking: React.FC = () => {
{/* Header */}
<div className="flex items-center justify-between">
<div>
<h2 className="text-xl font-bold text-gray-900">Teslimat Takibi</h2>
<p className="text-sm text-gray-600 mt-1">
<h2 className="text-2xl font-bold text-gray-900">Teslimat Takibi</h2>
<p className="text-gray-600">
Sipariş teslimatlarını takip edin ve yönetin
</p>
</div>

View file

@ -66,10 +66,10 @@ const MaterialCard: React.FC = () => {
<FaBox className="w-6 h-6 text-blue-600" />
</div>
<div>
<h2 className="text-xl font-bold text-gray-900">
<h2 className="text-2xl font-bold text-gray-900">
{material.code}
</h2>
<p className="text-sm text-gray-600">{material.name}</p>
<p className="text-gray-600">{material.name}</p>
</div>
</div>
<div className="flex items-center space-x-1.5">

View file

@ -337,10 +337,10 @@ const MaterialForm: React.FC = () => {
<div className="bg-white rounded-lg shadow-sm border border-gray-200 p-2.5">
<div className="flex items-center justify-between">
<div>
<h2 className="text-xl font-bold text-gray-900">
<h2 className="text-2xl font-bold text-gray-900">
{isEdit ? "Malzeme Düzenle" : "Yeni Malzeme Ekle"}
</h2>
<p className="text-sm text-gray-600">
<p className="text-gray-600">
{isEdit
? "Mevcut malzeme bilgilerini güncelleyin"
: "Yeni malzeme kartı oluşturun"}

View file

@ -103,8 +103,8 @@ const MaterialGroups: React.FC = () => {
<div className="flex flex-col sm:flex-row items-start sm:items-center justify-between gap-3">
{/* Title & Description */}
<div>
<h2 className="text-xl font-bold text-gray-900">Malzeme Grupları</h2>
<p className="text-sm text-gray-600">Malzeme gruplarını yönetin</p>
<h2 className="text-2xl font-bold text-gray-900">Malzeme Grupları</h2>
<p className="text-gray-600">Malzeme gruplarını yönetin</p>
</div>
{/* Header Actions */}

View file

@ -365,8 +365,8 @@ const MaterialList: React.FC = () => {
<div className="flex flex-col sm:flex-row items-start sm:items-center justify-between gap-3">
{/* Title & Description */}
<div>
<h2 className="text-xl font-bold text-gray-900">Malzeme Listesi</h2>
<p className="text-sm text-gray-600">
<h2 className="text-2xl font-bold text-gray-900">Malzeme Listesi</h2>
<p className="text-gray-600">
Toplam {totalCount} malzeme bulundu
</p>
</div>

View file

@ -72,8 +72,8 @@ const MaterialTypes: React.FC = () => {
<div className="flex flex-col sm:flex-row items-start sm:items-center justify-between gap-3">
{/* Title & Description */}
<div>
<h2 className="text-xl font-bold text-gray-900">Malzeme Türleri</h2>
<p className="text-sm text-gray-600">Malzeme türlerini yönetin</p>
<h2 className="text-2xl font-bold text-gray-900">Malzeme Türleri</h2>
<p className="text-gray-600">Malzeme türlerini yönetin</p>
</div>
{/* Header Actions */}

View file

@ -147,10 +147,10 @@ const OrderManagement: React.FC = () => {
{/* Header */}
<div className="flex items-center justify-between">
<div>
<h2 className="text-xl font-bold text-gray-900">
<h2 className="text-2xl font-bold text-gray-900">
Satınalma Siparişleri
</h2>
<p className="text-sm text-gray-600">
<p className="text-gray-600">
Satınalma siparişlerini oluşturun ve takip edin
</p>
</div>

View file

@ -209,7 +209,7 @@ const OrderManagementForm: React.FC = () => {
>
<FaArrowLeft />
</button>
<h1 className="text-xl font-bold text-gray-900">{pageTitle}</h1>
<h2 className="text-2xl font-bold text-gray-900">{pageTitle}</h2>
</div>
<div className="flex space-x-2">
<button

View file

@ -148,7 +148,7 @@ const PurchaseRequestForm: React.FC = () => {
>
<FaArrowLeft />
</button>
<h1 className="text-xl font-bold text-gray-900">{pageTitle}</h1>
<h2 className="text-2xl font-bold text-gray-900">{pageTitle}</h2>
</div>
<div className="flex space-x-2">
<button

View file

@ -64,8 +64,8 @@ const PurchaseRequests: React.FC = () => {
{/* Header */}
<div className="flex items-center justify-between">
<div>
<h2 className="text-xl font-bold text-gray-900">Satınalma Talepleri</h2>
<p className="text-sm text-gray-600">Malzeme, hizmet ve merkezi taleplerini yönetin</p>
<h2 className="text-2xl font-bold text-gray-900">Satınalma Talepleri</h2>
<p className="text-gray-600">Malzeme, hizmet ve merkezi taleplerini yönetin</p>
</div>
<button
onClick={handleAddNew}

View file

@ -167,7 +167,7 @@ const QuotationForm: React.FC = () => {
>
<FaArrowLeft />
</button>
<h1 className="text-xl font-bold text-gray-900">{pageTitle}</h1>
<h2 className="text-2xl font-bold text-gray-900">{pageTitle}</h2>
</div>
<div className="flex space-x-2">
<button

View file

@ -120,8 +120,8 @@ const QuotationManagement: React.FC = () => {
{/* Header */}
<div className="flex items-center justify-between">
<div>
<h2 className="text-xl font-bold text-gray-900">Teklif Yönetimi</h2>
<p className="text-sm text-gray-600">
<h2 className="text-2xl font-bold text-gray-900">Teklif Yönetimi</h2>
<p className="text-gray-600">
Tedarikçi tekliflerini yönetin ve karşılaştırın
</p>
</div>

View file

@ -96,8 +96,8 @@ const SupplierCards: React.FC = () => {
{/* Header */}
<div className="flex items-center justify-between">
<div>
<h2 className="text-xl font-bold text-gray-900">Tedarikçiler</h2>
<p className="text-sm text-gray-600">
<h2 className="text-2xl font-bold text-gray-900">Tedarikçiler</h2>
<p className="text-gray-600">
Tedarikçi kredi limitleri, özel şartlar ve performans metriklerini
yönetin
</p>

View file

@ -63,8 +63,8 @@ const InventoryTracking: React.FC = () => {
{/* Header */}
<div className="flex items-center justify-between">
<div>
<h2 className="text-xl font-bold text-gray-900">Envanter Takibi</h2>
<p className="text-sm text-gray-600">
<h2 className="text-2xl font-bold text-gray-900">Envanter Takibi</h2>
<p className="text-gray-600">
Lot ve seri numarası takiplerini yönetin
</p>
</div>

View file

@ -477,10 +477,10 @@ const LocationTracking: React.FC = () => {
<div className="space-y-4 pt-2">
<div className="flex items-center justify-between">
<div>
<h2 className="text-xl font-bold text-gray-900">
<h2 className="text-2xl font-bold text-gray-900">
Raf/Lokasyon Bazlı Takip
</h2>
<p className="text-sm text-gray-600 mt-1">
<p className="text-gray-600">
Lokasyonlardaki stok durumunu takip edin
</p>
</div>

View file

@ -111,14 +111,14 @@ const LotForm: React.FC<LotFormProps> = ({
<form onSubmit={formik.handleSubmit} className="space-y-2 p-3">
<div className="flex items-center justify-between p-2 border-b">
<div>
<h2 className="text-xl font-bold text-gray-900">
<h2 className="text-2xl font-bold text-gray-900">
{mode === "create"
? "Yeni Lot Kaydı"
: mode === "edit"
? "Lot Düzenle"
: "Lot Detayı"}
</h2>
<p className="text-sm text-gray-600">
<p className="text-gray-600">
{mode === "create"
? "Lot bilgilerini girin"
: mode === "edit"

View file

@ -73,10 +73,10 @@ const MaterialMovements: React.FC<{ materialId?: string }> = ({
{/* Header */}
<div className="flex items-center justify-between">
<div>
<h2 className="text-xl font-bold text-gray-900">
<h2 className="text-2xl font-bold text-gray-900">
{materialId ? "Stok Hareketleri" : "Tüm Stok Hareketleri"}
</h2>
<p className="text-sm text-gray-600">
<p className="text-gray-600">
{materialId
? `${materialId} kodlu malzeme için`
: "Tüm malzemeler için"}{" "}

View file

@ -318,10 +318,10 @@ const PutawayRules: React.FC = () => {
<div className="space-y-4 pt-2">
<div className="flex items-center justify-between">
<div>
<h2 className="text-xl font-bold text-gray-900">
<h2 className="text-2xl font-bold text-gray-900">
Yerleştirme Kuralları
</h2>
<p className="text-sm text-gray-600 mt-1">
<p className="text-gray-600">
Malzeme yerleştirme kurallarını tanımlayın ve yönetin
</p>
</div>

View file

@ -2632,10 +2632,10 @@ const StockLevelsInventory: React.FC = () => {
<div className="space-y-4 pt-2">
<div className="flex items-center justify-between">
<div>
<h2 className="text-xl font-bold text-gray-900">
<h2 className="text-2xl font-bold text-gray-900">
Stok Durumu & Stok Sayımı
</h2>
<p className="text-sm text-gray-600 mt-1">
<p className="text-gray-600">
Stok seviyelerini izleyin ve envanter sayımlarını yönetin
</p>
</div>

View file

@ -234,7 +234,7 @@ const WarehouseDefinitions: React.FC = () => {
<h3 className="font-medium text-sm text-gray-900">
{warehouse.name}
</h3>
<p className="text-sm text-gray-600">{warehouse.code}</p>
<p className="text-gray-600">{warehouse.code}</p>
</div>
</div>
{warehouse.isMainWarehouse && (
@ -543,7 +543,7 @@ const WarehouseDefinitions: React.FC = () => {
<h3 className="font-medium text-sm text-gray-900">
{zone.name}
</h3>
<p className="text-sm text-gray-600">{zone.zoneCode}</p>
<p className="text-gray-600">{zone.zoneCode}</p>
</div>
</div>
<span className="inline-flex px-2 py-1 text-xs font-medium rounded-full bg-blue-100 text-blue-800">
@ -1104,8 +1104,8 @@ const WarehouseDefinitions: React.FC = () => {
<div className="space-y-4 pt-2">
<div className="flex items-center justify-between">
<div>
<h2 className="text-lg font-bold text-gray-900">Depo Tanımları</h2>
<p className="text-sm text-gray-600">
<h2 className="text-2xl font-bold text-gray-900">Depo Tanımları</h2>
<p className="text-gray-600">
Depolar, bölgeler ve lokasyonları yönetin
</p>
</div>

View file

@ -1028,8 +1028,8 @@ const WarehouseIssue: React.FC = () => {
<div className="space-y-4 pt-2">
<div className="flex items-center justify-between">
<div>
<h2 className="text-xl font-bold text-gray-900">Stok Çıkış</h2>
<p className="text-sm text-gray-600 mt-1">
<h2 className="text-2xl font-bold text-gray-900">Stok Çıkış</h2>
<p className="text-gray-600">
Depodan malzeme çıkış hareketlerini yönetin
</p>
</div>

View file

@ -492,8 +492,8 @@ const WarehouseReceipt: React.FC = () => {
<div className="space-y-4 pt-2">
<div className="flex items-center justify-between">
<div>
<h2 className="text-xl font-bold text-gray-900">Stok Giriş</h2>
<p className="text-sm text-gray-600 mt-1">
<h2 className="text-2xl font-bold text-gray-900">Stok Giriş</h2>
<p className="text-gray-600">
Depoya malzeme giriş hareketlerini yönetin
</p>
</div>

View file

@ -547,8 +547,8 @@ const WarehouseTransfer: React.FC = () => {
<div className="space-y-4 pt-2">
<div className="flex items-center justify-between">
<div>
<h2 className="text-xl font-bold text-gray-900">Stok Transfer</h2>
<p className="text-sm text-gray-600 mt-1">
<h2 className="text-2xl font-bold text-gray-900">Stok Transfer</h2>
<p className="text-gray-600">
Depolar arası malzeme transfer hareketlerini yönetin
</p>
</div>