From: <ex...@us...> - 2014-03-19 03:54:46
|
Revision: 6618 http://sourceforge.net/p/web-erp/reponame/6618 Author: exsonqu Date: 2014-03-19 03:54:43 +0000 (Wed, 19 Mar 2014) Log Message: ----------- 19/3/2014 Tim: Fixed the bug Items Other than those in BOM are not listed in Status of Work Order even if issued. Exson made a little revision to keep SQL query only once for those additional issued materials. Reported by newuesr990 from weberp forum. Modified Paths: -------------- trunk/WorkOrderStatus.php Modified: trunk/WorkOrderStatus.php =================================================================== --- trunk/WorkOrderStatus.php 2014-03-18 05:21:41 UTC (rev 6617) +++ trunk/WorkOrderStatus.php 2014-03-19 03:54:43 UTC (rev 6618) @@ -109,6 +109,15 @@ WHERE wo='" . $SelectedWO . "' AND worequirements.parentstockid='" . $StockID . "'", $db); + $IssuedAlreadyResult = DB_query("SELECT stockid, + SUM(-qty) AS total + FROM stockmoves + WHERE stockmoves.type=28 + AND reference='".$SelectedWO."' + GROUP BY stockid",$db); + while ($IssuedRow = DB_fetch_array($IssuedAlreadyResult)){ + $IssuedAlreadyRow[$IssuedRow['stockid']] = $IssuedRow['total']; + } while ($RequirementsRow = DB_fetch_array($RequirmentsResult)){ if ($RequirementsRow['autoissue']==0){ @@ -120,19 +129,40 @@ <td class="notavailable">' . _('Auto Issue') . '</td> <td class="notavailable">' .$RequirementsRow['stockid'] . ' - ' . $RequirementsRow['description'] . '</td>'; } - $IssuedAlreadyResult = DB_query("SELECT SUM(-qty) FROM stockmoves - WHERE stockmoves.type=28 - AND stockid='" . $RequirementsRow['stockid'] . "' - AND reference='" . $SelectedWO . "'", - $db); - $IssuedAlreadyRow = DB_fetch_row($IssuedAlreadyResult); - - echo '<td align="right">' . locale_number_format($WORow['qtyreqd']*$RequirementsRow['qtypu'],$RequirementsRow['decimalplaces']) . '</td> - <td align="right">' . locale_number_format($IssuedAlreadyRow[0],$RequirementsRow['decimalplaces']) . '</td></tr>'; + if (isset($IssuedAlreadyRow[$RequirementsRow['stockid']])){ + $Issued = $IssuedAlreadyRow[$RequirementsRow['stockid']]; + unset($IssuedAlreadyRow[$RequirementsRow['stockid']]); + }else{ + $Issued = 0; + } + echo '<td class="number">'.locale_number_format($WORow['qtyreqd']*$RequirementsRow['qtypu'],$RequirementsRow['decimalplaces']).'</td> + <td class="number">'.locale_number_format($Issued,$RequirementsRow['decimalplaces']).'</td></tr>'; } - + /* Now do any additional issues of items not in the BOM */ + if(count($IssuedAlreadyRow)>0){ + $AdditionalStockIDs = array_keys($IssuedAlreadyRow); + $AdditionalStocks = implode(',',$AdditionalStockIDs); + $RequirementsSQL = "SELECT stockid, + stockmaster.description, + stockmaster.decimalplaces + FROM stockmaster WHERE stockid IN ('".$AdditionalStocks."')"; + $RequirementsResult = DB_query($RequirementsSQL,$db); + $AdditionalStocks = array(); + while($myrow = DB_fetch_array($RequirementsResult)){ + $AdditionalStocks[$myrow['stockid']]['description'] = $myrow['description']; + $AdditionalStocks[$myrow['stockid']]['decimalplaces'] = $myrow['decimalplaces']; + } + foreach ($IssuedAlreadyRow as $StockID=>$Issued) { + echo '<tr> + <td>'._('Additional Issue').'</td> + <td>'.$StockID . ' - '.$AdditionalStocks[$StockID]['description'].'</td>'; + echo '<td class="number">0</td> + <td class="number">'.locale_number_format($Issued,$AdditionalStocks[$StockID]['decimalplaces']).'</td> + </tr>'; + } + } + echo '</table>'; + include('includes/footer.inc'); -include('includes/footer.inc'); - -?> \ No newline at end of file +?> |