commerce_line_item_handler_filter_line_item_is_referenced.inc in Commerce Core 7
File
modules/line_item/includes/views/handlers/commerce_line_item_handler_filter_line_item_is_referenced.inc
View source
<?php
class commerce_line_item_handler_filter_line_item_is_referenced extends views_handler_filter {
function can_expose() {
return FALSE;
}
function admin_summary() {
if ($this->operator == 'NOT IN') {
return 'NOT';
}
return '';
}
function option_definition() {
$options = parent::option_definition();
$options['operator'] = array(
'default' => 'IN',
);
return $options;
}
function operator_options($which = 'title') {
$options = array();
$options['IN'] = t('Line item is referenced');
$options['NOT IN'] = t('Line item is NOT referenced');
return $options;
}
function query() {
if (empty($this->operator)) {
$this->operator = 'IN';
}
$field_info = field_info_field('commerce_line_items');
if (empty($field_info['storage']['details']['sql']['FIELD_LOAD_CURRENT'])) {
return;
}
$field_table = key($field_info['storage']['details']['sql']['FIELD_LOAD_CURRENT']);
$field_value_column = $field_info['storage']['details']['sql']['FIELD_LOAD_CURRENT'][$field_table]['line_item_id'];
$this->table_alias = $this->query
->ensure_table($this->view->base_table, $this->relationship);
$snippet = $this->table_alias . '.line_item_id ' . $this->operator . ' (SELECT ' . $field_value_column . ' FROM {' . $field_table . '} WHERE deleted = 0 AND entity_id != 0 AND entity_id = ' . $this->table_alias . '.order_id)';
$this->query
->add_where_expression($this->options['group'], $snippet);
}
}