autosync_backend2 1.0.78 → 1.0.80
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/dist/index.d.ts +197 -2
- package/dist/index.js +214 -38
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -32,11 +32,77 @@ declare const app: Elysia<"", {
|
|
|
32
32
|
}, {
|
|
33
33
|
typebox: {
|
|
34
34
|
Import: <Key extends never>(key: Key, options?: import("@sinclair/typebox").SchemaOptions) => import("@sinclair/typebox").TImport<{}, Key>;
|
|
35
|
+
readonly select: import("@sinclair/typebox").TObject<{
|
|
36
|
+
createdAt: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
37
|
+
createdUserId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
38
|
+
inventory: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
|
|
39
|
+
type: import("@sinclair/typebox").TOptional<import("elysia/dist/type-system/types").TUnionEnum<["Сэлбэг", "Тос", "Дугуй", "Будаг", "Аккумлятор"]>>;
|
|
40
|
+
search: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
41
|
+
branchId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
42
|
+
sellPrice: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
|
|
43
|
+
supplierId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
44
|
+
safetyStock: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
|
|
45
|
+
alias: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
46
|
+
shelfNumber: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
47
|
+
pagination: import("@sinclair/typebox").TObject<{
|
|
48
|
+
page: import("@sinclair/typebox").TInteger;
|
|
49
|
+
size: import("@sinclair/typebox").TInteger;
|
|
50
|
+
}>;
|
|
51
|
+
}>>;
|
|
52
|
+
pagination: import("@sinclair/typebox").TObject<{
|
|
53
|
+
page: import("@sinclair/typebox").TInteger;
|
|
54
|
+
size: import("@sinclair/typebox").TInteger;
|
|
55
|
+
}>;
|
|
56
|
+
}>;
|
|
57
|
+
readonly create: import("@sinclair/typebox").TObject<{
|
|
58
|
+
items: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
59
|
+
quantity: import("@sinclair/typebox").TNumber;
|
|
60
|
+
itemId: import("@sinclair/typebox").TString;
|
|
61
|
+
requestId: import("@sinclair/typebox").TString;
|
|
62
|
+
}>>;
|
|
63
|
+
to: import("@sinclair/typebox").TString;
|
|
64
|
+
}>;
|
|
65
|
+
readonly approve: import("@sinclair/typebox").TObject<{
|
|
66
|
+
id: import("@sinclair/typebox").TString;
|
|
67
|
+
}>;
|
|
35
68
|
};
|
|
36
69
|
error: {};
|
|
37
70
|
} | {
|
|
38
71
|
typebox: {
|
|
39
72
|
Import: <Key extends never>(key: Key, options?: import("@sinclair/typebox").SchemaOptions) => import("@sinclair/typebox").TImport<{}, Key>;
|
|
73
|
+
readonly select: import("@sinclair/typebox").TObject<{
|
|
74
|
+
createdAt: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
75
|
+
createdUserId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
76
|
+
inventory: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
|
|
77
|
+
type: import("@sinclair/typebox").TOptional<import("elysia/dist/type-system/types").TUnionEnum<["Сэлбэг", "Тос", "Дугуй", "Будаг", "Аккумлятор"]>>;
|
|
78
|
+
search: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
79
|
+
branchId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
80
|
+
sellPrice: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
|
|
81
|
+
supplierId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
82
|
+
safetyStock: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
|
|
83
|
+
alias: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
84
|
+
shelfNumber: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
85
|
+
pagination: import("@sinclair/typebox").TObject<{
|
|
86
|
+
page: import("@sinclair/typebox").TInteger;
|
|
87
|
+
size: import("@sinclair/typebox").TInteger;
|
|
88
|
+
}>;
|
|
89
|
+
}>>;
|
|
90
|
+
pagination: import("@sinclair/typebox").TObject<{
|
|
91
|
+
page: import("@sinclair/typebox").TInteger;
|
|
92
|
+
size: import("@sinclair/typebox").TInteger;
|
|
93
|
+
}>;
|
|
94
|
+
}>;
|
|
95
|
+
readonly create: import("@sinclair/typebox").TObject<{
|
|
96
|
+
items: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
97
|
+
quantity: import("@sinclair/typebox").TNumber;
|
|
98
|
+
itemId: import("@sinclair/typebox").TString;
|
|
99
|
+
requestId: import("@sinclair/typebox").TString;
|
|
100
|
+
}>>;
|
|
101
|
+
to: import("@sinclair/typebox").TString;
|
|
102
|
+
}>;
|
|
103
|
+
readonly approve: import("@sinclair/typebox").TObject<{
|
|
104
|
+
id: import("@sinclair/typebox").TString;
|
|
105
|
+
}>;
|
|
40
106
|
};
|
|
41
107
|
error: {};
|
|
42
108
|
}, {
|
|
@@ -1458,10 +1524,12 @@ declare const app: Elysia<"", {
|
|
|
1458
1524
|
headers: unknown;
|
|
1459
1525
|
response: {
|
|
1460
1526
|
200: {
|
|
1461
|
-
|
|
1462
|
-
|
|
1527
|
+
pageQuantity: number;
|
|
1528
|
+
totalQuantity: number;
|
|
1463
1529
|
pagePrice: number;
|
|
1464
1530
|
totalPrice: number;
|
|
1531
|
+
totalCount: number;
|
|
1532
|
+
totalPage: number;
|
|
1465
1533
|
result: {
|
|
1466
1534
|
inventory: {
|
|
1467
1535
|
name: string;
|
|
@@ -1807,6 +1875,133 @@ declare const app: Elysia<"", {
|
|
|
1807
1875
|
};
|
|
1808
1876
|
};
|
|
1809
1877
|
};
|
|
1878
|
+
} & {
|
|
1879
|
+
inventory: {
|
|
1880
|
+
tranfer: {};
|
|
1881
|
+
} & {
|
|
1882
|
+
tranfer: {
|
|
1883
|
+
get: {
|
|
1884
|
+
body: unknown;
|
|
1885
|
+
params: {};
|
|
1886
|
+
query: {
|
|
1887
|
+
createdAt?: string | undefined;
|
|
1888
|
+
inventory?: {
|
|
1889
|
+
type?: "Сэлбэг" | "Тос" | "Дугуй" | "Будаг" | "Аккумлятор" | undefined;
|
|
1890
|
+
search?: string | undefined;
|
|
1891
|
+
branchId?: string | undefined;
|
|
1892
|
+
sellPrice?: number | undefined;
|
|
1893
|
+
supplierId?: string | undefined;
|
|
1894
|
+
safetyStock?: number | undefined;
|
|
1895
|
+
alias?: string | undefined;
|
|
1896
|
+
shelfNumber?: string | undefined;
|
|
1897
|
+
pagination: {
|
|
1898
|
+
size: number;
|
|
1899
|
+
page: number;
|
|
1900
|
+
};
|
|
1901
|
+
} | undefined;
|
|
1902
|
+
createdUserId?: string | undefined;
|
|
1903
|
+
pagination: {
|
|
1904
|
+
size: number;
|
|
1905
|
+
page: number;
|
|
1906
|
+
};
|
|
1907
|
+
};
|
|
1908
|
+
headers: unknown;
|
|
1909
|
+
response: {
|
|
1910
|
+
200: {
|
|
1911
|
+
totalCount: number;
|
|
1912
|
+
totalPage: number;
|
|
1913
|
+
result: {
|
|
1914
|
+
status: "Зөвшөөрөгдсөн" | "Цуцлагдсан" | "Хүлээгдэж буй";
|
|
1915
|
+
createdUserId: string;
|
|
1916
|
+
branchId: string;
|
|
1917
|
+
merchantId: string;
|
|
1918
|
+
to: string;
|
|
1919
|
+
id: string;
|
|
1920
|
+
createdAt: string;
|
|
1921
|
+
updatedAt: string;
|
|
1922
|
+
deletedAt: string | null;
|
|
1923
|
+
}[];
|
|
1924
|
+
};
|
|
1925
|
+
422: {
|
|
1926
|
+
type: "validation";
|
|
1927
|
+
on: string;
|
|
1928
|
+
summary?: string;
|
|
1929
|
+
message?: string;
|
|
1930
|
+
found?: unknown;
|
|
1931
|
+
property?: string;
|
|
1932
|
+
expected?: string;
|
|
1933
|
+
};
|
|
1934
|
+
};
|
|
1935
|
+
};
|
|
1936
|
+
};
|
|
1937
|
+
} & {
|
|
1938
|
+
tranfer: {
|
|
1939
|
+
post: {
|
|
1940
|
+
body: {
|
|
1941
|
+
items: {
|
|
1942
|
+
quantity: number;
|
|
1943
|
+
itemId: string;
|
|
1944
|
+
requestId: string;
|
|
1945
|
+
}[];
|
|
1946
|
+
to: string;
|
|
1947
|
+
};
|
|
1948
|
+
params: {};
|
|
1949
|
+
query: unknown;
|
|
1950
|
+
headers: unknown;
|
|
1951
|
+
response: {
|
|
1952
|
+
200: {
|
|
1953
|
+
id: string;
|
|
1954
|
+
createdAt: string;
|
|
1955
|
+
updatedAt: string;
|
|
1956
|
+
merchantId: string;
|
|
1957
|
+
branchId: string;
|
|
1958
|
+
deletedAt: string | null;
|
|
1959
|
+
createdUserId: string;
|
|
1960
|
+
status: "Зөвшөөрөгдсөн" | "Цуцлагдсан" | "Хүлээгдэж буй";
|
|
1961
|
+
to: string;
|
|
1962
|
+
};
|
|
1963
|
+
422: {
|
|
1964
|
+
type: "validation";
|
|
1965
|
+
on: string;
|
|
1966
|
+
summary?: string;
|
|
1967
|
+
message?: string;
|
|
1968
|
+
found?: unknown;
|
|
1969
|
+
property?: string;
|
|
1970
|
+
expected?: string;
|
|
1971
|
+
};
|
|
1972
|
+
};
|
|
1973
|
+
};
|
|
1974
|
+
};
|
|
1975
|
+
} & {
|
|
1976
|
+
tranfer: {
|
|
1977
|
+
":id": {
|
|
1978
|
+
approve: {
|
|
1979
|
+
post: {
|
|
1980
|
+
body: unknown;
|
|
1981
|
+
params: {
|
|
1982
|
+
id: string;
|
|
1983
|
+
};
|
|
1984
|
+
query: unknown;
|
|
1985
|
+
headers: unknown;
|
|
1986
|
+
response: {
|
|
1987
|
+
200: undefined;
|
|
1988
|
+
404: "Хүсэлт олдсонгүй.";
|
|
1989
|
+
400: "Хүсэлт аль хэдийн зөвшөөрөгдсөн байна." | "Хүсэлт цуцлагдсан байна.";
|
|
1990
|
+
422: {
|
|
1991
|
+
type: "validation";
|
|
1992
|
+
on: string;
|
|
1993
|
+
summary?: string;
|
|
1994
|
+
message?: string;
|
|
1995
|
+
found?: unknown;
|
|
1996
|
+
property?: string;
|
|
1997
|
+
expected?: string;
|
|
1998
|
+
};
|
|
1999
|
+
};
|
|
2000
|
+
};
|
|
2001
|
+
};
|
|
2002
|
+
};
|
|
2003
|
+
};
|
|
2004
|
+
};
|
|
1810
2005
|
};
|
|
1811
2006
|
} & {
|
|
1812
2007
|
api: {
|
package/dist/index.js
CHANGED
|
@@ -15775,6 +15775,7 @@ __export(exports_schema, {
|
|
|
15775
15775
|
verification: () => verification,
|
|
15776
15776
|
userRoleEnum: () => userRoleEnum,
|
|
15777
15777
|
user: () => user,
|
|
15778
|
+
statusEnum: () => statusEnum,
|
|
15778
15779
|
session: () => session,
|
|
15779
15780
|
permissionTable: () => permissionTable,
|
|
15780
15781
|
permissionGroupTable: () => permissionGroupTable,
|
|
@@ -15782,6 +15783,10 @@ __export(exports_schema, {
|
|
|
15782
15783
|
merchantTable: () => merchantTable,
|
|
15783
15784
|
merchantSchema: () => merchantSchema,
|
|
15784
15785
|
logTable: () => logTable,
|
|
15786
|
+
inventoryTransferRequestTable: () => inventoryTransferRequestTable,
|
|
15787
|
+
inventoryTransferRequestRelations: () => inventoryTransferRequestRelations,
|
|
15788
|
+
inventoryTransferRequestItemTable: () => inventoryTransferRequestItemTable,
|
|
15789
|
+
inventoryTransferRequestItemRelations: () => inventoryTransferRequestItemRelations,
|
|
15785
15790
|
inventorySupplierTable: () => inventorySupplierTable,
|
|
15786
15791
|
inventorySchema: () => inventorySchema,
|
|
15787
15792
|
inventoryRefundTable: () => inventoryRefundTable,
|
|
@@ -18802,6 +18807,12 @@ function extractTablesRelationalConfig(schema, configHelpers) {
|
|
|
18802
18807
|
}
|
|
18803
18808
|
return { tables: tablesConfig, tableNamesMap };
|
|
18804
18809
|
}
|
|
18810
|
+
function relations(table, relations2) {
|
|
18811
|
+
return new Relations(table, (helpers) => Object.fromEntries(Object.entries(relations2(helpers)).map(([key, value]) => [
|
|
18812
|
+
key,
|
|
18813
|
+
value.withFieldName(key)
|
|
18814
|
+
])));
|
|
18815
|
+
}
|
|
18805
18816
|
function createOne(sourceTable) {
|
|
18806
18817
|
return function one(table, config) {
|
|
18807
18818
|
return new One(sourceTable, table, config, config?.fields.reduce((res, f) => res && f.notNull, true) ?? false);
|
|
@@ -21015,14 +21026,46 @@ var inventoryRefundTable = inventorySchema.table("refund", {
|
|
|
21015
21026
|
merchantId: uuid().notNull(),
|
|
21016
21027
|
branchId: uuid().notNull(),
|
|
21017
21028
|
isApproved: boolean().default(false),
|
|
21018
|
-
userId:
|
|
21019
|
-
approvedUserId:
|
|
21029
|
+
userId: text().notNull(),
|
|
21030
|
+
approvedUserId: text()
|
|
21020
21031
|
});
|
|
21021
21032
|
var inventorySupplierTable = inventorySchema.table("supplier", {
|
|
21022
21033
|
...base_schema_helper_default,
|
|
21023
21034
|
name: varchar().notNull(),
|
|
21024
21035
|
image: varchar()
|
|
21025
21036
|
});
|
|
21037
|
+
var statusEnum = inventorySchema.enum("status", [
|
|
21038
|
+
"\u0417\u04E9\u0432\u0448\u04E9\u04E9\u0440\u04E9\u0433\u0434\u0441\u04E9\u043D",
|
|
21039
|
+
"\u0426\u0443\u0446\u043B\u0430\u0433\u0434\u0441\u0430\u043D",
|
|
21040
|
+
"\u0425\u04AF\u043B\u044D\u044D\u0433\u0434\u044D\u0436 \u0431\u0443\u0439"
|
|
21041
|
+
]);
|
|
21042
|
+
var inventoryTransferRequestTable = inventorySchema.table("transfer_request", {
|
|
21043
|
+
...base_schema_helper_default,
|
|
21044
|
+
status: statusEnum().notNull().default("\u0425\u04AF\u043B\u044D\u044D\u0433\u0434\u044D\u0436 \u0431\u0443\u0439"),
|
|
21045
|
+
createdUserId: text().notNull(),
|
|
21046
|
+
branchId: uuid().notNull(),
|
|
21047
|
+
merchantId: uuid().notNull(),
|
|
21048
|
+
to: uuid().notNull()
|
|
21049
|
+
});
|
|
21050
|
+
var inventoryTransferRequestRelations = relations(inventoryTransferRequestTable, ({ many }) => ({
|
|
21051
|
+
items: many(inventoryTransferRequestItemTable)
|
|
21052
|
+
}));
|
|
21053
|
+
var inventoryTransferRequestItemTable = inventorySchema.table("transfer_request_item", {
|
|
21054
|
+
...base_schema_helper_default,
|
|
21055
|
+
itemId: uuid().notNull(),
|
|
21056
|
+
quantity: numeric({ mode: "number" }).notNull(),
|
|
21057
|
+
requestId: uuid().notNull()
|
|
21058
|
+
});
|
|
21059
|
+
var inventoryTransferRequestItemRelations = relations(inventoryTransferRequestItemTable, ({ one }) => ({
|
|
21060
|
+
request: one(inventoryTransferRequestTable, {
|
|
21061
|
+
fields: [inventoryTransferRequestItemTable.requestId],
|
|
21062
|
+
references: [inventoryTransferRequestTable.id]
|
|
21063
|
+
}),
|
|
21064
|
+
item: one(inventoryItemTable, {
|
|
21065
|
+
fields: [inventoryTransferRequestItemTable.itemId],
|
|
21066
|
+
references: [inventoryItemTable.id]
|
|
21067
|
+
})
|
|
21068
|
+
}));
|
|
21026
21069
|
// src/lib/db/schema/common.schema.ts
|
|
21027
21070
|
var logTable = pgTable("log", {
|
|
21028
21071
|
...base_schema_helper_default,
|
|
@@ -73212,6 +73255,10 @@ var inventoryTags = [
|
|
|
73212
73255
|
{
|
|
73213
73256
|
name: "InventorySupplier",
|
|
73214
73257
|
description: "\u0410\u0433\u0443\u0443\u043B\u0430\u0445\u044B\u043D \u043D\u0438\u0439\u043B\u04AF\u04AF\u043B\u044D\u0433\u0447"
|
|
73258
|
+
},
|
|
73259
|
+
{
|
|
73260
|
+
name: "InventoryTransfer",
|
|
73261
|
+
description: "\u0410\u0433\u0443\u0443\u043B\u0430\u0445\u044B\u043D \u0448\u0438\u043B\u0436\u04AF\u04AF\u043B\u044D\u0433"
|
|
73215
73262
|
}
|
|
73216
73263
|
];
|
|
73217
73264
|
var merchantTags = [
|
|
@@ -73426,6 +73473,7 @@ var permission_default = permissionMacro;
|
|
|
73426
73473
|
function withPagination(qb, { size, page }) {
|
|
73427
73474
|
return qb.limit(size).offset((page - 1) * size);
|
|
73428
73475
|
}
|
|
73476
|
+
var totalCountSql = sql`count(*) over()`.mapWith(Number);
|
|
73429
73477
|
var pagination_helper_default = withPagination;
|
|
73430
73478
|
|
|
73431
73479
|
// src/lib/db/helpers/soft-delete.helper.ts
|
|
@@ -95953,20 +96001,30 @@ var InventoryLogLogic;
|
|
|
95953
96001
|
const base = db_default.select({
|
|
95954
96002
|
...columns,
|
|
95955
96003
|
inventory: inventoryItemTable,
|
|
95956
|
-
|
|
95957
|
-
|
|
96004
|
+
pageQuantity: sql`COALESCE(sum(${inventoryLogTable.quantity}), 0)`.mapWith(Number),
|
|
96005
|
+
totalQuantity: sql`COALESCE(sum(${inventoryLogTable.quantity}) over(), 0)`.mapWith(Number),
|
|
95958
96006
|
pagePrice: sql`sum(${inventoryLogTable.sellPrice} * ${inventoryLogTable.quantity})`.mapWith(Number),
|
|
95959
|
-
totalPrice: sql`sum(${inventoryLogTable.sellPrice} * ${inventoryLogTable.quantity}) over()`.mapWith(Number)
|
|
95960
|
-
|
|
96007
|
+
totalPrice: sql`sum(${inventoryLogTable.sellPrice} * ${inventoryLogTable.quantity}) over()`.mapWith(Number),
|
|
96008
|
+
totalCount: totalCountSql
|
|
96009
|
+
}).from(inventoryLogTable).innerJoin(inventoryItemTable, eq(inventoryLogTable.itemId, inventoryItemTable.id)).where(filter).groupBy(inventoryLogTable.id, inventoryItemTable.id).$dynamic();
|
|
95961
96010
|
const inventoryLogs = await pagination_helper_default(base, query.pagination);
|
|
95962
96011
|
const content = {
|
|
95963
|
-
|
|
95964
|
-
|
|
96012
|
+
pageQuantity: inventoryLogs[0]?.pageQuantity ?? 0,
|
|
96013
|
+
totalQuantity: inventoryLogs[0]?.totalQuantity ?? 0,
|
|
95965
96014
|
pagePrice: inventoryLogs[0]?.pagePrice ?? 0,
|
|
95966
|
-
totalPrice: inventoryLogs[0]?.totalPrice ?? 0
|
|
96015
|
+
totalPrice: inventoryLogs[0]?.totalPrice ?? 0,
|
|
96016
|
+
totalCount: inventoryLogs[0]?.totalCount ?? 0,
|
|
96017
|
+
totalPage: inventoryLogs.length === 0 ? 0 : Math.ceil(inventoryLogs[0].totalCount / query.pagination.size)
|
|
95967
96018
|
};
|
|
95968
96019
|
return {
|
|
95969
|
-
result: inventoryLogs.map(({
|
|
96020
|
+
result: inventoryLogs.map(({
|
|
96021
|
+
pageQuantity,
|
|
96022
|
+
totalQuantity,
|
|
96023
|
+
pagePrice,
|
|
96024
|
+
totalPrice,
|
|
96025
|
+
totalCount,
|
|
96026
|
+
...item
|
|
96027
|
+
}) => item),
|
|
95970
96028
|
...content
|
|
95971
96029
|
};
|
|
95972
96030
|
};
|
|
@@ -96329,7 +96387,7 @@ var InventoryItemLogic;
|
|
|
96329
96387
|
totalQuantity: sql`COALESCE(sum(${inventoryItemTable.quantity}) over(), 0)`.mapWith(Number),
|
|
96330
96388
|
pagePrice: sql`sum(${inventoryItemTable.sellPrice} * ${inventoryItemTable.quantity})`.mapWith(Number),
|
|
96331
96389
|
totalPrice: sql`sum(${inventoryItemTable.sellPrice} * ${inventoryItemTable.quantity}) over()`.mapWith(Number),
|
|
96332
|
-
totalCount:
|
|
96390
|
+
totalCount: totalCountSql
|
|
96333
96391
|
}).from(inventoryItemTable).where(InventoryItemLogic.getInventoryItemFilter(query, user2)).groupBy(inventoryItemTable.id).$dynamic();
|
|
96334
96392
|
const inventoryItems = await pagination_helper_default(base, query.pagination);
|
|
96335
96393
|
const content = {
|
|
@@ -96352,8 +96410,8 @@ var InventoryItemLogic;
|
|
|
96352
96410
|
...content
|
|
96353
96411
|
};
|
|
96354
96412
|
};
|
|
96355
|
-
InventoryItemLogic.create = async (body, user2) => {
|
|
96356
|
-
return await
|
|
96413
|
+
InventoryItemLogic.create = async (body, user2, desc2, tdb = db_default) => {
|
|
96414
|
+
return await tdb.transaction(async (db2) => {
|
|
96357
96415
|
const [inventoryItem] = await db2.insert(inventoryItemTable).values({
|
|
96358
96416
|
...body,
|
|
96359
96417
|
branchId: body.branchId ?? user2.branchId,
|
|
@@ -96363,7 +96421,7 @@ var InventoryItemLogic;
|
|
|
96363
96421
|
await logic_default2.create({
|
|
96364
96422
|
itemId: inventoryItem.id,
|
|
96365
96423
|
quantity: body.quantity,
|
|
96366
|
-
description: "\u0413\u0430\u0440\u0430\u0430\u0440 \u0431\u0430\u0440\u0430\u0430 \u043D\u044D\u043C\u0441\u044D\u043D.",
|
|
96424
|
+
description: desc2 ?? "\u0413\u0430\u0440\u0430\u0430\u0440 \u0431\u0430\u0440\u0430\u0430 \u043D\u044D\u043C\u0441\u044D\u043D.",
|
|
96367
96425
|
userId: user2.id
|
|
96368
96426
|
}, db2);
|
|
96369
96427
|
}
|
|
@@ -96513,7 +96571,7 @@ var InventoryRefundLogic;
|
|
|
96513
96571
|
const baseQuery = db_default.select({
|
|
96514
96572
|
...columns,
|
|
96515
96573
|
inventory: inventoryItemTable,
|
|
96516
|
-
totalCount:
|
|
96574
|
+
totalCount: totalCountSql
|
|
96517
96575
|
}).from(inventoryRefundTable).where(filter).innerJoin(inventoryItemTable, eq(inventoryRefundTable.itemId, inventoryItemTable.id)).$dynamic();
|
|
96518
96576
|
const refunds = await pagination_helper_default(baseQuery, query.pagination);
|
|
96519
96577
|
const content = {
|
|
@@ -96535,20 +96593,20 @@ var InventoryRefundLogic;
|
|
|
96535
96593
|
return refund;
|
|
96536
96594
|
};
|
|
96537
96595
|
InventoryRefundLogic.approve = async (id, user2) => {
|
|
96538
|
-
const currentRefund = await db_default.select({
|
|
96596
|
+
const [currentRefund] = await db_default.select({
|
|
96539
96597
|
isApproved: inventoryRefundTable.isApproved
|
|
96540
96598
|
}).from(inventoryRefundTable).where(and(eq(inventoryRefundTable.id, id), eq(inventoryRefundTable.merchantId, user2.merchantId)));
|
|
96541
|
-
if (currentRefund
|
|
96599
|
+
if (!currentRefund) {
|
|
96542
96600
|
return status("Not Found", "\u0411\u0443\u0446\u0430\u0430\u043B\u0442 \u043E\u043B\u0434\u0441\u043E\u043D\u0433\u04AF\u0439.");
|
|
96543
96601
|
}
|
|
96544
|
-
if (currentRefund
|
|
96602
|
+
if (currentRefund.isApproved) {
|
|
96545
96603
|
return status("Bad Request", "\u0411\u0443\u0446\u0430\u0430\u043B\u0442 \u0437\u04E9\u0432\u0448\u04E9\u04E9\u0440\u04E9\u0433\u0434\u0441\u04E9\u043D \u0431\u0430\u0439\u043D\u0430.");
|
|
96546
96604
|
}
|
|
96547
|
-
return
|
|
96605
|
+
return db_default.transaction(async (db2) => {
|
|
96548
96606
|
const [refund] = await db2.update(inventoryRefundTable).set({
|
|
96549
96607
|
isApproved: true,
|
|
96550
96608
|
approvedUserId: user2.id
|
|
96551
|
-
}).returning();
|
|
96609
|
+
}).where(eq(inventoryRefundTable.id, id)).returning();
|
|
96552
96610
|
await logic_default.handleQuantityChange({
|
|
96553
96611
|
id: refund.itemId,
|
|
96554
96612
|
quantity: refund.quantity,
|
|
@@ -96612,7 +96670,7 @@ var InventorySupplierLogic;
|
|
|
96612
96670
|
const columns = getTableColumns(inventorySupplierTable);
|
|
96613
96671
|
const baseQuery = db_default.select({
|
|
96614
96672
|
...columns,
|
|
96615
|
-
totalCount:
|
|
96673
|
+
totalCount: totalCountSql
|
|
96616
96674
|
}).from(inventorySupplierTable).where(softDeletedFilter(inventorySupplierTable)).$dynamic();
|
|
96617
96675
|
const suppliers = await pagination_helper_default(baseQuery, query.pagination);
|
|
96618
96676
|
const content = {
|
|
@@ -96668,10 +96726,129 @@ var supplierRoutes = new Elysia({
|
|
|
96668
96726
|
}).delete("/:id", async ({ params: { id } }) => await logic_default4.remove(id));
|
|
96669
96727
|
var supplier_default = supplierRoutes;
|
|
96670
96728
|
|
|
96729
|
+
// src/routes/inventory/transfer/logic.ts
|
|
96730
|
+
var InventoryTransferLogic;
|
|
96731
|
+
((InventoryTransferLogic) => {
|
|
96732
|
+
InventoryTransferLogic.select = async (query, user2) => {
|
|
96733
|
+
const filter = and(logic_default.getInventoryItemFilter(query.inventory ?? {}, user2), eq(inventoryTransferRequestTable.createdUserId, query.createdUserId ?? "").if(query.createdUserId), eq(inventoryTransferRequestTable.createdAt, query.createdAt ?? ""));
|
|
96734
|
+
const columns = getTableColumns(inventoryTransferRequestTable);
|
|
96735
|
+
const baseQuery = db_default.select({
|
|
96736
|
+
...columns,
|
|
96737
|
+
totalCount: totalCountSql
|
|
96738
|
+
}).from(inventoryTransferRequestTable).leftJoin(inventoryTransferRequestItemTable, eq(inventoryTransferRequestTable.id, inventoryTransferRequestItemTable.requestId)).leftJoin(inventoryItemTable, eq(inventoryTransferRequestItemTable.itemId, inventoryItemTable.id)).where(filter).$dynamic();
|
|
96739
|
+
const result = await pagination_helper_default(baseQuery, query.pagination);
|
|
96740
|
+
const content = {
|
|
96741
|
+
totalCount: result[0]?.totalCount ?? 0,
|
|
96742
|
+
totalPage: result.length === 0 ? 0 : Math.ceil(result[0].totalCount / query.pagination.size)
|
|
96743
|
+
};
|
|
96744
|
+
return {
|
|
96745
|
+
result: result.map(({ totalCount, ...item }) => item),
|
|
96746
|
+
...content
|
|
96747
|
+
};
|
|
96748
|
+
};
|
|
96749
|
+
InventoryTransferLogic.create = async (body, user2) => {
|
|
96750
|
+
return await db_default.transaction(async (db2) => {
|
|
96751
|
+
const [request] = await db2.insert(inventoryTransferRequestTable).values({
|
|
96752
|
+
createdUserId: user2.id,
|
|
96753
|
+
merchantId: user2.merchantId,
|
|
96754
|
+
branchId: user2.branchId,
|
|
96755
|
+
to: body.to
|
|
96756
|
+
}).returning();
|
|
96757
|
+
await db2.insert(inventoryTransferRequestItemTable).values(body.items);
|
|
96758
|
+
return request;
|
|
96759
|
+
});
|
|
96760
|
+
};
|
|
96761
|
+
InventoryTransferLogic.approve = async (params, user2) => {
|
|
96762
|
+
const request = await db_default.query.inventoryTransferRequestTable.findFirst({
|
|
96763
|
+
where: eq(inventoryTransferRequestTable.id, params.id),
|
|
96764
|
+
with: {
|
|
96765
|
+
items: {
|
|
96766
|
+
with: {
|
|
96767
|
+
item: true
|
|
96768
|
+
}
|
|
96769
|
+
}
|
|
96770
|
+
}
|
|
96771
|
+
});
|
|
96772
|
+
if (!request) {
|
|
96773
|
+
return status("Not Found", "\u0425\u04AF\u0441\u044D\u043B\u0442 \u043E\u043B\u0434\u0441\u043E\u043D\u0433\u04AF\u0439.");
|
|
96774
|
+
}
|
|
96775
|
+
if (request.status === "\u0417\u04E9\u0432\u0448\u04E9\u04E9\u0440\u04E9\u0433\u0434\u0441\u04E9\u043D") {
|
|
96776
|
+
return status("Bad Request", "\u0425\u04AF\u0441\u044D\u043B\u0442 \u0430\u043B\u044C \u0445\u044D\u0434\u0438\u0439\u043D \u0437\u04E9\u0432\u0448\u04E9\u04E9\u0440\u04E9\u0433\u0434\u0441\u04E9\u043D \u0431\u0430\u0439\u043D\u0430.");
|
|
96777
|
+
}
|
|
96778
|
+
if (request.status === "\u0426\u0443\u0446\u043B\u0430\u0433\u0434\u0441\u0430\u043D") {
|
|
96779
|
+
return status("Bad Request", "\u0425\u04AF\u0441\u044D\u043B\u0442 \u0446\u0443\u0446\u043B\u0430\u0433\u0434\u0441\u0430\u043D \u0431\u0430\u0439\u043D\u0430.");
|
|
96780
|
+
}
|
|
96781
|
+
const currentInventories = await db_default.query.inventoryItemTable.findMany({
|
|
96782
|
+
where: (table) => inArray(table.partNumber, request.items.map((item) => item.item.partNumber)),
|
|
96783
|
+
columns: { id: true, partNumber: true }
|
|
96784
|
+
});
|
|
96785
|
+
const inventoryMap = new Map(currentInventories.map((item) => [item.partNumber, item]));
|
|
96786
|
+
await db_default.transaction(async (db2) => {
|
|
96787
|
+
for (const item of request.items) {
|
|
96788
|
+
const currentInventory = inventoryMap.get(item.item.partNumber);
|
|
96789
|
+
if (currentInventory) {
|
|
96790
|
+
await logic_default.handleQuantityChange({
|
|
96791
|
+
id: currentInventory.id,
|
|
96792
|
+
quantity: item.quantity,
|
|
96793
|
+
description: "\u0410\u0433\u0443\u0443\u043B\u0430\u0445\u044B\u043D \u0448\u0438\u043B\u0436\u04AF\u04AF\u043B\u044D\u0433"
|
|
96794
|
+
}, user2, db2);
|
|
96795
|
+
} else {
|
|
96796
|
+
const { id, createdAt, updatedAt, deletedAt, ...body } = item.item;
|
|
96797
|
+
try {
|
|
96798
|
+
await logic_default.create({
|
|
96799
|
+
...body,
|
|
96800
|
+
quantity: item.quantity
|
|
96801
|
+
}, user2, "\u0410\u0433\u0443\u0443\u043B\u0430\u0445\u044B\u043D \u0448\u0438\u043B\u0436\u04AF\u04AF\u043B\u044D\u0433", db2);
|
|
96802
|
+
} catch (err2) {
|
|
96803
|
+
throw err2;
|
|
96804
|
+
}
|
|
96805
|
+
}
|
|
96806
|
+
}
|
|
96807
|
+
});
|
|
96808
|
+
};
|
|
96809
|
+
})(InventoryTransferLogic ||= {});
|
|
96810
|
+
var logic_default5 = InventoryTransferLogic;
|
|
96811
|
+
|
|
96812
|
+
// src/routes/inventory/transfer/model.ts
|
|
96813
|
+
var InventoryTransferModel;
|
|
96814
|
+
((InventoryTransferModel) => {
|
|
96815
|
+
const createItem = createInsertSchema(inventoryTransferRequestItemTable);
|
|
96816
|
+
InventoryTransferModel.select = t.Composite([
|
|
96817
|
+
t.Partial(t.Object({
|
|
96818
|
+
inventory: selectInventoryItemSchema,
|
|
96819
|
+
createdUserId: t.String(),
|
|
96820
|
+
createdAt: t.String({ format: "date" })
|
|
96821
|
+
})),
|
|
96822
|
+
PaginationSchema
|
|
96823
|
+
]);
|
|
96824
|
+
InventoryTransferModel.create = t.Object({
|
|
96825
|
+
items: t.Array(OmitBaseSchema(createItem)),
|
|
96826
|
+
to: t.String({ format: "uuid" })
|
|
96827
|
+
});
|
|
96828
|
+
InventoryTransferModel.approve = IdSchema;
|
|
96829
|
+
})(InventoryTransferModel ||= {});
|
|
96830
|
+
var model_default = InventoryTransferModel;
|
|
96831
|
+
|
|
96832
|
+
// src/routes/inventory/transfer/index.ts
|
|
96833
|
+
var transferRoutes = new Elysia({
|
|
96834
|
+
prefix: "/tranfer",
|
|
96835
|
+
tags: ["InventoryTransfer"]
|
|
96836
|
+
}).use(better_auth_default).guard({ auth: true }).model(model_default).get("/", async ({ query, user: user2 }) => logic_default5.select(query, user2), {
|
|
96837
|
+
query: "select"
|
|
96838
|
+
}).post("/", async ({ body, user: user2 }) => logic_default5.create(body, user2), {
|
|
96839
|
+
body: "create"
|
|
96840
|
+
}).post("/:id/approve", async ({ params, user: user2 }) => logic_default5.approve(params, user2), {
|
|
96841
|
+
params: "approve",
|
|
96842
|
+
detail: {
|
|
96843
|
+
summary: "\u0428\u0438\u043B\u0436\u04AF\u04AF\u043B\u044D\u0433 \u0437\u04E9\u0432\u0448\u04E9\u04E9\u0440\u04E9\u0445"
|
|
96844
|
+
}
|
|
96845
|
+
});
|
|
96846
|
+
var transfer_default = transferRoutes;
|
|
96847
|
+
|
|
96671
96848
|
// src/routes/inventory/index.ts
|
|
96672
96849
|
var inventorySchemaRoutes = new Elysia({
|
|
96673
96850
|
prefix: "/inventory"
|
|
96674
|
-
}).use(item_default).use(log_default).use(supplier_default).use(refund_default);
|
|
96851
|
+
}).use(item_default).use(log_default).use(supplier_default).use(refund_default).use(transfer_default);
|
|
96675
96852
|
var inventory_default = inventorySchemaRoutes;
|
|
96676
96853
|
|
|
96677
96854
|
// src/lib/db/helpers/crud.helper.ts
|
|
@@ -96684,7 +96861,6 @@ class CrudHelper {
|
|
|
96684
96861
|
}
|
|
96685
96862
|
async get(input, filter) {
|
|
96686
96863
|
const wheres = [softDeletedFilter(this.table)];
|
|
96687
|
-
console.log(input);
|
|
96688
96864
|
if (!filter) {
|
|
96689
96865
|
const tableKeys = Object.keys(this.table);
|
|
96690
96866
|
for (const key of Object.keys(input)) {
|
|
@@ -96706,7 +96882,7 @@ class CrudHelper {
|
|
|
96706
96882
|
const columns = getTableColumns(this.table);
|
|
96707
96883
|
const baseQuery = db_default.select({
|
|
96708
96884
|
...columns,
|
|
96709
|
-
totalCount:
|
|
96885
|
+
totalCount: totalCountSql
|
|
96710
96886
|
}).from(this.table).where(filter ?? and(...wheres)).$dynamic();
|
|
96711
96887
|
const result = await pagination_helper_default(baseQuery, input.pagination);
|
|
96712
96888
|
const content = {
|
|
@@ -96756,7 +96932,7 @@ var MerchantBranchLogic;
|
|
|
96756
96932
|
return branch;
|
|
96757
96933
|
};
|
|
96758
96934
|
})(MerchantBranchLogic ||= {});
|
|
96759
|
-
var
|
|
96935
|
+
var logic_default6 = MerchantBranchLogic;
|
|
96760
96936
|
|
|
96761
96937
|
// src/routes/merchant/branch/schema.ts
|
|
96762
96938
|
var create5 = createInsertSchema(branchTable, {
|
|
@@ -96783,7 +96959,7 @@ var branchRoutes = new Elysia({
|
|
|
96783
96959
|
}).get("/", async ({ query }) => await service.get(query), {
|
|
96784
96960
|
query: selectBranchSchema,
|
|
96785
96961
|
permission: ["MERCHANT_BRANCH_SELECT_OWN", "MERCHANT_BRANCH_SELECT_ADMIN"]
|
|
96786
|
-
}).post("/", async ({ body, user: user2, permissions }) => await
|
|
96962
|
+
}).post("/", async ({ body, user: user2, permissions }) => await logic_default6.create(body, user2, permissions), {
|
|
96787
96963
|
body: createBranchSchema,
|
|
96788
96964
|
permission: "MERCHANT_BRANCH_CREATE"
|
|
96789
96965
|
}).guard({
|
|
@@ -97067,7 +97243,7 @@ var PermissionLogic;
|
|
|
97067
97243
|
const columns = getTableColumns(permissionGroupTable);
|
|
97068
97244
|
const baseQuery = db_default.select({
|
|
97069
97245
|
...columns,
|
|
97070
|
-
totalCount:
|
|
97246
|
+
totalCount: totalCountSql
|
|
97071
97247
|
}).from(permissionGroupTable).where(softDeletedFilter(permissionGroupTable)).$dynamic();
|
|
97072
97248
|
const permissionGroups = await pagination_helper_default(baseQuery, query.pagination);
|
|
97073
97249
|
const content = {
|
|
@@ -97092,7 +97268,7 @@ var PermissionLogic;
|
|
|
97092
97268
|
return permissions;
|
|
97093
97269
|
};
|
|
97094
97270
|
})(PermissionLogic ||= {});
|
|
97095
|
-
var
|
|
97271
|
+
var logic_default7 = PermissionLogic;
|
|
97096
97272
|
|
|
97097
97273
|
// src/routes/permission/schema.ts
|
|
97098
97274
|
var addPermissionSchema = t.Object({
|
|
@@ -97119,7 +97295,7 @@ var permissionRoutes = new Elysia({
|
|
|
97119
97295
|
return permissionList;
|
|
97120
97296
|
}, {
|
|
97121
97297
|
permission: "PERMISSION_ADD"
|
|
97122
|
-
}).post("/", ({ body }) =>
|
|
97298
|
+
}).post("/", ({ body }) => logic_default7.addPermission(body), {
|
|
97123
97299
|
body: addPermissionSchema,
|
|
97124
97300
|
permission: "PERMISSION_ADD",
|
|
97125
97301
|
beforeHandle({ status: status2, body, permissions, publicPermissions }) {
|
|
@@ -97131,7 +97307,7 @@ var permissionRoutes = new Elysia({
|
|
|
97131
97307
|
}
|
|
97132
97308
|
}).group("/group", (app) => app.guard({
|
|
97133
97309
|
permission: "PERMISSION_GROUP_ALL"
|
|
97134
|
-
}).get("/", async ({ query }) => await
|
|
97310
|
+
}).get("/", async ({ query }) => await logic_default7.selectGroups(query), {
|
|
97135
97311
|
query: selectPermissionGroupSchema
|
|
97136
97312
|
}).post("/", async ({ body }) => await groupService.create(body), {
|
|
97137
97313
|
body: createPermissionGroupSchema
|
|
@@ -97266,10 +97442,10 @@ var UserLogic;
|
|
|
97266
97442
|
const columns = getTableColumns(user);
|
|
97267
97443
|
const baseQuery = db_default.select({
|
|
97268
97444
|
...columns,
|
|
97269
|
-
totalCount:
|
|
97445
|
+
totalCount: totalCountSql
|
|
97270
97446
|
}).from(user).where(filter).$dynamic();
|
|
97271
97447
|
const users = await pagination_helper_default(baseQuery, query.pagination);
|
|
97272
|
-
const userPermissions2 = await
|
|
97448
|
+
const userPermissions2 = await logic_default7.selectByUserId(users.map((u) => u.id));
|
|
97273
97449
|
const content = {
|
|
97274
97450
|
totalCount: users[0]?.totalCount ?? 0,
|
|
97275
97451
|
totalPage: users.length === 0 ? 0 : Math.ceil(users[0].totalCount / query.pagination.size)
|
|
@@ -97313,7 +97489,7 @@ var UserLogic;
|
|
|
97313
97489
|
}
|
|
97314
97490
|
});
|
|
97315
97491
|
try {
|
|
97316
|
-
await
|
|
97492
|
+
await logic_default7.addPermission({
|
|
97317
97493
|
permissions: body.permissions,
|
|
97318
97494
|
userId: result.user.id
|
|
97319
97495
|
});
|
|
@@ -97328,7 +97504,7 @@ var UserLogic;
|
|
|
97328
97504
|
if (!updatedUser) {
|
|
97329
97505
|
return status("Not Found", "\u0425\u044D\u0440\u044D\u0433\u043B\u044D\u0433\u0447 \u043E\u043B\u0434\u0441\u043E\u043D\u0433\u04AF\u0439.");
|
|
97330
97506
|
}
|
|
97331
|
-
await
|
|
97507
|
+
await logic_default7.addPermission({
|
|
97332
97508
|
permissions: body.permissions,
|
|
97333
97509
|
userId: updatedUser.id
|
|
97334
97510
|
}, db2);
|
|
@@ -97336,7 +97512,7 @@ var UserLogic;
|
|
|
97336
97512
|
});
|
|
97337
97513
|
};
|
|
97338
97514
|
})(UserLogic ||= {});
|
|
97339
|
-
var
|
|
97515
|
+
var logic_default8 = UserLogic;
|
|
97340
97516
|
|
|
97341
97517
|
// src/routes/user/schema.ts
|
|
97342
97518
|
var select4 = createSelectSchema(user);
|
|
@@ -97368,17 +97544,17 @@ var userRoutes = new Elysia({
|
|
|
97368
97544
|
}).use(better_auth_default).use(permission_default).guard({
|
|
97369
97545
|
auth: true,
|
|
97370
97546
|
tags: ["User"]
|
|
97371
|
-
}).get("/", async ({ query, user: user2, permissions }) =>
|
|
97547
|
+
}).get("/", async ({ query, user: user2, permissions }) => logic_default8.select(query, user2, permissions), {
|
|
97372
97548
|
query: selectUserSchema,
|
|
97373
97549
|
permission: [
|
|
97374
97550
|
"USER_SELECT_BACKOFFICE",
|
|
97375
97551
|
"USER_SELECT_ADMIN",
|
|
97376
97552
|
"USER_SELECT_OWN"
|
|
97377
97553
|
]
|
|
97378
|
-
}).post("/", async ({ body, user: user2, permissions }) =>
|
|
97554
|
+
}).post("/", async ({ body, user: user2, permissions }) => logic_default8.registerUser(body, user2, permissions), {
|
|
97379
97555
|
body: createUserSchema,
|
|
97380
97556
|
permission: ["USER_CREATE_ADMIN", "USER_CREATE_OWN"]
|
|
97381
|
-
}).put("/:id", async ({ body, user: user2, permissions, params: { id } }) =>
|
|
97557
|
+
}).put("/:id", async ({ body, user: user2, permissions, params: { id } }) => logic_default8.update(id, body, user2, permissions), {
|
|
97382
97558
|
body: updateUserSchema,
|
|
97383
97559
|
permission: ["USER_CREATE_ADMIN", "USER_CREATE_OWN"]
|
|
97384
97560
|
});
|