public function preUpdate(PreUpdateEventArgs $eventArgs) { $order = $eventArgs->getEntity(); if (!$order instanceof \Shopware\Models\Order\Order) { return; } //order or payment status changed? if ($eventArgs->hasChangedField('paymentStatus') || $eventArgs->hasChangedField('orderStatus')) { $historyData = array('userID' => null, 'change_date' => date('Y-m-d H:i:s'), 'orderID' => $order->getId()); if (Shopware()->Auth()->getIdentity() && Shopware()->Auth()->getIdentity()->id) { $user = $eventArgs->getEntityManager()->find('Shopware\\Models\\User\\User', Shopware()->Auth()->getIdentity()->id); $historyData['userID'] = $user->getId(); } //order status changed? if ($eventArgs->hasChangedField('orderStatus')) { $historyData['previous_order_status_id'] = $eventArgs->getOldValue('orderStatus')->getId(); $historyData['order_status_id'] = $eventArgs->getNewValue('orderStatus')->getId(); } else { $historyData['previous_order_status_id'] = $order->getOrderStatus()->getId(); $historyData['order_status_id'] = $order->getOrderStatus()->getId(); } //payment status changed? if ($eventArgs->hasChangedField('paymentStatus')) { $historyData['previous_payment_status_id'] = $eventArgs->getOldValue('paymentStatus')->getId(); $historyData['payment_status_id'] = $eventArgs->getNewValue('paymentStatus')->getId(); } else { $historyData['previous_payment_status_id'] = $order->getPaymentStatus()->getId(); $historyData['payment_status_id'] = $order->getPaymentStatus()->getId(); } $eventArgs->getEntityManager()->getConnection()->insert('s_order_history', $historyData); } }
private function markAsModified(PreUpdateEventArgs $args) { $entity = $args->getEntity(); $securityToken = $this->securityContext->getToken(); if (!$entity instanceof Advertisement || null == $securityToken) { return; } $user = $securityToken->getUser(); if (($args->hasChangedField('description') || $args->hasChangedField('title')) && $user instanceof Advertiser && $user->getId() == $entity->getAdvertiser()->getId()) { $entity->markAsModified(); $args->getEntityManager()->getUnitOfWork()->computeChangeSet($args->getEntityManager()->getClassMetadata(get_class($entity)), $entity); } }
public function preUpdate(PreUpdateEventArgs $args) { //return; $em = $args->getEntityManager(); $entity = $args->getEntity(); if ($entity instanceof Invoice && $entity->needsNumber()) { $entity->setNumber($em->getRepository('SiwappInvoiceBundle:Invoice')->getNextNumber($entity->getSerie())); } }
/** * @param PreUpdateEventArgs $args */ public function preUpdate(PreUpdateEventArgs $args) { $entity = $args->getEntity(); if (!$this->isContactEntity($entity)) { return; } /** @var Contact $entity */ $this->setUpdatedProperties($entity, $args->getEntityManager(), true); }
/** * Pre update event process * * @param LifecycleEventArgs $args * @return $this */ public function preUpdate(PreUpdateEventArgs $args) { $entityClass = ClassUtils::getClass($args->getEntity()); if (array_key_exists($entityClass, $this->notificationRules)) { $rules = $this->notificationRules[$entityClass]; $event = new PreUpdateNotificationEvent($args->getEntity(), $args->getEntityChangeSet(), array('em' => $args->getEntityManager(), 'rules' => $rules)); $this->eventDispatcher->dispatch('numerique1.notification.event.entity_pre_update', $event); } return $this; }
/** @ORM\PreUpdate */ public function preUpdate(Company $company, PreUpdateEventArgs $event) { $entity = $event->getEntity(); $entityManager = $event->getEntityManager(); if ($event->hasChangedField('identification')) { $status = $entityManager->getRepository('MainCommonBundle:Status\\PhotographerStatus')->findOneById(1); //To verify $company->setStatus($status); } }
/** * Prepares all Files linked to an Entity before updating the Files and * persisting the changes to the database * Once prepared Doctrine UnitOfWork is checked for changes * to make sure the changes here are saved when it is flushed. * * Called on the preUpdate doctrine event. * * @param \Doctrine\ORM\Event\PreUpdateEventArgs $args * * @return void */ public function preUpdate(PreUpdateEventArgs $args) { if (!($entity = $args->getEntity()) instanceof FileUpload) { return; } // Prepare multiple Files $this->prePersistFilePreparation($entity); // Recompute the change set for the Entity and Files. Makes sure the changes are saved properly $this->recomputeChangeSetForEntity($entity, $args->getEntityManager()); }
/** * @param PreUpdateEventArgs $args */ public function preUpdate(PreUpdateEventArgs $args) { $entity = $args->getEntity(); if (!$this->isActivityListEntity($entity)) { return; } /** @var ActivityList $entity */ if ($this->isDateUpdatable($entity)) { $this->setUpdatedProperties($entity, $args->getEntityManager(), true); } }
/** * @param PreUpdateEventArgs $eventArgs */ public function preUpdate(PreUpdateEventArgs $eventArgs) { $entity = $eventArgs->getEntity(); if ($this->prepareMedia($entity)) { // Hack ? Don't know, that's the behaviour Doctrine 2 seems to want // See : http://www.doctrine-project.org/jira/browse/DDC-1020 $em = $eventArgs->getEntityManager(); $uow = $em->getUnitOfWork(); $uow->recomputeSingleEntityChangeSet($em->getClassMetadata(ClassLookup::getClass($entity)), $eventArgs->getEntity()); } }
public function preUpdate(PreUpdateEventArgs $eventArgs) { $issue = $eventArgs->getEntity(); $entityManager = $eventArgs->getEntityManager(); if ($issue instanceof Issue) { $user = $this->container->get('security.context')->getToken()->getUser(); if ($eventArgs->hasChangedField('status')) { $this->setActivity($issue, $user, Activity::CHANGE_ISSUE_STATUS, $entityManager, true); } } }
/** * Set object updater * * @param PreUpdateEventArgs $args The event arguments */ public function preUpdate(PreUpdateEventArgs $args) { $obj = $args->getEntity(); $blameable = $this->driver->getBlameableAnnotation($obj); if (null !== $blameable) { $this->updateEntity($obj, $blameable); $em = $args->getEntityManager(); $uow = $em->getUnitOfWork(); $metadata = $em->getClassMetadata(get_class($obj)); $uow->recomputeSingleEntityChangeSet($metadata, $obj); } }
public function preUpdate(PreUpdateEventArgs $event) { $entity = $event->getEntity(); if (!$entity instanceof User) { return; } $this->encodePassword($entity); // force the save $em = $event->getEntityManager(); $md = $em->getClassMetadata('Smartburk\\Bundle\\MainBundle\\Entity\\Series'); $em->getUnitOfWork()->recomputeSingleEntityChangeSet($md, $entity); }
/** * @param PreUpdateEventArgs $args */ public function preUpdate($args) { $object = $args->getEntity(); if ($object instanceof UserInterface) { $this->updateUserFields($object); // We are doing a update, so we must force Doctrine to update the // changeset in case we changed something above $em = $args->getEntityManager(); $uow = $em->getUnitOfWork(); $meta = $em->getClassMetadata(get_class($object)); $uow->recomputeSingleEntityChangeSet($meta, $object); } }
public function preUpdate(PreUpdateEventArgs $args) { $entity = $args->getEntity(); $entityManager = $args->getEntityManager(); if (!$entity instanceof User) { return; } if ($args->hasChangedField('username')) { $class = ClassUtils::getRealClass($entity); $old_username = $args->getOldValue('username'); $new_username = $args->getNewValue('username'); $entityManager->getConnection()->update('acl_security_identities', array('identifier' => sprintf('%s-%s', $class, $new_username)), array('identifier' => sprintf('%s-%s', $class, $old_username))); } }
/** * Checks for updated reviews to update the average score of their site * * @param PreUpdateEventArgs $args */ public function preUpdate(PreUpdateEventArgs $args) { $em = $args->getEntityManager(); $entity = $args->getEntity(); $uow = $em->getUnitOfWork(); $entityClass = get_class($entity); if ($entityClass == 'Application\\YrchBundle\\Entity\\Review' && $this->needsUpdate($args)) { $oid = spl_object_hash($entity->getSite()); if (!array_key_exists($oid, $this->_pendingSiteUpdates)) { $this->_pendingSiteUpdates[$oid] = $entity->getSite(); } $this->_treatedSiteUpdates[$oid] = false; } }
/** * Pre update event process * * @param PreUpdateEventArgs $args * @return $this */ public function preUpdate(PreUpdateEventArgs $args) { $entity = $args->getEntity(); $user = $this->getUser(); if (!$entity instanceof ContainUpdaterInterface || !$user) { return $this; } $entity->setUpdatedBy($user); $em = $args->getEntityManager(); $uow = $em->getUnitOfWork(); $meta = $em->getClassMetadata(get_class($entity)); $uow->recomputeSingleEntityChangeSet($meta, $entity); return $this; }
public function PreUpdate(PreUpdateEventArgs $args) { $entity = $args->getEntity(); $this->em = $args->getEntityManager(); if ($entity instanceof Order) { $this->order = $entity; if ($args->hasChangedField('status')) { $log = $this->createLog(); $this->order->addStatusLog($log); $this->em->getUnitOfWork()->scheduleExtraUpdate($entity, ['statusLogs' => $this->order->getStatusLogs()]); // $this->em->getUnitOfWork()->computeChangeSets(); // $this->em->getUnitOfWork()->commit(); } } }
/** * @param PreUpdateEventArgs $args */ public function preUpdate(PreUpdateEventArgs $args) { $annotationReader = $this->getReaderFromEntityManager($args->getEntityManager()); $entity = $args->getEntity(); $changeSet = $args->getEntityChangeSet(); $reflObject = new \ReflectionObject($entity); foreach ($changeSet as $propertyName => $values) { $property = $reflObject->getProperty($propertyName); /** @var PostUpdate $annotation */ if ($annotation = $annotationReader->getPropertyAnnotation($property, PostUpdate::class)) { $className = $annotation->value; if (is_subclass_of($className, HandlerInterface::class)) { $this->changedProperties[] = ['handlerClassName' => $className, 'entity' => $entity, 'propertyName' => $propertyName, 'args' => $args]; } } } }
/** * @ORM\PreUpdate */ public function preUpdate($item, PreUpdateEventArgs $event) { if (!$event->hasChangedField('sequence')) { return; } $oldSequence = $event->getOldValue('sequence'); $newSequence = $event->getNewValue('sequence'); $em = $event->getEntityManager(); //posouvam o jedno, ci-li v $newSequence je hodnota toho na ktere posouvam $qb = $em->createQueryBuilder(); $qb->update(get_class($item), 'i')->where('i.sequence = ' . $newSequence); if ($newSequence > $oldSequence) { $qb->set('i.sequence', 'i.sequence - 1'); } elseif ($newSequence < $oldSequence) { $qb->set('i.sequence', 'i.sequence + 1'); } $qb->getQuery()->execute(); }
/** * @param PreUpdateEventArgs $args */ public function preUpdate(PreUpdateEventArgs $args) { $annotationReader = $this->getReaderFromEntityManager($args->getEntityManager()); $entity = $args->getEntity(); $changeSet = $args->getEntityChangeSet(); $reflObject = new \ReflectionObject($entity); foreach ($changeSet as $propertyName => $values) { $property = $reflObject->getProperty($propertyName); /** @var PreUpdate $annotation */ if ($annotation = $annotationReader->getPropertyAnnotation($property, PreUpdate::class)) { $className = $annotation->value; if (is_subclass_of($className, HandlerInterface::class)) { /** @var HandlerInterface $propertySubscriber */ $propertySubscriber = new $className(); $propertySubscriber->handle($entity, $propertyName, $args); } } } }
/** @PreUpdate */ public function preUpdate(PreUpdateEventArgs $event) { $entity = $event->getEntity(); $entityManager = $event->getEntityManager(); /* * $event->hasChangedField('name') * $event->getNewValue('name') * $event->getOldValue('name') */ if ($entity instanceof Entity\Chat) { $entity->setUpdateAt(new \DateTime()); } elseif ($entity instanceof Entity\ChatMember) { $entity->setUpdateAt(new \DateTime()); } elseif ($entity instanceof Entity\ChatMessage) { if ($event->hasChangedField('hash')) { list($usec, $sec) = explode(" ", microtime()); $entity->setHash((double) $usec + (double) $sec); } $entity->setUpdateAt(new \DateTime()); } }
/** * @param PreUpdateEventArgs $eventArgs * @ORM\PrePersist() * @ORM\PreUpdate() */ public function preUpdate(PreUpdateEventArgs $eventArgs) { $issue = $eventArgs->getEntity(); $entityManager = $eventArgs->getEntityManager(); if ($issue instanceof Issue) { $user = $this->securityTokenStorage->getToken()->getUser(); if ($eventArgs->hasChangedField('status')) { $eventEntity = new Activity(); $eventEntity->setChangeStatus(new \DateTime()); $entityManager->persist($eventEntity); $entityManager->flush(); if (!$issue->getCollaborators()->contains($user)) { $issue->getCollaborators()->add($user); } } if ($this->hasChangedReporter($eventArgs)) { $issue->getCollaborators()->add($issue->getReporter()); } if ($this->hasChangedAssignee($eventArgs)) { $issue->getCollaborators()->add($issue->getAssignee()); } } }
public function preUpdate(PreUpdateEventArgs $args) { $entity = $args->getEntity(); if ($entity instanceof Machine) { // Réinstallation de la machine si l'IP privé ou l'utilisateur a été modifié if ($args->hasChangedField('ip') || $args->hasChangedField('home')) { $em = $args->getEntityManager(); $uow = $em->getUnitOfWork(); $servers = $entity->getGameServers(); foreach ($servers as $server) { try { $server->installServer($this->container->get('twig')); } catch (\Exception $e) { $server->setInstallationStatus(0); } $meta = $em->getClassMetadata(get_class($server)); $uow->recomputeSingleEntityChangeSet($meta, $server); } $meta = $em->getClassMetadata(get_class($entity)); $uow->recomputeSingleEntityChangeSet($meta, $entity); } } }
/** * @param PreUpdateEventArgs $eventArgs */ public function preUpdate(PreUpdateEventArgs $eventArgs) { $entity = $eventArgs->getEntity(); if ($this->prepareMedia($entity)) { // Hack ? Don't know, that's the behaviour Doctrine 2 seems to want // See : http://www.doctrine-project.org/jira/browse/DDC-1020 $em = $eventArgs->getEntityManager(); $uow = $em->getUnitOfWork(); $uow->recomputeSingleEntityChangeSet($em->getClassMetadata(ClassLookup::getClass($entity)), $eventArgs->getEntity()); // local media is soft-deleted or soft-delete is reverted $changeSet = $eventArgs->getEntityChangeSet(); if (isset($changeSet['deleted']) && $entity->getLocation() === 'local') { $deleted = !$changeSet['deleted'][0] && $changeSet['deleted'][1]; $reverted = $changeSet['deleted'][0] && !$changeSet['deleted'][1]; if ($deleted || $reverted) { $oldFileUrl = $entity->getUrl(); $newFileName = $reverted ? $entity->getOriginalFilename() : uniqid(); $newFileUrl = dirname($oldFileUrl) . '/' . $newFileName . '.' . pathinfo($oldFileUrl, PATHINFO_EXTENSION); $entity->setUrl($newFileUrl); $this->fileUrlMap[$newFileUrl] = $oldFileUrl; } } } }
/** * @param PreUpdateEventArgs */ public function preUpdate(PreUpdateEventArgs $args) { if (!$args->getEntity() instanceof ISortable) { return; } if (!$args->hasChangedField('position')) { return; } $oldPos = (int) $args->getOldValue('position'); $newPos = max(1, (int) $args->getNewValue('position')); $entity = $args->getEntity(); $rp = $this->getPropReflection($entity); $em = $args->getEntityManager(); $qb = $this->createBaseQb($em, $entity); $this->configureUpdateQb($qb, $newPos, $oldPos); try { $res = $qb->getQuery()->getSingleScalarResult(); } catch (NoResultException $e) { $res = 0; } if ($newPos > $oldPos) { if ($res === 0) { //entity was last already, keep old position $newPos = $oldPos; } else { $newPos = min($newPos, $this->getMaxPosition($em, $entity)); } } $rp->setValue($entity, $newPos); $uow = $em->getUnitOfWork(); $meta = $em->getClassMetadata(get_class($entity)); $uow->recomputeSingleEntityChangeSet($meta, $entity); $uow->getEntityPersister(get_class($entity))->update($entity); $uow->setOriginalEntityProperty(spl_object_hash($entity), 'position', $newPos); //$uow->scheduleExtraUpdate($entity, $uow->getEntityChangeSet($entity)); }
public function preUpdate(PreUpdateEventArgs $eventArgs) { $this->setDefaults($eventArgs->getEntity(), $eventArgs->getEntityManager()); }
/** * Dispatch entity.update on preUpdate. * * @param Doctrine\ORM\Event\PreUpdateEventArgs $args * @return void */ public function preUpdate(PreUpdateEventArgs $args) { $entityName = $this->getEntityName($args->getEntity()); $this->events["{$entityName}.update"] = new GenericEvent($args->getEntity(), array('id' => $this->getEntityId($args->getEntity(), $args->getEntityManager()), 'diff' => $args->getEntityChangeSet(), 'title' => $this->getEntityTitle($args->getEntity()))); }
public function preUpdate(\Doctrine\ORM\Event\PreUpdateEventArgs $args) { if (null === $this->configs) { // can not load configure before loadClassMetadata $this->configs = $this->container->get('sf.admin.loader')->getDoctrineConfig(); } $this->onEvent($args->getEntityManager(), $args->getEntity(), self::preUpdate); }
public function preUpdate(PreUpdateEventArgs $args) { $em = $args->getEntityManager(); $autocompleteManager = $this->autocompleteManager; $autocompleteManager->setEntityManager($em); $entity = $args->getEntity(); if ($entity instanceof Hotel) { if ($entity->getId() && $entity->getBrand()) { $brand = strtolower($entity->getBrand()->getArtsysID()); if ($args->hasChangedField('region')) { /** @var Region $oldRegion */ $oldRegion = $args->getOldValue('region'); /** @var Region $newRegion */ $newRegion = $args->getNewValue('region'); $oldCountry = null; if ($oldRegion) { $this->incrementRegion($oldRegion, $brand, -1); $oldCountry = $oldRegion->getCountry(); if ($oldCountry) { $this->incrementCountry($oldCountry, $brand, -1); } } if ($newRegion) { if ($newRegion->getId()) { $this->incrementRegion($newRegion, $brand, 1); } $newCountry = $newRegion->getCountry(); if ($newCountry->getId() && $oldCountry && $oldCountry->getId() != $newCountry->getId()) { $this->incrementCountry($newCountry, $brand, 1); } } } if ($args->hasChangedField('city')) { /** @var City $oldCity */ $oldCity = $args->getOldValue('city'); /** @var City $newCity */ $newCity = $args->getNewValue('city'); if ($oldCity) { $this->incrementCity($oldCity, $brand, -1); } if ($newCity && $newCity->getId()) { $this->incrementCity($newCity, $brand, 1); } } if ($args->hasChangedField('department')) { /** @var Department $oldDepartment */ $oldDepartment = $args->getOldValue('department'); /** @var Department $newDepartment */ $newDepartment = $args->getNewValue('department'); if ($oldDepartment) { $this->incrementDepartment($oldDepartment, $brand, -1); } if ($newDepartment && $newDepartment->getId()) { $this->incrementDepartment($newDepartment, $brand, 1); } } } elseif ($entity instanceof Region) { if ($args->hasChangedField('country')) { /** @var Country $oldCity */ $oldCountry = $args->getOldValue('country'); /** @var Country $newCity */ $newCountry = $args->getNewValue('country'); if ($oldCountry) { $this->removeRegion($entity, $oldCountry); } if ($newCountry && $newCountry->getId()) { $this->addRegion($entity); } } $autocompleteManager->updateRegion($entity); } elseif ($entity instanceof Department) { if ($args->hasChangedField('region')) { /** @var Region $oldRegion */ $oldRegion = $args->getOldValue('region'); /** @var Region $newRegion */ $newRegion = $args->getNewValue('region'); if ($oldRegion) { $this->removeDepartment($entity, $oldRegion); } if ($newRegion && $newRegion->getId()) { $this->addDepartment($entity, $newRegion); } } } elseif ($entity instanceof City) { if ($args->hasChangedField('region')) { /** @var Department $oldDepartment */ $oldDepartment = $args->getOldValue('department'); /** @var Department $newDepartment */ $newDepartment = $args->getNewValue('department'); if ($oldDepartment) { $this->removeCity($entity, $oldDepartment); } if ($newDepartment && $newDepartment->getId()) { $this->addCity($entity, $newDepartment); } } } } }
/** @ORM\PreUpdate */ public function PreUpdate(Prestation $prestation, PreUpdateEventArgs $event) { $entity = $event->getEntity(); $entityManager = $event->getEntityManager(); $photographer = $entity->getDevis()->getCompany()->getPhotographer()->getId(); $client = $entity->getClient()->getId(); $id = $entity->getId(); if ($event->hasChangedField('status')) { // Do something when the username is changed. $status = $event->getEntity()->getStatus()->getId(); switch ($status) { case 2: //Refused message $message = $entity->getReference(); $model = 2; $entityManager->getRepository('MainCommonBundle:Messages\\Message')->createMessagePrestation($id, 2, $model, $photographer, $client, $message); break; case 3: //Pre approved message $message = $entity->getReference(); $model = 3; $entityManager->getRepository('MainCommonBundle:Messages\\Message')->createMessagePrestation($id, 2, $model, $photographer, $client, $message); break; case 4: //Canceled message $message = $entity->getReference(); $model = 4; $entityManager->getRepository('MainCommonBundle:Messages\\Message')->createMessagePrestation($id, 2, $model, $client, $photographer, $message); break; case 5: //Validate message $message = $entity->getReference(); $model = 5; $entityManager->getRepository('MainCommonBundle:Messages\\Message')->createMessagePrestation($id, 2, $model, $client, $photographer, $message); break; case 6: //Passed message $message = $entity->getReference(); $model = 6; $entityManager->getRepository('MainCommonBundle:Messages\\Message')->createMessagePrestation($id, 2, $model, $client, $photographer, $message); break; case 7: //Close message $message = $entity->getReference(); $model = 7; $entityManager->getRepository('MainCommonBundle:Messages\\Message')->createMessagePrestation($id, 2, $model, $client, $photographer, $message); break; case 8: //Close message $message = $entity->getReference(); $model = 8; $entityManager->getRepository('MainCommonBundle:Messages\\Message')->createMessagePrestation($id, 2, $model, $client, $photographer, $message); break; case 9: //Annulation photographe $message = $entity->getReference(); $model = 9; $entityManager->getRepository('MainCommonBundle:Messages\\Message')->createMessagePrestation($id, 2, $model, $client, $photographer, $message); break; case 10: //Annulation client $message = $entity->getReference(); $model = 10; $entityManager->getRepository('MainCommonBundle:Messages\\Message')->createMessagePrestation($id, 2, $model, $client, $photographer, $message); break; case 11: //Litige client $message = $entity->getReference(); $model = 11; $entityManager->getRepository('MainCommonBundle:Messages\\Message')->createMessagePrestation($id, 2, $model, $client, $photographer, $message); break; case 12: //Litige photographer $message = $entity->getReference(); $model = 12; $entityManager->getRepository('MainCommonBundle:Messages\\Message')->createMessagePrestation($id, 2, $model, $client, $photographer, $message); break; default: break; } } elseif ($event->hasChangedField('startTime')) { $message = $entity->getStartTime()->format('d/m/Y H:i'); $model = 21; $entityManager->getRepository('MainCommonBundle:Messages\\Message')->createMessagePrestation($id, 2, $model, $photographer, $client, $message); } elseif ($event->hasChangedField('price')) { $message = $entity->getPrice() . ' €'; $model = 22; $entityManager->getRepository('MainCommonBundle:Messages\\Message')->createMessagePrestation($id, 2, $model, $photographer, $client, $message); } elseif ($event->hasChangedField('duration')) { $message = $entity->getDuration()->getLibelle(); $model = 23; $entityManager->getRepository('MainCommonBundle:Messages\\Message')->createMessagePrestation($id, 2, $model, $photographer, $client, $message); } }