function cw_csvxc_get_columns4insert($tbl_name, $src_tbl_name, $tmp_tbl_name = '') { global $csvxc_fmap; $ins_into_fields = array(); $select_fields = array(); if (empty($tmp_tbl_name)) { $tmp_tbl_name = $tbl_name; } $avail_ins_fields = cw_csvxc_get_table_fields($tmp_tbl_name); $avail_src_fields = cw_csvxc_get_table_fields($src_tbl_name); foreach ($csvxc_fmap[$src_tbl_name] as $load_field => $load_f_data) { if ($load_f_data['table'] == $tbl_name && in_array($load_f_data['field'], $avail_ins_fields) && in_array($load_field, $avail_src_fields)) { $ins_into_fields[] = "{$tmp_tbl_name}.`{$load_f_data['field']}`"; $select_fields[] = "{$src_tbl_name}.`{$load_field}`"; //$select_fields[] = (!empty($load_f_data['transform'])?$load_f_data['transform']:("$src_tbl_name.`$load_field`")); } elseif (isset($load_f_data['alter'])) { if ($load_f_data['alter']['table'] == $tbl_name && in_array($load_f_data['alter']['field'], $avail_ins_fields) && in_array($load_field, $avail_src_fields)) { $ins_into_fields[] = $tmp_tbl_name . '.`' . $load_f_data['alter']['field'] . '`'; $select_fields[] = "{$src_tbl_name}.`{$load_field}`"; //$select_fields[] = (!empty($load_f_data['transform'])?$load_f_data['transform']:("$src_tbl_name.`$load_field`")); } } } return array($ins_into_fields, $select_fields); }
// cw_csvxc_logged_query("UPDATE tmp_load_EXTRA_FIELDS SET ACTIVE=IF(ACTIVE='Y', 1,0)"); cw_csvxc_logged_query("ALTER TABLE tmp_load_EXTRA_FIELDS ADD COLUMN ref_attribute_id INT(11) NOT NULL DEFAULT 0"); cw_csvxc_logged_query("ALTER TABLE tmp_load_EXTRA_FIELDS ADD COLUMN ref_is_new int(1) not null default 1"); cw_csvxc_logged_query("UPDATE tmp_load_EXTRA_FIELDS, cw_attributes SET tmp_load_EXTRA_FIELDS.ref_is_new=0, tmp_load_EXTRA_FIELDS.ref_attribute_id=cw_attributes.attribute_id WHERE tmp_load_EXTRA_FIELDS.SERVICE_NAME=cw_attributes.field AND cw_attributes.item_type='P'"); // cw_csvxc_logged_query("UPDATE cw_attributes ca, tmp_load_EXTRA_FIELDS tlef SET ca.name=tlef.FIELD, ca.orderby=tlef.ORDERBY, ca.active=tlef.ACTIVE WHERE tlef.SERVICE_NAME=ca.field AND ca.item_type='P' AND ca.addon=''"); $update_fields = cw_csvxc_make_update_fields_arr('tmp_load_EXTRA_FIELDS', 'cw_attributes', 'SERVICE_NAME'); cw_csvxc_logged_query("UPDATE cw_attributes, tmp_load_EXTRA_FIELDS SET " . implode(', ', $update_fields) . " WHERE tmp_load_EXTRA_FIELDS.SERVICE_NAME=cw_attributes.field AND cw_attributes.item_type='P' AND cw_attributes.addon=''"); cw_csvxc_logged_query("INSERT INTO cw_attributes (name, type, field, orderby, item_type, addon) SELECT FIELD, 'text', SERVICE_NAME, ORDERBY, 'P','' FROM tmp_load_EXTRA_FIELDS WHERE ref_attribute_id=0"); cw_csvxc_logged_query("UPDATE tmp_load_EXTRA_FIELDS tlef, cw_attributes ca SET tlef.ref_attribute_id=ca.attribute_id WHERE tlef.SERVICE_NAME=ca.field AND ca.item_type='P'"); cw_csvxc_logged_query("REPLACE INTO cw_attributes_classes_assignement (attribute_class_id, attribute_id) SELECT {$default_attr_classid}, ref_attribute_id FROM tmp_load_EXTRA_FIELDS WHERE ref_is_new=1"); } } if (cw_csvxc_is_table_exists('tmp_load_PRODUCTS_EXTRA_FIELD_VALUES') && $csvxc_allowed_sections['tmp_load_PRODUCTS_EXTRA_FIELD_VALUES']) { cw_csvxc_set_col_exist_flag('tmp_load_PRODUCTS_EXTRA_FIELD_VALUES'); if ($csvxc_fmap['tmp_load_PRODUCTS_EXTRA_FIELD_VALUES']['PRODUCTID']['exists_column']) { $efv_columns = cw_csvxc_get_table_fields('tmp_load_PRODUCTS_EXTRA_FIELD_VALUES'); cw_csvxc_logged_query("DELETE tmp_load_PRODUCTS_EXTRA_FIELD_VALUES.* FROM tmp_load_PRODUCTS_EXTRA_FIELD_VALUES LEFT JOIN cw_products ON cw_products.product_id=tmp_load_PRODUCTS_EXTRA_FIELD_VALUES.PRODUCTID WHERE cw_products.product_id IS NULL"); cw_csvxc_logged_query("ALTER TABLE tmp_load_PRODUCTS_EXTRA_FIELD_VALUES ADD COLUMN ref_is_new int(1) NOT NULL DEFAULT 1"); foreach ($efv_columns as $ef_colname) { if (in_array($ef_colname, array("id_products_extra_field_values", "PRODUCTID", "PRODUCTCODE", "PRODUCT"))) { continue; } $attr_info = cw_query_first("SELECT * FROM cw_attributes WHERE field='{$ef_colname}' AND item_type='P' AND addon in ('', 'custom_saratogawine_magazines','custom_saratogawine_backorder', 'clean_urls')"); $attr_id = $attr_info['attribute_id']; if ($attr_id) { if ($attr_info['type'] == 'selectbox') { $id_ef_colname = $ef_colname . "_id"; cw_csvxc_logged_query("ALTER TABLE tmp_load_PRODUCTS_EXTRA_FIELD_VALUES ADD COLUMN `{$id_ef_colname}` int(11) NOT NULL DEFAULT 0"); cw_csvxc_logged_query("UPDATE tmp_load_PRODUCTS_EXTRA_FIELD_VALUES tlpefv, cw_attributes_default cad SET tlpefv.`{$id_ef_colname}`=cad.attribute_value_id WHERE cad.attribute_id='{$attr_id}' AND cad.value=tlpefv.`{$ef_colname}`"); cw_csvxc_logged_query("INSERT INTO cw_attributes_default (value, attribute_id, active, facet) SELECT distinct(`{$ef_colname}`), {$attr_id}, 1, {$attr_info['facet']} FROM tmp_load_PRODUCTS_EXTRA_FIELD_VALUES WHERE `{$id_ef_colname}`=0"); cw_csvxc_logged_query("UPDATE tmp_load_PRODUCTS_EXTRA_FIELD_VALUES tlpefv, cw_attributes_default cad SET tlpefv.`{$id_ef_colname}`=cad.attribute_value_id WHERE cad.attribute_id='{$attr_id}' AND cad.value=tlpefv.`{$ef_colname}` AND tlpefv.`{$id_ef_colname}`=0");