Ejemplo n.º 1
0
 /**
  * Function to update product $d['product_id'] in the product table
  *
  * @param array $d The input vars
  * @return boolean True, when the product was updated, false when not
  */
 function update(&$d)
 {
     global $vmLogger, $perm, $VM_LANG;
     require_once CLASSPATH . 'ps_product_attribute.php';
     if (!$this->validate($d)) {
         return false;
     }
     if (!vmImageTools::process_images($d)) {
         return false;
     }
     $timestamp = time();
     $db = new ps_DB();
     $ps_vendor_id = $_SESSION["ps_vendor_id"];
     if ($perm->check('admin')) {
         $vendor_id = $d['vendor_id'];
     } else {
         $vendor_id = $ps_vendor_id;
     }
     $old_vendor_id = $this->get_field($d['product_id'], 'vendor_id');
     // Insert into DB
     $fields = array('vendor_id' => $vendor_id, 'product_sku' => vmGet($d, 'product_sku'), 'product_name' => vmGet($d, 'product_name'), 'product_desc' => vmRequest::getVar('product_desc', '', 'default', '', VMREQUEST_ALLOWHTML), 'product_s_desc' => vmRequest::getVar('product_s_desc', '', 'default', '', VMREQUEST_ALLOWHTML), 'product_thumb_image' => vmGet($d, 'product_thumb_image'), 'product_full_image' => vmGet($d, 'product_full_image'), 'product_publish' => $d['product_publish'], 'product_weight' => vmRequest::getFloat('product_weight'), 'product_weight_uom' => vmGet($d, 'product_weight_uom'), 'product_length' => vmRequest::getFloat('product_length'), 'product_width' => vmRequest::getFloat('product_width'), 'product_height' => vmRequest::getFloat('product_height'), 'product_lwh_uom' => vmGet($d, 'product_lwh_uom'), 'product_unit' => vmGet($d, 'product_unit'), 'product_packaging' => $d["product_box"] << 16 | $d["product_packaging"] & 0xffff, 'product_url' => vmGet($d, 'product_url'), 'product_in_stock' => vmRequest::getInt('product_in_stock'), 'attribute' => ps_product_attribute::formatAttributeX(), 'custom_attribute' => vmGet($d, 'product_custom_attribute'), 'product_available_date' => $d['product_available_date_timestamp'], 'product_availability' => vmGet($d, 'product_availability'), 'product_special' => $d['product_special'], 'child_options' => $d['child_options'], 'quantity_options' => $d['quantity_options'], 'product_discount_id' => vmRequest::getInt('product_discount_id'), 'mdate' => $timestamp, 'product_tax_id' => vmRequest::getInt('product_tax_id'), 'child_option_ids' => vmGet($d, 'included_product_id'), 'product_order_levels' => $d['order_levels']);
     $db->buildQuery('UPDATE', '#__{vm}_product', $fields, 'WHERE product_id=' . (int) $d["product_id"] . ' AND vendor_id=' . (int) $old_vendor_id);
     $db->query();
     /* notify the shoppers that the product is here */
     /* see zw_waiting_list */
     if ($d["product_in_stock"] > "0" && @$d['notify_users'] == '1' && $d['product_in_stock_old'] == '0') {
         require_once CLASSPATH . 'zw_waiting_list.php';
         $zw_waiting_list = new zw_waiting_list();
         $zw_waiting_list->notify_list($d["product_id"]);
     }
     // Check if the Manufacturer XRef is missing
     if ($this->get_manufacturer_id($d['product_id'])) {
         $q = "UPDATE #__{vm}_product_mf_xref SET ";
         $q .= 'manufacturer_id=' . vmRequest::getInt('manufacturer_id') . ' ';
         $q .= 'WHERE product_id = ' . $d['product_id'];
     } else {
         $q = "INSERT INTO #__{vm}_product_mf_xref (product_id,manufacturer_id) VALUES ('" . $d['product_id'] . "','" . vmRequest::getInt('manufacturer_id') . "')";
     }
     $db->query($q);
     /* If is Item, update attributes */
     if (!empty($d["product_parent_id"])) {
         $q = "SELECT attribute_name FROM #__{vm}_product_attribute_sku ";
         $q .= 'WHERE product_id=' . (int) $d["product_parent_id"] . ' ';
         $q .= "ORDER BY attribute_list,attribute_name";
         $db->query($q);
         $db2 = new ps_DB();
         $i = 0;
         while ($db->next_record()) {
             $i++;
             $q2 = "UPDATE #__{vm}_product_attribute SET ";
             $q2 .= "attribute_value='" . vmGet($d, 'attribute_' . $i) . "' ";
             $q2 .= "WHERE product_id = '" . $d["product_id"] . "' ";
             $q2 .= "AND attribute_name = '" . $db->f("attribute_name", false) . "' ";
             $db2->setQuery($q2);
             $db2->query();
         }
         /* If it is a Product, update Category */
     } else {
         // Handle category selection: product_category_xref
         $q = "SELECT `category_id` FROM `#__{vm}_product_category_xref` ";
         $q .= "WHERE `product_id` = '" . $d["product_id"] . "' ";
         $db->setQuery($q);
         $db->query();
         $old_categories = array();
         while ($db->next_record()) {
             $old_categories[$db->f('category_id')] = $db->f('category_id');
         }
         // NOW Insert new categories
         $new_categories = array();
         if (empty($d['product_categories']) || !is_array(@$d['product_categories'])) {
             $d['product_categories'] = explode('|', $d['category_ids']);
         }
         foreach ($d["product_categories"] as $category_id) {
             if (!in_array($category_id, $old_categories)) {
                 $db->query('SELECT MAX(`product_list`) as list_order FROM `#__{vm}_product_category_xref` WHERE `category_id`=' . (int) $category_id);
                 $db->next_record();
                 $q = "INSERT INTO #__{vm}_product_category_xref ";
                 $q .= "(category_id,product_id,product_list) ";
                 $q .= "VALUES ('" . (int) $category_id . "','" . $d["product_id"] . "', " . intval($db->f('max') + 1) . ")";
                 $db->setQuery($q);
                 $db->query();
                 $new_categories[$category_id] = $category_id;
             } else {
                 unset($old_categories[$category_id]);
             }
         }
         // The rest of the old categories can be deleted
         foreach ($old_categories as $category_id) {
             $q = "DELETE FROM `#__{vm}_product_category_xref` ";
             $q .= "WHERE `product_id` = '" . $d["product_id"] . "' ";
             $q .= "AND `category_id` = '" . $category_id . "' ";
             $db->query($q);
         }
     }
     if (!empty($d["related_products"])) {
         /* Insert Pipe separated Related Product IDs */
         $related_products = vmGet($d, "related_products");
         $q = "REPLACE INTO #__{vm}_product_relations (product_id, related_products)";
         $q .= " VALUES( '" . $d["product_id"] . "', '{$related_products}') ";
         $db->query($q);
     } else {
         $q = "DELETE FROM #__{vm}_product_relations WHERE product_id='" . $d["product_id"] . "'";
         $db->query($q);
     }
     // UPDATE THE PRICE, IF EMPTY ADD 0
     if (empty($d['product_currency'])) {
         $d['product_currency'] = $_SESSION['vendor_currency'];
     }
     // look if we have a price for this product
     $q = "SELECT product_price_id, price_quantity_start, price_quantity_end FROM #__{vm}_product_price ";
     $q .= "WHERE shopper_group_id=" . vmRequest::getInt('shopper_group_id');
     $q .= ' AND product_id = ' . $d["product_id"];
     $db->query($q);
     if ($db->next_record()) {
         $d["product_price_id"] = $db->f("product_price_id");
         require_once CLASSPATH . 'ps_product_price.php';
         $my_price = new ps_product_price();
         if (@$d['product_price'] != '') {
             // update prices
             $d["price_quantity_start"] = $db->f("price_quantity_start");
             $d["price_quantity_end"] = $db->f("price_quantity_end");
             $my_price->update($d);
         } else {
             // delete the price
             $my_price->delete($d);
         }
     } else {
         if ($d['product_price'] != '') {
             // add the price
             $d["price_quantity_start"] = 0;
             $d["price_quantity_end"] = "";
             require_once CLASSPATH . 'ps_product_price.php';
             $my_price = new ps_product_price();
             $my_price->add($d);
         }
     }
     // Product Type Parameters!
     $this->handleParameters($d);
     $vmLogger->info($VM_LANG->_('VM_PRODUCT_UPDATED', false));
     return true;
 }
