From 7ec1a95a072236d50529de6cd711a002406a34ee Mon Sep 17 00:00:00 2001 From: Roland Schneider Date: Sat, 1 Sep 2018 22:19:31 +0200 Subject: [PATCH] add rest application and discount-status rest method - lastXdays fix --- rest/controllers/CustomerController.php | 51 +++++++++++++------------ 1 file changed, 27 insertions(+), 24 deletions(-) diff --git a/rest/controllers/CustomerController.php b/rest/controllers/CustomerController.php index 1609195..c2109eb 100644 --- a/rest/controllers/CustomerController.php +++ b/rest/controllers/CustomerController.php @@ -24,59 +24,61 @@ class CustomerController extends RestController * @return array * @throws \Exception */ - public function actionDiscountStatus($number , $lastXDays = 0 ){ + public function actionDiscountStatus($number, $lastXDays = null) + { - $number = Helper::fixAsciiChars( $number ); + $number = Helper::fixAsciiChars($number); $query = Card::find(); $query->andWhere(['or', - ['and',[ 'in','card.number' , [$number]],"trim(coalesce(card.number, '')) <>'' " ], - ['and', ['in','card.rfid_key' ,[ $number] ],"trim(coalesce(card.rfid_key, '')) <>'' "], + ['and', ['in', 'card.number', [$number]], "trim(coalesce(card.number, '')) <>'' "], + ['and', ['in', 'card.rfid_key', [$number]], "trim(coalesce(card.rfid_key, '')) <>'' "], ]); $card = $query->one(); - if ( !isset($card)){ + if (!isset($card)) { throw new NotFoundHttpException("Kártya nem található"); } $customer = $card->customer; - if ( !isset($customer) ){ + if (!isset($customer)) { throw new NotFoundHttpException("Vendég nem található"); } - if ( isset($lastXDays) ){ - if (!is_numeric($lastXDays)){ + if (isset($lastXDays)) { + if (!is_numeric($lastXDays)) { throw new BadRequestHttpException("lastXDays paraméter hibás"); } - if ( $lastXDays > 6 || $lastXDays < 1){ + if ($lastXDays > 6 || $lastXDays < 1) { throw new BadRequestHttpException("lastXDays paraméter érték hibás"); } } // check if has valid ticket today /** @var \common\models\Card $card */ - $tickets = Ticket::readActive($card ); + $tickets = Ticket::readActive($card); $hasValidTicket = count($tickets) > 0; - // try to find any valid ticket in the lastXDays - $minusDay = 1; - while ( !$hasValidTicket && $minusDay <= $lastXDays ){ - /** @var integer $minusDay */ - $day = $this->getDateMinusDays($minusDay); - $tickets = Ticket::readActive($card, $day ); - $hasValidTicket = count($tickets) > 0; - $minusDay = $minusDay + 1; + if (isset($lastXDays)) { + // try to find any valid ticket in the lastXDays + $minusDay = 1; + while (!$hasValidTicket && $minusDay <= $lastXDays) { + /** @var integer $minusDay */ + $day = $this->getDateMinusDays($minusDay); + $tickets = Ticket::readActive($card, $day); + $hasValidTicket = count($tickets) > 0; + $minusDay = $minusDay + 1; + } } - - $result = [ + $result = [ 'discount' => $hasValidTicket ]; - if ( isset($customer) ){ + if (isset($customer)) { $result['card_number'] = $card->number; $result['name'] = $customer->name; } @@ -89,10 +91,11 @@ class CustomerController extends RestController * @return \DateTime * @throws \Exception */ - private function getDateMinusDays($minusDays){ + private function getDateMinusDays($minusDays) + { $date = new \DateTime('now'); - $date->sub(new \DateInterval('P'.$minusDays.'D')); - $date->setTime(0,0,0); + $date->sub(new \DateInterval('P' . $minusDays . 'D')); + $date->setTime(0, 0, 0); return $date; }