Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 5d711a25

Von Martin Helmling martin.helmling@octosoft.eu vor fast 8 Jahren hinzugefügt

  • ID 5d711a25d9257690164f396b25f57095776790d6
  • Vorgänger a116f27a
  • Nachfolger 899f502c

Prüfen der Bestandteile eines Erzeugnisses beim Hinzufügen

Erst Prüfung innerhalb des Erzeugnisses,
dann recursive Prüfung der das Erzeugnis enthaltenen Erzeugnisse,
Abbruch nach 100 Rekursionen.

Die Abfrage ist so, dass nur vom Erzeugnis abwärts der Baum in die Tiefe geprüft wird.
Dabei darf auf einem Graph kein Erzeugnis doppelt vorkommen.

Erzeugnisse sind nun editierbar, wenn sie von einem anderen Erzeugnis verwendet werden
solange sie in keinem ERP-Dokument verwendet werden.

Implementiert in einem Helper für SL::Controller::Part.
Er wird auch im Test t/part/assembly.t verwendet

Unterschiede anzeigen:

SL/Dev/Part.pm
40 40
  my (%params) = @_;
41 41

  
42 42
  my @parts;
43
  my $part1 = SL::Dev::Part::create_part(partnumber   => 'ap1',
43
  my $partnumber = delete $params{part1number} || 'ap1';
44
  my $part1 = SL::Dev::Part::create_part(partnumber   => $partnumber,
44 45
                                         description  => 'Testpart',
45 46
                                        )->save;
46 47
  push(@parts, $part1);
......
49 50

  
50 51
  for my $i ( 2 .. $number_of_parts ) {
51 52
    my $part = $parts[0]->clone_and_reset;
52
    $part->partnumber(  ($part->partnumber  // '') . " " . $i );
53
    $part->partnumber(  $partnumber . " " . $i );
53 54
    $part->description( ($part->description // '') . " " . $i );
54 55
    $part->save;
55 56
    push(@parts, $part);
56 57
  }
57 58

  
59
  my $assnumber = delete $params{assnumber} || 'as1';
58 60
  my $assembly = SL::DB::Part->new_assembly(
59
    partnumber         => 'as1',
61
    partnumber         => $assnumber,
60 62
    description        => 'Test Assembly',
61 63
    sellprice          => '10',
62 64
    lastcost           => '5',

Auch abrufbar als: Unified diff