# -*- coding: utf-8 -*-
r"""B150: kiểm lại phần CẠNH TRANH (lượt 2 bắt tên không có chữ 'sơn') + các bảng có tiêu đề."""
import importlib.util

spec = importlib.util.spec_from_file_location('ta', r'C:\Claw 2\Nghien cuu\Dashboard-CSDL\tab_api.py')
ta = importlib.util.module_from_spec(spec)
spec.loader.exec_module(ta)

print('  --- TÁCH THỬ vài câu khó:')
for cau in [
    'sơn MTH sản xuất 4cont chiếm 57%. Sơn Bình Thạnh chạy 3cont chiếm 43%.',
    'Bidi paint vào làm mẫu phát triển.',
    'Sơn Vĩnh Phúc sản xuất 0,1 cont chiếm 5% đơn hàng',
    '- Mekong 1: Biochem 9cont chiếm 56%, Bình Thạnh 7cont chiếm 44%. - Mekong 3: Biochem 5cont chiếm 31%, Bình Thạnh 11cont chiếm 69%.',
    'Sơn Adora sản xuất 900 bộ ghế, sơn Polypoxy 720 bộ ghế.',
    'Nhà máy sử dụng sơn của nhiều nhà cung cấp giá rẻ.',
]:
    ds, cont, pct = ta.tach_canh_tranh(cau, {'Bidi paint'})
    print('    %-58s -> đối thủ=%s | cont=%s | mình=%s%%' % (cau[:58], ds, cont, pct))

print('\n  --- TAB SẢN XUẤT: thẻ có tiêu đề chưa?')
d = ta.api({'tab': 'san_xuat'})
thieu = [t for t in d['the'] if not t.get('tieu_de')]
print('    số thẻ:', len(d['the']), '| thiếu tiêu đề:', len(thieu))
for t in d['the']:
    if t['loai'] in ('bang',) or 'Đối thủ' in (t.get('tieu_de') or ''):
        print('    [%s] %s' % (t['loai'], t.get('tieu_de')))

print('\n  --- đối thủ theo số nhà máy (lượt 2) ---')
for t in d['the']:
    if 'Đối thủ theo số NHÀ MÁY' in (t.get('tieu_de') or ''):
        print('   ', ' · '.join('%s=%s' % (k, v) for k, v in zip(t['nhan'], t['so'])))
print('  --- cont đối thủ (chỉ nơi ghi số) ---')
for t in d['the']:
    if 'Số CONT đối thủ' in (t.get('tieu_de') or ''):
        print('   ', ' · '.join('%s=%s' % (k, v) for k, v in zip(t['nhan'], t['so'])))

print('\n  --- 6 tab: số thẻ + thẻ thiếu tiêu đề ---')
for k in ('tong_quan', 'mua_hang', 'su_co', 'mau_lam', 'san_xuat', 'kt'):
    dd = ta.api({'tab': k})
    th = [t for t in dd['the'] if not t.get('tieu_de')]
    print('    %-10s %-18s %2d thẻ | thiếu tiêu đề: %d' % (k, dd['ten_tab'], len(dd['the']), len(th)))
