# -*- coding: utf-8 -*-
"""Lập BẢNG GIÁ chi tiết từ phiếu đặt hàng MPO/PU338-9 26 — CHỈ tên sản phẩm và giá.
Xuất DOCX + PDF (PDF để xem nhanh trên điện thoại)."""
import io, json, os, subprocess
from docx import Document
from docx.shared import Pt, Cm, RGBColor
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.enum.table import WD_TABLE_ALIGNMENT

DIR = r'C:\Claw 2\Bao cao - Hanh chinh\bao cao mua hang\Phieu-dat-hang-2026-10'
d = json.load(io.open(os.path.join(DIR, 'PO_MPO-PU338-9-26.json'), encoding='utf-8'))


def vnd(x):
    return '' if x in (None, '') else '{:,}'.format(int(x)).replace(',', '.')


doc = Document()
st = doc.styles['Normal']
st.font.name = 'Times New Roman'
st.font.size = Pt(11.5)
for s in doc.sections:
    s.top_margin = s.bottom_margin = Cm(1.6)
    s.left_margin = s.right_margin = Cm(2.0)

h = doc.add_paragraph()
h.alignment = WD_ALIGN_PARAGRAPH.CENTER
r = h.add_run('BẢNG GIÁ SẢN PHẨM')
r.bold = True
r.font.size = Pt(16)
p = doc.add_paragraph()
p.alignment = WD_ALIGN_PARAGRAPH.CENTER
r = p.add_run('Theo đơn đặt hàng số %s — ngày %s' % (d['so_po'].split(' (')[0], '18.09.26'))
r.font.size = Pt(11)

t = doc.add_table(rows=1, cols=4)
t.style = 'Table Grid'
t.alignment = WD_TABLE_ALIGNMENT.CENTER
hdr = ['STT', 'TÊN SẢN PHẨM', 'ĐÓNG GÓI', 'ĐƠN GIÁ (VNĐ/kg)']
for i, x in enumerate(hdr):
    c = t.rows[0].cells[i]
    c.text = ''
    run = c.paragraphs[0].add_run(x)
    run.bold = True
    run.font.size = Pt(11)
    c.paragraphs[0].alignment = WD_ALIGN_PARAGRAPH.CENTER

for it in d['dong_hang']:
    cells = t.add_row().cells
    vals = [str(it['stt']), it['ten_hang'], it['dong_goi'], vnd(it['don_gia'])]
    for i, v in enumerate(vals):
        cells[i].text = ''
        run = cells[i].paragraphs[0].add_run(v)
        run.font.size = Pt(11)
        if i in (0, 3):
            cells[i].paragraphs[0].alignment = WD_ALIGN_PARAGRAPH.CENTER
        if it['stt'] == 5:
            run.bold = True

for row in t.rows:
    row.cells[0].width = Cm(1.2)
    row.cells[1].width = Cm(7.4)
    row.cells[2].width = Cm(3.4)
    row.cells[3].width = Cm(4.0)

p = doc.add_paragraph()
p.add_run('Tổng tiền hàng theo phiếu: ').bold = True
p.add_run(vnd(d['tong_tien_hang_tren_phieu']) + ' VNĐ')
p2 = doc.add_paragraph()
p2.add_run('Ghi chú: ').bold = True
p2.add_run('đơn giá giữ nguyên theo phiếu đặt hàng; dòng số 5 (T-331-SCPF) đang được đề nghị đổi sang dung môi T-331.')

out_docx = os.path.join(DIR, 'BANG_GIA_PO_MPO-PU338-9-26.docx')
doc.save(out_docx)
print('DOCX:', out_docx, os.path.getsize(out_docx), 'byte')

# ---- PDF (Chrome headless từ HTML đơn giản) ----
html = ['<html><head><meta charset="utf-8"><style>',
        '@page{size:A4;margin:16mm 18mm}body{font-family:"Times New Roman",serif;font-size:12pt}',
        'h1{font-size:16pt;text-align:center;margin:0 0 2mm}h2{font-size:11.5pt;text-align:center;font-weight:normal;margin:0 0 6mm}',
        'table{width:100%;border-collapse:collapse}th,td{border:.7pt solid #333;padding:2mm 2.5mm}',
        'th{background:#eee;font-size:11.5pt}td.c{text-align:center}.b{font-weight:bold}',
        '.foot{margin-top:6mm;font-size:11.5pt}</style></head><body>',
        '<h1>BẢNG GIÁ SẢN PHẨM</h1><h2>Theo đơn đặt hàng số %s — ngày 18.09.26</h2>' % d['so_po'].split(' (')[0],
        '<table><tr><th style="width:8%">STT</th><th style="width:44%">TÊN SẢN PHẨM</th><th style="width:22%">ĐÓNG GÓI</th><th style="width:26%">ĐƠN GIÁ (VNĐ/kg)</th></tr>']
for it in d['dong_hang']:
    cls = ' class="b"' if it['stt'] == 5 else ''
    html.append('<tr%s><td class="c">%d</td><td>%s</td><td class="c">%s</td><td class="c">%s</td></tr>'
                % (cls, it['stt'], it['ten_hang'], it['dongo'] if False else it['dong_goi'], vnd(it['don_gia'])))
html.append('</table><div class="foot"><b>Tổng tiền hàng theo phiếu:</b> %s VNĐ<br>'
            '<b>Ghi chú:</b> đơn giá giữ nguyên theo phiếu đặt hàng; dòng số 5 (T-331-SCPF) đang được đề nghị đổi sang dung môi T-331.</div>'
            % vnd(d['tong_tien_hang_tren_phieu']))
html.append('</body></html>')
php = os.path.join(DIR, 'BANG_GIA_PO_MPO-PU338-9-26.html')
io.open(php, 'w', encoding='utf-8').write('\n'.join(html))

CAND = [r'C:\Program Files\Google\Chrome\Application\chrome.exe',
        r'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe',
        os.path.expandvars(r'%LOCALAPPDATA%\Google\Chrome\Application\chrome.exe')]
chrome = next((c for c in CAND if os.path.exists(c)), None)
pdf = os.path.join(DIR, 'BANG_GIA_PO_MPO-PU338-9-26.pdf')
if chrome:
    r = subprocess.run([chrome, '--headless=new', '--disable-gpu', '--no-sandbox',
                        '--user-data-dir=' + os.path.join(DIR, 'chrome_tmp_gia'),
                        '--print-to-pdf=' + pdf, '--no-pdf-header-footer',
                        'file:///' + php.replace('\\', '/')], capture_output=True, text=True, timeout=120)
    print('PDF:', pdf, os.path.getsize(pdf) if os.path.exists(pdf) else 'LỖI', 'byte')
else:
    print('không thấy chrome')

# ---- gửi: copy DOCX vào thư mục gửi ----
import shutil
GUI = os.path.expandvars(r'%LOCALAPPDATA%\hermes\cache\gui_muahang')
os.makedirs(GUI, exist_ok=True)
shutil.copy2(out_docx, os.path.join(GUI, 'BANG_GIA_PO_MPO-PU338-9-26.docx'))
print('đã copy DOCX sang', GUI)
