/** * appends sql to given select statement * * @param Zend_Db_Select $_select * @param Tinebase_Backend_Sql_Abstract $_backend */ public function appendFilterSql($_select, $_backend) { $filterData = array('field' => $this->_field, 'operator' => $this->_operator, 'value' => array($this->_value)); //print_r($filterData); $oFilter = new Billing_Model_OrderFilter(array(), 'AND'); $oFilter->addFilter($oFilter->createFilter($this->_field, $this->_operator, $this->_value)); /*Filter = $oFilter->toArray(); print_r($aFilter); */ $orderIds = Billing_Controller_Order::getInstance()->search($oFilter, null, false, true); //print_r($orderIds); $filter = new Billing_Model_ReceiptFilter(array(), 'AND'); if (count($orderIds) > 0) { $filter->addFilter(new Tinebase_Model_Filter_Id('order_id', 'in', $orderIds)); } else { $filter->addFilter(new Tinebase_Model_Filter_Id('order_id', 'in', array(0 => null))); } $receiptIds = Billing_Controller_Receipt::getInstance()->search($filter, null, false, true); if (count($receiptIds) > 0) { $filter1 = new Billing_Model_ArticleSoldFilter(array(), 'AND'); $filter1->addFilter(new Tinebase_Model_Filter_Id('receipt_id', 'in', $receiptIds)); Tinebase_Backend_Sql_Filter_FilterGroup::appendFilters($_select, $filter1, $_backend); } else { $filter1 = new Billing_Model_ArticleSoldFilter(array(), 'AND'); $filter1->addFilter(new Tinebase_Model_Filter_Id('receipt_id', 'in', array(0 => null))); Tinebase_Backend_Sql_Filter_FilterGroup::appendFilters($_select, $filter1, $_backend); } // echo $_select->assemble(); }
/** * appends sql to given select statement * * @param Zend_Db_Select $_select * @param Tinebase_Backend_Sql_Abstract $_backend */ public function appendFilterSql($_select, $_backend) { if ($this->_value) { $filterData = array(array('field' => 'type', 'operator' => $this->_operator, 'value' => $this->_value)); $filter = new Billing_Model_ReceiptFilter($filterData, 'AND'); Tinebase_Backend_Sql_Filter_FilterGroup::appendFilters($_select, $filter, $_backend); } }
/** * appends sql to given select statement * * @param Zend_Db_Select $_select * @param Tinebase_Backend_Sql_Abstract $_backend */ public function appendFilterSql($_select, $_backend) { if ($this->_value) { $filterData = array(array('field' => 'created_by', 'operator' => $this->_operator, 'value' => Tinebase_Core::getUser()->__get('accountId'))); $filter = new Billing_Model_ReceiptFilter($filterData, 'AND'); Tinebase_Backend_Sql_Filter_FilterGroup::appendFilters($_select, $filter, $_backend); } }
/** * appends sql to given select statement * * @param Zend_Db_Select $_select * @param Tinebase_Backend_Sql_Abstract $_backend */ public function appendFilterSql($_select, $_backend) { if (empty($this->_value)) { // nothing to filter return; } $filterData = array(array('field' => 'lead_name', 'operator' => 'contains', 'value' => $this->_value), array('field' => 'description', 'operator' => 'contains', 'value' => $this->_value), array('field' => 'showClosed', 'operator' => 'equals', 'value' => TRUE)); $filter = new Crm_Model_LeadFilter($filterData, 'OR'); $this->_advancedSearch($filter); Tinebase_Backend_Sql_Filter_FilterGroup::appendFilters($_select, $filter, $_backend); }
/** * appends sql to given select statement * * @param Zend_Db_Select $_select * @param Tinebase_Backend_Sql_Abstract $_backend */ public function appendFilterSql($_select, $_backend) { if ($this->_value) { $filterData = array(array('field' => 'debitor_nr', 'operator' => $this->_operator, 'value' => $this->_value)); $filter = new Billing_Model_DebitorFilter($filterData, 'OR'); $contactFilter = new Addressbook_Model_ContactFilter(array(array('field' => 'query', 'operator' => $this->_operator, 'value' => $this->_value))); $contactIds = Addressbook_Controller_Contact::getInstance()->search($contactFilter, NULL, FALSE, TRUE); $filter->addFilter(new Tinebase_Model_Filter_Id('contact_id', 'in', $contactIds)); Tinebase_Backend_Sql_Filter_FilterGroup::appendFilters($_select, $filter, $_backend); } }
/** * appends sql to given select statement * * @param Zend_Db_Select $_select * @param Tinebase_Backend_Sql_Abstract $_backend */ public function appendFilterSql($_select, $_backend) { if (empty($this->_value)) { // nothing to filter return; } $filterData = array(array('field' => 'lead_name', 'operator' => 'contains', 'value' => $this->_value), array('field' => 'description', 'operator' => 'contains', 'value' => $this->_value), array('field' => 'showClosed', 'operator' => 'equals', 'value' => TRUE)); $filter = new Crm_Model_LeadFilter($filterData, 'OR'); /*** also filter for related contacts ***/ $contactFilter = new Addressbook_Model_ContactFilter(array(array('field' => 'query', 'operator' => 'contains', 'value' => $this->_value))); $contactIds = Addressbook_Controller_Contact::getInstance()->search($contactFilter, NULL, FALSE, TRUE); $relationFilter = new Tinebase_Model_RelationFilter(array(array('field' => 'own_model', 'operator' => 'equals', 'value' => 'Crm_Model_Lead'), array('field' => 'related_model', 'operator' => 'equals', 'value' => 'Addressbook_Model_Contact'), array('field' => 'related_id', 'operator' => 'in', 'value' => $contactIds))); $leadIds = Tinebase_Relations::getInstance()->search($relationFilter, NULL)->own_id; $filter->addFilter(new Tinebase_Model_Filter_Id('id', 'in', $leadIds)); Tinebase_Backend_Sql_Filter_FilterGroup::appendFilters($_select, $filter, $_backend); }
/** * appends sql to given select statement * * @param Zend_Db_Select $_select * @param Tinebase_Backend_Sql_Abstract $_backend */ public function appendFilterSql($_select, $_backend) { $filterData = array(array('field' => 'combi_type', 'operator' => $this->_operator, 'value' => $this->_value)); $filter = new Billing_Model_ReceiptFilter($filterData, 'AND'); $receiptIds = Billing_Controller_Receipt::getInstance()->search($filter, null, false, true); if (count($receiptIds) > 0) { $filter1 = new Billing_Model_ArticleSoldFilter(array(), 'AND'); $filter1->addFilter(new Tinebase_Model_Filter_Id('receipt_id', 'in', $receiptIds)); Tinebase_Backend_Sql_Filter_FilterGroup::appendFilters($_select, $filter1, $_backend); } else { $filter1 = new Billing_Model_ArticleSoldFilter(array(), 'AND'); $filter1->addFilter(new Tinebase_Model_Filter_Id('receipt_id', 'in', array(0 => null))); Tinebase_Backend_Sql_Filter_FilterGroup::appendFilters($_select, $filter1, $_backend); } // echo $_select->assemble(); }
/** * appends sql to given select statement * * @param Zend_Db_Select $_select * @param Tinebase_Backend_Sql_Abstract $_backend */ public function appendFilterSql($_select, $_backend) { if ($this->_accountId === '0') { // get anyones preferences $field = $_backend->getAdapter()->quoteIdentifier($_backend->getTableName() . '.account_type'); $_select->where(Tinebase_Core::getDb()->quoteInto($field . '= ?', Tinebase_Acl_Rights::ACCOUNT_TYPE_ANYONE)); } else { $conditions = array(array('condition' => Tinebase_Model_Filter_FilterGroup::CONDITION_AND, 'filters' => array(array('field' => 'account_id', 'operator' => 'equals', 'value' => $this->_accountId), array('field' => 'account_type', 'operator' => 'equals', 'value' => $this->_accountType))), array('field' => 'account_type', 'operator' => 'equals', 'value' => Tinebase_Acl_Rights::ACCOUNT_TYPE_ANYONE)); // add groups if accountType is user if ($this->_accountType === Tinebase_Acl_Rights::ACCOUNT_TYPE_USER) { $groups = Tinebase_Group::getInstance()->getGroupMemberships($this->_accountId); $conditions[] = array('condition' => Tinebase_Model_Filter_FilterGroup::CONDITION_AND, 'filters' => array(array('field' => 'account_id', 'operator' => 'in', 'value' => $groups), array('field' => 'account_type', 'operator' => 'equals', 'value' => Tinebase_Acl_Rights::ACCOUNT_TYPE_GROUP))); } $filter = new Tinebase_Model_PreferenceFilter($conditions, Tinebase_Model_Filter_FilterGroup::CONDITION_OR); Tinebase_Backend_Sql_Filter_FilterGroup::appendFilters($_select, $filter, $_backend); } }
/** * appends sql to given select statement * * @param Zend_Db_Select $_select * @param Tinebase_Backend_Sql_Abstract $_backend */ public function appendFilterSql($_select, $_backend) { if ($this->_value) { $filter = array(array('field' => 'debitor_id', 'operator' => 'AND', 'value' => array(array('field' => 'id', 'operator' => 'equals', 'value' => $this->_value)))); /*$filter = array(array( 'field' => 'debitor_id', 'operator' => $this->_operator, 'value' => $this->_value ));*/ $abFilter = new Billing_Model_AccountBookingFilter($filter, 'AND'); $abs = Billing_Controller_AccountBooking::getInstance()->search($abFilter); $bookingIds = $abs->__getFlattened('booking_id'); //print_r($bookingIds); if (!is_array($bookingIds) || count($bookingIds) == 0) { $bookingIds = array('0', null); } $filter1 = new Billing_Model_BookingFilter(array(), 'AND'); $filter1->addFilter(new Tinebase_Model_Filter_Id('id', 'in', $bookingIds)); Tinebase_Backend_Sql_Filter_FilterGroup::appendFilters($_select, $filter1, $_backend); // echo $_select->assemble(); } }
/** * appends sql to given select statement * * @param Zend_Db_Select $_select * @param Tinebase_Backend_Sql_Abstract $_backend */ public function appendFilterSql($_select, $_backend) { if ($this->_disabled === TRUE) { return; } $filter = new Calendar_Model_EventFilter(array(array('condition' => Tinebase_Model_Filter_FilterGroup::CONDITION_AND, 'filters' => array(array('field' => 'rrule', 'operator' => 'isnull', 'value' => NULL), array('field' => 'dtstart', 'operator' => 'before', 'value' => $this->_until), array('field' => 'dtend', 'operator' => 'after', 'value' => $this->_from))), array('condition' => Tinebase_Model_Filter_FilterGroup::CONDITION_AND, 'filters' => array(array('field' => 'rrule', 'operator' => 'notnull', 'value' => NULL), array('field' => 'dtstart', 'operator' => 'before', 'value' => $this->_until), array('condition' => Tinebase_Model_Filter_FilterGroup::CONDITION_OR, 'filters' => array(array('field' => 'rrule_until', 'operator' => 'after', 'value' => $this->_from), array('field' => 'rrule_until', 'operator' => 'isnull', 'value' => NULL)))))), Tinebase_Model_Filter_FilterGroup::CONDITION_OR); Tinebase_Backend_Sql_Filter_FilterGroup::appendFilters($_select, $filter, $_backend); }
/** * get preferences * * @param string $_preferenceName * @param string $_accountId * @param string $_accountType * @return array result */ protected function _getPrefs($_preferenceName, $_accountId = '0', $_accountType = Tinebase_Acl_Rights::ACCOUNT_TYPE_ANYONE) { $select = $this->_getSelect(); $appId = Tinebase_Application::getInstance()->getApplicationByName($this->_application)->getId(); $filter = new Tinebase_Model_PreferenceFilter(array(array('field' => 'account', 'operator' => 'equals', 'value' => array('accountId' => $_accountId, 'accountType' => $_accountType)), array('field' => 'name', 'operator' => 'equals', 'value' => $_preferenceName), array('field' => 'application_id', 'operator' => 'equals', 'value' => $appId))); Tinebase_Backend_Sql_Filter_FilterGroup::appendFilters($select, $filter, $this); $stmt = $this->_db->query($select); $queryResult = $stmt->fetchAll(); return $queryResult; }
/** * add the fields to search for to the query * * @param Zend_Db_Select $_select current where filter * @param Tinebase_Model_Filter_FilterGroup $_filter the string to search for * @return void */ protected function _addFilter(Zend_Db_Select $_select, $_filter) { Tinebase_Backend_Sql_Filter_FilterGroup::appendFilters($_select, $_filter, $this); }
/** * count notes * * @param Tinebase_Model_NoteFilter $_filter * @param boolean $ignoreACL * @return int notes count */ public function searchNotesCount(Tinebase_Model_NoteFilter $_filter, $ignoreACL = true) { $select = $this->_db->select()->from(array('notes' => SQL_TABLE_PREFIX . 'notes'), array('count' => 'COUNT(' . $this->_db->quoteIdentifier('id') . ')'))->where($this->_db->quoteIdentifier('is_deleted') . ' = 0'); if (!$ignoreACL) { $this->_checkFilterACL($_filter); } Tinebase_Backend_Sql_Filter_FilterGroup::appendFilters($select, $_filter, $this); $result = $this->_db->fetchOne($select); return $result; }
/** * count notes * * @param Tinebase_Model_NoteFilter $_filter * @return int notes count */ public function searchNotesCount(Tinebase_Model_NoteFilter $_filter) { $select = $this->_db->select()->from(array('notes' => SQL_TABLE_PREFIX . 'notes'), array('count' => 'COUNT(' . $this->_db->quoteIdentifier('id') . ')')); Tinebase_Backend_Sql_Filter_FilterGroup::appendFilters($select, $_filter, $this); //$_filter->appendFilterSql($select); $result = $this->_db->fetchOne($select); return $result; }