@steedos-labs/content-compliance 1.0.3 → 1.0.5
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/index.js +1 -1
- package/lib/actions/bypassApproval.js +38 -36
- package/lib/actions/bypassApproval.js.map +1 -1
- package/lib/actions/terminate.js +1 -1
- package/lib/actions/terminate.js.map +1 -1
- package/lib/methods/__tests__/attachment.test.d.ts +1 -0
- package/lib/methods/__tests__/attachment.test.js +31 -0
- package/lib/methods/__tests__/attachment.test.js.map +1 -0
- package/lib/methods/__tests__/contentHubTagSync.test.js +41 -1
- package/lib/methods/__tests__/contentHubTagSync.test.js.map +1 -1
- package/lib/methods/__tests__/productPicklist.test.d.ts +1 -0
- package/lib/methods/__tests__/productPicklist.test.js +98 -0
- package/lib/methods/__tests__/productPicklist.test.js.map +1 -0
- package/lib/methods/__tests__/spaceUserAgencyFieldsMetadata.test.d.ts +1 -0
- package/lib/methods/__tests__/spaceUserAgencyFieldsMetadata.test.js +109 -0
- package/lib/methods/__tests__/spaceUserAgencyFieldsMetadata.test.js.map +1 -0
- package/lib/methods/__tests__/terminateBypassAttachments.test.d.ts +1 -0
- package/lib/methods/__tests__/terminateBypassAttachments.test.js +163 -0
- package/lib/methods/__tests__/terminateBypassAttachments.test.js.map +1 -0
- package/lib/methods/approval_engine.d.ts +1 -1
- package/lib/methods/approval_engine.js +69 -43
- package/lib/methods/approval_engine.js.map +1 -1
- package/lib/methods/attachment.d.ts +2 -0
- package/lib/methods/attachment.js +21 -0
- package/lib/methods/attachment.js.map +1 -0
- package/lib/methods/content_hub.js +3 -3
- package/lib/methods/content_hub.js.map +1 -1
- package/lib/methods/content_hub_material_group_rule.js +2 -2
- package/lib/methods/content_hub_material_group_rule.js.map +1 -1
- package/lib/methods/content_hub_tag.d.ts +4 -0
- package/lib/methods/content_hub_tag.js +10 -3
- package/lib/methods/content_hub_tag.js.map +1 -1
- package/lib/methods/dashboard_sync_data.js +34 -30
- package/lib/methods/dashboard_sync_data.js.map +1 -1
- package/lib/methods/product_picklist.d.ts +4 -0
- package/lib/methods/product_picklist.js +10 -0
- package/lib/methods/product_picklist.js.map +1 -0
- package/lib/methods/tag_label.d.ts +2 -0
- package/lib/methods/tag_label.js +4 -3
- package/lib/methods/tag_label.js.map +1 -1
- package/main/default/objects/pepsico_approval_process/fields/attachments.field.yml +11 -0
- package/main/default/objects/pepsico_ch_sync_rule/fields/product.field.yml +4 -2
- package/main/default/objects/pepsico_material_approval/buttons/pepsico_bypass_approval.button.yml +24 -1
- package/main/default/objects/pepsico_material_approval/buttons/pepsico_terminate.button.yml +24 -1
- package/main/default/objects/pepsico_material_approval/fields/ch_sync_rule_check.field.yml +4 -8
- package/main/default/objects/pepsico_material_approval/fields/product.field.yml +16 -3
- package/main/default/objects/pepsico_reviewer/fields/product.field.yml +11 -2
- package/main/default/triggers/pepsico_material_approval_changName.trigger.yml +3 -1
- package/main/default/triggers/pepsico_material_approval_tag_label.trigger.yml +6 -3
- package/package.json +2 -2
- package/public/account-apply/ccs-agency-application.docx +0 -0
- package/public/account-apply/ccs-employee-application.docx +0 -0
- package/public/dynamic.css +85 -0
- package/public/dynamic.js +96 -0
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var tslib_1 = require("tslib");
|
|
4
|
+
var fs = require("fs");
|
|
5
|
+
var path = require("path");
|
|
6
|
+
var yaml = require("js-yaml");
|
|
7
|
+
var fieldsRoot = path.resolve(__dirname, '../../../main/default/objects/space_users/fields');
|
|
8
|
+
var licenseFieldsRoot = path.resolve(fieldsRoot, '../../../../../../license-management/main/default/objects/space_users/fields');
|
|
9
|
+
var spaceUsersZhCnTranslation = path.resolve(fieldsRoot, '../../../objectTranslations/space_users.zh-CN/space_users.zh-CN.objectTranslation.yml');
|
|
10
|
+
var readField = function (fileName) { return yaml.safeLoad(fs.readFileSync(path.join(fieldsRoot, fileName), 'utf8')); };
|
|
11
|
+
var readLicenseField = function (fileName) { return yaml.safeLoad(fs.readFileSync(path.join(licenseFieldsRoot, fileName), 'utf8')); };
|
|
12
|
+
describe('space_users Agency field metadata', function () {
|
|
13
|
+
var emailNotification = readField('email_notification.field.yml');
|
|
14
|
+
var contractExpiry = readField('agency_contract_expiry_date.field.yml');
|
|
15
|
+
var pepsicoContact = readField('agency_pepsico_contact.field.yml');
|
|
16
|
+
var agencyFields = [contractExpiry, pepsicoContact];
|
|
17
|
+
it('shows both Agency fields only to space administrators for collaborator records', function () {
|
|
18
|
+
var e_1, _a;
|
|
19
|
+
try {
|
|
20
|
+
for (var agencyFields_1 = tslib_1.__values(agencyFields), agencyFields_1_1 = agencyFields_1.next(); !agencyFields_1_1.done; agencyFields_1_1 = agencyFields_1.next()) {
|
|
21
|
+
var field = agencyFields_1_1.value;
|
|
22
|
+
expect(field.visible_on).toBe('{{global.user.is_space_admin === true && formData.is_collaborator === true}}');
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
26
|
+
finally {
|
|
27
|
+
try {
|
|
28
|
+
if (agencyFields_1_1 && !agencyFields_1_1.done && (_a = agencyFields_1.return)) _a.call(agencyFields_1);
|
|
29
|
+
}
|
|
30
|
+
finally { if (e_1) throw e_1.error; }
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
it('places both Agency fields after email notification in personal information', function () {
|
|
34
|
+
expect(emailNotification.group).toBe('个人信息');
|
|
35
|
+
expect(contractExpiry.group).toBe('个人信息');
|
|
36
|
+
expect(contractExpiry.sort_no).toBe(10000);
|
|
37
|
+
expect(pepsicoContact.group).toBe('个人信息');
|
|
38
|
+
expect(pepsicoContact.sort_no).toBe(10010);
|
|
39
|
+
expect(contractExpiry.sort_no).toBeGreaterThan(emailNotification.sort_no);
|
|
40
|
+
expect(pepsicoContact.sort_no).toBeGreaterThan(contractExpiry.sort_no);
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
describe('space_users license approval field metadata', function () {
|
|
44
|
+
var avatar = readField('avatar.field.yml');
|
|
45
|
+
var jobGrade = readLicenseField('job_grade.field.yml');
|
|
46
|
+
var lineManager = readLicenseField('line_manager.field.yml');
|
|
47
|
+
var approvalFields = [jobGrade, lineManager];
|
|
48
|
+
it('merges line manager and function head into one 部门审批人 field (function_head removed)', function () {
|
|
49
|
+
expect(lineManager.name).toBe('line_manager');
|
|
50
|
+
expect(lineManager.label).toBe('部门审批人');
|
|
51
|
+
expect(fs.existsSync(path.join(licenseFieldsRoot, 'line_manager.field.yml'))).toBe(true);
|
|
52
|
+
expect(fs.existsSync(path.join(licenseFieldsRoot, 'function_head.field.yml'))).toBe(false);
|
|
53
|
+
});
|
|
54
|
+
it('uses the requested display name without changing the job-grade API name', function () {
|
|
55
|
+
expect(jobGrade.name).toBe('job_grade');
|
|
56
|
+
expect(jobGrade.label).toBe('用户职级');
|
|
57
|
+
});
|
|
58
|
+
it('places the two approval fields after avatar in personal information', function () {
|
|
59
|
+
var e_2, _a;
|
|
60
|
+
expect(avatar.group).toBe('个人信息');
|
|
61
|
+
expect(avatar.sort_no).toBe(99998);
|
|
62
|
+
try {
|
|
63
|
+
for (var approvalFields_1 = tslib_1.__values(approvalFields), approvalFields_1_1 = approvalFields_1.next(); !approvalFields_1_1.done; approvalFields_1_1 = approvalFields_1.next()) {
|
|
64
|
+
var field = approvalFields_1_1.value;
|
|
65
|
+
expect(field.group).toBe('个人信息');
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
69
|
+
finally {
|
|
70
|
+
try {
|
|
71
|
+
if (approvalFields_1_1 && !approvalFields_1_1.done && (_a = approvalFields_1.return)) _a.call(approvalFields_1);
|
|
72
|
+
}
|
|
73
|
+
finally { if (e_2) throw e_2.error; }
|
|
74
|
+
}
|
|
75
|
+
expect(jobGrade.sort_no).toBe(100000);
|
|
76
|
+
expect(lineManager.sort_no).toBe(100010);
|
|
77
|
+
expect(jobGrade.sort_no).toBeGreaterThan(avatar.sort_no);
|
|
78
|
+
expect(lineManager.sort_no).toBeGreaterThan(jobGrade.sort_no);
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
describe('space_users Chinese translation overrides', function () {
|
|
82
|
+
it('uses 登录 instead of the built-in 登陆 typo for last_logon', function () {
|
|
83
|
+
expect(fs.existsSync(spaceUsersZhCnTranslation)).toBe(true);
|
|
84
|
+
var translation = yaml.safeLoad(fs.readFileSync(spaceUsersZhCnTranslation, 'utf8'));
|
|
85
|
+
expect(translation.name).toBe('space_users');
|
|
86
|
+
expect(translation.fields.last_logon.label).toBe('最近登录');
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
describe('space_users login status field visibility', function () {
|
|
90
|
+
var lastLogon = readField('last_logon.field.yml');
|
|
91
|
+
var loginExpired = readField('login_expired.field.yml');
|
|
92
|
+
it('shows login status only to space administrators in read mode', function () {
|
|
93
|
+
var e_3, _a;
|
|
94
|
+
try {
|
|
95
|
+
for (var _b = tslib_1.__values([lastLogon, loginExpired]), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
96
|
+
var field = _c.value;
|
|
97
|
+
expect(field.visible_on).toBe('{{global.user.is_space_admin === true && global.mode === "read"}}');
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
101
|
+
finally {
|
|
102
|
+
try {
|
|
103
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
104
|
+
}
|
|
105
|
+
finally { if (e_3) throw e_3.error; }
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
});
|
|
109
|
+
//# sourceMappingURL=spaceUserAgencyFieldsMetadata.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spaceUserAgencyFieldsMetadata.test.js","sourceRoot":"","sources":["../../../src/methods/__tests__/spaceUserAgencyFieldsMetadata.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var tslib_1 = require("tslib");
|
|
4
|
+
var approval_engine_1 = require("../approval_engine");
|
|
5
|
+
var bypassApproval_1 = require("../../actions/bypassApproval");
|
|
6
|
+
var consts_1 = require("../consts");
|
|
7
|
+
var baseApproval = {
|
|
8
|
+
_id: 'approval-1',
|
|
9
|
+
owner: 'owner-1',
|
|
10
|
+
space: 'space-1',
|
|
11
|
+
current_step: consts_1.Step.departmental_review,
|
|
12
|
+
person_pending_approve: ['reviewer-1'],
|
|
13
|
+
ca_reviewer: ['reviewer-1'],
|
|
14
|
+
handler_ca: ['reviewer-1']
|
|
15
|
+
};
|
|
16
|
+
var createCtx = function (_a) {
|
|
17
|
+
var _b = _a === void 0 ? {} : _a, _c = _b.userId, userId = _c === void 0 ? 'owner-1' : _c, _d = _b.terminateRecords, terminateRecords = _d === void 0 ? [] : _d, _e = _b.processRecords, processRecords = _e === void 0 ? [] : _e;
|
|
18
|
+
var objects = {
|
|
19
|
+
pepsico_material_approval: {
|
|
20
|
+
findOne: jest.fn(function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) {
|
|
21
|
+
return [2, baseApproval];
|
|
22
|
+
}); }); }),
|
|
23
|
+
update: jest.fn(),
|
|
24
|
+
directUpdate: jest.fn()
|
|
25
|
+
},
|
|
26
|
+
pepsico_approval_process: {
|
|
27
|
+
insert: jest.fn(),
|
|
28
|
+
update: jest.fn(),
|
|
29
|
+
directUpdate: jest.fn(),
|
|
30
|
+
find: jest.fn(function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) {
|
|
31
|
+
return [2, processRecords];
|
|
32
|
+
}); }); }),
|
|
33
|
+
directFind: jest.fn(function (_a) {
|
|
34
|
+
var filters = _a.filters;
|
|
35
|
+
return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
36
|
+
var isTerminateLookup;
|
|
37
|
+
return tslib_1.__generator(this, function (_b) {
|
|
38
|
+
isTerminateLookup = filters.some(function (_a) {
|
|
39
|
+
var _b = tslib_1.__read(_a, 3), field = _b[0], value = _b[2];
|
|
40
|
+
return field === 'approved' && value === 'terminate';
|
|
41
|
+
});
|
|
42
|
+
return [2, isTerminateLookup ? terminateRecords : []];
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
})
|
|
46
|
+
},
|
|
47
|
+
pepsico_material: {
|
|
48
|
+
find: jest.fn(function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) {
|
|
49
|
+
return [2, []];
|
|
50
|
+
}); }); }),
|
|
51
|
+
directUpdate: jest.fn()
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
return {
|
|
55
|
+
objects: objects,
|
|
56
|
+
ctx: {
|
|
57
|
+
meta: { user: { userId: userId } },
|
|
58
|
+
getObject: jest.fn(function (name) { return objects[name]; })
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
};
|
|
62
|
+
describe('中止审核证明文件', function () {
|
|
63
|
+
it('首次中止时新增中止记录并写入证明文件', function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
64
|
+
var _a, ctx, objects;
|
|
65
|
+
return tslib_1.__generator(this, function (_b) {
|
|
66
|
+
switch (_b.label) {
|
|
67
|
+
case 0:
|
|
68
|
+
_a = createCtx(), ctx = _a.ctx, objects = _a.objects;
|
|
69
|
+
return [4, (0, approval_engine_1.terminate)(ctx, 'approval-1', '原因', [{ value: 'f1' }, { value: 'f2' }])];
|
|
70
|
+
case 1:
|
|
71
|
+
_b.sent();
|
|
72
|
+
expect(objects.pepsico_approval_process.insert).toHaveBeenCalledWith(expect.objectContaining({
|
|
73
|
+
owner: 'owner-1',
|
|
74
|
+
current_step: consts_1.Step.conclusion,
|
|
75
|
+
approved: 'terminate',
|
|
76
|
+
name: '原因',
|
|
77
|
+
attachments: ['f1', 'f2']
|
|
78
|
+
}));
|
|
79
|
+
return [2];
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
}); });
|
|
83
|
+
it('不上传证明文件时也能中止', function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
84
|
+
var _a, ctx, objects;
|
|
85
|
+
return tslib_1.__generator(this, function (_b) {
|
|
86
|
+
switch (_b.label) {
|
|
87
|
+
case 0:
|
|
88
|
+
_a = createCtx(), ctx = _a.ctx, objects = _a.objects;
|
|
89
|
+
return [4, (0, approval_engine_1.terminate)(ctx, 'approval-1', '原因')];
|
|
90
|
+
case 1:
|
|
91
|
+
_b.sent();
|
|
92
|
+
expect(objects.pepsico_approval_process.insert).toHaveBeenCalledWith(expect.objectContaining({ attachments: [] }));
|
|
93
|
+
return [2];
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
}); });
|
|
97
|
+
it('已有中止记录时合并证明文件,不重复新增记录', function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
98
|
+
var _a, ctx, objects;
|
|
99
|
+
return tslib_1.__generator(this, function (_b) {
|
|
100
|
+
switch (_b.label) {
|
|
101
|
+
case 0:
|
|
102
|
+
_a = createCtx({ terminateRecords: [{ _id: 'p1', attachments: ['f1'] }] }), ctx = _a.ctx, objects = _a.objects;
|
|
103
|
+
return [4, (0, approval_engine_1.terminate)(ctx, 'approval-1', '原因2', 'f1,f3')];
|
|
104
|
+
case 1:
|
|
105
|
+
_b.sent();
|
|
106
|
+
expect(objects.pepsico_approval_process.insert).not.toHaveBeenCalled();
|
|
107
|
+
expect(objects.pepsico_approval_process.directUpdate).toHaveBeenCalledWith('p1', expect.objectContaining({
|
|
108
|
+
name: '原因2',
|
|
109
|
+
attachments: ['f1', 'f3']
|
|
110
|
+
}));
|
|
111
|
+
return [2];
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
}); });
|
|
115
|
+
});
|
|
116
|
+
describe('跳过审核证明文件', function () {
|
|
117
|
+
var callBypass = function (ctx, params) { return bypassApproval_1.bypassApproval.handler.call({
|
|
118
|
+
getObject: ctx.getObject,
|
|
119
|
+
getLogger: function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) {
|
|
120
|
+
return [2, ({ info: jest.fn() })];
|
|
121
|
+
}); }); },
|
|
122
|
+
approvalContent: jest.fn()
|
|
123
|
+
}, Object.assign(ctx, { params: params })); };
|
|
124
|
+
it('更新为跳过状态的历史记录上合并写入证明文件', function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
125
|
+
var _a, ctx, objects;
|
|
126
|
+
return tslib_1.__generator(this, function (_b) {
|
|
127
|
+
switch (_b.label) {
|
|
128
|
+
case 0:
|
|
129
|
+
_a = createCtx({
|
|
130
|
+
userId: 'reviewer-1',
|
|
131
|
+
processRecords: [{ _id: 'p1', type: 'CA', attachments: ['f1'] }]
|
|
132
|
+
}), ctx = _a.ctx, objects = _a.objects;
|
|
133
|
+
return [4, callBypass(ctx, { recordId: 'approval-1', reason: '跳过原因', attachments: [{ value: 'f1' }, { value: 'f2' }] })];
|
|
134
|
+
case 1:
|
|
135
|
+
_b.sent();
|
|
136
|
+
expect(objects.pepsico_approval_process.update).toHaveBeenCalledWith('p1', expect.objectContaining({
|
|
137
|
+
approved: 'pass',
|
|
138
|
+
name: '跳过原因',
|
|
139
|
+
attachments: ['f1', 'f2']
|
|
140
|
+
}));
|
|
141
|
+
return [2];
|
|
142
|
+
}
|
|
143
|
+
});
|
|
144
|
+
}); });
|
|
145
|
+
it('不上传证明文件时也能跳过', function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
146
|
+
var _a, ctx, objects;
|
|
147
|
+
return tslib_1.__generator(this, function (_b) {
|
|
148
|
+
switch (_b.label) {
|
|
149
|
+
case 0:
|
|
150
|
+
_a = createCtx({
|
|
151
|
+
userId: 'reviewer-1',
|
|
152
|
+
processRecords: [{ _id: 'p1', type: 'CA' }]
|
|
153
|
+
}), ctx = _a.ctx, objects = _a.objects;
|
|
154
|
+
return [4, callBypass(ctx, { recordId: 'approval-1', reason: '跳过原因' })];
|
|
155
|
+
case 1:
|
|
156
|
+
_b.sent();
|
|
157
|
+
expect(objects.pepsico_approval_process.update).toHaveBeenCalledWith('p1', expect.objectContaining({ attachments: [] }));
|
|
158
|
+
return [2];
|
|
159
|
+
}
|
|
160
|
+
});
|
|
161
|
+
}); });
|
|
162
|
+
});
|
|
163
|
+
//# sourceMappingURL=terminateBypassAttachments.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terminateBypassAttachments.test.js","sourceRoot":"","sources":["../../../src/methods/__tests__/terminateBypassAttachments.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,7 +17,7 @@ export declare const hasNonPreReviewDepartments: (materialApproval: MaterialAppr
|
|
|
17
17
|
export declare const areDepartmentReviewsComplete: (materialApproval: MaterialApproval) => boolean;
|
|
18
18
|
export declare const getDepartmentEffectiveStatuses: (materialApproval: MaterialApproval) => (boolean | string)[];
|
|
19
19
|
export declare const advanceApproval: (ctx: any, recordId: any, currentStepApprovalStatus: ApprovalStatus) => Promise<{}>;
|
|
20
|
-
export declare const terminate: (ctx: any, recordId: any, description: string) => Promise<{}>;
|
|
20
|
+
export declare const terminate: (ctx: any, recordId: any, description: string, attachments?: any) => Promise<{}>;
|
|
21
21
|
export declare const confirmDeployment: (ctx: any, recordId: any, data?: {
|
|
22
22
|
content_rule: any;
|
|
23
23
|
}) => Promise<{}>;
|
|
@@ -14,6 +14,7 @@ var approval_cc_1 = require("./approval_cc");
|
|
|
14
14
|
var agent_1 = require("./agent");
|
|
15
15
|
var const_1 = require("../const");
|
|
16
16
|
var pls_1 = require("./pls");
|
|
17
|
+
var attachment_1 = require("./attachment");
|
|
17
18
|
var _ = require("lodash");
|
|
18
19
|
var getDefApproverStepRule = function (ctx) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
19
20
|
var rules, rule;
|
|
@@ -1569,77 +1570,102 @@ var advanceApproval = function (ctx, recordId, currentStepApprovalStatus) { retu
|
|
|
1569
1570
|
});
|
|
1570
1571
|
}); };
|
|
1571
1572
|
exports.advanceApproval = advanceApproval;
|
|
1572
|
-
var terminate = function (ctx, recordId, description) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
1573
|
-
var user, record, records, records_1, records_1_1, process_2, e_11_1;
|
|
1574
|
-
var e_11,
|
|
1575
|
-
return tslib_1.__generator(this, function (
|
|
1576
|
-
switch (
|
|
1573
|
+
var terminate = function (ctx, recordId, description, attachments) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
1574
|
+
var user, record, _a, terminateRecord, records, records_1, records_1_1, process_2, e_11_1;
|
|
1575
|
+
var e_11, _b;
|
|
1576
|
+
return tslib_1.__generator(this, function (_c) {
|
|
1577
|
+
switch (_c.label) {
|
|
1577
1578
|
case 0:
|
|
1578
1579
|
user = ctx.meta.user;
|
|
1579
1580
|
return [4, ctx.getObject('pepsico_material_approval').findOne(recordId)];
|
|
1580
1581
|
case 1:
|
|
1581
|
-
record =
|
|
1582
|
-
if (!(record.owner === user.userId || user.is_space_admin || (0, lodash_1.includes)(record.person_pending_approve, user.userId))) return [3,
|
|
1583
|
-
return [4, ctx.getObject('pepsico_approval_process').
|
|
1584
|
-
|
|
1585
|
-
|
|
1586
|
-
|
|
1587
|
-
|
|
1588
|
-
|
|
1589
|
-
|
|
1590
|
-
|
|
1591
|
-
|
|
1592
|
-
approvalStatus: 'terminate',
|
|
1593
|
-
name: description
|
|
1582
|
+
record = _c.sent();
|
|
1583
|
+
if (!(record.owner === user.userId || user.is_space_admin || (0, lodash_1.includes)(record.person_pending_approve, user.userId))) return [3, 17];
|
|
1584
|
+
return [4, ctx.getObject('pepsico_approval_process').directFind({
|
|
1585
|
+
filters: [
|
|
1586
|
+
['pepsico_material_approval', '=', record._id],
|
|
1587
|
+
['current_step', '=', consts_1.Step.conclusion],
|
|
1588
|
+
['owner', '=', user.userId],
|
|
1589
|
+
['approved', '=', 'terminate']
|
|
1590
|
+
],
|
|
1591
|
+
sort: 'created desc',
|
|
1592
|
+
top: 1
|
|
1594
1593
|
})];
|
|
1595
1594
|
case 2:
|
|
1596
|
-
|
|
1597
|
-
return [
|
|
1598
|
-
|
|
1595
|
+
_a = tslib_1.__read.apply(void 0, [_c.sent(), 1]), terminateRecord = _a[0];
|
|
1596
|
+
if (!terminateRecord) return [3, 4];
|
|
1597
|
+
return [4, ctx.getObject('pepsico_approval_process').directUpdate(terminateRecord._id, {
|
|
1598
|
+
modified: new Date(),
|
|
1599
|
+
modified_by: user.userId,
|
|
1600
|
+
name: description,
|
|
1601
|
+
attachments: (0, attachment_1.mergeFileIds)(terminateRecord.attachments, attachments)
|
|
1599
1602
|
})];
|
|
1600
1603
|
case 3:
|
|
1601
|
-
|
|
1602
|
-
|
|
1603
|
-
case 4:
|
|
1604
|
-
|
|
1605
|
-
|
|
1606
|
-
|
|
1604
|
+
_c.sent();
|
|
1605
|
+
return [3, 6];
|
|
1606
|
+
case 4: return [4, ctx.getObject('pepsico_approval_process').insert({
|
|
1607
|
+
pepsico_material_approval: record._id,
|
|
1608
|
+
current_step: consts_1.Step.conclusion,
|
|
1609
|
+
owner: user.userId,
|
|
1610
|
+
space: record.space,
|
|
1611
|
+
created: new Date(),
|
|
1612
|
+
created_by: user.userId,
|
|
1613
|
+
modified: new Date(),
|
|
1614
|
+
modified_by: user.userId,
|
|
1615
|
+
approvalStatus: 'terminate',
|
|
1616
|
+
approved: 'terminate',
|
|
1617
|
+
name: description,
|
|
1618
|
+
attachments: (0, attachment_1.mergeFileIds)([], attachments)
|
|
1619
|
+
})];
|
|
1607
1620
|
case 5:
|
|
1608
|
-
|
|
1621
|
+
_c.sent();
|
|
1622
|
+
_c.label = 6;
|
|
1623
|
+
case 6: return [4, ctx.getObject('pepsico_approval_process').directFind({
|
|
1624
|
+
filters: [['pepsico_material_approval', '=', record._id], ['approved', '=', 'progess']]
|
|
1625
|
+
})];
|
|
1626
|
+
case 7:
|
|
1627
|
+
records = _c.sent();
|
|
1628
|
+
_c.label = 8;
|
|
1629
|
+
case 8:
|
|
1630
|
+
_c.trys.push([8, 13, 14, 15]);
|
|
1631
|
+
records_1 = tslib_1.__values(records), records_1_1 = records_1.next();
|
|
1632
|
+
_c.label = 9;
|
|
1633
|
+
case 9:
|
|
1634
|
+
if (!!records_1_1.done) return [3, 12];
|
|
1609
1635
|
process_2 = records_1_1.value;
|
|
1610
1636
|
return [4, ctx.getObject('pepsico_approval_process').directUpdate(process_2._id, {
|
|
1611
1637
|
approved: '',
|
|
1612
1638
|
modified: new Date(),
|
|
1613
1639
|
modified_by: user.userId,
|
|
1614
1640
|
})];
|
|
1615
|
-
case
|
|
1616
|
-
|
|
1617
|
-
|
|
1618
|
-
case
|
|
1641
|
+
case 10:
|
|
1642
|
+
_c.sent();
|
|
1643
|
+
_c.label = 11;
|
|
1644
|
+
case 11:
|
|
1619
1645
|
records_1_1 = records_1.next();
|
|
1620
|
-
return [3,
|
|
1621
|
-
case
|
|
1622
|
-
case
|
|
1623
|
-
e_11_1 =
|
|
1646
|
+
return [3, 9];
|
|
1647
|
+
case 12: return [3, 15];
|
|
1648
|
+
case 13:
|
|
1649
|
+
e_11_1 = _c.sent();
|
|
1624
1650
|
e_11 = { error: e_11_1 };
|
|
1625
|
-
return [3,
|
|
1626
|
-
case
|
|
1651
|
+
return [3, 15];
|
|
1652
|
+
case 14:
|
|
1627
1653
|
try {
|
|
1628
|
-
if (records_1_1 && !records_1_1.done && (
|
|
1654
|
+
if (records_1_1 && !records_1_1.done && (_b = records_1.return)) _b.call(records_1);
|
|
1629
1655
|
}
|
|
1630
1656
|
finally { if (e_11) throw e_11.error; }
|
|
1631
1657
|
return [7];
|
|
1632
|
-
case
|
|
1658
|
+
case 15: return [4, ctx.getObject('pepsico_material_approval').update(recordId, {
|
|
1633
1659
|
current_step: consts_1.Step.conclusion,
|
|
1634
1660
|
review_status: consts_1.ReviewStatus.terminated,
|
|
1635
1661
|
termination_date: new Date(),
|
|
1636
1662
|
person_pending_approve: [],
|
|
1637
1663
|
termination_type: record.owner === user.userId ? '发起人中止' : '审批人中止'
|
|
1638
1664
|
})];
|
|
1639
|
-
case
|
|
1640
|
-
|
|
1665
|
+
case 16:
|
|
1666
|
+
_c.sent();
|
|
1641
1667
|
return [2, {}];
|
|
1642
|
-
case
|
|
1668
|
+
case 17: throw new Error('Sorry, you don’t have permission to terminate the review.');
|
|
1643
1669
|
}
|
|
1644
1670
|
});
|
|
1645
1671
|
}); };
|