@ketvietlab/ketsuite 0.1.20 → 0.1.24
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/cli.js +9 -3
- package/dist/cli.js.map +1 -1
- package/dist/demo/crm.d.ts +3 -0
- package/dist/demo/crm.d.ts.map +1 -0
- package/dist/demo/crm.js +418 -0
- package/dist/demo/crm.js.map +1 -0
- package/dist/demo/partner.d.ts +8 -0
- package/dist/demo/partner.d.ts.map +1 -0
- package/dist/demo/partner.js +179 -0
- package/dist/demo/partner.js.map +1 -0
- package/dist/demo/product.d.ts +25 -0
- package/dist/demo/product.d.ts.map +1 -0
- package/dist/demo/product.js +579 -0
- package/dist/demo/product.js.map +1 -0
- package/dist/demo/purchase.d.ts +4 -0
- package/dist/demo/purchase.d.ts.map +1 -0
- package/dist/demo/purchase.js +58 -0
- package/dist/demo/purchase.js.map +1 -0
- package/dist/demo/sale.d.ts +4 -0
- package/dist/demo/sale.d.ts.map +1 -0
- package/dist/demo/sale.js +52 -0
- package/dist/demo/sale.js.map +1 -0
- package/dist/demo/seed.d.ts +14 -0
- package/dist/demo/seed.d.ts.map +1 -0
- package/dist/demo/seed.js +88 -0
- package/dist/demo/seed.js.map +1 -0
- package/dist/demo/stock.d.ts +7 -0
- package/dist/demo/stock.d.ts.map +1 -0
- package/dist/demo/stock.js +26 -0
- package/dist/demo/stock.js.map +1 -0
- package/dist/demo/user.d.ts +4 -0
- package/dist/demo/user.d.ts.map +1 -0
- package/dist/demo/user.js +41 -0
- package/dist/demo/user.js.map +1 -0
- package/dist/demo/util.d.ts +7 -0
- package/dist/demo/util.d.ts.map +1 -0
- package/dist/demo/util.js +19 -0
- package/dist/demo/util.js.map +1 -0
- package/dist/modules/backend/design/client/backend-shell.d.mts +2 -2
- package/dist/modules/backend/design/client/backend-shell.d.mts.map +1 -1
- package/dist/modules/backend/design/client/backend-shell.mjs +1 -1
- package/dist/modules/backend/design/client/backend-shell.mjs.map +3 -3
- package/dist/modules/backend/design/content.css +9 -9
- package/dist/modules/backend/design/controls.css +5 -5
- package/dist/modules/backend/design/forms.css +12 -5
- package/dist/modules/backend/design/foundation.css +3 -3
- package/dist/modules/backend/design/lists.css +23 -24
- package/dist/modules/backend/design/user-workflow.css +2 -2
- package/dist/modules/backend/screen.d.ts.map +1 -1
- package/dist/modules/backend/screen.js +11 -2
- package/dist/modules/backend/screen.js.map +1 -1
- package/dist/modules/crm/functions/access.d.ts +3 -0
- package/dist/modules/crm/functions/access.d.ts.map +1 -0
- package/dist/modules/crm/functions/access.js +89 -0
- package/dist/modules/crm/functions/access.js.map +1 -0
- package/dist/modules/crm/functions/activities.d.ts +3 -0
- package/dist/modules/crm/functions/activities.d.ts.map +1 -0
- package/dist/modules/crm/functions/activities.js +174 -0
- package/dist/modules/crm/functions/activities.js.map +1 -0
- package/dist/modules/crm/functions/cases.d.ts +3 -0
- package/dist/modules/crm/functions/cases.d.ts.map +1 -0
- package/dist/modules/crm/functions/cases.js +585 -0
- package/dist/modules/crm/functions/cases.js.map +1 -0
- package/dist/modules/crm/functions/configuration.d.ts +3 -0
- package/dist/modules/crm/functions/configuration.d.ts.map +1 -0
- package/dist/modules/crm/functions/configuration.js +331 -0
- package/dist/modules/crm/functions/configuration.js.map +1 -0
- package/dist/modules/crm/functions/gamification.d.ts +3 -0
- package/dist/modules/crm/functions/gamification.d.ts.map +1 -0
- package/dist/modules/crm/functions/gamification.js +58 -0
- package/dist/modules/crm/functions/gamification.js.map +1 -0
- package/dist/modules/crm/functions/index.d.ts +4 -0
- package/dist/modules/crm/functions/index.d.ts.map +1 -0
- package/dist/modules/crm/functions/index.js +33 -0
- package/dist/modules/crm/functions/index.js.map +1 -0
- package/dist/modules/crm/functions/modal-context.d.ts +3 -0
- package/dist/modules/crm/functions/modal-context.d.ts.map +1 -0
- package/dist/modules/crm/functions/modal-context.js +248 -0
- package/dist/modules/crm/functions/modal-context.js.map +1 -0
- package/dist/modules/crm/functions/previews.d.ts +3 -0
- package/dist/modules/crm/functions/previews.d.ts.map +1 -0
- package/dist/modules/crm/functions/previews.js +20 -0
- package/dist/modules/crm/functions/previews.js.map +1 -0
- package/dist/modules/crm/functions/shared.d.ts +31 -0
- package/dist/modules/crm/functions/shared.d.ts.map +1 -0
- package/dist/modules/crm/functions/shared.js +194 -0
- package/dist/modules/crm/functions/shared.js.map +1 -0
- package/dist/modules/crm/index.d.ts +1 -1
- package/dist/modules/crm/index.d.ts.map +1 -1
- package/dist/modules/crm/index.js +2 -2
- package/dist/modules/crm/index.js.map +1 -1
- package/dist/modules/crm/messages.d.ts +4 -1
- package/dist/modules/crm/messages.d.ts.map +1 -1
- package/dist/modules/crm/messages.js +6 -0
- package/dist/modules/crm/messages.js.map +1 -1
- package/dist/modules/crm/record-modal-labels.d.ts +9 -0
- package/dist/modules/crm/record-modal-labels.d.ts.map +1 -0
- package/dist/modules/crm/record-modal-labels.js +36 -0
- package/dist/modules/crm/record-modal-labels.js.map +1 -0
- package/dist/modules/crm/types.d.ts +5 -0
- package/dist/modules/crm/types.d.ts.map +1 -1
- package/dist/modules/crm/types.js +9 -0
- package/dist/modules/crm/types.js.map +1 -1
- package/dist/modules/crm_backend/client/crm-configuration-modal.d.mts +352 -0
- package/dist/modules/crm_backend/client/crm-configuration-modal.d.mts.map +1 -0
- package/dist/modules/crm_backend/client/crm-configuration-modal.mjs +2 -0
- package/dist/modules/crm_backend/client/crm-configuration-modal.mjs.map +7 -0
- package/dist/modules/crm_backend/index.d.ts.map +1 -1
- package/dist/modules/crm_backend/index.js +5 -1
- package/dist/modules/crm_backend/index.js.map +1 -1
- package/dist/modules/crm_backend/islands.d.ts +27 -0
- package/dist/modules/crm_backend/islands.d.ts.map +1 -1
- package/dist/modules/crm_backend/islands.js +22 -0
- package/dist/modules/crm_backend/islands.js.map +1 -1
- package/dist/modules/crm_backend/messages.d.ts +30 -0
- package/dist/modules/crm_backend/messages.d.ts.map +1 -1
- package/dist/modules/crm_backend/messages.js +30 -0
- package/dist/modules/crm_backend/messages.js.map +1 -1
- package/dist/modules/crm_backend/modal/configuration-modal-view.d.ts +55 -0
- package/dist/modules/crm_backend/modal/configuration-modal-view.d.ts.map +1 -0
- package/dist/modules/crm_backend/modal/configuration-modal-view.js +601 -0
- package/dist/modules/crm_backend/modal/configuration-modal-view.js.map +1 -0
- package/dist/modules/crm_backend/routes.d.ts.map +1 -1
- package/dist/modules/crm_backend/routes.js +107 -368
- package/dist/modules/crm_backend/routes.js.map +1 -1
- package/dist/modules/crm_backend/screens/configuration.d.ts +24 -32
- package/dist/modules/crm_backend/screens/configuration.d.ts.map +1 -1
- package/dist/modules/crm_backend/screens/configuration.js +183 -274
- package/dist/modules/crm_backend/screens/configuration.js.map +1 -1
- package/dist/modules/crm_backend/screens/index.d.ts +2 -2
- package/dist/modules/crm_backend/screens/index.d.ts.map +1 -1
- package/dist/modules/crm_backend/screens/index.js +1 -1
- package/dist/modules/crm_backend/screens/index.js.map +1 -1
- package/dist/modules/product/functions.d.ts +14 -1
- package/dist/modules/product/functions.d.ts.map +1 -1
- package/dist/modules/product/functions.js +36 -31
- package/dist/modules/product/functions.js.map +1 -1
- package/dist/modules/product/product-modal-context.d.ts +3 -0
- package/dist/modules/product/product-modal-context.d.ts.map +1 -0
- package/dist/modules/product/product-modal-context.js +171 -0
- package/dist/modules/product/product-modal-context.js.map +1 -0
- package/dist/modules/product_backend/client/product-modal.d.mts +143 -0
- package/dist/modules/product_backend/client/product-modal.d.mts.map +1 -0
- package/dist/modules/product_backend/client/product-modal.mjs +2 -0
- package/dist/modules/product_backend/client/product-modal.mjs.map +7 -0
- package/dist/modules/product_backend/index.d.ts.map +1 -1
- package/dist/modules/product_backend/index.js +16 -0
- package/dist/modules/product_backend/index.js.map +1 -1
- package/dist/modules/product_backend/islands.d.ts +1 -0
- package/dist/modules/product_backend/islands.d.ts.map +1 -1
- package/dist/modules/product_backend/islands.js +9 -0
- package/dist/modules/product_backend/islands.js.map +1 -1
- package/dist/modules/product_backend/modal/product-modal-view.d.ts +43 -0
- package/dist/modules/product_backend/modal/product-modal-view.d.ts.map +1 -0
- package/dist/modules/product_backend/modal/product-modal-view.js +602 -0
- package/dist/modules/product_backend/modal/product-modal-view.js.map +1 -0
- package/dist/modules/product_backend/routes.d.ts.map +1 -1
- package/dist/modules/product_backend/routes.js +44 -330
- package/dist/modules/product_backend/routes.js.map +1 -1
- package/dist/modules/product_backend/screens/detail.d.ts.map +1 -1
- package/dist/modules/product_backend/screens/detail.js +6 -108
- package/dist/modules/product_backend/screens/detail.js.map +1 -1
- package/dist/modules/product_backend/screens/index.d.ts +0 -1
- package/dist/modules/product_backend/screens/index.d.ts.map +1 -1
- package/dist/modules/product_backend/screens/index.js +0 -1
- package/dist/modules/product_backend/screens/index.js.map +1 -1
- package/dist/modules/product_backend/screens/list.d.ts +3 -1
- package/dist/modules/product_backend/screens/list.d.ts.map +1 -1
- package/dist/modules/product_backend/screens/list.js +6 -5
- package/dist/modules/product_backend/screens/list.js.map +1 -1
- package/dist/modules/user/authorization.d.ts.map +1 -1
- package/dist/modules/user/authorization.js +114 -0
- package/dist/modules/user/authorization.js.map +1 -1
- package/dist/modules/user/functions.d.ts.map +1 -1
- package/dist/modules/user/functions.js +2 -0
- package/dist/modules/user/functions.js.map +1 -1
- package/dist/modules/user/user-modal-context.d.ts +3 -0
- package/dist/modules/user/user-modal-context.d.ts.map +1 -0
- package/dist/modules/user/user-modal-context.js +151 -0
- package/dist/modules/user/user-modal-context.js.map +1 -0
- package/dist/modules/user_backend/client/user-modal.d.mts +72 -0
- package/dist/modules/user_backend/client/user-modal.d.mts.map +1 -0
- package/dist/modules/user_backend/client/user-modal.mjs +2 -0
- package/dist/modules/user_backend/client/user-modal.mjs.map +7 -0
- package/dist/modules/user_backend/index.d.ts.map +1 -1
- package/dist/modules/user_backend/index.js +9 -0
- package/dist/modules/user_backend/index.js.map +1 -1
- package/dist/modules/user_backend/islands.d.ts +15 -0
- package/dist/modules/user_backend/islands.d.ts.map +1 -0
- package/dist/modules/user_backend/islands.js +14 -0
- package/dist/modules/user_backend/islands.js.map +1 -0
- package/dist/modules/user_backend/messages.d.ts +30 -0
- package/dist/modules/user_backend/messages.d.ts.map +1 -1
- package/dist/modules/user_backend/messages.js +30 -0
- package/dist/modules/user_backend/messages.js.map +1 -1
- package/dist/modules/user_backend/modal/user-modal-view.d.ts +26 -0
- package/dist/modules/user_backend/modal/user-modal-view.d.ts.map +1 -0
- package/dist/modules/user_backend/modal/user-modal-view.js +320 -0
- package/dist/modules/user_backend/modal/user-modal-view.js.map +1 -0
- package/dist/modules/user_backend/routes.d.ts.map +1 -1
- package/dist/modules/user_backend/routes.js +15 -3
- package/dist/modules/user_backend/routes.js.map +1 -1
- package/dist/permission-catalogue.d.ts.map +1 -1
- package/dist/permission-catalogue.js +8 -0
- package/dist/permission-catalogue.js.map +1 -1
- package/dist/scaffold/index.js +1 -1
- package/dist/ui/client/activity.css +6 -6
- package/dist/ui/client/calendar.css +6 -6
- package/dist/ui/client/flow-app.css +1 -1
- package/dist/ui/client/mail.css +6 -6
- package/dist/ui/client/record-modal-form.d.ts +67 -0
- package/dist/ui/client/record-modal-form.d.ts.map +1 -0
- package/dist/ui/client/record-modal-form.js +45 -0
- package/dist/ui/client/record-modal-form.js.map +1 -0
- package/dist/ui/client/record-modal.d.ts +97 -6
- package/dist/ui/client/record-modal.d.ts.map +1 -1
- package/dist/ui/client/record-modal.js +330 -64
- package/dist/ui/client/record-modal.js.map +1 -1
- package/dist/ui/index.d.ts +2 -1
- package/dist/ui/index.d.ts.map +1 -1
- package/dist/ui/index.js +2 -1
- package/dist/ui/index.js.map +1 -1
- package/dist/ui/layout.d.ts.map +1 -1
- package/dist/ui/layout.js +5 -3
- package/dist/ui/layout.js.map +1 -1
- package/dist/ui/nav.d.ts +7 -0
- package/dist/ui/nav.d.ts.map +1 -1
- package/dist/ui/nav.js +1 -1
- package/dist/ui/nav.js.map +1 -1
- package/dist/ui/record-modal.d.ts +15 -0
- package/dist/ui/record-modal.d.ts.map +1 -1
- package/dist/ui/record-modal.js +12 -0
- package/dist/ui/record-modal.js.map +1 -1
- package/dist/ui/table.d.ts.map +1 -1
- package/dist/ui/table.js +1 -1
- package/dist/ui/table.js.map +1 -1
- package/package.json +4 -4
- package/dist/modules/crm/functions.d.ts +0 -10
- package/dist/modules/crm/functions.d.ts.map +0 -1
- package/dist/modules/crm/functions.js +0 -1394
- package/dist/modules/crm/functions.js.map +0 -1
- package/dist/modules/product_backend/screens/create.d.ts +0 -16
- package/dist/modules/product_backend/screens/create.d.ts.map +0 -1
- package/dist/modules/product_backend/screens/create.js +0 -86
- package/dist/modules/product_backend/screens/create.js.map +0 -1
|
@@ -0,0 +1,579 @@
|
|
|
1
|
+
// Phase 1 of the `--demo-data` seed: the product catalog.
|
|
2
|
+
//
|
|
3
|
+
// 40 individually named items — a workwear/PPE/corporate-gifts catalog, the same
|
|
4
|
+
// business the `tpl-review` e2e fixture uses — across four real categories, not
|
|
5
|
+
// a `Sản phẩm mẫu 01..40` loop. One flagship item (the jacket) gets attributes
|
|
6
|
+
// and generated variants, exactly like the proven e2e fixture; the rest are
|
|
7
|
+
// simple templates, which is how most of a real catalog actually looks.
|
|
8
|
+
const CATEGORY = {
|
|
9
|
+
uniform: 'demo-cat-uniform',
|
|
10
|
+
ppe: 'demo-cat-ppe',
|
|
11
|
+
tools: 'demo-cat-tools',
|
|
12
|
+
gifts: 'demo-cat-gifts',
|
|
13
|
+
};
|
|
14
|
+
const UOM = {
|
|
15
|
+
unit: 'demo-uom-unit',
|
|
16
|
+
set: 'demo-uom-set',
|
|
17
|
+
pair: 'demo-uom-pair',
|
|
18
|
+
box: 'demo-uom-box',
|
|
19
|
+
};
|
|
20
|
+
const BRAND = {
|
|
21
|
+
ketviet: 'demo-brand-ketviet',
|
|
22
|
+
safepro: 'demo-brand-safepro',
|
|
23
|
+
};
|
|
24
|
+
const PRODUCTS = [
|
|
25
|
+
{
|
|
26
|
+
id: 'demo-product-polo',
|
|
27
|
+
name: 'Áo polo đồng phục văn phòng',
|
|
28
|
+
category: CATEGORY.uniform,
|
|
29
|
+
uom: UOM.unit,
|
|
30
|
+
brand: BRAND.ketviet,
|
|
31
|
+
listPrice: '185000',
|
|
32
|
+
cost: '92000',
|
|
33
|
+
defaultCode: 'UNI-POLO',
|
|
34
|
+
description: 'Áo polo cotton pha, thêu logo theo yêu cầu, dùng cho khối văn phòng và lễ tân.',
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
id: 'demo-product-kaki',
|
|
38
|
+
name: 'Quần kaki công sở nam',
|
|
39
|
+
category: CATEGORY.uniform,
|
|
40
|
+
uom: UOM.unit,
|
|
41
|
+
brand: BRAND.ketviet,
|
|
42
|
+
listPrice: '245000',
|
|
43
|
+
cost: '128000',
|
|
44
|
+
defaultCode: 'UNI-KAKI',
|
|
45
|
+
description: 'Quần kaki co giãn nhẹ, form slim fit, phù hợp môi trường văn phòng.',
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
id: 'demo-product-somi',
|
|
49
|
+
name: 'Áo sơ mi đồng phục lễ tân',
|
|
50
|
+
category: CATEGORY.uniform,
|
|
51
|
+
uom: UOM.unit,
|
|
52
|
+
brand: BRAND.ketviet,
|
|
53
|
+
listPrice: '210000',
|
|
54
|
+
cost: '110000',
|
|
55
|
+
defaultCode: 'UNI-SOMI',
|
|
56
|
+
description: 'Áo sơ mi vải kate không nhăn, dành cho bộ phận lễ tân và chăm sóc khách hàng.',
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
id: 'demo-product-gile-canh-bao',
|
|
60
|
+
name: 'Áo gile phản quang công trường',
|
|
61
|
+
category: CATEGORY.uniform,
|
|
62
|
+
uom: UOM.unit,
|
|
63
|
+
brand: BRAND.safepro,
|
|
64
|
+
listPrice: '95000',
|
|
65
|
+
cost: '48000',
|
|
66
|
+
defaultCode: 'UNI-GILE',
|
|
67
|
+
description: 'Gile lưới thoáng khí, dải phản quang 3M, dùng ngoài công trường và kho vận.',
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
id: 'demo-product-non-bao-ve',
|
|
71
|
+
name: 'Nón kết đồng phục bảo vệ',
|
|
72
|
+
category: CATEGORY.uniform,
|
|
73
|
+
uom: UOM.unit,
|
|
74
|
+
brand: BRAND.ketviet,
|
|
75
|
+
listPrice: '65000',
|
|
76
|
+
cost: '30000',
|
|
77
|
+
defaultCode: 'UNI-NON',
|
|
78
|
+
description: 'Nón kết vải kaki, thêu logo, dùng cho lực lượng bảo vệ và tiếp tân.',
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
id: 'demo-product-ao-su-kien',
|
|
82
|
+
name: 'Áo thun đồng phục sự kiện',
|
|
83
|
+
category: CATEGORY.uniform,
|
|
84
|
+
uom: UOM.unit,
|
|
85
|
+
brand: BRAND.ketviet,
|
|
86
|
+
listPrice: '75000',
|
|
87
|
+
cost: '35000',
|
|
88
|
+
defaultCode: 'UNI-EVENT',
|
|
89
|
+
description: 'Áo thun cotton 100%, in chuyển nhiệt, đặt theo lô cho sự kiện và hội chợ.',
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
id: 'demo-product-khan-quang',
|
|
93
|
+
name: 'Khăn quàng cổ đồng phục',
|
|
94
|
+
category: CATEGORY.uniform,
|
|
95
|
+
uom: UOM.unit,
|
|
96
|
+
brand: BRAND.ketviet,
|
|
97
|
+
listPrice: '45000',
|
|
98
|
+
cost: '18000',
|
|
99
|
+
defaultCode: 'UNI-KHAN',
|
|
100
|
+
description: 'Khăn lụa in họa tiết thương hiệu, phối cùng đồng phục lễ tân.',
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
id: 'demo-product-mu-bao-ho',
|
|
104
|
+
name: 'Mũ bảo hộ công nghiệp',
|
|
105
|
+
category: CATEGORY.ppe,
|
|
106
|
+
uom: UOM.unit,
|
|
107
|
+
brand: BRAND.safepro,
|
|
108
|
+
listPrice: '120000',
|
|
109
|
+
cost: '62000',
|
|
110
|
+
defaultCode: 'PPE-MU',
|
|
111
|
+
description: 'Mũ nhựa ABS chịu lực, quai cài 4 điểm, đạt tiêu chuẩn an toàn công trường.',
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
id: 'demo-product-giay-chong-dinh',
|
|
115
|
+
name: 'Giày bảo hộ chống đinh',
|
|
116
|
+
category: CATEGORY.ppe,
|
|
117
|
+
uom: UOM.pair,
|
|
118
|
+
brand: BRAND.safepro,
|
|
119
|
+
listPrice: '350000',
|
|
120
|
+
cost: '210000',
|
|
121
|
+
defaultCode: 'PPE-GIAY-DINH',
|
|
122
|
+
description: 'Đế chống đinh, mũi thép, da bò thật, dùng cho công nhân cơ khí và xây dựng.',
|
|
123
|
+
tracking: 'lot',
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
id: 'demo-product-ung-hoa-chat',
|
|
127
|
+
name: 'Ủng cao su chống hóa chất',
|
|
128
|
+
category: CATEGORY.ppe,
|
|
129
|
+
uom: UOM.pair,
|
|
130
|
+
brand: BRAND.safepro,
|
|
131
|
+
listPrice: '210000',
|
|
132
|
+
cost: '125000',
|
|
133
|
+
defaultCode: 'PPE-UNG-HC',
|
|
134
|
+
description: 'Cao su tổng hợp kháng axit và dung môi, dùng trong nhà máy hóa chất.',
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
id: 'demo-product-gang-tay-han',
|
|
138
|
+
name: 'Găng tay da hàn',
|
|
139
|
+
category: CATEGORY.ppe,
|
|
140
|
+
uom: UOM.pair,
|
|
141
|
+
brand: BRAND.safepro,
|
|
142
|
+
listPrice: '85000',
|
|
143
|
+
cost: '42000',
|
|
144
|
+
defaultCode: 'PPE-GT-HAN',
|
|
145
|
+
description: 'Da bò dày 1.2mm chịu nhiệt, lót vải cách nhiệt, dùng cho thợ hàn.',
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
id: 'demo-product-gang-tay-cat',
|
|
149
|
+
name: 'Găng tay chống cắt cấp độ 5',
|
|
150
|
+
category: CATEGORY.ppe,
|
|
151
|
+
uom: UOM.pair,
|
|
152
|
+
brand: BRAND.safepro,
|
|
153
|
+
listPrice: '95000',
|
|
154
|
+
cost: '50000',
|
|
155
|
+
defaultCode: 'PPE-GT-CAT',
|
|
156
|
+
description: 'Sợi HPPE đan kháng cắt, phủ nitrile lòng bàn tay, dùng khi thao tác kim loại tấm.',
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
id: 'demo-product-kinh-bui',
|
|
160
|
+
name: 'Kính bảo hộ chống bụi',
|
|
161
|
+
category: CATEGORY.ppe,
|
|
162
|
+
uom: UOM.unit,
|
|
163
|
+
brand: BRAND.safepro,
|
|
164
|
+
listPrice: '45000',
|
|
165
|
+
cost: '20000',
|
|
166
|
+
defaultCode: 'PPE-KINH',
|
|
167
|
+
description: 'Tròng chống trầy chống mờ sương, gọng ôm mặt, chống bụi và bắn tia.',
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
id: 'demo-product-khau-trang',
|
|
171
|
+
name: 'Khẩu trang than hoạt tính',
|
|
172
|
+
category: CATEGORY.ppe,
|
|
173
|
+
uom: UOM.box,
|
|
174
|
+
brand: BRAND.safepro,
|
|
175
|
+
listPrice: '120000',
|
|
176
|
+
cost: '65000',
|
|
177
|
+
defaultCode: 'PPE-KT',
|
|
178
|
+
description: 'Hộp 50 chiếc, lớp than hoạt tính lọc bụi mịn và mùi hóa chất nhẹ.',
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
id: 'demo-product-nut-tai',
|
|
182
|
+
name: 'Nút tai chống ồn',
|
|
183
|
+
category: CATEGORY.ppe,
|
|
184
|
+
uom: UOM.box,
|
|
185
|
+
brand: BRAND.safepro,
|
|
186
|
+
listPrice: '55000',
|
|
187
|
+
cost: '25000',
|
|
188
|
+
defaultCode: 'PPE-NT',
|
|
189
|
+
description: 'Hộp 100 cặp, xốp PU giảm ồn 32dB, dùng trong xưởng máy có tiếng ồn lớn.',
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
id: 'demo-product-day-dai',
|
|
193
|
+
name: 'Dây đai an toàn toàn thân',
|
|
194
|
+
category: CATEGORY.ppe,
|
|
195
|
+
uom: UOM.unit,
|
|
196
|
+
brand: BRAND.safepro,
|
|
197
|
+
listPrice: '680000',
|
|
198
|
+
cost: '410000',
|
|
199
|
+
defaultCode: 'PPE-DAI',
|
|
200
|
+
description: 'Đai toàn thân 5 điểm móc, kèm dây hãm rơi, dùng khi làm việc trên cao.',
|
|
201
|
+
tracking: 'lot',
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
id: 'demo-product-tap-de',
|
|
205
|
+
name: 'Tạp dề da chống cháy',
|
|
206
|
+
category: CATEGORY.ppe,
|
|
207
|
+
uom: UOM.unit,
|
|
208
|
+
brand: BRAND.safepro,
|
|
209
|
+
listPrice: '275000',
|
|
210
|
+
cost: '160000',
|
|
211
|
+
defaultCode: 'PPE-TAPDE',
|
|
212
|
+
description: 'Da thuộc chịu nhiệt, dùng khi hàn cắt hoặc thao tác gần nguồn lửa.',
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
id: 'demo-product-ao-mua',
|
|
216
|
+
name: 'Áo mưa bộ đi mưa công trường',
|
|
217
|
+
category: CATEGORY.ppe,
|
|
218
|
+
uom: UOM.set,
|
|
219
|
+
brand: BRAND.safepro,
|
|
220
|
+
listPrice: '165000',
|
|
221
|
+
cost: '85000',
|
|
222
|
+
defaultCode: 'PPE-MUA',
|
|
223
|
+
description: 'Bộ áo quần liền, vải PVC không thấm nước, dùng khi thi công trời mưa.',
|
|
224
|
+
},
|
|
225
|
+
{
|
|
226
|
+
id: 'demo-product-ao-gio',
|
|
227
|
+
name: 'Áo khoác gió chống thấm',
|
|
228
|
+
category: CATEGORY.ppe,
|
|
229
|
+
uom: UOM.unit,
|
|
230
|
+
brand: BRAND.safepro,
|
|
231
|
+
listPrice: '320000',
|
|
232
|
+
cost: '190000',
|
|
233
|
+
defaultCode: 'PPE-GIO',
|
|
234
|
+
description: 'Vải dù 2 lớp cản gió, có mũ trùm, dùng ngoài trời trong mùa lạnh.',
|
|
235
|
+
},
|
|
236
|
+
{
|
|
237
|
+
id: 'demo-product-quan-yem',
|
|
238
|
+
name: 'Quần yếm bảo hộ',
|
|
239
|
+
category: CATEGORY.ppe,
|
|
240
|
+
uom: UOM.unit,
|
|
241
|
+
brand: BRAND.safepro,
|
|
242
|
+
listPrice: '285000',
|
|
243
|
+
cost: '165000',
|
|
244
|
+
defaultCode: 'PPE-YEM',
|
|
245
|
+
description: 'Vải kaki dày, nhiều túi công cụ, dùng cho thợ cơ khí và bảo trì.',
|
|
246
|
+
},
|
|
247
|
+
{
|
|
248
|
+
id: 'demo-product-non-bao-hiem',
|
|
249
|
+
name: 'Nón bảo hiểm công trường',
|
|
250
|
+
category: CATEGORY.ppe,
|
|
251
|
+
uom: UOM.unit,
|
|
252
|
+
brand: BRAND.safepro,
|
|
253
|
+
listPrice: '145000',
|
|
254
|
+
cost: '80000',
|
|
255
|
+
defaultCode: 'PPE-NONBH',
|
|
256
|
+
description: 'Vỏ nhựa ABS, kính chắn gió gắn kèm, dùng khi vận hành xe nâng và máy công trình.',
|
|
257
|
+
},
|
|
258
|
+
{
|
|
259
|
+
id: 'demo-product-yem-giao-thong',
|
|
260
|
+
name: 'Yếm phản quang giao thông',
|
|
261
|
+
category: CATEGORY.ppe,
|
|
262
|
+
uom: UOM.unit,
|
|
263
|
+
brand: BRAND.safepro,
|
|
264
|
+
listPrice: '68000',
|
|
265
|
+
cost: '32000',
|
|
266
|
+
defaultCode: 'PPE-YEMGT',
|
|
267
|
+
description: 'Vải lưới nhẹ, hai dải phản quang chéo, dùng khi điều tiết giao thông công trường.',
|
|
268
|
+
},
|
|
269
|
+
{
|
|
270
|
+
id: 'demo-product-gang-tay-cach-dien',
|
|
271
|
+
name: 'Găng tay cách điện hạ thế',
|
|
272
|
+
category: CATEGORY.ppe,
|
|
273
|
+
uom: UOM.pair,
|
|
274
|
+
brand: BRAND.safepro,
|
|
275
|
+
listPrice: '195000',
|
|
276
|
+
cost: '115000',
|
|
277
|
+
defaultCode: 'PPE-GTCD',
|
|
278
|
+
description: 'Cao su cách điện đạt chuẩn 1000V, dùng cho thợ điện hạ thế.',
|
|
279
|
+
tracking: 'lot',
|
|
280
|
+
},
|
|
281
|
+
{
|
|
282
|
+
id: 'demo-product-ung-mui-thep',
|
|
283
|
+
name: 'Ủng bảo hộ mũi thép',
|
|
284
|
+
category: CATEGORY.ppe,
|
|
285
|
+
uom: UOM.pair,
|
|
286
|
+
brand: BRAND.safepro,
|
|
287
|
+
listPrice: '380000',
|
|
288
|
+
cost: '230000',
|
|
289
|
+
defaultCode: 'PPE-UNGTHEP',
|
|
290
|
+
description: 'Ủng cao su nguyên khối, mũi thép chịu lực 200kg, dùng ở khu vực ẩm ướt.',
|
|
291
|
+
},
|
|
292
|
+
{
|
|
293
|
+
id: 'demo-product-ao-lot-giu-nhiet',
|
|
294
|
+
name: 'Áo lót giữ nhiệt mùa đông',
|
|
295
|
+
category: CATEGORY.ppe,
|
|
296
|
+
uom: UOM.unit,
|
|
297
|
+
brand: BRAND.safepro,
|
|
298
|
+
listPrice: '135000',
|
|
299
|
+
cost: '72000',
|
|
300
|
+
defaultCode: 'PPE-AOLOT',
|
|
301
|
+
description: 'Vải nỉ giữ nhiệt, mặc trong lớp đồng phục khi làm việc ngoài trời lạnh.',
|
|
302
|
+
},
|
|
303
|
+
{
|
|
304
|
+
id: 'demo-product-balo',
|
|
305
|
+
name: 'Balo đựng dụng cụ đa năng',
|
|
306
|
+
category: CATEGORY.tools,
|
|
307
|
+
uom: UOM.unit,
|
|
308
|
+
listPrice: '420000',
|
|
309
|
+
cost: '250000',
|
|
310
|
+
defaultCode: 'TOOL-BALO',
|
|
311
|
+
description: 'Vải bạt chống thấm, nhiều ngăn chia dụng cụ, quai đeo gia cố.',
|
|
312
|
+
},
|
|
313
|
+
{
|
|
314
|
+
id: 'demo-product-tui-hong',
|
|
315
|
+
name: 'Túi đeo hông thợ điện',
|
|
316
|
+
category: CATEGORY.tools,
|
|
317
|
+
uom: UOM.unit,
|
|
318
|
+
listPrice: '195000',
|
|
319
|
+
cost: '110000',
|
|
320
|
+
defaultCode: 'TOOL-TUIHONG',
|
|
321
|
+
description: 'Túi da công nghiệp đeo thắt lưng, ngăn riêng cho kìm và tua vít.',
|
|
322
|
+
},
|
|
323
|
+
{
|
|
324
|
+
id: 'demo-product-bang-do',
|
|
325
|
+
name: 'Băng đô thấm mồ hôi',
|
|
326
|
+
category: CATEGORY.tools,
|
|
327
|
+
uom: UOM.unit,
|
|
328
|
+
listPrice: '35000',
|
|
329
|
+
cost: '14000',
|
|
330
|
+
defaultCode: 'TOOL-BANGDO',
|
|
331
|
+
description: 'Vải cotton co giãn, dùng dưới mũ bảo hộ khi làm việc ngoài trời nắng nóng.',
|
|
332
|
+
},
|
|
333
|
+
{
|
|
334
|
+
id: 'demo-product-vo-lao-dong',
|
|
335
|
+
name: 'Vớ lao động cotton',
|
|
336
|
+
category: CATEGORY.tools,
|
|
337
|
+
uom: UOM.pair,
|
|
338
|
+
listPrice: '25000',
|
|
339
|
+
cost: '10000',
|
|
340
|
+
defaultCode: 'TOOL-VO',
|
|
341
|
+
description: 'Cotton dày, cổ cao, đi cùng giày bảo hộ trong ca làm việc dài.',
|
|
342
|
+
},
|
|
343
|
+
{
|
|
344
|
+
id: 'demo-product-that-lung',
|
|
345
|
+
name: 'Thắt lưng nịt bụng nâng đỡ',
|
|
346
|
+
category: CATEGORY.tools,
|
|
347
|
+
uom: UOM.unit,
|
|
348
|
+
listPrice: '165000',
|
|
349
|
+
cost: '90000',
|
|
350
|
+
defaultCode: 'TOOL-THATLUNG',
|
|
351
|
+
description: 'Đai lưng hỗ trợ cột sống khi nâng vật nặng, có thanh nẹp điều chỉnh.',
|
|
352
|
+
},
|
|
353
|
+
{
|
|
354
|
+
id: 'demo-product-den-pin',
|
|
355
|
+
name: 'Đèn pin đội đầu công trường',
|
|
356
|
+
category: CATEGORY.tools,
|
|
357
|
+
uom: UOM.unit,
|
|
358
|
+
listPrice: '145000',
|
|
359
|
+
cost: '78000',
|
|
360
|
+
defaultCode: 'TOOL-DENPIN',
|
|
361
|
+
description: 'LED sạc USB, gắn được lên mũ bảo hộ, chiếu sáng khi làm việc trong hầm/kho.',
|
|
362
|
+
},
|
|
363
|
+
{
|
|
364
|
+
id: 'demo-product-so-cuu',
|
|
365
|
+
name: 'Hộp sơ cứu cá nhân',
|
|
366
|
+
category: CATEGORY.tools,
|
|
367
|
+
uom: UOM.box,
|
|
368
|
+
listPrice: '195000',
|
|
369
|
+
cost: '110000',
|
|
370
|
+
defaultCode: 'TOOL-SOCUU',
|
|
371
|
+
description: 'Hộp nhựa chống nước, đủ băng gạc và thuốc sát trùng cơ bản theo quy định an toàn.',
|
|
372
|
+
},
|
|
373
|
+
{
|
|
374
|
+
id: 'demo-product-vali-dung-cu',
|
|
375
|
+
name: 'Vali đựng dụng cụ kỹ thuật',
|
|
376
|
+
category: CATEGORY.tools,
|
|
377
|
+
uom: UOM.unit,
|
|
378
|
+
listPrice: '890000',
|
|
379
|
+
cost: '540000',
|
|
380
|
+
defaultCode: 'TOOL-VALI',
|
|
381
|
+
description: 'Vỏ nhựa ABS chống va đập, khay chia tầng, dùng cho kỹ thuật viên bảo trì.',
|
|
382
|
+
},
|
|
383
|
+
{
|
|
384
|
+
id: 'demo-product-may-do-nhiet',
|
|
385
|
+
name: 'Máy đo nhiệt độ cầm tay',
|
|
386
|
+
category: CATEGORY.tools,
|
|
387
|
+
uom: UOM.unit,
|
|
388
|
+
listPrice: '750000',
|
|
389
|
+
cost: '470000',
|
|
390
|
+
defaultCode: 'TOOL-NHIETKE',
|
|
391
|
+
description: 'Đo nhiệt độ hồng ngoại không tiếp xúc, dùng kiểm tra thiết bị và an toàn lao động.',
|
|
392
|
+
},
|
|
393
|
+
{
|
|
394
|
+
id: 'demo-product-binh-nuoc',
|
|
395
|
+
name: 'Bình nước giữ nhiệt công trường',
|
|
396
|
+
category: CATEGORY.gifts,
|
|
397
|
+
uom: UOM.unit,
|
|
398
|
+
brand: BRAND.ketviet,
|
|
399
|
+
listPrice: '165000',
|
|
400
|
+
cost: '90000',
|
|
401
|
+
defaultCode: 'GIFT-BINH',
|
|
402
|
+
description: 'Inox 2 lớp giữ nhiệt 12 giờ, khắc logo, dùng làm quà tặng đối tác.',
|
|
403
|
+
},
|
|
404
|
+
{
|
|
405
|
+
id: 'demo-product-o-du',
|
|
406
|
+
name: 'Ô cầm tay logo công ty',
|
|
407
|
+
category: CATEGORY.gifts,
|
|
408
|
+
uom: UOM.unit,
|
|
409
|
+
brand: BRAND.ketviet,
|
|
410
|
+
listPrice: '95000',
|
|
411
|
+
cost: '48000',
|
|
412
|
+
defaultCode: 'GIFT-ODU',
|
|
413
|
+
description: 'Khung thép chống lật gió, in logo thương hiệu, tặng khách hàng dịp lễ.',
|
|
414
|
+
},
|
|
415
|
+
{
|
|
416
|
+
id: 'demo-product-so-tay',
|
|
417
|
+
name: 'Sổ tay ghi chép công trường',
|
|
418
|
+
category: CATEGORY.gifts,
|
|
419
|
+
uom: UOM.unit,
|
|
420
|
+
brand: BRAND.ketviet,
|
|
421
|
+
listPrice: '35000',
|
|
422
|
+
cost: '15000',
|
|
423
|
+
defaultCode: 'GIFT-SOTAY',
|
|
424
|
+
description: 'Bìa da công nghiệp, ruột giấy chống thấm nhẹ, in logo theo yêu cầu.',
|
|
425
|
+
},
|
|
426
|
+
{
|
|
427
|
+
id: 'demo-product-but-bi',
|
|
428
|
+
name: 'Bút bi khắc logo doanh nghiệp',
|
|
429
|
+
category: CATEGORY.gifts,
|
|
430
|
+
uom: UOM.unit,
|
|
431
|
+
brand: BRAND.ketviet,
|
|
432
|
+
listPrice: '15000',
|
|
433
|
+
cost: '6000',
|
|
434
|
+
defaultCode: 'GIFT-BUTBI',
|
|
435
|
+
description: 'Thân kim loại, khắc laser tên thương hiệu, đặt theo lô cho sự kiện.',
|
|
436
|
+
},
|
|
437
|
+
{
|
|
438
|
+
id: 'demo-product-the-nhan-vien',
|
|
439
|
+
name: 'Thẻ đeo nhân viên có dây',
|
|
440
|
+
category: CATEGORY.gifts,
|
|
441
|
+
uom: UOM.unit,
|
|
442
|
+
brand: BRAND.ketviet,
|
|
443
|
+
listPrice: '25000',
|
|
444
|
+
cost: '10000',
|
|
445
|
+
defaultCode: 'GIFT-THE',
|
|
446
|
+
description: 'Vỏ nhựa cứng kèm dây đeo in logo, dùng cho nhân sự mới và khách tham quan.',
|
|
447
|
+
},
|
|
448
|
+
];
|
|
449
|
+
const ATTRIBUTES = {
|
|
450
|
+
color: {
|
|
451
|
+
id: 'demo-attr-color',
|
|
452
|
+
name: 'Màu sắc',
|
|
453
|
+
values: [
|
|
454
|
+
{ id: 'demo-attr-color-blue', name: 'Xanh nghiệp vụ' },
|
|
455
|
+
{ id: 'demo-attr-color-orange', name: 'Cam cảnh báo' },
|
|
456
|
+
],
|
|
457
|
+
},
|
|
458
|
+
size: {
|
|
459
|
+
id: 'demo-attr-size',
|
|
460
|
+
name: 'Kích thước',
|
|
461
|
+
values: [
|
|
462
|
+
{ id: 'demo-attr-size-s', name: 'S' },
|
|
463
|
+
{ id: 'demo-attr-size-m', name: 'M' },
|
|
464
|
+
{ id: 'demo-attr-size-l', name: 'L' },
|
|
465
|
+
{ id: 'demo-attr-size-xl', name: 'XL' },
|
|
466
|
+
],
|
|
467
|
+
},
|
|
468
|
+
};
|
|
469
|
+
export async function seedProducts(call) {
|
|
470
|
+
await call('uom.saveUnit', { id: UOM.unit, name: 'Cái', relativeFactor: '1', sequence: 10 });
|
|
471
|
+
await call('uom.saveUnit', { id: UOM.set, name: 'Bộ', relativeFactor: '1', sequence: 20 });
|
|
472
|
+
await call('uom.saveUnit', { id: UOM.pair, name: 'Đôi', relativeFactor: '1', sequence: 30 });
|
|
473
|
+
await call('uom.saveUnit', { id: UOM.box, name: 'Hộp', relativeFactor: '1', sequence: 40 });
|
|
474
|
+
await call('product.saveCategory', { id: CATEGORY.uniform, name: 'Đồng phục vận hành' });
|
|
475
|
+
await call('product.saveCategory', { id: CATEGORY.ppe, name: 'Bảo hộ lao động' });
|
|
476
|
+
await call('product.saveCategory', { id: CATEGORY.tools, name: 'Phụ kiện & dụng cụ' });
|
|
477
|
+
await call('product.saveCategory', { id: CATEGORY.gifts, name: 'Quà tặng doanh nghiệp' });
|
|
478
|
+
await call('product.saveBrand', { id: BRAND.ketviet, name: 'Kết Việt' });
|
|
479
|
+
await call('product.saveBrand', { id: BRAND.safepro, name: 'SafePro' });
|
|
480
|
+
// The flagship item: attributes + generated variants, same shape as the
|
|
481
|
+
// proven `tpl-review` e2e fixture, so the record-modal's Variants tab has
|
|
482
|
+
// something real to page through as well as the template list.
|
|
483
|
+
const flagshipId = 'demo-product-ao-khoac-van-hanh';
|
|
484
|
+
await call('product.saveTemplate', {
|
|
485
|
+
id: flagshipId,
|
|
486
|
+
name: 'Áo khoác vận hành Kết Việt',
|
|
487
|
+
type: 'goods',
|
|
488
|
+
categoryId: CATEGORY.uniform,
|
|
489
|
+
brandId: BRAND.ketviet,
|
|
490
|
+
uomId: UOM.set,
|
|
491
|
+
origin: 'Việt Nam',
|
|
492
|
+
description: 'Áo khoác đồng phục hai lớp, chống gió nhẹ, dùng cho đội vận hành ngoài hiện trường.',
|
|
493
|
+
listPrice: '890000',
|
|
494
|
+
saleOk: true,
|
|
495
|
+
purchaseOk: true,
|
|
496
|
+
defaultCode: 'UNI-JACKET',
|
|
497
|
+
});
|
|
498
|
+
await call('product.saveAttribute', {
|
|
499
|
+
id: ATTRIBUTES.color.id,
|
|
500
|
+
name: ATTRIBUTES.color.name,
|
|
501
|
+
sequence: 10,
|
|
502
|
+
displayType: 'pills',
|
|
503
|
+
createVariant: 'always',
|
|
504
|
+
});
|
|
505
|
+
for (const [i, value] of ATTRIBUTES.color.values.entries())
|
|
506
|
+
await call('product.saveAttributeValue', {
|
|
507
|
+
id: value.id,
|
|
508
|
+
attributeId: ATTRIBUTES.color.id,
|
|
509
|
+
name: value.name,
|
|
510
|
+
sequence: (i + 1) * 10,
|
|
511
|
+
});
|
|
512
|
+
await call('product.saveAttribute', {
|
|
513
|
+
id: ATTRIBUTES.size.id,
|
|
514
|
+
name: ATTRIBUTES.size.name,
|
|
515
|
+
sequence: 20,
|
|
516
|
+
displayType: 'pills',
|
|
517
|
+
createVariant: 'always',
|
|
518
|
+
});
|
|
519
|
+
for (const [i, value] of ATTRIBUTES.size.values.entries())
|
|
520
|
+
await call('product.saveAttributeValue', {
|
|
521
|
+
id: value.id,
|
|
522
|
+
attributeId: ATTRIBUTES.size.id,
|
|
523
|
+
name: value.name,
|
|
524
|
+
sequence: (i + 1) * 10,
|
|
525
|
+
});
|
|
526
|
+
await call('product.saveAttributeLine', {
|
|
527
|
+
id: `${flagshipId}:color`,
|
|
528
|
+
templateId: flagshipId,
|
|
529
|
+
attributeId: ATTRIBUTES.color.id,
|
|
530
|
+
valueIds: ATTRIBUTES.color.values.map((v) => v.id),
|
|
531
|
+
});
|
|
532
|
+
await call('product.saveAttributeLine', {
|
|
533
|
+
id: `${flagshipId}:size`,
|
|
534
|
+
templateId: flagshipId,
|
|
535
|
+
attributeId: ATTRIBUTES.size.id,
|
|
536
|
+
valueIds: ATTRIBUTES.size.values.map((v) => v.id),
|
|
537
|
+
});
|
|
538
|
+
await call('product.generateVariants', { templateId: flagshipId });
|
|
539
|
+
await call('stock.configureProduct', { templateId: flagshipId, isStorable: true, tracking: 'none' });
|
|
540
|
+
const flagshipVariants = (await call('product.listVariants', {
|
|
541
|
+
templateId: flagshipId,
|
|
542
|
+
}));
|
|
543
|
+
for (const variant of Array.isArray(flagshipVariants) ? flagshipVariants : []) {
|
|
544
|
+
await call('product.setCost', { productId: String(variant.id), standardPrice: '480000' });
|
|
545
|
+
}
|
|
546
|
+
const templateIds = [flagshipId];
|
|
547
|
+
const catalog = [];
|
|
548
|
+
for (const product of PRODUCTS) {
|
|
549
|
+
await call('product.saveTemplate', {
|
|
550
|
+
id: product.id,
|
|
551
|
+
name: product.name,
|
|
552
|
+
type: 'goods',
|
|
553
|
+
categoryId: product.category,
|
|
554
|
+
uomId: product.uom,
|
|
555
|
+
description: product.description,
|
|
556
|
+
listPrice: product.listPrice,
|
|
557
|
+
saleOk: true,
|
|
558
|
+
purchaseOk: true,
|
|
559
|
+
defaultCode: product.defaultCode,
|
|
560
|
+
...(product.brand ? { brandId: product.brand } : {}),
|
|
561
|
+
});
|
|
562
|
+
await call('stock.configureProduct', {
|
|
563
|
+
templateId: product.id,
|
|
564
|
+
isStorable: true,
|
|
565
|
+
tracking: product.tracking ?? 'none',
|
|
566
|
+
});
|
|
567
|
+
await call('product.setCost', { productId: `${product.id}:default`, standardPrice: product.cost });
|
|
568
|
+
templateIds.push(product.id);
|
|
569
|
+
catalog.push({
|
|
570
|
+
templateId: product.id,
|
|
571
|
+
productId: `${product.id}:default`,
|
|
572
|
+
uomId: product.uom,
|
|
573
|
+
listPrice: product.listPrice,
|
|
574
|
+
cost: product.cost,
|
|
575
|
+
});
|
|
576
|
+
}
|
|
577
|
+
return { templateIds, defaultProductId: (templateId) => `${templateId}:default`, catalog };
|
|
578
|
+
}
|
|
579
|
+
//# sourceMappingURL=product.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"product.js","sourceRoot":"","sources":["../../../../../../packages/ketsuite/src/demo/product.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"purchase.d.ts","sourceRoot":"","sources":["../../../../../packages/ketsuite/src/demo/purchase.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAgB/C,wBAAsB,YAAY,CAChC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,WAAW,EAAE,EACtB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,MAAM,EAAE,CAAC,CAoCnB"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
// Phase 1 of the `--demo-data` seed: purchase orders against the seeded
|
|
2
|
+
// suppliers. Same rationale as sale.ts for the order count — see there.
|
|
3
|
+
//
|
|
4
|
+
// `purchase.addLine` prices a line from the vendor's own `SupplierInfo` (it
|
|
5
|
+
// ignores a `priceUnit` passed inside `saveDraft`'s `lines`), so every product
|
|
6
|
+
// on an order gets a real supplier price registered first — otherwise the line
|
|
7
|
+
// would silently cost 0, which is exactly the fake-looking data the content
|
|
8
|
+
// bar rules out.
|
|
9
|
+
const ORDERS = [
|
|
10
|
+
{ id: 'demo-po-01', partnerId: 'demo-partner-vai-soi-bd', lines: [0, 6] },
|
|
11
|
+
{ id: 'demo-po-02', partnerId: 'demo-partner-da-giay-dn', lines: [7, 22] },
|
|
12
|
+
{ id: 'demo-po-03', partnerId: 'demo-partner-hoa-chat-la', lines: [8, 9] },
|
|
13
|
+
{ id: 'demo-po-04', partnerId: 'demo-partner-thep-viet', lines: [23] },
|
|
14
|
+
{ id: 'demo-po-05', partnerId: 'demo-partner-carton-sg', lines: [26, 27] },
|
|
15
|
+
{ id: 'demo-po-06', partnerId: 'demo-partner-cao-su-md', lines: [8, 15] },
|
|
16
|
+
{ id: 'demo-po-07', partnerId: 'demo-partner-linh-kien-bn', lines: [30] },
|
|
17
|
+
{ id: 'demo-po-08', partnerId: 'demo-partner-vai-soi-bd', lines: [1, 2] },
|
|
18
|
+
{ id: 'demo-po-09', partnerId: 'demo-partner-da-giay-dn', lines: [9, 20] },
|
|
19
|
+
];
|
|
20
|
+
export async function seedPurchase(call, catalog, pickingTypeId) {
|
|
21
|
+
const priced = new Set();
|
|
22
|
+
const ids = [];
|
|
23
|
+
for (const order of ORDERS) {
|
|
24
|
+
for (const index of order.lines) {
|
|
25
|
+
const item = catalog[index % catalog.length];
|
|
26
|
+
const key = `${order.partnerId}:${item.templateId}`;
|
|
27
|
+
if (priced.has(key))
|
|
28
|
+
continue;
|
|
29
|
+
priced.add(key);
|
|
30
|
+
await call('purchase.saveSupplierInfo', {
|
|
31
|
+
id: `demo-supplier-info:${key}`,
|
|
32
|
+
partnerId: order.partnerId,
|
|
33
|
+
productTemplateId: item.templateId,
|
|
34
|
+
productUomId: item.uomId,
|
|
35
|
+
price: item.cost,
|
|
36
|
+
delay: 3,
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
await call('purchase.saveDraft', {
|
|
40
|
+
id: order.id,
|
|
41
|
+
partnerId: order.partnerId,
|
|
42
|
+
pickingTypeId,
|
|
43
|
+
create: true,
|
|
44
|
+
lines: order.lines.map((index, position) => {
|
|
45
|
+
const item = catalog[index % catalog.length];
|
|
46
|
+
return {
|
|
47
|
+
id: `${order.id}:line-${position + 1}`,
|
|
48
|
+
productId: item.productId,
|
|
49
|
+
productUomId: item.uomId,
|
|
50
|
+
productQty: String(10 + ((position * 5 + index) % 40)),
|
|
51
|
+
};
|
|
52
|
+
}),
|
|
53
|
+
});
|
|
54
|
+
ids.push(order.id);
|
|
55
|
+
}
|
|
56
|
+
return ids;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=purchase.js.map
|