Example #1
0
 public function check_key($new_key, $arr)
 {
     if ($arr[1] == $new_key) {
         return true;
     }
     return Utils_CommonDataCommon::get_id($arr[0] . '/' . $new_key) === false;
 }
Example #2
0
 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;
 }
Example #3
0
    '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));
}