| Conditions | 46 |
| Paths | > 20000 |
| Total Lines | 199 |
| Code Lines | 147 |
| Lines | 0 |
| Ratio | 0 % |
| Changes | 0 | ||
Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.
For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.
Commonly applied refactorings include:
If many parameters/temporary variables are present:
| 1 | <?php |
||
| 199 | public function getTicketHtmlData($event, $position, $ticketCost) |
||
| 200 | { |
||
| 201 | $eventState = null; |
||
|
|
|||
| 202 | $ticket = null; |
||
| 203 | /** @var Payment $payment */ |
||
| 204 | $payment = null; |
||
| 205 | |||
| 206 | $token = $this->tokenStorage->getToken(); |
||
| 207 | |||
| 208 | $user = $token instanceof TokenInterface && $token->getUser() instanceof User ? $token->getUser() : null; |
||
| 209 | if ($user instanceof User) { |
||
| 210 | $payment = $this->em |
||
| 211 | ->getRepository('StfalconEventBundle:Payment') |
||
| 212 | ->findPaymentByUserAndEvent($user, $event); |
||
| 213 | |||
| 214 | $ticket = $this->em->getRepository('StfalconEventBundle:Ticket') |
||
| 215 | ->findOneBy(['event' => $event->getId(), 'user' => $user->getId()]); |
||
| 216 | } |
||
| 217 | |||
| 218 | $eventState = null; |
||
| 219 | $ticketState = null; |
||
| 220 | $isDiv = null; |
||
| 221 | $data = null; |
||
| 222 | $class = ''; |
||
| 223 | $ticketClass = ''; |
||
| 224 | $href = null; |
||
| 225 | $isMob = null; |
||
| 226 | $caption = ''; |
||
| 227 | $ticketCaption = ''; |
||
| 228 | |||
| 229 | if ($event->isActiveAndFuture()) { |
||
| 230 | if ($ticket && $ticket->isPaid()) { |
||
| 231 | $ticketState = self::CAN_DOWNLOAD_TICKET; |
||
| 232 | } |
||
| 233 | if ($ticket && !$event->getReceivePayments()) { |
||
| 234 | $eventState = self::WAIT_FOR_PAYMENT_RECEIVE; |
||
| 235 | } elseif ($payment && $payment->isPaid()) { |
||
| 236 | $eventState = self::PAID_FOR_ANOTHER; |
||
| 237 | // } elseif ($event->getTicketsCost()->count() > 0 && !$this->ticketCostService->isEventHaveTickets($event)) { |
||
| 238 | // $eventState = self::TICKETS_SOLD_OUT; |
||
| 239 | } elseif (!$event->getReceivePayments()) { |
||
| 240 | $eventState = self::CAN_WANNA_VISIT; |
||
| 241 | } elseif (!$event->isHaveFreeTickets()) { |
||
| 242 | $eventState = self::TICKETS_SOLD_OUT; |
||
| 243 | } elseif (!$payment || ($payment && $payment->isPending())) { |
||
| 244 | $eventState = self::CAN_BUY_TICKET; |
||
| 245 | } elseif ($payment && $payment->isReturned()) { |
||
| 246 | $eventState = self::PAID_IS_RETURNED; |
||
| 247 | } |
||
| 248 | } else { |
||
| 249 | $eventState = self::EVENT_DONE; |
||
| 250 | } |
||
| 251 | |||
| 252 | $states = |
||
| 253 | [ |
||
| 254 | 'row' => [ |
||
| 255 | self::CAN_DOWNLOAD_TICKET => '', |
||
| 256 | self::EVENT_DONE => 'event-row__status', |
||
| 257 | self::EVENT_DEFAULT_STATE => 'event-row__btn btn btn--primary btn--sm', |
||
| 258 | ], |
||
| 259 | 'card' => [ |
||
| 260 | self::CAN_DOWNLOAD_TICKET => 'event-card__download', |
||
| 261 | self::EVENT_DONE => 'event-card__status', |
||
| 262 | self::EVENT_DEFAULT_STATE => 'btn btn--primary btn--sm event-card__btn', |
||
| 263 | ], |
||
| 264 | 'event_header' => [ |
||
| 265 | self::CAN_DOWNLOAD_TICKET => 'event-card__download', |
||
| 266 | self::EVENT_DONE => 'event-header__status', |
||
| 267 | self::EVENT_DEFAULT_STATE => 'btn btn--primary btn--lg event-header__btn', |
||
| 268 | ], |
||
| 269 | 'event_fix_header' => [ |
||
| 270 | self::CAN_DOWNLOAD_TICKET => '', |
||
| 271 | self::EVENT_DONE => 'fix-event-header__status', |
||
| 272 | self::EVENT_DEFAULT_STATE => 'btn btn--primary btn--lg fix-event-header__btn', |
||
| 273 | ], |
||
| 274 | 'event_fix_header_mob' => [ |
||
| 275 | self::CAN_DOWNLOAD_TICKET => '', |
||
| 276 | self::EVENT_DONE => 'fix-event-header__status fix-event-header__status--mob', |
||
| 277 | self::EVENT_DEFAULT_STATE => 'btn btn--primary btn--lg fix-event-header__btn fix-event-header__btn--mob', |
||
| 278 | ], |
||
| 279 | 'event_action_mob' => [ |
||
| 280 | self::CAN_DOWNLOAD_TICKET => 'event-action-mob__download', |
||
| 281 | self::EVENT_DONE => 'event-action-mob__status', |
||
| 282 | self::EVENT_DEFAULT_STATE => 'btn btn--primary btn--lg event-action-mob__btn', |
||
| 283 | ], |
||
| 284 | 'price_block_mob' => [ |
||
| 285 | self::CAN_DOWNLOAD_TICKET => '', |
||
| 286 | self::EVENT_DEFAULT_STATE => 'btn btn--primary btn--lg cost__buy cost__buy--mob', |
||
| 287 | ], |
||
| 288 | 'price_block' => [ |
||
| 289 | self::CAN_DOWNLOAD_TICKET => '', |
||
| 290 | self::EVENT_DEFAULT_STATE => 'btn btn--primary btn--lg cost__buy', |
||
| 291 | ], |
||
| 292 | ]; |
||
| 293 | |||
| 294 | if (in_array( |
||
| 295 | $eventState, |
||
| 296 | [ |
||
| 297 | self::EVENT_DONE, |
||
| 298 | self::PAID_IS_RETURNED, |
||
| 299 | self::PAID_FOR_ANOTHER, |
||
| 300 | self::TICKETS_SOLD_OUT, |
||
| 301 | ] |
||
| 302 | )) { |
||
| 303 | $class = isset($states[$position][self::EVENT_DONE]) ? $states[$position][self::EVENT_DONE] |
||
| 304 | : $states[$position][self::EVENT_DEFAULT_STATE]; |
||
| 305 | } else { |
||
| 306 | $class = isset($states[$position][$eventState]) ? $states[$position][$eventState] |
||
| 307 | : $states[$position][self::EVENT_DEFAULT_STATE]; |
||
| 308 | } |
||
| 309 | |||
| 310 | $isMob = in_array($position, ['event_fix_header_mob', 'price_block_mob']); |
||
| 311 | |||
| 312 | if ($event->isActiveAndFuture()) { |
||
| 313 | $data = $event->getSlug(); |
||
| 314 | |||
| 315 | if (self::CAN_DOWNLOAD_TICKET === $ticketState) { |
||
| 316 | $ticketCaption = $isMob ? $this->translator->trans('ticket.status.download') |
||
| 317 | : $this->translator->trans('ticket.status.download'); |
||
| 318 | $ticketClass = isset($states[$position][$ticketState]) ? $states[$position][$ticketState] |
||
| 319 | : $states[$position][self::EVENT_DEFAULT_STATE]; |
||
| 320 | if (!empty($ticketClass)) { |
||
| 321 | $href = $this->router->generate('event_ticket_download', ['eventSlug' => $event->getSlug()]); |
||
| 322 | } |
||
| 323 | } |
||
| 324 | |||
| 325 | if (self::WAIT_FOR_PAYMENT_RECEIVE === $eventState) { |
||
| 326 | $caption = $this->translator->trans('ticket.status.event.add'); |
||
| 327 | $isDiv = true; |
||
| 328 | } elseif (self::PAID_FOR_ANOTHER === $eventState) { |
||
| 329 | if ($isMob) { |
||
| 330 | $caption = $this->translator->trans('ticket.status.paid_mob'); |
||
| 331 | } else { |
||
| 332 | $caption = $this->translator->trans('ticket.status.paid'); |
||
| 333 | } |
||
| 334 | } elseif (self::TICKETS_SOLD_OUT === $eventState) { |
||
| 335 | $isDiv = true; |
||
| 336 | if ($isMob) { |
||
| 337 | $caption = $this->translator->trans('ticket.status.sold_mob'); |
||
| 338 | } else { |
||
| 339 | $caption = $this->translator->trans('ticket.status.sold'); |
||
| 340 | } |
||
| 341 | } elseif (self::CAN_WANNA_VISIT === $eventState && (!$user || !$user->isEventInWants($event))) { |
||
| 342 | $class .= ' set-modal-header add-wants-visit-event'; |
||
| 343 | $caption = $this->translator->trans('ticket.status.take_apart'); |
||
| 344 | } elseif (self::CAN_WANNA_VISIT === $eventState && $user->isEventInWants($event)) { |
||
| 345 | $class .= ' set-modal-header sub-wants-visit-event'; |
||
| 346 | $caption = $this->translator->trans('ticket.status.not_take_apart'); |
||
| 347 | } elseif (self::CAN_BUY_TICKET === $eventState) { |
||
| 348 | if ($isMob) { |
||
| 349 | $caption = $this->translator->trans('ticket.mob_status.pay'); |
||
| 350 | } elseif ('price_block' === $position) { |
||
| 351 | $amount = $ticketCost ? $ticketCost->getAmount() : $event->getBiggestTicketCost()->getAmount(); |
||
| 352 | $altAmount = '≈$'.number_format($ticketCost->getAltAmount(), 0, ',', ' '); |
||
| 353 | $caption = $this->translator->trans('ticket.status.pay_for').' '.$this->translator |
||
| 354 | ->trans( |
||
| 355 | 'payment.price', |
||
| 356 | [ |
||
| 357 | '%summ%' => number_format($amount, 0, ',', ' '), |
||
| 358 | ] |
||
| 359 | ); |
||
| 360 | if ($ticketCost && $ticketCost->getAltAmount()) { |
||
| 361 | $caption .= '<span class="cost__dollars">'.$altAmount.'</span>'; |
||
| 362 | } |
||
| 363 | } else { |
||
| 364 | $caption = $this->translator->trans('ticket.status.pay'); |
||
| 365 | } |
||
| 366 | if (!in_array($position, ['event_header', 'event_fix_header', 'event_fix_header_mob'])) { |
||
| 367 | $class .= ' get-payment'; |
||
| 368 | } |
||
| 369 | } elseif (self::PAID_IS_RETURNED === $eventState) { |
||
| 370 | if ($isMob) { |
||
| 371 | $caption = $this->translator->trans('ticket.status.payment_returned_mob'); |
||
| 372 | } else { |
||
| 373 | $caption = $this->translator->trans('ticket.status.payment_returned'); |
||
| 374 | } |
||
| 375 | } |
||
| 376 | } else { |
||
| 377 | $isDiv = true; |
||
| 378 | if ($isMob) { |
||
| 379 | $caption = $this->translator->trans('ticket.status.event_done_mob'); |
||
| 380 | } else { |
||
| 381 | $caption = $this->translator->trans('ticket.status.event_done'); |
||
| 382 | } |
||
| 383 | } |
||
| 384 | |||
| 385 | $result = |
||
| 386 | [ |
||
| 387 | 'class' => $class, |
||
| 388 | 'caption' => $caption, |
||
| 389 | 'ticket_caption' => $ticketCaption, |
||
| 390 | 'ticket_class' => $ticketClass, |
||
| 391 | 'href' => $href, |
||
| 392 | 'isDiv' => $isDiv, |
||
| 393 | 'data' => $data, |
||
| 394 | 'id' => $position.'-'.$data, |
||
| 395 | ]; |
||
| 396 | |||
| 397 | return $result; |
||
| 398 | } |
||
| 400 |