/** * @param mixed $value The value that should be validated * @return void * @throws \TYPO3\Flow\Validation\Exception\InvalidSubjectException */ protected function isValid($value) { $animal = null; if ($this->tag != $value->getRFID()) { $animal = $this->animalRepository->findOneByRFID($this->tag); } if ($animal == null) { if ($this->tag != $value->getEarTag()) { $animal = $this->animalRepository->findOneByEarTag($this->tag); } } if ($animal != null) { $this->addError('The animal with this RFID/Ear tag already exists.', 9996); } }
public function addAction() { $currentUser = $this->authenticationManager->getSecurityContext()->getAccount()->getParty(); $photoInfo = $this->request->getArgument("photo"); $actionData = $this->request->getArgument("action"); $actionData = json_decode($actionData, true); $animalData = $this->request->getArgument("animal"); $animalData = json_decode($animalData, true); $ownerData = $this->request->getArgument("owner"); $ownerData = json_decode($ownerData, true); $photoData = $this->request->getArgument("photo"); $action = $this->propertyMapper->convert($actionData, 'DLigo\\Animaltool\\Domain\\Model\\Action'); $action->setDate(new \DateTime('now')); $user = $this->propertyMapper->convert($actionData['team'], 'DLigo\\Animaltool\\Domain\\Model\\User'); $lastId = $user->getLastBoxID(); $action->setTeam($user); $box = explode('-', $actionData['boxID']); if ($lastId > $box[1]) { $action->setBoxID($user->getTeamID() . '-' . ($lastId + 1)); } $animal = $this->propertyMapper->convert($animalData, 'DLigo\\Animaltool\\Domain\\Model\\Animal'); $birthday = \DateTime::createFromFormat("U", $animalData["birthday"]); if (!empty($animalData["birthday"])) { $birthday = \DateTime::createFromFormat("U", $animalData["birthday"]); $birthday->setTime(0, 0, 0); $animal->setBirthday($birthday); } $action->setAnimal($animal); $owner = null; if (isset($animalData["isPrivate"]) && $animalData["isPrivate"]) { $owner = $this->propertyMapper->convert($ownerData, 'DLigo\\Animaltool\\Domain\\Model\\Owner'); $animal->setOwner($owner); $animal->setEarTag(null); if (!empty($animalData["earTag"])) { $rfid = $animalData["earTag"]; $oldAnimal = $this->animalRepository->findOneByRFID($rfid); if ($oldAnimal == null) { $animal->setRFID($rfid); } } } else { if (!empty($animalData["earTag"])) { $eartag = $animalData["earTag"]; $oldAnimal = $this->animalRepository->findOneByEarTag($eartag); if ($oldAnimal != null) { $animal->setEarTag(null); } } } $photo = $this->resourceManager->importUploadedResource($photoInfo); //$this->systemLogger->log(\TYPO3\Flow\var_dump($photo,"Photo",true,true),LOG_INFO); $animal->setPhoto($photo); if ($owner) { $this->ownerRepository->add($owner); } $this->animalRepository->add($animal); $this->actionRepository->add($action); $this->userRepository->update($user); $this->persistenceManager->persistAll(); $this->response->setStatus(201); echo "{" . '"lastID": ' . $currentUser->getLastBoxID() . "}"; flush(); ob_flush(); }