add(self::ENDDATE,null); $c->addJoin(self::ID,ContractMeterPeer::METER_ID); $c->add(ContractMeterPeer::ENDDATE,null); return self::doCount($c,true); } public static function isSerialnbUsed($serialnb) { $c = new Criteria(); $c->add(self::SERIALNB,$serialnb); $result = self::doSelectOne($c); if ($result) return true; else return false; } public static function getAutocomplete($keyword,$field='') { $meters = array(); $con = Propel::getConnection(); if ($field) { switch($field){ case 'manufacturer': $elt = MeterPeer::MANUFACTURER; break; case 'model': $elt = MeterPeer::MODEL; break; } $query = 'SELECT DISTINCT ' . $elt . ' AS name FROM ' . MeterPeer::TABLE_NAME . ' WHERE ' . $elt . ' LIKE \'%' . $keyword . '%\''; } else { // $query = 'SELECT %s AS id, '; $query = 'SELECT ' . MeterPeer::ID . ' AS id, ' . MeterPeer::SERIALNB . ' AS serialnb, ' . MeterPeer::MANUFACTURER . ' AS manufacturer FROM ' . MeterPeer::TABLE_NAME . ' WHERE (' . MeterPeer::SERIALNB . ' LIKE \'%' . $keyword . '%\' OR ' . MeterPeer::MANUFACTURER . ' LIKE \'%' . $keyword . '%\' OR ' . MeterPeer::MODEL . ' LIKE \'%' . $keyword . '%\' OR ' . self::ID . ' = \'' . $keyword.'\') ORDER BY ' . MeterPeer::MANUFACTURER . ', ' . MeterPeer::ID; } $stmt = $con->prepareStatement($query); $rs = $stmt->executeQuery(); while ($rs->next()) { if ($field) { $meters[] = array('name' => $rs->getString('name')); } else { $meters[] = array('name' => rtrim($rs->getString('serialnb') . ' - ' . $rs->getString('manufacturer'),'- '), 'id' => $rs->getString('id')); } } return $meters; } public static function getAutocompleteMeterInactive($keyword) { $meters = array(); $con = Propel::getConnection(); $query = "SELECT %s AS id, %s as serialnb FROM %s WHERE %s NOT IN ( SELECT %s FROM %s WHERE %s IS NULL ) AND %s IS NULL AND %s LIKE '%%%s%%'"; $query = sprintf($query,self::ID,self::SERIALNB,self::TABLE_NAME,self::ID,ContractMeterPeer::METER_ID, ContractMeterPeer::TABLE_NAME,ContractMeterPeer::ENDDATE,self::ENDDATE,self::SERIALNB,$keyword); $stmt = $con->prepareStatement($query); $rs = $stmt->executeQuery(); while ($rs->next()) { $meters[] = array('name' => $rs->getString('serialnb'), 'id' => $rs->getString('id')); } return $meters; } public static function getAutocompleteMeterActive($keyword) { $meters = array(); $con = Propel::getConnection(); $query = "SELECT %s AS id, %s as serialnb FROM %s WHERE %s IN ( SELECT %s FROM %s WHERE %s IS NULL ) AND %s IS NULL AND %s LIKE '%%%s%%'"; $query = sprintf($query,self::ID,self::SERIALNB,self::TABLE_NAME,self::ID,ContractMeterPeer::METER_ID, ContractMeterPeer::TABLE_NAME,ContractMeterPeer::ENDDATE,self::ENDDATE,self::SERIALNB,$keyword); $stmt = $con->prepareStatement($query); $rs = $stmt->executeQuery(); while ($rs->next()) { $meters[] = array('name' => $rs->getString('serialnb'), 'id' => $rs->getString('id')); } return $meters; } }