diff --git a/src/Serializer/StructuralElementDenormalizer.php b/src/Serializer/StructuralElementDenormalizer.php index e5847c41..3da5f796 100644 --- a/src/Serializer/StructuralElementDenormalizer.php +++ b/src/Serializer/StructuralElementDenormalizer.php @@ -110,9 +110,8 @@ class StructuralElementDenormalizer implements DenormalizerInterface, Denormaliz //Check if we already have the entity in the database (via path) /** @var StructuralDBElementRepository $repo */ $repo = $this->entityManager->getRepository($type); - $deserialized_entity = $entity; - $path = $deserialized_entity->getFullPath(AbstractStructuralDBElement::PATH_DELIMITER_ARROW); + $path = $entity->getFullPath(AbstractStructuralDBElement::PATH_DELIMITER_ARROW); $db_elements = $repo->getEntityByPath($path, AbstractStructuralDBElement::PATH_DELIMITER_ARROW); if ($db_elements !== []) { //We already have the entity in the database, so we can return it @@ -128,7 +127,7 @@ class StructuralElementDenormalizer implements DenormalizerInterface, Denormaliz $entity = $this->object_cache[$type][$path]; } else { //Save the entity in the cache - $this->object_cache[$type][$path] = $deserialized_entity; + $this->object_cache[$type][$path] = $entity; } //In the next step we can denormalize the children, and add our children to the entity. @@ -142,9 +141,9 @@ class StructuralElementDenormalizer implements DenormalizerInterface, Denormaliz } //We don't have the entity in the database, so we have to persist it - $this->entityManager->persist($deserialized_entity); + $this->entityManager->persist($entity); - return $deserialized_entity; + return $entity; } public function getSupportedTypes(?string $format): array diff --git a/src/Services/LabelSystem/BarcodeScanner/EIGP114BarcodeScanResult.php b/src/Services/LabelSystem/BarcodeScanner/EIGP114BarcodeScanResult.php index 4a38b14f..38b20562 100644 --- a/src/Services/LabelSystem/BarcodeScanner/EIGP114BarcodeScanResult.php +++ b/src/Services/LabelSystem/BarcodeScanner/EIGP114BarcodeScanResult.php @@ -271,6 +271,8 @@ readonly class EIGP114BarcodeScanResult implements BarcodeScanResultInterface */ public static function parseFormat06Code(string $input): self { + $rawInput = $input; + //Ensure that the input is a valid format06 code if (!self::isFormat06Code($input)) { throw new \InvalidArgumentException("The given input is not a valid format06 code"); @@ -306,7 +308,7 @@ readonly class EIGP114BarcodeScanResult implements BarcodeScanResultInterface $results[$key] = $fieldValue; } - return new self($results, $input); + return new self($results, $rawInput); } public function getDecodedForInfoMode(): array diff --git a/tests/Services/LabelSystem/BarcodeScanner/BarcodeScanHelperTest.php b/tests/Services/LabelSystem/BarcodeScanner/BarcodeScanHelperTest.php index 8f8c7a18..b06653e5 100644 --- a/tests/Services/LabelSystem/BarcodeScanner/BarcodeScanHelperTest.php +++ b/tests/Services/LabelSystem/BarcodeScanner/BarcodeScanHelperTest.php @@ -115,6 +115,8 @@ final class BarcodeScanHelperTest extends WebTestCase yield [new LocalBarcodeScanResult(LabelSupportedElement::PART_LOT, 2,BarcodeSourceType::USER_DEFINED), 'lot2_vendor_barcode']; + + $input = "[)>\x1E06\x1DP596-777A1-ND\x1D1PXAF4444\x1DQ3\x1D10D1452\x1D1TBF1103\x1D4LUS\x1E\x04"; $eigp114Result = new EIGP114BarcodeScanResult([ 'P' => '596-777A1-ND', '1P' => 'XAF4444', @@ -122,9 +124,9 @@ final class BarcodeScanHelperTest extends WebTestCase '10D' => '1452', '1T' => 'BF1103', '4L' => 'US', - ]); + ], $input); - yield [$eigp114Result, "[)>\x1E06\x1DP596-777A1-ND\x1D1PXAF4444\x1DQ3\x1D10D1452\x1D1TBF1103\x1D4LUS\x1E\x04"]; + yield [$eigp114Result, $input]; $lcscInput = '{pc:C138033,pm:RC0402FR-071ML,qty:10}'; $lcscResult = new LCSCBarcodeScanResult(