diff --git a/app/Exports/SegmentContractsExport.php b/app/Exports/SegmentContractsExport.php
index be0462d..6da9156 100644
--- a/app/Exports/SegmentContractsExport.php
+++ b/app/Exports/SegmentContractsExport.php
@@ -34,6 +34,7 @@ class SegmentContractsExport extends DefaultValueBinder implements FromQuery, Sh
public const COLUMN_METADATA = [
'reference' => ['label' => 'Pogodba'],
'client_case' => ['label' => 'Primer'],
+ 'address' => ['label' => 'Naslov'],
'client' => ['label' => 'Stranka'],
'type' => ['label' => 'Vrsta'],
'start_date' => ['label' => 'Začetek'],
@@ -107,6 +108,7 @@ private function resolveValue(Contract $contract, string $column): mixed
return match ($column) {
'reference' => $contract->reference,
'client_case' => optional($contract->clientCase?->person)->full_name,
+ 'address' => optional($contract->clientCase?->person?->address)->address,
'client' => optional($contract->clientCase?->client?->person)->full_name,
'type' => optional($contract->type)->name,
'start_date' => $this->formatDate($contract->start_date),
diff --git a/app/Http/Controllers/SegmentController.php b/app/Http/Controllers/SegmentController.php
index 5fcc1b5..cd3fe1c 100644
--- a/app/Http/Controllers/SegmentController.php
+++ b/app/Http/Controllers/SegmentController.php
@@ -64,6 +64,12 @@ public function show(Segment $segment)
->withQueryString();
$contracts = $this->hydrateClientShortcut($contracts);
+
+ // Hide addresses array since we're using the singular address relationship
+ $contracts->getCollection()->each(function ($contract) {
+ $contract->clientCase?->person?->makeHidden('addresses');
+ $contract->clientCase?->client?->person?->makeHidden('addresses');
+ });
$clients = Client::query()
->whereHas('clientCases.contracts.segments', function ($q) use ($segment) {
@@ -191,8 +197,7 @@ private function buildContractsQuery(Segment $segment, ?string $search, ?string
->where('contract_segment.active', '=', 1);
})
->with([
- 'clientCase.person',
- 'clientCase.client.person',
+ 'clientCase.person.address',
'type',
'account',
])
diff --git a/app/Models/Person/Person.php b/app/Models/Person/Person.php
index f3fe192..ba4ea8a 100644
--- a/app/Models/Person/Person.php
+++ b/app/Models/Person/Person.php
@@ -112,6 +112,14 @@ public function addresses(): HasMany
->orderBy('id');
}
+ public function address(): HasOne
+ {
+ return $this->hasOne(\App\Models\Person\PersonAddress::class)
+ ->with(['type'])
+ ->where('active', '=', 1)
+ ->oldestOfMany('id');
+ }
+
public function emails(): HasMany
{
return $this->hasMany(\App\Models\Email::class, 'person_id')
diff --git a/resources/js/Pages/Segments/Show.vue b/resources/js/Pages/Segments/Show.vue
index 70ab382..d218f35 100644
--- a/resources/js/Pages/Segments/Show.vue
+++ b/resources/js/Pages/Segments/Show.vue
@@ -22,6 +22,7 @@ const selectedClient = ref(initialClient);
const columns = [
{ key: "reference", label: "Pogodba", sortable: true },
{ key: "client_case", label: "Primer" },
+ { key: "address", label: "Naslov" },
{ key: "client", label: "Stranka" },
{ key: "type", label: "Vrsta" },
{ key: "start_date", label: "Začetek", sortable: true },
@@ -43,7 +44,9 @@ const totalContracts = computed(
const currentPageCount = computed(() => props.contracts?.data?.length ?? 0);
const allColumnsSelected = computed(() => exportColumns.value.length === columns.length);
-const exportDisabled = computed(() => exportColumns.value.length === 0 || isExporting.value);
+const exportDisabled = computed(
+ () => exportColumns.value.length === 0 || isExporting.value
+);
function toggleAllColumns(checked) {
exportColumns.value = checked ? columns.map((col) => col.key) : [];
@@ -281,6 +284,10 @@ function extractFilenameFromHeaders(headers) {
{{ row.client_case?.person?.full_name || "-" }}
+
+
+ {{ row.client_case?.person?.address?.address || "-" }}
+
{{ row.client?.person?.full_name || "-" }}