# -*- coding: utf-8 -*-
"""BẢNG GIÁ (bản 2) — bổ sung TÊN GỌI VẬT TƯ kèm MÃ VẬT TƯ như trên phiếu đặt hàng."""
import io, json, os, shutil, subprocess
from docx import Document
from docx.shared import Pt, Cm
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(1.8)

h = doc.add_paragraph()
h.alignment = WD_ALIGN_PARAGRAPH.CENTER
r = h.add_run('BẢNG GIÁ VẬT TƯ')
r.bold = True
r.font.size = Pt(16)
p = doc.add_paragraph()
p.alignment = WD_ALIGN_PARAGRAPH.CENTER
p.add_run('Theo đơn đặt hàng số MPO/PU338-9 26 — ngày 18.09.26').font.size = Pt(11)

t = doc.add_table(rows=1, cols=5)
t.style = 'Table Grid'
t.alignment = WD_TABLE_ALIGNMENT.CENTER
hdr = ['STT', 'TÊN GỌI VẬT TƯ', 'MÃ VẬT TƯ', 'ĐÓ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(10.5)
    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['ma_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(10.5)
        if i in (0, 2, 3, 4):
            cells[i].paragraphs[0].alignment = WD_ALIGN_PARAGRAPH.CENTER
        if it['stt'] == 5:
            run.bold = True

widths = [Cm(1.1), Cm(4.1), Cm(4.3), Cm(2.6), Cm(3.5)]
for row in t.rows:
    for i, w in enumerate(widths):
        row.cells[i].width = w

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('tên gọi và mã vật tư ghi theo đúng phiếu đặt hàng; dòng số 5 đang được đề nghị đổi từ dung môi '
           'T-331-SCPF sang dung môi T-331 (cùng đơn giá 56.500 đ/kg).')

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

# PDF
html = ['<html><head><meta charset="utf-8"><style>',
        '@page{size:A4;margin:15mm 15mm}body{font-family:"Times New Roman",serif;font-size:11pt}',
        'h1{font-size:16pt;text-align:center;margin:0 0 2mm}h2{font-size:11pt;text-align:center;font-weight:normal;margin:0 0 6mm}',
        'table{width:100%;border-collapse:collapse}th,td{border:.7pt solid #333;padding:1.8mm 2mm}',
        'th{background:#eee}td.c{text-align:center}.b td{font-weight:bold}.foot{margin-top:6mm}</style></head><body>',
        '<h1>BẢNG GIÁ VẬT TƯ</h1><h2>Theo đơn đặt hàng số MPO/PU338-9 26 — ngày 18.09.26</h2>',
        '<table><tr><th style="width:7%">STT</th><th style="width:26%">TÊN GỌI VẬT TƯ</th><th style="width:27%">MÃ VẬT TƯ</th>'
        '<th style="width:17%">ĐÓNG GÓI</th><th style="width:23%">ĐƠN GIÁ (VNĐ/kg)</th></tr>']
for it in d['dong_hang']:
    html.append('<tr%s><td class="c">%d</td><td>%s</td><td class="c">%s</td><td class="c">%s</td><td class="c">%s</td></tr>'
                % (' class="b"' if it['stt'] == 5 else '', it['stt'], it['ten_hang'], it['ma_hang'],
                   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> tên gọi và mã vật tư ghi theo đúng phiếu; dòng số 5 đang được đề nghị đổi từ dung môi '
            'T-331-SCPF sang dung môi T-331 (cùng đơn giá 56.500 đ/kg).</div></body></html>'
            % vnd(d['tong_tien_hang_tren_phieu']))
php = os.path.join(DIR, 'BANG_GIA_VAT_TU_PO_MPO-PU338-9-26.html')
io.open(php, 'w', encoding='utf-8').write('\n'.join(html))
chrome = next((c for c in [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')]
               if os.path.exists(c)), None)
pdf = os.path.join(DIR, 'BANG_GIA_VAT_TU_PO_MPO-PU338-9-26.pdf')
if chrome:
    subprocess.run([chrome, '--headless=new', '--disable-gpu', '--no-sandbox',
                    '--user-data-dir=' + os.path.join(DIR, 'chrome_tmp_gia2'),
                    '--print-to-pdf=' + pdf, '--no-pdf-header-footer', 'file:///' + php.replace('\\', '/')],
                   capture_output=True, timeout=120)
    print('PDF:', pdf, os.path.getsize(pdf) if os.path.exists(pdf) else 'LỖI', 'byte')

GUI = os.path.expandvars(r'%LOCALAPPDATA%\hermes\cache\gui_muahang')
os.makedirs(GUI, exist_ok=True)
shutil.copy2(out, os.path.join(GUI, 'BANG_GIA_VAT_TU_PO_MPO-PU338-9-26.docx'))
print('đã copy sang', GUI)
