@neutron.co.id/operasional-interfaces 1.14.1 → 1.14.2
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/build/@office/common/providers/operasional/operasional.store.mjs +19 -2
- package/build/@office/config.mjs +1 -1
- package/build/@office/models/personalia/attendance/AttendanceCollection/AttendanceCollection.vue +7 -15
- package/build/@office/models/personalia/attendance/AttendanceStaff.vue +93 -7
- package/build/@office/models/personalia/attendance/AttendanceSupervisor.vue +80 -6
- package/build/@office/models/personalia/progressAccess/ProgressAccessSupervisor.vue +2 -10
- package/build/mock/index.cjs +202 -43
- package/build/mock/index.mjs +204 -45
- package/build/mock/style.css +3 -3
- package/build/module.json +1 -1
- package/build/nuxt.json +1 -1
- package/build/nuxt.mjs +1 -1
- package/package.json +2 -2
package/build/mock/index.cjs
CHANGED
|
@@ -11594,10 +11594,22 @@ const useOperasionalStore = pinia.defineStore("neu:operasional", () => {
|
|
|
11594
11594
|
const isLoading = vue.ref(false);
|
|
11595
11595
|
const staff = vue.ref(null);
|
|
11596
11596
|
const accesses = vue.ref([]);
|
|
11597
|
+
const supervisedStaffIds = vue.computed(() => {
|
|
11598
|
+
if (Array.isArray(accesses.value)) {
|
|
11599
|
+
return accesses.value.reduce(
|
|
11600
|
+
(ids, access) => {
|
|
11601
|
+
return ids.concat(access.supervisedStaffIds || []);
|
|
11602
|
+
},
|
|
11603
|
+
[]
|
|
11604
|
+
);
|
|
11605
|
+
}
|
|
11606
|
+
return [];
|
|
11607
|
+
});
|
|
11597
11608
|
return {
|
|
11598
11609
|
isLoading,
|
|
11599
11610
|
staff,
|
|
11600
11611
|
accesses,
|
|
11612
|
+
supervisedStaffIds,
|
|
11601
11613
|
setStaff,
|
|
11602
11614
|
getStaff,
|
|
11603
11615
|
getAllStoreValue
|
|
@@ -11608,9 +11620,14 @@ const useOperasionalStore = pinia.defineStore("neu:operasional", () => {
|
|
|
11608
11620
|
function getStaff() {
|
|
11609
11621
|
return staff.value;
|
|
11610
11622
|
}
|
|
11623
|
+
function getAccesses() {
|
|
11624
|
+
return accesses.value;
|
|
11625
|
+
}
|
|
11611
11626
|
function getAllStoreValue() {
|
|
11612
11627
|
return {
|
|
11613
|
-
staff: getStaff()
|
|
11628
|
+
staff: getStaff(),
|
|
11629
|
+
supervisedStaffIds: getAccesses(),
|
|
11630
|
+
accesses: getAccesses()
|
|
11614
11631
|
};
|
|
11615
11632
|
}
|
|
11616
11633
|
});
|
|
@@ -11716,7 +11733,7 @@ const _sfc_main$11 = /* @__PURE__ */ vue.defineComponent({
|
|
|
11716
11733
|
function transformItem(item) {
|
|
11717
11734
|
return {
|
|
11718
11735
|
...item,
|
|
11719
|
-
eventColor: item.
|
|
11736
|
+
eventColor: item.status === "rejected" ? "danger" : item.status === "notApproved" ? "warning" : item.status === "approved" ? "success" : "base"
|
|
11720
11737
|
};
|
|
11721
11738
|
}
|
|
11722
11739
|
function onCalendarPeriodUpdate(period) {
|
|
@@ -12343,6 +12360,8 @@ const _sfc_main$_ = /* @__PURE__ */ vue.defineComponent({
|
|
|
12343
12360
|
executeOne
|
|
12344
12361
|
} = context.useSingle();
|
|
12345
12362
|
const key = vue.ref(0);
|
|
12363
|
+
const responseState = vue.ref();
|
|
12364
|
+
const toast = interfaces.useToastStore();
|
|
12346
12365
|
const diff = vue.computed(() => {
|
|
12347
12366
|
return DateUtil.day(values.value.endedAt).diff(values.value.startedAt);
|
|
12348
12367
|
});
|
|
@@ -12415,7 +12434,44 @@ const _sfc_main$_ = /* @__PURE__ */ vue.defineComponent({
|
|
|
12415
12434
|
]
|
|
12416
12435
|
};
|
|
12417
12436
|
});
|
|
12437
|
+
const { client } = vue$1.useClientHandle();
|
|
12438
|
+
function getNotified() {
|
|
12439
|
+
if (responseState.value === "attendanceGenerated") {
|
|
12440
|
+
toast.push({
|
|
12441
|
+
id: "generate:attendance",
|
|
12442
|
+
content: "Successfully generated attendance.",
|
|
12443
|
+
color: "success"
|
|
12444
|
+
});
|
|
12445
|
+
}
|
|
12446
|
+
}
|
|
12447
|
+
async function generateAttendance() {
|
|
12448
|
+
var _a2, _b;
|
|
12449
|
+
const responseGenerateAttendance = await client.mutation(context.GraphUtil.executeOne(personaliaModels.AttendanceModel, {}), {
|
|
12450
|
+
action: "generateAttendance",
|
|
12451
|
+
input: {
|
|
12452
|
+
attendanceId: values.value.id,
|
|
12453
|
+
// Attendance input.
|
|
12454
|
+
status: values.value.status,
|
|
12455
|
+
submitStaffId: values.value.submitStaffId,
|
|
12456
|
+
type: values.value.type,
|
|
12457
|
+
decideStaffId: values.value.decideStaffId,
|
|
12458
|
+
notes: values.value.notes,
|
|
12459
|
+
submittedAt: values.value.submittedAt,
|
|
12460
|
+
startedAt: values.value.startedAt,
|
|
12461
|
+
endedAt: values.value.endedAt
|
|
12462
|
+
}
|
|
12463
|
+
}).toPromise();
|
|
12464
|
+
const wrapper = (_a2 = responseGenerateAttendance.data) == null ? void 0 : _a2.executeAttendance;
|
|
12465
|
+
responseState.value = (_b = wrapper == null ? void 0 : wrapper.info) == null ? void 0 : _b.state;
|
|
12466
|
+
}
|
|
12467
|
+
console.log("decideStaffId", values.value.decideStaffId);
|
|
12468
|
+
async function generate() {
|
|
12469
|
+
await generateAttendance();
|
|
12470
|
+
await getNotified();
|
|
12471
|
+
await syncOne();
|
|
12472
|
+
}
|
|
12418
12473
|
return (_ctx, _cache) => {
|
|
12474
|
+
const _component_NeonFields = vue.resolveComponent("NeonFields");
|
|
12419
12475
|
return vue.openBlock(), vue.createBlock(vue.unref(context.NeonSingle), { class: "neu-attendance-single" }, {
|
|
12420
12476
|
default: vue.withCtx(() => [
|
|
12421
12477
|
vue.createVNode(vue.unref(office$1.OfficeTabs), { "use-url": vue.unref(isMain) }, {
|
|
@@ -12509,15 +12565,49 @@ const _sfc_main$_ = /* @__PURE__ */ vue.defineComponent({
|
|
|
12509
12565
|
"is-disabled": vue.unref(values).status == "notApproved" || vue.unref(values).status == "approved" || vue.unref(values).status == "rejected",
|
|
12510
12566
|
"onUpdate:modelValue": onStartedAtUpdate
|
|
12511
12567
|
}), null, 16, ["model-value", "is-disabled"])),
|
|
12568
|
+
vue.createVNode(vue.unref(interfaces.NeonDivider), {
|
|
12569
|
+
"is-dashed": "",
|
|
12570
|
+
label: "Tanggal ini digunakan hanya untuk Generate Absensi",
|
|
12571
|
+
class: "divider"
|
|
12572
|
+
}),
|
|
12573
|
+
vue.createVNode(_component_NeonFields, { md: "grid-cols-3" }, {
|
|
12574
|
+
default: vue.withCtx(() => [
|
|
12575
|
+
vue.createVNode(vue.unref(form.NeonField), vue.mergeProps({
|
|
12576
|
+
modelValue: vue.unref(values).startedAt,
|
|
12577
|
+
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => vue.unref(values).startedAt = $event)
|
|
12578
|
+
}, vue.unref(fields).startedAt, {
|
|
12579
|
+
"is-disabled": vue.unref(values).status == "approved" || vue.unref(values).isGenerate === true
|
|
12580
|
+
}), null, 16, ["modelValue", "is-disabled"]),
|
|
12581
|
+
vue.createVNode(vue.unref(form.NeonField), vue.mergeProps({
|
|
12582
|
+
modelValue: vue.unref(values).endedAt,
|
|
12583
|
+
"onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => vue.unref(values).endedAt = $event)
|
|
12584
|
+
}, vue.unref(fields).endedAt, {
|
|
12585
|
+
"is-disabled": vue.unref(values).status == "approved" || vue.unref(values).isGenerate === true
|
|
12586
|
+
}), null, 16, ["modelValue", "is-disabled"]),
|
|
12587
|
+
vue.createVNode(vue.unref(interfaces.NeonButton), {
|
|
12588
|
+
"icon-left": "bolt",
|
|
12589
|
+
label: "Generate",
|
|
12590
|
+
color: "success",
|
|
12591
|
+
class: "mt-12",
|
|
12592
|
+
size: "xs",
|
|
12593
|
+
"is-loading": vue.unref(isLoading),
|
|
12594
|
+
"is-disabled": vue.unref(values).status !== "approved" || vue.unref(values).isGenerate === true,
|
|
12595
|
+
"is-rounded": "",
|
|
12596
|
+
onClick: generate
|
|
12597
|
+
}, null, 8, ["is-loading", "is-disabled"])
|
|
12598
|
+
]),
|
|
12599
|
+
_: 1
|
|
12600
|
+
/* STABLE */
|
|
12601
|
+
}),
|
|
12512
12602
|
vue.createVNode(vue.unref(form.NeonField), vue.mergeProps({
|
|
12513
12603
|
modelValue: vue.unref(values).type,
|
|
12514
|
-
"onUpdate:modelValue": _cache[
|
|
12604
|
+
"onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => vue.unref(values).type = $event)
|
|
12515
12605
|
}, vue.unref(fields).type, {
|
|
12516
12606
|
"is-disabled": vue.unref(values).status == "notApproved" || vue.unref(values).status == "approved" || vue.unref(values).status == "rejected"
|
|
12517
12607
|
}), null, 16, ["modelValue", "is-disabled"]),
|
|
12518
12608
|
vue.createVNode(vue.unref(office$1.OfficeRelation), {
|
|
12519
12609
|
modelValue: vue.unref(values),
|
|
12520
|
-
"onUpdate:modelValue": _cache[
|
|
12610
|
+
"onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => vue.isRef(values) ? values.value = $event : null),
|
|
12521
12611
|
field: vue.unref(fields).decideStaff,
|
|
12522
12612
|
query: vue.unref(query.Query).define(staffOptions.value),
|
|
12523
12613
|
"is-disabled": vue.unref(values).status == "notApproved" || vue.unref(values).status == "approved" || vue.unref(values).status == "rejected"
|
|
@@ -12525,14 +12615,14 @@ const _sfc_main$_ = /* @__PURE__ */ vue.defineComponent({
|
|
|
12525
12615
|
vue.unref(values).type == "leave" ? (vue.openBlock(), vue.createBlock(vue.unref(office$1.OfficeRelation), {
|
|
12526
12616
|
key: 2,
|
|
12527
12617
|
modelValue: vue.unref(values),
|
|
12528
|
-
"onUpdate:modelValue": _cache[
|
|
12618
|
+
"onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => vue.isRef(values) ? values.value = $event : null),
|
|
12529
12619
|
field: vue.unref(fields).delegateStaffs,
|
|
12530
12620
|
"is-disabled": vue.unref(values).status == "notApproved" || vue.unref(values).status == "approved" || vue.unref(values).status == "rejected"
|
|
12531
12621
|
}, null, 8, ["modelValue", "field", "is-disabled"])) : vue.createCommentVNode("v-if", true),
|
|
12532
12622
|
vue.unref(isNew) || vue.unref(isReady) ? (vue.openBlock(), vue.createBlock(vue.unref(form.NeonField), vue.mergeProps({
|
|
12533
12623
|
key: 3,
|
|
12534
12624
|
modelValue: vue.unref(values).notes,
|
|
12535
|
-
"onUpdate:modelValue": _cache[
|
|
12625
|
+
"onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => vue.unref(values).notes = $event)
|
|
12536
12626
|
}, vue.unref(fields).notes), null, 16, ["modelValue"])) : vue.createCommentVNode("v-if", true),
|
|
12537
12627
|
vue.unref(values).type ? (vue.openBlock(), vue.createBlock(vue.unref(interfaces.NeonDivider), {
|
|
12538
12628
|
key: 4,
|
|
@@ -12542,13 +12632,13 @@ const _sfc_main$_ = /* @__PURE__ */ vue.defineComponent({
|
|
|
12542
12632
|
vue.unref(values).type == "dayOff" || vue.unref(values).type == "sick" || vue.unref(values).type == "permission" || vue.unref(values).type == "leave" ? (vue.openBlock(), vue.createBlock(vue.unref(form.NeonField), vue.mergeProps({
|
|
12543
12633
|
key: 5,
|
|
12544
12634
|
modelValue: vue.unref(values).submittedAt,
|
|
12545
|
-
"onUpdate:modelValue": _cache[
|
|
12635
|
+
"onUpdate:modelValue": _cache[7] || (_cache[7] = ($event) => vue.unref(values).submittedAt = $event)
|
|
12546
12636
|
}, vue.unref(fields).submittedAt, { "is-disabled": "" }), null, 16, ["modelValue"])) : vue.createCommentVNode("v-if", true),
|
|
12547
12637
|
vue.createCommentVNode(" EARLY GO HOME "),
|
|
12548
12638
|
vue.unref(values).type == "homeEarly" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$a, [
|
|
12549
12639
|
vue.createVNode(vue.unref(form.NeonField), vue.mergeProps({
|
|
12550
12640
|
modelValue: vue.unref(values).startedAt,
|
|
12551
|
-
"onUpdate:modelValue": _cache[
|
|
12641
|
+
"onUpdate:modelValue": _cache[9] || (_cache[9] = ($event) => vue.unref(values).startedAt = $event)
|
|
12552
12642
|
}, {
|
|
12553
12643
|
handle: "startedAt",
|
|
12554
12644
|
name: "Jam Pulang Kerja",
|
|
@@ -12559,7 +12649,7 @@ const _sfc_main$_ = /* @__PURE__ */ vue.defineComponent({
|
|
|
12559
12649
|
input: vue.withCtx(() => [
|
|
12560
12650
|
vue.createVNode(vue.unref(NeonTime), {
|
|
12561
12651
|
modelValue: vue.unref(values).startedAt,
|
|
12562
|
-
"onUpdate:modelValue": _cache[
|
|
12652
|
+
"onUpdate:modelValue": _cache[8] || (_cache[8] = ($event) => vue.unref(values).startedAt = $event),
|
|
12563
12653
|
"is-loading": vue.unref(isLoading),
|
|
12564
12654
|
class: "mt-2",
|
|
12565
12655
|
"is-disabled": vue.unref(values).status == "notApproved" || vue.unref(values).status == "approved" || vue.unref(values).status == "rejected"
|
|
@@ -12570,7 +12660,7 @@ const _sfc_main$_ = /* @__PURE__ */ vue.defineComponent({
|
|
|
12570
12660
|
}, 16, ["modelValue"]),
|
|
12571
12661
|
vue.createVNode(vue.unref(form.NeonField), vue.mergeProps({
|
|
12572
12662
|
modelValue: vue.unref(values).endedAt,
|
|
12573
|
-
"onUpdate:modelValue": _cache[
|
|
12663
|
+
"onUpdate:modelValue": _cache[11] || (_cache[11] = ($event) => vue.unref(values).endedAt = $event)
|
|
12574
12664
|
}, {
|
|
12575
12665
|
handle: "endedAt",
|
|
12576
12666
|
name: "Jam Pulang Lebih Awal",
|
|
@@ -12581,7 +12671,7 @@ const _sfc_main$_ = /* @__PURE__ */ vue.defineComponent({
|
|
|
12581
12671
|
input: vue.withCtx(() => [
|
|
12582
12672
|
vue.createVNode(vue.unref(NeonTime), {
|
|
12583
12673
|
modelValue: vue.unref(values).endedAt,
|
|
12584
|
-
"onUpdate:modelValue": _cache[
|
|
12674
|
+
"onUpdate:modelValue": _cache[10] || (_cache[10] = ($event) => vue.unref(values).endedAt = $event),
|
|
12585
12675
|
"is-loading": vue.unref(isLoading),
|
|
12586
12676
|
class: "mt-2",
|
|
12587
12677
|
"is-disabled": vue.unref(values).status == "notApproved" || vue.unref(values).status == "approved" || vue.unref(values).status == "rejected"
|
|
@@ -12602,7 +12692,7 @@ const _sfc_main$_ = /* @__PURE__ */ vue.defineComponent({
|
|
|
12602
12692
|
vue.unref(values).type == "comeLate" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_6$9, [
|
|
12603
12693
|
vue.createVNode(vue.unref(form.NeonField), vue.mergeProps({
|
|
12604
12694
|
modelValue: vue.unref(values).startedAt,
|
|
12605
|
-
"onUpdate:modelValue": _cache[
|
|
12695
|
+
"onUpdate:modelValue": _cache[13] || (_cache[13] = ($event) => vue.unref(values).startedAt = $event)
|
|
12606
12696
|
}, {
|
|
12607
12697
|
handle: "startedAt",
|
|
12608
12698
|
name: "Jam Datang",
|
|
@@ -12613,7 +12703,7 @@ const _sfc_main$_ = /* @__PURE__ */ vue.defineComponent({
|
|
|
12613
12703
|
input: vue.withCtx(() => [
|
|
12614
12704
|
vue.createVNode(vue.unref(NeonTime), {
|
|
12615
12705
|
modelValue: vue.unref(values).startedAt,
|
|
12616
|
-
"onUpdate:modelValue": _cache[
|
|
12706
|
+
"onUpdate:modelValue": _cache[12] || (_cache[12] = ($event) => vue.unref(values).startedAt = $event),
|
|
12617
12707
|
"is-loading": vue.unref(isLoading),
|
|
12618
12708
|
class: "mt-2",
|
|
12619
12709
|
"is-disabled": vue.unref(values).status == "notApproved" || vue.unref(values).status == "approved" || vue.unref(values).status == "rejected"
|
|
@@ -12624,7 +12714,7 @@ const _sfc_main$_ = /* @__PURE__ */ vue.defineComponent({
|
|
|
12624
12714
|
}, 16, ["modelValue"]),
|
|
12625
12715
|
vue.createVNode(vue.unref(form.NeonField), vue.mergeProps({
|
|
12626
12716
|
modelValue: vue.unref(values).endedAt,
|
|
12627
|
-
"onUpdate:modelValue": _cache[
|
|
12717
|
+
"onUpdate:modelValue": _cache[15] || (_cache[15] = ($event) => vue.unref(values).endedAt = $event)
|
|
12628
12718
|
}, {
|
|
12629
12719
|
handle: "endedAt",
|
|
12630
12720
|
name: "Jam Datang Terlambat",
|
|
@@ -12635,7 +12725,7 @@ const _sfc_main$_ = /* @__PURE__ */ vue.defineComponent({
|
|
|
12635
12725
|
input: vue.withCtx(() => [
|
|
12636
12726
|
vue.createVNode(vue.unref(NeonTime), {
|
|
12637
12727
|
modelValue: vue.unref(values).endedAt,
|
|
12638
|
-
"onUpdate:modelValue": _cache[
|
|
12728
|
+
"onUpdate:modelValue": _cache[14] || (_cache[14] = ($event) => vue.unref(values).endedAt = $event),
|
|
12639
12729
|
"is-loading": vue.unref(isLoading),
|
|
12640
12730
|
class: "mt-2",
|
|
12641
12731
|
"is-disabled": vue.unref(values).status == "notApproved" || vue.unref(values).status == "approved" || vue.unref(values).status == "rejected"
|
|
@@ -12656,7 +12746,7 @@ const _sfc_main$_ = /* @__PURE__ */ vue.defineComponent({
|
|
|
12656
12746
|
vue.unref(values).type == "timeout" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_8$8, [
|
|
12657
12747
|
vue.createVNode(vue.unref(form.NeonField), vue.mergeProps({
|
|
12658
12748
|
modelValue: vue.unref(values).startedAt,
|
|
12659
|
-
"onUpdate:modelValue": _cache[
|
|
12749
|
+
"onUpdate:modelValue": _cache[17] || (_cache[17] = ($event) => vue.unref(values).startedAt = $event)
|
|
12660
12750
|
}, {
|
|
12661
12751
|
handle: "startedAt",
|
|
12662
12752
|
name: "Mulai",
|
|
@@ -12667,7 +12757,7 @@ const _sfc_main$_ = /* @__PURE__ */ vue.defineComponent({
|
|
|
12667
12757
|
input: vue.withCtx(() => [
|
|
12668
12758
|
vue.createVNode(vue.unref(NeonTime), {
|
|
12669
12759
|
modelValue: vue.unref(values).startedAt,
|
|
12670
|
-
"onUpdate:modelValue": _cache[
|
|
12760
|
+
"onUpdate:modelValue": _cache[16] || (_cache[16] = ($event) => vue.unref(values).startedAt = $event),
|
|
12671
12761
|
"is-loading": vue.unref(isLoading),
|
|
12672
12762
|
class: "mt-2",
|
|
12673
12763
|
"is-disabled": vue.unref(values).status == "notApproved" || vue.unref(values).status == "approved" || vue.unref(values).status == "rejected"
|
|
@@ -12678,7 +12768,7 @@ const _sfc_main$_ = /* @__PURE__ */ vue.defineComponent({
|
|
|
12678
12768
|
}, 16, ["modelValue"]),
|
|
12679
12769
|
vue.createVNode(vue.unref(form.NeonField), vue.mergeProps({
|
|
12680
12770
|
modelValue: vue.unref(values).endedAt,
|
|
12681
|
-
"onUpdate:modelValue": _cache[
|
|
12771
|
+
"onUpdate:modelValue": _cache[19] || (_cache[19] = ($event) => vue.unref(values).endedAt = $event)
|
|
12682
12772
|
}, {
|
|
12683
12773
|
handle: "endedAt",
|
|
12684
12774
|
name: "Selesai",
|
|
@@ -12689,7 +12779,7 @@ const _sfc_main$_ = /* @__PURE__ */ vue.defineComponent({
|
|
|
12689
12779
|
input: vue.withCtx(() => [
|
|
12690
12780
|
vue.createVNode(vue.unref(NeonTime), {
|
|
12691
12781
|
modelValue: vue.unref(values).endedAt,
|
|
12692
|
-
"onUpdate:modelValue": _cache[
|
|
12782
|
+
"onUpdate:modelValue": _cache[18] || (_cache[18] = ($event) => vue.unref(values).endedAt = $event),
|
|
12693
12783
|
"is-loading": vue.unref(isLoading),
|
|
12694
12784
|
class: "mt-2",
|
|
12695
12785
|
"is-disabled": vue.unref(values).status == "notApproved" || vue.unref(values).status == "approved" || vue.unref(values).status == "rejected"
|
|
@@ -12725,7 +12815,7 @@ const _sfc_main$_ = /* @__PURE__ */ vue.defineComponent({
|
|
|
12725
12815
|
};
|
|
12726
12816
|
}
|
|
12727
12817
|
});
|
|
12728
|
-
const AttendanceStaff = /* @__PURE__ */ _export_sfc$1(_sfc_main$_, [["__scopeId", "data-v-
|
|
12818
|
+
const AttendanceStaff = /* @__PURE__ */ _export_sfc$1(_sfc_main$_, [["__scopeId", "data-v-7951838f"]]);
|
|
12729
12819
|
const _hoisted_1$p = { class: "flex flex-wrap" };
|
|
12730
12820
|
const _hoisted_2$i = { class: "mt-2" };
|
|
12731
12821
|
const _hoisted_3$a = { class: "mt-2" };
|
|
@@ -12791,6 +12881,8 @@ const _sfc_main$Z = /* @__PURE__ */ vue.defineComponent({
|
|
|
12791
12881
|
values.value.startedAt = startedAt.toISOString();
|
|
12792
12882
|
values.value.endedAt = endedAt.toISOString();
|
|
12793
12883
|
}
|
|
12884
|
+
const responseState = vue.ref();
|
|
12885
|
+
const toast = interfaces.useToastStore();
|
|
12794
12886
|
const { staff } = useOperasional();
|
|
12795
12887
|
const staffId = ((_a = staff.value) == null ? void 0 : _a.id) || "";
|
|
12796
12888
|
vue.watch(isNew, setDefaultValues, { immediate: true });
|
|
@@ -12817,7 +12909,43 @@ const _sfc_main$Z = /* @__PURE__ */ vue.defineComponent({
|
|
|
12817
12909
|
await executeOne("rejectedAttendance", { attendanceId: id.value });
|
|
12818
12910
|
await syncOne();
|
|
12819
12911
|
};
|
|
12912
|
+
const { client } = vue$1.useClientHandle();
|
|
12913
|
+
function getNotified() {
|
|
12914
|
+
if (responseState.value === "attendanceGenerated") {
|
|
12915
|
+
toast.push({
|
|
12916
|
+
id: "generate:attendance",
|
|
12917
|
+
content: "Successfully generated attendance.",
|
|
12918
|
+
color: "success"
|
|
12919
|
+
});
|
|
12920
|
+
}
|
|
12921
|
+
}
|
|
12922
|
+
async function generateAttendance() {
|
|
12923
|
+
var _a2, _b;
|
|
12924
|
+
const responseGenerateAttendance = await client.mutation(context.GraphUtil.executeOne(personaliaModels.AttendanceModel, {}), {
|
|
12925
|
+
action: "generateAttendance",
|
|
12926
|
+
input: {
|
|
12927
|
+
attendanceId: values.value.id,
|
|
12928
|
+
// Attendance input.
|
|
12929
|
+
status: values.value.status,
|
|
12930
|
+
submitStaffId: values.value.submitStaffId,
|
|
12931
|
+
type: values.value.type,
|
|
12932
|
+
decideStaffId: values.value.decideStaffId,
|
|
12933
|
+
notes: values.value.notes,
|
|
12934
|
+
submittedAt: values.value.submittedAt,
|
|
12935
|
+
startedAt: values.value.startedAt,
|
|
12936
|
+
endedAt: values.value.endedAt
|
|
12937
|
+
}
|
|
12938
|
+
}).toPromise();
|
|
12939
|
+
const wrapper = (_a2 = responseGenerateAttendance.data) == null ? void 0 : _a2.executeAttendance;
|
|
12940
|
+
responseState.value = (_b = wrapper == null ? void 0 : wrapper.info) == null ? void 0 : _b.state;
|
|
12941
|
+
}
|
|
12942
|
+
async function generate() {
|
|
12943
|
+
await generateAttendance();
|
|
12944
|
+
await getNotified();
|
|
12945
|
+
await syncOne();
|
|
12946
|
+
}
|
|
12820
12947
|
return (_ctx, _cache) => {
|
|
12948
|
+
const _component_NeonFields = vue.resolveComponent("NeonFields");
|
|
12821
12949
|
return vue.openBlock(), vue.createBlock(vue.unref(context.NeonSingle), { class: "neu-attendance-single" }, {
|
|
12822
12950
|
default: vue.withCtx(() => [
|
|
12823
12951
|
vue.createVNode(vue.unref(office$1.OfficeTabs), { "use-url": vue.unref(isMain) }, {
|
|
@@ -12925,9 +13053,42 @@ const _sfc_main$Z = /* @__PURE__ */ vue.defineComponent({
|
|
|
12925
13053
|
"is-disabled": vue.unref(values).status == "approved" || vue.unref(values).status == "rejected",
|
|
12926
13054
|
"onUpdate:modelValue": onStartedAtUpdate
|
|
12927
13055
|
}), null, 16, ["model-value", "is-disabled"])),
|
|
13056
|
+
vue.createVNode(vue.unref(interfaces.NeonDivider), {
|
|
13057
|
+
label: "Tanggal ini digunakan hanya untuk Generate Absensi",
|
|
13058
|
+
class: "divider"
|
|
13059
|
+
}),
|
|
13060
|
+
vue.createVNode(_component_NeonFields, { md: "grid-cols-3" }, {
|
|
13061
|
+
default: vue.withCtx(() => [
|
|
13062
|
+
vue.createVNode(vue.unref(form.NeonField), vue.mergeProps({
|
|
13063
|
+
modelValue: vue.unref(values).startedAt,
|
|
13064
|
+
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => vue.unref(values).startedAt = $event)
|
|
13065
|
+
}, vue.unref(fields).startedAt, {
|
|
13066
|
+
"is-disabled": vue.unref(values).isGenerate === true
|
|
13067
|
+
}), null, 16, ["modelValue", "is-disabled"]),
|
|
13068
|
+
vue.createVNode(vue.unref(form.NeonField), vue.mergeProps({
|
|
13069
|
+
modelValue: vue.unref(values).endedAt,
|
|
13070
|
+
"onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => vue.unref(values).endedAt = $event)
|
|
13071
|
+
}, vue.unref(fields).endedAt, {
|
|
13072
|
+
"is-disabled": vue.unref(values).isGenerate === true
|
|
13073
|
+
}), null, 16, ["modelValue", "is-disabled"]),
|
|
13074
|
+
vue.createVNode(vue.unref(interfaces.NeonButton), {
|
|
13075
|
+
"icon-left": "bolt",
|
|
13076
|
+
label: "Generate",
|
|
13077
|
+
color: "success",
|
|
13078
|
+
class: "mt-12",
|
|
13079
|
+
size: "xs",
|
|
13080
|
+
"is-loading": vue.unref(isLoading),
|
|
13081
|
+
"is-disabled": vue.unref(values).status !== "approved" || vue.unref(values).isGenerate === true,
|
|
13082
|
+
"is-rounded": "",
|
|
13083
|
+
onClick: generate
|
|
13084
|
+
}, null, 8, ["is-loading", "is-disabled"])
|
|
13085
|
+
]),
|
|
13086
|
+
_: 1
|
|
13087
|
+
/* STABLE */
|
|
13088
|
+
}),
|
|
12928
13089
|
vue.createVNode(vue.unref(form.NeonField), vue.mergeProps({
|
|
12929
13090
|
modelValue: vue.unref(values).type,
|
|
12930
|
-
"onUpdate:modelValue": _cache[
|
|
13091
|
+
"onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => vue.unref(values).type = $event)
|
|
12931
13092
|
}, vue.unref(fields).type, {
|
|
12932
13093
|
"is-disabled": vue.unref(values).status == "approved" || vue.unref(values).status == "rejected"
|
|
12933
13094
|
}), null, 16, ["modelValue", "is-disabled"]),
|
|
@@ -12941,14 +13102,14 @@ const _sfc_main$Z = /* @__PURE__ */ vue.defineComponent({
|
|
|
12941
13102
|
vue.unref(values).type == "leave" ? (vue.openBlock(), vue.createBlock(vue.unref(office$1.OfficeRelation), {
|
|
12942
13103
|
key: 0,
|
|
12943
13104
|
modelValue: vue.unref(values),
|
|
12944
|
-
"onUpdate:modelValue": _cache[
|
|
13105
|
+
"onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => vue.isRef(values) ? values.value = $event : null),
|
|
12945
13106
|
field: vue.unref(fields).delegateStaffs,
|
|
12946
13107
|
"is-disabled": vue.unref(values).status == "approved" || vue.unref(values).status == "rejected"
|
|
12947
13108
|
}, null, 8, ["modelValue", "field", "is-disabled"])) : vue.createCommentVNode("v-if", true),
|
|
12948
13109
|
vue.unref(isNew) || vue.unref(isReady) ? (vue.openBlock(), vue.createBlock(vue.unref(form.NeonField), vue.mergeProps({
|
|
12949
13110
|
key: 1,
|
|
12950
13111
|
modelValue: vue.unref(values).notes,
|
|
12951
|
-
"onUpdate:modelValue": _cache[
|
|
13112
|
+
"onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => vue.unref(values).notes = $event)
|
|
12952
13113
|
}, vue.unref(fields).notes), null, 16, ["modelValue"])) : vue.createCommentVNode("v-if", true),
|
|
12953
13114
|
vue.unref(values).type ? (vue.openBlock(), vue.createBlock(vue.unref(interfaces.NeonDivider), {
|
|
12954
13115
|
key: 2,
|
|
@@ -12958,13 +13119,13 @@ const _sfc_main$Z = /* @__PURE__ */ vue.defineComponent({
|
|
|
12958
13119
|
vue.unref(values).type == "dayOff" || vue.unref(values).type == "sick" || vue.unref(values).type == "permission" || vue.unref(values).type == "leave" ? (vue.openBlock(), vue.createBlock(vue.unref(form.NeonField), vue.mergeProps({
|
|
12959
13120
|
key: 3,
|
|
12960
13121
|
modelValue: vue.unref(values).submittedAt,
|
|
12961
|
-
"onUpdate:modelValue": _cache[
|
|
13122
|
+
"onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => vue.unref(values).submittedAt = $event)
|
|
12962
13123
|
}, vue.unref(fields).submittedAt, { "is-disabled": "" }), null, 16, ["modelValue"])) : vue.createCommentVNode("v-if", true),
|
|
12963
13124
|
vue.createCommentVNode(" EARLY GO HOME "),
|
|
12964
13125
|
vue.unref(values).type == "homeEarly" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_5$8, [
|
|
12965
13126
|
vue.createVNode(vue.unref(form.NeonField), vue.mergeProps({
|
|
12966
13127
|
modelValue: vue.unref(values).startedAt,
|
|
12967
|
-
"onUpdate:modelValue": _cache[
|
|
13128
|
+
"onUpdate:modelValue": _cache[8] || (_cache[8] = ($event) => vue.unref(values).startedAt = $event)
|
|
12968
13129
|
}, {
|
|
12969
13130
|
handle: "startedAt",
|
|
12970
13131
|
name: "Jam Pulang Kerja",
|
|
@@ -12975,7 +13136,7 @@ const _sfc_main$Z = /* @__PURE__ */ vue.defineComponent({
|
|
|
12975
13136
|
input: vue.withCtx(() => [
|
|
12976
13137
|
vue.createVNode(vue.unref(NeonTime), {
|
|
12977
13138
|
modelValue: vue.unref(values).startedAt,
|
|
12978
|
-
"onUpdate:modelValue": _cache[
|
|
13139
|
+
"onUpdate:modelValue": _cache[7] || (_cache[7] = ($event) => vue.unref(values).startedAt = $event),
|
|
12979
13140
|
"is-loading": vue.unref(isLoading),
|
|
12980
13141
|
class: "mt-2"
|
|
12981
13142
|
}, null, 8, ["modelValue", "is-loading"])
|
|
@@ -12985,7 +13146,7 @@ const _sfc_main$Z = /* @__PURE__ */ vue.defineComponent({
|
|
|
12985
13146
|
}, 16, ["modelValue"]),
|
|
12986
13147
|
vue.createVNode(vue.unref(form.NeonField), vue.mergeProps({
|
|
12987
13148
|
modelValue: vue.unref(values).endedAt,
|
|
12988
|
-
"onUpdate:modelValue": _cache[
|
|
13149
|
+
"onUpdate:modelValue": _cache[10] || (_cache[10] = ($event) => vue.unref(values).endedAt = $event)
|
|
12989
13150
|
}, {
|
|
12990
13151
|
handle: "endedAt",
|
|
12991
13152
|
name: "Jam Pulang Lebih Awal",
|
|
@@ -12996,7 +13157,7 @@ const _sfc_main$Z = /* @__PURE__ */ vue.defineComponent({
|
|
|
12996
13157
|
input: vue.withCtx(() => [
|
|
12997
13158
|
vue.createVNode(vue.unref(NeonTime), {
|
|
12998
13159
|
modelValue: vue.unref(values).endedAt,
|
|
12999
|
-
"onUpdate:modelValue": _cache[
|
|
13160
|
+
"onUpdate:modelValue": _cache[9] || (_cache[9] = ($event) => vue.unref(values).endedAt = $event),
|
|
13000
13161
|
"is-loading": vue.unref(isLoading),
|
|
13001
13162
|
class: "mt-2"
|
|
13002
13163
|
}, null, 8, ["modelValue", "is-loading"]),
|
|
@@ -13016,7 +13177,7 @@ const _sfc_main$Z = /* @__PURE__ */ vue.defineComponent({
|
|
|
13016
13177
|
vue.unref(values).type == "comeLate" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_7$7, [
|
|
13017
13178
|
vue.createVNode(vue.unref(form.NeonField), vue.mergeProps({
|
|
13018
13179
|
modelValue: vue.unref(values).startedAt,
|
|
13019
|
-
"onUpdate:modelValue": _cache[
|
|
13180
|
+
"onUpdate:modelValue": _cache[12] || (_cache[12] = ($event) => vue.unref(values).startedAt = $event)
|
|
13020
13181
|
}, {
|
|
13021
13182
|
handle: "startedAt",
|
|
13022
13183
|
name: "Jam Datang",
|
|
@@ -13027,7 +13188,7 @@ const _sfc_main$Z = /* @__PURE__ */ vue.defineComponent({
|
|
|
13027
13188
|
input: vue.withCtx(() => [
|
|
13028
13189
|
vue.createVNode(vue.unref(NeonTime), {
|
|
13029
13190
|
modelValue: vue.unref(values).startedAt,
|
|
13030
|
-
"onUpdate:modelValue": _cache[
|
|
13191
|
+
"onUpdate:modelValue": _cache[11] || (_cache[11] = ($event) => vue.unref(values).startedAt = $event),
|
|
13031
13192
|
"is-loading": vue.unref(isLoading),
|
|
13032
13193
|
class: "mt-2"
|
|
13033
13194
|
}, null, 8, ["modelValue", "is-loading"])
|
|
@@ -13037,7 +13198,7 @@ const _sfc_main$Z = /* @__PURE__ */ vue.defineComponent({
|
|
|
13037
13198
|
}, 16, ["modelValue"]),
|
|
13038
13199
|
vue.createVNode(vue.unref(form.NeonField), vue.mergeProps({
|
|
13039
13200
|
modelValue: vue.unref(values).endedAt,
|
|
13040
|
-
"onUpdate:modelValue": _cache[
|
|
13201
|
+
"onUpdate:modelValue": _cache[14] || (_cache[14] = ($event) => vue.unref(values).endedAt = $event)
|
|
13041
13202
|
}, {
|
|
13042
13203
|
handle: "endedAt",
|
|
13043
13204
|
name: "Jam Datang Terlambat",
|
|
@@ -13048,7 +13209,7 @@ const _sfc_main$Z = /* @__PURE__ */ vue.defineComponent({
|
|
|
13048
13209
|
input: vue.withCtx(() => [
|
|
13049
13210
|
vue.createVNode(vue.unref(NeonTime), {
|
|
13050
13211
|
modelValue: vue.unref(values).endedAt,
|
|
13051
|
-
"onUpdate:modelValue": _cache[
|
|
13212
|
+
"onUpdate:modelValue": _cache[13] || (_cache[13] = ($event) => vue.unref(values).endedAt = $event),
|
|
13052
13213
|
"is-loading": vue.unref(isLoading),
|
|
13053
13214
|
class: "mt-2"
|
|
13054
13215
|
}, null, 8, ["modelValue", "is-loading"]),
|
|
@@ -13068,7 +13229,7 @@ const _sfc_main$Z = /* @__PURE__ */ vue.defineComponent({
|
|
|
13068
13229
|
vue.unref(values).type == "timeout" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_9$7, [
|
|
13069
13230
|
vue.createVNode(vue.unref(form.NeonField), vue.mergeProps({
|
|
13070
13231
|
modelValue: vue.unref(values).startedAt,
|
|
13071
|
-
"onUpdate:modelValue": _cache[
|
|
13232
|
+
"onUpdate:modelValue": _cache[16] || (_cache[16] = ($event) => vue.unref(values).startedAt = $event)
|
|
13072
13233
|
}, {
|
|
13073
13234
|
handle: "startedAt",
|
|
13074
13235
|
name: "Mulai",
|
|
@@ -13079,7 +13240,7 @@ const _sfc_main$Z = /* @__PURE__ */ vue.defineComponent({
|
|
|
13079
13240
|
input: vue.withCtx(() => [
|
|
13080
13241
|
vue.createVNode(vue.unref(NeonTime), {
|
|
13081
13242
|
modelValue: vue.unref(values).startedAt,
|
|
13082
|
-
"onUpdate:modelValue": _cache[
|
|
13243
|
+
"onUpdate:modelValue": _cache[15] || (_cache[15] = ($event) => vue.unref(values).startedAt = $event),
|
|
13083
13244
|
"is-loading": vue.unref(isLoading),
|
|
13084
13245
|
class: "mt-2"
|
|
13085
13246
|
}, null, 8, ["modelValue", "is-loading"])
|
|
@@ -13089,7 +13250,7 @@ const _sfc_main$Z = /* @__PURE__ */ vue.defineComponent({
|
|
|
13089
13250
|
}, 16, ["modelValue"]),
|
|
13090
13251
|
vue.createVNode(vue.unref(form.NeonField), vue.mergeProps({
|
|
13091
13252
|
modelValue: vue.unref(values).endedAt,
|
|
13092
|
-
"onUpdate:modelValue": _cache[
|
|
13253
|
+
"onUpdate:modelValue": _cache[18] || (_cache[18] = ($event) => vue.unref(values).endedAt = $event)
|
|
13093
13254
|
}, {
|
|
13094
13255
|
handle: "endedAt",
|
|
13095
13256
|
name: "Selesai",
|
|
@@ -13100,7 +13261,7 @@ const _sfc_main$Z = /* @__PURE__ */ vue.defineComponent({
|
|
|
13100
13261
|
input: vue.withCtx(() => [
|
|
13101
13262
|
vue.createVNode(vue.unref(NeonTime), {
|
|
13102
13263
|
modelValue: vue.unref(values).endedAt,
|
|
13103
|
-
"onUpdate:modelValue": _cache[
|
|
13264
|
+
"onUpdate:modelValue": _cache[17] || (_cache[17] = ($event) => vue.unref(values).endedAt = $event),
|
|
13104
13265
|
"is-loading": vue.unref(isLoading),
|
|
13105
13266
|
class: "mt-2"
|
|
13106
13267
|
}, null, 8, ["modelValue", "is-loading"]),
|
|
@@ -13135,7 +13296,7 @@ const _sfc_main$Z = /* @__PURE__ */ vue.defineComponent({
|
|
|
13135
13296
|
};
|
|
13136
13297
|
}
|
|
13137
13298
|
});
|
|
13138
|
-
const AttendanceSupervisor = /* @__PURE__ */ _export_sfc$1(_sfc_main$Z, [["__scopeId", "data-v-
|
|
13299
|
+
const AttendanceSupervisor = /* @__PURE__ */ _export_sfc$1(_sfc_main$Z, [["__scopeId", "data-v-ff0ad0fa"]]);
|
|
13139
13300
|
const _withScopeId$2 = (n) => (vue.pushScopeId("data-v-c329f979"), n = n(), vue.popScopeId(), n);
|
|
13140
13301
|
const _hoisted_1$o = { id: "view-checkIns" };
|
|
13141
13302
|
const _hoisted_2$h = { class: "summary" };
|
|
@@ -16391,14 +16552,12 @@ const _sfc_main$C = /* @__PURE__ */ vue.defineComponent({
|
|
|
16391
16552
|
vue.createVNode(vue.unref(office$1.OfficeRelation), {
|
|
16392
16553
|
modelValue: vue.unref(values),
|
|
16393
16554
|
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => vue.isRef(values) ? values.value = $event : null),
|
|
16394
|
-
field: vue.unref(fields).superviseStaff
|
|
16395
|
-
"is-disabled": ""
|
|
16555
|
+
field: vue.unref(fields).superviseStaff
|
|
16396
16556
|
}, null, 8, ["modelValue", "field"]),
|
|
16397
16557
|
vue.createVNode(vue.unref(office$1.OfficeRelation), {
|
|
16398
16558
|
modelValue: vue.unref(values),
|
|
16399
16559
|
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => vue.isRef(values) ? values.value = $event : null),
|
|
16400
|
-
field: vue.unref(fields).supervisedStaffs
|
|
16401
|
-
"is-disabled": ""
|
|
16560
|
+
field: vue.unref(fields).supervisedStaffs
|
|
16402
16561
|
}, null, 8, ["modelValue", "field"])
|
|
16403
16562
|
]),
|
|
16404
16563
|
_: 1
|
|
@@ -16419,7 +16578,7 @@ const _sfc_main$C = /* @__PURE__ */ vue.defineComponent({
|
|
|
16419
16578
|
};
|
|
16420
16579
|
}
|
|
16421
16580
|
});
|
|
16422
|
-
const ProgressAccessSupervisor = /* @__PURE__ */ _export_sfc$1(_sfc_main$C, [["__scopeId", "data-v-
|
|
16581
|
+
const ProgressAccessSupervisor = /* @__PURE__ */ _export_sfc$1(_sfc_main$C, [["__scopeId", "data-v-2ca10028"]]);
|
|
16423
16582
|
const _sfc_main$B = /* @__PURE__ */ vue.defineComponent({
|
|
16424
16583
|
...{
|
|
16425
16584
|
name: "ProgressAccessCollection"
|
|
@@ -23082,7 +23241,7 @@ const config = helpers.OfficeInterfaces.define({
|
|
|
23082
23241
|
// Progress Access
|
|
23083
23242
|
"ProgressAccessCollection",
|
|
23084
23243
|
"ProgressAccessSingle",
|
|
23085
|
-
"
|
|
23244
|
+
"ProgressAccessSupervisor",
|
|
23086
23245
|
// Responsibility
|
|
23087
23246
|
"ResponsibilityCollection",
|
|
23088
23247
|
"ResponsibilitySingle",
|