#!/usr/bin/env python3
"""
Auto-refresh kpi_progress.json from latest ERP export (全年文件，自动识别当月)
口径：标准销售订单 + 已审核 + 非赠品 + 剔除宝锐系（erp_sales_core）
"""
import os, json
from datetime import datetime

# 允许从脚本目录直接运行或 import
import importlib.util, sys
_here = os.path.dirname(os.path.abspath(__file__))
_spec = importlib.util.spec_from_file_location('erp_sales_core', os.path.join(_here, 'erp_sales_core.py'))
core = importlib.util.module_from_spec(_spec)
_spec.loader.exec_module(core)

OUT = os.path.join(core.DATA, 'kpi_progress.json')

def main():
    fp = core.find_latest_erp()
    if not fp:
        print('No ERP file found')
        return
    monthly_total, monthly_person, monthly_dept, fname = core.aggregate(fp)
    if not monthly_total:
        print('No valid sales rows')
        return

    # 当月 = 数据里最大的月份
    cur_month = max(monthly_total.keys())
    cur_total = round(monthly_total[cur_month], 2)
    by_sp = {k: round(v, 2) for k, v in sorted(monthly_person.get(cur_month, {}).items(), key=lambda x: -x[1])}

    result = {
        'updated_at': datetime.now().strftime('%Y-%m-%dT%H:%M:%S'),
        'month': cur_month,
        'total': cur_total,
        'by_salesperson': by_sp,
        'source': 'ERP销售订单导出',
        'file': fname,
    }
    with open(OUT, 'w', encoding='utf-8') as f:
        json.dump(result, f, ensure_ascii=False, indent=2)

    print(f'✅ kpi_progress.json: {cur_month} total={cur_total/1e4:.1f}万 ({len(by_sp)}人) from {fname}')

if __name__ == '__main__':
    main()
