use SL::TransNumber;
use SL::Util qw(trim);
use SL::DB;
+use SL::Webdav;
use File::Copy;
$dunning_id =~ s|[^\d]||g;
- my ($language_tc, $output_numberformat, $output_dateformat, $output_longdates, @dunned_invoice_ids);
+ my ($language_tc, $output_numberformat, $output_dateformat, $output_longdates, @dunned_invoices);
if ($form->{"language_id"}) {
($language_tc, $output_numberformat, $output_dateformat, $output_longdates) =
AM->get_language_details($myconfig, $form, $form->{language_id});
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->{TEMPLATE_ARRAYS}->{"dn_$_"} }, $ref->{$_} } keys %$ref;
- push @dunned_invoice_ids, $ref->{dunned_invoice_id};
+ push @dunned_invoices, {id => $ref->{dunned_invoice_id}, invnumber => $ref->{invnumber}};
}
$sth->finish();
# this generates the file in the spool directory
$form->parse_template($myconfig);
- # save dunning pdf in filemanagement for each invoice
- if ($::instance_conf->get_doc_storage) {
- foreach my $dunned_invoice_id (@dunned_invoice_ids) {
+ # save dunning pdf in filemanagement/webdav for each invoice
+ foreach my $dunned_invoice (@dunned_invoices) {
+ if ($::instance_conf->get_doc_storage) {
SL::File->save(
- object_id => $dunned_invoice_id,
+ object_id => $dunned_invoice->{id},
object_type => $form->{attachment_type},
mime_type => 'application/pdf',
source => 'created',
file_path => "${spool}/$filename",
);
}
+
+ if ($::instance_conf->get_webdav_documents) {
+ my $webdav = SL::Webdav->new(
+ type => 'invoice',
+ number => $dunned_invoice->{invnumber},
+ );
+ my $webdav_file = SL::Webdav::File->new(
+ webdav => $webdav,
+ filename => $form->{attachment_filename},
+ );
+ $webdav_file->store(file => "${spool}/$filename");
+ }
}
$main::lxdebug->leave_sub();
push @{ $form->{DUNNING_PDFS_EMAIL} }, { 'path' => "${spool}/$filename",
'name' => $attachment_filename };
- # save dunning fee pdf in filemanagement for each dunned invoice
- if ($::instance_conf->get_doc_storage) {
- $query = qq|SELECT trans_id FROM dunning WHERE dunning_id = ?|;
- my @dunned_invoice_ids = selectall_array_query($form, $dbh, $query, $dunning_id);
- foreach my $dunned_invoice_id (@dunned_invoice_ids) {
- SL::File->save(
- object_id => $dunned_invoice_id,
- object_type => 'dunning',
- mime_type => 'application/pdf',
- source => 'created',
- file_type => 'document',
- file_name => $attachment_filename,
- file_path => "${spool}/$filename",
- );
+ # save dunning fee pdf in filemanagement/webdav for each dunned invoice
+ if ($::instance_conf->get_doc_storage || $::instance_conf->get_webdav_documents) {
+ $query = qq|SELECT trans_id, invnumber FROM dunning LEFT JOIN ar ON (ar.id = trans_id) WHERE dunning_id = ?|;
+ my $dunned_invoices = selectall_hashref_query($form, $dbh, $query, $dunning_id);
+
+ foreach my $dunned_invoice (@$dunned_invoices) {
+ if ($::instance_conf->get_doc_storage) {
+ SL::File->save(
+ object_id => $dunned_invoice->{trans_id},
+ object_type => 'dunning',
+ mime_type => 'application/pdf',
+ source => 'created',
+ file_type => 'document',
+ file_name => $attachment_filename,
+ file_path => "${spool}/$filename",
+ );
+ }
+
+ if ($::instance_conf->get_webdav_documents) {
+ my $webdav = SL::Webdav->new(
+ type => 'invoice',
+ number => $dunned_invoice->{invnumber},
+ );
+ my $webdav_file = SL::Webdav::File->new(
+ webdav => $webdav,
+ filename => $attachment_filename,
+ );
+ $webdav_file->store(file => "${spool}/$filename");
+ }
}
}
$form->{recipient_locale} = $saved_reicpient_locale;
- # save original invoice pdf in filemanagement for dunned invoice
+ # save original invoice pdf in filemanagement/webdav for dunned invoice
if ($::instance_conf->get_doc_storage) {
SL::File->save(
object_id => $invoice_id,
file_path => "${spool}/$file_name",
);
}
+ if ($::instance_conf->get_webdav_documents) {
+ my $webdav = SL::Webdav->new(
+ type => 'invoice',
+ number => $invoice->invnumber,
+ );
+ my $webdav_file = SL::Webdav::File->new(
+ webdav => $webdav,
+ filename => $attachment_filename,
+ );
+ $webdav_file->store(file => "${spool}/$file_name");
+ }
}