@@ -65,8 +65,8 @@ final class ExistingBusinessIntake
|
||||
];
|
||||
abort_unless(in_array($business->status, $allowed[$action], true), 409, 'Transição indisponível neste estado.');
|
||||
if ($action === 'submitted') {
|
||||
if (($business->payload['wizard_version'] ?? null) === '1') {
|
||||
BusinessFormSchema::validateSubmission($business->payload);
|
||||
if (($business->payload['wizard_version'] ?? null) === '2') {
|
||||
BusinessFormSchema::validateSubmission($business->payload, $business->sector_id, $business->modality);
|
||||
$requiredKind = ['asset_sale' => 'asset', 'asset_lease' => 'asset', 'real_estate' => 'property',
|
||||
'agricultural_investment' => 'agricultural_investment', 'land_right' => 'land_right',
|
||||
'mining_license' => 'license', 'forestry_license' => 'license', 'capital_increase' => 'capital_request',
|
||||
@@ -78,11 +78,40 @@ final class ExistingBusinessIntake
|
||||
'confirmation_code' => ['required', Rule::in([$business->code])],
|
||||
'sector_id' => ['required', Rule::exists('sectors', 'id')->whereNull('deleted_at')->where('is_active', true)],
|
||||
])->validate();
|
||||
} elseif (($business->payload['wizard_version'] ?? null) === '1') {
|
||||
Validator::make($business->payload, [
|
||||
'proponent_type' => ['required'], 'proponent_name' => ['required'], 'tax_identifier' => ['required'],
|
||||
'contact_email' => ['required', 'email'], 'country' => ['required', 'regex:/^[A-Z]{2}$/'],
|
||||
'acting_capacity' => ['required'], 'declared_holder' => ['required'], 'location_notes' => ['required'],
|
||||
'legitimacy_declaration' => ['required', 'in:yes'],
|
||||
'mandate_reference' => ['required_if:acting_capacity,representative'],
|
||||
'mandate_valid_until' => ['required_if:acting_capacity,representative', 'nullable', 'date_format:Y-m-d', 'after_or_equal:today'],
|
||||
])->validate();
|
||||
Validator::make(['confirmation_code' => $confirmationCode], [
|
||||
'confirmation_code' => ['required', Rule::in([$business->code])],
|
||||
])->validate();
|
||||
}
|
||||
Validator::make([...$business->payload, 'consent' => $consent], [
|
||||
'description' => ['required', 'string', 'min:30'], 'source_reference' => ['required', 'string', 'min:10'],
|
||||
'valid_until' => ['required', 'date_format:Y-m-d', 'after_or_equal:today'], 'consent' => ['accepted'],
|
||||
])->validate();
|
||||
if (($business->payload['wizard_version'] ?? null) === '1') {
|
||||
$requiredKind = ['asset_sale' => 'asset', 'asset_lease' => 'asset', 'real_estate' => 'property',
|
||||
'agricultural_investment' => 'agricultural_investment', 'land_right' => 'land_right',
|
||||
'mining_license' => 'license', 'forestry_license' => 'license', 'capital_increase' => 'capital_request',
|
||||
'participation_sale' => 'participation'][$business->modality] ?? null;
|
||||
if ($requiredKind !== null && ! ExistingBusinessObject::where('business_id', $business->id)->where('kind', $requiredKind)->exists()) {
|
||||
throw ValidationException::withMessages(['objects' => 'Declare the applicable object in step 6: '.$requiredKind]);
|
||||
}
|
||||
}
|
||||
$submissionRules = [
|
||||
'description' => ['required', 'string', 'min:30'],
|
||||
'source_reference' => ['required', 'string', 'min:10'],
|
||||
'consent' => ['accepted'],
|
||||
// Deadlines are optional for newer and legacy payloads, but
|
||||
// an explicitly supplied deadline must never be expired.
|
||||
'valid_until' => ['nullable', 'date_format:Y-m-d', 'after_or_equal:today'],
|
||||
];
|
||||
if (($business->payload['wizard_version'] ?? null) === '1') {
|
||||
$submissionRules['valid_until'][0] = 'required';
|
||||
}
|
||||
Validator::make([...$business->payload, 'consent' => $consent], $submissionRules)->validate();
|
||||
}
|
||||
if ($action === OpportunityStatus::Approved->value) {
|
||||
$levelOneActor = DB::table('business_workflow_transitions')->where('existing_business_id', $business->id)
|
||||
|
||||
Reference in New Issue
Block a user