oportunidades 7
tests / ci (push) Waiting to run

This commit is contained in:
2026-10-13 11:40:29 +02:00
parent 20971d523f
commit 287e991486
2902 changed files with 1085456 additions and 25957 deletions
+7 -4
View File
@@ -204,10 +204,10 @@ class VirtualDesk
});
}
/** @return array<string,mixed> */
public function requestToolPrefill(User $actor, \stdClass $request): ?array
/** @return array<string,mixed>|null */
public function requestToolPrefill(User $actor, \stdClass $request, bool $lock = false): ?array
{
$case = $this->case($actor, $request->case_id);
$case = $this->case($actor, $request->case_id, false, $lock);
$payload = $this->decode($request->payload);
if (! config('investor-path.enabled') || (int) $case->user_id !== $actor->id || ! $case->simulation_id || $case->closed_at
|| ! in_array($request->status, ['draft', 'returned'], true) || trim((string) ($payload['description'] ?? '')) !== ''
@@ -218,6 +218,9 @@ class VirtualDesk
$draftRequest = Request::create('/');
$draftRequest->setUserResolver(fn () => $actor);
$draft = app(SimulationFormDrafts::class)->find($case->simulation_id, $draftRequest);
if ($lock) {
$draft = SimulationFormDraft::query()->whereKey($draft->id)->lockForUpdate()->firstOrFail();
}
$economic = SimulationFormDraft::decryptSnapshot($draft->economic_snapshot);
$description = (string) ($economic['project_summary'] ?? '');
if (trim($description) === '') {
@@ -313,7 +316,7 @@ class VirtualDesk
abort_unless(in_array($request->status, ['draft', 'returned'], true) && $request->version === (int) $data['version'], 409, 'Pedido alterado ou já submetido.');
$prefill = null;
if (! empty($data['tool_prefill'])) {
$prefill = $this->requestToolPrefill($actor, $request);
$prefill = $this->requestToolPrefill($actor, $request, true);
$source = $data['tool_prefill'];
if ($submit || ! $prefill || $source['draft_id'] !== $prefill['draft_id'] || (int) $source['draft_version'] !== $prefill['draft_version']
|| ! hash_equals($prefill['snapshot_sha256'], $source['snapshot_sha256'])