diff --git a/src/webparts/requestPortal/forms/TmcTransfer/TmcTransferForm.tsx b/src/webparts/requestPortal/forms/TmcTransfer/TmcTransferForm.tsx index 456c1e9..20656f3 100644 --- a/src/webparts/requestPortal/forms/TmcTransfer/TmcTransferForm.tsx +++ b/src/webparts/requestPortal/forms/TmcTransfer/TmcTransferForm.tsx @@ -149,10 +149,11 @@ const TmcTransferForm: React.FC = ({ if (editId || !nomenclatureId) { return; } - // Строку-источник фиксируем сразу, независимо от ответа справочника: она - // нужна при отправке для обратной записи ссылки в Dataverse. nomenclatureId - // отдельно в шапке не храним — он едет в каждой позиции ItemsJson. - setData((prev) => ({ ...prev, SourcePositionId: positionId || '' })); + // Строку-источник и склад фиксируем сразу, независимо от ответа справочника: + // строка нужна при отправке для обратной записи ссылки в Dataverse, склад — + // только справочно для пользователя (см. SourceStoreName в model.ts). + // nomenclatureId отдельно в шапке не храним — он едет в каждой позиции ItemsJson. + setData((prev) => ({ ...prev, SourcePositionId: positionId || '', SourceStoreName: storeName || '' })); let alive = true; getNomenclature(context, nomenclatureId, storeName) .then((rows) => { diff --git a/src/webparts/requestPortal/forms/TmcTransfer/load.ts b/src/webparts/requestPortal/forms/TmcTransfer/load.ts index dddfacf..1e3b99e 100644 --- a/src/webparts/requestPortal/forms/TmcTransfer/load.ts +++ b/src/webparts/requestPortal/forms/TmcTransfer/load.ts @@ -52,6 +52,7 @@ export async function loadTmcTransferRequest(itemId: number, listId?: string): P 'ContactPerson', 'ContactPhone', 'SourcePositionId', + 'SourceStoreName', 'ItemsJson', 'RequestStatus', 'RequestUniqueCode' @@ -78,6 +79,7 @@ export async function loadTmcTransferRequest(itemId: number, listId?: string): P ContactPerson: (item.ContactPerson as string) || '', ContactPhone: (item.ContactPhone as string) || '', SourcePositionId: (item.SourcePositionId as string) || '', + SourceStoreName: (item.SourceStoreName as string) || '', Items: parseItems(item.ItemsJson) }; diff --git a/src/webparts/requestPortal/forms/TmcTransfer/model.ts b/src/webparts/requestPortal/forms/TmcTransfer/model.ts index c0478e9..6b0bcad 100644 --- a/src/webparts/requestPortal/forms/TmcTransfer/model.ts +++ b/src/webparts/requestPortal/forms/TmcTransfer/model.ts @@ -61,6 +61,13 @@ export interface IFormData { * вручную в портале, без внешней ссылки. */ SourcePositionId: string; + /** + * Склад-источник — фильтр storeName из той же внешней ссылки (см. shared/routing + * и shared/dictionary/nomenclature.service). Само по себе на сохранение заявки + * не влияет — только справочная информация для заявителя/согласующего, откуда + * именно списываются ТМЦ. '' — ссылка без фильтра по складу или заявка заведена вручную. + */ + SourceStoreName: string; // Табличная часть — позиции ТМЦ (сериализуется в ItemsJson). У строк из // справочника есть nomenclatureId (см. ILineItem), у дописанных вручную — нет. @@ -107,5 +114,6 @@ export const EMPTY_DATA: IFormData = { ContactPerson: '', ContactPhone: '', SourcePositionId: '', + SourceStoreName: '', Items: [] }; diff --git a/src/webparts/requestPortal/forms/TmcTransfer/provisioning.json b/src/webparts/requestPortal/forms/TmcTransfer/provisioning.json index 7aab9cc..baa4565 100644 --- a/src/webparts/requestPortal/forms/TmcTransfer/provisioning.json +++ b/src/webparts/requestPortal/forms/TmcTransfer/provisioning.json @@ -24,6 +24,7 @@ { "internalName": "ContactPhone", "title": "Телефон исполнителя", "type": "Text" }, { "internalName": "SourcePositionId", "title": "Id строки-источника (Dataverse)", "type": "Text" }, + { "internalName": "SourceStoreName", "title": "Склад-источник (внешняя ссылка)", "type": "Text" }, { "internalName": "ItemsJson", "title": "Позиции ТМЦ (JSON)", "type": "Note" } ] diff --git a/src/webparts/requestPortal/forms/TmcTransfer/sections/HeaderSection.tsx b/src/webparts/requestPortal/forms/TmcTransfer/sections/HeaderSection.tsx index 8928aa9..38a31b1 100644 --- a/src/webparts/requestPortal/forms/TmcTransfer/sections/HeaderSection.tsx +++ b/src/webparts/requestPortal/forms/TmcTransfer/sections/HeaderSection.tsx @@ -56,6 +56,14 @@ export const HeaderSection: React.FC = ({ data, set, context, pri /> + {/* Только для заявок, открытых по внешней ссылке (см. SourceStoreName в model.ts) — + справочная информация, откуда именно списываются ТМЦ, на маршрут не влияет. */} + {data.SourceStoreName && ( + + undefined} readOnly /> + + )} + set('RequestDate', v)} />