# 返利班现行模式(给审计) 写代码以 `返利流程.md` 为准。班次入口 `run_batch.py`。节点名 `REBATE_IMPORT` 仍叫 IMPORT,页面走细单新增,**不做 Excel**。 ## 班次 1. 领表 4 `action_code=1 AND contract_status=1 AND process_status=0`(改成 3,同一合同号整组);领表 3 只录协议行 `process_status` 0→3 2. 按合同号查返利中心,表里出现该号才算搜到 3. 勾已有总单(审批通过后已有一条,不要新增总单) 4. 补总单必填 → **卡片仍在编辑时**点总单工具栏保存 → 卡片确认 5. 细单:货品「新增」→ 货品编码三个点按表 3 `goods_id` 搜 → 货品卡片「确认 Ctrl + Enter」落到表 → 全部确认完再点货品工具栏保存 6. 总单工具栏送审;成功才写表 4 7. 同一合同一组一个结果 货品行:`load_contract_goods` 先按 `contract_no`,空则用表 4 该合同的 `oms_id` 对表 3。 ## 字段(现行) | 位置 | 字段 | 值 | | --- | --- | --- | | 总单 | 供应商编码 | 表 3 `supplier_mdm_code`,三个点搜 | | 总单 | 计划员 | 廖建琦(选择框,不要选 ID) | | 总单 | 联系人 | 苏文辉 | | 总单 | 返利合约 | 否 | | 总单 | 采购结算方式 | 电汇(不要点电汇—非直联) | | 总单 | 承付模式 | 下月N号结 | | 总单 | 承付参数 | **25**(数字框键盘输入) | | 总单 | 协议开始/结束 | 当天 | | 细单 | 货品 | 表 3 `goods_id` | | 细单 | 数量 / 含税单价 | 表 3 `qty` / `unit_price` | | 细单 | 无税单价 | `含税 / (1+税率)` | | 细单 | 承付模式 | 下月N号结 | | 细单 | 承付参数 | **25** | | 细单 | 采购结算方式 | 电汇 | | 细单 | 备注 | `oms_id` | | 细单 | 特定补偿 / 进货补偿 | 0 | | 细单 | 货源细单ID | 本期不填。弹层按联系人(苏文辉)过滤 | 落表:起草行 `contract_status=2`、`process_status=1`;送审成功每 `oms_id` 插 `action_code=2`、`agreement_status=1`,带协议总单ID / 协议细单ID;`push_status=0`。人名固定「系统管理员」。搜不到表 4 `process_status` 改回 0。 ## 修改(相对旧稿 / Excel 方案) | 项 | 旧 | 现 | | --- | --- | --- | | 细单路径 | Agents / README 写「下模板 → 填 Excel → 上传」 | 页面「新增 + 货品ID搜」。`run_import_flow` 调 `add_detail_lines_by_goods_id` | | `返利流程(1).md` | 已知/未知草稿,Excel 与页面双轨 | 废稿,指向 `返利流程.md` | | 计划员 | 映射表 / 口径:订单中心 `planner_name` | 选择框「廖建琦」,后期改回 | | 联系人 | 映射表无 | 「苏文辉」。货源弹层按此人过滤 | | 采购结算方式 | 映射表总单默认「否」、细单代码 `3` | 总单、细单都精确点「电汇」 | | 承付参数 | 「不要填 25 / 以销售定结」 | 总单、细单都填 **25** | | 关税税率 | 映射表 `0.13` | 不填 | | 税率 | 映射表固定 `0.13` | 表 3 `purchase_tax_rate`,空则 `0.13` | | 细单日期 | 映射表开始当天、结束年底 | 先用页面默认,报错再看 | | 总单保存 | 先卡片确认再保存 | 先总单工具栏保存(卡仍在编辑),再确认 | | 细单确认 | 容易点到总单「确认」 | 只点货品卡片「确认 Ctrl + Enter」,确认后核对货品表有该 `goods_id` | | 计划员弹层 | 适配器看见「货源选择」就关 | 计划员三点打开的货源层要按住再选廖建琦 | | 货品来源 | 只按表 3 `contract_no` | `contract_no` 空时用表 4 `oms_id` 对表 3 | | 落表 | (曾按行拆成功/失败,已撤回) | 同一合同一组一个结果 | ## 增加 | 项 | 落点 | | --- | --- | | 班次入口 | `run_batch.py`:查号 → 总单 → 细单新增 → 送审 → `save_group` | | 总单数字框键盘填 25 | `_fill_pay_param` | | 细单键盘填 25 | `_fill_last_detail_qty_price` / `_type_detail_field` | | 货品表核对 | `_goods_table_rows`、`_wait_goods_row` | | 原生点击 | 计划员附加按钮、总单/货品工具栏保存、卡片确认 | | 现行登记 | 本文件 | ## 代码里还留着、班次不走 `rebate_import.py` 仍有 Excel 下模板 / 填表 / 上传函数(`write_canonical_template`、`download_detail_template` 等)。`run_import_flow` 不调用它们。不要按这些函数写新逻辑。对外仍从 `rebate_flow_steps` import。 ## 下一会话(未做) 1. **货源细单ID**:三个点搜表 3 `goods_source_id`。弹层只出总单联系人(现苏文辉)名下货源,不是全局搜号。空 → 整组停、`KIND_FAIL`、不送审。不要按行一条成功两条失败。 2. **计划员**:现阶段「廖建琦」;改回表 3 `planner_name`。 口 2 / 口 4 HTTP、M5、药帮忙支付不在本包,见根 `README.md`「本期未做」。