X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FDN.pm;h=39ea64b0ecaccb4c9608f9643dff21573ebc49ff;hb=3270e88361efc8ceff21314b489732229f0f98f7;hp=2eeed676295177efede165177c4859299c6e8bb3;hpb=2e66dde525c12d064518c316d25a6b41ed727b39;p=kivitendo-erp.git diff --git a/SL/DN.pm b/SL/DN.pm index 2eeed6762..39ea64b0e 100644 --- a/SL/DN.pm +++ b/SL/DN.pm @@ -44,6 +44,7 @@ use SL::MoreCommon; use SL::Template; use SL::DB::Printer; use SL::DB::Language; +use SL::TransNumber; use strict; @@ -205,6 +206,7 @@ sub create_invoice_for_fees { my ($ar_id) = selectrow_query($form, $dbh, qq|SELECT nextval('glid')|); my $curr = $form->get_default_currency($myconfig); + my $trans_number = SL::TransNumber->new(type => 'invoice', dbh => $dbh); $query = qq|INSERT INTO ar (id, invnumber, transdate, gldate, customer_id, @@ -235,7 +237,7 @@ sub create_invoice_for_fees { (SELECT id FROM employee WHERE login = ?) )|; @values = ($ar_id, # id - $form->update_defaults($myconfig, 'invnumber', $dbh), # invnumber + $trans_number->create_unique, # invnumber $dunning_id, # customer_id $amount, $amount, @@ -246,19 +248,21 @@ sub create_invoice_for_fees { do_query($form, $dbh, $query, @values); $query = - qq|INSERT INTO acc_trans (trans_id, chart_id, amount, transdate, gldate, taxkey) - VALUES (?, ?, ?, current_date, current_date, 0)|; + qq|INSERT INTO acc_trans (trans_id, chart_id, amount, transdate, gldate, taxkey, tax_id, chart_link) + VALUES (?, ?, ?, current_date, current_date, 0, + (SELECT id FROM tax WHERE (taxkey = 0) AND (rate = 0)), + (SELECT link FROM chart WHERE id = ?))|; $sth = prepare_query($form, $dbh, $query); - @values = ($ar_id, conv_i($form->{AR_amount_fee}), $fee_remaining); + @values = ($ar_id, conv_i($form->{AR_amount_fee}), $fee_remaining, conv_i($form->{AR_amount_fee})); do_statement($form, $sth, $query, @values); if ($interest_remaining) { - @values = ($ar_id, conv_i($form->{AR_amount_interest}), $interest_remaining); + @values = ($ar_id, conv_i($form->{AR_amount_interest}), $interest_remaining, conv_i($form->{AR_amount_interest})); do_statement($form, $sth, $query, @values); } - @values = ($ar_id, conv_i($form->{AR}), -1 * $amount); + @values = ($ar_id, conv_i($form->{AR}), -1 * $amount, conv_i($form->{AR})); do_statement($form, $sth, $query, @values); $sth->finish(); @@ -327,12 +331,13 @@ sub save_dunning { $form->{DUNNING_PDFS_EMAIL} = []; + $form->{dunning_id} = $dunning_id; + $self->create_invoice_for_fees($myconfig, $form, $dbh, $dunning_id); $self->print_invoice_for_fees($myconfig, $form, $dunning_id, $dbh); $self->print_dunning($myconfig, $form, $dunning_id, $dbh); - $form->{dunning_id} = $dunning_id; if ($send_email) { $self->send_email($myconfig, $form, $dunning_id, $dbh); @@ -369,15 +374,12 @@ sub send_email { my $template = SL::Template::create(type => 'PlainText', form => $form, myconfig => $myconfig); my $mail = Mailer->new(); - $mail->{charset} = $::lx_office_conf{system}->{dbcharset} || Common::DEFAULT_CHARSET; $mail->{from} = $myconfig->{email}; $mail->{to} = $ref->{recipient}; $mail->{subject} = $template->parse_block($ref->{email_subject}); $mail->{message} = $template->parse_block($ref->{email_body}); - if ($myconfig->{signature}) { - $mail->{message} .= "\n-- \n$myconfig->{signature}"; - } + $mail->{message} .= $form->create_email_signature(); $mail->{message} =~ s/\r\n/\n/g; @@ -752,6 +754,16 @@ sub print_dunning { $dunning_id =~ s|[^\d]||g; + my ($language_tc, $output_numberformat, $output_dateformat, $output_longdates); + if ($form->{"language_id"}) { + ($language_tc, $output_numberformat, $output_dateformat, $output_longdates) = + AM->get_language_details($myconfig, $form, $form->{language_id}); + } else { + $output_dateformat = $myconfig->{dateformat}; + $output_numberformat = $myconfig->{numberformat}; + $output_longdates = 1; + } + my $query = qq|SELECT da.fee, da.interest, @@ -838,6 +850,17 @@ sub print_dunning { $form->{total_open_amount} = $form->format_amount($myconfig, $form->round_amount($ref->{total_open_amount}, 2), 2); $form->{total_amount} = $form->format_amount($myconfig, $form->round_amount($ref->{fee} + $ref->{total_interest} + $ref->{total_open_amount}, 2), 2); + $::form->format_dates($output_dateformat, $output_longdates, + qw(dn_dunning_date dn_dunning_duedate dn_transdate dn_duedate + dunning_date dunning_duedate transdate duedate) + ); + $::form->reformat_numbers($output_numberformat, 2, qw( + dn_amount dn_netamount dn_paid dn_open_amount dn_fee dn_interest dn_linetotal + amount netamount paid open_amount fee interest linetotal + total_interest total_open_interest total_amount total_open_amount + )); + $::form->reformat_numbers($output_numberformat, undef, qw(interest_rate)); + $self->set_customer_cvars($myconfig, $form); $self->set_template_options($myconfig, $form); @@ -850,7 +873,7 @@ sub print_dunning { push @{ $form->{DUNNING_PDFS} }, $filename; push @{ $form->{DUNNING_PDFS_EMAIL} }, { 'filename' => "${spool}/$filename", - 'name' => "dunning_${dunning_id}.pdf" }; + 'name' => $form->get_formname_translation('dunning') . "_${dunning_id}.pdf" }; $form->parse_template($myconfig);