# -*- coding: utf-8 -*-
"""Xuất GIA_DUNG_MOI_06.10.2026.md (format như kỳ trước) + in tổng kết biến động."""
import importlib.util, io, os

SK = r'C:\Users\admin\AppData\Local\hermes\skills\productivity\phan-tich-bang-gia\scripts\xu_ly_bang_gia.py'
spec = importlib.util.spec_from_file_location('xlg', SK)
m = importlib.util.module_from_spec(spec); spec.loader.exec_module(m)

G = r'C:\Claw 2\Nghien cuu\Tinh-Gia-Thanh\GIA-NGUYEN-LIEU'
PDF_MOI = os.path.join(G, 'GIA_DUNG_MOI_06.10.2026.pdf')
PDF_CU = os.path.join(G, 'GIA_DUNG_MOI_22.09.2026.pdf')
OUT = os.path.join(G, 'GIA_DUNG_MOI_06.10.2026.md')

items = m.parse_dungmoi(PDF_MOI)
chg = m.so_sanh_dungmoi(PDF_CU, PDF_MOI, tol=50)
tang = [c for c in chg if isinstance(c[4], (int, float)) and c[4] > 0]
giam = [c for c in chg if isinstance(c[4], (int, float)) and c[4] < 0]
moi = [c for c in chg if c[4] == 'báo giá mới']
print('mặt hàng: %d | tăng: %d | giảm: %d | báo giá mới: %d' % (len(items), len(tang), len(giam), len(moi)))

def vnd(x):
    return ('{:,.0f}'.format(x).replace(',', '.') if isinstance(x, (int, float)) else str(x))

L = []
L.append('# BÁO CÁO GIÁ DUNG MÔI — 06/10/2026')
L.append('')
L.append('> **Nguồn:** File đính kèm *"BÁO CÁO GIÁ DUNG MÔI 06.10.26"* — email Nguyễn Thị Thúy Hằng (Phòng Mua hàng), gửi **06/10/2026**.')
L.append('> **Tỷ giá áp dụng:** bảng kỳ này không nêu tỷ giá *(kỳ 22/09 có ghi giá USD trong ngoặc ở một số dòng: KRT 100 + PMA EEP 0,75–0,835 USD)*.')
L.append('> **Kỳ trước để so sánh:** 22/09/2026 *(các kỳ 29/09 không có báo cáo)*.')
L.append('')
L.append('---')
L.append('')
L.append('## Bảng giá dung môi các nhà cung cấp (VNĐ/kg)')
L.append('')
hd = ['STT', 'Tên hàng', 'Giá đang SD'] + m.NCC
L.append('| ' + ' | '.join(hd) + ' |')
L.append('|' + '|'.join([':---:'] + [':---'] * 2 + [':---:'] * len(m.NCC)) + '|')
for it in items:
    row = [it['stt'], '**%s**' % it['ten'], it['gia_sd']]
    for nc in m.NCC:
        v = it['cols'].get(nc)
        row.append(' '.join(v) if v else '')
    L.append('| ' + ' | '.join(row) + ' |')
L.append('')
L.append('---')
L.append('')
L.append('## So sánh thay đổi so với 22/09/2026')
L.append('')
if chg:
    L.append('| STT | Mặt hàng | NCC | Giá cũ 22/09 | Giá mới 06/10 | Chênh lệch |')
    L.append('|:---:|:---------|:---:|:-----------:|:-----------:|:----------:|')
    for ten, nc, ov, nv, d in sorted(chg, key=lambda x: (x[0], x[1])):
        if d == 'báo giá mới':
            L.append('| | **%s** | %s | – | **%s** | *báo giá mới* |' % (ten, nc, vnd(nv)))
        else:
            bien = '🔴 **+%s**' % vnd(abs(d)) if d > 0 else '🟢 **−%s**' % vnd(abs(d))
            L.append('| | **%s** | %s | %s | **%s** | %s |' % (ten, nc, vnd(ov), vnd(nv), bien))
else:
    L.append('*Không có mức giá nào thay đổi so với kỳ 22/09/2026.*')
L.append('')
L.append('## Tổng kết biến động')
L.append('')
L.append('- **%d mức tăng · %d mức giảm · %d báo giá mới** (so kỳ 22/09/2026).' % (len(tang), len(giam), len(moi)))
if tang:
    top = sorted(tang, key=lambda x: -x[4])[:5]
    L.append('- **Tăng mạnh nhất:** ' + ' · '.join('%s (%s) +%s' % (t[0], t[1], vnd(t[4])) for t in top))
if giam:
    top = sorted(giam, key=lambda x: x[4])[:5]
    L.append('- **Giảm mạnh nhất:** ' + ' · '.join('%s (%s) −%s' % (t[0], t[1], vnd(abs(t[4]))) for t in top))
L.append('- *(Giá in trong PDF là VNĐ/kg theo từng nhà cung cấp; ô trống = NCC không báo giá mặt hàng đó.)*')
L.append('')
io.open(OUT, 'w', encoding='utf-8', newline='').write('\n'.join(L))
print('đã ghi', os.path.basename(OUT), os.path.getsize(OUT), 'byte |', len(L), 'dòng')
print()
print('=== 8 mức tăng mạnh nhất ===')
for t in sorted(tang, key=lambda x: -x[4])[:8]:
    print('   %-30s %-12s %s → %s  (+%s)' % (t[0], t[1], vnd(t[2]), vnd(t[3]), vnd(t[4])))
print('=== 8 mức giảm mạnh nhất ===')
for t in sorted(giam, key=lambda x: x[4])[:8]:
    print('   %-30s %-12s %s → %s  (−%s)' % (t[0], t[1], vnd(t[2]), vnd(t[3]), vnd(abs(t[4]))))
print('=== báo giá mới ===')
for t in moi:
    print('   %-30s %-12s %s' % (t[0], t[1], vnd(t[3])))
