"use client" import React from 'react' import { Card } from '@/components/ui/card' import { Button } from '@/components/ui/button' import { Badge } from '@/components/ui/badge' import { ShoppingCart, Building2, Plus, Minus, Eye } from 'lucide-react' import { SelectedProduct } from './types' interface CartSummaryProps { selectedProducts: SelectedProduct[] onQuantityChange: (productId: string, wholesalerId: string, quantity: number) => void onRemoveProduct: (productId: string, wholesalerId: string) => void onCreateSupply: () => void onToggleVisibility: () => void formatCurrency: (amount: number) => string visible: boolean } export function CartSummary({ selectedProducts, onQuantityChange, onRemoveProduct, onCreateSupply, onToggleVisibility, formatCurrency, visible }: CartSummaryProps) { if (!visible || selectedProducts.length === 0) { return null } // Группируем товары по поставщикам const groupedProducts = selectedProducts.reduce((acc, product) => { if (!acc[product.wholesalerId]) { acc[product.wholesalerId] = { wholesaler: product.wholesalerName, products: [] } } acc[product.wholesalerId].products.push(product) return acc }, {} as Record) const getTotalAmount = () => { return selectedProducts.reduce((sum, product) => { const discountedPrice = product.discount ? product.price * (1 - product.discount / 100) : product.price return sum + (discountedPrice * product.selectedQuantity) }, 0) } const getTotalItems = () => { return selectedProducts.reduce((sum, product) => sum + product.selectedQuantity, 0) } return (

Корзина

{selectedProducts.length} товаров от {Object.keys(groupedProducts).length} поставщиков

{/* Группировка по поставщикам */} {Object.entries(groupedProducts).map(([wholesalerId, group]) => (
{group.wholesaler} {group.products.length} товар(ов)
{group.products.map((product) => { const discountedPrice = product.discount ? product.price * (1 - product.discount / 100) : product.price const totalPrice = discountedPrice * product.selectedQuantity return (
{product.name}

{product.name}

{product.article}

{product.selectedQuantity}
{formatCurrency(totalPrice)}
{product.discount && (
{formatCurrency(product.price * product.selectedQuantity)}
)}
) })}
))} {/* Итого */}
Итого: {getTotalItems()} товаров {formatCurrency(getTotalAmount())}
) }