@things-factory/warehouse-base 8.0.3 → 8.0.5

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 (88) hide show
  1. package/dist-server/tsconfig.tsbuildinfo +1 -1
  2. package/package.json +8 -8
  3. package/server/constants/index.ts +0 -5
  4. package/server/constants/inventory.ts +0 -67
  5. package/server/constants/location.ts +0 -14
  6. package/server/constants/pallet.ts +0 -10
  7. package/server/constants/rule-type.ts +0 -5
  8. package/server/constants/tote.ts +0 -5
  9. package/server/controllers/ecommerce/ecommerce-controller.ts +0 -108
  10. package/server/controllers/ecommerce/index.ts +0 -2
  11. package/server/controllers/ecommerce/sellercraft-controller.ts +0 -100
  12. package/server/controllers/index.ts +0 -2
  13. package/server/controllers/warehouse-controller.ts +0 -181
  14. package/server/index.ts +0 -9
  15. package/server/middlewares/index.ts +0 -0
  16. package/server/migrations/index.ts +0 -9
  17. package/server/service/index.ts +0 -80
  18. package/server/service/inventory/index.ts +0 -6
  19. package/server/service/inventory/inventory-mutation.ts +0 -530
  20. package/server/service/inventory/inventory-query.ts +0 -1263
  21. package/server/service/inventory/inventory-types.ts +0 -367
  22. package/server/service/inventory/inventory.ts +0 -408
  23. package/server/service/inventory-change/index.ts +0 -6
  24. package/server/service/inventory-change/inventory-change-mutation.ts +0 -969
  25. package/server/service/inventory-change/inventory-change-query.ts +0 -93
  26. package/server/service/inventory-change/inventory-change-types.ts +0 -36
  27. package/server/service/inventory-change/inventory-change.ts +0 -164
  28. package/server/service/inventory-history/index.ts +0 -6
  29. package/server/service/inventory-history/inventory-history-mutation.ts +0 -116
  30. package/server/service/inventory-history/inventory-history-query.ts +0 -1845
  31. package/server/service/inventory-history/inventory-history-types.ts +0 -444
  32. package/server/service/inventory-history/inventory-history.ts +0 -203
  33. package/server/service/inventory-item/index.ts +0 -6
  34. package/server/service/inventory-item/inventory-item-mutation.ts +0 -217
  35. package/server/service/inventory-item/inventory-item-query.ts +0 -226
  36. package/server/service/inventory-item/inventory-item-type.ts +0 -74
  37. package/server/service/inventory-item/inventory-item.ts +0 -105
  38. package/server/service/inventory-item-change/index.ts +0 -6
  39. package/server/service/inventory-item-change/inventory-item-change-mutation.ts +0 -119
  40. package/server/service/inventory-item-change/inventory-item-change-query.ts +0 -47
  41. package/server/service/inventory-item-change/inventory-item-change-type.ts +0 -68
  42. package/server/service/inventory-item-change/inventory-item-change.ts +0 -92
  43. package/server/service/inventory-product/index.ts +0 -6
  44. package/server/service/inventory-product/inventory-product-mutation.ts +0 -116
  45. package/server/service/inventory-product/inventory-product-query.ts +0 -47
  46. package/server/service/inventory-product/inventory-product-type.ts +0 -59
  47. package/server/service/inventory-product/inventory-product.ts +0 -88
  48. package/server/service/location/index.ts +0 -6
  49. package/server/service/location/location-mutation.ts +0 -134
  50. package/server/service/location/location-query.ts +0 -244
  51. package/server/service/location/location-types.ts +0 -173
  52. package/server/service/location/location.ts +0 -121
  53. package/server/service/movement/index.ts +0 -6
  54. package/server/service/movement/movement-mutation.ts +0 -60
  55. package/server/service/movement/movement-query.ts +0 -263
  56. package/server/service/movement/movement-types.ts +0 -74
  57. package/server/service/movement/movement.ts +0 -81
  58. package/server/service/pallet/index.ts +0 -6
  59. package/server/service/pallet/pallet-mutation.ts +0 -242
  60. package/server/service/pallet/pallet-query.ts +0 -106
  61. package/server/service/pallet/pallet-types.ts +0 -80
  62. package/server/service/pallet/pallet.ts +0 -92
  63. package/server/service/pallet-count/index.ts +0 -6
  64. package/server/service/pallet-count/pallet-count-mutation.ts +0 -151
  65. package/server/service/pallet-count/pallet-count-query.ts +0 -45
  66. package/server/service/pallet-count/pallet-count-types.ts +0 -36
  67. package/server/service/pallet-count/pallet-count.ts +0 -70
  68. package/server/service/pallet-history/index.ts +0 -6
  69. package/server/service/pallet-history/pallet-history-mutation.ts +0 -114
  70. package/server/service/pallet-history/pallet-history-query.ts +0 -48
  71. package/server/service/pallet-history/pallet-history-types.ts +0 -36
  72. package/server/service/pallet-history/pallet-history.ts +0 -89
  73. package/server/service/reduced-inventory-history/index.ts +0 -3
  74. package/server/service/reduced-inventory-history/reduced-inventory-history.ts +0 -92
  75. package/server/service/tote/index.ts +0 -6
  76. package/server/service/tote/tote-mutation.ts +0 -201
  77. package/server/service/tote/tote-query.ts +0 -106
  78. package/server/service/tote/tote-types.ts +0 -44
  79. package/server/service/tote/tote.ts +0 -77
  80. package/server/service/warehouse/index.ts +0 -6
  81. package/server/service/warehouse/warehouse-mutation.ts +0 -152
  82. package/server/service/warehouse/warehouse-query.ts +0 -58
  83. package/server/service/warehouse/warehouse-types.ts +0 -50
  84. package/server/service/warehouse/warehouse.ts +0 -95
  85. package/server/utils/datetime-util.ts +0 -54
  86. package/server/utils/index.ts +0 -3
  87. package/server/utils/inventory-no-generator.ts +0 -15
  88. package/server/utils/inventory-util.ts +0 -490
