#!/usr/bin/env python3
"""生成 erp_amount.json：ERP 金额按天/按月聚合（供订单管理页按周/月/季/年统计）
口径与 erp_sales_core 一致：标准销售订单 + 已审核 + 非赠品 + 剔除宝锐系
"""
import os, json, importlib.util
from datetime import datetime

_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, 'erp_amount.json')


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

    result = {
        'updated_at': datetime.now().strftime('%Y-%m-%dT%H:%M:%S'),
        'daily': daily_total,
        'daily_person': daily_person,
        'monthly': monthly_total,
        'monthly_person': monthly_person,
        'monthly_dept': monthly_dept,
        'customer_monthly': customer_monthly,
        'source': 'ERP销售订单导出',
        'file': fname,
    }
    with open(OUT, 'w', encoding='utf-8') as f:
        json.dump(result, f, ensure_ascii=False, indent=2)

    total_year = round(sum(monthly_total.values()), 2)
    print(f'✅ erp_amount.json: {len(daily_total)}天, 全年={total_year/1e4:.1f}万 from {fname}')
    # 打印各月金额供核对
    for m in sorted(monthly_total):
        print(f'  {m}: {monthly_total[m]/1e4:.1f}万')


if __name__ == '__main__':
    main()
