$query->andWhere('e.user = :user')->setParameter('user', $params['user']) ; | $query->andWhere('e.user = :user')->setParameter('user', $params['user']) ; | ||||
} | } | ||||
if(isset($params['mergeComplementaryOrderShops'])) { | |||||
$query->andWhere('e.mainOrderShop IS NULL') ; | |||||
$query->leftJoin('e.complementaryOrderShops', 'complementaryOrderShops') ; | |||||
$query->leftJoin('complementaryOrderShops.orderStatus', 'complementaryOrderStatus'); | |||||
$query->andWhere('complementaryOrderStatus.alias IN (:statusAliasValid)'); | |||||
$query->setParameter('statusAliasValid', $this->statusAliasAsValid); | |||||
} | |||||
if(isset($params['excludeComplementaryOrderShops'])) { | |||||
$query->andWhere('e.mainOrderShop IS NULL') ; | |||||
} | |||||
if(isset($params['isOffCircuit'])) { | if(isset($params['isOffCircuit'])) { | ||||
$query = $this->filterIsOffCircuit($query, true) ; | $query = $this->filterIsOffCircuit($query, true) ; | ||||
} | } |
} | } | ||||
public function mergeOrderShops($orderShop1, $orderShop2) | |||||
public function mergeOrderShops($orderShop1, $orderShop2, $persist = true) | |||||
{ | { | ||||
if ($orderShop1 && $orderShop2) { | if ($orderShop1 && $orderShop2) { | ||||
foreach ($orderShop2->getOrderProducts() as $orderProduct) { | foreach ($orderShop2->getOrderProducts() as $orderProduct) { | ||||
$this->addOrderProduct($orderShop1, $orderProduct); | $this->addOrderProduct($orderShop1, $orderProduct); | ||||
$this->em->remove($orderProduct); | |||||
if($persist) { | |||||
$this->em->remove($orderProduct); | |||||
} | |||||
} | } | ||||
$this->em->remove($orderShop2); | |||||
$this->em->persist($orderShop1); | |||||
$this->em->flush(); | |||||
if($persist) { | |||||
$this->em->remove($orderShop2); | |||||
$this->em->persist($orderShop1); | |||||
$this->em->flush(); | |||||
} | |||||
return $orderShop1; | return $orderShop1; | ||||
} | } | ||||
return $orderProductsByProductFamily; | return $orderProductsByProductFamily; | ||||
} | } | ||||
} | } |