Example #1
0
 /**
  * @param EntryCriteria $criteria
  */
 private function checkOffset(EntryCriteria $criteria)
 {
     $criteria->hasOffset() ? $this->qb->setFirstResult($criteria->getOffset()) : null;
 }
 public function testFindByCriteria()
 {
     $data = ['userId' => 1, 'date' => new DateTime('2016-03-20 01:44:00'), 'amount' => 10000.0, 'description' => 'Work done', 'category' => 'Income', 'note' => 'amazing website'];
     $income = $this->svc->createIncomeFromArray($data);
     $this->svc->saveIncome($income);
     $data = ['userId' => 3, 'date' => new DateTime('2016-06-06 12:44:00'), 'amount' => 4000.0, 'description' => 'Harley Davidson', 'category' => 'Travel', 'note' => 'paid by card'];
     $expenditure = $this->svc->createExpenditureFromArray($data);
     $this->svc->saveExpenditure($expenditure);
     $data = ['userId' => 2, 'date' => new DateTime('2016-01-01 12:44:00'), 'amount' => 100.0, 'description' => 'Train Tickets', 'category' => 'Travel', 'note' => 'paid by cash'];
     $claim = $this->svc->createExpenseClaimFromArray($data);
     $this->svc->saveExpenseClaim($claim);
     $criteria = new EntryCriteria();
     $criteria->setDate('2016-03-20 01:44:00');
     $results = $this->svc->findByCriteria($criteria);
     $this->assertNotEmpty($results);
     $entity = $results[0];
     $this->assertInstanceOf('Del\\Expenses\\Entity\\Income', $entity);
     $criteria = new EntryCriteria();
     $criteria->setDate('2016-03-20 01:44:00');
     $results = $this->svc->findByCriteria($criteria);
     $this->assertNotEmpty($results);
     $entity = $results[0];
     $this->assertInstanceOf('Del\\Expenses\\Entity\\Income', $entity);
     $criteria = new EntryCriteria();
     $criteria->setDateRange('2016-03-19 01:44:00', '2016-03-21 01:44:00');
     $results = $this->svc->findByCriteria($criteria);
     $this->assertNotEmpty($results);
     $entity = $results[0];
     $this->assertInstanceOf('Del\\Expenses\\Entity\\Income', $entity);
     $criteria = new EntryCriteria();
     $criteria->setAmount(100);
     $results = $this->svc->findByCriteria($criteria);
     $this->assertNotEmpty($results);
     $entity = $results[0];
     $this->assertInstanceOf('Del\\Expenses\\Entity\\ExpenseClaim', $entity);
     $criteria = new EntryCriteria();
     $criteria->setUserId(2);
     $results = $this->svc->findByCriteria($criteria);
     $this->assertNotEmpty($results);
     $entity = $results[0];
     $this->assertInstanceOf('Del\\Expenses\\Entity\\ExpenseClaim', $entity);
     $criteria = new EntryCriteria();
     $criteria->setCategory('Travel');
     $criteria->setOrder(EntryCriteria::ORDER_USERID);
     $results = $this->svc->findByCriteria($criteria);
     $this->assertNotEmpty($results);
     $entity = $results[0];
     $this->assertInstanceOf('Del\\Expenses\\Entity\\ExpenseClaim', $entity);
     $entity = $results[1];
     $this->assertInstanceOf('Del\\Expenses\\Entity\\Expenditure', $entity);
     $criteria = new EntryCriteria();
     $criteria->setDescription('Work Done');
     $results = $this->svc->findByCriteria($criteria);
     $this->assertNotEmpty($results);
     $entity = $results[0];
     $this->assertInstanceOf('Del\\Expenses\\Entity\\Income', $entity);
     $criteria = new EntryCriteria();
     $criteria->setNote('amazing website');
     $results = $this->svc->findByCriteria($criteria);
     $this->assertNotEmpty($results);
     $entity = $results[0];
     $this->assertInstanceOf('Del\\Expenses\\Entity\\Income', $entity);
     $criteria = new EntryCriteria();
     $criteria->setType('CLAIM');
     $results = $this->svc->findByCriteria($criteria);
     $this->assertNotEmpty($results);
     $entity = $results[0];
     $this->assertInstanceOf('Del\\Expenses\\Entity\\ExpenseClaim', $entity);
     $criteria = new EntryCriteria();
     $criteria->setType('IN');
     $results = $this->svc->findByCriteria($criteria);
     $this->assertNotEmpty($results);
     $entity = $results[0];
     $this->assertInstanceOf('Del\\Expenses\\Entity\\Income', $entity);
     $criteria = new EntryCriteria();
     $criteria->setType('OUT');
     $results = $this->svc->findByCriteria($criteria);
     $this->assertNotEmpty($results);
     $entity = $results[0];
     $this->assertInstanceOf('Del\\Expenses\\Entity\\Expenditure', $entity);
     $criteria = new EntryCriteria();
     $results = $this->svc->findByCriteria($criteria);
     foreach ($results as $result) {
         if ($result instanceof Income) {
             $this->svc->deleteIncome($result);
         } elseif ($result instanceof Expenditure) {
             $this->svc->deleteExpenditure($result);
         } elseif ($result instanceof ExpenseClaim) {
             $this->svc->deleteExpenseClaim($result);
         }
     }
 }
 /**
  * @param $id
  * @return ExpenseClaim
  */
 public function findExpenseClaimById($id)
 {
     $criteria = new EntryCriteria();
     $criteria->setId($id);
     return $this->getRepository()->findOneByCriteria($criteria);
 }