feat: показ склада-источника в СЗ на перемещение ТМЦ по внешней ссылке
Tests / frontend-test (push) Successful in 1m16s
Tests / frontend-test (push) Successful in 1m16s
This commit is contained in:
@@ -149,10 +149,11 @@ const TmcTransferForm: React.FC<IRequestFormProps> = ({
|
||||
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) => {
|
||||
|
||||
@@ -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)
|
||||
};
|
||||
|
||||
|
||||
@@ -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: []
|
||||
};
|
||||
|
||||
@@ -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" }
|
||||
]
|
||||
|
||||
@@ -56,6 +56,14 @@ export const HeaderSection: React.FC<ISectionProps> = ({ data, set, context, pri
|
||||
/>
|
||||
</FormField>
|
||||
|
||||
{/* Только для заявок, открытых по внешней ссылке (см. SourceStoreName в model.ts) —
|
||||
справочная информация, откуда именно списываются ТМЦ, на маршрут не влияет. */}
|
||||
{data.SourceStoreName && (
|
||||
<FormField label="Склад-источник" htmlFor="SourceStoreName">
|
||||
<TextInput id="SourceStoreName" value={data.SourceStoreName} onChange={() => undefined} readOnly />
|
||||
</FormField>
|
||||
)}
|
||||
|
||||
<FormField label="Дата" htmlFor="RequestDate">
|
||||
<TextInput id="RequestDate" type="date" value={data.RequestDate} onChange={(v) => set('RequestDate', v)} />
|
||||
</FormField>
|
||||
|
||||
Reference in New Issue
Block a user