add(self::ENDDATE,null); return self::doCount($c); } public static function customerContracts($customerid) { $c = new Criteria(); $c->add(ContractPeer::CUSTOMER_ID,$customerid); return ContractPeer::doSelect($c); } public static function customerBalance($customerid) { $balance = 0; $contracts = self::customerContracts($customerid); foreach($contracts as $contract) { $balance += InvoicePeer::sumInvoices($contract->getId()) - ReceiptPeer::sumReceipts($contract->getId()); } return $balance; } public static function getAutocomplete($keyword,$field='') { $customers = array(); $con = Propel::getConnection(); if ($field) { $elt = ''; switch ($field){ case 'city': $elt = CustomerPeer::CITY; break; } $query = 'SELECT DISTINCT ' . $elt . ' AS name FROM ' . CustomerPeer::TABLE_NAME . ' WHERE ' . $elt . ' LIKE \'%' . $keyword . '%\' ORDER BY ' . $elt; } else { $query = 'SELECT ' . CustomerPeer::ID . ' AS id, ' . CustomerPeer::NAME . ' AS name FROM ' . CustomerPeer::TABLE_NAME . ' WHERE (' . CustomerPeer::NAME . ' LIKE \'%' . $keyword . '%\' OR ' . CustomerPeer::ID . ' = \'' . $keyword . '\' ) AND ' . CustomerPeer::ENDDATE . ' IS NULL ORDER BY ' . CustomerPeer::NAME; } $stmt = $con->prepareStatement($query); $rs = $stmt->executeQuery(); while ($rs->next()) { if ($field) { $customers[] = array('name' => $rs->getString('name')); } else { $customers[] = array('name' => $rs->getString('name'), 'id' => $rs->getString('id')); } } return $customers; } }