. ***********************************************************************/ // 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 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; include_once($path_to_root . "/includes/types.inc"); $url = $path_to_root.'/reporting/prn_redirect.php?'; $def_orientation = (user_def_print_orientation() == 1 ? 1 : 0); switch ($type_no) { case ST_SALESQUOTE : $rep = 111; // 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_SALESORDER : $rep = 109; // from, to, currency, email, quote, comments, orientation $ar = array( 'PARAM_0' => $doc_no, 'PARAM_1' => $doc_no, 'PARAM_2' => '', 'PARAM_3' => $email, 'PARAM_4' => 0, 'PARAM_5' => '', 'PARAM_6' => $def_orientation); break; case ST_CUSTDELIVERY : $rep = 110; // from, to, email, packing slip, comments, orientation $ar = array( 'PARAM_0' => $doc_no, 'PARAM_1' => $doc_no, 'PARAM_2' => $email, 'PARAM_3' => $extra, 'PARAM_4' => '', 'PARAM_5' => $def_orientation); break; 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' => $doc_no, 'PARAM_1' => $doc_no, 'PARAM_2' => '', 'PARAM_3' => $email, 'PARAM_4' => '', 'PARAM_5' => '', 'PARAM_6' => $rep == 107 ? '' : $def_orientation); if ($rep == 107) $ar['PARAM_7'] = $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' => $email, 'PARAM_4' => '', 'PARAM_5' => $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; case ST_DIMENSION : $rep = 501; // from, to, email, comments, orientation $ar = array( 'PARAM_0' => $doc_no, 'PARAM_1' => $doc_no, 'PARAM_2' => 1, 'PARAM_3' => '', 'PARAM_4' => $def_orientation); break; default: return null; } return print_link($link_text, $rep, $ar, "", $icon, $class, $id); } // // 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, $SysPrefs; $url = $dir == '' ? $path_to_root.'/reporting/prn_redirect.php?' : $dir; $id = default_focus($id); foreach($pars as $par => $val) { $pars[$par] = "$par=".urlencode($val); } $pars[] = 'REP_ID='.urlencode($rep); $url .= implode ('&', $pars); if ($class != '') $class = $SysPrefs->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 "$pars[0]"; } /* // Purpose: Function to parse a string into parameters // Release Date: 2014-12-26 // Author: ApMuthu // Usage: $str = "PPFrt#2000 CID#6378465 TaxEx#2345-038 abcde ertrgdert COD#4253 jdegtd PIN#6473654"; $p = parse_notes_params($str); echo print_r($p, true); An example of usage will be in the reporting/rep110.php file at near the end just before the last $rep-Font(); statement: $notes_params = parse_notes_params($branch['notes']); if ($packing_slip == 0 && array_key_exists('CID', $notes_params)) { $rep->NewLine(1); $rep->TextCol(1, 7, "Old Customer# : " . $notes_params['CID'], - 2); } */ function parse_notes_params($str, $sep=" ", $delim="#") { $str_params = explode($sep, $str); $param_array=Array('notes' => ''); foreach ($str_params AS $str_param) { $param_set=explode($delim, trim($str_param)); $key = (array_key_exists(0, $param_set) ? trim($param_set[0]) : ''); $val = (array_key_exists(1, $param_set) ? trim($param_set[1]) : ''); if (strlen($key) > 0 && strlen($val) > 0) { $param_array[$key]=$val; } else { // stop at first missing parameter set // break; // Collect the rest into notes $param_array['notes'] .= (" " . $str_param); } } $param_array['notes'] = trim($param_array['notes']); return $param_array; }