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); } }
/** * @param PreUpdateEventArgs $event */ public function preUpdate(PreUpdateEventArgs $event) { $entity = $event->getEntity(); if ($entity instanceof CalendarEvent) { if ($event->hasChangedField('start') || $event->hasChangedField('reminder')) { $needChangeSetsComputing = false; if ($event->hasChangedField('reminder')) { if ($event->getNewValue('reminder')) { $start = $event->hasChangedField('start') ? $event->getNewValue('start') : $entity->getStart(); $entity->setRemindAt($this->remindTimeCalculator->calculateRemindAt($start)); } else { $entity->setRemindAt(null); } if ($entity->getReminded()) { $entity->setReminded(false); } $needChangeSetsComputing = true; } else { if ($entity->getReminder()) { $entity->setRemindAt($this->remindTimeCalculator->calculateRemindAt($event->getNewValue('start'))); $needChangeSetsComputing = true; } if ($entity->getReminded()) { $entity->setReminded(false); $needChangeSetsComputing = true; } } if ($needChangeSetsComputing) { $em = $event->getEntityManager(); $uow = $em->getUnitOfWork(); $uow->recomputeSingleEntityChangeSet($em->getClassMetadata('OroCalendarBundle:CalendarEvent'), $entity); } } } }
public function preUpdate(PreUpdateEventArgs $args) { $entity = $args->getEntity(); if ($entity instanceof $this->orderProductClass) { $price = $entity->getPrice(); if ($args->hasChangedField('quantity') || $args->hasChangedField('product')) { $price = $entity->getQuantity() * $entity->getProduct()->getPrice(); } $entity->setPrice($price); $entity->setUpdatedAt(new \DateTime()); } }
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); } }
/** * @ORM\PreUpdate */ public function preUpdate($item, PreUpdateEventArgs $event) { if ($item->getLevel() > 0) { $item->setRootSequence(NULL); } elseif ($event->hasChangedField('parent') && is_null($event->getNewValue('parent')) && !is_null($event->getOldValue('parent'))) { $this->setMaxRootSequence($item, $event); } else { if (!$event->hasChangedField('rootSequence')) { return; } $oldSequence = $event->getOldValue('rootSequence'); $newSequence = $event->getNewValue('rootSequence'); if ($oldSequence === $newSequence) { return; } $em = $event->getEntityManager(); $qb = $em->createQueryBuilder(); $qb->update(get_class($item), 'i')->where('i.rootSequence = ' . $newSequence); if ($newSequence > $oldSequence) { $qb->set('i.rootSequence', 'i.rootSequence - 1'); } elseif ($newSequence < $oldSequence) { $qb->set('i.rootSequence', 'i.rootSequence + 1'); } $qb->getQuery()->execute(); } }
public function preUpdate(User $user, PreUpdateEventArgs $event) { if ($event->hasChangedField('email')) { $token = $this->tokenGenerator->generateEmailConfirmationToken($user); $this->emailDispatcher->sendEmailVerifyEmail($user, $token); } }
/** * @param PreUpdateEventArgs $args */ public function preUpdate(PreUpdateEventArgs $args) { if (!$args->getEntity() instanceof User || !$args->hasChangedField('email')) { return; } $args->getEntity()->setGoogleId(null); }
private function getChangesets(PreUpdateEventArgs $args) { $oldValues = array(); $newValues = array(); $fields = array('avatar' => 'Фото', 'firstName' => 'Имя', 'lastName' => 'Фамилия', 'surName' => 'Отчество', 'birthdate' => 'Дата рождения', 'hideBirthdate' => 'Скрывать дату рождения', 'city' => 'Город', 'address' => 'Адрес', 'university' => 'ВУЗ', 'graduateYear' => 'Год окончания ВУЗа', 'primarySpecialty' => 'Основная специальность', 'secondarySpecialty' => 'Второстепенная специальность', 'specialization' => 'Специализация', 'academicTitle' => 'Звание', 'jobType' => 'Место работы', 'job' => 'Название организации', 'jobAlignment' => 'Место организации', 'phone' => 'Телефон', 'position' => 'Должность', 'diploma' => 'Диплом ВУЗа', 'achievements' => 'О себе', 'academicDegree' => 'Ученая степень', 'dissertation' => 'Тема диссертации', 'diplomaScientic' => 'Диплом ученой степени', 'digestSubscribed' => 'Подписка на дайджест', 'commentSubscribed' => 'Подписка ответов на комментарии'); foreach ($fields as $field => $label) { if ($args->hasChangedField($field)) { $old = $args->getOldValue($field); $new = $args->getNewValue($field); if ($old == $new || is_array($old) && empty($new)) { continue; } if ($new instanceof UploadedFile) { $this->imgFields[$field] = $label; $oldValues[] = "<b>{$label}:</b> ~"; } else { $oldValues[] = "<b>{$label}:</b> " . ($old instanceof \DateTime ? $old->format('d.m.Y') : $old); $newValues[] = "<b>{$label}:</b> " . ($new instanceof \DateTime ? $new->format('d.m.Y') : $new); } } } if (count($oldValues)) { $oldValues = implode('<br/>', $oldValues); $newValues = implode('<br/>', $newValues); return array($oldValues, $newValues); } return array(null, null); }
/** * Maj des scripts du serveur si la config du serveur (port, maxplayers, dir) a été modifié * Ou si la config du jeu (bin, binDir, launchName, map, orangebox, source) a été modifié * Ou si l'IP publique de la machine a été modifié * * Réinstallation du serveur * Si des modifs ont été faites sur la machine (IP privée, home, user) * Ou si le serveur de jeu n'est plus sur la meme machine * Ou si le jeu du serveur est modifié * * @param \Doctrine\ORM\Event\PreUpdateEventArgs $args */ public function preUpdate(PreUpdateEventArgs $args) { $entity = $args->getEntity(); if ($entity instanceof SteamServer) { if ($args->hasChangedField('port') || $args->hasChangedField('maxplayers') && $entity->getGame()->getLaunchName() != "csgo" || $args->hasChangedField('core') || $args->hasChangedField('mode')) { try { $entity->uploadHldsScript($this->getTwig()); } catch (\Exception $e) { } } if ($args->hasChangedField('maxplayers') && $entity->getGame()->getLaunchName() == "csgo") { try { $entity->modifyGameModesCfg(); } catch (\Exception $e) { } } if ($args->hasChangedField('dir')) { try { $entity->uploadShellScripts($this->getTwig()); } catch (\Exception $e) { } } if ($args->hasChangedField('rebootAt')) { //suppression del'ancienne tâche cron $entity->removeAutoReboot($args->getOldValue('rebootAt')); if ($args->getNewValue('rebootAt') != null) { $entity->addAutoReboot(); } } if ($args->hasChangedField('name') || $args->hasChangedField('rconPassword')) { try { $entity->modifyServerCfgFile(); } catch (\Exception $e) { } } } elseif ($entity instanceof Machine) { // Upload des scripts si l'IP publique ou le home de la machine a été modifié if ($args->hasChangedField('publicIp') || $args->hasChangedField('home')) { $servers = $entity->getGameServers(); foreach ($servers as $server) { if (!$server instanceof SteamServer) { continue; } try { $server->uploadShellScripts($this->getTwig()); } catch (\Exception $e) { } } } } }
/** * sets the modification date */ public function preUpdate(Domains $domain, PreUpdateEventArgs $event) { $domain->setModified(new \DateTime()); if ($event->hasChangedField('name')) { $domain->setNeedsSoaUpdate(true); } return true; }
/** * Delete old avatar image from disk if it has been changed * * @param User $user * @param PreUpdateEventArgs $event */ public function preUpdate(User $user, PreUpdateEventArgs $event) { if ($event->hasChangedField('avatarImage')) { $oldAvatarImage = $event->getOldValue('avatarImage'); if (!empty($oldAvatarImage)) { $this->userService->deleteAvatar($oldAvatarImage); } } }
public function preUpdate(PreUpdateEventArgs $eventArgs) { if ($eventArgs->getEntity() instanceof Tenue) { if ($eventArgs->hasChangedField('nombre_rendu')) { $date = new \DateTime('now'); $eventArgs->getEntity()->setDateRendu($date); } } }
public function preUpdate(PreUpdateEventArgs $eventArgs) { if ($eventArgs->getEntity() instanceof Badge) { if ($eventArgs->hasChangedField('remis') && $eventArgs->getNewValue('remis') == false) { $date = new \DateTime('now'); $eventArgs->getEntity()->setDateRendu($date); } } }
public function preUpdate(PreUpdateEventArgs $args) { $entity = $args->getEntity(); if ($entity instanceof Issue) { if ($args->hasChangedField('assignee')) { $entity->addCollaborator($entity->getAssignee()); } } }
/** @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); } }
public function preUpdate(PreUpdateEventArgs $eventArgs) { if ($eventArgs->getEntity() instanceof Role && $eventArgs->hasChangedField('role')) { $oldRoleName = $eventArgs->getOldValue('role'); $newRoleName = $eventArgs->getNewValue('role'); /** @var $aclSidManager AclSidManager */ $aclSidManager = $this->aclSidManagerLink->getService(); $aclSidManager->updateSid($aclSidManager->getSid($newRoleName), $oldRoleName); } }
private function hasChanged(PreUpdateEventArgs $event) { $hasChanged = FALSE; foreach ($this->propertyInfos as $property => $value) { if ($event->hasChangedField($property) && !empty($event->getOldValue($property)) && \trim($event->getOldValue($property)) !== \trim($event->getNewValue($property))) { $hasChanged = TRUE; } } return $hasChanged; }
private function sendChangeEmails(Show $show, PreUpdateEventArgs $event) { $authorisationEmailSent = false; if ($event->hasChangedField('society') && $show->getSociety() instanceof Society) { if ($show->isAuthorised()) { $this->moderationManager->notifySocietyChanged($show); } else { $this->moderationManager->autoApproveOrEmailModerators($show); $authorisationEmailSent = true; } } if ($event->hasChangedField('venue') && $show->getVenue() instanceof Venue) { if ($show->isAuthorised()) { $this->moderationManager->notifyVenueChanged($show); } elseif (!$authorisationEmailSent) { $this->moderationManager->autoApproveOrEmailModerators($show); } } }
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); } } }
public function preUpdate(PreUpdateEventArgs $eventArgs) { if ($eventArgs->getEntity() instanceof Registration) { if ($eventArgs->hasChangedField('status') && $eventArgs->getNewValue('status') == 'paid') { $registration = $eventArgs->getEntity(); $user = $registration->getUser(); $systemMailer = $this->container->get('system_mailer'); $systemMailer->send('App:paid_registration', ['user' => $user, 'registration' => $registration], 'es'); } } }
public function preUpdate(PreUpdateEventArgs $eventArgs) { $user = $eventArgs->getEntity(); if ($user instanceof User) { if ($eventArgs->hasChangedField('password')) { $password = $this->encodePassword($user); $eventArgs->setNewValue('password', $password); $user->setPassword($password); } } }
/** * Listen a preUpdate lifecycle event. Checking and encrypt entities fields * which have @Encrypted annotation. Using changesets to avoid preUpdate event * restrictions * @param LifecycleEventArgs $args */ public function preUpdate(PreUpdateEventArgs $args) { $reflectionClass = new ReflectionClass($args->getEntity()); $properties = $reflectionClass->getProperties(); foreach ($properties as $refProperty) { $propName = $refProperty->getName(); if ($this->annReader->getPropertyAnnotation($refProperty, self::ENCRYPTED_ANN_NAME) && $args->hasChangedField($propName)) { $args->setNewValue($propName, $this->encryptor->encrypt($args->getNewValue($propName))); } } }
public function preUpdate(PreUpdateEventArgs $eventArgs) { $post = $eventArgs->getEntity(); if ($post instanceof Post) { if (null === $post->getImageName()) { return; } if ($eventArgs->hasChangedField('imageName') && file_exists($eventArgs->getOldValue('imageName'))) { unlink($eventArgs->getOldValue('imageName')); } } }
public function preUpdate(PreUpdateEventArgs $eventArgs) { $article = $eventArgs->getEntity(); if ($article instanceof Article) { if (null === $article->getPathToImage()) { return; } if ($eventArgs->hasChangedField('imageName') && file_exists($eventArgs->getOldValue('pathToImage'))) { unlink($eventArgs->getOldValue('pathToImage')); } } }
public function preUpdate(\Doctrine\ORM\Event\PreUpdateEventArgs $eventArgs) { if ($eventArgs->getEntity() instanceof User) { if ($eventArgs->hasChangedField('email') || $eventArgs->hasChangedField('phone') || $eventArgs->hasChangedField('adresse') || $eventArgs->hasChangedField('ville') || $eventArgs->hasChangedField('zip')) { $service = $eventArgs->getEntity()->getService(); if ($service != null) { if ($service->getChefService()) { $mail = $service->getChefService()->getEmail(); } else { $mail = $service->getEmail(); } } else { $mail = '*****@*****.**'; } /** * TODO setFrom */ $message = \Swift_Message::newInstance()->setSubject('Changements dans le profil de ' . $eventArgs->getEntity())->setFrom('*****@*****.**')->setTo('*****@*****.**')->addCc($mail)->setBody($this->getMailBody($eventArgs->getEntityChangeSet(), $eventArgs->getEntity()), 'text/html'); $this->mailer->send($message); } } }
/** * PreUpdate event listener * * Only computes password change if password is one of file to be changed * * @param PreUpdateEventArgs $eventArgs Event args */ public function preUpdate(PreUpdateEventArgs $eventArgs) { $entity = $eventArgs->getEntity(); if ($this->checkEntityType($entity)) { if ($eventArgs->hasChangedField('password')) { $password = $entity->getPassword(); if (!empty($password)) { $encodedPassword = $this->encryptPassword($password); $eventArgs->setNewValue('password', $encodedPassword); } } } }
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))); } }
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); } } }
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 Doctor $doctor * @param PreUpdateEventArgs $args */ public function changeDoctor(Doctor $doctor, PreUpdateEventArgs $args) { # изменение рейтинговых полей foreach ($this->ratingFields as $field => $bonus) { # если рейтинговое поле изменилось if ($args->hasChangedField($field)) { $new = $args->getNewValue($field); $old = $args->getOldValue($field); # если поле заполнили - добавляем баллы в рейтинг. Если очистили - снимаем. if (empty($old) && !empty($new)) { $doctor->addRating($bonus); } elseif (empty($new) && !empty($old) && !is_array($old)) { $doctor->subRating($bonus); } } } $filledBonus = intval(100 / count($this->filledFields)); // = 5 # изменение полей, влияющих на заполненность профайла foreach ($this->filledFields as $field) { if ($args->hasChangedField($field)) { $new = $args->getNewValue($field); $old = $args->getOldValue($field); # если поле заполнили - заполняем шкалу профиля, иначе снимаем if (empty($old) && !empty($new)) { $doctor->addFilled($filledBonus); } elseif (empty($new) && !empty($old) && !is_array($old)) { $doctor->subFilled($filledBonus); } } } }