Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision b6dc5623

Von Sven Schöling vor etwa 17 Jahren hinzugefügt

  • ID b6dc5623d93c1be1c54248d4512e80f495af2899
  • Vorgänger ac517355
  • Nachfolger 270df900
  • Auslagerung der OE-Masken in Templates *

Diese Patch ist ein Merge der Revisionen
2866, 5349, 5365, 5370, 5408, 5413, 5470, 5473, 5475, 5519, 5520, 5521, 5524, 5526, 5591, 5618, 5622, 5814, 5881, 5882 und 5961
in das Unstable.

Hintergrund ist die Auslagerung der OE-Masken, das heisst aller Masken, die fuer Auftraege, Angebote und teilweise Rechnungen zustaendig sind.
Dadurch vereinfacht sich der Code an vielen Stellen deutlich, ausserdem konnten viele Berechnungen verkleinert werden, weil der Code fuer Angebote/Auftraege jetzt getrennt von Rechnungen liegt.

Ein Grossteil der bin/mozilla/io.pl wurde dafuer dubliziert, die Methoden die fuer Auftraege noetig sind liegen jetzt in der bin/mozilla/oe.pl (vor allem display_form und display_row, aber auch ein paar andere), ihr jeweiliges Pendant fuer Rechnungen wurde unveraendert in eine Datei invoice_io.pl ausgelagert die von den Skripten die sie benoetigen zusaetzlich zur io.pl eingelesen wird.

Wie der Name der Templates andeutet ist der Patch im Verkaufsbaum entstanden, im Verlauf der Programmierung habe cih aber nicht genug Unterschiede gefunden um separate Templates fuer Verkauf und Einkauf zu rechtfertigen. Eventuell werden die Templates noch umbenannt.

Komplexe Maskenaenderungen wie der Austausch von Drop-Down Menues bei zu grosser Anzahl durch Eingabefelder werden ebenfalls noch manuell gemacht.
Auch das wird in der naechsten Version ausgelagert um den Backend Code schlanker zu machen.

Die Berechnung fuer Units und Steuern wurde vereinfacht, und dabei einige unschoene Bugs gefixt, die aus der unvollstaendigen Abdeckung von Verzweigungen resultierten.

Zuletzt wurden noch fast alle serverseitigen Datenformatierungen ausgelagert in ein Templateplugin, welches Zahlen waehrend des Templatings formatiert (mehr dazu in der Dakumentation zu Template.pm).

Der Patch beinhaltet ausserdem die ueblichen Codekosmetika.

Unterschiede anzeigen:

SL/Form.pm
586 586
                                 'EVAL_PERL'   => 0,
587 587
                                 'ABSOLUTE'    => 1,
588 588
                                 'CACHE_SIZE'  => 0,
589
                                 'PLUGIN_BASE' => 'SL::Template::Plugin',
589 590
                               }) || die;
590 591

  
591 592
  map { $additional_params->{$_} ||= $self->{$_} } keys %{ $self };
......
1865 1866
sub _get_customers {
1866 1867
  $main::lxdebug->enter_sub();
1867 1868

  
1868
  my ($self, $dbh, $key) = @_;
1869
  my ($self, $dbh, $key, $limit) = @_;
1869 1870

  
1870 1871
  $key = "all_customers" unless ($key);
1872
  $limit_clause = "LIMIT $limit" if $limit;
1871 1873

  
1872
  my $query = qq|SELECT * FROM customer WHERE NOT obsolete ORDER BY name|;
1874
  my $query = qq|SELECT * FROM customer WHERE NOT obsolete ORDER BY name $limit_clause|;
1873 1875

  
1874 1876
  $self->{$key} = selectall_hashref_query($self, $dbh, $query);
1875 1877

  
......
1985 1987
  }
1986 1988
  
1987 1989
  if($params{"customers"}) {
1988
    $self->_get_customers($dbh, $params{"customers"});
1990
    if (ref $params{"customers"} eq 'HASH') {
1991
      $self->_get_customers($dbh, $params{"customers"}{key}, $params{"customers"}{limit});
1992
    } else {
1993
      $self->_get_customers($dbh, $params{"customers"});
1994
    }
1989 1995
  }
1990 1996
  
1991 1997
  if($params{"vendors"}) {
1992
    $self->_get_vendors($dbh, $params{"vendors"});
1998
    if (ref $params{"vendors"} eq 'HASH') {
1999
      $self->_get_vendors($dbh, $params{"vendors"}{key}, $params{"vendors"}{limit});
2000
    } else {
2001
      $self->_get_vendors($dbh, $params{"vendors"});
2002
    }
1993 2003
  }
1994 2004
  
1995 2005
  if($params{"payments"}) {

Auch abrufbar als: Unified diff