- 개발/테스트 스크립트를 dev_scripts/ 폴더로 이동 - 스크린샷을 screenshots/ 폴더로 이동 - 백업 파일 보존 (.backup) - 처방 관련 추가 스크립트 포함 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
51 lines
1.6 KiB
Python
51 lines
1.6 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
|
|
import sqlite3
|
|
|
|
conn = sqlite3.connect('database/kdrug.db')
|
|
cursor = conn.cursor()
|
|
|
|
print("=== purchase_receipts 테이블 구조 ===")
|
|
cursor.execute("PRAGMA table_info(purchase_receipts)")
|
|
columns = cursor.fetchall()
|
|
for col in columns:
|
|
print(f" {col[1]}: {col[2]}")
|
|
|
|
print("\n=== purchase_receipt_lines 테이블 구조 ===")
|
|
cursor.execute("PRAGMA table_info(purchase_receipt_lines)")
|
|
columns = cursor.fetchall()
|
|
for col in columns:
|
|
print(f" {col[1]}: {col[2]}")
|
|
|
|
print("\n=== 입고장 데이터 샘플 ===")
|
|
cursor.execute("""
|
|
SELECT pr.receipt_id, pr.receipt_number, pr.receipt_date,
|
|
COUNT(prl.line_id) as line_count,
|
|
SUM(prl.quantity_g) as total_quantity,
|
|
SUM(prl.total_price) as total_amount
|
|
FROM purchase_receipts pr
|
|
LEFT JOIN purchase_receipt_lines prl ON pr.receipt_id = prl.receipt_id
|
|
GROUP BY pr.receipt_id
|
|
LIMIT 5
|
|
""")
|
|
rows = cursor.fetchall()
|
|
for row in rows:
|
|
print(f" 입고장 {row[0]}: {row[1]} ({row[2]})")
|
|
print(f" - 항목수: {row[3]}개, 총량: {row[4]}g, 총액: ₩{row[5]:,.0f}")
|
|
|
|
print("\n=== inventory_lots의 receipt_line_id 연결 확인 ===")
|
|
cursor.execute("""
|
|
SELECT
|
|
COUNT(*) as total_lots,
|
|
SUM(CASE WHEN receipt_line_id IS NOT NULL THEN 1 ELSE 0 END) as matched_lots,
|
|
SUM(CASE WHEN receipt_line_id IS NULL THEN 1 ELSE 0 END) as unmatched_lots
|
|
FROM inventory_lots
|
|
WHERE is_depleted = 0
|
|
""")
|
|
result = cursor.fetchone()
|
|
print(f" 전체 LOT: {result[0]}개")
|
|
print(f" 입고장 연결된 LOT: {result[1]}개")
|
|
print(f" 입고장 연결 안된 LOT: {result[2]}개")
|
|
|
|
conn.close() |