fix(intake): save pricing workspace explicitly

This commit is contained in:
WuYongJie 2026-07-13 10:56:58 +08:00
parent bae1563a98
commit 89da950c07
2 changed files with 44 additions and 1 deletions

View File

@ -234,7 +234,10 @@ export function useProductWorkflowRowController({
const saved = await persistEditedProduct({
successMessage: "核价数据已保存,正在推送聚水潭",
errorFallbackMessage: "推送前保存核价数据失败",
overrides: { pricingRows: currentPricingRows },
overrides: {
pricingRows: currentPricingRows,
workspaceCategory: PRODUCT_PRICING_WORKSPACE_CATEGORY,
},
});
if (!saved) return;
@ -300,6 +303,7 @@ export function useProductWorkflowRowController({
errorFallbackMessage: "聚水潭推送成功,但保存录入状态失败",
overrides: {
pricingRows: nextPricingRows,
workspaceCategory: PRODUCT_PRICING_WORKSPACE_CATEGORY,
...(nextProductPricingCanBeConfirmed
? {
documentWorkspaceConfirmations: nextConfirmations,

View File

@ -116,6 +116,45 @@ describe('IntakeNonIntegratedScopeService node permissions', () => {
expect(() => service.assertCanPushProductPricing(otherRecord, externalUser)).toThrow()
})
it('reports unsaved product factory target SKU rows as validation failures', async () => {
const externalUser: AuthUser = {
id: 'external-user-id',
email: 'external@example.local',
name: 'ExternalUser',
role: 'USER',
status: 'ACTIVE',
businessRoles: ['EXTERNAL_INTAKE'],
departmentPaths: [],
}
const ownRecord = {
id: 'own-record',
createdBy: 'external-user-id',
designer: '',
operator: '',
purchaser: '',
visibility: 'DEPARTMENT',
departmentId: null,
teamId: null,
payload: {},
profile: null,
skuItems: [
{
skuItemId: 'saved-sku-id',
purchaseOwner: 'ExternalUser',
},
],
}
await expect(
service.assertCanWriteRecord(
ownRecord,
externalUser,
'\u4ea7\u54c1\u5b9a\u5382',
['saved-sku-id', 'unsaved-sku-id'],
),
).rejects.toThrow('SKU 尚未保存')
})
it('uses stored payload owner fields when structured profile data is missing', async () => {
const record = {
id: 'payload-backed-owner-record',