From 57796d1177926475de38a566c1ed4eb1de5c2856 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sedat=20=C3=96ZT=C3=9CRK?= <76204082+iamsedatozturk@users.noreply.github.com> Date: Tue, 16 Sep 2025 08:58:13 +0300 Subject: [PATCH] Container Modal problemleri --- ui/dev-dist/sw.js | 2 +- .../components/CheckNoteManagement.tsx | 405 ++++---- .../components/CurrentAccountManagement.tsx | 906 ++++++++---------- .../views/crm/components/ActivityRecords.tsx | 32 +- 4 files changed, 635 insertions(+), 710 deletions(-) diff --git a/ui/dev-dist/sw.js b/ui/dev-dist/sw.js index abf60c30..e51461c0 100644 --- a/ui/dev-dist/sw.js +++ b/ui/dev-dist/sw.js @@ -82,7 +82,7 @@ define(['./workbox-a959eb95'], (function (workbox) { 'use strict'; "revision": "3ca0b8505b4bec776b69afdba2768812" }, { "url": "/index.html", - "revision": "0.daul0044rt" + "revision": "0.hml46tc2c78" }], {}); workbox.cleanupOutdatedCaches(); workbox.registerRoute(new workbox.NavigationRoute(workbox.createHandlerBoundToURL("/index.html"), { diff --git a/ui/src/views/accounting/components/CheckNoteManagement.tsx b/ui/src/views/accounting/components/CheckNoteManagement.tsx index 6b30cbb4..d88bc59d 100644 --- a/ui/src/views/accounting/components/CheckNoteManagement.tsx +++ b/ui/src/views/accounting/components/CheckNoteManagement.tsx @@ -26,6 +26,7 @@ import CheckNoteDetails from './CheckNoteDetails' import CollectionDialog from './CollectionDialog' import EndorsementDialog from './EndorsementDialog' import Widget from '../../../components/common/Widget' +import { Container } from '@/components/shared' interface CheckNoteManagementProps { checks: FiCheck[] @@ -662,92 +663,217 @@ const CheckNoteManagement: React.FC = ({ }) return ( -
- {/* Header */} -
-
-

Çek & Senet Takibi

-

Alınan ve verilen çek & senet yönetimi

+ +
+ {/* Header */} +
+
+

Çek & Senet Takibi

+

Alınan ve verilen çek & senet yönetimi

+
+
+ + +
-
- - + + {/* Stats Cards */} +
+ + + +
-
- {/* Stats Cards */} -
- - - - -
- - {/* Alerts */} - {(dueChecks.length > 0 || - dueNotes.length > 0 || - overdueChecks.length > 0 || - overdueNotes.length > 0) && ( -
- {(dueChecks.length > 0 || dueNotes.length > 0) && ( -
-
- -

Vadesi Yaklaşan

+ {/* Alerts */} + {(dueChecks.length > 0 || + dueNotes.length > 0 || + overdueChecks.length > 0 || + overdueNotes.length > 0) && ( +
+ {(dueChecks.length > 0 || dueNotes.length > 0) && ( +
+
+ +

Vadesi Yaklaşan

+
+

+ {dueChecks.length} çek ve {dueNotes.length} senet 7 gün içinde vadesi dolacak. +

-

- {dueChecks.length} çek ve {dueNotes.length} senet 7 gün içinde vadesi dolacak. -

-
+ )} + + {(overdueChecks.length > 0 || overdueNotes.length > 0) && ( +
+
+ +

Vadesi Geçmiş

+
+

+ {overdueChecks.length} çek ve {overdueNotes.length} senet vadesi geçmiş durumda. +

+
+ )} +
+ )} + + {/* Tabs */} +
+ +
+ + {/* Filters */} +
+
+ + setSearchTerm(e.target.value)} + className="w-full pl-10 pr-3 py-1.5 text-sm border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500" + /> +
+ + + + {activeTab === 'checks' ? ( + + ) : ( + )} - {(overdueChecks.length > 0 || overdueNotes.length > 0) && ( -
-
- -

Vadesi Geçmiş

-
-

- {overdueChecks.length} çek ve {overdueNotes.length} senet vadesi geçmiş durumda. -

-
+ +
+ + {/* Data Table */} +
+ {activeTab === 'checks' ? ( + + ) : ( + )}
- )} + + {/* Empty State */} + {((activeTab === 'checks' && filteredChecks.length === 0) || + (activeTab === 'notes' && filteredNotes.length === 0)) && ( +
+ {activeTab === 'checks' ? ( + + ) : ( + + )} +

+ {activeTab === 'checks' ? 'Çek bulunamadı' : 'Senet bulunamadı'} +

+

+ {activeTab === 'checks' + ? 'Yeni bir çek ekleyin veya arama kriterlerinizi değiştirin.' + : 'Yeni bir senet ekleyin veya arama kriterlerinizi değiştirin.'} +

+
+ )} +
{/* Modal Components */} = ({ isOpen={showEndorsementDialog} /> )} - - {/* Tabs */} -
- -
- - {/* Filters */} -
-
- - setSearchTerm(e.target.value)} - className="w-full pl-10 pr-3 py-1.5 text-sm border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500" - /> -
- - - - {activeTab === 'checks' ? ( - - ) : ( - - )} - - -
- - {/* Data Table */} -
- {activeTab === 'checks' ? ( - - ) : ( - - )} -
- - {/* Empty State */} - {((activeTab === 'checks' && filteredChecks.length === 0) || - (activeTab === 'notes' && filteredNotes.length === 0)) && ( -
- {activeTab === 'checks' ? ( - - ) : ( - - )} -

- {activeTab === 'checks' ? 'Çek bulunamadı' : 'Senet bulunamadı'} -

-

- {activeTab === 'checks' - ? 'Yeni bir çek ekleyin veya arama kriterlerinizi değiştirin.' - : 'Yeni bir senet ekleyin veya arama kriterlerinizi değiştirin.'} -

-
- )} -
+ ) } diff --git a/ui/src/views/accounting/components/CurrentAccountManagement.tsx b/ui/src/views/accounting/components/CurrentAccountManagement.tsx index 13f36670..6c6e8fef 100644 --- a/ui/src/views/accounting/components/CurrentAccountManagement.tsx +++ b/ui/src/views/accounting/components/CurrentAccountManagement.tsx @@ -1,24 +1,17 @@ -import React, { useState } from "react"; -import { - FaUsers, - FaPlus, - FaSearch, - FaEdit, - FaEye, - FaReceipt, -} from "react-icons/fa"; +import React, { useState } from 'react' +import { FaUsers, FaPlus, FaSearch, FaEdit, FaEye, FaReceipt } from 'react-icons/fa' import { FiCurrentAccount, AccountTypeEnum, RiskGroupEnum, FiCurrentAccountMovement, FiDocumentTypeEnum, -} from "../../../types/fi"; -import DataTable, { Column } from "../../../components/common/DataTable"; -import CurrentAccountForm from "./CurrentAccountForm"; -import CurrentAccountDetails from "./CurrentAccountDetails"; -import CurrentAccountMovementForm from "./CurrentAccountMovementForm"; -import Widget from "../../../components/common/Widget"; +} from '../../../types/fi' +import DataTable, { Column } from '../../../components/common/DataTable' +import CurrentAccountForm from './CurrentAccountForm' +import CurrentAccountDetails from './CurrentAccountDetails' +import CurrentAccountMovementForm from './CurrentAccountMovementForm' +import Widget from '../../../components/common/Widget' import { getAccountTypeColor, getAccountTypeText, @@ -26,183 +19,155 @@ import { getFiDocumentTypeText, getRiskGroupColor, getRiskGroupText, -} from "../../../utils/erp"; +} from '../../../utils/erp' +import { Container } from '@/components/shared' interface CurrentAccountManagementProps { - accounts: FiCurrentAccount[]; - accountMovements: FiCurrentAccountMovement[]; + accounts: FiCurrentAccount[] + accountMovements: FiCurrentAccountMovement[] } const CurrentAccountManagement: React.FC = ({ accounts, accountMovements, }) => { - const [activeTab, setActiveTab] = useState<"accounts" | "movements">( - "accounts" - ); - const [searchTerm, setSearchTerm] = useState(""); - const [selectedType, setSelectedType] = useState( - "all" - ); - const [selectedRiskGroup, setSelectedRiskGroup] = useState< - RiskGroupEnum | "all" - >("all"); - const [sortBy, setSortBy] = useState<"title" | "balance" | "lastTransaction">( - "title" - ); - const [selectedAccount, setSelectedAccount] = - useState(null); - const [showForm, setShowForm] = useState(false); - const [showDetails, setShowDetails] = useState(false); - const [editingAccount, setEditingAccount] = useState( - null - ); + const [activeTab, setActiveTab] = useState<'accounts' | 'movements'>('accounts') + const [searchTerm, setSearchTerm] = useState('') + const [selectedType, setSelectedType] = useState('all') + const [selectedRiskGroup, setSelectedRiskGroup] = useState('all') + const [sortBy, setSortBy] = useState<'title' | 'balance' | 'lastTransaction'>('title') + const [selectedAccount, setSelectedAccount] = useState(null) + const [showForm, setShowForm] = useState(false) + const [showDetails, setShowDetails] = useState(false) + const [editingAccount, setEditingAccount] = useState(null) // Movement form states - const [showMovementForm, setShowMovementForm] = useState(false); - const [editingMovement, setEditingMovement] = - useState(null); + const [showMovementForm, setShowMovementForm] = useState(false) + const [editingMovement, setEditingMovement] = useState(null) // Movement filters - const [movementSearchTerm, setMovementSearchTerm] = useState(""); - const [selectedDocumentType, setSelectedDocumentType] = useState< - FiDocumentTypeEnum | "all" - >("all"); - const [movementSortBy, setMovementSortBy] = useState<"date" | "amount">( - "date" - ); + const [movementSearchTerm, setMovementSearchTerm] = useState('') + const [selectedDocumentType, setSelectedDocumentType] = useState( + 'all', + ) + const [movementSortBy, setMovementSortBy] = useState<'date' | 'amount'>('date') // Handler functions const handleAdd = () => { - setEditingAccount(null); - setShowForm(true); - }; + setEditingAccount(null) + setShowForm(true) + } const handleEdit = (account: FiCurrentAccount) => { - setEditingAccount(account); - setShowForm(true); - }; + setEditingAccount(account) + setShowForm(true) + } const handleViewDetails = (account: FiCurrentAccount) => { - setSelectedAccount(account); - setShowDetails(true); - }; + setSelectedAccount(account) + setShowDetails(true) + } const handleViewMovements = (account: FiCurrentAccount) => { - setSelectedAccount(account); - setActiveTab("movements"); - }; + setSelectedAccount(account) + setActiveTab('movements') + } const handleSaveAccount = (accountData: Partial) => { // This would normally call the parent's save function - console.log("Saving account:", accountData); - setShowForm(false); - setEditingAccount(null); - }; + console.log('Saving account:', accountData) + setShowForm(false) + setEditingAccount(null) + } const handleCloseForm = () => { - setShowForm(false); - setEditingAccount(null); - }; + setShowForm(false) + setEditingAccount(null) + } const handleCloseDetails = () => { - setShowDetails(false); - setSelectedAccount(null); - }; + setShowDetails(false) + setSelectedAccount(null) + } const handleEditFromDetails = () => { if (selectedAccount) { - setShowDetails(false); - setEditingAccount(selectedAccount); - setShowForm(true); + setShowDetails(false) + setEditingAccount(selectedAccount) + setShowForm(true) } - }; + } const handleEditMovement = (movement: FiCurrentAccountMovement) => { - setEditingMovement(movement); - setShowMovementForm(true); - }; + setEditingMovement(movement) + setShowMovementForm(true) + } - const handleSaveMovement = ( - movementData: Partial - ) => { + const handleSaveMovement = (movementData: Partial) => { // This would normally call the parent's save function - console.log("Saving movement:", movementData); - setShowMovementForm(false); - setEditingMovement(null); - }; + console.log('Saving movement:', movementData) + setShowMovementForm(false) + setEditingMovement(null) + } const handleCloseMovementForm = () => { - setShowMovementForm(false); - setEditingMovement(null); - }; + setShowMovementForm(false) + setEditingMovement(null) + } const handleAddMovement = () => { - setEditingMovement(null); - setShowMovementForm(true); - }; + setEditingMovement(null) + setShowMovementForm(true) + } // Filter movements const filteredMovements = accountMovements .filter((movement) => { if (selectedAccount && movement.accountId !== selectedAccount.id) { - return false; + return false } if ( movementSearchTerm && - !movement.description - .toLowerCase() - .includes(movementSearchTerm.toLowerCase()) && - !movement.referenceNumber - ?.toLowerCase() - .includes(movementSearchTerm.toLowerCase()) + !movement.description.toLowerCase().includes(movementSearchTerm.toLowerCase()) && + !movement.referenceNumber?.toLowerCase().includes(movementSearchTerm.toLowerCase()) ) { - return false; + return false } - if ( - selectedDocumentType !== "all" && - movement.documentType !== selectedDocumentType - ) { - return false; + if (selectedDocumentType !== 'all' && movement.documentType !== selectedDocumentType) { + return false } - return true; + return true }) .sort((a, b) => { switch (movementSortBy) { - case "date": + case 'date': + return new Date(b.transactionDate).getTime() - new Date(a.transactionDate).getTime() + case 'amount': return ( - new Date(b.transactionDate).getTime() - - new Date(a.transactionDate).getTime() - ); - case "amount": - return ( - Math.abs(b.debitAmount || b.creditAmount) - - Math.abs(a.debitAmount || a.creditAmount) - ); + Math.abs(b.debitAmount || b.creditAmount) - Math.abs(a.debitAmount || a.creditAmount) + ) default: - return 0; + return 0 } - }); + }) // Movement columns const movementColumns: Column[] = [ { - key: "transactionDate", - header: "Tarih", + key: 'transactionDate', + header: 'Tarih', sortable: true, render: (movement: FiCurrentAccountMovement) => ( - - {movement.transactionDate.toLocaleDateString("tr-TR")} - + {movement.transactionDate.toLocaleDateString('tr-TR')} ), }, { - key: "documentType", - header: "Belge Türü", + key: 'documentType', + header: 'Belge Türü', render: (movement: FiCurrentAccountMovement) => ( {getFiDocumentTypeText(movement.documentType)} @@ -210,34 +175,32 @@ const CurrentAccountManagement: React.FC = ({ ), }, { - key: "referenceNumber", - header: "Belge No", + key: 'referenceNumber', + header: 'Belge No', render: (movement: FiCurrentAccountMovement) => ( - {movement.referenceNumber || movement.documentNumber || "-"} + {movement.referenceNumber || movement.documentNumber || '-'} ), }, { - key: "description", - header: "Açıklama", + key: 'description', + header: 'Açıklama', render: (movement: FiCurrentAccountMovement) => (
-
- {movement.description} -
+
{movement.description}
), }, { - key: "debitAmount", - header: "Borç", + key: 'debitAmount', + header: 'Borç', render: (movement: FiCurrentAccountMovement) => (
{movement.debitAmount > 0 ? ( - {movement.debitAmount.toLocaleString("tr-TR", { - style: "currency", + {movement.debitAmount.toLocaleString('tr-TR', { + style: 'currency', currency: movement.currency, minimumFractionDigits: 2, })} @@ -249,14 +212,14 @@ const CurrentAccountManagement: React.FC = ({ ), }, { - key: "creditAmount", - header: "Alacak", + key: 'creditAmount', + header: 'Alacak', render: (movement: FiCurrentAccountMovement) => (
{movement.creditAmount > 0 ? ( - {movement.creditAmount.toLocaleString("tr-TR", { - style: "currency", + {movement.creditAmount.toLocaleString('tr-TR', { + style: 'currency', currency: movement.currency, minimumFractionDigits: 2, })} @@ -268,33 +231,27 @@ const CurrentAccountManagement: React.FC = ({ ), }, { - key: "balance", - header: "Bakiye", + key: 'balance', + header: 'Bakiye', render: (movement: FiCurrentAccountMovement) => { - const isDebit = movement.balance > 0; + const isDebit = movement.balance > 0 return (
- - {Math.abs(movement.balance).toLocaleString("tr-TR", { - style: "currency", + + {Math.abs(movement.balance).toLocaleString('tr-TR', { + style: 'currency', currency: movement.currency, minimumFractionDigits: 2, })} -
- {isDebit ? "Borçlu" : "Alacaklı"} -
+
{isDebit ? 'Borçlu' : 'Alacaklı'}
- ); + ) }, }, { - key: "actions", - header: "İşlemler", + key: 'actions', + header: 'İşlemler', render: (movement: FiCurrentAccountMovement) => (
), }, - ]; + ] const filteredAccounts = accounts .filter((account) => { if ( searchTerm && - !account.businessParty?.name - .toLowerCase() - .includes(searchTerm.toLowerCase()) && + !account.businessParty?.name.toLowerCase().includes(searchTerm.toLowerCase()) && !account.accountCode.toLowerCase().includes(searchTerm.toLowerCase()) && !account.taxNumber?.toLowerCase().includes(searchTerm.toLowerCase()) ) { - return false; + return false } - if (selectedType !== "all" && account.type !== selectedType) { - return false; + if (selectedType !== 'all' && account.type !== selectedType) { + return false } - if ( - selectedRiskGroup !== "all" && - account.riskGroup !== selectedRiskGroup - ) { - return false; + if (selectedRiskGroup !== 'all' && account.riskGroup !== selectedRiskGroup) { + return false } - return true; + return true }) .sort((a, b) => { switch (sortBy) { - case "title": - return ( - a.businessParty?.name?.localeCompare(b.businessParty?.name || "") || - 0 - ); - case "balance": - return Math.abs(b.balance) - Math.abs(a.balance); - case "lastTransaction": { - const aDate = a.lastTransactionDate - ? new Date(a.lastTransactionDate).getTime() - : 0; - const bDate = b.lastTransactionDate - ? new Date(b.lastTransactionDate).getTime() - : 0; - return bDate - aDate; + case 'title': + return a.businessParty?.name?.localeCompare(b.businessParty?.name || '') || 0 + case 'balance': + return Math.abs(b.balance) - Math.abs(a.balance) + case 'lastTransaction': { + const aDate = a.lastTransactionDate ? new Date(a.lastTransactionDate).getTime() : 0 + const bDate = b.lastTransactionDate ? new Date(b.lastTransactionDate).getTime() : 0 + return bDate - aDate } default: - return 0; + return 0 } - }); + }) const formatBalance = (balance: number) => { - const isDebit = balance > 0; - const absBalance = Math.abs(balance); + const isDebit = balance > 0 + const absBalance = Math.abs(balance) return { - amount: absBalance.toLocaleString("tr-TR", { - style: "currency", - currency: "TRY", + amount: absBalance.toLocaleString('tr-TR', { + style: 'currency', + currency: 'TRY', minimumFractionDigits: 2, }), - type: isDebit ? "Borçlu" : "Alacaklı", + type: isDebit ? 'Borçlu' : 'Alacaklı', isDebit, - }; - }; + } + } const columns: Column[] = [ { - key: "accountCode", - header: "Hesap Kodu", + key: 'accountCode', + header: 'Hesap Kodu', sortable: true, render: (account: FiCurrentAccount) => ( {account.accountCode} ), }, { - key: "title", - header: "Ünvan", + key: 'title', + header: 'Ünvan', sortable: true, render: (account: FiCurrentAccount) => (
-
- {account.businessParty?.name} -
+
{account.businessParty?.name}
{account.contactPerson && (
{account.contactPerson}
)} @@ -394,12 +337,12 @@ const CurrentAccountManagement: React.FC = ({ ), }, { - key: "type", - header: "Tür", + key: 'type', + header: 'Tür', render: (account: FiCurrentAccount) => ( {getAccountTypeText(account.type)} @@ -407,34 +350,32 @@ const CurrentAccountManagement: React.FC = ({ ), }, { - key: "balance", - header: "Bakiye", + key: 'balance', + header: 'Bakiye', sortable: true, render: (account: FiCurrentAccount) => { - const balanceInfo = formatBalance(account.balance); + const balanceInfo = formatBalance(account.balance) return (
{balanceInfo.amount}
{balanceInfo.type}
- ); + ) }, }, { - key: "creditLimit", - header: "Kredi Limiti", + key: 'creditLimit', + header: 'Kredi Limiti', render: (account: FiCurrentAccount) => (
- {account.creditLimit.toLocaleString("tr-TR", { - style: "currency", - currency: "TRY", + {account.creditLimit.toLocaleString('tr-TR', { + style: 'currency', + currency: 'TRY', minimumFractionDigits: 0, })} @@ -442,12 +383,12 @@ const CurrentAccountManagement: React.FC = ({ ), }, { - key: "riskGroup", - header: "Risk Grubu", + key: 'riskGroup', + header: 'Risk Grubu', render: (account: FiCurrentAccount) => ( {getRiskGroupText(account.riskGroup)} @@ -455,33 +396,29 @@ const CurrentAccountManagement: React.FC = ({ ), }, { - key: "contact", - header: "İletişim", + key: 'contact', + header: 'İletişim', render: (account: FiCurrentAccount) => (
- {account.phone && ( -
{account.phone}
- )} - {account.email && ( -
{account.email}
- )} + {account.phone &&
{account.phone}
} + {account.email &&
{account.email}
}
), }, { - key: "lastTransaction", - header: "Son Hareket", + key: 'lastTransaction', + header: 'Son Hareket', render: (account: FiCurrentAccount) => (
{account.lastTransactionDate - ? new Date(account.lastTransactionDate).toLocaleDateString("tr-TR") - : "Hareket yok"} + ? new Date(account.lastTransactionDate).toLocaleDateString('tr-TR') + : 'Hareket yok'}
), }, { - key: "actions", - header: "İşlemler", + key: 'actions', + header: 'İşlemler', render: (account: FiCurrentAccount) => (
), }, - ]; + ] // Calculate statistics - const totalAccounts = accounts.length; - const activeAccounts = accounts.filter((a) => a.isActive).length; + const totalAccounts = accounts.length + const activeAccounts = accounts.filter((a) => a.isActive).length const totalDebitBalance = accounts .filter((a) => a.balance > 0) - .reduce((sum, a) => sum + a.balance, 0); + .reduce((sum, a) => sum + a.balance, 0) const totalCreditBalance = accounts .filter((a) => a.balance < 0) - .reduce((sum, a) => sum + Math.abs(a.balance), 0); + .reduce((sum, a) => sum + Math.abs(a.balance), 0) // High risk accounts const highRiskAccounts = accounts.filter( (a) => a.riskGroup === RiskGroupEnum.High || a.riskGroup === RiskGroupEnum.Blocked || - Math.abs(a.balance) > a.creditLimit - ); + Math.abs(a.balance) > a.creditLimit, + ) return ( -
- {/* Header */} -
-
-

- Cari Hesap Yönetimi -

-

- Müşteri ve tedarikçi cari hesaplarının yönetimi -

-
- -
- - {/* Stats Cards */} -
- - - - -
- - {/* Tabs */} -
-
- + +
+ {/* Header */} +
+
+

Cari Hesap Yönetimi

+

Müşteri ve tedarikçi cari hesaplarının yönetimi

+
+
-
- {activeTab === "accounts" && ( -
- {/* Filters */} -
-
- - setSearchTerm(e.target.value)} - className="w-full pl-10 pr-3 py-1.5 text-sm border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500" - /> + {/* Stats Cards */} +
+ + + + +
+ + {/* Tabs */} +
+
+
- - {/* Data Table */} -
- -
- - {filteredAccounts.length === 0 && ( -
- -

- Cari hesap bulunamadı -

-

- Yeni bir cari hesap ekleyin veya arama kriterlerinizi - değiştirin. -

+ +
- )} + + +
- {activeTab === "movements" && ( -
- {/* Movement Header */} -
-
-

- Cari Hesap Hareketleri -

-

- {selectedAccount - ? `${selectedAccount.businessParty?.name} (${selectedAccount.accountCode}) hesabının hareketleri` - : "Tüm cari hesap hareketleri"} -

-
- -
+
+ {activeTab === 'accounts' && ( +
+ {/* Filters */} +
+
+ + setSearchTerm(e.target.value)} + className="w-full pl-10 pr-3 py-1.5 text-sm border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500" + /> +
- {/* Movement Filters */} -
- {selectedAccount && ( -
+ + {/* Data Table */} +
+ +
+ + {filteredAccounts.length === 0 && ( +
+ +

+ Cari hesap bulunamadı +

+

+ Yeni bir cari hesap ekleyin veya arama kriterlerinizi değiştirin. +

+
)} +
+ )} -
- - setMovementSearchTerm(e.target.value)} - className="w-full pl-10 pr-3 py-1.5 text-sm border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500" - /> + {activeTab === 'movements' && ( +
+ {/* Movement Header */} +
+
+

+ Cari Hesap Hareketleri +

+

+ {selectedAccount + ? `${selectedAccount.businessParty?.name} (${selectedAccount.accountCode}) hesabının hareketleri` + : 'Tüm cari hesap hareketleri'} +

+
+
- + {/* Movement Filters */} +
+ {selectedAccount && ( + + )} - -
+
+ + setMovementSearchTerm(e.target.value)} + className="w-full pl-10 pr-3 py-1.5 text-sm border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500" + /> +
- {/* Movement Data Table */} -
- -
+ - {filteredMovements.length === 0 && ( -
- -

- Hareket bulunamadı -

-

- Seçili kriterlere uygun hareket bulunmamaktadır. -

+
- )} -
- )} + + {/* Movement Data Table */} +
+ +
+ + {filteredMovements.length === 0 && ( +
+ +

Hareket bulunamadı

+

+ Seçili kriterlere uygun hareket bulunmamaktadır. +

+
+ )} +
+ )} +
@@ -826,8 +746,8 @@ const CurrentAccountManagement: React.FC = ({ onSave={handleSaveMovement} /> )} -
- ); -}; + + ) +} -export default CurrentAccountManagement; +export default CurrentAccountManagement diff --git a/ui/src/views/crm/components/ActivityRecords.tsx b/ui/src/views/crm/components/ActivityRecords.tsx index 0a7e402d..b6409948 100644 --- a/ui/src/views/crm/components/ActivityRecords.tsx +++ b/ui/src/views/crm/components/ActivityRecords.tsx @@ -573,23 +573,23 @@ const ActivityRecords: React.FC = () => {

Arama kriterlerinizi değiştirmeyi deneyin.

)} - - {/* Modals */} - - -
+ + {/* Modals */} + + + ) }