Skip to content

Commit 3c09573

Browse files
author
Ruslan Baidan
committed
Fixed the long objects' names generation issue and only add 'Imp #' within the same category.
1 parent 9c06acb commit 3c09573

File tree

3 files changed

+22
-9
lines changed

3 files changed

+22
-9
lines changed

src/Model/Table/MonarcObjectTable.php

+13-5
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
use Monarc\Core\Service\ConnectedUserService;
1919
use Monarc\FrontOffice\Model\Entity\Anr;
2020
use Monarc\FrontOffice\Model\Entity\MonarcObject;
21+
use Monarc\FrontOffice\Model\Entity\ObjectCategory;
2122

2223
/**
2324
* Class MonarcObjectTable
@@ -82,20 +83,27 @@ public function findOneByAnrAssetNameScopeAndCategory(
8283
->getOneOrNullResult();
8384
}
8485

85-
public function findOneByAnrAndName(
86+
public function findOneByAnrCategoryAndName(
8687
AnrSuperClass $anr,
88+
?ObjectCategory $objectCategory,
8789
string $nameKey,
8890
string $nameValue
8991
): ?MonarcObject {
90-
return $this->getRepository()
92+
$queryBuilder = $this->getRepository()
9193
->createQueryBuilder('mo')
9294
->where('mo.anr = :anr')
9395
->andWhere('mo.' . $nameKey . ' = :name')
9496
->setParameter('anr', $anr)
9597
->setParameter('name', $nameValue)
96-
->setMaxResults(1)
97-
->getQuery()
98-
->getOneOrNullResult();
98+
->setMaxResults(1);
99+
if ($objectCategory === null) {
100+
$queryBuilder->andWhere('mo.category IS NULL');
101+
} else {
102+
$queryBuilder->andWhere('mo.category = :category')
103+
->setParameter('category', $objectCategory);
104+
}
105+
106+
return $queryBuilder->getQuery()->getOneOrNullResult();
99107
}
100108

101109
/**

src/Service/InstanceImportService.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -2314,8 +2314,8 @@ private function createInstance(
23142314
$instanceData = $data['instance'];
23152315
$instance = (new Instance())
23162316
->setAnr($anr)
2317-
->setLabels($instanceData)
2318-
->setNames($instanceData)
2317+
->setLabels($monarcObject->getLabels())
2318+
->setNames($monarcObject->getNames())
23192319
->setDisponibility(!empty($instanceData['disponibility']) ? (float)$instanceData['disponibility'] : 0)
23202320
->setLevel($parentInstance === null ? Instance::LEVEL_ROOT : $instanceData['level'])
23212321
->setRoot($parentInstance === null ? null : ($parentInstance->getRoot() ?? $parentInstance))

src/Service/ObjectImportService.php

+7-2
Original file line numberDiff line numberDiff line change
@@ -330,13 +330,18 @@ private function setMonarcObjectName(
330330
string $nameFiledKey,
331331
int $index = 1
332332
): ObjectSuperClass {
333-
$existedObject = $this->monarcObjectTable->findOneByAnrAndName(
333+
$existedObject = $this->monarcObjectTable->findOneByAnrCategoryAndName(
334334
$monarcObject->getAnr(),
335+
$monarcObject->getCategory(),
335336
$nameFiledKey,
336337
$objectData[$nameFiledKey]
337338
);
338339
if ($existedObject !== null) {
339-
$objectData[$nameFiledKey] .= ' - Imp. #' . $index;
340+
if (strpos($objectData[$nameFiledKey], ' - Imp. #') !== false) {
341+
$objectData[$nameFiledKey] = preg_replace('/#\d+/', '#' . $index, $objectData[$nameFiledKey]);
342+
} else {
343+
$objectData[$nameFiledKey] .= ' - Imp. #' . $index;
344+
}
340345

341346
return $this->setMonarcObjectName($monarcObject, $objectData, $nameFiledKey, $index + 1);
342347
}

0 commit comments

Comments
 (0)