Compare commits
6 Commits
v2.0
...
2fd312c922
Author | SHA1 | Date | |
---|---|---|---|
2fd312c922 | |||
0a908ed73a | |||
e8e825e679 | |||
416cb39277 | |||
61859cb3d3 | |||
66ebf78e6b |
15
README.md
15
README.md
@ -3,14 +3,27 @@
|
||||
|
||||
Tento projekt slouží k zobrazení transparentního přehledu financí komunity. Stránka zobrazuje seznam příjmů a výdajů, které jsou uloženy v CSV souboru, a aktuální stav účtu.
|
||||
|
||||
# Přehled Financí Komunity
|
||||
|
||||
Tento projekt slouží k zobrazení transparentního přehledu financí komunity. Stránka zobrazuje seznam příjmů a výdajů, které jsou uloženy v CSV souboru, a aktuální stav účtu.
|
||||
|
||||
## Struktura projektu
|
||||
|
||||
- `index.html` - Hlavní HTML soubor obsahující strukturu stránky.
|
||||
- `styly.css` - CSS soubor obsahující styly pro stránku.
|
||||
- `skript.js` - JavaScript soubor obsahující logiku pro načítání a zpracování dat.
|
||||
- `finance.csv` - CSV soubor obsahující data o transakcích.
|
||||
- `finance.csv` - CSV soubor obsahující data o aktuálním roce.
|
||||
- `finance_2024.csv` - Archivní CSV soubor s daty za rok 2024.
|
||||
- `2024.html` - Stránka pro zobrazení archivu financí za rok 2024.
|
||||
- `README.md` - Tento soubor s informacemi o projektu.
|
||||
|
||||
## 📂 Archiv finančních záznamů
|
||||
|
||||
Kromě aktuálních dat projekt také obsahuje **archiv starších finančních záznamů**, které lze zobrazit přes sekci **Archiv** na hlavní stránce.
|
||||
|
||||
### 📜 Dostupné roky:
|
||||
🔹 **[Archiv 2024](https://git.arch-linux.cz/Archos/prehlad-financi-komunity/releases/download/v2.0/finance_2024.csv)**
|
||||
🔹 **[Archivní stránka 2024](http://localhost:8000/2024.html) - Zobrazení v tabulce**
|
||||
|
||||
## Jak používat
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
echo "Datum,Popis,Částka,Měna,Typ" > finance.csv
|
||||
"echo ""Datum",Popis,Částka,Měna,"Typ"" > finance.csv"
|
||||
2025-01-01,Stav účtu 2024,18102.44,CZK,Příjem
|
||||
2025-01-04,Platba server Hetzner ,-3649,CZK,Výdaj
|
||||
2025-01-04,Příspěvek M.Kroul,150,CZK,Příjem
|
||||
@ -34,4 +34,4 @@ echo "Datum,Popis,Částka,Měna,Typ" > finance.csv
|
||||
2025-02-07,Příspěvek Plátce,200,CZK,Příjem
|
||||
2025-02-07,Příspěvek @fabia_man,200,CZK,Příjem
|
||||
2025-02-07,Platba domény archoslinux,-297,CZK,Výdaj
|
||||
|
||||
2025-02-09,Příspěvek Infoek,550,CZK,Příjem
|
||||
|
Can't render this file because it contains an unexpected character in line 1 and column 6.
|
16
finance_2024_corrected.csv
Normal file
16
finance_2024_corrected.csv
Normal file
@ -0,0 +1,16 @@
|
||||
# Vytvoření testovacího DataFrame s podobnou strukturou jako uživatelův CSV soubor
|
||||
data_corrected = {
|
||||
'Datum': ['2024-06-04', '2024-06-05', '2024-06-10', '2024-06-17', '2024-06-18'],
|
||||
'Popis': ['Stav účtu', 'Příspěvek @tritol128', 'Příspěvek @fabia_man', 'Příspěvek @Onqa6', 'Příspěvek D.Kolaja'],
|
||||
'Částka': [9253.0, 512.0, 100.0, 100.0, 111.0],
|
||||
'Měna': ['CZK', 'CZK', 'CZK', 'CZK', 'CZK'],
|
||||
'Typ': ['Příjem', 'Příjem', 'Příjem', 'Příjem', 'Příjem']
|
||||
}
|
||||
|
||||
df_corrected = pd.DataFrame(data_corrected)
|
||||
|
||||
# Uložení do CSV souboru
|
||||
corrected_csv_path = "/mnt/data/finance_2024_corrected.csv"
|
||||
df_corrected.to_csv(corrected_csv_path, index=False)
|
||||
|
||||
corrected_csv_path
|
Can't render this file because it contains an unexpected character in line 13 and column 22.
|
@ -50,6 +50,12 @@
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<!-- Archiv přehledů financí -->
|
||||
<div class="container text-center mt-4">
|
||||
<h2>Archiv přehledů financí</h2>
|
||||
<button id="load-archive-2024" class="btn btn-secondary">Načíst rok 2024</button>
|
||||
</div>
|
||||
|
||||
<footer class="text-center mt-auto py-3">
|
||||
<p>© 2024 <a href="https://git.arch-linux.cz/Archos/prehlad-financi-komunity" target="_blank">Archos</a></p>
|
||||
</footer>
|
||||
|
41
skript.js
41
skript.js
@ -1,5 +1,8 @@
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
fetch('finance.csv')
|
||||
// Funkce pro načítání financí
|
||||
function loadFinanceData(csvFile) {
|
||||
console.log(`Načítání souboru: ${csvFile}`); // Debug výpis
|
||||
fetch(csvFile)
|
||||
.then(response => {
|
||||
if (!response.ok) {
|
||||
throw new Error('Network response was not ok');
|
||||
@ -7,10 +10,12 @@ document.addEventListener('DOMContentLoaded', function() {
|
||||
return response.text();
|
||||
})
|
||||
.then(data => {
|
||||
let rows = data.split('\n').slice(1);
|
||||
rows = rows.filter(row => row.trim() !== ""); // Remove empty rows
|
||||
rows.reverse(); // Reverse the order of rows
|
||||
console.log('Načtená data:', data); // Debug výpis načtených dat
|
||||
let rows = data.split('\n').slice(1); // Odstraníme hlavičku CSV souboru
|
||||
rows = rows.filter(row => row.trim() !== ""); // Odstranit prázdné řádky
|
||||
rows.reverse(); // Obrátit pořadí řádků
|
||||
const tableBody = document.querySelector('#finance-table tbody');
|
||||
tableBody.innerHTML = ''; // Vyprázdnit tabulku před načtením nových dat
|
||||
let accountBalance = 0;
|
||||
rows.forEach(row => {
|
||||
const columns = row.split(',');
|
||||
@ -23,36 +28,34 @@ document.addEventListener('DOMContentLoaded', function() {
|
||||
});
|
||||
tableBody.appendChild(tr);
|
||||
|
||||
// Debug output
|
||||
console.log('Row:', row);
|
||||
console.log('Columns:', columns);
|
||||
|
||||
// Calculate account balance
|
||||
const amount = parseFloat(columns[2].replace(/,/g, '').replace(/[^0-9.-]/g, '')); // Remove any invalid characters and ensure proper decimal handling
|
||||
// Výpočet zůstatku
|
||||
const amount = parseFloat(columns[2].replace(/,/g, '').replace(/[^0-9.-]/g, '')); // Ošetření čísel
|
||||
const currency = columns[3].trim();
|
||||
|
||||
// Debug output
|
||||
console.log('Amount:', amount);
|
||||
console.log('Currency:', currency);
|
||||
|
||||
if (!isNaN(amount)) {
|
||||
if (currency === 'CZK') {
|
||||
accountBalance += amount;
|
||||
} else if (currency === 'EUR') {
|
||||
// For simplicity, assume 1 EUR = 25 CZK (you can adjust the conversion rate)
|
||||
accountBalance += amount * 25;
|
||||
accountBalance += amount * 25; // Pro jednoduchost: 1 EUR = 25 CZK
|
||||
}
|
||||
} else {
|
||||
console.error('Invalid amount:', columns[2]);
|
||||
}
|
||||
}
|
||||
});
|
||||
document.getElementById('account-balance').textContent = accountBalance.toFixed(2) + ' CZK';
|
||||
})
|
||||
.catch(error => {
|
||||
console.error('Error fetching the CSV file:', error);
|
||||
console.error('Chyba při načítání CSV souboru:', error);
|
||||
document.getElementById('account-balance').textContent = 'Chyba při načítání dat';
|
||||
});
|
||||
}
|
||||
|
||||
// Načítání aktuálního souboru finance.csv
|
||||
loadFinanceData('finance.csv'); // Soubor je ve stejné složce, proto nemusíš zadávat cestu
|
||||
|
||||
// Přidání funkce pro načítání archivovaných dat za rok 2024
|
||||
document.getElementById('load-archive-2024').addEventListener('click', function() {
|
||||
loadFinanceData('finance_2024_corrected.csv'); // Stejná složka pro archivovaný soubor
|
||||
});
|
||||
});
|
||||
$(document).ready(function() {
|
||||
$('#dropdownMenuButton').on('click', function() {
|
||||
|
Reference in New Issue
Block a user