diff --git a/firm/src/components/Raporty.js b/firm/src/components/Raporty.js index b4f1e7f..62a646e 100644 --- a/firm/src/components/Raporty.js +++ b/firm/src/components/Raporty.js @@ -1,12 +1,14 @@ import React, { useState, useEffect } from 'react'; import axios from 'axios'; import koszIcon from "../icons/kosz.png"; +import ConfirmationModal from './ConfirmationModal'; const Raporty = () => { const [fromDate, setFromDate] = useState(''); const [toDate, setToDate] = useState(''); const [error, setError] = useState(null); const [reports, setReports] = useState([]); + const [deleteReportId, setDeleteReportId] = useState(null); const fetchReports = async () => { try { @@ -16,6 +18,13 @@ const Raporty = () => { console.error('Błąd podczas pobierania raportów:', error); } }; + const openDeleteConfirmation = (transactionId) => { + setDeleteReportId(transactionId); + }; + + const closeDeleteConfirmation = () => { + setDeleteReportId(null); + }; useEffect(() => { fetchReports(); @@ -41,8 +50,9 @@ const Raporty = () => { const handleDeleteReport = async (reportId) => { try { - await axios.delete(`https://localhost:7039/api/Report?${reportId}`); - setReports(reports.filter(report => report.id !== reportId)); // Update state after deletion + await axios.delete(`https://localhost:7039/api/Report/${reportId}`); + fetchReports(); + setDeleteReportId(null); } catch (error) { console.error('Błąd podczas usuwania raportu:', error); } @@ -93,7 +103,7 @@ const Raporty = () => { {report.totalExpenses} {report.totalBalance} - @@ -112,6 +122,12 @@ const Raporty = () => { )} + {deleteReportId && ( + handleDeleteReport(deleteReportId)} + />)} ); }; diff --git a/firm/src/components/Sidebar.js b/firm/src/components/Sidebar.js index 2d9f4f3..7927abb 100644 --- a/firm/src/components/Sidebar.js +++ b/firm/src/components/Sidebar.js @@ -19,7 +19,7 @@ const Sidebar = () => {
  • Obrazek 1 - Zarządzanie Produkatami + Produkty
  • diff --git a/firm/src/components/Transakcje.js b/firm/src/components/Transakcje.js index 467721d..00784eb 100644 --- a/firm/src/components/Transakcje.js +++ b/firm/src/components/Transakcje.js @@ -136,6 +136,11 @@ const Transakcje = () => { setDeleteTransactionId(null); } catch (error) { console.error('Błąd podczas usuwania transakcji:', error); + if (error.response && error.response.data) { + setError(error.response.data); + } else { + setError('Wystąpił nieoczekiwany błąd. Spróbuj ponownie później.'); + } } }; const handleEditTransaction = async (transaction) => { @@ -145,11 +150,9 @@ const Transakcje = () => { setIsEditModalOpen(true); return; } - if (!editTransaction.date || !editTransaction.employeeId || editTransaction.transactionProducts.some(product => !product.productName || !product.quantity) || !editTransaction.paymentType - || !editTransaction.description || !editTransaction.discount ) { + if (!editTransaction.date || !editTransaction.employeeId || editTransaction.transactionProducts.some(product => !product.productName || !product.quantity) || !editTransaction.paymentType){ setError('Proszę uzupełnić wszystkie pola.'); - return; - } + return;} await axios.put(`https://localhost:7039/api/Transaction/${editTransaction.id}`, editTransaction); fetchTransactions(); setIsEditModalOpen(false); @@ -215,7 +218,7 @@ const Transakcje = () => { )} {isEditModalOpen && editTransaction && (
    -
    +

    Edytuj transakcję

    { handleDeleteTransaction(deleteTransactionId)} + onConfirm={() => {handleDeleteTransaction(deleteTransactionId); setDeleteTransactionId(false);}} />)}
    ); diff --git a/firm/src/components/Wydatki.js b/firm/src/components/Wydatki.js index f75e1cc..62708b9 100644 --- a/firm/src/components/Wydatki.js +++ b/firm/src/components/Wydatki.js @@ -2,11 +2,13 @@ import React, { useState, useEffect } from 'react'; import axios from 'axios'; import koszIcon from "../icons/kosz.png"; import plusIcon from "../icons/plus.png"; +import ConfirmationModal from './ConfirmationModal'; const Wydatki = () => { const [expenses, setExpenses] = useState([]); const [showModal, setShowModal] = useState(false); const [error, setError] = useState(null); + const [deleteExpenseId, setDeleteExpenseId] = useState(null); const [newExpense, setNewExpense] = useState({ date: '', value: '', @@ -50,10 +52,23 @@ const Wydatki = () => { try { await axios.delete(`https://localhost:7039/api/Expenses/${expenseId}`); fetchExpenses(); + setDeleteExpenseId(null); } catch (error) { console.error('Błąd podczas usuwania wydatku:', error); + if (error.response && error.response.data) { + setError(error.response.data); + } else { + setError('Wystąpił nieoczekiwany błąd. Spróbuj ponownie później.'); + } } }; + const openDeleteConfirmation = (transactionId) => { + setDeleteExpenseId(transactionId); + }; + + const closeDeleteConfirmation = () => { + setDeleteExpenseId(null); + }; const formatDate = (dateString) => { const options = { year: 'numeric', month: '2-digit', day: '2-digit', hour: '2-digit', minute: '2-digit' }; @@ -91,7 +106,7 @@ const Wydatki = () => { {expense.value} {expense.description} - @@ -151,6 +166,12 @@ const Wydatki = () => {
    )} + {deleteExpenseId && ( + {handleDeleteExpense(deleteExpenseId); setDeleteExpenseId(false);}} + />)} ); }; diff --git a/firm/src/components/ZarzadzanieProduktami.js b/firm/src/components/ZarzadzanieProduktami.js index a2aebb4..47b3382 100644 --- a/firm/src/components/ZarzadzanieProduktami.js +++ b/firm/src/components/ZarzadzanieProduktami.js @@ -59,8 +59,13 @@ const ZarzadzanieProduktami = () => { type: "", description: "" }); - } catch (error) { - console.error('Błąd podczas dodawania produktu:', error); + } catch (error) { + console.error('Błąd podczas dodawania:', error); + if (error.response && error.response.data) { + setError(error.response.data); + } else { + setError('Wystąpił nieoczekiwany błąd. Spróbuj ponownie później.'); + } } }; @@ -78,8 +83,13 @@ const ZarzadzanieProduktami = () => { await axios.put(`https://localhost:7039/api/Products/${editProduct.id}`, editProduct); fetchProducts(); setIsEditModalOpen(false); - } catch (error) { - console.error('Błąd podczas edycji produktu:', error); + } catch (error) { + console.error('Błąd podczas edycji:', error); + if (error.response && error.response.data) { + setError(error.response.data); + } else { + setError('Wystąpił nieoczekiwany błąd. Spróbuj ponownie później.'); + } } }; @@ -90,6 +100,11 @@ const ZarzadzanieProduktami = () => { setDeleteProductId(null); } catch (error) { console.error('Błąd podczas usuwania produktu:', error); + if (error.response && error.response.data) { + setError(error.response.data); + } else { + setError('Wystąpił nieoczekiwany błąd. Spróbuj ponownie później.'); + } } }; @@ -292,7 +307,7 @@ const formatPrice = (price) => { {handleDeleteProduct(); setDeleteProductId(false);}} /> )}