diff --git a/famis_client.ts b/famis_client.ts index 64af1f6..72f59b0 100644 --- a/famis_client.ts +++ b/famis_client.ts @@ -105,6 +105,7 @@ import { SpaceSubCategory, State, SubSpace, + TimeCardConfiguration, TimeZone, TrackingCode, Udf, UdfField, @@ -149,6 +150,7 @@ import { PostLaborEntryRequest, PostMaterialCostRequest, PostOtherCostRequest, + PostTimecardEntryRequest, PostUdfForWoRequest, PostWorkOrderRequest, PriceAdjustmentTransactionRequest, @@ -1369,8 +1371,27 @@ export class FamisClient { const entity = `users(${userId})/ApproveTimeCard`; return this.createObject(postRequest, entity); } + //#endregion + + //Region Timecard Entries + async getTimecardEntries(context: QueryContext): Promise> { + return this.getAll(context, 'timecardentries'); + } - //LaborEntryApprovalRequest + async createTimecardEntry(timecardEntry: PostTimecardEntryRequest): Promise { + return this.createObject(timecardEntry, 'timecardentries'); + } + + async updateTimecardEntry( + laborId: string, + patchRequest: PostTimecardEntryRequest + ): Promise { + return this.patchObject(patchRequest, 'timecardentries', laborId); + } + + async getTimecardConfiguration(context: QueryContext): Promise> { + return this.getAll(context, 'timecardconfigurations'); + } //#endregion diff --git a/model/famis_models.ts b/model/famis_models.ts index 100e5fb..ef51d57 100644 --- a/model/famis_models.ts +++ b/model/famis_models.ts @@ -3407,3 +3407,21 @@ export interface TimeZone { Default: boolean; } +export interface TimeCardConfiguration { + Id: number; + TeTimecardCostCenterFlag: boolean; + TeTimecardAccountsFlag: boolean; + TeTimecardWoactivityFlag: boolean; + TeTimecardValidateWoFlag: boolean; + TeTimecardStartEndTimeFlag: boolean; + TeTimecardDtHoursFlag: boolean; + TeTimecardRegularHoursLimit: number; + TeTimecardOtHoursLimit: number; + TeTimecardDtHoursLimit: number; + TeManagerSecurityFlag: boolean; + TransactionId: number; + TeTimecardLrFlag: number; + ApprovalNotificationsFlag: boolean; + NotifyEmployeeOnNoApprover: boolean | null; +} + diff --git a/model/request_models.ts b/model/request_models.ts index 731070e..07d3620 100644 --- a/model/request_models.ts +++ b/model/request_models.ts @@ -810,6 +810,26 @@ export interface PostLaborEntryRequest { LaborReasonId?: number; } +export interface PostTimecardEntryRequest { + TotalHours?: number; + TimeType?: string; + ActivityId?: number; + ActivityExternalId?: string; + Comments?: string; + PropertyId?: number; + UserId?: number; + UserExternalId?: string; + EntryDate?: Date; + CrewId?: number; + CrewExternalId?: string; + StartTime?: Date; + EndTime?: Date; + PositionId?: number; + PositionExternalId?: string; + LaborReasonId?: number; +} + + export interface LaborEntryApprovalRequest { LaborEntryIds: number[]; LaborEntryComment?: string; diff --git a/package.json b/package.json index 7b73e6e..7aaa1a7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "facility360", - "version": "1.1.1", + "version": "1.1.2", "description": "A Node based 360Facility client SDK", "main": "dist/index.js", "scripts": {