$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 $sourcing_missing = $need_in_sourcing_tab - $current_stock; if ($sourcing_missing > 0) { $e->logNeedSourcing('yesterday', $sourcing_missing); } if ($missing_quantity > 0) { elements_preorder::addPreordersTemp($eid, $target_stock, $need_in_sourcing_tab, $current_stock, $already_ordered, $already_preordered, $missing_quantity); $elements_with_missing_qty[] = $eid; $log_message = "Element {$eid} - Missing:{$missing_quantity}"; //If needed qty is too big, send an email notification if ($target_stock > 1 && $missing_quantity > ceil($tolerance_email_notification * $target_stock)) { $log_message .= " (Missing Qty too big, should have sent an email notification)"; } //Create preorders of the needed qty $epo = new elements_preorder($eid); $epo->addOrder($missing_quantity, null, 'Daily Cron'); $log_message .= " - Preorders created"; $logger->write($log_message); }