| 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 |