@@ -8,6 +8,7 @@ use App\Models\User;
|
||||
use Brick\Math\BigDecimal;
|
||||
use Carbon\CarbonImmutable;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
use Illuminate\Validation\ValidationException;
|
||||
|
||||
class OrganizationConfiguration
|
||||
@@ -77,6 +78,33 @@ class OrganizationConfiguration
|
||||
}
|
||||
$this->assign($actor, $target->id, $data['profile_ids'], $data['maintenance'] ?? false, $data['expires_at'] ?? null, $data['reason']);
|
||||
$after = ['user_id' => $target->id, 'profile_ids' => $data['profile_ids'], 'maintenance' => $data['maintenance'] ?? false, 'expires_at' => $data['expires_at'] ?? null, 'reason' => $data['reason']];
|
||||
} elseif ($command === 'comparison') {
|
||||
$company = Tenant::query()->findOrFail($actor->tenant_id);
|
||||
$before = $company->only(['comparison_policy']);
|
||||
$current = app(ComparisonPolicy::class)->company($company);
|
||||
$policy = app(ComparisonPolicy::class)->checked([...$data, 'revision' => $current['revision'] + 1, 'configured' => true]);
|
||||
$company->update(['comparison_policy' => $policy]);
|
||||
$after = ['comparison_policy' => $policy, 'reason' => $data['reason'], 'scope' => 'new_requisitions_only'];
|
||||
} elseif ($command === 'ai_plan') {
|
||||
abort_unless(Schema::hasColumn('tenants', 'intelligence_policy'), 503, 'Instalação da configuração de inteligência pendente.');
|
||||
$company = Tenant::query()->findOrFail($actor->tenant_id);
|
||||
$before = $company->only(['intelligence_policy']);
|
||||
$policy = app(IntelligencePolicy::class)->company($company);
|
||||
$policy = [...$policy, 'revision' => $policy['revision'] + 1, 'configured' => true, 'ai_plan' => app(AiPreparationPlan::class)->checked($data)];
|
||||
$company->update(['intelligence_policy' => $policy]);
|
||||
$after = ['intelligence_policy' => $policy, 'reason' => $data['reason'], 'scope' => 'draft_preparations_only', 'external_processing_enabled' => false];
|
||||
} elseif ($command === 'intelligence') {
|
||||
abort_unless(Schema::hasColumn('tenants', 'intelligence_policy'), 503, 'Instalação da configuração de inteligência pendente.');
|
||||
$company = Tenant::query()->findOrFail($actor->tenant_id);
|
||||
$before = $company->only(['intelligence_policy']);
|
||||
$policy = app(IntelligencePolicy::class)->next($company, $data);
|
||||
$company->update(['intelligence_policy' => $policy]);
|
||||
$after = ['intelligence_policy' => $policy, 'reason' => $data['reason'], 'scope' => 'future_consultations_only', 'external_processing_enabled' => false];
|
||||
} elseif ($command === 'tax') {
|
||||
$company = Tenant::query()->findOrFail($actor->tenant_id);
|
||||
$before = $company->only(['default_tax_rate']);
|
||||
$company->update(['default_tax_rate' => (string) BigDecimal::of($data['default_tax_rate'])->toScale(2)]);
|
||||
$after = [...$company->only(['default_tax_rate']), 'reason' => $data['reason'], 'scope' => 'new_lines_only'];
|
||||
} elseif ($command === 'rules') {
|
||||
$company = Tenant::query()->findOrFail($actor->tenant_id);
|
||||
$before = $company->only(['first_limit_minor', 'second_limit_minor', 'approval_includes_tax', 'rules_provisional']);
|
||||
|
||||
Reference in New Issue
Block a user