@things-factory/warehouse-base 8.0.3 → 8.0.6
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-server/tsconfig.tsbuildinfo +1 -1
- package/package.json +8 -8
- package/server/constants/index.ts +0 -5
- package/server/constants/inventory.ts +0 -67
- package/server/constants/location.ts +0 -14
- package/server/constants/pallet.ts +0 -10
- package/server/constants/rule-type.ts +0 -5
- package/server/constants/tote.ts +0 -5
- package/server/controllers/ecommerce/ecommerce-controller.ts +0 -108
- package/server/controllers/ecommerce/index.ts +0 -2
- package/server/controllers/ecommerce/sellercraft-controller.ts +0 -100
- package/server/controllers/index.ts +0 -2
- package/server/controllers/warehouse-controller.ts +0 -181
- package/server/index.ts +0 -9
- package/server/middlewares/index.ts +0 -0
- package/server/migrations/index.ts +0 -9
- package/server/service/index.ts +0 -80
- package/server/service/inventory/index.ts +0 -6
- package/server/service/inventory/inventory-mutation.ts +0 -530
- package/server/service/inventory/inventory-query.ts +0 -1263
- package/server/service/inventory/inventory-types.ts +0 -367
- package/server/service/inventory/inventory.ts +0 -408
- package/server/service/inventory-change/index.ts +0 -6
- package/server/service/inventory-change/inventory-change-mutation.ts +0 -969
- package/server/service/inventory-change/inventory-change-query.ts +0 -93
- package/server/service/inventory-change/inventory-change-types.ts +0 -36
- package/server/service/inventory-change/inventory-change.ts +0 -164
- package/server/service/inventory-history/index.ts +0 -6
- package/server/service/inventory-history/inventory-history-mutation.ts +0 -116
- package/server/service/inventory-history/inventory-history-query.ts +0 -1845
- package/server/service/inventory-history/inventory-history-types.ts +0 -444
- package/server/service/inventory-history/inventory-history.ts +0 -203
- package/server/service/inventory-item/index.ts +0 -6
- package/server/service/inventory-item/inventory-item-mutation.ts +0 -217
- package/server/service/inventory-item/inventory-item-query.ts +0 -226
- package/server/service/inventory-item/inventory-item-type.ts +0 -74
- package/server/service/inventory-item/inventory-item.ts +0 -105
- package/server/service/inventory-item-change/index.ts +0 -6
- package/server/service/inventory-item-change/inventory-item-change-mutation.ts +0 -119
- package/server/service/inventory-item-change/inventory-item-change-query.ts +0 -47
- package/server/service/inventory-item-change/inventory-item-change-type.ts +0 -68
- package/server/service/inventory-item-change/inventory-item-change.ts +0 -92
- package/server/service/inventory-product/index.ts +0 -6
- package/server/service/inventory-product/inventory-product-mutation.ts +0 -116
- package/server/service/inventory-product/inventory-product-query.ts +0 -47
- package/server/service/inventory-product/inventory-product-type.ts +0 -59
- package/server/service/inventory-product/inventory-product.ts +0 -88
- package/server/service/location/index.ts +0 -6
- package/server/service/location/location-mutation.ts +0 -134
- package/server/service/location/location-query.ts +0 -244
- package/server/service/location/location-types.ts +0 -173
- package/server/service/location/location.ts +0 -121
- package/server/service/movement/index.ts +0 -6
- package/server/service/movement/movement-mutation.ts +0 -60
- package/server/service/movement/movement-query.ts +0 -263
- package/server/service/movement/movement-types.ts +0 -74
- package/server/service/movement/movement.ts +0 -81
- package/server/service/pallet/index.ts +0 -6
- package/server/service/pallet/pallet-mutation.ts +0 -242
- package/server/service/pallet/pallet-query.ts +0 -106
- package/server/service/pallet/pallet-types.ts +0 -80
- package/server/service/pallet/pallet.ts +0 -92
- package/server/service/pallet-count/index.ts +0 -6
- package/server/service/pallet-count/pallet-count-mutation.ts +0 -151
- package/server/service/pallet-count/pallet-count-query.ts +0 -45
- package/server/service/pallet-count/pallet-count-types.ts +0 -36
- package/server/service/pallet-count/pallet-count.ts +0 -70
- package/server/service/pallet-history/index.ts +0 -6
- package/server/service/pallet-history/pallet-history-mutation.ts +0 -114
- package/server/service/pallet-history/pallet-history-query.ts +0 -48
- package/server/service/pallet-history/pallet-history-types.ts +0 -36
- package/server/service/pallet-history/pallet-history.ts +0 -89
- package/server/service/reduced-inventory-history/index.ts +0 -3
- package/server/service/reduced-inventory-history/reduced-inventory-history.ts +0 -92
- package/server/service/tote/index.ts +0 -6
- package/server/service/tote/tote-mutation.ts +0 -201
- package/server/service/tote/tote-query.ts +0 -106
- package/server/service/tote/tote-types.ts +0 -44
- package/server/service/tote/tote.ts +0 -77
- package/server/service/warehouse/index.ts +0 -6
- package/server/service/warehouse/warehouse-mutation.ts +0 -152
- package/server/service/warehouse/warehouse-query.ts +0 -58
- package/server/service/warehouse/warehouse-types.ts +0 -50
- package/server/service/warehouse/warehouse.ts +0 -95
- package/server/utils/datetime-util.ts +0 -54
- package/server/utils/index.ts +0 -3
- package/server/utils/inventory-no-generator.ts +0 -15
- package/server/utils/inventory-util.ts +0 -490
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'
|
|
2
|
-
import { In } from 'typeorm'
|
|
3
|
-
|
|
4
|
-
import { getPermittedBizplaceIds } from '@things-factory/biz-base'
|
|
5
|
-
import { getRepository } from '@things-factory/shell'
|
|
6
|
-
|
|
7
|
-
import { Inventory } from '../inventory/inventory'
|
|
8
|
-
import { Movement } from './movement'
|
|
9
|
-
import { MovementPatch, NewMovement } from './movement-types'
|
|
10
|
-
|
|
11
|
-
@Resolver(Movement)
|
|
12
|
-
export class MovementMutation {
|
|
13
|
-
@Directive('@privilege(category: "movement", privilege: "mutation")')
|
|
14
|
-
@Directive('@transaction')
|
|
15
|
-
@Mutation(returns => Movement)
|
|
16
|
-
async createMovement(@Arg('movement') movement: NewMovement, @Ctx() context: ResolverContext): Promise<Movement> {
|
|
17
|
-
const { domain, user } = context.state
|
|
18
|
-
return await getRepository(Movement).save({
|
|
19
|
-
...movement,
|
|
20
|
-
domain,
|
|
21
|
-
creator: user,
|
|
22
|
-
updater: user
|
|
23
|
-
})
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
@Directive('@privilege(category: "movement", privilege: "mutation")')
|
|
27
|
-
@Directive('@transaction')
|
|
28
|
-
@Mutation(returns => Movement)
|
|
29
|
-
async updateMovement(
|
|
30
|
-
@Arg('id') id: string,
|
|
31
|
-
@Arg('patch') patch: MovementPatch,
|
|
32
|
-
@Ctx() context: ResolverContext
|
|
33
|
-
): Promise<Movement> {
|
|
34
|
-
const movement = await getRepository(Movement).findOne({
|
|
35
|
-
where: {
|
|
36
|
-
domain: { id: context.state.domain.id },
|
|
37
|
-
id,
|
|
38
|
-
bizplace: { id: In(await getPermittedBizplaceIds(context.state.domain, context.state.user)) }
|
|
39
|
-
}
|
|
40
|
-
})
|
|
41
|
-
|
|
42
|
-
if (patch.inventory && patch.inventory.id) {
|
|
43
|
-
patch.inventory = await getRepository(Inventory).findOneBy({ id: patch.inventory.id })
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
return await getRepository(Movement).save({
|
|
47
|
-
...movement,
|
|
48
|
-
...patch,
|
|
49
|
-
updater: context.state.user
|
|
50
|
-
})
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
@Directive('@privilege(category: "movement", privilege: "mutation")')
|
|
54
|
-
@Directive('@transaction')
|
|
55
|
-
@Mutation(returns => Boolean)
|
|
56
|
-
async deleteMovement(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<Boolean> {
|
|
57
|
-
await getRepository(Movement).delete(name)
|
|
58
|
-
return true
|
|
59
|
-
}
|
|
60
|
-
}
|
|
@@ -1,263 +0,0 @@
|
|
|
1
|
-
import { Arg, Args, Ctx, Directive, FieldResolver, Query, Resolver, Root } from 'type-graphql'
|
|
2
|
-
import { In } from 'typeorm'
|
|
3
|
-
|
|
4
|
-
import { User } from '@things-factory/auth-base'
|
|
5
|
-
import { getPermittedBizplaceIds } from '@things-factory/biz-base'
|
|
6
|
-
import { convertListParams, Domain, getRepository, ListParam } from '@things-factory/shell'
|
|
7
|
-
|
|
8
|
-
import { InventoryHistory } from '../inventory-history/inventory-history'
|
|
9
|
-
import { Movement } from './movement'
|
|
10
|
-
import { MovementCount, MovementList } from './movement-types'
|
|
11
|
-
|
|
12
|
-
@Resolver(Movement)
|
|
13
|
-
export class MovementQuery {
|
|
14
|
-
@Directive('@privilege(category: "movement", privilege: "query", domainOwnerGranted: true)')
|
|
15
|
-
@Query(returns => MovementList)
|
|
16
|
-
async movements(@Args(type => ListParam) params: ListParam, @Ctx() context: ResolverContext): Promise<MovementList> {
|
|
17
|
-
const convertedParams = convertListParams(params)
|
|
18
|
-
convertedParams.where.bizplace = In(await getPermittedBizplaceIds(context.state.domain, context.state.user))
|
|
19
|
-
|
|
20
|
-
const [items, total] = await getRepository(Movement).findAndCount({
|
|
21
|
-
...convertedParams,
|
|
22
|
-
relations: ['domain', 'bizplace', 'inventory', 'creator', 'updater']
|
|
23
|
-
})
|
|
24
|
-
return { items, total }
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
@Directive('@privilege(category: "movement", privilege: "query", domainOwnerGranted: true)')
|
|
28
|
-
@Query(returns => Movement)
|
|
29
|
-
async movement(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<Movement> {
|
|
30
|
-
const { domain, user } = context.state
|
|
31
|
-
|
|
32
|
-
return await getRepository(Movement).findOne({
|
|
33
|
-
where: {
|
|
34
|
-
domain: { id: domain.id },
|
|
35
|
-
/* name,*/
|
|
36
|
-
bizplace: { id: In(await getPermittedBizplaceIds(domain, user)) }
|
|
37
|
-
},
|
|
38
|
-
relations: ['domain', 'bizplace', 'inventory', 'creator', 'updater']
|
|
39
|
-
})
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
@Query(returns => [MovementCount])
|
|
43
|
-
async inboundMovementsCounter(
|
|
44
|
-
@Args(type => ListParam) params: ListParam,
|
|
45
|
-
@Ctx() context: ResolverContext
|
|
46
|
-
): Promise<MovementCount[]> {
|
|
47
|
-
const { domain, user } = context.state
|
|
48
|
-
|
|
49
|
-
let bizplaces = (await getPermittedBizplaceIds(domain, user))
|
|
50
|
-
.map(bizplace => {
|
|
51
|
-
return "'" + bizplace.trim() + "'"
|
|
52
|
-
})
|
|
53
|
-
.join(',')
|
|
54
|
-
|
|
55
|
-
let startDate = new Date()
|
|
56
|
-
let endDate = new Date()
|
|
57
|
-
startDate.setDate(startDate.getDate() - 30)
|
|
58
|
-
startDate.setHours(0)
|
|
59
|
-
startDate.setMinutes(0)
|
|
60
|
-
startDate.setSeconds(0)
|
|
61
|
-
const timeNow = `${endDate.getHours()}:${endDate.getMinutes()}:${endDate.getSeconds()}`
|
|
62
|
-
|
|
63
|
-
const counter = await getRepository(InventoryHistory).query(`
|
|
64
|
-
select inbound_date, count(*) from(
|
|
65
|
-
select date(ih.created_at) inbound_date from inventory_histories ih
|
|
66
|
-
where ih.bizplace_id in (${bizplaces})
|
|
67
|
-
and ih.transaction_type in ('NEW', 'PUTAWAY')
|
|
68
|
-
and created_at between '${startDate.toLocaleDateString()} 00:00:00' and '${endDate.toLocaleDateString()} ${timeNow}'
|
|
69
|
-
and domain_id = '${domain.id}'
|
|
70
|
-
) as foo
|
|
71
|
-
group by inbound_date
|
|
72
|
-
order by inbound_date asc
|
|
73
|
-
`)
|
|
74
|
-
|
|
75
|
-
let items = []
|
|
76
|
-
for (let i = 0; i < 30; i++) {
|
|
77
|
-
const month = startDate.toLocaleString('default', { month: 'short' })
|
|
78
|
-
const day = startDate.getDate()
|
|
79
|
-
|
|
80
|
-
items.push({
|
|
81
|
-
date: `${month} ${day.toString().padStart(2, '0')}`,
|
|
82
|
-
count: '0'
|
|
83
|
-
})
|
|
84
|
-
startDate.setDate(startDate.getDate() + 1)
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
let compareDate = new Date()
|
|
88
|
-
compareDate.setDate(compareDate.getDate() - 30)
|
|
89
|
-
compareDate.setHours(0)
|
|
90
|
-
compareDate.setMinutes(0)
|
|
91
|
-
compareDate.setSeconds(0)
|
|
92
|
-
|
|
93
|
-
items = items.map((item: { date: string; count: number }) => {
|
|
94
|
-
item.count =
|
|
95
|
-
counter.find(ctr => ctr.inbound_date.toLocaleDateString() === compareDate.toLocaleDateString())?.count || 0
|
|
96
|
-
|
|
97
|
-
compareDate.setDate(compareDate.getDate() + 1)
|
|
98
|
-
|
|
99
|
-
return item
|
|
100
|
-
})
|
|
101
|
-
|
|
102
|
-
return items
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
@Query(returns => [MovementCount])
|
|
106
|
-
async outboundMovementsCounter(
|
|
107
|
-
@Args(type => ListParam) params: ListParam,
|
|
108
|
-
@Ctx() context: ResolverContext
|
|
109
|
-
): Promise<MovementCount[]> {
|
|
110
|
-
const { domain, user } = context.state
|
|
111
|
-
|
|
112
|
-
let bizplaces = (await getPermittedBizplaceIds(domain, user))
|
|
113
|
-
.map(bizplace => {
|
|
114
|
-
return "'" + bizplace.trim() + "'"
|
|
115
|
-
})
|
|
116
|
-
.join(',')
|
|
117
|
-
|
|
118
|
-
let startDate = new Date()
|
|
119
|
-
let endDate = new Date()
|
|
120
|
-
startDate.setDate(startDate.getDate() - 30)
|
|
121
|
-
startDate.setHours(0)
|
|
122
|
-
startDate.setMinutes(0)
|
|
123
|
-
startDate.setSeconds(0)
|
|
124
|
-
const timeNow = `${endDate.getHours()}:${endDate.getMinutes()}:${endDate.getSeconds()}`
|
|
125
|
-
|
|
126
|
-
const counter = await getRepository(InventoryHistory).query(`
|
|
127
|
-
select outbound_date, count(*) from(
|
|
128
|
-
select date(ih.created_at) outbound_date, row_number() over(partition by ih.pallet_id order by ih.created_at desc) as rn, ih.*, iv.bizplace_id
|
|
129
|
-
from inventory_histories ih
|
|
130
|
-
inner join inventories iv on iv.pallet_id = ih.pallet_id and iv.domain_id = ih.domain_id
|
|
131
|
-
where ih.domain_id='${domain.id}'
|
|
132
|
-
and iv.bizplace_id in (${bizplaces}) and ih.status = 'TERMINATED'
|
|
133
|
-
) as src
|
|
134
|
-
where rn = 1
|
|
135
|
-
and created_at between '${startDate.toLocaleDateString()} 00:00:00' and '${endDate.toLocaleDateString()} ${timeNow}'
|
|
136
|
-
group by src.outbound_date
|
|
137
|
-
order by src.outbound_date
|
|
138
|
-
`)
|
|
139
|
-
|
|
140
|
-
let items = []
|
|
141
|
-
for (let i = 0; i < 30; i++) {
|
|
142
|
-
const month = startDate.toLocaleString('default', { month: 'short' })
|
|
143
|
-
const day = startDate.getDate()
|
|
144
|
-
|
|
145
|
-
items.push({
|
|
146
|
-
date: `${month} ${day.toString().padStart(2, '0')}`,
|
|
147
|
-
count: '0'
|
|
148
|
-
})
|
|
149
|
-
startDate.setDate(startDate.getDate() + 1)
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
let compareDate = new Date()
|
|
153
|
-
compareDate.setDate(compareDate.getDate() - 30)
|
|
154
|
-
compareDate.setHours(0)
|
|
155
|
-
compareDate.setMinutes(0)
|
|
156
|
-
compareDate.setSeconds(0)
|
|
157
|
-
|
|
158
|
-
items = items.map((item: { date: string; count: number }) => {
|
|
159
|
-
item.count =
|
|
160
|
-
counter.find(ctr => ctr.outbound_date.toLocaleDateString() === compareDate.toLocaleDateString())?.count || 0
|
|
161
|
-
|
|
162
|
-
compareDate.setDate(compareDate.getDate() + 1)
|
|
163
|
-
|
|
164
|
-
return item
|
|
165
|
-
})
|
|
166
|
-
|
|
167
|
-
return items
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
@Query(returns => [MovementCount])
|
|
171
|
-
async weeklyMovementsCounter(
|
|
172
|
-
@Arg('month') month: number,
|
|
173
|
-
@Arg('year') year: number,
|
|
174
|
-
@Ctx() context: ResolverContext
|
|
175
|
-
): Promise<MovementCount[]> {
|
|
176
|
-
const { domain, user } = context.state
|
|
177
|
-
|
|
178
|
-
let bizplaces = (await getPermittedBizplaceIds(domain, user))
|
|
179
|
-
.map(bizplace => {
|
|
180
|
-
return "'" + bizplace.trim() + "'"
|
|
181
|
-
})
|
|
182
|
-
.join(',')
|
|
183
|
-
|
|
184
|
-
if (!month && !year) {
|
|
185
|
-
// if user didn't specify the month and year, set default as last month
|
|
186
|
-
var firstOfMonth = new Date()
|
|
187
|
-
var lastOfMonth = new Date()
|
|
188
|
-
|
|
189
|
-
firstOfMonth.setMonth(firstOfMonth.getMonth() - 1)
|
|
190
|
-
firstOfMonth.setDate(1)
|
|
191
|
-
lastOfMonth.setDate(0)
|
|
192
|
-
} else {
|
|
193
|
-
var firstOfMonth = new Date(year, month - 1, 1)
|
|
194
|
-
var lastOfMonth = new Date(year, month, 0)
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
// get data from database
|
|
198
|
-
const data = await getRepository(InventoryHistory).query(`
|
|
199
|
-
select movement_date, sum(outbound_count) as outbound_count, sum(inbound_count) as inbound_count from (
|
|
200
|
-
select movement_date, count(*) as outbound_count, 0 as inbound_count from(
|
|
201
|
-
select date(ih.created_at) movement_date, row_number() over(partition by ih.pallet_id order by ih.created_at desc) as rn, ih.*, iv.bizplace_id
|
|
202
|
-
from inventory_histories ih
|
|
203
|
-
inner join inventories iv on iv.pallet_id = ih.pallet_id and iv.domain_id = ih.domain_id
|
|
204
|
-
where ih.domain_id = '${domain.id}'
|
|
205
|
-
and iv.bizplace_id in (${bizplaces}) and ih.status = 'TERMINATED'
|
|
206
|
-
) as src
|
|
207
|
-
where rn = 1
|
|
208
|
-
and created_at between '${firstOfMonth.toLocaleDateString()} 00:00:00' and '${lastOfMonth.toLocaleDateString()} 23:59:59'
|
|
209
|
-
group by movement_date
|
|
210
|
-
union all
|
|
211
|
-
select movement_date, 0 as outbound_count, count(*) as inbound_count from(
|
|
212
|
-
select date(ih.created_at) movement_date from inventory_histories ih
|
|
213
|
-
where ih.bizplace_id in (${bizplaces})
|
|
214
|
-
and ih.transaction_type in ('NEW', 'PUTAWAY')
|
|
215
|
-
and created_at between '${firstOfMonth.toLocaleDateString()} 00:00:00' and '${lastOfMonth.toLocaleDateString()} 23:59:59'
|
|
216
|
-
and domain_id = '${domain.id}'
|
|
217
|
-
) as foo
|
|
218
|
-
group by movement_date
|
|
219
|
-
order by movement_date
|
|
220
|
-
) src
|
|
221
|
-
group by movement_date
|
|
222
|
-
`)
|
|
223
|
-
|
|
224
|
-
let movements = [
|
|
225
|
-
{ week: 'Week 01', ...getMovementByWeek(data, [0, 7]) },
|
|
226
|
-
{ week: 'Week 02', ...getMovementByWeek(data, [8, 14]) },
|
|
227
|
-
{ week: 'Week 03', ...getMovementByWeek(data, [15, 21]) },
|
|
228
|
-
{ week: 'Week 04', ...getMovementByWeek(data, [21, 31]) }
|
|
229
|
-
]
|
|
230
|
-
|
|
231
|
-
// return total 4 weeks of in/outbound movements for a specific month
|
|
232
|
-
return movements
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
@FieldResolver(type => Domain)
|
|
236
|
-
async domain(@Root() movement: Movement) {
|
|
237
|
-
return await getRepository(Domain).findOneBy({ id: movement.domainId })
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
@FieldResolver(type => User)
|
|
241
|
-
async updater(@Root() movement: Movement) {
|
|
242
|
-
return await getRepository(User).findOneBy({ id: movement.updaterId })
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
@FieldResolver(type => User)
|
|
246
|
-
async creator(@Root() movement: Movement) {
|
|
247
|
-
return await getRepository(User).findOneBy({ id: movement.creatorId })
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
function getMovementByWeek(data, range): { inbound: number; outbound: number } {
|
|
252
|
-
return data
|
|
253
|
-
.filter(item => item.movement_date.getDate() > range[0] && item.movement_date.getDate() <= range[1])
|
|
254
|
-
.reduce(
|
|
255
|
-
(inout: { inbound: number; outbound: number }, curr) => {
|
|
256
|
-
inout.inbound += Number(curr.inbound_count)
|
|
257
|
-
inout.outbound += Number(curr.outbound_count)
|
|
258
|
-
|
|
259
|
-
return inout
|
|
260
|
-
},
|
|
261
|
-
{ inbound: 0, outbound: 0 }
|
|
262
|
-
)
|
|
263
|
-
}
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
import { Field, InputType, Int, ObjectType } from 'type-graphql'
|
|
2
|
-
|
|
3
|
-
import { ObjectRef } from '@things-factory/shell'
|
|
4
|
-
|
|
5
|
-
import { Movement } from './movement'
|
|
6
|
-
|
|
7
|
-
@ObjectType()
|
|
8
|
-
export class MovementCount {
|
|
9
|
-
@Field({ nullable: true })
|
|
10
|
-
date?: string
|
|
11
|
-
|
|
12
|
-
@Field({ nullable: true })
|
|
13
|
-
count?: string
|
|
14
|
-
|
|
15
|
-
@Field({ nullable: true })
|
|
16
|
-
week?: string
|
|
17
|
-
|
|
18
|
-
@Field(type => Int, { nullable: true })
|
|
19
|
-
inbound?: number
|
|
20
|
-
|
|
21
|
-
@Field(type => Int, { nullable: true })
|
|
22
|
-
outbound?: number
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
@ObjectType()
|
|
26
|
-
export class MovementList {
|
|
27
|
-
@Field(type => [Movement], { nullable: true })
|
|
28
|
-
items?: Movement[]
|
|
29
|
-
|
|
30
|
-
@Field(type => Int, { nullable: true })
|
|
31
|
-
total?: number
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
@InputType()
|
|
35
|
-
export class MovementPatch {
|
|
36
|
-
@Field({ nullable: true })
|
|
37
|
-
id?: string
|
|
38
|
-
|
|
39
|
-
@Field(type => ObjectRef, { nullable: true })
|
|
40
|
-
bizplace?: ObjectRef
|
|
41
|
-
|
|
42
|
-
@Field(type => ObjectRef, { nullable: true })
|
|
43
|
-
inventory?: ObjectRef
|
|
44
|
-
|
|
45
|
-
@Field(type => Int, { nullable: true })
|
|
46
|
-
inQty?: number
|
|
47
|
-
|
|
48
|
-
@Field(type => Int, { nullable: true })
|
|
49
|
-
outQty?: number
|
|
50
|
-
|
|
51
|
-
@Field({ nullable: true })
|
|
52
|
-
descrtiption?: string
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
@InputType()
|
|
56
|
-
export class NewMovement {
|
|
57
|
-
@Field({ nullable: true })
|
|
58
|
-
id?: string
|
|
59
|
-
|
|
60
|
-
@Field(type => ObjectRef, { nullable: true })
|
|
61
|
-
bizplace?: ObjectRef
|
|
62
|
-
|
|
63
|
-
@Field(type => ObjectRef, { nullable: true })
|
|
64
|
-
inventory?: ObjectRef
|
|
65
|
-
|
|
66
|
-
@Field(type => Int)
|
|
67
|
-
inQty: number
|
|
68
|
-
|
|
69
|
-
@Field(type => Int)
|
|
70
|
-
outQty: number
|
|
71
|
-
|
|
72
|
-
@Field({ nullable: true })
|
|
73
|
-
description?: string
|
|
74
|
-
}
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
import { Field, Float, 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 { Domain, roundTransformer } from '@things-factory/shell'
|
|
16
|
-
|
|
17
|
-
import { Inventory } from '../inventory/inventory'
|
|
18
|
-
|
|
19
|
-
@Entity()
|
|
20
|
-
@Index('ix_movement_0', (movement: Movement) => [movement.domain], { unique: true })
|
|
21
|
-
@ObjectType()
|
|
22
|
-
export class Movement {
|
|
23
|
-
@PrimaryGeneratedColumn('uuid')
|
|
24
|
-
@Field(type => ID)
|
|
25
|
-
id: string
|
|
26
|
-
|
|
27
|
-
@ManyToOne(type => Domain)
|
|
28
|
-
@Field(type => Domain)
|
|
29
|
-
domain: Domain
|
|
30
|
-
|
|
31
|
-
@RelationId((movement: Movement) => movement.domain)
|
|
32
|
-
domainId: string
|
|
33
|
-
|
|
34
|
-
@ManyToOne(type => Bizplace)
|
|
35
|
-
@Field()
|
|
36
|
-
bizplace: Bizplace
|
|
37
|
-
|
|
38
|
-
@ManyToOne(type => Inventory)
|
|
39
|
-
@Field()
|
|
40
|
-
inventory: Inventory
|
|
41
|
-
|
|
42
|
-
@Column('float', { transformer: roundTransformer })
|
|
43
|
-
@Field(type => Float)
|
|
44
|
-
inQty: number
|
|
45
|
-
|
|
46
|
-
@Column('float', { transformer: roundTransformer })
|
|
47
|
-
@Field(type => Float)
|
|
48
|
-
outQty: number
|
|
49
|
-
|
|
50
|
-
@Column({
|
|
51
|
-
nullable: true
|
|
52
|
-
})
|
|
53
|
-
@Field({ nullable: true })
|
|
54
|
-
description: string
|
|
55
|
-
|
|
56
|
-
@ManyToOne(type => User, {
|
|
57
|
-
nullable: true
|
|
58
|
-
})
|
|
59
|
-
@Field({ nullable: true })
|
|
60
|
-
creator: User
|
|
61
|
-
|
|
62
|
-
@RelationId((movement: Movement) => movement.creator)
|
|
63
|
-
creatorId: string
|
|
64
|
-
|
|
65
|
-
@ManyToOne(type => User, {
|
|
66
|
-
nullable: true
|
|
67
|
-
})
|
|
68
|
-
@Field({ nullable: true })
|
|
69
|
-
updater: User
|
|
70
|
-
|
|
71
|
-
@RelationId((movement: Movement) => movement.updater)
|
|
72
|
-
updaterId: string
|
|
73
|
-
|
|
74
|
-
@CreateDateColumn()
|
|
75
|
-
@Field({ nullable: true })
|
|
76
|
-
createdAt: Date
|
|
77
|
-
|
|
78
|
-
@UpdateDateColumn()
|
|
79
|
-
@Field({ nullable: true })
|
|
80
|
-
updatedAt: Date
|
|
81
|
-
}
|