Example #1
0
 function fn_exim_set_company($product_id, $company_name)
 {
     if (empty($company_name) || empty($product_id)) {
         return false;
     }
     $company_id = db_get_field('SELECT company_id FROM ?:companies WHERE company =  ?s', $company_name);
     if (!$company_id) {
         $company_data = array('company' => $company_name, 'email' => '');
         $company_id = fn_update_company($company_data, 0);
     }
     db_query('UPDATE ?:products SET company_id = ?s WHERE product_id = ?i', $company_id, $product_id);
     return true;
 }
Example #2
0
        $data['request_user_id'] = !empty($auth['user_id']) ? $auth['user_id'] : 0;
        $account_data = array();
        $account_data['fields'] = isset($_REQUEST['user_data']['fields']) ? $_REQUEST['user_data']['fields'] : '';
        $account_data['admin_firstname'] = isset($_REQUEST['company_data']['admin_firstname']) ? $_REQUEST['company_data']['admin_firstname'] : '';
        $account_data['admin_lastname'] = isset($_REQUEST['company_data']['admin_lastname']) ? $_REQUEST['company_data']['admin_lastname'] : '';
        $data['request_account_data'] = serialize($account_data);
        if (empty($data['request_user_id'])) {
            $login_condition = empty($data['request_account_name']) ? '' : db_quote(" OR user_login = ?s", $data['request_account_name']);
            $user_account_exists = db_get_field("SELECT user_id FROM ?:users WHERE email = ?s ?p", $data['email'], $login_condition);
            if ($user_account_exists) {
                fn_save_post_data('user_data', 'company_data');
                fn_set_notification('E', __('error'), __('error_user_exists'));
                return array(CONTROLLER_STATUS_REDIRECT, 'companies.apply_for_vendor');
            }
        }
        $result = fn_update_company($data);
        if (!$result) {
            fn_save_post_data('user_data', 'company_data');
            fn_set_notification('E', __('error'), __('text_error_adding_request'));
            return array(CONTROLLER_STATUS_REDIRECT, 'companies.apply_for_vendor');
        }
        $msg = Tygh::$app['view']->fetch('views/companies/components/apply_for_vendor.tpl');
        fn_set_notification('I', __('information'), $msg);
        // Notify user department on the new vendor application
        Mailer::sendMail(array('to' => 'default_company_users_department', 'from' => 'default_company_users_department', 'data' => array('company_id' => $result, 'company' => $data), 'tpl' => 'companies/apply_for_vendor_notification.tpl'), 'A', Registry::get('settings.Appearance.backend_default_language'));
        $return_url = !empty($_SESSION['apply_for_vendor']['return_url']) ? $_SESSION['apply_for_vendor']['return_url'] : fn_url('');
        unset($_SESSION['apply_for_vendor']['return_url']);
        return array(CONTROLLER_STATUS_REDIRECT, $return_url);
    }
}
if (fn_allowed_for('ULTIMATE')) {
Example #3
0
     }
     if (fn_allowed_for('ULTIMATE') && !empty($company_id)) {
         fn_ult_set_company_settings_information($_REQUEST['update'], $company_id);
     }
 }
 //
 // Processing updating of company element
 //
 if ($mode == 'update') {
     if (!empty($_REQUEST['company_data']['company'])) {
         if (!empty($_REQUEST['company_id']) && Registry::get('runtime.company_id') && Registry::get('runtime.company_id') != $_REQUEST['company_id']) {
             fn_company_access_denied_notification();
             fn_save_post_data('company_data', 'update');
         } else {
             // Updating company record
             fn_update_company($_REQUEST['company_data'], $_REQUEST['company_id'], DESCR_SL);
         }
         if (fn_allowed_for('ULTIMATE') && !empty($_REQUEST['company_id'])) {
             fn_ult_set_company_settings_information($_REQUEST['update'], $_REQUEST['company_id']);
             fn_clear_cache('registry');
             // clean up block cache to re-generate storefront urls
         }
     }
     $suffix = ".update?company_id={$_REQUEST['company_id']}";
 }
 if ($mode == 'm_delete') {
     if (!empty($_REQUEST['company_ids'])) {
         foreach ($_REQUEST['company_ids'] as $v) {
             fn_delete_company($v);
         }
     }
Example #4
0
/**
 * Import company
 *
 * @param string $object_type Type of object ('currencies', 'pages', etc)
 * @param integer $object_id Product ID
 * @param string $company_name Company name
 * @return integer $company_id Company identifier.
 */
function fn_exim_set_company($object_type, $object_key, $object_id, $company_name)
{
    if (empty($company_name) || empty($object_id) || empty($object_type)) {
        return false;
    }
    if (Registry::get('runtime.company_id')) {
        $company_id = Registry::get('runtime.company_id');
    } else {
        $company_id = fn_get_company_id_by_name($company_name);
        if (!$company_id) {
            $company_data = array('company' => $company_name, 'email' => '');
            $company_id = fn_update_company($company_data, 0);
        }
    }
    db_query("UPDATE ?:{$object_type} SET company_id = ?s WHERE {$object_key} = ?i", $company_id, $object_id);
    return $company_id;
}
Example #5
0
 public function update($id, $params)
 {
     $data = array();
     $valid_params = true;
     $status = Response::STATUS_BAD_REQUEST;
     unset($params['company_id']);
     $company_data = fn_get_company_data($id);
     if (empty($company_data)) {
         $message = __('api_need_correct_company_id');
         $valid_params = false;
     } else {
         list($valid_params, $message) = $this->checkRequiredParams($params);
     }
     if ($valid_params) {
         if (!empty($this->auth['company_id']) && $this->auth['company_id'] != $id) {
             $status = Response::STATUS_FORBIDDEN;
             $data = array();
         } else {
             $lang_code = $this->safeGet($params, 'lang_code', DEFAULT_LANGUAGE);
             $company_id = fn_update_company($params, $id, $lang_code);
             if ($company_id) {
                 $this->updateCompanySettings($params, $id);
                 $status = Response::STATUS_OK;
                 $data['store_id'] = $company_id;
             }
         }
     }
     if (!empty($message)) {
         $data['message'] = $message;
     }
     return array('status' => $status, 'data' => $data);
 }
/**
 * Creates categories tree by path
 *
 * @param integer $product_id Product ID
 * @param string $link_type M - main category, A - additional
 * @param string $categories_data categories path
 * @param string $category_delimiter Delimiter in categories path
 * @param string $store_name Store name (is used for saving category company_id)
 * @return boolean True if any categories were updated.
 */
function fn_exim_set_product_categories($product_id, $link_type, $categories_data, $category_delimiter, $store_name = '')
{
    if (fn_is_empty($categories_data)) {
        return false;
    }
    $set_delimiter = ';';
    if (fn_allowed_for('ULTIMATE')) {
        $store_delimiter = ':';
        $paths_store = array();
    }
    $paths = array();
    $updated_categories = array();
    foreach ($categories_data as $lang => $data) {
        // Check if array is provided
        if (strpos($data, $set_delimiter) !== false) {
            $_paths = explode($set_delimiter, $data);
            array_walk($_paths, 'fn_trim_helper');
        } else {
            $_paths = array($data);
        }
        foreach ($_paths as $k => $cat_path) {
            if (fn_allowed_for('ULTIMATE')) {
                if (strpos($cat_path, $store_delimiter)) {
                    $cat_path = explode($store_delimiter, $cat_path);
                    $paths_store[$k] = $cat_path[0];
                    $cat_path = $cat_path[1];
                }
            }
            $category = strpos($cat_path, $category_delimiter) !== false ? explode($category_delimiter, $cat_path) : array($cat_path);
            foreach ($category as $key_cat => $cat) {
                $paths[$k][$key_cat][$lang] = $cat;
            }
        }
    }
    if (!fn_is_empty($paths)) {
        $category_condition = '';
        $joins = '';
        $select = '?:products_categories.*';
        if (fn_allowed_for('ULTIMATE')) {
            $joins = ' JOIN ?:categories ON ?:categories.category_id = ?:products_categories.category_id ';
            $category_condition = fn_get_company_condition('?:categories.company_id');
            $select .= ', ?:categories.category_id, ?:categories.company_id';
        }
        $cat_ids = array();
        $old_data = db_get_hash_array("SELECT {$select} FROM ?:products_categories {$joins} WHERE product_id = ?i AND link_type = ?s {$category_condition}", 'category_id', $product_id, $link_type);
        foreach ($old_data as $k => $v) {
            if ($v['link_type'] == $link_type) {
                $updated_categories[] = $k;
            }
            $cat_ids[] = $v['category_id'];
        }
        if (!empty($cat_ids)) {
            db_query("DELETE FROM ?:products_categories WHERE product_id = ?i AND category_id IN (?a)", $product_id, $cat_ids);
        }
    }
    $company_id = 0;
    if (fn_allowed_for('ULTIMATE')) {
        if (Registry::get('runtime.company_id')) {
            $company_id = Registry::get('runtime.company_id');
        } else {
            $company_id = fn_get_company_id_by_name($store_name);
            if (!$company_id) {
                $company_data = array('company' => $store_name, 'email' => '');
                $company_id = fn_update_company($company_data, 0);
            }
        }
    }
    foreach ($paths as $key_path => $categories) {
        if (!empty($categories)) {
            $parent_id = '0';
            foreach ($categories as $cat) {
                $category_condition = '';
                if (fn_allowed_for('ULTIMATE')) {
                    if (!empty($paths_store[$key_path]) && !Registry::get('runtime.company_id')) {
                        $path_company_id = fn_get_company_id_by_name($paths_store[$key_path]);
                        $category_condition = fn_get_company_condition('?:categories.company_id', true, $path_company_id);
                    } else {
                        $category_condition = fn_get_company_condition('?:categories.company_id', true, $company_id);
                    }
                }
                reset($cat);
                $main_lang = key($cat);
                $main_cat = array_shift($cat);
                $category_id = db_get_field("SELECT ?:categories.category_id FROM ?:category_descriptions INNER JOIN ?:categories ON ?:categories.category_id = ?:category_descriptions.category_id {$category_condition} WHERE ?:category_descriptions.category = ?s AND lang_code = ?s AND parent_id = ?i", $main_cat, $main_lang, $parent_id);
                if (!empty($category_id)) {
                    $parent_id = $category_id;
                } else {
                    $category_data = array('parent_id' => $parent_id, 'category' => $main_cat, 'timestamp' => TIME);
                    if (fn_allowed_for('ULTIMATE')) {
                        $category_data['company_id'] = !empty($path_company_id) ? $path_company_id : $company_id;
                    }
                    $category_id = fn_update_category($category_data);
                    foreach ($cat as $lang => $cat_data) {
                        $category_data = array('parent_id' => $parent_id, 'category' => $cat_data, 'timestamp' => TIME);
                        if (fn_allowed_for('ULTIMATE')) {
                            $category_data['company_id'] = $company_id;
                        }
                        fn_update_category($category_data, $category_id, $lang);
                    }
                    $parent_id = $category_id;
                }
            }
            $data = array('product_id' => $product_id, 'category_id' => $category_id, 'link_type' => $link_type);
            if (!empty($old_data) && !empty($old_data[$category_id])) {
                $data = fn_array_merge($old_data[$category_id], $data);
            }
            db_query("REPLACE INTO ?:products_categories ?e", $data);
            $updated_categories[] = $category_id;
        }
    }
    if (!empty($updated_categories)) {
        fn_update_product_count($updated_categories);
        return true;
    }
    return false;
}
Example #7
0
        $data['request_user_id'] = !empty($auth['user_id']) ? $auth['user_id'] : 0;
        $account_data = array();
        $account_data['fields'] = isset($_REQUEST['user_data']['fields']) ? $_REQUEST['user_data']['fields'] : '';
        $account_data['admin_firstname'] = isset($_REQUEST['company_data']['admin_firstname']) ? $_REQUEST['company_data']['admin_firstname'] : '';
        $account_data['admin_lastname'] = isset($_REQUEST['company_data']['admin_lastname']) ? $_REQUEST['company_data']['admin_lastname'] : '';
        $data['request_account_data'] = serialize($account_data);
        if (empty($data['request_user_id'])) {
            $login_condition = empty($data['request_account_name']) ? '' : db_quote(" OR user_login = ?s", $data['request_account_name']);
            $user_account_exists = db_get_field("SELECT user_id FROM ?:users WHERE email = ?s ?p", $data['email'], $login_condition);
            if ($user_account_exists) {
                fn_save_post_data('user_data', 'company_data');
                fn_set_notification('E', __('error'), __('error_user_exists'));
                return array(CONTROLLER_STATUS_REDIRECT, 'companies.apply_for_vendor');
            }
        }
        $company_id = fn_update_company($data);
        $data = array_merge($data, fn_get_company_data($company_id));
        if (!$company_id) {
            fn_save_post_data('user_data', 'company_data');
            fn_set_notification('E', __('error'), __('text_error_adding_request'));
            return array(CONTROLLER_STATUS_REDIRECT, 'companies.apply_for_vendor');
        }
        $msg = Tygh::$app['view']->fetch('views/companies/components/apply_for_vendor.tpl');
        fn_set_notification('I', __('information'), $msg);
        // Notify user department on the new vendor application
        Mailer::sendMail(array('to' => 'default_company_users_department', 'from' => 'default_company_users_department', 'data' => array('company_id' => $company_id, 'company' => $data), 'tpl' => 'companies/apply_for_vendor_notification.tpl'), 'A', Registry::get('settings.Appearance.backend_default_language'));
        $return_url = !empty(Tygh::$app['session']['apply_for_vendor']['return_url']) ? Tygh::$app['session']['apply_for_vendor']['return_url'] : fn_url('');
        unset(Tygh::$app['session']['apply_for_vendor']['return_url']);
        return array(CONTROLLER_STATUS_REDIRECT, $return_url);
    }
}