This commit is contained in:
admin
2026-01-15 17:34:26 +09:00
parent 6c5e8593fb
commit 24c04e0d29
3 changed files with 84 additions and 18 deletions

View File

@@ -39,7 +39,8 @@ def get_journal_entries(
from_date: date = None,
to_date: date = None,
keyword: str = None,
account_id: int = None
account_id: int = None,
include_history: bool = False
):
"""
仕訳一覧を検索して取得
@@ -47,20 +48,44 @@ def get_journal_entries(
with get_connection() as conn:
with conn.cursor() as cur:
# クエリ構築
sql = """
SELECT
je.journal_entry_id,
je.entry_date,
je.description,
je.fiscal_year,
COALESCE(SUM(jl.debit), 0) as debit_total,
COALESCE(SUM(jl.credit), 0) as credit_total
FROM journal_entries je
LEFT JOIN journal_lines jl ON je.journal_entry_id = jl.journal_entry_id
WHERE je.is_deleted = false
"""
params = []
if include_history:
# 修正履歴を含むすべてのバージョンを表示
sql = """
SELECT
je.journal_entry_id,
je.entry_date,
je.description,
je.fiscal_year,
je.version,
COALESCE(SUM(jl.debit), 0) as debit_total,
COALESCE(SUM(jl.credit), 0) as credit_total
FROM journal_entries je
LEFT JOIN journal_lines jl ON je.journal_entry_id = jl.journal_entry_id
WHERE je.is_deleted = false
"""
params = []
else:
# 最新バージョンのみ表示parent_entry_idを持つ古い仕訳と逆仕訳を除外
sql = """
SELECT
je.journal_entry_id,
je.entry_date,
je.description,
je.fiscal_year,
je.version,
COALESCE(SUM(jl.debit), 0) as debit_total,
COALESCE(SUM(jl.credit), 0) as credit_total
FROM journal_entries je
LEFT JOIN journal_lines jl ON je.journal_entry_id = jl.journal_entry_id
WHERE je.is_deleted = false
AND je.description NOT LIKE %s
AND je.journal_entry_id NOT IN (
SELECT parent_entry_id
FROM journal_entries
WHERE parent_entry_id IS NOT NULL
)
"""
params = ['%[逆仕訳]%']
if from_date:
sql += " AND je.entry_date >= %s"
@@ -83,8 +108,8 @@ def get_journal_entries(
params.append(account_id)
sql += """
GROUP BY je.journal_entry_id, je.entry_date, je.description, je.fiscal_year
ORDER BY je.entry_date DESC, je.journal_entry_id DESC
GROUP BY je.journal_entry_id, je.entry_date, je.description, je.fiscal_year, je.version
ORDER BY je.entry_date DESC, je.journal_entry_id DESC, je.version DESC
"""
cur.execute(sql, params)

View File

@@ -0,0 +1,25 @@
-- 修正後の仕訳に対して、元の仕訳IDをparent_entry_idに設定
-- ステップ1: 【修正後】の仕訳を確認
SELECT
je_modified.journal_entry_id as modified_id,
je_modified.description as modified_desc,
je_original.journal_entry_id as original_id,
je_original.description as original_desc
FROM journal_entries je_modified
LEFT JOIN journal_entries je_original
ON REPLACE(je_modified.description, '【修正後】', '') = je_original.description
AND je_modified.description LIKE '【修正後】%'
AND je_original.description NOT LIKE '【修正後】%'
AND je_original.description NOT LIKE '[逆仕訳]%'
WHERE je_modified.description LIKE '【修正後】%'
ORDER BY je_modified.journal_entry_id;
-- ステップ2: 確認後、以下のUPDATE文を実行
UPDATE journal_entries
SET parent_entry_id = je_original.journal_entry_id
FROM journal_entries je_original
WHERE REPLACE(journal_entries.description, '【修正後】', '') = je_original.description
AND journal_entries.description LIKE '【修正後】%'
AND je_original.description NOT LIKE '【修正後】%'
AND je_original.description NOT LIKE '[逆仕訳]%';