diff --git a/app/modules/web/Controllers/Traits/ItemTrait.php b/app/modules/web/Controllers/Traits/ItemTrait.php index 6aa13622..0657eaba 100644 --- a/app/modules/web/Controllers/Traits/ItemTrait.php +++ b/app/modules/web/Controllers/Traits/ItemTrait.php @@ -111,7 +111,7 @@ trait ItemTrait try { foreach ($customFields as $id => $value) { $customFieldData = new CustomFieldData(); - $customFieldData->setId($itemId); + $customFieldData->setItemId($itemId); $customFieldData->setModuleId($moduleId); $customFieldData->setDefinitionId($id); $customFieldData->setData($value); @@ -164,12 +164,12 @@ trait ItemTrait try { foreach ($customFields as $id => $value) { $customFieldData = new CustomFieldData(); - $customFieldData->setId($itemId); + $customFieldData->setItemId($itemId); $customFieldData->setModuleId($moduleId); $customFieldData->setDefinitionId($id); $customFieldData->setData($value); - if ($customFieldService->update($customFieldData) !== 1) { + if ($customFieldService->updateOrCreateData($customFieldData) === false) { throw new SPException(__u('Error al actualizar los datos del campo personalizado')); } } diff --git a/lib/SP/Repositories/CustomField/CustomFieldRepository.php b/lib/SP/Repositories/CustomField/CustomFieldRepository.php index 531dda46..6652ca68 100644 --- a/lib/SP/Repositories/CustomField/CustomFieldRepository.php +++ b/lib/SP/Repositories/CustomField/CustomFieldRepository.php @@ -67,7 +67,7 @@ class CustomFieldRepository extends Repository implements RepositoryItemInterfac $itemData->getData(), $itemData->getKey(), $itemData->getModuleId(), - $itemData->getId(), + $itemData->getItemId(), $itemData->getDefinitionId() ]); @@ -132,7 +132,7 @@ class CustomFieldRepository extends Repository implements RepositoryItemInterfac $queryData = new QueryData(); $queryData->setQuery($query); $queryData->setParams([ - $itemData->getId(), + $itemData->getItemId(), $itemData->getModuleId(), $itemData->getDefinitionId(), $itemData->getData(), @@ -148,7 +148,7 @@ class CustomFieldRepository extends Repository implements RepositoryItemInterfac * @param int $id * @param int $moduleId * - * @return bool + * @return int * @throws QueryException * @throws ConstraintException */ @@ -173,7 +173,7 @@ class CustomFieldRepository extends Repository implements RepositoryItemInterfac * @param int $moduleId * @param int $definitionId * - * @return bool + * @return int * @throws QueryException * @throws ConstraintException */ diff --git a/lib/SP/Services/CustomField/CustomFieldService.php b/lib/SP/Services/CustomField/CustomFieldService.php index 6cfbcf6c..59b95952 100644 --- a/lib/SP/Services/CustomField/CustomFieldService.php +++ b/lib/SP/Services/CustomField/CustomFieldService.php @@ -122,17 +122,17 @@ class CustomFieldService extends Service * @throws \SP\Core\Exceptions\ConstraintException * @throws SPException */ - public function update(CustomFieldData $customFieldData) + public function updateOrCreateData(CustomFieldData $customFieldData) { $exists = $this->customFieldRepository->checkExists($customFieldData); // Deletes item's custom field data if value is left blank - if ($exists && $customFieldData->getData() === '') { - return $this->deleteCustomFieldData($customFieldData->getId(), $customFieldData->getModuleId(), $customFieldData->getDefinitionId()); + if ($exists && empty($customFieldData->getData())) { + return $this->deleteCustomFieldData($customFieldData->getId(), $customFieldData->getModuleId(), $customFieldData->getDefinitionId()) === 1; } // Create item's custom field data if value is set - if (!$exists && $customFieldData->getData() !== '') { + if (!$exists) { return $this->create($customFieldData); } @@ -140,7 +140,7 @@ class CustomFieldService extends Service $this->setSecureData($customFieldData); } - return $this->customFieldRepository->update($customFieldData); + return $this->customFieldRepository->update($customFieldData) === 1; } /** @@ -150,7 +150,7 @@ class CustomFieldService extends Service * @param int $moduleId * @param int $definitionId * - * @return bool + * @return int * @throws SPException */ public function deleteCustomFieldData($id, $moduleId, $definitionId = null) @@ -176,7 +176,7 @@ class CustomFieldService extends Service */ public function create(CustomFieldData $customFieldData) { - if ($customFieldData->getData() === '') { + if (empty($customFieldData->getData())) { return true; } @@ -184,7 +184,7 @@ class CustomFieldService extends Service $this->setSecureData($customFieldData); } - return $this->customFieldRepository->create($customFieldData); + return $this->customFieldRepository->create($customFieldData) > 0; } /**