✨ 새로운 기능 - 입고장 목록 조회 (날짜/공급업체 필터링) - 입고장 상세 보기 (모달 팝업) - 입고장 삭제 (재고 미사용시만 가능) - 입고장 라인별 수정 API 📊 화면 구성 1. 입고장 목록 테이블 - 입고일, 공급업체, 품목수, 총수량, 총금액 - 상세보기, 삭제 버튼 2. 입고장 필터링 - 시작일/종료일 선택 - 공급업체별 조회 🔧 백엔드 API - GET /api/purchase-receipts - 입고장 목록 - GET /api/purchase-receipts/<id> - 입고장 상세 - PUT /api/purchase-receipts/<id>/lines/<line_id> - 라인 수정 - DELETE /api/purchase-receipts/<id> - 입고장 삭제 🛡️ 안전장치 - 이미 조제에 사용된 재고는 수정/삭제 불가 - 재고 원장에 모든 변동사항 기록 🤖 Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
46 lines
1.4 KiB
Python
46 lines
1.4 KiB
Python
import sqlite3
|
|
import json
|
|
|
|
conn = sqlite3.connect('database/kdrug.db')
|
|
conn.row_factory = sqlite3.Row
|
|
cursor = conn.cursor()
|
|
|
|
cursor.execute("""
|
|
SELECT
|
|
pr.receipt_id,
|
|
pr.receipt_date,
|
|
pr.receipt_no,
|
|
pr.total_amount,
|
|
pr.source_file,
|
|
pr.created_at,
|
|
s.name as supplier_name,
|
|
s.supplier_id,
|
|
COUNT(prl.line_id) as line_count,
|
|
SUM(prl.quantity_g) as total_quantity
|
|
FROM purchase_receipts pr
|
|
JOIN suppliers s ON pr.supplier_id = s.supplier_id
|
|
LEFT JOIN purchase_receipt_lines prl ON pr.receipt_id = prl.receipt_id
|
|
GROUP BY pr.receipt_id
|
|
LIMIT 1
|
|
""")
|
|
|
|
row = cursor.fetchone()
|
|
if row:
|
|
print("Row keys:", row.keys())
|
|
receipt = dict(row)
|
|
for key, value in receipt.items():
|
|
print(f"{key}: {value} (type: {type(value).__name__})")
|
|
|
|
# 타입 변환 시도
|
|
if isinstance(receipt.get('receipt_date'), bytes):
|
|
receipt['receipt_date'] = receipt['receipt_date'].decode('utf-8')
|
|
elif receipt.get('receipt_date'):
|
|
receipt['receipt_date'] = str(receipt['receipt_date'])
|
|
|
|
if isinstance(receipt.get('created_at'), bytes):
|
|
receipt['created_at'] = receipt['created_at'].decode('utf-8')
|
|
elif receipt.get('created_at'):
|
|
receipt['created_at'] = str(receipt['created_at'])
|
|
|
|
print("\nAfter conversion:")
|
|
print(json.dumps(receipt, indent=2)) |