<?php
+/**********************************************************************
+ Copyright (C) FrontAccounting, LLC.
+ Released under the terms of the GNU General Public License, GPL,
+ as published by the Free Software Foundation, either version 3
+ of the License, or (at your option) any later version.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
+***********************************************************************/
+// Link to printing single document with bulk report template file.
+// Ex. label_cell(print_document_link($myrow['order_no'], _("Print")), $type);
+// or display_note(print_document_link($order_no, _("Print this order")));
+// You only need full parameter list for invoices/credit notes
-// Put this on the page only once an outside a form, e.g. print_hidden_script(systypes::sales_order());
-// If you have both invoices and credit notes on the same page use 10 or 11. Is doesn't matter which.
-
-function print_hidden_script($type_no)
+function print_document_link($doc_no, $link_text, $link=true, $type_no,
+ $icon=false, $class='printlink', $id='', $email=0, $extra=0)
{
- global $path_to_root;
+ global $path_to_root, $def_print_orientation;
include_once($path_to_root . "/includes/types.inc");
- $action = "";
+
+ $url = $path_to_root.'/reporting/prn_redirect.php?';
+ $def_orientation = (isset($def_print_orientation) && $def_print_orientation == 1 ? 1 : 0);
switch ($type_no)
{
- case systypes::sales_order() :
- $action = "$path_to_root/reporting/rep109.php";
+ case ST_SALESQUOTE :
+ $rep = 111;
+ // from, to, currency, email, comments, orientation
$ar = array(
- 'PARAM_0' => 0, // from - these values are updated in print_document_link()
- 'PARAM_1' => 0, // to
- 'PARAM_2' => "", // currency
- 'PARAM_3' => get_first_bank_account(), // bank account
- 'PARAM_4' => 0, // email
- 'PARAM_5' => 0, // quote
- 'PARAM_6' => ""); // comments
+ 'PARAM_0' => $doc_no,
+ 'PARAM_1' => $doc_no,
+ 'PARAM_2' => '',
+ 'PARAM_3' => $email,
+ 'PARAM_4' => '',
+ 'PARAM_5' => $def_orientation);
break;
- case systypes::cust_dispatch() :
- $action = "$path_to_root/reporting/rep110.php";
+ case ST_SALESORDER :
+ $rep = 109;
+ // from, to, currency, email, quote, comments, orientation
$ar = array(
- 'PARAM_0' => 0, // from - these values are updated in print_document_link()
- 'PARAM_1' => 0, // to
- 'PARAM_2' => 0, // email
- 'PARAM_3' => ""); // comments
+ 'PARAM_0' => $doc_no,
+ 'PARAM_1' => $doc_no,
+ 'PARAM_2' => '',
+ 'PARAM_3' => $email,
+ 'PARAM_4' => 0,
+ 'PARAM_5' => '',
+ 'PARAM_6' => $def_orientation);
break;
- case 10 : // Sales Invoice
- case 11 : // Customer Credit Note
- $action = "$path_to_root/reporting/rep107.php";
+ case ST_CUSTDELIVERY :
+ $rep = 110;
+ // from, to, email, packing slip, comments, orientation
$ar = array(
- 'PARAM_0' => 0, // from - these values are updated in print_document_link()
- 'PARAM_1' => 0, // to
- 'PARAM_2' => "", // currency
- 'PARAM_3' => get_first_bank_account(), // bank account
- 'PARAM_4' => 0, // email
- 'PARAM_5' => "", // paylink
- 'PARAM_6' => "", // comments
- 'PARAM_7' => 0); // IV or CN
+ 'PARAM_0' => $doc_no,
+ 'PARAM_1' => $doc_no,
+ 'PARAM_2' => $email,
+ 'PARAM_3' => $extra,
+ 'PARAM_4' => '',
+ 'PARAM_5' => $def_orientation);
break;
- case systypes::po() :
- $action = "$path_to_root/reporting/rep209.php";
+ case ST_SALESINVOICE : // Sales Invoice
+ case ST_CUSTCREDIT : // Customer Credit Note
+ $rep = $type_no==ST_CUSTCREDIT ? 113 : 107;
+ // from, to, currency, email, paylink, comments, orientation
$ar = array(
- 'PARAM_0' => 0, // from - these values are updated in print_document_link()
- 'PARAM_1' => 0, // to
- 'PARAM_2' => "", // currency
- 'PARAM_3' => get_first_bank_account(), // bank account
- 'PARAM_4' => 0, // email
- 'PARAM_5' => ""); // comments
+ 'PARAM_0' => $doc_no,
+ 'PARAM_1' => $doc_no,
+ 'PARAM_2' => '',
+ 'PARAM_3' => $email,
+ 'PARAM_4' => '',
+ 'PARAM_5' => '',
+ 'PARAM_6' => $def_orientation);
break;
+ case ST_PURCHORDER :
+ $rep = 209;
+ // from, to, currency, email, comments, orientation
+ $ar = array(
+ 'PARAM_0' => $doc_no,
+ 'PARAM_1' => $doc_no,
+ 'PARAM_2' => '',
+ 'PARAM_3' => $email,
+ 'PARAM_4' => '',
+ 'PARAM_5' => $def_orientation);
+ break;
+ case ST_CUSTPAYMENT :
+ $rep = 112;
+ // from, to, currency, comments, orientation
+ $ar = array(
+ 'PARAM_0' => $doc_no,
+ 'PARAM_1' => $doc_no,
+ 'PARAM_2' => '',
+ 'PARAM_3' => '',
+ 'PARAM_4' => $def_orientation);
+ break;
+ case ST_SUPPAYMENT :
+ $rep = 210;
+ // from, to, currency, email, comments, orientation
+ $ar = array(
+ 'PARAM_0' => $doc_no,
+ 'PARAM_1' => $doc_no,
+ 'PARAM_2' => '',
+ 'PARAM_3' => $email,
+ 'PARAM_4' => '',
+ 'PARAM_5' => $def_orientation);
+ break;
+ case ST_WORKORDER :
+ $rep = 409;
+ // from, to, email, comments orientation
+ $ar = array(
+ 'PARAM_0' => $doc_no,
+ 'PARAM_1' => $doc_no,
+ 'PARAM_2' => $email,
+ 'PARAM_3' => '',
+ 'PARAM_4' => $def_orientation);
+ break;
+// default: $ar = array();
}
- $st = "<form method='post' name='pdf_form' action='$action'>";
- foreach ($ar as $key => $value)
- {
- $st .= "<input type='hidden' name='$key' value='$value' />";
- }
- $st .= "</form>\n";
- $st .= "<script type='text/javascript'>
-<!--
-function printDocument(docno, typeno) {
- document.pdf_form.PARAM_0.value = document.pdf_form.PARAM_1.value = docno;
- if (typeno == 10 || typeno == 11)
- document.pdf_form.PARAM_7.value = typeno;
- window.open('','REP_WINDOW','toolbar=no,scrollbar=no,resizable=yes,menubar=no');
- document.pdf_form.target='REP_WINDOW';
- document.pdf_form.submit();
+
+ return print_link($link_text, $rep, $ar, "", $icon, $class, $id);
}
--->
-</script>\n";
+//
+// Universal link to any kind of report.
+//
+function print_link($link_text, $rep, $pars = array(), $dir = '',
+ $icon=false, $class='printlink', $id='')
+{
+ global $path_to_root, $pdf_debug;
- echo $st;
-}
+ $url = $dir == '' ? $path_to_root.'/reporting/prn_redirect.php?' : $dir;
-// Ex. label_cell(print_document_link($myrow['order_no'], _("Print")));
-// or display_note(print_document_link($order_no, _("Print this order")));
-// or if a button
-// button("button", _("Print this order"), print_document_link($order_no, "", false))";
-// or if a button inside a TD
-// button_cell("button", _("Print this order"), print_document_link($order_no, "", false))";
-//
-// You only need full parameter list for invoices/credit notes
+ $id = default_focus($id);
+ foreach($pars as $par => $val) {
+ $pars[$par] = "$par=".urlencode($val);
+ }
+ $pars[] = 'REP_ID='.urlencode($rep);
+ $url .= implode ('&', $pars);
-function print_document_link($doc_no, $link_text, $link=true, $type_no=0)
-{
- if ($link)
- return "<a href=\"javascript:printDocument('$doc_no', '$type_no');\">$link_text</a>";
- else
- return "javascript:printDocument('$doc_no', '$type_no');";
+ if ($class != '')
+ $class = $pdf_debug ? '' : " class='$class'";
+ if ($id != '')
+ $id = " id='$id'";
+ $pars = access_string($link_text);
+ if (user_graphic_links() && $icon)
+ $pars[0] = set_icon($icon, $pars[0]);
+ return "<a target='_blank' href='$url'$id$class $pars[1]>$pars[0]</a>";
}
-function get_first_bank_account()
-{
- $sql = "SELECT ".TB_PREF."bank_accounts.account_code FROM ".TB_PREF."bank_accounts, ".TB_PREF."company
- WHERE bank_curr_code=curr_default LIMIT 0, 1";
- $result = db_query($sql);
- $row = db_fetch_row($result);
- return $row[0];
-}
?>
\ No newline at end of file