完善空运锁舱与海运报价单单选回填,并增强模板预览与协同字段盖写。
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -17,6 +17,7 @@ from agent.policy import inquiry_copy as copy
|
||||
from agent.schema.quote_adjust import (
|
||||
AdjustExtract,
|
||||
AdjustItem,
|
||||
adjustable_rows,
|
||||
apply_adjust,
|
||||
effective_quote,
|
||||
extract_adjust,
|
||||
@@ -196,6 +197,47 @@ class QuoteAdjustTests(unittest.TestCase):
|
||||
self.assertEqual(names["箱单费"], "210.00")
|
||||
self.assertEqual(got.quote["fee_total_polCostItems"], "1344.00")
|
||||
|
||||
def test_sea_pol_subtotal_and_total_up_ten_percent(self) -> None:
|
||||
"""协同话术:始发港费用小计 + 费用合计 各提升 10%。"""
|
||||
src = {
|
||||
"currency": "CNY",
|
||||
"total": "14300",
|
||||
"fee_lines": [
|
||||
{"name": "操作费", "amount": "1220", "currency": "CNY"},
|
||||
{"name": "海运费", "amount": "USD 1250", "currency": "USD"},
|
||||
],
|
||||
"polCostItems": [
|
||||
{"name": "操作费", "amount": "1220", "currency": "CNY"},
|
||||
{"name": "箱单费", "amount": "50", "currency": "CNY"},
|
||||
],
|
||||
"oceanCostItems": [
|
||||
{"name": "海运费", "amount": "1250", "currency": "USD"},
|
||||
],
|
||||
"podCostItems": [
|
||||
{"name": "操作费", "amount": "240", "currency": "USD"},
|
||||
],
|
||||
"fee_total_polCostItems": "2335",
|
||||
"fee_total_oceanCostItems": "8778.75",
|
||||
"fee_total_podCostItems": "2985",
|
||||
}
|
||||
names = [str(r.get("name") or "") for r in adjustable_rows(src)]
|
||||
text = "将始发港费用小计提升10%\n费用合计提升10%"
|
||||
ext = extract_adjust(text, fee_names=names, allow_model=False)
|
||||
self.assertTrue(ext.is_adjust)
|
||||
fee_names = [x.fee_name for x in ext.items]
|
||||
self.assertIn("始发港费用小计", fee_names)
|
||||
self.assertIn("费用合计", fee_names)
|
||||
# 即使模型误标 wants_total,有点名费目时也不能只改合计
|
||||
ext.wants_total = True
|
||||
got = apply_adjust(src, ext, business_line="SEA")
|
||||
self.assertTrue(got.ok)
|
||||
self.assertEqual(got.quote["fee_total_polCostItems"], "2568.50")
|
||||
self.assertEqual(got.quote["total"], "15730.00")
|
||||
body = copy.adjust_group_body(got.quote, business_line="SEA")
|
||||
self.assertIn("始发港费用小计", body)
|
||||
self.assertIn("海运费小计", body)
|
||||
self.assertIn("目的港费用小计", body)
|
||||
|
||||
def test_same_fee_name_keeps_its_own_amount(self) -> None:
|
||||
src = {
|
||||
"currency": "USD",
|
||||
|
||||
Reference in New Issue
Block a user