@neutron.co.id/pendidikan-operation 1.29.3 → 1.29.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.
@@ -19,6 +19,7 @@ const bulkUpdateSession = operation.Action.define({
19
19
  }, async () => {
20
20
  const dbs = stream.core.dbs;
21
21
  const dbSession = dbs["neu-jadwal"].models["neu:jadwal:classSession"];
22
+ const dbAttendance = dbs["neu-jadwal"].models["neu:jadwal:classAttendance"];
22
23
  const updateData = {};
23
24
  if (input.data.teacherRepeaterIds)
24
25
  updateData.teacherIds = input.data.teacherRepeaterIds;
@@ -37,14 +38,54 @@ const bulkUpdateSession = operation.Action.define({
37
38
  updateData.status = input.data.status;
38
39
  if (input.data.classSessionPurposeId)
39
40
  updateData.classSessionPurposeId = input.data.classSessionPurposeId;
40
- await dbSession.updateMany(
41
+ const attendances = await dbAttendance.find(
41
42
  {
42
- _id: { $in: input.ids }
43
+ classSessionId: { $in: input.ids },
44
+ deletedAt: null
43
45
  },
44
46
  {
45
- $set: updateData
47
+ _id: 1,
48
+ classSessionId: 1,
49
+ teacherId: 1,
50
+ studentId: 1,
51
+ presenceType: 1
46
52
  }
47
53
  );
54
+ const attendanceMap = /* @__PURE__ */ new Map();
55
+ for (const att of attendances) {
56
+ const key = att.classSessionId?.toString();
57
+ if (!key)
58
+ continue;
59
+ if (!attendanceMap.has(key))
60
+ attendanceMap.set(key, []);
61
+ attendanceMap.get(key).push(att);
62
+ }
63
+ await Promise.all(
64
+ input.ids.map((id) => {
65
+ const sessionAttendances = attendanceMap.get(id) || [];
66
+ const alreadyPresence = [
67
+ ...new Set(
68
+ sessionAttendances.filter((c) => !!c.teacherId && c.presenceType === "teacher").map((c) => c.teacherId?.toString())
69
+ )
70
+ ].map((id2) => new core.ObjectId(id2));
71
+ const studentAlreadyPresence = [
72
+ ...new Set(
73
+ sessionAttendances.filter((c) => !!c.studentId && c.presenceType === "student").map((c) => c.studentId?.toString())
74
+ )
75
+ ].map((id2) => new core.ObjectId(id2));
76
+ return dbSession.updateOne(
77
+ { _id: id },
78
+ {
79
+ $set: {
80
+ ...updateData,
81
+ virtualBranchIds: updateData.branchIds,
82
+ alreadyPresence,
83
+ studentAlreadyPresence
84
+ }
85
+ }
86
+ );
87
+ })
88
+ );
48
89
  return core.Result.ok({
49
90
  state: "bulkSessionUpdate",
50
91
  message: "Sessions have been updated.",
@@ -1,4 +1,4 @@
1
- import { Result } from '@neon.id/core';
1
+ import { ObjectId, Result } from '@neon.id/core';
2
2
  import { Action } from '@neon.id/operation';
3
3
  import { guard } from '@neon.id/utils';
4
4
  import { useTelemetry } from '../../providers/useTelemetry.mjs';
@@ -17,6 +17,7 @@ const bulkUpdateSession = Action.define({
17
17
  }, async () => {
18
18
  const dbs = stream.core.dbs;
19
19
  const dbSession = dbs["neu-jadwal"].models["neu:jadwal:classSession"];
20
+ const dbAttendance = dbs["neu-jadwal"].models["neu:jadwal:classAttendance"];
20
21
  const updateData = {};
21
22
  if (input.data.teacherRepeaterIds)
22
23
  updateData.teacherIds = input.data.teacherRepeaterIds;
@@ -35,14 +36,54 @@ const bulkUpdateSession = Action.define({
35
36
  updateData.status = input.data.status;
36
37
  if (input.data.classSessionPurposeId)
37
38
  updateData.classSessionPurposeId = input.data.classSessionPurposeId;
38
- await dbSession.updateMany(
39
+ const attendances = await dbAttendance.find(
39
40
  {
40
- _id: { $in: input.ids }
41
+ classSessionId: { $in: input.ids },
42
+ deletedAt: null
41
43
  },
42
44
  {
43
- $set: updateData
45
+ _id: 1,
46
+ classSessionId: 1,
47
+ teacherId: 1,
48
+ studentId: 1,
49
+ presenceType: 1
44
50
  }
45
51
  );
52
+ const attendanceMap = /* @__PURE__ */ new Map();
53
+ for (const att of attendances) {
54
+ const key = att.classSessionId?.toString();
55
+ if (!key)
56
+ continue;
57
+ if (!attendanceMap.has(key))
58
+ attendanceMap.set(key, []);
59
+ attendanceMap.get(key).push(att);
60
+ }
61
+ await Promise.all(
62
+ input.ids.map((id) => {
63
+ const sessionAttendances = attendanceMap.get(id) || [];
64
+ const alreadyPresence = [
65
+ ...new Set(
66
+ sessionAttendances.filter((c) => !!c.teacherId && c.presenceType === "teacher").map((c) => c.teacherId?.toString())
67
+ )
68
+ ].map((id2) => new ObjectId(id2));
69
+ const studentAlreadyPresence = [
70
+ ...new Set(
71
+ sessionAttendances.filter((c) => !!c.studentId && c.presenceType === "student").map((c) => c.studentId?.toString())
72
+ )
73
+ ].map((id2) => new ObjectId(id2));
74
+ return dbSession.updateOne(
75
+ { _id: id },
76
+ {
77
+ $set: {
78
+ ...updateData,
79
+ virtualBranchIds: updateData.branchIds,
80
+ alreadyPresence,
81
+ studentAlreadyPresence
82
+ }
83
+ }
84
+ );
85
+ })
86
+ );
46
87
  return Result.ok({
47
88
  state: "bulkSessionUpdate",
48
89
  message: "Sessions have been updated.",
@@ -8,6 +8,7 @@ export * from './action.prepareConflict';
8
8
  export * from './action.userCountStats';
9
9
  export * from './getClassSessionConflicts';
10
10
  export * from './syncClassSessions';
11
+ export * from './setClassSessionDependencies';
11
12
  export * from './setAksesModulSiswaDiClassGroup';
12
13
  export * from './setTravelWageSessions';
13
14
  export * from './action.customSaveOneClassSession';
@@ -0,0 +1,2 @@
1
+ export * from './setClassSessionDependencies.action';
2
+ export * from './setClassSessionDependencies.schema';
@@ -0,0 +1,116 @@
1
+ 'use strict';
2
+
3
+ const core = require('@neon.id/core');
4
+ const operation = require('@neon.id/operation');
5
+ const utils = require('@neon.id/utils');
6
+ const query = require('@neon.id/query');
7
+ const period = require('@neon.id/utils/period');
8
+ const payload = require('@neon.id/utils/payload');
9
+ const jadwalModels = require('@neutron.co.id/jadwal-models');
10
+ const useTelemetry = require('../../../providers/useTelemetry.cjs');
11
+
12
+ const setClassSessionDependencies = operation.Action.define({
13
+ key: "setClassSessionDependencies",
14
+ name: "Sync Conflicts",
15
+ type: "command",
16
+ category: "domain",
17
+ execute: async (input, stream) => {
18
+ utils.guard(stream, "streamRequired");
19
+ utils.guard(input, "inputRequired");
20
+ return useTelemetry.useTelemetry(stream, "setClassSessionDependencies", {
21
+ userId: stream.context.identitas.userId,
22
+ ...input
23
+ }, async () => {
24
+ const dbs = stream.core.dbs;
25
+ const dbSession = dbs["neu-jadwal"].models["neu:jadwal:classSession"];
26
+ const rawSession = await stream.actions.data?.getOne?.execute(
27
+ {
28
+ id: input.id,
29
+ model: "neu:jadwal:classSession",
30
+ query: query.Query.define({
31
+ filter: { _id: input.id },
32
+ fields: {
33
+ id: 1,
34
+ startedAt: 1,
35
+ endedAt: 1,
36
+ type: 1,
37
+ day: 1,
38
+ shortInformationSession: 1,
39
+ room: { id: 1, name: 1, branches: { id: 1 } },
40
+ teachers: {
41
+ id: 1,
42
+ name: 1,
43
+ hourStart: 1,
44
+ hourEnd: 1,
45
+ weekdays: 1
46
+ }
47
+ }
48
+ })
49
+ },
50
+ stream
51
+ );
52
+ const classSession = payload.PayloadUtil.toItem(rawSession.value);
53
+ if (!classSession.startedAt)
54
+ return core.Result.ok({ state: "setClassSessionDependencies", message: "No startedAt.", data: { code: 0 } });
55
+ if (!classSession.endedAt)
56
+ return core.Result.ok({ state: "setClassSessionDependencies", message: "No endedAt.", data: { code: 0 } });
57
+ const filter = {
58
+ $or: period.PeriodUtil.getPassingPeriodFilter(
59
+ "startedAt",
60
+ "endedAt",
61
+ classSession.startedAt,
62
+ classSession.endedAt
63
+ )
64
+ };
65
+ const classSessions = await jadwalModels.ClassSessionUtil.getManyClassSessions(
66
+ {
67
+ filter,
68
+ fragment: {
69
+ id: 1,
70
+ title: 1,
71
+ subtitle: 1,
72
+ type: 1,
73
+ startedAt: 1,
74
+ endedAt: 1,
75
+ day: 1,
76
+ shortInformationSession: 1,
77
+ teacherIds: 1,
78
+ roomId: 1,
79
+ branches: { id: 1, name: 1 }
80
+ }
81
+ },
82
+ stream
83
+ );
84
+ const conflicts = jadwalModels.ClassSessionUtil.getConflicts({
85
+ classSession,
86
+ classSessions
87
+ });
88
+ const isNotConflict = classSession.isNotConflict ?? false;
89
+ let statusConflict;
90
+ if (isNotConflict) {
91
+ statusConflict = "conflictConditioned";
92
+ } else {
93
+ const hasConflict = conflicts.teacherConflicts.length > 0 || conflicts.roomConflicts.length > 0 || conflicts.commitmentConflicts.length > 0;
94
+ statusConflict = hasConflict ? "conflict" : "noConflict";
95
+ }
96
+ await dbSession.updateOne(
97
+ { _id: input.id },
98
+ {
99
+ $set: {
100
+ _conflicts: conflicts,
101
+ statusConflict
102
+ }
103
+ }
104
+ );
105
+ return core.Result.ok({
106
+ state: "setClassSessionDependencies",
107
+ message: "Conflicts have been synced.",
108
+ data: {
109
+ code: 1
110
+ }
111
+ });
112
+ });
113
+ }
114
+ });
115
+
116
+ exports.setClassSessionDependencies = setClassSessionDependencies;
@@ -0,0 +1,13 @@
1
+ import { Action } from '@neon.id/operation';
2
+ import type { z } from '@neon.id/z';
3
+ import type { SetClassSessionDependenciesSchema } from './setClassSessionDependencies.schema';
4
+ export type SetClassSessionDependenciesInput = z.parse<typeof SetClassSessionDependenciesSchema>;
5
+ export interface SetClassSessionDependenciesOutput {
6
+ code: number;
7
+ }
8
+ export interface SetClassSessionDependenciesMeta {
9
+ }
10
+ export declare const setClassSessionDependencies: Action<"setClassSessionDependencies", {
11
+ id: string;
12
+ }, SetClassSessionDependenciesOutput, SetClassSessionDependenciesMeta>;
13
+ export type SetClassSessionDependenciesAction = typeof setClassSessionDependencies;
@@ -0,0 +1,114 @@
1
+ import { Result } from '@neon.id/core';
2
+ import { Action } from '@neon.id/operation';
3
+ import { guard } from '@neon.id/utils';
4
+ import { Query } from '@neon.id/query';
5
+ import { PeriodUtil } from '@neon.id/utils/period';
6
+ import { PayloadUtil } from '@neon.id/utils/payload';
7
+ import { ClassSessionUtil } from '@neutron.co.id/jadwal-models';
8
+ import { useTelemetry } from '../../../providers/useTelemetry.mjs';
9
+
10
+ const setClassSessionDependencies = Action.define({
11
+ key: "setClassSessionDependencies",
12
+ name: "Sync Conflicts",
13
+ type: "command",
14
+ category: "domain",
15
+ execute: async (input, stream) => {
16
+ guard(stream, "streamRequired");
17
+ guard(input, "inputRequired");
18
+ return useTelemetry(stream, "setClassSessionDependencies", {
19
+ userId: stream.context.identitas.userId,
20
+ ...input
21
+ }, async () => {
22
+ const dbs = stream.core.dbs;
23
+ const dbSession = dbs["neu-jadwal"].models["neu:jadwal:classSession"];
24
+ const rawSession = await stream.actions.data?.getOne?.execute(
25
+ {
26
+ id: input.id,
27
+ model: "neu:jadwal:classSession",
28
+ query: Query.define({
29
+ filter: { _id: input.id },
30
+ fields: {
31
+ id: 1,
32
+ startedAt: 1,
33
+ endedAt: 1,
34
+ type: 1,
35
+ day: 1,
36
+ shortInformationSession: 1,
37
+ room: { id: 1, name: 1, branches: { id: 1 } },
38
+ teachers: {
39
+ id: 1,
40
+ name: 1,
41
+ hourStart: 1,
42
+ hourEnd: 1,
43
+ weekdays: 1
44
+ }
45
+ }
46
+ })
47
+ },
48
+ stream
49
+ );
50
+ const classSession = PayloadUtil.toItem(rawSession.value);
51
+ if (!classSession.startedAt)
52
+ return Result.ok({ state: "setClassSessionDependencies", message: "No startedAt.", data: { code: 0 } });
53
+ if (!classSession.endedAt)
54
+ return Result.ok({ state: "setClassSessionDependencies", message: "No endedAt.", data: { code: 0 } });
55
+ const filter = {
56
+ $or: PeriodUtil.getPassingPeriodFilter(
57
+ "startedAt",
58
+ "endedAt",
59
+ classSession.startedAt,
60
+ classSession.endedAt
61
+ )
62
+ };
63
+ const classSessions = await ClassSessionUtil.getManyClassSessions(
64
+ {
65
+ filter,
66
+ fragment: {
67
+ id: 1,
68
+ title: 1,
69
+ subtitle: 1,
70
+ type: 1,
71
+ startedAt: 1,
72
+ endedAt: 1,
73
+ day: 1,
74
+ shortInformationSession: 1,
75
+ teacherIds: 1,
76
+ roomId: 1,
77
+ branches: { id: 1, name: 1 }
78
+ }
79
+ },
80
+ stream
81
+ );
82
+ const conflicts = ClassSessionUtil.getConflicts({
83
+ classSession,
84
+ classSessions
85
+ });
86
+ const isNotConflict = classSession.isNotConflict ?? false;
87
+ let statusConflict;
88
+ if (isNotConflict) {
89
+ statusConflict = "conflictConditioned";
90
+ } else {
91
+ const hasConflict = conflicts.teacherConflicts.length > 0 || conflicts.roomConflicts.length > 0 || conflicts.commitmentConflicts.length > 0;
92
+ statusConflict = hasConflict ? "conflict" : "noConflict";
93
+ }
94
+ await dbSession.updateOne(
95
+ { _id: input.id },
96
+ {
97
+ $set: {
98
+ _conflicts: conflicts,
99
+ statusConflict
100
+ }
101
+ }
102
+ );
103
+ return Result.ok({
104
+ state: "setClassSessionDependencies",
105
+ message: "Conflicts have been synced.",
106
+ data: {
107
+ code: 1
108
+ }
109
+ });
110
+ });
111
+ }
112
+ });
113
+
114
+ export { setClassSessionDependencies };
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ const z = require('@neon.id/z');
4
+
5
+ const SetClassSessionDependenciesSchema = z.z.object({
6
+ id: z.z.objectId().explain({ label: "Session ID" })
7
+ });
8
+
9
+ exports.SetClassSessionDependenciesSchema = SetClassSessionDependenciesSchema;
@@ -0,0 +1,8 @@
1
+ import { z } from '@neon.id/z';
2
+ export declare const SetClassSessionDependenciesSchema: z.ZodObject<{
3
+ id: z.ZodEffects<z.ZodString, string, string>;
4
+ }, "strip", z.ZodTypeAny, {
5
+ id: string;
6
+ }, {
7
+ id: string;
8
+ }>;
@@ -0,0 +1,7 @@
1
+ import { z } from '@neon.id/z';
2
+
3
+ const SetClassSessionDependenciesSchema = z.object({
4
+ id: z.objectId().explain({ label: "Session ID" })
5
+ });
6
+
7
+ export { SetClassSessionDependenciesSchema };
package/build/index.cjs CHANGED
@@ -27,6 +27,7 @@ const action_deleteManySession = require('./actions/jadwal/action.deleteManySess
27
27
  const action_syncStudentAdmisi = require('./actions/akademik/action.syncStudentAdmisi.cjs');
28
28
  const action_checkClassAttendance = require('./actions/jadwal/action.checkClassAttendance.cjs');
29
29
  const syncClassSessions_action = require('./actions/jadwal/syncClassSessions/syncClassSessions.action.cjs');
30
+ const setClassSessionDependencies_action = require('./actions/jadwal/setClassSessionDependencies/setClassSessionDependencies.action.cjs');
30
31
  const setAksesModulSiswaDiClassGroup_action = require('./actions/jadwal/setAksesModulSiswaDiClassGroup/setAksesModulSiswaDiClassGroup.action.cjs');
31
32
  const getClassSessionConflicts_action = require('./actions/jadwal/getClassSessionConflicts/getClassSessionConflicts.action.cjs');
32
33
  const setTravelWageSessions_action = require('./actions/jadwal/setTravelWageSessions/setTravelWageSessions.action.cjs');
@@ -68,6 +69,7 @@ const updateReportStudent_schema = require('./actions/akademik/updateReportStude
68
69
  const sendPointNotification_schema = require('./actions/akademik/sendPointNotification/sendPointNotification.schema.cjs');
69
70
  const getClassSessionConflicts_schema = require('./actions/jadwal/getClassSessionConflicts/getClassSessionConflicts.schema.cjs');
70
71
  const syncClassSessions_schema = require('./actions/jadwal/syncClassSessions/syncClassSessions.schema.cjs');
72
+ const setClassSessionDependencies_schema = require('./actions/jadwal/setClassSessionDependencies/setClassSessionDependencies.schema.cjs');
71
73
  const setAksesModulSiswaDiClassGroup_schema = require('./actions/jadwal/setAksesModulSiswaDiClassGroup/setAksesModulSiswaDiClassGroup.schema.cjs');
72
74
  const setTravelWageSessions_schema = require('./actions/jadwal/setTravelWageSessions/setTravelWageSessions.schema.cjs');
73
75
  const syncClassGroups_schema = require('./actions/jadwal/syncClassGroups/syncClassGroups.schema.cjs');
@@ -119,6 +121,7 @@ const actions = {
119
121
  syncStudentAdmisi: action_syncStudentAdmisi.syncStudentAdmisi,
120
122
  checkClassAttendance: action_checkClassAttendance.checkClassAttendance,
121
123
  syncClassSessions: syncClassSessions_action.syncClassSessions,
124
+ setClassSessionDependencies: setClassSessionDependencies_action.setClassSessionDependencies,
122
125
  setAksesModulSiswaDiClassGroup: setAksesModulSiswaDiClassGroup_action.setAksesModulSiswaDiClassGroup,
123
126
  getClassSessionConflicts: getClassSessionConflicts_action.getClassSessionConflicts,
124
127
  setTravelWageSessions: setTravelWageSessions_action.setTravelWageSessions,
@@ -188,6 +191,7 @@ exports.deleteManySession = action_deleteManySession.deleteManySession;
188
191
  exports.syncStudentAdmisi = action_syncStudentAdmisi.syncStudentAdmisi;
189
192
  exports.checkClassAttendance = action_checkClassAttendance.checkClassAttendance;
190
193
  exports.syncClassSessions = syncClassSessions_action.syncClassSessions;
194
+ exports.setClassSessionDependencies = setClassSessionDependencies_action.setClassSessionDependencies;
191
195
  exports.setAksesModulSiswaDiClassGroup = setAksesModulSiswaDiClassGroup_action.setAksesModulSiswaDiClassGroup;
192
196
  exports.getClassSessionConflicts = getClassSessionConflicts_action.getClassSessionConflicts;
193
197
  exports.setTravelWageSessions = setTravelWageSessions_action.setTravelWageSessions;
@@ -231,6 +235,7 @@ exports.UpdateReportStudentSchema = updateReportStudent_schema.UpdateReportStude
231
235
  exports.SendPointNotificationSchema = sendPointNotification_schema.SendPointNotificationSchema;
232
236
  exports.GetClassSessionConflictsSchema = getClassSessionConflicts_schema.GetClassSessionConflictsSchema;
233
237
  exports.SyncClassSessionsSchema = syncClassSessions_schema.SyncClassSessionsSchema;
238
+ exports.SetClassSessionDependenciesSchema = setClassSessionDependencies_schema.SetClassSessionDependenciesSchema;
234
239
  exports.SetAksesModulSiswaDiClassGroupSchema = setAksesModulSiswaDiClassGroup_schema.SetAksesModulSiswaDiClassGroupSchema;
235
240
  exports.SetTravelWageSessionsSchema = setTravelWageSessions_schema.SetTravelWageSessionsSchema;
236
241
  exports.SyncClassGroupsSchema = syncClassGroups_schema.SyncClassGroupsSchema;
package/build/index.d.ts CHANGED
@@ -71,6 +71,9 @@ export declare const actions: {
71
71
  all?: boolean | undefined;
72
72
  return?: boolean | undefined;
73
73
  }, import("./actions").SyncClassSessionsOutput, import("./actions").SyncClassSessionsMeta>;
74
+ setClassSessionDependencies: import("@neon.id/operation").Action<"setClassSessionDependencies", {
75
+ id: string;
76
+ }, import("./actions").SetClassSessionDependenciesOutput, import("./actions").SetClassSessionDependenciesMeta>;
74
77
  setAksesModulSiswaDiClassGroup: import("@neon.id/operation").Action<"setAksesModulSiswaDiClassGroup", {
75
78
  moduleIds: string[];
76
79
  studentIds: string[];
package/build/index.mjs CHANGED
@@ -25,6 +25,7 @@ import { deleteManySession } from './actions/jadwal/action.deleteManySession.mjs
25
25
  import { syncStudentAdmisi } from './actions/akademik/action.syncStudentAdmisi.mjs';
26
26
  import { checkClassAttendance } from './actions/jadwal/action.checkClassAttendance.mjs';
27
27
  import { syncClassSessions } from './actions/jadwal/syncClassSessions/syncClassSessions.action.mjs';
28
+ import { setClassSessionDependencies } from './actions/jadwal/setClassSessionDependencies/setClassSessionDependencies.action.mjs';
28
29
  import { setAksesModulSiswaDiClassGroup } from './actions/jadwal/setAksesModulSiswaDiClassGroup/setAksesModulSiswaDiClassGroup.action.mjs';
29
30
  import { getClassSessionConflicts } from './actions/jadwal/getClassSessionConflicts/getClassSessionConflicts.action.mjs';
30
31
  import { setTravelWageSessions } from './actions/jadwal/setTravelWageSessions/setTravelWageSessions.action.mjs';
@@ -68,6 +69,7 @@ export { UpdateReportStudentSchema } from './actions/akademik/updateReportStuden
68
69
  export { SendPointNotificationSchema } from './actions/akademik/sendPointNotification/sendPointNotification.schema.mjs';
69
70
  export { GetClassSessionConflictsSchema } from './actions/jadwal/getClassSessionConflicts/getClassSessionConflicts.schema.mjs';
70
71
  export { SyncClassSessionsSchema } from './actions/jadwal/syncClassSessions/syncClassSessions.schema.mjs';
72
+ export { SetClassSessionDependenciesSchema } from './actions/jadwal/setClassSessionDependencies/setClassSessionDependencies.schema.mjs';
71
73
  export { SetAksesModulSiswaDiClassGroupSchema } from './actions/jadwal/setAksesModulSiswaDiClassGroup/setAksesModulSiswaDiClassGroup.schema.mjs';
72
74
  export { SetTravelWageSessionsSchema } from './actions/jadwal/setTravelWageSessions/setTravelWageSessions.schema.mjs';
73
75
  export { SyncClassGroupsSchema } from './actions/jadwal/syncClassGroups/syncClassGroups.schema.mjs';
@@ -119,6 +121,7 @@ const actions = {
119
121
  syncStudentAdmisi,
120
122
  checkClassAttendance,
121
123
  syncClassSessions,
124
+ setClassSessionDependencies,
122
125
  setAksesModulSiswaDiClassGroup,
123
126
  getClassSessionConflicts,
124
127
  setTravelWageSessions,
@@ -161,4 +164,4 @@ const actions = {
161
164
  syncStudents
162
165
  };
163
166
 
164
- export { acceptQuestion, actions, addManyGradingComponent, allConflict, bulkDeleteSession, bulkUpdateSession, calculateGrading, calculateManyComparator, calculateOneComparator, checkClassAttendance, classSessionInventoryOccurs, classSessionInventoryPreparation, clearAllOverrides, clearGrading, clearOneOverrides, createGradingAndScores, createManySession, customSaveOneClassSession, deleteManySession, editAnswer, generateGrading, getClassSessionConflicts, getGradingCount, getQuestionCount, getStaffId, getStaffPoint, getStudentId, getStudentPoint, getTeacherPoint, hasUnderstand, importData, notUnderstand, prepareConflict, prepareExperience, prepareMediaScanterGradingInsert, presenceSessionStudent, presenceSessionTeacher, rasionalizeGrading, refreshGrading, refreshManyGrading, refreshModuleAccess, reminderQuestions, replaceModuleAccess, replaceModuleAccessManyStudent, sendAnswer, sendClassConsultationNotification, sendClassSessionNotification, sendPointNotification, sendQuestion, sendScoreNotification, setAksesModulSiswaDiClassGroup, setTravelWageSessions, syncClassGroups, syncClassSessions, syncCommitment, syncStudentAdmisi, syncStudentBranch, syncStudentInformation, syncStudentReport, syncStudents, updateGradingAndScores, updateMany, updateReportStudent, userCountStats };
167
+ export { acceptQuestion, actions, addManyGradingComponent, allConflict, bulkDeleteSession, bulkUpdateSession, calculateGrading, calculateManyComparator, calculateOneComparator, checkClassAttendance, classSessionInventoryOccurs, classSessionInventoryPreparation, clearAllOverrides, clearGrading, clearOneOverrides, createGradingAndScores, createManySession, customSaveOneClassSession, deleteManySession, editAnswer, generateGrading, getClassSessionConflicts, getGradingCount, getQuestionCount, getStaffId, getStaffPoint, getStudentId, getStudentPoint, getTeacherPoint, hasUnderstand, importData, notUnderstand, prepareConflict, prepareExperience, prepareMediaScanterGradingInsert, presenceSessionStudent, presenceSessionTeacher, rasionalizeGrading, refreshGrading, refreshManyGrading, refreshModuleAccess, reminderQuestions, replaceModuleAccess, replaceModuleAccessManyStudent, sendAnswer, sendClassConsultationNotification, sendClassSessionNotification, sendPointNotification, sendQuestion, sendScoreNotification, setAksesModulSiswaDiClassGroup, setClassSessionDependencies, setTravelWageSessions, syncClassGroups, syncClassSessions, syncCommitment, syncStudentAdmisi, syncStudentBranch, syncStudentInformation, syncStudentReport, syncStudents, updateGradingAndScores, updateMany, updateReportStudent, userCountStats };
@@ -461,6 +461,7 @@ function useImportData(stream) {
461
461
  branchIds: input.branchIds.map((id) => new core.ObjectId(id)),
462
462
  teacherIds,
463
463
  subjectIds,
464
+ virtualBranchIds: input.branchIds.map((id) => new core.ObjectId(id)),
464
465
  status,
465
466
  isTeacherShown: true,
466
467
  isTeacherSubtituted: false,
@@ -459,6 +459,7 @@ function useImportData(stream) {
459
459
  branchIds: input.branchIds.map((id) => new ObjectId(id)),
460
460
  teacherIds,
461
461
  subjectIds,
462
+ virtualBranchIds: input.branchIds.map((id) => new ObjectId(id)),
462
463
  status,
463
464
  isTeacherShown: true,
464
465
  isTeacherSubtituted: false,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@neutron.co.id/pendidikan-operation",
3
- "version": "1.29.3",
3
+ "version": "1.29.5",
4
4
  "description": "Operation package of Neutron Pendidikan.",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "contributors": [
@@ -86,5 +86,5 @@
86
86
  "publishConfig": {
87
87
  "access": "public"
88
88
  },
89
- "build": 159
89
+ "build": 161
90
90
  }