/**
  * @todo Optimalization. Calculate range between current time and time
  *       of event, and calculate how much days/weeks/months/years has passed
  *       between this values, and call one time strtotime fn, instead of
  *       multiple times, for every interval. I.e. first call
  *       strtotime('+ 4 weeks'), and then, in do...while loop, call
  *       every time, for every interval, like now. One call for 4 weeks, is
  *       quickly, than calls 4 times, for 1 week.
  */
 public function allFromRange($from, $to)
 {
     $events = parent::selectQuery('SELECT * FROM ' . $this->dbTable . ' WHERE owner = ' . $this->user()->getId() . ' AND `start` >= ' . $from . ' AND `start` <= ' . $to . ' AND `repeat` = 0 ORDER BY `start` ASC');
     $repeated = parent::selectQuery('SELECT * FROM ' . $this->dbTable . ' WHERE owner = ' . $this->user()->getId() . ' AND `repeat` = 1 AND `start` <= ' . $to . ' ORDER BY `start` ASC');
     foreach ($repeated as $event) {
         $checkFrom = $event->getStart();
         $checkTo = $event->getEnd();
         if ($checkFrom >= $from && $checkFrom <= $to) {
             $events[] = clone $event;
         }
         // For 2 days
         if ($event->getRepeatType() == 2) {
             $interval = '+ 2 days';
         } elseif ($event->getRepeatType() == 3) {
             $interval = '+ 1 week';
         } elseif ($event->getRepeatType() == 4) {
             $interval = '+ 2 weeks';
         } elseif ($event->getRepeatType() == 5) {
             $interval = '+ 1 month';
         } elseif ($event->getRepeatType() == 6) {
             $interval = '+ 3 months';
         } elseif ($event->getRepeatType() == 7) {
             $interval = '+ 6 months';
         } elseif ($event->getRepeatType() == 8) {
             $interval = '+ 1 year';
         } else {
             $interval = '+ 1 day';
         }
         do {
             $checkFrom = strtotime($interval, $checkFrom);
             $checkTo = strtotime($interval, $checkTo);
             if ($checkFrom >= $from && $checkFrom <= $to) {
                 $new = clone $event;
                 $new->setStart($checkFrom);
                 $new->setEnd($checkTo);
                 $events[] = $new;
             }
         } while ($checkFrom <= $to);
     }
     return $events;
 }
 public function find($id)
 {
     $account = parent::find($id);
     if ($account && $account->getOwner() == $this->user()->getId()) {
         return $account;
     } else {
         return false;
     }
 }
 public function getEndValue(Entity $entity, $field)
 {
     if ($field == 'owner') {
         $user = $this->repo('User', 'User')->find($entity->getOwner());
         if ($user) {
             return $user->getName() . ' (ID:' . $entity->getOwner() . ')';
         } else {
             return $entity->getOwner();
         }
     }
     return parent::getEndValue($entity, $field);
 }
 public function getEndValue(Entity $entity, $field)
 {
     switch ($field) {
         case 'createDate':
             return date('Y-m-d', $entity->getCreateDate());
             break;
         case 'discount':
             return $entity->getDiscount() . ' %';
             break;
         case 'tax':
             return $entity->getTax() . ' %';
             break;
     }
     return parent::getEndValue($entity, $field);
 }
 public function getEndValue(Entity $entity, $field)
 {
     switch ($field) {
         case 'releaseDate':
             return date('Y-m-d', $entity->getReleaseDate());
             break;
         case 'sellDate':
             return date('Y-m-d', $entity->getSellDate());
             break;
         case 'paymentDate':
             return date('Y-m-d', $entity->getPaymentDate());
             break;
         case 'showShipment':
             return $entity->getShowShipment() == 1 ? $this->t('syes') : $this->t('sno');
             break;
         case 'status':
             return $this->t('invoiceStatus' . $entity->getStatus());
             break;
         case 'contractor':
             $contractor = $this->repo('Contractor', 'Contractor')->find($entity->getContractor());
             if ($contractor) {
                 return $contractor->getName();
             } else {
                 $entity->getContractor();
             }
             break;
         case 'owner':
             $user = $this->repo('User', 'User')->find($entity->getOwner());
             if ($user) {
                 return $user->getName() . ' (ID:' . $entity->getOwner() . ')';
             } else {
                 return $entity->getOwner();
             }
             break;
     }
     return parent::getEndValue($entity, $field);
 }
 public function allForEdit()
 {
     return parent::selectQuery('SELECT * FROM ' . $this->dbTable . ' WHERE userFor = ' . $this->user()->getId() . ' OR userFrom = ' . $this->user()->getId() . ' ORDER BY ordering ASC');
 }
 public function findChildren($id)
 {
     return parent::findAll('parent = :parent ORDER BY name ASC', [':parent' => $id]);
 }
 public function getEndValue(Entity $entity, $field)
 {
     if ($field == 'type') {
         if ($entity->getType() == 1) {
             return $this->t('contractorTypePerson');
         }
         if ($entity->getType() == 2) {
             return $this->t('contractorTypeCompany');
         }
     }
     if ($field == 'owner') {
         $user = $this->repo('User', 'User')->find($entity->getOwner());
         if ($user) {
             return $user->getName() . ' (ID:' . $entity->getOwner() . ')';
         } else {
             return $entity->getOwner();
         }
     }
     return parent::getEndValue($entity, $field);
 }
 /**
  * {@inheritdoc}
  */
 public function getEndValue(Entity $entity, $field)
 {
     if ($field == 'tax') {
         $tax = $this->get('helper.tax')->get($entity->getTax());
         if ($tax) {
             return $tax->name;
         }
     }
     if ($field == 'unit') {
         $unit = $this->get('helper.measureUnit')->name($entity->getUnit());
         if ($unit) {
             return $unit;
         }
     }
     if ($field == 'sellStart') {
         return $this->datetime()->dateShort($entity->getSellStart());
     }
     if ($field == 'sellEnd') {
         return $this->datetime()->dateShort($entity->getSellEnd());
     }
     if ($field == 'supportStart') {
         return $this->datetime()->dateShort($entity->getSupportStart());
     }
     if ($field == 'supportEnd') {
         return $this->datetime()->dateShort($entity->getSupportEnd());
     }
     if ($field == 'sellAllowed') {
         return $entity->getSellAllowed() ? $this->t('syes') : $this->t('sno');
     }
     if ($field == 'owner') {
         $user = $this->repo('User', 'User')->find($entity->getOwner());
         if ($user) {
             return $user->getName() . ' (ID:' . $entity->getOwner() . ')';
         } else {
             return $entity->getOwner();
         }
     }
     return parent::getEndValue($entity, $field);
 }