@things-factory/operato-wms 6.1.83 → 6.1.84
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 +39 -39
- package/server/graphql/index.ts +0 -7
- package/server/graphql/resolvers/board-setting/board-settings.ts +0 -93
- package/server/graphql/resolvers/board-setting/index.ts +0 -5
- package/server/graphql/resolvers/custom/elccl/elccl-daily-collection-report.ts +0 -92
- package/server/graphql/resolvers/custom/elccl/elccl-daily-order-inventory-report.ts +0 -147
- package/server/graphql/resolvers/custom/elccl/elccl-inventory-history-pallet-detail-report.ts +0 -135
- package/server/graphql/resolvers/custom/elccl/elccl-inventory-history-report.ts +0 -178
- package/server/graphql/resolvers/custom/elccl/elccl-inventory-history-summary-report.ts +0 -123
- package/server/graphql/resolvers/custom/elccl/elccl-onhand-inventory-counter.ts +0 -36
- package/server/graphql/resolvers/custom/elccl/index.ts +0 -15
- package/server/graphql/resolvers/custom/kimeda/index.ts +0 -5
- package/server/graphql/resolvers/custom/kimeda/kimeda-onhand-inventory-counter.ts +0 -42
- package/server/graphql/resolvers/dashboard/arrival-notices-by-status.ts +0 -34
- package/server/graphql/resolvers/dashboard/collection-orders-by-status.ts +0 -24
- package/server/graphql/resolvers/dashboard/delivery-orders-by-status.ts +0 -24
- package/server/graphql/resolvers/dashboard/index.ts +0 -17
- package/server/graphql/resolvers/dashboard/inventory-expiry-monitor.ts +0 -60
- package/server/graphql/resolvers/dashboard/outbound-order-by-status.ts +0 -126
- package/server/graphql/resolvers/dashboard/release-goods-by-status.ts +0 -34
- package/server/graphql/resolvers/dashboard/unit-inbounded-outbounded.ts +0 -61
- package/server/graphql/resolvers/index.ts +0 -24
- package/server/graphql/resolvers/inventory-comparison/index.ts +0 -5
- package/server/graphql/resolvers/inventory-comparison/inventory-comparison-list.ts +0 -101
- package/server/graphql/resolvers/opa-menu/index.ts +0 -5
- package/server/graphql/resolvers/opa-menu/opa-menus.ts +0 -77
- package/server/graphql/resolvers/other/add-release-good-products.ts +0 -413
- package/server/graphql/resolvers/other/index.ts +0 -10
- package/server/graphql/resolvers/other/page-settings.ts +0 -105
- package/server/graphql/resolvers/reports/costing-report.ts +0 -194
- package/server/graphql/resolvers/reports/inbound-order-details-report.ts +0 -216
- package/server/graphql/resolvers/reports/inbound-serial-number-report.ts +0 -156
- package/server/graphql/resolvers/reports/index.ts +0 -18
- package/server/graphql/resolvers/reports/outbound-order-details-report.ts +0 -250
- package/server/graphql/resolvers/reports/outbound-serial-number-report.ts +0 -159
- package/server/graphql/resolvers/reports/product-label-report.ts +0 -55
- package/server/graphql/resolvers/reports/release-inventory-report.ts +0 -201
- package/server/graphql/resolvers/shipping-provider/index.ts +0 -5
- package/server/graphql/resolvers/shipping-provider/shipping-providers.ts +0 -18
- package/server/graphql/resolvers/warehouse-inventory-adjustment/index.ts +0 -5
- package/server/graphql/resolvers/warehouse-inventory-adjustment/warehouse-intentory-adjustment.ts +0 -79
- package/server/graphql/types/board-setting/board-setting.ts +0 -10
- package/server/graphql/types/board-setting/index.ts +0 -6
- package/server/graphql/types/custom/elccl/elccl-daily-collection-report-list.ts +0 -8
- package/server/graphql/types/custom/elccl/elccl-daily-collection-report.ts +0 -24
- package/server/graphql/types/custom/elccl/elccl-daily-order-inventory-report-list.ts +0 -8
- package/server/graphql/types/custom/elccl/elccl-daily-order-inventory-report.ts +0 -19
- package/server/graphql/types/custom/elccl/elccl-inventory-report.ts +0 -16
- package/server/graphql/types/custom/elccl/elccl-inventory-summary-report-list.ts +0 -8
- package/server/graphql/types/custom/elccl/elccl-inventory-summary-report.ts +0 -17
- package/server/graphql/types/custom/elccl/elccl-pallet-detail-report.ts +0 -16
- package/server/graphql/types/custom/elccl/index.ts +0 -28
- package/server/graphql/types/custom/kimeda/index.ts +0 -3
- package/server/graphql/types/dashboard/index.ts +0 -14
- package/server/graphql/types/dashboard/inventory-expiry-counter.ts +0 -9
- package/server/graphql/types/dashboard/inventory-expiry-status.ts +0 -8
- package/server/graphql/types/dashboard/order-status-counter.ts +0 -8
- package/server/graphql/types/index.ts +0 -38
- package/server/graphql/types/inventory-comparison/index.ts +0 -11
- package/server/graphql/types/inventory-comparison/inventory-comparison-list.ts +0 -8
- package/server/graphql/types/inventory-comparison/inventory-comparison.ts +0 -12
- package/server/graphql/types/opa-menu/index.ts +0 -6
- package/server/graphql/types/opa-menu/opa-menu.ts +0 -39
- package/server/graphql/types/other/index.ts +0 -19
- package/server/graphql/types/other/page-setting.ts +0 -33
- package/server/graphql/types/reports/costing-report-list.ts +0 -8
- package/server/graphql/types/reports/costing-report.ts +0 -13
- package/server/graphql/types/reports/inbound-order-details-report-list.ts +0 -8
- package/server/graphql/types/reports/inbound-order-details-report.ts +0 -53
- package/server/graphql/types/reports/inbound-serial-number-report-list.ts +0 -8
- package/server/graphql/types/reports/inbound-serial-number-report.ts +0 -17
- package/server/graphql/types/reports/index.ts +0 -43
- package/server/graphql/types/reports/outbound-order-details-report-list.ts +0 -8
- package/server/graphql/types/reports/outbound-order-details-report.ts +0 -70
- package/server/graphql/types/reports/outbound-serial-number-report-list.ts +0 -8
- package/server/graphql/types/reports/outbound-serial-number-report.ts +0 -19
- package/server/graphql/types/reports/product-label-report-list.ts +0 -8
- package/server/graphql/types/reports/product-label-report.ts +0 -10
- package/server/graphql/types/reports/release-inventory-report-list.ts +0 -8
- package/server/graphql/types/reports/release-inventory-report.ts +0 -23
- package/server/graphql/types/shipping-provider/index.ts +0 -8
- package/server/graphql/types/shipping-provider/shipping-provider-list.ts +0 -7
- package/server/graphql/types/shipping-provider/shipping-provider.ts +0 -7
- package/server/graphql/types/warehouse-inventory-adjustment/index.ts +0 -5
- package/server/index.ts +0 -4
- package/server/migrations/1568858861188-SeedSetting.ts +0 -57
- package/server/migrations/1623308919899-SeedLocationRecommendSetting.ts +0 -35
- package/server/migrations/1623381200659-SeedStoringRule.ts +0 -33
- package/server/migrations/index.ts +0 -9
- package/server/opa-app-setting-constants.ts +0 -9
- package/server/routes.ts +0 -1
- package/server/utils/index.ts +0 -1
- package/server/utils/report-query-util.ts +0 -47
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import gql from 'graphql-tag'
|
|
2
|
-
|
|
3
|
-
export const OutboundOrderDetailsReport = gql`
|
|
4
|
-
type OutboundOrderDetailsReport {
|
|
5
|
-
bizplace: Bizplace
|
|
6
|
-
doNo: String
|
|
7
|
-
doDeliveryDate: String
|
|
8
|
-
deliveryAddress: String
|
|
9
|
-
manifestNo: String
|
|
10
|
-
roNo: String
|
|
11
|
-
roType: String
|
|
12
|
-
status: String
|
|
13
|
-
refNo1: String
|
|
14
|
-
refNo2: String
|
|
15
|
-
refNo3: String
|
|
16
|
-
exportOption: Boolean
|
|
17
|
-
containerNo: String
|
|
18
|
-
containerSize: String
|
|
19
|
-
transportOption: String
|
|
20
|
-
vehicleNo: String
|
|
21
|
-
driverName: String
|
|
22
|
-
palletQty: Int
|
|
23
|
-
acceptedBy: String
|
|
24
|
-
acceptedAt: String
|
|
25
|
-
orderCreatedBy: String
|
|
26
|
-
orderCreatedAt: String
|
|
27
|
-
pickingStart: String
|
|
28
|
-
pickingComplete: String
|
|
29
|
-
packingStart: String
|
|
30
|
-
packingComplete: String
|
|
31
|
-
sortingStart: String
|
|
32
|
-
sortingComplete: String
|
|
33
|
-
loadingStart: String
|
|
34
|
-
loadingComplete: String
|
|
35
|
-
orderLineItem: Int
|
|
36
|
-
product: Product
|
|
37
|
-
packType: String
|
|
38
|
-
packSize: Int
|
|
39
|
-
qty: Int
|
|
40
|
-
uomValue: Float
|
|
41
|
-
returnToLocationQty: Int
|
|
42
|
-
returnToLocationUomValue: Float
|
|
43
|
-
uom: String
|
|
44
|
-
unitCost: Float
|
|
45
|
-
unitVolume: Float
|
|
46
|
-
totalVolume: Float
|
|
47
|
-
unitNettWeight: Float
|
|
48
|
-
totalUnitNettWeight: Float
|
|
49
|
-
unitGrossWeight: Float
|
|
50
|
-
totalUnitGrossWeight: Float
|
|
51
|
-
weightUnit: String
|
|
52
|
-
palletId: String
|
|
53
|
-
cartonId: String
|
|
54
|
-
batchId: String
|
|
55
|
-
batchIdRef: String
|
|
56
|
-
expirationDate: String
|
|
57
|
-
manufactureDate: String
|
|
58
|
-
pickedAt: String
|
|
59
|
-
pickedBy: String
|
|
60
|
-
packedAt: String
|
|
61
|
-
packedBy: String
|
|
62
|
-
checkedRemarkBy: String
|
|
63
|
-
checkedRemarkAt: String
|
|
64
|
-
loadedAt: String
|
|
65
|
-
loadedBy: String
|
|
66
|
-
manifestedAt: String
|
|
67
|
-
manifestedBy: String
|
|
68
|
-
dispatchedAt: String
|
|
69
|
-
}
|
|
70
|
-
`
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import gql from 'graphql-tag'
|
|
2
|
-
|
|
3
|
-
export const OutboundSerialNumberReport = gql`
|
|
4
|
-
type OutboundSerialNumberReport {
|
|
5
|
-
no: Int
|
|
6
|
-
bizplace: Bizplace
|
|
7
|
-
fullDeliveryAddress: String
|
|
8
|
-
attentionTo:String
|
|
9
|
-
palletId: String
|
|
10
|
-
cartonId: String
|
|
11
|
-
orderNo: String
|
|
12
|
-
refNo1: String
|
|
13
|
-
refNo2: String
|
|
14
|
-
refNo3: String
|
|
15
|
-
product: Product
|
|
16
|
-
serialNumber: String
|
|
17
|
-
etd: String
|
|
18
|
-
}
|
|
19
|
-
`
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import gql from 'graphql-tag'
|
|
2
|
-
|
|
3
|
-
export const ReleaseInventoryReport = gql`
|
|
4
|
-
type ReleaseInventoryReport {
|
|
5
|
-
bizplace: Bizplace
|
|
6
|
-
product: Product
|
|
7
|
-
packingType: String
|
|
8
|
-
assignedQty: Float
|
|
9
|
-
assignedUomValue: Float
|
|
10
|
-
assignedUom: String
|
|
11
|
-
orderNo: String
|
|
12
|
-
type: String
|
|
13
|
-
orderAt: String
|
|
14
|
-
releaseDate: String
|
|
15
|
-
palletId: String
|
|
16
|
-
cartonId: String
|
|
17
|
-
batchId: String
|
|
18
|
-
batchIdRef: String
|
|
19
|
-
expirationDate: String
|
|
20
|
-
manufactureDate: String
|
|
21
|
-
location: Location
|
|
22
|
-
}
|
|
23
|
-
`
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { ShippingProviderList } from './shipping-provider-list'
|
|
2
|
-
import { ShippingProvider } from './shipping-provider'
|
|
3
|
-
|
|
4
|
-
export const Query = `
|
|
5
|
-
shippingProviders: ShippingProviderList @transaction
|
|
6
|
-
`
|
|
7
|
-
|
|
8
|
-
export const Types = [ShippingProviderList, ShippingProvider]
|
package/server/index.ts
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import { MigrationInterface, QueryRunner } from 'typeorm'
|
|
2
|
-
|
|
3
|
-
import { logger } from '@things-factory/env'
|
|
4
|
-
import { Setting } from '@things-factory/setting-base'
|
|
5
|
-
import { Domain, getRepository } from '@things-factory/shell'
|
|
6
|
-
|
|
7
|
-
import {
|
|
8
|
-
LOCATION_LABEL_SETTING_KEY,
|
|
9
|
-
PALLET_LABEL_SETTING_KEY,
|
|
10
|
-
REUSABLE_PALLET_LABEL_SETTING_KEY
|
|
11
|
-
} from '../opa-app-setting-constants'
|
|
12
|
-
|
|
13
|
-
const SEED_SETTINGS = [
|
|
14
|
-
{
|
|
15
|
-
name: LOCATION_LABEL_SETTING_KEY,
|
|
16
|
-
description: 'Location label ID',
|
|
17
|
-
value: '',
|
|
18
|
-
category: 'board'
|
|
19
|
-
},
|
|
20
|
-
{
|
|
21
|
-
name: PALLET_LABEL_SETTING_KEY,
|
|
22
|
-
description: 'Pallet label ID',
|
|
23
|
-
value: '',
|
|
24
|
-
category: 'board'
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
name: REUSABLE_PALLET_LABEL_SETTING_KEY,
|
|
28
|
-
description: 'Reusable pallet label ID',
|
|
29
|
-
value: '',
|
|
30
|
-
category: 'board'
|
|
31
|
-
}
|
|
32
|
-
]
|
|
33
|
-
|
|
34
|
-
export class SeedSetting1568858861188 implements MigrationInterface {
|
|
35
|
-
public async up(queryRunner: QueryRunner): Promise<any> {
|
|
36
|
-
const repository = getRepository(Setting)
|
|
37
|
-
const domainRepository = getRepository(Domain)
|
|
38
|
-
const domain = await domainRepository.findOneBy({ name: 'SYSTEM' })
|
|
39
|
-
|
|
40
|
-
try {
|
|
41
|
-
SEED_SETTINGS.forEach(async setting => {
|
|
42
|
-
await repository.save({ ...setting, domain })
|
|
43
|
-
})
|
|
44
|
-
} catch (e) {
|
|
45
|
-
logger.error(e)
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
public async down(queryRunner: QueryRunner): Promise<any> {
|
|
50
|
-
const repository = getRepository(Setting)
|
|
51
|
-
|
|
52
|
-
SEED_SETTINGS.reverse().forEach(async setting => {
|
|
53
|
-
let record = await repository.findOneBy({ name: setting.name })
|
|
54
|
-
await repository.remove(record)
|
|
55
|
-
})
|
|
56
|
-
}
|
|
57
|
-
}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { EntityManager, getConnection, MigrationInterface, QueryRunner } from 'typeorm'
|
|
2
|
-
|
|
3
|
-
import { Setting } from '@things-factory/setting-base'
|
|
4
|
-
import { Domain } from '@things-factory/shell'
|
|
5
|
-
|
|
6
|
-
export class SeedLocationRecommendSetting1623308919899 implements MigrationInterface {
|
|
7
|
-
public async up(queryRunner: QueryRunner): Promise<any> {
|
|
8
|
-
await getConnection().transaction(async (trx: EntityManager) => {
|
|
9
|
-
const domains: Domain[] = await trx.getRepository(Domain).find({ where: { extType: 'warehouse' } })
|
|
10
|
-
await Promise.all(
|
|
11
|
-
domains.map(async (domain: Domain) => {
|
|
12
|
-
await trx.getRepository(Setting).save({
|
|
13
|
-
domain,
|
|
14
|
-
name: 'location-recommendation-level',
|
|
15
|
-
description: 'Location recommendation level',
|
|
16
|
-
category: 'location',
|
|
17
|
-
value: 'level 1'
|
|
18
|
-
})
|
|
19
|
-
})
|
|
20
|
-
)
|
|
21
|
-
})
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
public async down(queryRunner: QueryRunner): Promise<any> {
|
|
25
|
-
await getConnection().transaction(async (trx: EntityManager) => {
|
|
26
|
-
const settings: Setting[] = await trx
|
|
27
|
-
.getRepository(Setting)
|
|
28
|
-
.find({ where: { name: 'location-recommendation-level' } })
|
|
29
|
-
if (settings.length >= 0) {
|
|
30
|
-
const settingIds: string[] = settings.map((setting: Setting) => setting.id)
|
|
31
|
-
await trx.getRepository(Setting).delete(settingIds)
|
|
32
|
-
}
|
|
33
|
-
})
|
|
34
|
-
}
|
|
35
|
-
}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { EntityManager, getConnection, MigrationInterface, QueryRunner } from 'typeorm'
|
|
2
|
-
|
|
3
|
-
import { Setting } from '@things-factory/setting-base'
|
|
4
|
-
import { Domain } from '@things-factory/shell'
|
|
5
|
-
|
|
6
|
-
export class SeedSetting1623381200659 implements MigrationInterface {
|
|
7
|
-
public async up(queryRunner: QueryRunner): Promise<any> {
|
|
8
|
-
await getConnection().transaction(async (trx: EntityManager) => {
|
|
9
|
-
const domains: Domain[] = await trx.getRepository(Domain).find({ where: { extType: 'warehouse' } })
|
|
10
|
-
await Promise.all(
|
|
11
|
-
domains.map(async (domain: Domain) => {
|
|
12
|
-
await trx.getRepository(Setting).save({
|
|
13
|
-
domain,
|
|
14
|
-
name: 'rule-for-storing-product',
|
|
15
|
-
description: 'location sorting rules',
|
|
16
|
-
category: 'location',
|
|
17
|
-
value: '{"name":"DESC"}'
|
|
18
|
-
})
|
|
19
|
-
})
|
|
20
|
-
)
|
|
21
|
-
})
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
public async down(queryRunner: QueryRunner): Promise<any> {
|
|
25
|
-
await getConnection().transaction(async (trx: EntityManager) => {
|
|
26
|
-
const settings: Setting[] = await trx.getRepository(Setting).find({ where: { name: 'rule-for-storing-product' } })
|
|
27
|
-
if (settings.length >= 0) {
|
|
28
|
-
const settingIds: string[] = settings.map((setting: Setting) => setting.id)
|
|
29
|
-
await trx.getRepository(Setting).delete(settingIds)
|
|
30
|
-
}
|
|
31
|
-
})
|
|
32
|
-
}
|
|
33
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
const glob = require('glob')
|
|
2
|
-
const path = require('path')
|
|
3
|
-
|
|
4
|
-
export var migrations = []
|
|
5
|
-
|
|
6
|
-
glob.sync(path.resolve(__dirname, '.', '**', '*.js')).forEach(function(file) {
|
|
7
|
-
if (file.indexOf('index.js') !== -1) return
|
|
8
|
-
migrations = migrations.concat(Object.values(require(path.resolve(file))) || [])
|
|
9
|
-
})
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export const LOCATION_LABEL_SETTING_KEY = 'location-label'
|
|
2
|
-
export const PALLET_LABEL_SETTING_KEY = 'pallet-label'
|
|
3
|
-
export const CARTON_LABEL_SETTING_KEY = 'carton-label'
|
|
4
|
-
export const REUSABLE_PALLET_LABEL_SETTING_KEY = 'reusable-pallet-label'
|
|
5
|
-
export const HOME_DASHBOARD_PREFIX = 'dashboard'
|
|
6
|
-
export const PRODUCT_LABEL_SETTING_KEY = 'product-label'
|
|
7
|
-
export const INTENALIZED_AWB_SETTING_KEY = 'internalized-awb-label'
|
|
8
|
-
export const ROUTE_LABEL_SETTING_KEY = 'route-label'
|
|
9
|
-
export const TOTE_LABEL_SETTING_KEY = 'tote-label'
|
package/server/routes.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
process.on('bootstrap-module-domain-private-route' as any, (app, domainPrivateRouter) => {})
|
package/server/utils/index.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './report-query-util'
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { ListParam } from '@things-factory/shell'
|
|
2
|
-
import { EntityManager } from 'typeorm'
|
|
3
|
-
import { Bizplace } from '@things-factory/biz-base'
|
|
4
|
-
|
|
5
|
-
export async function rawProductsQuery(tx: EntityManager, params: ListParam, bizplace: Bizplace) {
|
|
6
|
-
let product = params.filters.find(data => data.name === 'product')
|
|
7
|
-
let productDesc = params.filters.find(data => data.name === 'productDescription')
|
|
8
|
-
|
|
9
|
-
let productQuery = ''
|
|
10
|
-
if (product) {
|
|
11
|
-
let productValue = product.value
|
|
12
|
-
.toLowerCase()
|
|
13
|
-
.split(',')
|
|
14
|
-
.map(prod => {
|
|
15
|
-
return "'%" + prod.trim().replace(/'/g, "''") + "%'"
|
|
16
|
-
})
|
|
17
|
-
.join(',')
|
|
18
|
-
productQuery = `AND (
|
|
19
|
-
Lower(prd.name) LIKE ANY(ARRAY[${productValue}])
|
|
20
|
-
OR Lower(prd.sku) LIKE ANY(ARRAY[${productValue}])
|
|
21
|
-
OR Lower(prd.description) LIKE ANY(ARRAY[${productValue}])
|
|
22
|
-
OR Lower(prd.brand) LIKE ANY(ARRAY[${productValue}])
|
|
23
|
-
OR Lower(prd.brand_sku) LIKE ANY(ARRAY[${productValue}])
|
|
24
|
-
)`
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
let productDescQuery = ''
|
|
28
|
-
if (productDesc) {
|
|
29
|
-
productDescQuery = "AND Lower(description) LIKE '%" + productDesc.value.toLowerCase() + "%'"
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
await tx.query(
|
|
33
|
-
`
|
|
34
|
-
create temp table temp_products on commit drop AS
|
|
35
|
-
(
|
|
36
|
-
select prd.id, prd.sku, prd.name, prd.description, prd.type, prd.id::varchar as product_id, prd.brand, prd.brand_sku
|
|
37
|
-
from products prd
|
|
38
|
-
inner join bizplaces b on b.id = prd.bizplace_id
|
|
39
|
-
inner join companies c on c.domain_id = b.domain_id
|
|
40
|
-
inner join bizplaces b2 on b2.company_id = c.id
|
|
41
|
-
where b2.id = $1
|
|
42
|
-
${productQuery}
|
|
43
|
-
GROUP BY prd.id, prd.sku, prd.name, prd.description, prd.brand, prd.brand_sku
|
|
44
|
-
)`,
|
|
45
|
-
[bizplace.id]
|
|
46
|
-
)
|
|
47
|
-
}
|