implemented showing members of companies
This commit is contained in:
@@ -17,9 +17,8 @@ import de.srsoftware.umbrella.core.BaseHandler;
|
||||
import de.srsoftware.umbrella.core.api.CompanyService;
|
||||
import de.srsoftware.umbrella.core.api.UserService;
|
||||
import de.srsoftware.umbrella.core.exceptions.UmbrellaException;
|
||||
import de.srsoftware.umbrella.core.model.Company;
|
||||
import de.srsoftware.umbrella.core.model.Token;
|
||||
import de.srsoftware.umbrella.core.model.UmbrellaUser;
|
||||
import de.srsoftware.umbrella.core.model.*;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.*;
|
||||
|
||||
@@ -110,7 +109,23 @@ public class CompanyModule extends BaseHandler implements CompanyService {
|
||||
|
||||
@Override
|
||||
public Map<Long,Company> listCompaniesOf(UmbrellaUser user) throws UmbrellaException {
|
||||
return companyDb.listCompaniesOf(user.id());
|
||||
return loadMembers(companyDb.listCompaniesOf(user.id()));
|
||||
}
|
||||
|
||||
public Map<Long,Company> loadMembers(Map<Long,Company> companyMap){
|
||||
loadMembers(companyMap.values());
|
||||
return companyMap;
|
||||
}
|
||||
|
||||
public Collection<Company> loadMembers(Collection<Company> companyList) {
|
||||
var userMap = new HashMap<Long,UmbrellaUser>();
|
||||
for (var company : companyList){
|
||||
for (var userId : companyDb.getMembers(company.id())){
|
||||
var user = userMap.computeIfAbsent(userId,k -> users.loadUser(userId));
|
||||
company.members().put(userId,user);
|
||||
}
|
||||
}
|
||||
return companyList;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -9,10 +9,7 @@ import de.srsoftware.tools.Mappable;
|
||||
import de.srsoftware.umbrella.core.exceptions.UmbrellaException;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.Currency;
|
||||
import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.*;
|
||||
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
@@ -23,6 +20,7 @@ public class Company implements Mappable {
|
||||
private long lastCustomerNumber;
|
||||
private int decimals;
|
||||
private final Set<String> dirtyFields = new HashSet<>();
|
||||
private final Map<Long,UmbrellaUser> members;
|
||||
|
||||
private Company(long id){
|
||||
this(id,null,null,null,null,null,null,null,0,2,null,null,null,null);
|
||||
@@ -43,6 +41,7 @@ public class Company implements Mappable {
|
||||
this.currency = currency;
|
||||
this.email = email;
|
||||
this.bankAccount = bankAccount;
|
||||
this.members = new HashMap<>();
|
||||
}
|
||||
|
||||
public String address(){
|
||||
@@ -98,6 +97,10 @@ public class Company implements Mappable {
|
||||
return lastCustomerNumber;
|
||||
}
|
||||
|
||||
public Map<Long, UmbrellaUser> members(){
|
||||
return members;
|
||||
}
|
||||
|
||||
public String name(){
|
||||
return name;
|
||||
}
|
||||
@@ -175,6 +178,10 @@ public class Company implements Mappable {
|
||||
|
||||
@Override
|
||||
public Map<String, Object> toMap() {
|
||||
var memberMap = new HashMap<Long,Map<String,Object>>();
|
||||
if (members != null) for (var entry : members.entrySet()){
|
||||
memberMap.put(entry.getKey(),entry.getValue().toMap());
|
||||
}
|
||||
return Map.ofEntries(
|
||||
entry(ID,id),
|
||||
entry(NAME,name),
|
||||
@@ -189,7 +196,8 @@ public class Company implements Mappable {
|
||||
entry(CUSTOMER_NUMBER_PREFIX,emptyIfNull(customerNumberPrefix)),
|
||||
entry(FIELD_CURRENCY,emptyIfNull(currency)),
|
||||
entry(EMAIL,emptyIfNull(email)),
|
||||
entry(FIELD_BANK_ACCOUNT,emptyIfNull(bankAccount))
|
||||
entry(FIELD_BANK_ACCOUNT,emptyIfNull(bankAccount)),
|
||||
entry(MEMBERS,memberMap)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -84,7 +84,13 @@
|
||||
<tr onclick={e => showDetail(cid)}>
|
||||
<td>{company.name}</td>
|
||||
<td>{company.email}</td>
|
||||
<td>{company.address.replace('\r','').replaceAll('\n',' / ')}</td>
|
||||
<td>
|
||||
<ul>
|
||||
{#each Object.entries(company.members) as [uid,member]}
|
||||
<li>{member.name}</li>
|
||||
{/each}
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
{#if selected==cid}
|
||||
<tr>
|
||||
|
||||
@@ -247,7 +247,7 @@
|
||||
<tr>
|
||||
<th>
|
||||
{t('tasks')}
|
||||
<button onclick={addTask}>{t('add_task')}</button>
|
||||
<button onclick={addTask}>{t('add_object',{object:t('task')})}</button>
|
||||
</th>
|
||||
<td class="tasks">
|
||||
{#if tasks}
|
||||
|
||||
Reference in New Issue
Block a user