/** * @param Request $request * @param Congregation $congregation * @param Campaign $campaign * * @ParamConverter(name="campaign", class="KingdomHallDataBundle:Campaign", options={"id" = "campaignId"}) * * @return array * * @Template() */ public function editAction(Request $request, Congregation $congregation, Campaign $campaign) { $form = $this->createForm('kingdomhall_form_campaign', $campaign, array('action' => $this->generateUrl('kingdom_hall_campaigns_edit', array('congregationCode' => $congregation->getCode(), 'campaignId' => $campaign->getId())))); $form->handleRequest($request); if ($form->isValid()) { $manager = $this->getDoctrine()->getManager(); $manager->persist($campaign); $manager->flush(); } return array('form' => $form->createView()); }
/** * @Delete("/api/congregations/{congregation}/territories") * * @param Congregation $congregation * @ParamConverter(name="congregation", class="KingdomHallDataBundle:Congregation") * * @param ParamFetcher $fetcher * @QueryParam("ids") * * @return string */ public function deleteCongregationTerritoriesAction(Congregation $congregation, ParamFetcher $fetcher) { $manager = $this->getDoctrine()->getManager(); $territories = $congregation->getTerritories(); foreach (explode(',', $fetcher->get('ids')) as $id) { $territory = $territories->get($id); if ($territory) { $manager->remove($territory); } } $manager->flush(); return new Response('', 204); }
/** * @Delete("/api/congregations/{congregation}/publishers") * * @param Congregation $congregation * @ParamConverter(name="congregation", class="KingdomHallDataBundle:Congregation") * * @param ParamFetcher $fetcher * @QueryParam("ids") * * @return string */ public function deleteCongregationPublishersAction(Congregation $congregation, ParamFetcher $fetcher) { $manager = $this->getDoctrine()->getManager(); $publishers = $congregation->getPublishers(); foreach (explode(',', $fetcher->get('ids')) as $id) { $publisher = $publishers->get($id); if ($publisher) { $publisher->setDeleted(true); $manager->persist($publisher); } } $manager->flush(); return new Response('', 204); }
/** * Get the status of a territory * - Warning means the territory should be returned soon * - Alert means the territory is late and should be returned now * * @return string */ public function getStatus() { $status = ''; if ($this->publisher) { $warningDate = new \DateTime(); $warningDate->add(\DateInterval::createFromDateString('-' . $this->congregation->getSettings()->get('territory_warning_borrow_time')->getValue())); $alertDate = new \DateTime(); $alertDate->add(\DateInterval::createFromDateString('-' . $this->congregation->getSettings()->get('territory_max_borrow_time')->getValue())); if ($this->borrowDate) { if ($this->borrowDate < $alertDate) { $status = self::TERRITORY_STATUS_ALERT; } elseif ($this->borrowDate < $warningDate) { $status = self::TERRITORY_STATUS_WARNING; } } } return $status; }
/** * Get all the campaigns associated to a congregation. * * @param Congregation $congregation a congregation * * @View() * @ParamConverter(name="congregation", class="KingdomHallDataBundle:Congregation") * * @return array */ public function getCongregationCampaignsAction(Congregation $congregation) { return $congregation->getCampaigns()->getValues(); }
/** * @param Request $request * @param Congregation $congregation * * @return Response */ public function s13PdfAction(Request $request, Congregation $congregation) { $territories = $congregation->getTerritoriesByType('standard')->getValues(); $pdfData = array(); $page = 0; while ($page < count($territories) / 5) { $pdfData[$page]['body'] = array(); for ($i = 0; $i < 5; $i++) { if (array_key_exists($page * 5 + $i, $territories)) { $territory = $territories[$page * 5 + $i]; $pdfData[$page]['header'][$i] = array('name' => $territory->getName(), 'number' => $territory->getNumber()); $row = 0; foreach ($territory->getHistories() as $history) { $pdfData[$page]['body'][$row][$i] = array('name' => $history->getPublisher()->getFullName(), 'borrow' => $history->getBorrowDate(), 'return' => $history->getReturnDate()); $row++; } } } $page++; } $html = $this->render('@KingdomHallMain/Territory/List/s13Pdf.html.twig', array('data' => $pdfData)); $mpdf = new \mPDF(); $mpdf->ignore_invalid_utf8 = true; $mpdf->WriteHTML($html); $pdf = $mpdf->Output($congregation->getName() . '_s13.pdf', 'I'); return new Response($pdf, 200, array('Content-Type' => 'application/pdf')); }
/** * Get formatted date * * @return string */ public function getFormattedEndDate() { return $this->endDate ? $this->endDate->format($this->congregation->getSettings()->get('date_format_twig')->getValue()) : null; }
public function getCongregationSetting($code) { return $this->request->get('congregation')->getTypedSetting($code); }