Example #1
0
 /**
  * {@inheritdoc}
  */
 public function getMassActions()
 {
     $archiveAction = new MassAction('Archive', function ($ids) {
         /** @var InvoiceRepository $invoiceRepository */
         $invoiceRepository = $this->entityManager->getRepository('CSBillInvoiceBundle:Invoice');
         /** @var Invoice[] $invoices */
         $invoices = $invoiceRepository->findBy(array('id' => $ids));
         /** @var FlashBag $flashBag */
         $flashBag = $this->session->getBag('flashes');
         $failed = 0;
         foreach ($invoices as $invoice) {
             try {
                 $this->invoiceManager->archive($invoice);
             } catch (InvalidTransitionException $e) {
                 $flashBag->add('warning', $e->getMessage());
                 ++$failed;
             }
         }
         if ($failed !== count($invoices)) {
             $flashBag->add('success', 'invoice.archive.success');
         }
     }, true);
     $archiveAction->setIcon('archive');
     $archiveAction->setClass('warning');
     return array($archiveAction, new DeleteMassAction());
 }