prnMsg(_('The sales order demand quantities from parent assemblies could not be retrieved by the SQL because') . ' - ' . DB_error_msg(), 'error'); echo '<br /><a href="' . $RootPath . '/index.php">' . _('Back to the menu') . '</a>'; if ($debug == 1) { echo '<br />' . $SQL; } include 'includes/footer.inc'; exit; } // Get the QOO due to Purchase orders for all locations. Function defined in SQL_CommonFunctions.inc // Get the QOO dues to Work Orders for all locations. Function defined in SQL_CommonFunctions.inc if ($_POST['Location'] == 'All') { $QOO = GetQuantityOnOrderDueToPurchaseOrders($InventoryPlan['stockid'], ''); $QOO += GetQuantityOnOrderDueToWorkOrders($InventoryPlan['stockid'], ''); } else { $QOO = GetQuantityOnOrderDueToPurchaseOrders($InventoryPlan['stockid'], $_POST['Location']); $QOO += GetQuantityOnOrderDueToWorkOrders($InventoryPlan['stockid'], $_POST['Location']); } $DemandRow = DB_fetch_array($DemandResult); $BOMDemandRow = DB_fetch_array($BOMDemandResult); $TotalDemand = $DemandRow['qtydemand'] + $BOMDemandRow['dem']; $LeftOvers = $pdf->addTextWrap($Left_Margin, $YPos, 110, $FontSize, $InventoryPlan['stockid'], 'left'); $LeftOvers = $pdf->addTextWrap(130, $YPos, 120, 6, $InventoryPlan['description'], 'left'); $LeftOvers = $pdf->addTextWrap(251, $YPos, 40, $FontSize, locale_number_format($SalesRow['prd5'], 0), 'right'); $LeftOvers = $pdf->addTextWrap(292, $YPos, 40, $FontSize, locale_number_format($SalesRow['prd4'], 0), 'right'); $LeftOvers = $pdf->addTextWrap(333, $YPos, 40, $FontSize, locale_number_format($SalesRow['prd3'], 0), 'right'); $LeftOvers = $pdf->addTextWrap(374, $YPos, 40, $FontSize, locale_number_format($SalesRow['prd2'], 0), 'right'); $LeftOvers = $pdf->addTextWrap(415, $YPos, 40, $FontSize, locale_number_format($SalesRow['prd1'], 0), 'right'); $LeftOvers = $pdf->addTextWrap(456, $YPos, 40, $FontSize, locale_number_format($SalesRow['prd0'], 0), 'right'); if ($_POST['NumberMonthsHolding'] > 10) { $NumberMonths = $_POST['NumberMonthsHolding'] - 10; $MaxMthSales = ($SalesRow['prd1'] + $SalesRow['prd2'] + $SalesRow['prd3'] + $SalesRow['prd4'] + $SalesRow['prd5']) / 5;
$ErrMsg = _('The demand for this product from') . ' ' . $myrow['loccode'] . ' ' . _('cannot be retrieved because'); $DemandResult = DB_query($sql, $ErrMsg); if (DB_num_rows($DemandResult) == 1) { $DemandRow = DB_fetch_row($DemandResult); $DemandQty += $DemandRow[0]; } $sql = "SELECT SUM((woitems.qtyreqd-woitems.qtyrecd)*bom.quantity) AS dem\n\t\t\t\tFROM workorders INNER JOIN woitems\n ON woitems.wo = workorders.wo\n INNER JOIN bom\n ON woitems.stockid = bom.parent\n\t\t\t\tWHERE workorders.closed=0\n\t\t\t\tAND bom.component = '" . $StockID . "'\n\t\t\t\tAND workorders.loccode='" . $myrow['loccode'] . "'"; $DemandResult = DB_query($sql, $ErrMsg); if (DB_num_rows($DemandResult) == 1) { $DemandRow = DB_fetch_row($DemandResult); $DemandQty += $DemandRow[0]; } // Get the QOO due to Purchase orders for all locations. Function defined in SQL_CommonFunctions.inc $QOO = GetQuantityOnOrderDueToPurchaseOrders($StockID, $myrow['loccode']); // Get the QOO dues to Work Orders for all locations. Function defined in SQL_CommonFunctions.inc $QOO += GetQuantityOnOrderDueToWorkOrders($StockID, $myrow['loccode']); if ($_POST['BelowReorderQuantity'] == 'Below' and $myrow['quantity'] - $myrow['reorderlevel'] - $DemandQty < 0 or $_POST['BelowReorderQuantity'] == 'All' or $_POST['BelowReorderQuantity'] == 'NotZero' or $_POST['BelowReorderQuantity'] == 'OnOrder' and $QOO != 0) { if ($_POST['BelowReorderQuantity'] == 'NotZero' and $myrow['quantity'] - $DemandQty > 0) { if ($k == 1) { echo '<tr class="OddTableRows">'; $k = 0; } else { echo '<tr class="EvenTableRows">'; $k = 1; } $tr = ($myrow['serialised'] or $myrow['controlled']) ? '' : '<tr>'; printf('<td><a target="_blank" href="' . $RootPath . '/StockStatus.php?StockID=%s">%s</a></td> <td>%s</td> <td class="number">%s</td> <td>%s</td> <td class="number">%s</td>
$QOHRow = DB_fetch_array($QOHResult); $QOH = $QOHRow['qoh']; // Find the quantity on outstanding sales orders $sql = "SELECT SUM(salesorderdetails.quantity-salesorderdetails.qtyinvoiced) AS dem\n\t\t\t\t\t\tFROM salesorderdetails INNER JOIN salesorders\n\t\t\t\t\t\tON salesorders.orderno = salesorderdetails.orderno\n\t\t\t\t\t\t WHERE salesorders.fromstkloc='" . $_SESSION['Items' . $identifier]->Location . "'\n\t\t\t\t\t\t AND salesorderdetails.completed=0\n\t\t\t\t\t\t AND salesorders.quotation=0\n\t\t\t\t\t\t AND salesorderdetails.stkcode='" . $myrow['stockid'] . "'"; $ErrMsg = _('The demand for this product from') . ' ' . $_SESSION['Items' . $identifier]->Location . ' ' . _('cannot be retrieved because'); $DemandResult = DB_query($sql, $ErrMsg); $DemandRow = DB_fetch_row($DemandResult); if ($DemandRow[0] != null) { $DemandQty = $DemandRow[0]; } else { $DemandQty = 0; } // Get the QOO due to Purchase orders for all locations. Function defined in SQL_CommonFunctions.inc $PurchQty = GetQuantityOnOrderDueToPurchaseOrders($myrow['stockid'], ''); // Get the QOO dues to Work Orders for all locations. Function defined in SQL_CommonFunctions.inc $WoQty = GetQuantityOnOrderDueToWorkOrders($myrow['stockid'], ''); if ($k == 1) { echo '<tr class="EvenTableRows">'; $k = 0; } else { echo '<tr class="OddTableRows">'; $k = 1; } $OnOrder = $PurchQty + $WoQty; $Available = $QOH - $DemandQty + $OnOrder; printf('<td>%s</td> <td title="%s">%s</td> <td>%s</td> <td>%s</td> <td class="number">%s</td> <td class="number">%s</td>
switch ($myrow['mbflag']) { case 'A': case 'D': case 'K': $QOH = _('N/A'); $QOO = _('N/A'); break; case 'M': case 'B': $QOHResult = DB_query("SELECT sum(quantity)\n\t\t\t\t\t\t\t\tFROM locstock\n\t\t\t\t\t\t\t\tINNER JOIN locationusers ON locationusers.loccode=locstock.loccode AND locationusers.userid='" . $_SESSION['UserID'] . "' AND locationusers.canview=1\n\t\t\t\t\t\t\t\tWHERE stockid = '" . DB_escape_string($myrow['stkcode']) . "'", $db); $QOHRow = DB_fetch_row($QOHResult); $QOH = $QOHRow[0]; // Get the QOO due to Purchase orders for all locations. Function defined in SQL_CommonFunctions.inc $QOO = GetQuantityOnOrderDueToPurchaseOrders($myrow['stkcode'], ''); // Get the QOO due to Work Orders for all locations. Function defined in SQL_CommonFunctions.inc $QOO += GetQuantityOnOrderDueToWorkOrders($myrow['stkcode'], ''); break; } if (is_numeric($QOH) and is_numeric($QOO)) { $DaysOfStock = ($QOH + $QOO) / ($myrow['totalinvoiced'] / $_POST['NumberOfDays']); } elseif (is_numeric($QOH)) { $DaysOfStock = $QOH / ($myrow['totalinvoiced'] / $_POST['NumberOfDays']); } elseif (is_numeric($QOO)) { $DaysOfStock = $QOO / ($myrow['totalinvoiced'] / $_POST['NumberOfDays']); } else { $DaysOfStock = 0; } if ($DaysOfStock < $_POST['MaxDaysOfStock']) { if ($k == 1) { echo '<tr class="EvenTableRows">'; $k = 0;
switch ($myrow['mbflag']) { case 'A': case 'D': case 'K': $QOH = _('N/A'); $QOO = _('N/A'); break; case 'M': case 'B': $QOHResult = DB_query("SELECT sum(quantity)\n\t\t\t\t\t\tFROM locstock\n\t\t\t\t\t\tWHERE stockid = '" . $StockID . "'"); $QOHRow = DB_fetch_row($QOHResult); $QOH = locale_number_format($QOHRow[0], $myrow['decimalplaces']); // Get the QOO due to Purchase orders for all locations. Function defined in SQL_CommonFunctions.inc $QOO = GetQuantityOnOrderDueToPurchaseOrders($StockID, ''); // Get the QOO dues to Work Orders for all locations. Function defined in SQL_CommonFunctions.inc $QOO += GetQuantityOnOrderDueToWorkOrders($StockID, ''); $QOO = locale_number_format($QOO, $myrow['decimalplaces']); break; } $Demand = 0; $DemResult = DB_query("SELECT SUM(salesorderdetails.quantity-salesorderdetails.qtyinvoiced) AS dem\n\t\t\t\t\t\tFROM salesorderdetails INNER JOIN salesorders\n\t\t\t\t\t\tON salesorders.orderno = salesorderdetails.orderno\n\t\t\t\t\t\tINNER JOIN locationusers ON locationusers.loccode=salesorders.fromstkloc AND locationusers.userid='" . $_SESSION['UserID'] . "' AND locationusers.canview=1\n\t\t\t\t\t\tWHERE salesorderdetails.completed=0\n\t\t\t\t\t\tAND salesorders.quotation=0\n\t\t\t\t\t\tAND salesorderdetails.stkcode='" . $StockID . "'"); $DemRow = DB_fetch_row($DemResult); $Demand = $DemRow[0]; $DemAsComponentResult = DB_query("SELECT SUM((salesorderdetails.quantity-salesorderdetails.qtyinvoiced)*bom.quantity) AS dem\n\t\t\t\t\t\t\t\t\tFROM salesorderdetails INNER JOIN salesorders\n\t\t\t\t\t\t\t\t\tON salesorders.orderno = salesorderdetails.orderno\n\t\t\t\t\t\t\t\t\tINNER JOIN bom ON salesorderdetails.stkcode=bom.parent\n\t\t\t\t\t\t\t\t\tINNER JOIN stockmaster ON stockmaster.stockid=bom.parent\n\t\t\t\t\t\t\t\t\tINNER JOIN locationusers ON locationusers.loccode=salesorders.fromstkloc AND locationusers.userid='" . $_SESSION['UserID'] . "' AND locationusers.canview=1\n\t\t\t\t\t\t\t\t\tWHERE salesorderdetails.quantity-salesorderdetails.qtyinvoiced > 0\n\t\t\t\t\t\t\t\t\tAND bom.component='" . $StockID . "'\n\t\t\t\t\t\t\t\t\tAND stockmaster.mbflag='A'\n\t\t\t\t\t\t\t\t\tAND salesorders.quotation=0"); $DemAsComponentRow = DB_fetch_row($DemAsComponentResult); $Demand += $DemAsComponentRow[0]; //Also the demand for the item as a component of works orders $sql = "SELECT SUM(qtypu*(woitems.qtyreqd - woitems.qtyrecd)) AS woqtydemo\n\t\tFROM woitems INNER JOIN worequirements\n\t\tON woitems.stockid=worequirements.parentstockid\n\t\tINNER JOIN workorders\n\t\tON woitems.wo=workorders.wo\n\t\tAND woitems.wo=worequirements.wo\n\t\tINNER JOIN locationusers ON locationusers.loccode=workorders.loccode AND locationusers.userid='" . $_SESSION['UserID'] . "' AND locationusers.canview=1\n\t\tWHERE worequirements.stockid='" . $StockID . "'\n\t\tAND workorders.closed=0"; $ErrMsg = _('The workorder component demand for this product cannot be retrieved because'); $DemandResult = DB_query($sql, $ErrMsg); if (DB_num_rows($DemandResult) == 1) {