| Conditions | 47 |
| Paths | > 20000 |
| Total Lines | 196 |
| Code Lines | 144 |
| 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 | $ticket = null; |
||
| 202 | /** @var Payment $payment */ |
||
| 203 | $payment = null; |
||
| 204 | |||
| 205 | $token = $this->tokenStorage->getToken(); |
||
| 206 | |||
| 207 | $user = $token instanceof TokenInterface && $token->getUser() instanceof User ? $token->getUser() : null; |
||
| 208 | if ($user instanceof User) { |
||
| 209 | $payment = $this->em |
||
| 210 | ->getRepository('StfalconEventBundle:Payment') |
||
| 211 | ->findPaymentByUserAndEvent($user, $event); |
||
| 212 | |||
| 213 | $ticket = $this->em->getRepository('StfalconEventBundle:Ticket') |
||
| 214 | ->findOneBy(['event' => $event->getId(), 'user' => $user->getId()]); |
||
| 215 | } |
||
| 216 | |||
| 217 | $eventState = null; |
||
| 218 | $ticketState = null; |
||
| 219 | $isDiv = null; |
||
| 220 | $data = null; |
||
| 221 | $ticketClass = ''; |
||
| 222 | $href = null; |
||
| 223 | $caption = ''; |
||
| 224 | $ticketCaption = ''; |
||
| 225 | |||
| 226 | if ($event->isActiveAndFuture()) { |
||
| 227 | if ($ticket && $ticket->isPaid()) { |
||
| 228 | $ticketState = self::CAN_DOWNLOAD_TICKET; |
||
| 229 | } |
||
| 230 | if ($ticket && !$event->getReceivePayments()) { |
||
| 231 | $eventState = self::WAIT_FOR_PAYMENT_RECEIVE; |
||
| 232 | } elseif ($payment && $payment->isPaid()) { |
||
| 233 | $eventState = self::PAID_FOR_ANOTHER; |
||
| 234 | // } elseif ($event->getTicketsCost()->count() > 0 && !$this->ticketCostService->isEventHaveTickets($event)) { |
||
| 235 | // $eventState = self::TICKETS_SOLD_OUT; |
||
| 236 | } elseif (!$event->getReceivePayments()) { |
||
| 237 | $eventState = self::CAN_WANNA_VISIT; |
||
| 238 | } elseif (!$event->isHaveFreeTickets()) { |
||
| 239 | $eventState = self::TICKETS_SOLD_OUT; |
||
| 240 | } elseif (!$payment || ($payment && $payment->isPending())) { |
||
| 241 | $eventState = self::CAN_BUY_TICKET; |
||
| 242 | } elseif ($payment && $payment->isReturned()) { |
||
| 243 | $eventState = self::PAID_IS_RETURNED; |
||
| 244 | } |
||
| 245 | } else { |
||
| 246 | $eventState = self::EVENT_DONE; |
||
| 247 | } |
||
| 248 | |||
| 249 | $states = |
||
| 250 | [ |
||
| 251 | 'row' => [ |
||
| 252 | self::CAN_DOWNLOAD_TICKET => '', |
||
| 253 | self::EVENT_DONE => 'event-row__status', |
||
| 254 | self::EVENT_DEFAULT_STATE => 'event-row__btn btn btn--primary btn--sm', |
||
| 255 | ], |
||
| 256 | 'card' => [ |
||
| 257 | self::CAN_DOWNLOAD_TICKET => 'event-card__download', |
||
| 258 | self::EVENT_DONE => 'event-card__status', |
||
| 259 | self::EVENT_DEFAULT_STATE => 'btn btn--primary btn--sm event-card__btn', |
||
| 260 | ], |
||
| 261 | 'event_header' => [ |
||
| 262 | self::CAN_DOWNLOAD_TICKET => 'event-card__download', |
||
| 263 | self::EVENT_DONE => 'event-header__status', |
||
| 264 | self::EVENT_DEFAULT_STATE => 'btn btn--primary btn--lg event-header__btn', |
||
| 265 | ], |
||
| 266 | 'event_fix_header' => [ |
||
| 267 | self::CAN_DOWNLOAD_TICKET => '', |
||
| 268 | self::EVENT_DONE => 'fix-event-header__status', |
||
| 269 | self::EVENT_DEFAULT_STATE => 'btn btn--primary btn--lg fix-event-header__btn', |
||
| 270 | ], |
||
| 271 | 'event_fix_header_mob' => [ |
||
| 272 | self::CAN_DOWNLOAD_TICKET => '', |
||
| 273 | self::EVENT_DONE => 'fix-event-header__status fix-event-header__status--mob', |
||
| 274 | self::EVENT_DEFAULT_STATE => 'btn btn--primary btn--lg fix-event-header__btn fix-event-header__btn--mob', |
||
| 275 | ], |
||
| 276 | 'event_action_mob' => [ |
||
| 277 | self::CAN_DOWNLOAD_TICKET => 'event-action-mob__download', |
||
| 278 | self::EVENT_DONE => 'event-action-mob__status', |
||
| 279 | self::EVENT_DEFAULT_STATE => 'btn btn--primary btn--lg event-action-mob__btn', |
||
| 280 | ], |
||
| 281 | 'price_block_mob' => [ |
||
| 282 | self::CAN_DOWNLOAD_TICKET => '', |
||
| 283 | self::EVENT_DEFAULT_STATE => 'btn btn--primary btn--lg cost__buy cost__buy--mob', |
||
| 284 | ], |
||
| 285 | 'price_block' => [ |
||
| 286 | self::CAN_DOWNLOAD_TICKET => '', |
||
| 287 | self::EVENT_DEFAULT_STATE => 'btn btn--primary btn--lg cost__buy', |
||
| 288 | ], |
||
| 289 | ]; |
||
| 290 | |||
| 291 | if (in_array( |
||
| 292 | $eventState, |
||
| 293 | [ |
||
| 294 | self::EVENT_DONE, |
||
| 295 | self::PAID_IS_RETURNED, |
||
| 296 | self::PAID_FOR_ANOTHER, |
||
| 297 | self::TICKETS_SOLD_OUT, |
||
| 298 | ] |
||
| 299 | )) { |
||
| 300 | $class = isset($states[$position][self::EVENT_DONE]) ? $states[$position][self::EVENT_DONE] |
||
| 301 | : $states[$position][self::EVENT_DEFAULT_STATE]; |
||
| 302 | } else { |
||
| 303 | $class = isset($states[$position][$eventState]) ? $states[$position][$eventState] |
||
| 304 | : $states[$position][self::EVENT_DEFAULT_STATE]; |
||
| 305 | } |
||
| 306 | |||
| 307 | $isMob = in_array($position, ['event_fix_header_mob', 'price_block_mob']); |
||
| 308 | |||
| 309 | if ($event->isActiveAndFuture()) { |
||
| 310 | $data = $event->getSlug(); |
||
| 311 | |||
| 312 | if (self::CAN_DOWNLOAD_TICKET === $ticketState) { |
||
| 313 | $ticketCaption = $isMob ? $this->translator->trans('ticket.status.download') |
||
| 314 | : $this->translator->trans('ticket.status.download'); |
||
| 315 | $ticketClass = isset($states[$position][$ticketState]) ? $states[$position][$ticketState] |
||
| 316 | : $states[$position][self::EVENT_DEFAULT_STATE]; |
||
| 317 | if (!empty($ticketClass)) { |
||
| 318 | $href = $this->router->generate('event_ticket_download', ['eventSlug' => $event->getSlug()]); |
||
| 319 | } |
||
| 320 | } |
||
| 321 | |||
| 322 | if (self::WAIT_FOR_PAYMENT_RECEIVE === $eventState) { |
||
| 323 | $caption = $this->translator->trans('ticket.status.event.add'); |
||
| 324 | $isDiv = true; |
||
| 325 | } elseif (self::PAID_FOR_ANOTHER === $eventState) { |
||
| 326 | if ($isMob) { |
||
| 327 | $caption = $this->translator->trans('ticket.status.paid_mob'); |
||
| 328 | } else { |
||
| 329 | $caption = $this->translator->trans('ticket.status.paid'); |
||
| 330 | } |
||
| 331 | } elseif (self::TICKETS_SOLD_OUT === $eventState) { |
||
| 332 | $isDiv = true; |
||
| 333 | if ($isMob) { |
||
| 334 | $caption = $this->translator->trans('ticket.status.sold_mob'); |
||
| 335 | } else { |
||
| 336 | $caption = $this->translator->trans('ticket.status.sold'); |
||
| 337 | } |
||
| 338 | } elseif (self::CAN_WANNA_VISIT === $eventState && (!$user || !$user->isEventInWants($event))) { |
||
| 339 | $class .= ' set-modal-header add-wants-visit-event'; |
||
| 340 | $caption = $this->translator->trans('ticket.status.take_apart'); |
||
| 341 | } elseif (self::CAN_WANNA_VISIT === $eventState && ($user && $user->isEventInWants($event))) { |
||
| 342 | $class .= ' set-modal-header sub-wants-visit-event'; |
||
| 343 | $caption = $this->translator->trans('ticket.status.not_take_apart'); |
||
| 344 | } elseif (self::CAN_BUY_TICKET === $eventState) { |
||
| 345 | if ($isMob) { |
||
| 346 | $caption = $this->translator->trans('ticket.mob_status.pay'); |
||
| 347 | } elseif ('price_block' === $position) { |
||
| 348 | $amount = $ticketCost ? $ticketCost->getAmount() : $event->getBiggestTicketCost()->getAmount(); |
||
| 349 | $altAmount = '≈$'.number_format($ticketCost->getAltAmount(), 0, ',', ' '); |
||
|
|
|||
| 350 | $caption = $this->translator->trans('ticket.status.pay_for').' '.$this->translator |
||
| 351 | ->trans( |
||
| 352 | 'payment.price', |
||
| 353 | [ |
||
| 354 | '%summ%' => number_format($amount, 0, ',', ' '), |
||
| 355 | ] |
||
| 356 | ); |
||
| 357 | if ($ticketCost && $ticketCost->getAltAmount()) { |
||
| 358 | $caption .= '<span class="cost__dollars">'.$altAmount.'</span>'; |
||
| 359 | } |
||
| 360 | } else { |
||
| 361 | $caption = $this->translator->trans('ticket.status.pay'); |
||
| 362 | } |
||
| 363 | if (!in_array($position, ['event_header', 'event_fix_header', 'event_fix_header_mob'])) { |
||
| 364 | $class .= ' get-payment'; |
||
| 365 | } |
||
| 366 | } elseif (self::PAID_IS_RETURNED === $eventState) { |
||
| 367 | if ($isMob) { |
||
| 368 | $caption = $this->translator->trans('ticket.status.payment_returned_mob'); |
||
| 369 | } else { |
||
| 370 | $caption = $this->translator->trans('ticket.status.payment_returned'); |
||
| 371 | } |
||
| 372 | } |
||
| 373 | } else { |
||
| 374 | $isDiv = true; |
||
| 375 | if ($isMob) { |
||
| 376 | $caption = $this->translator->trans('ticket.status.event_done_mob'); |
||
| 377 | } else { |
||
| 378 | $caption = $this->translator->trans('ticket.status.event_done'); |
||
| 379 | } |
||
| 380 | } |
||
| 381 | |||
| 382 | $result = |
||
| 383 | [ |
||
| 384 | 'class' => $class, |
||
| 385 | 'caption' => $caption, |
||
| 386 | 'ticket_caption' => $ticketCaption, |
||
| 387 | 'ticket_class' => $ticketClass, |
||
| 388 | 'href' => $href, |
||
| 389 | 'isDiv' => $isDiv, |
||
| 390 | 'data' => $data, |
||
| 391 | 'id' => $position.'-'.$data, |
||
| 392 | ]; |
||
| 393 | |||
| 394 | return $result; |
||
| 395 | } |
||
| 397 |
This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.
This is most likely a typographical error or the method has been renamed.