public function check_key($new_key, $arr) { if ($arr[1] == $new_key) { return true; } return Utils_CommonDataCommon::get_id($arr[0] . '/' . $new_key) === false; }
protected function build_order_part($order) { foreach ($order as $k => $v) { if (!is_string($k)) { break; } if ($k[0] == ':') { $order[] = array('column' => $k, 'order' => $k, 'direction' => $v); } else { $field_label = isset($this->fields_by_id[$k]) ? $this->fields_by_id[$k] : $k; if (isset($this->fields[$field_label])) { $order[] = array('column' => $field_label, 'order' => $field_label, 'direction' => $v); } } unset($order[$k]); } $orderby = array(); $user_id = Base_AclCommon::get_user(); foreach ($order as $v) { if ($v['order'][0] != ':' && !isset($this->fields[$v['order']])) { continue; } if ($v['order'][0] == ':') { switch ($v['order']) { case ':id': $orderby[] = ' id ' . $v['direction']; break; case ':Fav': $orderby[] = ' (SELECT COUNT(*) FROM ' . $this->tab . '_favorite WHERE ' . $this->tab . '_id=' . $this->tab_alias . '.id AND user_id=' . $user_id . ') ' . $v['direction']; break; case ':Visited_on': $orderby[] = ' (SELECT MAX(visited_on) FROM ' . $this->tab . '_recent WHERE ' . $this->tab . '_id=' . $this->tab_alias . '.id AND user_id=' . $user_id . ') ' . $v['direction']; break; case ':Edited_on': $orderby[] = ' (CASE WHEN (SELECT MAX(edited_on) FROM ' . $this->tab . '_edit_history WHERE ' . $this->tab . '_id=' . $this->tab_alias . '.id) IS NOT NULL THEN (SELECT MAX(edited_on) FROM ' . $this->tab . '_edit_history WHERE ' . $this->tab . '_id=' . $this->tab_alias . '.id) ELSE ' . $this->tab_alias . '.created_on END) ' . $v['direction']; break; default: $orderby[] = ' ' . substr($v['order'], 1) . ' ' . $v['direction']; } } else { $field_def = $this->get_field_definition($v['order']); $field_sql_id = $this->tab_alias . '.f_' . $field_def['id']; if (isset($field_def['ref_table']) && !$field_def['commondata']) { $tab2 = $field_def['ref_table']; $cols2 = $field_def['ref_field']; $cols2 = explode('|', $cols2); $cols2 = $cols2[0]; $field_id = Utils_RecordBrowserCommon::get_field_id($cols2); $val = '(SELECT rdt.f_' . $field_id . ' FROM ' . $this->tab . '_data_1 AS rd LEFT JOIN ' . $tab2 . '_data_1 AS rdt ON rdt.id=rd.f_' . $field_def['id'] . ' WHERE ' . $this->tab_alias . '.id=rd.id)'; $orderby[] = ' ' . $val . ' ' . $v['direction']; } elseif ($field_def['commondata']) { $sort = $field_def['commondata_order']; $sorted = false; if ($sort == 'position' || $sort == 'value') { $sort_field = $sort == 'position' ? 'position' : 'value'; $parent_id = Utils_CommonDataCommon::get_id($field_def['commondata_array']); if ($parent_id) { $orderby[] = " (SELECT {$sort_field} FROM utils_commondata_tree AS uct WHERE uct.parent_id={$parent_id} AND uct.akey={$field_sql_id}) " . $v['direction']; $sorted = true; } } if ($sorted == false) { // key or if position or value failed $orderby[] = ' ' . $field_sql_id . ' ' . $v['direction']; } } else { if ($field_def['type'] == 'currency') { if (DB::is_mysql()) { $field_sql_id = "CAST({$field_sql_id} as DECIMAL(64,5))"; } elseif (DB::is_postgresql()) { $field_sql_id = "CAST(COALESCE(NULLIF(split_part({$field_sql_id}, '__', 1),''),'0') as DECIMAL)"; } } $orderby[] = ' ' . $field_sql_id . ' ' . $v['direction']; } } } if (!empty($orderby)) { $orderby = ' ORDER BY' . implode(', ', $orderby); } else { $orderby = ''; } return $orderby; }
'Premium/Training/Training_Status/planned', 'Premium/Training/Training_Status/inprogress', 'Premium/Training/Training_Status/completed', 'Premium/Training/Training_Status/billed', 'Premium/Training/Training_Status/canceled', 'Premium/Vehicle', 'Premium/Vehicle/Classification', 'Premium/Vehicle/Availability_Type', 'Premium/Vehicle/Availability_Type/0', 'Premium/Vehicle/Availability_Type/1', 'Premium/Warehouse', 'Premium/Warehouse/eCommerce', 'Premium/Warehouse/eCommerce/Languages', 'Premium/Warehouse/eCommerce/CompareServices', 'Premium/Warehouse/eCommerce/CompareServices/ceneo', 'Premium/Warehouse/eCommerce/CompareServices/skapiec', 'Premium_Warehouse_Items_Type', 'Premium_Warehouse_Items_Categories', 'Premium_Items_Orders_Terms', 'Premium_Items_Orders_Shipment_Types', 'Premium_Items_Orders_Payment_Types', 'Premium_Items_Orders_Trans_Types', 'Premium_Items_Orders_TaxCalc', 'Premium_Items_Orders_TaxCalc/0', 'Premium_Items_Orders_TaxCalc/1', ); foreach($keys as $key) { $id = Utils_CommonDataCommon::get_id($key); if($id) DB::Execute('UPDATE utils_commondata_tree SET readonly=%b WHERE id=%d',array(true,$id)); }