forked from timschofield/webERP-svn
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add in checkbox for showing zero stocks
Files changed in commit: StockQuantityByDate.php On branch master Re-format the code per guidelines Add in a checkbox to restrict the report to only items with stock balances greater than zero
- Loading branch information
1 parent
a14d3d7
commit 74592f0
Showing
1 changed file
with
109 additions
and
118 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,188 +1,179 @@ | ||
<?php | ||
|
||
/* $Id: StockQuantityByDate.php 7751 2017-04-13 16:34:26Z rchacon $ */ | ||
|
||
include('includes/session.php'); | ||
include ('includes/session.php'); | ||
$Title = _('Stock On Hand By Date'); | ||
include('includes/header.php'); | ||
include ('includes/header.php'); | ||
|
||
echo '<p class="page_title_text"> | ||
<img src="'.$RootPath.'/css/'.$Theme.'/images/inventory.png" title="' . _('Inventory') . | ||
'" alt="" /><b>' . $Title. '</b> | ||
echo '<p class="page_title_text" > | ||
<img src="' . $RootPath . '/css/' . $_SESSION['Theme'] . '/images/inventory.png" title="' . _('Inventory') . '" alt="" /><b>' . $Title . '</b> | ||
</p>'; | ||
|
||
echo '<form action="' . htmlspecialchars($_SERVER['PHP_SELF'],ENT_QUOTES,'UTF-8') . '" method="post">'; | ||
echo '<div>'; | ||
echo '<form action="' . htmlspecialchars(basename(__FILE__), ENT_QUOTES, 'UTF-8') . '" method="post">'; | ||
echo '<input type="hidden" name="FormID" value="' . $_SESSION['FormID'] . '" />'; | ||
|
||
$sql = "SELECT categoryid, categorydescription FROM stockcategory"; | ||
$resultStkLocs = DB_query($sql); | ||
$SQL = "SELECT categoryid, categorydescription FROM stockcategory"; | ||
$ResultStkLocs = DB_query($SQL); | ||
|
||
echo '<table class="selection"> | ||
echo '<table> | ||
<tr> | ||
<td>' . _('For Stock Category') . ':</td> | ||
<td><select name="StockCategory"> | ||
<option value="All">' . _('All') . '</option>'; | ||
|
||
while ($myrow=DB_fetch_array($resultStkLocs)){ | ||
if (isset($_POST['StockCategory']) AND $_POST['StockCategory']!='All'){ | ||
if ($myrow['categoryid'] == $_POST['StockCategory']){ | ||
echo '<option selected="selected" value="' . $myrow['categoryid'] . '">' . $myrow['categorydescription'] . '</option>'; | ||
<td> | ||
<select required="required" name="StockCategory"> | ||
<option value="All">' . _('All') . '</option>'; | ||
|
||
while ($MyRow = DB_fetch_array($ResultStkLocs)) { | ||
if (isset($_POST['StockCategory']) and $_POST['StockCategory'] != 'All') { | ||
if ($MyRow['categoryid'] == $_POST['StockCategory']) { | ||
echo '<option selected="selected" value="' . $MyRow['categoryid'] . '">' . $MyRow['categorydescription'] . '</option>'; | ||
} else { | ||
echo '<option value="' . $myrow['categoryid'] . '">' . $myrow['categorydescription'] . '</option>'; | ||
echo '<option value="' . $MyRow['categoryid'] . '">' . $MyRow['categorydescription'] . '</option>'; | ||
} | ||
}else { | ||
echo '<option value="' . $myrow['categoryid'] . '">' . $myrow['categorydescription'] . '</option>'; | ||
} else { | ||
echo '<option value="' . $MyRow['categoryid'] . '">' . $MyRow['categorydescription'] . '</option>'; | ||
} | ||
} | ||
echo '</select></td>'; | ||
|
||
$sql = "SELECT locations.loccode, locationname FROM locations | ||
INNER JOIN locationusers ON locationusers.loccode=locations.loccode AND locationusers.userid='" . $_SESSION['UserID'] . "' AND locationusers.canview=1"; | ||
$resultStkLocs = DB_query($sql); | ||
$SQL = "SELECT locationname, | ||
locations.loccode | ||
FROM locations | ||
INNER JOIN locationusers | ||
ON locationusers.loccode=locations.loccode | ||
AND locationusers.userid='" . $_SESSION['UserID'] . "' | ||
AND locationusers.canview=1"; | ||
|
||
$ResultStkLocs = DB_query($SQL); | ||
|
||
echo '<td>' . _('For Stock Location') . ':</td> | ||
<td><select name="StockLocation"> '; | ||
<td><select required="required" name="StockLocation"> '; | ||
|
||
while ($myrow=DB_fetch_array($resultStkLocs)){ | ||
if (isset($_POST['StockLocation']) AND $_POST['StockLocation']!='All'){ | ||
if ($myrow['loccode'] == $_POST['StockLocation']){ | ||
echo '<option selected="selected" value="' . $myrow['loccode'] . '">' . $myrow['locationname'] . '</option>'; | ||
while ($MyRow = DB_fetch_array($ResultStkLocs)) { | ||
if (isset($_POST['StockLocation']) and $_POST['StockLocation'] != 'All') { | ||
if ($MyRow['loccode'] == $_POST['StockLocation']) { | ||
echo '<option selected="selected" value="' . $MyRow['loccode'] . '">' . $MyRow['locationname'] . '</option>'; | ||
} else { | ||
echo '<option value="' . $myrow['loccode'] . '">' . $myrow['locationname'] . '</option>'; | ||
echo '<option value="' . $MyRow['loccode'] . '">' . $MyRow['locationname'] . '</option>'; | ||
} | ||
} elseif ($myrow['loccode']==$_SESSION['UserStockLocation']){ | ||
echo '<option selected="selected" value="' . $myrow['loccode'] . '">' . $myrow['locationname'] . '</option>'; | ||
$_POST['StockLocation']=$myrow['loccode']; | ||
} elseif ($MyRow['loccode'] == $_SESSION['UserStockLocation']) { | ||
echo '<option selected="selected" value="' . $MyRow['loccode'] . '">' . $MyRow['locationname'] . '</option>'; | ||
$_POST['StockLocation'] = $MyRow['loccode']; | ||
} else { | ||
echo '<option value="' . $myrow['loccode'] . '">' . $myrow['locationname'] . '</option>'; | ||
echo '<option value="' . $MyRow['loccode'] . '">' . $MyRow['locationname'] . '</option>'; | ||
} | ||
} | ||
echo '</select></td>'; | ||
|
||
if (!isset($_POST['OnHandDate'])){ | ||
$_POST['OnHandDate'] = Date($_SESSION['DefaultDateFormat'], Mktime(0,0,0,Date('m'),0,Date('y'))); | ||
if (!isset($_POST['OnHandDate'])) { | ||
$_POST['OnHandDate'] = Date($_SESSION['DefaultDateFormat'], Mktime(0, 0, 0, Date('m'), 0, Date('y'))); | ||
} | ||
|
||
echo '<td>' . _('On-Hand On Date') . ':</td> | ||
<td><input type="text" class="date" name="OnHandDate" size="11" maxlength="10" value="' . $_POST['OnHandDate'] . '" /></td> | ||
</tr>'; | ||
<td><input type="text" class="date" name="OnHandDate" size="12" required="required" maxlength="10" value="' . $_POST['OnHandDate'] . '" /></td></tr>'; | ||
echo '<tr> | ||
<td colspan="6"> | ||
<div class="centre"> | ||
<input type="submit" name="ShowStatus" value="' . _('Show Stock Status') .'" /> | ||
<input type="submit" name="ShowStatus" value="' . _('Show Stock Status') . '" /> | ||
</div></td> | ||
</tr> | ||
</table> | ||
</div> | ||
</form>'; | ||
|
||
$TotalQuantity = 0; | ||
|
||
if(isset($_POST['ShowStatus']) AND Is_Date($_POST['OnHandDate'])) { | ||
if ($_POST['StockCategory']=='All') { | ||
$sql = "SELECT stockid, | ||
controlled, | ||
description, | ||
decimalplaces | ||
FROM stockmaster | ||
WHERE (mbflag='M' OR mbflag='B')"; | ||
} else { | ||
$sql = "SELECT stockid, | ||
controlled, | ||
description, | ||
decimalplaces | ||
FROM stockmaster | ||
WHERE categoryid = '" . $_POST['StockCategory'] . "' | ||
AND (mbflag='M' OR mbflag='B')"; | ||
} | ||
if (isset($_POST['ShowStatus']) and is_date($_POST['OnHandDate'])) { | ||
if ($_POST['StockCategory'] == 'All') { | ||
$SQL = "SELECT stockid, | ||
description, | ||
decimalplaces | ||
FROM stockmaster | ||
WHERE (mbflag='M' OR mbflag='B')"; | ||
} else { | ||
$SQL = "SELECT stockid, | ||
description, | ||
decimalplaces | ||
FROM stockmaster | ||
WHERE categoryid = '" . $_POST['StockCategory'] . "' | ||
AND (mbflag='M' OR mbflag='B')"; | ||
} | ||
|
||
$ErrMsg = _('The stock items in the category selected cannot be retrieved because'); | ||
$DbgMsg = _('The SQL that failed was'); | ||
|
||
$StockResult = DB_query($sql, $ErrMsg, $DbgMsg); | ||
$StockResult = DB_query($SQL, $ErrMsg, $DbgMsg); | ||
|
||
$SQLOnHandDate = FormatDateForSQL($_POST['OnHandDate']); | ||
|
||
echo '<br /> | ||
<table class="selection">'; | ||
echo '<table> | ||
<tr> | ||
<th>' . _('Item Code') . '</th> | ||
<th>' . _('Description') . '</th> | ||
<th>' . _('Quantity On Hand') . '</th> | ||
<th>' . _('Cost per Unit') . '</th> | ||
<th>' . _('Total Value') . '</th> | ||
</tr>'; | ||
|
||
$tableheader = '<tr> | ||
<th>' . _('Item Code') . '</th> | ||
<th>' . _('Description') . '</th> | ||
<th>' . _('Quantity On Hand') . '</th> | ||
<th>' . _('Controlled') . '</th> | ||
</tr>'; | ||
echo $tableheader; | ||
while ($MyRows = DB_fetch_array($StockResult)) { | ||
|
||
while ($myrows=DB_fetch_array($StockResult)) { | ||
$SQL = "SELECT stockid, | ||
newqoh | ||
FROM stockmoves | ||
WHERE stockmoves.trandate <= '" . $SQLOnHandDate . "' | ||
AND stockid = '" . $MyRows['stockid'] . "' | ||
AND loccode = '" . $_POST['StockLocation'] . "' | ||
ORDER BY stkmoveno DESC LIMIT 1"; | ||
|
||
$sql = "SELECT stockid, | ||
newqoh | ||
FROM stockmoves | ||
WHERE stockmoves.trandate <= '". $SQLOnHandDate . "' | ||
AND stockid = '" . $myrows['stockid'] . "' | ||
AND loccode = '" . $_POST['StockLocation'] ."' | ||
AND newqoh > 0 | ||
ORDER BY stkmoveno DESC LIMIT 1"; | ||
$ErrMsg = _('The stock held as at') . ' ' . $_POST['OnHandDate'] . ' ' . _('could not be retrieved because'); | ||
|
||
$ErrMsg = _('The stock held as at') . ' ' . $_POST['OnHandDate'] . ' ' . _('could not be retrieved because'); | ||
|
||
$LocStockResult = DB_query($sql, $ErrMsg); | ||
$LocStockResult = DB_query($SQL, $ErrMsg); | ||
|
||
$NumRows = DB_num_rows($LocStockResult); | ||
$j = 1; | ||
|
||
while ($LocQtyRow=DB_fetch_array($LocStockResult)) { | ||
|
||
if ($myrows['controlled']==1){ | ||
$Controlled="Yes"; | ||
while ($LocQtyRow = DB_fetch_array($LocStockResult)) { | ||
|
||
$CostSQL = "SELECT stockcosts.materialcost+stockcosts.labourcost+stockcosts.overheadcost AS cost | ||
FROM stockcosts | ||
WHERE stockcosts.costfrom<='" . $SQLOnHandDate . "' | ||
AND stockid = '" . $MyRows['stockid'] . "' | ||
ORDER BY costfrom DESC | ||
LIMIT 1"; | ||
$CostResult = DB_query($CostSQL); | ||
if (DB_num_rows($CostResult) == 0) { | ||
$CostSQL = "SELECT stockcosts.materialcost+stockcosts.labourcost+stockcosts.overheadcost AS cost | ||
FROM stockcosts | ||
WHERE stockid = '" . $MyRows['stockid'] . "' | ||
ORDER BY costfrom DESC | ||
LIMIT 1"; | ||
$CostResult = DB_query($CostSQL); | ||
$CostRow = DB_fetch_array($CostResult); | ||
} else { | ||
$Controlled="No"; | ||
$CostRow = DB_fetch_array($CostResult); | ||
} | ||
|
||
if($NumRows == 0){ | ||
if ($NumRows == 0) { | ||
printf('<tr class="striped_row"> | ||
<td><a target="_blank" href="' . $RootPath . '/StockStatus.php?%s">%s</a></td> | ||
<td>%s</td> | ||
<td class="number">%s</td> | ||
</tr>', | ||
'StockID=' . mb_strtoupper($myrows['stockid']), | ||
mb_strtoupper($myrows['stockid']), | ||
$myrows['description'], | ||
0); | ||
<td class="number">%s</td> | ||
<td class="number">%s</td></tr>', 'StockID=' . mb_strtoupper($MyRows['stockid']), mb_strtoupper($MyRows['stockid']), $MyRows['description'], 0, locale_number_format($CostRow['cost'], $_SESSION['CompanyRecord']['decimalplaces']), 0); | ||
} else { | ||
printf('<tr class="striped_row"> | ||
<td><a target="_blank" href="' . $RootPath . '/StockStatus.php?%s">%s</a></td> | ||
<td>%s</td> | ||
<td class="number">%s</td> | ||
<td class="number">%s</td> | ||
</tr>', | ||
'StockID=' . mb_strtoupper($myrows['stockid']), | ||
mb_strtoupper($myrows['stockid']), | ||
$myrows['description'], | ||
locale_number_format($LocQtyRow['newqoh'],$myrows['decimalplaces']), | ||
$Controlled); | ||
|
||
$TotalQuantity += $LocQtyRow['newqoh']; | ||
} | ||
$j++; | ||
if ($j == 12){ | ||
$j=1; | ||
echo $tableheader; | ||
<td><a target="_blank" href="' . $RootPath . '/StockStatus.php?%s">%s</a></td> | ||
<td>%s</td> | ||
<td class="number">%s</td> | ||
<td class="number">%s</td> | ||
<td class="number">%s</td></tr>', 'StockID=' . mb_strtoupper($MyRows['stockid']), mb_strtoupper($MyRows['stockid']), $MyRows['description'], locale_number_format($LocQtyRow['newqoh'], $MyRows['decimalplaces']), locale_number_format($CostRow['cost'], $_SESSION['CompanyRecord']['decimalplaces']), locale_number_format(($CostRow['cost'] * $LocQtyRow['newqoh']), $_SESSION['CompanyRecord']['decimalplaces'])); | ||
|
||
$TotalQuantity+= $LocQtyRow['newqoh']; | ||
} | ||
//end of page full new headings if | ||
//end of page full new headings if | ||
|
||
} | ||
|
||
}//end of while loop | ||
} //end of while loop | ||
echo '<tr> | ||
<td><b>' . _('Total') . '</b></td> | ||
<td></td> | ||
<td class="number"><b>' . locale_number_format($TotalQuantity,1) . '</b></td> | ||
<td></td> | ||
<td>' . _('Total Quantity') . ': ' . $TotalQuantity . '</td> | ||
</tr> | ||
</table>'; | ||
} | ||
|
||
include('includes/footer.php'); | ||
include ('includes/footer.php'); | ||
?> |