后台成本价、销售价、利润点按费用逐行展示,费用合计用报价官方总价。选完线路只关页面。报价单文件名带上模板名,空运起运地和转人工跟对应工单走。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-10-05 12:33:34 +08:00
co-authored by Cursor
parent 7c77e45e03
commit e95e8869a6
30 changed files with 1926 additions and 75 deletions
+14 -1
View File
@@ -113,12 +113,25 @@ class AirFieldContractTests(unittest.TestCase):
}
)
self.assertNotIn("工单号", text)
self.assertIn("起运地(非必填):", text)
self.assertNotIn("起运港(非必填)", text)
self.assertLess(text.index("起运地(非必填):"), text.index("目的地(必填):克拉克"))
self.assertIn("目的地(必填):克拉克", text)
self.assertIn("起运港(非必填):", text)
self.assertIn("货源地(非必填):", text)
self.assertIn("贸易条款(非必填):", text)
self.assertIn(copy.AIR_CONFIRM_TAIL, text)
def test_clarify_puts_origin_above_destination(self) -> None:
text = copy.ask_clarify(
facts={},
missing_keys=["目的港", "品名"],
transport_mode="空运",
)
self.assertIn("1.起运地(非必填):\n(如:南京)", text)
self.assertIn("2.目的地(必填):\n(如:吉隆坡)", text)
self.assertLess(text.index("起运地(非必填)"), text.index("目的地(必填)"))
self.assertNotIn("起运港(非必填)", text)
def test_empty_origin_confirm_then_quote(self) -> None:
flow = AirTextInquiryFlow(MemoryLedger())
replies: list[str] = []