@floristcloud/api-lib 1.2.115 → 1.2.117
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/build/commands/index.js +1 -0
- package/build/commands/report/get-write-off-summary.query.js +82 -0
- package/build/commands/report/index.js +1 -0
- package/build/commands/transfer-document/create-transfer-document.command.js +31 -0
- package/build/commands/transfer-document/delete-transfer-document.command.js +26 -0
- package/build/commands/transfer-document/get-transfer-document-list.query.js +23 -0
- package/build/commands/transfer-document/get-transfer-document.query.js +15 -0
- package/build/commands/transfer-document/index.js +21 -0
- package/build/commands/transfer-document/issue-transfer-document.command.js +17 -0
- package/build/constant/error-i18n-key.js +1 -0
- package/build/constant/error.js +54 -0
- package/build/constant/index.js +2 -0
- package/build/constant/okei.js +16 -0
- package/build/constant/oksm.js +72 -0
- package/build/constant/report.constant.js +8 -1
- package/build/enum/index.js +5 -0
- package/build/enum/invoice-product-field.enum.js +18 -0
- package/build/enum/transfer-document-item-kind.enum.js +15 -0
- package/build/enum/transfer-document-kind.enum.js +9 -0
- package/build/enum/transfer-document-state.enum.js +8 -0
- package/build/enum/write-off-report-date-basis.enum.js +18 -0
- package/build/schemas/index.js +2 -0
- package/build/schemas/settings/settings.schema.js +37 -0
- package/build/schemas/transfer-document/transfer-document-detailed.schema.js +37 -0
- package/build/schemas/transfer-document/transfer-document.schema.js +42 -0
- package/commands/index.ts +1 -0
- package/commands/report/get-write-off-summary.query.ts +90 -0
- package/commands/report/index.ts +1 -0
- package/commands/transfer-document/create-transfer-document.command.ts +34 -0
- package/commands/transfer-document/delete-transfer-document.command.ts +28 -0
- package/commands/transfer-document/get-transfer-document-list.query.ts +25 -0
- package/commands/transfer-document/get-transfer-document.query.ts +17 -0
- package/commands/transfer-document/index.ts +5 -0
- package/commands/transfer-document/issue-transfer-document.command.ts +19 -0
- package/constant/error-i18n-key.ts +1 -0
- package/constant/error.ts +54 -0
- package/constant/index.ts +2 -0
- package/constant/okei.ts +14 -0
- package/constant/oksm.ts +69 -0
- package/constant/report.constant.ts +9 -0
- package/enum/index.ts +5 -0
- package/enum/invoice-product-field.enum.ts +14 -0
- package/enum/transfer-document-item-kind.enum.ts +11 -0
- package/enum/transfer-document-kind.enum.ts +5 -0
- package/enum/transfer-document-state.enum.ts +4 -0
- package/enum/write-off-report-date-basis.enum.ts +14 -0
- package/package.json +1 -1
- package/schemas/index.ts +2 -0
- package/schemas/settings/settings.schema.ts +38 -0
- package/schemas/transfer-document/transfer-document-detailed.schema.ts +36 -0
- package/schemas/transfer-document/transfer-document.schema.ts +41 -0
|
@@ -4,6 +4,7 @@ import {
|
|
|
4
4
|
ChatNoManagerModeEnum,
|
|
5
5
|
ContactMessengerEnum,
|
|
6
6
|
DiscountPriceRoundingEnum,
|
|
7
|
+
InvoiceProductFieldEnum,
|
|
7
8
|
LanguageEnum,
|
|
8
9
|
WebshopModeEnum,
|
|
9
10
|
} from '../../enum';
|
|
@@ -117,6 +118,18 @@ export const SettingsSchema = z.object({
|
|
|
117
118
|
bankBic: z.string().nullable(),
|
|
118
119
|
correspondentAccount: z.string().nullable(),
|
|
119
120
|
invoiceNumberPrefix: z.string(),
|
|
121
|
+
kpp: z.string().nullable(),
|
|
122
|
+
ogrn: z.string().nullable(),
|
|
123
|
+
signatoryName: z.string().nullable(),
|
|
124
|
+
signatoryPosition: z.string().nullable(),
|
|
125
|
+
accountantName: z.string().nullable(),
|
|
126
|
+
responsibleName: z.string().nullable(),
|
|
127
|
+
responsiblePosition: z.string().nullable(),
|
|
128
|
+
shipperName: z.string().nullable(),
|
|
129
|
+
shipperAddress: z.string().nullable(),
|
|
130
|
+
transferDocumentStatus: z.number().int().nullable(),
|
|
131
|
+
transferDocumentNumberStart: z.number().int().positive().nullable(),
|
|
132
|
+
invoiceProductFields: z.array(z.nativeEnum(InvoiceProductFieldEnum)).nullable(),
|
|
120
133
|
isShowPriceAnonymous: z.boolean(),
|
|
121
134
|
orderExpirationWarningMin: z.number().nullable(),
|
|
122
135
|
orderExpirationMin: z.number().nullable(),
|
|
@@ -201,6 +214,18 @@ export const CreateSettingsSchema = z.object({
|
|
|
201
214
|
bankBic: z.string().nullable().optional(),
|
|
202
215
|
correspondentAccount: z.string().nullable().optional(),
|
|
203
216
|
invoiceNumberPrefix: z.string().optional(),
|
|
217
|
+
kpp: z.string().nullable().optional(),
|
|
218
|
+
ogrn: z.string().nullable().optional(),
|
|
219
|
+
signatoryName: z.string().nullable().optional(),
|
|
220
|
+
signatoryPosition: z.string().nullable().optional(),
|
|
221
|
+
accountantName: z.string().nullable().optional(),
|
|
222
|
+
responsibleName: z.string().nullable().optional(),
|
|
223
|
+
responsiblePosition: z.string().nullable().optional(),
|
|
224
|
+
shipperName: z.string().nullable().optional(),
|
|
225
|
+
shipperAddress: z.string().nullable().optional(),
|
|
226
|
+
transferDocumentStatus: z.number().int().nullable().optional(),
|
|
227
|
+
transferDocumentNumberStart: z.number().int().positive().nullable().optional(),
|
|
228
|
+
invoiceProductFields: z.array(z.nativeEnum(InvoiceProductFieldEnum)).nullable().optional(),
|
|
204
229
|
orderExpirationWarningMin: z.coerce.number().nullable().optional(),
|
|
205
230
|
orderExpirationMin: z.coerce.number().nullable().optional(),
|
|
206
231
|
paymentGraceDaysAfterCompletion: z.coerce.number().nullable().optional(),
|
|
@@ -274,6 +299,19 @@ export const UpdateSettingsRequestSchema = z.object({
|
|
|
274
299
|
bankBic: z.string().optional().nullable(),
|
|
275
300
|
correspondentAccount: z.string().optional().nullable(),
|
|
276
301
|
invoiceNumberPrefix: z.string().optional(),
|
|
302
|
+
kpp: z.string().optional().nullable(),
|
|
303
|
+
ogrn: z.string().optional().nullable(),
|
|
304
|
+
signatoryName: z.string().optional().nullable(),
|
|
305
|
+
signatoryPosition: z.string().optional().nullable(),
|
|
306
|
+
accountantName: z.string().optional().nullable(),
|
|
307
|
+
responsibleName: z.string().optional().nullable(),
|
|
308
|
+
responsiblePosition: z.string().optional().nullable(),
|
|
309
|
+
shipperName: z.string().optional().nullable(),
|
|
310
|
+
shipperAddress: z.string().optional().nullable(),
|
|
311
|
+
transferDocumentStatus: z.number().int().optional().nullable(),
|
|
312
|
+
// Понижать нельзя — это дало бы дубли к уже выданным документам; проверка в обработчике.
|
|
313
|
+
transferDocumentNumberStart: z.number().int().positive().optional().nullable(),
|
|
314
|
+
invoiceProductFields: z.array(z.nativeEnum(InvoiceProductFieldEnum)).optional().nullable(),
|
|
277
315
|
isShowPriceAnonymous: z.coerce.boolean().optional(),
|
|
278
316
|
orderExpirationWarningMin: z.coerce.number().nullable().optional(),
|
|
279
317
|
orderExpirationMin: z.coerce.number().nullable().optional(),
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { TransferDocumentItemKindEnum } from '../../enum/transfer-document-item-kind.enum';
|
|
3
|
+
import { MoneySchema } from '../money.schema';
|
|
4
|
+
import { TransferDocumentSchema } from './transfer-document.schema';
|
|
5
|
+
|
|
6
|
+
// Строка табличной части — снимок графы в графу на момент выпуска. Значения уже готовы к печати:
|
|
7
|
+
// пересчитывать их из заказа нельзя, выданная первичка обязана воспроизводиться неизменной.
|
|
8
|
+
const TransferDocumentItemSchema = z.object({
|
|
9
|
+
kind: z.nativeEnum(TransferDocumentItemKindEnum),
|
|
10
|
+
orderUUID: z.string(),
|
|
11
|
+
orderId: z.number(),
|
|
12
|
+
// Графа А — код товара; графы 2 / 2а — код и обозначение ОКЕИ.
|
|
13
|
+
code: z.string().nullable(),
|
|
14
|
+
name: z.string(),
|
|
15
|
+
unitCode: z.string().nullable(),
|
|
16
|
+
unitName: z.string().nullable(),
|
|
17
|
+
quantity: z.number(),
|
|
18
|
+
priceWithoutVat: MoneySchema,
|
|
19
|
+
amountWithoutVat: MoneySchema,
|
|
20
|
+
// null — «Без НДС»: прочерк в графе 8. Ноль значил бы «ставка есть, налог нулевой».
|
|
21
|
+
vatRate: z.number().nullable(),
|
|
22
|
+
vatAmount: MoneySchema.nullable(),
|
|
23
|
+
amountWithVat: MoneySchema,
|
|
24
|
+
// Графы 10 / 10а / 11. Пусто у услуг и доставки, а также когда страну не удалось определить.
|
|
25
|
+
countryCode: z.string().nullable(),
|
|
26
|
+
countryName: z.string().nullable(),
|
|
27
|
+
customsDeclarationNumber: z.string().nullable(),
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
/** Документ вместе с табличной частью — карточка и ответ на создание. */
|
|
31
|
+
export const TransferDocumentDetailedSchema = TransferDocumentSchema.extend({
|
|
32
|
+
items: TransferDocumentItemSchema.array(),
|
|
33
|
+
// Позиции, у которых не определилась страна происхождения: документ выпущен, графы 10/10а
|
|
34
|
+
// напечатаны прочерком, а UI показывает, какие карточки товара стоит поправить.
|
|
35
|
+
warnings: z.string().array(),
|
|
36
|
+
});
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { TransferDocumentStateEnum } from '../../enum/transfer-document-state.enum';
|
|
3
|
+
import { MoneySchema } from '../money.schema';
|
|
4
|
+
|
|
5
|
+
// Заказы, вошедшие в документ. Список короткий — документ выпускается по одной отгрузке клиенту,
|
|
6
|
+
// поэтому он есть и в строке списка: по нему UI показывает, какие заказы уже закрыты первичкой.
|
|
7
|
+
const TransferDocumentOrderSchema = z.object({
|
|
8
|
+
orderUUID: z.string(),
|
|
9
|
+
orderId: z.number(),
|
|
10
|
+
completedAt: z.coerce.date().nullable(),
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Документ без табличной части — форма списка.
|
|
15
|
+
*
|
|
16
|
+
* Позиции сюда не входят намеренно: в УПД их столько же, сколько строк в заказах,
|
|
17
|
+
* и страница списка из двадцати документов везла бы тысячи строк. За позициями —
|
|
18
|
+
* `TransferDocumentDetailedSchema` на карточке.
|
|
19
|
+
*/
|
|
20
|
+
export const TransferDocumentSchema = z.object({
|
|
21
|
+
uuid: z.string(),
|
|
22
|
+
// Номер с ведущими нулями — `01887`, ровно как он напечатан в документе.
|
|
23
|
+
number: z.string(),
|
|
24
|
+
documentDate: z.coerce.date(),
|
|
25
|
+
shipmentDate: z.coerce.date(),
|
|
26
|
+
// 1 — счёт-фактура + передаточный документ, 2 — только передаточный документ (акт).
|
|
27
|
+
// В MVP выпускается только 2.
|
|
28
|
+
documentStatus: z.number(),
|
|
29
|
+
state: z.nativeEnum(TransferDocumentStateEnum),
|
|
30
|
+
amount: MoneySchema,
|
|
31
|
+
amountWithoutVat: MoneySchema,
|
|
32
|
+
vatAmount: MoneySchema,
|
|
33
|
+
clientUUID: z.string(),
|
|
34
|
+
// Имя покупателя, напечатанное в документе (строка 6 формы). Может отличаться от текущего
|
|
35
|
+
// имени в карточке клиента: у юрлица печатается `fullCompanyName`, а карточку с тех пор
|
|
36
|
+
// могли переименовать. Список называет контрагента так же, как переданная ему бумага.
|
|
37
|
+
buyerName: z.string(),
|
|
38
|
+
orders: TransferDocumentOrderSchema.array(),
|
|
39
|
+
fileUrl: z.string().nullable(),
|
|
40
|
+
createdAt: z.coerce.date(),
|
|
41
|
+
});
|