From: <dai...@us...> - 2011-05-07 00:24:46
|
Revision: 4562 http://web-erp.svn.sourceforge.net/web-erp/?rev=4562&view=rev Author: daintree Date: 2011-05-07 00:24:37 +0000 (Sat, 07 May 2011) Log Message: ----------- various Modified Paths: -------------- trunk/PrintCustTrans.php trunk/PrintCustTransPortrait.php trunk/Shipt_Select.php trunk/Stocks.php trunk/UpgradeDatabase.php trunk/doc/Change.log trunk/includes/PDFTransPageHeader.inc trunk/includes/session.inc Modified: trunk/PrintCustTrans.php =================================================================== --- trunk/PrintCustTrans.php 2011-05-03 10:05:05 UTC (rev 4561) +++ trunk/PrintCustTrans.php 2011-05-07 00:24:37 UTC (rev 4562) @@ -1,7 +1,9 @@ <?php + /* $Id$ */ -include ('includes/session.inc'); +include('includes/session.inc'); + if (isset($_GET['FromTransNo'])) { $FromTransNo = trim($_GET['FromTransNo']); } elseif (isset($_POST['FromTransNo'])) { @@ -9,43 +11,74 @@ } else { $FromTransNo = ''; } + if (isset($_GET['InvOrCredit'])) { $InvOrCredit = $_GET['InvOrCredit']; } elseif (isset($_POST['InvOrCredit'])) { $InvOrCredit = $_POST['InvOrCredit']; } + if (isset($_GET['PrintPDF'])) { $PrintPDF = TRUE; } elseif (isset($_POST['PrintPDF'])) { $PrintPDF = TRUE; } -if (!isset($_POST['ToTransNo']) or trim($_POST['ToTransNo']) == '' or $_POST['ToTransNo'] < $FromTransNo) { + +if (!isset($_POST['ToTransNo']) + or trim($_POST['ToTransNo'])=='' + or $_POST['ToTransNo'] < $FromTransNo) { + $_POST['ToTransNo'] = $FromTransNo; } + $FirstTrans = $FromTransNo; /* Need to start a new page only on subsequent transactions */ -if ($FromTransNo=='Preview') { - $FormDesign = simplexml_load_file(sys_get_temp_dir().'/SalesInvoice.xml'); -} else { - $FormDesign = simplexml_load_file($PathPrefix.'companies/'.$_SESSION['DatabaseName'].'/FormDesigns/SalesInvoice.xml'); -} -if (isset($PrintPDF) or isset($_GET['PrintPDF']) and $PrintPDF and isset($FromTransNo) and isset($InvOrCredit) and $FromTransNo != '') { - $PaperSize = $FormDesign->PaperSize; - include ('includes/PDFStarter.php'); - if ($InvOrCredit == 'Invoice') { - $pdf->addInfo('Title', _('Sales Invoice') . ' ' . $FromTransNo . ' to ' . $_POST['ToTransNo']); - $pdf->addInfo('Subject', _('Invoices from') . ' ' . $FromTransNo . ' ' . _('to') . ' ' . $_POST['ToTransNo']); + +if (isset($PrintPDF) OR isset($_GET['PrintPDF']) + AND $PrintPDF + AND isset($FromTransNo) + AND isset($InvOrCredit) + AND $FromTransNo!=''){ + + include ('includes/class.pdf.php'); + + /* This invoice is hard coded for A4 Landscape invoices or credit notes so can't use PDFStarter.inc */ + + $Page_Width=842; + $Page_Height=595; + $Top_Margin=30; + $Bottom_Margin=30; + $Left_Margin=40; + $Right_Margin=30; + + + $pdf = new Cpdf('L', 'pt', 'A4'); + $pdf->addInfo('Creator', 'webERP http://www.weberp.org'); + $pdf->addInfo('Author', 'webERP ' . $Version); + + if ($InvOrCredit=='Invoice') { + $pdf->addInfo('Title',_('Sales Invoice') . ' ' . $FromTransNo . ' to ' . $_POST['ToTransNo']); + $pdf->addInfo('Subject',_('Invoices from') . ' ' . $FromTransNo . ' ' . _('to') . ' ' . $_POST['ToTransNo']); } else { - $pdf->addInfo('Title', _('Sales Credit Note')); - $pdf->addInfo('Subject', _('Credit Notes from') . ' ' . $FromTransNo . ' ' . _('to') . ' ' . $_POST['ToTransNo']); + $pdf->addInfo('Title',_('Sales Credit Note') ); + $pdf->addInfo('Subject',_('Credit Notes from') . ' ' . $FromTransNo . ' ' . _('to') . ' ' . $_POST['ToTransNo']); } + $pdf->setAutoPageBreak(0); + $pdf->setPrintHeader(false); + $pdf->AddPage(); + $pdf->cMargin = 0; +/* END Brought from class.pdf.php constructor */ + $FirstPage = true; - $line_height = $FormDesign->LineHeight; - while ($FromTransNo <= $_POST['ToTransNo']) { - /* retrieve the invoice details from the database to print - notice that salesorder record must be present to print the invoice purging of sales orders will - nobble the invoice reprints */ - if ($InvOrCredit == 'Invoice') { + $line_height=16; + + while ($FromTransNo <= $_POST['ToTransNo']){ + + /* retrieve the invoice details from the database to print + notice that salesorder record must be present to print the invoice purging of sales orders will + nobble the invoice reprints */ + + if ($InvOrCredit=='Invoice') { $sql = "SELECT debtortrans.trandate, debtortrans.ovamount, debtortrans.ovdiscount, @@ -111,7 +144,8 @@ AND debtortrans.branchcode=custbranch.branchcode AND custbranch.salesman=salesman.salesmancode AND salesorders.fromstkloc=locations.loccode"; - if (isset($_POST['PrintEDI']) and $_POST['PrintEDI'] == 'No') { + + if (isset($_POST['PrintEDI']) and $_POST['PrintEDI']=='No') { $sql = $sql . " AND debtorsmaster.ediinvoices=0"; } } else { @@ -161,31 +195,29 @@ AND debtortrans.debtorno=custbranch.debtorno AND debtortrans.branchcode=custbranch.branchcode AND custbranch.salesman=salesman.salesmancode"; - if ($_POST['PrintEDI'] == 'No') { + + if ($_POST['PrintEDI']=='No') { $sql = $sql . " AND debtorsmaster.ediinvoices=0"; } } // end else - if ($FromTransNo!='Preview') { - $result = DB_query($sql, $db, '', '', false, false); - if (DB_error_no($db) != 0) { - $title = _('Transaction Print Error Report'); - include ('includes/header.inc'); - prnMsg(_('There was a problem retrieving the invoice or credit note details for note number') . ' ' . $InvoiceToPrint . ' ' . _('from the database') . '. ' . _('To print an invoice, the sales order record, the customer transaction record and the branch record for the customer must not have been purged') . '. ' . _('To print a credit note only requires the customer, transaction, salesman and branch records be available'), 'error'); - if ($debug == 1) { - prnMsg(_('The SQL used to get this information that failed was') . '<br />' . $sql, 'error'); - } - include ('includes/footer.inc'); - exit; + + $result=DB_query($sql, $db, '', '',false, false); + + if (DB_error_no($db)!=0) { + $title = _('Transaction Print Error Report'); + include ('includes/header.inc'); + prnMsg( _('There was a problem retrieving the invoice or credit note details for note number') . ' ' . $InvoiceToPrint . ' ' . _('from the database') . '. ' . _('To print an invoice, the sales order record, the customer transaction record and the branch record for the customer must not have been purged') . '. ' . _('To print a credit note only requires the customer, transaction, salesman and branch records be available'),'error'); + if ($debug==1) { + prnMsg (_('The SQL used to get this information that failed was') . '<br />' . $sql,'error'); } + include ('includes/footer.inc'); + exit; } - if ($FromTransNo=='Preview' or DB_num_rows($result) == 1) { - if ($FromTransNo!='Preview') { - $myrow = DB_fetch_array($result); - $ExchRate = $myrow['rate']; - } else { - $ExchRate = 'X'; - } - if ($InvOrCredit == 'Invoice') { + if (DB_num_rows($result)==1) { + $myrow = DB_fetch_array($result); + $ExchRate = $myrow['rate']; + if ($InvOrCredit=='Invoice') { + $sql = "SELECT stockmoves.stockid, stockmaster.description, -stockmoves.qty as quantity, @@ -193,16 +225,15 @@ ((1 - stockmoves.discountpercent) * stockmoves.price * " . $ExchRate . "* -stockmoves.qty) AS fxnet, (stockmoves.price * " . $ExchRate . ") AS fxprice, stockmoves.narrative, - stockmaster.units, - stockmaster.decimalplaces + stockmaster.units FROM stockmoves, stockmaster WHERE stockmoves.stockid = stockmaster.stockid AND stockmoves.type=10 - AND stockmoves.transno='" . $FromTransNo . "' + AND stockmoves.transno=" . $FromTransNo . " AND stockmoves.show_on_inv_crds=1"; } else { - /* only credit notes to be retrieved */ + /* only credit notes to be retrieved */ $sql = "SELECT stockmoves.stockid, stockmaster.description, stockmoves.qty as quantity, @@ -210,224 +241,294 @@ ((1 - stockmoves.discountpercent) * stockmoves.price * " . $ExchRate . " * stockmoves.qty) AS fxnet, (stockmoves.price * " . $ExchRate . ") AS fxprice, stockmoves.narrative, - stockmaster.units, - stockmaster.decimalplaces + stockmaster.units FROM stockmoves, stockmaster WHERE stockmoves.stockid = stockmaster.stockid AND stockmoves.type=11 - AND stockmoves.transno='" . $FromTransNo . "' + AND stockmoves.transno=" . $FromTransNo . " AND stockmoves.show_on_inv_crds=1"; } // end else - if ($FromTransNo!='Preview') { - $result = DB_query($sql, $db); - } - if (DB_error_no($db) != 0) { + + $result=DB_query($sql,$db); + if (DB_error_no($db)!=0) { $title = _('Transaction Print Error Report'); include ('includes/header.inc'); echo '<br />' . _('There was a problem retrieving the invoice or credit note stock movement details for invoice number') . ' ' . $FromTransNo . ' ' . _('from the database'); - if ($debug == 1) { - echo '<br />' . _('The SQL used to get this information that failed was') . '<br />' . $sql; + if ($debug==1) { + echo '<br />' . _('The SQL used to get this information that failed was') . '<br>' . $sql; } - include ('includes/footer.inc'); + include('includes/footer.inc'); exit; } - if ($FromTransNo=='Preview' or DB_num_rows($result) > 0) { + + if (DB_num_rows($result)>0) { + + $FontSize = 10; $PageNumber = 1; - include ('includes/PDFTransPageHeader.inc'); + + include('includes/PDFTransPageHeader.inc'); $FirstPage = False; - $YPos = $Page_Height - $FormDesign->Data->y; - $Line=1; - while (($FromTransNo=='Preview' and $Line==1) or (isset($result) and $myrow2 = DB_fetch_array($result))) { - if ($myrow2['discountpercent'] == 0) { - $DisplayDiscount = ''; + while ($myrow2=DB_fetch_array($result)) { + + if ($myrow2['discountpercent']==0) { + $DisplayDiscount =''; } else { - $DisplayDiscount = number_format($myrow2['discountpercent'] * 100, 2) . '%'; - $DiscountPrice = $myrow2['fxprice'] * (1 - $myrow2['discountpercent']); + $DisplayDiscount = number_format($myrow2['discountpercent']*100,2) . '%'; + $DiscountPrice=$myrow2['fxprice']*(1-$myrow2['discountpercent']); } - $DisplayNet = number_format($myrow2['fxnet'], 2); - $DisplayPrice = $myrow2['fxprice']; - $DisplayQty = $myrow2['quantity']; - $LeftOvers = $pdf->addTextWrap($FormDesign->Data->Column1->x, $YPos,$FormDesign->Data->Column1->Length, $FormDesign->Data->Column1->FontSize, $myrow2['stockid']); - $LeftOvers = $pdf->addTextWrap($FormDesign->Data->Column2->x, $YPos,$FormDesign->Data->Column2->Length, $FormDesign->Data->Column2->FontSize, $myrow2['description']); - $LeftOvers = $pdf->addTextWrap($FormDesign->Data->Column3->x, $YPos,$FormDesign->Data->Column3->Length, $FormDesign->Data->Column3->FontSize, number_format($DisplayPrice,4), 'right'); - $LeftOvers = $pdf->addTextWrap($FormDesign->Data->Column4->x, $YPos,$FormDesign->Data->Column4->Length, $FormDesign->Data->Column4->FontSize, number_format($DisplayQty,$myrow2['decimalplaces']), 'right'); - $LeftOvers = $pdf->addTextWrap($FormDesign->Data->Column5->x, $YPos,$FormDesign->Data->Column5->Length, $FormDesign->Data->Column5->FontSize, $myrow2['units'], 'centre'); - $LeftOvers = $pdf->addTextWrap($FormDesign->Data->Column6->x, $YPos,$FormDesign->Data->Column6->Length, $FormDesign->Data->Column6->FontSize, $DisplayDiscount, 'right'); - $LeftOvers = $pdf->addTextWrap($FormDesign->Data->Column7->x, $YPos,$FormDesign->Data->Column7->Length, $FormDesign->Data->Column7->FontSize, $DisplayNet, 'right'); - $YPos-= ($line_height); - $lines = explode('\r\n', htmlspecialchars_decode($myrow2['narrative'])); - for ($i = 0;$i < sizeOf($lines);$i++) { - while (strlen($lines[$i]) > 1) { - if ($YPos - $line_height <= $Bottom_Margin) { + $DisplayNet=number_format($myrow2['fxnet'],2); + $DisplayPrice=number_format($myrow2['fxprice'],3); + $DisplayQty=$myrow2['quantity']; + + $LeftOvers = $pdf->addTextWrap($Left_Margin+3,$YPos,95,$FontSize,$myrow2['stockid']); + $LeftOvers = $pdf->addTextWrap($Left_Margin+100,$YPos,123,$FontSize,$myrow2['description']); + $LeftOvers = $pdf->addTextWrap($Left_Margin+353,$YPos,96,$FontSize,$DisplayPrice,'right'); + $LeftOvers = $pdf->addTextWrap($Left_Margin+453,$YPos,95,$FontSize,$DisplayQty,'right'); + $LeftOvers = $pdf->addTextWrap($Left_Margin+553,$YPos,35,$FontSize,$myrow2['units'],'centre'); + $LeftOvers = $pdf->addTextWrap($Left_Margin+590,$YPos,50,$FontSize,$DisplayDiscount,'right'); + $LeftOvers = $pdf->addTextWrap($Left_Margin+642,$YPos,120,$FontSize,$DisplayNet,'right'); + + $YPos -= ($line_height); + + $lines=explode('\r\n',htmlspecialchars_decode($myrow2['narrative'])); + for ($i=0;$i<sizeOf($lines);$i++) { + while (strlen($lines[$i])>1) { + if ($YPos-$line_height <= $Bottom_Margin) { /* head up a new invoice/credit note page */ /* draw the vertical column lines right to the bottom */ - PrintLinesToBottom($pdf, $Page_Height, $PageNumber, $FormDesign); - include ('includes/PDFTransPageHeaderPortrait.inc'); - } //end if need a new page headed up - /* increment a line down for the next line item */ - if (strlen($lines[$i]) > 1) { - $lines[$i] = $pdf->addTextWrap($Left_Margin + 100, $YPos, 245, $FontSize, stripslashes($lines[$i])); + PrintLinesToBottom (); + include ('includes/PDFTransPageHeaderPortrait.inc'); + } //end if need a new page headed up + + /* increment a line down for the next line item */ + if (strlen($lines[$i])>1){ + $lines[$i] = $pdf->addTextWrap($Left_Margin+100,$YPos,245,$FontSize,stripslashes($lines[$i])); } - $YPos-= ($line_height); - } - } + $YPos -= ($line_height); + } + } //end for loop around lines of narrative to display if ($YPos <= $Bottom_Margin) { + /* head up a new invoice/credit note page */ /*draw the vertical column lines right to the bottom */ - PrintLinesToBottom($pdf, $Page_Height, $PageNumber, $FormDesign); + PrintLinesToBottom (); include ('includes/PDFTransPageHeader.inc'); } //end if need a new page headed up - $Line++; - } //end while there are line items to print out + } //end while there invoice are line items to print out + } /*end if there are stock movements to show on the invoice or credit note*/ - } /*end if there are stock movements to show on the invoice or credit note*/ - $YPos-= $line_height; + $YPos -= $line_height; + /* check to see enough space left to print the 4 lines for the totals/footer */ - if (($YPos - $Bottom_Margin) < (2 * $line_height)) { - PrintLinesToBottom($pdf, $Page_Height, $PageNumber, $FormDesign); + if (($YPos-$Bottom_Margin)<(2*$line_height)) { + PrintLinesToBottom (); include ('includes/PDFTransPageHeader.inc'); } /* Print a column vertical line with enough space for the footer */ /* draw the vertical column lines to 4 lines shy of the bottom to leave space for invoice footer info ie totals etc */ - $pdf->line($FormDesign->DataLines->Line1->startx, $Page_Height - $FormDesign->DataLines->Line1->starty, $FormDesign->DataLines->Line1->endx, $Page_Height - $FormDesign->DataLines->Line1->endy); + $pdf->line($Left_Margin+97, $TopOfColHeadings+12,$Left_Margin+97,$Bottom_Margin+(4*$line_height)); + /* Print a column vertical line */ - $pdf->line($FormDesign->DataLines->Line2->startx, $Page_Height - $FormDesign->DataLines->Line2->starty, $FormDesign->DataLines->Line2->endx, $Page_Height - $FormDesign->DataLines->Line2->endy); + $pdf->line($Left_Margin+350, $TopOfColHeadings+12,$Left_Margin+350,$Bottom_Margin+(4*$line_height)); + /* Print a column vertical line */ - $pdf->line($FormDesign->DataLines->Line3->startx, $Page_Height - $FormDesign->DataLines->Line3->starty, $FormDesign->DataLines->Line3->endx, $Page_Height - $FormDesign->DataLines->Line3->endy); + $pdf->line($Left_Margin+450, $TopOfColHeadings+12,$Left_Margin+450,$Bottom_Margin+(4*$line_height)); + /* Print a column vertical line */ - $pdf->line($FormDesign->DataLines->Line4->startx, $Page_Height - $FormDesign->DataLines->Line4->starty, $FormDesign->DataLines->Line4->endx, $Page_Height - $FormDesign->DataLines->Line4->endy); + $pdf->line($Left_Margin+550, $TopOfColHeadings+12,$Left_Margin+550,$Bottom_Margin+(4*$line_height)); + /* Print a column vertical line */ - $pdf->line($FormDesign->DataLines->Line5->startx, $Page_Height - $FormDesign->DataLines->Line5->starty, $FormDesign->DataLines->Line5->endx, $Page_Height - $FormDesign->DataLines->Line5->endy); - $pdf->line($FormDesign->DataLines->Line6->startx, $Page_Height - $FormDesign->DataLines->Line6->starty, $FormDesign->DataLines->Line6->endx, $Page_Height - $FormDesign->DataLines->Line6->endy); + $pdf->line($Left_Margin+587, $TopOfColHeadings+12,$Left_Margin+587,$Bottom_Margin+(4*$line_height)); + + $pdf->line($Left_Margin+640, $TopOfColHeadings+12,$Left_Margin+640,$Bottom_Margin+(4*$line_height)); + /* Rule off at bottom of the vertical lines */ - $pdf->line($FormDesign->LineAboveFooter->startx, $Page_Height - $FormDesign->LineAboveFooter->starty, $FormDesign->LineAboveFooter->endx, $Page_Height - $FormDesign->LineAboveFooter->endy); + $pdf->line($Left_Margin, $Bottom_Margin+(4*$line_height),$Page_Width-$Right_Margin,$Bottom_Margin+(4*$line_height)); + /* Now print out the footer and totals */ - if ($InvOrCredit == 'Invoice') { - $DisplaySubTot = number_format($myrow['ovamount'], 2); - $DisplayFreight = number_format($myrow['ovfreight'], 2); - $DisplayTax = number_format($myrow['ovgst'], 2); - $DisplayTotal = number_format($myrow['ovfreight'] + $myrow['ovgst'] + $myrow['ovamount'], 2); + + if ($InvOrCredit=='Invoice') { + + $DisplaySubTot = number_format($myrow['ovamount'],2); + $DisplayFreight = number_format($myrow['ovfreight'],2); + $DisplayTax = number_format($myrow['ovgst'],2); + $DisplayTotal = number_format($myrow['ovfreight']+$myrow['ovgst']+$myrow['ovamount'],2); + } else { - $DisplaySubTot = number_format(-$myrow['ovamount'], 2); - $DisplayFreight = number_format(-$myrow['ovfreight'], 2); - $DisplayTax = number_format(-$myrow['ovgst'], 2); - $DisplayTotal = number_format(-$myrow['ovfreight'] - $myrow['ovgst'] - $myrow['ovamount'], 2); + + $DisplaySubTot = number_format(-$myrow['ovamount'],2); + $DisplayFreight = number_format(-$myrow['ovfreight'],2); + $DisplayTax = number_format(-$myrow['ovgst'],2); + $DisplayTotal = number_format(-$myrow['ovfreight']-$myrow['ovgst']-$myrow['ovamount'],2); } + /* Print out the invoice text entered */ + $YPos = $Bottom_Margin+(3*$line_height); + /* Print out the payment terms */ - $pdf->addTextWrap($FormDesign->PaymentTerms->x, $Page_Height - $FormDesign->PaymentTerms->y, $FormDesign->PaymentTerms->Length, $FormDesign->PaymentTerms->FontSize, _('Payment Terms') . ': ' . $myrow['terms']); - // $pdf->addText($Page_Width-$Right_Margin-392, $YPos - ($line_height*3)+22,$FontSize, _('Bank Code:***** Bank Account:*****')); - // $FontSize=10; - $LeftOvers=explode('\r\n',DB_escape_string($myrow['invtext'])); - for ($i=0;$i<sizeOf($LeftOvers);$i++) { - $pdf->addText($FormDesign->InvoiceText->x, $Page_Height - $FormDesign->InvoiceText->y-($i*10), $FormDesign->InvoiceText->FontSize, $LeftOvers[$i]); + $pdf->addTextWrap($Left_Margin+5,$YPos+3,280,$FontSize,_('Payment Terms') . ': ' . $myrow['terms']); + // $pdf->addText($Page_Width-$Right_Margin-392, $YPos - ($line_height*3)+22,$FontSize, _('Bank Code:***** Bank Account:*****')); + // $FontSize=10; + + $FontSize =8; + $LeftOvers = $pdf->addTextWrap($Left_Margin+5,$YPos-12,280,$FontSize,$myrow['invtext']); + if (strlen($LeftOvers)>0) { + $LeftOvers = $pdf->addTextWrap($Left_Margin+5,$YPos-24,280,$FontSize,$LeftOvers); + if (strlen($LeftOvers)>0) { + $LeftOvers = $pdf->addTextWrap($Left_Margin+5,$YPos-36,280,$FontSize,$LeftOvers); + /*If there is some of the InvText leftover after 3 lines 200 wide then it is not printed :( */ + } } - $pdf->addText($FormDesign->SubTotalCaption->x, $Page_Height - $FormDesign->SubTotalCaption->y, $FormDesign->SubTotalCaption->FontSize, _('Sub Total')); - $LeftOvers = $pdf->addTextWrap($FormDesign->SubTotal->x, $Page_Height - $FormDesign->SubTotal->y, $FormDesign->SubTotal->Length, $FormDesign->SubTotal->FontSize, $DisplaySubTot, 'right'); - $pdf->addText($FormDesign->FreightCaption->x, $Page_Height - $FormDesign->FreightCaption->y, $FormDesign->FreightCaption->FontSize, _('Freight')); - $LeftOvers = $pdf->addTextWrap($FormDesign->Freight->x, $Page_Height - $FormDesign->Freight->y, $FormDesign->Freight->Length, $FormDesign->Freight->FontSize, $DisplayFreight, 'right'); - $pdf->addText($FormDesign->TaxCaption->x, $Page_Height - $FormDesign->TaxCaption->y, $FormDesign->TaxCaption->FontSize, _('Tax')); - $LeftOvers = $pdf->addTextWrap($FormDesign->Tax->x, $Page_Height - $FormDesign->Tax->y, $FormDesign->Tax->Length, $FormDesign->Tax->FontSize, $DisplayTax, 'right'); + $FontSize = 10; + + $pdf->addText($Page_Width-$Right_Margin-220, $YPos+15,$FontSize, _('Sub Total')); + $LeftOvers = $pdf->addTextWrap($Left_Margin+642,$YPos+5,120,$FontSize,$DisplaySubTot, 'right'); + + $pdf->addText($Page_Width-$Right_Margin-220, $YPos+2,$FontSize, _('Freight')); + $LeftOvers = $pdf->addTextWrap($Left_Margin+642,$YPos-6,120,$FontSize,$DisplayFreight, 'right'); + + $pdf->addText($Page_Width-$Right_Margin-220, $YPos-10,$FontSize, _('Tax')); + $LeftOvers = $pdf->addTextWrap($Left_Margin+642,$YPos-($line_height)-5,120, $FontSize,$DisplayTax, 'right'); + /*rule off for total */ - $pdf->line($FormDesign->TotalLine->startx, $Page_Height - $FormDesign->TotalLine->starty, $FormDesign->TotalLine->endx, $Page_Height - $FormDesign->TotalLine->endy); + $pdf->line($Page_Width-$Right_Margin-222, $YPos-(2*$line_height),$Page_Width-$Right_Margin,$YPos-(2*$line_height)); + /*vertical to separate totals from comments and ROMALPA */ - $pdf->line($FormDesign->RomalpaLine->startx, $Page_Height - $FormDesign->RomalpaLine->starty, $FormDesign->RomalpaLine->endx, $Page_Height - $FormDesign->RomalpaLine->endy); - if ($InvOrCredit == 'Invoice') { - $pdf->addText($FormDesign->TotalCaption->x, $Page_Height - $FormDesign->TotalCaption->y, $FormDesign->TotalCaption->FontSize, _('TOTAL INVOICE')); - $YPos=$FormDesign->Romalpa->y; - $LeftOvers = $pdf->addTextWrap($FormDesign->Romalpa->x, $Page_Height - $YPos, $FormDesign->Romalpa->Length, $FormDesign->Romalpa->FontSize, $_SESSION['RomalpaClause']); - while (strlen($LeftOvers) > 0 AND ($Page_Height - $YPos) > $Bottom_Margin) { - $YPos+= $FormDesign->Romalpa->FontSize+1; - $LeftOvers = $pdf->addTextWrap($FormDesign->Romalpa->x, $Page_Height - $YPos, $FormDesign->Romalpa->Length, $FormDesign->Romalpa->FontSize, $LeftOvers); + $pdf->line($Page_Width-$Right_Margin-222, $YPos+$line_height,$Page_Width-$Right_Margin-222,$Bottom_Margin); + + $YPos+=10; + if ($InvOrCredit=='Invoice') { + $pdf->addText($Page_Width-$Right_Margin-220, $YPos - ($line_height*2)-10,$FontSize, _('TOTAL INVOICE')); + $FontSize=9; + $YPos-=4; + $LeftOvers = $pdf->addTextWrap($Left_Margin+280,$YPos,220,$FontSize,$_SESSION['RomalpaClause']); + while (strlen($LeftOvers)>0 AND $YPos > $Bottom_Margin) { + $YPos-=12; + $LeftOvers = $pdf->addTextWrap($Left_Margin+280,$YPos,220,$FontSize,$LeftOvers); } /* Add Images for Visa / Mastercard / Paypal */ if (file_exists('companies/' . $_SESSION['DatabaseName'] . '/payment.jpg')) { - $pdf->addJpegFromFile('companies/' . $_SESSION['DatabaseName'] . '/payment.jpg', $FormDesign->CreditCardLogo->x,$Page_Height -$FormDesign->CreditCardLogo->y,$FormDesign->CreditCardLogo->width,$FormDesign->CreditCardLogo->height); + $pdf->addJpegFromFile('companies/' . $_SESSION['DatabaseName'] . '/payment.jpg',$Page_Width/2 -280,$YPos-20,0,40); } -// $pdf->addText($Page_Width - $Right_Margin - 472, $YPos - ($line_height * 3) + 32, $FontSize, ''); + $pdf->addText($Page_Width-$Right_Margin-472, $YPos - ($line_height*3)+32,$FontSize, ''); + $FontSize=10; } else { - $pdf->addText($FormDesign->TotalCaption->x, $Page_Height - $FormDesign->TotalCaption->y, $FormDesign->TotalCaption->FontSize, _('TOTAL CREDIT')); - } - $LeftOvers = $pdf->addTextWrap($FormDesign->Total->x, $Page_Height - $FormDesign->Total->y, $FormDesign->Total->Length, $FormDesign->Total->FontSize, $DisplayTotal, 'right'); + $pdf->addText($Page_Width-$Right_Margin-220, $YPos-($line_height*2)-10,$FontSize, _('TOTAL CREDIT')); + } + $LeftOvers = $pdf->addTextWrap($Left_Margin+642,35,120, $FontSize,$DisplayTotal, 'right'); } /* end of check to see that there was an invoice record to print */ + $FromTransNo++; + } /* end loop to print invoices */ + + // Have to get the TransNo again, GET[FromTransNo] is updated on each pass of loop + if (isset($_GET['FromTransNo'])) { + $FromTransNo = trim($_GET['FromTransNo']); + } elseif (isset($_POST['FromTransNo'])) { + $FromTransNo = trim($_POST['FromTransNo']); } -} /* end loop to print invoices */ + + + if (isset($_GET['Email'])){ //email the invoice to address supplied + include('includes/header.inc'); -if (($InvOrCredit == 'Invoice' or $InvOrCredit == 'Credit') and isset($PrintPDF)) { - - if (isset($_GET['Email'])) { //email the invoice to address supplied - include ('includes/header.inc'); include ('includes/htmlMimeMail.php'); + $FileName = $_SESSION['reports_dir'] . '/' . $_SESSION['DatabaseName'] . '_' . $InvOrCredit . '_' . $_GET['FromTransNo'] . '.pdf'; + $pdf->Output($FileName,'F'); $mail = new htmlMimeMail(); - $FileName = $_SESSION['reports_dir'] . '/' . $_SESSION['DatabaseName'] . '_' . $InvOrCredit . '_' . $_GET['FromTransNo'] . '.pdf'; - $pdf->Output($FileName, 'F'); + $Attachment = $mail->getFile($FileName); - $mail->setText(_('Please find attached') . ' ' . $InvOrCredit . ' ' . $_GET['FromTransNo']); + $mail->setText(_('Please find attached') . ' ' . $InvOrCredit . ' ' . $_GET['FromTransNo'] ); $mail->SetSubject($InvOrCredit . ' ' . $_GET['FromTransNo']); $mail->addAttachment($Attachment, $FileName, 'application/pdf'); $mail->setFrom($_SESSION['CompanyRecord']['coyname'] . ' <' . $_SESSION['CompanyRecord']['email'] . '>'); $result = $mail->send(array($_GET['Email'])); + unlink($FileName); //delete the temporary file - $title = _('Emailing') . ' ' . $InvOrCredit . ' ' . _('Number') . ' ' . $FromTransNo; - include ('includes/header.inc'); - echo '<p>' . $InvOrCredit . ' ' . _('number') . ' ' . $_GET['FromTransNo'] . ' ' . _('has been emailed to') . ' ' . $_GET['Email']; - include ('includes/footer.inc'); + + $title = _('Emailing') . ' ' .$InvOrCredit . ' ' . _('Number') . ' ' . $FromTransNo; + include('includes/header.inc'); + echo '<p>' . $InvOrCredit . ' ' . _('number') . ' ' . $FromTransNo . ' ' . _('has been emailed to') . ' ' . $_GET['Email']; + include('includes/footer.inc'); exit; - } else { - $pdf->OutputD( $_SESSION['DatabaseName'] . '_' . $InvOrCredit . '_' . $_GET['FromTransNo'] . '.pdf'); + + } else { //its not an email just print the invoice to PDF + $pdf->OutputD($_SESSION['DatabaseName'] . '_' . $InvOrCredit . '_' . $FromTransNo . '.pdf'); + } $pdf->__destruct(); + } else { /*The option to print PDF was not hit */ - $title = _('Select Invoices/Credit Notes To Print'); - include ('includes/header.inc'); - if (!isset($FromTransNo) OR $FromTransNo == '') { + + $title=_('Select Invoices/Credit Notes To Print'); + include('includes/header.inc'); + + if (!isset($FromTransNo) OR $FromTransNo=='') { + /* if FromTransNo is not set then show a form to allow input of either a single invoice number or a range of invoices to be printed. Also get the last invoice number created to show the user where the current range is up to */ - echo '<form action="' . $_SERVER['PHP_SELF'] . '" method="POST"> - <table class="selection">'; + echo '<form action="' . $_SERVER['PHP_SELF'] . '" method="post">'; echo '<input type="hidden" name="FormID" value="' . $_SESSION['FormID'] . '" />'; - echo '<p class="page_title_text"><img src="' . $rootpath . '/css/' . $theme . '/images/printer.png" title="' . _('Print') . '" alt="" />' . ' ' . _('Print Invoices or Credit Notes (Landscape Mode)') . '</p>'; - echo '<tr><td>' . _('Print Invoices or Credit Notes') . '</td><td><select name=InvOrCredit>'; - if ($InvOrCredit == 'Invoice' OR !isset($InvOrCredit)) { + + echo '<div class="centre"><p class="page_title_text"><img src="'.$rootpath.'/css/'.$theme.'/images/printer.png" title="' . _('Print') . '" alt="">' . ' ' . _('Print Invoices or Credit Notes (Landscape Mode)') . '</div>'; + echo '<table class="table1"> + <tr><td>' . _('Print Invoices or Credit Notes') . '</td><td><select name=InvOrCredit>'; + if ($InvOrCredit=='Invoice' OR !isset($InvOrCredit)) { + echo '<option selected value="Invoice">' . _('Invoices') . '</option>'; - echo '<option value="Credit">' . _('Credit Notes'). '</option>'; + echo '<option value="Credit">' . _('Credit Notes') . '</option>'; } else { echo '<option selected value="Credit">' . _('Credit Notes') . '</option>'; echo '<option value="Invoice">' . _('Invoices') . '</option>'; } + echo '</select></td></tr>'; echo '<tr><td>' . _('Print EDI Transactions') . '</td><td><select name=PrintEDI>'; - if ($InvOrCredit == 'Invoice' OR !isset($InvOrCredit)) { + + if ($InvOrCredit=='Invoice' OR !isset($InvOrCredit)) { + echo '<option selected value="No">' . _('Do not Print PDF EDI Transactions') . '</option>'; echo '<option value="Yes">' . _('Print PDF EDI Transactions Too') . '</option>'; + } else { + echo '<option value="No">' . _('Do not Print PDF EDI Transactions') . '</option>'; echo '<option selected value="Yes">' . _('Print PDF EDI Transactions Too') . '</option>'; } + echo '</select></td></tr>'; echo '<tr><td>' . _('Start invoice/credit note number to print') . '</td> - <td><input type="text" class="number" max=6 size=7 name=FromTransNo></td></tr>'; + <td><input Type=text class=number max=6 size=7 name=FromTransNo></td></tr>'; echo '<tr><td>' . _('End invoice/credit note number to print') . '</td> - <td><input Type="text" class="number" max=6 size=7 name="ToTransNo"></td> - </tr></table>'; - echo '<br /><div class="centre"><input type="submit" name="Print" value="' . _('Print') . '"><p />'; + <td><input Type=text class=number max=6 size=7 name="ToTransNo"></td></tr> + </table>'; + echo '<div class="centre"><input type="submit" name="Print" value="' . _('Print') . '"><p>'; echo '<input type="submit" name="PrintPDF" value="' . _('Print PDF') . '"></div>'; + $sql = "SELECT typeno FROM systypes WHERE typeid=10"; - $result = DB_query($sql, $db); + + $result = DB_query($sql,$db); $myrow = DB_fetch_row($result); - echo '<div class="page_help_text"><b>' . _('The last invoice created was number') . ' ' . $myrow[0] . '</b><br />' . _('If only a single invoice is required') . ', ' . _('enter the invoice number to print in the Start transaction number to print field and leave the End transaction number to print field blank') . '. ' . _('Only use the end invoice to print field if you wish to print a sequential range of invoices') . ''; + + echo '<div class="page_help_text"><b>' . _('The last invoice created was number') . ' ' . $myrow[0] . '</b><br>' . _('If only a single invoice is required') . ', ' . _('enter the invoice number to print in the Start transaction number to print field and leave the End transaction number to print field blank') . '. ' . _('Only use the end invoice to print field if you wish to print a sequential range of invoices') . ''; + $sql = "SELECT typeno FROM systypes WHERE typeid=11"; - $result = DB_query($sql, $db); + + $result = DB_query($sql,$db); $myrow = DB_fetch_row($result); - echo '<br /><b>' . _('The last credit note created was number') . ' ' . $myrow[0] . '</b><br />' . - _('A sequential range can be printed using the same method as for invoices above') . '. ' . _('A single credit note can be printed by only entering a start transaction number') . '</div>'; + + echo '<br /><b>' . _('The last credit note created was number') . ' ' . $myrow[0] . '</b><br />' . _('A sequential range can be printed using the same method as for invoices above') . '. ' . _('A single credit note can be printed by only entering a start transaction number') . '</DIV'; + } else { + while ($FromTransNo <= $_POST['ToTransNo']) { + /*retrieve the invoice details from the database to print notice that salesorder record must be present to print the invoice purging of sales orders will nobble the invoice reprints */ - if ($InvOrCredit == 'Invoice') { + + if ($InvOrCredit=='Invoice') { + $sql = "SELECT debtortrans.trandate, debtortrans.ovamount, @@ -480,6 +581,7 @@ AND debtortrans.branchcode=custbranch.branchcode AND custbranch.salesman=salesman.salesmancode"; } else { + $sql = "SELECT debtortrans.trandate, debtortrans.ovamount, debtortrans.ovdiscount, @@ -515,63 +617,99 @@ AND debtortrans.branchcode=custbranch.branchcode AND custbranch.salesman=salesman.salesmancode"; } - $result = DB_query($sql, $db); - if (DB_num_rows($result) == 0 OR DB_error_no($db) != 0) { - echo '<div class="page_help_text">' . _('There was a problem retrieving the invoice or credit note details for note number') . ' ' . $FromTransNo . ' ' . _('from the database') . '. ' . _('To print an invoice, the sales order record, the customer transaction record and the branch record for the customer must not have been purged') . '. ' . _('To print a credit note only requires the customer, transaction, salesman and branch records be available').'</div>'; - if ($debug == 1) { - echo _('The SQL used to get this information that failed was') . "<br />$sql"; + + $result=DB_query($sql,$db); + if (DB_num_rows($result)==0 OR DB_error_no($db)!=0) { + echo '<p>' . _('There was a problem retrieving the invoice or credit note details for note number') . ' ' . $InvoiceToPrint . ' ' . _('from the database') . '. ' . _('To print an invoice, the sales order record, the customer transaction record and the branch record for the customer must not have been purged') . '. ' . _('To print a credit note only requires the customer, transaction, salesman and branch records be available'); + if ($debug==1) { + echo _('The SQL used to get this information that failed was') . '<br>' . $sql; } break; - include ('includes/footer.inc'); + include('includes/footer.inc'); exit; - } elseif (DB_num_rows($result) == 1) { + } elseif (DB_num_rows($result)==1) { + $myrow = DB_fetch_array($result); /* Then there's an invoice (or credit note) to print. So print out the invoice header and GST Number from the company record */ - if (count($_SESSION['AllowedPageSecurityTokens']) == 1 AND in_array(1, $_SESSION['AllowedPageSecurityTokens']) AND $myrow['debtorno'] != $_SESSION['CustomerID']) { + if (count($_SESSION['AllowedPageSecurityTokens'])==1 AND in_array(1, $_SESSION['AllowedPageSecurityTokens']) AND $myrow['debtorno'] != $_SESSION['CustomerID']){ echo '<p><font color=RED size=4>' . _('This transaction is addressed to another customer and cannot be displayed for privacy reasons') . '. ' . _('Please select only transactions relevant to your company'); exit; } + $ExchRate = $myrow['rate']; $PageNumber = 1; - echo '<table class="table1"><tr><td VALIGN=TOP WIDTH=10%><img src="' . $_SESSION['LogoFile'] . '"></td><td bgcolor="#BBBBBB"><b>'; - if ($InvOrCredit == 'Invoice') { - echo '<font size=4>' . _('TAX INVOICE') . ' '; + + echo '<table class="table1"> + <tr><td VALIGN=TOP WIDTH=10%><img src="' . $_SESSION['LogoFile'] . '"></td> + <td bgcolor="#BBBBBB"><b>'; + + if ($InvOrCredit=='Invoice') { + echo '<font size=4>' . _('TAX INVOICE') . ' '; } else { - echo '<font color=RED size=4>' . _('TAX CREDIT NOTE') . ' '; + echo '<font color=RED size=4>' . _('TAX CREDIT NOTE') . ' '; } - echo '</b>' . _('Number') . ' ' . $FromTransNo . '</font><br /><font size=1>' . _('Tax Authority Ref') . '. ' . $_SESSION['CompanyRecord']['gstno'] . '</td></tr></table>'; + echo '</b>' . _('Number') . ' ' . $FromTransNo . '</font><br><font size=1>' . _('Tax Authority Ref') . '. ' . $_SESSION['CompanyRecord']['gstno'] . '</td></tr></table>'; + /* Now print out the logo and company name and address */ - echo '<table class="table1"><tr><td><font size=4 color="#333333"><b>' . $_SESSION['CompanyRecord']['coyname'] . '</b></font><br />'; - echo $_SESSION['CompanyRecord']['regoffice1'] . '<br />'; - echo $_SESSION['CompanyRecord']['regoffice2'] . '<br />'; - echo $_SESSION['CompanyRecord']['regoffice3'] . '<br />'; - echo $_SESSION['CompanyRecord']['regoffice4'] . '<br />'; - echo $_SESSION['CompanyRecord']['regoffice5'] . '<br />'; - echo $_SESSION['CompanyRecord']['regoffice6'] . '<br />'; - echo _('Telephone') . ': ' . $_SESSION['CompanyRecord']['telephone'] . '<br />'; - echo _('Facsimile') . ': ' . $_SESSION['CompanyRecord']['fax'] . '<br />'; - echo _('Email') . ': ' . $_SESSION['CompanyRecord']['email'] . '<br />'; + echo '<table class="table1"> + <tr><td><font size=4 color="#333333"><b>' . $_SESSION['CompanyRecord']['coyname'] . '</b></font><br>'; + echo $_SESSION['CompanyRecord']['regoffice1'] . '<br>'; + echo $_SESSION['CompanyRecord']['regoffice2'] . '<br>'; + echo $_SESSION['CompanyRecord']['regoffice3'] . '<br>'; + echo $_SESSION['CompanyRecord']['regoffice4'] . '<br>'; + echo $_SESSION['CompanyRecord']['regoffice5'] . '<br>'; + echo $_SESSION['CompanyRecord']['regoffice6'] . '<br>'; + echo _('Telephone') . ': ' . $_SESSION['CompanyRecord']['telephone'] . '<br>'; + echo _('Facsimile') . ': ' . $_SESSION['CompanyRecord']['fax'] . '<br>'; + echo _('Email') . ': ' . $_SESSION['CompanyRecord']['email'] . '<br>'; + echo '</td><td WIDTH=50% class=number>'; + /* Now the customer charged to details in a sub table within a cell of the main table*/ - echo '<table class="table1"><tr><td align=left bgcolor="#BBBBBB"><b>' . _('Charge To') . ':</b></td></tr><tr><td bgcolor="#EEEEEE">'; - echo $myrow['name'] . '<br />' . $myrow['address1'] . '<br />' . $myrow['address2'] . '<br />' . $myrow['address3'] . '<br />' . $myrow['address4'] . '<br />' . $myrow['address5'] . '<br />' . $myrow['address6']; + + echo '<table class="table1"> + <tr><td align=left bgcolor="#BBBBBB"><b>' . _('Charge To') . ':</b></td> + </tr><tr><td bgcolor="#EEEEEE">'; + echo $myrow['name'] . + '<br>' . $myrow['address1'] . + '<br>' . $myrow['address2'] . + '<br>' . $myrow['address3'] . + '<br>' . $myrow['address4'] . + '<br>' . $myrow['address5'] . + '<br>' . $myrow['address6']; echo '</td></tr></table>'; /*end of the small table showing charge to account details */ echo _('Page') . ': ' . $PageNumber; echo '</td></tr></table>'; /*end of the main table showing the company name and charge to details */ - if ($InvOrCredit == 'Invoice') { - echo '<table class="table1"> + + if ($InvOrCredit=='Invoice') { + + echo '<table class="table1"> <tr> <td align=left bgcolor="#BBBBBB"><b>' . _('Charge Branch') . ':</b></td> <td align=left bgcolor="#BBBBBB"><b>' . _('Delivered To') . ':</b></td> </tr>'; - echo '<tr> - <td bgcolor="#EEEEEE">' . $myrow['brname'] . '<br />' . $myrow['braddress1'] . '<br />' . $myrow['braddress2'] . '<br />' . $myrow['braddress3'] . '<br />' . $myrow['braddress4'] . '<br />' . $myrow['braddress5'] . '<br />' . $myrow['braddress6'] . '</td>'; - echo '<td bgcolor="#EEEEEE">' . $myrow['deliverto'] . '<br />' . $myrow['deladd1'] . '<br />' . $myrow['deladd2'] . '<br />' . $myrow['deladd3'] . '<br />' . $myrow['deladd4'] . '<br />' . $myrow['deladd5'] . '<br />' . $myrow['deladd6'] . '</td>'; - echo '</tr> - </table><hr>'; - echo '<table class="table1"> + echo '<tr> + <td bgcolor="#EEEEEE">' .$myrow['brname'] . + '<br>' . $myrow['braddress1'] . + '<br>' . $myrow['braddress2'] . + '<br>' . $myrow['braddress3'] . + '<br>' . $myrow['braddress4'] . + '<br>' . $myrow['braddress5'] . + '<br>' . $myrow['braddress6'] . '</td>'; + + echo '<td bgcolor="#EEEEEE">' . $myrow['deliverto'] . + '<br>' . $myrow['deladd1'] . + '<br>' . $myrow['deladd2'] . + '<br>' . $myrow['deladd3'] . + '<br>' . $myrow['deladd4'] . + '<br>' . $myrow['deladd5'] . + '<br>' . $myrow['deladd6'] . '</td> + </tr> + </table><hr>'; + + echo '<table class="table1"> <tr> <td align=left bgcolor="#BBBBBB"><b>' . _('Your Order Ref') . '</b></td> <td align=left bgcolor="#BBBBBB"><b>' . _('Our Order No') . '</b></td> @@ -581,9 +719,9 @@ <td align=left bgcolor="#BBBBBB"><b>' . _('Shipper') . '</b></td> <td align=left bgcolor="#BBBBBB"><b>' . _('Consignment Ref') . '</b></td> </tr>'; - echo '<tr> + echo '<tr> <td bgcolor="#EEEEEE">' . $myrow['customerref'] . '</td> - <td bgcolor="#EEEEEE">' . $myrow['orderno'] . '</td> + <td bgcolor="#EEEEEE">' .$myrow['orderno'] . '</td> <td bgcolor="#EEEEEE">' . ConvertSQLDate($myrow['orddate']) . '</td> <td bgcolor="#EEEEEE">' . ConvertSQLDate($myrow['trandate']) . '</td> <td bgcolor="#EEEEEE">' . $myrow['salesmanname'] . '</td> @@ -591,7 +729,8 @@ <td bgcolor="#EEEEEE">' . $myrow['consignment'] . '</td> </tr> </table>'; - $sql = "SELECT stockmoves.stockid, + + $sql ="SELECT stockmoves.stockid, stockmaster.description, -stockmoves.qty as quantity, stockmoves.discountpercent, @@ -605,26 +744,35 @@ AND stockmoves.type=10 AND stockmoves.transno='" . $FromTransNo . "' AND stockmoves.show_on_inv_crds=1"; + } else { /* then its a credit note */ - echo '<table width=50%><tr> + + echo '<table width="50%"><tr> <td align=left bgcolor="#BBBBBB"><b>' . _('Branch') . ':</b></td> </tr>'; - echo '<tr> - <td bgcolor="#EEEEEE">' . $myrow['brname'] . '<br />' . $myrow['braddress1'] . '<br />' . $myrow['braddress2'] . '<br />' . $myrow['braddress3'] . '<br />' . $myrow['braddress4'] . '<br />' . $myrow['braddress5'] . '<br />' . $myrow['braddress6'] . '</td> + echo '<tr> + <td bgcolor="#EEEEEE">' .$myrow['brname'] . + '<br>' . $myrow['braddress1'] . + '<br>' . $myrow['braddress2'] . + '<br>' . $myrow['braddress3'] . + '<br>' . $myrow['braddress4'] . + '<br>' . $myrow['braddress5'] . + '<br>' . $myrow['braddress6'] . '</td> </tr></table>'; - echo '<hr><table class="table1"><tr> + echo '<hr><table class="table1"><tr> <td align=left bgcolor="#BBBBBB"><b>' . _('Date') . '</b></td> <td align=left bgcolor="#BBBBBB"><b>' . _('Sales Person') . '</font></b></td> </tr>'; - echo '<tr> + echo '<tr> <td bgcolor="#EEEEEE">' . ConvertSQLDate($myrow['trandate']) . '</td> <td bgcolor="#EEEEEE">' . $myrow['salesmanname'] . '</td> </tr></table>'; - $sql = "SELECT stockmoves.stockid, + + $sql ="SELECT stockmoves.stockid, stockmaster.description, stockmoves.qty as quantity, - stockmoves.discountpercent, ((1 - stockmoves.discountpercent) * stockmoves.price * " . $ExchRate . " * stockmoves.qty) AS fxnet, - (stockmoves.price * " . $ExchRate . ") AS fxprice, + stockmoves.discountpercent, ((1 - stockmoves.discountpercent) * stockmoves.price * ' . $ExchRate . ' * stockmoves.qty) AS fxnet, + (stockmoves.price * ' . $ExchRate . ') AS fxprice, stockmaster.units FROM stockmoves, stockmaster @@ -633,81 +781,109 @@ AND stockmoves.transno='" . $FromTransNo . "' AND stockmoves.show_on_inv_crds=1"; } + echo '<hr>'; echo '<div class="centre"><font size=2>' . _('All amounts stated in') . ' ' . $myrow['currcode'] . '</font></div>'; - $result = DB_query($sql, $db); - if (DB_error_no($db) != 0) { - echo '<div class="page_help_text">' . _('There was a problem retrieving the invoice or credit note stock movement details for invoice number') . ' ' . $FromTransNo . ' ' . _('from the database').'</div>'; - if ($debug == 1) { - echo '<br />' . _('The SQL used to get this information that failed was') . '<br />'.$sql; + + $result=DB_query($sql,$db); + if (DB_error_no($db)!=0) { + echo '<br>' . _('There was a problem retrieving the invoice or credit note stock movement details for invoice number') . ' ' . $FromTransNo . ' ' . _('from the database'); + if ($debug==1){ + echo '<br>' . _('The SQL used to get this information that failed was') . '<br>' .$sql; } exit; } - if (DB_num_rows($result) > 0) { + + if (DB_num_rows($result)>0){ echo '<table class="table1"> <tr><th>' . _('Item Code') . '</th> - <th>' . _('Item Description') . '</th> - <th>' . _('Quantity') . '</th> - <th>' . _('Unit') . '</th> - <th>' . _('Price') . '</th> - <th>' . _('Discount') . '</th> - <th>' . _('Net') . '</th></tr>'; - $LineCounter = 17; - $k = 0; //row colour counter - while ($myrow2 = DB_fetch_array($result)) { - if ($k == 1) { - $RowStarter = '<tr class="EvenTableRows">'; - $k = 0; - } else { - $RowStarter = '<tr class="OddTableRows">'; - $k = 1; - } - echo $RowStarter; - $DisplayPrice = number_format($myrow2['fxprice'], 2); - $DisplayQty = number_format($myrow2['quantity'], 2); - $DisplayNet = number_format($myrow2['fxnet'], 2); - if ($myrow2['discountpercent'] == 0) { - $DisplayDiscount = ''; - } else { - $DisplayDiscount = number_format($myrow2['discountpercent'] * 100, 2) . '%'; - } - printf('<td>%s</td> + <th>' . _('Item Description') . '</th> + <th>' . _('Quantity') . '</th> + <th>' . _('Unit') . '</th> + <th>' . _('Price') . '</th> + <th>' . _('Discount') . '</th> + <th>' . _('Net') . '</th> + </tr>'; + + $LineCounter =17; + $k=0; //row colour counter + + while ($myrow2=DB_fetch_array($result)){ + + if ($k==1){ + $RowStarter = '<tr class="EvenTableRows">'; + $k=0; + } else { + $RowStarter = '<tr class="OddTableRows">'; + $k=1; + } + + echo $RowStarter; + + $DisplayPrice = number_format($myrow2['fxprice'],2); + $DisplayQty = number_format($myrow2['quantity'],2); + $DisplayNet = number_format($myrow2['fxnet'],2); + + if ($myrow2['discountpercent']==0){ + $DisplayDiscount =''; + } else { + $DisplayDiscount = number_format($myrow2['discountpercent']*100,2) . '%'; + } + + printf ('<td>%s</td> <td>%s</td> <td class=number>%s</td> <td class=number>%s</td> <td class=number>%s</td> <td class=number>%s</td> <td class=number>%s</td> - </tr>', $myrow2['stockid'], $myrow2['description'], $DisplayQty, $myrow2['units'], $DisplayPrice, $DisplayDiscount, $DisplayNet); - if (strlen($myrow2['narrative']) > 1) { - echo $RowStarter . '<td></td><td colspan=6>' . $myrow2['narrative'] . '</td></tr>'; + </tr>', + $myrow2['stockid'], + $myrow2['description'], + $DisplayQty, + $myrow2['units'], + $DisplayPrice, + $DisplayDiscount, + $DisplayNet); + + if (strlen($myrow2['narrative'])>1){ + echo $RowStarter . '<td></td><td colspan=6>' . $myrow2['narrative'] . '</td></tr>'; $LineCounter++; - } - $LineCounter++; - if ($LineCounter == ($_SESSION['PageLength'] - 2)) { - /* head up a new invoice/credit note page */ - $PageNumber++; - echo '</table><table class="table1"><tr><td VALIGN=TOp><img src="' . $_SESSION['LogoFile'] . '"></td><td bgcolor="#BBBBBB"><b>'; - if ($InvOrCredit == 'Invoice') { - echo '<font size=4>' . _('TAX INVOICE') . ' '; - } else { - echo '<font color=red size=4>' . _('TAX CREDIT NOTE') . ' '; - } - echo '</b>' . _('Number') . ' ' . $FromTransNo . '</font><br /><font size=1>' . _('GST Number') . ' - ' . $_SESSION['CompanyRecord']['gstno'] . '</td></tr></table>'; - /*Now print out company name and address */ - echo '<table class="table1"><tr> - <td><font size=4 color="#333333"><b>' . $_SESSION['CompanyRecord']['coyname'] . '</b></font><br />'; - echo $_SESSION['CompanyRecord']['regoffice1'] . '<br />'; - echo $_SESSION['CompanyRecord']['regoffice2'] . '<br />'; - echo $_SESSION['CompanyRecord']['regoffice3'] . '<br />'; - echo $_SESSION['CompanyRecord']['regoffice4'] . '<br />'; - echo $_SESSION['CompanyRecord']['regoffice5'] . '<br />'; - echo $_SESSION['CompanyRecord']['regoffice6'] . '<br />'; - echo _('Telephone') . ': ' . $_SESSION['CompanyRecord']['telephone'] . '<br />'; - echo _('Facsimile') . ': ' . $_SESSION['CompanyRecord']['fax'] . '<br />'; - echo _('Email') . ': ' . $_SESSION['CompanyRecord']['email'] . '<br />'; - echo '</td><td class=number>' . _('Page') . ': '.$PageNumber.'</td></tr></table>'; - echo '<table class="table1"><tr> + } + + $LineCounter++; + + if ($LineCounter == ($_SESSION['PageLength'] - 2)){ + + /* head up a new invoice/credit note page */ + + $PageNumber++; + echo '</table> + <table class="table1"> + <tr><td valign=top><img src="' . $_SESSION['LogoFile'] . '"></td> + <td bgcolor="#BBBBBB"><b>'; + + if ($InvOrCredit=='Invoice') { + echo '<font size=4>' . _('TAX INVOICE') . ' '; + } else { + echo '<font color=RED size=4>' . _('TAX CREDIT NOTE') . ' '; + } + echo '</b>' . _('Number') . ' ' . $FromTransNo . '</font><br /><font size=1>' . _('GST Number') . ' - ' . $_SESSION['CompanyRecord']['gstno'] . '</td></tr></table>'; + + /*Now print out company name and address */ + echo '<table class="table1"><tr> + <td><font size=4 color="#333333"><b>' . $_SESSION['CompanyRecord']['coyname'] . '</b></font><br>'; + echo $_SESSION['CompanyRecord']['regoffice1'] . '<br>'; + echo $_SESSION['CompanyRecord']['regoffice2'] . '<br>'; + echo $_SESSION['CompanyRecord']['regoffice3'] . '<br>'; + echo $_SESSION['CompanyRecord']['regoffice4'] . '<br>'; + echo $_SESSION['CompanyRecord']['regoffice5'] . '<br>'; + echo $_SESSION['CompanyRecord']['regoffice6'] . '<br>'; + echo _('Telephone') . ': ' . $_SESSION['CompanyRecord']['telephone'] . '<br>'; + echo _('Facsimile') . ': ' . $_SESSION['CompanyRecord']['fax'] . '<br>'; + echo _('Email') . ': ' . $_SESSION['CompanyRecord']['email'] . '<br>'; + echo '</td><td class=number>' . _('Page') . ': ' . $PageNumber . '</td></tr></table>'; + echo '<table class="table1"><tr> <th>' . _('Item Code') . '</th> <th>' . _('Item Description') . '</th> <th>' . _('Quantity') . '</th> @@ -715,36 +891,45 @@ <th>' . _('Price') . '</th> <th>' . _('Discount') . '</th> <th>' . _('Net') . '</th></tr>'; - $LineCounter = 10; - } //end if need a new page headed up + $LineCounter = 10; + + } //end if need a new page headed up } //end while there are line items to print out echo '</table>'; } /*end if there are stock movements to show on the invoice or credit note*/ + /* check to see enough space left to print the totals/footer */ - $LinesRequiredForText = floor(strlen($myrow['invtext']) / 140); - if ($LineCounter >= ($_SESSION['PageLength'] - 8 - $LinesRequiredForText)) { + $LinesRequiredForText = floor(strlen($myrow['invtext'])/140); + + if ($LineCounter >= ($_SESSION['PageLength'] - 8 - $LinesRequiredForText)){ + /* head up a new invoice/credit note page */ $PageNumber++; - echo '<table class="table1"><tr><td VALIGN=TOp><img src="' . $_SESSION['LogoFile'] . '"></td><td bgcolor="#BBBBBB"><b>'; - if ($InvOrCredit == 'Invoice') { - echo '<font size=4>' . _('TAX INVOICE') . ' '; + echo '<table class="table1"> + <tr><td valign=top><img src="' . $_SESSION['LogoFile'] . '"></td> + <td bgcolor="#BBBBBB"><b>'; + + if ($InvOrCredit=='Invoice') { + echo '<font size=4>' . _('TAX INVOICE') .' '; } else { - echo '<font color=RED size=4>' . _('TAX CREDIT NOTE') . ' '; + echo '<font color=RED size=4>' . _('TAX CREDIT NOTE') . ' '; } - echo '</b>' . _('Number') . ' ' . $FromTransNo . '</font><br /><font size=1>' . _('GST Number') . ' - ' . $_SESSION['CompanyRecord']['gstno'] . '</td></tr><table>'; + echo '</b>' . _('Number') . ' ' . $FromTransNo . '</font><br><font size=1>' . _('GST Number') . ' - ' . $_SESSION['CompanyRecord']['gstno'] . '</td></tr><table>'; + /* Print out the logo and company name and address */ - echo '<table class="table1"><tr><td><font size=4 color="#333333"><b>' . $_SESSION['CompanyRecord']['coyname'] . '</b></font><br />'; - echo $_SESSION['CompanyRecord']['regoffice1'] . '<br />'; - echo $_SESSION['CompanyRecord']['regoffice2'] . '<br />'; - echo $_SESSION['CompanyRecord']['regoffice3'] . '<br />'; - echo $_SESSION['CompanyRecord']['regoffice4'] . '<br />'; - echo $_SESSION['CompanyRecord']['regoffice5'] . '<br />'; - echo $_SESSION['CompanyRecord']['regoffice6'] . '<br />'; - echo _('Telephone') . ': ' . $_SESSION['CompanyRecord']['telephone'] . '<br />'; - echo _('Facsimile') . ': ' . $_SESSION['CompanyRecord']['fax'] . '<br />'; - echo _('Email') . ': ' . $_SESSION['CompanyRecord']['email'] . '<br />'; - echo '</td><td class=number>' . _('Page') . ': '.$PageNumber.'</td></tr></table>'; + echo '<table class="table1"> + <tr><td><font size=4 color="#333333"><b>' . $_SESSION['CompanyRecord']['coyname'] . '</b></font><br>'; + echo $_SESSION['CompanyRecord']['regoffice1'] . '<br>'; + echo $_SESSION['CompanyRecord']['regoffice2'] . '<br>'; + echo $_SESSION['CompanyRecord']['regoffice3'] . '<br>'; + echo $_SESSION['CompanyRecord']['regoffice4'] . '<br>'; + echo $_SESSION['CompanyRecord']['regoffice5'] . '<br>'; + echo $_SESSION['CompanyRecord']['regoffice6'] . '<br>'; + echo _('Telephone') . ': ' . $_SESSION['CompanyRecord']['telephone'] . '<br>'; + echo _('Facsimile') . ': ' . $_SESSION['CompanyRecord']['fax'] . '<br>'; + echo _('Email') . ': ' . $_SESSION['CompanyRecord']['email'] . '<br>'; + echo '</td><td class=number>' . _('Page') . ': ' . $PageNumber . '</td></tr></table>'; echo '<table class="table1"><tr> <th>' . _('Item Code') . '</th> <th>' . _('Item Description') . '</th> @@ -753,62 +938,87 @@ <th>' . _('Price') . '</th> <th>' . _('Discount') . '</th> <th>' . _('Net') . '</th></tr>'; + $LineCounter = 10; } + /* Space out the footer to the bottom of the page */ - echo '<br /><br />' . $myrow['invtext']; - $LineCounter = $LineCounter + 2 + $LinesRequiredForText; - while ($LineCounter < ($_SESSION['PageLength'] - 6)) { - echo '<br />'; + + echo '<br><br>' . $myrow['invtext']; + + $LineCounter=$LineCounter+2+$LinesRequiredForText; + while ($LineCounter < ($_SESSION['PageLength'] -6)){ + echo '<br>'; $LineCounter++; } + /* Now print out the footer and totals */ - if ($InvOrCredit == 'Invoice') { - $DisplaySubTot = number_format($myrow['ovamount'], 2); - $DisplayFreight = number_format($myrow['ovfreight'], 2); - $DisplayTax = number_format($myrow['ovgst'], 2); - $DisplayTotal = number_format($myrow['ovfreight'] + $myrow['ovgst'] + $myrow['ovamount'], 2); + + if ($InvOrCredit=='Invoice') { + + $DisplaySubTot = number_format($myrow['ovamount'],2); + $DisplayFreight = number_format($myrow['ovfreight'],2); + $DisplayTax = number_format($myrow['ovgst'],2); + $DisplayTotal = number_format($myrow['ovfreight']+$myrow['ovgst']+$myrow['ovamount'],2); } else { - $DisplaySubTot = number_format(-$myrow['ovamount'], 2); - $DisplayFreight = number_format(-$myrow['ovfreight'], 2); - $DisplayTax = number_format(-$myrow['ovgst'], 2); - $DisplayTotal = number_format(-$myrow['ovfreight'] - $myrow['ovgst'] - $myrow['ovamount'], 2); + $DisplaySubTot = number_format(-$myrow['ovamount'],2); + $DisplayFreight = number_format(-$myrow['ovfreight'],2); + $DisplayTax = number_format(-$myrow['ovgst'],2); + $DisplayTotal = number_format(-$myrow['ovfreight']-$myrow['ovgst']-$myrow['ovamount'],2); } + /*Print out the invoice text entered */ echo '<table class=table1><tr> <td class=number>' . _('Sub Total') . '</td> - <td class=number bgcolor="#EEEEEE" width=15%>'.$DisplaySubTot.'</td></tr>'; + <td class=number bgcolor="#EEEEEE" width=15%>' . $DisplaySubTot . '</td></tr>'; echo '<tr><td class=number>' . _('Freight') . '</td> - <td class=number bgcolor="#EEEEEE">'.$DisplayFreight.'</td></tr>'; + <td class=number bgcolor="#EEEEEE">' . $DisplayFreight . '</td></tr>'; echo '<tr><td class=number>' . _('Tax') . '</td> - <td class=number bgcolor="#EEEEEE">'.$DisplayTax.'</td></tr>'; - if ($InvOrCredit == 'Invoice') { - echo '<tr><td class=number><b>' . _('TOTAL INVOICE') . '</b></td> - <td class=number bgcolor="#EEEEEE"><U><b>'.$DisplayTotal.'</b></U></td></tr>'; + <td class=number bgcolor="#EEEEEE">' . $DisplayTax . '</td></tr>'; + if ($InvOrCredit=='Invoice'){ + echo '<tr><td class=number><b>' . _('TOTAL INVOICE') . '</b></td> + <td class=number bgcolor="#EEEEEE"><U><b>' . $DisplayTotal . '</b></U></td></tr>'; } else { - echo '<tr><td class=number><font color=RED><b>' . _('TOTAL CREDIT') . '</b></font></td> - <td class=number bgcolor="#EEEEEE"><font color=RED><U><b>'.$DisplayTotal.'</b></U></font></td></tr>'; + echo '<tr><td class=number><font color=RED><b>' . _('TOTAL CREDIT') . '</b></font></td> + <td class=number bgcolor="#EEEEEE"><font color="red"><U><b>' . $DisplayTotal . '</b></U></font></td></tr>'; } echo '</table>'; } /* end of check to see that there was an invoice record to print */ $FromTransNo++; } /* end loop to print invoices */ } /*end of if FromTransNo exists */ - include ('includes/footer.inc'); + include('includes/footer.inc'); } /*end of else not PrintPDF */ -function PrintLinesToBottom($pdf, $Page_Height, $PageNumber, $FormDesign) { + + +function PrintLinesToBottom () { + + global $pdf; + global $PageNumber; + global $TopOfColHeadings; + global $Left_Margin; + global $Bottom_Margin; + global $line_height; + /* draw the vertical column lines right to the bottom */ - $pdf->line($FormDesign->DataLines->Line1->startx, $Page_Height - $FormDesign->DataLines->Line1->starty, $FormDesign->DataLines->Line1->endx, $Page_Height - $FormDesign->DataLines->Line1->endy); + $pdf->line($Left_Margin+97, $TopOfColHeadings+12,$Left_Margin+97,$Bottom_Margin); + /* Print a column vertical line */ - $pdf->line($FormDesign->DataLines->Line2->startx, $Page_Height - $FormDesign->DataLines->Line2->starty, $FormDesign->DataLines->Line2->endx, $Page_Height - $FormDesign->DataLines->Line2->endy); + $pdf->line($Left_Margin+350, $TopOfColHeadings+12,$Left_Margin+350,$Bottom_Margin); + /* Print a column vertical line */ - $pdf->line($FormDesign->DataLines->Line3->startx, $Page_Height - $FormDe... [truncated message content] |