desktop修正
This commit is contained in:
65
frontend/js/journal.js
Normal file
65
frontend/js/journal.js
Normal file
@@ -0,0 +1,65 @@
|
||||
function addLine() {
|
||||
const tbody = document.querySelector("#lines-table tbody");
|
||||
|
||||
const tr = document.createElement("tr");
|
||||
tr.innerHTML = `
|
||||
<td><input type="number" class="account-id" /></td>
|
||||
<td><input type="number" class="debit" value="0" /></td>
|
||||
<td><input type="number" class="credit" value="0" /></td>
|
||||
<td><button onclick="this.closest('tr').remove()">削除</button></td>
|
||||
`;
|
||||
|
||||
tbody.appendChild(tr);
|
||||
}
|
||||
|
||||
async function submitJournal() {
|
||||
const date = document.getElementById("journal-date").value;
|
||||
const desc = document.getElementById("description").value;
|
||||
|
||||
if (!date) {
|
||||
alert("日付を入力してください");
|
||||
return;
|
||||
}
|
||||
|
||||
const lines = [];
|
||||
document.querySelectorAll("#lines-table tbody tr").forEach((tr) => {
|
||||
const accountId = tr.querySelector(".account-id").value;
|
||||
const debit = tr.querySelector(".debit").value || 0;
|
||||
const credit = tr.querySelector(".credit").value || 0;
|
||||
|
||||
if (!accountId) return;
|
||||
|
||||
lines.push({
|
||||
account_id: Number(accountId),
|
||||
debit: Number(debit),
|
||||
credit: Number(credit),
|
||||
});
|
||||
});
|
||||
|
||||
if (lines.length < 2) {
|
||||
alert("仕訳明細は2行以上必要です");
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
await fetch("http://127.0.0.1:18080/journals", {
|
||||
method: "POST",
|
||||
headers: { "Content-Type": "application/json" },
|
||||
body: JSON.stringify({
|
||||
journal_date: date,
|
||||
description: desc,
|
||||
lines: lines,
|
||||
}),
|
||||
}).then(async (res) => {
|
||||
if (!res.ok) {
|
||||
const data = await res.json();
|
||||
throw new Error(data.detail || "登録失敗");
|
||||
}
|
||||
});
|
||||
|
||||
alert("仕訳を登録しました");
|
||||
location.href = "index.html";
|
||||
} catch (e) {
|
||||
alert(e.message);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user