@things-factory/sales-base 4.2.12 → 4.3.0
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/constants/attachment-type.js +2 -1
- package/dist-server/constants/attachment-type.js.map +1 -1
- package/dist-server/constants/index.js +1 -0
- package/dist-server/constants/index.js.map +1 -1
- package/dist-server/constants/order.js +12 -3
- package/dist-server/constants/order.js.map +1 -1
- package/dist-server/constants/release-good.js +9 -0
- package/dist-server/constants/release-good.js.map +1 -0
- package/dist-server/service/draft-release-good/draft-release-good-mutation.js +501 -0
- package/dist-server/service/draft-release-good/draft-release-good-mutation.js.map +1 -0
- package/dist-server/service/draft-release-good/draft-release-good-query.js +289 -0
- package/dist-server/service/draft-release-good/draft-release-good-query.js.map +1 -0
- package/dist-server/service/draft-release-good/draft-release-good-type.js +364 -0
- package/dist-server/service/draft-release-good/draft-release-good-type.js.map +1 -0
- package/dist-server/service/draft-release-good/draft-release-good.js +321 -0
- package/dist-server/service/draft-release-good/draft-release-good.js.map +1 -0
- package/dist-server/service/draft-release-good/index.js +21 -0
- package/dist-server/service/draft-release-good/index.js.map +1 -0
- package/dist-server/service/index.js +47 -19
- package/dist-server/service/index.js.map +1 -1
- package/dist-server/service/order-inventory/order-inventory-query.js +38 -1
- package/dist-server/service/order-inventory/order-inventory-query.js.map +1 -1
- package/dist-server/service/order-inventory/order-inventory-types.js +9 -1
- package/dist-server/service/order-inventory/order-inventory-types.js.map +1 -1
- package/dist-server/service/order-inventory/order-inventory.js +5 -1
- package/dist-server/service/order-inventory/order-inventory.js.map +1 -1
- package/dist-server/service/order-product/order-product-types.js +13 -13
- package/dist-server/service/order-product/order-product-types.js.map +1 -1
- package/dist-server/service/order-product/order-product.js +39 -4
- package/dist-server/service/order-product/order-product.js.map +1 -1
- package/dist-server/service/order-tote/index.js +21 -0
- package/dist-server/service/order-tote/index.js.map +1 -0
- package/dist-server/service/order-tote/order-tote-mutation.js +56 -0
- package/dist-server/service/order-tote/order-tote-mutation.js.map +1 -0
- package/dist-server/service/order-tote/order-tote-query.js +123 -0
- package/dist-server/service/order-tote/order-tote-query.js.map +1 -0
- package/dist-server/service/order-tote/order-tote-types.js +79 -0
- package/dist-server/service/order-tote/order-tote-types.js.map +1 -0
- package/dist-server/service/order-tote/order-tote.js +91 -0
- package/dist-server/service/order-tote/order-tote.js.map +1 -0
- package/dist-server/service/order-tote-item/index.js +21 -0
- package/dist-server/service/order-tote-item/index.js.map +1 -0
- package/dist-server/service/order-tote-item/order-tote-item-mutation.js +56 -0
- package/dist-server/service/order-tote-item/order-tote-item-mutation.js.map +1 -0
- package/dist-server/service/order-tote-item/order-tote-item-query.js +100 -0
- package/dist-server/service/order-tote-item/order-tote-item-query.js.map +1 -0
- package/dist-server/service/order-tote-item/order-tote-item-types.js +91 -0
- package/dist-server/service/order-tote-item/order-tote-item-types.js.map +1 -0
- package/dist-server/service/order-tote-item/order-tote-item.js +104 -0
- package/dist-server/service/order-tote-item/order-tote-item.js.map +1 -0
- package/dist-server/service/order-tote-seal/index.js +21 -0
- package/dist-server/service/order-tote-seal/index.js.map +1 -0
- package/dist-server/service/order-tote-seal/order-tote-seal-mutation.js +56 -0
- package/dist-server/service/order-tote-seal/order-tote-seal-mutation.js.map +1 -0
- package/dist-server/service/order-tote-seal/order-tote-seal-query.js +97 -0
- package/dist-server/service/order-tote-seal/order-tote-seal-query.js.map +1 -0
- package/dist-server/service/order-tote-seal/order-tote-seal-types.js +71 -0
- package/dist-server/service/order-tote-seal/order-tote-seal-types.js.map +1 -0
- package/dist-server/service/order-tote-seal/order-tote-seal.js +71 -0
- package/dist-server/service/order-tote-seal/order-tote-seal.js.map +1 -0
- package/dist-server/service/others/other-query.js +37 -2
- package/dist-server/service/others/other-query.js.map +1 -1
- package/dist-server/service/release-good/release-good-mutation.js +23 -1
- package/dist-server/service/release-good/release-good-mutation.js.map +1 -1
- package/dist-server/service/release-good/release-good-query.js +28 -2
- package/dist-server/service/release-good/release-good-query.js.map +1 -1
- package/dist-server/service/release-good/release-good.js +32 -12
- package/dist-server/service/release-good/release-good.js.map +1 -1
- package/dist-server/utils/inventory-util.js +258 -99
- package/dist-server/utils/inventory-util.js.map +1 -1
- package/dist-server/utils/order-no-generator.js +7 -0
- package/dist-server/utils/order-no-generator.js.map +1 -1
- package/package.json +13 -13
- package/server/constants/attachment-type.ts +2 -1
- package/server/constants/index.ts +1 -0
- package/server/constants/order.ts +12 -2
- package/server/constants/release-good.ts +6 -0
- package/server/service/draft-release-good/draft-release-good-mutation.ts +671 -0
- package/server/service/draft-release-good/draft-release-good-query.ts +314 -0
- package/server/service/draft-release-good/draft-release-good-type.ts +261 -0
- package/server/service/draft-release-good/draft-release-good.ts +270 -0
- package/server/service/draft-release-good/index.ts +9 -0
- package/server/service/index.ts +51 -21
- package/server/service/order-inventory/order-inventory-query.ts +40 -2
- package/server/service/order-inventory/order-inventory-types.ts +6 -0
- package/server/service/order-inventory/order-inventory.ts +5 -5
- package/server/service/order-product/order-product-types.ts +5 -3
- package/server/service/order-product/order-product.ts +30 -3
- package/server/service/order-tote/index.ts +9 -0
- package/server/service/order-tote/order-tote-mutation.ts +30 -0
- package/server/service/order-tote/order-tote-query.ts +114 -0
- package/server/service/order-tote/order-tote-types.ts +47 -0
- package/server/service/order-tote/order-tote.ts +62 -0
- package/server/service/order-tote-item/index.ts +9 -0
- package/server/service/order-tote-item/order-tote-item-mutation.ts +30 -0
- package/server/service/order-tote-item/order-tote-item-query.ts +88 -0
- package/server/service/order-tote-item/order-tote-item-types.ts +56 -0
- package/server/service/order-tote-item/order-tote-item.ts +72 -0
- package/server/service/order-tote-seal/index.ts +9 -0
- package/server/service/order-tote-seal/order-tote-seal-mutation.ts +30 -0
- package/server/service/order-tote-seal/order-tote-seal-query.ts +60 -0
- package/server/service/order-tote-seal/order-tote-seal-types.ts +41 -0
- package/server/service/order-tote-seal/order-tote-seal.ts +46 -0
- package/server/service/others/other-query.ts +43 -8
- package/server/service/release-good/release-good-mutation.ts +24 -2
- package/server/service/release-good/release-good-query.ts +57 -30
- package/server/service/release-good/release-good.ts +28 -9
- package/server/utils/inventory-util.ts +287 -106
- package/server/utils/order-no-generator.ts +42 -48
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { Field, ObjectType } from 'type-graphql'
|
|
2
|
+
import { Column, Entity, Index, ManyToOne, PrimaryGeneratedColumn, RelationId, UpdateDateColumn } from 'typeorm'
|
|
3
|
+
|
|
4
|
+
import { User } from '@things-factory/auth-base'
|
|
5
|
+
import { Domain } from '@things-factory/shell'
|
|
6
|
+
import { OrderTote } from '../order-tote/order-tote'
|
|
7
|
+
|
|
8
|
+
@Entity()
|
|
9
|
+
@Index('ix_order_tote_seal_0', (orderToteSeal: OrderToteSeal) => [orderToteSeal.name], { unique: true })
|
|
10
|
+
@ObjectType()
|
|
11
|
+
export class OrderToteSeal {
|
|
12
|
+
@PrimaryGeneratedColumn('uuid')
|
|
13
|
+
@Field()
|
|
14
|
+
id: string
|
|
15
|
+
|
|
16
|
+
@ManyToOne(type => Domain)
|
|
17
|
+
@Field()
|
|
18
|
+
domain: Domain
|
|
19
|
+
|
|
20
|
+
@RelationId((orderToteSeal: OrderToteSeal) => orderToteSeal.domain)
|
|
21
|
+
domainId: string
|
|
22
|
+
|
|
23
|
+
@Column()
|
|
24
|
+
@Field()
|
|
25
|
+
name: string
|
|
26
|
+
|
|
27
|
+
@ManyToOne(type => OrderTote)
|
|
28
|
+
@Field(type => OrderTote, { nullable: true })
|
|
29
|
+
orderTote?: OrderTote
|
|
30
|
+
|
|
31
|
+
@RelationId((orderToteSeal: OrderToteSeal) => orderToteSeal.orderTote)
|
|
32
|
+
orderToteId: string
|
|
33
|
+
|
|
34
|
+
@UpdateDateColumn()
|
|
35
|
+
@Field({ nullable: true })
|
|
36
|
+
updatedAt: Date
|
|
37
|
+
|
|
38
|
+
@ManyToOne(type => User, {
|
|
39
|
+
nullable: true
|
|
40
|
+
})
|
|
41
|
+
@Field({ nullable: true })
|
|
42
|
+
updater: User
|
|
43
|
+
|
|
44
|
+
@RelationId((orderToteSeal: OrderToteSeal) => orderToteSeal.updater)
|
|
45
|
+
updaterId: string
|
|
46
|
+
}
|
|
@@ -20,6 +20,41 @@ import { InventoryUtil } from '../../utils'
|
|
|
20
20
|
|
|
21
21
|
@Resolver()
|
|
22
22
|
export class OtherQuery {
|
|
23
|
+
@Directive('@privilege(category: "inventory", privilege: "query")')
|
|
24
|
+
@Directive('@transaction')
|
|
25
|
+
@Query(returns => InventoryProductGroupList)
|
|
26
|
+
async allBizplaceProductInventory(@Ctx() context: any, @Args() params: ListParam): Promise<InventoryProductGroupList> {
|
|
27
|
+
const { domain, user, tx, bizplace }: { domain: Domain; user: User; tx: EntityManager; bizplace: Bizplace } =
|
|
28
|
+
context.state
|
|
29
|
+
|
|
30
|
+
let permittedBizplaces: Bizplace[] = await getPermittedBizplaces(domain, user)
|
|
31
|
+
|
|
32
|
+
let bizplaceId: any = params.filters.find(filter => filter.name === 'bizplace_id').value
|
|
33
|
+
let foundPermittedBizplace: Bizplace
|
|
34
|
+
let companyBizplace: Bizplace
|
|
35
|
+
|
|
36
|
+
if (bizplaceId) {
|
|
37
|
+
foundPermittedBizplace = permittedBizplaces.find(biz => biz.id == bizplaceId)
|
|
38
|
+
|
|
39
|
+
if (foundPermittedBizplace) {
|
|
40
|
+
if (!foundPermittedBizplace.company?.id) {
|
|
41
|
+
foundPermittedBizplace = await tx.getRepository(Bizplace).findOne(foundPermittedBizplace.id, {
|
|
42
|
+
relations: ['company', 'company.domain']
|
|
43
|
+
})
|
|
44
|
+
}
|
|
45
|
+
const companyDomain: Domain = foundPermittedBizplace.company.domain
|
|
46
|
+
companyBizplace = await tx.getRepository(Bizplace).findOne({ where: { domain: companyDomain } })
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
const bizplaces: Bizplace[] = [foundPermittedBizplace, companyBizplace]
|
|
51
|
+
if (bizplace) bizplaces.push(bizplace)
|
|
52
|
+
|
|
53
|
+
const { items, total } = await InventoryUtil.bizplaceProductInventory(bizplaces, params, context, tx)
|
|
54
|
+
|
|
55
|
+
return { items, total }
|
|
56
|
+
}
|
|
57
|
+
|
|
23
58
|
@Directive('@privilege(category: "inventory", privilege: "query")')
|
|
24
59
|
@Directive('@transaction')
|
|
25
60
|
@Query(returns => InventoryProductGroupList)
|
|
@@ -165,11 +200,11 @@ export class OtherQuery {
|
|
|
165
200
|
inventory:
|
|
166
201
|
total > 0
|
|
167
202
|
? {
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
203
|
+
...items[0],
|
|
204
|
+
remainQty: total > 0 ? items[0].remainQty : null,
|
|
205
|
+
remainUomValue: total > 0 ? items[0].remainUomValue : null,
|
|
206
|
+
remainUomValueWithUom: total > 0 ? items[0].remainUomValueWithUom : ''
|
|
207
|
+
}
|
|
173
208
|
: null,
|
|
174
209
|
productId: total > 0 ? items[0].productId : null,
|
|
175
210
|
productSKU: total > 0 ? items[0].productSKU : orderInventory.productSKU,
|
|
@@ -304,7 +339,7 @@ export class OtherQuery {
|
|
|
304
339
|
let productDetail: ProductDetail
|
|
305
340
|
const hasConditions: boolean = Boolean(
|
|
306
341
|
(orderProduct?.packingType && orderProduct?.packingType.trim() != '') ||
|
|
307
|
-
|
|
342
|
+
(orderProduct?.uom && orderProduct?.uom.trim() != '')
|
|
308
343
|
)
|
|
309
344
|
let productDetailCondition: any = { product: foundProduct }
|
|
310
345
|
|
|
@@ -327,8 +362,8 @@ export class OtherQuery {
|
|
|
327
362
|
? productDetail.uomValue
|
|
328
363
|
: null
|
|
329
364
|
: orderProduct?.uomValue
|
|
330
|
-
|
|
331
|
-
|
|
365
|
+
? orderProduct.uomValue
|
|
366
|
+
: productDetail.uomValue
|
|
332
367
|
|
|
333
368
|
newOrderProduct = {
|
|
334
369
|
...orderProduct,
|
|
@@ -134,7 +134,7 @@ export class ReleaseGoodMutation {
|
|
|
134
134
|
context,
|
|
135
135
|
tx
|
|
136
136
|
)
|
|
137
|
-
} catch (error) {}
|
|
137
|
+
} catch (error) { }
|
|
138
138
|
|
|
139
139
|
if (errorsCaught.length)
|
|
140
140
|
throw new ValidationError({
|
|
@@ -226,7 +226,8 @@ export class ReleaseGoodMutation {
|
|
|
226
226
|
|
|
227
227
|
foundReleaseGood = await tx.getRepository(ReleaseGood).save({
|
|
228
228
|
...foundReleaseGood,
|
|
229
|
-
...releaseGood
|
|
229
|
+
...releaseGood,
|
|
230
|
+
remark: releaseGood?.remark ? releaseGood.remark : null
|
|
230
231
|
})
|
|
231
232
|
|
|
232
233
|
return foundReleaseGood
|
|
@@ -300,6 +301,27 @@ export class ReleaseGoodMutation {
|
|
|
300
301
|
|
|
301
302
|
return receivedRO
|
|
302
303
|
}
|
|
304
|
+
|
|
305
|
+
@Directive('@privilege(category: "order_customer", privilege: "mutation")')
|
|
306
|
+
@Directive('@transaction')
|
|
307
|
+
@Mutation(returns => Boolean)
|
|
308
|
+
async executeOrderRemark(@Arg('releaseGoodNo') releaseGoodNo: string, @Ctx() context: any): Promise<boolean> {
|
|
309
|
+
const { domain, tx, user } = context.state
|
|
310
|
+
|
|
311
|
+
await tx.getRepository(ReleaseGood).update(
|
|
312
|
+
{
|
|
313
|
+
domain,
|
|
314
|
+
name: releaseGoodNo
|
|
315
|
+
},
|
|
316
|
+
{
|
|
317
|
+
checkedRemarkAt: new Date(),
|
|
318
|
+
checkedRemarkUser: user,
|
|
319
|
+
checkedRemarkBy: user.name
|
|
320
|
+
}
|
|
321
|
+
)
|
|
322
|
+
|
|
323
|
+
return true
|
|
324
|
+
}
|
|
303
325
|
}
|
|
304
326
|
|
|
305
327
|
export async function deleteReleaseGood(tx: EntityManager, name: string, user: User, domain: Domain): Promise<boolean> {
|
|
@@ -264,6 +264,7 @@ export class ReleaseGoodQuery {
|
|
|
264
264
|
const noOfItemsFilter = params.filters.find(param => param.name === 'noOfItems')
|
|
265
265
|
const skuFilter = params.filters.find(param => param.name === 'sku')
|
|
266
266
|
const routeId = params.filters.find(param => param.name === 'routeId')
|
|
267
|
+
const orderRemarkFilter = params.filters.find(param => param.name === 'orderRemark')
|
|
267
268
|
|
|
268
269
|
if (await checkUserBelongsDomain(domain, user)) {
|
|
269
270
|
if (!statusFilter && !params.filters.some(e => e.name === 'name')) {
|
|
@@ -298,6 +299,27 @@ export class ReleaseGoodQuery {
|
|
|
298
299
|
}
|
|
299
300
|
}
|
|
300
301
|
|
|
302
|
+
if (orderRemarkFilter) {
|
|
303
|
+
const orderRemarkIdx = params.filters.findIndex(param => param.name === 'orderRemark')
|
|
304
|
+
if (orderRemarkFilter.value == true) {
|
|
305
|
+
params.filters.splice(orderRemarkIdx, 1)
|
|
306
|
+
params.filters.push({
|
|
307
|
+
name: 'remark',
|
|
308
|
+
operator: 'is_not_null',
|
|
309
|
+
value: null,
|
|
310
|
+
relation: false
|
|
311
|
+
})
|
|
312
|
+
} else {
|
|
313
|
+
params.filters.splice(orderRemarkIdx, 1)
|
|
314
|
+
params.filters.push({
|
|
315
|
+
name: 'remark',
|
|
316
|
+
operator: 'is_null',
|
|
317
|
+
value: null,
|
|
318
|
+
relation: false
|
|
319
|
+
})
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
|
|
301
323
|
const fromDateParamIdx = params.filters.findIndex(param => param.name === 'fromDate')
|
|
302
324
|
if (fromDateParamIdx >= 0) {
|
|
303
325
|
let fromDateVal = new Date(params.filters[fromDateParamIdx].value)
|
|
@@ -378,7 +400,14 @@ export class ReleaseGoodQuery {
|
|
|
378
400
|
|
|
379
401
|
qb.orderBy(sort)
|
|
380
402
|
|
|
381
|
-
|
|
403
|
+
let [items, total] = await qb.getManyAndCount()
|
|
404
|
+
|
|
405
|
+
items = items.map(item => {
|
|
406
|
+
return {
|
|
407
|
+
...item,
|
|
408
|
+
orderRemark: item?.remark ? true : false
|
|
409
|
+
}
|
|
410
|
+
})
|
|
382
411
|
|
|
383
412
|
return { items, total }
|
|
384
413
|
} catch (error) {
|
|
@@ -438,27 +467,24 @@ export class ReleaseGoodQuery {
|
|
|
438
467
|
${batchId ? `AND LOWER(${INV_ALIAS}.batch_id) LIKE '%${batchId.toLowerCase()}%'` : ''}
|
|
439
468
|
${packingType ? `AND LOWER(${INV_ALIAS}.packing_type) LIKE '%${packingType.toLowerCase()}%'` : ''}
|
|
440
469
|
${containerNo ? `AND LOWER(${GAN_ALIAS}.container_no) LIKE '%${containerNo.toLowerCase()}%'` : ''}
|
|
441
|
-
${
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
filters.find((filter: { name: string; operator: string; value: any }) => filter.name === 'inventory')
|
|
453
|
-
.operator
|
|
454
|
-
} (
|
|
470
|
+
${product?.length > 0 && product[0]
|
|
471
|
+
? `AND ${PROD_ALIAS}.id IN (${product.map((id: string) => `'${id}'`).join(', ')})`
|
|
472
|
+
: product[0] === null
|
|
473
|
+
? `AND ${PROD_ALIAS}.id isnull`
|
|
474
|
+
: ''
|
|
475
|
+
}
|
|
476
|
+
${inventory?.length > 0
|
|
477
|
+
? `
|
|
478
|
+
AND (${INV_ALIAS}.batch_id, ${PROD_ALIAS}.id) ${filters.find((filter: { name: string; operator: string; value: any }) => filter.name === 'inventory')
|
|
479
|
+
.operator
|
|
480
|
+
} (
|
|
455
481
|
${inventory
|
|
456
|
-
|
|
457
|
-
|
|
482
|
+
.map((inv: { batchId: string; productId: string }) => `('${inv.batchId}', '${inv.productId}')`)
|
|
483
|
+
.join(', ')}
|
|
458
484
|
)
|
|
459
485
|
`
|
|
460
|
-
|
|
461
|
-
|
|
486
|
+
: ''
|
|
487
|
+
}
|
|
462
488
|
`
|
|
463
489
|
|
|
464
490
|
// ${product?.length > 0 ? `AND ${PROD_ALIAS}.id IN (${product.map((id: string) => id ? `'${id}'` : null).join(', ')})` : ''}
|
|
@@ -632,7 +658,8 @@ export async function bulkReleaseGoodsAvailableItemsFunction(
|
|
|
632
658
|
packing_type: raw.packingType,
|
|
633
659
|
packing_size: raw.packingSize,
|
|
634
660
|
uom: raw.uom,
|
|
635
|
-
|
|
661
|
+
releaseQty: raw.releaseQty,
|
|
662
|
+
release_qty: raw.releaseQty,
|
|
636
663
|
}
|
|
637
664
|
})
|
|
638
665
|
)
|
|
@@ -812,16 +839,16 @@ function _extractData(rawData, validatedData) {
|
|
|
812
839
|
!raw.productId || !raw.productDetailId
|
|
813
840
|
? 'inventory or product not found'
|
|
814
841
|
: raw.releaseQty <= 0
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
842
|
+
? 'invalid release qty'
|
|
843
|
+
: raw.assignedQty < raw.releaseQty
|
|
844
|
+
? 'insufficient stock'
|
|
845
|
+
: raw.releaseDate == ''
|
|
846
|
+
? 'release date is empty'
|
|
847
|
+
: releaseDate < _getStdDateStr(new Date())
|
|
848
|
+
? 'backdate is not allowed'
|
|
849
|
+
: !raw.refNo
|
|
850
|
+
? 'ref no is empty'
|
|
851
|
+
: ''
|
|
825
852
|
}
|
|
826
853
|
})
|
|
827
854
|
}
|
|
@@ -28,25 +28,29 @@ import {
|
|
|
28
28
|
OrderProduct,
|
|
29
29
|
OrderVas,
|
|
30
30
|
ShippingOrder,
|
|
31
|
-
ShippingOrderInfo
|
|
31
|
+
ShippingOrderInfo,
|
|
32
32
|
} from '../'
|
|
33
33
|
|
|
34
|
+
import { ReleaseOrderType } from '../../constants'
|
|
35
|
+
|
|
34
36
|
const ORMCONFIG = config.get('ormconfig', {})
|
|
35
37
|
const DATABASE_TYPE = ORMCONFIG.type
|
|
36
38
|
|
|
37
|
-
export enum ReleaseOrderType {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
}
|
|
39
|
+
// export enum ReleaseOrderType {
|
|
40
|
+
// B2B = 'b2b',
|
|
41
|
+
// B2C = 'b2c'
|
|
42
|
+
// }
|
|
41
43
|
|
|
42
44
|
export enum DispatchmentStatus {
|
|
43
45
|
READY_TO_DISPATCH = 'READY_TO_DISPATCH',
|
|
44
46
|
DISPATCHED = 'DISPATCHED'
|
|
45
47
|
}
|
|
48
|
+
|
|
46
49
|
@Entity()
|
|
47
50
|
@Index('ix_release-good_0', (releaseGood: ReleaseGood) => [releaseGood.domain, releaseGood.name], { unique: true })
|
|
48
51
|
@Index('ix_release-good_1', (releaseGood: ReleaseGood) => [releaseGood.domain, releaseGood.refNo])
|
|
49
52
|
@Index('ix_release-good_2', (releaseGood: ReleaseGood) => [releaseGood.domain, releaseGood.refNo2])
|
|
53
|
+
@Index('ix_release-good_3', (releaseGood: ReleaseGood) => [releaseGood.domain, releaseGood.remark])
|
|
50
54
|
@ObjectType()
|
|
51
55
|
export class ReleaseGood {
|
|
52
56
|
@PrimaryGeneratedColumn('uuid')
|
|
@@ -92,8 +96,8 @@ export class ReleaseGood {
|
|
|
92
96
|
DATABASE_TYPE == 'postgres' || DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb'
|
|
93
97
|
? 'enum'
|
|
94
98
|
: DATABASE_TYPE == 'oracle'
|
|
95
|
-
|
|
96
|
-
|
|
99
|
+
? 'varchar2'
|
|
100
|
+
: 'smallint',
|
|
97
101
|
enum: ReleaseOrderType,
|
|
98
102
|
default: ReleaseOrderType.B2B
|
|
99
103
|
})
|
|
@@ -160,8 +164,8 @@ export class ReleaseGood {
|
|
|
160
164
|
DATABASE_TYPE == 'postgres' || DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb'
|
|
161
165
|
? 'enum'
|
|
162
166
|
: DATABASE_TYPE == 'oracle'
|
|
163
|
-
|
|
164
|
-
|
|
167
|
+
? 'varchar2'
|
|
168
|
+
: 'smallint',
|
|
165
169
|
enum: DispatchmentStatus,
|
|
166
170
|
default: DispatchmentStatus.READY_TO_DISPATCH
|
|
167
171
|
})
|
|
@@ -306,6 +310,18 @@ export class ReleaseGood {
|
|
|
306
310
|
@Field()
|
|
307
311
|
updatedAt: Date
|
|
308
312
|
|
|
313
|
+
@ManyToOne(type => User)
|
|
314
|
+
@Field(type => User, { nullable: true })
|
|
315
|
+
checkedRemarkUser: User
|
|
316
|
+
|
|
317
|
+
@Column({ nullable: true })
|
|
318
|
+
@Field({ nullable: true })
|
|
319
|
+
checkedRemarkBy: string
|
|
320
|
+
|
|
321
|
+
@Column({ nullable: true })
|
|
322
|
+
@Field({ nullable: true })
|
|
323
|
+
checkedRemarkAt: Date
|
|
324
|
+
|
|
309
325
|
@ManyToOne(type => User)
|
|
310
326
|
@Field(type => User, { nullable: true })
|
|
311
327
|
acceptedBy: User
|
|
@@ -405,4 +421,7 @@ export class ReleaseGood {
|
|
|
405
421
|
@Column({ nullable: true })
|
|
406
422
|
@Field({ nullable: true })
|
|
407
423
|
stopId: string
|
|
424
|
+
|
|
425
|
+
@Field({ nullable: true })
|
|
426
|
+
orderRemark: Boolean
|
|
408
427
|
}
|