/
icedev
/
eks-present
Обзор
Документация
Войти
/
icedev
/
eks-present
Код
Запросы
0
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
accounting.html
143 строки
6 KB
ICEDEV
init
12 май 2026, 12:50
12 май 2026, 12:50
872c4b8
Код
Авторство
О чём код?
<!DOCTYPE html> <html lang="ru"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Главная бухгалтерии - EKS</title> <link rel="stylesheet" href="styles.css" /> </head> <body> <div class="container"> <header class="topbar"> <div class="brand">EKS | Бухгалтерия</div> <nav class="nav"> <a class="nav-link" href="index.html">Выход</a> <a class="nav-link active" href="accounting.html">Главная</a> <a class="nav-link" href="information.html">Информация</a> <a class="nav-link" href="requests.html">Реестр заявок</a> </nav> </header> <section class="glass-card section-card"> <h1 class="title">Панель бухгалтерии</h1> <p class="subtitle">Финансовый контур и отчетность по компаниям</p> <div class="grid"> <a class="tile" href="employees.html?id=1"> <h3>Сотрудники</h3> <p>Сотрудники контрагентов и внутреннего блока.</p> </a> <article class="tile"><h3>Компании</h3><p>Реестр контрагентов, договоры и лимиты.</p></article> <article class="tile"><h3>Отчеты</h3><p>Оплаты, дебиторка, движение по проектам.</p></article> <article class="tile"><h3>Чат</h3><p>Согласование информации и финансовых задач.</p></article> </div> </section> <section class="glass-card section-card"> <h2 class="title" style="font-size: 22px; margin-bottom: 8px;">Финансовые заявки</h2> <p class="subtitle">Добавляйте и удаляйте заявки, данные сохраняются локально.</p> <form id="add-finance-form" class="inline-form"> <div class="field" style="margin-bottom: 0;"> <label for="finance-company">Компания</label> <input id="finance-company" name="company" type="text" placeholder='ООО "Контрагент"' required /> </div> <div class="field" style="margin-bottom: 0;"> <label for="finance-amount">Сумма (руб.)</label> <input id="finance-amount" name="amount" type="number" min="1" placeholder="150000" required /> </div> <div class="field" style="margin-bottom: 0;"> <label for="finance-purpose">Назначение</label> <input id="finance-purpose" name="purpose" type="text" placeholder="Оплата этапа работ" required /> </div> <div style="display: flex; align-items: flex-end;"> <button class="btn btn-primary" type="submit" style="width: 100%;">Добавить</button> </div> </form> <div class="table-wrap"> <table> <thead> <tr> <th>Компания</th> <th>Сумма</th> <th>Назначение</th> <th class="actions-cell">Действия</th> </tr> </thead> <tbody id="finance-tbody"></tbody> </table> </div> </section> </div> <script> const FINANCE_STORAGE_KEY = "eks_finance_requests"; const DEFAULT_FINANCE = [ { id: "f1", company: 'ООО "ТехМонтаж"', amount: 180000, purpose: "Оплата ПНР" }, { id: "f2", company: 'ООО "СигналПро"', amount: 95000, purpose: "Закупка оборудования" }, ]; function getFinance() { const raw = localStorage.getItem(FINANCE_STORAGE_KEY); if (!raw) { localStorage.setItem(FINANCE_STORAGE_KEY, JSON.stringify(DEFAULT_FINANCE)); return [...DEFAULT_FINANCE]; } try { const parsed = JSON.parse(raw); return Array.isArray(parsed) ? parsed : [...DEFAULT_FINANCE]; } catch (error) { localStorage.setItem(FINANCE_STORAGE_KEY, JSON.stringify(DEFAULT_FINANCE)); return [...DEFAULT_FINANCE]; } } function saveFinance(items) { localStorage.setItem(FINANCE_STORAGE_KEY, JSON.stringify(items)); } function removeFinance(id) { const items = getFinance().filter((item) => item.id !== id); saveFinance(items); renderFinance(); } function renderFinance() { const tbody = document.getElementById("finance-tbody"); const items = getFinance(); tbody.innerHTML = ""; items.forEach((item) => { const tr = document.createElement("tr"); tr.innerHTML = "<td>" + item.company + "</td>" + "<td>" + Number(item.amount).toLocaleString("ru-RU") + " ₽</td>" + "<td>" + item.purpose + "</td>" + "<td><button class=\"btn btn-danger\" type=\"button\" data-delete-finance=\"" + item.id + "\">Удалить</button></td>"; tbody.appendChild(tr); }); tbody.querySelectorAll("[data-delete-finance]").forEach((button) => { button.addEventListener("click", () => removeFinance(button.getAttribute("data-delete-finance"))); }); } document.getElementById("add-finance-form").addEventListener("submit", (event) => { event.preventDefault(); const formData = new FormData(event.target); const company = String(formData.get("company") || "").trim(); const purpose = String(formData.get("purpose") || "").trim(); const amount = Number(formData.get("amount")); if (!company || !purpose || Number.isNaN(amount)) return; const items = getFinance(); items.push({ id: String(Date.now()), company, purpose, amount: Math.max(1, amount), }); saveFinance(items); event.target.reset(); renderFinance(); }); renderFinance(); </script> </body> </html>