コード例 #1
0
 /**
  * Query
  *
  * @param array $args
  * @return Doctrine_Query $q
  */
 protected function air_query($args = array())
 {
     $q = Doctrine_Query::create()->from('InqOutcome io');
     $q->where('io.iout_out_id = ?', $this->parent_rec->out_id);
     $q->leftJoin('io.Inquiry i');
     $q->leftJoin('io.CreUser c');
     Inquiry::add_counts($q, 'i');
     $q->addSelect('(i.inq_publish_dtim is not null) as ispub');
     return $q;
 }
コード例 #2
0
 /**
  * Query
  *
  * @param array $args
  * @return Doctrine_Query $q
  */
 protected function air_query($args = array())
 {
     $prj_id = $this->parent_rec->prj_id;
     $q = Doctrine_Query::create()->from('ProjectInquiry pi');
     $q->where('pi.pinq_prj_id = ?', $prj_id);
     $q->leftJoin('pi.Inquiry i');
     $q->leftJoin('i.CreUser u');
     $q->leftJoin('u.UserOrg uo WITH uo.uo_home_flag = true');
     $q->leftJoin('uo.Organization o');
     $q->addSelect('i.inq_uuid as inq_uuid');
     Inquiry::add_counts($q, 'i');
     // prevent record-wise limit (fixes limit subquery)
     $q->getRoot()->setAttribute(Doctrine_Core::ATTR_QUERY_LIMIT, Doctrine_Core::LIMIT_ROWS);
     return $q;
 }
コード例 #3
0
 /**
  * Fetch
  *
  * @param string $uuid
  * @return Doctrine_Record $rec
  */
 protected function air_fetch($uuid)
 {
     $q = Doctrine_Query::create()->from('Inquiry i');
     $q->andWhere('i.inq_id = ?', $this->parent_rec->srs_inq_id);
     // some more stuff
     $q->leftJoin('i.CreUser icu');
     $q->leftJoin('icu.UserOrg icuo WITH icuo.uo_home_flag = true');
     $q->leftJoin('icuo.Organization o');
     $q->leftJoin('i.ProjectInquiry pi');
     $q->leftJoin('pi.Project');
     $q->leftJoin('i.InqOrg io');
     $q->leftJoin('io.Organization ioo');
     Inquiry::add_counts($q, 'i');
     return $q->fetchOne();
 }
コード例 #4
0
 /**
  * Query
  *
  * @param array   $args
  * @return Doctrine_Query $q
  */
 protected function air_query($args = array())
 {
     $q = Doctrine_Query::create()->from('Inquiry i');
     $q->leftJoin('i.CreUser ic');
     $q->leftJoin('i.UpdUser iu');
     $q->leftJoin('i.CacheUser cu');
     $q->leftJoin('i.Locale l');
     $q->leftJoin('i.InqOrg io');
     $q->leftJoin('io.Organization o');
     $q->leftJoin('i.ProjectInquiry pi');
     $q->leftJoin('pi.Project p');
     $q->leftJoin("i.Logo ilg WITH ilg.img_ref_type = ?", 'Q');
     $q->leftJoin("io.OrgLogo iol WITH iol.img_ref_type = ?", 'L');
     Inquiry::add_counts($q, 'i');
     $q->addSelect('(inq_publish_dtim is not null) as ispub');
     // status and type
     if (isset($args['status'])) {
         air2_query_in($q, $args['status'], 'i.inq_status');
     }
     if (isset($args['type'])) {
         air2_query_in($q, $args['type'], 'i.inq_type');
     }
     // only within a project
     if (isset($args['prj_uuid'])) {
         $q->addWhere('p.prj_uuid = ?', $args['prj_uuid']);
     }
     // exclude project
     if (isset($args['excl_prj'])) {
         $prjq = "select prj_id from project where prj_uuid = ?";
         $excl = "select pinq_inq_id from project_inquiry where pinq_prj_id = ({$prjq})";
         $q->addWhere("i.inq_id NOT IN ({$excl})", $args['excl_prj']);
     }
     // exclude an outcome
     if (isset($args['excl_out'])) {
         $outq = "select out_id from outcome where out_uuid = ?";
         $excl = "select iout_inq_id from inq_outcome where iout_out_id = ({$outq})";
         $q->addWhere("i.inq_id not in ({$excl})", $args['excl_out']);
     }
     // exclude an email
     if (isset($args['excl_eml'])) {
         $emlq = "select email_id from email where email_uuid = ?";
         $excl = "select einq_inq_id from email_inquiry where einq_email_id = ({$emlq})";
         $q->addWhere("i.inq_id not in ({$excl})", $args['excl_eml']);
     }
     return $q;
 }