mirror of
https://github.com/Dvorinka/MyClubServer.git
synced 2026-06-05 03:02:56 +00:00
1 line
77 KiB
Plaintext
1 line
77 KiB
Plaintext
{"version":3,"file":"static/js/266.e18a46b8.chunk.js","mappings":"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","sources":["../node_modules/@chakra-ui/icons/dist/esm/Download.mjs","pages/admin/InvoicesPage.tsx"],"sourcesContent":["import { createIcon } from '@chakra-ui/react';\n\nconst DownloadIcon = createIcon({\n d: \"M11.2857,6.05714 L10.08571,4.85714 L7.85714,7.14786 L7.85714,1 L6.14286,1 L6.14286,7.14786 L3.91429,4.85714 L2.71429,6.05714 L7,10.42857 L11.2857,6.05714 Z M1,11.2857 L1,13 L13,13 L13,11.2857 L1,11.2857 Z\",\n displayName: \"DownloadIcon\",\n viewBox: \"0 0 14 14\"\n});\n\nexport { DownloadIcon };\n","import React, { useState, useEffect } from 'react';\nimport {\n Box,\n Container,\n Heading,\n Button,\n Table,\n Thead,\n Tbody,\n Tr,\n Th,\n Td,\n Badge,\n HStack,\n VStack,\n Text,\n Input,\n InputGroup,\n InputLeftElement,\n InputRightElement,\n Select,\n Modal,\n ModalOverlay,\n ModalContent,\n ModalHeader,\n ModalFooter,\n ModalBody,\n ModalCloseButton,\n FormControl,\n FormLabel,\n FormErrorMessage,\n useDisclosure,\n useToast,\n IconButton,\n Tooltip,\n Divider,\n SimpleGrid,\n Card,\n CardHeader,\n CardBody,\n Stack,\n NumberInput,\n NumberInputField,\n NumberInputStepper,\n NumberIncrementStepper,\n NumberDecrementStepper,\n Textarea,\n Flex,\n Spacer,\n Link,\n Alert,\n AlertIcon,\n Spinner,\n} from '@chakra-ui/react';\nimport {\n AddIcon,\n EditIcon,\n DeleteIcon,\n DownloadIcon,\n EmailIcon,\n ViewIcon,\n SearchIcon,\n ExternalLinkIcon,\n} from '@chakra-ui/icons';\nimport { format } from 'date-fns';\nimport { cs } from 'date-fns/locale';\nimport { api } from '../../services/api';\nimport AdminLayout from '../../layouts/AdminLayout';\n\ninterface Invoice {\n id: string;\n invoiceNumber: string;\n issueDate: string;\n dueDate: string;\n status: 'draft' | 'sent' | 'paid' | 'overdue' | 'cancelled';\n customerName: string;\n customerICO: string;\n customerAddress?: string;\n customerZIP?: string;\n customerCity?: string;\n supplierName?: string;\n supplierICO?: string;\n supplierAddress?: string;\n supplierZIP?: string;\n supplierCity?: string;\n totalAmount: number;\n totalAmountVAT: number;\n totalAmountWithoutVAT?: number;\n totalVAT?: number;\n currency: string;\n note?: string;\n paymentMethod?: string;\n createdAt: string;\n updatedAt: string;\n}\n\ninterface InvoiceItem {\n id: string;\n description: string;\n quantity: number;\n unitPrice: number;\n vatRate: number;\n totalPrice: number;\n vatAmount: number;\n totalWithVat: number;\n}\n\ninterface Customer {\n id: string;\n name: string;\n ico: string;\n dic: string;\n address: string;\n city: string;\n zip: string;\n country: string;\n email: string;\n phone: string;\n bankAccount: string;\n iban: string;\n swift: string;\n}\n\nconst InvoicesPage: React.FC = () => {\n const [invoices, setInvoices] = useState<Invoice[]>([]);\n const [customers, setCustomers] = useState<Customer[]>([]);\n const [selectedInvoice, setSelectedInvoice] = useState<Invoice | null>(null);\n const [isLoading, setIsLoading] = useState(false);\n const [searchTerm, setSearchTerm] = useState('');\n const [statusFilter, setStatusFilter] = useState<string>('all');\n const [isCreateModalOpen, setIsCreateModalOpen] = useState(false);\n const [isEditModalOpen, setIsEditModalOpen] = useState(false);\n const [isViewModalOpen, setIsViewModalOpen] = useState(false);\n const [isDeleteModalOpen, setIsDeleteModalOpen] = useState(false);\n const [isCustomerModalOpen, setIsCustomerModalOpen] = useState(false);\n const [invoiceItems, setInvoiceItems] = useState<InvoiceItem[]>([]);\n const [formData, setFormData] = useState({\n customerId: '',\n issueDate: format(new Date(), 'yyyy-MM-dd'),\n dueDate: format(new Date(Date.now() + 14 * 24 * 60 * 60 * 1000), 'yyyy-MM-dd'),\n currency: 'CZK',\n note: '',\n paymentMethod: 'bank_transfer',\n });\n\n const [customerFormData, setCustomerFormData] = useState({\n name: '',\n ico: '',\n dic: '',\n address: '',\n city: '',\n zip: '',\n country: 'Česká republika',\n email: '',\n phone: '',\n bankAccount: '',\n iban: '',\n swift: '',\n });\n\n const [isCreatingCustomer, setIsCreatingCustomer] = useState(false);\n const [isSearchingICO, setIsSearchingICO] = useState(false);\n\n const { isOpen: isDeleteOpen, onOpen: onDeleteOpen, onClose: onDeleteClose } = useDisclosure();\n const toast = useToast();\n\n // Load invoices and customers\n useEffect(() => {\n loadInvoices();\n loadCustomers();\n }, []);\n\n const loadInvoices = async () => {\n try {\n setIsLoading(true);\n const response = await api.get('/admin/invoices');\n setInvoices(response.data.invoices || []);\n } catch (error) {\n toast({\n title: 'Chyba při načítání faktur',\n description: 'Nepodařilo se načíst seznam faktur',\n status: 'error',\n duration: 3000,\n });\n } finally {\n setIsLoading(false);\n }\n };\n\n const loadCustomers = async () => {\n try {\n const response = await api.get('/admin/invoices/customers');\n setCustomers(response.data.customers || []);\n } catch (error) {\n console.error('Error loading customers:', error);\n }\n };\n\n const searchCompanyByICO = async (ico: string) => {\n if (!ico || ico.length !== 8) {\n return;\n }\n\n try {\n setIsSearchingICO(true);\n \n // Use the Czech company registry API (ARES)\n const response = await fetch(`https://ares.gov.cz/ekonomicke-subjekty-v-be/rest/ekonomicke-subjekty/${ico}`);\n \n if (!response.ok) {\n throw new Error('Company not found');\n }\n \n const data = await response.json();\n \n if (data) {\n // Update form with company data\n setCustomerFormData(prev => ({\n ...prev,\n name: data.obchodniJmeno || prev.name,\n dic: data.dic || prev.dic,\n address: data.sidlo && data.sidlo.textovaAdresa ? data.sidlo.textovaAdresa : prev.address,\n city: data.sidlo && data.sidlo.nazevObce ? data.sidlo.nazevObce : prev.city,\n zip: data.sidlo && data.sidlo.psc ? data.sidlo.psc : prev.zip,\n country: data.sidlo && data.sidlo.nazevStatu ? data.sidlo.nazevStatu : prev.country,\n }));\n \n toast({\n title: 'Údaje nalezeny',\n description: `Společnost ${data.obchodniJmeno} byla automaticky vyplněna`,\n status: 'success',\n duration: 3000,\n });\n }\n } catch (error) {\n console.error('Error searching company:', error);\n toast({\n title: 'Společnost nenalezena',\n description: 'Pro zadané IČO se nepodařilo najít údaje. Zkontrolujte IČO nebo vyplňte údaje ručně.',\n status: 'warning',\n duration: 3000,\n });\n } finally {\n setIsSearchingICO(false);\n }\n };\n\n const handleCreateCustomer = async () => {\n if (!customerFormData.name || !customerFormData.ico) {\n toast({\n title: 'Chyba',\n description: 'Vyplňte název a IČO odběratele',\n status: 'error',\n duration: 3000,\n });\n return;\n }\n\n try {\n setIsCreatingCustomer(true);\n const response = await api.post('/admin/invoices/customers', customerFormData);\n \n toast({\n title: 'Odběratel vytvořen',\n description: `Odběratel ${customerFormData.name} byl úspěšně vytvořen`,\n status: 'success',\n duration: 3000,\n });\n \n // Reset form and close modal\n setCustomerFormData({\n name: '',\n ico: '',\n dic: '',\n address: '',\n city: '',\n zip: '',\n country: 'Česká republika',\n email: '',\n phone: '',\n bankAccount: '',\n iban: '',\n swift: '',\n });\n setIsCustomerModalOpen(false);\n \n // Reload customers and select the new one\n await loadCustomers();\n if (response.data.customer?.id) {\n setFormData({ ...formData, customerId: response.data.customer.id });\n }\n } catch (error: any) {\n toast({\n title: 'Chyba při vytváření odběratele',\n description: error?.response?.data?.message || 'Nepodařilo se vytvořit odběratele',\n status: 'error',\n duration: 3000,\n });\n } finally {\n setIsCreatingCustomer(false);\n }\n };\n\n const updateCustomerFormData = (field: keyof typeof customerFormData, value: any) => {\n setCustomerFormData({ ...customerFormData, [field]: value });\n };\n\n const handleCreateInvoice = async () => {\n if (!formData.customerId) {\n toast({\n title: 'Chyba',\n description: 'Vyberte odběratele',\n status: 'error',\n duration: 3000,\n });\n return;\n }\n\n if (invoiceItems.length === 0) {\n toast({\n title: 'Chyba',\n description: 'Přidejte alespoň jednu položku',\n status: 'error',\n duration: 3000,\n });\n return;\n }\n\n try {\n await api.post('/admin/invoices', {\n ...formData,\n items: invoiceItems,\n });\n\n toast({\n title: 'Faktura vytvořena',\n description: 'Faktura byla úspěšně vytvořena',\n status: 'success',\n duration: 3000,\n });\n setIsCreateModalOpen(false);\n resetForm();\n loadInvoices();\n } catch (error: any) {\n toast({\n title: 'Chyba při vytváření faktury',\n description: error?.response?.data?.message || 'Nepodařilo se vytvořit fakturu',\n status: 'error',\n duration: 3000,\n });\n }\n };\n\n const handleUpdateInvoice = async () => {\n if (!selectedInvoice) return;\n\n try {\n await api.put(`/admin/invoices/${selectedInvoice.id}`, {\n ...formData,\n items: invoiceItems,\n });\n\n toast({\n title: 'Faktura aktualizována',\n description: 'Faktura byla úspěšně aktualizována',\n status: 'success',\n duration: 3000,\n });\n setIsEditModalOpen(false);\n resetForm();\n loadInvoices();\n } catch (error: any) {\n toast({\n title: 'Chyba při aktualizaci faktury',\n description: error?.response?.data?.message || 'Nepodařilo se aktualizovat fakturu',\n status: 'error',\n duration: 3000,\n });\n }\n };\n\n const handleDeleteInvoice = async (id: string) => {\n try {\n await api.delete(`/admin/invoices/${id}`);\n\n toast({\n title: 'Faktura smazána',\n description: 'Faktura byla úspěšně smazána',\n status: 'success',\n duration: 3000,\n });\n onDeleteClose();\n loadInvoices();\n } catch (error: any) {\n toast({\n title: 'Chyba při mazání faktury',\n description: error?.response?.data?.message || 'Nepodařilo se smazat fakturu',\n status: 'error',\n duration: 3000,\n });\n }\n };\n\n const handleGeneratePDF = async (id: string) => {\n try {\n const response = await api.post(`/admin/invoices/${id}/generate-pdf`);\n \n toast({\n title: 'PDF vygenerováno',\n description: 'PDF faktura byla úspěšně vygenerována',\n status: 'success',\n duration: 3000,\n });\n // Open PDF in new tab\n window.open(response.data.filePath, '_blank');\n } catch (error: any) {\n toast({\n title: 'Chyba při generování PDF',\n description: error?.response?.data?.message || 'Nepodařilo se vygenerovat PDF',\n status: 'error',\n duration: 3000,\n });\n }\n };\n\n const handleSendInvoice = async (id: string) => {\n try {\n await api.post(`/admin/invoices/${id}/send`);\n\n toast({\n title: 'Faktura odeslána',\n description: 'Faktura byla úspěšně odeslána emailem',\n status: 'success',\n duration: 3000,\n });\n } catch (error: any) {\n toast({\n title: 'Chyba při odesílání faktury',\n description: error?.response?.data?.message || 'Nepodařilo se odeslat fakturu',\n status: 'error',\n duration: 3000,\n });\n }\n };\n\n const addInvoiceItem = () => {\n const newItem: InvoiceItem = {\n id: Date.now().toString(),\n description: '',\n quantity: 1,\n unitPrice: 0,\n vatRate: 21,\n totalPrice: 0,\n vatAmount: 0,\n totalWithVat: 0,\n };\n setInvoiceItems([...invoiceItems, newItem]);\n };\n\n const updateInvoiceItem = (id: string, field: keyof InvoiceItem, value: any) => {\n setInvoiceItems(invoiceItems.map(item => {\n if (item.id === id) {\n const updatedItem = { ...item, [field]: value };\n \n // Recalculate totals\n if (field === 'quantity' || field === 'unitPrice' || field === 'vatRate') {\n updatedItem.totalPrice = updatedItem.quantity * updatedItem.unitPrice;\n updatedItem.vatAmount = updatedItem.totalPrice * (updatedItem.vatRate / 100);\n updatedItem.totalWithVat = updatedItem.totalPrice + updatedItem.vatAmount;\n }\n \n return updatedItem;\n }\n return item;\n }));\n };\n\n const removeInvoiceItem = (id: string) => {\n setInvoiceItems(items => items.filter(item => item.id !== id));\n };\n\n const resetForm = () => {\n setFormData({\n customerId: '',\n issueDate: format(new Date(), 'yyyy-MM-dd'),\n dueDate: format(new Date(Date.now() + 14 * 24 * 60 * 60 * 1000), 'yyyy-MM-dd'),\n currency: 'CZK',\n note: '',\n paymentMethod: 'bank_transfer',\n });\n setInvoiceItems([]);\n setSelectedInvoice(null);\n };\n\n const openEditModal = (invoice: Invoice) => {\n setSelectedInvoice(invoice);\n setFormData({\n customerId: invoice.customerICO || '',\n issueDate: invoice.issueDate,\n dueDate: invoice.dueDate,\n currency: invoice.currency,\n note: invoice.note || '',\n paymentMethod: invoice.paymentMethod || 'bank_transfer',\n });\n // Load invoice items\n loadInvoiceItems(invoice.id);\n setIsEditModalOpen(true);\n };\n\n const loadInvoiceItems = async (invoiceId: string) => {\n try {\n const response = await api.get(`/admin/invoices/${invoiceId}`);\n setInvoiceItems(response.data.invoice.items || []);\n } catch (error) {\n console.error('Error loading invoice items:', error);\n }\n };\n\n const getStatusColor = (status: string) => {\n switch (status) {\n case 'draft': return 'gray';\n case 'sent': return 'blue';\n case 'paid': return 'green';\n case 'overdue': return 'red';\n case 'cancelled': return 'orange';\n default: return 'gray';\n }\n };\n\n const getStatusText = (status: string) => {\n switch (status) {\n case 'draft': return 'Návrh';\n case 'sent': return 'Odeslána';\n case 'paid': return 'Zaplacena';\n case 'overdue': return 'Po splatnosti';\n case 'cancelled': return 'Zrušena';\n default: return status;\n }\n };\n\n const filteredInvoices = invoices.filter(invoice => {\n const matchesSearch = invoice.customerName.toLowerCase().includes(searchTerm.toLowerCase()) ||\n invoice.invoiceNumber.toLowerCase().includes(searchTerm.toLowerCase());\n const matchesStatus = statusFilter === 'all' || invoice.status === statusFilter;\n return matchesSearch && matchesStatus;\n });\n\n const calculateTotal = () => {\n return invoiceItems.reduce((sum, item) => sum + item.totalWithVat, 0);\n };\n\n return (\n <AdminLayout>\n <Container maxW=\"container.xl\" py={8}>\n <VStack spacing={6} align=\"stretch\">\n {/* Header */}\n <Flex justify=\"space-between\" align=\"center\">\n <Heading size=\"lg\">Fakturace</Heading>\n <Button\n leftIcon={<AddIcon />}\n colorScheme=\"blue\"\n onClick={() => {\n resetForm();\n setIsCreateModalOpen(true);\n }}\n >\n Nová faktura\n </Button>\n </Flex>\n\n {/* Filters */}\n <Card>\n <CardBody>\n <SimpleGrid columns={{ base: 1, md: 3 }} spacing={4}>\n <FormControl>\n <FormLabel>Vyhledávání</FormLabel>\n <InputGroup>\n <InputLeftElement>\n <SearchIcon />\n </InputLeftElement>\n <Input\n placeholder=\"Hledat podle čísla faktury nebo odběratele...\"\n value={searchTerm}\n onChange={(e) => setSearchTerm(e.target.value)}\n />\n </InputGroup>\n </FormControl>\n <FormControl>\n <FormLabel>Stav</FormLabel>\n <Select\n value={statusFilter}\n onChange={(e) => setStatusFilter(e.target.value)}\n >\n <option value=\"all\">Všechny stavy</option>\n <option value=\"draft\">Návrh</option>\n <option value=\"sent\">Odeslána</option>\n <option value=\"paid\">Zaplacena</option>\n <option value=\"overdue\">Po splatnosti</option>\n <option value=\"cancelled\">Zrušena</option>\n </Select>\n </FormControl>\n <Box />\n </SimpleGrid>\n </CardBody>\n </Card>\n\n {/* Invoices Table */}\n <Card overflow=\"hidden\">\n <Box overflowX=\"auto\">\n <Table variant=\"simple\">\n <Thead>\n <Tr>\n <Th>Číslo faktury</Th>\n <Th>Datum vystavení</Th>\n <Th>Datum splatnosti</Th>\n <Th>Odběratel</Th>\n <Th>Částka</Th>\n <Th>Stav</Th>\n <Th>Akce</Th>\n </Tr>\n </Thead>\n <Tbody>\n {filteredInvoices.map((invoice) => (\n <Tr key={invoice.id}>\n <Td fontWeight=\"medium\">{invoice.invoiceNumber}</Td>\n <Td>{format(new Date(invoice.issueDate), 'dd.MM.yyyy', { locale: cs })}</Td>\n <Td>{format(new Date(invoice.dueDate), 'dd.MM.yyyy', { locale: cs })}</Td>\n <Td>\n <VStack align=\"start\" spacing={0}>\n <Text fontWeight=\"medium\">{invoice.customerName}</Text>\n <Text fontSize=\"sm\" color=\"gray.600\">{invoice.customerICO}</Text>\n </VStack>\n </Td>\n <Td fontWeight=\"medium\">\n {invoice.totalAmountVAT.toFixed(2)} {invoice.currency}\n </Td>\n <Td>\n <Badge colorScheme={getStatusColor(invoice.status)}>\n {getStatusText(invoice.status)}\n </Badge>\n </Td>\n <Td>\n <HStack spacing={2}>\n <Tooltip label=\"Zobrazit\">\n <IconButton\n icon={<ViewIcon />}\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => {\n setSelectedInvoice(invoice);\n loadInvoiceItems(invoice.id);\n setIsViewModalOpen(true);\n }}\n aria-label=\"Zobrazit fakturu\"\n />\n </Tooltip>\n <Tooltip label=\"Upravit\">\n <IconButton\n icon={<EditIcon />}\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => openEditModal(invoice)}\n aria-label=\"Upravit fakturu\"\n />\n </Tooltip>\n <Tooltip label=\"Generovat PDF\">\n <IconButton\n icon={<DownloadIcon />}\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => handleGeneratePDF(invoice.id)}\n aria-label=\"Generovat PDF faktury\"\n />\n </Tooltip>\n <Tooltip label=\"Odeslat emailem\">\n <IconButton\n icon={<EmailIcon />}\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => handleSendInvoice(invoice.id)}\n aria-label=\"Odeslat fakturu emailem\"\n />\n </Tooltip>\n <Tooltip label=\"Smazat\">\n <IconButton\n icon={<DeleteIcon />}\n variant=\"ghost\"\n size=\"sm\"\n colorScheme=\"red\"\n onClick={() => {\n setSelectedInvoice(invoice);\n setIsDeleteModalOpen(true);\n }}\n aria-label=\"Smazat fakturu\"\n />\n </Tooltip>\n </HStack>\n </Td>\n </Tr>\n ))}\n </Tbody>\n </Table>\n </Box>\n </Card>\n\n {/* Create/Edit Modal */}\n <Modal\n isOpen={isCreateModalOpen || isEditModalOpen}\n onClose={() => {\n setIsCreateModalOpen(false);\n setIsEditModalOpen(false);\n resetForm();\n }}\n size=\"4xl\"\n >\n <ModalOverlay />\n <ModalContent>\n <ModalHeader>\n {isCreateModalOpen ? 'Vytvořit fakturu' : 'Upravit fakturu'}\n </ModalHeader>\n <ModalCloseButton />\n <ModalBody>\n <VStack spacing={4} align=\"stretch\">\n <SimpleGrid columns={{ base: 1, md: 3 }} spacing={4}>\n <FormControl isRequired>\n <FormLabel>Odběratel</FormLabel>\n <Select\n value={formData.customerId}\n onChange={(e) => setFormData({ ...formData, customerId: e.target.value })}\n placeholder=\"Vyberte odběratele\"\n >\n {customers.map((customer) => (\n <option key={customer.id} value={customer.id}>\n {customer.name} ({customer.ico})\n </option>\n ))}\n </Select>\n </FormControl>\n <FormControl>\n <FormLabel>Měna</FormLabel>\n <Select\n value={formData.currency}\n onChange={(e) => setFormData({ ...formData, currency: e.target.value })}\n >\n <option value=\"CZK\">CZK</option>\n <option value=\"EUR\">EUR</option>\n <option value=\"USD\">USD</option>\n </Select>\n </FormControl>\n <FormControl display=\"flex\" alignItems=\"flex-end\">\n <Button\n leftIcon={<AddIcon />}\n colorScheme=\"green\"\n onClick={() => setIsCustomerModalOpen(true)}\n width=\"full\"\n >\n Přidat odběratele\n </Button>\n </FormControl>\n </SimpleGrid>\n <SimpleGrid columns={{ base: 1, md: 2 }} spacing={4}>\n <FormControl isRequired>\n <FormLabel>Datum vystavení</FormLabel>\n <Input\n type=\"date\"\n value={formData.issueDate}\n onChange={(e) => setFormData({ ...formData, issueDate: e.target.value })}\n />\n </FormControl>\n <FormControl isRequired>\n <FormLabel>Datum splatnosti</FormLabel>\n <Input\n type=\"date\"\n value={formData.dueDate}\n onChange={(e) => setFormData({ ...formData, dueDate: e.target.value })}\n />\n </FormControl>\n </SimpleGrid>\n\n <FormControl>\n <FormLabel>Způsob platby</FormLabel>\n <Select\n value={formData.paymentMethod}\n onChange={(e) => setFormData({ ...formData, paymentMethod: e.target.value })}\n >\n <option value=\"bank_transfer\">Bankovní převod</option>\n <option value=\"cash\">Hotově</option>\n <option value=\"card\">Kartou</option>\n <option value=\"other\">Jiný</option>\n </Select>\n </FormControl>\n\n <FormControl>\n <FormLabel>Poznámka</FormLabel>\n <Textarea\n value={formData.note}\n onChange={(e) => setFormData({ ...formData, note: e.target.value })}\n placeholder=\"Poznámka k faktuře...\"\n rows={3}\n />\n </FormControl>\n\n <Divider />\n\n <Flex justify=\"space-between\" align=\"center\">\n <Heading size=\"md\">Položky faktury</Heading>\n <Button\n leftIcon={<AddIcon />}\n colorScheme=\"blue\"\n size=\"sm\"\n onClick={addInvoiceItem}\n >\n Přidat položku\n </Button>\n </Flex>\n\n <VStack spacing={3} align=\"stretch\">\n {invoiceItems.map((item, index) => (\n <Card key={item.id} size=\"sm\">\n <CardBody>\n <SimpleGrid columns={{ base: 1, md: 6 }} spacing={3} alignItems=\"end\">\n <FormControl>\n <FormLabel fontSize=\"sm\">Popis</FormLabel>\n <Input\n value={item.description}\n onChange={(e) => updateInvoiceItem(item.id, 'description', e.target.value)}\n placeholder=\"Popis položky...\"\n size=\"sm\"\n />\n </FormControl>\n <FormControl>\n <FormLabel fontSize=\"sm\">Množství</FormLabel>\n <NumberInput\n value={item.quantity}\n onChange={(value) => updateInvoiceItem(item.id, 'quantity', parseFloat(value) || 0)}\n min={0}\n step={1}\n size=\"sm\"\n >\n <NumberInputField />\n <NumberInputStepper>\n <NumberIncrementStepper />\n <NumberDecrementStepper />\n </NumberInputStepper>\n </NumberInput>\n </FormControl>\n <FormControl>\n <FormLabel fontSize=\"sm\">Cena/jedn.</FormLabel>\n <NumberInput\n value={item.unitPrice}\n onChange={(value) => updateInvoiceItem(item.id, 'unitPrice', parseFloat(value) || 0)}\n min={0}\n step={0.01}\n size=\"sm\"\n >\n <NumberInputField />\n <NumberInputStepper>\n <NumberIncrementStepper />\n <NumberDecrementStepper />\n </NumberInputStepper>\n </NumberInput>\n </FormControl>\n <FormControl>\n <FormLabel fontSize=\"sm\">DPH %</FormLabel>\n <Select\n value={item.vatRate}\n onChange={(e) => updateInvoiceItem(item.id, 'vatRate', parseFloat(e.target.value))}\n size=\"sm\"\n >\n <option value=\"0\">0%</option>\n <option value=\"21\">21%</option>\n <option value=\"15\">15%</option>\n <option value=\"10\">10%</option>\n </Select>\n </FormControl>\n <FormControl>\n <FormLabel fontSize=\"sm\">Celkem s DPH</FormLabel>\n <Input\n value={item.totalWithVat.toFixed(2)}\n isReadOnly\n size=\"sm\"\n textAlign=\"right\"\n />\n </FormControl>\n <IconButton\n icon={<DeleteIcon />}\n variant=\"ghost\"\n size=\"sm\"\n colorScheme=\"red\"\n onClick={() => removeInvoiceItem(item.id)}\n aria-label=\"Smazat položku faktury\"\n />\n </SimpleGrid>\n </CardBody>\n </Card>\n ))}\n </VStack>\n\n {invoiceItems.length > 0 && (\n <Card>\n <CardBody>\n <Flex justify=\"space-between\" align=\"center\">\n <Text fontWeight=\"bold\">Celková částka:</Text>\n <Text fontSize=\"xl\" fontWeight=\"bold\">\n {calculateTotal().toFixed(2)} {formData.currency}\n </Text>\n </Flex>\n </CardBody>\n </Card>\n )}\n </VStack>\n </ModalBody>\n <ModalFooter>\n <Button\n variant=\"outline\"\n mr={3}\n onClick={() => {\n setIsCreateModalOpen(false);\n setIsEditModalOpen(false);\n resetForm();\n }}\n >\n Zrušit\n </Button>\n <Button\n colorScheme=\"blue\"\n onClick={isCreateModalOpen ? handleCreateInvoice : handleUpdateInvoice}\n isLoading={isLoading}\n >\n {isCreateModalOpen ? 'Vytvořit' : 'Uložit'}\n </Button>\n </ModalFooter>\n </ModalContent>\n </Modal>\n\n {/* View Modal */}\n <Modal\n isOpen={isViewModalOpen}\n onClose={() => setIsViewModalOpen(false)}\n size=\"4xl\"\n >\n <ModalOverlay />\n <ModalContent>\n <ModalHeader>\n Faktura č. {selectedInvoice?.invoiceNumber}\n </ModalHeader>\n <ModalCloseButton />\n <ModalBody>\n {selectedInvoice && (\n <VStack spacing={4} align=\"stretch\">\n <SimpleGrid columns={{ base: 1, md: 2 }} spacing={4}>\n <Card>\n <CardHeader>\n <Heading size=\"sm\">Dodavatel</Heading>\n </CardHeader>\n <CardBody>\n <VStack align=\"start\" spacing={1}>\n <Text fontWeight=\"bold\">{selectedInvoice.supplierName}</Text>\n <Text>IČO: {selectedInvoice.supplierICO}</Text>\n <Text>{selectedInvoice.supplierAddress}</Text>\n <Text>{selectedInvoice.supplierZIP} {selectedInvoice.supplierCity}</Text>\n </VStack>\n </CardBody>\n </Card>\n <Card>\n <CardHeader>\n <Heading size=\"sm\">Odběratel</Heading>\n </CardHeader>\n <CardBody>\n <VStack align=\"start\" spacing={1}>\n <Text fontWeight=\"bold\">{selectedInvoice.customerName}</Text>\n <Text>IČO: {selectedInvoice.customerICO}</Text>\n <Text>{selectedInvoice.customerAddress}</Text>\n <Text>{selectedInvoice.customerZIP} {selectedInvoice.customerCity}</Text>\n </VStack>\n </CardBody>\n </Card>\n </SimpleGrid>\n\n <SimpleGrid columns={{ base: 1, md: 3 }} spacing={4}>\n <Card>\n <CardBody>\n <VStack align=\"start\" spacing={1}>\n <Text fontSize=\"sm\" color=\"gray.600\">Číslo faktury</Text>\n <Text fontWeight=\"bold\">{selectedInvoice.invoiceNumber}</Text>\n </VStack>\n </CardBody>\n </Card>\n <Card>\n <CardBody>\n <VStack align=\"start\" spacing={1}>\n <Text fontSize=\"sm\" color=\"gray.600\">Datum vystavení</Text>\n <Text fontWeight=\"bold\">\n {format(new Date(selectedInvoice.issueDate), 'dd.MM.yyyy', { locale: cs })}\n </Text>\n </VStack>\n </CardBody>\n </Card>\n <Card>\n <CardBody>\n <VStack align=\"start\" spacing={1}>\n <Text fontSize=\"sm\" color=\"gray.600\">Datum splatnosti</Text>\n <Text fontWeight=\"bold\">\n {format(new Date(selectedInvoice.dueDate), 'dd.MM.yyyy', { locale: cs })}\n </Text>\n </VStack>\n </CardBody>\n </Card>\n </SimpleGrid>\n\n <Card>\n <CardHeader>\n <Heading size=\"sm\">Položky faktury</Heading>\n </CardHeader>\n <CardBody>\n <Table variant=\"simple\" size=\"sm\">\n <Thead>\n <Tr>\n <Th>Popis</Th>\n <Th textAlign=\"right\">Množství</Th>\n <Th textAlign=\"right\">Cena/jedn.</Th>\n <Th textAlign=\"right\">DPH %</Th>\n <Th textAlign=\"right\">Celkem s DPH</Th>\n </Tr>\n </Thead>\n <Tbody>\n {invoiceItems.map((item) => (\n <Tr key={item.id}>\n <Td>{item.description}</Td>\n <Td textAlign=\"right\">{item.quantity}</Td>\n <Td textAlign=\"right\">{item.unitPrice.toFixed(2)} {selectedInvoice.currency}</Td>\n <Td textAlign=\"right\">{item.vatRate}%</Td>\n <Td textAlign=\"right\">{item.totalWithVat.toFixed(2)} {selectedInvoice.currency}</Td>\n </Tr>\n ))}\n </Tbody>\n </Table>\n </CardBody>\n </Card>\n\n <Card>\n <CardBody>\n <Flex justify=\"space-between\" align=\"center\">\n <VStack align=\"start\" spacing={1}>\n <Text fontWeight=\"bold\">Celkem bez DPH:</Text>\n <Text fontWeight=\"bold\">DPH:</Text>\n <Text fontSize=\"lg\" fontWeight=\"bold\">Celkem k úhradě:</Text>\n </VStack>\n <VStack align=\"end\" spacing={1}>\n <Text>{(selectedInvoice.totalAmountWithoutVAT || 0).toFixed(2)} {selectedInvoice.currency}</Text>\n <Text>{(selectedInvoice.totalVAT || 0).toFixed(2)} {selectedInvoice.currency}</Text>\n <Text fontSize=\"lg\" fontWeight=\"bold\">\n {selectedInvoice.totalAmountVAT.toFixed(2)} {selectedInvoice.currency}\n </Text>\n </VStack>\n </Flex>\n </CardBody>\n </Card>\n\n {selectedInvoice.note && (\n <Card>\n <CardHeader>\n <Heading size=\"sm\">Poznámka</Heading>\n </CardHeader>\n <CardBody>\n <Text>{selectedInvoice.note}</Text>\n </CardBody>\n </Card>\n )}\n </VStack>\n )}\n </ModalBody>\n <ModalFooter>\n <Button\n variant=\"outline\"\n mr={3}\n onClick={() => setIsViewModalOpen(false)}\n >\n Zavřít\n </Button>\n {selectedInvoice && (\n <>\n <Button\n leftIcon={<DownloadIcon />}\n colorScheme=\"blue\"\n mr={3}\n onClick={() => handleGeneratePDF(selectedInvoice.id)}\n >\n Generovat PDF\n </Button>\n <Button\n leftIcon={<EmailIcon />}\n colorScheme=\"green\"\n onClick={() => handleSendInvoice(selectedInvoice.id)}\n >\n Odeslat emailem\n </Button>\n </>\n )}\n </ModalFooter>\n </ModalContent>\n </Modal>\n\n {/* Customer Creation Modal */}\n <Modal\n isOpen={isCustomerModalOpen}\n onClose={() => setIsCustomerModalOpen(false)}\n size=\"2xl\"\n >\n <ModalOverlay />\n <ModalContent>\n <ModalHeader>Přidat nového odběratele</ModalHeader>\n <ModalCloseButton />\n <ModalBody>\n <VStack spacing={4} align=\"stretch\">\n <SimpleGrid columns={{ base: 1, md: 2 }} spacing={4}>\n <FormControl isRequired>\n <FormLabel>Název firmy</FormLabel>\n <Input\n value={customerFormData.name}\n onChange={(e) => updateCustomerFormData('name', e.target.value)}\n placeholder=\"Název firmy\"\n />\n </FormControl>\n <FormControl isRequired>\n <FormLabel>IČO</FormLabel>\n <InputGroup>\n <Input\n value={customerFormData.ico}\n onChange={(e) => {\n const value = e.target.value.replace(/\\D/g, '').slice(0, 8);\n updateCustomerFormData('ico', value);\n if (value.length === 8) {\n searchCompanyByICO(value);\n }\n }}\n placeholder=\"12345678\"\n maxLength={8}\n />\n {isSearchingICO && (\n <InputRightElement>\n <Spinner size=\"sm\" />\n </InputRightElement>\n )}\n </InputGroup>\n </FormControl>\n </SimpleGrid>\n\n <SimpleGrid columns={{ base: 1, md: 2 }} spacing={4}>\n <FormControl>\n <FormLabel>DIČ</FormLabel>\n <Input\n value={customerFormData.dic}\n onChange={(e) => updateCustomerFormData('dic', e.target.value)}\n placeholder=\"CZ1234567890\"\n />\n </FormControl>\n <FormControl>\n <FormLabel>Stát</FormLabel>\n <Input\n value={customerFormData.country}\n onChange={(e) => updateCustomerFormData('country', e.target.value)}\n placeholder=\"Česká republika\"\n />\n </FormControl>\n </SimpleGrid>\n\n <FormControl>\n <FormLabel>Adresa</FormLabel>\n <Input\n value={customerFormData.address}\n onChange={(e) => updateCustomerFormData('address', e.target.value)}\n placeholder=\"Adresa\"\n />\n </FormControl>\n\n <SimpleGrid columns={{ base: 1, md: 2 }} spacing={4}>\n <FormControl>\n <FormLabel>Město</FormLabel>\n <Input\n value={customerFormData.city}\n onChange={(e) => updateCustomerFormData('city', e.target.value)}\n placeholder=\"Město\"\n />\n </FormControl>\n <FormControl>\n <FormLabel>PSČ</FormLabel>\n <Input\n value={customerFormData.zip}\n onChange={(e) => updateCustomerFormData('zip', e.target.value)}\n placeholder=\"123 45\"\n />\n </FormControl>\n </SimpleGrid>\n\n <SimpleGrid columns={{ base: 1, md: 2 }} spacing={4}>\n <FormControl>\n <FormLabel>Email</FormLabel>\n <Input\n type=\"email\"\n value={customerFormData.email}\n onChange={(e) => updateCustomerFormData('email', e.target.value)}\n placeholder=\"email@firma.cz\"\n />\n </FormControl>\n <FormControl>\n <FormLabel>Telefon</FormLabel>\n <Input\n value={customerFormData.phone}\n onChange={(e) => updateCustomerFormData('phone', e.target.value)}\n placeholder=\"+420 123 456 789\"\n />\n </FormControl>\n </SimpleGrid>\n\n <SimpleGrid columns={{ base: 1, md: 3 }} spacing={4}>\n <FormControl>\n <FormLabel>Číslo účtu</FormLabel>\n <Input\n value={customerFormData.bankAccount}\n onChange={(e) => updateCustomerFormData('bankAccount', e.target.value)}\n placeholder=\"123456789/0300\"\n />\n </FormControl>\n <FormControl>\n <FormLabel>IBAN</FormLabel>\n <Input\n value={customerFormData.iban}\n onChange={(e) => updateCustomerFormData('iban', e.target.value)}\n placeholder=\"CZ12345678901234567890123456\"\n />\n </FormControl>\n <FormControl>\n <FormLabel>SWIFT/BIC</FormLabel>\n <Input\n value={customerFormData.swift}\n onChange={(e) => updateCustomerFormData('swift', e.target.value)}\n placeholder=\"GIBACZPX\"\n />\n </FormControl>\n </SimpleGrid>\n </VStack>\n </ModalBody>\n <ModalFooter>\n <Button\n variant=\"outline\"\n mr={3}\n onClick={() => setIsCustomerModalOpen(false)}\n >\n Zrušit\n </Button>\n <Button\n colorScheme=\"green\"\n onClick={handleCreateCustomer}\n isLoading={isCreatingCustomer}\n >\n Vytvořit odběratele\n </Button>\n </ModalFooter>\n </ModalContent>\n </Modal>\n\n {/* Delete Confirmation Modal */}\n <Modal isOpen={isDeleteOpen} onClose={onDeleteClose}>\n <ModalOverlay />\n <ModalContent>\n <ModalHeader>Smazat fakturu</ModalHeader>\n <ModalCloseButton />\n <ModalBody>\n <Alert status=\"warning\">\n <AlertIcon />\n Opravdu chcete smazat fakturu č. {selectedInvoice?.invoiceNumber}?\n Tuto akci nelze vrátit zpět.\n </Alert>\n </ModalBody>\n <ModalFooter>\n <Button variant=\"outline\" mr={3} onClick={onDeleteClose}>\n Zrušit\n </Button>\n <Button\n colorScheme=\"red\"\n onClick={() => selectedInvoice && handleDeleteInvoice(selectedInvoice.id)}\n >\n Smazat\n </Button>\n </ModalFooter>\n </ModalContent>\n </Modal>\n </VStack>\n </Container>\n </AdminLayout>\n );\n};\n\nexport default InvoicesPage;\n"],"names":["DownloadIcon","createIcon","d","displayName","viewBox","InvoicesPage","invoices","setInvoices","useState","customers","setCustomers","selectedInvoice","setSelectedInvoice","isLoading","setIsLoading","searchTerm","setSearchTerm","statusFilter","setStatusFilter","isCreateModalOpen","setIsCreateModalOpen","isEditModalOpen","setIsEditModalOpen","isViewModalOpen","setIsViewModalOpen","isDeleteModalOpen","setIsDeleteModalOpen","isCustomerModalOpen","setIsCustomerModalOpen","invoiceItems","setInvoiceItems","formData","setFormData","customerId","issueDate","format","Date","dueDate","now","currency","note","paymentMethod","customerFormData","setCustomerFormData","name","ico","dic","address","city","zip","country","email","phone","bankAccount","iban","swift","isCreatingCustomer","setIsCreatingCustomer","isSearchingICO","setIsSearchingICO","isOpen","isDeleteOpen","onOpen","onDeleteOpen","onClose","onDeleteClose","useDisclosure","toast","useToast","useEffect","loadInvoices","loadCustomers","async","response","api","get","data","error","title","description","status","duration","console","updateCustomerFormData","field","value","_objectSpread","handleGeneratePDF","post","concat","id","window","open","filePath","_error$response5","_error$response5$data","message","handleSendInvoice","_error$response6","_error$response6$data","updateInvoiceItem","map","item","updatedItem","totalPrice","quantity","unitPrice","vatAmount","vatRate","totalWithVat","resetForm","loadInvoiceItems","invoiceId","invoice","items","getStatusColor","getStatusText","filteredInvoices","filter","matchesSearch","customerName","toLowerCase","includes","invoiceNumber","matchesStatus","_jsx","AdminLayout","children","Container","maxW","py","_jsxs","VStack","spacing","align","Flex","justify","Heading","size","Button","leftIcon","AddIcon","colorScheme","onClick","Card","CardBody","SimpleGrid","columns","base","md","FormControl","FormLabel","InputGroup","InputLeftElement","SearchIcon","Input","placeholder","onChange","e","target","Select","Box","overflow","overflowX","Table","variant","Thead","Tr","Th","Tbody","Td","fontWeight","locale","cs","Text","fontSize","color","customerICO","totalAmountVAT","toFixed","Badge","HStack","Tooltip","label","IconButton","icon","ViewIcon","EditIcon","openEditModal","EmailIcon","DeleteIcon","Modal","ModalOverlay","ModalContent","ModalHeader","ModalCloseButton","ModalBody","isRequired","customer","display","alignItems","width","type","Textarea","rows","Divider","addInvoiceItem","newItem","toString","index","NumberInput","parseFloat","min","step","NumberInputField","NumberInputStepper","NumberIncrementStepper","NumberDecrementStepper","isReadOnly","textAlign","removeInvoiceItem","length","reduce","sum","ModalFooter","mr","_error$response2","_error$response2$data","put","_error$response3","_error$response3$data","CardHeader","supplierName","supplierICO","supplierAddress","supplierZIP","supplierCity","customerAddress","customerZIP","customerCity","totalAmountWithoutVAT","totalVAT","_Fragment","replace","slice","fetch","ok","Error","json","prev","obchodniJmeno","sidlo","textovaAdresa","nazevObce","psc","nazevStatu","searchCompanyByICO","maxLength","InputRightElement","Spinner","_response$data$custom","_error$response","_error$response$data","Alert","AlertIcon","delete","_error$response4","_error$response4$data","handleDeleteInvoice"],"sourceRoot":""} |