Files
njts-accounting-core/check_salary_bonus.py
2026-05-14 22:02:06 +09:00

66 lines
2.5 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import psycopg2
conn = psycopg2.connect(host='192.168.0.61', port=55432, dbname='njts_acct', user='njts_app', password='njts_app2025')
cur = conn.cursor()
cur.execute("""
SELECT a.account_code, a.account_name,
COALESCE(SUM(jl.debit),0) AS debit,
COALESCE(SUM(jl.credit),0) AS credit,
COALESCE(SUM(jl.debit),0) - COALESCE(SUM(jl.credit),0) AS balance
FROM accounts a
JOIN journal_lines jl ON a.account_id = jl.account_id
JOIN journal_entries je ON jl.journal_entry_id = je.journal_entry_id
WHERE je.is_latest = true AND je.is_deleted = false
AND je.entry_date >= '2025-06-01' AND je.entry_date <= '2025-12-31'
AND a.account_type = 'expense'
GROUP BY a.account_id, a.account_code, a.account_name
HAVING COALESCE(SUM(jl.debit),0) + COALESCE(SUM(jl.credit),0) > 0
ORDER BY a.account_code
""")
rows = cur.fetchall()
print("=== 費用科目 残高試算表2025年6月〜12月===")
print(f"{'科目CD':<6} {'科目名':<15} {'期間借方':>12} {'期間貸方':>12} {'残高':>12}")
print("-" * 62)
total_bal = 0
for r in rows:
print(f"{r[0]:<6} {r[1]:<15} {r[2]:>12,.0f} {r[3]:>12,.0f} {r[4]:>12,.0f}")
total_bal += r[4]
print("-" * 62)
print(f"{'費用合計':<22} {total_bal:>12,.0f}")
cur.execute("""
SELECT COALESCE(SUM(jl.credit),0) - COALESCE(SUM(jl.debit),0)
FROM journal_lines jl
JOIN accounts a ON jl.account_id = a.account_id
JOIN journal_entries je ON jl.journal_entry_id = je.journal_entry_id
WHERE je.is_latest = true AND je.is_deleted = false
AND je.entry_date >= '2025-06-01' AND je.entry_date <= '2025-12-31'
AND a.account_type = 'revenue'
""")
total_rev = cur.fetchone()[0]
print()
print(f"収益合計 : {total_rev:>12,.0f}")
print(f"当期純損益 : {total_rev - total_bal:>12,.0f}")
conn.close()
cur.execute("""
SELECT je.entry_date, je.description, jl.debit, jl.credit, jl.line_description
FROM journal_entries je
JOIN journal_lines jl ON je.journal_entry_id = jl.journal_entry_id
JOIN accounts a ON jl.account_id = a.account_id
WHERE je.is_latest = true AND je.is_deleted = false
AND je.entry_date >= '2025-06-01' AND je.entry_date <= '2025-12-31'
AND a.account_code = '813'
ORDER BY je.entry_date
""")
rows = cur.fetchall()
print()
print('=== 813給料手当 の仕訳明細 ===')
for r in rows:
desc = str(r[4]) if r[4] else ''
print(f' {r[0]} {str(r[1])[:45]:<45} 借:{r[2] or 0:>10,.0f} 貸:{r[3] or 0:>10,.0f} {desc}')
conn.close()