/** * 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; }
/** * 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; }
/** * 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(); }
/** * 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; }