@rippling/rippling-sdk 0.2.0-alpha.83 → 0.2.0-alpha.85
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/examples/manifest/custom-object-creation-workflow/custom-object-creation-workflow.ts +44 -26
- package/examples/manifest/dental-practice-management/dental-practice-management.ts +470 -142
- package/examples/manifest/dental-practice-management/functions/chair-schedule.ts +23 -13
- package/examples/manifest/dental-practice-management/functions/complete-visit.ts +55 -32
- package/examples/manifest/dental-practice-management/functions/operatory-list.ts +23 -13
- package/examples/manifest/dental-practice-management/functions/patient-list.ts +23 -13
- package/examples/manifest/dental-practice-management/functions/treatment-plan-list.ts +23 -13
- package/examples/manifest/existing-manifest-mutations/existing-manifest-mutations.ts +23 -68
- package/examples/manifest/field-service-dispatch/field-service-dispatch.ts +375 -102
- package/examples/manifest/grant-program-management/grant-program-management.ts +419 -125
- package/examples/manifest/gym-membership-management/functions/check-in-desk.ts +23 -13
- package/examples/manifest/gym-membership-management/functions/member-list.ts +23 -13
- package/examples/manifest/gym-membership-management/functions/today-schedule.ts +23 -13
- package/examples/manifest/gym-membership-management/functions/trainer-list.ts +23 -13
- package/examples/manifest/gym-membership-management/gym-membership-management.ts +442 -92
- package/examples/manifest/procurement-approval-hub/procurement-approval-hub.ts +408 -122
- package/examples/manifest/simple-todo-app/functions/mark-done.ts +12 -16
- package/examples/manifest/simple-todo-app/functions/todo-list.ts +23 -13
- package/examples/manifest/simple-todo-app/simple-todo-app.ts +109 -40
- package/examples/manifest/todo-app-without-object-list-view/functions/todo-page.ts +193 -166
- package/examples/manifest/todo-app-without-object-list-view/todo-app-without-object-list-view.ts +47 -24
- package/package.json +13 -7
- package/resources/custom-objects/custom-objects.d.mts +0 -7
- package/resources/custom-objects/custom-objects.d.mts.map +1 -1
- package/resources/custom-objects/custom-objects.d.ts +0 -7
- package/resources/custom-objects/custom-objects.d.ts.map +1 -1
- package/resources/custom-objects/custom-objects.js.map +1 -1
- package/resources/custom-objects/custom-objects.mjs.map +1 -1
- package/resources/custom-objects/fields.d.mts +14 -128
- package/resources/custom-objects/fields.d.mts.map +1 -1
- package/resources/custom-objects/fields.d.ts +14 -128
- package/resources/custom-objects/fields.d.ts.map +1 -1
- package/src/resources/custom-objects/custom-objects.ts +0 -8
- package/src/resources/custom-objects/fields.ts +13 -191
- package/src/tsconfig.json +1 -1
- package/src/version.ts +1 -1
- package/version.d.mts +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/version.mjs +1 -1
- package/core/platform/custom-objects/category.d.mts +0 -125
- package/core/platform/custom-objects/category.d.mts.map +0 -1
- package/core/platform/custom-objects/category.d.ts +0 -125
- package/core/platform/custom-objects/category.d.ts.map +0 -1
- package/core/platform/custom-objects/category.js +0 -188
- package/core/platform/custom-objects/category.js.map +0 -1
- package/core/platform/custom-objects/category.mjs +0 -178
- package/core/platform/custom-objects/category.mjs.map +0 -1
- package/core/platform/custom-objects/definition.d.mts +0 -147
- package/core/platform/custom-objects/definition.d.mts.map +0 -1
- package/core/platform/custom-objects/definition.d.ts +0 -147
- package/core/platform/custom-objects/definition.d.ts.map +0 -1
- package/core/platform/custom-objects/definition.js +0 -200
- package/core/platform/custom-objects/definition.js.map +0 -1
- package/core/platform/custom-objects/definition.mjs +0 -190
- package/core/platform/custom-objects/definition.mjs.map +0 -1
- package/core/platform/custom-objects/fields.d.mts +0 -302
- package/core/platform/custom-objects/fields.d.mts.map +0 -1
- package/core/platform/custom-objects/fields.d.ts +0 -302
- package/core/platform/custom-objects/fields.d.ts.map +0 -1
- package/core/platform/custom-objects/fields.js +0 -369
- package/core/platform/custom-objects/fields.js.map +0 -1
- package/core/platform/custom-objects/fields.mjs +0 -347
- package/core/platform/custom-objects/fields.mjs.map +0 -1
- package/core/platform/custom-objects/function-runtime.d.mts +0 -42
- package/core/platform/custom-objects/function-runtime.d.mts.map +0 -1
- package/core/platform/custom-objects/function-runtime.d.ts +0 -42
- package/core/platform/custom-objects/function-runtime.d.ts.map +0 -1
- package/core/platform/custom-objects/function-runtime.js +0 -38
- package/core/platform/custom-objects/function-runtime.js.map +0 -1
- package/core/platform/custom-objects/function-runtime.mjs +0 -35
- package/core/platform/custom-objects/function-runtime.mjs.map +0 -1
- package/core/platform/custom-objects/lifecycle.d.mts +0 -83
- package/core/platform/custom-objects/lifecycle.d.mts.map +0 -1
- package/core/platform/custom-objects/lifecycle.d.ts +0 -83
- package/core/platform/custom-objects/lifecycle.d.ts.map +0 -1
- package/core/platform/custom-objects/lifecycle.js +0 -372
- package/core/platform/custom-objects/lifecycle.js.map +0 -1
- package/core/platform/custom-objects/lifecycle.mjs +0 -367
- package/core/platform/custom-objects/lifecycle.mjs.map +0 -1
- package/core/platform/custom-objects/manager.d.mts +0 -354
- package/core/platform/custom-objects/manager.d.mts.map +0 -1
- package/core/platform/custom-objects/manager.d.ts +0 -354
- package/core/platform/custom-objects/manager.d.ts.map +0 -1
- package/core/platform/custom-objects/manager.js +0 -646
- package/core/platform/custom-objects/manager.js.map +0 -1
- package/core/platform/custom-objects/manager.mjs +0 -637
- package/core/platform/custom-objects/manager.mjs.map +0 -1
- package/core/platform/custom-objects/provisioning.d.mts +0 -138
- package/core/platform/custom-objects/provisioning.d.mts.map +0 -1
- package/core/platform/custom-objects/provisioning.d.ts +0 -138
- package/core/platform/custom-objects/provisioning.d.ts.map +0 -1
- package/core/platform/custom-objects/provisioning.js +0 -455
- package/core/platform/custom-objects/provisioning.js.map +0 -1
- package/core/platform/custom-objects/provisioning.mjs +0 -447
- package/core/platform/custom-objects/provisioning.mjs.map +0 -1
- package/core/platform/custom-objects/rql.d.mts +0 -122
- package/core/platform/custom-objects/rql.d.mts.map +0 -1
- package/core/platform/custom-objects/rql.d.ts +0 -122
- package/core/platform/custom-objects/rql.d.ts.map +0 -1
- package/core/platform/custom-objects/rql.js +0 -225
- package/core/platform/custom-objects/rql.js.map +0 -1
- package/core/platform/custom-objects/rql.mjs +0 -222
- package/core/platform/custom-objects/rql.mjs.map +0 -1
- package/core/platform/custom-objects/schema-manager.d.mts +0 -203
- package/core/platform/custom-objects/schema-manager.d.mts.map +0 -1
- package/core/platform/custom-objects/schema-manager.d.ts +0 -203
- package/core/platform/custom-objects/schema-manager.d.ts.map +0 -1
- package/core/platform/custom-objects/schema-manager.js +0 -256
- package/core/platform/custom-objects/schema-manager.js.map +0 -1
- package/core/platform/custom-objects/schema-manager.mjs +0 -249
- package/core/platform/custom-objects/schema-manager.mjs.map +0 -1
- package/core/platform/custom-objects/typed-rql.d.mts +0 -157
- package/core/platform/custom-objects/typed-rql.d.mts.map +0 -1
- package/core/platform/custom-objects/typed-rql.d.ts +0 -157
- package/core/platform/custom-objects/typed-rql.d.ts.map +0 -1
- package/core/platform/custom-objects/typed-rql.js +0 -583
- package/core/platform/custom-objects/typed-rql.js.map +0 -1
- package/core/platform/custom-objects/typed-rql.mjs +0 -580
- package/core/platform/custom-objects/typed-rql.mjs.map +0 -1
- package/core/platform/custom-objects/types.d.mts +0 -549
- package/core/platform/custom-objects/types.d.mts.map +0 -1
- package/core/platform/custom-objects/types.d.ts +0 -549
- package/core/platform/custom-objects/types.d.ts.map +0 -1
- package/core/platform/custom-objects/types.js +0 -20
- package/core/platform/custom-objects/types.js.map +0 -1
- package/core/platform/custom-objects/types.mjs +0 -17
- package/core/platform/custom-objects/types.mjs.map +0 -1
- package/core/platform/custom-objects/validation.d.mts +0 -97
- package/core/platform/custom-objects/validation.d.mts.map +0 -1
- package/core/platform/custom-objects/validation.d.ts +0 -97
- package/core/platform/custom-objects/validation.d.ts.map +0 -1
- package/core/platform/custom-objects/validation.js +0 -477
- package/core/platform/custom-objects/validation.js.map +0 -1
- package/core/platform/custom-objects/validation.mjs +0 -465
- package/core/platform/custom-objects/validation.mjs.map +0 -1
- package/core/platform/custom-objects.d.mts +0 -67
- package/core/platform/custom-objects.d.mts.map +0 -1
- package/core/platform/custom-objects.d.ts +0 -67
- package/core/platform/custom-objects.d.ts.map +0 -1
- package/core/platform/custom-objects.js +0 -118
- package/core/platform/custom-objects.js.map +0 -1
- package/core/platform/custom-objects.mjs +0 -45
- package/core/platform/custom-objects.mjs.map +0 -1
- package/core/platform/manifest/custom-objects/action.d.mts +0 -58
- package/core/platform/manifest/custom-objects/action.d.mts.map +0 -1
- package/core/platform/manifest/custom-objects/action.d.ts +0 -58
- package/core/platform/manifest/custom-objects/action.d.ts.map +0 -1
- package/core/platform/manifest/custom-objects/action.js +0 -44
- package/core/platform/manifest/custom-objects/action.js.map +0 -1
- package/core/platform/manifest/custom-objects/action.mjs +0 -40
- package/core/platform/manifest/custom-objects/action.mjs.map +0 -1
- package/core/platform/manifest/custom-objects/conditions.d.mts +0 -240
- package/core/platform/manifest/custom-objects/conditions.d.mts.map +0 -1
- package/core/platform/manifest/custom-objects/conditions.d.ts +0 -240
- package/core/platform/manifest/custom-objects/conditions.d.ts.map +0 -1
- package/core/platform/manifest/custom-objects/conditions.js +0 -326
- package/core/platform/manifest/custom-objects/conditions.js.map +0 -1
- package/core/platform/manifest/custom-objects/conditions.mjs +0 -321
- package/core/platform/manifest/custom-objects/conditions.mjs.map +0 -1
- package/core/platform/manifest/custom-objects/existing.d.mts +0 -87
- package/core/platform/manifest/custom-objects/existing.d.mts.map +0 -1
- package/core/platform/manifest/custom-objects/existing.d.ts +0 -87
- package/core/platform/manifest/custom-objects/existing.d.ts.map +0 -1
- package/core/platform/manifest/custom-objects/existing.js +0 -113
- package/core/platform/manifest/custom-objects/existing.js.map +0 -1
- package/core/platform/manifest/custom-objects/existing.mjs +0 -109
- package/core/platform/manifest/custom-objects/existing.mjs.map +0 -1
- package/core/platform/manifest/custom-objects/field-resolution.d.mts +0 -48
- package/core/platform/manifest/custom-objects/field-resolution.d.mts.map +0 -1
- package/core/platform/manifest/custom-objects/field-resolution.d.ts +0 -48
- package/core/platform/manifest/custom-objects/field-resolution.d.ts.map +0 -1
- package/core/platform/manifest/custom-objects/field-resolution.js +0 -61
- package/core/platform/manifest/custom-objects/field-resolution.js.map +0 -1
- package/core/platform/manifest/custom-objects/field-resolution.mjs +0 -58
- package/core/platform/manifest/custom-objects/field-resolution.mjs.map +0 -1
- package/core/platform/manifest/custom-objects/function-file.d.mts +0 -87
- package/core/platform/manifest/custom-objects/function-file.d.mts.map +0 -1
- package/core/platform/manifest/custom-objects/function-file.d.ts +0 -87
- package/core/platform/manifest/custom-objects/function-file.d.ts.map +0 -1
- package/core/platform/manifest/custom-objects/function-file.js +0 -76
- package/core/platform/manifest/custom-objects/function-file.js.map +0 -1
- package/core/platform/manifest/custom-objects/function-file.mjs +0 -69
- package/core/platform/manifest/custom-objects/function-file.mjs.map +0 -1
- package/core/platform/manifest/custom-objects/list-view.d.mts +0 -65
- package/core/platform/manifest/custom-objects/list-view.d.mts.map +0 -1
- package/core/platform/manifest/custom-objects/list-view.d.ts +0 -65
- package/core/platform/manifest/custom-objects/list-view.d.ts.map +0 -1
- package/core/platform/manifest/custom-objects/list-view.js +0 -33
- package/core/platform/manifest/custom-objects/list-view.js.map +0 -1
- package/core/platform/manifest/custom-objects/list-view.mjs +0 -30
- package/core/platform/manifest/custom-objects/list-view.mjs.map +0 -1
- package/core/platform/manifest/custom-objects/object-list-page.d.mts +0 -43
- package/core/platform/manifest/custom-objects/object-list-page.d.mts.map +0 -1
- package/core/platform/manifest/custom-objects/object-list-page.d.ts +0 -43
- package/core/platform/manifest/custom-objects/object-list-page.d.ts.map +0 -1
- package/core/platform/manifest/custom-objects/object-list-page.js +0 -54
- package/core/platform/manifest/custom-objects/object-list-page.js.map +0 -1
- package/core/platform/manifest/custom-objects/object-list-page.mjs +0 -50
- package/core/platform/manifest/custom-objects/object-list-page.mjs.map +0 -1
- package/core/platform/manifest/custom-objects/page-layout.d.mts +0 -142
- package/core/platform/manifest/custom-objects/page-layout.d.mts.map +0 -1
- package/core/platform/manifest/custom-objects/page-layout.d.ts +0 -142
- package/core/platform/manifest/custom-objects/page-layout.d.ts.map +0 -1
- package/core/platform/manifest/custom-objects/page-layout.js +0 -184
- package/core/platform/manifest/custom-objects/page-layout.js.map +0 -1
- package/core/platform/manifest/custom-objects/page-layout.mjs +0 -180
- package/core/platform/manifest/custom-objects/page-layout.mjs.map +0 -1
- package/core/platform/manifest/custom-objects/register.d.mts +0 -87
- package/core/platform/manifest/custom-objects/register.d.mts.map +0 -1
- package/core/platform/manifest/custom-objects/register.d.ts +0 -87
- package/core/platform/manifest/custom-objects/register.d.ts.map +0 -1
- package/core/platform/manifest/custom-objects/register.js +0 -395
- package/core/platform/manifest/custom-objects/register.js.map +0 -1
- package/core/platform/manifest/custom-objects/register.mjs +0 -391
- package/core/platform/manifest/custom-objects/register.mjs.map +0 -1
- package/core/platform/manifest/custom-objects/rule.d.mts +0 -113
- package/core/platform/manifest/custom-objects/rule.d.mts.map +0 -1
- package/core/platform/manifest/custom-objects/rule.d.ts +0 -113
- package/core/platform/manifest/custom-objects/rule.d.ts.map +0 -1
- package/core/platform/manifest/custom-objects/rule.js +0 -49
- package/core/platform/manifest/custom-objects/rule.js.map +0 -1
- package/core/platform/manifest/custom-objects/rule.mjs +0 -45
- package/core/platform/manifest/custom-objects/rule.mjs.map +0 -1
- package/core/platform/manifest/custom-objects/sdui-page.d.mts +0 -214
- package/core/platform/manifest/custom-objects/sdui-page.d.mts.map +0 -1
- package/core/platform/manifest/custom-objects/sdui-page.d.ts +0 -214
- package/core/platform/manifest/custom-objects/sdui-page.d.ts.map +0 -1
- package/core/platform/manifest/custom-objects/sdui-page.js +0 -194
- package/core/platform/manifest/custom-objects/sdui-page.js.map +0 -1
- package/core/platform/manifest/custom-objects/sdui-page.mjs +0 -182
- package/core/platform/manifest/custom-objects/sdui-page.mjs.map +0 -1
- package/core/platform/manifest/custom-objects/typed-condition.d.mts +0 -28
- package/core/platform/manifest/custom-objects/typed-condition.d.mts.map +0 -1
- package/core/platform/manifest/custom-objects/typed-condition.d.ts +0 -28
- package/core/platform/manifest/custom-objects/typed-condition.d.ts.map +0 -1
- package/core/platform/manifest/custom-objects/typed-condition.js +0 -434
- package/core/platform/manifest/custom-objects/typed-condition.js.map +0 -1
- package/core/platform/manifest/custom-objects/typed-condition.mjs +0 -431
- package/core/platform/manifest/custom-objects/typed-condition.mjs.map +0 -1
- package/core/platform/manifest/custom-objects/types.d.mts +0 -29
- package/core/platform/manifest/custom-objects/types.d.mts.map +0 -1
- package/core/platform/manifest/custom-objects/types.d.ts +0 -29
- package/core/platform/manifest/custom-objects/types.d.ts.map +0 -1
- package/core/platform/manifest/custom-objects/types.js +0 -3
- package/core/platform/manifest/custom-objects/types.js.map +0 -1
- package/core/platform/manifest/custom-objects/types.mjs +0 -2
- package/core/platform/manifest/custom-objects/types.mjs.map +0 -1
- package/core/platform/manifest/custom-objects/validation.d.mts +0 -44
- package/core/platform/manifest/custom-objects/validation.d.mts.map +0 -1
- package/core/platform/manifest/custom-objects/validation.d.ts +0 -44
- package/core/platform/manifest/custom-objects/validation.d.ts.map +0 -1
- package/core/platform/manifest/custom-objects/validation.js +0 -30
- package/core/platform/manifest/custom-objects/validation.js.map +0 -1
- package/core/platform/manifest/custom-objects/validation.mjs +0 -27
- package/core/platform/manifest/custom-objects/validation.mjs.map +0 -1
- package/core/platform/manifest/custom-objects/workflow.d.mts +0 -47
- package/core/platform/manifest/custom-objects/workflow.d.mts.map +0 -1
- package/core/platform/manifest/custom-objects/workflow.d.ts +0 -47
- package/core/platform/manifest/custom-objects/workflow.d.ts.map +0 -1
- package/core/platform/manifest/custom-objects/workflow.js +0 -38
- package/core/platform/manifest/custom-objects/workflow.js.map +0 -1
- package/core/platform/manifest/custom-objects/workflow.mjs +0 -34
- package/core/platform/manifest/custom-objects/workflow.mjs.map +0 -1
- package/core/platform/manifest/custom-objects.d.mts +0 -85
- package/core/platform/manifest/custom-objects.d.mts.map +0 -1
- package/core/platform/manifest/custom-objects.d.ts +0 -85
- package/core/platform/manifest/custom-objects.d.ts.map +0 -1
- package/core/platform/manifest/custom-objects.js +0 -84
- package/core/platform/manifest/custom-objects.js.map +0 -1
- package/core/platform/manifest/custom-objects.mjs +0 -55
- package/core/platform/manifest/custom-objects.mjs.map +0 -1
- package/examples/manifest/custom-object-creation-workflow/functions/intake-request-created.ts +0 -20
- package/examples/manifest/custom-object-creation-workflow/schema.ts +0 -29
- package/examples/manifest/dental-practice-management/schema.ts +0 -298
- package/examples/manifest/field-service-dispatch/schema.ts +0 -248
- package/examples/manifest/grant-program-management/schema.ts +0 -269
- package/examples/manifest/gym-membership-management/schema.ts +0 -266
- package/examples/manifest/procurement-approval-hub/functions/route-purchase-request.ts +0 -20
- package/examples/manifest/procurement-approval-hub/schema.ts +0 -256
- package/examples/manifest/simple-todo-app/schema.ts +0 -60
- package/examples/manifest/todo-app-without-object-list-view/schema.ts +0 -28
- package/src/core/platform/README.md +0 -20
- package/src/core/platform/custom-objects/category.ts +0 -294
- package/src/core/platform/custom-objects/definition.ts +0 -373
- package/src/core/platform/custom-objects/fields.ts +0 -653
- package/src/core/platform/custom-objects/function-runtime.ts +0 -76
- package/src/core/platform/custom-objects/lifecycle.ts +0 -557
- package/src/core/platform/custom-objects/manager.ts +0 -959
- package/src/core/platform/custom-objects/provisioning.ts +0 -672
- package/src/core/platform/custom-objects/rql.ts +0 -375
- package/src/core/platform/custom-objects/schema-manager.ts +0 -351
- package/src/core/platform/custom-objects/typed-rql.ts +0 -1273
- package/src/core/platform/custom-objects/types.ts +0 -753
- package/src/core/platform/custom-objects/validation.ts +0 -573
- package/src/core/platform/custom-objects.ts +0 -269
- package/src/core/platform/manifest/README.md +0 -26
- package/src/core/platform/manifest/custom-objects/action.ts +0 -87
- package/src/core/platform/manifest/custom-objects/conditions.ts +0 -762
- package/src/core/platform/manifest/custom-objects/existing.ts +0 -221
- package/src/core/platform/manifest/custom-objects/field-resolution.ts +0 -116
- package/src/core/platform/manifest/custom-objects/function-file.ts +0 -149
- package/src/core/platform/manifest/custom-objects/list-view.ts +0 -95
- package/src/core/platform/manifest/custom-objects/object-list-page.ts +0 -87
- package/src/core/platform/manifest/custom-objects/page-layout.ts +0 -380
- package/src/core/platform/manifest/custom-objects/register.ts +0 -555
- package/src/core/platform/manifest/custom-objects/rule.ts +0 -192
- package/src/core/platform/manifest/custom-objects/sdui-page.ts +0 -515
- package/src/core/platform/manifest/custom-objects/typed-condition.ts +0 -617
- package/src/core/platform/manifest/custom-objects/types.ts +0 -92
- package/src/core/platform/manifest/custom-objects/validation.ts +0 -70
- package/src/core/platform/manifest/custom-objects/workflow.ts +0 -71
- package/src/core/platform/manifest/custom-objects.ts +0 -203
- package/src/pebble-sdui-web-custom-apps-shim.d.ts +0 -3
|
@@ -12,23 +12,26 @@
|
|
|
12
12
|
* > examples/manifest/field-service-dispatch/manifest.json
|
|
13
13
|
*/
|
|
14
14
|
|
|
15
|
-
import { toCustomCategoryApiName } from '@rippling/rippling-sdk/core/platform/custom-objects';
|
|
16
15
|
import {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
16
|
+
Category,
|
|
17
|
+
CustomObject,
|
|
18
|
+
CustomObjectFieldSection,
|
|
19
|
+
CustomObjectPageLayout,
|
|
20
|
+
DateField,
|
|
21
|
+
DatetimeField,
|
|
22
|
+
FormulaField,
|
|
23
|
+
ListViewDef,
|
|
24
|
+
LongTextField,
|
|
25
|
+
LookupField,
|
|
26
|
+
ManifestBuilder,
|
|
27
|
+
NumberField,
|
|
28
|
+
ParentChildField,
|
|
29
|
+
Rule,
|
|
30
|
+
RadioField,
|
|
31
|
+
SummaryField,
|
|
32
|
+
TextField,
|
|
33
|
+
Validation,
|
|
34
|
+
} from '@rippling/rippling-sdk/lib/manifest';
|
|
32
35
|
|
|
33
36
|
const manifest = new ManifestBuilder({
|
|
34
37
|
key: 'field_service_dispatch',
|
|
@@ -37,221 +40,491 @@ const manifest = new ManifestBuilder({
|
|
|
37
40
|
});
|
|
38
41
|
|
|
39
42
|
const category = new Category(manifest, {
|
|
40
|
-
apiName:
|
|
43
|
+
apiName: 'field_service__c',
|
|
41
44
|
name: 'Field service',
|
|
42
45
|
description: 'Service operations and dispatch records',
|
|
43
46
|
});
|
|
44
47
|
|
|
45
|
-
const
|
|
48
|
+
const siteObj = new CustomObject(manifest, {
|
|
49
|
+
apiName: 'fs_customer_site__c',
|
|
50
|
+
name: 'Customer site',
|
|
51
|
+
pluralLabel: 'Customer sites',
|
|
52
|
+
category,
|
|
53
|
+
description: 'Customer location with service tier and access notes',
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
const siteSection = new CustomObjectFieldSection(siteObj, {
|
|
57
|
+
name: 'Site',
|
|
58
|
+
sectionId: 'sec_fs_site',
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
const siteAccountField = new TextField(siteObj, {
|
|
62
|
+
apiName: 'account_name__c',
|
|
63
|
+
displayName: 'Account name',
|
|
64
|
+
description: 'Customer account or property group',
|
|
65
|
+
required: true,
|
|
66
|
+
maxLength: 160,
|
|
67
|
+
section: siteSection,
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
const siteAddressField = new LongTextField(siteObj, {
|
|
71
|
+
apiName: 'service_address__c',
|
|
72
|
+
displayName: 'Service address',
|
|
73
|
+
description: 'Address, gate code, and arrival instructions',
|
|
74
|
+
maxLength: 3000,
|
|
75
|
+
section: siteSection,
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
const siteTierField = new RadioField(siteObj, {
|
|
79
|
+
apiName: 'service_tier__c',
|
|
80
|
+
displayName: 'Service tier',
|
|
81
|
+
description: 'SLA tier for dispatch prioritization',
|
|
82
|
+
options: ['Standard', 'Premium', 'Critical 24x7'],
|
|
83
|
+
required: true,
|
|
84
|
+
section: siteSection,
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
const assetObj = new CustomObject(manifest, {
|
|
88
|
+
apiName: 'fs_asset__c',
|
|
89
|
+
name: 'Asset',
|
|
90
|
+
pluralLabel: 'Assets',
|
|
46
91
|
category,
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
92
|
+
description: 'Installed equipment maintained at a customer site',
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
const assetSection = new CustomObjectFieldSection(assetObj, {
|
|
96
|
+
name: 'Asset',
|
|
97
|
+
sectionId: 'sec_fs_asset',
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
const assetSiteRef = new ParentChildField(assetObj, {
|
|
101
|
+
apiName: 'customer_site_ref__c',
|
|
102
|
+
displayName: 'Customer site',
|
|
103
|
+
target: siteObj,
|
|
104
|
+
relatedDataLabel: 'Assets',
|
|
105
|
+
parentChildType: 'PRIMARY',
|
|
106
|
+
enableParentOwnerInheritance: false,
|
|
107
|
+
description: 'Site where this asset is installed',
|
|
108
|
+
section: assetSection,
|
|
109
|
+
});
|
|
110
|
+
|
|
111
|
+
const assetSerialField = new TextField(assetObj, {
|
|
112
|
+
apiName: 'serial_number__c',
|
|
113
|
+
displayName: 'Serial number',
|
|
114
|
+
description: 'Manufacturer serial number',
|
|
115
|
+
maxLength: 80,
|
|
116
|
+
section: assetSection,
|
|
117
|
+
});
|
|
118
|
+
|
|
119
|
+
const assetTypeField = new RadioField(assetObj, {
|
|
120
|
+
apiName: 'asset_type__c',
|
|
121
|
+
displayName: 'Asset type',
|
|
122
|
+
description: 'Equipment category',
|
|
123
|
+
options: ['HVAC', 'Generator', 'Security', 'Network', 'Kitchen equipment', 'Other'],
|
|
124
|
+
required: true,
|
|
125
|
+
section: assetSection,
|
|
126
|
+
});
|
|
127
|
+
|
|
128
|
+
const assetWarrantyEndField = new DateField(assetObj, {
|
|
129
|
+
apiName: 'warranty_end__c',
|
|
130
|
+
displayName: 'Warranty end',
|
|
131
|
+
description: 'Warranty expiration date',
|
|
132
|
+
section: assetSection,
|
|
133
|
+
});
|
|
134
|
+
|
|
135
|
+
const workOrderObj = new CustomObject(manifest, {
|
|
136
|
+
apiName: 'fs_work_order__c',
|
|
137
|
+
name: 'Work order',
|
|
138
|
+
pluralLabel: 'Work orders',
|
|
139
|
+
category,
|
|
140
|
+
description: 'Dispatch job with schedule, priority, and status',
|
|
141
|
+
});
|
|
142
|
+
|
|
143
|
+
const workOrderSection = new CustomObjectFieldSection(workOrderObj, {
|
|
144
|
+
name: 'Work order',
|
|
145
|
+
sectionId: 'sec_fs_work_order',
|
|
146
|
+
});
|
|
147
|
+
|
|
148
|
+
const workOrderSiteRef = new ParentChildField(workOrderObj, {
|
|
149
|
+
apiName: 'customer_site_ref__c',
|
|
150
|
+
displayName: 'Customer site',
|
|
151
|
+
target: siteObj,
|
|
152
|
+
relatedDataLabel: 'Work orders',
|
|
153
|
+
parentChildType: 'PRIMARY',
|
|
154
|
+
enableParentOwnerInheritance: false,
|
|
155
|
+
description: 'Site receiving service',
|
|
156
|
+
section: workOrderSection,
|
|
157
|
+
});
|
|
158
|
+
|
|
159
|
+
const workOrderAssetRef = new LookupField(workOrderObj, {
|
|
160
|
+
apiName: 'asset_ref__c',
|
|
161
|
+
displayName: 'Asset',
|
|
162
|
+
target: assetObj,
|
|
163
|
+
relatedDataLabel: 'Work orders',
|
|
164
|
+
description: 'Optional installed asset being serviced',
|
|
165
|
+
section: workOrderSection,
|
|
166
|
+
});
|
|
167
|
+
|
|
168
|
+
const workOrderPriorityField = new RadioField(workOrderObj, {
|
|
169
|
+
apiName: 'priority__c',
|
|
170
|
+
displayName: 'Priority',
|
|
171
|
+
description: 'Dispatch priority',
|
|
172
|
+
options: ['Low', 'Normal', 'High', 'Emergency'],
|
|
173
|
+
required: true,
|
|
174
|
+
section: workOrderSection,
|
|
175
|
+
});
|
|
176
|
+
|
|
177
|
+
const workOrderStatusField = new RadioField(workOrderObj, {
|
|
178
|
+
apiName: 'status__c',
|
|
179
|
+
displayName: 'Status',
|
|
180
|
+
description: 'Current dispatch status',
|
|
181
|
+
options: ['New', 'Scheduled', 'In progress', 'Blocked', 'Complete', 'Cancelled'],
|
|
182
|
+
required: true,
|
|
183
|
+
section: workOrderSection,
|
|
184
|
+
});
|
|
185
|
+
|
|
186
|
+
const workOrderScheduledStartField = new DatetimeField(workOrderObj, {
|
|
187
|
+
apiName: 'scheduled_start__c',
|
|
188
|
+
displayName: 'Scheduled start',
|
|
189
|
+
description: 'Planned arrival window start',
|
|
190
|
+
section: workOrderSection,
|
|
191
|
+
});
|
|
192
|
+
|
|
193
|
+
const workOrderScheduledEndField = new DatetimeField(workOrderObj, {
|
|
194
|
+
apiName: 'scheduled_end__c',
|
|
195
|
+
displayName: 'Scheduled end',
|
|
196
|
+
description: 'Planned arrival window end',
|
|
197
|
+
section: workOrderSection,
|
|
54
198
|
});
|
|
55
199
|
|
|
56
|
-
const
|
|
200
|
+
const workOrderSummaryField = new LongTextField(workOrderObj, {
|
|
201
|
+
apiName: 'problem_summary__c',
|
|
202
|
+
displayName: 'Problem summary',
|
|
203
|
+
description: 'Customer-reported issue and triage notes',
|
|
204
|
+
maxLength: 6000,
|
|
205
|
+
section: workOrderSection,
|
|
206
|
+
});
|
|
207
|
+
|
|
208
|
+
const taskObj = new CustomObject(manifest, {
|
|
209
|
+
apiName: 'fs_task__c',
|
|
210
|
+
name: 'Task',
|
|
211
|
+
pluralLabel: 'Tasks',
|
|
212
|
+
category,
|
|
213
|
+
description: 'Work order task with labor estimate and completion state',
|
|
214
|
+
});
|
|
215
|
+
|
|
216
|
+
const taskSection = new CustomObjectFieldSection(taskObj, {
|
|
217
|
+
name: 'Task',
|
|
218
|
+
sectionId: 'sec_fs_task',
|
|
219
|
+
});
|
|
220
|
+
|
|
221
|
+
const taskWorkOrderRef = new ParentChildField(taskObj, {
|
|
222
|
+
apiName: 'work_order_ref__c',
|
|
223
|
+
displayName: 'Work order',
|
|
224
|
+
target: workOrderObj,
|
|
225
|
+
relatedDataLabel: 'Tasks',
|
|
226
|
+
parentChildType: 'PRIMARY',
|
|
227
|
+
enableParentOwnerInheritance: true,
|
|
228
|
+
description: 'Work order this task belongs to',
|
|
229
|
+
section: taskSection,
|
|
230
|
+
});
|
|
231
|
+
|
|
232
|
+
const taskTypeField = new RadioField(taskObj, {
|
|
233
|
+
apiName: 'task_type__c',
|
|
234
|
+
displayName: 'Task type',
|
|
235
|
+
description: 'Type of work required',
|
|
236
|
+
options: ['Inspect', 'Repair', 'Replace', 'Calibrate', 'Clean', 'Customer walkthrough'],
|
|
237
|
+
required: true,
|
|
238
|
+
section: taskSection,
|
|
239
|
+
});
|
|
240
|
+
|
|
241
|
+
const taskStatusField = new RadioField(taskObj, {
|
|
242
|
+
apiName: 'status__c',
|
|
243
|
+
displayName: 'Status',
|
|
244
|
+
description: 'Task status',
|
|
245
|
+
options: ['Open', 'In progress', 'Blocked', 'Done'],
|
|
246
|
+
required: true,
|
|
247
|
+
section: taskSection,
|
|
248
|
+
});
|
|
249
|
+
|
|
250
|
+
const taskEstimatedHoursField = new NumberField(taskObj, {
|
|
251
|
+
apiName: 'estimated_hours__c',
|
|
252
|
+
displayName: 'Estimated hours',
|
|
253
|
+
description: 'Labor estimate for this task',
|
|
254
|
+
decimalPlaces: 2,
|
|
255
|
+
section: taskSection,
|
|
256
|
+
});
|
|
257
|
+
|
|
258
|
+
const taskCompletedAtField = new DatetimeField(taskObj, {
|
|
259
|
+
apiName: 'completed_at__c',
|
|
260
|
+
displayName: 'Completed at',
|
|
261
|
+
description: 'Completion timestamp',
|
|
262
|
+
section: taskSection,
|
|
263
|
+
});
|
|
264
|
+
|
|
265
|
+
const partUsageObj = new CustomObject(manifest, {
|
|
266
|
+
apiName: 'fs_part_usage__c',
|
|
267
|
+
name: 'Part usage',
|
|
268
|
+
pluralLabel: 'Part usage',
|
|
269
|
+
category,
|
|
270
|
+
description: 'Part consumed while completing a task',
|
|
271
|
+
});
|
|
272
|
+
|
|
273
|
+
const partUsageSection = new CustomObjectFieldSection(partUsageObj, {
|
|
274
|
+
name: 'Part usage',
|
|
275
|
+
sectionId: 'sec_fs_part_usage',
|
|
276
|
+
});
|
|
277
|
+
|
|
278
|
+
const partTaskRef = new ParentChildField(partUsageObj, {
|
|
279
|
+
apiName: 'task_ref__c',
|
|
280
|
+
displayName: 'Task',
|
|
281
|
+
target: taskObj,
|
|
282
|
+
relatedDataLabel: 'Parts used',
|
|
283
|
+
parentChildType: 'PRIMARY',
|
|
284
|
+
enableParentOwnerInheritance: true,
|
|
285
|
+
description: 'Task that consumed this part',
|
|
286
|
+
section: partUsageSection,
|
|
287
|
+
});
|
|
288
|
+
|
|
289
|
+
const partSkuField = new TextField(partUsageObj, {
|
|
290
|
+
apiName: 'sku__c',
|
|
291
|
+
displayName: 'SKU',
|
|
292
|
+
description: 'Inventory SKU or part number',
|
|
293
|
+
maxLength: 80,
|
|
294
|
+
required: true,
|
|
295
|
+
section: partUsageSection,
|
|
296
|
+
});
|
|
297
|
+
|
|
298
|
+
const partQuantityField = new NumberField(partUsageObj, {
|
|
299
|
+
apiName: 'quantity__c',
|
|
300
|
+
displayName: 'Quantity',
|
|
301
|
+
description: 'Quantity consumed',
|
|
302
|
+
decimalPlaces: 2,
|
|
303
|
+
required: true,
|
|
304
|
+
section: partUsageSection,
|
|
305
|
+
});
|
|
306
|
+
|
|
307
|
+
const partCostCentsField = new NumberField(partUsageObj, {
|
|
308
|
+
apiName: 'unit_cost_cents__c',
|
|
309
|
+
displayName: 'Unit cost (cents)',
|
|
310
|
+
description: 'Unit material cost in cents',
|
|
311
|
+
decimalPlaces: 0,
|
|
312
|
+
section: partUsageSection,
|
|
313
|
+
});
|
|
314
|
+
|
|
315
|
+
const assetCountOnSite = new SummaryField(siteObj, {
|
|
57
316
|
apiName: 'asset_count__c',
|
|
58
317
|
displayName: 'Assets',
|
|
59
|
-
aggregates:
|
|
318
|
+
aggregates: assetSerialField,
|
|
60
319
|
using: 'COUNT',
|
|
61
|
-
lookup:
|
|
320
|
+
lookup: assetSiteRef,
|
|
62
321
|
description: 'Installed asset count',
|
|
63
|
-
section:
|
|
322
|
+
section: siteSection,
|
|
64
323
|
});
|
|
65
324
|
|
|
66
|
-
const workOrderCountOnSite = new SummaryField(
|
|
325
|
+
const workOrderCountOnSite = new SummaryField(siteObj, {
|
|
67
326
|
apiName: 'work_order_count__c',
|
|
68
327
|
displayName: 'Work orders',
|
|
69
|
-
aggregates:
|
|
328
|
+
aggregates: workOrderStatusField,
|
|
70
329
|
using: 'COUNT',
|
|
71
|
-
lookup:
|
|
330
|
+
lookup: workOrderSiteRef,
|
|
72
331
|
description: 'Work orders associated with this site',
|
|
73
|
-
section:
|
|
332
|
+
section: siteSection,
|
|
74
333
|
});
|
|
75
334
|
|
|
76
|
-
const taskCountOnWorkOrder = new SummaryField(
|
|
335
|
+
const taskCountOnWorkOrder = new SummaryField(workOrderObj, {
|
|
77
336
|
apiName: 'task_count__c',
|
|
78
337
|
displayName: 'Tasks',
|
|
79
|
-
aggregates:
|
|
338
|
+
aggregates: taskTypeField,
|
|
80
339
|
using: 'COUNT',
|
|
81
|
-
lookup:
|
|
340
|
+
lookup: taskWorkOrderRef,
|
|
82
341
|
description: 'Task count on this work order',
|
|
83
|
-
section:
|
|
342
|
+
section: workOrderSection,
|
|
84
343
|
});
|
|
85
344
|
|
|
86
|
-
const estimatedHoursOnWorkOrder = new SummaryField(
|
|
345
|
+
const estimatedHoursOnWorkOrder = new SummaryField(workOrderObj, {
|
|
87
346
|
apiName: 'estimated_hours_total__c',
|
|
88
347
|
displayName: 'Estimated hours total',
|
|
89
|
-
aggregates:
|
|
348
|
+
aggregates: taskEstimatedHoursField,
|
|
90
349
|
using: 'SUM',
|
|
91
|
-
lookup:
|
|
350
|
+
lookup: taskWorkOrderRef,
|
|
92
351
|
description: 'Total estimated labor hours',
|
|
93
|
-
section:
|
|
352
|
+
section: workOrderSection,
|
|
94
353
|
});
|
|
95
354
|
|
|
96
|
-
const partsCountOnTask = new SummaryField(
|
|
355
|
+
const partsCountOnTask = new SummaryField(taskObj, {
|
|
97
356
|
apiName: 'parts_count__c',
|
|
98
357
|
displayName: 'Parts lines',
|
|
99
|
-
aggregates:
|
|
358
|
+
aggregates: partSkuField,
|
|
100
359
|
using: 'COUNT',
|
|
101
|
-
lookup:
|
|
360
|
+
lookup: partTaskRef,
|
|
102
361
|
description: 'Number of part usage lines',
|
|
103
|
-
section:
|
|
362
|
+
section: taskSection,
|
|
363
|
+
});
|
|
364
|
+
|
|
365
|
+
const workOrderLabelField = new FormulaField(workOrderObj, {
|
|
366
|
+
apiName: 'dispatch_label__c',
|
|
367
|
+
displayName: 'Dispatch label',
|
|
368
|
+
description: 'Compact board label',
|
|
369
|
+
fieldType: 'TEXT',
|
|
370
|
+
maxLength: 240,
|
|
371
|
+
formula: "CONCATENATE(priority__c, ' - ', status__c)",
|
|
372
|
+
section: workOrderSection,
|
|
104
373
|
});
|
|
105
374
|
|
|
106
|
-
|
|
107
|
-
defineTypedValidation(workOrder, {
|
|
375
|
+
new Validation(workOrderObj, {
|
|
108
376
|
ruleId: 'fs_work_order_window_valid',
|
|
109
377
|
displayName: 'Scheduled end must be after start',
|
|
110
|
-
|
|
378
|
+
rqlFormula: '(scheduled_end__c <= scheduled_start__c)',
|
|
111
379
|
errorMessage: 'Scheduled end must be after scheduled start.',
|
|
112
380
|
ruleDescription: 'Prevents inverted dispatch windows',
|
|
113
381
|
state: 'ACTIVE',
|
|
114
382
|
level: 'FIELD',
|
|
115
|
-
|
|
383
|
+
fieldRef: workOrderScheduledEndField,
|
|
116
384
|
});
|
|
117
385
|
|
|
118
|
-
|
|
386
|
+
new Validation(partUsageObj, {
|
|
119
387
|
ruleId: 'fs_part_quantity_positive',
|
|
120
388
|
displayName: 'Quantity must be positive',
|
|
121
|
-
|
|
389
|
+
rqlFormula: '(quantity__c <= 0)',
|
|
122
390
|
errorMessage: 'Quantity must be greater than zero.',
|
|
123
391
|
ruleDescription: 'Blocks zero or negative parts usage',
|
|
124
392
|
state: 'ACTIVE',
|
|
125
393
|
level: 'FIELD',
|
|
126
|
-
|
|
394
|
+
fieldRef: partQuantityField,
|
|
127
395
|
});
|
|
128
396
|
|
|
129
|
-
|
|
397
|
+
new Rule(workOrderObj, {
|
|
130
398
|
flowId: 'fs_default_work_order_status',
|
|
131
399
|
flowName: 'Default work order status',
|
|
132
400
|
triggerType: 'CREATE',
|
|
133
401
|
description: 'New work orders start in New status',
|
|
134
|
-
actions:
|
|
402
|
+
actions: [{ targetField: workOrderStatusField, fixedValue: 'New' }],
|
|
135
403
|
});
|
|
136
404
|
|
|
137
|
-
|
|
405
|
+
new Rule(taskObj, {
|
|
138
406
|
flowId: 'fs_default_task_status',
|
|
139
407
|
flowName: 'Default task status',
|
|
140
408
|
triggerType: 'CREATE',
|
|
141
409
|
description: 'New tasks start Open',
|
|
142
|
-
actions:
|
|
410
|
+
actions: [{ targetField: taskStatusField, fixedValue: 'Open' }],
|
|
143
411
|
});
|
|
144
412
|
|
|
145
|
-
|
|
146
|
-
defineTypedListView(site, {
|
|
413
|
+
new ListViewDef(siteObj, {
|
|
147
414
|
viewId: 'view_fs_customer_sites',
|
|
148
415
|
name: 'Customer sites',
|
|
149
416
|
description: 'Sites with service tier, assets, and work order volume',
|
|
150
|
-
fields: ['name',
|
|
417
|
+
fields: ['name', siteAccountField, siteTierField, assetCountOnSite, workOrderCountOnSite],
|
|
151
418
|
orderBy: 'name',
|
|
152
419
|
sortOrder: 'ASC',
|
|
153
420
|
isPublic: true,
|
|
154
421
|
objectScope: 'all',
|
|
155
422
|
});
|
|
156
423
|
|
|
157
|
-
|
|
424
|
+
new ListViewDef(assetObj, {
|
|
158
425
|
viewId: 'view_fs_assets',
|
|
159
426
|
name: 'Assets',
|
|
160
427
|
description: 'Installed equipment by site',
|
|
161
|
-
fields: ['name',
|
|
428
|
+
fields: ['name', assetSiteRef, assetTypeField, assetSerialField, assetWarrantyEndField],
|
|
162
429
|
orderBy: 'name',
|
|
163
430
|
sortOrder: 'ASC',
|
|
164
431
|
isPublic: true,
|
|
165
432
|
objectScope: 'all',
|
|
166
433
|
});
|
|
167
434
|
|
|
168
|
-
|
|
435
|
+
new ListViewDef(workOrderObj, {
|
|
169
436
|
viewId: 'view_fs_work_orders',
|
|
170
437
|
name: 'Work orders',
|
|
171
438
|
description: 'Dispatch board with schedule and rollups',
|
|
172
439
|
fields: [
|
|
173
440
|
'name',
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
441
|
+
workOrderSiteRef,
|
|
442
|
+
workOrderAssetRef,
|
|
443
|
+
workOrderPriorityField,
|
|
444
|
+
workOrderStatusField,
|
|
445
|
+
workOrderScheduledStartField,
|
|
179
446
|
taskCountOnWorkOrder,
|
|
180
447
|
estimatedHoursOnWorkOrder,
|
|
181
|
-
|
|
448
|
+
workOrderLabelField,
|
|
182
449
|
],
|
|
183
|
-
orderBy:
|
|
450
|
+
orderBy: workOrderScheduledStartField,
|
|
184
451
|
sortOrder: 'ASC',
|
|
185
452
|
isPublic: true,
|
|
186
453
|
objectScope: 'all',
|
|
187
454
|
});
|
|
188
455
|
|
|
189
|
-
|
|
456
|
+
new ListViewDef(taskObj, {
|
|
190
457
|
viewId: 'view_fs_tasks',
|
|
191
458
|
name: 'Tasks',
|
|
192
459
|
description: 'Task checklist with estimates and parts lines',
|
|
193
|
-
fields: [
|
|
194
|
-
|
|
460
|
+
fields: [
|
|
461
|
+
'name',
|
|
462
|
+
taskWorkOrderRef,
|
|
463
|
+
taskTypeField,
|
|
464
|
+
taskStatusField,
|
|
465
|
+
taskEstimatedHoursField,
|
|
466
|
+
partsCountOnTask,
|
|
467
|
+
],
|
|
468
|
+
orderBy: taskWorkOrderRef,
|
|
195
469
|
sortOrder: 'ASC',
|
|
196
470
|
isPublic: true,
|
|
197
471
|
objectScope: 'all',
|
|
198
472
|
});
|
|
199
473
|
|
|
200
|
-
|
|
474
|
+
new ListViewDef(partUsageObj, {
|
|
201
475
|
viewId: 'view_fs_part_usage',
|
|
202
476
|
name: 'Part usage',
|
|
203
477
|
description: 'Parts consumed by service tasks',
|
|
204
|
-
fields: ['name',
|
|
205
|
-
orderBy:
|
|
478
|
+
fields: ['name', partTaskRef, partSkuField, partQuantityField, partCostCentsField],
|
|
479
|
+
orderBy: partTaskRef,
|
|
206
480
|
sortOrder: 'ASC',
|
|
207
481
|
isPublic: true,
|
|
208
482
|
objectScope: 'all',
|
|
209
483
|
});
|
|
210
484
|
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
fields: ['name', 'account_name', 'service_address', 'service_tier', assetCountOnSite, workOrderCountOnSite],
|
|
485
|
+
CustomObjectPageLayout.basic(siteObj, {
|
|
486
|
+
section: siteSection,
|
|
487
|
+
fields: ['name', siteAccountField, siteAddressField, siteTierField, assetCountOnSite, workOrderCountOnSite],
|
|
215
488
|
});
|
|
216
489
|
|
|
217
|
-
|
|
218
|
-
section:
|
|
219
|
-
fields: ['name',
|
|
490
|
+
CustomObjectPageLayout.basic(assetObj, {
|
|
491
|
+
section: assetSection,
|
|
492
|
+
fields: ['name', assetSiteRef, assetSerialField, assetTypeField, assetWarrantyEndField],
|
|
220
493
|
});
|
|
221
494
|
|
|
222
|
-
|
|
223
|
-
section:
|
|
495
|
+
CustomObjectPageLayout.basic(workOrderObj, {
|
|
496
|
+
section: workOrderSection,
|
|
224
497
|
fields: [
|
|
225
498
|
'name',
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
499
|
+
workOrderSiteRef,
|
|
500
|
+
workOrderAssetRef,
|
|
501
|
+
workOrderPriorityField,
|
|
502
|
+
workOrderStatusField,
|
|
503
|
+
workOrderScheduledStartField,
|
|
504
|
+
workOrderScheduledEndField,
|
|
505
|
+
workOrderSummaryField,
|
|
233
506
|
taskCountOnWorkOrder,
|
|
234
507
|
estimatedHoursOnWorkOrder,
|
|
235
|
-
|
|
508
|
+
workOrderLabelField,
|
|
236
509
|
],
|
|
237
510
|
});
|
|
238
511
|
|
|
239
|
-
|
|
240
|
-
section:
|
|
512
|
+
CustomObjectPageLayout.basic(taskObj, {
|
|
513
|
+
section: taskSection,
|
|
241
514
|
fields: [
|
|
242
515
|
'name',
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
516
|
+
taskWorkOrderRef,
|
|
517
|
+
taskTypeField,
|
|
518
|
+
taskStatusField,
|
|
519
|
+
taskEstimatedHoursField,
|
|
520
|
+
taskCompletedAtField,
|
|
248
521
|
partsCountOnTask,
|
|
249
522
|
],
|
|
250
523
|
});
|
|
251
524
|
|
|
252
|
-
|
|
253
|
-
section:
|
|
254
|
-
fields: ['name',
|
|
525
|
+
CustomObjectPageLayout.basic(partUsageObj, {
|
|
526
|
+
section: partUsageSection,
|
|
527
|
+
fields: ['name', partTaskRef, partSkuField, partQuantityField, partCostCentsField],
|
|
255
528
|
});
|
|
256
529
|
|
|
257
530
|
console.log(manifest.preview());
|