# -*- coding: utf-8 -*-
r"""B76: gọi loader lần nữa và IN kết quả trả về (class/inserted/error/note/skip) + thử parse trực tiếp."""
import importlib.util, inspect, json, sqlite3, traceback

DB = r'C:\c\deepseek-harness\claw2-db\btchem.db'
LO = r'C:\c\deepseek-harness\claw2-db\nap_du_lieu.py'
SACH = r'C:\Claw 2\Bao cao - Hanh chinh\Bao cao lam mau\da lam sach\Tuan_41_05.10-11.10_DA-LAM-SACH.xlsx'

spec = importlib.util.spec_from_file_location('napdu', LO)
m = importlib.util.module_from_spec(spec)
spec.loader.exec_module(m)
ld = m.Loader(DB)
res = m.process_file(ld, 'mau', SACH, None)
print('  process_file ->')
for k, v in res.items():
    print('   %-10s %s' % (k, str(v)[:250]))

print()
print('  is_loaded:', ld.is_loaded(SACH, m.file_sha256(SACH)))
print()
print('  === gọi TRỰC TIẾP parse_mau_xlsx ===')
try:
    n = m.parse_mau_xlsx(ld, SACH)
    print('   parse_mau_xlsx -> inserted =', n)
except Exception as e:
    print('   LỖI:', type(e).__name__, str(e)[:300])
    traceback.print_exc()

c = sqlite3.connect('file:%s?mode=ro' % DB.replace('\\', '/'), uri=True)
print()
print('   mau_lam T41:', c.execute("select count(*) from mau_lam where tuan='T41'").fetchone()[0], '| tổng:', c.execute('select count(*) from mau_lam').fetchone()[0])
for r in c.execute('select id, substr(file_path,1,70), loai, so_dong_nap, ngay_nap, substr(ifnull(ket_qua,""),1,60) from file_loaded order by id desc limit 5'):
    print('   file_loaded id=%s | %s | %s | %s dòng | %s | %s' % r)
c.close()
