修复财务页面竞态并整理采购与运输展示
This commit is contained in:
@@ -95,7 +95,7 @@ describe('finance G3/G4 page operations', () => {
|
||||
vi.mocked(createFinanceReceipt).mockReset().mockResolvedValue({ id: '801', customerId: '10001', customerName: '客户A', receivedDate: '2026-08-11', amount: 300, currency: 'CNY', paymentMethod: 'BANK_TRANSFER', voucherFileIds: ['9001'], allocationCount: 1 })
|
||||
})
|
||||
|
||||
it('loads frozen G3 detail and submits multiple selected adjustment lines', async () => {
|
||||
it('keeps issued statement history readable and ignores stale adjustment or void commands', async () => {
|
||||
const pinia = piniaWithPermissions(['platform:finance:customer-statement:list', 'platform:finance:reconciliation:adjust'])
|
||||
const router = createRouter({ history: createMemoryHistory(), routes: [
|
||||
{ path: '/finance/customer-statements', name: 'finance-customer-statements', component: FinanceCustomerStatementsView },
|
||||
@@ -105,26 +105,17 @@ describe('finance G3/G4 page operations', () => {
|
||||
const wrapper = mount(FinanceCustomerStatementsView, { attachTo: document.body, global: { plugins: [pinia, ElementPlus, router] } })
|
||||
await flushPromises()
|
||||
const vm = wrapper.vm as unknown as {
|
||||
openAdjustment(row: FinanceStatementReadModel): Promise<void>
|
||||
submitAdjustment(): Promise<void>
|
||||
adjustReason: string
|
||||
adjustLines: Array<{ selected: boolean; adjustedAmount: number; reason: string }>
|
||||
openDetail(row: FinanceStatementReadModel): Promise<void>
|
||||
handleStatementAction(command: string, row: FinanceStatementReadModel): void
|
||||
}
|
||||
|
||||
await vm.openAdjustment(statement)
|
||||
vm.adjustReason = '账期复核调整'
|
||||
vm.adjustLines[0]!.selected = true; vm.adjustLines[0]!.adjustedAmount = 90; vm.adjustLines[0]!.reason = '运费更正'
|
||||
vm.adjustLines[1]!.selected = true; vm.adjustLines[1]!.adjustedAmount = 180; vm.adjustLines[1]!.reason = '操作费更正'
|
||||
await vm.submitAdjustment()
|
||||
|
||||
vm.handleStatementAction('adjust', statement)
|
||||
vm.handleStatementAction('void', statement)
|
||||
await flushPromises()
|
||||
expect(actionReconciliationStatement).not.toHaveBeenCalled()
|
||||
await vm.openDetail(statement)
|
||||
await flushPromises()
|
||||
expect(getReconciliationStatement).toHaveBeenCalledWith('501')
|
||||
expect(actionReconciliationStatement).toHaveBeenCalledWith('501', {
|
||||
action: 'ADJUST', reason: '账期复核调整', expectedVersion: 3,
|
||||
adjustmentLines: [
|
||||
{ statementLineId: '601', adjustedAmount: 90, reason: '运费更正' },
|
||||
{ statementLineId: '602', adjustedAmount: 180, reason: '操作费更正' },
|
||||
],
|
||||
})
|
||||
expect(wrapper.text()).toContain(statement.billNo)
|
||||
}, 15_000)
|
||||
|
||||
it('loads AR linkage, uploads a voucher and allocates a real receipt to its statement', async () => {
|
||||
|
||||
Reference in New Issue
Block a user