@hed-hog/operations 0.0.306 → 0.0.310
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/controllers/operations-approvals.controller.d.ts +114 -1
- package/dist/controllers/operations-approvals.controller.d.ts.map +1 -1
- package/dist/controllers/operations-approvals.controller.js +16 -3
- package/dist/controllers/operations-approvals.controller.js.map +1 -1
- package/dist/controllers/operations-collaborators.controller.d.ts +16 -1
- package/dist/controllers/operations-collaborators.controller.d.ts.map +1 -1
- package/dist/controllers/operations-collaborators.controller.js +16 -3
- package/dist/controllers/operations-collaborators.controller.js.map +1 -1
- package/dist/controllers/operations-contracts.controller.d.ts +14 -453
- package/dist/controllers/operations-contracts.controller.d.ts.map +1 -1
- package/dist/controllers/operations-contracts.controller.js +11 -112
- package/dist/controllers/operations-contracts.controller.js.map +1 -1
- package/dist/controllers/operations-org-structure.controller.d.ts +65 -2
- package/dist/controllers/operations-org-structure.controller.d.ts.map +1 -1
- package/dist/controllers/operations-org-structure.controller.js +18 -5
- package/dist/controllers/operations-org-structure.controller.js.map +1 -1
- package/dist/controllers/operations-projects.controller.d.ts +28 -4
- package/dist/controllers/operations-projects.controller.d.ts.map +1 -1
- package/dist/controllers/operations-projects.controller.js +17 -5
- package/dist/controllers/operations-projects.controller.js.map +1 -1
- package/dist/controllers/operations-timesheets.controller.d.ts +31 -4
- package/dist/controllers/operations-timesheets.controller.d.ts.map +1 -1
- package/dist/controllers/operations-timesheets.controller.js +16 -11
- package/dist/controllers/operations-timesheets.controller.js.map +1 -1
- package/dist/dto/list-approvals.dto.d.ts +6 -0
- package/dist/dto/list-approvals.dto.d.ts.map +1 -0
- package/dist/dto/list-approvals.dto.js +28 -0
- package/dist/dto/list-approvals.dto.js.map +1 -0
- package/dist/dto/list-collaborator-types.dto.d.ts +3 -1
- package/dist/dto/list-collaborator-types.dto.d.ts.map +1 -1
- package/dist/dto/list-collaborator-types.dto.js +7 -1
- package/dist/dto/list-collaborator-types.dto.js.map +1 -1
- package/dist/dto/list-collaborators.dto.d.ts +1 -0
- package/dist/dto/list-collaborators.dto.d.ts.map +1 -1
- package/dist/dto/list-collaborators.dto.js +5 -0
- package/dist/dto/list-collaborators.dto.js.map +1 -1
- package/dist/dto/list-contracts.dto.d.ts +8 -0
- package/dist/dto/list-contracts.dto.d.ts.map +1 -0
- package/dist/dto/list-contracts.dto.js +38 -0
- package/dist/dto/list-contracts.dto.js.map +1 -0
- package/dist/dto/list-departments.dto.d.ts +5 -0
- package/dist/dto/list-departments.dto.d.ts.map +1 -0
- package/dist/dto/list-departments.dto.js +23 -0
- package/dist/dto/list-departments.dto.js.map +1 -0
- package/dist/dto/list-projects.dto.d.ts +5 -0
- package/dist/dto/list-projects.dto.d.ts.map +1 -0
- package/dist/dto/list-projects.dto.js +23 -0
- package/dist/dto/list-projects.dto.js.map +1 -0
- package/dist/dto/list-schedule-adjustments.dto.d.ts +5 -0
- package/dist/dto/list-schedule-adjustments.dto.d.ts.map +1 -0
- package/dist/dto/list-schedule-adjustments.dto.js +23 -0
- package/dist/dto/list-schedule-adjustments.dto.js.map +1 -0
- package/dist/dto/list-time-off-requests.dto.d.ts +5 -0
- package/dist/dto/list-time-off-requests.dto.d.ts.map +1 -0
- package/dist/dto/list-time-off-requests.dto.js +23 -0
- package/dist/dto/list-time-off-requests.dto.js.map +1 -0
- package/dist/dto/list-timesheets.dto.d.ts +5 -0
- package/dist/dto/list-timesheets.dto.d.ts.map +1 -0
- package/dist/dto/list-timesheets.dto.js +23 -0
- package/dist/dto/list-timesheets.dto.js.map +1 -0
- package/dist/dto/reorder-collaborator-types.dto.d.ts +4 -0
- package/dist/dto/reorder-collaborator-types.dto.d.ts.map +1 -0
- package/dist/dto/reorder-collaborator-types.dto.js +25 -0
- package/dist/dto/reorder-collaborator-types.dto.js.map +1 -0
- package/dist/operations.service.d.ts +340 -271
- package/dist/operations.service.d.ts.map +1 -1
- package/dist/operations.service.js +1007 -1043
- package/dist/operations.service.js.map +1 -1
- package/dist/operations.service.spec.js +0 -22
- package/dist/operations.service.spec.js.map +1 -1
- package/hedhog/data/menu.yaml +0 -36
- package/hedhog/data/route.yaml +42 -73
- package/hedhog/frontend/app/_components/collaborator-form-screen.tsx.ejs +8 -1
- package/hedhog/frontend/app/_components/collaborator-select-with-create.tsx.ejs +15 -10
- package/hedhog/frontend/app/_components/contract-details-screen.tsx.ejs +108 -213
- package/hedhog/frontend/app/_components/contract-form-screen.tsx.ejs +251 -2039
- package/hedhog/frontend/app/_components/project-details-screen.tsx.ejs +167 -60
- package/hedhog/frontend/app/_components/project-form-screen.tsx.ejs +70 -301
- package/hedhog/frontend/app/_components/system-user-select-with-create.tsx.ejs +102 -51
- package/hedhog/frontend/app/_lib/types.ts.ejs +19 -24
- package/hedhog/frontend/app/_lib/utils/format.ts.ejs +14 -9
- package/hedhog/frontend/app/approvals/page.tsx.ejs +842 -150
- package/hedhog/frontend/app/collaborator-types/page.tsx.ejs +445 -153
- package/hedhog/frontend/app/collaborators/page.tsx.ejs +118 -49
- package/hedhog/frontend/app/contracts/[id]/page.tsx.ejs +2 -2
- package/hedhog/frontend/app/contracts/page.tsx.ejs +215 -617
- package/hedhog/frontend/app/departments/page.tsx.ejs +257 -113
- package/hedhog/frontend/app/projects/page.tsx.ejs +90 -51
- package/hedhog/frontend/app/schedule-adjustments/page.tsx.ejs +412 -147
- package/hedhog/frontend/app/time-off/page.tsx.ejs +400 -123
- package/hedhog/frontend/app/timesheets/page.tsx.ejs +460 -365
- package/hedhog/frontend/messages/en.json +143 -14
- package/hedhog/frontend/messages/pt.json +192 -54
- package/hedhog/table/operations_contract.yaml +0 -9
- package/package.json +4 -4
- package/src/controllers/operations-approvals.controller.ts +9 -3
- package/src/controllers/operations-collaborators.controller.ts +15 -2
- package/src/controllers/operations-contracts.controller.ts +8 -92
- package/src/controllers/operations-org-structure.controller.ts +17 -4
- package/src/controllers/operations-projects.controller.ts +10 -4
- package/src/controllers/operations-timesheets.controller.ts +17 -8
- package/src/dto/list-approvals.dto.ts +12 -0
- package/src/dto/list-collaborator-types.dto.ts +7 -2
- package/src/dto/list-collaborators.dto.ts +4 -0
- package/src/dto/list-contracts.dto.ts +20 -0
- package/src/dto/list-departments.dto.ts +8 -0
- package/src/dto/list-projects.dto.ts +8 -0
- package/src/dto/list-schedule-adjustments.dto.ts +8 -0
- package/src/dto/list-time-off-requests.dto.ts +8 -0
- package/src/dto/list-timesheets.dto.ts +8 -0
- package/src/dto/reorder-collaborator-types.dto.ts +10 -0
- package/src/operations.service.spec.ts +0 -30
- package/src/operations.service.ts +1557 -1806
- package/hedhog/frontend/app/_components/contract-creation-wizard.tsx.ejs +0 -631
- package/hedhog/frontend/app/_components/contract-template-form-screen.tsx.ejs +0 -526
- package/hedhog/frontend/app/_components/contract-template-select-with-create.tsx.ejs +0 -247
- package/hedhog/frontend/app/_components/contract-wizard-sheet.tsx.ejs +0 -3520
- package/hedhog/frontend/app/contracts/templates/page.tsx.ejs +0 -380
- package/hedhog/frontend/app/team/page.tsx.ejs +0 -352
- package/hedhog/table/operations_contract_financial_term.yaml +0 -40
- package/hedhog/table/operations_contract_revision.yaml +0 -38
- package/hedhog/table/operations_contract_signature.yaml +0 -38
- package/hedhog/table/operations_contract_template.yaml +0 -58
|
@@ -84,7 +84,6 @@ type ContractPayload = {
|
|
|
84
84
|
isActive?: boolean;
|
|
85
85
|
accountManagerCollaboratorId?: number | null;
|
|
86
86
|
relatedCollaboratorId?: number | null;
|
|
87
|
-
contractTemplateId?: number | null;
|
|
88
87
|
originType?: 'manual' | 'employee_hiring' | 'client_project' | 'crm_proposal';
|
|
89
88
|
originId?: number | null;
|
|
90
89
|
startDate?: string | null;
|
|
@@ -107,28 +106,6 @@ type ContractPayload = {
|
|
|
107
106
|
phone?: string | null;
|
|
108
107
|
isPrimary?: boolean;
|
|
109
108
|
}>;
|
|
110
|
-
signatures?: Array<{
|
|
111
|
-
signerName: string;
|
|
112
|
-
signerRole?: string | null;
|
|
113
|
-
signerEmail?: string | null;
|
|
114
|
-
status?: 'pending' | 'signed' | 'rejected';
|
|
115
|
-
signedAt?: string | null;
|
|
116
|
-
}>;
|
|
117
|
-
financialTerms?: Array<{
|
|
118
|
-
termType?: 'value' | 'payment' | 'revenue' | 'fine' | 'other';
|
|
119
|
-
label: string;
|
|
120
|
-
amount: number;
|
|
121
|
-
recurrence?: 'one_time' | 'monthly' | 'quarterly' | 'yearly' | 'other';
|
|
122
|
-
dueDay?: number | null;
|
|
123
|
-
notes?: string | null;
|
|
124
|
-
}>;
|
|
125
|
-
revisions?: Array<{
|
|
126
|
-
revisionType?: 'amendment' | 'renewal' | 'revision' | 'addendum' | 'other';
|
|
127
|
-
title: string;
|
|
128
|
-
effectiveDate?: string | null;
|
|
129
|
-
status?: 'draft' | 'active' | 'completed' | 'cancelled';
|
|
130
|
-
summary?: string | null;
|
|
131
|
-
}>;
|
|
132
109
|
replaceUploadedPdfDocument?: {
|
|
133
110
|
fileId?: number | null;
|
|
134
111
|
fileName: string;
|
|
@@ -139,14 +116,6 @@ type ContractPayload = {
|
|
|
139
116
|
extractionSummary?: string | null;
|
|
140
117
|
} | null;
|
|
141
118
|
};
|
|
142
|
-
type ContractDraftPayload = {
|
|
143
|
-
creationMode?: 'blank' | 'template' | 'upload' | 'duplicate' | null;
|
|
144
|
-
templateId?: number | null;
|
|
145
|
-
duplicateFromId?: number | null;
|
|
146
|
-
sourceFileId?: number | null;
|
|
147
|
-
sourceFileName?: string | null;
|
|
148
|
-
sourceMimeType?: string | null;
|
|
149
|
-
};
|
|
150
119
|
type ProposalApprovedEventPayload = {
|
|
151
120
|
proposalId?: number;
|
|
152
121
|
proposalRevisionId?: number | null;
|
|
@@ -206,50 +175,13 @@ type ProposalApprovedEventPayload = {
|
|
|
206
175
|
items?: Array<{
|
|
207
176
|
name?: string | null;
|
|
208
177
|
description?: string | null;
|
|
209
|
-
termType?:
|
|
210
|
-
recurrence?:
|
|
178
|
+
termType?: 'value' | 'payment' | 'revenue' | 'fine' | 'other';
|
|
179
|
+
recurrence?: 'one_time' | 'monthly' | 'quarterly' | 'yearly' | 'other';
|
|
211
180
|
dueDay?: number | null;
|
|
212
181
|
amount?: number | null;
|
|
213
182
|
totalAmountCents?: number | null;
|
|
214
183
|
}>;
|
|
215
184
|
};
|
|
216
|
-
type ContractTemplatePayload = {
|
|
217
|
-
code?: string | null;
|
|
218
|
-
name?: string | null;
|
|
219
|
-
description?: string | null;
|
|
220
|
-
contractCategory?: 'employee' | 'contractor' | 'client' | 'supplier' | 'vendor' | 'partner' | 'internal' | 'other';
|
|
221
|
-
contractType?: 'clt' | 'pj' | 'freelancer_agreement' | 'service_agreement' | 'fixed_term' | 'recurring_service' | 'nda' | 'amendment' | 'addendum' | 'other';
|
|
222
|
-
billingModel?: 'time_and_material' | 'monthly_retainer' | 'fixed_price';
|
|
223
|
-
signatureStatus?: 'not_started' | 'pending' | 'partially_signed' | 'signed' | 'expired';
|
|
224
|
-
isActive?: boolean;
|
|
225
|
-
status?: 'draft' | 'active' | 'inactive' | 'archived';
|
|
226
|
-
contentHtml?: string | null;
|
|
227
|
-
};
|
|
228
|
-
type ContractExtractDraftPayload = {
|
|
229
|
-
contractId?: number | null;
|
|
230
|
-
fileName?: string | null;
|
|
231
|
-
mimeType?: string | null;
|
|
232
|
-
fileContentBase64?: string | null;
|
|
233
|
-
provider?: 'openai' | 'gemini' | null;
|
|
234
|
-
promptMessage?: string | null;
|
|
235
|
-
};
|
|
236
|
-
type ContractGenerateContentPayload = {
|
|
237
|
-
provider?: 'openai' | 'gemini' | null;
|
|
238
|
-
promptMessage?: string | null;
|
|
239
|
-
overwrite?: boolean;
|
|
240
|
-
};
|
|
241
|
-
type ContractLegalReviewPayload = {
|
|
242
|
-
provider?: 'openai' | 'gemini' | null;
|
|
243
|
-
promptMessage?: string | null;
|
|
244
|
-
};
|
|
245
|
-
type ContractLegalReviewResult = {
|
|
246
|
-
summary: string;
|
|
247
|
-
missingFields: string[];
|
|
248
|
-
warnings: string[];
|
|
249
|
-
checklist: string[];
|
|
250
|
-
status: 'ready_for_revision' | 'attention_required';
|
|
251
|
-
reviewedAt: string;
|
|
252
|
-
};
|
|
253
185
|
type ContractProjectSummary = {
|
|
254
186
|
id: number;
|
|
255
187
|
code: string;
|
|
@@ -296,10 +228,6 @@ type ContractDetailRecord = {
|
|
|
296
228
|
billingModel: (typeof BILLING_MODEL_VALUES)[number];
|
|
297
229
|
accountManagerCollaboratorId: number | null;
|
|
298
230
|
relatedCollaboratorId: number | null;
|
|
299
|
-
contractTemplateId: number | null;
|
|
300
|
-
contractTemplateName: string | null;
|
|
301
|
-
contractTemplateSlug: string | null;
|
|
302
|
-
contractTemplateCode: string | null;
|
|
303
231
|
originType: (typeof ORIGIN_TYPE_VALUES)[number];
|
|
304
232
|
originId: number | null;
|
|
305
233
|
startDate: string | null;
|
|
@@ -321,15 +249,11 @@ type ContractDetailsRecord = ContractDetailRecord & {
|
|
|
321
249
|
projects: ContractProjectSummary[];
|
|
322
250
|
scheduleSummary: ContractScheduleDay[];
|
|
323
251
|
parties: NonNullable<ContractPayload['parties']>;
|
|
324
|
-
signatures: NonNullable<ContractPayload['signatures']>;
|
|
325
|
-
financialTerms: NonNullable<ContractPayload['financialTerms']>;
|
|
326
252
|
documents: ContractDocumentRecord[];
|
|
327
|
-
revisions: NonNullable<ContractPayload['revisions']>;
|
|
328
253
|
history: ContractHistoryRecord[];
|
|
329
254
|
};
|
|
330
255
|
type ProjectPayload = {
|
|
331
256
|
contractId?: number | null;
|
|
332
|
-
contractTemplateId?: number | null;
|
|
333
257
|
managerCollaboratorId?: number | null;
|
|
334
258
|
clientPersonId?: number | null;
|
|
335
259
|
code: string;
|
|
@@ -347,7 +271,6 @@ type ProjectPayload = {
|
|
|
347
271
|
contractCode?: string | null;
|
|
348
272
|
contractName?: string | null;
|
|
349
273
|
contractDescription?: string | null;
|
|
350
|
-
autoGenerateContractDraft?: boolean;
|
|
351
274
|
teamAssignments?: Array<{
|
|
352
275
|
collaboratorId: number;
|
|
353
276
|
projectRoleId?: number | null;
|
|
@@ -455,7 +378,13 @@ export declare class OperationsService {
|
|
|
455
378
|
private normalizeLocaleCode;
|
|
456
379
|
private resolvePreferredLocaleId;
|
|
457
380
|
listCollaboratorTypes(userId: number, filters?: {
|
|
381
|
+
page?: number;
|
|
382
|
+
pageSize?: number;
|
|
383
|
+
search?: string;
|
|
384
|
+
sortField?: string;
|
|
385
|
+
sortOrder?: string;
|
|
458
386
|
active?: boolean;
|
|
387
|
+
status?: string;
|
|
459
388
|
}): Promise<{
|
|
460
389
|
id: number;
|
|
461
390
|
slug: string;
|
|
@@ -468,7 +397,27 @@ export declare class OperationsService {
|
|
|
468
397
|
collaboratorCount: number;
|
|
469
398
|
createdAt: string;
|
|
470
399
|
updatedAt: string;
|
|
471
|
-
}[]
|
|
400
|
+
}[] | {
|
|
401
|
+
total: number;
|
|
402
|
+
lastPage: number;
|
|
403
|
+
page: number;
|
|
404
|
+
pageSize: number;
|
|
405
|
+
prev: number;
|
|
406
|
+
next: number;
|
|
407
|
+
data: {
|
|
408
|
+
id: number;
|
|
409
|
+
slug: string;
|
|
410
|
+
name: string;
|
|
411
|
+
description: string | null;
|
|
412
|
+
category: string | null;
|
|
413
|
+
isActive: boolean;
|
|
414
|
+
sortOrder: number;
|
|
415
|
+
status: "active" | "inactive";
|
|
416
|
+
collaboratorCount: number;
|
|
417
|
+
createdAt: string;
|
|
418
|
+
updatedAt: string;
|
|
419
|
+
}[];
|
|
420
|
+
}>;
|
|
472
421
|
createCollaboratorType(userId: number, data: CollaboratorTypePayload): Promise<{
|
|
473
422
|
id: number;
|
|
474
423
|
slug: string;
|
|
@@ -497,6 +446,39 @@ export declare class OperationsService {
|
|
|
497
446
|
updatedAt: string | null;
|
|
498
447
|
deletedAt: string | null;
|
|
499
448
|
}>;
|
|
449
|
+
reorderCollaboratorTypes(userId: number, ids: number[]): Promise<{
|
|
450
|
+
id: number;
|
|
451
|
+
slug: string;
|
|
452
|
+
name: string;
|
|
453
|
+
description: string | null;
|
|
454
|
+
category: string | null;
|
|
455
|
+
isActive: boolean;
|
|
456
|
+
sortOrder: number;
|
|
457
|
+
status: "active" | "inactive";
|
|
458
|
+
collaboratorCount: number;
|
|
459
|
+
createdAt: string;
|
|
460
|
+
updatedAt: string;
|
|
461
|
+
}[] | {
|
|
462
|
+
total: number;
|
|
463
|
+
lastPage: number;
|
|
464
|
+
page: number;
|
|
465
|
+
pageSize: number;
|
|
466
|
+
prev: number;
|
|
467
|
+
next: number;
|
|
468
|
+
data: {
|
|
469
|
+
id: number;
|
|
470
|
+
slug: string;
|
|
471
|
+
name: string;
|
|
472
|
+
description: string | null;
|
|
473
|
+
category: string | null;
|
|
474
|
+
isActive: boolean;
|
|
475
|
+
sortOrder: number;
|
|
476
|
+
status: "active" | "inactive";
|
|
477
|
+
collaboratorCount: number;
|
|
478
|
+
createdAt: string;
|
|
479
|
+
updatedAt: string;
|
|
480
|
+
}[];
|
|
481
|
+
}>;
|
|
500
482
|
listProjectRoles(userId: number): Promise<{
|
|
501
483
|
id: number;
|
|
502
484
|
slug: string;
|
|
@@ -545,7 +527,39 @@ export declare class OperationsService {
|
|
|
545
527
|
status: string;
|
|
546
528
|
}[];
|
|
547
529
|
}>;
|
|
548
|
-
listCollaborators(userId: number
|
|
530
|
+
listCollaborators(userId: number, filters?: {
|
|
531
|
+
page?: number;
|
|
532
|
+
pageSize?: number;
|
|
533
|
+
search?: string;
|
|
534
|
+
sortField?: string;
|
|
535
|
+
sortOrder?: string;
|
|
536
|
+
status?: string;
|
|
537
|
+
collaboratorType?: string;
|
|
538
|
+
collaboratorTypeId?: number;
|
|
539
|
+
departmentId?: number;
|
|
540
|
+
jobTitleId?: number;
|
|
541
|
+
}): Promise<Record<string, unknown>[] | {
|
|
542
|
+
total: number;
|
|
543
|
+
lastPage: number;
|
|
544
|
+
page: number;
|
|
545
|
+
pageSize: number;
|
|
546
|
+
prev: number;
|
|
547
|
+
next: number;
|
|
548
|
+
data: Record<string, unknown>[];
|
|
549
|
+
}>;
|
|
550
|
+
getCollaboratorStats(userId: number, filters?: {
|
|
551
|
+
search?: string;
|
|
552
|
+
status?: string;
|
|
553
|
+
collaboratorType?: string;
|
|
554
|
+
collaboratorTypeId?: number;
|
|
555
|
+
departmentId?: number;
|
|
556
|
+
jobTitleId?: number;
|
|
557
|
+
}): Promise<{
|
|
558
|
+
total: number;
|
|
559
|
+
active: number;
|
|
560
|
+
onLeave: number;
|
|
561
|
+
withContracts: number;
|
|
562
|
+
}>;
|
|
549
563
|
getMyCollaborator(userId: number): Promise<{
|
|
550
564
|
assignedProjects: Record<string, unknown>[];
|
|
551
565
|
relatedContracts: Record<string, unknown>[];
|
|
@@ -760,7 +774,22 @@ export declare class OperationsService {
|
|
|
760
774
|
compensationAmount: number | null;
|
|
761
775
|
activeAssignments: number;
|
|
762
776
|
}>;
|
|
763
|
-
listDepartments(userId: number
|
|
777
|
+
listDepartments(userId: number, filters?: {
|
|
778
|
+
page?: number;
|
|
779
|
+
pageSize?: number;
|
|
780
|
+
search?: string;
|
|
781
|
+
sortField?: string;
|
|
782
|
+
sortOrder?: string;
|
|
783
|
+
status?: string;
|
|
784
|
+
}): Promise<Record<string, unknown>[] | {
|
|
785
|
+
total: number;
|
|
786
|
+
lastPage: number;
|
|
787
|
+
page: number;
|
|
788
|
+
pageSize: number;
|
|
789
|
+
prev: number;
|
|
790
|
+
next: number;
|
|
791
|
+
data: Record<string, unknown>[];
|
|
792
|
+
}>;
|
|
764
793
|
listJobTitles(userId: number): Promise<Record<string, unknown>[]>;
|
|
765
794
|
createJobTitle(userId: number, data: JobTitlePayload): Promise<{
|
|
766
795
|
id: number;
|
|
@@ -795,7 +824,22 @@ export declare class OperationsService {
|
|
|
795
824
|
deletedAt: string | null;
|
|
796
825
|
status: "active" | "inactive";
|
|
797
826
|
}>;
|
|
798
|
-
listProjects(userId: number
|
|
827
|
+
listProjects(userId: number, filters?: {
|
|
828
|
+
page?: number;
|
|
829
|
+
pageSize?: number;
|
|
830
|
+
search?: string;
|
|
831
|
+
sortField?: string;
|
|
832
|
+
sortOrder?: string;
|
|
833
|
+
status?: string;
|
|
834
|
+
}): Promise<Record<string, unknown>[] | {
|
|
835
|
+
total: number;
|
|
836
|
+
lastPage: number;
|
|
837
|
+
page: number;
|
|
838
|
+
pageSize: number;
|
|
839
|
+
prev: number;
|
|
840
|
+
next: number;
|
|
841
|
+
data: Record<string, unknown>[];
|
|
842
|
+
}>;
|
|
799
843
|
listProjectOptions(userId: number, paginationParams: {
|
|
800
844
|
page?: number;
|
|
801
845
|
pageSize?: number;
|
|
@@ -1001,7 +1045,7 @@ export declare class OperationsService {
|
|
|
1001
1045
|
};
|
|
1002
1046
|
operationalIndicators: {
|
|
1003
1047
|
activeAssignments: number;
|
|
1004
|
-
|
|
1048
|
+
completedAssignments: number;
|
|
1005
1049
|
averageAllocation: number;
|
|
1006
1050
|
totalWeeklyHours: number;
|
|
1007
1051
|
};
|
|
@@ -1053,7 +1097,7 @@ export declare class OperationsService {
|
|
|
1053
1097
|
};
|
|
1054
1098
|
operationalIndicators: {
|
|
1055
1099
|
activeAssignments: number;
|
|
1056
|
-
|
|
1100
|
+
completedAssignments: number;
|
|
1057
1101
|
averageAllocation: number;
|
|
1058
1102
|
totalWeeklyHours: number;
|
|
1059
1103
|
};
|
|
@@ -1105,7 +1149,7 @@ export declare class OperationsService {
|
|
|
1105
1149
|
};
|
|
1106
1150
|
operationalIndicators: {
|
|
1107
1151
|
activeAssignments: number;
|
|
1108
|
-
|
|
1152
|
+
completedAssignments: number;
|
|
1109
1153
|
averageAllocation: number;
|
|
1110
1154
|
totalWeeklyHours: number;
|
|
1111
1155
|
};
|
|
@@ -1132,182 +1176,33 @@ export declare class OperationsService {
|
|
|
1132
1176
|
myRoleLabel: string | null;
|
|
1133
1177
|
teamSize: number;
|
|
1134
1178
|
}>;
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
contractCategory
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
createContractTemplate(userId: number, data: ContractTemplatePayload): Promise<{
|
|
1154
|
-
id: number;
|
|
1155
|
-
slug: string;
|
|
1156
|
-
code: string | null;
|
|
1157
|
-
name: string;
|
|
1158
|
-
description: string | null;
|
|
1159
|
-
contractCategory: string | null;
|
|
1160
|
-
contractType: string | null;
|
|
1161
|
-
billingModel: string | null;
|
|
1162
|
-
signatureStatus: string | null;
|
|
1163
|
-
isActive: boolean;
|
|
1164
|
-
status: string | null;
|
|
1165
|
-
contentHtml: string | null;
|
|
1166
|
-
usageCount: number;
|
|
1167
|
-
createdAt: Date;
|
|
1168
|
-
updatedAt: Date;
|
|
1179
|
+
listContracts(userId: number, filters?: {
|
|
1180
|
+
page?: number;
|
|
1181
|
+
pageSize?: number;
|
|
1182
|
+
search?: string;
|
|
1183
|
+
sortField?: string;
|
|
1184
|
+
sortOrder?: string;
|
|
1185
|
+
status?: string;
|
|
1186
|
+
contractCategory?: string;
|
|
1187
|
+
originType?: string;
|
|
1188
|
+
isActive?: string;
|
|
1189
|
+
}): Promise<Record<string, unknown>[] | {
|
|
1190
|
+
total: number;
|
|
1191
|
+
lastPage: number;
|
|
1192
|
+
page: number;
|
|
1193
|
+
pageSize: number;
|
|
1194
|
+
prev: number;
|
|
1195
|
+
next: number;
|
|
1196
|
+
data: Record<string, unknown>[];
|
|
1169
1197
|
}>;
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
|
|
1175
|
-
description: string | null;
|
|
1176
|
-
contractCategory: string | null;
|
|
1177
|
-
contractType: string | null;
|
|
1178
|
-
billingModel: string | null;
|
|
1179
|
-
signatureStatus: string | null;
|
|
1180
|
-
isActive: boolean;
|
|
1181
|
-
status: string | null;
|
|
1182
|
-
contentHtml: string | null;
|
|
1183
|
-
usageCount: number;
|
|
1184
|
-
createdAt: Date;
|
|
1185
|
-
updatedAt: Date;
|
|
1198
|
+
getContractStats(userId: number): Promise<{
|
|
1199
|
+
total: number;
|
|
1200
|
+
active: number;
|
|
1201
|
+
inactive: number;
|
|
1202
|
+
withFile: number;
|
|
1186
1203
|
}>;
|
|
1187
|
-
listContracts(userId: number): Promise<Record<string, unknown>[]>;
|
|
1188
1204
|
getContractById(userId: number, contractId: number): Promise<ContractDetailsRecord>;
|
|
1189
1205
|
createContract(userId: number, data: ContractPayload): Promise<ContractDetailsRecord>;
|
|
1190
|
-
createContractDraft(userId: number, data: ContractDraftPayload): Promise<ContractDetailsRecord>;
|
|
1191
|
-
extractContractSource(userId: number, contractId: number, data: Omit<ContractExtractDraftPayload, 'fileName' | 'mimeType' | 'fileContentBase64' | 'contractId'>): Promise<{
|
|
1192
|
-
warnings: string[];
|
|
1193
|
-
summary: string;
|
|
1194
|
-
missingFields: string[];
|
|
1195
|
-
code: string;
|
|
1196
|
-
name: string;
|
|
1197
|
-
clientName: string;
|
|
1198
|
-
contractCategory: "other" | "client" | "internal" | "employee" | "contractor" | "supplier" | "vendor" | "partner";
|
|
1199
|
-
contractType: "other" | "clt" | "pj" | "freelancer_agreement" | "service_agreement" | "fixed_term" | "recurring_service" | "nda" | "amendment" | "addendum";
|
|
1200
|
-
signatureStatus: "pending" | "expired" | "not_started" | "partially_signed" | "signed";
|
|
1201
|
-
isActive: boolean;
|
|
1202
|
-
billingModel: "time_and_material" | "monthly_retainer" | "fixed_price";
|
|
1203
|
-
originType: "manual" | "employee_hiring" | "client_project" | "crm_proposal";
|
|
1204
|
-
originId: string;
|
|
1205
|
-
startDate: string;
|
|
1206
|
-
endDate: string;
|
|
1207
|
-
signedAt: string;
|
|
1208
|
-
effectiveDate: string;
|
|
1209
|
-
budgetAmount: string | number;
|
|
1210
|
-
monthlyHourCap: string | number;
|
|
1211
|
-
status: "active" | "draft" | "expired" | "archived" | "closed" | "under_review" | "renewal";
|
|
1212
|
-
description: string;
|
|
1213
|
-
contentHtml: string;
|
|
1214
|
-
parties: {
|
|
1215
|
-
displayName: string;
|
|
1216
|
-
partyRole: "other" | "client" | "employee" | "supplier" | "vendor" | "partner" | "employer" | "witness" | "internal_owner";
|
|
1217
|
-
partyType: "other" | "individual" | "company" | "internal_team";
|
|
1218
|
-
documentNumber: string;
|
|
1219
|
-
email: string;
|
|
1220
|
-
phone: string;
|
|
1221
|
-
isPrimary: boolean;
|
|
1222
|
-
}[];
|
|
1223
|
-
signatures: {
|
|
1224
|
-
signerName: string;
|
|
1225
|
-
signerRole: string;
|
|
1226
|
-
signerEmail: string;
|
|
1227
|
-
status: "rejected" | "pending" | "signed";
|
|
1228
|
-
signedAt: string;
|
|
1229
|
-
}[];
|
|
1230
|
-
financialTerms: {
|
|
1231
|
-
label: string;
|
|
1232
|
-
termType: "value" | "other" | "revenue" | "payment" | "fine";
|
|
1233
|
-
amount: string | number;
|
|
1234
|
-
recurrence: "other" | "one_time" | "monthly" | "quarterly" | "yearly";
|
|
1235
|
-
dueDay: string | number;
|
|
1236
|
-
notes: string;
|
|
1237
|
-
}[];
|
|
1238
|
-
revisions: {
|
|
1239
|
-
title: string;
|
|
1240
|
-
revisionType: "other" | "amendment" | "addendum" | "renewal" | "revision";
|
|
1241
|
-
effectiveDate: string;
|
|
1242
|
-
status: "active" | "draft" | "completed" | "cancelled";
|
|
1243
|
-
summary: string;
|
|
1244
|
-
}[];
|
|
1245
|
-
}>;
|
|
1246
|
-
generateContractContent(userId: number, contractId: number, data?: ContractGenerateContentPayload): Promise<ContractDetailsRecord>;
|
|
1247
|
-
reviewContractLegally(userId: number, contractId: number, data?: ContractLegalReviewPayload): Promise<ContractLegalReviewResult>;
|
|
1248
|
-
generateContractPdf(userId: number, contractId: number): Promise<{
|
|
1249
|
-
contractId: number;
|
|
1250
|
-
fileId: number;
|
|
1251
|
-
fileName: string;
|
|
1252
|
-
mimeType: string;
|
|
1253
|
-
documentType: string;
|
|
1254
|
-
downloadUrl: string;
|
|
1255
|
-
}>;
|
|
1256
|
-
extractContractDraft(userId: number, data: ContractExtractDraftPayload): Promise<{
|
|
1257
|
-
warnings: string[];
|
|
1258
|
-
summary: string;
|
|
1259
|
-
missingFields: string[];
|
|
1260
|
-
code: string;
|
|
1261
|
-
name: string;
|
|
1262
|
-
clientName: string;
|
|
1263
|
-
contractCategory: "other" | "client" | "internal" | "employee" | "contractor" | "supplier" | "vendor" | "partner";
|
|
1264
|
-
contractType: "other" | "clt" | "pj" | "freelancer_agreement" | "service_agreement" | "fixed_term" | "recurring_service" | "nda" | "amendment" | "addendum";
|
|
1265
|
-
signatureStatus: "pending" | "expired" | "not_started" | "partially_signed" | "signed";
|
|
1266
|
-
isActive: boolean;
|
|
1267
|
-
billingModel: "time_and_material" | "monthly_retainer" | "fixed_price";
|
|
1268
|
-
originType: "manual" | "employee_hiring" | "client_project" | "crm_proposal";
|
|
1269
|
-
originId: string;
|
|
1270
|
-
startDate: string;
|
|
1271
|
-
endDate: string;
|
|
1272
|
-
signedAt: string;
|
|
1273
|
-
effectiveDate: string;
|
|
1274
|
-
budgetAmount: string | number;
|
|
1275
|
-
monthlyHourCap: string | number;
|
|
1276
|
-
status: "active" | "draft" | "expired" | "archived" | "closed" | "under_review" | "renewal";
|
|
1277
|
-
description: string;
|
|
1278
|
-
contentHtml: string;
|
|
1279
|
-
parties: {
|
|
1280
|
-
displayName: string;
|
|
1281
|
-
partyRole: "other" | "client" | "employee" | "supplier" | "vendor" | "partner" | "employer" | "witness" | "internal_owner";
|
|
1282
|
-
partyType: "other" | "individual" | "company" | "internal_team";
|
|
1283
|
-
documentNumber: string;
|
|
1284
|
-
email: string;
|
|
1285
|
-
phone: string;
|
|
1286
|
-
isPrimary: boolean;
|
|
1287
|
-
}[];
|
|
1288
|
-
signatures: {
|
|
1289
|
-
signerName: string;
|
|
1290
|
-
signerRole: string;
|
|
1291
|
-
signerEmail: string;
|
|
1292
|
-
status: "rejected" | "pending" | "signed";
|
|
1293
|
-
signedAt: string;
|
|
1294
|
-
}[];
|
|
1295
|
-
financialTerms: {
|
|
1296
|
-
label: string;
|
|
1297
|
-
termType: "value" | "other" | "revenue" | "payment" | "fine";
|
|
1298
|
-
amount: string | number;
|
|
1299
|
-
recurrence: "other" | "one_time" | "monthly" | "quarterly" | "yearly";
|
|
1300
|
-
dueDay: string | number;
|
|
1301
|
-
notes: string;
|
|
1302
|
-
}[];
|
|
1303
|
-
revisions: {
|
|
1304
|
-
title: string;
|
|
1305
|
-
revisionType: "other" | "amendment" | "addendum" | "renewal" | "revision";
|
|
1306
|
-
effectiveDate: string;
|
|
1307
|
-
status: "active" | "draft" | "completed" | "cancelled";
|
|
1308
|
-
summary: string;
|
|
1309
|
-
}[];
|
|
1310
|
-
}>;
|
|
1311
1206
|
createContractFromProposalIntegration(payload: ProposalApprovedEventPayload): Promise<{
|
|
1312
1207
|
id: number;
|
|
1313
1208
|
code: string;
|
|
@@ -1318,7 +1213,14 @@ export declare class OperationsService {
|
|
|
1318
1213
|
removeContract(userId: number, contractId: number): Promise<{
|
|
1319
1214
|
success: boolean;
|
|
1320
1215
|
}>;
|
|
1321
|
-
listTimesheets(userId: number
|
|
1216
|
+
listTimesheets(userId: number, filters?: {
|
|
1217
|
+
page?: number;
|
|
1218
|
+
pageSize?: number;
|
|
1219
|
+
search?: string;
|
|
1220
|
+
sortField?: string;
|
|
1221
|
+
sortOrder?: string;
|
|
1222
|
+
status?: string;
|
|
1223
|
+
}): Promise<{
|
|
1322
1224
|
id: number;
|
|
1323
1225
|
collaboratorId: number;
|
|
1324
1226
|
collaboratorName: string;
|
|
@@ -1332,13 +1234,51 @@ export declare class OperationsService {
|
|
|
1332
1234
|
reviewedAt: string | null;
|
|
1333
1235
|
notes: string | null;
|
|
1334
1236
|
decisionNote: string | null;
|
|
1335
|
-
}[]
|
|
1237
|
+
}[] | {
|
|
1238
|
+
total: number;
|
|
1239
|
+
lastPage: number;
|
|
1240
|
+
page: number;
|
|
1241
|
+
pageSize: number;
|
|
1242
|
+
prev: number;
|
|
1243
|
+
next: number;
|
|
1244
|
+
data: any[];
|
|
1245
|
+
}>;
|
|
1336
1246
|
createTimesheet(userId: number, data: TimesheetPayload): Promise<any>;
|
|
1337
1247
|
updateTimesheet(userId: number, timesheetId: number, data: Partial<TimesheetPayload>): Promise<any>;
|
|
1338
1248
|
submitTimesheet(userId: number, timesheetId: number): Promise<any>;
|
|
1339
|
-
listTimeOffRequests(userId: number
|
|
1249
|
+
listTimeOffRequests(userId: number, filters?: {
|
|
1250
|
+
page?: number;
|
|
1251
|
+
pageSize?: number;
|
|
1252
|
+
search?: string;
|
|
1253
|
+
sortField?: string;
|
|
1254
|
+
sortOrder?: string;
|
|
1255
|
+
status?: string;
|
|
1256
|
+
}): Promise<Record<string, unknown>[] | {
|
|
1257
|
+
total: number;
|
|
1258
|
+
lastPage: number;
|
|
1259
|
+
page: number;
|
|
1260
|
+
pageSize: number;
|
|
1261
|
+
prev: number;
|
|
1262
|
+
next: number;
|
|
1263
|
+
data: Record<string, unknown>[];
|
|
1264
|
+
}>;
|
|
1340
1265
|
createTimeOffRequest(userId: number, data: TimeOffPayload): Promise<Record<string, unknown>>;
|
|
1341
|
-
listScheduleAdjustments(userId: number
|
|
1266
|
+
listScheduleAdjustments(userId: number, filters?: {
|
|
1267
|
+
page?: number;
|
|
1268
|
+
pageSize?: number;
|
|
1269
|
+
search?: string;
|
|
1270
|
+
sortField?: string;
|
|
1271
|
+
sortOrder?: string;
|
|
1272
|
+
status?: string;
|
|
1273
|
+
}): Promise<{
|
|
1274
|
+
total: number;
|
|
1275
|
+
lastPage: number;
|
|
1276
|
+
page: number;
|
|
1277
|
+
pageSize: number;
|
|
1278
|
+
prev: number;
|
|
1279
|
+
next: number;
|
|
1280
|
+
data: any[];
|
|
1281
|
+
} | {
|
|
1342
1282
|
id: number;
|
|
1343
1283
|
collaboratorId: number;
|
|
1344
1284
|
collaboratorName: string;
|
|
@@ -1354,9 +1294,129 @@ export declare class OperationsService {
|
|
|
1354
1294
|
approverNote: string | null;
|
|
1355
1295
|
}[]>;
|
|
1356
1296
|
createScheduleAdjustmentRequest(userId: number, data: ScheduleAdjustmentPayload): Promise<Record<string, unknown>>;
|
|
1357
|
-
listApprovals(userId: number
|
|
1297
|
+
listApprovals(userId: number, filters?: {
|
|
1298
|
+
page?: number;
|
|
1299
|
+
pageSize?: number;
|
|
1300
|
+
search?: string;
|
|
1301
|
+
sortField?: string;
|
|
1302
|
+
sortOrder?: string;
|
|
1303
|
+
status?: string;
|
|
1304
|
+
targetType?: string;
|
|
1305
|
+
}): Promise<Record<string, unknown>[] | {
|
|
1306
|
+
total: number;
|
|
1307
|
+
lastPage: number;
|
|
1308
|
+
page: number;
|
|
1309
|
+
pageSize: number;
|
|
1310
|
+
prev: number;
|
|
1311
|
+
next: number;
|
|
1312
|
+
data: Record<string, unknown>[];
|
|
1313
|
+
}>;
|
|
1358
1314
|
approve(userId: number, approvalId: number, data: DecisionPayload): Promise<Record<string, unknown>>;
|
|
1359
1315
|
reject(userId: number, approvalId: number, data: DecisionPayload): Promise<Record<string, unknown>>;
|
|
1316
|
+
getApprovalDetail(userId: number, approvalId: number): Promise<{
|
|
1317
|
+
id: number;
|
|
1318
|
+
targetType: string;
|
|
1319
|
+
targetId: number;
|
|
1320
|
+
requesterCollaboratorId: number;
|
|
1321
|
+
requesterName: string;
|
|
1322
|
+
approverCollaboratorId: number | null;
|
|
1323
|
+
approverName: string | null;
|
|
1324
|
+
status: string;
|
|
1325
|
+
submittedAt: string | null;
|
|
1326
|
+
decidedAt: string | null;
|
|
1327
|
+
decisionNote: string | null;
|
|
1328
|
+
timesheetWeekStartDate: string | null;
|
|
1329
|
+
timesheetWeekEndDate: string | null;
|
|
1330
|
+
timesheetTotalHours: number | null;
|
|
1331
|
+
timesheetProjectNames: string | null;
|
|
1332
|
+
timeOffType: string | null;
|
|
1333
|
+
timeOffStartDate: string | null;
|
|
1334
|
+
timeOffEndDate: string | null;
|
|
1335
|
+
timeOffReason: string | null;
|
|
1336
|
+
scheduleRequestScope: string | null;
|
|
1337
|
+
scheduleStartDate: string | null;
|
|
1338
|
+
scheduleEndDate: string | null;
|
|
1339
|
+
scheduleReason: string | null;
|
|
1340
|
+
} | {
|
|
1341
|
+
entries: {
|
|
1342
|
+
id: number;
|
|
1343
|
+
timesheetId: number;
|
|
1344
|
+
projectAssignmentId: number | null;
|
|
1345
|
+
projectId: number | null;
|
|
1346
|
+
projectName: string | null;
|
|
1347
|
+
roleLabel: string | null;
|
|
1348
|
+
taskId: number | null;
|
|
1349
|
+
taskName: string | null;
|
|
1350
|
+
activityLabel: string | null;
|
|
1351
|
+
workDate: string;
|
|
1352
|
+
durationMinutes: number | null;
|
|
1353
|
+
hours: number;
|
|
1354
|
+
description: string | null;
|
|
1355
|
+
}[];
|
|
1356
|
+
id: number;
|
|
1357
|
+
targetType: string;
|
|
1358
|
+
targetId: number;
|
|
1359
|
+
requesterCollaboratorId: number;
|
|
1360
|
+
requesterName: string;
|
|
1361
|
+
approverCollaboratorId: number | null;
|
|
1362
|
+
approverName: string | null;
|
|
1363
|
+
status: string;
|
|
1364
|
+
submittedAt: string | null;
|
|
1365
|
+
decidedAt: string | null;
|
|
1366
|
+
decisionNote: string | null;
|
|
1367
|
+
timesheetWeekStartDate: string | null;
|
|
1368
|
+
timesheetWeekEndDate: string | null;
|
|
1369
|
+
timesheetTotalHours: number | null;
|
|
1370
|
+
timesheetProjectNames: string | null;
|
|
1371
|
+
timeOffType: string | null;
|
|
1372
|
+
timeOffStartDate: string | null;
|
|
1373
|
+
timeOffEndDate: string | null;
|
|
1374
|
+
timeOffReason: string | null;
|
|
1375
|
+
scheduleRequestScope: string | null;
|
|
1376
|
+
scheduleStartDate: string | null;
|
|
1377
|
+
scheduleEndDate: string | null;
|
|
1378
|
+
scheduleReason: string | null;
|
|
1379
|
+
} | {
|
|
1380
|
+
days: {
|
|
1381
|
+
requestId: number;
|
|
1382
|
+
weekday: string;
|
|
1383
|
+
isWorkingDay: boolean;
|
|
1384
|
+
startTime: string | null;
|
|
1385
|
+
endTime: string | null;
|
|
1386
|
+
breakMinutes: number | null;
|
|
1387
|
+
}[];
|
|
1388
|
+
currentSchedule: {
|
|
1389
|
+
collaboratorId: number;
|
|
1390
|
+
weekday: string;
|
|
1391
|
+
isWorkingDay: boolean;
|
|
1392
|
+
startTime: string | null;
|
|
1393
|
+
endTime: string | null;
|
|
1394
|
+
breakMinutes: number | null;
|
|
1395
|
+
}[];
|
|
1396
|
+
id: number;
|
|
1397
|
+
targetType: string;
|
|
1398
|
+
targetId: number;
|
|
1399
|
+
requesterCollaboratorId: number;
|
|
1400
|
+
requesterName: string;
|
|
1401
|
+
approverCollaboratorId: number | null;
|
|
1402
|
+
approverName: string | null;
|
|
1403
|
+
status: string;
|
|
1404
|
+
submittedAt: string | null;
|
|
1405
|
+
decidedAt: string | null;
|
|
1406
|
+
decisionNote: string | null;
|
|
1407
|
+
timesheetWeekStartDate: string | null;
|
|
1408
|
+
timesheetWeekEndDate: string | null;
|
|
1409
|
+
timesheetTotalHours: number | null;
|
|
1410
|
+
timesheetProjectNames: string | null;
|
|
1411
|
+
timeOffType: string | null;
|
|
1412
|
+
timeOffStartDate: string | null;
|
|
1413
|
+
timeOffEndDate: string | null;
|
|
1414
|
+
timeOffReason: string | null;
|
|
1415
|
+
scheduleRequestScope: string | null;
|
|
1416
|
+
scheduleStartDate: string | null;
|
|
1417
|
+
scheduleEndDate: string | null;
|
|
1418
|
+
scheduleReason: string | null;
|
|
1419
|
+
}>;
|
|
1360
1420
|
publishAccountsPayableReference(userId: number, data: PublishAccountsPayableReferencePayload): Promise<{
|
|
1361
1421
|
queued: boolean;
|
|
1362
1422
|
eventId: string;
|
|
@@ -1389,13 +1449,24 @@ export declare class OperationsService {
|
|
|
1389
1449
|
private assertProjectRoleCodeAvailable;
|
|
1390
1450
|
private generateUniqueProjectRoleSlug;
|
|
1391
1451
|
private resolveCollaboratorTypeReference;
|
|
1392
|
-
private getContractTemplateRecord;
|
|
1393
|
-
private assertContractTemplateNameAvailable;
|
|
1394
|
-
private assertContractTemplateCodeAvailable;
|
|
1395
|
-
private generateUniqueContractTemplateSlug;
|
|
1396
1452
|
private slugifyValue;
|
|
1397
1453
|
private normalizeOptionalText;
|
|
1398
1454
|
private getProjectDetails;
|
|
1455
|
+
getProjectStats(userId: number, projectId: number): Promise<{
|
|
1456
|
+
weeklyVelocity: {
|
|
1457
|
+
weekLabel: string;
|
|
1458
|
+
loggedHours: number;
|
|
1459
|
+
}[];
|
|
1460
|
+
allocationByCollaborator: {
|
|
1461
|
+
name: string;
|
|
1462
|
+
allocation: number;
|
|
1463
|
+
}[];
|
|
1464
|
+
quickRadar: {
|
|
1465
|
+
activeAssignments: number;
|
|
1466
|
+
pendingTimesheets: number;
|
|
1467
|
+
totalWeeklyHours: number;
|
|
1468
|
+
};
|
|
1469
|
+
}>;
|
|
1399
1470
|
private getCollaboratorDetails;
|
|
1400
1471
|
private getDirectReportIds;
|
|
1401
1472
|
private getAssignedProjectIds;
|
|
@@ -1447,11 +1518,7 @@ export declare class OperationsService {
|
|
|
1447
1518
|
private buildHiringContractName;
|
|
1448
1519
|
private createHiringContractDraft;
|
|
1449
1520
|
private syncHiringContractDraft;
|
|
1450
|
-
private createProjectContractDraft;
|
|
1451
1521
|
private replaceContractParties;
|
|
1452
|
-
private replaceContractSignatures;
|
|
1453
|
-
private replaceContractFinancialTerms;
|
|
1454
|
-
private replaceContractRevisions;
|
|
1455
1522
|
private replaceContractDocument;
|
|
1456
1523
|
private resolveContractExtractionFile;
|
|
1457
1524
|
private buildContractExtractionFile;
|
|
@@ -1479,6 +1546,7 @@ export declare class OperationsService {
|
|
|
1479
1546
|
private formatDateOnly;
|
|
1480
1547
|
private getWorkWeekRange;
|
|
1481
1548
|
private normalizePaginationParams;
|
|
1549
|
+
private shouldPaginate;
|
|
1482
1550
|
private buildPaginationResult;
|
|
1483
1551
|
private normalizeExtractionBoolean;
|
|
1484
1552
|
private normalizeExtractionNumber;
|
|
@@ -1497,6 +1565,7 @@ export declare class OperationsService {
|
|
|
1497
1565
|
private queryRows;
|
|
1498
1566
|
private querySingle;
|
|
1499
1567
|
private execute;
|
|
1568
|
+
private getNextCollaboratorTypeSortOrder;
|
|
1500
1569
|
}
|
|
1501
1570
|
export {};
|
|
1502
1571
|
//# sourceMappingURL=operations.service.d.ts.map
|