use POSIX qw(strftime);
use List::Util qw(sum first max);
+use List::UtilsBy qw(sort_by);
use SL::AR;
use SL::FU;
use SL::IS;
use SL::PE;
use SL::DB::Default;
+use SL::DB::Invoice;
use SL::ReportGenerator;
require "bin/mozilla/arap.pl";
my %myconfig = %main::myconfig;
$form->create_links("AR", \%myconfig, "customer");
+ $form->{invoice_obj} = $form->{id} ? SL::DB::Invoice->new(id => $form->{id})->load : undef;
my %saved;
if (!$params{dont_save}) {
gldate => $form->{"gldate_$i"},
};
- # default account for current assets (i.e. 1801 - SKR04) if no account is selected
- $form->{accno_arap} = IS->get_standard_accno_current_assets(\%myconfig, \%$form);
+ # default account for current assets (i.e. 1801 - SKR04) if no account is selected
+ $form->{accno_arap} = IS->get_standard_accno_current_assets(\%myconfig, \%$form);
$payment->{selectAR_paid} =
NTI($cgi->popup_menu('-name' => "AR_paid_$i",
push @payments, $payment;
}
+ my @empty = grep { $_->{paid} eq '' } @payments;
+ @payments = (
+ (sort_by { DateTime->from_kivitendo($_->{datepaid}) } grep { $_->{paid} ne '' } @payments),
+ @empty,
+ );
+
$form->{totalpaid} = sum map { $_->{paid} } @payments;
$form->header;
ARselected => $ARselected,
title_str => $title,
follow_up_trans_info => $follow_up_trans_info,
+ today => DateTime->today,
});
$main::lxdebug->leave_sub();
@columns =
qw(transdate id type invnumber ordnumber cusordnumber name netamount tax amount paid
datepaid due duedate transaction_description notes salesman employee shippingpoint shipvia
- marge_total marge_percent globalprojectnumber customernumber country ustid taxzone payment_terms charts customertype);
+ marge_total marge_percent globalprojectnumber customernumber country ustid taxzone payment_terms charts customertype direct_debit dunning_description);
my $ct_cvar_configs = CVar->get_configs('module' => 'CT');
my @ct_includeable_custom_variables = grep { $_->{includeable} } @{ $ct_cvar_configs };
'payment_terms' => { 'text' => $locale->text('Payment Terms'), },
'charts' => { 'text' => $locale->text('Buchungskonto'), },
'customertype' => { 'text' => $locale->text('Customer type'), },
+ 'direct_debit' => { 'text' => $locale->text('direct debit'), },
+ dunning_description => { 'text' => $locale->text('Dunning level'), },
%column_defs_cvars,
);
- foreach my $name (qw(id transdate duedate invnumber ordnumber cusordnumber name datepaid employee shippingpoint shipvia transaction_description)) {
+ foreach my $name (qw(id transdate duedate invnumber ordnumber cusordnumber name datepaid employee shippingpoint shipvia transaction_description direct_debit)) {
my $sortdir = $form->{sort} eq $name ? 1 - $form->{sortdir} : $form->{sortdir};
$column_defs{$name}->{link} = $href . "&sort=$name&sortdir=$sortdir";
}
$ar->{invoice} ? $locale->text("Invoice (one letter abbreviation)") :
$locale->text("AR Transaction (abbreviation)");
+ $ar->{direct_debit} = $ar->{direct_debit} ? $::locale->text('yes') : $::locale->text('no');
+
my $row = { };
foreach my $column (@columns) {