@snabcentr/client-core 3.20.1 → 3.21.0-profstroy
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/catalog/dto/sc-product.d.ts +7 -0
- package/config/sc-i-update-interval.d.ts +12 -0
- package/esm2022/auth/services/sc-auth.service.mjs +3 -2
- package/esm2022/catalog/classes/sc-catalog-item.mjs +2 -2
- package/esm2022/catalog/dto/sc-product.mjs +13 -1
- package/esm2022/config/sc-i-update-interval.mjs +1 -1
- package/esm2022/helpers/index.mjs +2 -1
- package/esm2022/helpers/sc-date-helper.mjs +23 -0
- package/esm2022/helpers/sc-units-helper.mjs +3 -2
- package/esm2022/order/classes/index.mjs +3 -1
- package/esm2022/order/classes/sc-order-draft-actualization.mjs +46 -0
- package/esm2022/order/classes/sc-order-draft-short.mjs +7 -2
- package/esm2022/order/classes/sc-order-draft.mjs +15 -3
- package/esm2022/order/classes/sc-order-item.mjs +23 -1
- package/esm2022/order/classes/sc-order-short.mjs +3 -1
- package/esm2022/order/classes/sc-profstroy-order-item.mjs +88 -0
- package/esm2022/order/enums/index.mjs +2 -1
- package/esm2022/order/enums/sc-order-draft-actualization-status.mjs +24 -0
- package/esm2022/order/internal/index.mjs +6 -1
- package/esm2022/order/internal/sc-i-new-profstroy-order-draft-request.mjs +2 -0
- package/esm2022/order/internal/sc-i-order-draft-actualization.mjs +2 -0
- package/esm2022/order/internal/sc-i-order-draft-file.mjs +2 -0
- package/esm2022/order/internal/sc-i-order-draft-short.mjs +1 -1
- package/esm2022/order/internal/sc-i-order-draft.mjs +1 -1
- package/esm2022/order/internal/sc-i-order-short.mjs +1 -1
- package/esm2022/order/internal/sc-i-profstroy-order-item.mjs +2 -0
- package/esm2022/order/internal/sc-i-profstroy-product-stub.mjs +2 -0
- package/esm2022/order/services/sc-order-drafts.service.mjs +122 -11
- package/esm2022/public-api.mjs +2 -1
- package/esm2022/ssr-cache/classes/index.mjs +2 -0
- package/esm2022/ssr-cache/classes/sc-ssr-response-cache.mjs +100 -0
- package/esm2022/ssr-cache/index.mjs +6 -0
- package/esm2022/ssr-cache/interfaces/index.mjs +3 -0
- package/esm2022/ssr-cache/interfaces/sc-i-ssr-response-cache-settings.mjs +2 -0
- package/esm2022/ssr-cache/interfaces/sc-i-ssr-response-cache-stats.mjs +2 -0
- package/esm2022/ssr-cache/internal/is-ssr-response-cacheable.mjs +25 -0
- package/esm2022/ssr-cache/internal/sc-i-ssr-cached-response.mjs +2 -0
- package/esm2022/ssr-cache/sc-ssr-response-cache.backend.mjs +71 -0
- package/esm2022/ssr-cache/sc-ssr-response-cache.providers.mjs +12 -0
- package/esm2022/ssr-cache/tokens/index.mjs +3 -0
- package/esm2022/ssr-cache/tokens/sc-ssr-response-cache-settings.mjs +8 -0
- package/esm2022/ssr-cache/tokens/sc-ssr-response-cache.mjs +13 -0
- package/esm2022/user-metrika/enums/sc-user-metrika-goals-enum.mjs +19 -1
- package/fesm2022/snabcentr-client-core.mjs +623 -55
- package/fesm2022/snabcentr-client-core.mjs.map +1 -1
- package/helpers/index.d.ts +1 -0
- package/helpers/sc-date-helper.d.ts +12 -0
- package/helpers/sc-units-helper.d.ts +1 -1
- package/order/classes/index.d.ts +2 -0
- package/order/classes/sc-order-draft-actualization.d.ts +47 -0
- package/order/classes/sc-order-draft-short.d.ts +16 -2
- package/order/classes/sc-order-draft.d.ts +16 -2
- package/order/classes/sc-order-item.d.ts +12 -0
- package/order/classes/sc-order-short.d.ts +4 -0
- package/order/classes/sc-profstroy-order-item.d.ts +73 -0
- package/order/enums/index.d.ts +1 -0
- package/order/enums/sc-order-draft-actualization-status.d.ts +21 -0
- package/order/internal/index.d.ts +5 -0
- package/order/internal/sc-i-new-profstroy-order-draft-request.d.ts +14 -0
- package/order/internal/sc-i-order-draft-actualization.d.ts +22 -0
- package/order/internal/sc-i-order-draft-file.d.ts +13 -0
- package/order/internal/sc-i-order-draft-short.d.ts +15 -0
- package/order/internal/sc-i-order-draft.d.ts +2 -1
- package/order/internal/sc-i-order-short.d.ts +4 -0
- package/order/internal/sc-i-profstroy-order-item.d.ts +28 -0
- package/order/internal/sc-i-profstroy-product-stub.d.ts +13 -0
- package/order/services/sc-order-drafts.service.d.ts +63 -1
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
- package/release_notes.tmp +2 -4
- package/ssr-cache/classes/index.d.ts +1 -0
- package/ssr-cache/classes/sc-ssr-response-cache.d.ts +59 -0
- package/ssr-cache/index.d.ts +5 -0
- package/ssr-cache/interfaces/index.d.ts +2 -0
- package/ssr-cache/interfaces/sc-i-ssr-response-cache-settings.d.ts +17 -0
- package/ssr-cache/interfaces/sc-i-ssr-response-cache-stats.d.ts +17 -0
- package/ssr-cache/internal/is-ssr-response-cacheable.d.ts +14 -0
- package/ssr-cache/internal/sc-i-ssr-cached-response.d.ts +16 -0
- package/ssr-cache/sc-ssr-response-cache.backend.d.ts +42 -0
- package/ssr-cache/sc-ssr-response-cache.providers.d.ts +6 -0
- package/ssr-cache/tokens/index.d.ts +2 -0
- package/ssr-cache/tokens/sc-ssr-response-cache-settings.d.ts +6 -0
- package/ssr-cache/tokens/sc-ssr-response-cache.d.ts +6 -0
- package/user-metrika/enums/sc-user-metrika-goals-enum.d.ts +18 -0
package/helpers/index.d.ts
CHANGED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Класс-помощник для работы с датами.
|
|
3
|
+
*/
|
|
4
|
+
export declare class ScDateHelper {
|
|
5
|
+
/**
|
|
6
|
+
* Возвращает дату, полученную из строки в указанном формате, или `undefined`, если значение отсутствует или не является датой.
|
|
7
|
+
*
|
|
8
|
+
* @param value Дата строкой или готовый объект даты.
|
|
9
|
+
* @param format Формат даты строкой (например, {@link ScIDateFormat.api}).
|
|
10
|
+
*/
|
|
11
|
+
static parse(value: string | Date | null | undefined, format: string): Date | undefined;
|
|
12
|
+
}
|
package/order/classes/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export * from './sc-delivery-cost';
|
|
2
2
|
export * from './sc-order-base';
|
|
3
3
|
export * from './sc-order-draft';
|
|
4
|
+
export * from './sc-order-draft-actualization';
|
|
4
5
|
export * from './sc-order-draft-short';
|
|
5
6
|
export * from './sc-order-delivery';
|
|
6
7
|
export * from './sc-order-history-user';
|
|
@@ -8,4 +9,5 @@ export * from './sc-i-order-history';
|
|
|
8
9
|
export * from './sc-order-item';
|
|
9
10
|
export * from './sc-order-payment';
|
|
10
11
|
export * from './sc-order-short';
|
|
12
|
+
export * from './sc-profstroy-order-item';
|
|
11
13
|
export * from './sc-order';
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { ScOrderDraftActualizationStatus } from '../enums/sc-order-draft-actualization-status';
|
|
2
|
+
import { ScIOrderDraftActualization } from '../internal/sc-i-order-draft-actualization';
|
|
3
|
+
/**
|
|
4
|
+
* Данные об актуализации черновика Профстрой.
|
|
5
|
+
*/
|
|
6
|
+
export declare class ScOrderDraftActualization {
|
|
7
|
+
/**
|
|
8
|
+
* Статус актуализации.
|
|
9
|
+
*/
|
|
10
|
+
status: ScOrderDraftActualizationStatus;
|
|
11
|
+
/**
|
|
12
|
+
* Дата и время последней успешной актуализации.
|
|
13
|
+
*/
|
|
14
|
+
actualizedAt?: Date;
|
|
15
|
+
/**
|
|
16
|
+
* Дата и время, до которых данные актуализации считаются актуальными.
|
|
17
|
+
*/
|
|
18
|
+
expiresAt?: Date;
|
|
19
|
+
/**
|
|
20
|
+
* Текст ошибки последней обработки.
|
|
21
|
+
*/
|
|
22
|
+
error?: string;
|
|
23
|
+
/**
|
|
24
|
+
* Инициализирует экземпляр класса {@link ScOrderDraftActualization}.
|
|
25
|
+
*
|
|
26
|
+
* @param data Данные от API или готовый экземпляр актуализации.
|
|
27
|
+
* @param apiDateFormat Формат дат в данных API.
|
|
28
|
+
*/
|
|
29
|
+
constructor(data: ScIOrderDraftActualization | ScOrderDraftActualization | null | undefined, apiDateFormat: string);
|
|
30
|
+
/**
|
|
31
|
+
* Признак, что выполняется обработка.
|
|
32
|
+
*/
|
|
33
|
+
get isProcessing(): boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Возвращает признак, что данные актуализации устарели на указанный момент: актуализация не завершена успешно или истёк срок её действия.
|
|
36
|
+
* Момент, равный сроку действия, ещё допустим. Если срок не известен, данные считаются актуальными.
|
|
37
|
+
*
|
|
38
|
+
* @param now Момент проверки.
|
|
39
|
+
*/
|
|
40
|
+
isOutdatedAt(now: Date): boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Возвращает признак, что на указанный момент из черновика можно оформить заказ.
|
|
43
|
+
*
|
|
44
|
+
* @param now Момент проверки.
|
|
45
|
+
*/
|
|
46
|
+
isOrderAllowedAt(now: Date): boolean;
|
|
47
|
+
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ScOrderDraftType } from '../enums/sc-order-draft-type';
|
|
2
|
-
import { ScIOrderDraftShort } from '../internal';
|
|
2
|
+
import { ScIOrderDraftFile, ScIOrderDraftShort } from '../internal';
|
|
3
3
|
import { ScOrderBase } from './sc-order-base';
|
|
4
|
+
import { ScOrderDraftActualization } from './sc-order-draft-actualization';
|
|
4
5
|
/**
|
|
5
6
|
* Данные о кратком коммерческом предложении/черновике заказа.
|
|
6
7
|
*/
|
|
@@ -13,10 +14,23 @@ export declare class ScOrderDraftShort extends ScOrderBase implements ScIOrderDr
|
|
|
13
14
|
* @inheritDoc
|
|
14
15
|
*/
|
|
15
16
|
type: ScOrderDraftType;
|
|
17
|
+
/**
|
|
18
|
+
* Признак черновика, созданного из файла программы «Профстрой».
|
|
19
|
+
*/
|
|
20
|
+
isProfstroy: boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Данные об актуализации черновика Профстрой.
|
|
23
|
+
*/
|
|
24
|
+
actualization?: ScOrderDraftActualization;
|
|
25
|
+
/**
|
|
26
|
+
* Данные об исходном файле черновика Профстрой.
|
|
27
|
+
*/
|
|
28
|
+
file?: ScIOrderDraftFile;
|
|
16
29
|
/**
|
|
17
30
|
* Инициализирует экземпляр класса {@link ScOrderDraftShort}.
|
|
18
31
|
*
|
|
19
32
|
* @param data Данные для первоначальной инициализации.
|
|
33
|
+
* @param apiDateFormat Формат дат в данных API.
|
|
20
34
|
*/
|
|
21
|
-
constructor(data: ScIOrderDraftShort);
|
|
35
|
+
constructor(data: ScIOrderDraftShort, apiDateFormat: string);
|
|
22
36
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ScOrderDraftType } from '../enums/sc-order-draft-type';
|
|
2
|
-
import { ScIOrderDraft } from '../internal';
|
|
2
|
+
import { ScIOrderDraft, ScIOrderDraftFile } from '../internal';
|
|
3
|
+
import { ScOrderDraftActualization } from './sc-order-draft-actualization';
|
|
3
4
|
import { ScOrderDraftShort } from './sc-order-draft-short';
|
|
4
5
|
import { ScOrderItem } from './sc-order-item';
|
|
5
6
|
/**
|
|
@@ -30,6 +31,18 @@ export declare class ScOrderDraft implements ScIOrderDraft {
|
|
|
30
31
|
* @inheritDoc
|
|
31
32
|
*/
|
|
32
33
|
products: ScOrderItem[];
|
|
34
|
+
/**
|
|
35
|
+
* Признак черновика, созданного из файла программы «Профстрой».
|
|
36
|
+
*/
|
|
37
|
+
isProfstroy: boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Данные об актуализации черновика Профстрой.
|
|
40
|
+
*/
|
|
41
|
+
actualization?: ScOrderDraftActualization;
|
|
42
|
+
/**
|
|
43
|
+
* Данные об исходном файле черновика Профстрой.
|
|
44
|
+
*/
|
|
45
|
+
file?: ScIOrderDraftFile;
|
|
33
46
|
/**
|
|
34
47
|
* Дата последнего обновления данных.
|
|
35
48
|
*/
|
|
@@ -38,8 +51,9 @@ export declare class ScOrderDraft implements ScIOrderDraft {
|
|
|
38
51
|
* Инициализирует экземпляр класса {@link ScOrderDraft}.
|
|
39
52
|
*
|
|
40
53
|
* @param data Данные для первоначальной инициализации.
|
|
54
|
+
* @param apiDateFormat Формат дат в данных API.
|
|
41
55
|
*/
|
|
42
|
-
constructor(data: ScIOrderDraft);
|
|
56
|
+
constructor(data: ScIOrderDraft, apiDateFormat: string);
|
|
43
57
|
/**
|
|
44
58
|
* @inheritDoc
|
|
45
59
|
*/
|
|
@@ -75,6 +75,18 @@ export declare class ScOrderItem {
|
|
|
75
75
|
* @param data Данные для первоначальной инициализации.
|
|
76
76
|
*/
|
|
77
77
|
constructor(data: ScIOrderItem);
|
|
78
|
+
/**
|
|
79
|
+
* Признак, что позиция может попасть в заказ: товар есть в каталоге и предоставляется.
|
|
80
|
+
*/
|
|
81
|
+
get isOrderable(): boolean;
|
|
82
|
+
/**
|
|
83
|
+
* Шаг изменения количества позиции.
|
|
84
|
+
*/
|
|
85
|
+
get quantityStep(): number;
|
|
86
|
+
/**
|
|
87
|
+
* Возвращает причину, по которой позиция не может попасть в заказ, или пустую строку.
|
|
88
|
+
*/
|
|
89
|
+
getUnavailableReason(): string;
|
|
78
90
|
/**
|
|
79
91
|
* @inheritDoc
|
|
80
92
|
*/
|
|
@@ -35,6 +35,10 @@ export declare class ScOrderShort extends ScOrderBase implements ScIOrderShort {
|
|
|
35
35
|
* @inheritDoc
|
|
36
36
|
*/
|
|
37
37
|
barcode?: number;
|
|
38
|
+
/**
|
|
39
|
+
* Признак заказа, созданного из черновика Профстрой.
|
|
40
|
+
*/
|
|
41
|
+
isProfstroy: boolean;
|
|
38
42
|
/**
|
|
39
43
|
* Инициализирует экземпляр класса {@link ScOrderShort}.
|
|
40
44
|
*
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { ScIProfstroyOrderItem } from '../internal/sc-i-profstroy-order-item';
|
|
2
|
+
import { ScOrderItem } from './sc-order-item';
|
|
3
|
+
/**
|
|
4
|
+
* Данные о позиции черновика Профстрой.
|
|
5
|
+
*/
|
|
6
|
+
export declare class ScProfstroyOrderItem extends ScOrderItem {
|
|
7
|
+
/**
|
|
8
|
+
* Название группы для позиций без группы.
|
|
9
|
+
*/
|
|
10
|
+
static readonly ungroupedName = "\u0411\u0435\u0437 \u0433\u0440\u0443\u043F\u043F\u044B";
|
|
11
|
+
/**
|
|
12
|
+
* Шаг количества позиции, для которой не найден товар каталога и кратность не известна.
|
|
13
|
+
*/
|
|
14
|
+
static readonly stubQuantityStep = 0.001;
|
|
15
|
+
/**
|
|
16
|
+
* Тексты ошибок строк по их кодам.
|
|
17
|
+
*/
|
|
18
|
+
private static readonly lineErrorTexts;
|
|
19
|
+
/**
|
|
20
|
+
* Возвращает признак, что вместо товара каталога пришла заглушка.
|
|
21
|
+
*
|
|
22
|
+
* @param product Данные о товаре.
|
|
23
|
+
*/
|
|
24
|
+
private static isStub;
|
|
25
|
+
/**
|
|
26
|
+
* Возвращает название группы позиции для отображения. Позиции обычного черновика относятся к группе «Без группы».
|
|
27
|
+
*
|
|
28
|
+
* @param item Позиция черновика.
|
|
29
|
+
*/
|
|
30
|
+
static getGroupTitle(item: ScOrderItem): string;
|
|
31
|
+
/**
|
|
32
|
+
* Название группы из файла.
|
|
33
|
+
*/
|
|
34
|
+
groupName?: string;
|
|
35
|
+
/**
|
|
36
|
+
* Артикул поставщика из файла или из заглушки товара.
|
|
37
|
+
*/
|
|
38
|
+
supplierSku?: string;
|
|
39
|
+
/**
|
|
40
|
+
* Признак строки из группы, которая не участвует в заказе.
|
|
41
|
+
*/
|
|
42
|
+
isIgnored: boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Ошибка строки, из-за которой она не попадёт в заказ.
|
|
45
|
+
*/
|
|
46
|
+
lineError?: string;
|
|
47
|
+
/**
|
|
48
|
+
* Признак, что для позиции не найден товар каталога и вместо него заглушка с данными из файла.
|
|
49
|
+
*/
|
|
50
|
+
readonly isProductStub: boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Инициализирует экземпляр класса {@link ScProfstroyOrderItem}.
|
|
53
|
+
*
|
|
54
|
+
* @param data Данные от API или готовый экземпляр позиции.
|
|
55
|
+
*/
|
|
56
|
+
constructor(data: ScIProfstroyOrderItem | ScProfstroyOrderItem);
|
|
57
|
+
/**
|
|
58
|
+
* Название группы для отображения: группа из файла или «Без группы».
|
|
59
|
+
*/
|
|
60
|
+
get groupTitle(): string;
|
|
61
|
+
/**
|
|
62
|
+
* @inheritDoc
|
|
63
|
+
*/
|
|
64
|
+
get isOrderable(): boolean;
|
|
65
|
+
/**
|
|
66
|
+
* @inheritDoc
|
|
67
|
+
*/
|
|
68
|
+
get quantityStep(): number;
|
|
69
|
+
/**
|
|
70
|
+
* @inheritDoc
|
|
71
|
+
*/
|
|
72
|
+
getUnavailableReason(): string;
|
|
73
|
+
}
|
package/order/enums/index.d.ts
CHANGED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Перечисление статусов актуализации черновика Профстрой.
|
|
3
|
+
*/
|
|
4
|
+
export declare enum ScOrderDraftActualizationStatus {
|
|
5
|
+
/**
|
|
6
|
+
* Выполняется обработка файла или обмен с 1С.
|
|
7
|
+
*/
|
|
8
|
+
processing = "processing",
|
|
9
|
+
/**
|
|
10
|
+
* Последний обмен с 1С завершён успешно.
|
|
11
|
+
*/
|
|
12
|
+
completed = "completed",
|
|
13
|
+
/**
|
|
14
|
+
* Обработка завершилась с ошибкой.
|
|
15
|
+
*/
|
|
16
|
+
error = "error",
|
|
17
|
+
/**
|
|
18
|
+
* Состав черновика изменён после последней успешной актуализации.
|
|
19
|
+
*/
|
|
20
|
+
needsActualization = "needs_actualization"
|
|
21
|
+
}
|
|
@@ -12,3 +12,8 @@ export * from './sc-i-order-item';
|
|
|
12
12
|
export * from './sc-i-order-loader';
|
|
13
13
|
export * from './sc-i-order-short';
|
|
14
14
|
export * from './sc-i-update-order-order-request';
|
|
15
|
+
export * from './sc-i-order-draft-actualization';
|
|
16
|
+
export * from './sc-i-order-draft-file';
|
|
17
|
+
export * from './sc-i-profstroy-order-item';
|
|
18
|
+
export * from './sc-i-profstroy-product-stub';
|
|
19
|
+
export * from './sc-i-new-profstroy-order-draft-request';
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ScUploadedFile } from '../../contacts/dto/sc-uploaded-file';
|
|
2
|
+
/**
|
|
3
|
+
* Данные запроса создания черновика заказа из файла программы «Профстрой».
|
|
4
|
+
*/
|
|
5
|
+
export interface ScINewProfstroyOrderDraftRequest {
|
|
6
|
+
/**
|
|
7
|
+
* Файл выгрузки программы «Профстрой».
|
|
8
|
+
*/
|
|
9
|
+
file: ScUploadedFile;
|
|
10
|
+
/**
|
|
11
|
+
* Название черновика.
|
|
12
|
+
*/
|
|
13
|
+
name?: string;
|
|
14
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ScOrderDraftActualizationStatus } from '../enums/sc-order-draft-actualization-status';
|
|
2
|
+
/**
|
|
3
|
+
* Данные об актуализации черновика Профстрой, получаемые от API.
|
|
4
|
+
*/
|
|
5
|
+
export interface ScIOrderDraftActualization {
|
|
6
|
+
/**
|
|
7
|
+
* Статус актуализации.
|
|
8
|
+
*/
|
|
9
|
+
status: ScOrderDraftActualizationStatus;
|
|
10
|
+
/**
|
|
11
|
+
* Дата и время последней успешной актуализации в формате `Y-m-d H:i:s`.
|
|
12
|
+
*/
|
|
13
|
+
actualizedAt?: string | null;
|
|
14
|
+
/**
|
|
15
|
+
* Дата и время, до которых данные актуализации считаются актуальными, в формате `Y-m-d H:i:s`.
|
|
16
|
+
*/
|
|
17
|
+
expiresAt?: string | null;
|
|
18
|
+
/**
|
|
19
|
+
* Текст ошибки последней обработки.
|
|
20
|
+
*/
|
|
21
|
+
error?: string | null;
|
|
22
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Данные об исходном файле черновика Профстрой.
|
|
3
|
+
*/
|
|
4
|
+
export interface ScIOrderDraftFile {
|
|
5
|
+
/**
|
|
6
|
+
* Относительный путь к файлу от корня портала.
|
|
7
|
+
*/
|
|
8
|
+
url?: string;
|
|
9
|
+
/**
|
|
10
|
+
* Исходное название загруженного файла.
|
|
11
|
+
*/
|
|
12
|
+
originalName?: string;
|
|
13
|
+
}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
+
import { ScOrderDraftActualization } from '../classes/sc-order-draft-actualization';
|
|
1
2
|
import { ScOrderDraftType } from '../enums';
|
|
2
3
|
import { ScIOrderBase } from './sc-i-order-base';
|
|
4
|
+
import { ScIOrderDraftActualization } from './sc-i-order-draft-actualization';
|
|
5
|
+
import { ScIOrderDraftFile } from './sc-i-order-draft-file';
|
|
3
6
|
/**
|
|
4
7
|
* Данные о кратком коммерческом предложении/черновике заказа.
|
|
5
8
|
*/
|
|
@@ -12,4 +15,16 @@ export interface ScIOrderDraftShort extends ScIOrderBase {
|
|
|
12
15
|
* Тип коммерческого предложения/черновика.
|
|
13
16
|
*/
|
|
14
17
|
type: ScOrderDraftType;
|
|
18
|
+
/**
|
|
19
|
+
* Признак черновика, созданного из файла программы «Профстрой».
|
|
20
|
+
*/
|
|
21
|
+
isProfstroy?: boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Данные об актуализации черновика Профстрой.
|
|
24
|
+
*/
|
|
25
|
+
actualization?: ScIOrderDraftActualization | ScOrderDraftActualization | null;
|
|
26
|
+
/**
|
|
27
|
+
* Данные об исходном файле черновика Профстрой.
|
|
28
|
+
*/
|
|
29
|
+
file?: ScIOrderDraftFile | null;
|
|
15
30
|
}
|
|
@@ -2,6 +2,7 @@ import { ScOrderDraft } from '../classes/sc-order-draft';
|
|
|
2
2
|
import { ScOrderDraftShort } from '../classes/sc-order-draft-short';
|
|
3
3
|
import { ScIOrderDraftShort } from './sc-i-order-draft-short';
|
|
4
4
|
import { ScIOrderItem } from './sc-i-order-item';
|
|
5
|
+
import { ScIProfstroyOrderItem } from './sc-i-profstroy-order-item';
|
|
5
6
|
/**
|
|
6
7
|
* Данные о коммерческом предложении/черновике заказа.
|
|
7
8
|
*/
|
|
@@ -13,7 +14,7 @@ export interface ScIOrderDraft extends ScIOrderDraftShort {
|
|
|
13
14
|
/**
|
|
14
15
|
* Список продуктов коммерческого предложения/черновика.
|
|
15
16
|
*/
|
|
16
|
-
products: ScIOrderItem
|
|
17
|
+
products: Array<ScIOrderItem | ScIProfstroyOrderItem>;
|
|
17
18
|
/**
|
|
18
19
|
* Возвращает сумму в виде строки. Если стоимость отсутствует, то вернёт '-'.
|
|
19
20
|
*/
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ScIProduct } from '../../catalog/interfaces/sc-i-product';
|
|
2
|
+
import { ScIOrderItem } from './sc-i-order-item';
|
|
3
|
+
import { ScIProfstroyProductStub } from './sc-i-profstroy-product-stub';
|
|
4
|
+
/**
|
|
5
|
+
* Данные о позиции черновика Профстрой.
|
|
6
|
+
*/
|
|
7
|
+
export interface ScIProfstroyOrderItem extends Omit<ScIOrderItem, 'product'> {
|
|
8
|
+
/**
|
|
9
|
+
* Данные о товаре каталога или заглушка с названием и артикулом из файла.
|
|
10
|
+
*/
|
|
11
|
+
product: ScIProduct | ScIProfstroyProductStub | null;
|
|
12
|
+
/**
|
|
13
|
+
* Название группы из файла.
|
|
14
|
+
*/
|
|
15
|
+
groupName?: string | null;
|
|
16
|
+
/**
|
|
17
|
+
* Артикул поставщика из файла.
|
|
18
|
+
*/
|
|
19
|
+
supplierSku?: string | null;
|
|
20
|
+
/**
|
|
21
|
+
* Признак строки из группы, которая не участвует в заказе.
|
|
22
|
+
*/
|
|
23
|
+
isIgnored?: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Ошибка строки, из-за которой она не попадёт в заказ.
|
|
26
|
+
*/
|
|
27
|
+
lineError?: string | null;
|
|
28
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Данные о позиции из файла Профстрой, для которой не найден товар каталога.
|
|
3
|
+
*/
|
|
4
|
+
export interface ScIProfstroyProductStub {
|
|
5
|
+
/**
|
|
6
|
+
* Название позиции из файла.
|
|
7
|
+
*/
|
|
8
|
+
name: string;
|
|
9
|
+
/**
|
|
10
|
+
* Артикул поставщика.
|
|
11
|
+
*/
|
|
12
|
+
supplierSku?: string | null;
|
|
13
|
+
}
|
|
@@ -3,7 +3,7 @@ import { Observable } from 'rxjs';
|
|
|
3
3
|
import { ScIPaginate } from '../../pagination';
|
|
4
4
|
import { ScOrderDraft, ScOrderDraftShort, ScOrderShort } from '../classes';
|
|
5
5
|
import { ScOrderItem } from '../classes/sc-order-item';
|
|
6
|
-
import { ScIOrderEditorLoader } from '../internal';
|
|
6
|
+
import { ScINewProfstroyOrderDraftRequest, ScIOrderEditorLoader } from '../internal';
|
|
7
7
|
import { ScINewOrder } from '../internal/sc-i-new-order';
|
|
8
8
|
import { ScINewOrderDraftRequest } from '../internal/sc-i-new-order-draft-request';
|
|
9
9
|
import { ScINewOrderItemBase } from '../internal/sc-i-new-order-item-base';
|
|
@@ -38,6 +38,18 @@ export declare class ScOrderDraftsService implements ScIOrderEditorLoader<ScOrde
|
|
|
38
38
|
* Сервис для сбора метрик о действиях пользователей.
|
|
39
39
|
*/
|
|
40
40
|
private readonly userMetrikaService;
|
|
41
|
+
/**
|
|
42
|
+
* Форматы дат.
|
|
43
|
+
*/
|
|
44
|
+
private readonly dateFormats;
|
|
45
|
+
/**
|
|
46
|
+
* Сервис конвертации данных.
|
|
47
|
+
*/
|
|
48
|
+
private readonly convertersService;
|
|
49
|
+
/**
|
|
50
|
+
* Объект документа.
|
|
51
|
+
*/
|
|
52
|
+
private readonly document;
|
|
41
53
|
/**
|
|
42
54
|
* Коллекция пар ключ-значение для кэшированных коммерческих предложений/черновиков пользователя.
|
|
43
55
|
*/
|
|
@@ -52,6 +64,43 @@ export declare class ScOrderDraftsService implements ScIOrderEditorLoader<ScOrde
|
|
|
52
64
|
* @param params Параметры запроса получения списка.
|
|
53
65
|
*/
|
|
54
66
|
getList$(params: HttpParams): Observable<ScIPaginate<ScOrderDraftShort>>;
|
|
67
|
+
/**
|
|
68
|
+
* Возвращает краткие данные черновиков с указанными номерами. Используется для лёгкого опроса состояния актуализации без загрузки позиций.
|
|
69
|
+
*
|
|
70
|
+
* @param ids Номера черновиков.
|
|
71
|
+
*/
|
|
72
|
+
getShortList$(ids: number[]): Observable<ScOrderDraftShort[]>;
|
|
73
|
+
/**
|
|
74
|
+
* Периодически запрашивает краткие данные черновиков с указанными номерами, пока есть подписка.
|
|
75
|
+
* Пока вкладка браузера скрыта, запросы не выполняются; новый запрос не начинается до завершения предыдущего.
|
|
76
|
+
*
|
|
77
|
+
* @param ids Номера черновиков.
|
|
78
|
+
*/
|
|
79
|
+
watchShortList$(ids: number[]): Observable<ScOrderDraftShort[]>;
|
|
80
|
+
/**
|
|
81
|
+
* Периодически перезапрашивает страницу списка черновиков в фоне, пока есть подписка. Условия запросов как у {@link watchShortList$}.
|
|
82
|
+
*
|
|
83
|
+
* @param params Параметры запроса получения списка.
|
|
84
|
+
*/
|
|
85
|
+
watchList$(params: HttpParams): Observable<ScOrderDraftShort[]>;
|
|
86
|
+
/**
|
|
87
|
+
* Создаёт черновик заказа из файла программы «Профстрой» и запускает его обработку.
|
|
88
|
+
*
|
|
89
|
+
* @param data Данные для создания.
|
|
90
|
+
*/
|
|
91
|
+
createProfstroy$(data: ScINewProfstroyOrderDraftRequest): Observable<ScOrderDraft>;
|
|
92
|
+
/**
|
|
93
|
+
* Запускает актуализацию черновика Профстрой (повторный обмен с 1С по текущему составу).
|
|
94
|
+
*
|
|
95
|
+
* @param offerId Идентификатор черновика.
|
|
96
|
+
*/
|
|
97
|
+
actualizeProfstroy$(offerId: number): Observable<ScOrderDraft>;
|
|
98
|
+
/**
|
|
99
|
+
* Запускает пересборку черновика Профстрой из ранее загруженного файла.
|
|
100
|
+
*
|
|
101
|
+
* @param offerId Идентификатор черновика.
|
|
102
|
+
*/
|
|
103
|
+
reloadProfstroy$(offerId: number): Observable<ScOrderDraft>;
|
|
55
104
|
/**
|
|
56
105
|
* Создаёт новое коммерческое предложение/черновик заказа.
|
|
57
106
|
*
|
|
@@ -65,6 +114,12 @@ export declare class ScOrderDraftsService implements ScIOrderEditorLoader<ScOrde
|
|
|
65
114
|
* @param cacheable Признак возможности получения из кэшированных данных.
|
|
66
115
|
*/
|
|
67
116
|
get$(draftId: number, cacheable?: boolean): Observable<ScOrderDraft | ScOrderLoading>;
|
|
117
|
+
/**
|
|
118
|
+
* Запрашивает полную информацию о черновике в обход кэша и обновляет кэш полученными данными.
|
|
119
|
+
*
|
|
120
|
+
* @param draftId Идентификатор записи.
|
|
121
|
+
*/
|
|
122
|
+
fetch$(draftId: number): Observable<ScOrderDraft>;
|
|
68
123
|
/**
|
|
69
124
|
* Возвращает список элементов коммерческого предложения/черновика.
|
|
70
125
|
*
|
|
@@ -91,6 +146,13 @@ export declare class ScOrderDraftsService implements ScIOrderEditorLoader<ScOrde
|
|
|
91
146
|
* @param data Данные заказа.
|
|
92
147
|
*/
|
|
93
148
|
createOrder$(offerId: number, data: ScINewOrder): Observable<ScOrderShort[]>;
|
|
149
|
+
/**
|
|
150
|
+
* Выполняет запрос с указанным интервалом, пока вкладка браузера видна. Новый запрос не начинается до завершения предыдущего, ошибки пропускаются.
|
|
151
|
+
*
|
|
152
|
+
* @param period Интервал запросов (ms).
|
|
153
|
+
* @param request Функция, возвращающая запрос.
|
|
154
|
+
*/
|
|
155
|
+
private poll$;
|
|
94
156
|
/**
|
|
95
157
|
* Убирает заказанные позиции из кэша черновика локально (сервер сразу после заказа ещё может вернуть их в списке).
|
|
96
158
|
*
|
package/package.json
CHANGED
package/public-api.d.ts
CHANGED
package/release_notes.tmp
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
## 3.
|
|
1
|
+
## 3.21.0-profstroy (2026-09-23)
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
- [#13774: Редирект на канонический адрес товара или категории сделан временным (302)](web_soft/libs/angular/snabcentr-client-core-lib@1609b8ec2c2421099e8884db0298cd92efd1bc1d) ([merge request](web_soft/libs/angular/snabcentr-client-core-lib!344))
|
|
3
|
+
No changes.
|
|
6
4
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './sc-ssr-response-cache';
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { HttpResponse } from '@angular/common/http';
|
|
2
|
+
import { ScISsrResponseCacheStats } from '../interfaces/sc-i-ssr-response-cache-stats';
|
|
3
|
+
/**
|
|
4
|
+
* Кэш ответов API, один на процесс: переживает пересоздание инжектора между SSR-рендерами.
|
|
5
|
+
* Одинаковые одновременные запросы склеиваются, при переполнении вытесняется самая давняя запись.
|
|
6
|
+
*/
|
|
7
|
+
export declare class ScSsrResponseCache {
|
|
8
|
+
/**
|
|
9
|
+
* Максимальное количество записей в кэше.
|
|
10
|
+
*/
|
|
11
|
+
private readonly maxEntries;
|
|
12
|
+
/**
|
|
13
|
+
* Закэшированные ответы по ключу запроса.
|
|
14
|
+
*/
|
|
15
|
+
private readonly entries;
|
|
16
|
+
/**
|
|
17
|
+
* Выполняемые запросы по ключу запроса.
|
|
18
|
+
*/
|
|
19
|
+
private readonly pending;
|
|
20
|
+
/**
|
|
21
|
+
* Количество запросов, отданных без обращения к API.
|
|
22
|
+
*/
|
|
23
|
+
private hits;
|
|
24
|
+
/**
|
|
25
|
+
* Количество запросов, выполненных к API.
|
|
26
|
+
*/
|
|
27
|
+
private misses;
|
|
28
|
+
/**
|
|
29
|
+
* Инициализирует экземпляр класса {@link ScSsrResponseCache}.
|
|
30
|
+
*
|
|
31
|
+
* @param maxEntries Максимальное количество записей в кэше.
|
|
32
|
+
*/
|
|
33
|
+
constructor(maxEntries?: number);
|
|
34
|
+
/**
|
|
35
|
+
* Возвращает ответ из кэша, при отсутствии или устаревании загружает и кэширует. Ошибка загрузки не кэшируется.
|
|
36
|
+
*
|
|
37
|
+
* @param key Ключ запроса.
|
|
38
|
+
* @param lifeTime Время жизни ответа (мс).
|
|
39
|
+
* @param loader Функция загрузки ответа.
|
|
40
|
+
*/
|
|
41
|
+
getOrLoad(key: string, lifeTime: number, loader: () => Promise<HttpResponse<unknown>>): Promise<HttpResponse<unknown>>;
|
|
42
|
+
/**
|
|
43
|
+
* Возвращает статистику работы кэша.
|
|
44
|
+
*/
|
|
45
|
+
getStats(): ScISsrResponseCacheStats;
|
|
46
|
+
/**
|
|
47
|
+
* Возвращает актуальную запись или `null`.
|
|
48
|
+
*
|
|
49
|
+
* @param key Ключ запроса.
|
|
50
|
+
*/
|
|
51
|
+
private get;
|
|
52
|
+
/**
|
|
53
|
+
* Сохраняет запись, при переполнении вытесняя самую давнюю.
|
|
54
|
+
*
|
|
55
|
+
* @param key Ключ запроса.
|
|
56
|
+
* @param entry Запись кэша.
|
|
57
|
+
*/
|
|
58
|
+
private set;
|
|
59
|
+
}
|