#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""口径探查：2026/2025 前三季度 各集团金额在「严格过滤」与「不过滤单据类型」下的差异。"""
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):
    d = pd.read_excel(USR, sheet_name=sheet, header=0, engine='xlrd')
    d.columns = [str(c).strip() for c in d.columns]
    d['_d'] = pd.to_datetime(d['合同日期'], errors='coerce')
    d['_q'] = d['_d'].dt.quarter
    d['_amt'] = pd.to_numeric(d['价税合计'], errors='coerce').fillna(0)
    d['_cust'] = d['客户'].astype(str).str.strip()
    g = d['集团客户#'].fillna('').astype(str).str.strip().replace({'nan': ''})
    d['_grp'] = g.where(g != '', d['_cust'])
    return d


for sheet, yr in [('2026年销售数据', 2026), ('2025年销售数据', 2025)]:
    d = load(sheet)
    d = d[d['_q'].isin([1, 2, 3])]
    strict = d[d['单据类型'].astype(str).str.contains('标准销售订单', na=False)
               & d['单据状态'].astype(str).str.contains('已审核', na=False)
               & ~d['是否赠品'].astype(str).str.strip().isin(['是', 'Y'])
               & ~d['_cust'].str.contains('宝锐|宝泰|横琴', na=False)]
    print('=' * 80)
    print('%s 前三季度；总行 %d；严格过滤 %d 行 ¥%.2f；全量 ¥%.2f' % (yr, len(d), len(strict), strict['_amt'].sum(), d['_amt'].sum()))
    a = strict.groupby('_grp')['_amt'].sum().rename('严格')
    b = d.groupby('_grp')['_amt'].sum().rename('全量')
    m = pd.concat([a, b], axis=1).fillna(0)
    m['差'] = m['全量'] - m['严格']
    m = m.sort_values('严格', ascending=False)
    for g, r in m.iterrows():
        print('  %-28s 严格=%12.0f 全量=%12.0f 差=%10.0f' % (str(g)[:28], r['严格'], r['全量'], r['差']))
    # 单据类型分布
    print('  单据类型分布(前三季度全量):', d['单据类型'].astype(str).str.strip().value_counts().to_dict())
