#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""生成 2026-10-26—10-30 差旅费报销汇总表（草稿）。

模板：W4；保留 16–18 行公式；只清空/填写 5–10 行，不新增工作表。
已知住宿发票仅刘新元一间房的 4 张；刘子研 4 晚住宿票待补，金额不估算。
"""
import os
import shutil
import sys

HERE = os.path.dirname(os.path.abspath(__file__))
BASE = os.path.dirname(HERE)
sys.path.insert(0, os.path.join(BASE, '脚本'))
import xlsx_fill_min as X

SRC = os.path.join(BASE, '工具', '附件2-差旅费报销汇总表-2026年10月W4.xlsx')
DST = os.path.join(BASE, '工具', '附件2-差旅费报销汇总表-2026年10月W5.xlsx')
SHEET = '差旅费报销汇总表'

shutil.copy2(SRC, DST)

edits = {}
# 清空 5–15 行的填写区；不动 16–18 行公式
for r in range(5, 16):
    for c in 'ABCDEFGHIJKLMNOP':
        edits[f'{c}{r}'] = None

edits.update({
    'E2': '刘新元、刘子研',
    'K2': 5,
    'P2': '2026-11-01',

    # 10/26 珠海（明珠）→广州南→厦门北；住宿厦门（仅刘新元房票）
    'A5': 1, 'B5': '10月26', 'C5': '珠海-厦门',
    'E5': 743.00, 'I5': 25.80, 'J5': 508.30, 'K5': '刘新元、刘子研（各1间）', 'M5': 80,
    'P5': '高铁：明珠—广州南 C7648 65×2 + 广州南—厦门北 G1607 306.5×2 = 743.00；滴滴 25.80（公司→明珠站）；住宿厦门 508.30（两人两间，发票、结账单已齐）。',

    # 10/27 厦门→上海；住宿上海浦江
    'A6': 2, 'B6': '10月27', 'C6': '厦门-上海',
    'D6': 880.00, 'J6': 525.30, 'K6': '刘新元、刘子研（各1间）', 'M6': 80,
    'P6': '机票 SC2167 440×2 = 880.00；住宿上海 525.30（两人两间，发票、结账单已齐）。',

    # 10/28 上海；住宿全季虹桥
    'A7': 3, 'B7': '10月28', 'C7': '上海',
    'J7': 559.30, 'K7': '刘新元、刘子研（各1间）', 'M7': 80,
    'P7': '住宿上海全季虹桥 559.30（两人两间，发票、结账单已齐）。',

    # 10/29 上海→太仓；租车票待补；住宿太仓
    'A8': 4, 'B8': '10月29', 'C8': '上海-太仓',
    'J8': 457.30, 'K8': '刘新元、刘子研（各1间）', 'M8': 80,
    'P8': '住宿汉庭太仓 457.30（两人两间，发票、结账单已齐）；租车不纳入。',

    # 10/30 太仓→上海→珠海
    'A9': 5, 'B9': '10月30', 'C9': '太仓-上海-珠海',
    'D9': 1620.00, 'I9': 47.40, 'M9': 80,
    'P9': '机票 CZ3756 810×2 = 1,620.00；滴滴 47.40（机场→公司）。',

    # 客户招待（复星）
    'A10': 6, 'B10': '10月29', 'C10': '上海（复星客户招待）',
    'L10': 398.50,
    'P10': '星巴克 2 张：288.00 + 110.50 = 398.50；招待人数、事由、招待申请待补。',
})

filled, skipped = X.fill(SRC, DST, SHEET, edits, overwrite=True)
print('filled', len(filled), 'skipped', skipped)
print('output', DST)
print('verify', X.verify(SRC, DST, SHEET))
