Update wehago matching logic and exclude reports

This commit is contained in:
b17301
2026-07-03 09:07:04 +09:00
parent a09190ecd3
commit da073ad6ef
62 changed files with 36940 additions and 1554 deletions
@@ -0,0 +1,43 @@
from __future__ import annotations
import argparse
import json
import sys
from pathlib import Path
sys.path.insert(0, str(Path(__file__).resolve().parents[1]))
from main import engine
from wehago_compare import activate_erp_voucher_existence_snapshot, init_wehago_compare_db
def parse_args() -> argparse.Namespace:
parser = argparse.ArgumentParser(
description=(
"이미 적재된 Hanmac ERP 전표 원천(source_file_id)을 최신 전표 존재 스냅샷으로 활성화합니다. "
"WEHAGO anchor 매칭은 이 스냅샷에 실제 존재하는 Hanmac draft만 확정 후보로 사용합니다."
)
)
parser.add_argument("--year", type=int, required=True, help="스냅샷을 활성화할 회계연도")
parser.add_argument("--source-file-id", type=int, required=True, help="wehago_source_files.id")
parser.add_argument("--label", default="", help="운영자가 식별할 수 있는 스냅샷 설명")
return parser.parse_args()
def main() -> int:
args = parse_args()
init_wehago_compare_db(engine)
with engine.begin() as conn:
result = activate_erp_voucher_existence_snapshot(
conn,
args.year,
source_file_id=args.source_file_id,
source_label=args.label,
snapshot_mode="full",
)
print(json.dumps(result, ensure_ascii=False, indent=2))
return 0
if __name__ == "__main__":
raise SystemExit(main())