|
@@ -4,6 +4,7 @@ namespace App\Imports;
|
|
|
|
|
|
use App\Http\Requests\API\Requirement\CreateOrUpdateRequest;
|
|
use App\Http\Requests\API\Requirement\CreateOrUpdateRequest;
|
|
use App\Models\Enums\ObjectAction;
|
|
use App\Models\Enums\ObjectAction;
|
|
|
|
+use App\Models\Plan;
|
|
use App\Models\Project;
|
|
use App\Models\Project;
|
|
use App\Models\ProjectAsset;
|
|
use App\Models\ProjectAsset;
|
|
use App\Models\ProjectRequirement;
|
|
use App\Models\ProjectRequirement;
|
|
@@ -57,10 +58,20 @@ class RequirementImport implements ToCollection, WithHeadingRow
|
|
{
|
|
{
|
|
$this->validatorByCollection($collection, (new CreateOrUpdateRequest())->rules(), additional: function ($item) {
|
|
$this->validatorByCollection($collection, (new CreateOrUpdateRequest())->rules(), additional: function ($item) {
|
|
if (! $item['asset_id']) {
|
|
if (! $item['asset_id']) {
|
|
- return null;
|
|
|
|
|
|
+ return "Asset cannot be empty.";
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if ($item['plan_id']) {
|
|
|
|
+ $plan = Plan::query()->where("asset_id", $item['asset_id'])->where("id", $item['plan_id'])->first();
|
|
|
|
+ if (! $plan) {
|
|
|
|
+ return "Plans are not assets.";
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
$projectIDs = array_filter(array_unique(explode(',', $item['project_ids'])));
|
|
$projectIDs = array_filter(array_unique(explode(',', $item['project_ids'])));
|
|
|
|
+ if (! $projectIDs) {
|
|
|
|
+ return null;
|
|
|
|
+ }
|
|
|
|
|
|
$count = ProjectAsset::query()->where("asset_id", $item['asset_id'])->whereIn('id', $projectIDs)->count();
|
|
$count = ProjectAsset::query()->where("asset_id", $item['asset_id'])->whereIn('id', $projectIDs)->count();
|
|
if ($count != count($projectIDs)) {
|
|
if ($count != count($projectIDs)) {
|