storemw-core-client 1.0.1

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 (112) hide show
  1. package/.env +1 -0
  2. package/.vscode/launch.json +24 -0
  3. package/dist/config/config.d.ts +6 -0
  4. package/dist/config/config.js +13 -0
  5. package/dist/config/env.d.ts +7 -0
  6. package/dist/config/env.js +16 -0
  7. package/dist/config/index.d.ts +2 -0
  8. package/dist/config/index.js +8 -0
  9. package/dist/index.d.ts +1 -0
  10. package/dist/index.js +32 -0
  11. package/dist/lib/ApiService.d.ts +41 -0
  12. package/dist/lib/ApiService.js +143 -0
  13. package/dist/lib/index.d.ts +4 -0
  14. package/dist/lib/index.js +9 -0
  15. package/dist/lib/queryParams.d.ts +43 -0
  16. package/dist/lib/queryParams.js +99 -0
  17. package/dist/services/account/AccountService.d.ts +52 -0
  18. package/dist/services/account/AccountService.js +119 -0
  19. package/dist/services/auth/AuthService.d.ts +44 -0
  20. package/dist/services/auth/AuthService.js +76 -0
  21. package/dist/services/branch/BranchService.d.ts +124 -0
  22. package/dist/services/branch/BranchService.js +162 -0
  23. package/dist/services/business/BusinessService.d.ts +91 -0
  24. package/dist/services/business/BusinessService.js +153 -0
  25. package/dist/services/document/DocumentService.d.ts +578 -0
  26. package/dist/services/document/DocumentService.js +615 -0
  27. package/dist/services/index.d.ts +36 -0
  28. package/dist/services/index.js +97 -0
  29. package/dist/services/injection_field/InjectionFieldService.d.ts +113 -0
  30. package/dist/services/injection_field/InjectionFieldService.js +220 -0
  31. package/dist/services/inventory/InventoryService.d.ts +27 -0
  32. package/dist/services/inventory/InventoryService.js +231 -0
  33. package/dist/services/item/ItemService.d.ts +227 -0
  34. package/dist/services/item/ItemService.js +411 -0
  35. package/dist/services/location/LocationService.d.ts +154 -0
  36. package/dist/services/location/LocationService.js +256 -0
  37. package/dist/services/logistic/LogisticService.d.ts +104 -0
  38. package/dist/services/logistic/LogisticService.js +150 -0
  39. package/dist/services/permission/PermissionService.d.ts +296 -0
  40. package/dist/services/permission/PermissionService.js +576 -0
  41. package/dist/services/permission/config/custom/adminPermission.d.ts +4 -0
  42. package/dist/services/permission/config/custom/adminPermission.js +18 -0
  43. package/dist/services/permission/config/custom/config.d.ts +40 -0
  44. package/dist/services/permission/config/custom/config.js +23 -0
  45. package/dist/services/permission/config/default/adminPermission.d.ts +2 -0
  46. package/dist/services/permission/config/default/adminPermission.js +129 -0
  47. package/dist/services/permission/config/default/agentPermission.d.ts +2 -0
  48. package/dist/services/permission/config/default/agentPermission.js +43 -0
  49. package/dist/services/permission/config/default/customerPermission.d.ts +2 -0
  50. package/dist/services/permission/config/default/customerPermission.js +10 -0
  51. package/dist/services/permission/config/default/driverPermission.d.ts +2 -0
  52. package/dist/services/permission/config/default/driverPermission.js +4 -0
  53. package/dist/services/permission/config/default/workerPermission.d.ts +2 -0
  54. package/dist/services/permission/config/default/workerPermission.js +25 -0
  55. package/dist/services/rate/RateService.d.ts +201 -0
  56. package/dist/services/rate/RateService.js +303 -0
  57. package/dist/services/region/RegionService.d.ts +111 -0
  58. package/dist/services/region/RegionService.js +193 -0
  59. package/dist/services/repository/RepositoryService.d.ts +153 -0
  60. package/dist/services/repository/RepositoryService.js +243 -0
  61. package/dist/services/transaction/TransactionService.d.ts +153 -0
  62. package/dist/services/transaction/TransactionService.js +173 -0
  63. package/dist/services/user/BranchUserService.d.ts +129 -0
  64. package/dist/services/user/BranchUserService.js +193 -0
  65. package/dist/services/user/UserRoleService.d.ts +105 -0
  66. package/dist/services/user/UserRoleService.js +193 -0
  67. package/dist/services/user/UserService.d.ts +269 -0
  68. package/dist/services/user/UserService.js +477 -0
  69. package/dist/services/wallet/WalletService.d.ts +104 -0
  70. package/dist/services/wallet/WalletService.js +163 -0
  71. package/dist/utils/dateUtils.d.ts +6 -0
  72. package/dist/utils/dateUtils.js +28 -0
  73. package/dist/utils/index.d.ts +2 -0
  74. package/dist/utils/index.js +13 -0
  75. package/package.json +27 -0
  76. package/src/config/config.ts +15 -0
  77. package/src/config/env.ts +18 -0
  78. package/src/config/index.ts +2 -0
  79. package/src/index.ts +41 -0
  80. package/src/lib/ApiService.ts +170 -0
  81. package/src/lib/index.ts +5 -0
  82. package/src/lib/queryParams.ts +162 -0
  83. package/src/services/account/AccountService.ts +232 -0
  84. package/src/services/auth/AuthService.ts +125 -0
  85. package/src/services/branch/BranchService.ts +330 -0
  86. package/src/services/business/BusinessService.ts +277 -0
  87. package/src/services/document/DocumentService.ts +1471 -0
  88. package/src/services/index.ts +73 -0
  89. package/src/services/injection_field/InjectionFieldService.ts +483 -0
  90. package/src/services/inventory/InventoryService.ts +314 -0
  91. package/src/services/item/ItemService.ts +707 -0
  92. package/src/services/location/LocationService.ts +505 -0
  93. package/src/services/logistic/LogisticService.ts +285 -0
  94. package/src/services/permission/PermissionService.ts +1069 -0
  95. package/src/services/permission/config/custom/adminPermission.ts +19 -0
  96. package/src/services/permission/config/custom/config.ts +39 -0
  97. package/src/services/permission/config/default/adminPermission.ts +129 -0
  98. package/src/services/permission/config/default/agentPermission.ts +42 -0
  99. package/src/services/permission/config/default/customerPermission.ts +9 -0
  100. package/src/services/permission/config/default/driverPermission.ts +4 -0
  101. package/src/services/permission/config/default/workerPermission.ts +25 -0
  102. package/src/services/rate/RateService.ts +570 -0
  103. package/src/services/region/RegionService.ts +353 -0
  104. package/src/services/repository/RepositoryService.ts +437 -0
  105. package/src/services/transaction/TransactionService.ts +404 -0
  106. package/src/services/user/BranchUserService.ts +381 -0
  107. package/src/services/user/UserRoleService.ts +342 -0
  108. package/src/services/user/UserService.ts +807 -0
  109. package/src/services/wallet/WalletService.ts +300 -0
  110. package/src/utils/dateUtils.ts +26 -0
  111. package/src/utils/index.ts +2 -0
  112. package/tsconfig.json +119 -0
