add(self::CONTRACT_ID,$contractid); $c->add(self::ENDDATE,null); $c->setLimit(1); return self::doSelectOne($c); } public static function getActiveContract($meterid) { $c = new Criteria(); $c->add(self::METER_ID,$meterid); $c->add(self::ENDDATE,null); return self::doSelectOne($c); } public static function getActiveMeter($contractid) { $c = new Criteria(); $c->add(self::CONTRACT_ID,$contractid); // $c->add(self::ENDDATE,null); $c->addDescendingOrderByColumn(self::STARTDATE); $c->setLimit(1); return self::doSelectOne($c); } public static function getCurrentContractId($meterid) { $contractid = ''; $query = 'SELECT %s AS contract_id FROM %s WHERE %s = %s AND %s IS NULL'; $query = sprintf($query,self::CONTRACT_ID,self::TABLE_NAME,self::METER_ID,$meterid,self::ENDDATE); $con = Propel::getConnection(); $stmt = $con->prepareStatement($query); $rs = $stmt->executeQuery(); while ($rs->next()) { $contractid = $rs->getString('contract_id'); } return $contractid; $contractid = ''; $c = new Criteria(); $c->clearSelectColumns()->addSelectColumn(self::CONTRACT_ID); $c->add(self::METER_ID,$meterid); $c->add(self::ENDDATE,Criteria::ISNULL); $rs = self::doSelectRS($c); while($rs->next()) { $contractid = $rs->getString(1); } return $contractid; } public static function getCurrentMeterId($contractid) { $c = new Criteria(); $c->add(self::CONTRACT_ID,$contractid); $c->add(self::ENDDATE,Criteria::ISNULL); return self::doSelectOne($c); } public static function getAutocompleteNewReading($keyword) { $meters = array(); $con = Propel::getConnection(); $currentCycle = ReadingCyclePeer::getCurrentCycle(); $query = "SELECT %s as name, %s as id FROM %s WHERE %s LIKE '%%%s%%' AND %s IS NULL AND %s NOT IN (SELECT %s FROM %s WHERE %s=%s AND %s=%s)"; $query = sprintf($query,self::SERIALNB,self::METER_ID,self::TABLE_NAME,self::SERIALNB, $keyword,self::ENDDATE,self::METER_ID,ReadingPeer::METER_ID,ReadingPeer::TABLE_NAME, ReadingPeer::SERIALNB,self::SERIALNB,ReadingPeer::READING_CYCLE_ID,$currentCycle->getId()); $stmt = $con->prepareStatement($query); $rs = $stmt->executeQuery(); while ($rs->next()) { $meters[] = array('name' => rtrim($rs->getString('name'),', '), 'id' => $rs->getString('id')); } return $meters; } }