@@ -1,93 +0,0 @@
1
- import { Arg, Args, Ctx, FieldResolver, Query, Resolver, Root } from 'type-graphql'
2
- import { Brackets, SelectQueryBuilder } from 'typeorm'
3
-
4
- import { User } from '@things-factory/auth-base'
5
- import { getPermittedBizplaceIds } from '@things-factory/biz-base'
6
- import { buildQuery, Domain, getRepository, ListParam, getQueryBuilderFromListParams } from '@things-factory/shell'
7
-
8
- import { InventoryChange } from './inventory-change'
9
- import { InventoryChangeList } from './inventory-change-types'
10
-
11
- @Resolver(InventoryChange)
12
- export class InventoryChangeQuery {
13
- @Query(returns => InventoryChange)
14
- async inventoryChange(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<InventoryChange> {
15
- const { domain } = context.state
16
-
17
- return await getRepository(InventoryChange).findOne({
18
- where: { domain: { id: domain.id }, name },
19
- relations: ['domain', 'creator', 'updater']
20
- })
21
- }
22
-
23
- @Query(returns => InventoryChangeList)
24
- async inventoryChanges(
25
- @Args(type => ListParam) params: ListParam,
26
- @Ctx() context: ResolverContext
27
- ): Promise<InventoryChangeList> {
28
- const { domain, user, tx } = context.state
29
-
30
- let bizplaces: any[]
31
- if (!params.filters.find(filter => filter.name === 'bizplace')) {
32
- bizplaces = await getPermittedBizplaceIds(domain, user)
33
- } else {
34
- bizplaces = [params.filters.find(filter => filter.name === 'bizplace').value]
35
- params.filters = [...params.filters.filter(filter => filter.name != 'bizplace')]
36
- }
37
-
38
- const qb: SelectQueryBuilder<InventoryChange> = getQueryBuilderFromListParams({
39
- repository: getRepository(InventoryChange),
40
- params,
41
- domain,
42
- alias: 'ic',
43
- searchables: ['palletId']
44
- })
45
-
46
- qb.innerJoinAndSelect('ic.domain', 'dm')
47
- .leftJoinAndSelect('ic.bizplace', 'biz')
48
- .leftJoinAndSelect('ic.inventory', 'iv')
49
- .leftJoinAndSelect('iv.bizplace', 'ivBiz')
50
- .leftJoinAndSelect('iv.product', 'ivPrd')
51
- .leftJoinAndSelect('iv.location', 'ivLoc')
52
- .leftJoinAndSelect('ic.product', 'product')
53
- .leftJoinAndSelect('ic.location', 'location')
54
- .leftJoinAndSelect('ic.lastInventoryHistory', 'livh')
55
- .leftJoinAndSelect('ic.inventoryItemChange', 'itc')
56
- .leftJoinAndSelect('livh.product', 'livhProduct')
57
- .leftJoinAndSelect('livh.warehouse', 'livhWarehouse')
58
- .leftJoinAndSelect('livh.location', 'livhLocation')
59
- .leftJoinAndSelect('livh.bizplace', 'livhBiz')
60
- .innerJoinAndSelect('ic.creator', 'creator')
61
- .innerJoinAndSelect('ic.updater', 'updater')
62
-
63
- qb.andWhere(
64
- new Brackets(qb => {
65
- qb.where('"iv"."bizplace_id" IN (:...bizplaces)')
66
- qb.orWhere('"ic"."bizplace_id" IN (:...bizplaces)')
67
- })
68
- )
69
-
70
- qb.setParameters({
71
- bizplaces: bizplaces
72
- })
73
-
74
- let [items, total] = await qb.getManyAndCount()
75
-
76
- return { items, total }
77
- }
78
-
79
- @FieldResolver(type => InventoryChange)
80
- async domain(@Root() inventoryChange: InventoryChange) {
81
- return await getRepository(Domain).findOneBy({ id: inventoryChange.domainId })
82
- }
83
-
84
- @FieldResolver(type => InventoryChange)
85
- async updater(@Root() inventoryChange: InventoryChange) {
86
- return await getRepository(User).findOneBy({ id: inventoryChange.updaterId })
87
- }
88
-
89
- @FieldResolver(type => InventoryChange)
90
- async creator(@Root() inventoryChange: InventoryChange) {
91
- return await getRepository(User).findOneBy({ id: inventoryChange.creatorId })
92
- }
93
- }
@@ -1,36 +0,0 @@
1
- import { Field, InputType, Int, ObjectType } from 'type-graphql'
2
-
3
- import { InventoryChange } from './inventory-change'
4
-
5
- @ObjectType()
6
- export class InventoryChangeList {
7
- @Field(type => [InventoryChange], { nullable: true })
8
- items?: InventoryChange[]
9
-
10
- @Field(type => Int, { nullable: true })
11
- total?: number
12
- }
13
-
14
- @InputType()
15
- export class InventoryChangePatch {
16
- @Field({ nullable: true })
17
- id?: string
18
-
19
- @Field({ nullable: true })
20
- name?: string
21
-
22
- @Field({ nullable: true })
23
- description?: string
24
-
25
- @Field({ nullable: true })
26
- cuFlag?: string
27
- }
28
-
29
- @InputType()
30
- export class NewInventoryChange {
31
- @Field()
32
- name: string
33
-
34
- @Field({ nullable: true })
35
- description: string
36
- }
@@ -1,164 +0,0 @@
1
- import { Field, ID, ObjectType } from 'type-graphql'
2
- import {
3
- Column,
4
- CreateDateColumn,
5
- Entity,
6
- Index,
7
- ManyToOne,
8
- PrimaryGeneratedColumn,
9
- RelationId,
10
- UpdateDateColumn
11
- } from 'typeorm'
12
-
13
- import { User } from '@things-factory/auth-base'
14
- import { Bizplace } from '@things-factory/biz-base'
15
- import { Product, ProductDetail } from '@things-factory/product-base'
16
- import { Domain, ScalarDate, roundTransformer } from '@things-factory/shell'
17
-
18
- import { InventoryHistory } from '../inventory-history/inventory-history'
19
- import { InventoryItemChange } from '../inventory-item-change/inventory-item-change'
20
- import { Inventory } from '../inventory/inventory'
21
- import { Location } from '../location/location'
22
-
23
- @Entity()
24
- @Index('ix_inventory-change_0', (inventoryChange: InventoryChange) => [inventoryChange.domain, inventoryChange.id], {
25
- unique: true
26
- })
27
- @Index('ix_inventory-change_1', (inventoryChange: InventoryChange) => [
28
- inventoryChange.domain,
29
- inventoryChange.inventory
30
- ])
31
- @ObjectType()
32
- export class InventoryChange {
33
- @PrimaryGeneratedColumn('uuid')
34
- @Field(type => ID)
35
- readonly id: string
36
-
37
- @Column()
38
- @Field()
39
- name: string
40
-
41
- @Column({ nullable: true })
42
- @Field({ nullable: true })
43
- palletId: string
44
-
45
- @Column({ nullable: true })
46
- @Field({ nullable: true })
47
- cartonId: string
48
-
49
- @ManyToOne(type => Domain)
50
- @Field(type => Domain)
51
- domain: Domain
52
-
53
- @RelationId((inventoryChange: InventoryChange) => inventoryChange.domain)
54
- domainId: string
55
-
56
- @Column({ nullable: true })
57
- @Field({ nullable: true })
58
- batchId: string
59
-
60
- @Column({ nullable: true })
61
- @Field({ nullable: true })
62
- batchIdRef: string
63
-
64
- @ManyToOne(type => Bizplace, { nullable: true })
65
- @Field({ nullable: true })
66
- bizplace: Bizplace
67
-
68
- @ManyToOne(type => Inventory, { nullable: true })
69
- @Field(type => Inventory, { nullable: true })
70
- inventory: Inventory
71
-
72
- @ManyToOne(type => Product, { nullable: true })
73
- @Field(type => Product, { nullable: true })
74
- product: Product
75
-
76
- @ManyToOne(type => InventoryItemChange, { nullable: true })
77
- @Field(type => InventoryItemChange, { nullable: true })
78
- inventoryItemChange: InventoryItemChange
79
-
80
- /**
81
- * To be updated to remove nullable. once all process that links to inventory has been updated to use product detail instead of product
82
- */
83
- @ManyToOne(type => ProductDetail, { nullable: true })
84
- @Field(type => ProductDetail, { nullable: true })
85
- productDetail: ProductDetail
86
-
87
- @ManyToOne(type => Location, { nullable: true })
88
- @Field(type => Location, { nullable: true })
89
- location: Location
90
-
91
- @Column({ nullable: true })
92
- @Field({ nullable: true })
93
- packingType: string
94
-
95
- @Column('float', { nullable: true, transformer: roundTransformer })
96
- @Field({ nullable: true })
97
- packingSize: number
98
-
99
- @Column({ nullable: true })
100
- @Field({ nullable: true })
101
- uom: string
102
-
103
- @Column('float', { nullable: true, transformer: roundTransformer })
104
- @Field({ nullable: true })
105
- weight: number
106
-
107
- @Column('float', { nullable: true, transformer: roundTransformer })
108
- @Field({ nullable: true })
109
- uomValue: number
110
-
111
- @Column('float', { nullable: true, transformer: roundTransformer })
112
- @Field({ nullable: true })
113
- qty: number
114
-
115
- @Column('float', { nullable: true, transformer: roundTransformer })
116
- @Field({ nullable: true })
117
- unitCost: number
118
-
119
- @Column()
120
- @Field()
121
- status: string
122
-
123
- @ManyToOne(type => InventoryHistory, { nullable: true })
124
- @Field({ nullable: true })
125
- lastInventoryHistory: InventoryHistory
126
-
127
- @Column('date', { nullable: true })
128
- @Field(type => ScalarDate, { nullable: true })
129
- expirationDate: Date
130
-
131
- @Column('int', { nullable: true })
132
- @Field({ nullable: true })
133
- manufactureYear: number
134
-
135
- @Column('date', { nullable: true })
136
- @Field(type => ScalarDate, { nullable: true })
137
- manufactureDate: Date
138
-
139
- @Column()
140
- @Field()
141
- transactionType: string
142
-
143
- @CreateDateColumn()
144
- @Field({ nullable: true })
145
- createdAt: Date
146
-
147
- @UpdateDateColumn()
148
- @Field({ nullable: true })
149
- updatedAt: Date
150
-
151
- @ManyToOne(type => User, { nullable: true })
152
- @Field({ nullable: true })
153
- creator: User
154
-
155
- @RelationId((inventoryChange: InventoryChange) => inventoryChange.creator)
156
- creatorId: string
157
-
158
- @ManyToOne(type => User, { nullable: true })
159
- @Field({ nullable: true })
160
- updater: User
161
-
162
- @RelationId((inventoryChange: InventoryChange) => inventoryChange.updater)
163
- updaterId: string
164
- }
@@ -1,6 +0,0 @@
1
- import { InventoryHistory } from './inventory-history'
2
- import { InventoryHistoryMutation } from './inventory-history-mutation'
3
- import { InventoryHistoryQuery } from './inventory-history-query'
4
-
5
- export const entities = [InventoryHistory]
6
- export const resolvers = [InventoryHistoryQuery, InventoryHistoryMutation]
@@ -1,116 +0,0 @@
1
- import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'
2
- import { In } from 'typeorm'
3
-
4
- import { InventoryHistory } from './inventory-history'
5
- import { InventoryHistoryPatch, NewInventoryHistory } from './inventory-history-types'
6
-
7
- @Resolver(InventoryHistory)
8
- export class InventoryHistoryMutation {
9
- @Directive('@transaction')
10
- @Mutation(returns => InventoryHistory)
11
- async createInventoryHistory(
12
- @Arg('inventoryHistory') inventoryHistory: NewInventoryHistory,
13
- @Ctx() context: ResolverContext
14
- ): Promise<InventoryHistory> {
15
- const { domain, user, tx } = context.state
16
-
17
- return await tx.getRepository(InventoryHistory).save({
18
- ...inventoryHistory,
19
- domain: domain,
20
- creator: user,
21
- updater: user
22
- })
23
- }
24
-
25
- @Directive('@transaction')
26
- @Mutation(returns => InventoryHistory)
27
- async updateInventoryHistory(
28
- @Arg('name') name: string,
29
- @Arg('patch') patch: InventoryHistoryPatch,
30
- @Ctx() context: ResolverContext
31
- ): Promise<InventoryHistory> {
32
- const { domain, user, tx } = context.state
33
-
34
- const repository = tx.getRepository(InventoryHistory)
35
- const inventoryHistory = await repository.findOne({
36
- where: { domain: { id: domain.id }, name }
37
- })
38
-
39
- return await repository.save({
40
- ...inventoryHistory,
41
- ...patch,
42
- updater: user
43
- })
44
- }
45
-
46
- @Directive('@transaction')
47
- @Mutation(returns => [InventoryHistory])
48
- async updateMultipleInventoryHistory(
49
- @Arg('patches', type => [InventoryHistoryPatch]) patches: InventoryHistoryPatch[],
50
- @Ctx() context: ResolverContext
51
- ): Promise<InventoryHistory[]> {
52
- const { domain, user, tx } = context.state
53
-
54
- let results = []
55
- const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')
56
- const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')
57
- const inventoryHistoryRepo = tx.getRepository(InventoryHistory)
58
-
59
- if (_createRecords.length > 0) {
60
- let newRecord: NewInventoryHistory = new InventoryHistory()
61
- for (let i = 0; i < _createRecords.length; i++) {
62
- newRecord = _createRecords[i]
63
- }
64
-
65
- const result = await inventoryHistoryRepo.save({
66
- ...newRecord,
67
- domain: domain,
68
- creator: user,
69
- updater: user
70
- })
71
-
72
- results.push({ ...result, cuFlag: '+' })
73
- }
74
-
75
- if (_updateRecords.length > 0) {
76
- for (let i = 0; i < _updateRecords.length; i++) {
77
- const newRecord = _updateRecords[i]
78
- const inventoryHistory = await inventoryHistoryRepo.findOneBy({ id: newRecord.id })
79
-
80
- const result = await inventoryHistoryRepo.save({
81
- ...inventoryHistory,
82
- ...newRecord,
83
- updater: user
84
- })
85
-
86
- results.push({ ...result, cuFlag: 'M' })
87
- }
88
- }
89
-
90
- return results
91
- }
92
-
93
- @Directive('@transaction')
94
- @Mutation(returns => Boolean)
95
- async deleteInventoryHistory(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<Boolean> {
96
- const { domain, tx } = context.state
97
-
98
- await tx.getRepository(InventoryHistory).delete({ domain: { id: domain.id }, name })
99
- return true
100
- }
101
-
102
- @Directive('transaction')
103
- @Mutation(returns => Boolean)
104
- async deleteInventoryHistories(
105
- @Arg('names', type => [String]) names: string[],
106
- @Ctx() context: ResolverContext
107
- ): Promise<Boolean> {
108
- const { domain, tx } = context.state
109
-
110
- await tx.getRepository(InventoryHistory).delete({
111
- domain: { id: domain.id },
112
- name: In(names)
113
- })
114
- return true
115
- }
116
- }