# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
-# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+# MA 02110-1335, USA.
#======================================================================
#
# module for preparing Income Statement and Balance Sheet
use SL::DB::Default;
use SL::DB::Project;
use SL::DB::Customer;
-use SL::PE;
use SL::RP;
use SL::Iconv;
use SL::ReportGenerator;
$::form->{title} = $title{$::form->{report}};
$::request->{layout}->add_javascripts('autocomplete_customer.js');
+ $::request->{layout}->add_javascripts('autocomplete_project.js');
$::form->{fromdate} = DateTime->today->truncate(to => 'year')->to_kivitendo;
$::form->{todate} = DateTime->today->truncate(to => 'year')->add(years => 1)->add(days => -1)->to_kivitendo;
my $project = $form->{project_id} ? SL::DB::Project->new(id => $form->{project_id})->load : undef;
$form->{projectnumber} = $project ? $project->projectnumber : '';
+ # make sure todate and fromdate always have a value, even if the date fields
+ # were left empty or the inputs weren't valid dates/couldn't be parsed
+
+ $project = SL::DB::Project->new() unless $project; # dummy object for dbh
+ unless ($::locale->parse_date_to_object($::form->{fromdate})) {
+ ($form->{fromdate}) = $project->db->dbh->selectrow_array('select min(transdate) from acc_trans');
+ };
+
+ unless ($::locale->parse_date_to_object($::form->{todate})) {
+ ($form->{todate}) = $project->db->dbh->selectrow_array('select max(transdate) from acc_trans');
+ };
+
$form->{nextsub} = "generate_projects";
$form->{title} = $locale->text('Project Transactions');
RP->trial_balance(\%myconfig, \%$form);
sub generate_ar_aging {
$main::lxdebug->enter_sub();
- $main::auth->assert('general_ledger');
+ $main::auth->assert('general_ledger | ar_transactions');
my $form = $main::form;
my %myconfig = %main::myconfig;
sub generate_ap_aging {
$main::lxdebug->enter_sub();
- $main::auth->assert('general_ledger');
+ $main::auth->assert('general_ledger | ap_transactions');
my $form = $main::form;
my %myconfig = %main::myconfig;
$report->set_columns(%column_defs);
$report->set_column_order(@columns);
- my @hidden_variables = qw(todate customer vendor arap title ct fordate reporttype);
+ my @hidden_variables = qw(todate customer vendor arap title ct fordate reporttype department);
$report->set_export_options('generate_' . ($form->{arap} eq 'ar' ? 'ar' : 'ap') . '_aging', @hidden_variables);
my @options;