From a96c6b94e237c6dfa5e0256835fe0b7737bd5f6f Mon Sep 17 00:00:00 2001
From: felmer <felmer>
Date: Tue, 11 Apr 2017 08:09:02 +0000
Subject: [PATCH] SSDM-4187: Creating correct identifier of project samples in
 SampleLister. This is a bug fix for GeneralInformationService.

SVN: 38038
---
 .../fetchoptions/samplelister/ISampleListingQuery.java |  3 ++-
 .../bo/fetchoptions/samplelister/SampleLister.java     | 10 ++++++++--
 .../bo/fetchoptions/samplelister/SampleRecord.java     |  4 +++-
 3 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/fetchoptions/samplelister/ISampleListingQuery.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/fetchoptions/samplelister/ISampleListingQuery.java
index 9e2631aa756..29dff6598ee 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/fetchoptions/samplelister/ISampleListingQuery.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/fetchoptions/samplelister/ISampleListingQuery.java
@@ -44,12 +44,13 @@ public interface ISampleListingQuery extends BaseQuery
             + "s.modification_timestamp as s_modification_timestamp, sp.code as sp_code, "
             + "st.id as st_id, st.code as st_code, pe.first_name as pe_first_name, "
             + "pe.last_name as pe_last_name, pe.user_id as pe_user_id, pe.email as pe_email, "
-            + "e.code as exp_code, p.code as proj_code, ps.code as proj_space_code, "
+            + "e.code as exp_code, p.code as proj_code, ps.code as proj_space_code, sap.code as samp_proj_code, "
             + "mod.first_name as mod_first_name, mod.last_name as mod_last_name, "
             + "mod.user_id as mod_user_id, mod.email as mod_email "
             + "from samples as s join sample_types as st on s.saty_id = st.id "
             + "left join samples as cs on s.samp_id_part_of = cs.id "
             + "left join spaces as sp on s.space_id = sp.id "
+            + "left join projects as sap on s.proj_id = sap.id "
             + "left join experiments as e on s.expe_id = e.id "
             + "left join projects as p on e.proj_id = p.id "
             + "left join spaces as ps on p.space_id = ps.id "
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/fetchoptions/samplelister/SampleLister.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/fetchoptions/samplelister/SampleLister.java
index 7a0d6b1c735..8048450ace1 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/fetchoptions/samplelister/SampleLister.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/fetchoptions/samplelister/SampleLister.java
@@ -368,8 +368,14 @@ public class SampleLister implements ISampleLister
             sampleCode = containerCode + ":" + sampleCode;
         }
         initializer.setCode(sampleCode);
-        initializer.setIdentifier(spaceCode == null ? "/" + sampleCode : "/" + spaceCode + "/"
-                + sampleCode);
+        if (sampleRecord.samp_proj_code != null)
+        {
+            initializer.setIdentifier("/" + spaceCode + "/" + sampleRecord.samp_proj_code + "/" + sampleCode);
+        } else
+        {
+            initializer.setIdentifier(spaceCode == null ? "/" + sampleCode : "/" + spaceCode + "/"
+                    + sampleCode);
+        }
         initializer.setPermId(sampleRecord.s_perm_id);
         EntityRegistrationDetailsInitializer detailsInitializer =
                 new EntityRegistrationDetailsInitializer();
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/fetchoptions/samplelister/SampleRecord.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/fetchoptions/samplelister/SampleRecord.java
index daf6fdfc28b..ce5cb37886d 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/fetchoptions/samplelister/SampleRecord.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/fetchoptions/samplelister/SampleRecord.java
@@ -69,7 +69,9 @@ public class SampleRecord
     public String proj_code;
 
     public String proj_space_code;
-
+    
+    public String samp_proj_code;
+    
     public List<SampleRecord> children;
 
     public List<SampleRecord> parents;
-- 
GitLab