$q .= " LEFT JOIN element e ON e.elements_id=es.elements_id";
$q .= " WHERE es.jng_warehouses_id={$jng_warehouses_id}";
if ($catid > 0) {
    $q .= " AND e.attribute_category_id={$catid}";
    use_class('elements_attributes');
    $class_ea = new elements_attributes();
    $ea_detail = $class_ea->retrieveDetail('cat', $catid);
    $catname = $ea_detail[0]['name'];
}
$q .= " ORDER BY e.attribute_category_id, e.elements_id";
$r = tep_db_query($q);
$stocks = array();
while ($row = tep_db_fetch_array($r)) {
    $stocks[$row['elements_id']] = $row['stock'];
}
$booked = elements_minierp::elementsAllBookedCount($jng_warehouses_id);
$stocks_table = array();
$total_qty_stock = 0;
$total_qty_booked = 0;
$total_qty_total = 0;
$total_matexp_avl = 0;
$total_matexp_tot = 0;
foreach ($stocks as $eid => $stock_qty) {
    $qty_stock = $stock_qty;
    $qty_booked = $booked[$eid];
    $qty_total = $qty_stock + $qty_booked;
    if ($qty_total > 0) {
        $e = new element($eid);
        if (!is_null($e->id)) {
            if (!in_array($eid, $elements)) {
                $elements[] = $eid;
function getElementStock($jng_warehouses_id, $elements_id)
{
    global $history_options, $history_options_2, $reduce_reason;
    $element_query = "SELECT es.qty_type, pieces_per_qty_type, es.stock";
    $element_query .= ", e.elements_id, e.elements_image AS image, e.elements_name AS name, e.stars, e.elements_description";
    $element_query .= " FROM element e";
    //  $element_query .= " LEFT JOIN elements_description ed ON ed.elements_id=e.elements_id AND ed.languages_id=1";
    $element_query .= " LEFT JOIN elements_stock es ON es.elements_id=e.elements_id AND es.jng_warehouses_id={$jng_warehouses_id}";
    $msg_filter_type = 'ID';
    $element_query .= " WHERE e.elements_id='{$elements_id}'";
    $element_result = tep_db_query($element_query);
    if (tep_db_num_rows($element_result) > 0) {
        $element = tep_db_fetch_array($element_result);
        if ($element['qty_type'] == '') {
            $defstock_query = "SELECT price_quantity_type, pieces_per_qty_type FROM elements_to_elements_suppliers";
            $defstock_query .= " WHERE elements_id={$element['elements_id']} AND is_default='1'";
            $defstock_result = tep_db_query($defstock_query);
            $defstock = tep_db_fetch_array($defstock_result);
            $element_qty_type = $defstock['price_quantity_type'];
            $element_ppqt = $defstock['pieces_per_qty_type'];
        } else {
            $element_qty_type = $element['qty_type'];
            $element_ppqt = $element['pieces_per_qty_type'];
        }
        $qty_unit = 'qty';
        if ($element_qty_type == 'meter') {
            $qty_unit = 'cm';
        }
        //if($element_qty_type=='bottle') $qty_unit = 'gr';
        $eqto = array();
        //HIDE option to update by unit, must use qty
        //$eqto['unit'] = $element_qty_type;
        //if($eqto['unit']!='pieces') $eqto['qty'] = $qty_unit;
        $eqto['qty'] = $qty_unit;
        $element_qty_type_options = '<select name="eqt">';
        $element_qty_type_options .= loadComboListFromArray($eqto, null, null, false);
        $element_qty_type_options .= '</select>';
        if ($element_ppqt == 0) {
            $element_ppqt = 1;
            global $messagebox;
            $messagebox->add('<strong>Qty/Unit</strong> for default supplier is unset, please <a href="?open=elements-suppliers&amp;id=' . $elements_id . '&amp;hidemenu=true" class="view_webpage">click here to update</a>.');
        }
        $element_stock = $element['stock'] == '' ? '0' : round($element['stock'] / $element_ppqt, 2);
        $result = '';
        if ($messagebox->counter > 0) {
            $result .= $messagebox->build();
        }
        $stock_booked = elements_minierp::elementsBookedCount($jng_warehouses_id, $elements_id);
        $stock_booked_unit = round($stock_booked / $element_ppqt, 2);
        $stock_total = $element['stock'] + $stock_booked;
        $stock_total_unit = $element_stock + $stock_booked_unit;
        $orders_in_sourcing = elements_preorder::totalNeededForSourcingTab($elements_id);
        $orders_in_sourcing_unit = round($orders_in_sourcing / $element_ppqt, 2);
        $elname = 'Element ' . $element['elements_id'] . ($element['elements_description'] != '' ? ' &sdot; ' . $element['elements_description'] : '');
        $result .= '<h2>' . $elname . '</h2>';
        $result .= '<div style="float:left;">' . webImageWithDetailLinkStars($element['image'], IMAGE_SIZE_THUMBNAIL_2, IMAGE_SIZE_THUMBNAIL_2, "Element {$element['elements_id']}", 'img-border img-padding', 'Click to view larger image', IMAGE_SIZE_BIG_1, IMAGE_SIZE_BIG_1, $element['stars']) . '</div>';
        $result .= '<div class="form" style="margin-left:170px;">';
        //$result .= '<form name="element-stock-update" action="?open=elements-stock-update" method="post">';
        //$result .= '<input type="hidden" name="me_action" value="UPDATEELEMENTSTOCK" />';
        $result .= '<input type="hidden" id="elements_id" name="elements_id" value="' . $element['elements_id'] . '" />';
        $result .= '<input type="hidden" id="jng_warehouses_id" name="jng_warehouses_id" value="' . $jng_warehouses_id . '" />';
        $result .= '<input type="hidden" id="stock" value="' . $element_stock . '" />';
        $result .= '<input type="hidden" id="qty_type" value="' . $element_qty_type . '" />';
        $result .= '<input type="hidden" id="qty_unit" value="' . $qty_unit . '" />';
        $result .= '<input type="hidden" id="pieces_per_qty_type" value="' . $element_ppqt . '" />';
        $result .= '<table border="0" cellpadding="0" cellspacing="0">';
        //$result .= '<tr><td>Pieces per Unit Type</td><td><input type="text" readonly="readonly" class="disabled" value="'.$ppqt_text.'" /></td></tr>';
        $result .= '<tr><td>Pieces per Unit Type</td><td><input type="text" value="' . "1 {$element_qty_type}" . '" class="esi readonly" /></td><td class="notice">=</td><td><input type="text" value="' . "{$element_ppqt} {$qty_unit}" . '" class="esi readonly" /></td></tr>';
        //$result .= '<tr><td width="150">Stock Available</td><td><input type="text" readonly="readonly" class="disabled" value="'."$element_stock $element_qty_type".' &asymp; '."$element[stock] $qty_unit".'" /></td></tr>';
        $result .= '<tr><td>Stock Total</td><td><input type="text" value="' . "{$stock_total_unit} {$element_qty_type}" . '" class="esi" style="color:#000;" /></td><td>&asymp;</td><td><input type="text" value="' . "{$stock_total} {$qty_unit}" . '" class="esi" style="color:#000;" /></td></tr>';
        $result .= '<tr><td>Stock Booked</td><td><input type="text" value="' . "{$stock_booked_unit} {$element_qty_type}" . '" class="esi" style="color:#000;" /></td><td>&asymp;</td><td><input type="text" value="' . "{$stock_booked} {$qty_unit}" . '" class="esi" style="color:#000;" /></td></tr>';
        $result .= '<tr><td width="150" class="bold">Stock Available</td><td><input id="cs-unit" type="text" value="' . "{$element_stock} {$element_qty_type}" . '" class="esi bold" style="color:#000;" /></td><td>&asymp;</td><td><input id="cs-qty" type="text" value="' . "{$element['stock']} {$qty_unit}" . '" class="esi bold" style="color:#000;" /></td></tr>';
        $result .= '<tr><td width="150" class="notice">Orders in Sourcing Tab</td><td><input type="text" value="' . "{$orders_in_sourcing_unit} {$element_qty_type}" . '" class="esi" /></td><td>&asymp;</td><td><input type="text" value="' . "{$orders_in_sourcing} {$qty_unit}" . '" class="esi" /></td></tr>';
        $result .= '<tr><td colspan="4">';
        $result .= '<div id="stock-buttons">';
        $result .= '<input type="button" id="stock-add" value="Add" class="button" />';
        $result .= '<input type="button" id="stock-adj" value="Adjust" class="button" />';
        $result .= '<input type="button" id="stock-red" value="Reduce" class="red button" />';
        $result .= '</div>';
        $result .= '<div id="stock-forms" style="margin-top:10px;">';
        $result .= '<div id="form-add" class="float-box ui-corner-all" style="display:none;">';
        $result .= '<input type="text" id="stock-add-value" value="" style="width:50px" />';
        $result .= ' ' . $element_qty_type_options . ' &nbsp; ';
        $result .= ' <input type="button" value="Add" class="action-btn" id="action-add" />';
        $result .= ' <input type="button" name="cancel" value="Cancel" />';
        $result .= '</div>';
        $result .= '<div id="form-adj" class="float-box ui-corner-all" style="display:none;">';
        $result .= '<input type="text" id="stock-adj-value" value="' . $element_stock . '" style="width:50px" />';
        $result .= ' ' . str_replace('<select', '<select id="eqt-adj"', $element_qty_type_options) . ' &nbsp; ';
        $result .= ' <input type="button" value="Update" class="action-btn" id="action-adj" />';
        $result .= ' <input type="button" name="cancel" value="Cancel" />';
        $result .= '</div>';
        $result .= '<div id="form-red" class="float-box ui-corner-all" style="display:none;">';
        $result .= '<strong>Reduce Reason</strong><br /><select id="reduce_reason" class="input">' . loadComboListFromArray($reduce_reason) . '</select><br /><br />';
        $result .= '<input type="text" id="stock-red-value" value="" style="width:50px" />';
        $result .= ' ' . $element_qty_type_options . ' &nbsp; ';
        $result .= ' <input type="button" value="Reduce" class="red action-btn" id="action-red" />';
        $result .= ' <input type="button" name="cancel" value="Cancel" />';
        $result .= '</div>';
        $result .= '</div>';
        $result .= '</td></tr>';
        $result .= '</table>';
        //$result .= '</form>';
        $result .= '</div>';
        $result .= '<h2 style="margin:20px 0;">Show Historical data for &nbsp;';
        $result .= '<select id="euhperiod">' . loadComboListFromArray($history_options, null, null, false) . '</select>';
        $result .= '<select id="euhdaisum">' . loadComboListFromArray($history_options_2, null, null, false) . '</select>';
        $result .= '</h2>';
        $result .= '<div id="euhdata">';
        $result .= getElementStockHistory($jng_warehouses_id, $elements_id, 0, 0, $element['stock']);
        $result .= '</div>';
    } else {
        $result = '<span class="red">Can not find Element ' . $msg_filter_type . ' <strong>' . $elements_id . '</strong> in database.</red>';
    }
    return $result;
}
<?php

set_time_limit(0);
global $db;
require_once '../confy.php';
require_once '../functions.php';
require_once '../functions-2.php';
tep_db_connect();
use_class('logger');
$logger = new logger('cron', 'daily-counter-elements');
use_class('element');
use_class('elements_minierp');
$class_em = new elements_minierp();
//USED FOR ELEMENTS LOG
$elements = array();
///////////////////////////////////
// SP ELEMENT WEEKLYSOLD COUNTER //
///////////////////////////////////
$logger->write('1 - Elements Last 7 & 30 Days Sold:');
$el_weekly_sold = $class_em->querySoldHistory('7');
$el_sold_monthly_1 = $class_em->querySoldHistory('30');
foreach ($el_weekly_sold['elements'] as $eid => $sold) {
    if (!isset($elements[$eid])) {
        $elements[$eid] = array();
    }
    $elements[$eid]['weekly_sold'] += $sold;
    $elements[$eid]['weekly_sold_products'] += $el_weekly_sold['products'][$eid];
}
foreach ($el_sold_monthly_1['elements'] as $eid => $sold) {
    if (!isset($elements[$eid])) {
        $elements[$eid] = array();