sub save_dunning {
$main::lxdebug->enter_sub();
- my ($self, $myconfig, $form, $rows, $userspath, $spool, $sendmail) = @_;
+ my ($self, $myconfig, $form, $rows, $userspath, $spool) = @_;
# connect to database
my $dbh = $form->dbconnect_noauto($myconfig);
$form->{DUNNINGS} = [];
while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
- next if !$ref->{terms} || ($ref->{pastdue} < $ref->{terms});
+ next if ($ref->{pastdue} < $ref->{terms});
$ref->{interest} = $form->round_amount($ref->{interest}, 2);
push(@{ $form->{DUNNINGS} }, $ref);
push(@values, $form->{dunningto});
}
- $query =
+ my %sort_columns = (
+ 'dunning_description' => [ qw(dn.dunning_description customername invnumber) ],
+ 'customername' => [ qw(customername invnumber) ],
+ 'invnumber' => [ qw(a.invnumber) ],
+ 'transdate' => [ qw(a.transdate a.invnumber) ],
+ 'duedate' => [ qw(a.duedate a.invnumber) ],
+ 'dunning_date' => [ qw(dunning_date a.invnumber) ],
+ 'dunning_duedate' => [ qw(dunning_duedate a.invnumber) ],
+ );
+
+ my $sortdir = !defined $form->{sortdir} ? 'ASC' : $form->{sortdir} ? 'ASC' : 'DESC';
+ my $sortkey = $sort_columns{$form->{sort}} ? $form->{sort} : 'customername';
+ my $sortorder = join ', ', map { "$_ $sortdir" } @{ $sort_columns{$sortkey} };
+
+ my $query =
qq|SELECT a.id, a.ordnumber, a.invoice, a.transdate, a.invnumber, a.amount,
ct.name AS customername, ct.id AS customer_id, a.duedate, da.fee,
da.interest, dn.dunning_description, da.transdate AS dunning_date,
JOIN customer ct ON (a.customer_id = ct.id), dunning da
LEFT JOIN dunning_config dn ON (da.dunning_config_id = dn.id)
$where
- ORDER BY name, a.id|;
+ ORDER BY $sortorder|;
$form->{DUNNINGS} = selectall_hashref_query($form, $dbh, $query, @values);
my $first = 1;
while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
if ($first) {
- map({ $form->{"dn_$_"} = []; } keys(%{$ref}));
+ $form->{TEMPLATE_ARRAYS} = {};
+ map({ $form->{TEMPLATE_ARRAYS}->{"dn_$_"} = []; } keys(%{$ref}));
$first = 0;
}
map { $ref->{$_} = $form->format_amount($myconfig, $ref->{$_}, 2) } qw(amount netamount paid open_amount fee interest linetotal);
map { $form->{$_} = $ref->{$_} } keys %$ref;
- map { push @{ $form->{"dn_$_"} }, $ref->{$_}} keys %$ref;
+ map { push @{ $form->{TEMPLATE_ARRAYS}->{"dn_$_"} }, $ref->{$_} } keys %$ref;
}
$sth->finish();
c.name, c.department_1, c.department_2, c.street, c.zipcode, c.city, c.country,
c.contact, c.customernumber, c.phone, c.fax, c.email,
- c.taxnumber, c.sic_code, c.greeting
+ c.taxnumber, c.greeting
FROM ar
LEFT JOIN customer c ON (ar.customer_id = c.id)