Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 2e50c674

Von Jan Büren vor fast 15 Jahren hinzugefügt

  • ID 2e50c674c11a3fcaa08de05cdbdf114fc84d31dd
  • Vorgänger 1644ba7f
  • Nachfolger 139baad4

Fehlerbehandlung falls beim Erzeugnis fertigen keine entsprechenden Einzelwaren definiert sind. Ferner besseres objektorientiertes Aufrufverhalten ->get_part_description statt get_part_description()

Unterschiede anzeigen:

SL/WH.pm
164 164
                           (SELECT id FROM transfer_type WHERE direction = 'out' AND description = 'used'))|;
165 165
  my $sthTransferPartSQL   = prepare_query($form, $dbh, $transferPartSQL);
166 166

  
167
  my $kannNichtFertigen ="";  # der return-string für die fehlermeldung inkl. welche waren zum fertigen noch fehlen
167
  # der return-string für die fehlermeldung inkl. welche waren zum fertigen noch fehlen
168
  my $kannNichtFertigen ="Für dieses Erzeugnis sind keine Einzelteile definiert.
169
                          Dementsprechend kann auch nichts hergestellt werden";
168 170

  
169 171
  while (my $hash_ref = $sth_part_qty_assembly->fetchrow_hashref()) {  # Schleife für $query=select parts_id,qty from assembly
170

  
172
    $kannNichtFertigen ="";  # Wieder auf erfolgreich setzen LEER == keine Fehlermeldung
171 173
    my $partsQTY = $hash_ref->{qty} * $params{qty}; # benötigte teile * anzahl erzeugnisse
172 174
    my $currentPart_ID = $hash_ref->{parts_id};
173 175

  
......
176 178

  
177 179
    if ($partsQTY  > $max_parts){
178 180
      # Gibt es hier ein Problem mit nicht "escapten" Zeichen? 25.4.09 Antwort: Ja.  Aber erst wenn im Frontend die locales-Funktion aufgerufen wird
179
      $kannNichtFertigen .= "Zum Fertigen fehlen:" . abs($partsQTY - $max_parts) . " Einheiten der Ware:" . get_part_description($self, parts_id => $currentPart_ID) . ", um das Erzeugnis herzustellen. <br>"; # Konnte die Menge nicht mit der aktuellen Anzahl der Waren fertigen
181
      $kannNichtFertigen .= "Zum Fertigen fehlen:" . abs($partsQTY - $max_parts) . " Einheiten der Ware:" . $self->get_part_description(parts_id => $currentPart_ID) . ", um das Erzeugnis herzustellen. <br>"; # Konnte die Menge nicht mit der aktuellen Anzahl der Waren fertigen
180 182
      next; # die weiteren Überprüfungen sind unnötig
181 183
    }
182 184

  
......
200 202
      if ($tmpPartsQTY > $temppart_qty) {  # wir haben noch mehr waren zum wegbuchen. Wir buchen den kompletten Lagerplatzbestand und zählen die Hilfsvariable runter
201 203
        $tmpPartsQTY = $tmpPartsQTY - $temppart_qty;
202 204
        $temppart_qty = $temppart_qty * -1; # beim analyiseren des sql-trace, war dieser wert positiv, wenn * -1 als berechnung in der parameter-übergabe angegeben wird. Dieser Wert IST und BLEIBT positiv!! Hilfe. Liegt das daran, dass dieser Wert aus einem SQL-Statement stammt?
203
        do_statement($form, $sthTransferPartSQL, $transferPartSQL, $currentPart_ID, $params{dst_warehouse_id}, $temppart_bin_id, $temppart_chargenumber, 'Verbraucht für ' . get_part_description($self, parts_id => $params{assembly_id}), $params{login}, $temppart_qty);
205
        do_statement($form, $sthTransferPartSQL, $transferPartSQL, $currentPart_ID, $params{dst_warehouse_id}, $temppart_bin_id, $temppart_chargenumber, 'Verbraucht für ' . $self->get_part_description(parts_id => $params{assembly_id}), $params{login}, $temppart_qty);
204 206

  
205 207
        # hier ist noch ein fehler am besten mit definierten erzeugnissen debuggen 02/2009 jb
206 208
        # idee: ausbuch algorithmus mit rekursion lösen und an- und abschaltbar machen
......
208 210
        # auf jeden fall war der internal-server-error nach aktivierung von strict und warnings plus ein paar my-definitionen weg
209 211
      } else { # okay, wir haben weniger oder gleich Waren die wir wegbuchen müssen, wir können also aufhören
210 212
        $tmpPartsQTY *=-1;
211
        do_statement($form, $sthTransferPartSQL, $transferPartSQL, $currentPart_ID, $params{dst_warehouse_id}, $temppart_bin_id, $temppart_chargenumber, 'Verbraucht für ' . get_part_description($self, parts_id => $params{assembly_id}), $params{login}, $tmpPartsQTY);
213
        do_statement($form, $sthTransferPartSQL, $transferPartSQL, $currentPart_ID, $params{dst_warehouse_id}, $temppart_bin_id, $temppart_chargenumber, 'Verbraucht für ' . $self->get_part_description(parts_id => $params{assembly_id}), $params{login}, $tmpPartsQTY);
212 214
        last; # beendet die schleife (springt zum letzten element)
213 215
      }
214 216
    }  # ende while SELECT SUM(qty), bin_id, chargenumber   FROM inventory  WHERE warehouse_id
......
811 813
  my $self     = shift;
812 814
  my %params   = @_;
813 815

  
814
  Common::check_params(\%params, qw(parts_id )); #die brauchen wir
816
  Common::check_params(\%params, qw(parts_id)); #die brauchen wir
815 817

  
816 818
  my $myconfig = \%main::myconfig;
817 819
  my $form     = $main::form;

Auch abrufbar als: Unified diff