Code Duplication    Length = 29-31 lines in 2 locations

Entity/Repository/UserSubscriptionRepository.php 2 locations

@@ 164-192 (lines=29) @@
161
     *
162
     * @return Doctrine\ORM\Query
163
     */
164
    public function getExpiringSubscriptionsCount($now, $notify, $days = 7)
165
    {
166
        $qb = $this->createQueryBuilder('s');
167
        $qb
168
            ->select('count(s)')
169
            ->where("DATE_SUB(s.expire_at, :days, 'DAY') < :now")
170
            ->andWhere('s.active = :status');
171
172
        switch ($notify) {
173
            case Emails::NOTIFY_LEVEL_ONE:
174
                $qb->andWhere($qb->expr()->isNull('s.notifySentLevelOne'));
175
                break;
176
            case Emails::NOTIFY_LEVEL_TWO:
177
                $qb->andWhere($qb->expr()->isNotNull('s.notifySentLevelOne'));
178
                $qb->andWhere($qb->expr()->isNull('s.notifySentLevelTwo'));
179
                break;
180
            default:
181
                break;
182
        }
183
184
        $qb->setParameters(array(
185
            'status' => 'Y',
186
            'now' => $now,
187
            'days' => $days,
188
        ))
189
        ->orderBy('s.created_at', 'desc');
190
191
        return $qb->getQuery();
192
    }
193
194
    /**
195
     * Gets expiration subscriptions query.
@@ 205-235 (lines=31) @@
202
     *
203
     * @return Doctrine\ORM\Query
204
     */
205
    public function getExpiringSubscriptions($offset, $batch, $now, $notify, $days = 7)
206
    {
207
        $qb = $this->createQueryBuilder('s');
208
        $qb
209
            ->where("DATE_SUB(s.expire_at, :days, 'DAY') < :now")
210
            ->andWhere('s.active = :status');
211
212
        switch ($notify) {
213
            case Emails::NOTIFY_LEVEL_ONE:
214
                $qb->andWhere($qb->expr()->isNull('s.notifySentLevelOne'));
215
                break;
216
            case Emails::NOTIFY_LEVEL_TWO:
217
                $qb->andWhere($qb->expr()->isNotNull('s.notifySentLevelOne'));
218
                $qb->andWhere($qb->expr()->isNull('s.notifySentLevelTwo'));
219
                break;
220
            default:
221
                break;
222
        }
223
224
        $qb
225
            ->setParameters(array(
226
                'status' => 'Y',
227
                'now' => $now,
228
                'days' => $days,
229
            ))
230
            ->orderBy('s.created_at', 'desc')
231
            ->setFirstResult($offset)
232
            ->setMaxResults($batch);
233
234
        return $qb->getQuery();
235
    }
236
237
    public function getValidSubscriptionsBy($userId)
238
    {