4545import com .krishagni .catissueplus .core .biospecimen .repository .DaoFactory ;
4646import com .krishagni .catissueplus .core .biospecimen .services .impl .CpWorkflowTxnCache ;
4747import com .krishagni .catissueplus .core .common .OpenSpecimenAppCtxProvider ;
48+ import com .krishagni .catissueplus .core .common .PvAttributes ;
4849import com .krishagni .catissueplus .core .common .access .AccessCtrlMgr ;
4950import com .krishagni .catissueplus .core .common .domain .PrintItem ;
5051import com .krishagni .catissueplus .core .common .errors .OpenSpecimenException ;
@@ -93,6 +94,8 @@ public class Specimen extends BaseExtensionEntity {
9394
9495 public static final String NOT_SPECIFIED = "Not Specified" ;
9596
97+ public static final String PROCESSED = "Processed" ;
98+
9699 public static final String EXTN = "SpecimenExtension" ;
97100
98101 private static final String ENTITY_NAME = "specimen" ;
@@ -1180,10 +1183,6 @@ public List<PrintItem<Specimen>> getPrePrintItems() {
11801183 return result ;
11811184 }
11821185
1183- public void close (User user , Date time , String reason ) {
1184- close (user , time , reason , null );
1185- }
1186-
11871186 public void close (User user , Date time , String reason , String comments ) {
11881187 if (!getActivityStatus ().equals (Status .ACTIVITY_STATUS_ACTIVE .getStatus ())) {
11891188 return ;
@@ -1323,8 +1322,8 @@ public void update(Specimen specimen) {
13231322 setUpdated (true );
13241323 }
13251324
1326- public void updateStatus (Specimen otherSpecimen , String reason ) {
1327- updateStatus (otherSpecimen .getActivityStatus (), AuthUtil .getCurrentUser (), Calendar .getInstance ().getTime (), reason , isForceDelete ());
1325+ public void updateStatus (Specimen otherSpecimen , String comments ) {
1326+ updateStatus (otherSpecimen .getActivityStatus (), AuthUtil .getCurrentUser (), Calendar .getInstance ().getTime (), "Not Specified" , comments , isForceDelete ());
13281327
13291328 //
13301329 // OPSMN-4629
@@ -1343,7 +1342,7 @@ public void updateStatus(Specimen otherSpecimen, String reason) {
13431342 }
13441343 }
13451344
1346- public void updateStatus (String activityStatus , User user , Date date , String reason , boolean isForceDelete ) {
1345+ public void updateStatus (String activityStatus , User user , Date date , String reason , String comments , boolean isForceDelete ) {
13471346 if (isReserved ()) {
13481347 throw OpenSpecimenException .userError (SpecimenErrorCode .RESV_EDIT_NOT_ALLOWED , getLabel ());
13491348 }
@@ -1355,7 +1354,7 @@ public void updateStatus(String activityStatus, User user, Date date, String rea
13551354 if (Status .ACTIVITY_STATUS_DISABLED .getStatus ().equals (activityStatus )) {
13561355 disable (!isForceDelete );
13571356 } else if (Status .ACTIVITY_STATUS_CLOSED .getStatus ().equals (activityStatus )) {
1358- close (user , date , reason );
1357+ close (user , date , reason , comments );
13591358 } else if (Status .ACTIVITY_STATUS_ACTIVE .getStatus ().equals (activityStatus )) {
13601359 activate ();
13611360 }
@@ -1450,7 +1449,7 @@ public void distribute(DistributionOrderItem item) {
14501449 item .setStatus (DistributionOrderItem .Status .DISTRIBUTED );
14511450 setAvailabilityStatus (DISTRIBUTED );
14521451 } else if (item .isDistributedAndClosed ()) {
1453- close (order .getDistributor (), order .getExecutionDate (), "Distributed to " + dpShortTitle );
1452+ close (order .getDistributor (), order .getExecutionDate (), "Distributed" , "Distributed to " + dpShortTitle );
14541453 setAvailabilityStatus (DISTRIBUTED );
14551454 }
14561455 }
@@ -1559,12 +1558,20 @@ private void updateCreatedBy(User user) {
15591558
15601559 private void addDisposalEvent (User user , Date time , String reason , String comments ) {
15611560 SpecimenDisposalEvent event = new SpecimenDisposalEvent (this );
1562- event .setReason (reason );
1561+ if (StringUtils .isBlank (reason )) {
1562+ reason = Specimen .NOT_SPECIFIED ;
1563+ }
1564+
1565+ PermissibleValue pv = daoFactory .getPermissibleValueDao ().getByValue (PvAttributes .SPECIMEN_DISPOSE_REASON , reason );
1566+ if (pv == null ) {
1567+ throw OpenSpecimenException .userError (SpecimenErrorCode .INV_DISPOSE_REASON , reason );
1568+ }
1569+
1570+ event .setReason (pv );
15631571 event .setUser (user );
15641572 event .setTime (time );
15651573 event .setComments (comments );
15661574 event .saveOrUpdate ();
1567-
15681575 zeroOutAvailableQty ();
15691576 }
15701577
0 commit comments