changes
This commit is contained in:
@@ -118,6 +118,7 @@ public function contracts(Client $client, Request $request)
|
||||
$from = $request->input('from');
|
||||
$to = $request->input('to');
|
||||
$search = $request->input('search');
|
||||
$segmentId = $request->input('segment');
|
||||
|
||||
$contractsQuery = \App\Models\Contract::query()
|
||||
->whereHas('clientCase', function ($q) use ($client) {
|
||||
@@ -149,8 +150,16 @@ public function contracts(Client $client, Request $request)
|
||||
});
|
||||
});
|
||||
})
|
||||
->when($segmentId, function ($q) use ($segmentId) {
|
||||
$q->whereHas('segments', function ($s) use ($segmentId) {
|
||||
$s->where('segments.id', $segmentId)
|
||||
->where('contract_segment.active', true);
|
||||
});
|
||||
})
|
||||
->orderByDesc('start_date');
|
||||
|
||||
$segments = \App\Models\Segment::orderBy('name')->get(['id', 'name']);
|
||||
|
||||
$types = [
|
||||
'address_types' => \App\Models\Person\AddressType::all(),
|
||||
'phone_types' => \App\Models\Person\PhoneType::all(),
|
||||
@@ -159,7 +168,8 @@ public function contracts(Client $client, Request $request)
|
||||
return Inertia::render('Client/Contracts', [
|
||||
'client' => $data,
|
||||
'contracts' => $contractsQuery->paginate($request->integer('perPage', 20))->withQueryString(),
|
||||
'filters' => $request->only(['from', 'to', 'search']),
|
||||
'filters' => $request->only(['from', 'to', 'search', 'segment']),
|
||||
'segments' => $segments,
|
||||
'types' => $types,
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -415,6 +415,15 @@ public function missingContracts(Import $import)
|
||||
->where('client_cases.client_id', $import->client_id)
|
||||
->where('contracts.active', 1)
|
||||
->whereNull('contracts.deleted_at')
|
||||
// Exclude contracts that have any ACTIVE segment marked as excluded
|
||||
->whereNotExists(function ($sq) {
|
||||
$sq->select(\DB::raw(1))
|
||||
->from('contract_segment')
|
||||
->join('segments', 'segments.id', '=', 'contract_segment.segment_id')
|
||||
->whereColumn('contract_segment.contract_id', 'contracts.id')
|
||||
->where('contract_segment.active', true)
|
||||
->where('segments.exclude', true);
|
||||
})
|
||||
->when(count($present) > 0, function ($q) use ($present) {
|
||||
$q->whereNotIn('contracts.reference', $present);
|
||||
})
|
||||
|
||||
@@ -120,6 +120,7 @@ public function update(UpdateSegmentRequest $request, Segment $segment)
|
||||
'name' => $data['name'],
|
||||
'description' => $data['description'] ?? null,
|
||||
'active' => $data['active'] ?? $segment->active,
|
||||
'exclude' => $data['exclude'] ?? $segment->exclude
|
||||
]);
|
||||
|
||||
return to_route('settings.segments')->with('success', 'Segment updated');
|
||||
|
||||
@@ -17,6 +17,7 @@ public function rules(): array
|
||||
'name' => ['required', 'string', 'max:50'],
|
||||
'description' => ['nullable', 'string', 'max:255'],
|
||||
'active' => ['boolean'],
|
||||
'exclude' => ['boolean']
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user