コード例 #1
0
 /**
  * @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());
 }
コード例 #2
0
 /**
  * @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);
 }
コード例 #3
0
 /**
  * @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);
 }
コード例 #4
0
 /**
  * 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;
 }
コード例 #5
0
 /**
  * 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();
 }
コード例 #6
0
 /**
  * @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'));
 }
コード例 #7
0
ファイル: Campaign.php プロジェクト: Leonhart25/JWKingdomHall
 /**
  * Get formatted date
  *
  * @return string
  */
 public function getFormattedEndDate()
 {
     return $this->endDate ? $this->endDate->format($this->congregation->getSettings()->get('date_format_twig')->getValue()) : null;
 }
コード例 #8
0
 public function getCongregationSetting($code)
 {
     return $this->request->get('congregation')->getTypedSetting($code);
 }