av6-core 1.8.4 → 1.8.6

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.d.mts CHANGED
@@ -522,19 +522,19 @@ interface CommonServiceResponse {
522
522
  declare const commonService: (serviceDeps: Deps) => CommonServiceResponse;
523
523
 
524
524
  declare enum ApprovalStatus {
525
- PENDING = 0,
526
- PARTIALLY_APPROVED = 1,
527
- APPROVED = 2,
528
- REJECTED = 3,
529
- CANCELLED = 4
525
+ PENDING = "PENDING",
526
+ PARTIALLY_APPROVED = "PARTIALLY_APPROVED",
527
+ APPROVED = "APPROVED",
528
+ REJECTED = "REJECTED",
529
+ CANCELLED = "CANCELLED"
530
530
  }
531
531
  declare enum FlowType {
532
- STATUS = 0,
533
- CO_PAY = 1,
534
- INDIVIDUAL_DISCOUNT = 2,
535
- OVERALL_DISCOUNT = 3,
536
- SPECIAL_DISCOUNT = 4,
537
- REFUND = 5
532
+ STATUS = "STATUS",
533
+ CO_PAY = "CO_PAY",
534
+ INDIVIDUAL_DISCOUNT = "INDIVIDUAL_DISCOUNT",
535
+ OVERALL_DISCOUNT = "OVERALL_DISCOUNT",
536
+ SPECIAL_DISCOUNT = "SPECIAL_DISCOUNT",
537
+ REFUND = "REFUND"
538
538
  }
539
539
  type StepType = "MIN_MAX" | "NORMAL";
540
540
  declare enum ActionMode {
package/dist/index.d.ts CHANGED
@@ -522,19 +522,19 @@ interface CommonServiceResponse {
522
522
  declare const commonService: (serviceDeps: Deps) => CommonServiceResponse;
523
523
 
524
524
  declare enum ApprovalStatus {
525
- PENDING = 0,
526
- PARTIALLY_APPROVED = 1,
527
- APPROVED = 2,
528
- REJECTED = 3,
529
- CANCELLED = 4
525
+ PENDING = "PENDING",
526
+ PARTIALLY_APPROVED = "PARTIALLY_APPROVED",
527
+ APPROVED = "APPROVED",
528
+ REJECTED = "REJECTED",
529
+ CANCELLED = "CANCELLED"
530
530
  }
531
531
  declare enum FlowType {
532
- STATUS = 0,
533
- CO_PAY = 1,
534
- INDIVIDUAL_DISCOUNT = 2,
535
- OVERALL_DISCOUNT = 3,
536
- SPECIAL_DISCOUNT = 4,
537
- REFUND = 5
532
+ STATUS = "STATUS",
533
+ CO_PAY = "CO_PAY",
534
+ INDIVIDUAL_DISCOUNT = "INDIVIDUAL_DISCOUNT",
535
+ OVERALL_DISCOUNT = "OVERALL_DISCOUNT",
536
+ SPECIAL_DISCOUNT = "SPECIAL_DISCOUNT",
537
+ REFUND = "REFUND"
538
538
  }
539
539
  type StepType = "MIN_MAX" | "NORMAL";
540
540
  declare enum ActionMode {
package/dist/index.js CHANGED
@@ -2307,20 +2307,20 @@ var commonService = (serviceDeps) => {
2307
2307
 
2308
2308
  // src/types/approval.type.ts
2309
2309
  var ApprovalStatus = /* @__PURE__ */ ((ApprovalStatus2) => {
2310
- ApprovalStatus2[ApprovalStatus2["PENDING"] = 0] = "PENDING";
2311
- ApprovalStatus2[ApprovalStatus2["PARTIALLY_APPROVED"] = 1] = "PARTIALLY_APPROVED";
2312
- ApprovalStatus2[ApprovalStatus2["APPROVED"] = 2] = "APPROVED";
2313
- ApprovalStatus2[ApprovalStatus2["REJECTED"] = 3] = "REJECTED";
2314
- ApprovalStatus2[ApprovalStatus2["CANCELLED"] = 4] = "CANCELLED";
2310
+ ApprovalStatus2["PENDING"] = "PENDING";
2311
+ ApprovalStatus2["PARTIALLY_APPROVED"] = "PARTIALLY_APPROVED";
2312
+ ApprovalStatus2["APPROVED"] = "APPROVED";
2313
+ ApprovalStatus2["REJECTED"] = "REJECTED";
2314
+ ApprovalStatus2["CANCELLED"] = "CANCELLED";
2315
2315
  return ApprovalStatus2;
2316
2316
  })(ApprovalStatus || {});
2317
2317
  var FlowType = /* @__PURE__ */ ((FlowType3) => {
2318
- FlowType3[FlowType3["STATUS"] = 0] = "STATUS";
2319
- FlowType3[FlowType3["CO_PAY"] = 1] = "CO_PAY";
2320
- FlowType3[FlowType3["INDIVIDUAL_DISCOUNT"] = 2] = "INDIVIDUAL_DISCOUNT";
2321
- FlowType3[FlowType3["OVERALL_DISCOUNT"] = 3] = "OVERALL_DISCOUNT";
2322
- FlowType3[FlowType3["SPECIAL_DISCOUNT"] = 4] = "SPECIAL_DISCOUNT";
2323
- FlowType3[FlowType3["REFUND"] = 5] = "REFUND";
2318
+ FlowType3["STATUS"] = "STATUS";
2319
+ FlowType3["CO_PAY"] = "CO_PAY";
2320
+ FlowType3["INDIVIDUAL_DISCOUNT"] = "INDIVIDUAL_DISCOUNT";
2321
+ FlowType3["OVERALL_DISCOUNT"] = "OVERALL_DISCOUNT";
2322
+ FlowType3["SPECIAL_DISCOUNT"] = "SPECIAL_DISCOUNT";
2323
+ FlowType3["REFUND"] = "REFUND";
2324
2324
  return FlowType3;
2325
2325
  })(FlowType || {});
2326
2326
  var ActionMode = /* @__PURE__ */ ((ActionMode2) => {
@@ -2372,7 +2372,7 @@ var approvalRepository = (helpers) => {
2372
2372
  startDate,
2373
2373
  endDate,
2374
2374
  searchText = "",
2375
- status = [0 /* PENDING */, 1 /* PARTIALLY_APPROVED */],
2375
+ status = ["PENDING" /* PENDING */, "PARTIALLY_APPROVED" /* PARTIALLY_APPROVED */],
2376
2376
  flowType
2377
2377
  }) {
2378
2378
  const offset = (pageNo - 1) * pageSize;
@@ -2541,7 +2541,7 @@ var ApprovalService = class {
2541
2541
  return s.stepType === "NORMAL" || s.stepType === "MIN_MAX" && Number(inst.netTotal) >= Number(s.minAmount) && Number(inst.netTotal) <= Number(s.maxAmount);
2542
2542
  });
2543
2543
  const lastLevel = await this.lastLevel(inst.flow.steps);
2544
- const newStatus = action === "REJECT" ? 3 /* REJECTED */ : step.level === lastLevel ? 2 /* APPROVED */ : 1 /* PARTIALLY_APPROVED */;
2544
+ const newStatus = action === "REJECT" ? "REJECTED" /* REJECTED */ : step.level === lastLevel ? "APPROVED" /* APPROVED */ : "PARTIALLY_APPROVED" /* PARTIALLY_APPROVED */;
2545
2545
  await tx.approvalAction.create({
2546
2546
  data: {
2547
2547
  instanceId,
@@ -2552,7 +2552,7 @@ var ApprovalService = class {
2552
2552
  }
2553
2553
  });
2554
2554
  let newFlow = null;
2555
- if (newStatus === 1 /* PARTIALLY_APPROVED */) {
2555
+ if (newStatus === "PARTIALLY_APPROVED" /* PARTIALLY_APPROVED */) {
2556
2556
  newFlow = await this.approvalRepo.findMatchingFlow(
2557
2557
  tx,
2558
2558
  inst.flow.subjectType,
@@ -2568,7 +2568,7 @@ var ApprovalService = class {
2568
2568
  const updated = await tx.approvalInstance.update({
2569
2569
  where: { id: instanceId },
2570
2570
  data: {
2571
- currentStep: newStatus === 1 /* PARTIALLY_APPROVED */ ? newFlow?.stepId : step.id,
2571
+ currentStep: newStatus === "PARTIALLY_APPROVED" /* PARTIALLY_APPROVED */ ? newFlow?.stepId : step.id,
2572
2572
  status: newStatus
2573
2573
  }
2574
2574
  });
@@ -2589,7 +2589,7 @@ var ApprovalService = class {
2589
2589
  action,
2590
2590
  comment
2591
2591
  });
2592
- if (newStatus === 1 /* PARTIALLY_APPROVED */) {
2592
+ if (newStatus === "PARTIALLY_APPROVED" /* PARTIALLY_APPROVED */) {
2593
2593
  const nextLevel = step.level + 1;
2594
2594
  const approvers = await tx.approverMapping.findMany({
2595
2595
  where: { stepId: updated.currentStep, ccId, isActive: true }
@@ -2685,7 +2685,7 @@ var ApprovalService = class {
2685
2685
  });
2686
2686
  } else {
2687
2687
  switch (instance.status) {
2688
- case 2 /* APPROVED */:
2688
+ case "APPROVED" /* APPROVED */:
2689
2689
  if (approvalFlow.approveActionUrl) {
2690
2690
  const res = await fetch(approvalFlow.approveActionUrl, {
2691
2691
  method: "POST",
@@ -2703,7 +2703,7 @@ var ApprovalService = class {
2703
2703
  }
2704
2704
  }
2705
2705
  break;
2706
- case 3 /* REJECTED */:
2706
+ case "REJECTED" /* REJECTED */:
2707
2707
  if (approvalFlow.rejectActionUrl) {
2708
2708
  const res = await fetch(approvalFlow.rejectActionUrl, {
2709
2709
  method: "POST",
@@ -2716,7 +2716,7 @@ var ApprovalService = class {
2716
2716
  }
2717
2717
  }
2718
2718
  break;
2719
- case 1 /* PARTIALLY_APPROVED */:
2719
+ case "PARTIALLY_APPROVED" /* PARTIALLY_APPROVED */:
2720
2720
  if (approvalFlow.partiallyApproveActionUrl) {
2721
2721
  const res = await fetch(approvalFlow.partiallyApproveActionUrl, {
2722
2722
  method: "POST",
@@ -2739,59 +2739,57 @@ var ApprovalService = class {
2739
2739
  }
2740
2740
  }
2741
2741
  async assertPermission(step, approverId, instanceId, ccId, tx) {
2742
- const result = await tx.$queryRaw(`
2743
- SELECT COUNT(*) AS count
2744
- FROM (
2745
- SELECT am.staff_id AS staff_id
2746
- FROM core_approver_mapping am
2747
- WHERE am.step_id = ${step.id}
2748
- AND am.is_active = TRUE
2749
- AND am.cc_id = ${ccId}
2750
- AND am.staff_id = ${approverId}
2742
+ const result = await tx.$queryRaw`
2743
+ SELECT COUNT(*) AS count
2744
+ FROM (
2745
+ SELECT am.staff_id AS staff_id
2746
+ FROM core_approver_mapping am
2747
+ WHERE am.step_id = ${step.id}
2748
+ AND am.is_active = TRUE
2749
+ AND am.cc_id = ${ccId}
2750
+ AND am.staff_id = ${approverId}
2751
2751
 
2752
- UNION
2752
+ UNION
2753
2753
 
2754
- SELECT scc.staff_id AS staff_id
2755
- FROM core_approver_mapping am
2756
- LEFT JOIN staff_roles sr
2757
- ON sr.role_id = am.role_id
2758
- LEFT JOIN staff_collection_center scc
2759
- ON scc.collection_center_id = am.cc_id
2760
- AND scc.staff_id = sr.staff_id
2761
- WHERE am.step_id = ${step.id}
2762
- AND am.is_active = TRUE
2763
- AND am.cc_id = ${ccId}
2764
- AND scc.staff_id = ${approverId}
2765
- ) AS staff_union;
2766
- `);
2754
+ SELECT scc.staff_id AS staff_id
2755
+ FROM core_approver_mapping am
2756
+ LEFT JOIN staff_roles sr
2757
+ ON sr.role_id = am.role_id
2758
+ LEFT JOIN staff_collection_center scc
2759
+ ON scc.collection_center_id = am.cc_id
2760
+ AND scc.staff_id = sr.staff_id
2761
+ WHERE am.step_id = ${step.id}
2762
+ AND am.is_active = TRUE
2763
+ AND am.cc_id = ${ccId}
2764
+ AND scc.staff_id = ${approverId}
2765
+ ) AS staff_union;
2766
+ `;
2767
2767
  if (Number(result[0].count) === 0) {
2768
2768
  throw new this.deps.helpers.ErrorHandler(403, "You are not allowed to act on this approval step");
2769
2769
  }
2770
- const existingActsQuery = `
2771
- SELECT COUNT(*) AS count
2772
- FROM core_approval_action a
2773
- JOIN core_approval_instance ai ON ai.id = a.instance_id
2774
- WHERE ai.id = ?
2775
- AND a.level = ?
2776
- AND a.acted_by = ?
2777
- AND a.is_active = true
2778
- AND ai.is_active = true
2779
- `;
2780
- const actionsResult = await tx.$queryRawUnsafe(existingActsQuery, instanceId, step.level, approverId);
2770
+ const actionsResult = await tx.$queryRaw`
2771
+ SELECT COUNT(*) AS count
2772
+ FROM core_approval_action a
2773
+ JOIN core_approval_instance ai ON ai.id = a.instance_id
2774
+ WHERE ai.id = ${instanceId}
2775
+ AND a.level = ${step.level}
2776
+ AND a.acted_by = ${approverId}
2777
+ AND a.is_active = true
2778
+ AND ai.is_active = true
2779
+ `;
2781
2780
  if (Number(actionsResult[0].count) > 0) {
2782
2781
  throw new this.deps.helpers.ErrorHandler(409, "You have already submitted a decision for this level");
2783
2782
  }
2784
- const prevApproversQuery = `
2785
- SELECT COUNT(*) AS count
2786
- FROM core_approval_action a
2787
- JOIN core_approval_instance ai ON ai.id = a.instance_id
2788
- WHERE ai.id = ?
2789
- AND a.level < ?
2790
- AND a.is_active = true
2791
- AND ai.is_active = true
2792
- AND a.acted_by IS NOT NULL
2793
- `;
2794
- const prevActionsResult = await tx.$queryRawUnsafe(prevApproversQuery, instanceId, step.level);
2783
+ const prevActionsResult = await tx.$queryRaw`
2784
+ SELECT COUNT(*) AS count
2785
+ FROM core_approval_action a
2786
+ JOIN core_approval_instance ai ON ai.id = a.instance_id
2787
+ WHERE ai.id = ${instanceId}
2788
+ AND a.level < ${step.level}
2789
+ AND a.is_active = true
2790
+ AND ai.is_active = true
2791
+ AND a.acted_by IS NOT NULL
2792
+ `;
2795
2793
  if (Number(prevActionsResult[0].count) !== step.level - 1) {
2796
2794
  throw new this.deps.helpers.ErrorHandler(403, "You must wait for previous approvers to act first");
2797
2795
  }
package/dist/index.mjs CHANGED
@@ -2246,20 +2246,20 @@ var commonService = (serviceDeps) => {
2246
2246
 
2247
2247
  // src/types/approval.type.ts
2248
2248
  var ApprovalStatus = /* @__PURE__ */ ((ApprovalStatus2) => {
2249
- ApprovalStatus2[ApprovalStatus2["PENDING"] = 0] = "PENDING";
2250
- ApprovalStatus2[ApprovalStatus2["PARTIALLY_APPROVED"] = 1] = "PARTIALLY_APPROVED";
2251
- ApprovalStatus2[ApprovalStatus2["APPROVED"] = 2] = "APPROVED";
2252
- ApprovalStatus2[ApprovalStatus2["REJECTED"] = 3] = "REJECTED";
2253
- ApprovalStatus2[ApprovalStatus2["CANCELLED"] = 4] = "CANCELLED";
2249
+ ApprovalStatus2["PENDING"] = "PENDING";
2250
+ ApprovalStatus2["PARTIALLY_APPROVED"] = "PARTIALLY_APPROVED";
2251
+ ApprovalStatus2["APPROVED"] = "APPROVED";
2252
+ ApprovalStatus2["REJECTED"] = "REJECTED";
2253
+ ApprovalStatus2["CANCELLED"] = "CANCELLED";
2254
2254
  return ApprovalStatus2;
2255
2255
  })(ApprovalStatus || {});
2256
2256
  var FlowType = /* @__PURE__ */ ((FlowType3) => {
2257
- FlowType3[FlowType3["STATUS"] = 0] = "STATUS";
2258
- FlowType3[FlowType3["CO_PAY"] = 1] = "CO_PAY";
2259
- FlowType3[FlowType3["INDIVIDUAL_DISCOUNT"] = 2] = "INDIVIDUAL_DISCOUNT";
2260
- FlowType3[FlowType3["OVERALL_DISCOUNT"] = 3] = "OVERALL_DISCOUNT";
2261
- FlowType3[FlowType3["SPECIAL_DISCOUNT"] = 4] = "SPECIAL_DISCOUNT";
2262
- FlowType3[FlowType3["REFUND"] = 5] = "REFUND";
2257
+ FlowType3["STATUS"] = "STATUS";
2258
+ FlowType3["CO_PAY"] = "CO_PAY";
2259
+ FlowType3["INDIVIDUAL_DISCOUNT"] = "INDIVIDUAL_DISCOUNT";
2260
+ FlowType3["OVERALL_DISCOUNT"] = "OVERALL_DISCOUNT";
2261
+ FlowType3["SPECIAL_DISCOUNT"] = "SPECIAL_DISCOUNT";
2262
+ FlowType3["REFUND"] = "REFUND";
2263
2263
  return FlowType3;
2264
2264
  })(FlowType || {});
2265
2265
  var ActionMode = /* @__PURE__ */ ((ActionMode2) => {
@@ -2311,7 +2311,7 @@ var approvalRepository = (helpers) => {
2311
2311
  startDate,
2312
2312
  endDate,
2313
2313
  searchText = "",
2314
- status = [0 /* PENDING */, 1 /* PARTIALLY_APPROVED */],
2314
+ status = ["PENDING" /* PENDING */, "PARTIALLY_APPROVED" /* PARTIALLY_APPROVED */],
2315
2315
  flowType
2316
2316
  }) {
2317
2317
  const offset = (pageNo - 1) * pageSize;
@@ -2480,7 +2480,7 @@ var ApprovalService = class {
2480
2480
  return s.stepType === "NORMAL" || s.stepType === "MIN_MAX" && Number(inst.netTotal) >= Number(s.minAmount) && Number(inst.netTotal) <= Number(s.maxAmount);
2481
2481
  });
2482
2482
  const lastLevel = await this.lastLevel(inst.flow.steps);
2483
- const newStatus = action === "REJECT" ? 3 /* REJECTED */ : step.level === lastLevel ? 2 /* APPROVED */ : 1 /* PARTIALLY_APPROVED */;
2483
+ const newStatus = action === "REJECT" ? "REJECTED" /* REJECTED */ : step.level === lastLevel ? "APPROVED" /* APPROVED */ : "PARTIALLY_APPROVED" /* PARTIALLY_APPROVED */;
2484
2484
  await tx.approvalAction.create({
2485
2485
  data: {
2486
2486
  instanceId,
@@ -2491,7 +2491,7 @@ var ApprovalService = class {
2491
2491
  }
2492
2492
  });
2493
2493
  let newFlow = null;
2494
- if (newStatus === 1 /* PARTIALLY_APPROVED */) {
2494
+ if (newStatus === "PARTIALLY_APPROVED" /* PARTIALLY_APPROVED */) {
2495
2495
  newFlow = await this.approvalRepo.findMatchingFlow(
2496
2496
  tx,
2497
2497
  inst.flow.subjectType,
@@ -2507,7 +2507,7 @@ var ApprovalService = class {
2507
2507
  const updated = await tx.approvalInstance.update({
2508
2508
  where: { id: instanceId },
2509
2509
  data: {
2510
- currentStep: newStatus === 1 /* PARTIALLY_APPROVED */ ? newFlow?.stepId : step.id,
2510
+ currentStep: newStatus === "PARTIALLY_APPROVED" /* PARTIALLY_APPROVED */ ? newFlow?.stepId : step.id,
2511
2511
  status: newStatus
2512
2512
  }
2513
2513
  });
@@ -2528,7 +2528,7 @@ var ApprovalService = class {
2528
2528
  action,
2529
2529
  comment
2530
2530
  });
2531
- if (newStatus === 1 /* PARTIALLY_APPROVED */) {
2531
+ if (newStatus === "PARTIALLY_APPROVED" /* PARTIALLY_APPROVED */) {
2532
2532
  const nextLevel = step.level + 1;
2533
2533
  const approvers = await tx.approverMapping.findMany({
2534
2534
  where: { stepId: updated.currentStep, ccId, isActive: true }
@@ -2624,7 +2624,7 @@ var ApprovalService = class {
2624
2624
  });
2625
2625
  } else {
2626
2626
  switch (instance.status) {
2627
- case 2 /* APPROVED */:
2627
+ case "APPROVED" /* APPROVED */:
2628
2628
  if (approvalFlow.approveActionUrl) {
2629
2629
  const res = await fetch(approvalFlow.approveActionUrl, {
2630
2630
  method: "POST",
@@ -2642,7 +2642,7 @@ var ApprovalService = class {
2642
2642
  }
2643
2643
  }
2644
2644
  break;
2645
- case 3 /* REJECTED */:
2645
+ case "REJECTED" /* REJECTED */:
2646
2646
  if (approvalFlow.rejectActionUrl) {
2647
2647
  const res = await fetch(approvalFlow.rejectActionUrl, {
2648
2648
  method: "POST",
@@ -2655,7 +2655,7 @@ var ApprovalService = class {
2655
2655
  }
2656
2656
  }
2657
2657
  break;
2658
- case 1 /* PARTIALLY_APPROVED */:
2658
+ case "PARTIALLY_APPROVED" /* PARTIALLY_APPROVED */:
2659
2659
  if (approvalFlow.partiallyApproveActionUrl) {
2660
2660
  const res = await fetch(approvalFlow.partiallyApproveActionUrl, {
2661
2661
  method: "POST",
@@ -2678,59 +2678,57 @@ var ApprovalService = class {
2678
2678
  }
2679
2679
  }
2680
2680
  async assertPermission(step, approverId, instanceId, ccId, tx) {
2681
- const result = await tx.$queryRaw(`
2682
- SELECT COUNT(*) AS count
2683
- FROM (
2684
- SELECT am.staff_id AS staff_id
2685
- FROM core_approver_mapping am
2686
- WHERE am.step_id = ${step.id}
2687
- AND am.is_active = TRUE
2688
- AND am.cc_id = ${ccId}
2689
- AND am.staff_id = ${approverId}
2681
+ const result = await tx.$queryRaw`
2682
+ SELECT COUNT(*) AS count
2683
+ FROM (
2684
+ SELECT am.staff_id AS staff_id
2685
+ FROM core_approver_mapping am
2686
+ WHERE am.step_id = ${step.id}
2687
+ AND am.is_active = TRUE
2688
+ AND am.cc_id = ${ccId}
2689
+ AND am.staff_id = ${approverId}
2690
2690
 
2691
- UNION
2691
+ UNION
2692
2692
 
2693
- SELECT scc.staff_id AS staff_id
2694
- FROM core_approver_mapping am
2695
- LEFT JOIN staff_roles sr
2696
- ON sr.role_id = am.role_id
2697
- LEFT JOIN staff_collection_center scc
2698
- ON scc.collection_center_id = am.cc_id
2699
- AND scc.staff_id = sr.staff_id
2700
- WHERE am.step_id = ${step.id}
2701
- AND am.is_active = TRUE
2702
- AND am.cc_id = ${ccId}
2703
- AND scc.staff_id = ${approverId}
2704
- ) AS staff_union;
2705
- `);
2693
+ SELECT scc.staff_id AS staff_id
2694
+ FROM core_approver_mapping am
2695
+ LEFT JOIN staff_roles sr
2696
+ ON sr.role_id = am.role_id
2697
+ LEFT JOIN staff_collection_center scc
2698
+ ON scc.collection_center_id = am.cc_id
2699
+ AND scc.staff_id = sr.staff_id
2700
+ WHERE am.step_id = ${step.id}
2701
+ AND am.is_active = TRUE
2702
+ AND am.cc_id = ${ccId}
2703
+ AND scc.staff_id = ${approverId}
2704
+ ) AS staff_union;
2705
+ `;
2706
2706
  if (Number(result[0].count) === 0) {
2707
2707
  throw new this.deps.helpers.ErrorHandler(403, "You are not allowed to act on this approval step");
2708
2708
  }
2709
- const existingActsQuery = `
2710
- SELECT COUNT(*) AS count
2711
- FROM core_approval_action a
2712
- JOIN core_approval_instance ai ON ai.id = a.instance_id
2713
- WHERE ai.id = ?
2714
- AND a.level = ?
2715
- AND a.acted_by = ?
2716
- AND a.is_active = true
2717
- AND ai.is_active = true
2718
- `;
2719
- const actionsResult = await tx.$queryRawUnsafe(existingActsQuery, instanceId, step.level, approverId);
2709
+ const actionsResult = await tx.$queryRaw`
2710
+ SELECT COUNT(*) AS count
2711
+ FROM core_approval_action a
2712
+ JOIN core_approval_instance ai ON ai.id = a.instance_id
2713
+ WHERE ai.id = ${instanceId}
2714
+ AND a.level = ${step.level}
2715
+ AND a.acted_by = ${approverId}
2716
+ AND a.is_active = true
2717
+ AND ai.is_active = true
2718
+ `;
2720
2719
  if (Number(actionsResult[0].count) > 0) {
2721
2720
  throw new this.deps.helpers.ErrorHandler(409, "You have already submitted a decision for this level");
2722
2721
  }
2723
- const prevApproversQuery = `
2724
- SELECT COUNT(*) AS count
2725
- FROM core_approval_action a
2726
- JOIN core_approval_instance ai ON ai.id = a.instance_id
2727
- WHERE ai.id = ?
2728
- AND a.level < ?
2729
- AND a.is_active = true
2730
- AND ai.is_active = true
2731
- AND a.acted_by IS NOT NULL
2732
- `;
2733
- const prevActionsResult = await tx.$queryRawUnsafe(prevApproversQuery, instanceId, step.level);
2722
+ const prevActionsResult = await tx.$queryRaw`
2723
+ SELECT COUNT(*) AS count
2724
+ FROM core_approval_action a
2725
+ JOIN core_approval_instance ai ON ai.id = a.instance_id
2726
+ WHERE ai.id = ${instanceId}
2727
+ AND a.level < ${step.level}
2728
+ AND a.is_active = true
2729
+ AND ai.is_active = true
2730
+ AND a.acted_by IS NOT NULL
2731
+ `;
2734
2732
  if (Number(prevActionsResult[0].count) !== step.level - 1) {
2735
2733
  throw new this.deps.helpers.ErrorHandler(403, "You must wait for previous approvers to act first");
2736
2734
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "av6-core",
3
- "version": "1.8.4",
3
+ "version": "1.8.6",
4
4
  "main": "dist/index.js",
5
5
  "module": "dist/index.mjs",
6
6
  "types": "dist/index.d.ts",