예제 #1
0
function recalcProductMaterialExpenses($elements_id)
{
    $products2update = array();
    //$q = tep_db_query("SELECT products_id FROM products_has_elements WHERE elements_id=$elements_id GROUP BY products_id");
    //while($row=tep_db_fetch_array($q)) $products2update[] = $row['products_id'];
    $q = tep_db_query("SELECT products_id FROM products_use_elements WHERE elements_id={$elements_id} GROUP BY products_id");
    while ($row = tep_db_fetch_array($q)) {
        $products2update[] = $row['products_id'];
    }
    if (count($products2update) > 0) {
        use_class('products_minierp');
        $class_pm = new products_minierp();
        $class_pm->calculateMaterialExpenses($products2update);
    }
}
$elements_ids[] = $elid;
$elements_qtys[] = $elqty;
$elements_titles[] = "{$elid} <i>\"JUMPRING-4 {$elqty} qtys</i>\"";
echo "<h3>Add element " . implode(' and ', $elements_titles) . "</h3>";
$q = "SELECT pb.brand_name,pue.finishing_goldplate, p.* ";
$q .= " FROM products p";
$q .= " INNER JOIN products_to_categories ptc ON ptc.products_id = p.products_id AND ptc.categories_id = 30";
//APPLY TO SETS
$q .= " INNER JOIN products_use_elements pue ON pue.products_id = p.products_id";
$q .= " INNER JOIN element e ON e.elements_id = pue.elements_id AND e.attribute_category_id = 4";
$q .= " INNER JOIN products_brand pb ON pb.products_brand_id = p.products_brand_id";
$q .= " WHERE p.products_status = 1";
$q .= " AND p.products_brand_id != 23";
$q .= " AND pue.quantity >= 40";
$dbq = tep_db_query($q);
$counter = 0;
while ($r = tep_db_fetch_array($dbq)) {
    $products_id = $r['products_id'];
    $brand_name = $r['brand_name'];
    $is_goldplated = $r['finishing_goldplate'] == 1 ? true : false;
    //chain is goldplated
    $goldplated = $is_goldplated ? "- Goldplated" : '';
    $class_pm->addElementToProducts($products_id, $elements_ids, $elements_qtys);
    if ($is_goldplated) {
        tep_db_perform('products_use_elements', array('finishing_goldplate' => '1'), 'update', "products_id={$products_id} AND elements_id IN (" . implode(',', $elements_ids) . ")");
    }
    $class_pm->calculateMaterialExpenses($products_id);
    echo "added to products {$products_id} - {$brand_name} {$goldplated}<br/>";
    $counter++;
}
echo "<h2>Total {$counter} Products added with new element!</h2>";
예제 #3
0
     $seo_text = tep_db_input($_POST['seo'][$l]);
     $sql_data_array = array();
     $sql_data_array['name'] = $name;
     $sql_data_array['description'] = $desc;
     $sql_data_array['seo_text'] = $seo_text;
     ProductAttribute::getOldStylesFunction()->updateDescription($styles_id, $l, $sql_data_array);
 }
 //save price for certain styles
 if (in_array($style_group, ProductAttribute::getAttributeGroupsHavePrice())) {
     ProductAttribute::getOldStylesFunction()->setStylePrice($styles_id, $style_price);
     //update material expenses of related products (need to monitor whether this make process update halted or not)
     $products_matexp_need_updated = array_keys(ProductAttribute::getOldStylesFunction()->retrieveProducts($styles_id));
     if (count($products_matexp_need_updated) > 0) {
         use_class('products_minierp');
         $class_pm = new products_minierp();
         $class_pm->calculateMaterialExpenses($products_matexp_need_updated);
     }
 }
 if (!isset($_GET['id']) || $_GET['id'] == '' || $_GET['id'] != $styles_id) {
     /* previous method is opening the newly created style
        $link = "?open=products-styles&id=$styles_id";
        if($hidemenuscript!='') $link .= '&hidemenu=true&reloadlist=true';
        header("Location: $link");
        exit;
        */
     ProductAttribute::getOldStylesFunction()->setHistory($styles_id, "Added styles", $session_userinfo['username']);
     ProductAttribute::getOldStylesFunction()->setOwner($styles_id, $session_userinfo['username']);
     $messagebox->add('New Style has been created with <strong>ID: ' . $styles_id . '</strong>', 'green');
 } else {
     ProductAttribute::getOldStylesFunction()->setHistory($styles_id, "Updated detail styles", $session_userinfo['username']);
     $messagebox->add('Style Data have been saved.', 'green');
<?php

global $db;
require_once '../confy.php';
require_once '../functions.php';
require_once '../functions-2.php';
tep_db_connect();
use_class("products_minierp");
$class_pm = new products_minierp();
$dbq = tep_db_query("SELECT DISTINCT products_id FROM products_use_elements WHERE finishing_oxid = '1'");
//$pids = '69225,72365,72484,72517,72590,72591,72592,72599,72621,72630,72631,72633,72635,72636,72637,72638,72639,72641,72642,72643,72644,72645,72646,72647,72689,72708,72720,72716,72717,72738,72829,72759,72765,72767,72790,72791,72794,72796,72819,72825,72826,72827,72830,72831';
//$pids_array = explode(',', $pids);
$success = 0;
while ($r = tep_db_fetch_array($dbq)) {
    $pid = $r['products_id'];
    if ($pid > 0) {
        $class_pm->calculateMaterialExpenses($pid);
        echo "DONE - RECALC MATEXP PRODUCT {$pid}\n";
        $success++;
    }
}
echo "<h3>TOTAL PRODUCTS RECALC FOR MATEXP = {$success}</h3>";
예제 #5
0
 public function remProduct($styles_id, $products_id, $username)
 {
     if (is_array($products_id)) {
         $removed = array();
         $removed_success = array();
         $removed_failed = array();
         foreach ($products_id as $pid) {
             $rem_product_result = $this->remProduct($styles_id, $pid, $username);
             //if ($this->remProduct($styles_id, $pid, $username) != false) {
             if ($rem_product_result != false) {
                 //$removed[] = $this->remProduct($styles_id, $pid, $username);
                 $removed_success[] = $rem_product_result;
             } else {
                 //break;
                 $removed_failed[] = $pid;
                 continue;
             }
         }
         $removed['success'] = $removed_success;
         $removed['failed'] = $removed_failed;
         if ($removed) {
             //$removed_id_product = implode(',', $products_id);
             $removed_id_product = implode(',', $removed['success']);
             $this->setHistory($styles_id, "Delete product ({$removed_id_product}) from style", $username);
         }
     } else {
         if (strpos($products_id, ',') !== false) {
             $parray = explode(',', $products_id);
             $removed = $this->remProduct($styles_id, $parray, $username);
         } else {
             if ($this->productExist($styles_id, $products_id) && !$this->productClosed($styles_id)) {
                 $remove = tep_db_query("DELETE FROM styles_has_products WHERE styles_id={$styles_id} AND products_id={$products_id}");
                 if ($remove) {
                     $removed = $products_id;
                 }
             } else {
                 return false;
             }
         }
     }
     //Recalculate Material Expenses if needed
     $styles_detail = $this->retrieveDetail($styles_id);
     if ($styles_detail['groups'] == ProductAttribute::GROUP_ID_PRODUCT_FINISHING) {
         use_class('products_minierp');
         $class_pm = new products_minierp();
         $class_pm->calculateMaterialExpenses($products_id);
     }
     return $removed;
 }