#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""未填货号明细 + 重点货号物料名称核对。"""
import os
import pandas as pd

USR = os.path.expanduser('~/.hermes/profiles/zone-b/cache/documents/doc_6f16ee249d8e_刘子研三季度数据-截止至9.30(1).xls')


def load(sheet, yr):
    d = pd.read_excel(USR, sheet_name=sheet, header=0, engine='xlrd')
    d.columns = [str(c).strip() for c in d.columns]
    hk = '货号#' if '货号#' in d.columns else '货号'
    d['_sku'] = d[hk].fillna('（未填货号）').astype(str).str.strip().replace({'': '（未填货号）', 'nan': '（未填货号）'})
    d['_d'] = pd.to_datetime(d['合同日期'], errors='coerce')
    d['_q'] = d['_d'].dt.quarter
    d['_amt'] = pd.to_numeric(d['价税合计'], errors='coerce').fillna(0)
    g = d['集团客户#'].fillna('').astype(str).str.strip().replace({'nan': ''})
    d['_grp'] = g.where(g != '', d['客户'].astype(str).str.strip())
    d = d[d['_q'].isin([1, 2, 3])].copy()
    d['年份'] = yr
    return d


d26, d25 = load('2026年销售数据', 2026), load('2025年销售数据', 2025)
allr = pd.concat([d25, d26])

print('== 未填货号 明细 ==')
u = allr[allr['_sku'] == '（未填货号）']
print(u.groupby(['年份', '_grp'])['_amt'].sum().to_string())
for _, r in u.iterrows():
    print('  [%s] %s %s %s | 数量=%s 单价=%s 额=%.0f | %s' % (
        r['年份'], r['单据编号'], str(r['_grp'])[:12], str(r['_sku']), r.get('销售数量'), r.get('含税单价'), r['_amt'],
        str(r.get('物料名称'))[:60]))

print('\n== 重点集团 货号 x 物料名称（两年合计额 top）==')
for g in ['丽珠集团', '复星集团', '佰奥莱博集团', '海尔施集团', '东方基因集团', '天隆集团', '杭州迪安生物技术有限公司', '深圳市新产业生物医学工程股份有限公司', '苏州华益美生物科技有限公司']:
    sub = allr[allr['_grp'] == g]
    t = sub.groupby('_sku').agg(额=('_amt', 'sum'), 名=('物料名称', 'first')).sort_values('额', ascending=False).head(8)
    print('\n▶ %s' % g)
    for sku, r in t.iterrows():
        print('   %-30s %10.0f  %s' % (str(sku)[:30], r['额'], str(r['名'])[:52]))
