/** * parse the advanced filter options for the query condition * @param integer $idcustom_view * @return mix * @see ViewFilterUtils::get_adv_filter_conditions() */ public function parse_custom_view_advanced_filter($idcustom_view) { $this->query($this->get_saved_advanced_filter(), array((int) $idcustom_view)); return ViewFilterUtils::parse_advanced_filter($this); }
<?php // Copyright SQCRM. For licensing, reuse, modification and distribution see license.txt /** * Customview add * @author Abhik Chakraborty */ $do_crmfields = new CRMFields(); if (isset($_REQUEST["target_module_id"]) && (int) $_REQUEST["target_module_id"] > 0) { $target_module_id = (int) $_REQUEST["target_module_id"]; $cv_fields = $do_crmfields->get_fieldinfo_grouped_by_block($target_module_id, true); $date_filters = $do_crmfields->get_date_fields($target_module_id, true); $date_filter_options = ViewFilterUtils::get_date_filter_otions(); $advanced_filter_options = ViewFilterUtils::get_advanced_filter_options(); require_once 'view/customview_create_view.php'; }
/** * parse the advanced filter options and generate the query condition * @param object $obj * @return mix */ public static function parse_advanced_filter($obj) { $return_array = array(); if (is_object($obj)) { if ($obj->getNumRows() > 0) { $adv_where = ''; while ($obj->next()) { if ((int) $obj->filter_field > 0 && (int) $obj->filter_type > 0 && $obj->filter_value != '') { $adv_filter_field = ''; $condition = ViewFilterUtils::get_adv_filter_conditions($obj->filter_type); if ($obj->field_type == 15) { $adv_where .= " AND ( `user`.`user_name` {$condition} OR `group`.`group_name` {$condition}) "; if ($obj->filter_type == 3 || $obj->filter_type == 4) { $bind_params[] = '%' . $obj->filter_value . '%'; $bind_params[] = '%' . $obj->filter_value . '%'; } else { $bind_params[] = $obj->filter_value; $bind_params[] = $obj->filter_value; } } elseif ($obj->field_type == 131) { if ($obj->idmodule == 6) { $adv_where .= " AND (`org2`.`organization_name` {$condition}) "; } elseif ($obj->idmodule == 4) { $adv_where .= " AND (`organization`.`organization_name` {$condition}) "; } if ($obj->filter_type == 3 || $obj->filter_type == 4) { $bind_params[] = '%' . $obj->filter_value . '%'; } else { $bind_params[] = $obj->filter_value; } } elseif ($obj->field_type == 130) { $adv_where .= " AND (concat(`cnt2`.`firstname`,' ',`cnt2`.`lastname`) {$condition}) "; if ($obj->filter_type == 3 || $obj->filter_type == 4) { $bind_params[] = '%' . $obj->filter_value . '%'; } else { $bind_params[] = $obj->filter_value; } } elseif ($obj->field_type == 133) { $adv_where .= " AND `potentials`.`potential_name` {$condition} "; if ($obj->filter_type == 3 || $obj->filter_type == 4) { $bind_params[] = '%' . $obj->filter_value . '%'; } else { $bind_params[] = $obj->filter_value; } } elseif ($obj->field_type == 141) { $adv_where .= " AND `organization`.`organization_name` {$condition} "; if ($obj->filter_type == 3 || $obj->filter_type == 4) { $bind_params[] = '%' . $obj->filter_value . '%'; } else { $bind_params[] = $obj->filter_value; } } elseif ($obj->field_type == 142) { $adv_where .= " AND concat(`contacts`.`firstname`,' ',`contacts`.`lastname`) {$condition} "; if ($obj->filter_type == 3 || $obj->filter_type == 4) { $bind_params[] = '%' . $obj->filter_value . '%'; } else { $bind_params[] = $obj->filter_value; } } elseif ($obj->field_type == 143) { $adv_where .= " AND concat(`contacts`.`firstname`,' ',`contacts`.`lastname`) {$condition} "; if ($obj->filter_type == 3 || $obj->filter_type == 4) { $bind_params[] = '%' . $obj->filter_value . '%'; } else { $bind_params[] = $obj->filter_value; } } elseif ($obj->field_type == 150) { $adv_where .= " AND ( `sqorg`.`organization_name` {$condition} OR concat(sqcnt.firstname,' ',sqcnt.lastname) {$condition} ) "; if ($obj->filter_type == 3 || $obj->filter_type == 4) { $bind_params[] = '%' . $obj->filter_value . '%'; $bind_params[] = '%' . $obj->filter_value . '%'; } else { $bind_params[] = $obj->filter_value; $bind_params[] = $obj->filter_value; } } elseif ($obj->field_type == 151) { $adv_where .= " AND ( sqorg.organization_name {$condition} OR concat(sqcnt.firstname,' ',sqcnt.lastname) {$condition} OR concat(sqleads.firstname,' ',sqleads.lastname) {$condition} OR sqpot.potential_name {$condition} )"; if ($obj->filter_type == 3) { $bind_params[] = '%' . $obj->filter_value . '%'; $bind_params[] = '%' . $obj->filter_value . '%'; $bind_params[] = '%' . $obj->filter_value . '%'; $bind_params[] = '%' . $obj->filter_value . '%'; } else { $bind_params[] = $obj->filter_value; $bind_params[] = $obj->filter_value; $bind_params[] = $obj->filter_value; $bind_params[] = $obj->filter_value; } } elseif ($obj->field_type == 160) { $adv_where .= " AND `vendor`.`vendor_name` {$condition} "; if ($obj->filter_type == 3 || $obj->filter_type == 4) { $bind_params[] = '%' . $obj->filter_value . '%'; } else { $bind_params[] = $obj->filter_value; } } else { $adv_where .= " AND `" . $obj->table_name . "`.`" . $obj->field_name . "` {$condition} "; if ($obj->filter_type == 3 || $obj->filter_type == 4) { $bind_params[] = '%' . $obj->filter_value . '%'; } else { $bind_params[] = $obj->filter_value; } } } } if ($adv_where != '') { return array("where" => $adv_where, "bind_params" => $bind_params); } else { return false; } } else { return false; } } else { return false; } }