Code Duplication    Length = 24-28 lines in 2 locations

src/OroCRM/Bundle/MagentoBundle/Entity/Repository/OrderRepository.php 2 locations

@@ 205-228 (lines=24) @@
202
     *
203
     * @return array
204
     */
205
    public function getOrdersOverTime(
206
        AclHelper $aclHelper,
207
        DateHelper $dateHelper,
208
        \DateTime $from,
209
        \DateTime $to = null
210
    ) {
211
        $from = clone $from;
212
        $to   = clone $to;
213
214
        $qb = $this->createQueryBuilder('o')
215
            ->select('COUNT(o.id) AS cnt');
216
217
        $dateHelper->addDatePartsSelect($from, $to, $qb, 'o.createdAt');
218
        if ($to) {
219
            $qb->andWhere($qb->expr()->between('o.createdAt', ':from', ':to'))
220
                ->setParameter('to', $to);
221
        } else {
222
            $qb->andWhere('o.createdAt > :from');
223
        }
224
        $qb->setParameter('from', $from);
225
        $this->applyActiveChannelLimitation($qb);
226
227
        return $aclHelper->apply($qb)->getResult();
228
    }
229
230
    /**
231
     * @param AclHelper      $aclHelper
@@ 238-265 (lines=28) @@
235
     *
236
     * @return array
237
     */
238
    public function getRevenueOverTime(
239
        AclHelper $aclHelper,
240
        DateHelper $dateHelper,
241
        \DateTime $from,
242
        \DateTime $to = null
243
    ) {
244
        $from = clone $from;
245
        $to   = clone $to;
246
247
        $qb = $this->createQueryBuilder('o')
248
            ->select('SUM(
249
                    CASE WHEN o.subtotalAmount IS NOT NULL THEN o.subtotalAmount ELSE 0 END -
250
                    CASE WHEN o.discountAmount IS NOT NULL THEN ABS(o.discountAmount) ELSE 0 END
251
                ) AS amount');
252
253
        $dateHelper->addDatePartsSelect($from, $to, $qb, 'o.createdAt');
254
255
        if ($to) {
256
            $qb->andWhere($qb->expr()->between('o.createdAt', ':from', ':to'))
257
                ->setParameter('to', $to);
258
        } else {
259
            $qb->andWhere('o.createdAt > :from');
260
        }
261
        $qb->setParameter('from', $from);
262
        $this->applyActiveChannelLimitation($qb);
263
264
        return $aclHelper->apply($qb)->getResult();
265
    }
266
267
    /**
268
     * @param AclHelper $aclHelper