projects
/
fa-stable.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fixed input sanitization.
[fa-stable.git]
/
reporting
/
includes
/
reports_classes.inc
diff --git
a/reporting/includes/reports_classes.inc
b/reporting/includes/reports_classes.inc
index f9fa8696934174b212ccde8e0f1e613f5f74532d..9aad89c586be0292fc8910109b1ae9abf65d51ce 100644
(file)
--- a/
reporting/includes/reports_classes.inc
+++ b/
reporting/includes/reports_classes.inc
@@
-9,9
+9,20
@@
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
***********************************************************************/
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
***********************************************************************/
+
+// Standard report classess
+define('RC_CUSTOMER', 0);
+define('RC_SUPPLIER', 1);
+define('RC_INVENTORY', 2);
+define('RC_MANUFACTURE', 3);
+define('RC_DIMENSIONS', 4);
+define('RC_BANKING', 5);
+define('RC_GL', 6);
+
class BoxReports
{
class BoxReports
{
- var $ar_classes;
+ var $ar_classes; // report class names
+ var $ar_reports;
var $ctrl_handlers = array();
function ReportClasses()
var $ctrl_handlers = array();
function ReportClasses()
@@
-19,43
+30,49
@@
class BoxReports
$this->ar_classes = array();
}
$this->ar_classes = array();
}
- function addReportClass($class_name)
+ function addReportClass($class_name
, $class_id=null
)
{
{
- $this->ar_classes[$class_name] = array();
+ if (!$class_id)
+ $class_id = count($this->ar_classes);
+ $this->ar_classes[$class_id] = $class_name;
+
+ return $class_id;
}
}
- function addReport($class
_name
, $id, $rep_name, $params=null)
+ function addReport($class, $id, $rep_name, $params=null)
{
{
- unset($this->ar_
classes[$class_name
][$id]); // unset std report if any
- $this->ar_
classes[$class_name
][$id] = new Report($id, $rep_name, $params);
+ unset($this->ar_
reports[$class
][$id]); // unset std report if any
+ $this->ar_
reports[$class
][$id] = new Report($id, $rep_name, $params);
}
function getDisplay($class=null)
{
}
function getDisplay($class=null)
{
- global $
table_style, $comp_path, $
path_to_root, $pdf_debug, $Ajax;
+ global $path_to_root, $pdf_debug, $Ajax;
$temp = array_values($this->ar_classes);
$display_class = $class==null ? $temp[0] : $this->ar_classes[$class];
$temp = array_values($this->ar_classes);
$display_class = $class==null ? $temp[0] : $this->ar_classes[$class];
- $class_counter = 0;
- $rep_counter = 0;
$st_reports = "";
$st_params = "";
$st_classes = "<b>" . _("Report Classes:") . "</b><br>";
$st_reports = "";
$st_params = "";
$st_classes = "<b>" . _("Report Classes:") . "</b><br>";
- foreach($this->ar_classes as $
key=>$valu
e)
+ foreach($this->ar_classes as $
class_id => $nam
e)
{
{
- $style = $class_counter==$_REQUEST['Class'] ? '' : "style='display:none'";
- $acc = access_string($key);
+ if (!isset($this->ar_reports[$class_id]))
+ continue; // e.g. no dimensions
+ $style = $class_id==$_REQUEST['Class'] ? '' : "style='display:none'";
+// $cname = access_string($key, true);
+// $style = $_REQUEST['Class']==$cname ? '' : "style='display:none'";
+ $acc = access_string($name);
$st_classes .= "<a href='"
$st_classes .= "<a href='"
- .$_SERVER['PHP_SELF']."?Class=$class_
counter
'"
+ .$_SERVER['PHP_SELF']."?Class=$class_
id
'"
." class='menu_option' id='".default_focus()."'"
." class='menu_option' id='".default_focus()."'"
- ." onclick='return showClass(
$class_counter
);'$acc[1]>$acc[0]</a> <br>";
- $st_reports .= "<table
id='TAB_" . $class_counter ."' $style cellpadding=0 cellspacing=0 width='100%'><tr><td><b>" . _("Reports For Class: ") . " $key
</b></td></tr>\n";
- foreach($
value as
$report)
+ ." onclick='return showClass(
\"$class_id\"
);'$acc[1]>$acc[0]</a> <br>";
+ $st_reports .= "<table
class='repclass' id='TAB_" . $class_id ."' $style cellpadding=0 cellspacing=0 border=0 width='100%'><tr><td><b>" . _("Reports For Class: ") . " $name
</b></td></tr>\n";
+ foreach($
this->ar_reports[$class_id] as $rep_id =>
$report)
{
$acc = access_string($report->name);
$st_reports .= "<tr><td><a class='printlink' href='"
{
$acc = access_string($report->name);
$st_reports .= "<tr><td><a class='printlink' href='"
- .$_SERVER['PHP_SELF']."?Class=$class_
counter
&rep_id=$report->id'"
+ .$_SERVER['PHP_SELF']."?Class=$class_
id
&rep_id=$report->id'"
." id='".default_focus()."'"
."$acc[1]>$acc[0]</a><tr><td>\n";
if (isset($_REQUEST['rep_id']) && $_REQUEST['rep_id']==$report->id) {
." id='".default_focus()."'"
."$acc[1]>$acc[0]</a><tr><td>\n";
if (isset($_REQUEST['rep_id']) && $_REQUEST['rep_id']==$report->id) {
@@
-66,15
+83,14
@@
class BoxReports
. "<form method='POST' action='$action' target='_blank'>\n";
$st_params .= submit('Rep'.$report->id,
_("Display: ") . access_string($report->name, true),
. "<form method='POST' action='$action' target='_blank'>\n";
$st_params .= submit('Rep'.$report->id,
_("Display: ") . access_string($report->name, true),
- false, '', $pdf_debug ? false : 'default') . hidden('REP_ID', $report->id, false).'<br><br>';
- $st_params .= $this->getOptions($report->get_controls());
+ false, '', $pdf_debug ? false : 'default
process
') . hidden('REP_ID', $report->id, false).'<br><br>';
+ $st_params .= $this->getOptions($report->get_controls()
, $report->id
);
$st_params .= "\n</form></td></tr></table>\n";
set_focus('Rep'.$report->id);
$Ajax->addUpdate(true, 'rep_form', $st_params);
}
}
$st_reports .= "</table>";
$st_params .= "\n</form></td></tr></table>\n";
set_focus('Rep'.$report->id);
$Ajax->addUpdate(true, 'rep_form', $st_params);
}
}
$st_reports .= "</table>";
- $class_counter++;
}
$st_params = "<div id='rep_form'>".
}
$st_params = "<div id='rep_form'>".
@@
-83,9
+99,11
@@
class BoxReports
$st = "<script language='javascript'>
function showClass(pClass) {
$st = "<script language='javascript'>
function showClass(pClass) {
- for(i=0; i<$class_counter; i++) {
- document.getElementById(\"TAB_\" + i).style.display=
- i==pClass ? \"block\" : \"none\";
+ var classes = document.getElementsBySelector('.repclass');
+ for(var i in classes) {
+ cl = classes[i];
+ cl.style.display=
+ (cl.id==('TAB_'+pClass)) ? \"block\" : \"none\";
}
document.getElementById('rep_form').innerHTML = '';
// document.getElementById('rep_form').style.display = 'none';
}
document.getElementById('rep_form').innerHTML = '';
// document.getElementById('rep_form').style.display = 'none';
@@
-108,7
+126,7
@@
class BoxReports
return $st;
}
return $st;
}
- function getOptions($controls)
+ function getOptions($controls
, $id = 0
)
{
$st = '';
if ($controls == null)
{
$st = '';
if ($controls == null)
@@
-123,6
+141,8
@@
class BoxReports
if ($ctrl) break;
}
if ($ctrl == '') {
if ($ctrl) break;
}
if ($ctrl == '') {
+ if (isset($_COOKIE['select'][$id][$cnt])) // saved parameters 2010-10-06 Joe Hunt
+ $_POST['PARAM_'.$cnt] = $_COOKIE['select'][$id][$cnt];
$ctrl = $this->get_ctrl('PARAM_'.$cnt, $type);
}
if ($ctrl != '') {
$ctrl = $this->get_ctrl('PARAM_'.$cnt, $type);
}
if ($ctrl != '') {
@@
-148,7
+168,7
@@
class BoxReports
//
function get_ctrl($name, $type)
{
//
function get_ctrl($name, $type)
{
- global $path_to_root, $use_date_picker, $pdf_debug, $print_invoice_no;
+ global $path_to_root, $use_date_picker, $pdf_debug, $print_invoice_no
, $def_print_destination
;
$st = '';
switch ($type)
$st = '';
switch ($type)
@@
-164,31
+184,35
@@
class BoxReports
case 'DATEENDM':
case 'DATEBEGINTAX':
case 'DATEENDTAX':
case 'DATEENDM':
case 'DATEBEGINTAX':
case 'DATEENDTAX':
- if ($type == 'DATEBEGIN')
- $date = begin_fiscalyear();
- elseif ($type == 'DATEEND')
- $date = end_fiscalyear();
- else
- $date = Today();
- if ($type == 'DATEBEGINM')
- $date = begin_month($date);
- elseif ($type == 'DATEENDM')
- $date = end_month($date);
- elseif ($type == 'DATEBEGINTAX' || $type == 'DATEENDTAX')
+ if (!isset($_POST[$name]))
{
{
- $row = get_company_prefs();
- $edate = add_months($date, -$row['tax_last']);
- $edate = end_month($edate);
- if ($type == 'DATEENDTAX')
- $date = $edate;
+ if ($type == 'DATEBEGIN')
+ $date = begin_fiscalyear();
+ elseif ($type == 'DATEEND')
+ $date = end_fiscalyear();
else
else
+ $date = Today();
+ if ($type == 'DATEBEGINM')
+ $date = begin_month($date);
+ elseif ($type == 'DATEENDM')
+ $date = end_month($date);
+ elseif ($type == 'DATEBEGINTAX' || $type == 'DATEENDTAX')
{
{
- $bdate = begin_month($edate);
- $bdate = add_months($bdate, -$row['tax_prd'] + 1);
- $date = $bdate;
+ $row = get_company_prefs();
+ $edate = add_months($date, -$row['tax_last']);
+ $edate = end_month($edate);
+ if ($type == 'DATEENDTAX')
+ $date = $edate;
+ else
+ {
+ $bdate = begin_month($edate);
+ $bdate = add_months($bdate, -$row['tax_prd'] + 1);
+ $date = $bdate;
+ }
}
}
}
}
-
+ else // saved parameters 2010-10-16 Joe Hunt
+ $date = $_POST[$name];
$st = "<input type='text' name='$name' value='$date'>";
if ($use_date_picker)
$st .= "<a href=\"javascript:date_picker(document.forms[0].$name);\">"
$st = "<input type='text' name='$name' value='$date'>";
if ($use_date_picker)
$st .= "<a href=\"javascript:date_picker(document.forms[0].$name);\">"
@@
-205,7
+229,10
@@
class BoxReports
case 'DESTINATION':
$sel = array(_("PDF/Printer"), "Excel");
case 'DESTINATION':
$sel = array(_("PDF/Printer"), "Excel");
- return array_selector($name, null, $sel);
+ $def = 0;
+ if (isset($def_print_destination) && $def_print_destination == 1)
+ $def = 1;
+ return array_selector($name, $def, $sel);
case 'COMPARE':
$sel = array(_("Accumulated"), _("Period Y-1"), _("Budget"));
case 'COMPARE':
$sel = array(_("Accumulated"), _("Period Y-1"), _("Budget"));
@@
-226,7
+253,8
@@
class BoxReports
return "<input type='text' name='$name'>";
case 'TEXTBOX':
return "<input type='text' name='$name'>";
case 'TEXTBOX':
- return "<textarea rows=4 cols=30 name='$name'></textarea>";
+ $value = (isset($_POST[$name]) ? $_POST[$name] : "");
+ return "<textarea rows=4 cols=30 name='$name'>$value</textarea>";
case 'ACCOUNTS': // not used
return gl_account_types_list($name, null, _("No Account Group Filter"), true);
case 'ACCOUNTS': // not used
return gl_account_types_list($name, null, _("No Account Group Filter"), true);
@@
-379,7
+407,8
@@
class BoxReports
$tag_type = TAG_ACCOUNT;
else
$tag_type = TAG_DIMENSION;
$tag_type = TAG_ACCOUNT;
else
$tag_type = TAG_DIMENSION;
- return tag_list($name, 5, $tag_type, true, _("No tags"));
+ //return tag_list($name, 5, $tag_type, true, false, _("No tags"));
+ return tag_list($name, 5, $tag_type, true);
}
return '';
}
return '';
@@
-429,23
+458,28
@@
function gl_systypes_list($name, $value=null, $spec_opt=false)
)
);
}
)
);
}
-
+/*
+ Add extension/custom reports to report manager.
+*/
function add_custom_reports(&$reports)
{
function add_custom_reports(&$reports)
{
- global $installed_extensions, $path_to_root
, $comp_path
;
+ global $installed_extensions, $path_to_root;
// include reports installed inside extension modules
if (count($installed_extensions) > 0)
{
$extensions = $installed_extensions;
foreach ($extensions as $ext)
// include reports installed inside extension modules
if (count($installed_extensions) > 0)
{
$extensions = $installed_extensions;
foreach ($extensions as $ext)
- if (($ext['active'] && $ext['type'] == '
module
')) {
+ if (($ext['active'] && $ext['type'] == '
extension
')) {
$file = $path_to_root.'/'.$ext['path']."/reporting/reports_custom.php";
$file = $path_to_root.'/'.$ext['path']."/reporting/reports_custom.php";
- if (file_exists($file))
+ if (file_exists($file)) {
+ set_ext_domain($ext['path']);
include_once($file);
include_once($file);
+ set_ext_domain();
+ }
}
}
}
}
- $file =
$comp_path.'/'.user_company
()."/reporting/reports_custom.php";
+ $file =
company_path
()."/reporting/reports_custom.php";
if (file_exists($file))
include_once($file);
}
if (file_exists($file))
include_once($file);
}