@@ -0,0 +1,437 @@
1
+ import { ApiService, ApiServiceType } from '@/lib';
2
+
3
+ import {
4
+ buildApiListUrl,
5
+ BuildApiListParamsProps,
6
+ buildApiGetUrl,
7
+ BuildApiGetParamsProps,
8
+ filterOperatorTypes
9
+ } from '@/lib';
10
+
11
+ export const repositoryTypes = {
12
+ container: "container",
13
+ package: "package"
14
+ } as const
15
+
16
+ export const repositoryTargetTypes = {
17
+ container: "container",
18
+ package: "package"
19
+ } as const
20
+
21
+ export type RepositoryType = typeof repositoryTypes[keyof typeof repositoryTypes]
22
+ export type RepositoryTargetType = typeof repositoryTargetTypes[keyof typeof repositoryTargetTypes]
23
+ export type RepositoryTargetKey = keyof typeof repositoryTargetTypes
24
+
25
+ export type RepositoryServiceProps = ApiServiceType & {
26
+ repositoryTargetType?: RepositoryTargetType
27
+ repositoryType?: RepositoryType
28
+ };
29
+
30
+ export type ListRepositoryProps = BuildApiListParamsProps & {
31
+ repositoryType?: RepositoryType
32
+ }
33
+
34
+ export type GetRepositoryProps = BuildApiGetParamsProps & {
35
+ id: number | string
36
+ repositoryType?: RepositoryType
37
+ }
38
+
39
+ type Item = {
40
+ itemId: number,
41
+ code: string,
42
+ name: string,
43
+ qty: number,
44
+ uomName: string,
45
+ uomId: number,
46
+ price: number,
47
+ description: string,
48
+ remark: string,
49
+ }
50
+
51
+ type Scheduler = {
52
+ integrationIds: string[],
53
+ dataTypes: string[]
54
+ }
55
+
56
+ export type CreateRepositoryProps = {
57
+ repositoryTargetType?: RepositoryTargetType
58
+ repositoryType?: RepositoryType
59
+ data:
60
+ // container
61
+ {
62
+ container: {
63
+ repoNumber: string,
64
+ numberAlternative: string,
65
+ repoDate: string,
66
+ remark: string
67
+ locationId: number,
68
+ toLocationId: number,
69
+ numberSeal: string,
70
+ numberMarking: string,
71
+ loadDate: string,
72
+ etaDate: string,
73
+ person: string,
74
+ provider: string
75
+ items: Item[],
76
+ scheduler?: Scheduler,
77
+ }
78
+ } |
79
+ // package
80
+ {
81
+ package: {
82
+ repoNumber: string,
83
+ numberAlternative: string,
84
+ repoDate: string,
85
+ remark: string
86
+ locationId: number,
87
+ uomId: number,
88
+ uomName: string,
89
+ packingType: "new",
90
+ documentIds: number[],
91
+ items: Item[],
92
+ // scheduler?: Scheduler,
93
+ }
94
+ }
95
+ }
96
+
97
+ export type UpdateRepositoryProps = {
98
+ id: number
99
+ repositoryTargetType?: RepositoryTargetType
100
+ repositoryType?: RepositoryType
101
+ data:
102
+ // container
103
+ {
104
+ container: {
105
+ repoNumber: string,
106
+ numberAlternative: string,
107
+ repoDate: string,
108
+ remark: string
109
+ locationId: number,
110
+ toLocationId: number,
111
+ numberSeal: string,
112
+ numberMarking: string,
113
+ loadDate: string,
114
+ etaDate: string,
115
+ person: string,
116
+ provider: string
117
+ items: (Item & { repositoryItemId: number; })[],
118
+ // scheduler?: Scheduler,
119
+ }
120
+ } |
121
+ // package
122
+ {
123
+ package: {
124
+ repoNumber: string,
125
+ numberAlternative: string,
126
+ repoDate: string,
127
+ remark: string
128
+ locationId: number,
129
+ uomId: number,
130
+ uomName: string,
131
+ packingType: "new",
132
+ documentIds: number[],
133
+ items: (Item & { documentItemId: number; })[],
134
+ // scheduler?: Scheduler,
135
+ }
136
+ }
137
+ }
138
+
139
+ export type RemoveRepositoryProps = {
140
+ repositoryTargetType?: RepositoryTargetType
141
+ ids: number[]
142
+ }
143
+
144
+ export type GetDataTypeRepositoryProps = {
145
+ repositoryType?: RepositoryType
146
+ }
147
+
148
+ const getCreatePayload = (repositoryType: RepositoryType, data: CreateRepositoryProps["data"]) => {
149
+
150
+ if (repositoryType === "container" && "container" in data) {
151
+
152
+ return {
153
+ repository: {
154
+ repo_number: data.container.repoNumber,
155
+ number_alternative: data.container.numberAlternative,
156
+ repo_date: data.container.repoDate,
157
+ remark: data.container.remark,
158
+ },
159
+ props: {
160
+ location_id: data.container.locationId,
161
+ to_location_id: data.container.toLocationId,
162
+ number_seal: data.container.numberSeal,
163
+ number_marking: data.container.numberMarking,
164
+ load_date: data.container.loadDate,
165
+ eta_date: data.container.etaDate,
166
+ person: data.container.person,
167
+ provider: data.container.provider
168
+ },
169
+ scheduler: {
170
+ ...(data.container?.scheduler?.integrationIds ? { integration_ids: data.container.scheduler.integrationIds } : {}),
171
+ ...(data.container?.scheduler?.dataTypes ? { data_types: data.container.scheduler.dataTypes } : {}),
172
+ },
173
+ items: data.container.items.map(i => ({
174
+ id: i.itemId,
175
+ code: i.code,
176
+ name: i.name,
177
+ qty: i.qty,
178
+ uom_lbl: i.uomName,
179
+ uom: i.uomId,
180
+ price: i.price,
181
+ description: i.description,
182
+ remark: i.remark
183
+ }))
184
+ }
185
+ }
186
+
187
+ if (repositoryType === "package" && "package" in data) {
188
+
189
+ return {
190
+ repository: {
191
+ repo_number: data.package.repoNumber,
192
+ number_alternative: data.package.numberAlternative,
193
+ repo_date: data.package.repoDate,
194
+ remark: data.package.remark,
195
+ },
196
+ props: {
197
+ location_id: data.package.locationId,
198
+ uom_id: data.package.uomId,
199
+ uom_lbl: data.package.uomName,
200
+ packing_type: data.package.packingType,
201
+ document_id: data.package.documentIds
202
+ },
203
+ items: data.package.items.map(i => ({
204
+ id: i.itemId,
205
+ code: i.code,
206
+ name: i.name,
207
+ qty: i.qty,
208
+ uom_lbl: i.uomName,
209
+ uom: i.uomId,
210
+ price: i.price,
211
+ description: i.description,
212
+ remark: i.remark
213
+ }))
214
+ }
215
+ }
216
+
217
+ }
218
+
219
+ const getUpdatePayload = (repositoryType: RepositoryType, data: UpdateRepositoryProps["data"]) => {
220
+
221
+ if (repositoryType === "container" && "container" in data) {
222
+
223
+ return {
224
+ repository: {
225
+ repo_number: data.container.repoNumber,
226
+ number_alternative: data.container.numberAlternative,
227
+ repo_date: data.container.repoDate,
228
+ remark: data.container.remark,
229
+ },
230
+ props: {
231
+ location_id: data.container.locationId,
232
+ to_location_id: data.container.toLocationId,
233
+ number_seal: data.container.numberSeal,
234
+ number_marking: data.container.numberMarking,
235
+ load_date: data.container.loadDate,
236
+ eta_date: data.container.etaDate,
237
+ person: data.container.person,
238
+ provider: data.container.provider
239
+ },
240
+ // scheduler: {
241
+ // ...(data.container?.scheduler?.integrationIds ? { integration_ids: data.container.scheduler.integrationIds } : {}),
242
+ // ...(data.container?.scheduler?.dataTypes ? { data_types: data.container.scheduler.dataTypes } : {}),
243
+ // },
244
+ items: data.container.items.map(i => ({
245
+ id: i.itemId,
246
+ repository_item_id: i.repositoryItemId,
247
+ code: i.code,
248
+ name: i.name,
249
+ qty: i.qty,
250
+ uom_lbl: i.uomName,
251
+ uom: i.uomId,
252
+ price: i.price,
253
+ description: i.description,
254
+ remark: i.remark
255
+ }))
256
+ }
257
+ }
258
+
259
+ if (repositoryType === "package" && "package" in data) {
260
+
261
+ return {
262
+ repository: {
263
+ repo_number: data.package.repoNumber,
264
+ number_alternative: data.package.numberAlternative,
265
+ repo_date: data.package.repoDate,
266
+ remark: data.package.remark,
267
+ },
268
+ props: {
269
+ location_id: data.package.locationId,
270
+ uom_id: data.package.uomId,
271
+ uom_lbl: data.package.uomName,
272
+ packing_type: data.package.packingType,
273
+ document_id: data.package.documentIds
274
+ },
275
+ items: data.package.items.map(i => ({
276
+ id: i.itemId,
277
+ code: i.code,
278
+ name: i.name,
279
+ qty: i.qty,
280
+ uom_lbl: i.uomName,
281
+ uom: i.uomId,
282
+ price: i.price,
283
+ description: i.description,
284
+ remark: i.remark,
285
+ props: i.documentItemId ? { document_item_id: i.documentItemId } : {}
286
+ }))
287
+ }
288
+ }
289
+
290
+ }
291
+
292
+ export const RepositoryService = (props?: RepositoryServiceProps) => {
293
+
294
+ const { repositoryType = "container", repositoryTargetType, ...rest } = props ?? {};
295
+
296
+ const { makeCall } = ApiService(rest?.customToken ? { customToken: rest.customToken } : {})
297
+
298
+ const endpoint1 = "repository";
299
+ const endpoint2 = "repositories"
300
+
301
+ const list = async (props: ListRepositoryProps) => {
302
+
303
+ const { repositoryType: overrideRepositoryType } = props;
304
+
305
+ const url = buildApiListUrl(
306
+ `${endpoint2}/${overrideRepositoryType || repositoryType}`,
307
+ props
308
+ );
309
+
310
+ const response = await makeCall({
311
+ url,
312
+ method: "get",
313
+ payload: {},
314
+ // configuration
315
+ });
316
+
317
+ return response;
318
+
319
+ }
320
+
321
+ const get = async (props: GetRepositoryProps) => {
322
+
323
+ const { id, repositoryType: overrideRepositoryType } = props;
324
+
325
+ const url = buildApiGetUrl(
326
+ `${endpoint1}/${overrideRepositoryType || repositoryType}/${id}`,
327
+ props
328
+ );
329
+
330
+ const response = await makeCall({
331
+ url,
332
+ method: "get",
333
+ payload: {},
334
+ // configuration
335
+ });
336
+
337
+ return response;
338
+
339
+ }
340
+
341
+ const create = async ({ data, repositoryType: overrideRepositoryType, repositoryTargetType: overrideRepositoryTargetType }: CreateRepositoryProps) => {
342
+
343
+ let _repositoryType = overrideRepositoryType || repositoryType
344
+
345
+ let payload: any = getCreatePayload(_repositoryType, data)
346
+
347
+ let url = `${endpoint1}`;
348
+
349
+ let postData = {
350
+ scope: {
351
+ target: overrideRepositoryTargetType || repositoryTargetType,
352
+ action: "",
353
+ },
354
+ payload
355
+ }
356
+
357
+ const response = await makeCall({
358
+ url,
359
+ method: "post",
360
+ payload: postData
361
+ });
362
+
363
+ return response;
364
+
365
+ }
366
+
367
+ const update = async ({ id, data, repositoryType: overrideRepositoryType, repositoryTargetType: overrideRepositoryTargetType }: UpdateRepositoryProps) => {
368
+
369
+ let url = `${endpoint1}/${id}`
370
+
371
+ let _repositoryType = overrideRepositoryType || repositoryType
372
+
373
+ let payload: any = getUpdatePayload(_repositoryType, data)
374
+
375
+ const postData = {
376
+ scope: {
377
+ target: overrideRepositoryTargetType || repositoryTargetType,
378
+ action: "",
379
+ },
380
+ payload
381
+ }
382
+
383
+ const response = await makeCall({
384
+ url,
385
+ method: "put",
386
+ payload: postData
387
+ });
388
+
389
+ return response;
390
+
391
+ }
392
+
393
+ const remove = async ({ ids, repositoryTargetType: overrideRepositoryTargetType }: RemoveRepositoryProps) => {
394
+
395
+ let url = `${endpoint2}/delete`
396
+
397
+ const postData = {
398
+ scope: {
399
+ target: overrideRepositoryTargetType || repositoryTargetType,
400
+ },
401
+ payload: {
402
+ ids
403
+ }
404
+ }
405
+
406
+ const response = await makeCall({
407
+ url,
408
+ method: "post",
409
+ payload: postData
410
+ });
411
+
412
+ return response;
413
+
414
+ }
415
+
416
+ const getDataTypes = async ({ repositoryType: overrideRepositoryType }: GetDataTypeRepositoryProps) => {
417
+
418
+ let url = `${endpoint2}/data_types/${overrideRepositoryType || repositoryType}`
419
+
420
+ const response = await makeCall({
421
+ url,
422
+ method: "get",
423
+ });
424
+
425
+ return response;
426
+
427
+ }
428
+
429
+ return {
430
+ list,
431
+ get,
432
+ create,
433
+ update,
434
+ remove,
435
+ getDataTypes
436
+ };
437
+ }