Compare commits

...

2 Commits

Author SHA1 Message Date
Simon Pocrnjič
137e0b45ad Merge remote-tracking branch 'origin/master' into Development 2026-01-05 20:45:18 +01:00
Simon Pocrnjič
2ad24216ae Added Client case person address to segment tables and exports 2026-01-05 19:41:39 +01:00
4 changed files with 19 additions and 3 deletions

View File

@ -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),

View File

@ -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',
])

View File

@ -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')

View File

@ -49,11 +49,12 @@ const clientComboboxOpen = ref(false);
const columns = [
{ key: "reference", label: "Pogodba", sortable: false },
{ key: "client_case", label: "Primer", sortable: false },
{ key: "address", label: "Naslov", sortable: false },
{ key: "client", label: "Stranka", sortable: false },
{ key: "type", label: "Vrsta", sortable: false },
{ key: "start_date", label: "Začetek", sortable: false },
{ key: "end_date", label: "Konec", sortable: false },
{ key: "account", label: "Stanje", align: "right", sortable: false },
{ key: "account", label: "Stanje", align: "right" },
];
const exportDialogOpen = ref(false);