Ejemplo n.º 2
0
    }
}
if (vmGet($_REQUEST, 'page') == 'order.order_print' && !empty($order_id)) {
    $ps_order_change = new vm_ps_order_change($order_id);
    if (vmGet($_REQUEST, 'change_bill_to') != '') {
        $ps_order_change->change_bill_to();
    } elseif (vmGet($_REQUEST, 'change_ship_to') != '') {
        $ps_order_change->change_ship_to();
    } elseif (vmGet($_REQUEST, 'change_customer_note') != '') {
        $ps_order_change->change_customer_note();
    } elseif (vmGet($_REQUEST, 'change_standard_shipping') != '') {
        $ps_order_change->change_standard_shipping();
    } elseif (vmGet($_REQUEST, 'change_shipping') != '') {
        $ps_order_change->change_shipping($order_id, vmRequest::getFloat('order_shipping'));
    } elseif (vmGet($_REQUEST, 'change_shipping_tax') != '') {
        $ps_order_change->change_shipping_tax($order_id, vmRequest::getFloat('order_shipping_tax'));
    } elseif (vmGet($_REQUEST, 'change_discount') != '') {
        if ($ps_order_change->change_discount($order_id, trim(vmGet($_REQUEST, 'order_discount')))) {
            $vmLogger->err("Invalid Order Item ID or Discount is not a number!");
        } else {
            $vmLogger->info($VM_LANG->_('PHPSHOP_COUPON_DISCOUNT') . $VM_LANG->_('PHPSHOP_ORDER_EDIT_SOMETHING_HAS_CHANGED'));
        }
    } elseif (vmGet($_REQUEST, 'change_coupon_discount') != '') {
        if ($ps_order_change->change_coupon_discount($order_id, trim(vmGet($_REQUEST, 'coupon_discount')))) {
            $vmLogger->err("Discount is not a number!");
        } else {
            $vmLogger->info($VM_LANG->_('PHPSHOP_COUPON_DISCOUNT') . $VM_LANG->_('PHPSHOP_ORDER_EDIT_SOMETHING_HAS_CHANGED'));
        }
    } elseif (vmGet($_REQUEST, 'change_delete_item') != '') {
        if ($ps_order_change->change_delete_item($order_id, vmGet($_REQUEST, 'order_item_id'))) {
            $vmLogger->err("Discount is not a number!");
Ejemplo n.º 3
0
 /**
  * Updates a Payment Entry
  *
  * @param array $d
  * @return boolean
  */
 function update(&$d)
 {
     global $VM_LANG;
     global $vmLogger, $VM_LANG;
     $ps_vendor_id = $_SESSION["ps_vendor_id"];
     $db = new ps_DB();
     if (!$this->validate_update($d)) {
         return False;
     }
     if (!empty($d["payment_class"])) {
         $payment_class = basename($d["payment_class"]);
         @(include CLASSPATH . "payment/" . $payment_class . ".php");
         if (class_exists($payment_class)) {
             $_PAYMENT = new $payment_class();
         } else {
             $GLOBALS['vmLogger']->err($VM_LANG->_('VM_PAYMENTMETHOD_CLASS_NOT_EXIST'));
             return false;
         }
     } else {
         include CLASSPATH . "payment/ps_payment.php";
         $_PAYMENT = new ps_payment();
     }
     if ($_PAYMENT->configfile_writeable() || $_PAYMENT->classname == 'ps_payment') {
         $_PAYMENT->write_configuration($d);
         $vmLogger->info($VM_LANG->_('VM_CONFIGURATION_CHANGE_SUCCESS', false));
     } else {
         $vmLogger->err(sprintf($VM_LANG->_('VM_CONFIGURATION_CHANGE_FAILURE', false), CLASSPATH . "payment/" . $_PAYMENT->classname . ".cfg.php"));
         return false;
     }
     $fields = array('payment_method_name' => vmGet($d, 'payment_method_name'), 'payment_class' => vmGet($d, 'payment_class'), 'shopper_group_id' => vmRequest::getInt('shopper_group_id'), 'payment_method_discount' => vmRequest::getFloat('payment_method_discount'), 'payment_method_discount_is_percent' => vmGet($d, 'payment_method_discount_is_percent'), 'payment_method_discount_max_amount' => (double) str_replace(',', '.', $d["payment_method_discount_max_amount"]), 'payment_method_discount_min_amount' => (double) str_replace(',', '.', $d["payment_method_discount_min_amount"]), 'payment_method_code' => vmGet($d, 'payment_method_code'), 'enable_processor' => vmGet($d, 'enable_processor'), 'list_order' => vmRequest::getInt('list_order'), 'is_creditcard' => vmGet($d, 'is_creditcard'), 'payment_enabled' => vmGet($d, 'payment_enabled'), 'accepted_creditcards' => vmGet($d, 'accepted_creditcards'), 'payment_extrainfo' => vmGet($_POST, 'payment_extrainfo', null, VMREQUEST_ALLOWRAW));
     $db->buildQuery('UPDATE', '#__{vm}_payment_method', $fields, 'WHERE payment_method_id=' . (int) $d["payment_method_id"] . ' AND vendor_id=' . $ps_vendor_id);
     $db->query();
     return True;
 }
Ejemplo n.º 4
0
 /**
  * Updates a product price
  *
  * @param array $d
  * @return boolean
  */
 function update(&$d)
 {
     global $vmLogger, $VM_LANG;
     if (!$this->validate($d)) {
         return false;
     }
     if ($d["product_price"] === '') {
         return $this->delete($d);
     }
     $timestamp = time();
     $db = new ps_DB();
     if (empty($d["product_price_vdate"])) {
         $d["product_price_vdate"] = '';
     }
     if (empty($d["product_price_edate"])) {
         $d["product_price_edate"] = '';
     }
     $fields = array('shopper_group_id' => vmRequest::getInt('shopper_group_id'), 'product_price' => vmRequest::getFloat('product_price'), 'product_currency' => vmGet($d, 'product_currency'), 'product_price_vdate' => vmGet($d, 'product_price_vdate'), 'product_price_edate' => vmGet($d, 'product_price_edate'), 'mdate' => $timestamp, 'price_quantity_start' => vmRequest::getInt('price_quantity_start'), 'price_quantity_end' => vmRequest::getInt('price_quantity_end'));
     $db = new ps_DB();
     $db->buildQuery('UPDATE', '#__{vm}_product_price', $fields, 'WHERE product_price_id=' . (int) $d["product_price_id"]);
     if ($db->query() !== false) {
         $vmLogger->info($VM_LANG->_('VM_PRODUCT_PRICE_UPDATED', false));
         return true;
     }
     $vmLogger->err($VM_LANG->_('VM_PRODUCT_PRICE_UPDATING_FAILED', false));
     return false;
 }