$logger->write('Existing Opened Suggestion is cleared!');
elements_preorder::clearPreordersTemp();
$logger->write('Existing Preorders temporary data is cleared!');
//Grab all existing elements, let's grab the data per element as an object
$r = tep_db_query("SELECT e.elements_id FROM element e " . "WHERE e.is_finalized='1' ORDER BY elements_id");
$elements = array();
while ($row = tep_db_fetch_array($r)) {
    $elements[] = $row['elements_id'];
}
$total_elements = count($elements);
$logger->write("Found {$total_elements} element(s) to process");
//COLLECTIVE QUERY
//Grab all data that can be retrieved collectively for the whole elements
$elements_stock = $class_es->retrieveAll(WAREHOUSE_ID_ELEMENTS);
$elements_open_po = elements_order::openOrdersQuantityAllElements();
$elements_need_in_sourcing_tab = elements_preorder::totalNeededForSourcingTabAllElements();
//Clean all existing opened suggested
//Loop through each element
$elements_with_missing_qty = array();
foreach ($elements as $eid) {
    $e = new element($eid);
    //Grab all needed data
    $target_stock = $e->getDIOHstockTarget();
    $need_in_sourcing_tab = $elements_need_in_sourcing_tab[$eid];
    $current_stock = intval($elements_stock[$eid]);
    $already_ordered = intval($elements_open_po[$eid]);
    //ANY EXISTING SUGGESTIONS/PREORDERS IS DELETED IN PREVIOUS SCRIPT
    $already_preordered = 0;
    //Check if new preorder is needed (calc missing quantity)
    $missing_quantity = $target_stock + $need_in_sourcing_tab - ($current_stock + $already_ordered + $already_preordered);
    //Create NS list daily counter