RED-7421 - Unassigned file cannot be moved back from "under approval" to "under review."

This commit is contained in:
Valentin Mihai 2023-09-25 22:38:03 +03:00
parent d853c781a7
commit 2b56f71023
2 changed files with 27 additions and 4 deletions

View File

@ -1,18 +1,21 @@
import { Injectable } from '@angular/core';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
import { IConfirmationDialogData, IqserDialog, LoadingService } from '@iqser/common-ui';
import { Dossier, File, WorkflowFileStatus, WorkflowFileStatuses } from '@red/domain';
import { Dossier, File, User, WorkflowFileStatus, WorkflowFileStatuses } from '@red/domain';
import { ActiveDossiersService } from '@services/dossiers/active-dossiers.service';
import { FileManagementService } from '@services/files/file-management.service';
import { FilesService } from '@services/files/files.service';
import { ReanalysisService } from '@services/reanalysis.service';
import { firstValueFrom } from 'rxjs';
import { firstValueFrom, forkJoin } from 'rxjs';
import { AssignReviewerApproverDialogComponent } from '../../shared-dossiers/dialogs/assign-reviewer-approver-dialog/assign-reviewer-approver-dialog.component';
import { DossiersDialogService } from '../../shared-dossiers/services/dossiers-dialog.service';
import { FileAssignService } from '../../shared-dossiers/services/file-assign.service';
import { getCurrentUser } from '@common-ui/users';
@Injectable()
export class BulkActionsService {
readonly currentUser = getCurrentUser<User>();
constructor(
private readonly _dialogService: DossiersDialogService,
private readonly _iqserDialog: IqserDialog,
@ -81,7 +84,22 @@ export class BulkActionsService {
async backToUnderReview(files: File[]): Promise<void> {
this._loadingService.start();
await this._filesService.setUnderReview(files);
const [unassignedFiles, assignedFiles] = files.reduce(
(result, element) => {
result[!element.assignee ? 0 : 1].push(element);
return result;
},
[[], []],
);
const requests$ = [];
if (unassignedFiles.length) {
requests$.push(this._filesService.setReviewer(unassignedFiles, this.currentUser.id));
}
if (assignedFiles.length) {
requests$.push(this._filesService.setUnderReview(assignedFiles));
}
await firstValueFrom(forkJoin(requests$));
this._loadingService.stop();
}

View File

@ -68,7 +68,12 @@ export class FileAssignService {
userId = currentUserId;
}
if (file.assignee === currentUserId) {
if (
file.assignee === currentUserId ||
(!file.assignee &&
targetStatus === WorkflowFileStatuses.UNDER_REVIEW &&
file.workflowStatus === WorkflowFileStatuses.UNDER_APPROVAL)
) {
if (eligibleUsersIds.includes(currentUserId)) {
userId = currentUserId;
}