From 7e6e0807990447d2977b970c3a0fd28dc9250194 Mon Sep 17 00:00:00 2001 From: Joe Hunt Date: Mon, 29 Mar 2021 10:01:40 +0200 Subject: [PATCH] Feature 5388: Print Invoices (documents) list gets too long. Fixed by default 180 days in company setup. --- admin/company_preferences.php | 15 ++++++++++++++- reporting/includes/reports_classes.inc | 18 +++++++++++++----- sql/en_US-demo.sql | 1 + sql/en_US-new.sql | 1 + 4 files changed, 29 insertions(+), 6 deletions(-) diff --git a/admin/company_preferences.php b/admin/company_preferences.php index 07a56868..5965d7a6 100644 --- a/admin/company_preferences.php +++ b/admin/company_preferences.php @@ -55,6 +55,12 @@ if (isset($_POST['update']) && $_POST['update'] != "") set_focus('round_to'); $input_error = 1; } + if (!check_num('max_days_in_docs', 1)) + { + display_error(_("Max day range in Documents must be a positive number.")); + set_focus('max_days_in_docs'); + $input_error = 1; + } if ($_POST['add_pct'] != "" && !is_numeric($_POST['add_pct'])) { display_error(_("Add Price from Std Cost field must be number.")); @@ -146,7 +152,7 @@ if (isset($_POST['update']) && $_POST['update'] != "") 'postal_address','phone', 'fax', 'email', 'coy_logo', 'domicile', 'use_dimension', 'curr_default', 'f_year', 'shortname_name_in_list', 'no_item_list' => 0, 'no_customer_list' => 0, 'no_supplier_list' => 0, - 'base_sales', 'ref_no_auto_increase' => 0, 'dim_on_recurrent_invoice' => 0, 'long_description_invoice' => 0, + 'base_sales', 'ref_no_auto_increase' => 0, 'dim_on_recurrent_invoice' => 0, 'long_description_invoice' => 0, 'max_days_in_docs' => 180, 'time_zone' => 0, 'company_logo_report' => 0, 'barcodes_on_stock' => 0, 'print_dialog_direct' => 0, 'add_pct', 'round_to', 'login_tout', 'auto_curr_reval', 'bcc_email', 'alternative_tax_include_on_docs', 'suppress_tax_rates', 'use_manufacturing', 'use_fixed_assets')) @@ -188,6 +194,12 @@ $_POST['no_supplier_list'] = $myrow["no_supplier_list"]; $_POST['curr_default'] = $myrow["curr_default"]; $_POST['f_year'] = $myrow["f_year"]; $_POST['time_zone'] = $myrow["time_zone"]; +if (!isset($myrow["max_days_in_docs"])) +{ + set_company_pref("max_days_in_docs", "setup.company", "smallint", 5, '180'); + $myrow["max_days_in_docs"] = get_company_pref("max_days_in_docs"); +} +$_POST['max_days_in_docs'] = $myrow["max_days_in_docs"]; if (!isset($myrow["company_logo_report"])) { set_company_pref("company_logo_report", "setup.company", "tinyint", 1, '0'); @@ -302,6 +314,7 @@ check_row(_("Search Item List"), 'no_item_list', null); check_row(_("Search Customer List"), 'no_customer_list', null); check_row(_("Search Supplier List"), 'no_supplier_list', null); text_row_ex(_("Login Timeout:"), 'login_tout', 10, 10, '', null, null, _('seconds')); +text_row_ex(_("Max day range in documents"), 'max_days_in_docs', 10, 10, '', null, null, _('days.')); end_outer_table(1); diff --git a/reporting/includes/reports_classes.inc b/reporting/includes/reports_classes.inc index dd76d84d..38973243 100644 --- a/reporting/includes/reports_classes.inc +++ b/reporting/includes/reports_classes.inc @@ -170,7 +170,7 @@ class BoxReports { global $path_to_root, $SysPrefs, $type_shortcuts; - + $day_range = (isset($SysPrefs->max_days_in_docs) ? $SysPrefs->max_days_in_docs : 180); $st = ''; switch ($type) { @@ -324,6 +324,7 @@ class BoxReports .TB_PREF."debtor_trans debtor_trans LEFT JOIN ".TB_PREF."voided AS vd ON debtor_trans.type=vd.type AND debtor_trans.trans_no=vd.id WHERE debtor_trans.type=".ST_SALESINVOICE." AND debtor.debtor_no=debtor_trans.debtor_no AND ISNULL(vd.id) + AND debtor_trans.tran_date > SUBDATE(CURRENT_DATE, INTERVAL $day_range DAY) ORDER BY debtor_trans.trans_no DESC"; return combo_input($name, '', $sql, 'TNO', 'IName',array('order'=>false)); @@ -336,6 +337,7 @@ class BoxReports .TB_PREF."debtor_trans debtor_trans LEFT JOIN ".TB_PREF."voided AS vd ON debtor_trans.type=vd.type AND debtor_trans.trans_no=vd.id WHERE debtor_trans.type=".ST_CUSTCREDIT." AND debtor.debtor_no=debtor_trans.debtor_no AND ISNULL(vd.id) + AND debtor_trans.tran_date > SUBDATE(CURRENT_DATE, INTERVAL $day_range DAY) ORDER BY debtor_trans.trans_no DESC"; return combo_input($name, '', $sql, 'TNO', 'IName',array('order'=>false)); @@ -347,6 +349,7 @@ class BoxReports .TB_PREF."debtor_trans debtor_trans LEFT JOIN ".TB_PREF."voided AS vd ON debtor_trans.type=vd.type AND debtor_trans.trans_no=vd.id WHERE debtor_trans.type=".ST_CUSTDELIVERY." AND debtor.debtor_no=debtor_trans.debtor_no AND ISNULL(vd.id) + AND debtor_trans.tran_date > SUBDATE(CURRENT_DATE, INTERVAL $day_range DAY) ORDER BY debtor_trans.trans_no DESC"; return combo_input($name, '', $sql, 'TNO', 'IName',array('order'=>false)); @@ -355,8 +358,9 @@ class BoxReports $sql = "SELECT sorder.order_no, concat(sorder.$ref, '-', debtor.name) as IName FROM ".TB_PREF."debtors_master debtor," .TB_PREF."sales_orders sorder - WHERE debtor.debtor_no=sorder.debtor_no AND sorder.trans_type=".ST_SALESORDER - ." ORDER BY sorder.order_no DESC"; + WHERE debtor.debtor_no=sorder.debtor_no AND sorder.trans_type=".ST_SALESORDER." + AND sorder.ord_date > SUBDATE(CURRENT_DATE, INTERVAL $day_range DAY) + ORDER BY sorder.order_no DESC"; return combo_input($name, '', $sql, 'order_no', 'IName',array('order'=>false)); case 'QUOTATIONS': @@ -364,8 +368,9 @@ class BoxReports $sql = "SELECT sorder.order_no, concat(sorder.$ref, '-', debtor.name) as IName FROM ".TB_PREF."debtors_master debtor," .TB_PREF."sales_orders sorder - WHERE debtor.debtor_no=sorder.debtor_no AND sorder.trans_type=".ST_SALESQUOTE - ." ORDER BY sorder.order_no DESC"; + WHERE debtor.debtor_no=sorder.debtor_no AND sorder.trans_type=".ST_SALESQUOTE." + AND sorder.ord_date > SUBDATE(CURRENT_DATE, INTERVAL $day_range DAY) + ORDER BY sorder.order_no DESC"; return combo_input($name, '', $sql, 'order_no', 'IName',array('order'=>false)); case 'PO': @@ -374,6 +379,7 @@ class BoxReports FROM ".TB_PREF."suppliers supplier," .TB_PREF."purch_orders po WHERE supplier.supplier_id=po.supplier_id + AND po.ord_date > SUBDATE(CURRENT_DATE, INTERVAL $day_range DAY) ORDER BY po.order_no DESC"; return combo_input($name, '', $sql, 'order_no', 'IName',array('order'=>false)); @@ -390,6 +396,7 @@ class BoxReports .TB_PREF."supp_trans trans LEFT JOIN ".TB_PREF."voided AS vd ON trans.type=vd.type AND trans.trans_no=vd.id WHERE trans.type IN(".ST_BANKPAYMENT.",".ST_SUPPAYMENT.",".ST_SUPPCREDIT.") AND supplier.supplier_id=trans.supplier_id AND ISNULL(vd.id) + AND trans.tran_date > SUBDATE(CURRENT_DATE, INTERVAL $day_range DAY) ORDER BY trans.trans_no DESC"; return combo_input($name, '', $sql, 'TNO', 'IName',array('order'=>false)); @@ -403,6 +410,7 @@ class BoxReports .TB_PREF."debtor_trans trans LEFT JOIN ".TB_PREF."voided AS vd ON trans.type=vd.type AND trans.trans_no=vd.id WHERE trans.type IN(".ST_BANKDEPOSIT.",".ST_CUSTPAYMENT.",".ST_CUSTCREDIT.") AND debtor.debtor_no=trans.debtor_no AND ISNULL(vd.id) + AND trans.tran_date > SUBDATE(CURRENT_DATE, INTERVAL $day_range DAY) ORDER BY trans.trans_no DESC"; return combo_input($name, '', $sql, 'TNO', 'IName',array('order'=>false)); diff --git a/sql/en_US-demo.sql b/sql/en_US-demo.sql index 5fe959bd..54774a41 100644 --- a/sql/en_US-demo.sql +++ b/sql/en_US-demo.sql @@ -1939,6 +1939,7 @@ INSERT INTO `0_sys_prefs` VALUES ('use_manufacturing','setup.company', 'tinyint', 1, '1'), ('dim_on_recurrent_invoice','setup.company', 'tinyint', 1, '0'), ('long_description_invoice','setup.company', 'tinyint', 1, '0'), +('max_days_in_docs','setup.company', 'smallint', 5, '180'), ('use_fixed_assets','setup.company', 'tinyint', 1, '1'); -- Structure of table `0_tag_associations` -- diff --git a/sql/en_US-new.sql b/sql/en_US-new.sql index 2d9ca114..d923e768 100644 --- a/sql/en_US-new.sql +++ b/sql/en_US-new.sql @@ -1612,6 +1612,7 @@ INSERT INTO `0_sys_prefs` VALUES ('use_manufacturing','setup.company', 'tinyint', 1, '1'), ('dim_on_recurrent_invoice','setup.company', 'tinyint', 1, '0'), ('long_description_invoice','setup.company', 'tinyint', 1, '0'), +('max_days_in_docs','setup.company', 'smallint', 5, '180'), ('use_fixed_assets','setup.company', 'tinyint', 1, '1'); -- Structure of table `0_tag_associations` -- -- 2.30.2