增加公司选项
This commit is contained in:
@@ -666,6 +666,52 @@ describe('ReservationManualInvoiceView', () => {
|
|||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it('prefills KANGLER TRAVEL directory data and submits its stable recipient codes', async () => {
|
||||||
|
vi.mocked(service.generateManualReservationInvoice).mockResolvedValue(createResult())
|
||||||
|
const wrapper = mountView()
|
||||||
|
|
||||||
|
await wrapper.find('[data-testid="recipient-company-code"]').setValue('KANGLER_TRAVEL')
|
||||||
|
|
||||||
|
expect((wrapper.find('[data-testid="recipient-contact-id"]').element as HTMLSelectElement).value).toBe(
|
||||||
|
'KANGLER_TRAVEL_KHUN_DOW',
|
||||||
|
)
|
||||||
|
expect((wrapper.find('[data-testid="recipient-company-input"]').element as HTMLInputElement).value).toBe(
|
||||||
|
'KANGLER TRAVEL GROUP CO.,LTD',
|
||||||
|
)
|
||||||
|
expect((wrapper.find('[data-testid="recipient-attention-input"]').element as HTMLInputElement).value).toBe(
|
||||||
|
'Khun Dow',
|
||||||
|
)
|
||||||
|
expect((wrapper.find('[data-testid="recipient-address"]').element as HTMLTextAreaElement).value).toBe(
|
||||||
|
'เลขที่290/27, Soi Ladprao 84, Wangthonglang,Bangkok,10310',
|
||||||
|
)
|
||||||
|
expect((wrapper.find('[data-testid="recipient-telephone"]').element as HTMLInputElement).value).toBe(
|
||||||
|
'081-1237170',
|
||||||
|
)
|
||||||
|
expect((wrapper.find('[data-testid="recipient-email"]').element as HTMLInputElement).value).toBe(
|
||||||
|
'kanglertravel.op91@gmail.com',
|
||||||
|
)
|
||||||
|
|
||||||
|
await fillMinimumInvoiceForm(wrapper)
|
||||||
|
await wrapper.find('[data-testid="manual-invoice-submit"]').trigger('click')
|
||||||
|
await flushPromises()
|
||||||
|
|
||||||
|
expect(service.generateManualReservationInvoice).toHaveBeenCalledWith(
|
||||||
|
expect.objectContaining({
|
||||||
|
invoice_payload: expect.objectContaining({
|
||||||
|
recipient: expect.objectContaining({
|
||||||
|
company_code: 'KANGLER_TRAVEL',
|
||||||
|
contact_id: 'KANGLER_TRAVEL_KHUN_DOW',
|
||||||
|
company: 'KANGLER TRAVEL GROUP CO.,LTD',
|
||||||
|
attention: 'Khun Dow',
|
||||||
|
address: 'เลขที่290/27, Soi Ladprao 84, Wangthonglang,Bangkok,10310',
|
||||||
|
telephone: '081-1237170',
|
||||||
|
email: 'kanglertravel.op91@gmail.com',
|
||||||
|
}),
|
||||||
|
}),
|
||||||
|
}),
|
||||||
|
)
|
||||||
|
})
|
||||||
|
|
||||||
it('downloads the generated PDF through a browser blob URL', async () => {
|
it('downloads the generated PDF through a browser blob URL', async () => {
|
||||||
vi.mocked(service.generateManualReservationInvoice).mockResolvedValue(createResult())
|
vi.mocked(service.generateManualReservationInvoice).mockResolvedValue(createResult())
|
||||||
const fetchMock = vi.fn().mockResolvedValue({
|
const fetchMock = vi.fn().mockResolvedValue({
|
||||||
|
|||||||
@@ -909,6 +909,19 @@ const recipientCompanies: RecipientCompanySeed[] = [
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
company_code: 'KANGLER_TRAVEL',
|
||||||
|
company: 'KANGLER TRAVEL GROUP CO.,LTD',
|
||||||
|
contacts: [
|
||||||
|
{
|
||||||
|
contact_id: 'KANGLER_TRAVEL_KHUN_DOW',
|
||||||
|
attention: 'Khun Dow',
|
||||||
|
address: 'เลขที่290/27, Soi Ladprao 84, Wangthonglang,Bangkok,10310',
|
||||||
|
telephone: '081-1237170',
|
||||||
|
email: 'kanglertravel.op91@gmail.com',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
{
|
{
|
||||||
company_code: 'HANATOUR',
|
company_code: 'HANATOUR',
|
||||||
company: 'HANATOUR TD CO., LTD.',
|
company: 'HANATOUR TD CO., LTD.',
|
||||||
|
|||||||
@@ -448,7 +448,7 @@ M009 后端 CP2 已实现:页面可不依赖订单或任务,用户手工填
|
|||||||
- 从任务进入时,后续可以使用 `GET /api/reservation/tasks/{taskId}` 的 `fields[]`、草稿或确认 payload 预填;从订单进入时,需要明确选择具体任务或提示仅使用订单摘要,避免一个订单多任务时字段来源不清。
|
- 从任务进入时,后续可以使用 `GET /api/reservation/tasks/{taskId}` 的 `fields[]`、草稿或确认 payload 预填;从订单进入时,需要明确选择具体任务或提示仅使用订单摘要,避免一个订单多任务时字段来源不清。
|
||||||
- Company、Attention、Address、Tel、Email、Booking Date 第一阶段可以按“选择 + Manual 手填”控件处理。
|
- Company、Attention、Address、Tel、Email、Booking Date 第一阶段可以按“选择 + Manual 手填”控件处理。
|
||||||
- Company、Attention、Address、Tel、Email 是一组收件方联系人档案,不是五个互相独立字段;选择 Company 后应刷新 Attention 候选,选择 Attention 后应带出 Address、Tel、Email。Booking Date 展示在同一区域,但不属于联系人档案,应作为 `document.booking_date` 独立提交。
|
- Company、Attention、Address、Tel、Email 是一组收件方联系人档案,不是五个互相独立字段;选择 Company 后应刷新 Attention 候选,选择 Attention 后应带出 Address、Tel、Email。Booking Date 展示在同一区域,但不属于联系人档案,应作为 `document.booking_date` 独立提交。
|
||||||
- 第一阶段已确认六组客户 / 旅行社种子数据:`LIAN_TAI` / `LIAN TAI TRAVEL (THAILAND) CO., LTD.` + `Khun Ann`;`QBD` / `Q.B.D. TRAVEL GROUP CO., LTD` + `Jitdanun Panaphuchong`;`MING_SONG` / `MING SONG CO.LTD` + `KHUN JIN`;`TEIGER_TRAVEL` / `TEIGER TRAVEL GROUP CO.,LTD` + `Khun Nutkritta Upamai (Kwan)`;`CLOVER_HOLIDAY` / `CLOVER HOLIDAY` + `KHUN JANE`;`HANATOUR` / `HANATOUR TD CO., LTD.` + 7 个联系人。完整数据以 `docs/project/requirements/M009-manual-invoice-generation-v1.md` 为准。
|
- 第一阶段已确认七组客户 / 旅行社种子数据:`LIAN_TAI` / `LIAN TAI TRAVEL (THAILAND) CO., LTD.` + `Khun Ann`;`QBD` / `Q.B.D. TRAVEL GROUP CO., LTD` + `Jitdanun Panaphuchong`;`MING_SONG` / `MING SONG CO.LTD` + `KHUN JIN`;`TEIGER_TRAVEL` / `TEIGER TRAVEL GROUP CO.,LTD` + `Khun Nutkritta Upamai (Kwan)`;`CLOVER_HOLIDAY` / `CLOVER HOLIDAY` + `KHUN JANE`;`KANGLER_TRAVEL` / `KANGLER TRAVEL GROUP CO.,LTD` + `Khun Dow`;`HANATOUR` / `HANATOUR TD CO., LTD.` + 7 个联系人。完整数据以 `docs/project/requirements/M009-manual-invoice-generation-v1.md` 为准。
|
||||||
- Room Type、Room Rate、Extra Bed 建议也预留“选择 + 可手填 / 可覆盖”能力,后续接 PMS 房型、Rate Code 或价格配置。
|
- Room Type、Room Rate、Extra Bed 建议也预留“选择 + 可手填 / 可覆盖”能力,后续接 PMS 房型、Rate Code 或价格配置。
|
||||||
- Room Rate / 费用明细 Rate 第一阶段只校验必填、数字格式和非负数,允许 `0`;Quantity 和 Nights 仍必须大于 `0`。
|
- Room Rate / 费用明细 Rate 第一阶段只校验必填、数字格式和非负数,允许 `0`;Quantity 和 Nights 仍必须大于 `0`。
|
||||||
- No.of Night(s) 前端默认按 `Departure Date - Arrival Date` 自动填入第一条费用明细 Night(s),用户手工修改后保留用户输入,不再因日期变化覆盖。
|
- No.of Night(s) 前端默认按 `Departure Date - Arrival Date` 自动填入第一条费用明细 Night(s),用户手工修改后保留用户输入,不再因日期变化覆盖。
|
||||||
|
|||||||
@@ -116,6 +116,7 @@
|
|||||||
| `MING_SONG` | `MING SONG CO.LTD` | `MING_SONG_KHUN_JIN` | `KHUN JIN` | `290 Soi Lat Phrao 94 (Panjamit), Phlapphla Subdistrict, Wang Thonglang District, Bangkok, TH, 10310` | `098-2519896` | `taiziyoutravel@gmail.com` |
|
| `MING_SONG` | `MING SONG CO.LTD` | `MING_SONG_KHUN_JIN` | `KHUN JIN` | `290 Soi Lat Phrao 94 (Panjamit), Phlapphla Subdistrict, Wang Thonglang District, Bangkok, TH, 10310` | `098-2519896` | `taiziyoutravel@gmail.com` |
|
||||||
| `TEIGER_TRAVEL` | `TEIGER TRAVEL GROUP CO.,LTD` | `TEIGER_TRAVEL_KHUN_NUTKRITTA_UPAMAI` | `Khun Nutkritta Upamai (Kwan)` | `20,22 Soi Rinrada,Srinakarin, Pattanakarn,Bangkok,TH, 10250` | `063-516-8294` | `nutkritta.upamai@gmail.com` |
|
| `TEIGER_TRAVEL` | `TEIGER TRAVEL GROUP CO.,LTD` | `TEIGER_TRAVEL_KHUN_NUTKRITTA_UPAMAI` | `Khun Nutkritta Upamai (Kwan)` | `20,22 Soi Rinrada,Srinakarin, Pattanakarn,Bangkok,TH, 10250` | `063-516-8294` | `nutkritta.upamai@gmail.com` |
|
||||||
| `CLOVER_HOLIDAY` | `CLOVER HOLIDAY` | `CLOVER_HOLIDAY_KHUN_JANE` | `KHUN JANE` | `290 SOI Lat Phrao 94 (Panjamit), Phlapphla Subdistrict, 555,555/1 Moo 1, Na Jomtien, Sattahip` | `083-1470352` | `longtai.maleemalee@gmail.com` |
|
| `CLOVER_HOLIDAY` | `CLOVER HOLIDAY` | `CLOVER_HOLIDAY_KHUN_JANE` | `KHUN JANE` | `290 SOI Lat Phrao 94 (Panjamit), Phlapphla Subdistrict, 555,555/1 Moo 1, Na Jomtien, Sattahip` | `083-1470352` | `longtai.maleemalee@gmail.com` |
|
||||||
|
| `KANGLER_TRAVEL` | `KANGLER TRAVEL GROUP CO.,LTD` | `KANGLER_TRAVEL_KHUN_DOW` | `Khun Dow` | `เลขที่290/27, Soi Ladprao 84, Wangthonglang,Bangkok,10310` | `081-1237170` | `kanglertravel.op91@gmail.com` |
|
||||||
| `HANATOUR` | `HANATOUR TD CO., LTD.` | `HANATOUR_WICHIENPRAKARN` | `Wichienprakarn, Nuanphae, Khun.` | `HanaTour Bldg, 41,Insadong 5-gil, Jongno-gu, KR` | `066 124 - 7297` | `HI219@hanatour.com` |
|
| `HANATOUR` | `HANATOUR TD CO., LTD.` | `HANATOUR_WICHIENPRAKARN` | `Wichienprakarn, Nuanphae, Khun.` | `HanaTour Bldg, 41,Insadong 5-gil, Jongno-gu, KR` | `066 124 - 7297` | `HI219@hanatour.com` |
|
||||||
| `HANATOUR` | `HANATOUR TD CO., LTD.` | `HANATOUR_PHONGBUPPA` | `Phongbuppa, Buppachat` | `HanaTour Bldg, 41,Insadong 5-gil, Jongno-gu, KR` | `096 051 3587` | `HI223@hanatour.com` |
|
| `HANATOUR` | `HANATOUR TD CO., LTD.` | `HANATOUR_PHONGBUPPA` | `Phongbuppa, Buppachat` | `HanaTour Bldg, 41,Insadong 5-gil, Jongno-gu, KR` | `096 051 3587` | `HI223@hanatour.com` |
|
||||||
| `HANATOUR` | `HANATOUR TD CO., LTD.` | `HANATOUR_KANG_SUNG_HWA` | `Kang,Sung Hwa` | `HanaTour Bldg, 41,Insadong 5-gil, Jongno-gu, KR` | `82 051 804 0707` | `k8040707@nave.com` |
|
| `HANATOUR` | `HANATOUR TD CO., LTD.` | `HANATOUR_KANG_SUNG_HWA` | `Kang,Sung Hwa` | `HanaTour Bldg, 41,Insadong 5-gil, Jongno-gu, KR` | `82 051 804 0707` | `k8040707@nave.com` |
|
||||||
|
|||||||
Reference in New Issue
Block a user