@@ -151,6 +151,19 @@ class OrderShopRepository extends BaseRepository implements DefaultRepositoryInt | |||
$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'])) { | |||
$query = $this->filterIsOffCircuit($query, true) ; | |||
} |
@@ -293,18 +293,23 @@ class OrderUtils | |||
} | |||
public function mergeOrderShops($orderShop1, $orderShop2) | |||
public function mergeOrderShops($orderShop1, $orderShop2, $persist = true) | |||
{ | |||
if ($orderShop1 && $orderShop2) { | |||
foreach ($orderShop2->getOrderProducts() as $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; | |||
} | |||
@@ -331,7 +336,4 @@ class OrderUtils | |||
return $orderProductsByProductFamily; | |||
} | |||
} |