From: <tu...@us...> - 2018-02-06 19:49:27
|
Revision: 7939 http://sourceforge.net/p/web-erp/reponame/7939 Author: turbopt Date: 2018-02-06 19:49:24 +0000 (Tue, 06 Feb 2018) Log Message: ----------- MRPPlannedPurchasekOrders.php, MRPPlannedWorkOrders.php: PaulT: Add missing table cell to work orders to match recent change to planned purchase orders and replace 'where clause joins' with table join in both files. Paul B/PaulT: Apply consistent code formatting between both files. (Some consistency matters reported in forums: http://www.weberp.org/forum/showthread.php?tid=8061) Modified Paths: -------------- trunk/MRPPlannedPurchaseOrders.php trunk/MRPPlannedWorkOrders.php trunk/doc/Change.log Modified: trunk/MRPPlannedPurchaseOrders.php =================================================================== --- trunk/MRPPlannedPurchaseOrders.php 2018-02-05 21:42:09 UTC (rev 7938) +++ trunk/MRPPlannedPurchaseOrders.php 2018-02-06 19:49:24 UTC (rev 7939) @@ -5,19 +5,19 @@ include('includes/session.php'); -//Maybe not ANSI SQL?? $sql = "SELECT TABLE_NAME FROM information_schema.tables WHERE TABLE_SCHEMA = '" . $_SESSION['DatabaseName'] . "' AND TABLE_NAME = 'mrprequirements'"; +$result=DB_query($sql); -$result=DB_query($sql); if (DB_num_rows($result)==0) { $Title=_('MRP error'); include('includes/header.php'); echo '<br />'; prnMsg( _('The MRP calculation must be run before you can run this report') . '<br />' . - _('To run the MRP calculation click').' ' . '<a href="' . $RootPath .'/MRP.php">' . _('here') . '</a>', 'error'); + _('To run the MRP calculation click') . ' ' . '<a href="' . $RootPath . '/MRP.php">' . _('here') . '</a>', 'error'); include('includes/footer.php'); exit; } + if ( isset($_POST['PrintPDF']) OR isset($_POST['Review']) ) { $WhereDate = ' '; @@ -25,79 +25,80 @@ if (Is_Date($_POST['cutoffdate'])) { $FormatDate = FormatDateForSQL($_POST['cutoffdate']); $WhereDate = " AND duedate <= '" . $FormatDate . "' "; - $ReportDate = _(' Through ') . Format_Date($_POST['cutoffdate']); + $ReportDate = ' ' . _('Through') . ' ' . $_POST['cutoffdate']; } + if ($_POST['Consolidation'] == 'None') { $sql = "SELECT mrpplannedorders.*, - stockmaster.stockid, - stockmaster.description, - stockmaster.mbflag, - stockmaster.decimalplaces, - stockmaster.actualcost, - (stockmaster.materialcost + stockmaster.labourcost + - stockmaster.overheadcost ) as computedcost - FROM mrpplannedorders, stockmaster - WHERE mrpplannedorders.part = stockmaster.stockid " . $WhereDate . " - AND stockmaster.mbflag IN ('B','P') + stockmaster.stockid, + stockmaster.description, + stockmaster.mbflag, + stockmaster.decimalplaces, + stockmaster.actualcost, + (stockmaster.materialcost + stockmaster.labourcost + stockmaster.overheadcost ) as computedcost + FROM mrpplannedorders + INNER JOIN stockmaster + ON mrpplannedorders.part = stockmaster.stockid + WHERE stockmaster.mbflag IN ('B','P') " . $WhereDate . " ORDER BY mrpplannedorders.part,mrpplannedorders.duedate"; } elseif ($_POST['Consolidation'] == 'Weekly') { $sql = "SELECT mrpplannedorders.part, - SUM(mrpplannedorders.supplyquantity) as supplyquantity, - TRUNCATE(((TO_DAYS(duedate) - TO_DAYS(CURRENT_DATE)) / 7),0) AS weekindex, - MIN(mrpplannedorders.duedate) as duedate, - MIN(mrpplannedorders.mrpdate) as mrpdate, - COUNT(*) AS consolidatedcount, - stockmaster.stockid, - stockmaster.description, - stockmaster.mbflag, - stockmaster.decimalplaces, - stockmaster.actualcost, - (stockmaster.materialcost + stockmaster.labourcost + - stockmaster.overheadcost ) as computedcost - FROM mrpplannedorders, stockmaster - WHERE mrpplannedorders.part = stockmaster.stockid " . $WhereDate . " - AND stockmaster.mbflag IN ('B','P') + SUM(mrpplannedorders.supplyquantity) as supplyquantity, + TRUNCATE(((TO_DAYS(duedate) - TO_DAYS(CURRENT_DATE)) / 7),0) AS weekindex, + MIN(mrpplannedorders.duedate) as duedate, + MIN(mrpplannedorders.mrpdate) as mrpdate, + COUNT(*) AS consolidatedcount, + stockmaster.stockid, + stockmaster.description, + stockmaster.mbflag, + stockmaster.decimalplaces, + stockmaster.actualcost, + (stockmaster.materialcost + stockmaster.labourcost + stockmaster.overheadcost ) as computedcost + FROM mrpplannedorders + INNER JOIN stockmaster + ON mrpplannedorders.part = stockmaster.stockid + WHERE stockmaster.mbflag IN ('B','P') " . $WhereDate . " GROUP BY mrpplannedorders.part, - weekindex, - stockmaster.stockid, - stockmaster.description, - stockmaster.mbflag, - stockmaster.decimalplaces, - stockmaster.actualcost, - stockmaster.materialcost, - stockmaster.labourcost, - stockmaster.overheadcost, - computedcost + weekindex, + stockmaster.stockid, + stockmaster.description, + stockmaster.mbflag, + stockmaster.decimalplaces, + stockmaster.actualcost, + stockmaster.materialcost, + stockmaster.labourcost, + stockmaster.overheadcost, + computedcost ORDER BY mrpplannedorders.part,weekindex"; } else { // This else consolidates by month $sql = "SELECT mrpplannedorders.part, - SUM(mrpplannedorders.supplyquantity) as supplyquantity, - EXTRACT(YEAR_MONTH from duedate) AS yearmonth, - MIN(mrpplannedorders.duedate) as duedate, - MIN(mrpplannedorders.mrpdate) as mrpdate, - COUNT(*) AS consolidatedcount, - stockmaster.stockid, - stockmaster.description, - stockmaster.mbflag, - stockmaster.decimalplaces, - stockmaster.actualcost, - (stockmaster.materialcost + stockmaster.labourcost + - stockmaster.overheadcost ) as computedcost - FROM mrpplannedorders, stockmaster - WHERE mrpplannedorders.part = stockmaster.stockid " . $WhereDate . " - AND stockmaster.mbflag IN ('B','P') + SUM(mrpplannedorders.supplyquantity) as supplyquantity, + EXTRACT(YEAR_MONTH from duedate) AS yearmonth, + MIN(mrpplannedorders.duedate) as duedate, + MIN(mrpplannedorders.mrpdate) as mrpdate, + COUNT(*) AS consolidatedcount, + stockmaster.stockid, + stockmaster.description, + stockmaster.mbflag, + stockmaster.decimalplaces, + stockmaster.actualcost, + (stockmaster.materialcost + stockmaster.labourcost + stockmaster.overheadcost ) as computedcost + FROM mrpplannedorders + INNER JOIN stockmaster + ON mrpplannedorders.part = stockmaster.stockid + WHERE stockmaster.mbflag IN ('B','P') " . $WhereDate . " GROUP BY mrpplannedorders.part, - yearmonth, - stockmaster.stockid, - stockmaster.description, - stockmaster.mbflag, - stockmaster.decimalplaces, - stockmaster.actualcost, - stockmaster.materialcost, - stockmaster.labourcost, - stockmaster.overheadcost, - computedcost - ORDER BY mrpplannedorders.part,yearmonth "; + yearmonth, + stockmaster.stockid, + stockmaster.description, + stockmaster.mbflag, + stockmaster.decimalplaces, + stockmaster.actualcost, + stockmaster.materialcost, + stockmaster.labourcost, + stockmaster.overheadcost, + computedcost + ORDER BY mrpplannedorders.part,yearmonth"; } $result = DB_query($sql,'','',false,true); @@ -110,7 +111,7 @@ echo '<br />' . $sql; } include('includes/footer.php'); - exit; + exit; } if (DB_num_rows($result)==0){ //then there is nothing to print @@ -125,12 +126,13 @@ if (isset($_POST['PrintPDF'])) { // Print planned purchase orders include('includes/PDFStarter.php'); + $pdf->addInfo('Title',_('MRP Planned Purchase Orders Report')); $pdf->addInfo('Subject',_('MRP Planned Purchase Orders')); + $FontSize=9; $PageNumber=1; $line_height=12; - $Xpos = $Left_Margin+1; PrintHeader($pdf,$YPos,$PageNumber,$Page_Height,$Top_Margin,$Left_Margin, @@ -140,30 +142,30 @@ $fill = false; $pdf->SetFillColor(224,235,255); // Defines color to make alternating lines highlighted $FontSize=8; - $holdpart = ' '; - $holddescription = ' '; - $holdmbflag = ' '; - $holdcost = ' '; - $holddecimalplaces = 0; - $totalpartqty = 0; - $totalpartcost = 0; - $Total_Extcost = 0; + $HoldPart = ' '; + $HoldDescription = ' '; + $HoldMBFlag = ' '; + $HoldCost = ' '; + $HoldDecimalPlaces = 0; + $TotalPartQty = 0; + $TotalPartCost = 0; + $Total_ExtCost = 0; while ($myrow = DB_fetch_array($result)){ $YPos -=$line_height; // Print information on part break - if ($Partctr > 0 AND $holdpart != $myrow['part']) { - $pdf->addTextWrap(50,$YPos,130,$FontSize,$holddescription,'',0,$fill); + if ($Partctr > 0 AND $HoldPart != $myrow['part']) { + $pdf->addTextWrap(50,$YPos,130,$FontSize,$HoldDescription,'',0,$fill); $pdf->addTextWrap(180,$YPos,50,$FontSize,_('Unit Cost: '),'center',0,$fill); - $pdf->addTextWrap(220,$YPos,40,$FontSize,locale_number_format($holdcost,$_SESSION['CompanyRecord']['decimalplaces']),'right',0,$fill); - $pdf->addTextWrap(260,$YPos,50,$FontSize,locale_number_format($totalpartqty, $holddecimalplaces),'right',0,$fill); - $pdf->addTextWrap(310,$YPos,60,$FontSize,locale_number_format($totalpartcost,$_SESSION['CompanyRecord']['decimalplaces']),'right',0,$fill); + $pdf->addTextWrap(220,$YPos,40,$FontSize,locale_number_format($HoldCost,$_SESSION['CompanyRecord']['decimalplaces']),'right',0,$fill); + $pdf->addTextWrap(260,$YPos,50,$FontSize,locale_number_format($TotalPartQty, $HoldDecimalPlaces),'right',0,$fill); + $pdf->addTextWrap(310,$YPos,60,$FontSize,locale_number_format($TotalPartCost,$_SESSION['CompanyRecord']['decimalplaces']),'right',0,$fill); $pdf->addTextWrap(370,$YPos,30,$FontSize,_('M/B: '),'right',0,$fill); - $pdf->addTextWrap(400,$YPos,15,$FontSize,$holdmbflag,'right',0,$fill); + $pdf->addTextWrap(400,$YPos,15,$FontSize,$HoldMBFlag,'right',0,$fill); // Get and print supplier info for part - list($lastdate,$lastsupplier,$preferredsupplier) = GetPartInfo($holdpart); + list($lastdate,$lastsupplier,$preferredsupplier) = GetPartInfo($HoldPart); $displaydate = $lastdate; if (!Is_Date($lastdate)) { @@ -177,8 +179,8 @@ $pdf->addTextWrap(250,$YPos,60,$FontSize,$lastsupplier,'left',0,$fill); $pdf->addTextWrap(310,$YPos,120,$FontSize,_('Preferred Supplier: '),'left',0,$fill); $pdf->addTextWrap(430,$YPos,60,$FontSize,$preferredsupplier,'left',0,$fill); - $totalpartcost = 0; - $totalpartqty = 0; + $TotalPartCost = 0; + $TotalPartQty = 0; $YPos -= (2*$line_height); // Use to alternate between lines with transparent and painted background @@ -188,17 +190,14 @@ } // Parameters for addTextWrap are defined in /includes/class.pdf.php - // 1) X position 2) Y position 3) Width - // 4) Height 5) Text 6) Alignment 7) Border 8) Fill - True to use SetFillColor - // and False to set to transparent $FormatedSupDueDate = ConvertSQLDate($myrow['duedate']); $FormatedSupMRPDate = ConvertSQLDate($myrow['mrpdate']); - $extcost = $myrow['supplyquantity'] * $myrow['computedcost']; + $ExtCost = $myrow['supplyquantity'] * $myrow['computedcost']; $pdf->addTextWrap($Left_Margin,$YPos,110,$FontSize,$myrow['part'],'',0,$fill); $pdf->addTextWrap(150,$YPos,50,$FontSize,$FormatedSupDueDate,'right',0,$fill); $pdf->addTextWrap(200,$YPos,60,$FontSize,$FormatedSupMRPDate,'right',0,$fill); - $pdf->addTextWrap(260,$YPos,50,$FontSize,locale_number_format($myrow['supplyquantity'],$myrow['decimalplaces']),'right',0,$fill); - $pdf->addTextWrap(310,$YPos,60,$FontSize,locale_number_format($extcost,$_SESSION['CompanyRecord']['decimalplaces']),'right',0,$fill); + $pdf->addTextWrap(260,$YPos,50,$FontSize,locale_number_format($myrow['supplyquantity'], $myrow['decimalplaces']),'right',0,$fill); + $pdf->addTextWrap(310,$YPos,60,$FontSize,locale_number_format($ExtCost,$_SESSION['CompanyRecord']['decimalplaces']),'right',0,$fill); if ($_POST['Consolidation'] == 'None'){ $pdf->addTextWrap(370,$YPos,80,$FontSize,$myrow['ordertype'],'right',0,$fill); @@ -207,35 +206,35 @@ $pdf->addTextWrap(370,$YPos,100,$FontSize,$myrow['consolidatedcount'],'right',0,$fill); } - $holddescription = $myrow['description']; - $holdpart = $myrow['part']; - $holdmbflag = $myrow['mbflag']; - $holdcost = $myrow['computedcost']; - $holddecimalplaces = $myrow['decimalplaces']; - $totalpartcost += $extcost; - $totalpartqty += $myrow['supplyquantity']; + $HoldDescription = $myrow['description']; + $HoldPart = $myrow['part']; + $HoldMBFlag = $myrow['mbflag']; + $HoldCost = $myrow['computedcost']; + $HoldDecimalPlaces = $myrow['decimalplaces']; + $TotalPartCost += $ExtCost; + $TotalPartQty += $myrow['supplyquantity']; - $Total_Extcost += $extcost; + $Total_ExtCost += $ExtCost; $Partctr++; if ($YPos < $Bottom_Margin + $line_height){ - PrintHeader($pdf,$YPos,$PageNumber,$Page_Height,$Top_Margin,$Left_Margin,$Page_Width, - $Right_Margin,$_POST['Consolidation'],$ReportDate); + PrintHeader($pdf,$YPos,$PageNumber,$Page_Height,$Top_Margin,$Left_Margin,$Page_Width, + $Right_Margin,$_POST['Consolidation'],$ReportDate); } } /*end while loop */ // Print summary information for last part $YPos -=$line_height; - $pdf->addTextWrap(50,$YPos,130,$FontSize,$holddescription,'',0,$fill); + $pdf->addTextWrap(50,$YPos,130,$FontSize,$HoldDescription,'',0,$fill); $pdf->addTextWrap(180,$YPos,50,$FontSize,_('Unit Cost: '),'center',0,$fill); - $pdf->addTextWrap(220,$YPos,40,$FontSize,locale_number_format($holdcost,$_SESSION['CompanyRecord']['decimalplaces']),'right',0,$fill); - $pdf->addTextWrap(260,$YPos,50,$FontSize,locale_number_format($totalpartqty,$holddecimalplaces),'right',0,$fill); - $pdf->addTextWrap(310,$YPos,60,$FontSize,locale_number_format($totalpartcost,$_SESSION['CompanyRecord']['decimalplaces']),'right',0,$fill); + $pdf->addTextWrap(220,$YPos,40,$FontSize,locale_number_format($HoldCost,$_SESSION['CompanyRecord']['decimalplaces']),'right',0,$fill); + $pdf->addTextWrap(260,$YPos,50,$FontSize,locale_number_format($TotalPartQty,$HoldDecimalPlaces),'right',0,$fill); + $pdf->addTextWrap(310,$YPos,60,$FontSize,locale_number_format($TotalPartCost,$_SESSION['CompanyRecord']['decimalplaces']),'right',0,$fill); $pdf->addTextWrap(370,$YPos,30,$FontSize,_('M/B: '),'right',0,$fill); - $pdf->addTextWrap(400,$YPos,15,$FontSize,$holdmbflag,'right',0,$fill); + $pdf->addTextWrap(400,$YPos,15,$FontSize,$HoldMBFlag,'right',0,$fill); // Get and print supplier info for part - list($lastdate,$lastsupplier,$preferredsupplier) = GetPartInfo($holdpart); + list($lastdate,$lastsupplier,$preferredsupplier) = GetPartInfo($HoldPart); $displaydate = $lastdate; if (!Is_Date($lastdate)) { @@ -261,7 +260,7 @@ $pdf->addTextWrap($Left_Margin,$YPos,120,$FontSize,_('Number of Purchase Orders: '), 'left'); $pdf->addTextWrap(150,$YPos,30,$FontSize,$Partctr, 'left'); $pdf->addTextWrap(200,$YPos,100,$FontSize,_('Total Extended Cost:'), 'right'); - $DisplayTotalVal = locale_number_format($Total_Extcost,$_SESSION['CompanyRecord']['decimalplaces']); + $DisplayTotalVal = locale_number_format($Total_ExtCost,$_SESSION['CompanyRecord']['decimalplaces']); $pdf->addTextWrap(310,$YPos,60,$FontSize,$DisplayTotalVal, 'right'); $pdf->OutputD($_SESSION['DatabaseName'] . '_MRP_Planned_Purchase_Orders_' . Date('Y-m-d') . '.pdf'); @@ -285,7 +284,7 @@ </th> </tr> <tr> - <th> </th> + <th></th> <th>' . _('Code') . '</th> <th>' . _('Description') . '</th> <th>' . _('MRP Date') . '</th> @@ -301,8 +300,8 @@ $Total_ExtCost = 0; $j=1; //row ID $k=0; //row colour counter + while ($myrow = DB_fetch_array($result)){ - // Alternate row color if ($k==1){ echo '<tr class="EvenTableRows">'; @@ -327,7 +326,7 @@ echo '<td class="number">' . $myrow['consolidatedcount'] . '</td>'; } else { - echo '<td> </td>'; // Last cell blank when Consolidation is None. + echo '<td></td>'; // Empty cell when Consolidation is None. } echo '</tr>'; @@ -383,7 +382,7 @@ <tr> <td>' . _('Cut Off Date') . ':</td> <td> - <input type ="text" required="required" class="date" alt="'.$_SESSION['DefaultDateFormat'] . '" name="cutoffdate" size="10" value="'.date($_SESSION['DefaultDateFormat']).'" /> + <input type ="text" required="required" class="date" alt="' . $_SESSION['DefaultDateFormat'] . '" name="cutoffdate" autofocus="autofocus" size="10" value="' . date($_SESSION['DefaultDateFormat']) . '" /> </td> </tr> </table> Modified: trunk/MRPPlannedWorkOrders.php =================================================================== --- trunk/MRPPlannedWorkOrders.php 2018-02-05 21:42:09 UTC (rev 7938) +++ trunk/MRPPlannedWorkOrders.php 2018-02-06 19:49:24 UTC (rev 7939) @@ -7,15 +7,17 @@ $sql = "SELECT TABLE_NAME FROM information_schema.tables WHERE TABLE_SCHEMA = '" . $_SESSION['DatabaseName'] . "' AND TABLE_NAME = 'mrprequirements'"; $result=DB_query($sql); + if (DB_num_rows($result)==0) { $Title=_('MRP error'); include('includes/header.php'); echo '<br />'; prnMsg( _('The MRP calculation must be run before you can run this report') . '<br />' . - _('To run the MRP calculation click').' ' . '<a href="' . $RootPath . '/MRP.php">' . _('here') . '</a>', 'error'); + _('To run the MRP calculation click') . ' ' . '<a href="' . $RootPath . '/MRP.php">' . _('here') . '</a>', 'error'); include('includes/footer.php'); exit; } + if ( isset($_POST['PrintPDF']) OR isset($_POST['Review']) ) { $WhereDate = ' '; @@ -28,89 +30,90 @@ if ($_POST['Consolidation'] == 'None') { $sql = "SELECT mrpplannedorders.*, - stockmaster.stockid, - stockmaster.description, - stockmaster.mbflag, - stockmaster.decimalplaces, - stockmaster.actualcost, - (stockmaster.materialcost + stockmaster.labourcost + - stockmaster.overheadcost ) as computedcost - FROM mrpplannedorders, stockmaster - WHERE mrpplannedorders.part = stockmaster.stockid " . $WhereDate . " - AND stockmaster.mbflag = 'M' + stockmaster.stockid, + stockmaster.description, + stockmaster.mbflag, + stockmaster.decimalplaces, + stockmaster.actualcost, + (stockmaster.materialcost + stockmaster.labourcost + stockmaster.overheadcost ) as computedcost + FROM mrpplannedorders + INNER JOIN stockmaster + ON mrpplannedorders.part = stockmaster.stockid + WHERE stockmaster.mbflag = 'M' " . $WhereDate . " ORDER BY mrpplannedorders.part,mrpplannedorders.duedate"; } elseif ($_POST['Consolidation'] == 'Weekly') { $sql = "SELECT mrpplannedorders.part, - SUM(mrpplannedorders.supplyquantity) as supplyquantity, - TRUNCATE(((TO_DAYS(duedate) - TO_DAYS(CURRENT_DATE)) / 7),0) AS weekindex, - MIN(mrpplannedorders.duedate) as duedate, - MIN(mrpplannedorders.mrpdate) as mrpdate, - COUNT(*) AS consolidatedcount, - stockmaster.stockid, - stockmaster.description, - stockmaster.mbflag, - stockmaster.decimalplaces, - stockmaster.actualcost, - (stockmaster.materialcost + stockmaster.labourcost + - stockmaster.overheadcost ) as computedcost - FROM mrpplannedorders, stockmaster - WHERE mrpplannedorders.part = stockmaster.stockid " . $WhereDate . " - AND stockmaster.mbflag = 'M' + SUM(mrpplannedorders.supplyquantity) as supplyquantity, + TRUNCATE(((TO_DAYS(duedate) - TO_DAYS(CURRENT_DATE)) / 7),0) AS weekindex, + MIN(mrpplannedorders.duedate) as duedate, + MIN(mrpplannedorders.mrpdate) as mrpdate, + COUNT(*) AS consolidatedcount, + stockmaster.stockid, + stockmaster.description, + stockmaster.mbflag, + stockmaster.decimalplaces, + stockmaster.actualcost, + (stockmaster.materialcost + stockmaster.labourcost + stockmaster.overheadcost ) as computedcost + FROM mrpplannedorders + INNER JOIN stockmaster + ON mrpplannedorders.part = stockmaster.stockid + WHERE stockmaster.mbflag = 'M' " . $WhereDate . " GROUP BY mrpplannedorders.part, - weekindex, - stockmaster.stockid, - stockmaster.description, - stockmaster.mbflag, - stockmaster.decimalplaces, - stockmaster.actualcost, - stockmaster.materialcost, - stockmaster.labourcost, - stockmaster.overheadcost, - computedcost + weekindex, + stockmaster.stockid, + stockmaster.description, + stockmaster.mbflag, + stockmaster.decimalplaces, + stockmaster.actualcost, + stockmaster.materialcost, + stockmaster.labourcost, + stockmaster.overheadcost, + computedcost ORDER BY mrpplannedorders.part,weekindex"; } else { // This else consolidates by month $sql = "SELECT mrpplannedorders.part, - SUM(mrpplannedorders.supplyquantity) as supplyquantity, - EXTRACT(YEAR_MONTH from duedate) AS yearmonth, - MIN(mrpplannedorders.duedate) as duedate, - MIN(mrpplannedorders.mrpdate) as mrpdate, - COUNT(*) AS consolidatedcount, - stockmaster.stockid, - stockmaster.description, - stockmaster.mbflag, - stockmaster.decimalplaces, - stockmaster.actualcost, - (stockmaster.materialcost + stockmaster.labourcost + - stockmaster.overheadcost ) as computedcost - FROM mrpplannedorders, stockmaster - WHERE mrpplannedorders.part = stockmaster.stockid " . $WhereDate . " - AND stockmaster.mbflag = 'M' + SUM(mrpplannedorders.supplyquantity) as supplyquantity, + EXTRACT(YEAR_MONTH from duedate) AS yearmonth, + MIN(mrpplannedorders.duedate) as duedate, + MIN(mrpplannedorders.mrpdate) as mrpdate, + COUNT(*) AS consolidatedcount, + stockmaster.stockid, + stockmaster.description, + stockmaster.mbflag, + stockmaster.decimalplaces, + stockmaster.actualcost, + (stockmaster.materialcost + stockmaster.labourcost + stockmaster.overheadcost ) as computedcost + FROM mrpplannedorders + INNER JOIN stockmaster + ON mrpplannedorders.part = stockmaster.stockid + WHERE stockmaster.mbflag = 'M' " . $WhereDate . " GROUP BY mrpplannedorders.part, - yearmonth, - stockmaster.stockid, - stockmaster.description, - stockmaster.mbflag, - stockmaster.decimalplaces, - stockmaster.actualcost, - stockmaster.materialcost, - stockmaster.labourcost, - stockmaster.overheadcost, - computedcost + yearmonth, + stockmaster.stockid, + stockmaster.description, + stockmaster.mbflag, + stockmaster.decimalplaces, + stockmaster.actualcost, + stockmaster.materialcost, + stockmaster.labourcost, + stockmaster.overheadcost, + computedcost ORDER BY mrpplannedorders.part,yearmonth"; } $result = DB_query($sql,'','',false,true); if (DB_error_no() !=0) { - $Title = _('MRP Planned Work Orders') . ' - ' . _('Problem Report'); - include('includes/header.php'); - prnMsg( _('The MRP planned work orders 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.php'); - exit; + $Title = _('MRP Planned Work Orders') . ' - ' . _('Problem Report'); + include('includes/header.php'); + prnMsg( _('The MRP planned work orders 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.php'); + exit; } + if (DB_num_rows($result)==0){ //then there is nothing to print $Title = _('MRP Planned Work Orders'); include('includes/header.php'); @@ -149,63 +152,59 @@ $Total_ExtCost = 0; while ($myrow = DB_fetch_array($result)){ - $YPos -=$line_height; + $YPos -=$line_height; - // Print information on part break - if ($Partctr > 0 AND $HoldPart != $myrow['part']) { - $pdf->addTextWrap(50,$YPos,130,$FontSize,$HoldDescription,'',0,$fill); - $pdf->addTextWrap(180,$YPos,50,$FontSize,_('Unit Cost: '),'center',0,$fill); - $pdf->addTextWrap(220,$YPos,40,$FontSize,locale_number_format($HoldCost,$_SESSION['CompanyRecord']['decimalplaces']),'right',0,$fill); - $pdf->addTextWrap(260,$YPos,50,$FontSize,locale_number_format($TotalPartQty, $HoldDecimalPlaces),'right',0,$fill); - $pdf->addTextWrap(310,$YPos,60,$FontSize,locale_number_format($TotalPartCost,$_SESSION['CompanyRecord']['decimalplaces']),'right',0,$fill); - $pdf->addTextWrap(370,$YPos,30,$FontSize,_('M/B: '),'right',0,$fill); - $pdf->addTextWrap(400,$YPos,15,$FontSize,$HoldMBFlag,'right',0,$fill); - $TotalPartCost = 0; - $TotalPartQty = 0; - $YPos -= (2*$line_height); + // Print information on part break + if ($Partctr > 0 AND $HoldPart != $myrow['part']) { + $pdf->addTextWrap(50,$YPos,130,$FontSize,$HoldDescription,'',0,$fill); + $pdf->addTextWrap(180,$YPos,50,$FontSize,_('Unit Cost: '),'center',0,$fill); + $pdf->addTextWrap(220,$YPos,40,$FontSize,locale_number_format($HoldCost,$_SESSION['CompanyRecord']['decimalplaces']),'right',0,$fill); + $pdf->addTextWrap(260,$YPos,50,$FontSize,locale_number_format($TotalPartQty, $HoldDecimalPlaces),'right',0,$fill); + $pdf->addTextWrap(310,$YPos,60,$FontSize,locale_number_format($TotalPartCost,$_SESSION['CompanyRecord']['decimalplaces']),'right',0,$fill); + $pdf->addTextWrap(370,$YPos,30,$FontSize,_('M/B: '),'right',0,$fill); + $pdf->addTextWrap(400,$YPos,15,$FontSize,$HoldMBFlag,'right',0,$fill); + $TotalPartCost = 0; + $TotalPartQty = 0; + $YPos -= (2*$line_height); - // Use to alternate between lines with transparent and painted background - if ($_POST['Fill'] == 'yes'){ - $fill=!$fill; - } + // Use to alternate between lines with transparent and painted background + if ($_POST['Fill'] == 'yes'){ + $fill=!$fill; } + } - // Parameters for addTextWrap are defined in /includes/class.pdf.php - // 1) X position 2) Y position 3) Width - // 4) Height 5) Text 6) Alignment 7) Border 8) Fill - True to use SetFillColor - // and False to set to transparent - $FormatedSupDueDate = ConvertSQLDate($myrow['duedate']); - $FormatedSupMRPDate = ConvertSQLDate($myrow['mrpdate']); - $ExtCost = $myrow['supplyquantity'] * $myrow['computedcost']; - $pdf->addTextWrap($Left_Margin,$YPos,110,$FontSize,$myrow['part'],'',0,$fill); - $pdf->addTextWrap(150,$YPos,50,$FontSize,$FormatedSupDueDate,'right',0,$fill); - $pdf->addTextWrap(200,$YPos,60,$FontSize,$FormatedSupMRPDate,'right',0,$fill); - $pdf->addTextWrap(260,$YPos,50,$FontSize,locale_number_format($myrow['supplyquantity'], $myrow['decimalplaces']),'right',0,$fill); - $pdf->addTextWrap(310,$YPos,60,$FontSize,locale_number_format($ExtCost,$_SESSION['CompanyRecord']['decimalplaces']),'right',0,$fill); + // Parameters for addTextWrap are defined in /includes/class.pdf.php + $FormatedSupDueDate = ConvertSQLDate($myrow['duedate']); + $FormatedSupMRPDate = ConvertSQLDate($myrow['mrpdate']); + $ExtCost = $myrow['supplyquantity'] * $myrow['computedcost']; + $pdf->addTextWrap($Left_Margin,$YPos,110,$FontSize,$myrow['part'],'',0,$fill); + $pdf->addTextWrap(150,$YPos,50,$FontSize,$FormatedSupDueDate,'right',0,$fill); + $pdf->addTextWrap(200,$YPos,60,$FontSize,$FormatedSupMRPDate,'right',0,$fill); + $pdf->addTextWrap(260,$YPos,50,$FontSize,locale_number_format($myrow['supplyquantity'], $myrow['decimalplaces']),'right',0,$fill); + $pdf->addTextWrap(310,$YPos,60,$FontSize,locale_number_format($ExtCost,$_SESSION['CompanyRecord']['decimalplaces']),'right',0,$fill); - if ($_POST['Consolidation'] == 'None'){ - $pdf->addTextWrap(370,$YPos,80,$FontSize,$myrow['ordertype'],'right',0,$fill); - $pdf->addTextWrap(450,$YPos,80,$FontSize,$myrow['orderno'],'right',0,$fill); - } else { - $pdf->addTextWrap(370,$YPos,100,$FontSize,$myrow['consolidatedcount'],'right',0,$fill); - } + if ($_POST['Consolidation'] == 'None'){ + $pdf->addTextWrap(370,$YPos,80,$FontSize,$myrow['ordertype'],'right',0,$fill); + $pdf->addTextWrap(450,$YPos,80,$FontSize,$myrow['orderno'],'right',0,$fill); + } else { + $pdf->addTextWrap(370,$YPos,100,$FontSize,$myrow['consolidatedcount'],'right',0,$fill); + } - $HoldDescription = $myrow['description']; - $HoldPart = $myrow['part']; - $HoldMBFlag = $myrow['mbflag']; - $HoldCost = $myrow['computedcost']; - $HoldDecimalPlaces = $myrow['decimalplaces']; - $TotalPartCost += $ExtCost; - $TotalPartQty += $myrow['supplyquantity']; + $HoldDescription = $myrow['description']; + $HoldPart = $myrow['part']; + $HoldMBFlag = $myrow['mbflag']; + $HoldCost = $myrow['computedcost']; + $HoldDecimalPlaces = $myrow['decimalplaces']; + $TotalPartCost += $ExtCost; + $TotalPartQty += $myrow['supplyquantity']; - $Total_ExtCost += $ExtCost; - $Partctr++; + $Total_ExtCost += $ExtCost; + $Partctr++; - if ($YPos < $Bottom_Margin + $line_height){ - PrintHeader($pdf,$YPos,$PageNumber,$Page_Height,$Top_Margin,$Left_Margin,$Page_Width, - $Right_Margin,$_POST['Consolidation'],$ReportDate); - // include('includes/MRPPlannedWorkOrdersPageHeader.inc'); - } + if ($YPos < $Bottom_Margin + $line_height){ + PrintHeader($pdf,$YPos,$PageNumber,$Page_Height,$Top_Margin,$Left_Margin,$Page_Width, + $Right_Margin,$_POST['Consolidation'],$ReportDate); + } } /*end while loop */ // Print summary information for last part @@ -221,9 +220,8 @@ $YPos -= (2*$line_height); if ($YPos < $Bottom_Margin + $line_height){ - PrintHeader($pdf,$YPos,$PageNumber,$Page_Height,$Top_Margin,$Left_Margin,$Page_Width, - $Right_Margin,$_POST['Consolidation'],$ReportDate); - // include('includes/MRPPlannedWorkOrdersPageHeader.inc'); + PrintHeader($pdf,$YPos,$PageNumber,$Page_Height,$Top_Margin,$Left_Margin,$Page_Width, + $Right_Margin,$_POST['Consolidation'],$ReportDate); } /*Print out the grand totals */ @@ -235,6 +233,7 @@ $pdf->OutputD($_SESSION['DatabaseName'] . '_MRP_Planned_Work_Orders_' . Date('Y-m-d') . '.pdf'); $pdf->__destruct(); + } else { // Review planned work orders $Title = _('Review/Convert MRP Planned Work Orders'); @@ -242,13 +241,17 @@ echo '<p class="page_title_text"> <img src="'.$RootPath.'/css/'.$Theme.'/images/inventory.png" title="' . _('Inventory') . '" alt="" />' . ' ' . $Title . '</p>'; - echo '<form action="MRPConvertWorkOrders.php" method="post">'; - echo '<div>'; - echo '<input type="hidden" name="FormID" value="' . $_SESSION['FormID'] . '" />'; - echo '<table class="selection">'; - echo '<tr><th colspan="9"><h3>' . _('Consolidation') . ': ' . $_POST['Consolidation'] . - " " . _('Cutoff Date') . ': ' . $_POST['cutoffdate'] . '</h3></th></tr>'; - echo '<tr> + echo '<form action="MRPConvertWorkOrders.php" method="post"> + <div> + <input type="hidden" name="FormID" value="' . $_SESSION['FormID'] . '" /> + <table class="selection"> + <tr> + <th colspan="9"> + <h3>' . _('Consolidation') . ': ' . $_POST['Consolidation'] . ' ' + . _('Cutoff Date') . ': ' . $_POST['cutoffdate'] . '</h3> + </th> + </tr> + <tr> <th></th> <th>' . _('Code') . '</th> <th>' . _('Description') . '</th> @@ -265,8 +268,8 @@ $Total_ExtCost = 0; $j=1; //row ID $k=0; //row colour counter + while ($myrow = DB_fetch_array($result)){ - // Alternate row color if ($k==1){ echo '<tr class="EvenTableRows">'; @@ -276,8 +279,8 @@ $k++; } - echo '<td><a href="' . $RootPath . '/WorkOrderEntry.php?NewItem=' . $myrow['part'] . '&ReqQty=' . $myrow['supplyquantity'] . '&ReqDate=' . $myrow['duedate'] . '&StartDate=' . $myrow['mrpdate'] . '">' . _('Convert') . '</a></td> - <td>' . '<a href="' . $RootPath . '/SelectProduct.php?StockID=' . $myrow['part'] . '">' . $myrow['part'] . '</a>' . '<input type="hidden" name="' . $j . '_part" value="' . $myrow['part']. '" /></td> + echo '<td><a href="' . $RootPath . '/WorkOrderEntry.php?NewItem=' . urlencode($myrow['part']) . '&ReqQty=' . urlencode($myrow['supplyquantity']) . '&ReqDate=' . urlencode($myrow['duedate']) . '&StartDate=' . urlencode($myrow['mrpdate']) . '">' . _('Convert') . '</a></td> + <td>' . '<a href="' . $RootPath . '/SelectProduct.php?StockID=' . urlencode($myrow['part']) . '">' . $myrow['part'] . '</a>' . '<input type="hidden" name="' . $j . '_part" value="' . $myrow['part']. '" /></td> <td>' . $myrow['description'] . '</td> <td>' . ConvertSQLDate($myrow['mrpdate']) . '</td> <td>' . ConvertSQLDate($myrow['duedate']) . '</td> @@ -288,6 +291,9 @@ if ($_POST['Consolidation']!='None') { echo '<td class="number">' . $myrow['consolidatedcount'] . '</td>'; } + else { + echo '<td></td>'; // Empty cell when Consolidation is None. + } echo '</tr>'; $j++; @@ -297,18 +303,17 @@ // Print out the grand totals echo '<tr> - <td colspan="4" class="number">' . _('Number of Work Orders') .': ' . ($j-1) . '</td> + <td colspan="3" class="number">' . _('Number of Work Orders') .': ' . ($j-1) . '</td> <td colspan="4" class="number">' . _('Total Extended Cost') . ': ' . locale_number_format($Total_ExtCost,$_SESSION['CompanyRecord']['decimalplaces']) . '</td> </tr> - </table>'; - echo '</div> - </form>'; + </table> + </div> + </form>'; echo '<br /><a href="' . $RootPath . '/index.php">' . _('Back to the menu') . '</a>'; include('includes/footer.php'); - } - + } // end Review planned work orders } else { /*The option to print PDF was not hit so display form */ $Title=_('MRP Planned Work Orders Reporting'); @@ -316,35 +321,42 @@ echo '<p class="page_title_text"> <img src="'.$RootPath.'/css/'.$Theme.'/images/inventory.png" title="' . _('Inventory') . '" alt="" />' . ' ' . $Title . '</p>'; - echo '<br /><br /><form action="' . htmlspecialchars($_SERVER['PHP_SELF'],ENT_QUOTES,'UTF-8') . '" method="post">'; - echo '<div>'; - echo '<input type="hidden" name="FormID" value="' . $_SESSION['FormID'] . '" />'; - echo '<table class="selection">'; - echo '<tr> - <td>' . _('Consolidation') . ':</td> - <td><select required="required" name="Consolidation"> - <option selected="selected" value="None">' . _('None') . '</option> - <option value="Weekly">' . _('Weekly') . '</option> - <option value="Monthly">' . _('Monthly') . '</option> - </select></td> - </tr> - <tr> - <td>' . _('Print Option') . ':</td> - <td><select name="Fill"> - <option selected="selected" value="yes">' . _('Print With Alternating Highlighted Lines') . '</option> - <option value="no">' . _('Plain Print') . '</option> - </select></td> - </tr> - <tr> - <td>' . _('Cut Off Date') . ':</td> - <td><input type ="text" class="date" alt="' .$_SESSION['DefaultDateFormat'] .'" name="cutoffdate" required="required" autofocus="autofocus" size="10" value="' .date($_SESSION['DefaultDateFormat']).'" /></td> - </tr> - </table> - <div class="centre"> - <input type="submit" name="Review" value="' . _('Review') . '" /> <input type="submit" name="PrintPDF" value="' . _('Print PDF') . '" /> - </div> - </div> - </form>'; + echo '<br /><br /> + <form action="' . htmlspecialchars($_SERVER['PHP_SELF'],ENT_QUOTES,'UTF-8') . '" method="post"> + <div> + <input type="hidden" name="FormID" value="' . $_SESSION['FormID'] . '" /> + <table class="selection"> + <tr> + <td>' . _('Consolidation') . ':</td> + <td> + <select required="required" name="Consolidation"> + <option selected="selected" value="None">' . _('None') . '</option> + <option value="Weekly">' . _('Weekly') . '</option> + <option value="Monthly">' . _('Monthly') . '</option> + </select> + </td> + </tr> + <tr> + <td>' . _('Print Option') . ':</td> + <td> + <select name="Fill"> + <option selected="selected" value="yes">' . _('Print With Alternating Highlighted Lines') . '</option> + <option value="no">' . _('Plain Print') . '</option> + </select> + </td> + </tr> + <tr> + <td>' . _('Cut Off Date') . ':</td> + <td> + <input type ="text" required="required" class="date" alt="' . $_SESSION['DefaultDateFormat'] . '" name="cutoffdate" autofocus="autofocus" size="10" value="' . date($_SESSION['DefaultDateFormat']) . '" /> + </td> + </tr> + </table> + <div class="centre"> + <input type="submit" name="Review" value="' . _('Review') . '" /> <input type="submit" name="PrintPDF" value="' . _('Print PDF') . '" /> + </div> + </div> + </form>'; include('includes/footer.php'); @@ -370,6 +382,7 @@ $pdf->addTextWrap($Page_Width-$Right_Margin-150,$YPos,160,$FontSize,_('Printed') . ': ' . Date($_SESSION['DefaultDateFormat']) . ' ' . _('Page') . ' ' . $PageNumber,'left'); $YPos -= $line_height; + if ($consolidation == 'None') { $displayconsolidation = _('None'); } elseif ($consolidation == 'Weekly') { @@ -377,6 +390,7 @@ } else { $displayconsolidation = _('Monthly'); } + $pdf->addTextWrap($Left_Margin,$YPos,65,$FontSize,_('Consolidation').':'); $pdf->addTextWrap(110,$YPos,40,$FontSize,$displayconsolidation); @@ -390,6 +404,7 @@ $pdf->addTextWrap(200,$YPos,60,$FontSize,_('MRP Date'), 'right'); $pdf->addTextWrap(260,$YPos,50,$FontSize,_('Quantity'), 'right'); $pdf->addTextWrap(310,$YPos,60,$FontSize,_('Ext. Cost'), 'right'); + if ($consolidation == 'None') { $pdf->addTextWrap(370,$YPos,80,$FontSize,_('Source Type'), 'right'); $pdf->addTextWrap(450,$YPos,80,$FontSize,_('Source Order'), 'right'); Modified: trunk/doc/Change.log =================================================================== --- trunk/doc/Change.log 2018-02-05 21:42:09 UTC (rev 7938) +++ trunk/doc/Change.log 2018-02-06 19:49:24 UTC (rev 7939) @@ -1,11 +1,12 @@ webERP Change Log -2/5/18 PaulT: SalesGraph.php: Rework previous 7908 implementation that caused graphing to break. (Reported broken in forums by Paul Becker: http://www.weberp.org/forum/showthread.php?tid=8071) -2/4/18 PaulT: InternalStockRequestInquiry.php: Restore ONE space to previous 7936 commit. -2/4/18 PaulT: Remove unused $db and $conn parameters from DB_Last_Insert_ID() and (where present) from DB_show_tables(), and DB_show_fields(). Also, remove any unused 'global $db' references across the code base. -2/4/18 Paul Becker (PaulT commit): MRPPlannedPurchaseOrders.php: Add capability to review planned purchase orders and add a new link to convert to a new PO. (Reported in forums: http://www.weberp.org/forum/showthread.php?tid=8061) -2/4/18 Paul Becker (PaulT commit): PrintCustOrder.php, PrintCustOrder_generic.php, PDFOrderPageHeader_generic.inc: Add units, volume, and weight info, date/signature lines, sales order details narrative, plus other minor PDF formatting. (Reported in forums: http://www.weberp.org/forum/showthread.php?tid=8048) -2/4/18 PaulT: Remove unused $db parameter from DB_fetch_array() and DB_Query() functions. Also, rename several DB_Query names to match function definition name: DB_query. +6/2/18 MRPPlannedPurchasekOrders.php, MRPPlannedWorkOrders.php: PaulT: Add missing table cell to work orders to match recent change to planned purchase orders and replace 'where clause joins' with table join in both files. Paul B/PaulT: Apply consistent code formatting between both files. (Some consistency matters reported in forums: http://www.weberp.org/forum/showthread.php?tid=8061) +5/2/18 PaulT: SalesGraph.php: Rework previous 7908 implementation that caused graphing to break. (Reported broken in forums by Paul Becker: http://www.weberp.org/forum/showthread.php?tid=8071) +4/2/18 PaulT: InternalStockRequestInquiry.php: Restore ONE space to previous 7936 commit. +4/2/18 PaulT: Remove unused $db and $conn parameters from DB_Last_Insert_ID() and (where present) from DB_show_tables(), and DB_show_fields(). Also, remove any unused 'global $db' references across the code base. +4/2/18 Paul Becker (PaulT commit): MRPPlannedPurchaseOrders.php: Add capability to review planned purchase orders and add a new link to convert to a new PO. (Reported in forums: http://www.weberp.org/forum/showthread.php?tid=8061) +4/2/18 Paul Becker (PaulT commit): PrintCustOrder.php, PrintCustOrder_generic.php, PDFOrderPageHeader_generic.inc: Add units, volume, and weight info, date/signature lines, sales order details narrative, plus other minor PDF formatting. (Reported in forums: http://www.weberp.org/forum/showthread.php?tid=8048) +4/2/18 PaulT: Remove unused $db parameter from DB_fetch_array() and DB_Query() functions. Also, rename several DB_Query names to match function definition name: DB_query. 2/2/18 PaulT: Dashboard.php: Replace due date handling with existing function. 2/2/18 PaulT: PrintCustTrans.php, PDFTransPageHeader.inc, PrintCustTransPortrait.php, PDFTransPageHeaderPortrait.inc: Add missing stock lot/serial info to landscape output to be consistent with portrait output (reported by HDeriauFF), add Due Date info to invoices (reported by Paul Becker), and (PaulT) add security checks to portrait file, layout improvements, change PDF initialization handling, and more. (A summary of all changes in this commit can be viewed here: http://www.weberp.org/forum/showthread.php?tid=8065&pid=14115#pid14115) 31/1/18 PaulT: Add a 'warning' case to getMsg(), as there is mixed use of 'warn' and 'warning' usage with prnMsg() calls. The 'warning' (before this change) defaults to an 'info' style message. |