修正
This commit is contained in:
@@ -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)
|
||||
|
||||
25
backend/sql/update_parent_entry_id.sql
Normal file
25
backend/sql/update_parent_entry_id.sql
Normal 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 '[逆仕訳]%';
|
||||
Reference in New Issue
Block a user