@fabriktor/fx 0.0.124 → 0.0.125

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.
@@ -1,5 +1,5 @@
1
1
  import type { BillableOperator, PayrollsOperator, QueryOptions } from "@fabriktor/client";
2
- import { ColPayrollsPayrolls, ColPayrollsHourBanks, ColPayrollsPayables, ColPayrollsAdjustments, ColPayrollsAdjustmentFolders, ColPayrollsPayConfigs, ColPayrollsEmployeePayConfigs, ColPayrollsAdjustmentRecords, ColPayrollsAdjustmentAggregates, ColPayrollsPayrollPrograms, type Payroll, type HourBank, type Payable, type Adjustment, type AdjustmentFolder, type PayConfig, type EmployeePayConfig, type AdjustmentRecord, type AdjustmentAggregate, type PayrollProgram, type InPayroll, type InAdjustment, type InAdjustmentFolder, type InPayConfig, type InEmployeePayConfig, type InPayrollProgram, type InAdjustmentAggregate, type PLPayrollsGeneratePayrollFromEntities, type InDate, type Period } from "@fabriktor/schema";
2
+ import { ColPayrollsPayrolls, ColPayrollsHourBanks, ColPayrollsPayables, ColPayrollsAdjustments, ColPayrollsAdjustmentFolders, ColPayrollsPayConfigs, ColPayrollsEmployeePayConfigs, ColPayrollsAdjustmentRecords, ColPayrollsAdjustmentAggregates, ColPayrollsPayrollPrograms, type Payroll, type HourBank, type Payable, type Adjustment, type AdjustmentFolder, type PayConfig, type EmployeePayConfig, type AdjustmentRecord, type AdjustmentAggregate, type PayrollProgram, type InPayroll, type InAdjustment, type InAdjustmentFolder, type InPayConfig, type InEmployeePayConfig, type InPayrollProgram, type InAdjustmentAggregate, type PLPayrollsGeneratePayrollFromEntities, type InDate, type Period, type Folder } from "@fabriktor/schema";
3
3
  import type { EmploymentActor, EmploymentReadContext } from "../contacts/scope.js";
4
4
  import { type SearchOptions, type SearchPage } from "../core/search.js";
5
5
  import type { MultiCreateAttempt } from "../core/multi-create.js";
@@ -87,12 +87,12 @@ export declare const payrollPolicies: {
87
87
  report: boolean;
88
88
  };
89
89
  adjustment_folders: {
90
+ archive: false;
91
+ remove: true;
90
92
  filters: "is_archived"[];
91
93
  employee_read: boolean;
92
94
  searchable: boolean;
93
95
  create: boolean;
94
- archive: boolean;
95
- remove: boolean;
96
96
  report: boolean;
97
97
  };
98
98
  pay_configs: {
@@ -204,6 +204,7 @@ export declare class PayrollsWorkspace {
204
204
  private adjustments;
205
205
  private config;
206
206
  private validateCommand;
207
+ updateFolder(actor: EmploymentActor, id: string, input: Folder): Promise<AdjustmentFolder>;
207
208
  setArchived(actor: EmploymentActor, resource: PayrollResource, record: PayrollRecord, value: boolean): Promise<void>;
208
209
  setEnabled(actor: EmploymentActor, record: PayrollProgram, is_enabled: boolean): Promise<void>;
209
210
  remove(actor: EmploymentActor, resource: PayrollResource, record: PayrollRecord): Promise<void>;
@@ -31,7 +31,7 @@ const catalog = {
31
31
  create: true,
32
32
  archive: true,
33
33
  };
34
- // The service README and record Rules() define this capability/filter table.
34
+ // Service routes, record behavior and Rules() define this capability/filter table.
35
35
  // A generic CRUD method in the client is not permission to edit an immutable record.
36
36
  export const payrollPolicies = {
37
37
  [PayrollResource.Payrolls]: {
@@ -82,7 +82,12 @@ export const payrollPolicies = {
82
82
  "is_archived",
83
83
  ],
84
84
  },
85
- [PayrollResource.Folders]: { ...catalog, filters: ["is_archived"] },
85
+ [PayrollResource.Folders]: {
86
+ ...catalog,
87
+ archive: false,
88
+ remove: true,
89
+ filters: ["is_archived"],
90
+ },
86
91
  [PayrollResource.PayConfigs]: {
87
92
  ...catalog,
88
93
  filters: ["type", "name", "currency", "is_archived"],
@@ -483,6 +488,19 @@ export class PayrollsWorkspace {
483
488
  break;
484
489
  }
485
490
  }
491
+ async updateFolder(actor, id, input) {
492
+ await this.owned(actor, PayrollResource.Folders, id);
493
+ const folder_name = input.folder_name.trim();
494
+ requirePayroll(folder_name, "invalid");
495
+ await this.payrolls.replaceOneAdjustmentFolder({
496
+ id,
497
+ in: {
498
+ folder_name,
499
+ folder_description: input.folder_description.trim(),
500
+ },
501
+ });
502
+ return this.owned(actor, PayrollResource.Folders, id);
503
+ }
486
504
  async setArchived(actor, resource, record, value) {
487
505
  requirePayroll(payrollCanManage(actor, record) && payrollPolicies[resource].archive, "access");
488
506
  await this.owned(actor, resource, record.id);
@@ -491,9 +509,6 @@ export class PayrollsWorkspace {
491
509
  case PayrollResource.Adjustments:
492
510
  await this.payrolls.replaceOneAdjustment(opts);
493
511
  break;
494
- case PayrollResource.Folders:
495
- await this.payrolls.replaceOneAdjustmentFolder(opts);
496
- break;
497
512
  case PayrollResource.PayConfigs:
498
513
  await this.payrolls.replaceOnePayConfig(opts);
499
514
  break;
@@ -518,5 +533,7 @@ export class PayrollsWorkspace {
518
533
  await this.payrolls.deleteOnePayroll({ id: record.id });
519
534
  else if (resource === PayrollResource.Programs)
520
535
  await this.payrolls.deleteOnePayrollProgram({ id: record.id });
536
+ else if (resource === PayrollResource.Folders)
537
+ await this.payrolls.deleteOneAdjustmentFolder({ id: record.id });
521
538
  }
522
539
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fabriktor/fx",
3
- "version": "0.0.124",
3
+ "version": "0.0.125",
4
4
  "description": "![Fabriktor Logo](./img/fabriktor-character.gif)",
5
5
  "type": "module",
6
6
  "exports": {