Ejemplo n.º 1
0
 function change_item_quantity($order_id, $order_item_id, $quantity)
 {
     global $mosConfig_offset, $vmLogger;
     if (!is_numeric($quantity) || $quantity < 1) {
         return -1;
     }
     $db = new ps_DB();
     $q = "SELECT product_id, product_quantity, product_preorder ";
     $q .= "FROM #__{vm}_order_item WHERE order_id = '" . $order_id . "' ";
     $q .= "AND order_item_id = '" . addslashes($order_item_id) . "'";
     $db->query($q);
     $db->next_record();
     $product_id = $db->f('product_id');
     $prev_quantity = $db->f('product_quantity');
     $diff = $quantity - $db->f('product_quantity');
     $timestamp = time() + $mosConfig_offset * 60 * 60;
     require_once CLASSPATH . 'shop_stock/shop_stock.php';
     $ps_stock = new ps_stock();
     $scanitem = $ps_stock->getScanItem($order_id, $product_id);
     if ($scanitem['scan'] > $quantity) {
         $vmLogger->err('Не удалось изменить количество товара, в заказе имеются сканированые позиции в большем количестве');
         return -1;
     }
     // stock
     $dbs = new ps_DB();
     $q = "SELECT product_name, product_in_stock ";
     $q .= "FROM #__{vm}_product ";
     $q .= " WHERE product_id = '" . $product_id . "'";
     $dbs->query($q);
     $dbs->next_record();
     $product_name = $dbs->f('product_name');
     $preorder = intval($db->f('product_preorder'));
     if ($diff > 0) {
         // add to order
         if ($dbs->f('product_in_stock') < $diff) {
             $stock = $dbs->f('product_in_stock') < 0 ? 0 : $dbs->f('product_in_stock');
             $preorder += $diff - $stock;
         }
     } else {
         // remove from order
         $preorder -= abs($diff);
         if ($preorder < 0) {
             $preorder = 0;
         }
     }
     // Update quantity of item
     $q = "UPDATE #__{vm}_order_item ";
     $q .= "SET product_quantity = " . $quantity . ", ";
     $q .= "mdate = " . $timestamp . ", ";
     $q .= "product_preorder = " . $preorder . " ";
     $q .= "WHERE order_item_id = '" . addslashes($order_item_id) . "'";
     $db->query($q);
     $db->next_record();
     // Update Stock Level and Product Sales
     $q = "UPDATE #__{vm}_product ";
     $q .= "SET product_in_stock = product_in_stock - " . $diff;
     $q .= " WHERE product_id = '" . $product_id . "'";
     $db->query($q);
     $db->next_record();
     $q = "UPDATE #__{vm}_product ";
     $q .= "SET product_sales= product_sales + " . $diff;
     $q .= " WHERE product_id='" . $product_id . "'";
     $db->query($q);
     $db->next_record();
     $this->recalc_order($order_id);
     $this->reload_from_db = 1;
     $this->orderlog->saveLog($this->order_id, 'Изменение кол-ва товара', $product_name, $prev_quantity, $quantity);
 }
Ejemplo n.º 2
0
', 'win2', 'status=no,toolbar=no,scrollbars=yes,titlebar=no,menubar=no,resizable=yes,width=640,height=480,directories=no,location=no');">
	  		<img src="<?php 
        echo $mosConfig_live_site;
        ?>
/images/M_images/printButton.png" align="ABSMIDDLE" height="16" width="16" border="0" />
	  <?php 
        echo $VM_LANG->_('PHPSHOP_CHECK_OUT_THANK_YOU_PRINT_VIEW');
        ?>
	  	  </a>
	      </span>
	  </div>

	  <?php 
        //Inf Подключение классов учёта остатков
        require_once CLASSPATH . 'shop_stock/shop_stock.php';
        $ps_stock = new ps_stock();
        $shop_stock_history = new Shop_Stock_History();
        $OrderStatus = $ps_stock->checkOrderStatus($order_id);
        $class = 'toggletoorderstatus';
        if (!$OrderStatus) {
            $class .= ' dnone';
        }
        ?>

	  <div style="float: right;">
	  <?php 
        if (strpos($db->f("ship_method_id"), "postcalc") === 0) {
            ?>
	      <span class="pagenav" style="font-weight: bold;">
	  	  <a href="javascript:void window.open('/administrator/index.php?page=order.order_printdetails_blank&order_id=<?php 
            echo $order_id;