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
329 329
  $main::lxdebug->leave_sub();
330 330
}
331 331

  
332
#
333
# Legt ein entsprechendes Webdav-Verzeichnis an, falls
334
# Webdav als Option konfiguriert ist. Falls schon ein
335
# Ordner vorhanden ist, werden alle Dateien alphabetisch
336
# sortiert ausgelesen und an der Oberfläche angezeigt
337
#
338 332
sub webdav_folder {
339 333
  $main::lxdebug->enter_sub();
340 334

  
......
347 341

  
348 342
  $form->{WEBDAV} = [];
349 343

  
350
  my ($path, $number) = get_webdav_folder($form);     # ausgelagert
344
  my ($path, $number) = get_webdav_folder($form);
351 345
  return $main::lxdebug->leave_sub() unless ($path && $number);
352 346

  
353 347
  if (!-d $path) {
......
357 351
    my $base_path = $ENV{'SCRIPT_NAME'};
358 352
    $base_path =~ s|[^/]+$||;
359 353
    if (opendir my $dir, $path) {
360
      # alphabetisch sortiert.
361 354
      foreach my $file (sort { lc $a cmp lc $b } readdir $dir) {
362 355
        next if (($file eq '.') || ($file eq '..'));
363 356

  
......
559 552
  }
560 553
}
561 554

  
562
#
563
# Diese Routine baut aus dem Masken-Typ und der
564
# Beleg-Nummer, das entsprechende Webdav-Verzeichnis zusammen
565
# Nimmt leider noch die ganze Form entgegen und den if-elsif-Block
566
# sollte man schöner "dispatchen"
567
# Ergänzung 6.5.2011, den else-Zweig defensiver gestaltet und mit
568
# -1 als n.i.O. Rückgabewert versehen
569
#
570 555
sub get_webdav_folder {
571 556
  $main::lxdebug->enter_sub();
572 557

  
......
596 581
  } elsif ($form->{vc} eq "vendor") {
597 582
    ($path, $number) = ("einkaufsrechnungen", $form->{invnumber});
598 583
  } else {
599
    # wir befinden uns nicht in einer belegmaske
600
    # scheinbar wird diese routine auch bspw. bei waren
601
    # aufgerufen - naja, steuerung über die $form halt ...
602 584
    $main::lxdebug->leave_sub();
603 585
    return undef;
604 586
  }
......
612 594
  return ($path, $number);
613 595
}
614 596

  
615
#
616
# Falls Webdav aktiviert ist, auch den generierten Beleg in das
617
# Webdav-Verzeichnis kopieren
618
#
619
#
620 597
sub copy_file_to_webdav_folder {
621 598
  $main::lxdebug->enter_sub();
622 599

  
......
631 608
    }
632 609
  }
633 610

  
634
  # Den Webdav-Ordner ÜBER exakt denselben Mechanismus wie beim
635
  # Anlegen des Ordners bestimmen
636 611
  my ($webdav_folder, $document_name) =  get_webdav_folder($form);
637 612

  
638 613
  if (! $webdav_folder){
639 614
    $main::lxdebug->leave_sub();
640 615
    $main::form->error($main::locale->text("Cannot check correct webdav folder"));
641
    return undef; # s.o. erstmal so ...
616
    return undef;
642 617
  }
643
  # kompletter pfad
618

  
644 619
  $complete_path =  join('/', $form->{cwd},  $webdav_folder);
645 620
  opendir my $dh, $complete_path or die "Could not open $complete_path: $!";
646 621

  
......
654 629
  $latest_file_name = $complete_path .'/' . $newest_name;
655 630
  my $filesize = stat($latest_file_name)->size;
656 631

  
657
  # prüfung auf identisch oder nicht
658 632
  my ($ext) = $form->{tmpfile} =~ /(\.[^.]+)$/;
659 633
  my $current_file = join('/', $form->{tmpdir}, $form->{tmpfile});
660 634
  my $current_filesize = stat($current_file)->size;
661
  if ($current_filesize == $filesize) { # bei gleicher größe copy deaktivieren
635
  if ($current_filesize == $filesize) {
662 636
    $main::lxdebug->leave_sub();
663 637
    return;
664 638
  }
665
  # zeitstempel und dateinamen holen
639

  
666 640
  my $timestamp = get_current_formatted_time();
667 641
  my $myfilename = $form->generate_attachment_filename();
668
  # entsprechend vor der endung hinzufügen
669 642
  $myfilename =~ s/\./$timestamp\./;
670 643

  
671 644
  if (!copy(join('/', $form->{tmpdir}, $form->{tmpfile}), join('/', $form->{cwd}, $webdav_folder, $myfilename))) {

Auch abrufbar als: Unified diff