@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.
Files changed (51) hide show
  1. package/build/commands/index.js +1 -0
  2. package/build/commands/report/get-write-off-summary.query.js +82 -0
  3. package/build/commands/report/index.js +1 -0
  4. package/build/commands/transfer-document/create-transfer-document.command.js +31 -0
  5. package/build/commands/transfer-document/delete-transfer-document.command.js +26 -0
  6. package/build/commands/transfer-document/get-transfer-document-list.query.js +23 -0
  7. package/build/commands/transfer-document/get-transfer-document.query.js +15 -0
  8. package/build/commands/transfer-document/index.js +21 -0
  9. package/build/commands/transfer-document/issue-transfer-document.command.js +17 -0
  10. package/build/constant/error-i18n-key.js +1 -0
  11. package/build/constant/error.js +54 -0
  12. package/build/constant/index.js +2 -0
  13. package/build/constant/okei.js +16 -0
  14. package/build/constant/oksm.js +72 -0
  15. package/build/constant/report.constant.js +8 -1
  16. package/build/enum/index.js +5 -0
  17. package/build/enum/invoice-product-field.enum.js +18 -0
  18. package/build/enum/transfer-document-item-kind.enum.js +15 -0
  19. package/build/enum/transfer-document-kind.enum.js +9 -0
  20. package/build/enum/transfer-document-state.enum.js +8 -0
  21. package/build/enum/write-off-report-date-basis.enum.js +18 -0
  22. package/build/schemas/index.js +2 -0
  23. package/build/schemas/settings/settings.schema.js +37 -0
  24. package/build/schemas/transfer-document/transfer-document-detailed.schema.js +37 -0
  25. package/build/schemas/transfer-document/transfer-document.schema.js +42 -0
  26. package/commands/index.ts +1 -0
  27. package/commands/report/get-write-off-summary.query.ts +90 -0
  28. package/commands/report/index.ts +1 -0
  29. package/commands/transfer-document/create-transfer-document.command.ts +34 -0
  30. package/commands/transfer-document/delete-transfer-document.command.ts +28 -0
  31. package/commands/transfer-document/get-transfer-document-list.query.ts +25 -0
  32. package/commands/transfer-document/get-transfer-document.query.ts +17 -0
  33. package/commands/transfer-document/index.ts +5 -0
  34. package/commands/transfer-document/issue-transfer-document.command.ts +19 -0
  35. package/constant/error-i18n-key.ts +1 -0
  36. package/constant/error.ts +54 -0
  37. package/constant/index.ts +2 -0
  38. package/constant/okei.ts +14 -0
  39. package/constant/oksm.ts +69 -0
  40. package/constant/report.constant.ts +9 -0
  41. package/enum/index.ts +5 -0
  42. package/enum/invoice-product-field.enum.ts +14 -0
  43. package/enum/transfer-document-item-kind.enum.ts +11 -0
  44. package/enum/transfer-document-kind.enum.ts +5 -0
  45. package/enum/transfer-document-state.enum.ts +4 -0
  46. package/enum/write-off-report-date-basis.enum.ts +14 -0
  47. package/package.json +1 -1
  48. package/schemas/index.ts +2 -0
  49. package/schemas/settings/settings.schema.ts +38 -0
  50. package/schemas/transfer-document/transfer-document-detailed.schema.ts +36 -0
  51. 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
+ });