Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision d4dd649f

Von Sven Schöling vor mehr als 11 Jahren hinzugefügt

  • ID d4dd649f8f6e32bc31929bf83d536344745cca05
  • Vorgänger 891f6217
  • Nachfolger 28bd71eb

deutsche kommentare und blogposts entfernt.

Unterschiede anzeigen:

SL/Common.pm
$main::lxdebug->leave_sub();
}
#
# Legt ein entsprechendes Webdav-Verzeichnis an, falls
# Webdav als Option konfiguriert ist. Falls schon ein
# Ordner vorhanden ist, werden alle Dateien alphabetisch
# sortiert ausgelesen und an der Oberfläche angezeigt
#
sub webdav_folder {
$main::lxdebug->enter_sub();
......
$form->{WEBDAV} = [];
my ($path, $number) = get_webdav_folder($form); # ausgelagert
my ($path, $number) = get_webdav_folder($form);
return $main::lxdebug->leave_sub() unless ($path && $number);
if (!-d $path) {
......
my $base_path = $ENV{'SCRIPT_NAME'};
$base_path =~ s|[^/]+$||;
if (opendir my $dir, $path) {
# alphabetisch sortiert.
foreach my $file (sort { lc $a cmp lc $b } readdir $dir) {
next if (($file eq '.') || ($file eq '..'));
......
}
}
#
# Diese Routine baut aus dem Masken-Typ und der
# Beleg-Nummer, das entsprechende Webdav-Verzeichnis zusammen
# Nimmt leider noch die ganze Form entgegen und den if-elsif-Block
# sollte man schöner "dispatchen"
# Ergänzung 6.5.2011, den else-Zweig defensiver gestaltet und mit
# -1 als n.i.O. Rückgabewert versehen
#
sub get_webdav_folder {
$main::lxdebug->enter_sub();
......
} elsif ($form->{vc} eq "vendor") {
($path, $number) = ("einkaufsrechnungen", $form->{invnumber});
} else {
# wir befinden uns nicht in einer belegmaske
# scheinbar wird diese routine auch bspw. bei waren
# aufgerufen - naja, steuerung über die $form halt ...
$main::lxdebug->leave_sub();
return undef;
}
......
return ($path, $number);
}
#
# Falls Webdav aktiviert ist, auch den generierten Beleg in das
# Webdav-Verzeichnis kopieren
#
#
sub copy_file_to_webdav_folder {
$main::lxdebug->enter_sub();
......
}
}
# Den Webdav-Ordner ÜBER exakt denselben Mechanismus wie beim
# Anlegen des Ordners bestimmen
my ($webdav_folder, $document_name) = get_webdav_folder($form);
if (! $webdav_folder){
$main::lxdebug->leave_sub();
$main::form->error($main::locale->text("Cannot check correct webdav folder"));
return undef; # s.o. erstmal so ...
return undef;
}
# kompletter pfad
$complete_path = join('/', $form->{cwd}, $webdav_folder);
opendir my $dh, $complete_path or die "Could not open $complete_path: $!";
......
$latest_file_name = $complete_path .'/' . $newest_name;
my $filesize = stat($latest_file_name)->size;
# prüfung auf identisch oder nicht
my ($ext) = $form->{tmpfile} =~ /(\.[^.]+)$/;
my $current_file = join('/', $form->{tmpdir}, $form->{tmpfile});
my $current_filesize = stat($current_file)->size;
if ($current_filesize == $filesize) { # bei gleicher größe copy deaktivieren
if ($current_filesize == $filesize) {
$main::lxdebug->leave_sub();
return;
}
# zeitstempel und dateinamen holen
my $timestamp = get_current_formatted_time();
my $myfilename = $form->generate_attachment_filename();
# entsprechend vor der endung hinzufügen
$myfilename =~ s/\./$timestamp\./;
if (!copy(join('/', $form->{tmpdir}, $form->{tmpfile}), join('/', $form->{cwd}, $webdav_folder, $myfilename))) {

Auch abrufbar als: Unified diff