修正
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
const API_BASE = "http://127.0.0.1:18080";
|
||||
const API_BASE = "";
|
||||
|
||||
async function apiGet(path, params = {}) {
|
||||
const query = new URLSearchParams(params).toString();
|
||||
|
||||
@@ -42,7 +42,7 @@ async function submitJournal() {
|
||||
}
|
||||
|
||||
try {
|
||||
await fetch("http://127.0.0.1:18080/journals", {
|
||||
await fetch(`/journals`, {
|
||||
method: "POST",
|
||||
headers: { "Content-Type": "application/json" },
|
||||
body: JSON.stringify({
|
||||
|
||||
@@ -127,7 +127,7 @@ function recalcTotals() {
|
||||
document.getElementById("totalDebit").innerText = formatNumber(finalDebit);
|
||||
document.getElementById("totalCredit").innerText = formatNumber(finalCredit);
|
||||
document.getElementById("diff").innerText = formatNumber(
|
||||
finalDebit - finalCredit
|
||||
finalDebit - finalCredit,
|
||||
);
|
||||
|
||||
// 小計行を更新
|
||||
@@ -144,7 +144,7 @@ function updateSubtotalRows() {
|
||||
debit: sum.debit + Number(acc.opening_debit || 0),
|
||||
credit: sum.credit + Number(acc.opening_credit || 0),
|
||||
}),
|
||||
{ debit: 0, credit: 0 }
|
||||
{ debit: 0, credit: 0 },
|
||||
);
|
||||
|
||||
// 対応する小計行を探して更新
|
||||
@@ -167,7 +167,7 @@ async function loadOpeningBalances() {
|
||||
|
||||
accounts = data;
|
||||
retainedEarnings = accounts.find(
|
||||
(a) => a.account_name === "繰越利益剰余金" || a.account_name === "繰越利益"
|
||||
(a) => a.account_name === "繰越利益剰余金" || a.account_name === "繰越利益",
|
||||
);
|
||||
|
||||
const tbody = document.querySelector("#balanceTable tbody");
|
||||
@@ -224,7 +224,7 @@ async function loadOpeningBalances() {
|
||||
debit: sum.debit + Number(acc.opening_debit || 0),
|
||||
credit: sum.credit + Number(acc.opening_credit || 0),
|
||||
}),
|
||||
{ debit: 0, credit: 0 }
|
||||
{ debit: 0, credit: 0 },
|
||||
);
|
||||
|
||||
const totalTr = document.createElement("tr");
|
||||
@@ -243,14 +243,12 @@ async function loadOpeningBalances() {
|
||||
});
|
||||
|
||||
// 年度锁定チェック
|
||||
fetch(
|
||||
`http://127.0.0.1:18080/opening-balances/lock-status?fiscal_year=${year}`
|
||||
)
|
||||
fetch(`/opening-balances/lock-status?fiscal_year=${year}`)
|
||||
.then((res) => res.json())
|
||||
.then((data) => {
|
||||
isLocked = data.is_locked;
|
||||
document.querySelector(
|
||||
"button[onclick='saveOpeningBalances()']"
|
||||
"button[onclick='saveOpeningBalances()']",
|
||||
).disabled = isLocked;
|
||||
if (isLocked) {
|
||||
alert("この会計年度の期首残高は確定されています。");
|
||||
@@ -273,7 +271,7 @@ async function saveOpeningBalances() {
|
||||
(a) =>
|
||||
a.account_name !== "繰越利益剰余金" &&
|
||||
a.account_name !== "繰越利益" &&
|
||||
(Number(a.opening_debit) !== 0 || Number(a.opening_credit) !== 0)
|
||||
(Number(a.opening_debit) !== 0 || Number(a.opening_credit) !== 0),
|
||||
)
|
||||
.map((a) => ({
|
||||
account_id: a.account_id,
|
||||
@@ -282,7 +280,7 @@ async function saveOpeningBalances() {
|
||||
}));
|
||||
|
||||
try {
|
||||
await fetch("http://127.0.0.1:18080/opening-balances", {
|
||||
await fetch(`/opening-balances`, {
|
||||
method: "POST",
|
||||
headers: { "Content-Type": "application/json" },
|
||||
body: JSON.stringify({
|
||||
|
||||
@@ -1,7 +1,13 @@
|
||||
document.addEventListener("DOMContentLoaded", () => {
|
||||
console.log("trial-balance.js 已执行");
|
||||
// ===============================================
|
||||
// trial-balance.js - 試算表データ読み込みスクリプト
|
||||
// ===============================================
|
||||
console.log("🔧 trial-balance.js ファイルが読み込まれました");
|
||||
|
||||
const API_URL = "http://127.0.0.1:18080/trial-balance";
|
||||
// 初期读入関数
|
||||
function initTrialBalance() {
|
||||
console.log("✓ initTrialBalance() 関数が実行されました");
|
||||
|
||||
const API_URL = `/trial-balance`;
|
||||
|
||||
// デフォルト期間を計算(5/31決算:6月開始~現在月末)
|
||||
function getDefaultPeriod() {
|
||||
@@ -28,7 +34,7 @@ document.addEventListener("DOMContentLoaded", () => {
|
||||
const lastDayOfMonth = new Date(fiscalEndYear, currentMonth, 0).getDate();
|
||||
const dateTo = `${fiscalEndYear}-${String(currentMonth).padStart(
|
||||
2,
|
||||
"0"
|
||||
"0",
|
||||
)}-${String(lastDayOfMonth).padStart(2, "0")}`;
|
||||
|
||||
return { dateFrom, dateTo };
|
||||
@@ -39,8 +45,13 @@ document.addEventListener("DOMContentLoaded", () => {
|
||||
const url = `${API_URL}?date_from=${dateFrom}&date_to=${dateTo}`;
|
||||
console.log("読み込み URL:", url);
|
||||
|
||||
// 加載中のステータス表示
|
||||
const loadingEl = document.getElementById("loadingStatus");
|
||||
if (loadingEl) loadingEl.style.display = "inline";
|
||||
|
||||
fetch(url)
|
||||
.then((r) => {
|
||||
console.log("API Response Status:", r.status);
|
||||
if (!r.ok) throw new Error("API 返回错误: " + r.status);
|
||||
return r.json();
|
||||
})
|
||||
@@ -116,10 +127,23 @@ document.addEventListener("DOMContentLoaded", () => {
|
||||
totalClosing.toLocaleString();
|
||||
document.getElementById("totalRatio").textContent =
|
||||
data.totals?.ratio ?? "100.00";
|
||||
|
||||
// 加載中ステータスを非表示
|
||||
const loadingEl = document.getElementById("loadingStatus");
|
||||
if (loadingEl) loadingEl.style.display = "none";
|
||||
})
|
||||
.catch((err) => {
|
||||
console.error("試算表読取失敗:", err);
|
||||
alert("試算表読取失敗、コンソールログを確認してください");
|
||||
const tbody = document.querySelector("#trialBalanceTable tbody");
|
||||
if (tbody) {
|
||||
tbody.innerHTML = `<tr><td colspan="7" style="text-align:center; color:red;">エラー: ${err.message}</td></tr>`;
|
||||
}
|
||||
// 加載中ステータスを非表示
|
||||
const loadingEl = document.getElementById("loadingStatus");
|
||||
if (loadingEl) loadingEl.style.display = "none";
|
||||
alert(
|
||||
`試算表読取失敗: ${err.message}\n\nコンソールログ(F12)を確認してください`,
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -170,9 +194,23 @@ document.addEventListener("DOMContentLoaded", () => {
|
||||
});
|
||||
|
||||
// 初期読み込み(5/31決算に対応)
|
||||
const defaultPeriod = getDefaultPeriod();
|
||||
document.getElementById("dateFrom").value = defaultPeriod.dateFrom;
|
||||
document.getElementById("dateTo").value = defaultPeriod.dateTo;
|
||||
try {
|
||||
const defaultPeriod = getDefaultPeriod();
|
||||
document.getElementById("dateFrom").value = defaultPeriod.dateFrom;
|
||||
document.getElementById("dateTo").value = defaultPeriod.dateTo;
|
||||
loadTrialBalance(defaultPeriod.dateFrom, defaultPeriod.dateTo);
|
||||
console.log("✓ 初期読み込み完了");
|
||||
} catch (err) {
|
||||
console.error("初期読み込みエラー:", err);
|
||||
}
|
||||
}
|
||||
|
||||
loadTrialBalance(defaultPeriod.dateFrom, defaultPeriod.dateTo);
|
||||
});
|
||||
// 複数の方式で初期化を実行(iOS互換性を向上)
|
||||
document.addEventListener("DOMContentLoaded", initTrialBalance);
|
||||
window.addEventListener("load", initTrialBalance);
|
||||
if (document.readyState === "loading") {
|
||||
document.addEventListener("DOMContentLoaded", initTrialBalance);
|
||||
} else {
|
||||
// ページがすでに読み込まれている場合、すぐに実行
|
||||
setTimeout(initTrialBalance, 100);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user