修正
This commit is contained in:
@@ -10,7 +10,6 @@ html {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@media screen and (max-width: 767px) {
|
@media screen and (max-width: 767px) {
|
||||||
|
|
||||||
/* ── body 余白を縮小 ── */
|
/* ── body 余白を縮小 ── */
|
||||||
body {
|
body {
|
||||||
padding: 12px !important;
|
padding: 12px !important;
|
||||||
@@ -18,8 +17,12 @@ html {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* ── h1・h2 フォントサイズ ── */
|
/* ── h1・h2 フォントサイズ ── */
|
||||||
h1 { font-size: 1.35rem !important; }
|
h1 {
|
||||||
h2 { font-size: 1.1rem !important; }
|
font-size: 1.35rem !important;
|
||||||
|
}
|
||||||
|
h2 {
|
||||||
|
font-size: 1.1rem !important;
|
||||||
|
}
|
||||||
|
|
||||||
/* ================================================================
|
/* ================================================================
|
||||||
テーブル: 横スクロール
|
テーブル: 横スクロール
|
||||||
@@ -320,5 +323,4 @@ html {
|
|||||||
width: 100% !important;
|
width: 100% !important;
|
||||||
box-sizing: border-box !important;
|
box-sizing: border-box !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -863,7 +863,19 @@
|
|||||||
<div class="search-buttons">
|
<div class="search-buttons">
|
||||||
<button onclick="searchJournals()">🔍 検索</button>
|
<button onclick="searchJournals()">🔍 検索</button>
|
||||||
<button onclick="printSearchResults()">🖨️ 印刷</button>
|
<button onclick="printSearchResults()">🖨️ 印刷</button>
|
||||||
<button onclick="clearSearchConditions()" style="background: #6c757d; color: white; border: none; padding: 6px 14px; border-radius: 4px; cursor: pointer;">🔄 条件クリア</button>
|
<button
|
||||||
|
onclick="clearSearchConditions()"
|
||||||
|
style="
|
||||||
|
background: #6c757d;
|
||||||
|
color: white;
|
||||||
|
border: none;
|
||||||
|
padding: 6px 14px;
|
||||||
|
border-radius: 4px;
|
||||||
|
cursor: pointer;
|
||||||
|
"
|
||||||
|
>
|
||||||
|
🔄 条件クリア
|
||||||
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -2830,7 +2842,8 @@
|
|||||||
// 複数行フォームへのコピー
|
// 複数行フォームへのコピー
|
||||||
function copyJournalToDetailForm(data) {
|
function copyJournalToDetailForm(data) {
|
||||||
document.getElementById("detailEntryDate").value = data.entry_date;
|
document.getElementById("detailEntryDate").value = data.entry_date;
|
||||||
document.getElementById("detailDescription").value = data.description || "";
|
document.getElementById("detailDescription").value =
|
||||||
|
data.description || "";
|
||||||
|
|
||||||
// 既存行をクリア
|
// 既存行をクリア
|
||||||
document.getElementById("detailLinesTbody").innerHTML = "";
|
document.getElementById("detailLinesTbody").innerHTML = "";
|
||||||
@@ -2846,10 +2859,14 @@
|
|||||||
accountInput.dataset.accountId = acc.account_id;
|
accountInput.dataset.accountId = acc.account_id;
|
||||||
}
|
}
|
||||||
if (Number(line.debit) > 0) {
|
if (Number(line.debit) > 0) {
|
||||||
tr.querySelector(".detail-debit").value = Number(line.debit).toLocaleString();
|
tr.querySelector(".detail-debit").value = Number(
|
||||||
|
line.debit,
|
||||||
|
).toLocaleString();
|
||||||
}
|
}
|
||||||
if (Number(line.credit) > 0) {
|
if (Number(line.credit) > 0) {
|
||||||
tr.querySelector(".detail-credit").value = Number(line.credit).toLocaleString();
|
tr.querySelector(".detail-credit").value = Number(
|
||||||
|
line.credit,
|
||||||
|
).toLocaleString();
|
||||||
}
|
}
|
||||||
if (line.line_description) {
|
if (line.line_description) {
|
||||||
tr.querySelector(".detail-line-memo").value = line.line_description;
|
tr.querySelector(".detail-line-memo").value = line.line_description;
|
||||||
@@ -2879,58 +2896,121 @@
|
|||||||
|
|
||||||
// 新UIでは簡易的にフォームに反映(最初の借方行の科目 + 最初の貸方行を取引手段に設定)
|
// 新UIでは簡易的にフォームに反映(最初の借方行の科目 + 最初の貸方行を取引手段に設定)
|
||||||
if (data.lines && data.lines.length > 0) {
|
if (data.lines && data.lines.length > 0) {
|
||||||
// 借方と貸方を分類
|
// 借方と貸方を分類
|
||||||
const debitLines = data.lines.filter((l) => Number(l.debit) > 0);
|
const debitLines = data.lines.filter((l) => Number(l.debit) > 0);
|
||||||
const creditLines = data.lines.filter((l) => Number(l.credit) > 0);
|
const creditLines = data.lines.filter((l) => Number(l.credit) > 0);
|
||||||
|
|
||||||
// 仮払/仮受消費税行を除外して主要な科目を特定
|
// 仮払/仮受消費税行を除外して主要な科目を特定
|
||||||
const mainDebit = debitLines.find((l) => {
|
const mainDebit = debitLines.find((l) => {
|
||||||
const acc = accounts.find((a) => a.account_id === l.account_id);
|
const acc = accounts.find((a) => a.account_id === l.account_id);
|
||||||
return (
|
return (
|
||||||
acc &&
|
acc &&
|
||||||
!acc.account_name.includes("仮払消費税") &&
|
!acc.account_name.includes("仮払消費税") &&
|
||||||
!acc.account_name.includes("仮受消費税")
|
!acc.account_name.includes("仮受消費税")
|
||||||
|
);
|
||||||
|
});
|
||||||
|
const mainCredit = creditLines.find((l) => {
|
||||||
|
const acc = accounts.find((a) => a.account_id === l.account_id);
|
||||||
|
return (
|
||||||
|
acc &&
|
||||||
|
!acc.account_name.includes("仮払消費税") &&
|
||||||
|
!acc.account_name.includes("仮受消費税")
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
// 税額行を検出
|
||||||
|
const taxDebitLine = debitLines.find((l) => {
|
||||||
|
const acc = accounts.find((a) => a.account_id === l.account_id);
|
||||||
|
return acc && acc.account_name.includes("仮払消費税");
|
||||||
|
});
|
||||||
|
const taxCreditLine = creditLines.find((l) => {
|
||||||
|
const acc = accounts.find((a) => a.account_id === l.account_id);
|
||||||
|
return acc && acc.account_name.includes("仮受消費税");
|
||||||
|
});
|
||||||
|
|
||||||
|
if (mainDebit && mainCredit) {
|
||||||
|
// 支出パターン: 借方=科目, 貸方=取引手段
|
||||||
|
if (taxDebitLine) {
|
||||||
|
// 支出(仮払消費税あり)
|
||||||
|
document.querySelector(
|
||||||
|
'input[name="entryType"][value="expense"]',
|
||||||
|
).checked = true;
|
||||||
|
const kamokuAcc = accounts.find(
|
||||||
|
(a) => a.account_id === mainDebit.account_id,
|
||||||
);
|
);
|
||||||
});
|
const methodAcc = accounts.find(
|
||||||
const mainCredit = creditLines.find((l) => {
|
(a) => a.account_id === mainCredit.account_id,
|
||||||
const acc = accounts.find((a) => a.account_id === l.account_id);
|
|
||||||
return (
|
|
||||||
acc &&
|
|
||||||
!acc.account_name.includes("仮払消費税") &&
|
|
||||||
!acc.account_name.includes("仮受消費税")
|
|
||||||
);
|
);
|
||||||
});
|
if (kamokuAcc) {
|
||||||
|
document.getElementById("entryAccountInput").value =
|
||||||
// 税額行を検出
|
`${kamokuAcc.account_code} ${kamokuAcc.account_name}`;
|
||||||
const taxDebitLine = debitLines.find((l) => {
|
document.getElementById("entryAccountInput").dataset.accountId =
|
||||||
const acc = accounts.find((a) => a.account_id === l.account_id);
|
kamokuAcc.account_id;
|
||||||
return acc && acc.account_name.includes("仮払消費税");
|
}
|
||||||
});
|
if (methodAcc) {
|
||||||
const taxCreditLine = creditLines.find((l) => {
|
document.getElementById("entryMethodInput").value =
|
||||||
const acc = accounts.find((a) => a.account_id === l.account_id);
|
`${methodAcc.account_code} ${methodAcc.account_name}`;
|
||||||
return acc && acc.account_name.includes("仮受消費税");
|
document.getElementById("entryMethodInput").dataset.accountId =
|
||||||
});
|
methodAcc.account_id;
|
||||||
|
}
|
||||||
if (mainDebit && mainCredit) {
|
const totalAmount = Number(mainCredit.credit);
|
||||||
// 支出パターン: 借方=科目, 貸方=取引手段
|
document.getElementById("entryAmount").value =
|
||||||
if (taxDebitLine) {
|
totalAmount.toLocaleString();
|
||||||
// 支出(仮払消費税あり)
|
document.getElementById("entryTaxAmount").value = Number(
|
||||||
|
taxDebitLine.debit,
|
||||||
|
).toLocaleString();
|
||||||
|
} else if (taxCreditLine) {
|
||||||
|
// 収入(仮受消費税あり)
|
||||||
|
document.querySelector(
|
||||||
|
'input[name="entryType"][value="income"]',
|
||||||
|
).checked = true;
|
||||||
|
const kamokuAcc = accounts.find(
|
||||||
|
(a) => a.account_id === mainCredit.account_id,
|
||||||
|
);
|
||||||
|
const methodAcc = accounts.find(
|
||||||
|
(a) => a.account_id === mainDebit.account_id,
|
||||||
|
);
|
||||||
|
if (kamokuAcc) {
|
||||||
|
document.getElementById("entryAccountInput").value =
|
||||||
|
`${kamokuAcc.account_code} ${kamokuAcc.account_name}`;
|
||||||
|
document.getElementById("entryAccountInput").dataset.accountId =
|
||||||
|
kamokuAcc.account_id;
|
||||||
|
}
|
||||||
|
if (methodAcc) {
|
||||||
|
document.getElementById("entryMethodInput").value =
|
||||||
|
`${methodAcc.account_code} ${methodAcc.account_name}`;
|
||||||
|
document.getElementById("entryMethodInput").dataset.accountId =
|
||||||
|
methodAcc.account_id;
|
||||||
|
}
|
||||||
|
const totalAmount = Number(mainDebit.debit);
|
||||||
|
document.getElementById("entryAmount").value =
|
||||||
|
totalAmount.toLocaleString();
|
||||||
|
document.getElementById("entryTaxAmount").value = Number(
|
||||||
|
taxCreditLine.credit,
|
||||||
|
).toLocaleString();
|
||||||
|
} else {
|
||||||
|
// 消費税なし - 借方科目が費用/資産 → 支出、それ以外は収入
|
||||||
|
const kamokuAccD = accounts.find(
|
||||||
|
(a) => a.account_id === mainDebit.account_id,
|
||||||
|
);
|
||||||
|
const isExpense =
|
||||||
|
kamokuAccD &&
|
||||||
|
(kamokuAccD.account_code.startsWith("8") ||
|
||||||
|
kamokuAccD.account_code.startsWith("1") ||
|
||||||
|
kamokuAccD.account_code.startsWith("2") ||
|
||||||
|
kamokuAccD.account_code.startsWith("3") ||
|
||||||
|
kamokuAccD.account_code.startsWith("4"));
|
||||||
|
if (isExpense) {
|
||||||
document.querySelector(
|
document.querySelector(
|
||||||
'input[name="entryType"][value="expense"]',
|
'input[name="entryType"][value="expense"]',
|
||||||
).checked = true;
|
).checked = true;
|
||||||
const kamokuAcc = accounts.find(
|
document.getElementById("entryAccountInput").value =
|
||||||
(a) => a.account_id === mainDebit.account_id,
|
`${kamokuAccD.account_code} ${kamokuAccD.account_name}`;
|
||||||
);
|
document.getElementById("entryAccountInput").dataset.accountId =
|
||||||
|
kamokuAccD.account_id;
|
||||||
const methodAcc = accounts.find(
|
const methodAcc = accounts.find(
|
||||||
(a) => a.account_id === mainCredit.account_id,
|
(a) => a.account_id === mainCredit.account_id,
|
||||||
);
|
);
|
||||||
if (kamokuAcc) {
|
|
||||||
document.getElementById("entryAccountInput").value =
|
|
||||||
`${kamokuAcc.account_code} ${kamokuAcc.account_name}`;
|
|
||||||
document.getElementById(
|
|
||||||
"entryAccountInput",
|
|
||||||
).dataset.accountId = kamokuAcc.account_id;
|
|
||||||
}
|
|
||||||
if (methodAcc) {
|
if (methodAcc) {
|
||||||
document.getElementById("entryMethodInput").value =
|
document.getElementById("entryMethodInput").value =
|
||||||
`${methodAcc.account_code} ${methodAcc.account_name}`;
|
`${methodAcc.account_code} ${methodAcc.account_name}`;
|
||||||
@@ -2938,116 +3018,47 @@
|
|||||||
"entryMethodInput",
|
"entryMethodInput",
|
||||||
).dataset.accountId = methodAcc.account_id;
|
).dataset.accountId = methodAcc.account_id;
|
||||||
}
|
}
|
||||||
const totalAmount = Number(mainCredit.credit);
|
document.getElementById("entryAmount").value = Number(
|
||||||
document.getElementById("entryAmount").value =
|
mainDebit.debit,
|
||||||
totalAmount.toLocaleString();
|
|
||||||
document.getElementById("entryTaxAmount").value = Number(
|
|
||||||
taxDebitLine.debit,
|
|
||||||
).toLocaleString();
|
).toLocaleString();
|
||||||
} else if (taxCreditLine) {
|
} else {
|
||||||
// 収入(仮受消費税あり)
|
|
||||||
document.querySelector(
|
document.querySelector(
|
||||||
'input[name="entryType"][value="income"]',
|
'input[name="entryType"][value="income"]',
|
||||||
).checked = true;
|
).checked = true;
|
||||||
const kamokuAcc = accounts.find(
|
const kamokuAccC = accounts.find(
|
||||||
(a) => a.account_id === mainCredit.account_id,
|
(a) => a.account_id === mainCredit.account_id,
|
||||||
);
|
);
|
||||||
const methodAcc = accounts.find(
|
if (kamokuAccC) {
|
||||||
(a) => a.account_id === mainDebit.account_id,
|
|
||||||
);
|
|
||||||
if (kamokuAcc) {
|
|
||||||
document.getElementById("entryAccountInput").value =
|
document.getElementById("entryAccountInput").value =
|
||||||
`${kamokuAcc.account_code} ${kamokuAcc.account_name}`;
|
`${kamokuAccC.account_code} ${kamokuAccC.account_name}`;
|
||||||
document.getElementById(
|
document.getElementById(
|
||||||
"entryAccountInput",
|
"entryAccountInput",
|
||||||
).dataset.accountId = kamokuAcc.account_id;
|
).dataset.accountId = kamokuAccC.account_id;
|
||||||
}
|
}
|
||||||
if (methodAcc) {
|
document.getElementById("entryMethodInput").value =
|
||||||
document.getElementById("entryMethodInput").value =
|
`${kamokuAccD.account_code} ${kamokuAccD.account_name}`;
|
||||||
`${methodAcc.account_code} ${methodAcc.account_name}`;
|
document.getElementById("entryMethodInput").dataset.accountId =
|
||||||
document.getElementById(
|
kamokuAccD.account_id;
|
||||||
"entryMethodInput",
|
document.getElementById("entryAmount").value = Number(
|
||||||
).dataset.accountId = methodAcc.account_id;
|
mainDebit.debit,
|
||||||
}
|
|
||||||
const totalAmount = Number(mainDebit.debit);
|
|
||||||
document.getElementById("entryAmount").value =
|
|
||||||
totalAmount.toLocaleString();
|
|
||||||
document.getElementById("entryTaxAmount").value = Number(
|
|
||||||
taxCreditLine.credit,
|
|
||||||
).toLocaleString();
|
).toLocaleString();
|
||||||
} else {
|
|
||||||
// 消費税なし - 借方科目が費用/資産 → 支出、それ以外は収入
|
|
||||||
const kamokuAccD = accounts.find(
|
|
||||||
(a) => a.account_id === mainDebit.account_id,
|
|
||||||
);
|
|
||||||
const isExpense =
|
|
||||||
kamokuAccD &&
|
|
||||||
(kamokuAccD.account_code.startsWith("8") ||
|
|
||||||
kamokuAccD.account_code.startsWith("1") ||
|
|
||||||
kamokuAccD.account_code.startsWith("2") ||
|
|
||||||
kamokuAccD.account_code.startsWith("3") ||
|
|
||||||
kamokuAccD.account_code.startsWith("4"));
|
|
||||||
if (isExpense) {
|
|
||||||
document.querySelector(
|
|
||||||
'input[name="entryType"][value="expense"]',
|
|
||||||
).checked = true;
|
|
||||||
document.getElementById("entryAccountInput").value =
|
|
||||||
`${kamokuAccD.account_code} ${kamokuAccD.account_name}`;
|
|
||||||
document.getElementById(
|
|
||||||
"entryAccountInput",
|
|
||||||
).dataset.accountId = kamokuAccD.account_id;
|
|
||||||
const methodAcc = accounts.find(
|
|
||||||
(a) => a.account_id === mainCredit.account_id,
|
|
||||||
);
|
|
||||||
if (methodAcc) {
|
|
||||||
document.getElementById("entryMethodInput").value =
|
|
||||||
`${methodAcc.account_code} ${methodAcc.account_name}`;
|
|
||||||
document.getElementById(
|
|
||||||
"entryMethodInput",
|
|
||||||
).dataset.accountId = methodAcc.account_id;
|
|
||||||
}
|
|
||||||
document.getElementById("entryAmount").value = Number(
|
|
||||||
mainDebit.debit,
|
|
||||||
).toLocaleString();
|
|
||||||
} else {
|
|
||||||
document.querySelector(
|
|
||||||
'input[name="entryType"][value="income"]',
|
|
||||||
).checked = true;
|
|
||||||
const kamokuAccC = accounts.find(
|
|
||||||
(a) => a.account_id === mainCredit.account_id,
|
|
||||||
);
|
|
||||||
if (kamokuAccC) {
|
|
||||||
document.getElementById("entryAccountInput").value =
|
|
||||||
`${kamokuAccC.account_code} ${kamokuAccC.account_name}`;
|
|
||||||
document.getElementById(
|
|
||||||
"entryAccountInput",
|
|
||||||
).dataset.accountId = kamokuAccC.account_id;
|
|
||||||
}
|
|
||||||
document.getElementById("entryMethodInput").value =
|
|
||||||
`${kamokuAccD.account_code} ${kamokuAccD.account_name}`;
|
|
||||||
document.getElementById(
|
|
||||||
"entryMethodInput",
|
|
||||||
).dataset.accountId = kamokuAccD.account_id;
|
|
||||||
document.getElementById("entryAmount").value = Number(
|
|
||||||
mainDebit.debit,
|
|
||||||
).toLocaleString();
|
|
||||||
}
|
|
||||||
document.getElementById("entryTaxRate").value = "0";
|
|
||||||
document.getElementById("entryTaxAmount").value = "";
|
|
||||||
}
|
}
|
||||||
|
document.getElementById("entryTaxRate").value = "0";
|
||||||
|
document.getElementById("entryTaxAmount").value = "";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// ページ上部の仕訳入力フォームにスクロール
|
// ページ上部の仕訳入力フォームにスクロール
|
||||||
window.scrollTo({ top: 0, behavior: "smooth" });
|
window.scrollTo({ top: 0, behavior: "smooth" });
|
||||||
|
|
||||||
const dateInput = document.getElementById("entryDate");
|
const dateInput = document.getElementById("entryDate");
|
||||||
dateInput.focus();
|
dateInput.focus();
|
||||||
|
|
||||||
showAlert(
|
showAlert(
|
||||||
`仕訳を複製しました。\n\n※ このコピーは新規仕訳として独立した記録になります。\n※ 日付と摘要を必要に応じて修正してから登録してください。`,
|
`仕訳を複製しました。\n\n※ このコピーは新規仕訳として独立した記録になります。\n※ 日付と摘要を必要に応じて修正してから登録してください。`,
|
||||||
"success",
|
"success",
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// --------------------------------------------------
|
// --------------------------------------------------
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1783,14 +1783,18 @@
|
|||||||
// 源泉税控除対象人数を計算(給与と同じロジック)
|
// 源泉税控除対象人数を計算(給与と同じロジック)
|
||||||
const bDependentCount = employee.dependents
|
const bDependentCount = employee.dependents
|
||||||
? employee.dependents.filter((d) => {
|
? employee.dependents.filter((d) => {
|
||||||
if (d.valid_to && new Date(d.valid_to) < new Date()) return false;
|
if (d.valid_to && new Date(d.valid_to) < new Date())
|
||||||
|
return false;
|
||||||
if (!d.birth_date) return false;
|
if (!d.birth_date) return false;
|
||||||
const birthDate = new Date(d.birth_date);
|
const birthDate = new Date(d.birth_date);
|
||||||
const targetYear = bonus.bonus_year;
|
const targetYear = bonus.bonus_year;
|
||||||
const yearEnd = new Date(targetYear, 11, 31);
|
const yearEnd = new Date(targetYear, 11, 31);
|
||||||
let age = yearEnd.getFullYear() - birthDate.getFullYear();
|
let age = yearEnd.getFullYear() - birthDate.getFullYear();
|
||||||
const monthDiff = yearEnd.getMonth() - birthDate.getMonth();
|
const monthDiff = yearEnd.getMonth() - birthDate.getMonth();
|
||||||
if (monthDiff < 0 || (monthDiff === 0 && yearEnd.getDate() < birthDate.getDate())) {
|
if (
|
||||||
|
monthDiff < 0 ||
|
||||||
|
(monthDiff === 0 && yearEnd.getDate() < birthDate.getDate())
|
||||||
|
) {
|
||||||
age--;
|
age--;
|
||||||
}
|
}
|
||||||
return age >= 16;
|
return age >= 16;
|
||||||
@@ -1969,10 +1973,10 @@
|
|||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>賞与種別</label>
|
<label>賞与種別</label>
|
||||||
<select name="bonus_type">
|
<select name="bonus_type">
|
||||||
<option value="夏季賞与" ${bonus.bonus_type === '夏季賞与' ? 'selected' : ''}>夏季賞与</option>
|
<option value="夏季賞与" ${bonus.bonus_type === "夏季賞与" ? "selected" : ""}>夏季賞与</option>
|
||||||
<option value="冬季賞与" ${bonus.bonus_type === '冬季賞与' ? 'selected' : ''}>冬季賞与</option>
|
<option value="冬季賞与" ${bonus.bonus_type === "冬季賞与" ? "selected" : ""}>冬季賞与</option>
|
||||||
<option value="決算賞与" ${bonus.bonus_type === '決算賞与' ? 'selected' : ''}>決算賞与</option>
|
<option value="決算賞与" ${bonus.bonus_type === "決算賞与" ? "selected" : ""}>決算賞与</option>
|
||||||
<option value="その他" ${bonus.bonus_type === 'その他' ? 'selected' : ''}>その他</option>
|
<option value="その他" ${bonus.bonus_type === "その他" ? "selected" : ""}>その他</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -2451,7 +2455,7 @@
|
|||||||
const bonusPaymentDate = bonus.payment_date
|
const bonusPaymentDate = bonus.payment_date
|
||||||
? (() => {
|
? (() => {
|
||||||
const d = new Date(bonus.payment_date);
|
const d = new Date(bonus.payment_date);
|
||||||
return `${d.getFullYear()}年${String(d.getMonth()+1).padStart(2,'0')}月${String(d.getDate()).padStart(2,'0')}日`;
|
return `${d.getFullYear()}年${String(d.getMonth() + 1).padStart(2, "0")}月${String(d.getDate()).padStart(2, "0")}日`;
|
||||||
})()
|
})()
|
||||||
: `${bonus.bonus_year}年${String(bonus.bonus_month).padStart(2, "0")}月${getLastDayOfMonth(bonus.bonus_year, bonus.bonus_month)}日`;
|
: `${bonus.bonus_year}年${String(bonus.bonus_month).padStart(2, "0")}月${getLastDayOfMonth(bonus.bonus_year, bonus.bonus_month)}日`;
|
||||||
if (currentKey && currentKey !== currentKey_new) {
|
if (currentKey && currentKey !== currentKey_new) {
|
||||||
|
|||||||
@@ -118,16 +118,17 @@
|
|||||||
>
|
>
|
||||||
<div class="icon">📄</div>
|
<div class="icon">📄</div>
|
||||||
<h2>源泉徴収票</h2>
|
<h2>源泉徴収票</h2>
|
||||||
<p>給与所得の源泉徴収票を発行します(本人用・区役所用・税務署用 各1部)</p>
|
<p>
|
||||||
|
給与所得の源泉徴収票を発行します(本人用・区役所用・税務署用 各1部)
|
||||||
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div
|
<div class="menu-card" onclick="location.href = 'nenkin-portal.html'">
|
||||||
class="menu-card"
|
|
||||||
onclick="location.href = 'nenkin-portal.html'"
|
|
||||||
>
|
|
||||||
<div class="icon">📋</div>
|
<div class="icon">📋</div>
|
||||||
<h2>社会保険電子文書</h2>
|
<h2>社会保険電子文書</h2>
|
||||||
<p>日本年金機構からの電子文書(保険料通知・賞与内訳等)を管理します</p>
|
<p>
|
||||||
|
日本年金機構からの電子文書(保険料通知・賞与内訳等)を管理します
|
||||||
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user