checkPermission($organization, 'organizations:view'); $showBillableRate = $this->member($organization)->role !== Role::Employee->value || $organization->employees_can_see_billable_rates; return new OrganizationResource($organization, $showBillableRate); } /** * Update organization * * @operationId updateOrganization * * @throws AuthorizationException */ public function update(Organization $organization, OrganizationUpdateRequest $request, BillableRateService $billableRateService): OrganizationResource { $this->checkPermission($organization, 'organizations:update'); if ($request->getName() !== null) { $organization->name = $request->getName(); } if ($request->getEmployeesCanSeeBillableRates() !== null) { $organization->employees_can_see_billable_rates = $request->getEmployeesCanSeeBillableRates(); } if ($request->getNumberFormat() !== null) { $organization->number_format = $request->getNumberFormat(); } if ($request->getCurrencyFormat() !== null) { $organization->currency_format = $request->getCurrencyFormat(); } if ($request->getDateFormat() !== null) { $organization->date_format = $request->getDateFormat(); } if ($request->getIntervalFormat() !== null) { $organization->interval_format = $request->getIntervalFormat(); } if ($request->getTimeFormat() !== null) { $organization->time_format = $request->getTimeFormat(); } $hasBillableRate = $request->has('billable_rate'); if ($hasBillableRate) { $oldBillableRate = $organization->billable_rate; $organization->billable_rate = $request->getBillableRate(); } $organization->save(); if ($hasBillableRate && $oldBillableRate !== $request->getBillableRate()) { $billableRateService->updateTimeEntriesBillableRateForOrganization($organization); } return new OrganizationResource($organization, true); } }