/** * {@inheritdoc} */ public function getMassActions() { $archive = new MassAction('Restore', function ($ids) { /** @var ClientRepository $clientRepository */ $clientRepository = $this->entityManager->getRepository('CSBillClientBundle:Client'); /** @var Client[] $clients */ $clients = $clientRepository->findBy(array('id' => $ids)); foreach ($clients as $client) { $client->setArchived(null); $this->entityManager->persist($client); } $this->entityManager->flush(); /** @var FlashBag $flashBag */ $flashBag = $this->session->getBag('flashes'); $flashBag->add('success', 'client.restore.success'); }, true); $archive->setIcon('reply'); $archive->setClass('success'); $deleteAction = new DeleteMassAction(true); return array($archive, $deleteAction); }
/** * {@inheritdoc} */ public function getMassActions() { $archive = new MassAction('Archive', function ($ids) { /** @var ClientRepository $clientRepository */ $clientRepository = $this->objectManager->getRepository('CSBillClientBundle:Client'); /** @var Client[] $clients */ $clients = $clientRepository->findBy(array('id' => $ids)); foreach ($clients as $client) { $client->archive(); $client->setStatus(Status::STATUS_ARCHIVED); $this->objectManager->persist($client); } $this->objectManager->flush(); /** @var FlashBag $flashBag */ $flashBag = $this->session->getBag('flashes'); $flashBag->add('success', 'client.archive.success'); }, true); $archive->setIcon('archive'); $archive->setClass('warning'); $deleteAction = new DeleteMassAction(true); return array($archive, $deleteAction); }
/** * {@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()); }
/** * {@inheritdoc} */ public function getMassActions() { $archiveAction = new MassAction('Archive', function ($ids) { /** @var QuoteRepository $quoteRepository */ $quoteRepository = $this->entityManager->getRepository('CSBillQuoteBundle:Quote'); /** @var Quote[] $quotes */ $quotes = $quoteRepository->findBy(array('id' => $ids)); /** @var FlashBag $flashBag */ $flashBag = $this->session->getBag('flashes'); $failed = 0; foreach ($quotes as $quote) { $finite = $this->finite->get($quote, Graph::GRAPH); if ($finite->can(Graph::TRANSITION_ARCHIVE)) { $quote->archive(); $this->entityManager->persist($quote); } else { $flashBag->add('warning', 'quote.transition.exception.archive'); ++$failed; } } if ($failed !== count($quotes)) { $this->entityManager->flush(); $flashBag->add('success', 'quote.archive.success'); } }, true); $archiveAction->setIcon('archive'); $archiveAction->setClass('warning'); return array($archiveAction, new DeleteMassAction()); }