public function countStatus(PledgeItem $pledge_item, $status, $target_list = null)
 {
     $query = $this->createQuery('p')->where('p.status = ?', $status)->andWhere('pledge_item_id = ?', $pledge_item->getId());
     if ($target_list) {
         /* @var $target_list MailingList */
         $query->leftJoin('p.Contact c')->andWhere('c.mailing_list_id = ?', $target_list->getId());
     }
     return $query->count();
 }
 public function findOneByItemAndText(PledgeItem $item, PetitionText $text)
 {
     return $this->createQuery('pt')->where('pt.pledge_item_id = ?', $item->getId())->andWhere('pt.petition_text_id = ?', $text->getId())->fetchOne();
 }
 public function getPledgeTextByPledgeItem(PledgeItem $pledge_item)
 {
     foreach ($this->getPledgeTexts() as $pledge_text) {
         /* @var $pledge_text PledgeText */
         if ($pledge_text->getPledgeItemId() == $pledge_item->getId()) {
             $text = trim($pledge_text->getText());
             if ($text) {
                 return $text;
             } else {
                 return $pledge_item->getName();
             }
         }
     }
     return $pledge_item->getName();
 }