'use client'; import { format, subMonths } from 'date-fns'; import { ru } from 'date-fns/locale'; import { CalendarIcon } from 'lucide-react'; import { useState } from 'react'; import { Button } from '@/shared/shadcn-ui/button'; import { Calendar } from '@/shared/shadcn-ui/calendar'; import { Label } from '@/shared/shadcn-ui/label'; import { Popover, PopoverContent, PopoverTrigger, } from '@/shared/shadcn-ui/popover'; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from '@/shared/shadcn-ui/table'; // Sample customer data const customerData = { firstName: 'Алишер', lastName: 'Рахмонов', passportNumber: 'A12345678', bonusPoints: 1250, cardNumber: '5678-9012-3456-7890', expiryDate: '12/2025', registrationDate: '15.06.2020', }; // Sample transaction data const generateTransactions = () => { const stations = [ 'АЗС Душанбе-Центр', 'АЗС Душанбе-Запад', 'АЗС Душанбе-Восток', 'АЗС Худжанд', 'АЗС Куляб', ]; const products = [ { name: 'ДТ', price: 8.5 }, { name: 'АИ-92', price: 9.2 }, { name: 'АИ-95', price: 10.5 }, { name: 'Z-100 Power', price: 11.8 }, { name: 'Пропан', price: 6.3 }, ]; const transactions = []; // Generate 50 random transactions over the last 6 months for (let i = 0; i < 50; i++) { const date = subMonths(new Date(), Math.random() * 6); const station = stations[Math.floor(Math.random() * stations.length)]; const product = products[Math.floor(Math.random() * products.length)]; const quantity = Math.floor(Math.random() * 40) + 10; // 10-50 liters const cost = product.price; const total = quantity * cost; transactions.push({ id: i + 1, date, station, product: product.name, quantity, cost, total, }); } // Sort by date (newest first) return transactions.sort((a, b) => b.date.getTime() - a.date.getTime()); }; const transactions = generateTransactions(); export const TransactionsTable = () => { const [startDate, setStartDate] = useState( subMonths(new Date(), 1), ); const [endDate, setEndDate] = useState(new Date()); const [filteredTransactions, setFilteredTransactions] = useState(transactions); // Filter transactions by date range const filterTransactions = () => { if (!startDate || !endDate) return; const filtered = transactions.filter((transaction) => { const transactionDate = new Date(transaction.date); return transactionDate >= startDate && transactionDate <= endDate; }); setFilteredTransactions(filtered); }; return (

История операций

Дата Станция Продукт Кол-во (л) Стоимость Сумма {filteredTransactions.length > 0 ? ( filteredTransactions.map((transaction) => ( {format(transaction.date, 'dd.MM.yyyy')} {transaction.station} {transaction.product} {transaction.quantity} {transaction.cost.toFixed(2)} сомони {transaction.total.toFixed(2)} сомони )) ) : ( Нет операций за выбранный период )}
); };