|
1 | 1 | package com.researchspace.service.inventory.impl;
|
2 | 2 |
|
3 | 3 | import com.axiope.search.InventorySearchConfig.InventorySearchDeletedOption;
|
4 |
| -import com.researchspace.api.v1.auth.ApiRuntimeException; |
5 | 4 | import com.researchspace.api.v1.model.ApiFieldToModelFieldFactory;
|
6 | 5 | import com.researchspace.api.v1.model.ApiInventoryRecordInfo;
|
7 | 6 | import com.researchspace.api.v1.model.ApiInventorySearchResult;
|
@@ -595,42 +594,28 @@ public ApiSample markSampleAsDeleted(Long sampleId, boolean forceDelete, User us
|
595 | 594 | dbSample = getIfExists(dbSample.getId());
|
596 | 595 | if (!dbSample.isDeleted()) {
|
597 | 596 | /* first try deleting undeleted subsamples */
|
598 |
| - if (!forceDelete) { |
599 |
| - long ssInContainersCount = |
600 |
| - dbSample.getActiveSubSamples().stream() |
601 |
| - .filter( |
602 |
| - ss -> |
603 |
| - ss.getParentContainer() != null |
604 |
| - && !ContainerType.WORKBENCH.equals( |
605 |
| - ss.getParentContainer().getContainerType())) |
606 |
| - .count(); |
607 |
| - if (ssInContainersCount > 0) { |
608 |
| - throw new ApiRuntimeException( |
609 |
| - "sample.deletion.failure.subsamples.in.containers", |
610 |
| - dbSample.getGlobalIdentifier(), |
611 |
| - ssInContainersCount); |
612 |
| - } |
| 597 | + if (forceDelete) { |
| 598 | + dbSample |
| 599 | + .getActiveSubSamples() |
| 600 | + .forEach(ss -> subSampleMgr.markSubSampleAsDeleted(ss.getId(), user, true)); |
| 601 | + dbSample.refreshActiveSubSamples(); |
| 602 | + dbSample.recalculateTotalQuantity(); |
| 603 | + |
| 604 | + /* then delete the sample */ |
| 605 | + dbSample.setRecordDeleted(true); |
| 606 | + dbSample = sampleDao.save(dbSample); |
| 607 | + publisher.publishEvent(new InventoryDeleteEvent(dbSample, user)); |
613 | 608 | }
|
614 |
| - dbSample |
615 |
| - .getActiveSubSamples() |
616 |
| - .forEach(ss -> subSampleMgr.markSubSampleAsDeleted(ss.getId(), user, true)); |
617 |
| - dbSample.refreshActiveSubSamples(); |
618 |
| - dbSample.recalculateTotalQuantity(); |
619 |
| - |
620 |
| - /* then delete the sample */ |
621 |
| - dbSample.setRecordDeleted(true); |
622 |
| - dbSample = sampleDao.save(dbSample); |
623 |
| - publisher.publishEvent(new InventoryDeleteEvent(dbSample, user)); |
624 | 609 | }
|
625 | 610 | } finally {
|
626 | 611 | if (temporaryLock) {
|
627 | 612 | unlockItemAfterEdit(dbSample, user);
|
628 | 613 | }
|
629 | 614 | }
|
630 | 615 |
|
631 |
| - ApiSample deleted = getOutgoingApiSample(dbSample, user); |
632 |
| - updateOntologyOnRecordChanges(deleted, user); |
633 |
| - return deleted; |
| 616 | + ApiSample apiSampleResult = getOutgoingApiSample(dbSample, user); |
| 617 | + updateOntologyOnRecordChanges(apiSampleResult, user); |
| 618 | + return apiSampleResult; |
634 | 619 | }
|
635 | 620 |
|
636 | 621 | @Override
|
|
0 commit comments