Erweiterungen
This commit is contained in:
@@ -14,10 +14,12 @@ import com.vaadin.flow.theme.lumo.LumoUtility;
|
|||||||
import de.assecutor.votianlt.model.CargoItem;
|
import de.assecutor.votianlt.model.CargoItem;
|
||||||
import de.assecutor.votianlt.model.Job;
|
import de.assecutor.votianlt.model.Job;
|
||||||
import de.assecutor.votianlt.model.TaskEntry;
|
import de.assecutor.votianlt.model.TaskEntry;
|
||||||
|
import de.assecutor.votianlt.model.AppUser;
|
||||||
import de.assecutor.votianlt.pages.base.ui.component.ViewToolbar;
|
import de.assecutor.votianlt.pages.base.ui.component.ViewToolbar;
|
||||||
import de.assecutor.votianlt.repository.CargoItemRepository;
|
import de.assecutor.votianlt.repository.CargoItemRepository;
|
||||||
import de.assecutor.votianlt.repository.JobRepository;
|
import de.assecutor.votianlt.repository.JobRepository;
|
||||||
import de.assecutor.votianlt.repository.TaskRepository;
|
import de.assecutor.votianlt.repository.TaskRepository;
|
||||||
|
import de.assecutor.votianlt.pages.service.AppUserService;
|
||||||
import jakarta.annotation.security.RolesAllowed;
|
import jakarta.annotation.security.RolesAllowed;
|
||||||
import org.bson.types.ObjectId;
|
import org.bson.types.ObjectId;
|
||||||
|
|
||||||
@@ -33,15 +35,18 @@ public class JobSummaryView extends Main implements HasUrlParameter<String> {
|
|||||||
private final JobRepository jobRepository;
|
private final JobRepository jobRepository;
|
||||||
private final CargoItemRepository cargoItemRepository;
|
private final CargoItemRepository cargoItemRepository;
|
||||||
private final TaskRepository taskRepository;
|
private final TaskRepository taskRepository;
|
||||||
|
private final AppUserService appUserService;
|
||||||
|
|
||||||
private VerticalLayout content;
|
private VerticalLayout content;
|
||||||
|
|
||||||
public JobSummaryView(JobRepository jobRepository,
|
public JobSummaryView(JobRepository jobRepository,
|
||||||
CargoItemRepository cargoItemRepository,
|
CargoItemRepository cargoItemRepository,
|
||||||
TaskRepository taskRepository) {
|
TaskRepository taskRepository,
|
||||||
|
AppUserService appUserService) {
|
||||||
this.jobRepository = jobRepository;
|
this.jobRepository = jobRepository;
|
||||||
this.cargoItemRepository = cargoItemRepository;
|
this.cargoItemRepository = cargoItemRepository;
|
||||||
this.taskRepository = taskRepository;
|
this.taskRepository = taskRepository;
|
||||||
|
this.appUserService = appUserService;
|
||||||
|
|
||||||
setSizeFull();
|
setSizeFull();
|
||||||
addClassNames(LumoUtility.BoxSizing.BORDER, LumoUtility.Display.FLEX,
|
addClassNames(LumoUtility.BoxSizing.BORDER, LumoUtility.Display.FLEX,
|
||||||
@@ -157,7 +162,7 @@ public class JobSummaryView extends Main implements HasUrlParameter<String> {
|
|||||||
infoBox.add(new Span("Digitale Abwicklung per App: aktiviert"));
|
infoBox.add(new Span("Digitale Abwicklung per App: aktiviert"));
|
||||||
}
|
}
|
||||||
if (job.getAppUser() != null && !job.getAppUser().isBlank()) {
|
if (job.getAppUser() != null && !job.getAppUser().isBlank()) {
|
||||||
infoBox.add(new Span("App-Nutzer: " + job.getAppUser()));
|
infoBox.add(new Span("App-Nutzer: " + resolveAppUserName(job.getAppUser())));
|
||||||
}
|
}
|
||||||
|
|
||||||
cargoBox.setWidth("50%");
|
cargoBox.setWidth("50%");
|
||||||
@@ -215,6 +220,22 @@ public class JobSummaryView extends Main implements HasUrlParameter<String> {
|
|||||||
return nf.format(price);
|
return nf.format(price);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String resolveAppUserName(String appUserIdString) {
|
||||||
|
try {
|
||||||
|
ObjectId id = new ObjectId(appUserIdString);
|
||||||
|
AppUser au = appUserService.findById(id);
|
||||||
|
if (au != null) {
|
||||||
|
String fn = au.getVorname();
|
||||||
|
String ln = au.getNachname();
|
||||||
|
String name = (fn != null ? fn : "").trim() + (fn != null && ln != null ? " " : "") + (ln != null ? ln : "");
|
||||||
|
if (!name.isBlank()) return name;
|
||||||
|
if (au.getBezeichnung() != null && !au.getBezeichnung().isBlank()) return au.getBezeichnung();
|
||||||
|
if (au.getEmail() != null && !au.getEmail().isBlank()) return au.getEmail();
|
||||||
|
}
|
||||||
|
} catch (Exception ignored) { }
|
||||||
|
return appUserIdString; // Fallback: show raw string if lookup fails
|
||||||
|
}
|
||||||
|
|
||||||
private void addRouteMap(Job job) {
|
private void addRouteMap(Job job) {
|
||||||
// Baue Adress-Strings
|
// Baue Adress-Strings
|
||||||
String origin = (concatAddress(job.getPickupStreet(), job.getPickupHouseNumber()) + ", " + concatZipCity(job.getPickupZip(), job.getPickupCity())).trim();
|
String origin = (concatAddress(job.getPickupStreet(), job.getPickupHouseNumber()) + ", " + concatZipCity(job.getPickupZip(), job.getPickupCity())).trim();
|
||||||
|
|||||||
Reference in New Issue
Block a user