Guest User

Untitled

a guest
Jan 17th, 2019
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.18 KB | None | 0 0
  1. public function preFlush(Room $room, PreFlushEventArgs $args)
  2. {
  3. $em = $args->getEntityManager();
  4. $parent = $room->getStore()->getParent();
  5. $rsm = new ResultSetMapping();
  6. $rsm->addScalarResult('COUNT(product_id)', 'count');
  7.  
  8. $query = $em->createNativeQuery(
  9. 'select COUNT(product_id)
  10. from room_product where `room_id` in
  11. (select id from room where store_id in
  12. (select id from store where parent_id = :parentId))', $rsm);
  13. $query->setParameter('parentId', $parent->getId());
  14. $result = $query->getOneOrNullResult();
  15. $parent->setNumberOfServices($result['count']);
  16. $em->persist($parent);
  17. $em->flush();
  18. }
  19.  
  20. public function preFlush(Room $room, PreFlushEventArgs $args)
  21. {
  22. $em = $args->getEntityManager();
  23. $numOfProducts = 0;
  24. $parent = $room->getStore()->getParent();
  25. foreach($parent->getStores() as $store) {
  26. foreach($store->getRooms() as $room) {
  27. $numOfServices += count($room->getProducts());
  28. }
  29. }
  30. $parent->setNumberOfProducts($numOfProducts);
  31. $classMetadata = $em->getClassMetadata(get_class($parent));
  32. $em->getUnitOfWork()->computeChangeSet($classMetadata, $parent);
  33. }
Add Comment
Please, Sign In to add comment