From: <tu...@us...> - 2018-02-04 17:44:11
|
Revision: 7934 http://sourceforge.net/p/web-erp/reponame/7934 Author: turbopt Date: 2018-02-04 17:44:09 +0000 (Sun, 04 Feb 2018) Log Message: ----------- Paul Becker (PaulT merge/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) Modified Paths: -------------- trunk/PrintCustOrder.php trunk/PrintCustOrder_generic.php trunk/doc/Change.log trunk/includes/PDFOrderPageHeader_generic.inc Modified: trunk/PrintCustOrder.php =================================================================== --- trunk/PrintCustOrder.php 2018-02-04 15:57:45 UTC (rev 7933) +++ trunk/PrintCustOrder.php 2018-02-04 17:44:09 UTC (rev 7934) @@ -19,7 +19,8 @@ <br /> <br /> <table class="table_index"> - <tr><td class="menu_group_item"> + <tr> + <td class="menu_group_item"> <ul> <li><a href="'. $RootPath . '/SelectSalesOrder.php">' . _('Outstanding Sales Orders') . '</a></li> <li><a href="'. $RootPath . '/SelectCompletedOrder.php">' . _('Completed Sales Orders') . '</a></li> @@ -37,6 +38,7 @@ /*retrieve the order details from the database to print */ $ErrMsg = _('There was a problem retrieving the order header details for Order Number') . ' ' . $_GET['TransNo'] . ' ' . _('from the database'); + $sql = "SELECT salesorders.customerref, salesorders.comments, salesorders.orddate, @@ -85,10 +87,21 @@ include('includes/header.php'); echo '<div class="centre"><br /><br /><br />'; prnMsg( _('Unable to Locate Order Number') . ' : ' . $_GET['TransNo'] . ' ', 'error'); - echo '<br /><br /><br /><table class="table_index"><tr><td class="menu_group_item"> - <li><a href="'. $RootPath . '/SelectSalesOrder.php">' . _('Outstanding Sales Orders') . '</a></li> - <li><a href="'. $RootPath . '/SelectCompletedOrder.php">' . _('Completed Sales Orders') . '</a></li> - </td></tr></table></div><br /><br /><br />'; + echo '<br /> + <br /> + <br /> + <table class="table_index"> + <tr> + <td class="menu_group_item"> + <li><a href="'. $RootPath . '/SelectSalesOrder.php">' . _('Outstanding Sales Orders') . '</a></li> + <li><a href="'. $RootPath . '/SelectCompletedOrder.php">' . _('Completed Sales Orders') . '</a></li> + </td> + </tr> + </table> + </div> + <br /> + <br /> + <br />'; include('includes/footer.php'); exit(); } elseif (DB_num_rows($result)==1){ /*There is only one order header returned - thats good! */ @@ -139,7 +152,8 @@ salesorderdetails.quantity, salesorderdetails.qtyinvoiced, salesorderdetails.unitprice, - stockmaster.decimalplaces + stockmaster.decimalplaces, + stockmaster.units FROM salesorderdetails INNER JOIN stockmaster ON salesorderdetails.stkcode=stockmaster.stockid WHERE salesorderdetails.orderno='" . $_GET['TransNo'] . "'"; @@ -204,9 +218,10 @@ $DisplayPrevDel = locale_number_format($myrow2['qtyinvoiced'],$myrow2['decimalplaces']); $DisplayQtySupplied = locale_number_format($myrow2['quantity'] - $myrow2['qtyinvoiced'],$myrow2['decimalplaces']); - $LeftOvers = $pdf->addTextWrap(13,$YPos,135,$FontSize,$myrow2['stkcode']); - $LeftOvers = $pdf->addTextWrap(148,$YPos,239,$FontSize,$myrow2['description']); + $LeftOvers = $pdf->addTextWrap(13,$YPos,135,$FontSize,$myrow2['stkcode'],'left'); + $LeftOvers = $pdf->addTextWrap(148,$YPos,239,$FontSize,$myrow2['description'],'left'); $LeftOvers = $pdf->addTextWrap(387,$YPos,90,$FontSize,$DisplayQty,'right'); + $LeftOvers = $pdf->addTextWrap(475,$YPos,20,$FontSize,$myrow2['units'],'left'); $LeftOvers = $pdf->addTextWrap(505,$YPos,90,$FontSize,$DisplayQtySupplied,'right'); $LeftOvers = $pdf->addTextWrap(604,$YPos,90,$FontSize,$DisplayPrevDel,'right'); Modified: trunk/PrintCustOrder_generic.php =================================================================== --- trunk/PrintCustOrder_generic.php 2018-02-04 15:57:45 UTC (rev 7933) +++ trunk/PrintCustOrder_generic.php 2018-02-04 17:44:09 UTC (rev 7934) @@ -6,12 +6,14 @@ include('includes/session.php'); include('includes/SQL_CommonFunctions.inc'); - //Get Out if we have no order number to work with -If (!isset($_GET['TransNo']) OR $_GET['TransNo']==""){ +If (!isset($_GET['TransNo']) OR $_GET['TransNo']==''){ $Title = _('Select Order To Print'); include('includes/header.php'); - echo '<div class="centre"><br /><br /><br />'; + echo '<div class="centre"> + <br /> + <br /> + <br />'; prnMsg( _('Select an Order Number to Print before calling this page') , 'error'); echo '<br /> <br /> @@ -20,7 +22,7 @@ <tr> <td class="menu_group_item"> <ul> - <li><a href="'. $RootPath . '/SelectSalesOrder.php?">' . _('Outstanding Sales Orders') . '</a></li> + <li><a href="'. $RootPath . '/SelectSalesOrder.php">' . _('Outstanding Sales Orders') . '</a></li> <li><a href="'. $RootPath . '/SelectCompletedOrder.php">' . _('Completed Sales Orders') . '</a></li> </ul> </td> @@ -31,7 +33,7 @@ <br /> <br />'; include('includes/footer.php'); - exit(); + exit; } /*retrieve the order details from the database to print */ @@ -101,7 +103,6 @@ <br /> <br /> <br />'; - include('includes/footer.php'); exit(); } elseif (DB_num_rows($result)==1){ /*There is only one order header returned - thats good! */ @@ -143,12 +144,12 @@ /*retrieve the order details from the database to print */ -/* Then there's an order to print and its not been printed already (or its been flagged for reprinting) +/* Then there's an order to print and it has not been printed already (or its been flagged for reprinting) LETS GO */ $PaperSize = 'A4_Landscape'; include('includes/PDFStarter.php'); -//$pdf->selectFont('./fonts/Helvetica.afm'); + $pdf->addInfo('Title', _('Customer Laser Packing Slip') ); $pdf->addInfo('Subject', _('Laser Packing slip for order') . ' ' . $_GET['TransNo']); $FontSize=12; @@ -174,6 +175,9 @@ salesorderdetails.narrative, stockmaster.mbflag, stockmaster.decimalplaces, + stockmaster.grossweight, + stockmaster.volume, + stockmaster.units, stockmaster.controlled, stockmaster.serialised, pickreqdetails.qtypicked, @@ -205,10 +209,13 @@ while ($myrow2=DB_fetch_array($result)){ - $ListCount ++; + $ListCount ++; + $Volume += $myrow2['quantity'] * $myrow2['volume']; + $Weight += $myrow2['quantity'] * $myrow2['grossweight']; $DisplayQty = locale_number_format($myrow2['quantity'],$myrow2['decimalplaces']); $DisplayPrevDel = locale_number_format($myrow2['qtyinvoiced'],$myrow2['decimalplaces']); + if ($myrow2['qtypicked'] > 0) { $DisplayQtySupplied = locale_number_format($myrow2['qtypicked'], $myrow2['decimalplaces']); } else { @@ -215,15 +222,35 @@ $DisplayQtySupplied = locale_number_format($myrow2['quantity'] - $myrow2['qtyinvoiced'],$myrow2['decimalplaces']); } - $LeftOvers = $pdf->addTextWrap($XPos,$YPos,127,$FontSize,$myrow2['stkcode']); - $LeftOvers = $pdf->addTextWrap(147,$YPos,255,$FontSize,$myrow2['description']); + $LeftOvers = $pdf->addTextWrap($XPos,$YPos,127,$FontSize,$myrow2['stkcode'],'left'); + $LeftOvers = $pdf->addTextWrap(147,$YPos,255,$FontSize,$myrow2['description'],'left'); $LeftOvers = $pdf->addTextWrap(400,$YPos,85,$FontSize,$DisplayQty,'right'); - $LeftOvers = $pdf->addTextWrap(487,$YPos,70,$FontSize,$myrow2['bin'],'left'); - $LeftOvers = $pdf->addTextWrap(573,$YPos,85,$FontSize,$DisplayQtySupplied,'right'); - $LeftOvers = $pdf->addTextWrap(672,$YPos,85,$FontSize,$DisplayPrevDel,'right'); + $LeftOvers = $pdf->addTextWrap(487,$YPos,85,$FontSize,$myrow2['units'],'left'); + $LeftOvers = $pdf->addTextWrap(527,$YPos,70,$FontSize,$myrow2['bin'],'left'); + $LeftOvers = $pdf->addTextWrap(593,$YPos,85,$FontSize,$DisplayQtySupplied,'right'); + $LeftOvers = $pdf->addTextWrap(692,$YPos,85,$FontSize,$DisplayPrevDel,'right'); + if ($_SESSION['AllowOrderLineItemNarrative'] == 1) { + // Prints salesorderdetails.narrative: + $FontSize2 = $FontSize*0.8;// Font size to print salesorderdetails.narrative. + $Width2 = $Page_Width-$Right_Margin-145;// Width to print salesorderdetails.narrative. + $LeftOvers = trim($myrow2['narrative']); + //********** + $LeftOvers = str_replace('\n', ' ', $LeftOvers);// Replaces line feed character. + $LeftOvers = str_replace('\r', '', $LeftOvers);// Delete carriage return character + $LeftOvers = str_replace('\t', '', $LeftOvers);// Delete tabulator character + //********** + while (mb_strlen($LeftOvers) > 1) { + $YPos -= $FontSize2; + if ($YPos < ($Bottom_Margin)) {// Begins new page. + include ('includes/PDFOrderPageHeader_generic.inc'); + } + $LeftOvers = $pdf->addTextWrap(147, $YPos, $Width2, $FontSize2, $LeftOvers); + } + } + if ($YPos-$line_height <= 50){ - /* We reached the end of the page so finsih off the page and start a newy */ + /* We reached the end of the page so finish off the page and start a newy */ $PageNumber++; include ('includes/PDFOrderPageHeader_generic.inc'); } //end if need a new page headed up @@ -231,11 +258,12 @@ /*increment a line down for the next line item */ $YPos -= ($line_height); } + if ($myrow2['cust_part'] > '') { $LeftOvers = $pdf->addTextWrap($XPos, $YPos, 127, $FontSize, $myrow2['cust_part'], 'right'); $LeftOvers = $pdf->addTextWrap(147, $YPos, 255, $FontSize, $myrow2['cust_description']); if ($YPos - $line_height <= 50) { - /* We reached the end of the page so finsih off the page and start a newy */ + /* We reached the end of the page so finish off the page and start a newy */ $PageNumber++; include('includes/PDFOrderPageHeader_generic.php'); } //end if need a new page headed up @@ -244,6 +272,7 @@ $YPos -= ($line_height); } } + if ($myrow2['mbflag']=='A'){ /*Then its an assembly item - need to explode into it's components for packing list purposes */ $sql = "SELECT bom.component, @@ -277,6 +306,7 @@ } } //loop around all the components of the assembly } + if ($myrow2['controlled'] == '1') { $ControlLabel = _('Lot') . ':'; if ($myrow2['serialised'] == 1) { @@ -306,7 +336,19 @@ } /*end if there are order details to show on the order*/ + if ( $Copy != 'Customer' ) { + $LeftOvers = $pdf->addTextWrap(375,20,150,$FontSize,'Accepted/Received By:','left'); + $pdf->line(500,20,650,20); + $LeftOvers = $pdf->addTextWrap(675,20,50,$FontSize,'Date:','left'); + $pdf->line(710,20,785,20); + } + + $LeftOvers = $pdf->addTextWrap(17,20,100,$FontSize,'Volume: ' . round($Volume) . ' GA','left'); + $LeftOvers = $pdf->addTextWrap(147,20,200,$FontSize,'Weight: ' . round($Weight) . ' LB (approximate)','left'); + $Copy='Customer'; + $Volume = 0; + $Weight = 0; } /*end for loop to print the whole lot twice */ @@ -320,8 +362,8 @@ include('includes/footer.php'); exit; } else { - $pdf->OutputD($_SESSION['DatabaseName'] . '_PackingSlip_' . date('Y-m-d') . '.pdf'); - $pdf->__destruct(); + $pdf->OutputD($_SESSION['DatabaseName'] . '_PackingSlip_' . date('Y-m-d') . '.pdf'); + $pdf->__destruct(); $sql = "UPDATE salesorders SET printedpackingslip=1, datepackingslipprinted=CURRENT_DATE Modified: trunk/doc/Change.log =================================================================== --- trunk/doc/Change.log 2018-02-04 15:57:45 UTC (rev 7933) +++ trunk/doc/Change.log 2018-02-04 17:44:09 UTC (rev 7934) @@ -1,5 +1,6 @@ webERP Change Log +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. 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) Modified: trunk/includes/PDFOrderPageHeader_generic.inc =================================================================== --- trunk/includes/PDFOrderPageHeader_generic.inc 2018-02-04 15:57:45 UTC (rev 7933) +++ trunk/includes/PDFOrderPageHeader_generic.inc 2018-02-04 17:44:09 UTC (rev 7934) @@ -9,28 +9,29 @@ /* if the deliver blind flag is set on the order, we do not want to output the company logo */ if ($DeliverBlind < 2) { - $pdf->addJpegFromFile($_SESSION['LogoFile'],$XPos+20,520,0,60); + $pdf->addJpegFromFile($_SESSION['LogoFile'],$XPos,490,0,60); } $FontSize=18; if ($Copy=='Customer'){ - $pdf->addText($XPos-20, 500,$FontSize, _('Packing Slip') . ' - ' . _('Customer Copy') ); + $pdf->addText($XPos-40, 585,$FontSize, _('Packing Slip') . ' - ' . _('Customer Copy') ); } else { - $pdf->addText($XPos-20, 500,$FontSize, _('Packing Slip') . ' - ' . _('Office Copy') ); + $pdf->addText($XPos-40, 585,$FontSize, _('Packing Slip') . ' - ' . _('Office Copy') ); } /* if the deliver blind flag is set on the order, we do not want to output the company contact info */ if ($DeliverBlind < 2) { - $FontSize=14; + $FontSize=12; $YPos = 480; $pdf->addText($XPos, $YPos,$FontSize, $_SESSION['CompanyRecord']['coyname']); - $FontSize =8; - $pdf->addText($XPos, $YPos-12,$FontSize, $_SESSION['CompanyRecord']['regoffice1']); - $pdf->addText($XPos, $YPos-21,$FontSize, $_SESSION['CompanyRecord']['regoffice2']); - $pdf->addText($XPos, $YPos-30,$FontSize, $_SESSION['CompanyRecord']['regoffice3'] . ' ' . $_SESSION['CompanyRecord']['regoffice4'] . ' ' . $_SESSION['CompanyRecord']['regoffice5']); - $pdf->addText($XPos, $YPos-39,$FontSize, _('Ph') . ': ' . $_SESSION['CompanyRecord']['telephone'] . ' ' . _('Fax'). ': ' . $_SESSION['CompanyRecord']['fax']); - $pdf->addText($XPos, $YPos-48,$FontSize, $_SESSION['CompanyRecord']['email']); + $FontSize=10; + $pdf->addText($XPos, $YPos-14,$FontSize, $_SESSION['CompanyRecord']['regoffice1']); + $pdf->addText($XPos, $YPos-26,$FontSize, $_SESSION['CompanyRecord']['regoffice2']); + $pdf->addText($XPos, $YPos-38,$FontSize, $_SESSION['CompanyRecord']['regoffice3'] . ' ' . $_SESSION['CompanyRecord']['regoffice4'] . ' ' . $_SESSION['CompanyRecord']['regoffice5']); + $pdf->addText($XPos, $YPos-50,$FontSize, $_SESSION['CompanyRecord']['regoffice6']); + $pdf->addText($XPos, $YPos-62,$FontSize, _('Ph') . ': ' . $_SESSION['CompanyRecord']['telephone'] . ' ' . _('Fax'). ': ' . $_SESSION['CompanyRecord']['fax']); + $pdf->addText($XPos, $YPos-74,$FontSize, $_SESSION['CompanyRecord']['email']); } $XPos = 46; @@ -41,7 +42,7 @@ $pdf->addText($XPos, $YPos-15,$FontSize, $myrow['deliverto']); $pdf->addText($XPos, $YPos-30,$FontSize, $myrow['deladd1']); $pdf->addText($XPos, $YPos-45,$FontSize, $myrow['deladd2']); -$pdf->addText($XPos, $YPos-60,$FontSize, $myrow['deladd3'] . ' ' . $myrow['deladd4'] . ' ' . $myrow['deladd5'] . ' ' . $myrow['deladd6']); +$pdf->addText($XPos, $YPos-60,$FontSize, $myrow['deladd3'] . ' ' . $myrow['deladd4'] . ' ' . $myrow['deladd5'] . ' ' . $myrow['deladd6']); $YPos -= 80; @@ -49,27 +50,29 @@ $pdf->addText($XPos, $YPos-15,$FontSize, $myrow['name']); $pdf->addText($XPos, $YPos-30,$FontSize, $myrow['address1']); $pdf->addText($XPos, $YPos-45,$FontSize, $myrow['address2']); -$pdf->addText($XPos, $YPos-60,$FontSize, $myrow['address3'] . ' ' . $myrow['address4'] . ' ' . $myrow['address5']. ' ' . $myrow['address6']); +$pdf->addText($XPos, $YPos-60,$FontSize, $myrow['address3'] . ' ' . $myrow['address4'] . ' ' . $myrow['address5']. ' ' . $myrow['address6']); -$pdf->addText($XPos, $YPos-82,$FontSize, _('Customer No.'). ' : ' . $myrow['debtorno']); -$pdf->addText($XPos, $YPos-100,$FontSize, _('Shipped by'). ' : ' . $myrow['shippername']); +$pdf->addText($XPos, $YPos-82,$FontSize, _('Customer No.'). ': ' . $myrow['debtorno']); +$pdf->addText($XPos, $YPos-100,$FontSize, _('Shipped by'). ': ' . $myrow['shippername']); -$LeftOvers = $pdf->addTextWrap($XPos,$YPos-130,170,$FontSize,_('Comments').':'.stripcslashes($myrow['comments'])); +$FontSize=12; +$LeftOvers = $pdf->addTextWrap($XPos,$YPos-130,250,$FontSize,_('Comments').': '.stripcslashes($myrow['comments'])); if (mb_strlen($LeftOvers)>1){ - $LeftOvers = $pdf->addTextWrap($XPos,$YPos-145,170,$FontSize,$LeftOvers); + $LeftOvers = $pdf->addTextWrap($XPos,$YPos-145,250,$FontSize,$LeftOvers); if (mb_strlen($LeftOvers)>1){ - $LeftOvers = $pdf->addTextWrap($XPos,$YPos-160,170,$FontSize,$LeftOvers); + $LeftOvers = $pdf->addTextWrap($XPos,$YPos-160,250,$FontSize,$LeftOvers); if (mb_strlen($LeftOvers)>1){ - $LeftOvers = $pdf->addTextWrap($XPos,$YPos-175,170,$FontSize,$LeftOvers); + $LeftOvers = $pdf->addTextWrap($XPos,$YPos-175,250,$FontSize,$LeftOvers); if (mb_strlen($LeftOvers)>1){ - $LeftOvers = $pdf->addTextWrap($XPos,$YPos-180,170,$FontSize,$LeftOvers); + $LeftOvers = $pdf->addTextWrap($XPos,$YPos-180,250,$FontSize,$LeftOvers); } } } } +$FontSize=14; $pdf->addText(620, 560,$FontSize, _('Order No'). ':'); $pdf->addText(700, 560,$FontSize, $_GET['TransNo']); $pdf->addText(620, 560-15,$FontSize, _('Your Ref'). ':'); @@ -91,9 +94,10 @@ $LeftOvers = $pdf->addTextWrap($XPos,$YPos,127,$FontSize, _('Item Code'),'left'); $LeftOvers = $pdf->addTextWrap(147,$YPos,255,$FontSize, _('Item Description'),'left'); $LeftOvers = $pdf->addTextWrap(400,$YPos,85,$FontSize, _('Quantity'),'right'); -$LeftOvers = $pdf->addTextWrap(487,$YPos,70,$FontSize, _('Bin Locn'),'center'); -$LeftOvers = $pdf->addTextWrap(573,$YPos,85,$FontSize,_('This Del'),'center'); -$LeftOvers = $pdf->addTextWrap(672,$YPos,85,$FontSize, _('Prev Dels'),'center'); +$LeftOvers = $pdf->addTextWrap(487,$YPos,85,$FontSize, _('Units'),'left'); +$LeftOvers = $pdf->addTextWrap(527,$YPos,70,$FontSize, _('Bin Locn'),'left'); +$LeftOvers = $pdf->addTextWrap(593,$YPos,85,$FontSize,_('This Del'),'right'); +$LeftOvers = $pdf->addTextWrap(692,$YPos,85,$FontSize, _('Prev Dels'),'right'); $YPos -= $line_height; |