/** * Updates a Shipping Adress for the specified user info ID * * @param array $d * @return boolean */ function update(&$d) { global $perm, $VM_LANG; require_once CLASSPATH . 'ps_userfield.php'; $db = new ps_DB(); $timestamp = time(); if (!$this->validate_update($d)) { return false; } // Get all fields which where shown to the user $shippingFields = ps_userfield::getUserFields('shipping', false, '', true); $skip_fields = ps_userfield::getSkipFields(); foreach ($shippingFields as $userField) { if (!in_array($userField->name, $skip_fields)) { $fields[$userField->name] = ps_userfield::prepareFieldDataSave($userField->type, $userField->name, vmGet($d, $userField->name, strtoupper($userField->name))); } } // These are pre-defined fields. $fields['user_id'] = !$perm->check("admin,storeadmin") ? $_SESSION['auth']['user_id'] : (int) $d["user_id"]; $fields['address_type'] = 'ST'; $fields['mdate'] = time(); $db->buildQuery('UPDATE', '#__{vm}_user_info', $fields, "WHERE user_info_id='" . $db->getEscaped($d["user_info_id"]) . "'" . (!$perm->check("admin,storeadmin") ? " AND user_id=" . $_SESSION['auth']['user_id'] : '')); if ($db->query() === false) { $GLOBALS['vmLogger']->err($VM_LANG->_('VM_USERADDRESS_UPDATED_FAILED')); return false; } $GLOBALS['vmLogger']->info($VM_LANG->_('VM_USERADDRESS_UPDATED')); vmRequest::setVar('ship_to_info_id', $d['user_info_id']); return true; }
/** * Function to update a Shopper Entry * (uses who have perms='shopper') */ function update(&$d) { global $my, $perm, $sess, $vmLogger, $page; $auth = $_SESSION['auth']; $db = new ps_DB(); if (@$d["user_id"] != $my->id && @$d["user_id"] != $auth['user_id'] && $auth["perms"] != "admin") { $vmLogger->crit("Tricky tricky, but we know about this one."); return False; } require_once CLASSPATH . 'ps_user.php'; if (!empty($d['username'])) { $_POST['username'] = $d['username']; } else { $_POST['username'] = $my->username; } $_POST['name'] = $d['first_name'] . " " . $d['last_name']; $_POST['id'] = $auth["user_id"]; $_POST['gid'] = $my->gid; $d['error'] = ""; if (VM_REGISTRATION_TYPE != 'NO_REGISTRATION') { ps_user::saveUser($d); } if (!empty($d['error'])) { return false; } if (!$this->validate_update($d)) { return false; } $user_id = $auth["user_id"]; /* Update Bill To */ // Get all fields which where shown to the user $userFields = ps_userfield::getUserFields('account', false, '', true); $skip_fields = ps_userfield::getSkipFields(); $fields = array('mdate' => time()); foreach ($userFields as $userField) { if (!in_array($userField->name, $skip_fields)) { $fields[$userField->name] = ps_userfield::prepareFieldDataSave($userField->type, $userField->name, vmGet($d, $userField->name, strtoupper($userField->name))); } } $fields['user_email'] = $fields['email']; unset($fields['email']); $db->buildQuery('UPDATE', '#__{vm}_user_info', $fields, " WHERE user_id=" . $user_id . " AND address_type='BT'"); // Run the query! $db->query(); // UPDATE #__{vm}_shopper group relationship $q = "SELECT shopper_group_id FROM #__{vm}_shopper_vendor_xref "; $q .= "WHERE user_id = '" . $user_id . "'"; $db->query($q); if (!$db->num_rows()) { //add $shopper_db = new ps_DB(); // get the default shopper group $q = "SELECT shopper_group_id from #__{vm}_shopper_group WHERE "; $q .= "`default`='1'"; $shopper_db->query($q); if (!$shopper_db->num_rows()) { // when there is no "default", take the first in the table $q = "SELECT shopper_group_id from #__{vm}_shopper_group"; $shopper_db->query($q); } $shopper_db->next_record(); $my_shopper_group_id = $shopper_db->f("shopper_group_id"); if (empty($d['customer_number'])) { $d['customer_number'] = ""; } $q = "INSERT INTO #__{vm}_shopper_vendor_xref "; $q .= "(user_id,vendor_id,shopper_group_id) "; $q .= "VALUES ('"; $q .= $_SESSION['auth']['user_id'] . "','"; $q .= $_SESSION['ps_vendor_id'] . "','"; $q .= $my_shopper_group_id . "')"; $db->query($q); } $q = "SELECT user_id FROM #__{vm}_auth_user_vendor "; $q .= "WHERE user_id = '" . $_SESSION['auth']['user_id'] . "'"; $db->query($q); if (!$db->num_rows()) { // Insert vendor relationship $q = "INSERT INTO #__{vm}_auth_user_vendor (user_id,vendor_id)"; $q .= " VALUES "; $q .= "('" . $_SESSION['auth']['user_id'] . "','"; $q .= $_SESSION['ps_vendor_id'] . "') "; $db->query($q); } return True; }
/** * Updates a User Record * * @param array $d * @return boolean */ function update(&$d) { global $my, $VM_LANG, $perm, $vmLogger; $ps_vendor_id = $_SESSION["ps_vendor_id"]; $db = new ps_DB(); $timestamp = time(); if (!$this->validate_update($d)) { return False; } // Joomla User Information stuff if (vmIsJoomla('1.5', '>=')) { $this->save(); } else { $this->saveUser($d); } // Update Bill To // Get all fields which where shown to the user $userFields = ps_userfield::getUserFields('account', false, '', true); $user_id = intval($d['id']); // Building the query: PART ONE // The first 7 fields are FIX and not built dynamically $db->query("SELECT COUNT(user_info_id) AS num_rows \n\t\t\t\t\tFROM #__{vm}_user_info WHERE user_id='" . $user_id . "'"); if ($db->f('num_rows') < 1) { // The user is registered in Joomla, but not in VirtueMart; so, insert the bill to information return $this->add($d); } else { $q = "UPDATE #__{vm}_user_info SET\n\t `mdate` = '" . time() . "',\n\t `perms` = '" . $d['perms'] . "', "; $fields = array(); $skip_fields = ps_userfield::getSkipFields(); foreach ($userFields as $userField) { if (!in_array($userField->name, $skip_fields)) { $d[$userField->name] = ps_userfield::prepareFieldDataSave($userField->type, $userField->name, @$d[$userField->name]); $fields[] = "`" . $userField->name . "`='" . mysql_real_escape_string($d[$userField->name]) . "'"; } } $q .= str_replace('`email`', '`user_email`', implode(",\n", $fields)); $q .= " WHERE user_id=" . $user_id . " AND address_type='BT'"; // Run the query now! $db->query($q); } if ($perm->check("admin")) { $vendor_id = $d['vendor_id']; } else { $vendor_id = $ps_vendor_id; } $db->query("SELECT COUNT(user_id) as num_rows FROM #__{vm}_auth_user_vendor WHERE vendor_id='" . $vendor_id . "' AND user_id='" . $d["user_id"] . "'"); if ($db->f('num_rows') < 1) { // Insert vendor relationship $q = "INSERT INTO #__{vm}_auth_user_vendor (user_id,vendor_id)"; $q .= " VALUES "; $q .= "('" . $d['user_id'] . "','{$vendor_id}') "; $db->query($q); } else { // Update the User- Vendor relationship $q = "UPDATE #__{vm}_auth_user_vendor set "; $q .= "vendor_id='" . $d['vendor_id'] . "' "; $q .= "WHERE user_id='" . $d["user_id"] . "'"; $db->query($q); } $db->query("SELECT COUNT(user_id) as num_rows FROM #__{vm}_shopper_vendor_xref WHERE vendor_id='" . $vendor_id . "' AND user_id='" . $d["user_id"] . "'"); if ($db->f('num_rows') < 1) { // Insert Shopper -ShopperGroup - Relationship $q = "INSERT INTO #__{vm}_shopper_vendor_xref "; $q .= "(user_id,vendor_id,shopper_group_id,customer_number) "; $q .= "VALUES ('" . $d['user_id'] . "', '{$vendor_id}','" . $d['shopper_group_id'] . "', '" . $d['customer_number'] . "')"; } else { // Update the Shopper Group Entry for this user $q = "UPDATE #__{vm}_shopper_vendor_xref SET "; $q .= "shopper_group_id='" . $d['shopper_group_id'] . "' "; $q .= ",vendor_id ='" . $vendor_id . "' "; $q .= "WHERE user_id='" . $d["user_id"] . "' "; } $db->query($q); $vmLogger->info($VM_LANG->_('VM_USER_UPDATED')); return True; }